|
|
Due 11:59 PM Sunday
Feb. 25, 2001
AMNESTY OFFER!!
Since Lab 3 depends on Lab
2, late Lab 2's will accrue penalties at a rate of only 2%/day until
Sunday 2/25/01. Regular penalty rates apply after
that.
This lab is broken into two separate
pieces, which should be handed in separately.
The first section is to add the ability to host a "chat
group" to your RMI chat program. A chat group is defined as
multiple connections where every participant receives the messages sent
out by every other participant.
The second section is to start the final project for
CS151. See the directions to the left for more
information. You will need to spend time in lab organizing
your groups and teams. Joining a group or
team that is not in your lab section is not
recommended!
Group Chatting Implementation Suggestions
-
The notion of a group chat requires that the same chat
target be handed to all the clients that want to join that group
chat. It thus cannot be a local variable.
-
Incoming messages need to be echoed to all
participants. Note that the existing protocol already has
an echo to the sender which is a different format than what needs to be
sent to the other participants.
-
A non-group enabled client should be able to participate
in a group chat. Don't throw out your old code!
-
The host of the group chat will need to keep a list of
the chat targets of all the participants.
-
Depending on how the group chat host is implemented, the
choices presented to the callers is
affected. Additional methods on the connection manager
object will probably be necessary--the architecture shields the caller
from directly seeing these methods.
-
The host of the group chat is an odd beast.
There are several ways of implementing its behavior. For
instance:
-
The host acts like any participant, externally,
but internally, it has all the management for group
chatting. In particular, the way it sends out
messages is affected. This is probably the most flexible
system and a more intuitive implementation for the user. It is
more difficult to code however.
-
The host is completely separate from the group chat
hosting. It joins the group chat by
connecting to localhost and choosing the group
chat. The host itself would thus not have a
display frame, since all messages are echoed somewhere
else. This technique trades flexibility and usability for
ease of coding.
-
Multiple chat channels (not required) requires multiple
chat targets that can be handed to participants.
-
All your RMI are belong to us.
|