Information searching and retrieval from distributed databases using mediators corba and xml
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

Information Searching and Retrieval from Distributed Databases using Mediators, CORBA and XML PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

Information Searching and Retrieval from Distributed Databases using Mediators, CORBA and XML. Presented by:Vincent Cheung Supervised by:Prof Michael Lyu, Prof K. W. Ng Dec 18, 2000. Research objectives. Address the Use of XML in enhancing Data Representation and System Communication

Download Presentation

Information Searching and Retrieval from Distributed Databases using Mediators, CORBA and XML

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Information searching and retrieval from distributed databases using mediators corba and xml

Information Searching and Retrieval from Distributed Databasesusing Mediators, CORBA and XML

Presented by:Vincent Cheung

Supervised by:Prof Michael Lyu,

Prof K. W. Ng

Dec 18, 2000

Research objectives

Research objectives

  • Address the Use of XML in enhancing Data Representation and System Communication

  • Address the Use of Mediator Architecture for Searching in Distributed Environment

  • Address the Use of XML and HTTP to simulate CORBA IIOP calls

  • We have developed a CORBA-based mediator system which can overcome the limitation of firewall problem to achieve a worldwide system

Presentation outline

Presentation outline

  • What is Mediator?

  • Using XML

  • Implementation with CORBA

  • CORBA vs. Firewalls

  • Overcome the Firewall

  • Evaluation

  • Future Work

  • Conclusion

  • Demonstration

Searching in distributed sources

Searching in distributed sources

  • To integrate different components in the systems, there are three approaches:

    • CORBA

    • Mediators

    • Agents

  • They are not orthogonal, e.g.:

    • Implement mediators by CORBA

    • Agents may use mediators

What is mediator

What is mediator?

  • A middle layer for forwarding clients queries to appropriate sources, and integrate the data before returning to users

Clients UI

Client UI

Client UI










Using xml

Using XML

  • We need a COMMON format of information in order to let distributed heterogeneous components for data exchange.

  • XML provides a good solution because:

    • XML is semi-structured and highly flexible in data representation. Highly structured traditional relational and object-oriented data schema can be mapped to XML schema without losing information.

    • A common XML schema for heterogeneous system can be achieved

  • Hence, we use XML data schema in our system.

A piece of xml data

A piece of XML data


<source>South China Morning Post</source>

<date>April 15, 2000</date>

<title>Press warning appropriate, says Beijing </title>

<reporter>Kong Lai-fan</reporter>

<reporter>Greg Torode</reporter>

<content>Beijing yesterday defended remarks made by senior SAR-based official Wang Fengchao that local media should avoid reporting separatist views. </content>


Xml ql


  • To query semi-structured data, traditional query languages may not be adequate

  • We use XMLQL, which is designed for semi-structured XML data

  • An example:

    where <news> $B <news> in ‘’news_db.xml’’,



    <month> 4 </month>

    <day> 15 </day>

    </date> in $B

    construct <result> $B </result>

Why use corba

Why use CORBA?

  • Common Object Request Broker Architecture

  • Designed for application development within distributed heterogeneous environment

  • We use CORBA to build our mediator system.

Architecture of our system

3rd tier

1st tier

2nd tier

Data Source

Web-base UI

Servlet Interface

Data Source


(forwarding queries and integrating results)

Web-base UI

Web-base UI

Nth tier


Architecture of our system

UI Queries and Results



Handling some special cases




Handling some special cases

  • Some special cases: Infinite loops, broken connection and too many layer of traversal.

  • Infinite loops:

qid = 123

qid = 123

qid = 123

qid = 123

Solution: To give each query a unique ID, and mediators will keep track all query IDs which have no replied answers yet. Duplicated IDs would indicate an infinite looping has occurred.

Special cases




Special cases

  • Broken connection

    Solution: Use a timeout parameter to specify the maximum amount of time that we are willing to wait.

  • Too may layers of traversal

    Solution: use a maximum layer parameter to specify the maximum number of layers that we want to go.

Timeout = 5000

Max_layer = 1

Timeout = 10000

Max_layer = 2

Timeout = 15000

Max_layer = 3

Idl design of our system

IDL design of our system

  • IDL (Interface Definition Language) defines export interface of CORBA objects

  • Our IDL design:

    • The parameter type for special cases handling

      Struct SysPara


      long qid;

      long timeout;

      short maxlayer;


Idl design of our system1


Implemented by



