Client-server paradigms
Sullivan (2006, client/server, para.1) defines that the client and server paradigms divide a pattern of work between two parts and represented by either threads or processes. The client requests for the action or the data, whereas the server fulfill the requests from the client. The client-server can be used by a particular program within a single computer, but the most important idea is in a network. The client-server model makes it easy to interconnect many programs which are distributed across different places in a network. The most common computer transactions using the client-server model is checking a bank account from user computer. A client program requests for the information to a server program at the bank. This server program may forward the request to another bank computer to reach a database server and retrieve user account balance. When the balance is received back to the bank data client and it will serve it back to client in his or her own personal computer and display the account balance information for user.
Sometimes a server called a daemon which is activated and waiting for a client requests. Generally, multiple client programs can also share the services of a common server program. The client programs and server programs are part of larger application or program. Relating to the Internet, the client program is web browser that requests services (the sending of files or web pages) from a web server (Hypertext Transport Protocol or HTTP server) on different computer on the Internet. Basically, a computer with TCP/IP standard allows user to make client requests for files from File Transfer Protocol servers in other computers on the Internet.
Sadoski (1997, Client/Server Software Architectures – An Overview, p.1) describes the two client-server architectures are:
- Two tier architectures
The location of user system interface is in the user’s desktop environment and the database management services are in a server which is the strongest machine that services many clients. Processing management divides by two environments, the user interface environment and the database management server environment. The database management server stores procedures and triggers. - Three tier architectures
The three tier architectures overcome the limitations of the two tier architecture. In this architecture, in the middle between the user system interface client environment and the database management server environment were added a middle tier. There are many ways of implementing the middle tier, such as application servers, message servers or transaction processing monitors. The middle tiers tasks are performing queuing, database staging and application execution. For instance, while the middle tier allows queuing, the client can send its request to the middle layer and disengage because the middle tier will access the data and give the answer to the client. The middle layer also adds schedule and prioritization for task in progress. The three tier client-server architecture improves performance for groups with a greater number of users and increases flexibility.
Distributed paradigms
Rofrano (1992, p.1) writes that the distribution of resources and function through two or more interconnected processor is called distributed processing. These processors are the combination of mainframe, midrange or programmable workstation and the distribution can be overt or transparent. Distributed processing is a term which includes client-server computation and cooperative processing. The connection between distributed parts of an application can be either call/return, even-driven or peer-to-peer. There are three communication models that appropriate to implement these relationships: the remote procedure call (RPC), the message and queuing model and the conversional model.
Remote procedure call is a type of a call/return model where application functions communicate in a server/requester relationship. The requesting program does a request to the server program to provide some service. The server program will carry out the task and finish the process by returning the results. Since services can be used on local or remote, this model also introduces a part of transparency in the application can be unrealized of where the real service is performed. This model is implemented on Open Software Foundation (OSF) Distributed Computing Environment (DCE) remote procedure call application programming interface (API) or also called as DCE/RPC and the Transmission Control Protocol/Internet Protocol (TCP/IP).
Message and queuing (MQ) is a type of event-driven model to write distributed applications. The communication between functions can be conducted by placing a message event on a queue and then, routed to the function’s queue. The message will take into queue and processed. By default, it is an asynchronous model and the function called will be returned a message if a result is needed, consequently simulating a synchronous call. An example of message and queuing is e-mail and this messaging model also called as datagrams.
The conversational model is a model of distributed processing when the two applications have to decide on who has the right to deliver and who will accept the data based on established protocols (peer-to-peer). Generally, the initiating application has the right to send data and when the initiating application has completed delivering and agrees to accept data, the roles are conversed. This role will still continue reverse until the processing is complete and the conversation are ended. This model usually implemented on several systems over the Advanced Program-to-Program Communications (APPC) interface.
References
Bauer et al. 1994, ‘A distributed system architecture for a distributed application environment’, IBM Systems Journal, p.2, <http://www.findarticles.com/p/articles/mi_m0ISJ/is_n3_v33/ai_15718569>
Client-server, last edited 1 March 2007, Wikipedia Foundation, Inc., n.a., viewed 7 March 2007, <http://en.wikipedia.org/wiki/Client-server>
Distributed computing 2007, last edited 20 February 2007, Wikipedia Foundation, Inc., n.a., viewed 7 March 2007, <http://en.wikipedia.org/wiki/Distributed_computing>
Rofrano, J. J 1992, ‘Design considerations for distributed applications – Technical’, IBM Systems Journal, p.2, <http://www.findarticles.com/p/articles/mi_m0ISJ/is_n3_v31/ai_12547742/pg_3>
Sadoski, D 1997, Client/Server Software Architectures – An Overview, last updated 2 August 1997, Carnegie Mellon University, Pittsburgh, PA, USA, viewed 7 March 2007, <http://www.sei.cmu.edu/str/descriptions/clientserver_body.html>
Sullivan, J 2006, Client/server, last updated 20 April 2006, TechTarget, Needham, MA, USA, viewed 7 March 2007, <http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci211796,00.html>
The Client/Server paradigm 2006, last edited n.a, Safari Books Online, Sebastopol, CA, USA, viewed 7 March 2007, <http://safari5.bvdep.com/0131013769/ch08lev1sec11>
No comments:
Post a Comment