#1#].
Consequently, systems built this way are
sequential programs running in multiple address spaces - when these
are instantiated as separate processes on separate machines networked,
such systems are far less reliable than single process/machine. In
the extreme, pure RPC is an anathema to distributed algorithms.
In the case of the system discussed here, the requirements
for consistency are weak in many components, thus not a strong case
for RPC. In more
interesting distributed computations, whether for increased
concurrency and performance, or fault tolerance, we often find that divide
and conquer or other approaches to the distribution again have little
requirement for a response to messages coupled with associated
processing. That this should appear attractive for conferencing is a
consequence of the peer-wise nature of the application.
Communications between components in a multiparty conference is much more
akin to that of a collection of distributed routers, than to a client/server model.
Re-examining each of the basic CAR Conference System Services in turn,
we can see that very few of them need the stricter requirements of
pure RPC.
#figure1821#
Figure: An Event Driven Conference System Architecture
-
The Switch Controller is attached to a physical
resource that keeps permanent state, and therefore cannot be
distributed. However, access to it may be distributed. Thus RPC is
appropriate here.
-
The Switching Server is, on the other hand, a deliberate attempt to
remove the service from the location, and thus should be distributed.
Indeed, we can foresee a system with multiple distributed
servers, and the Switching Server should be aware of all
these.
-
The Directory Service, like any other directory service, need not
be a central system. DNS [#DNS##1#], X.500 [#X500##1#].
Since a directory is a read
only service, it needs weaker semantics than the normal <#1828#> exactly
once<#1828#> RPC. Some information held by the Directory Server may be completely
distributed with the Application.
-
The Notification Service is inherently asynchronous. Thus a message
passing system is sufficient. Given notifications come from
the Conference Server largely as a result of other application actions
it is possible that these can be sourced from each application, and
directly multicast to all other applications' Notification Interface,
using reliable delivery (if large notification messages are sent),
but not awaiting any response.
-
Lastly, the conference service is merely a coordinator of the system.
If the steps outlined above are taken, it withers away and becomes
redundant.
In #fncar2#1830>, we illustrate the components of a more distributed
approach. Here, we have adopted a pure message passing/event driven
model that incorporates the ideas above. Independent failure of a site
is now feasible without delaying or halting an entire conference.