computer commnications
ELSEVIER
Computer Communications 19 (1996) 1268-1275
Framework of a flexible computer communication network Norio Shiratori”*, Takuo Suganumab, Sigeki Sugiuraa, Goutan Chakrabortyc, Kenji Sugawarab, Tetsuo Kinoshitaa, ES. Leed ‘Research Institute of Electrical Communication, Tohoku University, 2-l-l Katahira, Aoba-ku, Se&i 980, Japan bDepartment of Computer Science, Chiba Institute of Technology, 2-I 7-1 Tsudanuma, Narashino 275, Japan ‘Department of Computer Sojiware, The University of Aizu, Tsuruga, Aizu Wakamatsu Shi, Fukushima 965-80, Japan dDepartment of Information Engineering, Sung-Kyun-Kwan University, Seoul, Korea
Abstract With the increasing speed of computers and communication links, and the successful convergence of both fields, computersconnectedby high speed links now represent an enormously large distributed computing system. At the same time, communication between man and machine is also becoming more diverse and personalized. Networking issues such as evolution of user services, seamless communication
between hosts, failure recovery and integration of new technologies arise daily. Problem-specific approaches and corresponding solutions are available at considerable cost. However, a common requirement is adaptability of the computer network to a variety of changes. In this paper, we propose Flexible Computer Communication Networks (FN) as a uniform solution to most of these networking problems. The framework of Flexible Networks can be considered as an intelligent shell enclosing existing networking architectures. An agent-oriented implementation of a flexible network is outlined. The conversion of existing networks to flexible networks is shown to be incremental, and therefore practicable. Keywords: Flexible; Communication networks, Multi-agent model
1. Introduction As we see the history of computer development, from the beginning of the 1980s the trend has turned towards connecting small systems with communication links instead of creating large centralized systems and extending terminals. As a system becomes decentralized, managing the communication among the separate parts and directing the system as a whole towards achieving its goal become all the more important. If we note the major applications that are being processed by computers today, and the trend, we see that the nature of these applications is also changing [l, 21.Previously, many of the jobs were computation-intensive, like solving complex differential equations or matrix manipulation, or accounting. But now the volume of, for example, voice and graphics, is also great and the data are at different locations. The communication between computers is therefore a very important factor is we are to accomplish any useful work. * Email:
[email protected] 0140-3664/96/$15.00 0 1996 Elsevier Science B.V. All rights reserved PII: SO140-3664(96)01160-7
To achieve smooth communication between computers, many different protocols for communication have been developed. The different protocols are designed for some particular area of application, and for efficiency in that environment. Because different protocols come from different sources, one of the problems in present day computer communication is protocol incompatibility. As mentioned, the protocols are usually written with some basic applications in mind. When the application environment changes, or new applications are introduced, the existing protocols prove to be either unsuitable or inefficient. To overcome these difficulties with present day communication protocols, we need a sort of adaptive communication which can change its mode upon demand from the system on which it is working, and for the application environment in which it is working, and at the same time be compatible with its peers. In the broader sense of communication, we do not restrict ourselves to communication within a system, but include the cases of a human communicating with systems that communicate among other systems, and finally, a system presenting
N. Shiratori et aLlComputer Communications 19 (1996) 1268-1275
something to a human. We aim to create a flexible computer communication paradigm which will be adaptive and try to offer the best service in all situations. In this new paradigm of the flexible computer communication environment, services and utilities are not restricted or confined to a fixed set. With the nature of the users’ applications being changed, the users need to be allowed to create new services according to their actual needs. On the other hand, the system should have the capability to recontigure itself autonomously to extend or restrict its services in accordance with any change in the underlying resource status. Thus, the change may be initiated by different constituent elements, e.g. the end user, the system designer, the computer system or the communication network, depending on the case. Different elements should be seamlessly connected and coordinated. To make the system flexible, as a basic requirement, we need the system to recognize changes. To recognize change, to understand it, the system needs to possess some intelligence. Also, there are some other transient and permanent changes occurring in the system and its environment which should be understood, and which may eventually require corrective action. The system needs to evolve with time. These basic requirements and the required properties to facilitate them are discussed in the next section. The computer communication field is already in an advanced stage, and it is impossible to scrap everything as of now to make room for a completely new proposal. With this basic constraint in mind, we proceed to design our goal of a flexible computer communication network. An ordinary computer network can be updated incrementally to a flexible network, and at every stage remain compatible with the existing system. In Section 2 we introduce the basic notions of a general flexible system with some intuitive definitions [3,4]. In Section 3 we explain the meaning of flexibility in computer communication. Section 4 describes the design methodology which is based on using autonomous agents. Section 5 is a description of the framework for generating agents on existing basic processes. Finally, the essence of the approach is explained, with a simple implementation of an application, flexible TV conferencing, in Section 6. Section 7 is a conclusion with some indication of future research direction.
1269
2.1. Basic concepts and de$nitions of a general flexible system Before we consider the flexible network framework, we will introduce the basic meaning of the terms we use. The World (W(S)) consists of the particular system (S) we are interested in and its environment, as shown in Fig. 1. The set of objects and the other systems which interact with our system constitute what we call the environment (E) of the system. Everything other than the marked system S is the environment of S. Depending on the context, the system could be a subnet, a host, or it may be an application only. The interaction between the system and the environment is denoted ZNT(E, S). This may be considered as some service required by one (S or E) and the service offered by the other (E or A’).Together they are denoted as INT(E,S). Thus, fNT(E,S) is actually the system specification. We here introduce a new term, behavior situation SIT, defined as: SZT(E, S) = (E, S, INT(E, S)). So SIT consists of E, S and their ZNT(E, S). Now in any dynamic system, various types of changes are
observed from time to time within the system, as well as in the surroundings, i.e. the environment. Our aim is to build a flexible system that adapts to the new situation so that the resultant system again has the most acceptable behavior. The possible changes that may occur are: 1. Variations in INT(E,S). The set of functions to interact between the system S and the environment E, i.e. ZNT(E,S), is usually expressed through some well defined commands and their responses. Now the requirements from the user may be very precise, stringent, and in a well defined language. On the other hand, they may be imprecise, flexible and expressed in an ambiguous way. Also, there are situations when, due to some unwarranted changes in the system or the environment, the requirement request could not be served in its original form, and the response has to be changed dynamically. The flexible system should not fail to understand the appropriate meaning in spite of these changes.
____________________----____________
2. Basics of flexible computer communication network In our image of a computer communication network, the communication is not limited from computer to computer only. If the whole chain starting from the human user back to the human user is not considered in synchrony, then the meaning of the communication is only partial. This is becoming all the more important with the coming of the new generation of applications. With this image in mind, we put forward the following definitions.
Fig. 1. World W(S), evolution mechanism
EM and change in system S.
1270
N. Shiratori et al.lComputer Communications 19 (1996) 1268-1275
2. Variations in E or S. There may be transient perturbations (like traffic congestion), or permanent changes (like the introduction of a new node or link) in a computer network. The flexible system should be able to absorb these perturbations. 3. Evolution of E and S. From time to time, the system may go through some evolutionary changes like technology upgrade. The flexible system should adapt to these changes seamlessly. With the above possible fluctuations in this situation, we now list the requisite functionalities of the flexible system. We categorize the essential properties of the flexible system as: 1. Intelligence. Intelligence is the part of flexibility that takes care of correctly interpreting the user’s requirements expressed in different forms, as well as their dynamic implementation as the situation changes. From a user’s point of view, such a system is flexible because the system understands the user’s intention and implements it in the best possible way. 2. Resilience. As we have seen, a system and its environment face occasional perturbations, which may be temporary or permanent. When the change is removed, the resilience property of the flexible system would bring back the system to its original state. 3. Evolutionary. With new hardware and software technologies, and at the same time, with users coming up with newer and newer requirements, the system has to evolve with time to be compatible to these changes.
3. Flexibility in computer communication system Until now we have discussed the flexibility of the general system. Now we emphasize how these notions could be applicable to computer communication or computer networks. 3.1. Guideline to realize jkxibility in communication The main obstacle for full exploitation of the communication facilities in computer networks is the lack of standardization, which makes interworking among different networks the hardest problem [5]. The interworking problem is from the user service level down to the actual communication of the bits of data. The introduction of layered stack protocols is a means to minimize the impact of diverse technologies by isolating network communication functions in layers. But there is no standardization of protocols, or there are too many standards [6]. This situation is unavoidable, because the interest of different application areas is different. Also this process is irreversible. On the other hand, different protocols just cannot communicate. The second important aspect is that different layers only converse with the same layer of the peer, and understand the
peer. It does not negotiate with the layer above and below it. The upper and lower layers of stack protocols only have ‘service request’ and ‘service offer’ relations between them. There is no negotiation, which would lead to greater flexibility and better utilization of network resources. Moreover, each layer does not provide a single protocol/ functionality. Each layer may contain more than one protocol, each providing a service related to the function of that layer (e.g. ftp, email in service layer, or connection oriented and connectionless service at the transport or network layers). Most of the services provided by a layer could be broken down to a combination of some further set of elementary related functions. If a proper set of such elementary functions for a particular layer can be defined, and we can build some intelligent procedure to combine them properly to realize a variety of services for each layer, the network can behave more flexibly [7]. The idea is, if the required service is expressed in a proper format, for which the elements are available, the required service could be created as well. A lot of flexibility in network communication, starting right from the application layer down to the data link layer, is possible with this architecture of communication. For example, the creation of a protocol translator, as and when required, due to a change in the connection environment, would then be an easy task. In recent years, work has been reported with similar notions and titles. Usually jkxible network is used as a broad term, and its precise definition is absent [8]. Other important works are from Abbott [9], Hutchinson [lo], Druschel [ll], Sean [12], etc. Those go by similar titles such as dynamic network or customized OS. The aim of those works is to achieve a greater efficiency than stacked protocols, or greater efficiency in the OS. They exploit granularity to achieve flexibility. We propose that granularity with the added property of recombining through negotiation could achieve the best solution. In our previous works [13181, we indicated that AI techniques could be used for solving many networking problems. Our motivation as well as approach in this paper is different. We design to make the processes intelligent and form a society, so that they negotiate to create the best solution for the service requested.
4. Computer communication system based on autonomous agents As discussed earlier, the main goal of our flexible computer communication architecture is to achieve an environment where, starting from the user interaction (i.e. the user request), the computational load of the involved systems, the communication status, everything would be considered while executing an application. The flexible network (FN) has to possess the following properties. It has to be intelligent to understand and interpret
N. Shiratori et al.lComputer Communications 19 (1996) 1268-1275
optimally various users’ requirements. It should invoke and negotiate intelligently among various parts of it, depending on the nature of the problem. This involves accumulating the system designers’ and system operators’ knowledge and suitably exploiting it. Also, the status of the system has to be monitored and broadcast to the required locations. Thirdly, it should be resilient to the changes that occur from time to time in the system itself, or in its environment. Finally, the flexible network should be evolutionary to accommodate new, permanent changes. An agent-oriented model, being intelligent and with negotiable properties, is a good choice for modeling the flexible network. Agents with artificial intelligence will make optimum decisions quickly and automatically in case of various problems, and in the long run will evolve. In our model, we basically have two different types of agent. The primary agents control a single process, i.e. they are linked to single basic processes (granules) already available in the system. The group agents, explained later, are to accomplish more complex tasks. 4.1. Primary agent
of the agent. It provides the knowledge concerning the role of the agent, its domain of expertise, i.e. what it can do. This part also takes the decision on whether to accept a given problem and try to solve it, or to reject the problem as it is beyond its scope. The negotiator communicates with peer negotiators of other agents for cooperation and negotiation. Thus, it is responsible for planning cooperation and recovery from problematic situations, as well as conflict resolution during problem solving and resource sharing. TaskProcessor is the module that actually executes the task of solving the problem assigned to that primary agent. It controls the execution of some base processes. The domain specifier actually has knowledge of these controls. The four modules are realized as an event-driven problem solver that consists of a problem solving mechanism and corresponding knowledge base. An event of a module is generated from the messages received from other modules. The module is then activated and a problem solving task begins execution. 4.2. Group agent
A model of a primary agent is shown in Fig. 2. Primary agents communicate among themselves by messagepassing. The proposed architecture of a primary agent of a distributed computing system consists of four components, and is defined as: priAgent
1271
= (Communicator, DomainKnowledge, 0
Negotiator, TaskProcessor)
Communicator is the module that facilitates the communication with other agents of the communication system. The DomainKnowledge module is the main knowledge resource
A large-scale problem is first decomposed into small independent problems that can finally be arranged in a hierarchical problem solving structure. A group of primary agents, called an organization, is constructed in accordance with the hierarchical problem solving structure. Organizations are formed according to the task by an organizational agent, by collecting proper primary or other group agents. An organizational agent has knowledge such as the organizational objective, memory, decision making capability and coordination strategies. Thus a group agent, shown in the box in Fig. 3 is defined as follows: grAgent
PRIMARY AGENT ____________________-----___.___-_--__-___,
= (OA, MemberAgents)
MemberAgents = Agent 1(Agent, MemberAgents) Agent = priAgent
1grAgent
A set of agents denoted as MemberAgents work together to solve the given problem cooperatively. MemberAgent is a set of agents consisting of one or more primary and/or a group agents as defined above. Thus, a group agent forms the hierarchical structure for complex problem solving. An organizational agent OA administrates the elements of the MemberAgents of the group and plays the roles of both DomainKnowledge and Negotiator, as we have seen in case of the primary agent. An OA, in fact, has the same structure as a primary agent. Its TaskProcessor includes knowledge __,
I___/ Fig. 2. Configurationof the primary agent.
for organizing and coordinating the problem solving structure provided by its member agents. Thus, a group agent accesses basic processes either via proper primary agents, or via group agents selected from the agent society, as shown in Fig. 3. Various group agents are thereby defined by their respective OAs.
1272
N. Shiratori et aLlComputerCommunications19 (1996) 1268-1275 GROUP AGENT
1 ORGANIZATIONAL
1
fl . . . . tl \A-----CONTROL TASKS DIRECTLY
DIPS Fig. 3. Configuration
We propose to design the flexible computer communication system with group agents, which would hold knowledge and various protocols as defined above. The configuration of such a system is capable of changing, with little effort, through some negotiations among the different group agents. Thus, the flexible computer communication system, which needs to be autonomously reconfigurable to absorb small problems or perturbations, would be realizable.
5. ADIPS framework, agentification of basic processes The ADIPS (Agent-oriented Distributed Information Processing System) framework supports ‘agentifying’ of the available processes into primary agents, as well as defining group agents to organize complex tasks. A complex task, which has to be accomplished by coordinating different basic processes, is done by negotiation and planning of different agents. All this knowledge regarding with whom to communicate and what to negotiate is also embedded in those agents. Such knowledge is to be gathered from the
of the group agent.
system designers, maintenance engineers or operators. The whole framework of the ADIPS is depicted in Fig. 4. The ADIPS-Agent designer creates different agents using knowledge of the system designer, application programmer and the maintenance engineers. ADIPS-L is the language for creating the agents. It is an agent-oriented language, with its own editor, interpreter and debugger. ADIPS-Repository is a repository of class agents’ functions which helps to simplify the creation of new agents. This repository is evolutionary in that new agents are added to the repository itself, so that efficient software reuse is possible. ADIPS-Workspace is the working place of the agents. Once the agents are created and debugged, they are placed in the workspace. The dashed arrows labelled ‘evolution’ are a futuristic notion, where it is assumed that the existing agents would use the repository to create new agents when necessary. When a user request arrives at the ADIPS-Workspace,
System Designer, Operator knowledge used to write. . Agents ~_____........__.__.................. . . . . . . . . . . . . . . . . . . . . . . . . . .. . .
ADIPS - Agent Designer
User requirement ADIPS--------* Evolution r Workspace *-------’
ADIPSRepository
> ADIPS-L
Created service Comrxrtino Svstem e.0. work station Fig. 4. Framework
of the ADIF’S environment.
agemdaaign larbsuaw @Jppofi
I
N. Shiratori et al.lComputer Communications
agents start working among them to create the service necessary to create an optimum service. Depending on the complexity of the service requirement and the status of the underlying resources, the response may be very fast or a little slow. If we go back to Fig. 2, we see that the BASIC PROCESS exists in the network, and everything in the PRIMARY AGENT box is to be written in the ADIPS-Language. The TASK PROCESSOR is a tiny part to link the primary agent to the BASIC PROCESS. For programming the other parts, we need detailed knowledge of the BASIC PROCESS. Similarly, for programming the GROUP AGENT, we need to organize different MEMBER AGENTS and link them with either BASIC PROCESSES or other agents, as described in the last section.
6. Application example Of the different distributed processing applications, probably the most important and versatile would be multimedia applications, and probably in the very near future. Files would be stored at one location, processed at another system, and flnally rendered somewhere else. As the constraints are different at different points, it is difficult to balance the whole system without proper coordination. Flexibility, as defined, is needed at every interface. The user’s requirement could also be interpreted at many levels, still satisfying the user. In fact, it needs to be flexibly interpreted depending on the availability of system and communication resources. We have designed and implemented a flexible video conferencing tool using an agentoriented model described in the last section. The block level model is shown in Fig. 5. The RV conference agent is a group agent created for the application. Detailed discussion about the agent structure and task distribution is beyond the scope of this paper.
19 (1996) 1268-1275
1273
The flexible video conferencing system is now operational on a IAN using an Ethernet connection. In the near future, it will be operational between the two distant universities of Japan, Tohoku University and Chiba Institute of Technology, using the Internet. In this experimental project, we used existing software as much as possible. For controlling the base tasks by agents, control points were created and extended to the proper agents. The service parameters are flexibly changed in response to the system status. A simple illustration is shown in Fig. 6. Two windows, ‘hawk’ and ‘miyu’, are video windows for two Sun workstations connected by ethernet. ‘Hawk’ is the name of the local station, and ‘miyu’ is the communicating peer. A moving picture of colored balls are displayed, as shown in Fig. 6 (in black and white). Dummy processes of different CPU requirements are run. In the ‘xload’ window, the CPU load is shown. As it crosses different levels, the motion picture changes from color to black and white, and then the frame rate is decremented for proper load balancing. Thus, instead of crashing the application due to lack of CPU resource on one side, or inefficiently reserving the resources on the other side, the application runs with graceful degradation and is restored to the initial level when possible (resilience). In the next step of the experiment, instead of processor load we would generate dummy packets in the LAN to increase the network traffic, and use our group agents to support graceful degradation. Once this ground-work is ready, we will run the system on the Internet during different traffic hours.
7. Discussion and conclusion
In this paper, we have presented a direction towards building the next generation of computer communication systems. With the vast expansion of communication networks, various hardware and software vendors contributing without coordination, and on top of that occasional upgrades User and failures, the whole system of information networks becomes less friendly. Its behavior changes and is untractTV CONFERENCE A SYSTEM able for non-expert users. It is difficult to exploit its full potential, due to lack of expertise from the user’s side, and lack of compatibility from the system’s side. This flexible computing opens and encompasses various fields of research, depending on from what angle it is viewed. Work which is relevant includes flexible/dynamic routing [19,20], dynamic network architecture [ll, 121, heterogeneous computing systems [5], x-kernel [lo], the ATHENA project of MIT, and so on. Our main goal is to use them under a single coordinated paradigm. ,_....._._..___._____________________________~~___~_______.~___~~~~~~_. We proposed a hierarchical agent-based architecture for OPERATING SYSTEM (e.g. UNIX) ‘__________“‘_~~-______*_____________,___.__________---------~------ .’ distributed computing systems. We included intelligence INTERNET and coordination among the agents, such that they behave more intelligently to satisfy the users’ requirements. The Fig. 5. Outline of the flexible TV conference system.
CPU Load
Fig. 6. Example of flexible TV conference
< 1 > Example 1: Flexibility on Transient change
with changing
CF’U load.
+
Time
Frame rate decreased
Mute
: 3- Color to B/W 2 Colored motion 1I picture
98 7 6-
N. Shiratori et aLlComputer Communications 19 (19%) 1268-1275
properties of the flexible network we proposed, namely intelligence, resilience and evolution, are extremely important, especially as the network grows. We also proposed the ADIPS framework to support agentifying the basic processes of distributed computing systems. Most important is to gather domain knowledge and embed it in the agent. For simple applications, as given in Section 6, it is easy. For difficult situations like failure recovery it would be more tricky. A concerted effort of experts is needed to build a true flexible communication network.
References [l] J.R. Vetter, Videoconferencing on the Internet, IEEE Computer, 28(l) (January 1995) 77-79. [2] M.R. Macedonia and D.P. Brutzman, MBone provides audio and video across the internet, IEEE Computer, 27(4) (April 1994) 30-36. [3] N. Shiratori and K. Sugawara, Towards developing flexible network - knowledge-based design methodology, Technical Report, IEICE, AI93-46 (1993-09) 1993 pp. l-8 (in Japanese). [4] N. Shiratori, K. Sugawara, T. Kinoshita and G. Chakraborty, Flexible networks: basic concept and architecture, IEICE Trans. Inf. & Syst. (November 1994). [5] A.A. Khokhar et al., Heterogeneous computing: challenges and opportunities, IEEE Computer (June 1993) 18-27. [6] A.S. Tanenbaum, Computer Networks, Prentice Hall, Englewood Cliffs, NJ, 1989. [7] K.L. Calve& Beyond layering: modularity considerations for protocol architectures, Proc. Int. Conf. Network Protocols, 1993, pp. 90-97.
1275
[8] H. Tominaga, Flexible networks - Introduction, J. IEICE, 77(4) (1994) 350-354 (in Japanese). [9] M.B. Abbott and L.L. Peterson, Increasing network throughput by integrating protocol layers, IEEE/ACM Trans. Networking, l(5) (October 1993) 600-610. [lo] N.C. Hutchinson and L.L. Peterson, The x-kernel: an architecture for implementing network protocols, IEEE Trans. Softw. Eng., 17(l) (January 1991) 64-76. [ll] P. Druschel, Efficient support for incremental customization of OS services, Proc. Third Int. Workshop on Object Orientation in Operating Systems, Asheville, NC, December 1993, pp. 186-190. [12] S.W. O’Malley and L.L.L. Peterson, A dynamic network architecture, ACM Trans. Computer Systems, lO(2) (May 1992) 110-143. [13] N. Shiratori, K. Takahashi, K. Sugawara and T. Kinoshita, Using artificial intelligence in communication system design, IEEE Software Mag., 9(l) (1992) 38-46. [14] K.I. Muralidhar, Knowledge-based network management, in Telecommunication Network Management into 21st century, IEEE Press, New York, 1994. [15] N. Shiratori et al., Applications of AI technologies to communications system, toward advanced intelligent network, Proc. PPCC-3,1989, pp. 177-183. [16] K. Sugawara et al., Knowledge-based design methodology for distributed processing systems, Proc. PPCC-3, 1989, pp. 837-843. [171 T. Kinoshita, K. Sugawara and N. Shiratori, Knowledge based design support system for computer communication system, IEEE J. SAC, 6(5) (1988) 850-861. [ 181 T. Kinoshita, K. Sugawara and N. Shiratori, Knowledge based design for computer communication systems, IEICE Trans. Inf. & Syst., E75D(ll) (1992) 156-169. [19] V. Kompella, Multicast routing algorithms for multimedia traffic, PhD Thesis, University of California, San Diego, 1993. [20] C. Pomavalai, G. Chakraborty and N. Shiratori, A neural network approach to multicast routing in real-time communication networks, Proc. Int. Conf. Network Protocols, 1995, pp. 332-339.