CORBA (usually pronounced [ box ], sometimes jargon [ cobra ]; English Common Object Request Broker Architecture - the general architecture of the broker of object requests; the typical architecture of indirect requests to objects) is the technological standard for writing distributed applications promoted by the OMG consortium (working group) and its corresponding information technology .
CORBA Purpose
CORBA technology is designed to support the development and deployment of complex object-oriented application systems.
CORBA is a mechanism in the software for the integration of isolated systems, which enables programs written in different programming languages that work on different network nodes to interact with each other as easily as if they were in the address space of one process.
General review
The CORBA specification requires code to be combined into an object that must contain information about the functionality of the code and the access interfaces. Finished objects can be called from other programs (or CORBA specification objects) located on the network.
The CORBA specification uses the interface description language (OMG IDL) to define the interfaces of interaction between objects and the outside world; it describes the mapping rules from IDL to the language used by the developer of the CORBA object.
Mappings for Ada , C , C ++ , Lisp , Smalltalk , Java , Cobol , Object Pascal , PL / 1 and Python are standardized. There are also non-standard mappings to the Perl , Visual Basic , Ruby, and Tcl languages implemented by the ORB tools written for these languages.
Key Technology Concepts
Objects by value
In addition to remote objects, CORBA 3.0 defines the concept of an object by value . The default code for the methods of such objects runs locally. If the object by value was received from the remote side, then the necessary code must either be known to both parties in advance or be dynamically loaded. To make this possible, the record defining such an object contains the Code Base field - a list of URLs from where the code can be downloaded.
By value, an object can also have remote methods, fields that are transmitted along with the object itself. Fields, in turn, can also be such objects, thus forming lists, trees, or arbitrary graphs. Objects by value can have a hierarchy of classes, including abstract and multiple inheritance.
Component Model CORBA (CCM)
The CORBA Component Model (CCM) is a recent addition to the CORBA family of definitions.
CCM has been introduced since CORBA 3.0 and describes a standard application framework for CORBA components. CCM is heavily influenced by Enterprise JavaBeans (EJBs) and is in fact its language-independent extension. CCM provides an abstraction of entities that can provide and receive services through clearly defined named interfaces, ports .
The CCM model provides a component container in which software components can be delivered. A container provides a set of services that a component can use. These services include (but are not limited to) a notification, authorization, persistence, and transaction management service. These are the most commonly used services by a distributed application. Transferring the implementation of these services from the need to implement the application itself into the functionality of the application container, you can significantly reduce the complexity of the implementation of the components themselves.
Common Inter-Broker Protocol (GIOP)
GIOP (General Inter-ORB Protocol) is an abstract protocol in the CORBA standard that provides brokers interoperability . Protocol related standards are released by the Object Management Group (OMG). The GIOP architecture includes several specific protocols:
- Internet InterORB Protocol (IIOP) - A protocol for organizing interactions between different brokers, published by the OMG consortium. IIOP is used by GIOP on the Internet , and provides a mapping of messages between the GIOP and the TCP / IP layer.
- SSL InterORB Protocol (SSLIOP) - IIOP over SSL , encryption and authentication are supported.
- HyperText InterORB Protocol (HTIOP) - IIOP over HTTP .
Object Link (Corba Location)
CorbaLoc ( Corba Location ) is a string reference to a CORBA technology object similar to a URL .
All CORBA implementations must support at least two variants of OMG URL: corbaloc: and corbaname:. Their purpose is to provide a person with a way to read and edit a link, through which you can get a link to a CORBA object .
Corbaloc example:
- corbaloc :: 160.45.110.41: 38693 / StandardNS / NameServer-POA / _root
The CORBA implementation may provide support for the formats "http:", "ftp:" and "file:". The purpose of these formats is to indicate how to get a string representation of a reference to a CORBA object.
List of Brokers (CORBA ORBs)
- Borland Enterprise Server, VisiBroker Ed. [1] - CORBA 2.6-compatible commercial ORB from Borland , supports Java and C ++ .
- MICO [2] is a free ( LGPL ) ORB with C ++ support.
- omniORB [3] is a free ( LGPL ) ORB for C ++ and Python .
- ORBit2 [4] is a free ( LGPL ) ORB for C , C ++ and Python .
- JacORB [5] is a free ( LGPL ) ORB written in Java .
- TAO [6] - The ACE ORB , an open ORB for C ++ .
- Orbacus [7] is a commercial ORB for C ++ , Java from IONA Technologies .
- Orbix is a commercial ORB from IONA Technologies .
- PolyORB - ORB from AdaCore for the Ada programming language . There are both free and commercial versions.
See also
- Internet communications engine
- ILU
- Component Object Model
Notes
- β CORBA Environment for Distributed Processing & Computing Applications - from Borland Archived February 27, 2007.
- β MICO CORBA (inaccessible link) . Date of treatment May 25, 2010. Archived July 26, 2010.
- β omniORB Project on SourceForge.net
- β ORBit2
- β JacORB
- β Real-time CORBA with TAO (The ACE ORB) (inaccessible link) . Date of treatment March 3, 2007. Archived June 11, 2007.
- β Products - Orbacus - Embeddable CORBA ORB - Progress Software | Progress Software (inaccessible link) . Date of treatment March 3, 2007. Archived March 20, 2007.