WWW: Beyond the Basics

19. World Wide Web and Object Technology

19.2. Paradigms for distributed computing

As the web continues to evolve, its 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 that runs among all these applications 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 applications involve highly interactive client-side processing (such as a fully functional GUI interface), as well as a median for the client to communicate with the server over the Internet. Distributed objects provide a particularly useful mechanism for this client-server communication.

Distributed object architectures are the software frameworks required for building and using client/server applications that use distributed objects. Distributed objects, as defined earlier, are packaged as independent pieces of code and can be accessed by local or remote clients via method invocations. Clients do not need to know where the object resides or what operating systems it executes on. The framework also provides an infrastructure for supporting a large number of servers and applications that can spawn any number of transactions.

A common set of services and capabilities provided by existing distributed object architectures is as follows:

In this section we will talk about three existing Distributed object architectures viz. CORBA, Java, and DCOM, and try to compare and contrast them.

19.2.1. Common Object Request Broker Architecture (CORBA)

CORBA is a product of an industry consortium of 500 odd companies called the Object Management Group (OMG). It is a set of specifications for providing interoperability and portability to distributed object oriented applications. CORBA-compliant applications can communicate with each other regardless of location, implementation language, underlying operating system and hardware architecture. The next chapter (Chapter 20) covers CORBA in detail, so this section will only give a brief introduction to CORBA.

CORBA is composed of five major components:

CORBA supports static method invocations as well as dynamic method invocations on remote objects through its Dynamic Invocation Interface (DII). CORBA 2.0 also defines a standard for inter-ORB communication, called the Internet Inter-ORB Protocol (IIOP). IIOP is basically TCP/IP with some CORBA-defined message exchanges that serve as a common backbone protocol. Thus, we can see that CORBA provides all the services outlined in the common set of services for a distributed object architecture. For more information on CORBA please refer to the next chapter. Orfali, 1996 is an authoritative reference on CORBA.

19.2.2. Java

In this section we will talk about Java in the context of distributed computing. First of all let's discuss some basic facts about Java. More information on Java can be found in Chapter 21.

Java specifies a "bytecode" representation for compiled Java programs rather than a binary representation. Java bytecode is platform independent and is transportable over a network. It can be interpreted and executed by a "Java Virtual Machine" (JVM) - a run-time executable available on an ever-growing number of platforms. The implication is that behavior, and not just data, can be downloaded to a client and executed locally without any sort of setup or compilation.

The main advantages of Java for distributed computing come from this capability to download behavior. Java enables three fundamental capabilities:

In spite of these capabilities, in terms of a full-fledged distributed object architecture, the current implementation of Java (JDK 1.02) lacks quite a few things which are as follows:

Recent Initiatives for Distributed Computing

JavaSoft is in the process of developing some new APIs for inclusion in the new release of Java (JDK 1.1) These APIs address the above mentioned shortcomings of Java, make it a more suitable medium for distributed computing, and a better, more robust distributed object architecture. What follows is a short introduction to these new APIs.

19.2.3. Distributed Component Object Model (DCOM)

DCOM is Microsoft's standard for distributed computing. It is a third important standard to consider in the world of distributed objects. It is an extension of Microsoft's Component Object Model which forms the foundation for the Windows platform. The beta version of DCOM for Windows 95 was announced recently. It is also called Network OLE, as it supports distributed OLE controls. DCOM is based on Open Software Foundation's DCE-RPC specification for providing distributed services. It forms the basis for the recently announced ActiveX technology.

19.2.4. Comparing paradigms

Let's take a short look at the relative merits and demerits of CORBA and Java.

Following is the exact reproduction of an answer to the question, "How is RMI related to CORBA?", taken from the official RMI FAQ:

Although, Microsoft's DCOM is a relatively new standard, it has the potential to offer a tough fight to CORBA and Java, because of the wide popularity of the Windows desktop and the large number of applications available for it. More information on DCOM can be obtained from Microsoft's DCOM site.

 
[PREV] [NEXT] [UP] [HOME] [VT CS]

Copyright © 1996 Ashish B. Shah, All Rights Reserved.

Ashish B. Shah <ashish@csgrad.cs.vt.edu>
Last modified: Tue Oct 29 11:59:59 1996