Review: The Essential Client/Server Survival Guide by Robert Orfali, Dan Harkey and Jerry Edwards
If you are looking for a comprehensive and practical introduction to client/server computing, you might want to check out The Essential Client/Server Survival Guide by Robert Orfali, Dan Harkey and Jerry Edwards. Published by Galgotia Publications in 1996, this book covers the fundamentals of client/server architecture, design, implementation and management.
The authors are experts in the field of distributed systems and have extensive experience in teaching and consulting on client/server topics. They explain the concepts and techniques of client/server computing in a clear and engaging way, using real-world examples and case studies. They also provide useful tips and best practices for developing and deploying client/server applications.
The book is divided into four parts: Part I introduces the basic concepts and terminology of client/server computing, such as middleware, RPC, CORBA, DCOM, ODBC and SQL. Part II discusses the design issues and trade-offs involved in building client/server systems, such as scalability, performance, security and reliability. Part III describes the implementation details and tools for developing client/server applications, such as GUIs, applets, servlets, ActiveX controls and JavaBeans. Part IV covers the management aspects of client/server systems, such as testing, debugging, tuning and administration.
The book is well-organized and easy to follow. It includes many diagrams, tables and code snippets to illustrate the points. It also has review questions and exercises at the end of each chapter to reinforce the learning. The book is suitable for students, programmers, analysts, managers and anyone who wants to learn more about client/server computing.
The Essential Client/Server Survival Guide is a classic reference book that has stood the test of time. It is still relevant and useful today, as client/server computing remains a dominant paradigm in the IT industry. If you want to master the art and science of client/server computing, this book is a must-read.
In this section, we will look at some of the key features and benefits of client/server computing. We will also compare and contrast client/server computing with other paradigms, such as mainframe, peer-to-peer and cloud computing.
Features and Benefits of Client/Server Computing
Client/server computing is a distributed computing model that divides the processing and data management tasks between two or more components: clients and servers. Clients are the front-end applications that interact with the users and request services from the servers. Servers are the back-end applications that provide the services and manage the data for the clients.
Client/server computing has several advantages over other computing models, such as:
Scalability: Client/server systems can handle increasing workloads by adding more clients or servers as needed. This allows for horizontal scaling (adding more nodes of the same type) or vertical scaling (adding more resources to a single node).
Performance: Client/server systems can improve performance by distributing the workload among multiple nodes and minimizing network traffic. This reduces the latency (the time it takes to complete a request) and increases the throughput (the number of requests processed per unit of time).
Security: Client/server systems can enhance security by separating the data and logic layers and applying different access controls and encryption methods to each layer. This prevents unauthorized access or modification of data and ensures data integrity and confidentiality.
Reliability: Client/server systems can increase reliability by providing fault tolerance and redundancy mechanisms. This means that if one node fails, another node can take over its role and continue to provide the service. This also allows for backup and recovery options in case of data loss or corruption.
Flexibility: Client/server systems can offer flexibility by allowing different types of clients and servers to communicate using standard protocols and interfaces. This enables interoperability and compatibility among heterogeneous platforms and technologies.
Comparison with Other Computing Models
Client/server computing is not the only way to design and implement distributed systems. There are other paradigms that have different characteristics and trade-offs. Here are some of the most common ones:
Mainframe: Mainframe computing is a centralized computing model that relies on a single powerful computer to perform all the processing and data management tasks. Mainframe computers are typically used by large organizations that need high performance, reliability and security for their mission-critical applications. However, mainframe computers are also expensive, complex and difficult to maintain and upgrade.
Peer-to-peer: Peer-to-peer computing is a decentralized computing model that relies on a network of equal nodes that can act as both clients and servers. Peer-to-peer systems are typically used for sharing resources, such as files, music, videos or games, among users without relying on a central authority or intermediary. However, peer-to-peer systems also have challenges, such as scalability, performance, security and reliability.
Cloud: Cloud computing is a distributed computing model that relies on a network of remote servers hosted on the Internet to provide various services, such as storage, computation, networking or software. Cloud systems are typically used by individuals or organizations that want to access resources on demand without investing in hardware or software infrastructure. However, cloud systems also have issues, such as privacy, availability and vendor lock-in.
As you can see, each computing model has its own strengths and weaknesses. There is no one-size-fits-all solution for every scenario. The choice of the best computing model depends on various factors, such as the requirements, constraints and preferences of the users and developers. ec8f644aee