[an error occurred while processing this directive]
News
About us
People
Research
Grants
Publications
Download
Technology Transfer
Spread
Secure Spread
Spines
Backhand
Frugal
Share
Archipelago

The Java Market

What is the Java Market?

The Java Market is a system for allocating computational resources with two key features:
  • It is very simple for *anyone* with an Internet-connected machine to make its computational resources available to the Market; and
  • It is very simple for *anyone* with an Internet-connected machine to use the Market's computational resources.

How does the Java Market work?

To make your machine a producer, you need only go to one of the Java Market Web pages with a Java-capable browser. An Applet on that page will automatically test your machine and create a window that it controls in which to run user jobs. These user jobs are written in Java, and executed inside your browser, so your machine is completely safe.

To use the Market's resources, you must write your job as a Java application -- you can use files, although you must otherwise respect the Java 'sandbox' in which your job will run -- and make the Java code and any important input files Web-readable. Then you can go to a Java Market Web page and tell it who you are, how long you want your job to run, and what the files associated with the job are. It will take it from there, editing and compiling your Java code and then shipping it to a producer machine. File operations will be handled remotely to the Market machine. Results are returend to the user via e-mail.


Trying it out...

If you have a Java-capable browser and the Market is being run, you can play with it now.

I'd like to...

Monitor the Market
and see what
it's doing.
Become a Provider
and make my
machine available.
Become a Client
and upload a sample
job to the Market.
Please don't do these all from one copy of the browser. Reusing job names can confuse Netscape, even if its cache is set to 0 bytes.

What the Java Market Can Do for You

Practical Metacomputing
The Java Market is an operational system for distributing jobs among the various machines of a LAN or WAN. It can use any correct Java Applet as the instruction set for the job, and the infrastructure exists for expanding the capabilities of these Applets without compromising security.

Heterogenous Resource Management
The Java Market can make use of any machine, with any operating system, as long as it has a Java-capable browser. It can upload jobs from any Web page or set of Web pages accessible to the market machines.

Internet-Wide Accessibility
Any machine on the Internet is a potential provider or client of the Java Market. The Java Market could therefore transform the Internet into the largest metacomputer extant.

Ease of Use
Using the Java Market is as simple as going to a Web page and filling out a simple form, and even the largest jobs will be accepted or rejected with reasonable alacrity. The Java Market does not depend on the machines being trustworthy; it already uses the full Java Applet security model, and this security will be enhanced as the system is developed.

Strong Decision Algorithms
The Johns Hopkins Metacomputing Project has developed unique algorithms for resource management and availability prediction, which will be incorporated into the Java Market code in a coming revision.

The Metacomputing Concept

Networks of machines... whether local to a given organization, or spanning vast areas of conceptual and physical space... are traditionally difficult to use to their full capacity. When an ordinary workstation is left unattended, it will most often sit idle, wasting hour upon CPU-hour. When, alternatively, that workstation's user has an important and CPU-intensive job, their single and solitary machine may be barely sufficient to their needs. Metacomputing is the study or use of networks that attempt to balance CPU and other resources among their various components... making a network of machines act more like a single, continuously operated, high power multiprocessing machine. This network becomes a metacomputer.

Most metacomputing systems use a limited set of machines with some level of 'trust' in eachother... these machines have entered into a contract with eachother and with that system in the expectation that they will receive a fair share of the metacomputer's CPU and that no malicious jobs will be loaded from one machine to another. For a business network, this level of trust is natural... but it is harder to achieve and justify when one deals with large networks of heterogenous and spatially separated machines where the individual machine users may not be trustworthy. The best example of such a network is the Internet. The Java Market, then, is an attempt to transform the Internet into a metacomputer: one that can be trusted even when the individual users are not, one which can handle the enormous variety found in that network, and one which is... ultimately... only a minute or two of extra work for each of its potential millions of users.

Some Questions Answered.

Q: How does the Java Market provide security?
A: Security is automatic with the Java Market, because every job is run as a Java applet inside the provider's browser. This means that the Java 'sandbox'... the inbuilt security manager that keeps applets from harming the system they are run on... surrounds every Java Market job. There are planned enhancements to the system that will provide even tighter security.

Q: How can you do work when Java Applets can't do file I/O?
A: A standard Java trick is used: the applet does not write to or read from files on the provider's system, but instead accesses files stored on the market machine over a network connection. The file management code is complete (and is used in the examples;) in a short time, it will become available for all clients... transparently. Clients will be able to write their file code exactly as if they were running it on their own system.

Q: How does the Java Market return results?
A: The simplest method possible: by email.

Q: Does the Java Market control jobs as they are executed?
A: Yes; each job is run in a separate browser window that the provider applet controls. Jobs can be stopped or started with ease. When the decision algorithms have been upgraded and checkpointing has been built in, it will be able to preempt jobs and move them to different machines.

Q: How do I make my machine available?
A: Follow the 'Become a Provider' link above, and click on the "Selection Complete" button. Your machine will be tested for speed and added to the Market's database. Then it will wait for the Market to give it a job.

Q: How do I start a job?
A: Follow the 'Become a Client' link above. Fill in the job name (just be sure to use a different one for each simultaneously running job,) your email address, and click "Selection Complete." For a different example, change '1' to '2' in the pages mentioned. You can also provide your own Java application, datafiles, and pages. The top .java file should be the main application, and you should include an .html file that calls it with the proper arguments.

Q: How do I 'monitor' the Market?
A: Follow the 'Monitor the Market' link above!


metacomputing@cnds.jhu.edu for more information.
Questions or comments to:
webmaster (at) dsn.jhu.edu
TEL: (410) 516-5562
FAX: (410) 516-6134
Distributed Systems and Networks Lab
Computer Science Department
Johns Hopkins University
3400 N. Charles Street Baltimore, MD 21218-2686