"Orchestration describes how web services interact with each other at the message level, including the business logic and execution order of the interactions" [Chris Peltz 2003]. These interactions may span applications and/or organizations, and result in a longlived, transactional, multi-step process model. For example, in the eLandings web services interface, the simplest case of reporting a landing requires a minimum of the following web service method invocations:
- ProcessorReportManagementService.reserveLandingReportNumbers
- ProcessorReportManagementService.reserveFishTicketNumbers
- ProcessorReportManagementService.submitInitialLandingReport
- ProcessorReportManagementService.submitIfqReports (if IFQ reports are included in this landing)
- ProcessorReportManagementService.submitFinalLandingReport
In practice few transactions are this simple, and there is more involved than simply getting the steps in sequence. For example when submitting an update to an existing report it is necessary to distinguish between updates to existing lines versus insertion of new lines, etc.
In order to support integration with third party systems these details of message sequences and conventions must be explicitly documented and there should be test plans specified for a number of common transactional processes, including:
- Reset of data to a known base state
- Request for landing report and fish ticket numbers
- Submission of a specified "test" landing report
- Update of a previously submitted landing report with specific updates, inserts and deletions
- additional as-yet-unspecified steps
After execution of any of these specific steps, it must be possible to compare the resulting state to the expected state, to provide feedback and identify any discrepancies.