0% found this document useful (0 votes)
69 views8 pages

Parallel Computing Using Java Mobile Agents

This document proposes a framework for developing parallel applications on the web using Java mobile agents. It introduces using multiple mobile agents that each utilize multithreading to perform tasks in parallel across distributed databases on the web. A prototype parallel web querying application was developed to prove the concept. The framework builds on existing aglet technology for mobile agents and adds parallel processing capabilities.

Uploaded by

Sek Austin
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views8 pages

Parallel Computing Using Java Mobile Agents

This document proposes a framework for developing parallel applications on the web using Java mobile agents. It introduces using multiple mobile agents that each utilize multithreading to perform tasks in parallel across distributed databases on the web. A prototype parallel web querying application was developed to prove the concept. The framework builds on existing aglet technology for mobile agents and adds parallel processing capabilities.

Uploaded by

Sek Austin
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 8

Parallel Computing Using Java Mobile Agents

Panayiotou Christoforos*, George Samaras*, Evaggelia Pitoura+, Paraskevas Evripidou*

*Department of Computer Science, University of Cyprus


CY-1678 Nicosia, Cyprus, <{cssamara, skevos}@cs.ucy.ac.cy>

+ Department of Computer Science, University of Ioannina


GR 45110, Ioannina, Greece, <pitoura@zues.cs.uoi.gr>

Abstract launched in the Web to query in parallel distributed


