\setcounter{chapter}{4}
\setcounter{equation}{0}
\setcounter{figure}{0}
\chapter{Integrating World Wide Web
and Distributed Computing}
\markright{CHAPTER 5. WWW AND DISTRIBUTED COMPUTING}

The World Wide Web (WWW) has become a familiar place and a popular way for 
corporate and Internet users to publish and exchange information over networks. 
Base components of the WWW include: HTML, the markup language; HTTP, the networking 
transport protocol; and HTTP servers and Web browsers.
Both the concept and the mechanisms found in today's WWW have been known
and widely practiced in various software systems and 
applications before WWW was invented. These include the client-server
models in networking, hyperlink-oriented
markup languages in authoring (Latex, HTML, hyperlinked help systems, etc.),
and a data-transfer protocol (TCP/IP, PVM, etc.). Indeed, many existing
software systems and protocols such as FTP, Gopher, Archie, and News are naturally inherent
in the WWW. We can view the WWW as a
networking software integration framework that combines various software
components into a single, unified software infrastructure
and a new distributed computing paradigm for multi-media information systems and 
Internet-based applications. Based on this observation, 
in this chapter we illustrate how the
general software integration model proposed in Chapter 2
can fit naturally into the WWW environment. In Section 5.1
we show that the WWW client-server model is essentially a special 
dataflow model in a networking software
environment. We study issues in building general distributed
computing applications on the WWW in Section 5.2. In Section 5.3 we examine
a particular area of WWW application in integrating a relational
database management system into the Web environment. The last two
sections give detailed case studies in WWW software integration:
Section 4 describes an Internet
collaboration system built on the Web and a parallel Oracle RDBMS system;
Section 5 is a WWW search system. 

\section {Introduction to WWW Client-Server Model}
Client-server architecture has been a major execution model
in networking and distributed systems. It is 
widely used in the computer industry, ranging from database access,
file and printer sharing, and desktop windowing systems to
information resource sharing/disassimilating.
The World Wide Web adopted
the open architecture of a client-server model for networking navigation
and multimedia information concerning authoring and publishing.
The fundamental architecture of the WWW is built on the client-server
model.

\begin{figure}
\centerline{\epsfxsize=430pt \epsfbox[70 70 550 680]{chapter5-database/arch.eps}}
%BoundingBox: 50 530 550 720
\label{web-architecture}
\caption{The WWW Client-Server Architecture}
\end{figure}

As shown in Figure \ref{web-architecture}, major components of the
WWW client-server architecture include:
\begin{enumerate}
\item
{\bf Web clients}. Each Web client in the WWW runs on a 
machine that is different from Web servers.
It is usually represented by a single Web browser as the
(graphical) user interface, while one or more underlying processes
may be composed of the Web client program.
The Web
browser is not just an ordinary client program on top of the
operating system, but a
software interface on the local machine that provides an enhanced
software engineering environment through which various local
and global computing resources can be integrated to be present in front of the
end-user. Major features of the Web client include:
\begin{enumerate}
\item
{\sl A portable and uniform GUI for networking applications, such as
a hypertext-based document on authoring and publishing, multimedia
presentation, and data-access to databases and other centralized
resources}.
The GUI provides an abstraction layer on the underlying
operating system and communication that is independent of
client platform and server locations.

\item
{\sl Desktop intelligence that can be built into client computation}. A Web browser
assembles client requests or queries from
the GUI to be sent to a Web server and reassembles/analyzes replies or results 
received from the server. 
The emerging Web client technology
(such as Java \cite{java}, Javascript, and 
plug-in) can embed sophisticated desktop intelligence
and significant computation into the client program, either tightly or loosely
integrated with the Web browser. For example, all data integrity validation
in a client-server database application can be done on the client side.

\item
{\sl A source of originating requests in an event-driven fashion}.
The GUI on a Web browser is basically an event-driven interface. For instance,
the event of a mouse clicking on a hyperlink generates
a request to be sent to a remote Web server for service. Other non-event-driven 
applications can be accommodated, in which case
the Web browser is merely a GUI front-end for display.
In a typical Web client-server interaction, any request triggered by external
input is originated from the client, which can be viewed as the source
of the dataflow execution to be illustrated later in this section. 
Part of a Web client program is indeed a source module in our dataflow
integration model. The event-driven model is fundamentally a dataflow model,
commonly found in graphics and client-server applications.

