Anda di halaman 1dari 7

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617 https://sites.google.com/site/journalofcomputing WWW.JOURNALOFCOMPUTING.

ORG

21

From Mainframe to Cloud Computing: A Study of Programming Paradigms with the Evolution of ClientServer Architecture
Dost Muhammad Khan1, Nawaz Mohamudally2
1

Assistant Professor, Department of Computer Science & IT, The Islamia University of Bahawalpur, Pakistan & PhD student, School of Innovative Technologies & Engineering, University of Technology, Mauritius

Associate Professor & Consultancy & Technology Transfer Centre, Manager, University of Technology, Mauritius (UTM)

Abstract The rapid growth of distributed computing architectures creates new approaches and opportunities for the software engineers to develop new programming and structured information processing within an organization. New computing architectures provide the technologies that enable organizations to reengineer their business processes and the dominant of these new architectures for information processing is client-server architectures. The client-server systems have evolved in conjunction with advances in desk-top computing, new storage technologies, improved network communications, and enhanced database technology. New development in client-server is allowing developing on-line business systems with all the possible implementations that was dream of a few years ago. The wide spread of networks, and in particular, of networks connected to each other, as the Internet, has imposed new needs that required new paradigms and new technologies. There are several network technologies available which support user-level communication between processing a shared-memory. The client-server architectures are commonly used in distributed environment due to optimization, modularly, no wastage of resources, reliability, availability and provides graphical user interface aid. This paper presents a study of the programming paradigms with the evolution of client-server architecture from mainframe to cloud computing. Keywords: Agent-Oriented Programming, Object-Oriented Programming, Lightweight Programming

the client [1][2][3][4][5]. Figure 1 depicts typical clientserver architecture.

Fig. 1 A Client-Server Architecture

1. Introduction
Client-Server architecture is an environment that satisfies the business needs by appropriately allocating the application processing between the client and the server processors. The client requests services from the server; the server processes the request and returns the result to

One of the primary advantages of client-server model is that as data storage needs grow without affecting clients the way data is stored can be changed. The middle layer of system is commonly referred to as the application server can thus concentrate on centralizing business rule processing. The client-server model is based on the idea that one computer specializing in information presentation displays the data stored and processed on a remote machine. The client-server environment demands graphical user interface and network communications. A multi-user application is a slight variation on the typical client-server application. The only difference is that information passes from one client through the server to other clients. On a typical client-server application, information flows only from the client to the server and then back. In an ideal environment, the server side of the application handles all common processing and the client side handles user-specific processing [3]. Strengths and weaknesses of client-server architecture are discussed in table 1.

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617 https://sites.google.com/site/journalofcomputing WWW.JOURNALOFCOMPUTING.ORG

22

Table 1: Strengths and Weaknesses of Client-Server

Strengths Highly interactive Graphical User Interface (GUI) aid Modularly

Weaknesses Fat Client High Cost Data interaction and business rules moved to client

Procedure Call (RPC), Simple Network Management Protocol (SNMP), Mobile Intelligent Agent and Cloud Computing.

2.1 Code-on Demand


The Code-on Demand paradigm allows nodes to request programs from other nodes. An application of this paradigm is the world wide web where browsers routinely download code from remote sites. The idea is that a host is only required to execute a program when it explicitly demands the program. The best known example of such functionality is that provided by the JAVA language, as embedded within HTML. A user with a JAVAcompatible browser can request HTML pages that contain applets. These applets are downloaded along with all other images, text, forms, etc. and once downloaded, are executed on the users machine. The destination itself initiates the transfer of the program code. The client becomes thin, where most of the application resides and runs on the server. It has no hard disk, it is a network computer and easier to use and more reliable [6]. Figure 2 illustrates the working of code-on demand.

The software process model applied for client-server systems has closely resemblance with object-oriented approaches. The developer has to describe objects, database and application components. In the analysis and design part of client-server systems, one has to use dataflow, entity-relationship diagrams, structures charts and other notations. The testing phase has to be modified by examine network communication and the relationships between software that resides both on client and server. The client-server environment demands dedicated testing tools that exercise the graphical user interface and the network requirements for both client and server. The components namely user interaction and presentation, application component and database management are major parts of testing tools. To access many servers applications from a client machine, through a common interface, typically a browser is called a middleware, which exists in all client-server systems, also known as nervous system of client-server system. Middleware is comprised of software elements that exists on both client and server and includes elements of network operating system as well as specialized application software that supports database-specific applications, object-request broker (ORB) standards group technologies, communication management and other features that facilitate the client-server connection. There are different configurations for the distribution of software components, which are: Distribution presentation, Remote presentation, Distributed logic, Remote data management and Distributed databases. The common linking mechanisms used to connect the various components of the clientserver architecture are: Pipes, Client-Server SQL interaction, CORBA, RMI, ORB, DEC and many more. These technologies allow the distribution of processing across multiple processors and platforms [3]. The rest of the paper is organized as: Section 2 is an overview of client-server architectures, namely, Code-on Demand, Remote Procedure Call (RPC), Simple Network Management Protocol (SNMP), Mobile Intelligent Agent and Cloud Computing, section 3 is about the results and discussion whereas conclusion is drawn in section 4.

