There is a lot of confusion about how the client/server model fits into the distributed-database scheme. In any centralized database, the relationship between any of the users (whether they employ dumb terminals or PCs connected via a LAN) and the central database can be characterized as client/server. The client terminals or linked PCs request services and data from the centralized server. What's more, these relationships often exist in distributed systems; a system might act as a server in one transaction and as a client in another. In a distributed client/server relationship, both the client and the server (hardware and software alike) share data-repository and database-processing duties.
A new generation of client/server developers now sees the potential to extend the tr
aditional distributed client/server model to include the networked PC clients. In other words, they want to turn the traditional networked PC client/server relationship into a full-blown distributed client/server relationship.
The advantages are obvious. Distributed PC client/server systems retain the security and the power of a back-end DBMS while gaining the easy-to-use PC database products as front-end tools. Users have the option of manipulating the data locally via a DBMS engine.
The real issue with a PC-based distributed database, as with any other distributed system, lies with the transaction management. The PC versions of the back-end products (i.e., Oracle, Sybase's SQL Server, and Gupta's SQLBase Server) can often be difficult to use and also suffer from poor performance. The balance of the PC offerings (e.g., Microsoft FoxBase or Borland's Paradox) simply do not natively include the necessary transaction management facilities to be part of a distributed-database system.
While m
any of the PC-based database and database development products include tools to ensure data integrity and security, most MIS departments balk at the idea of placing mission-critical data into the hands of users. As the industry solves the problems of data location and transactional management, distributed PC client/server computing will also come into its own.
Illustration: A Client/Server Configuration
In traditional client/server database relationships, the terminals or linked PCs act as clients, requesting services and data from a centralized computer, or server. The database resides entirely on the server. In distributed client/server relationships, however, both the client and the server maintain a portion of the database (data and processing) and alternate between acting as client and as server.
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it
is
theoretical--and no language better exemplifies this than C++.
BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin,
and dozens of other CMP publications—bringing
you critical news and information about wireless communication,
computer security, software development, embedded systems,
and more!