Asia Pacific BioGRID Initiative

[ Home | APBioBox | APBioKnoppix | APBioKnoppix2 | BioWorldWideWorkflow | MDS Browser | Documentation | Download | Contact ]

BioWorldWideWorkFlow (bioWWWF)
 
A. Some Nascent Concepts of the WorldWideWorkFlow (WWWF or W3F)
If the World Wide Web (WWW) represents the global framework of publicly Internet accessible documents (Web Pages) and a gateway to applications running on remote servers world wide (Web Services), then the World Wide WorkFlow (WWWF or W3F) represents the nascent global framework of publicly Internet accesible workflows and their constituent applications.

While WWW deals mainly with information transfer of Web content which the user can browse freely, and WWW's Common Gateway Interface (CGI) provides the interactivity between client and server, the W3F deals with information transfer between steps of a series of work processes, the information flow in a business logic, the protocol and procedures of many steps leading to a certain outcome, and the interfaces which the client user can interface with each of the steps of the workflow.

W3F is a world wide workflow system because

  • anyone should be able to develop a W3F application easily and offer the application for anyone (including the W3F application developer herself) to provide a W3F service based on that W3F application,
  • anyone (i.e. the W3F workflow developer) should be able to connect a series of W3F services into steps of a workflow where the ouputs of one step can be the inputs of other subsequent steps,
  • anyone (i.e. the W3F user) should be able to browse or search for specific workflows which another person (the W3F workflow developer) has constructed and published on the W3F,
  • anyone should be able to select workflows or templates authored by others and published on the W3F, and take the workflow and reuse or repurpose the selected workflow with new inputs and parameters and run the workflow on a selected and compatible W3F Workflow Orchestrator server,
  • any W3F Orchestrator server, based on the repurposed workflow so defined, can call designated or automatically assigned W3F Enactor/Executor servers to execute the so-advertised W3F application, and provide workflow management for the system to check with user, control and security policies, parameters, and other software before execution, and record workflow provenance and other audit trail features;
  • and like a WebEditor or WebMaster or Web Adminstrator for Web content creation, Web management and adminstration, the W3F orchestrator service provider can assemble a set of W3F enactors and offer these enactor services to the W3F users to assemble their workflows or workflow of workflows.
  • using W3F Browsers, anyone in the world can browse through W3F services comprising workflows and application services offered by W3F Orchestrators, just like Web Browsers allow users to traverse the WWW of content.
  • using W3F Editors, anyone in the world can drag and drop, link and connect W3F applications and compose their W3F workflows for their own use, or advertise it on a W3F Orchestrator service provider for others to reuse or repurpose with their W3F Editors.
  • emerging workflow standards will eventually allow the islands of W3F implementations to interoperate, such as any workflow can call the applications residing across different W3F Orchestration domains provided security issues are met, permissions are acquired, and economic issues are resolved.
B. Setting up the components of a WorldWideWorkFlow (WWWF or W3F)
  • Setting up a root registry of W3F orchestrator domains at W3FCentral
  • Distributing a W3F editor/browser and enactor (KOOPBox)
  • Distributing a W3F browser (KOOPLite)
  • Setting up a W3F orchestrator (KOOPserver)
  • Setting up a W3F executor/enactor (KOOPdaemon)
