Distributed Computing in Life
Science Research
-Presenter: Yijian Yang
4-28-2003
Motivation
Huge computational task in life science research
Heterogeneous, distributed computing environment
Problem
Unix Windows
Linux
CORBA
What is CORBA?
Common Object Request Broker Architecture.
CORBA (cont.)
It can be simply conceptualized as a communication
bus for client-server object.
Invoke function Z
Run() on Z Run()
IDL IDL
Object Request
CORBA (cont.)
How to develop CORBA
applications
Module XXX{
interface YYY{
1. Define interface Method1();
Method2();
};
};
2. Write the .idl file
3. Compile it with an idl compiler
4. Use the output to build the server and the client
Server
.idl specification file
Compilation
A package of empty source code for server skeleton
Implement the object
Create and register the object to CORBA server
Ready for client request
Client
Start locator service
Bind to CORBA server
Invoke remote method
Example
European Bioinformatics Institute: corba.ebi.ac.uk
For example: http://corba.ebi.ac.uk/idl/doc/nsdb.Embl.html
To get the access number of a sequence, the
corresponding function:
getEmblSeq
EmblSeq getEmblSeq(in string bio_seq_id)
raises(type::NoResult, Superceded);
Example (cont.)
In client program, if we want to use remote
object Embl in EBI EMBL CORBA server,
we should do:
1. org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init();
2. Embl sample = EmblHelper.bind(orb, “Embl”) ; //bind to server orb
3. sample.start();
4. sample.getEmblSeq(arg[0]);
Example (cont.)
Other Method
Microsoft’s DCOM (Distributed Component
Object Model)
Java RMI (Remote Method Invocation)
Conclusion
CORBA is a promising technology for distributed
object computing in life science research and has
provided pointers to further information.
Reference
http://bioinformer.ebi.ac.uk/newsletter/archives/3/lead_articl
e.html
http://www.corba.org/
http://www.omg.org
http://corba.ebi.ac.uk/
Thanks