90 likes | 127 Views
Client server computing. Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section 11.4. Persistent systems. Traditional software: Data stored outside of program Persistent systems : Data part of program Execution never stops
E N D
Client server computing Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section 11.4
Persistent systems Traditional software: Data stored outside of program Persistent systems: Data part of program • Execution never stops • Transaction systems Program Program Client server computing
Development of persistent languages 1. Data: Transient data: For life of one execution Persistent data: Exists across executions 2. Need a mechanism to indicate an object is persistent • approach is to assume all data are transient and indicate which objects are persistent 3. Need a mechanism to address a persistent object • The language can develop its own model of persistent storage 4. Need to synchronize simultaneous access to an individual persistent object • Use of semaphores 5. Need to check type compatibility of persistent objects • Because of the multiple programs that access persistent data, name equivalence is difficult to use, structural equivalence is the preferred method in persistent languages. Client server computing
Client-server computing Evolution of computer technology: 1960s: Standalone mainframes. As machine speed increased, use of multiprogramming and time sharing 1970s: Development of less expensive personal computers 1980s: As personal computers evolved, need for centralized resources to collect and store data (e.g., to corporate database) • Need for local area networks (LANs) • Development of the ARPANET and Internet • Need for communication protocols between computers • Need for computing models to adapt to this 1990s: Interconnection and globalization of computing • The World wide web and global access for all Client server computing
Loosely coupled systems Each processor has its own memory and disk storage Communication lines to other processors to transfer information • Leads to millisecond times to access data • Synchronization harder - Machine communicating with may not be accessible on network because of a variety of reasons. Systems developed on such architectures are called distributed systems Client server computing
Distributed systems Distributed systems can be • centralized, where a single processor does the scheduling and informs the other machines as to the tasks to execute When completed, the assigned processor will indicate that it is ready to do another task • distributed or peer-to-peer, where each machine is an equal and the process of scheduling is spread among all of the machines - one processor broadcasts a message to all the processors, and an inactive processor could respond with the message “I'll do it.” - Alternatively, each machine in the network will individually invoke a task on a specified machine elsewhere in the network. In this way, work gradually gets propagated around the network Client server computing
Client-server mediator architecture Client server computing
Client-server mediator architecture Client machine: • Interacts with user • Has protocol to communicate with server Server: • Decides where data is located • Accesses data • Mediator is software that uses encoded knowledge about sets of data to create information for a higher class of application. • Issues: • May be communicating with multiple clients simultaneously Need to keep each such transaction separate Multiple local address spaces in server Client server computing
Impact on language design Lack of a global data store for the program. Both the client and server only have limited access to the total information content of the program. Programs need to be divided into separate pieces to effectively compute an answer (e.g., tasks). The Remote Procedure Call (RPC)is another communication method. An RPC syntactically looks like a subprogram call except that the operating system will enact a program possibly on another processor. RPCs are related to message communication and often are implemented as a send-receive message strategy client sends an RPC message to a server server waits on a receive for the message then responds back to the client in a similar manner. Client server computing