\end{enumerate}
\item
{\bf Web servers}. Conventionally, a Web server is a software program that
runs on a remote host machine and listens to a particular network port
to handle requests from clients via the HTTP protocol. If the request is
for a file, the server simply locates the file and sends it back to the 
client. If the request requires more complicated processing on the server
host machine, the server uses a CGI program to spawn additional
processes to handle the client's request. To a broader extent, a generic Web
server can be an all-purpose software system that remotely handles
application requests over a network.
\item
{\bf Web client-server data transfer protocols}. The WWW has become
more than a single networking system. It is a networking
framework into which various conventional or
emerging network services and distributed software systems can be integrated.
Depending on the Web clients and servers, Web client-server data-transfer 
protocols can be quite different and diverse. 
When a standard HTML browser interacts with
an HTTPD server to gather remote HTML documents,
the native data-transfer protocol, HTTP, is used.
HTTP is designed for the rapid and efficient delivery of hypertext
materials. 
HTTP is a stateless protocol with a single transaction
per connection in order to be simple and to distribute multimedia data efficiently.
``Get'' and ``Post'' are the only message-passing primitives to
accomplish the ``send'' and ``receive'' functions between client and
server programs.
With emerging Internet technologies such as Java, 
other down-loadable
protocols can be used between different types of Web clients and servers.
These protocols can be either stateless or persistent, whichever is best suited to 
application-specific requirements. They can bypass the underlying HTTP,
or they can be built on top of the HTTP protocol or co-exist with the 
native HTTP protocol.
For example, JDBC \cite{jdbc} is a proposed open database connectivity 
standard that 
can be used to build database-specific protocols (possibly persistent)
between a Web client and a database server.

\end{enumerate}

Web clients and servers
have common features found in certain distributed computing
environments:
\begin{enumerate}
\item
{\bf Coarse-grained}.
In client-server architecture, due to the computation constraint
on client machines it is necessary that 
only one or a few client programs run on a local client machine.
Distributed client programs are in coarse grain. On the other hand,
Web servers are usually the gateway to a centralized resource and must
be able to handle a large number of concurrent client requests; thus they
are also coarse-grained.
\item
{\bf Distributed and heterogeneous}.
Web clients and servers can be on different platforms and operating systems,
from personal desktop computers to SMP multiprocessor machines. 
\item
{\bf Message passing}.
A request for service from a client to a server generally involves
the transmission of messages in each direction to transfer the request
to the server and to return the reply to the client. Until
the messages have been transmitted, the client
must wait. Thus the rate of progress in the client's work
depends upon the speed and responsiveness of the network.
Figure \ref{web-architecture} shows in simple form the sequence of actions
by the client, the network, and the server
when a request is processed.
\end{enumerate}

\begin{figure}
\centerline{\epsfxsize=430pt \epsfbox[50 80 550 720]{chapter5-database/webflow.eps}}
%BoundingBox: 50 530 550 720
\label{web-architecture}
\caption{The Web client-server model as a special case of the dataflow integration model}
\end{figure}

As shown in Figure \ref{web-architecture}, we can view a simple Web client-server
interaction via HTTP as a special form of the dataflow model described
in Chapter 2. Essentially, the client-server model based on HTTP
is a dataflow model characterized by two
key features:
\begin{enumerate}
\item
Activation of a process is solely dependent on the availability
of the arriving input data (client request or server result).

\item
Message passing between modules (processes) is only via
predefined input/output ports. 
We can view a typical Web client
or server as having only one input port and one output port in the
dataflow pipeline. Usually, the port number in a URL defines
such an input port on the server, while the client uses a single
port for both input and output. 

\end{enumerate}

\section{WWW and Java: A New Paradigm Shift in Distributed
Computing and Software Engineering}

The emerging Web and Java technology extends the base
capability and functionality described in the previous chapters and
opens a spectrum of opportunities for meta-computing
software development in areas that include:

\begin{enumerate}
\item
{\bf WWW virtual machine as a world-wide meta-computer for information
processing/distribution and parallel/distributed computing}.
It is generally agreed that
the Web will become a new software environment and 
an innovative operating system interface that will support both compute-intensive
and data-intensive distributed applications in which
a Web browser provides a uniform and portable GUI to access
integrated information services and computing resources 
available through generic Web servers.

