Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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.
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.
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.
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.
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].
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].
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
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.