Understanding Network Computing Concepts
Understanding Network Computing Concepts
Munindar P. Singh and Mladen A. Vouk
Department of Computer Science
North Carolina State University
446 EGRC/Box 7534, 1010 Main Campus Drive
Raleigh, NC 27695-7534, USA
singh@[Link], vouk@[Link]
Munindar Singh’s research is partially supported by the NCSU College of Engineering, the National Science Foundation under
IRI-9529179 and IRI-9624425 (Career Award), and IBM corporation.
grants
Mladen Vouk’s research is partially supported by the National Science Foundation under grant ACS-9696131, NASA, EPA,
and IBM corporation.
Contents
1 Introduction 1
1.1 What is Network Computing? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 A Brief History of NC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Scope and Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Applications 6
2.1 Enterprise Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Virtual Enterprises and Manufacturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Electronic Commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Computer Supported Cooperative Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 Scientific Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.6 Distance Education . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.7 Open Information Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.8 Ubiquitous Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Technologies 17
4.1 Distributed Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2 System Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3 Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3.1 Message Passing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3.2 Object Exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4 Itinerant and Stationary Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4.1 Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4.2 Communication Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5 Infrastructure 23
5.1 Computers and Operating Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.1 Network Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.2 Mobile Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.2 Networking Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2.1 Network Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2.2 Internet and Intranets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2.3 Network Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3 Network Functionalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.4 Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6 Research Issues 26
6.1 Formal Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.2 Interaction-Oriented Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.3 Quality of Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.4 Performance of NC Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7 Reading List 33
8 Cross References 33
3
1 Introduction
1.1 What is Network Computing?
The rapid expansion of the computing and communications infrastructure is not only enabling new grand
applications, but also influencing the science of computing in terms of
the metaphors with which we view computing
the architectures of computing systems
the specific technologies that realize those architectures
the tools and techniques with which we construct them.
The term often used for this new paradigm is network computing (NC). NC environments (NCEs) are en-
visioned as collections of interactive and cooperating programs, tools, clients, and intelligent agents. These
components are (ultimately) integrated into an “appliance-like” environment that facilitates users’ (profes-
sional, learning, entertainment) activities by maximizing active, friendly support for them and minimizing
their interactions with the underlying systems.
For example, consider a Network-Based Education (NBE) system, a typical NC application. The prime
function of an NBE system is to maximize knowledge transfer and retention to a large number of students
distributed in both time and space. The student user is primarily concerned with the availability and quality
of the educational material, often at times other than the ones when the lectures are given. The instructor,
another type of NBE user, deals with both in-class students and “live” remote students who attend the class.
The instructor’s immediate concerns range from the availability of the network-based presentation materials,
the ability to interact with both in-class and remote synchronous students, and the ability to capture class
materials and exchanges to enable asynchronous students to access the material at a later time. Neither
category is really interested in, nor has time, to worry about the underlying issues of network availability,
storage, throughput guarantees, and so on. The latter are expected to be provided by the infrastructures and
models that support NBE systems in a seamless and unobtrusive way, and enable the users to go about their
workflows of learning (students) and teaching (instructors) without having to give the NC “appliances” more
thought than they would to a pen, paper, chalkboard, or an overhead projector.
An example of a more general environment for NC is the World Wide Web (WWW) [10, 9]. It could
be the immediate platform for the above-mentioned NBE system (e.g., Web Lecture System [109]). The
supporting infrastructure is the Internet which can be thought of as the global computer network consisting of
computers running the Transmission Control Protocol/Internet Protocol (TCP/IP). The WWW is the subset
of the Internet that supports the Hypertext Transfer Protocol (HTTP). The WWW is almost always identified
with the HTML-based content to which it enables access. Beyond this low-level description, however, what
makes the WWW worth using and studying is the presence of the material that WWW supports.
Fundamentally, what makes network computing worthwhile in an engineering sense is the combination
of
the need for some resource-intensive “killer” applications, along with the opportunity for develop-
ing those applications in a network-centric manner to share the cost and maximize the utilization of
available resources
1
Figure 1: Perspectives on a Network Computing Architecture
2
the need to provide less demanding, but guaranteed services, to thousands and millions of users by
thousands of providers separated in both time and space.
This article surveys network computing in the large, as the intellectual discipline that underlies the
approaches that address both the grand and everyday applications of today. There has been some industry
interest in the concept of network computers, machines that may lack a local disk and rely on the network
for functioning at all. This is to be contrasted with the notion of national data and computing grids, which
promise to help ameliorate the resource crunch that is facing the nation and the Internet users. We view the
former as one specialized infrastructure and architecture for network computing and shall address it only at
a high level here, while the latter is more representative of the general network computing paradigm.
3
generation technology example data proc UI maint NW Mbps
central main DP S S S S
timeshare main, phone DP S S C S
C-S mini, LAN DBMS C/S C/S C C/S
Peer workstn, LAN CSCW L/R L/R L L/R
HPC main, workstn, OC3 OLAP L/R L/R L L/R
Limited NC workstn, ATM Office WF R L/R L R
Open NC workstn, Internet VE, EC R L L L -
4
Table 1 summarizes the key features associated with each generation of computing technology: central-
ized, timeshare, client-server, peer-to-peer, high performance computing, limited NC, and open NC. The
corresponding representative examples are file-based data processing (DP), database management systems
(DBMS), computer supported cooperative work (CSCW), office workflows (WF), online analytical pro-
cessing (OLAP), virtual enterprises (VE), and electronic commerce (EC). The data, processing, UI, and
maintenance columns are about the location of the corresponding functionality or component. C, S, L, and
R refer to client, server, local, and remote, respectively.
When computers were first networked in the sixties, they were expensive mainframes. The paradigm
of usage was time-share in which multiple users could access a single mainframe. All of the computation
was performed on the mainframe; the users communicated through plain terminals. With the development
of database technology and minicomputers and the expansion of computing into newer applications, this
paradigm was preserved although the size of the network grew and the type of end-user stations changed.
The early eighties saw the emergence of the client-server paradigm, which is a form of weak dis-
tributed computing. In this paradigm, the user sits on a computer, which handles the user interface and
other application-specific computation. The computer could be a genuine workstation-type computer, PC,
or an X-station. The client, however, relies on the server for all of its data management. The server can be a
simple file server or a database server. The latter also provides advanced functionality such as
concurrency control—to keep the various clients from inadvertently destroying each other’s work
transactional support—to guarantee atomicity of the work performed by a client
backup and recovery—in case of media or system failure
The client-server architecture can be thought of as based on the remote-procedure call (RPC) mechanism.
RPC provides a programmatic interface through which computing resources at remote hosts can be accessed.
However, its fundamental shortcoming is that it is synchronous or blocking—in other words, the caller waits
until the callee can produce a result. Thus it is not an efficient means to use computational resources.
The next generation of computing, already being deployed, is true distributed computing. This is also
called the peer-to-peer paradigm. In this paradigm, the different nodes exchange asynchronous messages,
in which neither party waits unnecessarily.
Interestingly, the WWW in its present incarnation follows the client-server paradigm. This is because
HTTP, the protocol that underlies the WWW is a client-server protocol. A browser (working as client)
can request information from a WWW server; the server cannot unilaterally send updates to the browser.
The next version of HTTP will, however, admit both the present pull-based paradigm and the peer-to-peer
push-based paradigm.
5
Consequently, we base our presentation on a workflow-based treatment of network computing. Work-
flows are a series of structured human tasks, computations and interactions among them that arise during
accomplishment of any set of focused activities (e.g, teaching, scientific problem-solving). In other words, a
workflow is a multitask activity that consists of human and computational tasks coordinated in an appropriate
manner. Workflows are often executed on a number of computer systems and over a number of databases.
Nowadays, it is common to associate such systems with agents. Although agents are a common buzzword,
all too often, agents may be nothing else but daemons, or specialized utility processes and programs that
help NC systems operate in a more integrated and autonomous fashion. In general, agents are persistent
entities with some autonomy, which perceive, reason, act, and communicate. The agent metaphor is a pow-
erful one, but only when coupled with the metaphor of interaction. When we couple the two, we obtain
multiagent systems. NC is fundamentally based on the notion of interaction. For this reason, we believe that
NC environments of the future will almost certainly be populated by hosts of agents of the latter kind. In
that context, four important layers of consideration are:
NC applications which refer to the end-user systems that may be thought of as providing direct support
in response to user workflow needs.
NC paradigms and architectures are ways of thinking about how user workflow needs may be provided
in distributed computational systems. They provide the means and methodologies for the global
design of systems that realize user applications.
NC technologies are system-level building blocks with which the global designs are instantiated.
NC infrastructures provide the network and computing system functionalities on which the above
technologies subsist.
The above concepts are discussed in more detail in the sections that follow.
2 Applications
Network computing has a large number of important applications. These applications, though in widely
different domains, share the characteristics that they are often large-scale, distributed, heterogeneous (both
in their software and hardware), open (in that they can grow and shrink dynamically), and composed of
locally autonomous units. We provide an overview of some of the most interesting and important problem
domains in which NC is applied.
6
databases, although individually useful, would not and could not talk to each other. Not only could the
knowledge of an enterprise not be put together, it was often also the case that the different databases were
mutually inconsistent. Naturally enough, this led to poor decision-support leading to losses in productivity,
quality and, ultimately, in the bottom line.
In a conceptual sense, integrating preexisting systems is in general a harder problem than designing
distributed systems afresh. Many systems, especially those based on older mainframe architectures, allow
data to be accessed only through narrow, inflexible interfaces. Such systems are frequently termed legacy
systems—apparently, the term was chosen with a disparaging connotation. Legacy systems and their in-
terfaces cannot be easily modified. No reasonable approach would try to modify them significantly. This
is because of two main reasons: (1) the complexity of the programming effort that would be required to
achieve any modifications, and (2) the constraint that older applications continue to run as before, since
they typically have a wide user base that relies heavily upon them. Thus, the integration must permit newly
developed applications to coexist with previous applications.
However, integrating preexisting systems has major advantages over implementing distributed systems
from scratch:
The existing systems typically serve important business functions, which it would be undesirable to
disrupt.
The need for the integration results from the growth or restructuring of an enterprise, e.g., because of
mergers and acquisitions, or because of a new way of understanding the information processes carried
out in the enterprise, e.g., because of reengineering or refocusing. This need is not of the sort that can
be addressed once and for all, but rather will naturally emerge again and again over time.
The integration offers an opportunity for preserving whatever we can of the autonomy of the individual
components. A redesign that results in a new conceptually monolithic system, even if improved,
would not be quite easy to reuse. This is because monolithicity is a liability whenever a system needs
to be modified. Modifications may be essential as needs within the components change, or another
restructuring takes places, e.g., to separate out the business divisions that had been put together before.
As a concrete example, on which one of the authors previously worked [98], consider a large company that
provides a variety of telecommunication services. We studied the workflow for establishing a telecommu-
nication link between two specified points (this is termed service provisioning). In the original workflow,
a set of paper forms was received that gave a number of relevant details about the service being ordered.
These forms were entered into the system. A test was then performed to determine if the telecommunica-
tions equipment required for the order was already in place. If so, the service could be provided relatively
quickly; otherwise, the processing would be delayed until the equipment was added.
In the original workflow, service provisioning typically would take several weeks and require coordina-
tion among many operation-support systems. Configuring the operation-support systems to perform such
a task often would take several months. Our goals were to reduce this time to less than two hours and to
provide a way in which new services could be introduced more easily. Our strategy for accomplishing these
goals was to (1) interconnect and interoperate among the previously independent systems, (2) replace serial
operations by parallel ones by making appropriate use of relaxed transaction processing [16, 35], and (3)
automate previously manual operations, thereby reducing the incidence of errors and delays.
7
The reduction in time is of competitive significance in the modern business environment. The US
telecommunications has gone through a phase of deregulation, which reduces or abolishes several govern-
mental regulations, but also enables new companies to compete in markets that were previously controlled
by government-supported monopolies. In the case of the enterprise we are discussing, a majority of its
competitors emerged relatively recently. As a consequence, the competitors typically had newer computing
systems, which were better optimized for the specific task at hand. As remarked above, this advantage of the
competitors is only temporary—as each matures and as regulations and other operating conditions change,
each of these would inevitably end up with a heterogeneous mix of legacy systems.
8
of as agents that can negotiate with another, and who can represent and reason about contractual details, and
commit themselves, i.e., be empowered to commit the human whose interest governs their actions.
9
and communications arena. These include sophisticated notions of workflow specification and of toolkits
and environments for describing and managing workflows, and recognition of performance issues that have
previously been reserved for analysis of networks (e.g., that end-to-end throughput observed by a user at the
application level will typically be that of the device or process with the lowest throughput capacity in the
path). In this way, NC supported scientific workflows are to problem-solving environments what business
workflows are to NC-based enterprise integration.
10
2.7 Open Information Environments
Open information environments were indirectly discussed in some of the applications above. They are
a unified way of thinking about environments in which information resources may be added or removed
dynamically. Thus the information resources are autonomous—a property they inherit from their human
owners. Current environments based on the WWW are usually open in the above sense. This is what makes
it difficult to enforce any consistency on the behavior of specific applications. A consequence of openness
is that standards emerge slowly and are typically “least common denominator” in their extent. Thus on the
WWW, HTTP, and HTML are standardized, but the content or even additional structure of the documents
served on the WWW are not. A number of other efforts and standards either exist, or are in the making (e.g.,
Open GL).
Open information environments require a wider variety of information access techniques. Traditional
structured or text databases support querying, where a query is formulated by the user, and its evaluation
yields some results that are returned by the database. We often have sources that produce information
continually in a stream of “articles.” Such information streams must be filtered, by specifying some kind of
a pattern that selects the desired articles.
A major issue in open environments is resource discovery because, unlike in closed environments, it is
not clear where a query or filtering request may be directed [88, 13]. Whereas in retrieval, the consistency
of the results is often an issue, in filtering and resource discovery, consistency is not well-defined, but the
relevance of the results is crucial. Retrieval and filtering are of about the same complexity in closed and
open environments, but discovery is significantly more complex in open environments. To be scalable and
manageable, it requires some kind of distributed indexing techniques [28].
11
of users. A typical distributed object environment is a combination of distributed user interfaces, agents,
object libraries, knowledge bases and a variety of enabling and integrating technologies that facilitate user
interaction (such as problem statement and solution engineering) and cooperative execution of the compo-
nents charged with the solution tasks, e.g., [38, 81].
This need for effective and efficient communication among the NCE components (or objects) is recog-
nized by both researchers and software manufacturers. In recent years, this has resulted in a proliferation of
communication building blocks, or middleware, for distributed scientific computing and problem solving.
The functionality and the mode of operation of middleware usually introduces extra overhead. This over-
head is accentuated in environments where the NC resources (such as workstations and supercomputers)
are interconnected by high-speed links (e.g., switched or Mbps links). Such an environment can
magnify any middleware communication deficiencies and make the middleware a major performance bottle-
neck. Some specific examples of the middleware (e.g., CORBA, DCOM, PVM, MPI), and its performance
are discussed below.
A higher-level issue associated with distributed objects is in the management of their interfaces. A
number of approaches, based loosely on the notion of directories—white pages and yellow pages—exist.
A type broker is an object, listening at a well-known address, which carries information about the “types”
supported by other objects. These types are not just the data types but include the signatures of the different
functions or services supported by those objects. An application can use a broker to find the objects that
offer services of a desired type and then communicate with them directly.
12
3.3 Multidatabases and Interoperable Systems
The conceptual schema of a database describes the structure and content of the information stored in a
database independent of its storage in physical memory [7].
Traditional databases keep all of their data at one site. This has obvious problems of access time and
reliability. Accordingly distribution of some kind is desirable. The simplest form of distribution is by
replication in which the different sites have the same schema. A variant is one which the information is
partitioned systematically to improve local processing and reduce redundancy. For example, each branch of
a bank may store only its local information. However, the schemas are the same everywhere. A more general
approach allows differing schemas, but the schemas are still built from the same vocabulary and are designed
to combine properly with each other. The local schemas are merely projections of the global schema, which
provides the sole way of accessing the database. The location and replication of the information is hidden
from the user. The above kinds of systems fall under the category of distributed databases.
More general and powerful approaches are obtained when the sites have different schemas, and the
schemas were not designed at the same time. Such approaches are heterogeneous in their schemas. Het-
erogeneity is typically not added by design, but arises because of a realization that the information already
stored in the various databases ought to be shared. New application programs are written that access in-
formation from the different databases. However, the previously designed programs that need information
from a single site continue to function as before. This is called a federated database or a multidatabase.
Interoperable systems are based on the ideas that the components and their schemas are entirely au-
tonomous. No global schema is required, although middleware would be required to make the already
functioning components interoperate. The data may be accessed through multiple applications and lan-
guages.
13
tems are owned and managed by different organizations or divisions of an enterprise, which cannot or
would not grant control to another agency.
The semantic requirements in heterogeneous applications are often complex and need more sophisti-
cated task structuring than ACID transactions [35].
14
Procedural Approaches The traditional approaches to programming and enacting workflows are proce-
dural. The workflows are specified essentially as activity graphs. Executable code is generated from these
graphs in a straightforward manner. Hooks are added in for whatever external procedures or applications
must be invoked. The implementer has to do a fair amount of system integration work in ensuring that the
databases are accessed properly and the graphical user interfaces reflect the ongoing state of the workflow.
Declarative Approaches A newer class of approaches is declarative. It is motivated by the fact that
activity graphs by themselves give no idea of the structural properties of the workflow, but higher-level
abstractions to capture the interrelationships among the composite activities must be captured.
The simpler abstractions involving control and data flow can be borrowed from the ETM literature. How-
ever, the sheer variety of ETMs precludes hardwired approaches for scheduling each ETM. The declarative
approaches provide a small number of primitives that can be used to specify ETMs [41, 24, 2].
The success of the declarative approaches depends on whether they include a language that is simple
yet expressive, and whether specifications stated in that language can be automatically processed. The
pioneering work of Chrysanthis & Ramamritham developed a simple temporal language that could capture
the scheduling aspects of all of the known ETMs. However, they didn’t study the scheduling aspects per se.
Work by Attie et al. [2] and Singh [91] has addressed the latter challenge as well.
agent management, by which agents can register themselves with some sort of a domain name server,
advertise their capabilities, be found, and have requests made of them.
15
! agent communication, by which agents may send meaningful messages to other agents to inform them
of various facts, to request services, or to promise services of their own.
! ontologies, by which the agents can share the terminology in which their assertions, requests, and
promises are expressed.
! interaction protocols, by which agents may participate in certain routinized interactions such as in a
specific auction protocol.
A de facto standard for multiagent system architecture is emerging. This architecture includes roles for
agents to represent human users, information resources, brokers, and ontologies. We return to this below.
Horizontal Integration of the Flows Education workflows are expected to coexist, cooperate and meld
with other user workflows. Therefore, they must support compatible interfaces and constraints. We call this
horizontal integration of the workflows at the level of end-users. For example, many students from indus-
try that work during the day may prefer to incorporate the majority of their continuing education into their
daily or weekly routine at times that suit them, e.g., evenings or weekends, because they cannot match their
work-place processes with the traditional school or college teaching workflows. However, this particular
challenge to traditional education workflows cannot be met without extensive technological and pedagog-
ical support which allows (1) decomposition of the synchronous teaching/learning cycle into a primarily
16
asynchronous component (with minor synchronous interactions), and (2) at the same time preserves and
maximizes the quality of learning and the knowledge transfer rate that is normally associated with the clas-
sical synchronous teacher-student interaction. Other functionalities are needed in the case of other types of
horizontal integration. This frequently requires strong support for collaborative activities.
Vertical Integration of the Flows Interactions and negotiations also have to take place between the end-
user layer of an NBE environment and the underlying infrastructure (platforms, software, computer hard-
ware, interconnecting networks) in order to provide the throughput, keystroke delays, jitter, and other ser-
vices, that an NBE application or user expects. We call this vertical integration of education workflows with
event, control and data flows that occur at infrastructure layers. The network- and platform-related flows
and QoS capabilities of the information infrastructure (e.g., power of the user platform, network capacity,
supercomputing facilities) have to be appropriately matched and interfaced with the needs of the user’s
educational and training workflows.
Applying workflow technology to a specific university course requires information about the syllabus,
participants (both faculty and students), schedules, and instructional facilities and technology, and devel-
opment of the corresponding operational profile. An operational profile is the set of relative frequencies
that tell us how often a particular function or capability is requested in practice [68]. Specifically, given
a syllabus, schedule, and the student profiles, one would first categorize the students by qualifications and
learning styles, then produce a mapping between the syllabus topics and the student learning models. This
would allow mapping of the needed content teaching approaches to content topics. This mapping may in-
clude the placement of feedback points, an estimate of the process feedback rates, location of testing points
and reinforcement of learned material. The final step would be to map these needs to NBE system func-
tionalities, based on instructor/author qualifications and preferences, available resources, etc., to obtain an
operational profile that needs to be supported during the course. The mappings and the operational pro-
file allow us to recognize teaching alternatives and introduce adaptive or fault-tolerant teaching into the
educational model.
4 Technologies
4.1 Distributed Computing
Typically, an NC environment consists of a number of cooperating subsystems. Each of the subsystems can
be a “mini-NC” consisting of modules that work together to solve a problem. This is more evident in an
environment where the workload is distributed among a number of machines. In fact, there is a growing
trend to view NC modules as (specialized) dynamic software parts or objects. For example, some can be
repositories for high-level scalable computational models which can be used by other network-based PSE
subsystems whenever necessary, others can be data centers, yet other can be actual (or virtual) computation
engines, etc. In general, an NC subsystem might be expected to export its functions to other subsystems
or allow direct user access to them through a graphical user interface (GUI). To accomplish this in an
effective and efficient fashion, it is usually a good idea to use software “glue” (middleware) that has an
established and tried performance and functionality. Effective NC presuppose some combination of the
following functionalities.
17
Unicasts and multicasts An NC subsystem that requires the services or functions of other utility pro-
cesses can obtain them by sending peer-to-peer messages requesting the service. For collaborative systems,
multicast (or one-to-many) messages are useful for collecting status information, notifying about events,
broadcasting common information, and so on.
Synchronous and asynchronous messages The communication mechanism should support synchronous
messages that allow client processes to issue requests to NC components and to wait until they receive
replies from them, and asynchronous messages that allow clients to issue messages and not wait for replies
for them. An asynchronous mechanism is important for systems that use messages to trigger functions and
to notify events.
Efficient data transfer Some NC subsystems, such as visualization or data-mining tools, may require
transfers of large volumes of data between machines. It is important that the communication infrastructure
be able to do this efficiently and without negative impact on NC system performance.
Interfacing with external processes NC components may need to communicate with other processes and
systems that are not part of the NC infrastructure but whose services or support are needed to solve a prob-
lem. In general, these outside processes may communicate using a protocol, messaging and communication
system that is not part of the NC environment. For example, a PSE subsystem may need to keep track of
other processes on a machine to calculate system load. Its communication infrastructure should allow and
support these external communication channels.
Remote access to services The utility of an NC may be greatly enhanced by allowing the functions of the
individual subsystems to be invoked from other processes or subsystems. For example, such remote access
to NC functions and methods allows an NC to be used as a component in a larger system or as an agent in a
collaboration for another problem.
Quality of Service (QoS) The utility of an NC depends considerably on the quality of service that it can
provide to its users. NC middleware should be QoS sensitive, and it should have functionalities which allow:
(1) communication of application level QoS needs to lower levels; (2) communication of infrastructural QoS
constraints to the application; and (3) ability to negotiate (on behalf of a user) a set of QoS parameters that
maximize an application-level objective function. For example, for education, an the ideal QoS parameters
would maximize knowledge transfer and retention. For environmental decision support, the general objec-
tive would be to minimize time to make correct decisions. More specific objective functions are needed for
different system use modes.
18
interoperation. We restrict ourselves to information-level middleware, although middleware can in general
arise even at the lower levels of the system architecture.
Some examples of middleware are numerical functions available through numerical libraries, graphical
functions available through graphical libraries and reusable object libraries. Other examples are wrappers
or mediators [113]. Wrappers perform simple language or protocol translations. For example, a language
wrapper may map the operators in a text keyword search query into operators that would be recognized by
the underlying system. Another language wrapper may map a structured database query into a lookup on
specific fields in an HTML form. A protocol wrapper may map a remote procedure call into an asynchronous
query for which the response will be matched to the query and returned to the calling program. Mediators
are like wrappers, only more sophisticated. They can encode larger varieties of metadata, e.g., about the
reliability of the information in the database or about how the values in the database map to values in another
database. Mediators use encoded knowledge about data to create information for higher-level applications,
providing a logical view of the underlying information. Mediators can, in principle, learn from the data. The
popular generic agent-based architecture, shown in Figure 2, incorporates mediators.
A prominent example of NC communication middleware is Parallel Virtual Machine (PVM). A virtual
machine is an abstract environment which is (ideally) platform-independent, and protects the programmer
from the idiosyncrasies of the distributed computing systems on which the application will operate. Another
example is Inferno, a product developed by AT&T. Of course, a popular virtual machine is offered by Java
[61]. The general discussions that follow (including that on performance of middleware) apply to a broad
range of middleware software, including Java.
4.3 Middleware
Of special interest to NC are two types of middleware that facilitate exchange of messages and information
objects, respectively. It is important that this middleware not impose an overhead that would translate into
failures to deliver the QoS expected by the users.
19
User Interface Application
Agent Program
Reg/Unreg Reply
(KQML)
Reply Query or
Update
In SQL Ontology
Broker Reg/Unreg Agent
Agent (KQML)
Mediator Ontology
Reg/Unreg Agent Forms
(KQML)
Reg/Unreg Mediated
(KQML) Query (SQL)
Mediated Schemas
Query (SQL) (CLIPS)
Reply Reply
20
allow the initiation and termination of tasks across the network, as well as communication and synchroniza-
tion among them. PVM tasks may possess arbitrary control and dependency structures. XPVM provides
a graphical interface to the PVM console commands and information, along with several animated views
to monitor the execution of PVM programs. HARNESS is the next generation of this technology. It ex-
plores dynamic virtual machine capabilities, such as virtual machines collaboration, merging, or splitting,
and plug-in interfaces for dynamic extensions to a parallel virtual machine, as well as methodologies for
intelligent parallel applications, i.e., those that discover each other, dynamically attach, collaborate, and
cleanly detach.
MPI is the outcome of a community effort to define the syntax and semantics of core message-passing
library routines that are widely useful and efficiently implementable on a range of parallel processors [100].
MPI is not a complete and self-contained software infrastructure. It does not include process management,
(virtual) machine configuration, support for input and output, and similar. MPI is limited to the message-
passing (parallel) programming (MPP) model, which is a distributed memory model with explicit control
parallelism. The message passing model is regarded as a viable means of programming both on multi-
computers and on heterogeneous networks of workstations. This is considered a definite advantage when
developing applications that may be ported afterwards onto a massively parallel multicomputer. Processes in
MPP can only read and write into their respective local memory. They synchronize with one another by ex-
plicitly calling library procedures. Data is moved between local memories sending and receiving messages
via explicit procedure or subroutine calls.
Other examples of similar software are P4, Express, and Linda. P4 is a library of macros and subroutines
developed by Argonne National Laboratory for programming a variety of parallel machines, and support of
both the shared-memory model and the distributed-memory model. Express is a commercial collection of
concurrent computation tools. The idea is to start with a sequential program and following a recommended
development lifecycle transform it into a parallel program using the provided toolset. An alternative to both
shared memory and message passing parallel programming is provided by Linda. Linda is a concurrent
model that uses a “tuple-space” abstraction for communication among cooperating processes [19, 20]. It is
an abstraction of distributed shared memory with some important differences, including association, and is
available as a commercial product.
21
machine. The distribution mechanism is kept hidden. Objects residing in a different process are managed
by a server process, which receives method invocations directed to the objects that it manages and returns
the results back to the client. CORBA implementations use a daemon process to manage server processes
on a particular machine.
4.4.1 Management
Agent management refers to the set of functionalities through which agent systems can be managed. These
include a way for the agents to register and unregister themselves, advertise their services, find other agents,
and transparently change their location if necessary. Although agent systems have long included such func-
tionality, there is a recent push to standardize it that is being supported by the Foundation for Intelligent
Physical Agents (FIPA) [37].
22
5 Infrastructure
5.1 Computers and Operating Systems
The lower layer of infrastructure that supports NC includes the actual networks: the wires, light-pipes,
wireless equipment, routers, switches, networking cards, firmware and software that operates these units.
It also includes the physical computers and other network-related devices and appliances (e.g., input and
output devices), that are needed for full operation of an NC application. The computers can range from
laptops to supercomputers. Operating systems can be equally varied. Two special groups of computing
devices are network-oriented and deserve a closer look.
23
computers that can be carried attached to one’s clothing—on a belt or arm-band. Wearable computers
rely extensively on specialized interfaces the have for hands-free operation. Thus they can take input
by speech of gesture, and output by audio or on displays that are also wearable, e.g., by projecting on
the user’s special eye glasses.
What makes mobile computers interesting are the applications they enable and the special requirements they
have for networking, leading to special QoS challenges.
24
FTP for transmission of files between systems. There is a number of other applications at the same level,
including Telnet, and a simple e-mail transfer protocol (SMTP).
Higher level network-based tools needed for collaborative components of the NC include white-boards,
chat-rooms, telepresence solutions, etc. All these are combined with actual end-user applications software
to form NC end-to-end solutions.
25
5.4 Standards
There are a number of relevant standards. Some of these are covered in the above; for the others, we defer
the discussion to the cited materials.
6 Research Issues
We have taken a workflow-centered stance toward NC. This stance leads naturally to two major classes
of research issues, corresponding to the design and analysis of workflows, respectively. We discuss some
specific challenges and emerging approaches below. Included is also the issue of how analysis techniques
might feed into the design.
Techniques based on variants of temporal logic appear especially attractive for the above purposes [25, 36,
48].
Although formal methods and tools have much potential, their present incarnations can usually handle
only fairly small systems. NC applications could have the advantage in this regard, because through the
careful application of autonomy the details of the interacting modules may be hidden behind well-defined
and compact system interfaces. However, NC applications also require a wider range of abstractions with
which to program. These too have an obvious connection with formal methods, and are discussed below.
26
We suggested above that multiagent systems address many of these challenges quite naturally. But how
may we construct multiagent systems efficiently, so that the generate the flexible and felicitously interacting
workflows that we desire? If the agents are constructed modularly, the main challenge is in specifying
and generating the right interactions. We term our approach interaction-oriented programming (IOP), and
include in it abstractions and techniques that capture the structure of the desired interactions and preserve
the agents’ autonomy. We tentatively identify three layers of IOP, from lower to upper:
4 coordination, which enables the agents to operate in a shared environment
4 commitment, which reflects the agents’ obligations to one another, capturing the social structure of
multiagent systems and the norms governing their behavior
4 collaboration, which deals with knowledge-level constraints on communications.
Some informal concepts, such as competition, may be classified into different layers: bidding in an auction
requires no more than coordination, whereas commerce involves commitments, and negotiation involves
sophisticated protocols.
Concepts related to the above have been studied in areas as diverse as distributed computing (DC),
databases (DB), and distributed artificial intelligence (DAI). The DB and DC work focuses on narrower
problems of synchronization, and eschews high-level concepts such as social commitments. Thus it is
less flexible, but more robust, than the DAI work. However, the complexity of NC applications demands
flexibility and their importance demands rigor. IOP is about programming abstractions that achieve both of
these properties.
The coordination layer of IOP deals with specifying skeletons as high-level descriptions of agent be-
havior that are relevant to the agent’s interactions with one another. The skeletons define what events of
an agent are visible externally, and what properties they have. The agents interact with each other, but
programatically the interactions appear to be through a distributed coordination service.
The properties specify what the other agents can expect: roughly, whether they can request a task cor-
responding to an event, ask the agent not to perform a task, or ask the agent to put off doing something
till they are ready. Examples of events are whether the agent will start a task (which others can request) or
declare a failure (which the other cannot prevent) or declare success (which the others can ask this agent not
to do until they are ready). Based on the events, coordination specification scan be stated that determine the
acceptable behaviors of the multiagent system. The key research challenges are in defining expressive such
efficiently processable languages for specifying coordination requirements, producing efficient algorithms
for them, and relating the corresponding models to methodologies for system development [93, 94].
The commitment layer introduces the logical notion of a “social” commitment, which is a relationship
between two agents. One or both of the agents could be a multiagent system. Agents enter into com-
mitments voluntarily either by saying so, or by adopting predefined roles that require those commitments.
Commitments can be canceled or updated provided any additional metacommitments are satisfied. The key
research challenges are in creating formalisms in which a useful range of commitments can be expressed
and efficiently processed, and in corresponding methodologies for system development [92, 95].
27
broaden the classical definition of QoS to include end-user quality characteristics such as system reliability
and availability, performance, algorithmic scalability, effectiveness, and quality of user-system interactions.
For example, users find keystroke round-trip delays of more than 5 6*7 ms unacceptable [11, 55, 33]. In
education, for lessons of about an hour, studies indicate that of good user satisfaction requires a probability
of error 897:;7<6 , whereas even a probability =>7: ?A@ is unacceptable.
To make NC applications appear truly “appliance-like,” the systems must support negotiation of ex-
tended QoS guarantees for users, monitor QoS, and adjust resource allocation dynamically [32]. This is a
complex challenge, because of the nature of applications and the fact that the infrastructureis distributed and
heterogeneous. Existing techniques for application layer QoS management are limited to static allocation
of resources. These are not suitable for the above challenge. Thus, in addition to reactive mechanisms for
control of QoS violations, predictive QoS management is required [69].
For instance, although ATM solutions are intended to provide QoS support, only applications written
specially for ATM can take full advantage of its QoS capabilities. Some approaches seek to establish end-
to-end connections over existing IP solutions (e.g., RSVP, AREQUIPA) [1, 116].
Ongoing discussions on QoS provisioning have often debated whether the network can be dimensiond
such that traffic requirements are unlikely to ever exceed the available resources. However, the “infinite
resources” argument has never been found to be true.
Dixit argues that there is a considerable need to monitor and model QoS not only at the network layer,
but at the application layer as well [32]. While guaranteed bounds are often achievable and provisioned for
in data networks (e.g., [72]), they are usually intended for network-to-network connections (see Figure 3)
and do not account for QoS violations resulting form end-user applications (including server and client
user-level effects). Further, provisioning for such bounds is expensive. Tolerant and adaptive clients will
be unwilling to pay excessive tariffs required to suport these bounds. In addition, reserving bandwidth
in advance may lead to wasted resources. Another significant issue is that the overal stochasticity of the
NC systems is usually not accounted for in most existing approaches. The stochasticity which results in
distributed systems due to scheduling mechanisms, resource dynamics, and so on, may manifest as poor
QoS and may be tagged as QoS failures unless it is explicitly incorporated in QoS models. Application
layer monitoring is needed to provide reliable predictive estimates of QoS in the future.
Therefore, in emerging networks, QoS should be provisioned dynamically and in a model using more
unified approaches, which account for the combined effects of interacting NC components and layers.
28
available, even if not needed by an application. This typically leads to greater communication overhead
than in specialized lightweight layers. Thus, functionally equivalent middleware implementations may have
vastly differing performance profiles.
The following results compare the delay in sending a null-body asynchronous (one-way) message, and in
sending a null-body request-reply (two-way) message. Lightweight Software Bus (LSB) is a communication
layer developed at NCSU [5, 6]. SOMObjects, Orbix, and ORBeline are commercial CORBA-compliant
products. SII and DII are the static and dynamic invocation interfaces defined in CORBA.
29
Figure 3: An illustration of the path (and overhead) between an NC client and another top-layer component
(e.g., server)
30
Figure 4: Illustration of Internet Congestion Delays
31
Orbix SII Orbix DII ORBeline SII ORBeline DII
One-way Latency 0.5 ms 0.4 ms 0.1 ms 0.1 ms
Two-way Latency 2.7 ms 10.5 ms 2.0 ms 2.0 ms
32
Table 2 shows that the delay incurred by a message traversing LSB is much less than for SOMObjects
[5, 6]. Also, for a two-way operation, DII yields a significantly higher latency than SII. Table 3 shows
similar comparisons on two other CORBA products. These results are extracted from the graphs in [43] for
parameter-less method invocation. The tables show the ranges of overheads that are possible.
7 Reading List
Network computing is a huge area that impinges upon a number of subfields of computing. We include a
list of reading to obtain additional information about the various topics discussed above.
B Multidatabases: [57, 75, 17, 97, 115]
B Traditional and extended transactions: [46, 35, 57]
B Workflow modeling and enactment: [26, 40, 44, 2, 67, 86]
B Agents and multiagent systems: [85, 53, 51, 112, 34, 23]
B Distributed objects and CORBA: [57, 71, 90]
B Applications of network computing: [21, 27, 56, 79]
B Scientific computing: [38, 66, 100, 39]
B Software and reliability engineering: [47, 12, 62, 63]
B Performance evaluation: [106, 6, 103]
B Networking and quality of service: [101, 74]
B Architectures: [102, 8, 56, 87]
8 Cross References
These are terms that should refer to this article.
1. Internet computing
2. Open information environments
3. Problem-solving environments
4. Workflow management
5. Agents
6. Multiagent systems
7. Middleware
8. Quality of service
9. Internet and Internet 2 applications
33
References
[1] W. Almesberger. AREQUIPA: Design and implementation. TR 96/213, EPFL, [Link]/
pub/ arequipa, November 1996.
[2] Paul C. Attie, Munindar P. Singh, Amit P. Sheth, and Marek Rusinkiewicz. Specifying and enforcing
intertask dependencies. In Proceedings of the 19th VLDB Conference, pages 134–145, August 1993.
[3] John L. Austin. How to Do Things with Words. Clarendon Press, Oxford, 1962.
[4] Mark Baker and Geoffrey Fox. Metacomputing: The informal supercomputer. In Proceedings
of the NSF Train the Trainer Workshop, Ithaca, NY, May 1996. Cornell Theory Center. http://
[Link]/ RTCPP/ HTML/ Workshop2/ [Link].
[5] Rajini Balay. A Lightweight Middleware Architecture and Evaluation of Middleware Performance.
PhD thesis, North Carolina State University, Raleigh, 1998.
[6] Rajini Balay, Mladen A. Vouk, and Harry Perros. Implications of middleware and application level
communication issues on the performance of network-based problem-solving environments. In Elias
Houstis and John R. Rice, editors, Problem Solving Environments, Computational Science and Engi-
neering. IEEE Press, Los Alamitos, CA, 1998.
[7] Carlo Batini, Stefano Ceri, and Shamkant Navathe. Conceptual Database Design. Benjamin Cum-
mings, Redwood City, CA, 1992.
[8] Miro Benda, editor. Special Issue on Internet Architecture, volume 2(2) of IEEE Internet Computing.
March 1998. Contains 6 articles.
[9] T. Berners-Lee, R. Cailliau, J. F. Groff, and B. Pollerman. World-wide web: The information uni-
verse. Electronic Networking: Research, Applications and Policy, 1(2):52–58, Spring 1992.
[10] Tim Berners-Lee, Robert Cailliau, Ari Luotonen, Henrik Frystyk Nielsen, and Arthur Secret. The
world-wide web. Communications of the ACM, 37(8):76–82, August 1994.
[11] M. D. Bitzer and D. L. Bitzer. Teaching nursing by computer: An evaluation study. Computers in
Biology and Medicine, 3(3):187–204, 1973.
[12] Barry W. Boehm. Software Risk Management. IEEE Computer Society Press, Los Alamitos, 1989.
[13] C. Mic Bowman, Peter B. Danzig, Udi Manber, and Michael F. Schwartz. Scalable internet resource
discovery: Research problems and approaches. Communications of the ACM, 37(8):98–114, August
1994.
[14] S. Bradner and A. Mankin. Recommendation for the IP next generation protocol, January 1995.
RFC1752.
[15] Alejandro Buchmann, M. Tamer Özsu, Mark Hornick, Dimitrios Georgakopoulos, and Frank A.
Manola. A transaction model for active distributed object systems. In [35], chapter 5, pages 123–158.
1992.
34
[16] Omran A. Bukhres, Jiansan Chen, Weimin Du, Ahmed K. Elmagarmid, and Robert Pezzoli. Inter-
Base: An execution environment for heterogeneous software systems. IEEE Computer, 26(8):57–69,
August 1993.
[17] Omran A. Bukhres and Ahmed K. Elmagarmid, editors. Object-Oriented Multidatabase Systems: A
Solution for Advanced Applications. Prentice-Hall, 1996.
[18] Christoph Bußler and Stefan Jablonski. An approach to integrated workflow modeling and organiza-
tion modeling in an enterprise. In Workshop on Enabling Technologies: Infrastructure for Collabo-
rative Enterprises. IEEE Computer Society Press, 1994.
[19] Nicholas Carriero and David Gelernter. Linda in context. Communications of the ACM, 32(4):444–
458, April 1989.
[20] Nicholas Carriero and David Gelernter. Coordination languages and their significance. Communica-
tions of the ACM, 35(2):97–107, February 1992.
[21] Brahim Chaib-draa. Industrial applications of distributed artificial intelligence. In [51], pages 31–35.
1997. (Reprinted from Communications of the ACM, 1995).
[22] David Chaum. Security without identification: Transaction systems to make big brother obsolete.
Communications of the ACM, 28(10):1030–1044, October 1985. Extended version with subtitle “Card
Computers to Make Big Brother Obsolete” available at [Link]
publish/[Link].
[23] David Chess, Benjamin Grosof, Colin Harrison, David Levine, Colin Parris, and Gene Tsudik. Itin-
erant agents for mobile computing. In [51], pages 267–282. 1997. (Reprinted from IEEE Personal
Communications, 1995).
[24] Panos Chrysanthis and Krithi Ramamritham. ACTA: The SAGA continues. In [35], chapter 10,
pages 349–397. 1992.
[25] E. Clarke, O. Grumberg, and D. Long. Model checking. In Proceedings of the International Summer
School on Deductive Program Design, pages 428–439, 1990.
[26] Bill Curtis, Marc I. Kellner, and Jim Over. Process modeling. Communications of the ACM, 35(9):75–
90, September 1992.
[27] Mark R. Cutkosky, Robert S. Englemore, Richard E. Fikes, Michael R. Genesereth, Thomas R. Gru-
ber, William S. Mark, Jay M. Tenenbaum, and Jay C. Weber. PACT: An experiment in integrating
concurrent engineering systems. In [51], pages 46–55. 1997. (Reprinted from IEEE Computer, 1993).
[28] Peter B. Danzig, Shih-Hao Li, and Katia Obrazacka. Distributed indexing of autonomous internet
services. Computing Systems, 5(4):433–459, Fall 1992.
[29] Umesh Dayal, Hector Garcia-Molina, Mei Hsu, Ben Kao, and Ming-Chien Shan. Third generation
TP monitors: A database challenge. In Proceedings of the ACM SIGMOD International Conference
on Management of Data, May 1993. Industrial track paper.
35
[30] S. Deering and R. Hinden. Internet protocol, version 6 (IPv6) specification, December 1995.
RFC1883.
[31] R.L. Dennis, D. W. Byun, J. H. Novak, K. J. Galluppi, C. C. Coats, and M. A. Vouk. The next gener-
ation of integrated air quality modeling: EPA’s Models-3. Atmospheric Environment, 30(12):1925–
1938, 1996.
[32] Paritosh Dixit. Quality of Service Modeling for Wide Area Network Based Systems. PhD thesis, North
Carolina State University, Raleigh, 1998.
[33] Paritosh Dixit, Mladen A. Vouk, and Donald L. Bitzer. Reliability behavior of a large network-
based education system. In Proceedings of the International Symposium on Software Reliability
Engineering, pages 43–56. IEEE Computer Society Press, November 1997.
[34] Edmund H. Durfee, Daniel L. Kiskis, and William P. Birmingham. The agent architecture of the
University of Michigan digital library. In [51], pages 98–108. 1997. (Reprinted from Proceedings of
the IEE: Software Engineering, 1997).
[35] Ahmed K. Elmagarmid, editor. Database Transaction Models for Advanced Applications. Morgan
Kaufmann, San Mateo, 1992.
[36] E. Allen Emerson. Temporal and modal logic. In Jan van Leeuwen, editor, Handbook of Theoretical
Computer Science, volume B, pages 995–1072. North-Holland, Amsterdam, 1990.
[37] Foundation for intelligent physical agents (FIPA) 1997 specification, 1998. [Link]
[38] Efstratios Gallopoulos, Elias Houstis, and John R. Rice. Computer as thinker/doer: Problem-solving
environments for computational science. IEEE Computational Science and Engineering, 1:11–23,
Summer 1994.
[39] A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Mancheck, and V. Sunderam. PVM: Parallel Virtual
Machine - A User’s Guide and Tutorial for Networked Parallel Computing. MIT Press, Cambridge,
MA, 1994.
[40] Dimitrios Georgakopoulos, Mark Hornick, and Amit Sheth. An overview of workflow management:
From process modeling to workflow automation infrastructure. Distributed and Parallel Databases,
3(2):119–152, April 1995.
[41] Dimitrios Georgakopoulos, Mark F. Hornick, and Frank Manola. Customizing transactions models
and mechanisms in a programmable environment supporting reliable workflow automation. IEEE
Transactions on Knowledge and Data Engineering, 8(4):630–649, August 1996.
[42] Charles R. Gilman, Manuel Aparicio, J. Barry, Timothy Durniak, Herman Lam, and Rajiv Ram-
nath. Integration of design and manufacturing in a virtual enterprise using enterprise rules, intelligent
agents, STEP, and work flow. In SPIE Proceedings on Architectures, Networks, and Intelligent Sys-
tems for Manufacturing Integration, pages 160–171, 1997.
36
[43] Aniruddha Gokhale and Douglas C. Schmidt. Evaluating CORBA Latency and Scalability Over
High-Speed ATM Networks. In 17th International Conference on Distributed Systems, May 27-30
1997.
[44] Esin Gokkoca, Mehmet Altinel, Ibrahim Cingil, E. Nesime Tatbul, Pinar Koksal, and Asuman Do-
gac. Design and implementation of a distributed workflow enactment service. In Proceedings of the
International Conference on Cooperative Information Systems (CoopIS), pages 89–98, 1997.
[45] Art Goldschmidt, Martin Hardwick, Jon Judd, Herman Lam, Jeff Pan, Jay Ramanathan, Tom Rando,
Stanley Su, Craig Thompson, and David Zenie. NIIIP reference architecture: Concepts and guide-
lines. TR NTR95-01, National Industrial Information Infrastructure Protocols (NIIIP) Consortium,
January 1995. [Link]/ public-forum/ NTR95-01/.
[46] Jim Gray and Andreas Reuter. Transaction Processing: Concepts and Techniques. Morgan Kauf-
mann, San Mateo, 1993.
[48] Gerard J. Holzmann. The model checker SPIN. IEEE Transactions on Software Engineering,
23(5):279–296, May 1997.
[49] Meichun Hsu, editor. Special Issue on Workflow and Extended Transaction Systems, volume 16(2) of
Bulletin of the IEEE Technical Committee on Data Engineering. June 1993. Contains 13 articles.
[50] Michael N. Huhns and Munindar P. Singh. Ontologies for agents. IEEE Internet Computing, 1(6):81–
83, December 1997. Instance of the column Agents on the Web.
[51] Michael N. Huhns and Munindar P. Singh, editors. Readings in Agents. Morgan Kaufmann, San
Francisco, 1997.
[52] Akhtar Jameel, Matthias Stuempfle, Daniel Jiang, and Axel Fuchs. Web on wheels: Toward internet-
enabled cars. IEEE Computer, 31(1):69–76, January 1998.
[53] Nicholas R. Jennings and Michael J. Wooldridge, editors. Agent Technology: Foundations, Applica-
tions, Markets. Springer-Verlag, Berlin, 1997.
[54] Mohan Kamath and Krithi Ramamritham. Bridging the gap between transaction management and
workflow management. In Proceedings of the NSF Workshop on Workflow and Process Automation
in Information Systems: State-of-the-art and Future Directions, May 1996. http:// optimus.
[Link]/ activities/NSF-workflow/ [Link].
[55] P. K. Kauer. An analysis of north carolina state university’s network performance. Master’s thesis,
Department of Computer Science, North Carolina State University, Raleigh, 1995.
[56] Ken Kennedy, Charles F. Bender, John W. D. Connolly, John L. Hennessy, Mary K. Vernon, and Larry
Smarr. A nationwide parallel computing environment. Communications of the ACM, 40(11):63–72,
November 1997.
37
[57] Won Kim, editor. Modern Database Systems: The Object Model, Interoperability, and Beyond. ACM
Press and Addison-Wesley, New York, 1994. Reprinted with corrections, 1995.
[58] Yannis Labrou and Tim Finin. Semantics and conversations for an agent communication language.
In [51], pages 235–242. 1997. (Reprinted from Proceedings of the International Joint Conference on
Artificial Intelligence, 1997).
[59] Ted G. Lewis. Information appliances: Gadget netopia. IEEE Computer, 31(1):59–68, January 1998.
[60] Frank Leymann and Wolfgang Altenhuber. Managing business processes as an information resource.
IBM Systems Journal, 33(2):326–348, 1994.
[61] Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification. ACM Press and Addison-
Wesley, New York, 1996.
[62] Michael R. Lyu, editor. Software Fault-Tolerance. John Wiley, New York, 1995.
[63] Michael R. Lyu, editor. Handbook of Software Reliability Engineering. McGraw-Hill and IEEE
Computer Society, New York, 1996.
[64] Steve Mann. Wearable computing: A first step toward personal imaging. IEEE Computer, 30(2):25–
32, February 1997.
[65] Steven McCanne and Van Jacobson. VIC: A flexible framework for packet video. In Proceedings of
the ACM Multimedia Conference, pages 511–522, 1995.
[66] Gregory J. McRae. How application domains define requirements for the grid. Communications of
the ACM, 40(11):75–83, November 1997.
[67] Raúl Medina-Mora and Kelly W. Cartron. ActionWorkflow C in use: Clark County department of
business license. In Proceedings of the 12th International Conference on Data Engineering (ICDE),
pages 288–294, February 1996.
[69] K. Nahrstedt. An Architecture for End-to-End Quality of Service and its Experimental Validation.
PhD thesis, University of Pennsylvania, Philadelphia, 1995.
[70] B. C. Neumann and T. Ts’o. Kerberos: An authentication service for computer networks. IEEE
Communications, 32(9), September 1994.
[71] M. Tamer Özsu, Umeshwar Dayal, and Patrick Valduriez, editors. Distributed Object Management.
Morgan Kaufmann, San Mateo, 1994.
[72] A. K. Parikh and R. G. Gallager. A generalized processor sharing approach to flow control in inte-
grated services network. IEEE Transactions on Networking, 2(2):137–150, April 1994.
38
[73] Ramesh S. Patil, Richard E. Fikes, Peter F. Patel-Schneider, Don McKay, Tim Finin, Thomas Gruber,
and Robert Neches. The DARPA knowledge sharing effort: Progress report. In [51], pages 243–254.
1997. (Reprinted from Proceedings of the Third International Conference on Principles of Knowledge
Representation and Reasoning, 1992).
[74] Charles E. Perkins. Mobile networking through mobile IP. IEEE Internet Computing, 2(1):58–69,
January 1998.
[75] Evaggelia Pitoura, Omran A. Bukhres, and Ahmed K. Elmagarmid. Object-oriented multidatabase
systems: An overview. In [17], chapter 10. 1996.
[78] Krithi Ramamritham and Panos K. Chrysanthis. A taxonomy of correctness criteria in database
applications. The VLDB Journal, 5(1):85–97, January 1996.
[79] Daniel A. Reed, Roscoe C. Giles, and Charles E. Catlett. Distributed data and immersive collabora-
tion. Communications of the ACM, 40(11):39–48, November 1997.
[80] Michael K. Reiter. Distributing trust with the Rampart toolkit. In [51], pages 306–309. 1997.
(Reprinted from Communications of the ACM, 1996).
[81] John R. Rice and Ronald F. Boisvert. From scientific software libraries to problem-solving environ-
ments. IEEE Computational Science and Engineering, 3:44–53, Fall 1996.
[82] Tristan Richardson, Quentin Stafford-Fraser, Kenneth R. Wood, and Andy Hopper. Virtual network
computing. IEEE Internet Computing, 2(1):33–38, January 1998.
[83] A. J. Rindos, S. Woolet, D. Cosby, L. Hango, and M. Vouk. Factors influencing ATM adapter through-
put. Multimedia Tools and Applications, 2(3):253–272, 1996.
[84] Nancy Ross-Flannigan. The virtues (and vices) of virtual colleagues. MIT Technology Review, March
1998.
[85] Stuart J. Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Prentice-Hall, Upper
Saddle River, NJ, 1995.
[86] Sunil K. Sarin. Workflow and data management in InConcert. In Proceedings of the 12th International
Conference on Data Engineering (ICDE), pages 497–499, February 1996.
[87] Walt Scacchi and John Noll. Process-driven intranets: Life-cycle support for process reengineering.
IEEE Internet Computing, 1(5):42–49, October 1997.
[88] Michael F. Schwartz, Alan Emtage, Brewster Kahle, and B. Clifford Newman. A comparison of
internet resource discovery approaches. Computing Systems, 5(4):461–493, Fall 1992.
39
[89] Hyong Sop Shim, Robert W. Hall, Atul Prakash, and Farnam Jahanian. Providing flexible services
for managing shared state in collaborative systems. In Proceedings of the European Conference on
Computer Supported Cooperative Work (ECSCW), Lancaster, UK, 1997.
[90] Jon Siegel. CORBA: Fundamentals and Programming. Object Management Group and Wiley, New
York, 1996.
[91] Munindar P. Singh. Synthesizing distributed constrained events from transactional workflow speci-
fications. In Proceedings of the 12th International Conference on Data Engineering (ICDE), pages
616–623, February 1996.
[93] Munindar P. Singh. A customizable coordination service for autonomous agents. In Proceedings of
the 4th International Workshop on Agent Theories, Architectures, and Languages (ATAL). Springer-
Verlag, July 1997. Publication date: 1998.
[95] Munindar P. Singh. An ontology for commitments in multiagent systems: Toward a unification of
normative concepts. Artificial Intelligence and Law, 1998. In press.
[96] Munindar P. Singh. Principles of agent communication. IEEE Computer, 1998. To appear.
[97] Munindar P. Singh, Philip E. Cannata, Michael N. Huhns, Nigel Jacobs, Tomasz Ksiezyk, Kayliang
Ong, Amit P. Sheth, Christine Tomlinson, and Darrell Woelk. The Carnot heterogeneous database
project: Implemented applications. Distributed and Parallel Databases: An International Journal,
5(2):207–225, April 1997.
[98] Munindar P. Singh and Michael N. Huhns. Automating workflows for service provisioning: Integrat-
ing AI and database technologies. IEEE Expert, 9(5):19–23, October 1994.
[100] M. Snir, S. W. Otto, S. Huss-Lederman, D. W. Walker, and J. Dongarra. MPI: The Complete Refer-
ence. MIT Press, Cambridge, MA, 1995.
[101] William Stallings. Data and Computer Communications. Prentice-Hall, Upper Saddle River, NJ, 5th
edition, 1997.
[102] Rick Stevens, Paul Woodward, Tom DeFanti, and Charlie Catlett. From the I-way to the national
technology grid. Communications of the ACM, 40(11):51–60, November 1997.
[103] W. Richard Stevens. Queueing Networks with Blocking: Exact and Approximate Solutions. Oxford
University Press, New York, 1994.
40
[104] W. Richard Stevens. TCP/IP Illustrated, Volumes 1–3. Addison-Wesley, Reading, MA, 1994.
[105] Stanley Y. W. Su, Herman Lam, Tsae-Feng Yu, Javier A. Arroyo-Figueroa, Zhidong Yang, and Sooha
Lee. NCL: A common language for achieving rule-based interoperability among heterogeneous sys-
tems. Journal of Intelligent Information Systems (JIIS), 6(2/3):171–198, 1996.
[106] Y. Viniotis and H. Perros, editors. Special Issue on ATM networks and Their Performance. Perfor-
mance Evaluation Journal. 1998.
[107] M. Vouk, J. Hines, A. J. Rindos, S. Woolet, and J. Lester. ATM technology enabling educational appli-
cations across the North Carolina information highway. In Proceedings of the 7th World Telecommu-
nications Forum, pages 519–522, Geneva, October 1995. International Telecommunications Union.
[108] Jacques Wainer, Mathias Weske, Gottfried Vossen, and Claudia M Bauzer Medeiros. Scientific
workflow systems. In Proceedings of the NSF Workshop on Workflow and Process Automation in
Information Systems: State-of-the-art and Future Directions, May 1996. http:// optimus.
[Link]/ activities/NSF-workflow/ [Link].
[110] Peter Wegner. Interactive foundations of computing. Theoretical Computer Science, May 1997. In
press. Preprint at [Link]/ people/ pw/.
[111] Peter Wegner. Why interaction is more powerful than algorithms. Communications of the ACM,
40(5):80–91, May 1997.
[112] Gerhard Weiß, editor. Introduction to Distributed Artificial Intelligence. MIT Press, Cambridge, MA,
1998.
[113] Gio Wiederhold. Mediators in the architecture of future information systems. In [51], pages 185–196.
1997. (Reprinted from IEEE Computer, 1992).
[114] Gio Wiederhold, Peter Wegner, and Stefano Ceri. Toward megaprogramming. Communications of
the ACM, 35(11):89–99, November 1992.
[115] Darrell Woelk, Philip Cannata, Michael Huhns, Nigel Jacobs, Tomasz Ksiezyk, Greg Lavender, Greg
Meredith, Kayliang Ong, Wei-Min Shen, Munindar Singh, and Christine Tomlinson. Carnot proto-
type. In [17], chapter 18, pages 621–648. 1996.
[116] L. Zhang, S. Deering, D. Estrin, S. Shenker, and D. Zappala. RSVP: A new resource reservation
protocol. IEEE Network, 9(5), September 1993.
[117] Computer Select Ziff. Computer select – software product specification: Data sources report, Septem-
ber 1994. Ziff Communications Company, September 1994.
41