

			     History List
			     ============

[For current version, see file Version.java (or invoke 'java JavaGroups.Version')]



Version 0.6.3 Apr 9 1999 (bba)
------------------------------

- Added DELAY protocol. Will delay all outgoing or incoming messages
  by n milliseconds, where n can be determined by the user


Version 0.6.2 Apr 9 1999 (bba)
------------------------------

- Bug fix in GossipServer
- Changes to GossipClient: will only register when both local address
  and group address are known



Version 0.6.1 Apr 1 1999 (bba)
------------------------------

- Added state transfer interface to Channel; Channels stay
  backwards-compatible to existing applications
- Added protocol STATE_TRANSFER
- Updated documentation: STATE_TRANSFER, Channel interface


Version 0.6.0 Mar 12 1999 (bba)
-------------------------------

- Added MessageProtocol and RpcProtocol (subclasses of
  Protocol). These can be used when peer communication between the
  same layers in different stacks is required, e.g. for GMS. Both
  subclasses implement synchronous group messages/method calls.

- Created new GMS layer: RpcGMS, RpcCoordGmsImpl,
  RpcParticipantGmsImpl and RpcClientGmsImpl. Uses state pattern
  (client, coord, participant). Also makes use of RpcProtocol.

- Modified PING: removed merge functionality. Added merge
  functionality to separate layer (MERGE).

- Created initial (simplistic) version of MERGE protocol. Only
  discovers out-of-group members, and sends up MERGE event. MERGE is
  not yet handled by RpcGMS.



Version 0.5.9 Feb 26 1999 (bba)
-------------------------------

- Modified SUSPECT handling in GMS: when FD suspects a member, it
  mcasts a SUSPECT message to all members. At each member, this will
  generate a SUSPECT message, which is sent up the stack, starting
  from the FD layer. The GMS layer then checks whether the coordinator
  itself is suspected. If this is the case, the members are sorted and
  a new coordinator is chosen deterministically by each member. The
  new coordinator then mcasts a new view. If the coordinator itself is
  not suspected, it removes the faulty member from its local view and
  installs a new view. The modified algorithms removes 1 round of
  multicasting plus a redundant check on who the coordinator is.



Version 0.5.8 Feb 5 1999 (bba)
------------------------------

- Changed Ctor, Close, Connect and Disconnect in JChannel (only
  implementation): when disconnecting, a channel is not supposed to
  receive any more messages (this was the case). Also, a process has
  to acquire a new local address when re-joining (this was not the
  case).



Version 0.5.7 Feb 1 1999 (bba)
------------------------------

- Added protocol UNI: uniform failure-atomic group mcast
- Added protocol PING: get initial members and periodical sending of
  i-am-alive message (used to overcome partitions)
- Changed GMS/GmsImpl to make use of PING




Version 0.5.6 Jan 19 1999 (bba)
-------------------------------

- Added ./Algorithms/GroupRequest, ./Algorithms/AndCommand
- Added RequestCorrelator
- Moved JavaStack/Event.java to ./Event.java. Internal channel
  implementations use now Event instead of QueueItem (code reduction)




Version 0.5.5 Jan 14 1999 (bba)
-------------------------------

- Renamed ./algorithms to ./Algorithms



Version 0.5.4 Jan 13 1999 (bba)
-------------------------------

- Back to square 1: dropped unicast mode altogether, essentially back
  to version 0.5.2 !



Version 0.5.3 Jan 4 1999 (bba)
-------------------------------

- Changed unicast interface. Renamed Connect() to Join() and
  Disconnect() to Leave().
- A channel is now operational for unicast messages after the
  Channel() constructor has been called. Only when Join() is called
  will it be able to send/receive group messages.
- The changes to the interfaces/classes require application programs
  usingt version 0.5.2 to be modified and recompiled.



Version 0.5.2 Dec 29 1998 (bba)
-------------------------------

- Modifications in the event sequence when creating a channel and when
  connecting to it (START, STARYT_OK, CONNECT, CONNECT_OK, DISCONNECT,
  DISCONNECT_OK, STOP, STOP_OK)
- Got rid of LowLevelCommunication interface
- Local address is set by SET_LOCAL_ADDRESS (sent up by lowest layer)
- Peer address is set by CONNECT(peer_addr)



Version 0.5.1 Dec 22 1998 (bba)
--------------------------------

- Fairly extensive changes to the Channel interface: changed
  ChannelFactory, Connect() and Receive(). Receive() now returns
  Objects rather than Message. These might be Messages, Views or
  Blocks. Channel is now pure pull-oriented. Removed Cast() and
  several Send() methods.



Version 0.5 Dec 21 1998 (bba)
-----------------------------

- Added new protocol PT2PT: TCP-like reliable point to point connection
- Changed Channel interface: separation of channel creation, Connect(),
  removal of Destroy() -> existing programs will need to be modified
  to use the new classes

- The changes to the interfaces/classes require application programs
  written for version 0.4 to be modified and recompiled.



Version 0.4 Dec 10 1998 (bba)
-----------------------------

- Added several new protocols (MACK, MNAK)
- Fixed IP MCAST bug (UDP.java)
- Fixed gossip bug (UDP.java)


Version 0.3 Oct 1998
--------------------

- First version (0.3) released (bba)
