• Keine Ergebnisse gefunden

CHAPTER 4: AN AGENT-BASED PLATFORM FOR THE MANAGEMENT OF DYNAMIC

4.4 A RCHITECTURE S PECIFICATION

4.4.5 Distributed Processing Environment

On the distributed processing environment layer, the basic services offered by the Java Framework (Java) and the CORBA Framework will be used. The main reason for selecting both Java and CORBA frameworks is that they offer the basic means for true interoperable distributed applications. In the following section the rational behind the selection of these frameworks and the key services that will be deployed are explained.

4.4.5.1 The Java Framework

The Java programming language and Framework developed by Sun Microsystems is based on two concepts that appear to make it particularly suitable for the development of multi-agent systems, namely a network-based concept and a platform independent development language.

In traditional programming languages, a compiler or a runtime interpreter is used to convert the program source code into system-specific binary code. Java adopts another approach. The Java compiler does not directly translate the Java source code into binary code but into a so-called Java byte-code. This byte-code is platform-independent and can be executed without modification on all platforms that support Java. A Java interpreter developed for a particular platform is used to execute the byte-code on the target platform. The virtual machine is added to the existing operating system of the target computer and provides a simulated, consistent, runtime environment. Irrespective of the actual system platform, for example, UNIX, Windows or Mac-OS, the Java Virtual Machine always provides a Java program with a standardised runtime environment.

The byte-code can be either executed locally, as Java applications, or transferred over the network to a remote computer where it is executed as a so-called Java applet. In the Web, for example, the Java applet is embedded in the HTML page, transferred together with the HTML page, and executed on the target computer in a browser. The browser must provide the required Java runtime environment, i.e., a Java Virtual Machine and a Java interpreter. In a rather similar way, a java object can be sent to a remote physical address and continue execution. This leads directly to the concept of mobile agents. However, the existing Java Framework does not provide the basic services for mobility of objects. For that reason dedicated mobile agent platforms have been built upon the Java Framework that try to solve this problem and provide specific services for the migration of services.

The network-based concept of Java and, in particular, the principle of remote objects, place demands on the underlying security model that far exceed those provided by conventional programming languages. If a user loads an existing object from the network and executes it on his computer, he permits an object that he does not know to execute on his local system.

Although the task of the applet may provide the user with a general idea of the concrete actions that the object performs, he can never be sure whether the applet behaves as expected or whether under certain circumstances it performs some unwanted actions.

A s seen from the security model, the execution of an object can be considered from two directions. In one case, an object could have full access to the execution system. This corresponds to the traditional model in which an operating system permits the executing software programs to have access to all important system functions. This concept requires the user to have complete trust in the executing program and the operating system to perform preliminary checks on the program. Both aspects are difficult to realise for Java applets and in general objects. The actions of an object can be restricted to a specified space within the system.

Java refers to this as the object’s “sandbox”. Although an object can perform any actions it wishes within its sandbox, it has no access capabilities to resources that lie outside the sandbox.

The Java Virtual Machine provides the sandbox in practice. The security concept of Java9

9 The interested reader can read more bout the security model of Java on the http://java.sun.com/

consists of various components, some of which are positioned in the Java language itself whereas other parts are in the object executing application.

Object serialisation extends the central input/output classes of Java and permits sending a Java object over a network connection. This extension plays an important role in the implementation of mobile agents under Java framework. The functionality of the object serialisation is concerned with the packaging of all the classes that belong to the object, including the classes that the object can access, into a serial data stream, the transfer of this data stream over the network, and the reconstitution of the original object at the target computer. Thus, object serialisation supports the creation of persistent objects. An object can be interrupted at any point in its execution, packaged and transferred, reconstituted at the target computer and continued at the original program location. This is also a fundamental service that is used by the mobile agent platforms.

In the context of this thesis, the Java programming language and therefore, the Java Virtual Machine will be used for developing mobile intelligent agents based on a mobile agent platform.

The underlying services of Java framework, like security service, Remote Method Invocation service, serialisation service, and basic core services, like hashtables and vectors, will be deployed as basic middleware services for the required functionality within the agents.

4.4.5.2 The CORBA Framework

CORBA is a standard, defined by the Object Management Group (OMG 98), for implementing distributed applications. Currently, CORBA is integrated and supplied with all kind of tools and systems like databases, web browsers, program development environments standard object oriented analysis and design methods, e.g., UML, and support plenty of operating systems.

Basically, CORBA provides two basic benefits. First, the capability of an object to request an operation provided by a distributed object and to receive the results. Second, a set of standard distributed services, which can be accessed in the same way as other distributed objects. What makes CORBA an advantage is its support for interoperability. This means that CORBA objects can be implemented in many different programming languages and run in different environments with varying transport protocols, operating systems and hardware. This interoperability is real, and supported by almost all the significant technology providers in the IT domain.

Apart from the ORB, there is a set of standard middleware services and a component model.

This means that certain standard compliant services already implemented by different vendors can be easily deployed and integrated into a distributed CORBA environment.

OMG defines a set of system-level services called CORBAservices. These services are of general use, such as Naming service, Trader service, Life-cycle service, Event service, Security service, etc. They are assumed to be widely available and affect the architecture of the application.

CORBAfacilities are general-purpose services useful in many application domains, but with no relevant impact in the architecture. An example is the Printing Spooling facility. Those facilities specific to market sectors, such as financial services, manufacturing, or telecommunications are defined as CORBAdomains

In the context of this thesis, the CORBA framework will be used for integrating and deploying distributed business objects that can be directly used by an autonomous agent in the context of a business process. Additionally, the CORBA framework will be used for wrapping existing

legacy systems and offer their services in a distributed multi-agent environment, like the integration of OMG Trader into the virtual marketplaces.