Distributed Systems Architecture: A Middleware Approach

Chapter 9: IDL Compiler

The Interface Definition Language (IDL) of CORBA represents a powerful tool for the development of distributed applications. It enables a separation of the interface and the implementation of objects. The CORBA standard contains a description of the syntax and the semantics of the IDL. Applications programmers use IDL compilers to generate type-safe access to CORBA objects from interface specifications. This chapter is devoted to the design of Mico's IDL compiler. The proxy objects generated by IDL are based on an ORB API that is described in Section 9.1. Section 9.2 follows with general principles relating to compiler construction. Sections 9.3 and 9.4 offer a detailed presentation of the design of Mico's IDL compiler.

9.1 Invocation Adatpers

IDL compiler creates proxy objects One of the tasks of an ORB consists of preparing and processing remote operation invocations. The initiator and the receiver of such operation invocations is an application based on CORBA. To execute an operation invocation, an application requires an invocation adapter, which is also used for the proxy objects generated by the IDL compiler. The invocation adapter allows the delivery of information associated with a remote operation invocation. This includes information about the target object, the operation name, and the actual parameters. This section focuses on the different alternatives for the design of invocation adapters.

9.1.1 Dynamic versus Static Invocation Adapters

An application uses an invocation adapter to send operation invocations (also see Section 5.3.1). The Dynamic Invocation Interface (DII) is an example of an invocation adapter. The DII...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Middleware
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.