By now you've heard and read something about the Common Object Request Broker Architecture (CORBA). You may even have used it to provide an integration solution to some component of your enterprise. Depending on your perspective, you probably discovered that one of the biggest challenges to getting started and further developing a set of distributed computing skills has been overcoming a steep learning curve. This isn't a surprise, since CORBA covers a significant amount of information system technology, including such things as interface specifications, object communications, reference repositories, and business object services -- just to name a few. In this high-paced technology world, we're always learning, no matter what curve we have to face. The CORBA curve is one of many to surmount, but it's well worth your time and energy.
If you consider the information system you're familiar with, including the changes that it has undergone and will undergo (usually due to market forces and technology improvements), you'll realize that the framers of CORBA intended to solve and facilitate a significant set of the activities involved in the life cycle of an information system. These include, but are not limited to, such things as
If you have some familiarity with CORBA or have used CORBA implementations (ORBs, IIOP, and so on), you probably have some understanding of where it fits in the scheme of things. CORBA is a standards-based integration technology -- "middleware" -- but it's more than that. It has the potential to be the foundation for the enterprise-wide infrastructure. It also has the potential of finally freeing application developers from having to worry about the underlying communications and the ever-so-common problems of matching data formats.
Why does CORBA have so much promise, and what
are its chances of succeeding? In addition to Netscape's commitment to
CORBA, many other factors are contributing to its widespread acceptance
and usage. The Object Management Group (OMG), the creator of the CORBA
specifications, consists of some 700 members representing software and
hardware companies, government organizations, and technical interest groups.
Thus, CORBA is founded on an industry consensus. But even that isn't enough
to guarantee ubiquitous presence. Since it's nearly the only standard in
the middleware arena, it serves as a development risk mitigation tactic
for distributed system managers and developers. Furthermore, CORBA was
designed to accommodate the integration of legacy systems, thus enabling
a successful coexistence of multiple technologies and facilitating migration
strategies and planning.
This series of articles on CORBA is for those
who have some familiarity with developing distributed, object-based systems
(for example, client-server systems) and would like to enhance their understanding
of the role of CORBA in the enterprise -- how it's being used and how it
fits in with the system development phases of the life cycle. The articles
discuss how to apply CORBA, not only as a communications solution, but
additionally as an infrastructure consisting of multiple, cooperating frameworks.
CORBA provides specifications for quite a number of functions; it is without
doubt large in scope. To effectively exploit its potential for solving
your enterprise needs, it's necessary to explore the important software
development activities that best lead to applying the CORBA technologies.
This article provides a discussion of general system requirements based on a summary of several real-world CORBA examples from various corporations. The article's main objective is to help you understand how CORBA is being applied in different industries and to demonstrate the common usage of CORBA across the industries -- that is, its "horizontal" character. Furthermore, this article is intended to give you an additional appreciation, if you had one before, for the architecture that CORBA specifies in its services and domains.
For those who are just starting out or who need a refresher, a cursory introduction to CORBA is provided. Since most of the CORBA literature provides detailed descriptions of CORBA's architecture and parts, this article just covers the basics and concentrates on describing what you need to know to use CORBA. For details on CORBA, see the texts Instant CORBA by Robert Orfali and Inside CORBA by Thomas Mowbray. For more details on the rationale behind CORBA and the Netscape visions, refer to CORBA: Theory and Practice by Paul Dreyfus.
Subsequent articles in the series will introduce you to a development approach, but will intentionally leave out the details you might find in a typical methodology; you'll probably find it useful to understand the phases of software development without getting too bogged down in the noise of the details. To encourage the approach, an example -- an automated billing system -- will be used to illustrate requirements and problem analysis.
Future articles will also elaborate on the analysis, design, and coding phases in the development approach. Through the same billing system example, you'll learn about useful analysis techniques and about translating the analysis results to a design and then finally to the code. One article will focus on the CORBA Transaction services and exception handling, and will stress the importance of these services in the enterprise and illustrate how to best incorporate them into your enterprise. The series will also discuss other important services, including the Persistent Object, Query, Concurrency, and Security services, and the Common Management facilities. Throughout, the series will use the billing system as the example, with the intention of reducing the learning curve you might be facing. >From this series of articles you should be able to better apply CORBA to your enterprise needs in all phases of any development cycle.
Nevertheless, this section describes some of the projects using CORBA in new developments and integration. Perhaps one or some of these descriptions are similar to work you're performing or will perform in the near future. The end of the section summarizes the activities into a set of general requirements and identifies some key CORBA actions that occur to support such requirements.
Now you should have a general understanding of how CORBA is being used, the types of problems that some large projects are facing, and some of the detailed mechanisms that must be realized in a CORBA environment. In order to get into details about these mechanisms, it's important to understand the CORBA pieces and the functions each piece performs.
Much of a typical project team's concern about adopting or evaluating CORBA is that there is a significant learning curve. Indeed, there are a lot of pieces here. However, when you consider CORBA's scope and its well-planned architecture, you'll begin to appreciate that it in many ways helps you concentrate more on solving your business problems rather than spending your time on the underlying technical infrastructure problems.
Consider the example of a recent insurance project, whose purpose was to improve the processing of insurance claims, the handling of sales, and the managing of policies. However, the project committed an impressive investment into the development of a persistence framework. Not only did this development effort consume resources and time, but its unforeseen complications delayed the entire project, resulting in serious schedule slippage. As a consequence, senior management realized that the company was not in the infrastructure business, and is now evaluating commercial products so that the company can focus its resources on solving insurance problems.
As a starting point for describing the CORBA pieces,
the Object Management Architecture (OMA) is illustrated in Figure 1. The
OMA serves as the software reference model in a familiar layered pattern,
similar to the seven-layered Open System Interconnect (OSI) model that
has been successfully used by the network engineering community. The reference
model is important in that it enables engineers and other professionals
to communicate with some consistency and clarity about the complicated
matters of the enterprise.
The OMA is the architect's tool for mapping infrastructure requirements to service specifications and addressing distributed, object-oriented challenges. The Object Request Broker (ORB) and four other parts constitute the OMA:
At present, there are 15 CORBA services in various states of completion. Instead of describing each of them, it's best to present them as they're categorized in the Object Request Broker-Object Service (ORBOS) architecture, as shown in Table 1. In contrast to some groupings that you may have seen, which organize the services by the date at which they were adopted by the OMG, ORBOS categorizes the services by their architectural relationship and functional capabilities. (It makes more sense to organize them just as you are going to use them.) The four categories of services include infrastructure, information management, task management, and system management. The infrastructure category includes services that are closely related to the ORB functions. The information management category is for data processing, storage, and retrieval. The task management category includes services for managing events and transactions. The system management category enables the management of the object life cycle, metadata, and licensing. (For more information on the services and ORBOS, see Inside CORBA.)
Service category | Description | CORBA services |
---|---|---|
Infrastructure | Includes services related to the ORB mechanisms | Security, Timing |
Information management | Includes services with basic capabilities for retrieval and manipulation of data | Persistent Object, Externalization, Properties, Relationship, Query, Collections |
Task management | Includes services to permit management of distributed object events and transactions | Event, Transaction, Concurrency |
System management | Includes services for the management of metadata, licensing, and object life cycle | Naming, Trader, Lifecycle, Licensing |
Are some services more important than others? To this question, you'll get many different answers depending on the problem domain, the business environment, and the requirements. However, some of the fundamental services you should expect to encounter include the Naming, Transaction, Security, and Event services. You probably already noticed some of these services in the mechanisms identified earlier in the overview of CORBA uses.
No discussion of the CORBA pieces would be complete without a mention of the Interface Definition Language (IDL) and the Internet Inter-ORB Protocol (IIOP).
Clients invoke the object implementation through the ORB using either the Static Invocation Interface or the Dynamic Invocation Interface. These are defined as follows:
CORBA involves more terms, but this introduction should be sufficient for you to get around with the OMA and the interfaces to the ORB. Other terms will be defined and discussed as they emerge in later articles.
The next article will describe a simple object-oriented development process for applying CORBA and provide a real-world example to walk you through the process. You'll analyze the billing system problem by defining the problem, extracting and discovering objects and behaviors, identifying those behaviors with respect to the OMA, and exploring design implications.
Many thanks to Mike Lee and Anne Szabla for their assistance in preparing this article.
Bob
Schlicher is a principal software engineer with AlterNet Communications,
a consulting firm that specializes in design, development, and integration
of distributed business applications using middleware solutions. He is
presently consulting and developing distributed enterprise solutions for
CSX and Owens Corning.
(2.98)
DevEdge Online FAQ
Developer Response Center Join DevEdge Program |
Copyright © 1998 Netscape Communications Corporation.
This site powered by: Netscape Enterprise Server and Netscape Publishing System 1.6. |