13 — Remote Proxying

Due Sunday, 17 April, midnight

Added in version 1.0.

At this time, you have a complete game system that runs in a single process on a single computer. You can now apply a systematic procedure to derive a distributed client-server framework. Your software architect is asking you to replace dealers with proxy dealers that know how to communicate with the central server, enabling these systems to run on a client computer anywhere on the network. On the server side, the players are replaced with proxy players that know how to connect to clients via TCP.

Your architect has derived a Remote Protocol from the protocol API. This should enable you to create a complete distributed game system. After that, you can publish the remote protocol and API, and your board-game platform will be up and running.

Important For distributed systems such as this one, it is critical, not just optional, that you can time-out clients so that your overall system does not hang due to a single misbehaving client system.

Delivery Your final product consists of two independent pieces:
  • an Evolution game server

  • an Evolution game client

They are connected via the remote protocol but, if they adhere to the protocol properly, they will run with any other clients and servers, respectively, that live up to this protocol. Since all of you create such servers and clients, you can connect your servers and clients to each other.

Final Code Walk The final code walks will focus on the game system and/or the distributed client-server system. Be prepared to connect several of your clients to someone else’s server and vice versa.