BBN-DASADA "Service and Contract" Technology

for Integrating Distributed Components Using Distributed Workflow and a Scalable Agent Framework

Contact: Nathan Combs, BBN.

Last updated 3/01/2002

A Toy Example...

Consider where "communities of functionality related to XML transformation" are distributed among different nodes. Consider a simple example where two agents are configured with 3 simple "Service Provider" Plugins. The services provided:

  • DISPLAY XML Document Object Model [DOM] as a Graph
  • convert XML into a DOM
  • "Source" the POSTED XML data

For this scenario, consider a user POSTs ADML XML (via HTML FORM)into the AAI agent. This XML is posted with tasking order "DISPLAY THIS XML". The first Service Provider PlugIn says "sure, i can display this, but i need a DOM". Then the next Service Provider PlugIn says "hey, i can create a DOM but need a buffered data source with the final Service Provider PlugIn then chiming in "You need a buffered data source? I can create one from your POST byte stream!"

Services are assembled via a "bid" process - services requested are matched to Service Providers and accepted. Acceptance is informal: it isn't until the Assessor PlugIn steps in and says. Good, we have a complete set of tentative agreements so that Service Providers are "Contracted" and invocation can commence. The Assessor "Contracts" the completed "Service Chain".

Once the Assessor has chosen and contracted a "Service Chain". The Executor steps in and invokes the services. IE. First the data source is converted to DOM, then DOM is handed to DOM Grapher, then Graph pops up...

Services invocation is propagated "bottom-up" a tree of service dependencies. Because the S+C workflow defines potentially a distributed DAG, invocation order among dependencies can be guaranteed. However, the invocation coupling between services is said to be "loose" as synchronization of service "processes" is not guaranteed. The AAI Agent infrastructure and the S+C workflow deliver a loosely coordinated system for discovering", "recruiting" ("negotiating"), "contracting", and "assembling" services across distributed nodes.


Simple Illustration with XML transform tools

The Tutorial Example...

The following example is taken from the DASADA AQE tutorial and features dynamic composition of services (workflow) to translate "abstract queries" into search-engine queries and perform related processing (parsing, aggregation of results) as well as performance services (caching, handling ping-timing constraints) and service load balancing. The workflow adapts to failures in service chains on the fly. Represented here are 2 levels of adaptability: low-level service instance load-balancing and high-level (application)retries.


Dynamically recruit distributed services.


Building ad hoc distributed "service chains" to answer user requests.


Distributed workflow as an "information network" across distributed nodes.




© BBNT Solutions LLC