IDL design of our system

  • Mediator may make queries to Databases or Mediators

  • Hence, we want Databases and Mediators can be very similar objects

  • Now, both of them are implementing QueryEngine Interface

    Interface QueryEngine {

    String query(in SysPara para,

    in string xmlquery);


Querydb object

QueryDB Object

  • Directly connects to the data source

  • Caller calls query()

  • It takes the query statement parameter and make query to related data source

  • Returns answer in XML string stream format

Querymed object

QueryMed Object

  • Same invoking method, query()

  • Besides QueryEngine, it implements another interface, QueryMediator

    public interface QueryMediator {

    public QueryEngine[] qelist();

    public void qelist(QueryEngine[] arg);

    public void append_result(String res);


  • qelist holds a list of QueryEngine objects, i.e. QueryMed or QueryDB objects, which will be called by that mediator.

  • It starts a thread for each target QueryEngine object, and the thread will call append_result() to integrate results from various sources

Problems with corba firewall

Problems with CORBA firewall

  • We cannot achieve a worldwide query system because of the firewall.

  • CORBA uses Internet InterORB Protocol (IIOP) for communication.

  • Message body of IIOP is encoded in Common Data Representation (CDR), which translates IDL data types into a byte-ordering independent octet string.

  • Firewalls cannot decode the message body of IIOP in application level.

  • But we have application level gateways for telnet, FTP, and HTTP

Corba firewalls

CORBA firewalls

  • We do have some firewalls which are dedicated for CORBA communications

  • E.g. IONA Orbix WonderWall and Visibroker Gatekeeper

  • They have limitations:

    • Vendor dependent: Orbix firewalls must use Orbix developed client and server objects

    • Not all features of CORBA can be used: Callbacks may not be used

    • Not commonly used

    • Extra purchase, etc…

Corba and firewalls

HTTP Servlet XML

CORBA enclave

CORBA enclave



CORBA and firewalls

  • IIOP cannot pass firewall, but HTTP can

  • A real worldwide CORBA system can be achieved

Solution to firewall problem


Implemented by




Solution to firewall problem

  • HTTPGateway is also implementing QueryEngine.

  • HTTPGateway is a virtual query engine to forward the query to the target systems

Simulated call


CORBA Enclave

CORBA Enclave

Mediator M

DB Object

HTTP Gateway H

Servlet Mediator SM

Simulated Call

Sample xml message in parameter passing

Sample XML message in parameter passing

<request object="QueryMed" method="query" return="string">

<parameter order="1" name="para">}







<parameter order="2" name="QueryStatement">


<news> \$B </news> in "database.xml"

<keyword>satellite</keyword> in \$B

construct <result> \$B </result>




Its dtd


<!DOCTYPE parapassing [

<!ELEMENT request (parameter*)>

<!ATTLIST request object (#CDATA)>

<!ATTLIST request method (#CDATA)>

<!ATTLIST request return (#CDATA)>

<!ELEMENT parameter (SysPara | string)>

<!ATTLIST parameter order (#CDATA)>

<!ELEMENT SysPara (qid,maxlayer,timeout)>


<!ELEMENT maxlayer (#CDATA)>

<!ELEMENT timeout (#CDATA)>

<!ELEMENT string (#CDATA)>





  • It can overcome the CORBA IIOP vs. firewalls problem by using HTTP calls,XML, and servlet.

  • Security issue can still be maintained. External CORBA objects can call only the objects combined with Servlet

  • Both primitive data types, like String, or complex classes, SysPara, can be well represented by XML in parameter passing



  • It is not limited for the clients and servers must be CORBA implementation.

  • Internal CORBA objects would not notice the difference of calling an external objects when comparing to callings of internal objects

  • With sharing the same XML and IDL standards, we can easily achieve a worldwide query system.




  • With using HTTP calls to simulate IIOP is relative slower than using firewalls dedicated for CORBA, as we need to do many extra works to initialize the servlet, to convert parameters to XML format, invoke the servlets to work, etc.

Future work

Future Work

  • Generalize the IIOP simulation

    • For all kinds of objects, parameter types, return types, etc

    • Direct code generation from IDL

  • Design the mechanism that supports CALLBACKS

  • When callback can be simulated, we can enhance the features of our mediator system



  • Using Mediators in querying distributed sources

  • How to use CORBA and XML to integrate the system

  • Cooperation between XML and CORBA in simulation of IIOP calls



  • Aim to show the mediator system can:

    • make queries to varies sources in parallel

    • go beyond firewalls

User Interface

(SHB 1027)


Servlet Mediator

(SHB 913, pc90003)

Servlet Mediator

H111, Kuomao Hall

Data Source 2

(SHB 913, pc90003)

Data Source 1

H111, Kuomao Hall

HTTP Gateway

H111, Kuomao Hall

Q a session

Q & A Session

Welcome to Give

Questions and Comments

Appreciation thank you appreciation

<appreciation>Thank You</appreciation>

  • Login