Poseidon House, Castle Park
Cambridge CB3 0RD, UK
The world of real objects is meshing ever more closely with the Web. The rapid growth and systems penetration of the WWW has happened over the same period in which distributed object systems, and particularly the CORBA architecture, have stabilized and matured fully. CORBA is now seen as being the foundation of long term information systems strategies, both for integrating legacy systems and futureproofing new systems.
Coupling the WWW and CORBA has a number of obvious benefits. The CORBA developers and vendors gain access to the rapidly growing markets created by the WWW, and the Web world gains access to services built using CORBA capabilities, which are more powerful than the simple model built on push and pull of HTML pages employed in the WWW. Integrating the two worlds makes the best use of the available standards rather than requiring new ones to be defined.
Since the WWW4 conference in Boston, the CORBA vendors have started announcing WWW interoperability products and add-ons. This holds out the promise, along with the availability of Java and similar technologies such as Spinergy as WWW programming languages, of keeping the WWW user interface and functionality model while using CORBA capabilities, services, and facilities to develop a wide range of applications that make use of sophisticated distributed systems techniques transparent to the user.
The panel will discuss the problems that arise in integrating new kinds of object system with the Web, the growth of Intranet systems, and how distributed object computing will affect the future of the Web itself.
Maturing object technologies such as CORBA still need to be enhanced significantly in order to meet the foreseeable demands that will be placed onn them by the demands of use by individuals and corporations. Foreseeable necessities are
Mark Madsen is a System Architect at APM/ANSA in Cambridge. He has held research positions at the Universities of Cape Town, Sussex, Lancaster, Portsmouth and Leicester. He holds a B.Sc (Honours) in Physics and an M.Sc in Applied Mathematics from Cape Town, and a D.Phil in Astronomy from Sussex. Since 1980 he has been involved in projects as diverse as housing demand prediction, physical system simulations, biomedical treatment analyses and evaluations, distributed real time multimedia systems, and distributed information systems design. Since joining APM in 1995, he has contributed to the ANSAweb architecture, and is presently continuing ANSA research on the WWW as well as working on Internet security issues, in his role as Project Director of the European Commission's E2S Project. Mark is designated co-chair of the planned URC working group of the Internet Engineering Task Force.
Object technology is the next big paradigm shift for the World Wide Web. When combined with "Web-aware" object oriented languages and toolkits (like Java and Modula-3), the World Wide Web can become the predominant platform for software development. A number of advantages come from the confluence of these technologies:
Steve Dossick is a Research Associate at the Department of Computer Science, Columbia University in New York, working with Prof. Gail Kaiser on the Oz Process-Centered Software Development Environment. He has held a variety of research and technical positions in industry and academia, most notably on the Research and Development team at Webster's Lexxicon Publishing in New York.
Assume that the client platform for accessing the Web has a component model to wire together binaries from multiple vendors that were written in any one of multiple languages.
Assume that the Web browser is using this technology to allow itself to be extended.
In such an environment, what are the best uses of distributed object technology? And what, if any, are the uses it is not suited for?
An object infrastructure is a general purpose tool. In particular, it is a programming productivity tool -- there is nothing an object system does that can't be programmed by hand. An IDL compiler, for example, relieves the tedium of writing code by hand to marshall data into packets; but such code can still be written. The analogy with other non-distributed programming support tools, such as C/C++ compilers and run time libraries, is quite strong.
Thus, we would expect the experience with such tools to be repeated for distributed objects. For most projects, the right thing to do is to write in C/C++ and use a compiler. But for some purposes, where every bit of size and performance has to be wrung out of the code, we still write in assembler.
The application layer protocols at the core of the Internet -- DNS, SMTP, NNTP, FTP, HTTP -- are the ones that constitute the bulk of the traffic on the Internet. These are the protocols everyone uses. These protocols are so critical to the success of the Internet that they are worth the years of effort by teams of experts that have gone into their design. For this reason alone they may always be designed by hand, not generated from IDL. And if we examine these protocols closely, we can see that they have features that extant object systems do not support (more on this later).
However, we can easily foresee that there will be many, many more application specific protocols than just the handful listed above. These protocols will not be as ubiquitous as the core protocols. They may not be designed by networking gurus, but rather by specialists in the application domain. For these protocols, distributed object technology will be the most efficient way to build the protocols and the applications in which they are embedded.
Object technology is the perfect way to support new Web media types: the browser can transparently and automatically download the digitally signed component that interprets them. Digital signatures allow the downloaded component, if it comes from a trusted source, to do things that might not be safe to permit code you couldn't trust.
Invent new "media types" for application specific protocols. The component for the new "media type" can be the client-side part of the protocol. Programming the protocol can be done using distributed object technology. The distributed object technology can even be the transparent remoting of the object technology used by the browser's extensibility mechanisms.
HTTP in many ways appears quite object-like. It has resources which have methods. However, its (implicit) type structure is richer and looser than that of most object-oriented systems. The reason for this is to allow for evolution and intermediaries. New headers (arguments) can be added to HTTP messages, and new parameters to existing headers, without breaking backwards compatibility, because they are restricted to be ones that can be ignored by the recipient if not understood. In some cases, there are mechanisms for intermediaries to delete headers that they don't understand.
DNS is interesting, because it will return information that was not requested, but that it thinks might be requested in the future. In RPC (OO or otherwise) terms, it is returning from calls that haven't been made yet. As you might expect, this is tricky to model by RPC systems.
One way of telling whether a protocol has features that aren't a good fit is to look at the best IDL you can write for the object-oriented equivalent of that protocol. If it has an array of bytes as its input and output arguments, then you really aren't taking advantage of IDL.
Other than for a relatively small number of networking gurus, those among us who will write Internet protocols are likely to do so using general purpose technology such as distributed objects that shields us from a lot of networking details.
The designers of distributed object technology should examine the core Internet protocols for inspiration on clever optimization techniques that could be incorporated into object systems.
Paul Leach is an architect at Microsoft Corporation. He was one of the founders of Apollo Computer, where he was the architect for their Domain distributed system and the NCS and DCE RPC systems. Since joining Microsoft, he has worked on their Distributed COM and Interactive TV efforts. He is currently working on Internet related advanced development projects, and a member of the IETF HTTP working group, the W3C HTTP-NG design team, and the IRTF Internet Information Architecture research group. He also holds an appointment as auxiliary Professor in the department of Computer Science and Engineering at the University of Washington.
The future of distributed client/server computing will consist of the WWW and Corba environments. First, WWW is the "killer application" of the 1990s thanks to its user-friendly uniform interface to access any distributed resource. Moreover, it provides standardized multimedia document formats (HTML and MIME). Second, Corba is the next generation of middleware thanks to its single uniform object-oriented view of distributed and heterogeneous systems integration.
But WWW users want many extensions: changing the HTTP protocol, integrating new kinds of Web resources, extending Web browsers and so on. This problem can be overcome by a uniform model of resource interface, and downloadable front-ends, that could be generically integrated in the WWW. The Corba object-oriented approach offers good properties to encapsulate and structure Web components under a same paradigm. It brings modularity, flexibility and abstraction to needed features encountered into the WWW.
It is important to note that a parallel can be made between a set of objects and an hypertext-linked set of resources. The hypertext navigational model can be used to navigate through Corba objects, and so the WWW can be used as a uniform ``any-object'' presentation and invocation GUI.
There are several different solutions to integrate the Corba and WWW worlds:
HTML form pages can be automatically generated from IDL interfaces. A WWW client can navigate through Corba object links using dynamically generated URLs for each object. Via this kind of integration, new WWW resources can be implemented by Corba objects.
Corba uses the Internet Inter-Orb Protocol (IIOP) to allow communication between networked objects. IIOP could become a new Web protocol with its own URL format (e.g. iiop://objectref.operation(parameters)). In the future, IIOP could replace HTTP to access any distributed Web object.
The next step is to design a browser as a set of Corba objects. New features will be Corba objects dynamically plugged in the browser. Then, such a browser will be an extensible dynamic browser which will allow the invocation of any Corba object through the same hypertext paradigm used in existing browsers.
Thus, I argue that WWW and Corba will merge to provide the next infrastructure for distributed computing.
Philippe Merle graduated from the Computer Science Laboratory of the University of Lille (LIFL) in 1992. He was involved in BOX: A Model and a Language for Concurrent and Distributed Object-Oriented Programming. Since 1993 he has been a postgraduate student in the LIFL, the subject of his Ph.D being a Generic Object-Oriented Dynamic Environment (GOODE) for dynamic cooperative applications using CORBA. He is a member of the OSACA project, a part of the Research and DevelopmentD program on Advanced Communication called "Ganymede" and supported by "Region Nord/Pas-de-Calais". He also gives some courses about distributed client/server programming and CORBA at a graduate and postgraduate level.
As the Web continues to evolve, it's role as a means of delivering information and entertainment content is expanding to include delivery of interactive services.
Examples of these services include stock trading, home shopping, home banking, package delivery, reservation systems, internet search services, and interactive chat services.
The common thread among all of these services is that they require a sequence of interactions between the user and a server (or servers). In the simplest case, all interactions are via HTTP with a web server.
More sophisticated service delivery applications involve highly interactive client-side processing (e.g., Java) as well as a means for the client to communicate with the server over the Internet. Distributed objects provide a particularly useful mechanism for this client-server communication. In particular, the combination of Java and CORBA enables the quick re-targeting of existing service delivery applications to the Web.
Guy "Bud" L. Tribble, vice president of Internet Strategy at Sun Microsystems Computer Company (SMCC) is one of the industry's noted experts in object-oriented programming and user interface design. At SMCC he helps guide the strategy and business direction for client and server systems aimed at the Internet and "intranet" markets. Prior to his current role, he managed the development of SunSoft's next-generation distributed object environment for Solaris (Solaris NEO). Before joining SunSoft, Bud was vice president of SoftWare Engineering and one of the six founders of NeXT Computer, Inc. He was the key architect of the NeXTSTEP operating system, a ground-breaking object-oriented software environment. He spent seven years at NeXT Computer where he had management and technical responsibility for all aspects of NeXTSTEP including object-oriented architecture and user interface design. Prior to NeXT, Bud ran the software engineering group at Apple Computer, Inc. While at Apple, he was responsible for starting up the entire Macintosh software engineering effort where he oversaw development of the software architecture, user interface design, and application programs. Bud earned a B.A. degree in biophysics from the University of California, San Diego, and an M.D. and Ph.D. in neurophysiology at the University of Washington.