14.06.2013 Views

Databases and Systems

Databases and Systems

Databases and Systems

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

247<br />

the Object Request Broker (ORB), which transparently transmits request from<br />

clients to object implementations.<br />

Once the interface for a distributed object is defined in IDL, any client can use it<br />

depending only on the objects public interface. It is irrelevant to the client where the<br />

object implementation resides or in what language it is implemented. In order to<br />

invoke methods on the CORBA object, the client needs to obtain an object reference<br />

for that object. The object reference serves as a proxy object on which the client can<br />

invoke methods as defined in IDL<br />

It is worth comparing the CORBA approach with the more familiar Remote<br />

Procedure Call (RPC). Using RPC a client invokes a function on a server, while in<br />

CORBA a client invokes a method on an object. Such a CORBA object is a purely<br />

logical entity whose implementation is unknown to the client. In many cases the<br />

server implements several CORBA objects as shown in Figure 1.<br />

Figure 1 : RPC versus CORBA<br />

Microsoft’s Distributed Component Object Model (DCOM) [3] is an important<br />

alternative to CORBA. However, DCOM is not considered here because of its<br />

proprietary nature <strong>and</strong> lack of cross-platform support.<br />

Interfacing <strong>Databases</strong> with IDL<br />

How should interfaces to databases look? Should the data model be reflected in IDL,<br />

<strong>and</strong> if yes how? Since the answer to these questions depends very much on the<br />

concrete application, the best way to find the “right” IDL is very often a use-case<br />

analysis [8]. Several important cases will be examined in this section using the simple<br />

example of protein sequences. It is important to underst<strong>and</strong> that these different<br />

possibilities do not exclude each other – they simply meet different requirements of<br />

different applications. In our example, every protein sequence has a number of<br />

attributes, one of which is a reference to an entry in the EMBL Nucleotide Sequence<br />

Database.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!