Fig. 2 Function of Code-on Demand Paradigm

The explanation of figure 2 is that client requests to a server for a code, the server in response acknowledge the clients request but instead of transferring the code, code resides and runs on the server.

2.2 Remote Procedure Call (RPC)


A remote procedure call (RPC) also known as remote method invocation (RMI) is a protocol that allows a computer program running on one host to cause code to be executed on another host without the programmer needing to explicitly code for this. RPC is an easy and popular paradigm for implementing the client-server model of distributed computing. An RPC is initiated by the client; sending a request message to the server, to execute a certain procedure using arguments supplied, in response to this message a result message is returned to the client. It is based on extending the notion of conventional or local procedure calling, so that the called procedure need not exist in the same address space as the calling procedure. The two processes may be on the same system, or they may be on different systems with a network connecting them. By using RPC, programmers of distributed applications avoid the details of the interface with the

2. Overview of Client-Server Architectures


In this section we will discuss commonly used clientserver architectures such as Code-on Demand, Remote

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617 https://sites.google.com/site/journalofcomputing WWW.JOURNALOFCOMPUTING.ORG

23

network [7]. The function of Remote Procedure Call (RPC) is illustrated in figure 3.

Fig. 3 Function of Remote Procedure Call (RPC) Paradigm Fig. 4 Function of SNMP Paradigm

The explanation of figure 4 is that local procedures are executed on Machine A; the remote procedure is actually executed on Machine B. The program executing on Machine A will wait until Machine B has completed the operation of the remote procedure and then continue with its program logic. The remote procedure may have a return value that continuing program may use immediately.

2.3 Simple Network Management Protocol (SNMP)


Simple Network Management protocol is a standard for gathering statistical data about network traffic and the behavior of network components. It is an application layer protocol that sits above TCP/IP stack. It is a set of protocols for managing complex networks. It enables network administrators to manage network performance, find and solve network problems and plan for network growth. It is a request/response type of protocol, communicating management information between two types of SNMP entities, one application is called Manager, which issue queries to get information about the status, configuration and performance of external network devices and the second application is Agent, which compliant devices; store data about themselves in MIBs (Each agent in SNMP maintain a local database of information relevant to network management is known as the Management Information Base) and return this data to the SNMP requesters [8][9]. The working of SNMP is illustrated in figure 4.

The explanation of figure 4 is that the agent is software that enables a device to respond to manager requests to view or update MIB data and send traps reporting problems or significant events. It receives messages and sends a response back. An Agent does not have to wait for order to act, if a serious problem arises or a significant event occurs, it sends a TRAP (a message that reports a problem or a significant event) to the manager (software in a network management station that enables the station to send requests to view or update MIB variables, and to receive traps from an agent). The Manager software which is in the management station sends message to the Agent and receives a trap and responses. It uses User Data Protocol (UDP, a simple protocol enabling an application to send individual message to other applications. Delivery is not guaranteed, and messages need not be delivered in the same order as they were sent) to carry its messages. Finally, there is one application that enables end user to control the manager software and view network information [8][9].

2.4 Mobile Intelligent Agent


The term Mobile Intelligent Agent is derived from two different disciplines, term agent is created from Artificial Intelligence and code mobility is defined from the distributed systems. An agent is an object which has independent thread of control and can be initiated. Every agent looks like an object, when an agent is implemented in its frame work, it works as an independent thread and can be initiated from the server for execution according to its execution plan. This makes an Agent different from an ordinary object. Mobile intelligent agents are program that can be dispatched from one computer and delivered to a remote computer for execution. They are capable of autonomous actions in pursuit of a specific goal. Autonomy in agents implies that the software agent has

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617 https://sites.google.com/site/journalofcomputing WWW.JOURNALOFCOMPUTING.ORG

24

