Object-oriented (OO) technology has emerged in recent years as the clear choice for developers of large, dynamic applications. OO technology allows developers to encapsulate data and operations in units called objects. Each object is independent of others, and groups of objects cooperate to solve specific problems. This paradigm allows for a reduction in software development time and improved maintainability and code reuse over traditional software engineering techniques.
These same principles can be applied to distributed systems to provide robust, client-server architectures that act in a highly independent, yet cooperative manner. While standards for OO technology have been under development for a decade or more, only in very recent years, with the emergence of the Common Object Request Broker Architecture (CORBA) standard 2.0 (1996) did a viable vendor-neutral OO interoperability solution become available. Enhancements in the form of CORBA 3.0 have since been added, and commercial support has continued to gather momentum with users embracing the new technology as a vital tool for interoperability support. The use of ORB technology allows digital data structured as objects to interoperate among different OO programming languages, databases and systems. Client and server objects on different platforms communicate requests and data through a common language known as the Interface Definition Language (IDL). In addition to the open CORBA standard, there are also vendor-specific protocols for distributed objects, including DCOM (Microsoft) and DSOM (IBM), as well as OSF's DCE.
In this special issue, we present a set of papers that covers topics ranging from the optimization of distributed systems performance to the implementation of application-specific programs for a distributed OO environment. The first paper (Hawick, James and Mathew) introduces an architectural framework designed to address the specific performance and other issues associated with wide-area network computing. Next, Chatonnay, Philippe and Chan use a CORBA-compliant system as a testbed for evaluating a multicriteria placement manager for distributed applications. Periquet follows with an article that espouses the concept of mobile computing as a meta-level programming issue. An implementation to validate this idea is presented in the form of a video delivery component.
The second half of the issue focuses on applications. An in-depth description of JAWS, a customized high-performance object-oriented web server, by Hu, Pyarali and Schmidt, leads off the section. This is followed by an article by Rukoz, Leon and Rivas on a tool for constructing distributed applications for the analysis of biomedical images. Finally, a parallel distributed implementation of genetic programming and the resulting promising performance results are given in the concluding article by Duggan, Tanev, Uozumi and Ono.
We believe this compilation of articles is a good representation of the associated issues, as well as the applicability, flexibility and advantages offered by distributed OO systems. In conclusion, we would like to thank each of the participating reviewers for their help in ensuring the quality of the material in this issue.
Maria Cobb and Kevin Shaw