MASON CS 475 - Client-Server Applications

Unformatted text preview:

1Distributed Software Systems 1Client-Server ApplicationsProf. Sanjeev SetiaDistributed Software SystemsCS 707Distributed Software Systems 2Client Server Systems2Distributed Software Systems 3Client/Server ApplicationDistributed Software Systems 4Overviewz Common communication patterns in distributed applicationsy Client-Servery Group (Multicast)y Function-shipping/AppletszClient: process that requests servicezServer: process that provides servicez Client usually blocks until server responds3Distributed Software Systems 5Overview cont’dzClient usually invoked by end users when they require service zServer usually waits for incoming requestsz Server can have many clients making concurrent requestszServer usually a program with special privilegesDistributed Software Systems 6Client and Server FunctionszClientsy interacts with users through a user interfacey performs application functionsy interacts with client middleware using middleware APIy receives response and displays it if neededzServersy implement servicesy invoked by server middlewarey provide error-recovery and failure-handling services4Distributed Software Systems 7MiddlewareDistributed Software Systems 8MiddlewarezDefinitionsy Middleware is a set of common business-unaware services that enable applications and end-users to interact with each other across a networky distributed system services that have standard programming interfaces and protocols … services “sit in the middle” above OS and network software and below industry-specific applicationsy the “/” in client/server applicationsy software nobody wants to pay for5Distributed Software Systems 9Exampleszftp, emailzWeb browsersz Database drivers and gatewaysz OSF’s DCE (Distributed Computing Environment)z OMG’s CORBA (Common Object Request Broker Architecture)Distributed Software Systems 10Functional View of MiddlewarezInformation exchange servicesz Application-specific servicesy specialized services, e.g. transactional services and replication services for distributed databases, groupware services for collaborative applications, specialized services for multimedia applicationsy business-unawarez Management and support servicesy needed for locating distributed resources and administering resources across the network6Distributed Software Systems 11Commercial Middlewarez Middleware components that provide only one servicey HTTP for retrieving remote documents, SUNRPC for RPC, etc.z Middleware environments that combine many services y Integrates RPC, security, directory, time and file servicesy DCE, CORBA, Microsoft DCOM, .NET, Javaz Compound middleware environments that combine many middleware environments into a single framework, e.g. transaction management + RPC/RMIDistributed Software Systems 12Application Software Architecturesz Many applications can be considered to be made up of three software components or logical tiersy user interfacey processing layery data layerz Client/server architecturesy single-physical tiered, two-physical tieredy multi-tiered7Distributed Software Systems 13“Gartner Group” ConfigurationsDistributed Software Systems 14Distributed DataExample: Distributed Database8Distributed Software Systems 15Remote DataExample: Network File SystemsDistributed Software Systems 16Distributed ProgramsExample: World Wide Web9Distributed Software Systems 17Distributed PresentationExample: X WindowsDistributed Software Systems 18Remote PresentationExample: telnet10Distributed Software Systems 19Three-tier architecturesDistributed Software Systems 20Motivation for multi-tier architectures zFrees clients from dependencies on the exact implementation of the databasezIt allows “business logic” to be concentrated in one placey Software updates are restricted to middle layerzPerformance improvements possible by batching requests from many clients to the databasezDatabase and business logic tiers could be implemented by multiple servers for scalability11Distributed Software Systems 21Fat vs thin clientszThin client = network computery Typically no local storagezFat client = typical desktop PC, workstationzMotivation for thin clients: hidden costs of system administration and supporty Network computers a move towards centralizedsystem admin but local processing at clienty Java (mobile code) an enabling technologyzDegrees of “thinness”, e.g. PDAs Distributed Software Systems 22Issues in Client designz Must know or find out the location of the serverz Which protocol to use: reliable or unreliable?z Blocking (synchronous) request or non-blocking (asynchronous)12Distributed Software Systems 23Issues in Server Designz Connection-oriented or connection-less serversy TCP or UDP?z Concurrent or iterative servers: handle multiple requests concurrently or one after the other?z Stateful or stateless serversz Multi-protocol, multi-service serversDistributed Software Systems 24Connection-less vs connection-oriented serversz protocol used determines level of reliabilityz TCP provides reliable-data deliveryy verifies that data arrives at other end, retransmits segments that don’ty checks that data is not corrupted along the wayy makes sure data arrives in ordery eliminates duplicate packetsy provides flow control to make sure sender does not send data faster than receiver can consume ity informs both client and server if underlying network becomes inoperable13Distributed Software Systems 25Connection-less serversz UDP unreliable – best effort deliveryz UDP relies on application to take whatever actions are necessary for reliabilityz UDP used ify application protocol designed to handle reliability and delivery errors in an application-specific manner, e.g. audio and video on the internety overhead of TCP connections too much for applicationy multicastDistributed Software Systems 26Stateful vs stateless serversz State ≡ Information that server maintains about the status of ongoing interactions with clientsz Stateful serversy state information can help server in performing request fastery state information needs to be preserved across (or reconstructed after) crashesz Stateless serversy quicker and more reliable recovery after crashesy smaller memory requirementsz Stateless servers: application protocol should have idempotent operations14Distributed Software Systems 27Concurrency in serversz Concurrency needed if several clients and service is expensivez Operating system supporty Multiple processesy Threadsy Asynchronous I/O, e.g. using select()


View Full Document

MASON CS 475 - Client-Server Applications

Download Client-Server Applications
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Client-Server Applications and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Client-Server Applications 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?