The wide acceptance of Java technology as the de facto databases. Java multithreading is then employed to
standard for the development of distributed application combine the partial results of the queries; thus a second
on the Web, and the emerging technology of Java level of concurrency is employed. A prototype has been
Mobile Agents Frameworks, has motivated the creation developed and successfully tested, thus providing proof
of a new methodology for the creation of parallel of concept for the proposed framework.
applications. We introduce a methodology for the The undeniable eminence of Java technology [1] in
creation of parallel applications on the Web. The networking performance over other respected
proposed Mobile-Agent parallel processing framework programming languages like C++, its global portability
uses multiple Java-mobile Agents that each one utilizes and security control system gives Java the lead in
multithreading. Each mobile agent can travel anywhere Client/Server programming and mobile computing [2].
in the web to perform its tasks. We also introduce the The World Wide Web (simply Web) [6, 7, 8] is rapidly
concept of task handlers, which are Java objects being accepted as a universal access mechanism for
capable of implementing a particular task of the target network information. This popularity of the Web
application. TaskHandlers are dynamically assigned to suggests that Web browsers may offer a compelling end-
mobile agents. We have developed and tested a user interface for a large class of applications [13].
prototype application: Parallel Web Querying as proof Indeed, their widespread availability, the availability of
of concept of our proposed framework. Boosted by the the Internet to offer world-wide any-to-any connectivity,
inherited benefits of using Java and Mobile Agents, our the ease with which users can create forms using HTML,
proposed methodology brakes the barriers between the makes the Web very attractive (and inexpensive) for a
environments, and could potentially exploit in a parallel large class of client/server applications.
manner all the available computational resources on the The objective is to combine these two technologies,
World Wide Web. namely Java Mobile Agents and Web, for the solution of
large problems in parallel. The real challenge in
Keywords: Web, Java, Java Threads, Parallel Processing, integrating Java and Parallel Processing is the formation
Distributed Computing, Mobile Agent, Aglets. of smart, lightweight, flexible, independent and
portable Java Parallel processing programs, with
maximum performance and security standards, that will
1. Introduction support efficient parallel processing communication and
synchronization over the Internet.
This paper describes a framework for the The driving force motivating the use of mobile agents
development of Parallel Applications on the Web using is twofold. First, mobile agents provide an efficient,
Java Mobile Agents. The mobile agent execution flexible and asynchronous method for searching for
environment used to realize our proposed framework is information or services in rapidly evolving networks:
based on the Aglet Technology [4], developed by IBM mobile agents are launched into the unstructured
Tokyo, which is a Java based framework for building network and roam around to gather information or make
mobile agent objects. Our proposed framework enhances other computations. Second, mobile agents support
the capabilities of the Aglets with parallel processing intermittent connectivity, slow networks, and lightweight
constructs. We have applied this framework for the devices. This second property makes the use of mobile
development of a parallel Web-based Computing system agents very attractive [2]. In our case, it relieves the
and we demonstrate it with a parallel Web Querying remote client from any unnecessary overhead by
prototype. With this prototype Java Mobile agents are “moving” it to the heavyweight servers at the fixed
network. Furthermore, it allows a straightforward
Aglet Object
Identifier
adaptation of our approach to the, emerging and very
popular, wireless environments.
Here we introduce a new approach for the Itinerary
development of Java-based Parallel Processing
applications over the Web. Our approach is based on the
Data-
idea of using mobile agents [3]. These agents are Variables
launched to different hosts on Web and they cooperate Aglet Code
and communicate among themselves in order to solve
large problems fast. To realize our framework, new server listens to the host’s ports for incoming aglets,
components are defined to complement the existing captures them, and provides them with an aglet context
agent execution environment (i.e., the IBM aglets). In (i.e., an agent execution environment) in which they can
particular the existing aglets need to be extended with run their code from the state that it was halted before
parallel processing, synchronization and communication they were dispatched. Within its context, an aglet can
capabilities. In addition a library of task specific objects, communicate with other aglets, collect local information
called Task_handlers, are implemented to realize the and when convenient halt its execution and be
computation portion of the application. The generality of dispatched to another host. An aglet can also be cloned
our approach with the concept of Task_Handlers makes or disposed.
it very easy in expanding it with new elements to cover To allow aglets to be fired from within applets, the
almost any possible parallel application IBM Aglet team provided the so-called ‘FijiApplet’, an
The remaining sections of this paper are organized as abstract applet classes that is part of a Java package
follows. Section 2 presents a short introduction to the called ‘Fiji Kit’. The FijiApplet maintains some kind of
mobile agents’ paradigm and the Aglet Technology. an aglet context (like the Tahiti aglet server). From
Section 3 and 4 presents the proposed framework. within this context, aglets can be created, dispatched
Section 3 describes in detail the concepts behind the from, retracted back to the FijiApplet and of course
framework and section 4 gives more emphasis on the communicate.
technical side of the framework. Section 5 demonstrates For a Java-enabled Web browser to host and fire
the generality of the proposed framework. Section 6 aglets to various destinations, besides the FijiApplet
presents the implemented prototype our experimentation applet class, two more components are required and are
and performance analysis. While section 6 summarizes also provided by the Aglet’s Framework. These are an
the advantages of the proposed framework. Finally aglet plug-in to allow the browser to host aglets and an
section 7 concludes this report. aglet router that must be install at the Web server. The
aglet router is implemented in Java and it is available as
a standalone Java program or as a servlet component for
2. The Aglet Technology Web servers that support servlets 1. Its sole purpose is to
capture incoming aglets and forward them to their
The Aglet Technology [4] (also known as the Aglets destination.
Workbench) is a framework for programming mobile Potential uses of aglets include data collection from
network agents in Java. Developed by the IBM Japan many places, searching, filtering and monitoring
research group, the aglet technology was first released resources on the Web, parallel processing, entertainment
on July 28, 1996. From a technical point of view, the and electronic commerce. Our intention in this paper, is
IBM’s mobile agent called ‘Aglet’ (agile applet), is a the employment of aglets in order to provide a new
lightweight Java object that can move autonomously approach for the development of parallel, Java based
from one computer host to another for execution, Parallel applications. The approach is generic and it
carrying along its program code and state as well as the can be employed not only for the development of
so far obtained data. parallel application within a local network of
Unlike an applet’s short and boring period of workstations, but for the development of parallel
execution, an aglet can exist and execute tasks forever. applications accessible to the public on the Web.
One of the main differences between an aglet and the
simple mobile code of Java applets, is the itinerary that 3. Parallel Processing with Mobile Agents
is carried along with the aglet (figure 1). The itinerary
can change dynamically giving the aglet the sense of Motivated by the promising technology of mobile
self-governing and the look of an intelligent agent. agents, the power and capabilities of Java threads, we
Figure 1: An Aglet Template develop a framework for the development of parallel
applications on the Web. Our approach employs Java-
An aglet can be dispatched to any remote host that mobile agents for parallel computing that breaks the
supports the Java Virtual Machine. This requires from
the remote host to have preinstalled Tahiti, a tiny aglet 1
Servlet: a server-side applet that dynamically extends the functionality
server program implemented in Java. A running Tahiti of a Web server (like a CGI).
barriers of non-homogenous environments. with him. The decision of which object, from the
In our framework we launch multiple Java mobile TaskHandler library, will be initiated is done
agents that travel in designated hosts on the web where dynamically at runtime based on the current demands. In
they perform their tasks. Each agent supports the basic short the main responsibility of the parallel aglet is first
communication and synchronization tasks of the to create and coordinate other parallel aglets and then to
classical parallel worker. In short each agent assumes the initiate a variable number of TaskHandler objects to
role of a process in a parallel processing application. perform a specific job. The parallel-aglet has all the
There is also a second degree of parallelism achieved by capabilities of the IBM’s Aglet object, which can be
the use of threads inside each agent that strengthens the used as necessary (e.g. Cloning etc). The mode of
concurrent execution of an application. Our approach operation of the Parallel-aglet is similar in concept with
suggests that there is one agent chosen as a leader who the SPMD (Single Program Multiple Data) parallel
dynamically creates and dispatches to several model; the Parallel-aglet runs in all the hosts of our
workstations-hosts, a variable number of mobile agents application, the same code/process running in all the
to work in parallel (Figure 2). These workstations-hosts hosts, but it can perform different tasks in each host.
can be either computers in the fixed local network or TaskHandler Library: it is a collection of Java
they can be computers along the Internet. objects that are serialazable, and thus can travel along
with our aglet. TaskHandler is an object that is in the
disposal of our agent to use when it needs to perform a
specific computational task. For example, when the need
H ost #3
arise for a database query it could utilize the
P a r a lle l- a g le t P a r a lle l- a g l e t DBMS_TaskHandler. These objects are instantiated by
d is p a t c h e d b y
th e le a d e r
d is p a tc h e d b y
t h e le a d e r our agents in new separate threads that run along with
our agents. At the beginning this library can have only
our TaskHandler abstract class but it can be enriched
In t e rn e t In t e rn e t with other TaskHandler objects that must be descendants
C haos
C haos
of our TaskHandler abstract class (this is done both for
W o r k s t a t io n - h o s t # 1 W o r k s t a tio n - h o s t # 2
technical reasons and to ensure a common interface,
W o rk s t a tio n th a t h o s ts t h e
th a t h o s ts
l e a d e r P a r a ll- a g l e t th a t h o s ts although it can be overridden).
P a r a lle l- a g le t ( s ) P a r a lle l- a g le t( s )

