Skip to content

Trooper Orchestration Profile

regunathb edited this page Dec 20, 2012 · 13 revisions

The Trooper Orchestration Profile enables chaining of a number of execution stages in a manner reminiscent of workflows. Each stage is implemented as a Trooper Service (see Writing-Services-in-Trooper) and this in turn means any Trooper service can participate in a workflow, with transformation and routing implemented outside the service.

Orchestration in Trooper is defined in a XML based DSL using Mule (http://www.mulesoft.org/) as the underlying technology. Mule is embedded into the Trooper runtime using Spring DI as a light-weight object broker. Mule is therefore not used as a conventional ESB, but rather as an implementation of the SEDA architecture pattern (http://en.wikipedia.org/wiki/Staged_event-driven_architecture) for distributed parallel processing.

Maven artifacts

GroupID/Org ArtifactID/Name Description
org.trpr serviceframework-seda The Service Orchestration Profile implementation. Includes the Trooper add-ons for this profile.

SEDA (Staged Event Driven Architecture)

A diagrammatic representation of the SEDA model used by Trooper is shown below:

SEDA model

Profile characteristics

The orchestration profile provides the following to its users:

  • Provision for modular development, testing and deployment of workflows and services
  • Life-cycle management of workflows, configuration refresh using administrative console(s)
  • Compile-and-run support for all orchestration profile features - does not require any packaging for deployment and testing thereby saving development time, providing for easier debugging (via standard break-points in IDEs)
  • Implementation of Convention-Over-Configuration practices to ease development, deployment

Trooper add-ons

  • Exception routing as JMX notifications - Trooper provides an Exception handling strategy implementation (org.trpr.platform.seda.impl.mule.exceptionhandling.ServiceExceptionStrategy) that forwards error details as JMX notifications.
  • RabbitMQ transport - Trooper provides a Mule 2.x interface compliant transport implementation for RabbitMQ 2.x. See RabbitMQ-Mule-Connector
  • Service response filtering router - To filter out error service responses in the orchestration flow. Externalizes chaining logic from services, thereby making it self-contained. See org.trpr.platform.seda.impl.mule.router.ErrorResponseFilteringRouter
  • Check-pointing in workflow - Long drawn orchestrations can span time, process and machine boundaries. Check-pointing intermediate state allows for recovery from intermediate failures in stage execution. Trooper provides check-pointing API and an AOP (Aspect oriented Programming) implementation where the check-pointing data and data store can be application specific (using the Trooper Persistence-Framework). See org.trpr.platform.seda.api.checkpointing.StageExecutionEvaluator and org.trpr.platform.seda.aop.SedaStageCheckpointingInterceptor

Implement and configure a workflow/orchestration

Testing a workflow/orchestration

Orchestration Examples

Service Chaining

Check-pointing