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.