The Distributed Database System
The tests that were performed for this application were the same as the tests provided in the DB/Test files supplied by the professor. The attached sequence diagram shows the messages passed between the client, the nameserver, and the DBServer during the running of the tests.
For the sequence diagram, on the DBServer side, the DBServer registers its NameServerCP and NameContextCP classes with the NameServer. Then, the DBServer creates a new namecontext object on the NameServer for the DBServer. Under this new name context, the DBServer then registers all of its related database classes (Database, Table, index, cell, node) with the NameServer for class based RPC. Finally, the DBServer creates a local database object, and registers this object on the NameServer under the NameContext object for the DBServer.
When the DBClient starts running, it registers its NameServerCP and NameContextCP classes with the NameServer. Then it registers creates a new NameContext object on the NameServer with the name of the DBClient.
When the DBClient is using the database, it creates a clientproxy
object to refer to the database on the DBServer. With the databaseCP object,
the DBClient adds a new table on the DBServer, and then adds some cells in
that table. The DBClient also adds creates some cells on the DBClient node,
and then adds these cells to the table. All of the interactions between the
DBClient, the nameserver and the DBServer up to this point are shown on the
sequence diagram provided.