A client/server architecture consists of several parts:
To implement a client/server database, each of the components above must be implemented; either using existing software or by writing new code. We designed a new client/server system primarily in order to implement our own secure protocol. Accordingly, we wrote our own code to handle the database communication protocol. The other components are off-the-shelf, in order to reduce the programming work.
The following are the components used in our system:
Location | Component | Technology |
Client | operating system | Win32 |
network communication package | TCP/IP + SSL | |
client DBMS communication package | Our own code | |
graphical user interface | Zinc | |
Network | protocol | TCP/IP |
Server | operating system | Linux |
network communication package | TCP/IP + SSL | |
database protocol + support code | Our own code | |
authentication module | Our own code | |
access control / logging module | Our own code | |
package for physical DBMS access | CodeBase |
The architecture is illustrated in Figure 1.