\item
{\bf A Java-based object-oriented software engineering environment 
for Web meta-computing}. Java provides a new programming 
environment that can well support
a dataflow-based software integration framework for parallel and
distributed computing.
The advent of Java programming moves the conventional client-server
WWW architecture towards a server-server architecture and opens new
opportunities for WWW distributed computing. The main breakthrough
comes with the truly neutral, portable, and 
downloadable Java programming platform. For instance,
a downloaded Java applet can turn a Web client at runtime into a Java
server to communicate with other Web servers by using whatever message-passing
protocols the servers agree on.

\item
{\bf New Java-based parallel programming languages}. The high-performance Java
language or language interfaces from existing parallel programming 
systems to Java can be developed to bring a new dimension to
parallel programming. The object-oriented data parallel language,
HPJava \cite{hpjava}, is an example.

\item
{\bf Module authoring, publishing and distributing standards and systems for re-usable
module repository, composition, sharing and distribution}.

\item
{\bf Generic and domain-specific WWW-based PSEs}. The Web provides all the necessary
components and technologies to build distributed PSEs. Furthermore,
a PSE provides an ideal application platform with which to bridge the pervasive
Web technology and the pyramidic HPCC technology and applications.

\end{enumerate}

Although the current major use of the WWW is focused on distributed
information authoring, publication, and delivery,
we view the WWW as a more general software engineering
environment that can provide a better integration framework
to support distributed computing for a broader range of both data-intensive
and compute-intensive HPDC applications. Our vision and concept
are based on three main observations and findings:

\begin {enumerate}
\item
{\bf The universal and portable GUI provided by a Web browser}.
The Web browser, for example, Netscape Navigator from Netscape, Inc.,
or the Internet Explorer from MicroSoft has become a desktop
windowing front-end that is independent of platforms and operating
systems. It creates a Web-window environment that provides a visual and
topmost interface with which to access various local or distributed computing
services. All distributed resources are transparent to an end-user
under this interface. It presents a ``virtual world'' picture
on a local machine in which components actually come from 
geographically distributed places.

For our proposed framework, a Web client can be the GUI front-end
of a PSE to provide the following functionalities:
\begin{enumerate}
\item
Visual programming interface for composing and configuring flow networks
from distributed reusable modules. Related work can be found in \cite{webflow}.
\item 
GUI for capturing user input and displaying output.
\end{enumerate}

Instead of developing new software, we can reuse most of the Web client technologies
for the component technologies required by a particular PSE.
The emerging Java programming provides an excellent client programming environment for
GUI design, networking, and graphics.

Web-Windows \cite{webwindow} explains this concept in more detail and its
implications for HPCC and MPP programming environments.

\item
{\bf ``Compute-Web'' servers as distributed daemons in a general-purpose distributed
computing system}. The WWW itself represents
the largest meta-computer, with some 20 million potential
nodes world wide. This potential is expected to grow by a
factor of 10 as the Information Superhighway is fully deployed.

By extending a Web server's computational capability and
using HTTP protocol for point-to-point message passing
between distributed Web servers, a naturally integrated
distributed computing environment in the WWW can be built on the
sessionless and dataflow-based client-server framework.
For example, a simple proof-of-concept,
Web-based distributed computing framework based on the extended
``Compute-Web'' servers using the CGI extension has been proposed in \cite{webwork}.
With emerging and fast-growing Web technology such as Java,
there can be many approaches for extending current WWW client-server
architecture into a fully distributed computing environment.
Instead of exploring different approaches toward building such a
Web-computing framework, we emphasize here the concept and 
feasibility that Web provides for a general software
integration environment for networking applications.
In Chapter 6 we outline an implementation plan for the 
proposed dataflow framework in WWW and Java.

\item
{\bf The World-Wide Web Virtual Machine (WWWVM)}. The WWWVM is the distributed
software basis for a publication-based model of
computation in which existing Web servers
collaborate to provide simple, coarse-grained dataflow among
Web-published software modules. Dataflow is 
the fundamental message-passing paradigm for WWW-based
distributed computing. The core technologies of WWWVM
are the existing standards for client-server interaction and data
exchange now in common use (CGI, HTTP, HTML, MIME).

\end{enumerate}