C. Coordinating the actors of a WorldWideWorkFlow (WWWF or W3F)
  • Instructions to KOOPservice developer
  • Instructions to KOOPservice provider
  • Instructions to KOOPserver administrator
  • Register your KOOPserver as a BioW3F domain with the Root Registry of BioWWWF: currently no inter-domain workflow possible until interoperable workflow systems achieved.
  • C.1. Be a KOOPservice developer
    1. Write your application or compile your existing application.
    2. Create your application-interface KOOPwrapper Java class
      1. Option 1: Use a generic full command-line Run-time class
      2. Option 2: Use a generic BioInformatics Wrapper class: the KOOP3 Bubblelizer
      3. Option 3: Write your own application-specific wrapper class from scratch
    3. Packaging your application
      1. Option 1: Package Java class and application binary into Jar file for complete portable KOOPservice: only runs on binary compatible platforms obviously
      2. Option 2: Package only the Java class if application is system-dependent and separately compiled/deployed on different platforms: Java class calls the application already pre-existing on the platform
    4. Submission to KOOPserver administrator and Registration of your Jar file by using the URL http://[KOOPserver:port]/submit.cgi/
    5. Quality checking, Certification and advertisement of your Jar file by KOOPserver administrator
    6. If you are a trusted and registered KOOPservice Developer authenticated with the KOOPserver adminstrator, you will probably be expedited in your quality checking and certification process. (Yes, we have to go through this process as you can well appreciate that anyone can construct by incompetence, by error or by design, crippling denial of service workflows that have enormously negative consequences, or propagate viruses or worms etc and other bad things.)
    7. If cleared, the KOOPserver will now have your KOOPservice application advertised and available for any KOOPservice provider to offer your application service to KOOPservice users. (provided KOOPservice providers know your application service exists and that it can be trusted to perform what it claims to do)
    8. The site advertising your KOOPservice application is usually http://[KOOPserver:port]/apps/
  • C.2. Set up your machine for a KOOPservice and be a KOOPservice provider
    1. Basic requirements of your KOOPService server
    2. Set up KOOP Daemon on your KOOPservice server
      • Command Line Background Mode
        If you are on a Unix or MacOS platform, create a user account called kdaemon with the appropriate permissions necessary to offer the KOOPservice desired.
        Log in as the user, kdaemon, to run the KOOP Daemon process.
        If on a Windows platform, skip this step.
        1. Download http://w3f.bic.nus.edu.sg/koopdaemon/kdaemon.tar.gz
        2. tar -xvfz kdaemon.tar.gz in [HOMEDIR]/kdaemon/ where HOMEDIR is your home directory
        3. cd kdaemon/run_kdaemon.sh [FQDN_of_KOOPServer:port] &
          Note that [HOMEDIR]/KOOPlatform/ directory containing a licence key and config files will be created.
        4. The process should run in the background.
        5. If the process is killed for some reason, it will automatically restart.
        6. If you kill the run_kdaemon script process, you have to re-run the script as above.
      • Browser Online Mode (alternative method)
        If you are on a Unix or MacOS platform, create a user account called kdaemon with the appropriate permissions necessary to offer the KOOPservice desired.
        Log in as the user, kdaemon, to run the KOOP Daemon process.
        If on a Windows platform, skip this step.
        1. Running via console browser or Xwindows into the server using Java Webstart
          Open up your webbrowser and go to the URL:
          http://w3f.bic.nus.edu.sg/koop3/koopdaemon/daemon.jnlp
          The web browser will automatically download the KOOP Daemon and start running it as a process in the background owned by kdaemon
        2. Running via remote command line using Java Webstart
          Change directory to the Java Webstart home directory
          At the command line,
          % javaws http://w3f.bic.nus.edu.sg/koop3/koopdaemon/daemon.jnlp
          and the javaws will start the KOOP daemon in the background automatically.
        3. Because it is started by Java Webstart, logout automatically kills the process.
    3. Be a KOOPservice provider
      • First make sure you have a KOOPdaemon on your machine you wish to offer your KOOPservice
      • Browse through a selection of KOOPservice applications which KOOPservice Developers have created and registered with the KOOPServer administrators.
      • Select the KOOPservice you wish to offer
    4. How to add a KOOPservice
    5. _________ How to advertise your KOOPservice on the BioWorldWideWorkflow BioWWWF
      1. Register
      2. Log into KOOPBox using
      3. How to configure your permissions file (not available in freeware yet)
      4. How to document your KOOPservice on your website
      5. .


Updated Oct; July; Apr 2004; 4 Dec 2003 (ttw); 16 Sep 2003 - ogs