Figure 2: The proposed framework TaskHandler


Furthermore in our proposed framework we
generalize the parallel agent by separating the mobile DBMS_TH Func1_TH Func2_TH …
shell from the specific task code of the target
application. We achieve this with the introduction of
TaskHandlers, which are Java objects capable of
performing the various tasks. TaskHandlers are SubDBMS_TH SubA_TH SubB_TH … …
dynamically assigned to our agents. Each agent can
carry with him any number of TaskHandlers and it can
dynamically choose when and where to use them.

3.1 The Mobile Parallel Processing Framework Figure 3: The hierarchy of the TaskHandler library

To realize our approach, a number of processes are The workstation-host: it must be a Java enabled
defined to complement the existing agent execution computer (has installed the Java runtime environment)
environment (i.e., the aglets). In particular the existing that runs the Tahiti Aglet server, in order to host
aglets need to be extended with parallel processing incoming Parallel-aglets.
capabilities. In addition a library of task specific objects, Both, the Parallel-aglet and the TaskHandler,
called TaskHandlers, are implemented to realize the compose the suggested framework, called “The Mobile
computation portion of the application. Specifically the Parallel Processing Framework”, and it is completely
following components comprise the proposed written in Java. Table 1 summarizes this agent-based
framework: parallel-processing infrastructure which is composed of
Parallel-aglet: it must be a computational unit, able (a) the Aglets Framework, and (b) our proposed Mobile
of creating and launching other Parallel-aglets. It is a Parallel Processing Framework.
descendant of IBM’s Aglet object. The coordination
between the various parallel aglets is an additional Table 1: The Mobile parallel-processing infrastructure.
responsibility. It must be able to create TaskHandler The Aglet The Mobile Parallel
objects from the TaskHandler library that travel along
Framework Processing Framework agents. This assignment is achieved with the following
A Tahiti aglet server The Parallel-aglet steps:
at each Workstation-host The TaskHandler i. The parallel aglet is created
library ii. If necessary creates and fires other parallel aglets
iii. The parallel aglet dispatches itself to the
3.2 Enhancing the Framework to Utilize the Web appropriate host.
iv. It creates a TaskHandler object and initiates it in
One of the biggest improvements of our suggested new separate thread
framework is its capability to be initiated from within a v. The TaskHandler perform its task in concurrently
Web page, making it accessible to the public through the
with the parallel aglet.
Web. The key for that is the ability of the Parallel-aglet
to be initiated within a Java enabled browser that has the vi. The parallel aglet requests from the TaskHandler to
FijiApplet plug-in. perform a specific task. While waiting the first
To achieve that, we expand our proposed framework TaskHandler to performed its tasks more
as follows (table 2): TaskHandler objects can be launched to
• We create a descendant of the FijiApplet abstract accomplish other tasks
class. We name this applet-based process ‘Parallel- vii. Finally the parallel-aglet collects, in coordination
applet’. This applet can create and communicate with a with the other parallel-aglets, the results and returns
Parallel-aglet (the web server must have the code of the them to the user. In other words the results are
Parallel-aglet). channeled through various aglets back to the leader
• By adding the aglet router and the aglet plug-in in aglet and then to the user.
the aglet framework. This class hierarchy is depicted in Figure 4 with the
• By adding a third framework, the Standard Web dashed lines we represent the dynamic assignment.
infrastructure.
The new Web-enabled Framework is consequently Figure 4: The class hierarchy of the various agents
called “The Web-Mobile Parallel Processing
Framework”.
Table 2: The new Mobile Web-based parallel-processing 3.4 Utilizing the Web-Mobile Parallel
infrastructure Framework
The Mobile
The Aglet The Standard Web Parallel The steps that a developer must follow in order to
Framework Web Processing create a parallel processing application, according to the
Infrastructure Framework Web-Mobile Parallel Processing Framework are the
A Tahiti aglet A Web The Parallel- following. Note that these steps only realize a specific
server at each Server applet parallel scenario. In section 6 we present and compare
Workstation-host various scenarios.
An aglet router A Java The Parallel- • Extend the Parallel-aglet class or implement our
installed at the powered Web aglet Parallel-aglet interface 2.
Web server Browser with • Program his own Parallel-applet either by extending
machine the aglet plug- our Parallel-applet class or writing a new one which
in. extends the IBM’s FijiApplet abstract class. (This applet
An aglet plug- The is used as the interface between the user and the Parallel-
in for Java- TaskHandler aglet).
enabled browsers library • Program the TaskHandler objects by extending our
to enable a Web TaskHandler abstract class (thus adding the necessary
browser to host objects in the TaskHandler library) or use an existing
aglets one from the current TaskHandler library.
• Include the Parallel-applet in an html page, and
3.3 Execution Roadmap install it on a Web server.
• Install the Parallel-aglet and the TaskHandlers on
As we have described above, the framework has a the Web server in order to be accessible to the Parallel-
great degree of generality and freedom. The static part of Applet.
our agent is responsible for the mobility, the general In order to setup the necessary infrastructure we must:
coordination, the creation and manipulation of other • Setup a number workstations-hosts by installing on
aglets and of course the dynamic assignment of
TaskHandlers, which compose the dynamic part of our 2
We give this option for reasons of compatibility and combination with
other frameworks that use IBM’s Aglets.
them the JVM and a Tahiti Server. 5.1 Implementation Roadmap
• Install the aglet router on the Web server.
• Install Java enabled Web browser that has the aglet The first step was to write the necessary
plug-in. TaskHandlers that our Parallel aglet will use:
To initiate the application, the user points his Web • DBMS_TaskHandler class, which has database
browser to the html page of the Web-Mobile Parallel capabilities, and the
Processing Framework. The leader (the first) Parallel- • Join_TaskHandler class, which joins the results of
aglet creates a number of other Parallel-aglets and two tables.
dispatches them to some hosts in the Web to work in This amounts to effectively writing two
parallel. The Parallel-aglets must first go through the Developer’s_TaskHandler classes. Then we extend our
aglet router that is installed on the Web server. parallel aglet to make him understand and handle the
messages that he might receive. Finally we did design a
4. Extending the Agent-based Parallel user interface of our application which was composed by
Frameworks an applet, descendant of Fiji applet, that serves as an
interface between the user and our parallel-aglet.
“Each mobile agent is a computation along The second step is to store the compiled code of the
with its own data and execution state” parallel aglet along with the necessary TaskHandlers and
the html page with the applet on host A (web server)
In the Java agent based technology, an agent can be The TaskHandler objects must be in the same file with
further viewed as an object that can be inherited, the parallel-aglets and serializable to travel with the
enhanced or refined just like any other object. The aglet.
Aglets can be viewed as the basic abstract object that The third step is to install on each host of the
provides us with the basic capabilities of mobility, distributed databases a Tahiti server in order to accept
communication, ability to cloning themselves, i.e., and host incoming aglets, and an SQL server (e.g.
implementing all the capabilities supported by the Aglets Microsoft Access). We also need to install on host A an
Framework. aglet router to route the mobile agents.
The parallel Frameworks enhance these capabilities The experiment can be initiated on any computer on
with the addition of parallel processing features. We the WWW that has Netscape Communicator 4.0 and
create a hierarchy that can be later on used to create above, with the Fiji plug-in. By pointing to the html
more complex and sophisticated applications. Figure 5 page of our prototype host A it downloads the applet that
shows the aglets hierarchy. will start our prototype. Through the applet’s graphical
interface, the user can issue a number of SQL sub-
Figure 5: The agents’ hierarchy queries. The user must also provide the IP addresses of
the machines that host the each distributed database to
To enhance the new aglets with other capabilities is be queried. As soon as the user issues the “execute”
now straightforward. For example, to extend the parallel command, the applet creates the parallel aglet (which
framework with database capabilities we only have to will be the leader) on host A and gives him vital
create a database TaskHandler [11], make it descendant information including:
of the TaskHandler class and extend the Parallel-aglet in • The number of hosts, and thus the number of
order to use the DBMS TaskHandler (which could be parallel aglets.
any of the Developer’s TaskHandler in Figure 5). Such a • The IP addresses of the remote hosts to be visited by
scenario is demonstrated in the section below. other parallel aglets (aglets he will create).
• The queries to be executed with the database server
on each host.
5. Prototype Implementation: Parallel Web • The names of the TaskHandlers objects that each
Querying aglet must create and use (including the ones for itself).
• The information that he is the leader.
As proof of concept for our methodology we have • His personal task (in other words, the IP address of a
setup a Mobile parallel-processing infrastructure network remote host that he’s supposed to visit along with the
and created Parallel Web Querying application. The appropriate query).
goal of this application was to provide the user the • Application specific information (e.g. database
capability of querying a number of distributed databases, username and password).
and join the result tables of each query. The application Immediately after that, while still on the web server
has been tested under various configurations on a (host A), the leader creates all the other necessary
number of distributed databases. parallel aglets (which are identical with him as far as
their capabilities are concerned) and then it dispatches
itself to the appropriate host. Each parallel aglet that is
created by the leader has the following information: iii) We have four parallel-aglets, each one
• The location of the leader and all other parallel visits and perform the queries at a different host, but the
aglets that the leader created. joining is done in a tree-reduction fashion.
• The names of the TaskHandlers that it must use.
• The information that he is NOT the leader. Figure 6: Performance of the various scenarios.
• His personal task (in other words, the IP address of a
remote host that he’s supposed to visit along with the Figure 6 shows the performance as implied by the
appropriate query). timing results of our prototype under the three scenarios
• Application specific information. outlined above. As it can be seen from the results the use
Each parallel aglet dispatches itself to the appropriate of multiple agents in parallel improves the performance
remote host. Arriving at the remote host, each parallel of the prototype. Improvement is achieved both in the
aglet initiates its main task. In this case it creates in a query phase and the join phase. The performance
new thread the DBMS_TaskHandler object. Please note improvement of scenario ii and scenario iii compared
that the initiation of the DBMS_TaskHandler and not of with scenario i is due to the fact that the queries are
some other TaskHandler is a decision which was taken performed in parallel. The improvement of scenario iii
dynamically (the aglet was instructed to do so – it was compared to scenario ii is due to the fact that the joining
not hardcoded to do so). The DBMS_TaskHandler is done in parallel in tree-reduction fashion. It is our
connects to the local SQL database server, performs its estimation that the speedups achieved are the maximum
query and gets the results. As soon as the results are possible according to the ahmdahls law.
available, the parallel aglet gets them (requests them)
from its DBMS_TaskHandler and then it terminates the 6. Advantages of using Mobile Agents for
TaskHandler’s thread. After that the parallel-aglets co-
operate to perform the join of the result tables. In order
Parallel Processing
to join two result tables, a parallel-aglet initiates the
A parallel processing application that is implemented
Join_TaskHandler, which does all the dirty work of the
accordingly to our suggested Web-Mobile Parallel
joining. When this is finished it sends the new results to
Processing Framework is boosted by the inherited
the applet.
benefits of using Java and Java mobile agents.
An important advantage is that the number of
5.2 Experimentation and analysis of results processes in a Mobile Web Parallel Processing
Framework can change dynamically. After initiating
We contacted experiments on a local network and the application with a number of aglets serving it, the
involved 4 hosts with distributed databases. We used leader parallel aglet can create, at run time, as many
medium size databases (about 50-Mb) which had some other parallel aglets as necessary. The workstations that
tables having more than half a million records. However will host the parallel aglets can be decided at run time,
the SQL was designed to limit the intermediate results. after considering the network traffic or the workload of
We perform experiments under three scenarios: the available workstations [12]. Parallel aglets can be
i) We have just one parallel-aglet (the leader) which reused as they can receive new instructions and then use
goes from host to host performs the queries and joins the new tasks i.e., initiate different TaskHandler objects
results at the end. according to the its instructions. Furthermore, the
ii) We have four parallel-aglets, each one visit and workstations that hosts worker processes are not required
perform the queries at a different host. The joining is to be part of the same local network in which the
done by the leader. workstation that hosts the leader parallel aglet belongs
to. A workstation-host can be located anywhere in the
entire Web.
By using Java, the Web-Mobile Parallel Processing
Prototype's Performance
Framework breaks the homogeneity barriers enabling
4,0 all kinds of workstations to be part of the framework.
3,5 The application based on this framework can be initiated
from within a Web page. Thus, unlike to other parallel
3,0 processing implementations, an application of the
2,5 Mobile Web Parallel Processing Framework can be
Speedup

