Dimensions of SOA Complexity and Sophistication

SOA implementations can take many forms - from the trivially simple to the overwhelmingly complex. Listed below are some of the commonly found dimensions of SOA that span that breadth. The well-crafted SOA demonstrates the appropriate level of each dimension for a particular enterprise - more is not synonymous with better.
Complexity of Data: Simple services deal with simple data not only in the format and size - e.g. a few digits or a short piece of text - but in the lack of context required to process the data. More advanced services not only process larger aggregates of complex data types but perform augmentation, translation and adaptation in the service delivery. Service sophistication also increases as we move from primitive data types to data drawn from the business domain.
Process Sophistication: The simplest forms of services are functional primitives that are too small to accomplish a business purpose. The computations may be complex, or the transaction rates high, and they may be published over the web using contemporary technologies - but these are still simple services from a business perspective. More complex SOA aggregates these functional primitives into business-level processes. Even more sophisticated SOA is able to control participation of business processes across the enterprise.
Business Scope: Prototypical SOA is typically confined to a functional niche of the enterprise - either vertically or horizontally. Entry level SOA may have broader use but often still doesn't apply to the core, defining, processes of the enterprise. Pervasive SOA means not only that the services are widely and frequently used but that SOA contributes to the essential, domain-specific, operations of the enterprise.
Participant Management*: An extremely simple SOA would be a [nearly] permanent fixed set of services managed in a singular location for pre-defined participants. Complexity comes from the converse - increasingly frequent changes in the services available, wider distribution of services, more widely delegated management of service providers and consumers, and a highly volatile environment of service participants.
Timing: A simple SOA supports straightforward requests for services - the requestor calls, the requestor waits (though, perhaps, very briefly), the provider returns a result, and the requestor proceeds. More sophisticated SOA allows the requestor to proceed and provide the results later - perhaps with a variety of response over various timeframes (seconds, minutes, hours, days, etc.). Even more sophisticated SOA addresses the challenges (if they exist) of managing sets of independently submitted requests, prioritization, re-ordering and (in)completeness. This is not only done at the technical level but at the business process level.
* - There is also the related issue of service allocation or distribution. This necessarily reflects the physical architecture and IT management practices. While a defining characteristic of the SOA it isn't necessarily best considered as a dimension of the SOA.
 
- Brian

No comments: