6 A distributed system
6.3 The architecture
The architecture of the system is shown in Figure 4. It consists of a number of components. The most important of these is the web server. This communicates with browsers used by customers.
There are two other computers that are used in the system which are directly connected to the web server: a mail server which sends and receives mail from customers and a mailing list server which administers the mailing lists of customers and their interests. Both these servers communicate with the web server, for example the mailing list server is periodically sent the email addresses of users who wish to be added to a mailing list. The system will have a number of backup servers, for example the web server will have a backup which is brought in if hardware problems affect the main web server. This, again, is an example of the second myth I detailed earlier: that e-commerce systems are totally new. Often such systems will contain quite old technology which is hidden behind internet-based technology.
The main data store for the system is a series of databases which contain details such as customer payments and the number of books on stock and on order. These databases are replicated and are stored on a separate computer which is a very powerful server. The package which maintains stock details and customer financial details is a specialised one which has been developed for booksellers; unfortunately it is not well suited for internet use since it was developed some time ago. In order for it to connect with the front end of the system – the part that is implemented via the web server – a number of distributed objects are stored on the server that holds the databases. The web server communicates its requirements by means of sending messages to these objects which then interact with the database software. The distributed objects act as a form of interface which hides the details of the databases and provides an object-based interface to the web server.
This, then, is a typical retail system that would use a number of the technologies and techniques: web servers, browsers, distributed objects, mail servers, replication and persistent state web server technologies.