Initial Wings-OODT Integration

WINGS is a a semantic workflow system that assists scientists with the design of computational experiments. A unique feature of WINGS is that its workflow representations incorporate semantic constraints about datasets and workflow components, and are used to create and validate workflows and to generate metadata for new data products.

Wings Architecture Diagram

Wings-OODT Integration Overview

OODT Code Modifications

  • File Manager Additions
    • API Additions
      • addParentForProductType - to support parent additions to data types in Wings Data Catalog
      • removeParentForProductType
      • removeProductType
      • addElementsForProductType - to support property additions to data types in Wings Data Catalog
      • removeElementsForProductType
    • XMLStructFactory Modifications
      • getProductTypeMapXmlDocument - fixed bug so it returns types that have no defined elements but have parents from which it can inherit elements
    • Validation Layer Additions
      • addParentForProductType - invocation from API function above
      • removeParentForProductType - invocation from API function above
  • Workflow Manager Additions
    • API Additions
      • addTask - add a task to the repository (not currently used)
      • removeTask
      • executeWorkflow - similar to executeDynamicWorkflow, but takes as input a workflow object
    • WorkflowRepository Additions
      • removeTask - invocation from API function above

Wings Task Project

  • WingsTask – newly defined
    • Subclass of WorkflowTaskInstance
      • run Function
      • Get Input/Output/Script Path/Arguments from Task Configuration Properties
      • Fetch Inputs from File Manager
      • Run the Wings Component Script with appropriate arguments
      • Move Outputs to specified data directory
      • Create a Task log for monitoring purposes
  • WingsWorkflow – newly defined, combines workflow & component adapters
    • Helper class to create and run an OODT Workflow from a Wings execution-ready workflow
    • runDAXWorkflow Function
      • Parse an execution-ready workflow. In this case a DAX (Directed Acyclic graph Xml)
      • Create WingsTasks and add Configuration to specify Script Path/Input/Output/Arguments.
      • Create an OODT Workflow object and add WingsTasks to it
      • Ask Workflow Manager to run the OODT Workflow object

Wings Portal OODT Adapters (PHP)

  • Use PHP/Java Bridge to make Java Client calls from PHP
  • Data Adapter
    • SyncFromDC – bootstrapping File Manager from Wings Data Catalog
      • Sync Data Catalog (DC) with OODT File Manager
      • For Data Types, ask File Manager to addProductType with appropriate Parent Type and ProductType Elements
      • For Data Files, ask File Manager to addProduct and ingestProduct with appropriate References and Product Type
    • Map Wings Data Catalog interface editing functions to File Manager
  • Workflow/Component Adapter
    • Encapsulated within the WingsWorkflow Class in the WingsTask Project
  • Workflow Runner/Monitor
    • runOODTRequest.php
      • Use Wings Core to Plan and create Executable Workflow (DAX)
      • Call WingsWorkflow.runDAXWorkflow
      • Monitor Log Files for tracking workflow progress
  • No labels