SOA Patterns > Composition Implementation Patterns > Agnostic Sub-Controller
Agnostic Sub-Controller (Erl)
How can agnostic, cross-entity composition logic be separated, reused, and governed independently?
Problem
Service compositions are generally configured specific to a parent task, inhibiting reuse potential that may exist within a subset of the composition logic.
Solution
Reusable, cross-entity composition logic is abstracted or made accessible via an agnostic sub-controller capability, allowing that subset of the parent composition logic to be recomposed independently.
Application
A new agnostic service is created or a task service is appended with an agnostic sub-controller capability.
Impacts
The addition of a cross-entity, agnostic service can increase the size and complexity of compositions and the abstraction of agnostic cross-entity logic can violate modeling and design standards established by Service Layers.
Principles
Architecture
Composition, Service
A traditional, single-purpose composition is often configured in a two-tier hierarchy, with all of the composition logic residing in the parent task service. Alternatively, the composition can be structured into additional tiers so that the composition is comprised of a parent controller service and one or more nested compositions represented by sub-controller services. These nested compositions may be necessary to carry out the parent task, but individually they can also provide logic that can be used independently to automate a smaller task, or they may have logic that can be used to automate other larger tasks. Either way, they can be structured to represent and abstract agnostic logic for reuse purposes.
Related Patterns in This Catalog
Agnostic Context, Contract Centralization, Entity Abstraction, Logic Centralization, Metadata Centralization, Process Abstraction, Process Centralization, Service Façade, Utility Abstraction
Related Service-Oriented Computing Goals