Towards the Key Issues in Client/Server Computing - Semantic Scholar

16 downloads 112766 Views 164KB Size Report
client/server model passed the baby steps, and a lot of customers has been .... server, an agent can decide, or it can be a part of it's dedicated task, to compress ...
TELSIKS '97

8-10. October 1997, Ni{, Yugoslavia

Towards the Key Issues in Client/Server Computing for the Year 2000 and Beyond Ejub Kajan Abstract- This paper focuses on advanced software research directions which are important to overcome a lot of bottlenecks already present in distributed heterogeneous environments. Special attention is given to remote programming programming,, a new communication paradigm based on mobile intelligent agents and active networks as a building blocks of future client/server environments. Keywords-

client/server, remote programming, mobile agents, active networks

I. INTRODUCTION We are witnessing enormous growth of communication networks and their services. The fact is that there are a lot of advanced communications technologies which are successfully implemented [1], such as high speed network backbones (ATM, Fast Ethernet, Fiber Channel,…), Web services, and so on. In addition, the nomadic computing is being established as an important technology [2]. The client/server model passed the baby steps, and a lot of customers has been done appropriate rightsizing [3]. However, future distributed applications will be more demanding. The user’s requirements for client/server technologies are stronger then ever. From the user’s point of view, the resources of heterogeneous computing environments must be available in the same way as those provided locally or in some homogenous environment. Furthermore, applications need to see geographically distributed resources as a single, tightly linked system even if they are mobile ones. As members of CG&GIS laboratory at the University of Nis we are deeply involved in developing our own GIS (Geographic Information System) developing tools as well as plenty of applications based on them [4],[5],[6]. During the years these tools, today known as Ginis NT, have changed from closed platform [5] to the scalable, open object oriented platforms [4],[7]. The next, natural and necessary step, should be taken to provide appropriate client/server environment, both for application development and run-time support. This paper is a result of necessary investigations which we have done to identify an appropriate strategy in future Ginis NT and GIS applications development, especially to put them into a wide open communication environment.

II. THE CLIENT-SERVER Client/server environment supports the division of complex applications into several tasks running on different hardware platforms, operating systems or even different networks. Furthermore, every task is developed and maintained separately thus rapidly increasing the development and programming productivity. Client/server applications consist of three base components: client, server and network as given in Fig. 1. Each of them has it’s own hardware and software which can perform some specific task. Nowadays, the components usually communicate through the RPC (Remote Procedure Call) mechanism [8]. While a distributed application is being developed, RPC hides a lot of communication problems such as data representation on different computers, knowing remote server address, communication management, system errors, security and so on. The programming itself uses some kind of IDL (Interface Definition Language) to satisfy requirements of distributed applications. clients

network

CLIENT-SERVER SOFTWARE

network services network protocols

Operating System

server

CLIENT-SERVER SOFTWARE

network services RDBMS network protocols

Operating System

Figure 1. The components of client/server

The communication scenario is very simple: The client calls a stub routine on its own machine that builds (marshaled) a message containing the name of the procedure and all associated parameters, then passes such message to the communication driver for transmission. The server listens to client requirements coming via RPCs, and when they arrive the remote driver gives them to its own stub, which unpacks them and makes an ordinary procedure call to the server (to it’s operating system) and returns the answers to the appropriate clients as shown in Fig 2.

Ejub Kajan, Softis, Bulevar Lenjina 67a, Ni{, Yugoslavia email: [email protected]

811

TELSIKS '97

8-10. October 1997, Ni{, Yugoslavia

application gateways and security proxies on the borders, and many more. Building the new protocols is not the final solution. That is only one piece of the end system bottleneck [10],[11]. Rising speed between nodes, as well as the speed inside client’s and server’s machines is limited physically. Some solutions can be achieved by ATM nodes as isolators (high speed routers) between local and global environment. The improvement of memory and I/O system management and access control in recent operating systems design will also take some effects [11,13]. The implications of nomadic (mobile) computing are also important for future client/server development [2]. New applications are going to use both, the stabile static networks based on high speed technologies as well as the mobile wireless dynamic networks, which have just arrived [12]. In any case the main goal is to get right message to the right people at the right place and time. The rest of the paper describes new communication paradigm called remote programming, the new mechanism using distributed artificial intelligence to solve some of the problems addressed above.

This scenario is very suitable, especially if we use some kind of open RPC, for example OSF DCE RPC [3]. There are no problems with this setting unless the applications especially are time sensitive, such as video on demand, teleconferencing, C3I systems, supercomputer networking, virtual reality and similar applications. All of these applications are very time sensitive as well as data hungry [1], so they really need to communicate as fast as possible. The RPC cannot satisfy such requirements. The additional problem arises if such applications needs services from a number of servers. Due to the point-to-point nature of RPC, in that case the same number of connections needs to be bind, resulting with additional time consuming and application processing overhead. Client

Server

RPC call

RPC return

RPC return

RPC call

Server stub

Client stub Control

Control

Data

III. MOBILE AGENTS AND REMOTE PROGRAMMING

Data

Remote programming is an emerging technology based on intelligent mobile agents [9], the pieces of code with defined tasks which should execute somewhere on the network and then return the requested results to the client. The concepts of agents have been investigated for almost ten years especially in the field of artificial intelligence. A general definition of what exactly an agent is supposed to be has not been reached yet. We accept the following one. An agent can be define as a component of software and/or hardware which is capable of acting exactingly in order to accomplish tasks on behalf of its user [14]. Mobile agents are those agents which have ability to move across network. In this way, remote programming allows a client to delegate a task to an agent as shown by Fig. 3. Computation by delegation allows the client and server to interact without using the network once the agent arrived on the server. In addition, after processing the data on the remote server, an agent can decide, or it can be a part of it’s dedicated task, to compress the answers before shipping them back. The implications are obvious. The traffic across the network is reducing significantly; the poorly connected clients using i.e. laptops can reach the data they wont in the same time holding their mobility at the required level; wireless users can have the ability to access data they need regardless the bandwidth limitations; the possibility of errors is reduced, and so on. Furthermore, users can perform locally some other task(s) not just consuming processing resources waiting for the RPC return. Instead of that, client can call its agent on the remote server later on to ask if it has finished the delegated task, and if it is true just pick up the results or call again later. In order to support services from several different servers, mobile agents have to navigate through to network. They have to know where to go, what to do and when. They can suspend their execution, pick up the temporally results, move its code and state to another server and finish the dedicated

Transport

Transport

RPC message Transport

Control

Data

Figure 2. The RPC mechanism

As the matter of fact, the RPC is a synchronous mechanism and produces an overhead due to marshaling and transmission. The additional security and authentication services as well as unpacking marshaled messages are introduce additional significant overhead [9]. Furthermore, the different operating systems all over a heterogeneous network produce additional delays in client requirements processing. Some typical problems related to current operating systems are listed bellow: • • •

any I/O activity requires operating system kernel involvement, data movements from one memory location to another, and inappropriate I/O scheduling.

These problems can extremely escalate when working with real time and multimedia data than with purely alphanumeric data. We can therefore ask some important questions such as: how fast are 2.4 GB/sec which are implemented on ATM/SONET networks due the communication channel is faster then I/O channel, how to render the collision between two worlds when our messages pass through different networks borders according to presence of necessary

812

TELSIKS '97

8-10. October 1997, Ni{, Yugoslavia

task. Furthermore, such kind of autonomy supposes the mobile agent’s ability to “meet” other agents and collaborate with each other. Such agents may be viewed as mobile objects traveling from an agency to another and obtain access to services and data offered by those agencies. In order to support heterogeneity it is often preferable to express an agent in an interpreted language such are Tcl [15], Telescript [16] or Java [17]. Tcl is a high-level, portable scripting language, easy to learn, embeddable in other applications and extendible with user-defined commands. Agent Tcl is going to be one of the main agent languages for two reasons at list: it is widely used and it is wide open. In contrast, Telescript issued by General Magic has been successfully implemented in an electronic marketplace, but the internal structure of Telescript engine is still hidden by General Magic and there are no free code available. Instead, they are trying to define an industrial standard related to mobile agents via one organization named Open Agency founded by General Magic and several others. Java is gong to be another base for mobile agent development specially in the W3 future development. An Agent arrived to server2 (bringing up intermediate state from server1)

IV. THE ROLE OF ACTIVE NETWORKS There is also a big challenge to provide a suitable communication infrastructure. Mobile agents are extremely useful in network monitoring and management [18], [19]. The idea of integrating computation and communication is a relatively old one and is based on mechanism called active messages [20]. The early systems concentrated on operating systems and programming languages and have not addressed a shared infrastructure [19]. The concept of using active technologies in networking emerged after several problems with today’s networks were identified, such as integration of new technologies into the shared network infrastructure, redundant operations at several protocol layers and difficult implementation and accommodation of new services into the existing architecture [21]. An active network consists of network elements which are programmable, on per-node, per-flow, or per-packet basis. Active networks provide that routers or switches on them can perform computations on passing messages and modify packet contents. There are two approaches to the active networks: the first one is discrete is based on programmable switches, the second one is integrated and is based on capsules. The discrete approach supposes that network nodes consist of input and output ports controlled by a softwareprogrammable element. The custom processing routines are first injected to the required routers followed by the packets later on. Depending on the packet header, the appropriate program is activated to execution on arrived contents. The key points are raising the level of abstraction of the node functionality as well as the elimination of formal standardization. The investigation of this approach is currently being done at the University of Pennsylvania under SwitchWare project [22] with the time table for the next three years of research. In the integrated approach [21] every passing message (capsule) is a code unit containing at list one instruction and zero or more embedded data items. Loading on demand provides that capsules reference components instead of carrying them. In addition some caching mechanism has been developed to avoid reloading and verification of recently used components. The MIT research team working on capsules builds a reference platform based on Linux and Java. There are also a lot of research groups which are currently working on architectural consideration of active networks as well as on enabling technologies [21]. Active networks are flexible, programmable network nodes provide such level of abstraction that ongoing requests for advanced services can be answered using the network structure itself. This ability gives users an illusion that they have access to private dedicated network. Research work on active networks is underway and examines a lot of problems, not only on architectures but also on enabling technologies, specification techniques, end system issues, network management, congestion control as well as the mobility itself. It requires multidisciplinary treatment with a different experts involved, from operating systems, telecommunications, programming languages, artificial intelligence field, and so on.

server1

server 2 clients

heterogenous network

SERVER

network services

CLIENT

network services

Agent execution network protocols environment

Operating System

An Agent arrived to server

Agent execution environment

RDBMS network protocols

Operating System

Figure 3. Conceptual model of remote programming

The communication overhead problem laid on protocol stack processing is also reduced due to communication instead of traffic. The bottleneck problems related to I/O channels, memory management and the like are also getting smaller thanks to the asynchronous nature of remote programming as well as the traffic reduction. Combining remote programming with other techniques under investigation such as micro kernel design, caching, access control etc. can produce a very stable client server relationship. Complexity and heterogeneity of network infrastructure as well as the access protocols are also invisible to the user, as RPC provides in contemporary client/server architectures. We also have to say that total replacement of RPC paradigm by remote programming paradigm in client/server design is not so straightforward. The more realistic approach is that some kind of their combination will appear.

813

TELSIKS '97

8-10. October 1997, Ni{, Yugoslavia

V. CONCLUSIONS

REFERENCES [1]

This paper has addressed some current problems in client/server computing based on traditional synchronous RPC. In particular we have focused on the potential of mobile agents to solve some of them. Also, we have expressed a vision of a future client/server environment on the client side, on the server and between them. Regardless of initial success of General Magic Telescript, the research field of mobile agents and active networks is still wide open. The major challenges, for every project based on mobile agents, are listed bellow but not limited to: • •



• •

[2] [3] [4] [5]

The mobility itself: how does an agent move from one place to another, what kind of packing it requires? Authentication: how to recognize its personality, i.e. how is it and who is its behalf? How can we be sure that it is not infected by a virus while moving across various networks, why and where? Security and privacy: how to organize protection from viruses (random or one sent by an malicious agent)? How do we ensure that someone else cannot read your agent and then execute it for their own purposes? The bill: how much you are paying your agent? Are you sure that you are not paying for somebody else in the same time? Performance: if the number of agents raises, like WAN can raise, what will be the effect? In proprietary WANs, with strictly limited outside access this situation can be controlled, but what about the Internet?

[6] [7] [8] [9] [10] [11] [12]

There are many more unanswered questions. For example, client side may also be seeking for an agency help. Who is learning from whom and how? Is your agent is smarter then you and how smart is it anywhere? There are a lot of questions involved, maybe the beauty of research comes exactly from that challenge exactly. During the preparation of this paper concept, we, as well as the whole world, had opportunity to see how Deep Blue won the chess battle against word champion. This occasion shows how powerful artificial intelligence can be, regardless the big mystery of human brain. Although this research is primarily intended for the future GinisNT development, the possible directions discussed in this paper are of wide interest. The new client/server model, presented here is expected to be an of the key computing paradigms over the next ten years.

[13] [14] [15] [16] [17] [18] [20] [21]

ACKNOWLEDGMENT [22]

The author wishes to express gratitude to Computer Science Department at the Canterbury University, Christchurch New Zealand. During his stay there (FebruaryMay 1997), as a visitor, he had opportunities to access Canterbury University library, to share computer resources and to work in quiet Dr. Paddy Krishnan’s office.

[23]

814

Kajan E., et all., “Gigabit Networks for Open Computer Supported Cooperative Work” TELSIKS ’95, 10-12 October 1995, Nis, Yugoslavia, pp. 384-387. Forman G.H., Zahorjan J., “The Challenges of Mobile Computing”, University of Washington, Tech Report #93-1103, ftp.cs.washington.edu, March 1994. Kajan E., Open Systems: Concepts, Components and future applications, Prosveta, Nis, 1994. Mitrovi} A., et all., “A Scalable Object-Oriented GIS Framework”, Workshop on New Developments in Geographic Information Systems, Milan, Italy, 6-8 March 1996, pp. 20-21. Kajan E., et all., “Domestic GIS Software Development: A Historical Point of View”, YUGIS ‘96, Belgrade, Yugoslavia, 14-15 March 1996, pp. 223-227. Djordjevi}-Kajan S., Milovanovic B., et all., “Hail Suppression Information System of a Radar Center”, GIS/LIS ‘95/’96, Budapest, Hungary, June 1—14, 1996, pp. 102-111. Mitrovi} A., et all., “Object-Oriented Paradigm Meets GIS, a New Era in Spatial Data Management”, YUGIS ’96, Belgrade, Yugoslavia, 14-15 March 1996, pp. 141-148. Notkin D., et all, “Interconnecting Heterogeneous Computer Systems”, Communications of the ACM, Vol. 31, No 3, March 1988, pp. 258-273. Harrison C. G., et all., “Mobile Agents: Are they a good idea?”, IBM Research Report RC 19887, 1994. Sterbenz J. P. G., ”Protocols for High Speed Networks: Life After ATM”, The 4th IFIP Workshop on protocols for high speed networks, Vancouver, Canada, 1995, pp. 3-18. Druchel P., “Operating System Support for High-Speed Communication”, Communications of the ACM, Vol. 39, No 9, September 1996, pp. 45-51. Djordjevi}-Kajan S., Kajan E., “Towards on Active C3I Systems”, Proceedings of 4th Int’l TELSIKS ’97 Conference, 8-10 October 1997, Nis, Yugoslavia, this issue. Shapiro J. S., et. all., “Operating System Support for Active Networks”, Proceedings SIGCOMM’97. Nwana H.S., “Software Agents: An Overview”, Knowledge Engineering Review, Vol. 11, No 3, September 1996, pp. 1-40. Gray R.S., “Agent Tcl: A transportable agent system”, CIKM’95, Baltimore, Maryland, 1995. White J., “Mobile Agents White Paper” General Magic, www.genmagic.com/Telescript/whitepapers/wp4, 1996. Gosling J, McGilton H., “The Java Language Environment: A White Paper” Sun Microsystems, 1995. Tennenhouse D., et all., “Towards an Active Network Architecture”, Computer Communication Review, Vol. 26, No 2., April 1996, pp. 5-18. Magedanz T., et all., “Intelligent Agents: An Emerging Technology for Next Generation Telecommunications?”, INFOCOM ’96, March 24-28, 1996, San Francisco, CA. VonEicken T., et all., “Active Messages: A Mechanism for Integrated Communication and Computation”, 19th International Symposium on Computer Architecture, 1992., Gold Coast, Australia, pp. 256-266. Tennenhouse D. L., et all., “A Survey of Active Network Research”, IEEE Communication Magazine, Vol. 35, No 1, January 1997, pp. 80-86. Smith J.M., at all., “SwitchWare: Accelerating Network Evolution (White Paper)”, University of Pennsylvania, Tech. Report #MS-CIS-96-38.