220 likes | 406 Views
CORBA (Common Object Request Broker Architecture). Current problems in computing. customers do not want to create one monolithic application e.g., one large C program want to break up the job into several sub-problems and create (or implement) solutions for each sub-problem separately
E N D
Current problems in computing • customers do not want to create one monolithic application • e.g., one large C program • want to break up the job into several sub-problems and create (or implement) solutions for each sub-problem separately • easier to concentrate on while developing the solutions and also easier to modify a solution • these solutions will work correctly only if they are built on standard interfaces • failure to create such a standard interface is known as “interoperability problem” C-S 546
Three levels of interoperability • lowest level • through emails and file transfers • each site has its own platform, method and file structure but the communication is through simple stream of text • middle level • web browsing • scan through documents in other sites but agreed upon a common language such as HTML • upper level • programs in different sites interacting with each other • may be written in different languages and run on different platforms • how is this possible? – through CORBA C-S 546
CORBA solution • provides a common infrastructure through which objects at different sites communicate with each other • classes that create objects are not part of the infrastructure and they reside in the same site where the objects reside • both classes and objects need to be in the same site because • objects do not carry method definitions with them; these are available in the classes • classes do not communicate with each other; only objects communicate with each other C-S 546
Network protocol between Object A and CORBA Interface of A Object A CORBA Interface of B Network protocol between Object B and CORBA Object B C-S 546
CORBA solution to Interoperability • each object declares its interface in a format known to the CORBA infrastructure • every message sent from a sender to a receiver is converted into a standard format at the junction between the object’s interface and CORBA infrastructure • The CORBA infrastructure maintains the format, the list of clients (senders and receivers), and any information that needs to be transparent to clients such as • clients’ identifications • clients’ interfaces C-S 546
Object handles • each client object has a unique identifier known as a “handle” • this is not (necessarily) an address such as URL • it can be in any format as designated by the CORBA infrastructure • advantage: when the object moves from one location to another (happens often), the handle also moves with it and so the other objects do not need to worry about the physical location of the object • CORBA infrastructure is the only one who need to be informed about the physical location of an object C-S 546
What is required on part of CORBA? • a standard environment that provides the basic services • transactions between objects including formats for message communication • security • event-handling • persistence • objects must stay forever; can’t disappear as soon as a transaction is performed • a software distribution technology to enable a multi-platform software marketplace • the CORBA Component Model (CCM) provides these two facilities C-S 546
OMA – The application integrator of CORBA • basic CORBA infrastructure only connects objects together, and not the applications • CORBA infrastructure does not know anything about the applications for which the objects are created, and does not know anything about the applications in which these objects can be used • solution: There is an architecture called OMA (Object Management Architecture) that takes care of mapping between objects and applications C-S 546
Application Objects CORBA facilities Vertical CORBA facilities Manufacturing Telecom E-Commerce Transportation Business Objects HealthCare Finance/Insurance Life Science More Horizontal CORBA facilities Internationalization Time Agent facility More Object Request Brokers Naming, Trader Events, Notification Transactions Security Persistent State Property More CORBA services C-S 546
CORBA services • provide the services that any object needs to communicate through the CORBA infrastructure • unique naming for objects and methods • event handling • for the basic execution paradigm • persistent state • To store the objects forever • transaction manager • To handle transaction issues such as implementing protocols • security handler • more … C-S 546
CORBA services (continued) • lowest level communication primitives • includes • OLTP (OnLine Transaction Processing) for business applications • an object trader service (a kind of yellow pages) C-S 546
CORBA facilities • provide services that are common for several applications • example: PIDS (patient identifier services) is an application package that provides services to health care services – all health care applications will use the common format to identify patients • each kind of applications has its own CORBA facilities package • see the diagram for the OMA C-S 546
Horizontal and Vertical facilities • vertical CORBA facilities are packages that are common to a small subset of applications • Health care, E-Commerce, Insurance … • horizontal CORBA facilities are packages that are common to several (a fairly large set of) applications • print facilities, timing, international standards, … • together, these two facilities provide packages that are common for almost every application • application objects simply write the client code to use these facilities C-S 546
Benefits of CORBA • developers can make use of all platforms and languages that they bought/use • because CORBA virtually provides an interface for every platform and language, including traditional languages such as COBOL and Ada although these languages seem to disappear • no need to change a platform or a language for a different application • tools and software that were developed and are running on these platforms will continue to use CORBA facilities and services C-S 546
Benefits of CORBA (continued) • maximizes programmers productivity • programmers need to write only the application code that makes use of CORBA objects • they simply use the standard interface to communicate with CORBA infrastructure • learning requirement: CORBA interface format • IDL (Interface Definition Language) • code reuse is achieved to the maximum extent • both the application code as well as tools can be declared as CORBA objects C-S 546
A brief note about OMG • OMG stands for Object Management Group • a consortium of companies involved in common computing • over 1000 companies around the world at present in the consortium • software vendors, consulting companies, product and tool developers, interface developers, … • OMG does not develop software; it only generates interface specifications • OMG meets 5 times a year to administer the interfaces and CORBA products C-S 546
Reference • Jon Siegel, “CORBA 3 – Fundamentals and Programming” (Second Edition), John Wiley & Sons, 2000, ISBN: 0-471-29518-3 • Reaz Hoque, “CORBA for Real Programmers”, Morgan Kaufmann, 1999, ISBN: 0-12-355590-6 C-S 546
Glossary • CORBA • Common Object Request Broker Architecture • ORB • Object Request Broker • OMG • Object Management Group • A technical consortium responsible for registering and maintaining CORBA objects and services • OMA • Object Management Architecture • IDL • Interface Definition Language C-S 546
Glossary (continued) • CCM • The CORBA Component Model C-S 546