CIShell Manual : CIWeb Implementation Proposals (old)

CIWeb Implementation Proposals

Implementation

Pros

Cons

Description

Links

WSRF/Web Services

  • Interoperability with other Web Services
  • Lots of implementation/maintenance on our side

We would create plugins that would advertise algorithms as web services that can be consumed by CIShell or other programs that can consume WSRF or simple web services.

Service Component Architecture

  • Building on an emerging SOA standard backed by BEA, IBM, Sun, etc
  • May require a decent amount of implementation/maintenance

We would create plugins that would advertise algorithms as SCA services that can be consumed by CIShell and SCA clients

CoGKit

  • Globus-maintained toolkit for connecting to Globus Grids
  • Support for Ad-Hoc Grids (though pretty involved)
  • Provides implementations for everything we need
    • GridFTP client to transfer bundles
    • GRAM to execute code
    • GSI to authentication/authorize
  • Only works for Globus

We would create plugins/extend cishell to allow algorithms to be pushed to a grid computing resource for execution.

gEclipse

  • Building on/working with an emerging top level eclipse project
  • Allows us to be there on the ground level to ensure that the community implements features we will need
  • It is middleware agnostic, so we could support many middleware implementations ourselves w/o changing code
  • They do not have an implementation for Globus yet (they are working mainly on gLite first)

We would create plugins/extend cishell to allow algorithms to be pushed to a grid computing resource for execution.

gEclipse HomePage

R-OSGi

  • Should be very simple to set up
  • There is currently no security setup for R-OSGi, we would have to implement the stack ourselves

We would create plugins that would allow algorithms to be accessed by outside osgi/cishell runtimes. This is distributed OSGi.

cajo

  • Should be very simple to set up
  • 100% Pure Java Solution
  • Could combine w/ grid client solution

 

Sharing of algorithms could be done through cajo sharing algorithm objects. Could be combined with a grid solution to push the program to a grid node and then run the cajo program to communicate interactively with the core.

cajo homepage