Understanding CORBA (Common Object Request Broker Architecture)
Randy Otte, Paul H. Patrick, Mark Roy · Prentice-Hall, Inc eBooks · 1995
Preface. I. AN INTRODUCTION TO CORBA. 1. Why Use CORBA? What Is CORBA? What Problems Does CORBA Solve? CORBA Is Based on Distributed Object Computing. What Is Distributed Computing? Benefits of Distributed Computing. Existing Mechanisms for Distributed Computing. How CORBA Enhances Distributed Computing. CORBA Allows a Flexible Client/Server Relationship. CORBA Adds a Broker. CORBA Servers Can Be More Than Single Processes. CORBA Supports Both Synchronous and Asynchronous Communication Styles. What Is an Object Model? Advantages of Using an Object Model. How Distributed Computing and an Object Model Complement Each Other. CORBA Is Communications Middleware. CORBA and the Distributed Computing Environment. What is the OMG Object Management Architecture? What is the Current Status of CORBA? Where Is CORBA Headed? 2. A Conceptual Overview of CORBA. CORBA Formally Separates the Client and Server. Requests. OMG Interface Definition Language. OMG IDL File. Object Instances and References. Implementation of an Object. Exceptions. CORBA Example. Summary of CORBA System Concepts. What's Next. 3. An Architectural Overview of CORBA. Overview of the CORBA Architecture. Client Application. Stub- Style Invocation. Dynamic Invocation. ORB. Context Objects. Interface Repository. OMG IDL. OMG IDL File and Compiler. Server Application. Object Adapters. Server Skeletons. The Implementation Repository. What's Next. II. FOR THE APPLICATION DESIGNER: DESIGNING A CORBA APPLICATION FRAMEWORK. 4. Designing a CORBA Application. Application Frameworks. Designing a Distributed Application as a Framework. Designing the Model. Contrasting an Object-Oriented with a Data- Centered Design Model. For More Information. 5. Refining Your Object Model. Using a Real-World Model. Making Operations Generic. Determining How to Create Objects. Using Interface Inheritance. Using Operations and Attributes Effectively. 6. Considerations in Distributing Your Design. Refining Your Model for a Distributed Environment. Selecting an Interaction Model. Popular Applications of Interaction Models. Using the Interaction Models with Your Framework. Determining How to Package Applications. 7. Coding with OMG IDL. General Guidelines for Writing OMG IDL Code. Defining Object Attributes in OMG IDL. Defining Inheritance in OMG IDL. Defining Exceptions in OMG IDL. Defining Context to Be Propagated in OMG IDL. For More Information. III. FOR THE APPLICATION DEVELOPER: DEVELOPING A CORBA APPLICATION FRAMEWORK. 8. Developing the Client Side of the Application. Structure of a Request. Choosing an Invocation Communication Style. Choosing the Invocation Type. General Process of Building a CORBA Client Application. Developing a Simple Client Application. Developing a More Complex Client Application. The Complete Sample Client C Code. 9. Developing the Server Side of the Application. Using the BOA. The Life Cycle of a CORBA Object. General Process of Building a CORBA Server. Writing a Server. 10. Associating the Client Operation with the Server Method. The CORBA_BOA_create Operation. How Vendors Map Interfaces to Implementations. When the Association Occurs. IV. DEPLOYING A CORBA APPLICATION INTO A CORBA SYSTEM. 11. Deploying the Application. General Deployment Considerations. Deploying a CORBA-Based Client. Deploying a CORBA-Based Server. A. Extended Code Examples. Example OMG IDL for Personnel Objects and Operations in Module CORP.IDL. Example C Code for the Client Application. Example C++ Code for the Client Application. B. Names of CORBA Operations and Objects for Versions 1.1 and 1.2. C. CORBA Standard Exceptions. D. Summary of Operations for Dynamic Invocation. Glossary. Index. Examples. A Sample OMG IDL Interface Definition. An OMG IDL Source File Fragment From the Personnel Application. Defining an Object Attribute in OMG IDL. Specifying a Read-Only Object Attribute in OMG IDL. Specifying Single Inheritance. Specifying Multiple Interface Inheritance. Specifying Inheritance Across Modules. Environment Structure in C. Defining User- Defined Exceptions. Specifying Context Objects. C Language Mapping for a Request. Use of the One-Way Attribute. Generating and Connecting Client Stubs. Comparing the Signatures of Two OMG IDL Operations and Their Generated Client Stubs. Formatting a Stub-Style Request. Getting an Object Reference From a File. Declaration of the Environment Argument. User- Defined Exceptions (OMG IDL Code). User-Defined Exceptions (C Code). Defining Standard Exceptions (OMG IDL Code). Defining Standard Exceptions (C Code). Sample Client Code to Handle Exceptions. Using a Context Object (OMG IDL Code). Using a Context Object (C Code). Complete Sample Client C Code. Generating and Connecting Server Skeletons. Formatting a Method. Creating an Object Reference. C Mapping for Getting Reference Data. C Mapping for Raising an Exception. C Mapping for Raising a Standard Exception. Using the CORBA_BOA_create Operation. CORP.IDL Interface Definitions. Example Client Application, Client_main.C. Example Client Application, Client_main.cxx. Figures. Viewer Software Acting As a Client. The Four Parts of the Object Management Architecture. A Client and an Associated Implementation on the Server. Architecture of a CORBA System. The ORB Selecting an Implementation to Perform a Request. Client and Server Files Generated from an OMG IDL File. The BOA Connecting the ORB to the Implementation Methods. A Conceptual Look at Interface Inheritance. A Conceptual Look at Multiple Inheritance. The Text Editor Distributed by User and Data Interactions. The Debugger Distributed by User and Data Interactions. A Broker in a CORBA and Non-CORBA System. Dynamic and Stub-Style Invocation. Life Cycle of a CORBA Object. Logical Structure of a Server. One Implementation Per Interface. Many Implementations Per Interface. Multiple Implementations Per Interface. Tables. Key Concepts in a Distributed CORBA System. CORBA Components and Interfaces. Abstract Model of the Personnel Application. Translating Activities and Entities into Objects and Operations. Objects and Operations in the Personnel Application. Description of Arguments in a Request. Direction Attributes. Values for the _major Member. Parts of a Standard Exception. Summary of Context Object Operations. Summary of Interface Repository Operations. TypeCode Operations. CORBA TypeCode Kinds and Parameters. Operations Defined as Part of the BOA. Operations Used to Notify the BOA About Implementation Activation and Deactivation. Changes in CORBA Object Names. Changes in CORBA Operation Names. Standard Exceptions.