Assembling "New" Service Based Solutions from Existing Services
One of SOA's selling points was the concept of reuse; however, most enterprises that have tried SOA have failed to find a lot of reuse. Often, SOA technology itself is blamed for the low reuse problem, but further analysis shows that lack of adherence to standards and best design practices may be to blame. Best practices such as using enterprise-worthy canonical models, enterprise-level metadata, creation of utility services, and adoption of rules-processing engines enable an enterprise to reuse previously deployed service assets and business components when building new business solutions. The hidden benefit is the standardization of information flowwhich in turn leads to predictability of information usage and a reduction in the overall operations and maintenance cost.
Business Scenario or Use Case
The example chosen to demonstrate some of the key principles is that of a rich content collaboration service that may be supporting the business needs of an extended enterprise. In this scenario, the rich content collaboration service is shown to be servicing the business need of sharing rich content across multiple lines of business. Needs of diverse user communities with the content requests such as searches, retrievals and the specialized user community workflows can be all be realized provided the disciplined use of the right canonical models, appropriate design patterns, appropriate metadata and reusable utility services are leveraged.
The whitepaper walks the reader through the runtime interactions between the various components that allow the content management service to be provisioned to any end-user community needs. A key assumption here is that the runtime behavior can depend on the usage of enterprise canonical models, the availability of the right metadata taxonomy on the content and the availability of appropriate generic exception handling work flows all of which are defined at design time. Mapping of information that appears on the canonical models occurs at runtime provided the execution flows at have access to the following metadata mapping elements at design time.
At a high level, the interactions described here depend on the keyword/metadata associations at design time that can be used to dynamically wire the execution path at runtime. In other words, metadata that appears on the canonical request model (defines the user intent) can be used to associate with metadata tags that are linked with the content at design time (i.e. at the time the content is persisted to the content repository). In addition, the metadata that appears on the canonical response is used to associate the workflow service metadata so that the appropriate workflow rules and user navigation flows are executed to handle error or exception scenarios. This same design time meta-tag association with other implementation constructs such as XPath/XQuery, SQL Where Clauses or data access APIs etc. is leveraged to make the runtime wiring of new content searches dynamic without sacrificing execution efficiencies. The key is that as long as the canonical model keywords can be associated with the implementation construct metadata all components of the Content Collaboration service can satisfy a consumer request.
This whitepaper discusses the following high-level constructs:
- Content-tagging keywords
- Canonical Request/Response models (Standardized XML backed by XML Schemas)
- Content Management Repository
- Metadata Repository
- Rules engine
- Workflow engine
- Generic Data Access Objects
- Authentication and Authorization Service
- XML filtering functions (such as XPath/XQuery or XSL functions)
- XML and XPath/XQuery Processing appliance or engine
It must be noted that web services technologies such as Service Component Architecture (SCA), Web Service Composition Application Framework (WS-CAF), WS-Notification, and WS-Addressing can be leveraged to enable an enterprise to perform service composition and orchestrations. In addition, the interactions between the service consumer and the Content Collaboration service can be mediated via the Enterprise Service Bus (ESB). However, these cannot replace the need for an enterprise to invest in the above mentioned architecture tenets as these SOA technologies are only enablers of good architectural principles but do not by themselves enforce architectural best practices.