Implementing distributed systems with Java and CORBA.

From MaRDI portal





One of the nowadays major software challenges is the systematic development of heterogeneous distributed enterprise information systems. The main attractive feature of the book resides from putting together, in a unified view, the basic concepts of the Object Oriented paradigm and of the Object Management Architecture (OMA) reference model, thus providing a rather complete, compelling and self-explanatory presentation of the Common Object Request Broker Architecture (CORBA) standard for distributed computing. By its consistency and almost lack of redundancy, the book is, undoubtedly, remarkably useful to professional software developers, particularly for people involved in building networked systems. Moreover, it has also several features making it attractive for undergraduate or graduate students too. First of all, the style is outstanding, especially due to an intensive visualization in Unified Modeling Language of both static and dynamic aspects of the applications. The book is self-contained, assuming that the reader is familiar only with Java and some reasonable background in distributed systems. It is also worth mentioning that the authors manage to provide an efficient reading scheme facilitating the ``rush reader by giving a first practical small example, a kind of ``Hello, world! from inside of the universe of distributed applications, that can be executed and tested with reasonable reading. Moreover, they pay attention to possible different running platforms the virtual readers could come from and the previously mentioned example is compiled with three different free of charge Interface Description Language (IDL) compilers (JDK, JacORB and OpenORB). The book is also suitable as a one or two semester advanced course in Java distributed programming. The authors give a long series of illustrative examples to facilitate the understanding of different concepts and the relevant chapters are followed by some exercises with possible solutions on the book's home page. The book is organized in 18 chapters, and 5 appendices. Chapters 1, 2 and 3 deal with basic knowledge on object oriented programming, distributed systems and CORBA standard. Chapter 4 ``Introduction to the IDL supplies a presentation of IDL, a pure declarative language useful as a specification tool for the interfaces of the objects offering services in a distributed environment. The IDL interface is the central type of the language: mainly, the structure and the purpose of an IDL interface are similar to those of a Java interface or C++ abstract class. An IDL specification needs to be translated into a specific programming language (Java, C++ and so on) by an IDL platform dependent compiler. The translation must obey an associated Object Management Group (OMG) standard, called a mapping to the target language. Chapter 5 ``IDL to Java Mapping addresses the mapping of IDL to Java. The mapping rules deal with the translation of all IDL constructs (like IDL basic types, IDL interfaces, IDL modules and so on) to some appropriate Java constructs. The elements of the ORB runtime system are thoroughly addressed in Chapter 6, ``Important Elements of the ORB Runtime. The CORBA standard specifies a number of so-called pseudo objects that represent the runtime infrastructure of a distributed application. Its core consists of the pseudo objects ORB, POA (Portable Object Adapter), DII (Dynamic Invocation Interface) and DSI (Dynamic Skeleton Interface). The ORB pseudo object is responsible for managing all client/server communications in a distributed CORBA application. Its functionality is described by the pseudo interface CORBA::ORB, specified in a pseudo IDL (PIDL). The POA pseudo object is the link between the ORB and the proper object implementation. The mechanism that allows clients to invoke operations on CORBA objects at run time without knowing the interface type of that object at compile time is supported by DII. The DSI provides an analogue for the server side. Chapter 7, ``A First Example, brings the first practical example of a simple CORBA distributed application. The mapping of the corresponding IDL interface as well as server application and client application with the aid of three ORBs available free of charge, that way readers from different platforms having the opportunity to execute a CORBA application. Chapter 8, ``Generating Remote Objects, addresses the Factory design pattern for remote object construction in a distributed system. ``Alternatives for Designing IDL Interfaces may be found in Chapter 9. Chapter 10, ``Inheritance and Polymorphism, focuses on the way the most powerful object-oriented concepts of inheritance and polymorphism are effectively realized in the context of CORBA specifications, taken into account that IDL interfaces do not support either overloading or overriding operations. The matter is extremely important especially in the case of IDL mapping to non object-oriented languages. The ideas are emphasized by a further development of an example from Chapter 9, following two variants (implementing the inheritance approach and implementing the delegation approach) in order to illustrate inheritance both on interface and implementation levels. In the end, the polymorphic method calls are also addressed by an abstract example. Chapter 11, ``Implementing Distributed Callbacks, deals with the case when the design of the distributed systems makes it necessary that clients and servers change their roles temporarily. Implementing the Callback technique is the suitable solution that avoids resource waste that usually accompanies the direct implementation of the Busy Waiting approach. Chapter 12, ``Utilizing Values Types, is mainly devoted to call by value mechanism, as a means for reducing in some scenarios the overhead requested by the usual call by reference mechanism during the invocation of a CORBA object via the network. The practical usage of IDL value types is here illustrated by an implementation of the Publish-Subscribe design pattern in a variant consisting of a Publisher object on the server host and Subscriber objects on client hosts. Chapters 13 through 15 take a closer look at the development of CORBA applications using the DynamicAny API, the DII and the DSI. The combined use of these concepts may increase the flexibility of the designed distributed applications and facilitates the development of some generic programs like for instance CORBA bridges, object browsers, interpreters for script languages and distributed debuggers. Chapter 16, ``Implementing Different POAs, illustrates how a dedicated child POA may be created from the root POA and configured for supporting some specific OMG policies like for instance the request processing policy and the servant retention policy. Chapter 17, ``CORBA's Naming Service discusses one of the most important CORBA services. It is shown how the Naming Service may be used to solve the bootstrapping problem of establishing initial connections between clients and servers. The event-based communication model for interaction between objects in loosely coupled distributed systems is addressed in Chapter 18, ``CORBA's Event Service. Here, the Mediator design pattern is used for designing special objects that function as event channels interposed between senders and receivers. One of the examples of that chapter presents a simple Publish-Subscribe scenario, similar to one developed in Chapter 12, and illustrates the push model, one of the models used most frequently in the practice of communication. The appendices give concise descriptions of IDL Grammar, IDL to Java Mapping, Naming Service IDL, Event Service IDL and ORB Product Installation.





Describes a project that uses

Uses Software






This page was built for publication: Implementing distributed systems with Java and CORBA.

Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q4671216)