Date: Fri, 23 Jan 1998 02:13:48 -0500 From: David Wallace Croft To: Srinivas Kankanahalli CC: John Waugaman Subject: CS486 class project suggestion Dr. Srinivas Kankanahalli: I've been kicking around the idea of implementing a secure distributed compute server (mobile agent) framework for my individual project in your "Global Knowledge Networks" class. This would give me an opportunity to play around with those ideas that I mentioned regarding assigning natural cost metrics to computer resource consumption. The main idea is that this Java desktop app would serve as both a client and a potential server. By virtue of it being up and running, it would communicate with its peers to find out who else is up and running at any given time. Any one or several of the apps then become candidates to launch or serve mobile classes. Security and resource consumption would be restricted using a Java SecurityManager. The goal would be voluntary participation in the largest distributed network known to date. While this idea has been kicking around for some time, it is the class mobility and security features of Java that now make this palatable to the new base of Internet-wired desktops. Participation and security would be encouraged by setting up an informative web page, giving away the source code for a trusted compile, suggesting a default port, and providing a default address to a "master peer" for peers to contact when they are run for the first time to get a list of other peers. While this "super-computer using Java" idea has been described before in the context of using applets (see link) and agent frameworks, I propose that a peer-based application architecture, in which any simple peer could launch a process to any other simple peer, would be sufficiently unique if presented to the Internet community at this time. As an additional twist, I will use this vehicle as a method of experimenting with automatically redistributing computational resources based upon fair market economics. http://www.javaworld.com/javaworld/jw-01-1997/jw-01-dampp.html Here's an outline of some features/thoughts: * web site promotion * voluntary participation * source code available to the public domain * suggestion for a default port (later standardization) * a default address to act as an initial "registry" to other peers * multiple peer-to-peer architecture * uses RMI * custom SecurityManager * user options to charge electronic cash for hosting processes * automatic resource price adjustments to maximize profit given user options and constraints * metered sockets * metered CPU time and memory allocation, if feasible * host options to limit/throttle/suspend resource consumption * defined methods for access to common services, such as mail and newsgroup servers, which might be available on the host * robust/informative in the event of failure This may seem like a large project but I already have experience in this from my last and current jobs. Java 1.1 RMI now further simplifies this task. I may end up spending the bulk of my time modifying the SecurityManager to ensure the constraint that all resource consumption must be metered and paid using some form of electronic currency. David Wallace Croft, croft@alumni.caltech.edu http://www.alumni.caltech.edu/~croft/ (304) 363-7913 voice, 363-7914 fax 804 Old Hickory Drive, Fairmont, WV 26554-8344