- Agility of the application - Simply by separating the functions from the process flow and "coding" them separately the application becomes more flexible. The reason for this is that simply by changing the process flow (reordering the functions) the application (the service) becomes, affectively, a new application. If the process flow engine is integrated with a rules engine and repository, and if the rules link directly to the organization's policies, then changing a policy or standard will also, affectively, create a new application (service). Since neither of these changes requires an additional or recoding, then time to respond to a challenge or opportunity is greatly reduced; making application much more agile (for the definition of Agility see the post "What is Agility?"
- Ability to insert new technology - Because a service is assembled from a set of objects or "small applications" - also called Service Components - into a Composite Application (which is the code for the service), one function (one Service Component) can be upgraded without touching the rest of the application. This greatly simplifies the ability to upgrade the application, also increasing its agility.
- Enables effective modeling of the process flow - Because the process flow is separate from the functions, the System Architect can model both the current and any proposed or candidate process flows to better determine the optimality of both the process and the enabling and supporting service (Composite Application). If this "(business) process modeling" is properly linked into the Service development and maintenance processes of an organization, it will greatly aid in optimizing the services even with unexpected challenges and opportunities.
- Enables good policy enforcement - If, as noted above, the process flow engine is linked with a rules engine and repository, then there is "an automatic" enforcement point each time the process flow engine evokes a new function. Additionally, when a rule changes, it is immediately reflected at the enforcement point in the process flow engine.
- Measurement to ensure that the SLA's are met - Finally, since all Services use the process flow engine, it is simple to measure the throughput of each Service Component (function). This enables good measurement of both the Business-SLA's and the OLAs, simpler root cause analysis when the SLA's are not met, and to feedback to the modeling of the process to help process optimization.
Tuesday, December 28, 2010
Assembling Services: A Paradigm Shift in Creating and Maintaining Applications
Technically, the key difference in Service Oriented Architecture (SOA), from other IT architectures is that it assembles the applications using the process flow as the guide. This requires separation of the functions from the process or work flow.
There are many advantages in splitting process flow from the functions. Among these are: