Software / Docs
-- intro --
The ImageDemo shows the various components of the DisCo infrastructure: securing connections, authorizaing and authenticating hosts, downloading and running code in a secure sandbox, etc. The demo revolves around an application called foveation. Suppose that a satellite takes an extremely high resolution photo of a particular section of the Earth. Certain individuals may be interested in this photo, but only a small section of it. The photo taken may be hundreds of megabytes and over a serial line or a low-speed connection. Given a size, foveation takes an image and resizes the image into that size and saves it. It continues by breaking up the image into quadrants, resizes then, and saves it. This process recursively occurs until a section is below the given size. This then creates a number of files of increasing resolution. A client will be given the initial resizing and can then request a certain portion of the image at a higher resolution. This process continues until it has reached the highest resolution a client has been allowed to give. The remainder of this page describes the major components of the imagedemo.
ImageServer / US (dRBAC Wallet: uss.s)
The ImageServer is responsible for serving images to clients and proxies that request them. It utilizes SwitchboardRPC to expose methods to request and retrieve images. Furthermore, it uses dRBAC to control who can connect and download images at a certain resolution level. Below is a screenshot of dRBAC:
Activator / ImageProxy (dRBAC Wallet: hms.s)
Individual hosts start up a standalone Activator component. This Activator listens for connections and can be told to download components from a different location and run it on the machine, granted the one who connects has the right access privaledges to tell the Activator to run the component. In this demo, clients who need to access images closer to them tells a local Activator to download a component called ImageProxy. This ImageProxy connects to an ImageServer of the proper resolution and clients can use the ImageProxy which acts as a mediary to the ImageServer and caches images as well.
Viewer / ViewerProvider
The Viewer is the main program the client downloads to access the foveated images. The Viewer consists of radio buttons called Enhance, Zoom In, and Zoom Out, which are self-explanatory. After clicking on a radio button, a user simply clicks on an area of the image he or she wants an action on and the Viewer acts accordingly, either putting a high-resolution image in its place or zooms on the correct area. The ViewerProvider is ran that provides the Viewer for downloads since clients usually would not normally have a foveation image viewer. The viewer is shown below:
The Viewer also pops up a "Status Window". This window allows clients to deploy proxies of certain resolutions to various Activator nodes on a local network. To do this, a user clicks on "Deploy Proxy" of the resolution he or she wants a proxy for and if successful, they can click on "Connect" to use that proxy. A screenshot of this window is shown below:
Client (dRBAC Wallet: ussub.s)
The client is a part of the DisCo package and is responsible for looking for provider services that server Viewer components. A user initially logs into the client (usually Al or Charlie) and then searches for code (the fields necessary to do this are put in by default). After the client successfully locates and finds a Viewer, it executes it and all of the above takes place.
Configuring and Starting the Image Demo
In order to run the imagedemo application, three separate hosts are required. The host on which the US dRBAC wallet and image servers run must be mapped to the hostname 'uss.s.' The second host, running the activator and viewer provider components, must be mapped to the hostname 'hms.s.' Finally, the third host, which runs the client application, must be mapped to 'ussub.s'.
All of the dRBAC delegation files in disco/imagedemo/delegationfiles must also be modified as well. A search and replace of 172.31.1.2 with the IP address of the machine with the hostname 'uss.s' in all of the xml files in the delegationfiles directory will allow the dRBAC portion of the demo to work properly on another system.
To compile the imagedemo application, run 'ant devcompile' from the disco/imagedemo directory on each of the three machines. Once compiled, change to the disco/imagedemo/scripts on all of the hosts. It is important that each of the following instructions are executed in the order in which they are listed. On 'uss.s', run the script us.sh. Once the dRBAC window appears, then run the imageserver.sh script. When the imageserver script is finished loading, another dRBAC window, titled 'ImageServer@(IP of uss.s)', will appear. Next, run the script bootstrapper2.sh on the machine named 'hms.s.' After the dRBAC window on that machine is displayed, the client script, client.sh, is ready to be run on 'ussub.s.' The DisCo Logon Screen should appear on the client host when the script has completed loading. Logon as user 'Al' with a blank password. After logon, click the 'Retrieve and Execute Code' button on the window that appears. This will search for an image viewer application, download it securely, and then run it. The image viewer application should be started after a brief wait and then is ready to be used.