Composite Applications

A composite application is a software program that is built out of a number of existing software functions.  Though it is possible to construct a composite application from virtually any type of coded object, the current definition typically implies the use of Enterprise Services or equivalent Web sources, such as feeds or widgets. 

By drawing on software components that have already been developed and tested, the composite application can be put together quickly and inexpensively.  This allows companies to stay ahead of their competitors by introducing new business models and processes more quickly while simultaneously reducing expenses. 

To create a composite application that can withstand the rigors of enterprise deployment, it is necessary to mitigate a number of risks that can arise with the Enterprise Services that provide the underlying functionality.  One big risk is that the composite application will simply be missing certain components and not work at all until they are ready.  The inherent challenging stems from the need to coordinate the governance of those services as they migrate from planning through development and finally, operation.  Each activity is typically performed by different people in different areas of operation, with potentially little or no awareness of one another. For example, in development, there is the risk of incompatibility between services and the composite applications that consume them resulting from misaligned data models or message formats.

A planning governance solution will drive demand for composite applications by helping you understand your enterprise goals and drive alignment between your business strategy and your IT investments.  It will help you plan and prioritize enterprise service development to ensure that you have the services you need for each composite application before you try to deliver the application itself.

Development governance ensures that the enterprise services themselves are built correctly (see information, application, and integration services).  More importantly for composite applications, development governance helps you manage the set of applications that intend to use, and are using your enterprise services, providing relationship mapping and change impact management.  The development governance solution will also be able to provide in-depth reporting on the level of asset and service reuse enabled achieved by your composite applications.

Composite applications leverage operational governance for root-cause analysis. This capability helps with the challenge of identifying and managing application problems in a highly distributed environment.  The operational governance solution should also ensure that infrastructure concerns (e.g. security, performance, reliability, message exchange patterns, and so forth), are managed separately from the application logic.  Essentially, the composite application should focus on consuming appropriate business services, leaving infrastructure concerns such as single-sign-on to the operational governance solution.

A unified governance solution provides consistent, uniform policy definition, validation, implementation and enforcement throughout the plan-build-run stages of the enterprise service lifecycle.  For example, policy governance for composite application will allow architects to define SLA and security requirements for their application, and then ensure that all services they leverage comply with these policies.

SOA Software’s product suite manages SOA Governance throughout the plan-build-run service lifecycle, anchoring the process with strong policy governance. In planning, SOA Software’s Portfolio Manager allows planning stakeholders to develop an SOA roadmap, compare it to existing and planned services, and assign priority to selected services.  In development, SOA Software’s Repository Manager makes sure that enterprise services confirm to appropriate standards and guidelines, providing powerful change management capabilities.  It also governs the consumption process, facilitating controlled and measurable asset reuse. When services are deployed, SOA Software’s Service Manager implements and enforces defined policies for security, performance, and reliability to ensure that enterprise services function as intended.  SOA Software’s Policy Manager works in concert with these products to keep policy definitions, and associated metadata, consistent as the service matures from planning through development and then into operation.