O. C. E. A. N.
The Open Computation Exchange & Arbitration Network


A Problem, and an Opportunity

Computers are expensive. For people and businesses who need heavy-duty computing power, even if only occasionally, there is currently little alternative to buying a supercomputer or a network of dedicated servers. Either choice is costly to purchase, and expensive to admisister and maintain.

Meanwhile, the Internet is sitting out there with literally millions of computers connected to it at any given time. Except for a scattering of busy servers, most of these computers are sitting idle most of the time, actively doing nothing except perhaps running a screen-saver. Valuable computational power is wasted, lost, gone forever.

Might it be possible to use each of these problems to solve the other?

The Vision

Imagine if, whenever you wanted, you could easily and automatically harness the parallel power of as many computers as you needed across the Internet to solve your computational tasks. Processing jobs that previously ran for hours would now take minutes. Imagine that you could use this ability on demand, paying only for the computer time you actually use. No more expensive up-front investments. No waiting for new equipment to arrive. Instead, instant, unlimited growth potential to handle whatever sudden jumps in computing needs you might encounter in your business or research.

Alternatively, suppose you already own some computers connected to the net, or else you know how to set some up cheaply. Rather than letting these computers just sit idle when you're not using them, and hoping to eventually resell them at some heavily depreciated post-obsolescence price, instead imagine that you could run some simple and free software on your computers that would let them safely and silently run programs submitted by users all over the net, all the time, earning income for you.

Imagine that the collective computational power of millions of computers all over the world becomes a vast, liquid commodity, flowing like an ocean between continents, fluctuating up and down in price according to global needs and the laws of supply and demand, and allocating itself to maximize economic benefit with fluid, automatic capitalist efficiency.

The type of system we envision would also include a number of servers called arbitrators which would assist in tasks such as disseminating market price information, helping clients find the type and quantity of computational resources that they need, rating the reliability and trustworthiness of particular servers, and serving as trusted middlemen to assist in secure transaction protocols.

We refer to the system envisioned above as OCEAN: the Open Computation Exchange & Arbitration Network.

The OCEAN Project

The OCEAN Project, started by a group of past and present students from MIT and Stanford, aims to develop design concepts, open standards and free software to facilitate the creation of an OCEAN, as envisioned above. Once the initial OCEAN system is fully functional, we also aim to encourage its rapid widespread adoption, since the larger the market of clients and providers, the more effective the system will be.

Practical Issues

There are a number of practical and technical questions an OCEAN system will need to address.

Security

There are two main goals of security in an OCEAN system: protecting clients from servers, and protecting servers from clients. Some clients or servers may be unreliable, dishonest, or malicious. There need to be mechanisms for preventing, deterring, and coping with abuses.

See the last section of my talk notes for a detailed summary of the OCEAN project's current plans for addressing various security issues.

The recent addition of digital signature support to Java will make it much easier to implement a number of security mechanisms.

Portability

To facilitate the early growth of the OCEAN network, it would be desirable if OCEAN clients could run on a variety of different server platforms. To this end, we are currently envisioning Java as the initially supported format for distributing OCEAN client programs.

Down the road, we would like the OCEAN to also support more platform-specific client programs which could take advantage of special-purpose server features, such as, for example, fast math or graphics hardware. Also, legacy code that might already exist in a variety of languages, such as C and Fortran, may be easier to modify to run in the OCEAN if the client programs can be distributed in platform-specific formats. It seems that even native-code clients can be run securely on certain server platforms such as SunOS and Linux systems, by trapping system calls using ptrace(2) with the PTRACE_SYSCALL request, thereby enabling the runtime environment to enforce security at the system-call level.

Payment Mechanisms

A successful OCEAN system will likely need to support a variety of payment mechanisms, as it seems that it may take a while for a single dominant standard for automatic electronic payments to emerge. We will initially support whichever fully automatic and reasonably secure payment mechanism seems easiest to support. The job of transacting secure payments may be made easier by depending on a network of arbitrator servers to act as trusted middlemen. The project will operate some initial arbitrators.

Project Status and History

We have started development of OCEAN standards, together with a suite of server, client, and arbitrator software in Java. Once a minimal level of functionality has been achieved, the standards will be announced and the software released for Beta testing. The early experimental Beta versions of OCEAN may conduct transactions using "play money" until security concerns about payments have been thoroughly addressed.

Once this early experimental stage has been concluded sucessfully, a company may be spun off to make any legal and licensing arrangements that may be needed to ensure that OCEAN transactions are as secure as possible, and to develop OCEAN-releated software and services on a commercial basis.

From mid-1997 through 1999 the OCEAN project was on hold while Michael worked on an (unrelated) Ph.D. thesis.

As of April 13, 2001, the project has been actively pursued by (now Dr.) Mike Frank and a group of several undergraduate and graduate students at the University of Florida for approximately the last year.  Several prototype versions of the OCEAN system now exist in various stages of completion.  It presently looks likely that a usable version of OCEAN software may be released (binaries and open source) by 4th quarter 2001.  We are developing a business plan (Word) to present to potential investors who may wish to help develop OCEAN into a commercial venture.

New Project Home Page

Original Project Team Members (bios may be out of date)

Ron Bodkin
Ron was a grad student at the MIT Lab for Computer Science and inspired Mike to develop OCEAN in personal discussions.
Michael Frank (project lead)
Michael was a grad student in the MITAI Lab and is presently a faculty member at the University of Florida CISE Department.
Mark Torrance
Mark, an alumnus of the AI Lab, founded StockMaster, a successful commercial web service.
Randy Sargent
Carl Witty
Randy and Carl, also AI Lab alums, are co-owners of Newton Research Labs, which develops mobile robot systems and helped develop Microsoft's satellite web broadcasting service.
Barney Pell
Barney was a fellow Stanford student who led an autonomous agent software team at NASA which developed software for Deep Space One, the first AI spacecraft.  Later he worked at StockMaster.
Nelson Minar
Nelson was a graduate student in the Software Agents Group at the MIT Media Lab. Nelson worked on mobile agent concepts for distributed computing.  Now he has started PopularPower, a company providing an OCEAN-like service.
Others are welcome to join the project and help out! To join, just send email to Michael Frank at <mpf@ai.mit.edu>.

Things to Do (out of date)

Here is a list of some things that need doing, if volunteers wish to help out. I will help anyone get started.

Resources (out of date)

Send Us Your Comments and Suggestions!

At this early stage in OCEAN development, we are very open to new comments and suggestions as to what form the system ought to take, how to resolve particular technical or security problems, etc. Please send your suggestions to Michael Frank at <mpf@ai.mit.edu>
Michael Frank