Clearly, the current Web is not the place in which to
explore complex parallel algorithms with stringent latency
and synchronization requirements. However, the Web provides
an excellent integration framework for coupling certain
HPDC applications at the task-parallel level that  require only
``embarrassing parallelism'' and that are suitable for the high functionality,
but modest performance, of the Web. It naturally inherits a coarse-grained
software integration model and is insensitive to the modest bandwidth
and high latency of current geographically distributed HTTPD servers. 
Two major areas in which we believe the WWW
can play an innovative role in
linking various parallel
and distributed computing components are Web/RDBMS and Web-based
collaborative systems.

\section {Web and RDBMS Integration}
Over the last twenty years many new technologies have been
invented in both networking and database areas, with each driven
by and focusing on its own application needs. The representative
achievement in networking is the Internet as a major vehicle
boosting the networking industry, while in the database world
the maturation of the relational database management system (RDBMS)
enjoys the most widely accepted commercial application among
computing machinery. Although both worlds adopted certain
techniques invented in the other area, such as networking
techniques of the client-server, distributed
database, replication found in database systems, and common
database techniques of
data storage, caching, indexing and searching in networking 
applications, their development has
largely been done separately. The emerging WWW
applications on the Internet provide both opportunity and incentive
to integrate them in order to build interesting NII applications.

A typical Web server has a data repository to be accessed upon 
Web client requests. This data repository is structured in HTML pages
that correspond to ASCII files stored in a file system
on  the Web server host. In terms of information management, the current 
data repository approach used in the
WWW suffers the following limitations:
\begin{enumerate}
\item
{\bf Static HTML pages}. It is difficult to keep HTML pages 
updated automatically. HTML files are unstructured and full-text
oriented. Modifications of HTML pages are usually done manually.
No data consistency can be validated.
\item
{\bf No application logic in data storage}. Hyper-links are the only
means with which to represent logical relationships among
information entities, which is only a hierarchical 
relationship. Application logic has either to be built
into sophisticated HTML page design or simplified. No data integrity
concept can be enforced.
\item
{\bf A plain file system for data management}.
The file system usually provides only primitive functions such
as open/close, read/write operations to raw data files. 
\end{enumerate}

A database management system provides
a software system developed to store, manipulate and manage
data in a reliable and efficient way. By integrating
an RDBMS server into the WWW, a Web server can be enhanced with:
\begin{enumerate}
\item
{\bf A dynamic data processing engine}. All client requests are assembled
as data queries to the database engine for real-time processing, and
query results are generated on the fly so that they are the most
updated and consistent with other data entities in the database.
Data caching and access concurrency control are handled transparently
by the engine, making it possible for access and query performance to be optimized
with well-established database optimization techniques such as
shared query-parsing, intraparallelism, and
cost-based query optimizations.
\item
{\bf Conceptual representation and organization of data entities
and their relationships close to the real-world}. 
Information is no longer stored as raw format in physical
data files. Instead, it is stored in tables that fit into an
application
logic and conceptual structure of the application domain. An RDBMS server
employs a simple, yet powerful, relational data model for information
management and processing.
\item
{\bf A backend search engine supporting complex queries}. Other than
simple file access, an RDBMS can supply various views and data
access patterns to the same data in the database, using
the well-established Structured Query Language (SQL) for sophisticated database
programming and HTML page customizations.
\end{enumerate}

On the other hand, the WWW brings a new dimension into traditional
database applications in that:
\begin{enumerate}
\item
The WWW provides a portable and transparent data access and networking
interface to centralized remote databases, independent of client
platforms and operating systems. HTTP can be the data transport
protocol between a generic Web/DB client and an integrated Web/DB server.
No proprietary client-server protocol is needed for distributed
data access, and a truly portable networking protocol can be standardized
to facilitate data access of a single portable client program to
multiple, distributed databases from different vendors. This has been 
a long-sought goal by ODBC in database industry.

\item
The WWW browser can be a universal GUI for hypertext-based data
retrieval. It can be a common software environment in which various
database client programs can be embedded and enriched to integrate
with other software components required in a database application.
For example, the search interface for ordinary end-users can have
the same Web-based look and feel as that for
a system administration used by a database administrator.

\item
Together with the advances in Internet networking infrastructure,
the WWW provides an opportunity to build a truly globally-shared
information system for maximum data dissemination and sharing. Valuable
information stored in a central place can easily be accessed from
anywhere around the world.

\item
With the rich presentation and publishing advantages in the WWW,
an integrated multi-media information system can be built
for data-intensive applications by combining other emerging WWW technologies
with RDBMS systems.
\end{enumerate}

