“Services contain and express agnostic logic and can be
positioned as reusable enterprise resources.”
Reuse is strongly emphasized within service-orientation; so much so, that it becomes a core part of typical service analysis and design processes, and also forms the basis for key service models. The advent of mature, non-proprietary service technology has provided the opportunity to maximize the reuse potential of multi-purpose logic on an unprecedented level.
The principle of Service Reusability emphasizes the positioning of services as enterprise resources with agnostic functional contexts. Numerous design considerations are raised to ensure that individual service capabilities are appropriately defined in relation to an agnostic service context, and to guarantee that they can facilitate the necessary reuse requirements.
Figure 1 – When designing services for reuse, traditional application design approaches are married with techniques from the well established field of commercial product design.
Variations and levels of reuse and associated agnostic service models are covered in Chapter 9: Service Reusability (Commercial and Agnostic Design), along with a study of how commercial product design approaches have influenced this principle.
Related Service-Orientation Computing Goals
Related SOA Patterns
Agnostic Capability, Agnostic Context, Agnostic Sub-Controller, Capability Composition, Capability Recomposition, Composition Autonomy, Concurrent Contracts, Cross-Domain Utility Layer, Data Model Transformation, Entity Abstraction, Intermediate Routing, Logic Centralization, Multi-Channel Endpoint, Rules Centralization, Service Agent, Service Layers, Utility Abstraction