O'Reilly logo

Java Distributed Computing by Jim Farley

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Fixed Protocols

If we recall our definition of a message as an identifier followed by a set of arguments, we can break down the possible message protocols into fixed and adaptable types. In this section we’ll discuss fixed protocols, where the set of possible identifiers and the arguments for each type of message are known beforehand and don’t change during a communication session. Adaptable protocols have variable argument lists on messages, or variable sets of message types, or both.

Let’s return to the chess-player agents that we mentioned earlier and define a fixed protocol that they could use to engage in a game of chess. We’ll define a protocol that will let them pass moves back and forth, confirm each other’s moves, and concede a game. Then we’ll implement this message protocol using our BasicMessage and BasicMsgHandler classes.

Figure 6.1 shows the architecture of the chess-playing system we’ll be building in the following sections. On each player’s host computer, a ChessPlayer object keeps track of the current board layout and comes up with the player’s next move. A ChessServer object handles all of the communication with the remote opponent; it packages up moves from the local player into messages, and ships them off to the opponent’s ChessServer. (It also takes messages from the remote opponent and calls the required methods on the local ChessPlayer.)

Chess system architecture
Figure 6-1. Chess ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required