






Cyberforaging
Status
Objectives
- To implement the client side of the CyberForaging framework
- To modify the dispatcher to dynamically and adaptively determine the location of the remote PlanetLab surrogates to serve to the mobile device
- To establish an end-to-end connection between the mobile device and the remote surrogate capable of remote execution
- To integrate an existing system of program partitioning to demonstrate the usefulness of the project
- To describe progess and difficulties in an end-of-semester summary paper
- ?To establish a broadcast system alerting the mobile device of the presence of a local surrogate?
Remaining Time Line
- 07/07 Thursday - Solidified multiple execution threads for a single client
- 07/07 Thursday - Client-side functions available for use with a program.
- 07/08 Friday - Using stub functions for dispatcher and simulating full interaction.
- 07/12 Tuesday - Client-initiated server clean-up
- 07/19 Tuesday - Example program working locally
- 07/22 Thursday - Example program partitioned and working in two parts on a single client
- 07/24 Saturday - Example program partitioned and working in cyber foraging framework.
Initial Code Demo - Hello World
- Change directories to the foraging shared folder (probably called "foraging")
- For a list of available slivers run ./nodelist.py - for this example, I will refer to planetlab02.cs.washington.edu, as it is stable and functional at present.
- scp surrogate -i identity gt_hutto@planetlab02.cs.washington.edu:~/surrogate - contact katana@cc.gatech.edu for current password: this will copy the surrogate server program to the sliver
- ssh -i identity -l gt_hutto planetlab02.cs.washington.edu - this will log you into the server, again contact katana@cc.gatech.edu for current password
- ls - confirm that surrogate is there
- ./surrogate - this will start the surrogate server waiting for incoming connections
- open another terminal and go to foraging again
- ./client planetlab02.cs.washington.edu "http://www.prism.gatech.edu/~gtg212a/helloWorldServer" "helloWorldServer" - this will download the hello world server program and start it executing as the superuser
- ./helloWorldClient planetlab02.cs.washington.edu - this will open a connection to the helloWorldServer and wait for a message, printing the message and terminating when it gets it. It should get the message "Hello World!"
Next Deliverable
- Updated client side so that the client side acts as an API that allows another process to establish a connection to the server and send the URL and file to execute, rather than requiring command line execution.
Other Milestones
- Updated server side so that a shell script may be downloaded and run instead of a program (not sure if this needs any changes or not) - Done
- Dispatch service so that the client side can retrieve all available nodes and choose which one to use (remove the necessity of the programmer/user needing to know planetlab03.cs.washington.edu)
- Status reporting on the server side so that the dispatcher can determine which nodes are available.
- Limiting server connections to a single client
- Allowing the single client to spawn any number of process requests simultaneously
- Correctly distributing files in distinct, properly structured files - one per process requested by the client
- Client initiated termination request
- Correctly cleaning up the server after a client finishes with it
- Implementing some sort of lease system
Design
Missing File (/sysHackfest/uploads/Design.sxw) Open office format.
Progress Monday 06/13
Completed testing of existing code base - most recent version provided by Bob on Friday (06/11). Modified Makefile and code files to make sure all items compiled. Began work on TCP client to initialize a Hello World program. Contacted Yannis Smaragdakis about the possibility of employing his dynamic class partitioning research with cyberforaging - I am still interested in this, but Professor Hutto is unsure.
Progress Monday 06/06
We have read through the pertinent documentation provided by professor Hutto detailing
both the conceptual basis for CyberForaging and some various aspects that
will allow it to be utilized to improve battery life and processing
capabilities of mobile devices. We have met with Bob Thomas, discussed the
work already done on the project, obtained the existing code base,
discussed problems that had arisen as well as expected further expected
difficulties, and established our goals for the semester. We need to
discuss this with professor Hutto to find out what he knows about access
to existing research projects, but from the sound of it, with a working
client side able to open TCP connections, we could employ the system
discussed in Adaptive Offloading Inference for Delivering Applications in
Pervasive Computing Environments. This system dynamically partitions
object-oriented programs to balance them between a thin client and a thick
surrogate. This solution would allow us to present a practical use for the
CyberForaging system as well as a test case to measure the success of our
project.
Additionally, We hope to work through the actual source code
provided by Bob, and to complete our review of all the work by
Monday. I have also applied for a PlanetLab account so that I can
begin actual testing, as well as contacting Dr. Dovrolis two weeks ago
to ensure that he would be able to validate the account when the
request came to him.
Also, I have gotten access to the gt_hutto slice on
planetlab03.cs.washington.edu, so I can begin experimenting with it.
Questions/Resource issues
Although not absolutely necessary, a router capable of broadcast and a mobile device
with Linux would be helpful.
Link to this Page
- Summer 2005 last edited on 5 June 2005 at 10:49 pm by user-1121cbi.dsl.mindspring.com