Next: Client software Up: Build your own DBMS!! Previous: Architectural answers to design

# The components

A client/server architecture consists of several parts:

- A client:
  - A (graphical) user interface.
  - A DBMS communication package.
  - A network communication package.
  - An operating system.
- A network, which connects the client to the server.
- A server:
  - A package for physically accessing a database, including record locking, read/write, etc.
  - An access control / logging module.
  - An authentication module.
  - A database protocol and code to support it.
  - A network communication package.
  - An operating system.

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.

Figure 1: System architecture

- Client software
- Database and network protocols
- Server software

Next: Client software Up: Build your own DBMS!! Previous: Architectural answers to design