the ability to perform its tasks without supervision, or at least with minimum supervision, in which it will be a semiautonomous software agent. Its autonomy distinguishes it from general software programs. Mobile agents are capable to perform concurrency, client-server asynchrony, reduce network usage (bandwidth + frequency), installation of client-specific interfaces and dynamic interface upgrades. The client becomes smart, an Internet-connected device that allows the users local applications to interact with server-based applications through the use of web services. It supports work offline. It can be deployed and updated in real time over the network from a centralized server. It supports multiple platforms and languages because of web services. It runs on any device that has Internet connectivity, including desktop, workstations, note books, PDAs and mobile phones [10][11][12][13]. The basic working of a mobile agent is depicted in figure 5.

3.

4.

5.

6.

Software Distribution and Maintenance: Mobile agents could be used to distribute software in a network environment or to do maintenance tasks. Mobile agents and Bluetooth: Bluetooth is a technology for short range radio communication. Originally, the companies Nokia and Ericsson came up with the idea. Bluetooth has a nominal range of 10 m and 100 m with increased power. The applications for mobile agents are myriads. Mobile agents as Pets: Mobile agents are the ideal pets. Imagine something like creatures. What if you could have some pets wandering around the internet, choosing where they want to go, leaving you if you dont care about them or coming to you if you handle them nicely? People would buy such things wont they? Mobile agents and offline tasks: Mobile agents could be used for offline tasks such as, an agent is sent out into the internet to do some task, and the agent performs its task while the home computer is offline and returns with its results. Mobile agents could be used to simulate a factory, machines in factory are agent driven, agents provide realistic data for a simulation, e.g. uptimes and efficiencies, and simulation results are used to improve real performance or to plan better production lines [14][15].

2.5 Cloud Computing Paradigm


It is a new type of distributed computing still emerging field in computer science. The remote machines owned by other company which will run everything for the user is called cloud computing. It will change entire computer industry. The only thing the user has to run interface software of cloud computing system. There is a significant workload shift i.e. the users computer will not run the applications. It will decrease the demand of hardware and software. There is no limit of its applications. Everything can be done through cloud computing. The major advantage of this is the client can access his data any where at any time. It will reduce the need for advanced hardware which will bring the cost of hardware down. The client can take the advantage of network processing power if the cloud computing is using a grid at its back end. This is a step backward to early computers having only keyboard and terminal. The major issues in cloud computing are: Data governance: Enterprises have sensitive data that requires proper monitoring and protection, moving data into cloud enterprise will lose their governance on own data. Manageability, Monitoring, Compliance, Cross-country Data migration, Reliability, availability and recovery and Security and privacy: are major concerns and issues in cloud computing. Figure 6 depicts the cloud computing paradigm.

Fig. 5 Function of Mobile Intelligent Agent

The explanation of figure 5 is that Computer A and Computer B are connected via a network. In step 1 a mobile agent is going to be dispatched from Computer A towards Computer B. In the mean time Computer A will suspend its execution. Step 2 shows this mobile Agent is now on network with its state and code. In step 3 this mobile Agent will reach to its destination, computer B, which will resume its execution. The following are areas but not limited to where mobile intelligent agents can be applied: 1. Distributed Computing: Mobile agents can be applied in a network using free resources for their own computations. 2. Collecting Data: A mobile agent travels around the net. On each computer it processes the data and sends the results back to the central server.

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617 https://sites.google.com/site/journalofcomputing WWW.JOURNALOFCOMPUTING.ORG

25

3. Results and Discussion


In code-on demand based client-server architecture, the client becomes thin; which has no hard disk, a network computer, easier to use, reliable and it supports the centralized and synchronous with no autonomy network management. In simple network management protocol, the client becomes fat; which has its local databases, harder to deploy, runs slowly and it also supports centralized network management. In remote procedure call, the client is fat; which consume heavy network bandwidth and it supports distributed, synchronous and less autonomous network management. In mobile agent based client-server architecture, the client becomes smart; which supports work offline, can be deployed and updated in real time over the network from a centralized server, supports multiple platforms and languages because of web services and runs on any device that has Internet connectivity, including desktop, workstations, note books, PDAs and mobile phones. The cloud computing is a new and emerging paradigm which although supports smart client but also consume heavy bandwidth, which has only the user interface to interact with the cloud and has no processing power and no storage capacity, all the data is processed and stored in the cloud. It supports centralized network, uses both synchronous and asynchronous mode of communications and also uses both TCP and UDP as transport protocols. Table 2 presents a comparison of client-server architectures discussed in this paper.

Fig. 6 Cloud Computing Paradigm

