Introduction
In today's world of information technology, distributed object-oriented solutions are becoming the backbone of the enterprise. In little over a year, the Internet - in it's most visible form, the World Wide Web - has transformed from a technologist's hunting ground, to a maelstrom on incoherent data, to the cornerstone of the enterprise information network.
The current exchange of information between browser and server on the web will be extended to communication between business objects across enterprises. According to the Meta Group, object technology will become an integral part of mainstream organizations within the next three years. The task of integrating the world of business applications into one communication model is not an easy one; Enterprises have large legacy systems, use a wide spectrum of platforms, and pose high requirements for robustness, reliability, and scalability in their processes.
Before enterprises can fully move into distributed computing, there are two areas that need to be addressed. The first of these is a requirement for significant advances in the quality and features of the communications middleware, namely CORBA and DCOM. A second problem is the requirement for methodologies and tools to aid in the development of the distributed objects, particularly in the area of conversion of existing, legacy data and systems to distributed objects.
Unfortunately, building scalable reliable and extensible distributed applications from reusable components requires sophisticated infrastructures and higher-level object services that do not fully exist today.
Communication Models: Take your pick
The founding technology behind distributed object development is object middleware. Object middleware provides an object model to design reusable components while hiding communications details behind highly abstracted interfaces. Two standards have emerged to address this issue: CORBA and OLE/DCOM.
CORBA was defined as a standard by the OMG in 1991. The CORBA architecture was specified to enable objects to interoperate across networks. The core Object Management Architecture defines an object model for business objects and a framework of object services and facilities for different tasks and problem domains.
The OLE/DCOM architecture evolved from the early object linking and embedding mechanism for compound documents in the Microsoft application architecture. The generalized object communication later, called Component Object Model, was introduced in the second version of OLE. Later came DCOM which supported network communication. DCOM is also providing object services and facilities much like CORBA, including transactions and database mechanisms.
There are certainly differences between the two models, but both CORBA and DCOM provide distributed infrastructure and object services for transparent activation and accessing of remote objects; thereby freeing the application developers from the many of the tasks of low-level network programming. The result is a object bus or back plane into which component objects can be plugged.
As noted above, the major problems with both of these products is a lack of standardization, missing services and questionable quality. For the leading edge developer, these are not seen as serious problems, but simply as bugs to be worked around or patches to be implemented over the weekend. But for a major corporation building distributed systems, it is a requirement that the software works, that it supplies all the required services (trader, names, events, transactions, etc.) and that it doesn't matter which or who's version of a service is being talked to.
Upgrading Legacy Data
Given the presence of the middleware in whatever form, a component developers can then create reusable binary components while application engineers build business applications by tailoring, configuring and integrating the components. Under this division of labor, both groups rely on the infrastructure providers to provide connectivity and other computational resources required to ensure quality of service.
One type of component being built is the ability to capture legacy relational data in CORBA objects which can be utilized by Orbix to build distributed applications. IS organizations have been forced to hand develop CORBA adapters to solve this relational to object problem, which can be a daunting task, since in many cases the problem of data management can easily represent 50% of a projects total effort.
Corporate data is often stored in reliable relational databases which are used by many legacy applications and are well supported by the corporate infrastructure. However, the relational paradigm is not consistent with the present day programming paradigm that has evolved to meet the needs of the networked, object-oriented world. PRO/Enable automatically bridges these two paradigms, providing the reliability and infrastructure of relational systems and the productivity of object oriented design and implementation.
The relational model pertains to data and relationships between the data. The model omits the behavioral and dynamic aspects of the domain entirely, although relational databases have added triggers and procedures to enforce these aspects. The relational model is simply not designed to model the problem domain in its entirety. As a result, applications must realize the behavior in business logic on the client side and through the use of various stored procedures.
The object model is an abstraction of a certain real world domain that reflects the behavior and dynamics of a system. It focuses on defining clear interfaces between components, while hiding the internal complexities of each. The object model is capable of expressing object relationships.
PRO/Enable (Persistent to Relational Object/Enabling), from Black & White provides a highly graphical, easy-to-use, solution to automate this mapping, modeling and coding problem; thus significantly reducing the overall coding effort. PRO/Enable is an industry standards based product for persistent relational-object mapping and application development on UNIX and Windows platforms. PRO/Enable offers a practical and sensible approach for implementing three-tier object oriented applications while leveraging the powerful capabilities of relational systems and preserving substantial investments already made in enterprise data.
Products like this need to become available in the marketplace to allow the creation of distributed components and to facilitate the building of distributed systems.
Future Trends
The next step in distributed object computing is the creation of business objects and business object frameworks. Large enterprises are relying on middleware providers to provide the groundwork for these objects. Development teams need to be able to focus on their business and not have to worry about which services are available, where they are available and how well they work. In addition, services are needed which can take existing legacy data and systems into the distributed object realm.
When all of these services are available, users will be able to quickly put together business systems that can facilitate communication with customers, suppliers, and offices around the world. The business objects developed in this scenario would have the ability to communicate with other business objects, would be able to identify themselves and other objects as they send and receive messages, and would be able to easily group together multiple actions into transactions which could be transmitted and if necessary, undone.