Chapter 12: Client/Server Systems Client/server is a term 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 processes; servers and clients. Basic Components A client is any process that requests specific services from server processes. A server is a process that provides requested services for clients. Both clients and servers can reside in the same computer or in different computers connected by a network. Variations on Client Server The key to client/server power is where the requested processing takes place. In mainframe systems and Application Server based systems all processing takes place on the server, and the client is used to display the data screens. With PC and File servers all processing takes place on the PC and the server is used only for storage There are many variations of these models today (see below) The client/server environment provides a clear separation of server and client processes. Basic Client Server Model
The Forces That Drive C/S Systems The Changing Business Environment
Global market dynamics and competitive pressure Need for fast, efficient, and widespread data access
The Need for Enterprise Data Access
Need fast, on-demand data access by decision makers through easy-to-use interfaces Rapidly increasing Internet enabled access to external data through the Internet's inherent client/server structure
End User Productivity Gains Based on the Use of Data Resources
End user demand for better ad hoc data access and data manipulation, better user interfaces, and better computer integration
The Forces That Drive C/S Systems Technological Advances Microprocessor Technology Data Communication and the Internet Database Systems Operating Systems and Graphical User Interfaces (GUIs) Sophisticated PC-Based End User Application Software Cost/Performance Issues of the PC-Based Platform Savings
Widespread use of PC-based business applications such as word processing, spreadsheets, DBMS, and desktop publishing New application development environments Economies of scale for purchased software
Costs
More rapid upgrade cycle than traditional systems Management costs for client systems Many costs shifted to end-users (fiddle factor)
Client Server Architectures Fat Server/Thin Client Mainframes in the 1970s
Cons
Complex, proprietary OS Dumb terminals Restricted access Hardware and software dictated IS Centralized, complex MIS department bureaucracy
Pros o o
With less expensive systems (e.g. Minis, Unix, Linux, multiuser versions of DOS) this can be the least expensive way to go Low management costs
Client Server Architectures Fat Server/Thin Client Modern Reinterpretation
Application server (NT, Unix) Processing: Server, Data: Server, Display Client Intelligent terminals o X-term, WinTerm, Web browser, Sun's Sun Ray Pros: o o
Simpler to maintain client Less client obsolescence
Cons
Expensive server o Requires high bandwidth network o Complete dependent on server uptime o Relatively immature Note: sometimes the thin client is run on a fat client. o
The Evolution of Client/Server IS Microcomputers in the 1980s Easy-to-use software (e.g., spreadsheet) Micro-based database systems Data still in mainframes Manual download Sneakernet The Evolution of Client/Server IS Intelligent Terminals
PCs connected to the mainframe Electronic download Proliferation of snapshot versions of corporate DB Islands of information Sneaker net or FTP up and down Client Server Architectures Server/Traditional Fat Client The LAN model
Common model (e.g. McMurry) Network operating systems (NOS) Powerful PCs
Pros: 1. Capable client 2. Not dependent on Server uptime 3. May use thin (inexpensive) servers Cons: 4. 5. 6. 7.
Management expense Not powerful or stable enough for Enterprise Systems The majority of LAN servers are limited to File and Print Services Servers proliferate.
Client Server Architectures Fat Server/Expandable client The Network Computer Model
Variant of thin client Processing: client, Data: server, Display: client
Network Computers, Browsers with ActiveX/Java Pros: as in thin server
Cons:
1. immature, 2. Clients usually not standalone Not cheaper than fat clients to buy (but the real issue is management not upfront costs).
Client Server Architectures Server/Managed Fat Client
The biggest problem with Server/Traditional Fat client model is managing the client. This model is intended to address that. Pros: 1. Reduces client management expense 2. More capable clients Cons: 1. Real Soon now (possibly Windows 2000, Novell Zenworks, etc). 2. Not well standardized (vendor dependent solutions 3. Requires Fat server Expensive
The Evolution of Client/Server IS Computer Landscape of the 1990s Networks tie large numbers of heterogeneous computers PC as the common end user station and the point of access to the entire corporate database Advanced applications for direct data access The Internet - Network of networks: move away from Fat Clients towards Thin Client systems Managerial Expectations of C/S Systems
Client/Server Benefits Platform-independent system development Optimized distribution of processing activities among different platforms Use of user friendly, cost effective, and compatible techniques, methodologies, and specialized tools Observations Client/Server computing is a tool, not the goal. Client/Server computing is not the answer to all data management problems. Client/Server computing has its own set of management problems. Managerial Expectations of C/S Systems MIS Expectations of Client/Server Benefits
Reduced development and implementation costs Reduced development time and increased programmer productivity Extended system life cycle through scalability and portability Reduced system operational cost Change of MIS function from development to end user support Enhanced information deployment
Managerial Expectations of C/S Systems Organizational Expectations of Client/Server Benefits
Flexibility and adaptability Improved employee productivity Improved company work flow and a way to reengineer business operations New opportunities to provide competitive advantages Increased customer service satisfaction
Client/Server Architecture Three Components of Client/Server Architecture The client is any computer process that requests services from the server. It is also known as the front-end application. The server is any computer process providing services to the clients. The server is also known as the back-end application.
The communication middleware is any computer process(es) through which clients and servers communicate. It is also known as middleware or communications layer. Interaction of Client and Server Components
Client/Server Architecture Client/Server Principles (ideals not Reality!) Hardware independence Software independence o o o
Operating systems Network systems Applications
Open access to services Client/Server Architecture Client/Server Principles (ideals not Reality!) Process distribution o o o o
Process autonomy Maximization of local resources Scalability and flexibility Interoperability and integration
Standards: o
many traditional client server installations are built around proprietary standards.
o
This is one reason for the rise of intranets, internal client server systems built around nonproprietary (internet) standards
Client/Server Architecture Client Components Powerful hardware An operating system capable of multitasking A graphical user interface (GUI) Communications capability Manageability! Client/Server Architecture Server Components File services Print services Communications services (e.g. (Internet Gateway) Database services Transaction services Miscellaneous services Client Components
Client/Server Architecture Characteristics of Server Hardware Fast CPU Large, fast storage capabilities Fault-tolerant capabilities Expandability of CPU, memory, disk, and peripherals Bus support for multiple add-on boards Multiple communications options Server Components
Server Process Benefits from the Client/Server Architectural Principles Location independence Resource optimization Scalability Interoperability and integration Client/Server Architecture Communications Middleware Components The use of database middleware yields Network independence Database server independence Two levels of communications middleware The physical level deals with the communications between client and server computers (computer to computer). The logical level deals with the communications between client and server processes (process to process). Client/Server Architecture: Network Protocols Transmission Control Protocol/Internet Protocol (TCP/IP)
Official communication protocol of the Internet
Internetwork Packet Exchange/ Sequenced Packet Exchange (IPX/SPX)
Developed by Novell for LAN communications Supported by the majority of client/server network applications and major PC operating systems Declining
Network Basic Input Output System (NetBIOS)
Developed by IBM for PC applications communications, adopted by Microsoft for LANMAN, NT based networks Supported by the majority of PC operating systems and applications Declining
Application Program to Program Communications (APPC)
Used in IBM mainframe Systems Network Architecture (SNA) environments
Client/Server Architecture: Database Middleware Components Application programming interface (API) interfaces with the client application. The database translator translates the SQL requests into the specific database server syntax. The network translator manages the network communications protocols. Three Main Benefits of Using Middleware Access multiple databases Database server-independent Network protocol-independent Database Middleware Components
Interaction between Components
Accessing Multiple Database Servers
Client/Server Architecture Middleware Classifications Messaging-oriented middleware (MOM) Remote-procedure-call-based (RPC-based) middle ware Object-based middleware The Quest for Standards: Standard-Setting Organizations IEEE (Institute of Electrical and Electronics Engineers) o
Network and hardware
ANSI (American National Standards Institute) o
Programming languages (e.g., COBOL, SQL)
IETF o
Internet Related Standards
W3C o
Web related Standards (HTML, XHTML, CSS, XML
The Quest for Standards Competing Standards Client operating systems o o
Microsoft Windows 96/98/2000 -- De facto standard OS/2, Apple's Mac OS 8.5, Unix including Linux
Client graphical user interfaces o o o
Microsoft Windows 96/98/2000 -- De facto standard OS/2 Presentation Manager, Macintosh, UNIX (e.g., Motif, OpenLook, KDE) Web browsers (another standards war)
Server operating systems and network protocols Database servers: Unix/Linux, OS/2, Windows NT Server/2000 Server Printer and file servers: o Novel Netware, MS NT, 2000, Unix/Linux o
Middleware o
ODBC, IDAPI, DRDA, ADO, OLE/DB
Client/Server Databases Functions of the Client/Server Database Provide transparent data access to multiple and heterogeneous clients regardless of the hardware, software, and network platform. Allow client requests to the database server over the network. Process client data requests at the local server. Send only the SQL results to the clients over the network.
Client/Server Databases Characteristics of Distributed Client/Server Database Systems The location of data is transparent to the user. Data can be accessed and manipulated by the end user at any time and in many ways. The processing of data is distributed among multiple computers. Client/Server Architectural Styles Two Key Questions for the Client/Server Architecture
How is the division made? Where in the system should the results of that division be placed?
Three Application Logic Components
Input/Output (I/O) Processing o I/O processing logic o Application or business logic o Data management logic Storage
Application Logic Components
Client/Server Architectural Styles
Five Functional Logic Components
Presentation logic I/O processing logic Application of business logic Data management logic Data manipulation logic
Application Functional Logic Components
Client/Server Architectural Styles Typical Logic Component Placement
The presentation logic is always placed on the client side. The I/O processing logic may be placed on the client side or on the server side, but more commonly on the client side. The business logic can also go either to the client or the server, but usually on the client side. The data management logic can also be placed on either the client or the server side, but normally on the client side as part of the application code.
The data manipulation logic is most commonly located on the server side.
Client/Server Architectural Styles Notes on Figure 12.16
The file server architectural style reflects a setup in which the client does most of the processing, whereas the server side only manages the data storage and retrieval. The data management logic is split between the client and the server computers in the database server architectural style. The transaction server architectural style permits the sharing of transaction details between the client and the server. The application server architecture makes it possible to enjoy the benefits of client/server computing even when the client computers are not powerful enough to run some of the client/server applications.
Client/Server Implementation Issues Client/Server versus Traditional Data Processing Major changes brought by client/server computing
From proprietary to open systems (But Traditional Client/Server contains many proprietary components From maintenance-oriented coding to analysis, design, and service From data collection to data deployment From a centralized to a more distributed style of data management From vertical, inflexible to more horizontal, flexible organizational style
Client/Server Implementation Issues Changes in the DP Environment Brought by Client/Server Computing Hardware
Single-vendor-dependent --> Integration of different hardware platforms
Software
Mainframe, 3GL GUI, networks, communications
Data
Centralized, single repository --> Distributed, multiple formats
Procedures
Centralized, rigid, complex --> Flexible, decentralized
People
Requires support and training for new skills and technology
Client/Server Implementation Issues Managerial Considerations
Management and support of communications infrastructure Management and support of applications Controlling escalating and hidden costs Managing people and cultural changes Managing multiple vendor relationships
Client/Server Implementation Issues Client/Server Development Tools GUI-based development
A GUI builder that supports multiple interfaces Object-oriented development with support for code reusability Data dictionary with a central repository for data and applications Support for multiple databases Data access regardless of data model Seamless access to multiple databases
Client/Server Implementation Issues
Complete SDLC support from planning to implementation and maintenance Team development support Support for third-party development tools Prototyping and rapid application development (RAD) capabilities Support for multiple platforms Support for middleware protocols Multiple network support
Client/Server Implementation Issues An Integrated Approach Six Phases of Client/Server Decision 1. 2. 3. 4. 5. 6.
Information systems infrastructure self-study Client/Server infrastructure definition Selecting a window of opportunity Management commitment Implementation Review and evaluation