The followings are the advantages of cloud computing paradigm: 1. It provides small and medium businesses a break to access web based advance tools as a resource. By grace of cloud, technology access is no more a prime expenditure, as it is same as your other utility services (Electricity, Telephone) you are going to pay just for what you have utilized, nothing more. Thats how cloud saves cost on important business applications and managed by SLA. 2. On one hand where the cloud makes better security and observation within a central data access, besides, it provides usage of automated system interfaces. User does not need to care about backend engineering, maintenance and troubleshooting of ongoing operations. 3. The idea is flourishing every coming day with great success in the upcoming time, as now offshore services are well-liked more than ever and industrialists are putting their money in the low capable countries in term of technology advancement and then sending off their cloud computing environment world wide. 4. In cloud computing, customers using web applications, access the environment and services retained by a third party. As a result, the idea of offshore software development in least economic IT countries is running at enormous pace as developers can access the utility worldwide, at any time from a handheld device, PC, or a laptop, history making. 5. Cloud computing is a thought that is based on transforming the stack of IT away from firms into the hands of cloud providers. It buttresses a culture of modernization by eradicating a major fraction of the economic risks linked with bearing out archetype of new ideas [16][17[18].

CORBA and Microsofts (OLE, COM, DCOM and ActiveX, and many more) objects are around for years. The concept of mobile agent is over a decade old, the technology proves not to be perfect yet; researchers are now developing methods for improving the technology, with more standardization, better programming environments, as well as design patterns that allow mobile agents to be used in products. It is obvious that the more an application gets intelligence, the more it also gets unpredictable, dangerous and uncontrollable. The mobile

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617 https://sites.google.com/site/journalofcomputing WWW.JOURNALOFCOMPUTING.ORG

26

agents in most aspects are also considered to be a new programming paradigm. The concept of cloud computing is very new, there are some privacy and security issues that put a stop to widespread use of cloud. The center of attention in cloud development is the evolving of the cloud from the indoors (private cloud) to outdoors (public cloud). Table 3 shows different programming paradigms with the evolution of client-server architecture.

client-server architecture and paradigm is well understood and quite mature as a technology, but the area of distributed control of mobile agent systems is still the subject of many research efforts. An agents envisioned autonomous behavior, involving collaboration with other agents at various network locations, creates a dynamic environment that requires new design methodologies and modeling tools to properly formulate and construct agentbased system. The latest generation of programming is lightweight programming, the structural unit is called a lightweight program and we are in the era of the people where many people can interact with many intelligent devices at the same time i.e. it is many-to-many communication. The codes to add two integer numbers are shown as an example in table 3 in all five programming paradigms. These lines of code are a program in Assembly Language, subroutines in FORTRAN 77, a class in Java, an agent in Kaariboga Java based Agent framework and finally a lightweight program in Phobos framework. This shows the changes in codes one programming paradigms to other.

4. Conclusion
In this paper, we discuss five different client-server architectures namely code-on demand, remote procedure call, simple network management protocol, mobile intelligent agent and cloud computing, and finally draw a comparison of these client-server architectures and their corresponding programming paradigms. First three architectures are based on centralized network, they are less autonomous, synchronous and use heavy network bandwidth, mobile intelligent agent architecture is based on distributed, asynchronous execution and autonomy, robust and fault-tolerance behaviour, works in heterogeneous environment, reduces network traffic and overcomes network latency and the cloud computing is based on centralized network and supports both synchronous and asynchronous communications. The increasing popularity of distributed heterogeneous network and the Internet has created new technologies that lead a system to be based on some form of mobile agent and cloud computing. The ever growing amount of data that are stored in distributed form over network of heterogeneous and autonomous sources poses several problems such as communication minimization, autonomy preservation, scalability and privacy protection, therefore, mobile intelligent agents are autonomous, capable of adaptive and deliberative in nature are the best choice to solve these problems of distributed systems. Now the trend that every thing will be in a cloud increases the popularity and usage of cloud computing. We conclude our paper that with the advent of new client-server architecture based technologies require the changes in programming

The first generation of programming was machine programming, the structural unit was called a program, it was an era of mainframe computers where one machine was connected with many users having dump terminals at the same time i.e. it was one-to-many interface. The next generation was structured programming, the structural unit was known as subroutine, it was an era of personal computers where one user could connect with one computer at a time i.e. it was one-to-one communication. The succeeding next generation was object-oriented programming (OOP), the structural unit was identified as an object, it was an era of networked computers where many users having personal computers could connect with one main server at a time i.e. it was many-to-one interaction. The subsequent next generation was agentoriented programming (AOP), the structural unit was known as agent, the agent has the same properties like an object but only differ in its autonomous, proactive, intelligence and mobile behavior, it is an era of the people where many users are interacting with many intelligent devices at the same time i.e. it is many-to-many communication. There are not many applications that use mobile agents, so it hard for this technology to become widely adopted. Most work had been around the agents framework instead of developing the real applications. The

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617 https://sites.google.com/site/journalofcomputing WWW.JOURNALOFCOMPUTING.ORG

27

paradigms. At the evolutionary stage of each paradigm and then continuing to deploy applications will reach at critical mass before it becomes effectively main stream but that day is coming.

Acknowledgment
The authors are thankful to The Islamia University of Bahawalpur, Pakistan for providing financial assistance to carry out this research activity under HEC project 6467/F II.

References
[1] Somerville, Ian., Software Engineering, 6th Edition,. ISBN: 020139815x, 2001 [2] Pressman, R.S., Software Engineering: A Practitioners Approach, 6/e, ISBN: 0072853182, 2005 [3] Lethbridge, T.C. ,and Laganiere, R., Object-oriented Software Engineering: Practical Software Development using UML and Java 2/e, ISBN: 0077109082McGraw Hill, 2001 [4] Reis, Christian Robottom, Fortes, Renata Pontin de Mattos, An Overview of the Software Engineering Process and Tools in the Mozilla Project, Brazil 13560-970, February 8, 2002. [5] Coulouris, George., Dollimore, Jean., and Hindberg, Tim, Distributed Systems Concepts and Design Third Edition, ISBN: 0201619180, 2000. [6] Laul, F.C.M, Berlaramani, N., Kwan, V.W.M., Siu, P.P.L., Wing, W.K. and Wang, C.L., Code-on-demand and code adaptation for mobile computing, Department of Computer Science, The University of Hong Kong. [7] Darby, Chad., Griffin, John., Haan, Psacal den., Haan, Peter den., Konstantinou, A.V., Li, Sing., MacLean. Sean., Mitchell II, G. E., Peach, Joel., Wansch, Peter., and Wright, William. , [16] Y. Chee, B. Rajkumar, D. Marcos, Y. Jia, S. Anthony, V. Srikumar, P. Martin, Utility Computing on Global Grids Chapter 143, Hossein Bidgoli (ed.), The Handbook of Computer Networks, ISBN: (978-0-471-78461-6, John Wil ey & Sons, New York, USA, 2007. [17] Satyanarayanan. M., Fundamental Challenges in Mobile Computing, School of Computer Science, Carnegie Mellon University, Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing Philadelphia, Pennsylvania, United States, Pages: 1 7, ISBN:0-89791-800-2 [18] Satyanarayanan. M., Pervasive Computing: Vision and Challenges, School of Computer Science, Carnegie Mellon University, Personal Communications, IEEE, August 2001, Volume: 8, Issue: 4 On page(s): 10-17, ISSN: 1070-9916

Beginning Java Networking, Wrox Press. ISBN: 81-7366399-8, 2001. [8] Stallings, W., SNMP, SNMPv2 and RMON: Practical Network Management, Addison-Wesley 1999. [9] Stallings, W., SNMP and SNMPv2: The Infrastructure for Network Management, IEEE Communications Magazine, vol. 36, n_3, p. 3743, March 1998. [10] Ichiro, S., Reusable Mobile Agents for Cluster Computing, National Institute of Informatics. URL http://www.cs.hku.hk/cluster2003/presentation/technical/4B1.pdf, 2003 [11] Lang, D.B., Mobile Agents: Environments, Technologies, and Applications, In Proceedings of the Third International Conference on the practical Application of Intelligent Agents and Multi-Agent Technology, 11-14, The Practical Application Company. 1998. [12] Ichiro, S., Selection of Mobile Agents, 24th IEEE, ICDCS 2004. [13] Bigus, J. P., Constructing intelligent agents using JAVA 2nd ed, ISBN: 0-471-39601-X. 2001. [14] Gray, R., Cybenko, G., Kotz, D., and Rus, D., Mobile Agents: Motivations and State of the Art, Handbook of Agent Technology, AAAI/MIT Press, 2002,URLhttp://citeseer.ist.psu.edu/context/1209666/0. [15] web site at URL: www.agentlab.de/aose.html

Dost Muhammad Khan: M.Sc.(Computer Science) from B.Z. University, Multan, Pakistan. Currently PhD Student at SITE, UTM, Mauritius. Assistant Professor Department of Computer Science & IT, The Islamia University of Bahawalpur, Pakistan. Published 5 research papers in International Conferences & Journals. Fields of interest are Data Mining, Intelligent Agent, and Object Relational Database Management.