Using the Remote Operations facility for reliable applications
support, we will design and build (and hopefully document) a simple
text based conferencing system, akin to the Berkeley Unix <#1634#> talk<#1634#>
program, but capable of supporting multiple users in the conference.
An outline of the objects and ports available in the various servers,
available to clients, is given below. Compare this with the Z
Specification of the conference floor control system in chapter 5.
We can decompose the system into three services, and analyze some
design decisions for the services:
-
The Conference Server
This maintains the conferences for the users. It handles requests to
create or destroy a conference, to join and leave a conference, and to
send messages to the members of the conference.
There may be one instance of the conference server per site, handling
all conferences on all machines, or one per machine, or one per
conference.
-
The Location Server
This is used by a user program to find where another user is logged
in.
There must be one of these per machine. However, does the client ask a
location server, and the local location server asks all the others for
the location, or it may tell the user where the other location servers
are, and they have to repeat asking til they find the user. Another
design decision might be for the location servers to continually (say
every couple of minutes) inform each other of the users on <#1636#> their<#1636#>
machine.
-
The Ping Server
The user uses this service to ask a another user if they wish to join
the conference.
The user program is then a client of these three servers, typically
the conference server (to create and join the conference), then the
location server (to find another user), then the ping server (to ask
the other user if they want to join), then the conference again to
send messages to the set of users in the conference.
The conference program is a client of the user program to transmit
messages that other users have sent to the conference to these users.
The system is illustrated in the figure #fncnfros#1638>.
#figure1639#
Figure: A ROS Based Conferencing Service
<#1716#>#tex2html_wrap4226#<#1716#>