\begin{figure}
\centerline{\epsfxsize=450pt \epsfbox[70 410 550 720]{chapter5-database/wow.eps}}
%BoundingBox: 50 530 550 720
\label{wow}
\caption{Linkage of Oracle RDBMS servers to the Web}
\end{figure}

The open architecture of a client-server model serves the common base
to naturally link RDBMS servers into the WWW environment. 
Figure \ref{wow} gives the configuration of an integrated Web/Oracle
system. It is used in this chapter's case studies.
More system integration issues will be covered in the case studies.

Parallel RDBMS technology represents a major maturation and 
adoption of the general-purpose parallel computing and software
in the commercial world. Targeting
data-intensive applications that require a performance of
data-processing beyond that of a single RDBMS server, 
a parallel RDBMS employs a wide range of parallel processing approaches
on general-purpose distributed and parallel systems, including
parallel I/O or parallel file systems, parallel query algorithms, high-speed networking,
data and task decomposition, and parallel cache management. Appendix D.1 
gives a technical overview of the parallel Oracle7 RDBMS server on an IBM SP2.

In the next case study we point out that
by integrating the WWW with parallel RDBMS technology, such as an Oracle
parallel server on an IBM SP2, we can achieve the seamless deployment of
high-performance server technology into the 
reach of a wide range of users. The user and application base is
far bigger than the
traditional HPCC community,
as WWW software has rapidly become a popular software
commodity with fast-growing acceptance in society, industry,
and large installations of Web-client and server software around the world.
We expect the open WWW architecture and rich environment
to attract more and more  of both traditional and new applications
and that distributed computing will eventually shift to a new paradigm of
Web-top software engineering environment.

\section {Case Study I --- A Web and Parallel RDBMS-Based Information 
System for Internet Collaboration}

This section describes how a parallel Oracle RDBMS server is  
integrated into the World Wide Web environment to build a powerful 
Internet-based information system for a set of email-based collaborative 
applications, including a USENET newsgroups archive, a mailing list archive, 
searchable mailbox, and a chat/bulletin board. 
Major development issues in system architecture and interface design 
are highlighted. 

By integrating Oracle as a backend search and computing engine
into a WWW server to store and manage email-based information
entities, we build a Web-based collaborative
information system. This system can facilitate and archive Internet email-oriented
collaboration in the forms of USENET newsgroup articles, 
mailing lists, personal mailbox emails, and chat and bulletin
board messages. It has a hypertext-based search interface that 
can access a variety of search capabilities built on
the structured and nonstructured attributes of email
messages, including search by keyword, subject, sender, date, thread, and
URL. 

This case study illustrates the
concept of bringing traditional database technology into the Internet and
a Web environment so that the WWW becomes an integral part of data access
and generic interface
to a parallel database system.
Most important, an RDBMS
becomes a powerful computing backend and information management engine
to a WWW information space.

The prototype system is configured on an MIMD parallel machine IBM SP2.
The high-performance server technology of parallel Web servers and parallel
Oracle RDBMS servers is employed to demonstrate the integration
of parallel architecture into WWW applications. Appendix D.2
describes in detail this integration work.

\section {Case Study II --- WWW Search Systems Using 
SQL*TextRetrieval and Parallel Server for Unstructured Data}

The WWW can be viewed as a giant distributed database (or data repository) where 
data entities are stored as HTML pages on Web servers that are mostly 
nonstructured or poorly structured text documents and where logical relationships among 
Web pages are represented by ``hyperlinks'' in HTML. The interactions between a 
Web browser and (remote) Web servers via HTTP can be seen as the (network-based) 
access interface/transactions between the database client and server, where browsing, 
i.e., clicking by following hyperlinks, is the simplest and most primitive search/query 
activity in the database such that no sophisticated search engine is required except 
for a file system on the Web server. Depending on the client's browsing scope, 
the content of the distributed database can be as small as a single Web site, or 
it can be as big as all the Web servers on the whole Internet. With the daily 
growing volume in WWW space, it becomes impossible to rely solely on ``browsing'' 
to quickly and accurately locate/discover relevant information on the WWW. One 
natural solution is to build Web search systems. For the distributed WWW database,
 one can view such a Web search system as a centralized meta-index database where 
text indexes of the distributed data repository are built and stored at a central 
place to speed up the ``browsing'' process.

