SEC . 9.1 CORBA 495
Application objects |
Vertical facilities ( domain specific ) |
Horizontal facilities ( general purpose ) |
Common Object Services |
Object Request Broker
Figure 9-1 . The global architecture of CORBA .
model also distinguishes what are known as CORBA facilities . Facilities are constructed as compositions of CORBA services ( which we discuss below ), and are split into two different groups . Horizontal facilities consist of generalpurpose high-level services that are independent of application domains . Such services currently include those for user interfaces , information management , system management , and task management ( which is used to define workflow systems ). Vertical facilities consist of high-level services that are targeted to a specific application domain such as electronic commerce , banking , manufacturing , etc .
We will not discuss application objects and CORBA facilities in any detail , but rather concentrate on the basic services and the ORB .
Object Model
CORBA uses the remote-object model that we described in Chap . 2 . In this model , the implementation of an object resides in the address space of a server . It is interesting to note that the CORBA specifications never explicitly state that objects should be implemented only as remote objects . However , virtually all CORBA systems support only this model . In addition , the specifications often suggest that distributed objects in CORBA are actually remote objects . Later , when discussing the Globe object model , we show how a completely different model of an object could , in principle , be equally well supported by CORBA .
Objects and services are specified in the CORBA Interface Definition Language ( IDL ). CORBA IDL is similar to other interface definition languages in that it provides a precise syntax for expressing methods and their parameters . It is not possible to describe semantics in CORBA IDL . An interface is a collection of methods , and objects specify which interfaces they implement .
Interface specifications can be given only by means of IDL . As we shall see later , in systems such as Distributed COM and Globe , interfaces are specified at a lower level in the form of tables . These so-called binary interfaces are by their nature independent of any programming language . In CORBA , however , it is necessary to provide exact rules concerning the mapping of IDL specifications to existing programming languages . At present , such rules have been given for a number of languages , including C , C ++, Java , Smalltalk , Ada , and COBOL .
Given that CORBA is organized as a collection of clients and object servers , the general organization of a CORBA system is shown in Fig . 9-2 .