Register your product to gain access to bonus material or receive a coupon.
"This book breaks the mold...by taking the reader through the entire spectrum of the distributed object approach, from requirements analysis through systems development, with a thorough treatment of relevant standards." -Dr. Richard M. Soley, Technical Director, Object Management Group
Inside CORBA is a comprehensive and authoritative guide to distributed object architecture, software development, and CORBA (Common Object Request Broker Architecture) standards. CORBA is a consensus standard from industry that has transformed the way information systems are developed, both for creating distributed object-oriented systems and for migrating legacy systems to modern architecture.
This must-read for all managers, architects, and developers of distributed systems begins by addressing the key organizational challenges to the adoption of CORBA and the essential management guidance necessary to ensure its success. Following this introduction, the authors present a user guide to the CORBA standards, complete with examples of their application. The user guide also features in-depth coverage of the Interface Definition Language (IDL), including the latest presentation of the new CORBA IDL Language Mapping for Java, and comprehensive information on the CORBA 2 standard and the CORBAservices.
In addition, this book provides invaluable technical assistance on the application of CORBA by sharing essential lessons learned from experienced CORBA managers and architects and through the presentation of a case study.
List of Figures and Tables.
Foreword.
Preface.
I. CORBA BASICS
1. An Introduction to Corba.Information Systems: From the Back Room to the Front Office.
Analyzing the Scenario.
Challenges in System Development.
System Integration.
Managing the Future.
Technology Availability.
Corba Overview.
Corba Concepts.
The Object Model.
Open Distributed Computing Environment.
Component Integration and Reuse.
Corba's Growth.
What You Will Learn From This Book.
II. CORBA STANDARDS
2. Corba Interface Definition Language (Idl).An Overview of Corbaidl.
The Most Significant Element of Corba is the Interface Definition Language.
Omg Idl is a Stable Standard.
One Idl File Creates Multiple Language Bindings.
Idl Enables Platform Independence.
Idl is Pure Specification, Not Implementation.
The Quality of Idl Designs is Critically Important.
An Idl Tutorial.
Idl Modules.
Idl Interfaces.
Idl Forward.
Idl Constants.
Idl Type Declaration.
Idl Sequences.
The Dynamic Idl Type Any.
Idl Attributes.
Idl Exceptions.
Idl Operation Signatures.
Pre-Compiler Directives.
Conversion of Oo Designs to Idl.
From Oo Design to Idl Example: Course Registration Object Model.
The Oo Design.
An Abstract Idl Representation.
A Concrete Idl Representation.
Idl Guidelines.
Idl Identifiers.
Parameter and Return Values.
The Use of Attributes.
Use of Type Any.
Idl Modules.
Idl Documentation.
Concluding Remarks.
3. The Corba 2 Standard.An Overview of Corba 2.
The Orb.
Corba Core.
Standard Object Model.
Interface Attributes and Operations.
One-Way Keyword.
Exception Handling.
Context Clause.
Object Implementation.
The Corba Architecture.
Static Interfaces.
Static and Dynamic Skeletons.
Static Versus Dynamic Invocation.
Corba Clients and Object Implementations.
Local Objects.
Marshaling.
Orb Libraries.
Client Invocation Process.
Invocation Scenario.
Interface and Implementation Repositories.
Interface Repository and Idl Object Models.
Applications of the Interface Repository.
Language Mappings.
C Language Mapping.
C11 Language Mapping.
Variable Type and Pointer Type.
Smalltalk Language Mapping.
Java Language Mapping.
Portability.
Interoperability and Ole Integration.
Corba Interoperability.
Corba and Microsoft.
Corba Guidelines.
Location Transparency.
Rely On the Corba Standard, Not the Orb Products.
Use of Standards.
Concluding Remarks.
4. Corbaservices.An Overview of Corbaservices.
Many Application Developers Have Reinvented the Corbaservices.
Considering Vendor Support; Self-Building These Services.
The Corbaservices Architecture.
The Corbaservices Roadmap.
The Information Management Services.
The Property Service.
The Relationship Service.
Multithreaded Environments.
The Query Service.
The Externalization Service.
The Persistent Object Service.
The Collection Service.
Task Management Corbaservices.
The Events Service.
The Concurrency Service.
The Transaction Service.
System Management Corbaservices.
The Naming Service.
The Lifecycle Service.
The Licensing Service.
The Trader Service.
Infrastructure Corbaservices.
Security and Time Services.
Messaging Service.
The Future of Corbaservices.
Additional Services.
Concluding Remarks.
5. Corbafacilities and Corbadomains.Overview of Corbafacilities.
Corbafacilities Versus Corbaservices.
Horizontal Corbafacilities.
Distributed Document Component Facility.
Compound Linking.
Opendoc Parts Framework.
Opendoc User Interface.
Opendoc Framework Objects.
The Common Management Facilities.
Internationalization and Time Operations Facilities.
Data Interchange Facility.
Vertical Corbafacilities and Related Activities.
Business Object Framework and Common Business Objects.
Meta-Object Facility.
Printing and Method Facilities Input.
Vertical-Market Areas.
Leveraging the Omg Process.
Exploiting a Predictable Process.
Application Profiles.
Inside the Omg Organization.
The Request for Information Process.
Creating Architectures and Roadmaps.
Rfp Adoption Processes.
III. CORBA SYSTEM ENGINEERING
6. Relationships With Other Technologies.Choosing a Distributed Object Architecture.
Analyzing the Scenario.
Making an Informed Decision.
The Role of Standards.
The Underpinnings of Distributed Architectures.
Comparing Distributed Architectures.
Osf's Distributed Computing Environment.
Microsoft's Distributed Component Object Model.
Javasoft's Java and the Remote Method Invocation (Rmi).
Interoperability With Corba.
Corba Selection and Application.
Corba Product Selection.
Issues in the Effective Application of Corba.
7. The Corba Migration Process.Migrating to a Corba Architecture.
Analyzing the Scenario.
Enterprise Migration.
Architecture-Driven Migration.
Conformance Between Architecture and Implementation.
Migration to Commonality.
Migration Strategy.
8. Corba and Software Architecture.Defining a Software Architecture.
Analyzing the Scenario.
The Role of Architecture in Software.
If Software Architecture is so Important, What is it?
The Elements of Good Software Architecture.
Corba and Software Architecture.
Models of Use for Corba in a Software Architecture.
Applying Corba to Software Architecture.
The Scope of a Software Architecture.
The Major Entities of Software Architecture.
Customizing the Software Architecture to the Organization.
Software Architecture Design.
Architecture Abstraction.
The Process for Software Architecture Design.
Defining the Software Architecture Objects and Interfaces.
Other Software Architecture Considerations.
Software Architecture Conclusions.
9. Application Design Using Software Architecture.Designing the Application.
Analyzing the Scenario.
The Relationship of Architecture to Program Planning.
Recognizing the Learn-As-You-Go Process.
Prototype Development Using Corba.
Creating a Successful Environment.
Applying the Software Architecture to Application Design.
Selection of Application Components.
Designing Application Component Interfaces.
Defining Component Relationships.
Designing for Interoperability.
Increasing Reuse.
Making the Most of Inheritance.
Providing Good Exception Handling.
Test and Evaluation of the System.
Corba in the Operations and Maintenance Phase.
Measuring Progress.
Measuring the Progress of the Software Architecture.
Tying it All Together: Architecture and Application Design Processes.
Collaborative Processes for Architecture and Application Development.
Corba Architecture Process-the Analysis Steps.
Corba Architecture Process-the Definition Steps.
Corba Application Development Process.
10. Corba Migration Case Study: The Information Access Facility.Problem and Objective.
Standards-Based Profiles.
Project Context.
Business Objects and Process.
Interface Migration.
Conclusions.
Do Not Design in a Vacuum.
Design for Quality.
Epilogue.This book is written for people interested in adopting, designing, and developing systems using distributed objects. The common object request broker architecture (CORBA) is a consensus standard from industry that has significantly changed how information system development is accomplished for both achieving a distributed object-oriented system, as well as for migration of legacy systems to modern architectures. In writing this book, it is assumed the reader has a general knowledge of computer science or programming.
In the book, all standard CORBA-related specifications and key upcoming specifications are covered. Examples of the usage of CORBAservices are included. Since CORBA is a system-oriented technology, applications of the standards, including architecture, development, and migration approaches, are also covered. An entire chapter is devoted to a case study providing lessons learned from real experience.
Overview of the ContentsPart 1 provides an introduction to the technology and its benefits and the key motivations and impacts of adoption. Part 1 sets the context for CORBA technology, including addressing the key organizational challenges involved in the adoption of CORBA, as well as the essential management guidance to assure successful adoption and exploitation of the technology.
Part 2 provides a useris guide to the CORBA standards. These chapters provide a useful introduction to the standards with examples of their applications. The book covers detailed techniques for the use of the interface definition language (IDL), the CORBA 2 standard, and the CORBAservices. This coverage includes concepts, definitions, and examples. The new IDL/JAVA language mapping is introduced. In Part II, the first comprehensive model of CORBA components and CORBAservices is provided. This model and associated examples support rapid understanding of complex OMG standards and their interrelationships.
Part 3 addresses the application of CORBA to the definition and development of information systems. Technical guidance on how to apply the standards to create successful systems is provided. In particular, CORBA applications and lessons learned are covered. CORBA is compared with related technologies that will aid in your product selection and justification. Approaches for defining CORBA-based architecture, interfaces, and software are included. Chapter 10 is a case study of a CORBA-based enterprise migration and the lessons learned in implementation and management of the project.
For readers new to CORBA, the book is intended to be read sequentially. If this book achieves anything, it is expected that the reader will understand IDL, an international standard (ISO DIS 14750) that is quickly becoming the universal notation for application program interfaces. Readers familiar with the CORBA infrastructure should read Chapter 4, covering the CORBAservices. Given the large number of these services, it is rare to encounter anyone with knowledge of them all or even of a significant number. Advanced readers should also read Chapter 7, which sets a context for the definition of CORBA-based software architectures, and Chapters 8 and 9, which define a unique approach for CORBA development and migration.
Relationship of This Book to CORBA SpecificationsThis book does not replace the CORBA standards documents. Instead, it provides an introduction and guidance to readers and users of the standards. There are several large volumes of CORBA standards, including CORBA, CORBAservices, and CORBAfacilities. Even though CORBA standards are more readable than many other types of standards documents, they are voluminous. In many cases, CORBA standards do not include abstractions and examples that are essential for understanding. Furthermore, the specifications do not deal with the application of CORBA to architecture and development, only to its definition.
The first priority is to provide an insightful summary of the standards. The abstractions and examples should aid the readeris understanding of the technology. The standards chapters do not attempt to address all the needs of knowledgeable CORBA practitioners, only the needs of people who want to learn more about the full range of the technology.
The second priority is to provide guidance on how to use these standards and technologies. The authors have been involved in the technical work and management of CORBA projects since 1991, when the standard was first created. This technology presents some fundamental differences in practices for developers, architects, and managers.
It was learned through reviewing and mentoring numerous CORBA projects that many organizations ignore these essential differences in their use of CORBA. This leads to the creation of systems with brittle architectures and implementations, similar to what was created with precursor technologies. By trial and error, some organizations learn how to use the technology more effectively, but many do not progress much beyond the initial level. A key mission of this book is to shorten the learning curve of those organizations adopting CORBA so that they can adjust the management and technology practices to fully exploit the CORBA technologies. In doing so, they will create and migrate to more-effective information systems.
Supplemental MaterialsThe CORBA specifications described in this book can be downloaded from the Object Management Groupis Web site: http://www.omg.org
The specifications and profiles from the case study can be downloaded from http://www-ismc.itsi.disa.mil/ciiwg/ciiwg.html
. Note that this is an ongoing activity and that document names have changed several times throughout this project.
Updates on the material in this book, news, and comments for the authors can be found on http://www.serve.com/mowbray/
The authors wish to thank all of the people who made this book possible. It is not possible to enumerate everybody who gave us ideas, review, help, and encouragement, but in particular, we wish to recognize Doug Antoon, Lydia Bennett, Bill Brown, Edna Davis, Vic DeMarines, John Eaton, Marty Faga, Millie Forrest, Julie Gravallese, Dolly Greenwood, Michael Guttman, Jack Hassall, Steve Hirsch, Bill Hoffman, Dr. Barry Horowitz, Joel Jacobs, Michael Josephs, Cliff Kottman, Eric Leach, Dave Lehman, Dr. Chris Lopresti, Frank Maginnis, Dr. Pat Mallett, Raphael Malveau, John Marsh, Jason Matthews, Dr. Mark Maybury, Skip McCormick, Chris Metzger, Kate Mowbray, John Polger, Henry Rothkopf, Karen Ruh, Richard Soley, Shel Sutton, John Tisaranni, Dr. Bhavani Thuraisingham, Pat Townes, Gloria Trumpower, Doug Vandermade, Debra Wittreich, Ron Zahavi, Tony Zawilski.
A special thanks is given to the reviewers of this book whose comments and insights were an invaluable contribution. John M. Anderson, Colm Bergin, IONA Technologies Inc.; Justin Freitag, Department of Software Development, Monash University, Australia; Donald G. Joder, Booz-Allen & Hamilton Inc.; Lloyd W. Taylor, DIGEX, Inc.; and John Weiler, The OBJECTive Technology Group, Ltd. We would especially like to thank Liz May for coordinating all the editing, graphics, and typing for the manuscript, ensuring a successful completion to a long journey.