Today's SOA Challenges
Today's enterprises are quickly adopting Service Oriented Architecture (SOA) as a strategy for delivering business applications that can be developed and extended quickly.
SOA is an approach to building business systems in which IT organizations deploy computing capabilities as coarse-grained, reusable blocks of functionality known as services. Typically, a service models a single task or repeatable process within the enterprise. Business analysts, enterprise architects, and developers assemble services into higher level constructs such as business processes, composite applications, and complex services.
IT organizations usually host services on various back-end systems within (or possibly outside) the enterprise and expose them to consumers in loosely coupled fashion through an enterprise service bus (ESB) or other mediator. Deploying services into a mediation layer provides the services with location transparency and implementation independence, allowing an IT organization to interchange and evolve back-end service implementations without disrupting the consumer applications that use them.
Despite its advantages, SOA requires a development and governance infrastructure that is radically different from traditional computing applications. To design, develop, and deploy SOA-based applications, architects and administrators must consider how to:
Manage a computing environment comprised of hundreds (or potentially thousands) of services and supporting artifacts.
Ensure that the many computing artifacts (for example., services, schemas, business processes) supplied by autonomous development organizations meet enterprise policies and standards.
Define processes to ensure that services and other artifacts are accepted into the SOA in a controlled and well defined way.
Provide a development environment in which developers and business analysts are encouraged to assemble applications from existing assets in the SOA rather than building them from scratch.
Evaluate the consequences of a proposed change on a complex array of interdependent artifacts.
Provide a development environment that accommodates the unique processes and requirements of individual development organizations.