|
How to Deliver Client/Server Applications that Work Alex Bakman 1995 | 227 pages ISBN: 013304601X |
|||
| $29.00 | Softbound print book | Out of print (?) | |
Chapter 1 Excerpt
INTRODUCTION(excerpt)
American businesses are experiencing an unprecedented amount of change, and more than ever, they are looking to computer technology for solutions to challenges.
Distributed computing technology has found its way into almost every aspect of such technological solutions, and yet knowledge of how to apply it correctly is still scarce. This general lack of knowledge leads to projects that fail, tarnished reputations, and broken careers. In many instances, such failure is perceived as failure of the technology.
The aim of this book is to provide practical information on how to apply distributed computing technology successfully. The book is essentially a roadmap to delivering distributed systems. It starts with the conceptualization of a system and goes through the various stages of design, development, and implementation.
Whom is This Book For?
Another class of books on distributed computing is aimed at the programmer. Such books are often many hundreds of pages long, and are filled with an incredible amount of technical detail. However, they give very little nontechnical advice.
Many hours spent on synthesizing information from both kinds of sources have convinced me that there is a need for a book to help those of us responsible for delivering distributed systems. If you are a project leader, a project manager, a system architect, a chief programmer, or someone who wants to learn practical information on how to deliver distributed system solutions, this book is for you. It will help you to deal with the business and management issues, and to examine many architectural and design challenges of building distributed systems, and provide you with concrete and practical technical advice.
How to Read This Book
Part II focuses on the technical aspects of distributed technology. Chapter 6 conceptualizes distributed system technology in the form of a road map. Building on that chapter, Chapter 7 demonstrates the most frequently used models for building distributed systems.
Part III offers a methodology for building and managing client/server systems. This section starts out by demonstrating how object-oriented analyses and design can be applied to client/server development. Distributed systems testing and deployment are subsequently explored. Chapter 13 presents various software distribution techniques, organizational support structures, distributed systems management tools and techniques, and other important implementation issues.
The information in this book generally falls into three groups:
- Business and management issues
- Technical architecture and design issues
- Technical detail and implementation issues
Terminology
The word distributed means that a system involves more than one computer. When a system consists of many components that run on different computers it is said to be a distributed system. For example, a network operating system such as Microsoft's LAN Manager is certainly a distributed system, because it consists of a client component which runs on every users' machine and server components (Figure 1.1).
A common misconception in the industry is that distributed applications involve only workstations and personal computers. Many distributed systems are PC-based, but the term encompasses many other types of computers, including mini computers and large mainframes.
Figure 1.1 Example of a distributed system: MS LAN Manager
Client/Server Computing
Many people mistakenly associate client/server computing only with database applications. Essentially, any database application that sends SQL requests across the network to a DBMS server is called a client/server application. This type of an application is certainly an example of a client/server database application, but the client/server model has a much broader definition which extends beyond database applications.
Figure 1.2 A client/server relationship can exist between many diverse systems
First and foremost, client/server is a computing model, where one application (the client) sends requests to another application (the server) for processing. For example, in Figure 1.2, a Lotus Notes Windows application (client) sends requests to a Notes server on OS/2, which processes them and replies to the client. As already mentioned, a client/server application does not necessarily need to be a database application. For example, a network operating system such as Novell's NetWare is a client/server system. A NetWare client component called the Netware shell sends I/O read and write requests to a Netware file server, which processes them (Figure 1.3).
The client/server designation is not a physical attribute, but a role that an application takes on at a particular point in time. For example, an application can be a client in one instance and a server in another.
A client/server model is a form of a master/slave relationship. The server would never send unsolicited requests to a client. The client initiates all such requests to the server, and the server merely replies.
Figure 1.3 Client/server interaction in Netware
Cooperative Processing
Figure 1.4 Peer-to-peer relationship
Cooperative processing is synonymous with the term peer-to-peer. In a peer-to-peer system, all components of a distributed system are equal peers and can send requests to each other for processing (Figure 1.4). Unlike the client/server relationship, any peer can send and perform requests; i.e., no one peer is designated to be a server at all times.
You can think of each peer as being both a client and a server. In this model, every peer must be ready to receive requests from other peers.
State of the Industry
Suggested Reading
Patrick Smith, Client/Server Computing, Carmel, IN: SAMS Publishing, 1992.
Dick Conklin, ed., OS/2 Notebook, Redmond, WA: Microsoft Press, 1990.
DESCRIPTION
How to Deliver Client/Server Applications that Work focuses on the needs of a project leader or a technical architect who is responsible for turning the vision of the executive into a successful client/server system. Unlike other current books, which are either written for senior management responsible for strategy or for programmers who need low level programming details, this is a practical and concise, "how-to" guide and a roadmap for the process which will successfully deliver client/server applications. It leads the project leader through all the stages of the life cycle -- from conceptualization to system development and deployment. How to Deliver Client/Server Applications That Work offers practical, proven advice on the business and technical issues that a project leader must deal with effectively.Some highlights:
- covers entire system development life cycle
- presents various client/server models
- discusses organizational deployment issues
- provides cost/benefit analyses
- explains distributed systems technologies
- rich in practical pointers, checklists, etc.
- based on real-life experience
How to Deliver Client/Server Applications that Workis for technical architects, systems consultants, project leaders, chief programmers, technical managers, systems support managers, systems administrators, and all others working on client/server applications.
