Client-Server-Computing.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
This page intentionally left blank Copyright © 2009, New Age International (P) Ltd., Publishers Published by New Age International (P) Ltd., Publishers All rights reserved. No part of this ebook may be reproduced in any form, by photostat, microfilm, xerography, or any other means, or incorporated into any information retrieval system, electronic or mechanical, without the written permission of the publisher. All inquiries should be emailed to [email protected] ISBN (13) : 978-81-224-2861-2 PUBLISHING FOR ONE WORLD NEW AGE INTERNATIONAL (P) LIMITED, PUBLISHERS 4835/24, Ansari Road, Daryaganj, New Delhi - 110002 Visit us at www.newagepublishers.com Preface In recent years there have been significant advances in the development of high performance personal computer and networks. There is now an identifiable trend in industry toward downsizing that is replacing expensive mainframe computers with more cost-effective networks of personal computer that achieve the same or even better results. This trend has given rise to the architecture of the Client/Server Computing. The term Client/Server was first used in the 1980s in reference to personal computers on a network. The actual Client/Server model started gaining acceptance in the late 1980s. The term Client/Server is used to describe a computing model for the development of computerized systems. This model is based on the distribution of functions between two types of independent and autonomous entities: Server and Client. A Client is any process that request specific services from server processes. A Server is process that provides requested services for Clients. Or in other words, we can say “A client is defined as a requester of services and a server is defined as the provider of services.” A single machine can be both a client and a server depending on the software configuration. Client and Server processes can reside in same computer or in different computers linked by a network. In general, Client/Server is a system. It is not just hardware or software. It is not necessarily a program that comes in a box to be installed onto your computer’s hard drive. Client/Server is a conglomeration of computer equipment, infrastructure, and software programs working together to accomplish computing tasks which enable their users to be more efficient and productive. Client/Server applications can be distinguished by the nature of the service or type of solutions they provide. Client/Server Computing is new technology that yields solutions to many data management problems faced by modern organizations. Client/Server Computing: An Introduction, features objective evaluations and details of Client/Server development tools, used operating system, database management system and its mechanism in respect of Client/Server computing and network components used in order to build effective Client/Server applications. vi Preface Last but not the least, this work is primarily a joint work with a number of fellow teacher who have worked with us. My parents, wife Meera, and our children, Akanksha and Harsh. I am particularly grateful to Dr. A. P. Singh, Principal, Udai Pratap Inter College, Varanasi; Dr. D. S. Yadav, Sr. Lecturer, Department of Computer Science and Engineering, IET, Lucknow; Dr. A. K. Naiyak, Director IIBM, Patna, former President of IT and Computer Science Section of Indian Science Congress Association; Prof. A. K. Agrawal, Professor and Ex-Head of Department, Computer Science and Engineering IT, BHU, Varanasi and Mr. Manish Kumar Singh, Sr. Lecturer, Rajarshi School of Management and Technology for providing the necessary help to finish this work. Suggestions and comments about the book are most welcome and can be sent by e-mail to [email protected]. Subhash Chandra Yadav Contents Preface v 1 INTRODUCTION 1–23 1.1 What is Client/Server Computing? 1 1.1.1 A Server for Every Client 2 1.1.2 Client/Server: Fat or Thin 4 1.1.3 Client/Server: Stateless or Stateful 4 1.1.4 Servers and Mainframes 5 1.1.5 Client/Server Functions 7 1.1.6 Client/Server Topologies 7 1.1.7 Integration with Distributed Computing 8 1.1.8 Alternatives to Client/Server Systems 9 1.2 Classification of Client/Server Systems 9 1.2.1 Two-tier Client/Server Model 9 1.2.2 Three-tier Client/Server Model 12 1.2.2.1 Transaction Processing Monitors 15 1.2.2.2 Three-tier with Message Server 16 1.2.2.3 Three-tier with an Application Server 17 1.2.2.4 Three-tier with an ORB Architecture 17 1.2.2.5 Three-tier Architecture and Internet 17 1.2.3 N-tier Client/Server Model 18 1.3 Clients/Server— Advantages and Disadvantages 19 1.3.1 Advantages 19 1.3.2 Disadvantages 21 1.4 Misconceptions About Client/Server Computing 22 Exercise 1 23 viii Contents 2 DRIVING FORCES BEHIND CLIENT/SERVER COMPUTING 25–40 2.1 Introduction 25 2.2 Driving Forces 26 2.2.1 Business Perspective 26 2.2.2 Technology Perspective 28 2.3 Development of Client/Server Systems 29 2.3.1 Development Tools 30 2.3.2 Development Phases 30 2.4 Client/Server Standards 32 2.5 Client/Server Security 33 2.5.1 Emerging Client /Server Security Threats 33 2.5.2 Threats to Server 34 2.6 Organizational Expectations 34 2.7 Improving Performance of Client/Server Applications 36 2.8 Single System Image 37 2.9 Downsizing and Rightsizing 38 2.10 Client/Server Methodology 39 Exercise 2 40 3 ARCHITECTURES OF CLIENT/SERVER SYSTEMS 41–62 3.1 Introduction 41 3.2 Components 42 3.2.1 Interaction between the Components 43 3.2.2 Complex Client/Server Interactions 43 3.3 Principles behind Client/Server Systems 45 3.4 Client Components 46 3.5 Server Components 48 3.5.1 The Complexity of Servers 51 3.6 Communications Middleware Components 52 3.7 Architecture for Business Information System 55 3.7.1 Introduction 55 3.7.2 Three-Layer Architecture 56 3.7.3 General Forces 56 3.7.4 Distribution Pattern 58 3.8 Existing Client/Server Architecture 59 3.8.1 Mainframe-based Environment 59 3.8.2 LAN-based Environment 60 3.8.3 Internet-based Environment 60 Exercise 3 62 Contents ix 4 CLIENT/SERVER AND DATABASES 63–78 4.1 Introduction 63 4.2 Client/Server in Respect of Databases 64 4.2.1 Client/Server Databases 64 4.2.2 Client/Server Database Computing 65 4.3 Client/Server Database Architecture 66 4.4 Database Middleware Component 70 4.5 Access to Multiple Databases 71 4.6 Distributed Client/Server Database Systems 72 4.7 Distributed DBMS 74 4.8 Web/database System for Client/Server Applications 76 4.8.1 Web/database Vs Traditional Database 77 Exercise 4 78 5 CLIENT/SERVER APPLICATION COMPONENTS 79–104 5.1 Introduction 79 5.2 Technologies for Client/Server Application 79 5.3 Service of a Client/Server Application 80 5.4 Categories of Client/Server Applications 84 5.5 Client Services 85 5.5.1 Inter Process Communication 87 5.5.2 Remote Services 91 5.5.3 Window Services 92 5.5.4 Dynamic Data Exchange (DDE) 92 5.5.5 Object Linking and Embedding (OLE) 93 5.5.6 Common Object Request Broker Architecture (CORBA) 94 5.5.7 Print/Fax Services 95 5.5.8 Database Services 95 5.6 Server Services 96 5.7 Client/Server Application: Connectivity 100 5.7.1 Role and Mechanism of Middleware 101 5.8 Client/Server Application: Layered Architecture 102 5.8.1 Design Approach 102 5.8.2 Interface in Three Layers 103 Exercise 5 104 x Contents 6 SYSTEM DEVELOPMENT 105–138 6.1 Hardware Requirements 105 6.1.1 PC Level Processing Units 105 6.1.2 Storage Devices 110 6.1.3 Network Protection Devices 115 6.1.4 Surge Protectors 117 6.1.5 RAID Technology 120 6.1.6 Server Specific Jargon 122 6.2 Software Requirements 124 6.2.1 Client OS 124 6.2.2 Server OS 124 6.2.3 Network OS 128 6.3 Communication Interface Technology 131 6.3.1 Network Interface Card 131 6.3.2 LAN Cabling 132 6.3.3 WAN 132 6.3.4 ATM 133 6.3.5 Ethernet 133 6.3.6 Token Ring 134 6.3.7 FDDI 135 6.3.8 TCP/IP 135 6.3.9 SNMP 135 6.3.10 NFS 136 6.3.11 SMTP 136 Exercise 6 137 7 TRAINING AND TESTING 139–156 7.1 Introduction 139 7.2 Technology Behind Training Delivery 140 7.2.1 Traditional Classroom 140 7.2.2 On-the-Job Training (OTJ) 141 7.2.3 Video Conferencing 141 7.2.4 Collaborative Tools 141 7.2.5 Virtual Groups and Event Calls 142 7.2.6 E-Learning 142 7.2.7 Web-based Training 142 7.2.8 Learning Management Systems (LMS) 143 7.2.9 Electronic Performance Support Systems (EPSS) 143 Contents xi 7.3 To Whom Training is Required? 143 7.3.1 System Administrator Training 143 7.3.2 DBA Training 144 7.3.3 Network Administrator Training 145 7.3.4 End-User and Technical Staff Training 146 7.3.5 GUI Applications Training 146 7.3.6 LAN/WAN Administration and Training Issues 148 7.4 Impact of Technology on Training 149 7.4.1 Client/Server Administration and Management 150 7.5 Client/Server Testing Technology 150 7.5.1 Client/Server Software 150 7.5.2 Client/Server Testing Techniques 151 7.5.3 Testing Aspects 152 7.5.4 Measures of Completeness 153 7.6 Testing Client/Server Application 153 Exercise 7 156 8 CLIENT/SERVER TECHNOLOGY AND WEB SERVICES 157–172 8.1 Introduction 157 8.2 What are Web Services? 158 8.2.1 Web Services History 158 8.2.2 Web Server Technology 158 8.2.3 Web Server 162 8.2.4 Web Server Communication 163 8.3 Role of Java for Client/Server on Web 164 8.4 Web Services and Client/Server/Browser – Server Technology 167 8.5 Client/Server Technology and Web Applications 168 8.6 Balanced Computing and the Server’s Changing Role 171 Exercise 8 172 9 FUTURE OF THE CLIENT/SERVER COMPUTING 173–193 9.1 Introduction 173 9.2 Technology of the Next Generation 173 9.2.1 Networking 174 9.2.2 Development Tools 174 9.2.3 Processors and Servers 177 9.2.4 Paradigms 178 xii Contents 9.3 Enabling