2,0 accessible to the public on the Web with zero


1,5 configuration.
Our framework can be further benefited from the
1,0
inherent advantages of the mobile technology itself, for
0,5 example:
0,0 • A parallel aglet, having a certain load of work, can
e
00
0

ag
20

40

60

80

10

er
Av

Speedup between mode 0Size


Sample and 1
Speedup between mode 0 and 2
Speedup between mode 1 and 2
split up the workload by cloning itself. The clones Aglets Framework and extend it to create an efficient
created are parallel aglets that participate in the and flexible Web-based framework for parallel
computation. processing using Java mobile agents. Furthermore the
• A parallel aglet can dispatch to another host, if its generality of our approach with the concept of
current host is powerless or if it has a heavy workload. TaskHandlers makes it very easy in expanding it with
• A parallel aglet can move to workstations where the new elements to cover almost any possible parallel
available resources and environment are suitable for its application. A prototype application, of Parallel Query
kind of work. For example, a parallel aglet that has to has been implemented and tested. We performed several
perform queries from a database server can be experiments with different combinations of number of
dispatched directly to the database server and get as parallel-aglets and methods of joining the resulting
closed to data as it is possible. tables. The results showed that our proposed framework
• Parallel aglets can be launched (and forgotten) by can achieved respectable speedups.
the leader parallel aglet initialized from a laptop or a This framework, named “the Mobile Web Parallel
palmtop computer during a short Web session. The Processing Framework”, utilizes the newest technology
parallel aglet can roam around the unstructured network of mobile agents. This framework is portable and it can
to perform its tasks and then wait until the be used not only within the Web but stand-alone as well.
communication link is again available to return home Furthermore, the various mobile agents of our
with their task results. framework are light and thus very suitable for low
bandwidth environments, such as wireless Wide Area
7. Other approaches Networks (WANs). In general, even though the parallel
aglet must follow certain directions, this framework
Other approaches for Java high perfomance include the allows it to be portable, light, independent, autonomous,
following: flexible and robust.
Expansion of the Java Virtual Machine to support
virtual shared memory. (Java/DSM) References
Expansion of Java language (by implementing a
compiler) with parallel execution models and constructs. [1] G. Cornel and C. Horstman. Core Java. SunSoft
(Titanium) Press, 1996.
Java bytecode optimizers that discover implicit [2] Evaggelia Pittura and George Samaras. Data
parallelism (javab) Management for Mobile Computing. Kluwer Academic
Publishers, 1997
Tools that automate binding of native libraries (JCI:
[3] Colin G. Harrison, David M. Chessm, Aaron
Java-to-C interface generator) Kershenbaum. Mobile Agents: are they a good idea? Research
Sharing of single-user Java applications for Report, IBM Research Division.
synchronous collaboration by propagating AWT events [4] Aglets Workbench, by IBM Japan Research Group.
(JCE - Tango) Web site: <http:/ aglets.trl.ibm.co.jp>
The implementation of software components (in Java) [5] Ed Anuff. Java sourcebook. Whiley Computer
that give the basic communication functionality needed Publishing, 1996.
by distributed or parallel computing (A World-Wide [6] T. Berners-Lee and D. Connolly, Hypertext Markup
Distributed System Using Java and the Internet - JPVM) Language Specification 2.0, Internet Draft, Internet
Using a collection of applets with brokers that route Engineering Task Force (IETF), HTML Working Group.
the messages between the applets (Javelin - Charlotte) Available at <www.ics.uci.edu/ietf/html/html2spec.ps.gz>,
June 1995.
Load balancing by relocating Java agents (Adaptive
[7] T. Berners-Lee, R. Fielding, H. Frystyk. Hypertext
Placement of Parallel Java Agents in a Scalable Transfer Protocol - HTTP/1.0 Specification, Internet Draft,
Computing Cluster) Internet Engineering Task Force (IETF). Available at
<www.ics.uci.edu/pub/ietf/http/draft-fielding-http-spec-
8. Conclusions 01.ps.Z>, August 1995.
[8] T. Berners-Lee and R. Caililiau and A. Luotonen and
In this paper, we have introduced a new approach for H.F. Nielsen and A. Secret, The World Wide Web, Journal
developing parallel applications on the Web using Java Communications of the ACM, Vol. 37, No 8, pp. 76-82,
August, 1994.
mobile agents and Java threads. Our approach employees
[9] D. Chess, B. Grosof, C. Harrison, D.Levine, C.
and extends the power of Java programming language, Parris, G. Tsudik. Itinerant Agents for Mobile Computing.
and the flexibility of Java-based mobile agents to Journal IEEE Personal Communications, Vol. 2, No. 5,
provide a new framework for parallel Web development. October 1993.
Compared with the conventional implementations, our [10] J. E. White. Mobile Agents. General Magic White
approach, is far more convenient for serving the Web Paper. Web site <http://www.genmagic.com/agents>, 1996.
Internet user, especially in cases when the client is a [11] S. Papastavrou, G. Samaras, and E. Pitoura, “Mobile
mobile or wireless machine. We have utilized the IBM Agents for WWW Distributed Database Access”, Proc. 15th
International Data Engineering Conference, Sydney, Australia,
March 1999.
[12] Barelos, D., E. Pitoura, G. Samaras, “Mobile Agents
Procedures: Metacomputing in Java”, Proc. Of the ICDCS
Workshop on Distributed Middleware (in conjuction with the
19th IEEE International Conference on Distributed Computing
Systems (ICDCS99)) Austin, TX USA, June 1999
[13] N. Neophytou and P. Evripidou ``Net-dbx: A Java
Powered tool for Interactive Debugging of MPI programs
across the Internet'', Proceedings of Euro-Par 98 Conference,
1998

You might also like