Brief description of the architecture (key design decisions)

  • It's a long-duration service - it runs for extended amount of time, time spent for establishing connection between peers is much smaller than the average lifetime of the connection.
  • It's an internal service - service that receives requests is the same service that handles the request.
  • It's a modular service - decomposed into hierarchically related subsystems (UI backend, GlobalDataStorage, Peer, Connection).
  • It's a standing server - it continues to run beyond lifetime of any peer connection it establishes.
  • It'a a statically configured server - you need to restart the server to apply changes in the config file.
  • It's a concurrent server - it handles multiple peer connections simultaneously.

Class diagram

Class diagram of the Dscuss application is represented below.

class_diagram View in full resolution.

The source of the scheme can be opened and edited in Dia.