SOA Design Patterns and Design Granularity
Design granularity, as it pertains to service-orientation, is itself something that you should be familiar with prior to reading the upcoming chapters. Specifically, it is suggested that you look up the following terms at SOA Glossary because several of the upcoming pattern descriptions reference these terms with no further explanation:
- Service Granularity - The overall quantity of functionality encapsulated by a service determines the service granularity. A service's granularity is determined by its functional context, which is usually established during the service modeling phase.
- Capability Granularity - The quantity of functionality encapsulated by a specific service capability determines the level of corresponding capability granularity.
- Data Granularity - The quantity of data exchanged by a specific service capability determines the level of its data granularity.
- Constraint Granularity - The extent of validation logic detail defined for a given service capability within the service contract determines the capability's level of constraint granularity. Generally, the more specific the constraints and the larger the amount of constraints, the more fine-grained the capability's constraint granularity is.
The effect of design patterns on service-related design granularity can vary. For example, when applying multiple patterns (or compound patterns) to the same service, the end-levels of design granularity may be distinctly defined by that combination of patterns (and they may fluctuate between the application of one pattern to another).