This book was born of a need to demonstrate the benefits of distributed alternatives. Many developers of computer systems are becoming aware of client-server and other distributed architectures, but have never seen a working example of a system built to this model. This book provides that working example, using the tools, such as C and Oracle, that today's developers actually use.

Many organizations are acquiring large numbers of 80386 or other powerful microcomputers, but often with little idea of how to effectively integrate these with Oracle and other centralized database managers. In too many cases the micros end up as glorified terminals, with all the processing still done on the minicomputer or mainframe.

Other organizations that have tentatively adopted a client-server approach, have realized little benefit from the potential flexibility inherent in the model. With a powerful client PC, almost any imaginable user interface becomes possible, while still retaining access to centralized data under the control of a server. Moving an Oracle form developed for a character-oriented minicomputer to a PC is only the first step in realizing the benefits of the client-server architecture.

This book demonstrates the principles of client-server computing using a sample application that is intentionally a radical and liberating departure from the average business system. It shows, in simple form, the superior graphic capabilities of a PC-based user interface. More significantly, it shows that PC applications can be effectively integrated with central databases managed by real relational database management systems such as Oracle.

A central message of this book is that there are no set limits. You can have the security, data integrity and multi-user accessibility afforded by a centrally managed database, and still have the graphic and other sophisticated tools available on PCs and other single-user systems.

This book had its roots in the spring of 1989 with the second annual Synerlogic Database Derby. Each competitor was to construct a game, with ideally some connection to database technology. My winning entry was an early version of the sample application, SQL meTTTa, included in this book.

Shortly after this I was asked to develop a course on data communications. I decided to break SQL meTTTa into client and server portions, and discuss the communications hardware and software required to support the connection. The course became an introduction not only to data communications, but also to distributed systems and the client-server model. My efforts on the course also kindled a desire to write a book demonstrating the benefits of client-server computing.