Manning Logo
Home | Ordering Info | Shopping Cart | Manage My Account | Login
Attention customers: online shopping is now available exclusively through our main website: http://www.manning.com. Thank you.
How to Deliver Client/Server Applications that Work

Inside the book

Chapter 1 Excerpt Table of Contents Index Preface

Manning Blog

Why small is sweet?

Author Blogs

Dave Crane more...

Author Calendar

Upcoming Events

Catalog

Java .NET Perl XML All by Subject All by Title

About...

Manning Contact Us Ordering FAQs ebooks Covers Sandbox Forums Distributors Manning Early Access Program (MEAP) Affiliate Program Academia/Publicity User Group Program Press Releases Jobs

Manning Publications Co.
209 Bruce Park Avenue
Greenwich, CT 06830

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?

As someone involved in the application of distributed computing technology, I found it difficult to locate practical information on such applications. Most books fall into two broad categories: the first class of books describes distributed computing technology from a "fifty thousand foot" level, without much technical detail. These books are primarily targeted at executives, to help them with strategic decision making.

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

I have structured this book to reflect the sequence of steps that one follows in delivering a distributed system solution. The book consists of three parts. Part I addresses management and business issues. It deals with the difficult, but absolutely crucial question of whether distributed technology is applicable to the business problem at hand. It offers suggestions on how to promote the use of client/server technology to users and management. It examines the benefits and challenges of distributed technology. Finally, some suggestions are given for vendor management and for organizing project teams.

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
While some readers are interested in all three issues, others might prefer to skip around. The reader is encouraged to explore only those sections that are of real interest.

Terminology

The computer industry is notorious for its lack of consistent terminology, and distributed computing is no exception. Before we proceed, let's define the most common terms that will be used in this book. I realize that you may have come across a different set of meanings, but in order for us to understand each other let's use these terms as they are defined here.

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.

[Image removed for the web.]

Figure 1.1 Example of a distributed system: MS LAN Manager

Client/Server Computing

Over the last several years, a popular phrase has emerged in the press and in the vendor community. The phrase client/server computing is now synonymous with almost any form of distributed computing. Therefore for consistency, I will use the phrases client/server and distributed systems somewhat interchangeably.

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.

[Image removed for the web.]

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.

[Image removed for the web.]

Figure 1.3 Client/server interaction in Netware

Cooperative Processing

When a system consists of two or more independent components that run on different machines, we say that it exhibits cooperative processing. The distributed components cooperate with each other in order to accomplish some user task.

[Image removed for the web.]

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

In many respects, distributed computing technology is still in its infancy. This is not to say that distributed technology is not ready to be used at this time. On the contrary, those who have used it successfully have achieved remarkable benefits. The real challenges are to know when distributed technology should be applied and how to apply it correctly. The goal of this book is to address these fundamental questions.

Suggested Reading

Alex Berson, Client/Server Architecture, New York: McGraw-Hill, 1992.

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.

ABOUT THE AUTHOR...

Alex Bakman has worked on client/server projects at IBM and at UNUM. He is currently President of Cleversoft, a startup whose mission is to offer a set of easy to use, intelligently designed products for building and managing mission-critical client/server systems.
Home | Catalog | Privacy Policy | About Manning

© 2003-2006 Manning Publications Co.