There have been many approaches for building such a Web search system. 
For example, Yahoo \cite{yahoo} used a ``Yellow Page'' paradigm to 
catalog Web servers by some predefined criteria. While many WWW 
indexing services like Yahoo adopt such approaches close to WWW 
technology, we are primarily interested in employing 
a well-established, mature database and information retrieval technology to 
build Web search systems. This approach has also been used in 
current main-stream Web search systems, including Alta Vista \cite{alta}, 
OpenText \cite{opentext}, Lycos \cite{lycos}, and InfoSeek \cite{infoseek}.

In this case study we describe our experience in developing  Web search systems  
using  Oracle's  SQL*TextRetrieval. In the prototype system we index/store HTML documents of 
remote Web servers, and SQL*TextRetrieval is used to index full text and other structured  
data in the ``Web space'' and to provide an efficient search engine for free-text search.  
The Web enables  global access to and maximum information  sharing  with  
a  hypertext-based  text  retrieval system.  Using  Oracle's  free-text retrieval technology,
various search options are implemented, including  basic word stemming and phrase, 
fuzzy, and soundex searching, as well as more advanced proximity search and concept search. 
The prototype system is implemented on a multiprocessor parallel machine IBM SP2
where a parallel Oracle 7 with parallel server and query options is used. This case study shows
how high-performance parallel server technology (a parallel RDBMS server on an MIMD parallel system)
can be integrated into the WWW to build advanced information systems 
with which to deal with unstructured data
elements. The prototype system is a fully integrated Web-search system consisting of
a Web gathering system, an indexing system, an RDBMS-based search engine,
and a Web-based search interface.

A detailed description of this case study and the prototype system can be found in Appendix D.3.

\section{On-going Research and Development in WWW Software Engineering}

Many similar investigations
and development efforts along the theme of this thesis have been conducted recently
in the area of emerging WWW and object-oriented technologies.
We expect more in-depth work with significant results to be
achieved in the following research issues and related areas: 

\begin{enumerate}
\item
{\bf Extending object-oriented technology
to a software component architecture and system}. 
Work in progress includes CORBA \cite{corba}, the emerging WWW and Java technology 
(in particular JavaVM \cite{java} and JavaBean \cite{javabean}), WWW/CORBA \cite{wwwcorba} and 
WWWVM \cite{wwwvm}.

\item
{\bf Software libraries and runtime systems for creating
distributed applications from collections of reusable software modules}.
More specific research topics include graphical user interfaces for specifying topologies
of distributed applications and direct manipulating state and connectivity of remote
modules, a graphical coordination language to 
separate communication from computation for a uniform communication
abstraction that is independent of languages and operating systems, and visual programming
interfaces and scripting languages.
Examples: EUPHORIA \cite{euphoria}, Java Workshop \cite{javaworkshop}, 
ActiveX \cite{activex},
WebFlow \cite{webflow}, \cite{gregor},
AVSExpress \cite{avs1}, and Darwin \cite{darwin}.

\item
{\bf Applications that explore the idea of dataflow-based integration 
architecture to assemble reusable parallel/distributed modules and functional 
components in HPDC environment}. Some of the major efforts
in HPCC include MOPAC/AVS,
MetaWeb \cite{metaweb}, PSEs.

\item
{\bf Prototype implementation of a component framework in Java, WWW and CORBA}.
For example, InfoSphere \cite{infosphere}, WebVM \cite{webwork}, JavaBean \cite{javabean},
Java RMI \cite{rmi} and JavaSpace.

\item
{\bf Extensions of Web servers to include mechanisms/support for WWW distributed computing}.
Together with the rapid adoption of the Java programming platform, the development of
the Java-based generic Web server has been a major effort in a new generation of WWW technology.
Major work in this direction includes JigSaw \cite{jigsaw}, Servlets \cite{servlet},
Jeeves \cite{jeeves}, HTTP-NG \cite{httpd-ng}, and FastCGI \cite{fastcgi}.

\item
{\bf APIs for specifying various programming interfaces and 
software environments under
an software integration framework}. Examples: Java APIs \cite{java}, JDBC \cite{jdbc},
Java IDL \cite{javaidl}, CORBA.

\item
{\bf Application of a software integration system in PSEs and collaborative systems}. Examples:
InfoSphere, NexusJava \cite{nexusjava}, WebSpace \cite{webspace}, MetaWeb, Habanero \cite{habanero} and WebPSE.

\end{enumerate}
