Client/Server Computing Ajay Kumar Shrivastava What is Client/Server • Clients and servers are separate logical entities that work together over a network to accomplish a task Characteristics • • • • • • • • • Service Shared resources Asymmetric protocols Transparency of location Mix-and-match Message based exchanges Encapsulation of services Scalability Integrity Types of Servers • File Servers Types of Servers • Database Servers Types of Servers • Transaction Servers Types of Servers • Groupware Servers Types of Servers • Object Servers Types of Servers • Web Servers Fat Servers or Fat Clients Fat Clients: File & Database Fat Servers: Groupware, Transaction & Web 2-Tier Versus 3-Tier Comparison b/w 2-Tier & 3-Tier 2-Tier 3-Tier System administration Complex (more logic on the client to manage) Less complex Security Low (data-level security) High Encapsulation of data Low (data tables are exposed) High (the client invokes services or methods) Performance Scale Poor Poor (limited management of client communications links) Good Excellent (concentrates incoming sessions; can distribute loads across multiple servers) Application reuse Poor (monolithic application on client) Excellent (can reuse services and objects) Ease of development High Getting better Server-to-server infrastructure No Legacy application integration No Yes (via server-side middleware) Yes (via gateways encapsulated by services or objects) Internet support Poor Excellent Heterogeneous database support Yes Rich communication choices No No (only synchronous, connection-oriented RPC-like calls) Hardware architecture flexibility Limited (you have a client and a server) Excellent Availability Poor Excellent Yes Components: When 3-Tier Is N-Tier Advantages of Component based Middle Tier • You can develop big applications in small steps • Applications can reuse components • Clients can access data and functions easily and safely • Custom applications can incorporate off-theshelf components • Component environments don't get older— they only get better When Should You Use 3-Tier? • More than 50 applications • Written in different languages or by different organizations • Heterogeneous data sources • Life longer than three years • Many modifications or additions • A high-volume workload • Significant inter-application communication • Expectation of growing the application When Should You Use 3-Tier? Web C/S Versus Traditional C/S Application Characteristics Number of clients per application Intergalactic Era Client/Server Ethernet Era Client/Server Less than 100 Number of servers per application Millions 100,000+ "Server-mania" with many heterogeneous servers performing different roles Geography Global Campus-based Server-to-server interactions Yes No Middleware ORBs on top of Internet SQL and stored procedures Client/server architecture 3-tier (or N-tier) 2-tier Transactional updates Pervasive Very infrequent Multimedia content High Low Mobile agents No Client front-ends Yes OOUIs, JavaBeans, Webtops, browsers, and shippable places Timeframe 1998 and beyond 1985 till present 1 or 2 Fat GUI clients What Do We Need • • • • • Rich transaction processing Roaming agents Rich data management Intelligent self-managing entities Intelligent middleware Basic building blocks Client/Server for Tiny Shops and Nomadic Tribes Client/Server for Small Shops and Departments Client/Server for Intergalactic Enterprises Client/Server for a Post-Scarcity World Personal Agents Inside the Building Blocks • The client building block • The server building block • The middleware building block The Client/Server Software Infrastructure Middleware • A hodgepodge of s/w technologies • A buzzword • A key to developing client/server applications • Middleware is a vague term that covers all the distributed software needed to support interactions b/w clients and servers. Middleware continue • Starts with API • Covers transmission from request to result • Not includes -S/w that provide the actual service - Database - User interface. Pipes and Platform Classes of Pipes • General pipes • Service-specific pipes -Database-specific -OLTP-specific -Groupware-specific -Object-specific -Internet-specific -System management Server-to-Server Middleware The Transport Stacks Middleware • The stack sandwich • The logical network driver • The transport-independent APIs The Transport Stacks Middleware The protocol matchmakers Boundless Bandwidth: How Much Is Enough? Content Bandwidth Requirements Remarks п CD quality 706 Kbit/s 44,100 samples/sec, 16-bit per sample п Digital phone quality Minimum-quality, full-motion video 64 Kbit/s Audio 566 Kbit/s 8,000 samples/sec, 8-bit samples 1024 × 768 pixels, 30 frames/sec 3 colors; 8 bits each TV-quality, full-motion video п Uncompressed 96 Mbit/s п MPEG-2 compression 6 Mbit/s Data requirements 2 Mbit/s For LAN-speed responsiveness