Describe pattern of interaction between actors
|Actors||Protocol Specification Developer|
|References||List of Repositories; Scribble
CIAD COI OV Conversation Management
UC.R1.10 Define Interaction
|Is Used By|
|Is Extended By|
|In Acceptance Scenarios||None|
|Technical Notes||Interaction patterns are the blueprints for service conversations; they are specified electronically. Observers can (eventually) monitor conversations for compliance with an interaction pattern.|
|Primary Service||Federated Facility Services (Virtual Organization) Part 1|
|UC Status||Mapped + Ready|
This information summarizes the Use Case functionality.
The interaction patterns are the message sequences and formats between distributed (service) processes and other processes. Define an interaction pattern, using an Interaction Pattern Specification Language, by registering it; specifying its commands, states, conditions, and roles; validating it; and putting it into a repository.
- Interaction pattern specification language exists and is sufficient for the Interaction Patterns to be specified in Release 2.
System developer has identified a service requiring communication with other service(s) in the system, and wants to characterize those communications.
- Protocol Specification Developer names, registers, and characterizes interaction pattern.
- Interaction pattern can be registered before fully specified; in this case the specification is empty initially and incrementally enhanced (thereby creating new versions of the pattern)
- Interaction pattern can be registered once fully specified; this step would be partly invisible.
- Protocol Specification Developer creates interaction pattern definition using interaction pattern specification language.
- Define set of commands (aka operations, verbs, performatives). Each message in interaction pattern conveys one of the commands with additional context (aka arguments).
- Define states in which commands can be sent or received.
- Define conditions which may generate/anticipate more messages (an interaction pattern).
- Define roles for interacting participants in a pattern; specific participant processes assume such roles, when a pattern is instantiated into a conversation
- Command set may be partitioned into subsets used by complementary roles in a communication.
- <3> Protocol Developer registers latest version of interaction pattern definition as new version whenever changes are made.
- <3> When believed ready for use, interaction pattern definition is validated by automated processes.
- This can be as simple as successfully parsing the interaction pattern specification language.
- Source code to perform standard interface or monitoring tasks in (arbitrary) programming languages are implemented manually to meet the interaction pattern definition.
- A System Process Programmer associates processes to the interaction pattern through the interaction pattern repository.
- <1> Process monitoring interceptors analyze each message in a conversation communicated using this interaction pattern, comparing observed interactions to the interaction pattern definition.
Interaction pattern has been defined and associated with a service.
These comments provide additional context (usually quite technical) for editors of the use case.
Interaction Patterns are invariant even as the operations of the participants may vary. The definition of the interaction pattern can be updated only by creating a new interaction pattern that effectively replaces the previous.
The Interaction Patterns are applied at the API level only. They enable automatic negotiation, validation, and governance.
Although Release 2 implements interactions manually, in future releases source code may be produced automatically for many CI tasks.