- How Things Got Off Track
- SOA to the Rescue?
- What the Heck Is SOA, and Why Should I Care?
- SOA Meets Cloud Computing
- Defining Cloud Computing
- The Components of Cloud Computing
- The Dream Team of Cloud Computing and SOA
- What SOA Can Learn from Cloud Computing
- What Cloud Computing Can Learn from SOA
- Making the Leap
- Being Positively Disruptive
What the Heck Is SOA, and Why Should I Care?
First, let's put forth my definition of SOA so we have a foundation to work from.
An SOA is a strategic framework of technology that allows all interested systems, inside and outside of an organization, to expose and access well-defined services, and information bound to those services, that may be further abstracted to process layers and composite applications for solution development. In essence, SOA adds the agility aspect to architecture, allowing us to deal with system changes using a configuration layer rather than constantly having to redevelop these systems.
The primary benefits of an SOA include
- Reuse of services and behaviors, or the ability to leverage application behavior from application to application without a significant amount of recoding or integration. In other words, SOA enables use of the same application functionality (behavior) over and over again without having to port the code, leveraging remote application behavior as if it existed locally.
- Agility, or the ability to change business processes on top of existing services and information flows, quickly and as needed, to support a changing business.
- Monitoring, or the ability to monitor points of information and points of service, in real time, to determine the well-being of an enterprise or trading community. Moreover, SOA provides the ability to change and adjust processes for the benefit of the organization in real time.
- Extended reach, or the ability to expose certain enterprise processes to other external entities for the purpose of interenterprise collaboration or shared processes. SOA can be used as a key technology-enabling approach to leverage cloud computing (described later in this chapter).
The notion of an SOA is not at all new. Attempts to share common processes, information, and services have a long history, one that began more than 10 years ago with multitier client/server—a set of shared services on a common server that provided the enterprise with the infrastructure for reuse and now provides for integration—and the distributed object movement. Reusability is a valuable objective. In the case of SOA, it is reuse of services and information bound to those services (see Figure 1.1). A common set of services among enterprise applications invites reusability and significantly reduces the need for redundant application services.
Figure 1.1 SOA metamodel provides a good way to see how SOA leverages a process/orchestration layer to change major business processes without driving changes to all systems. This is a loosely coupled architecture.
What is unique about SOA is that it is as much a strategy as a set of technologies, and it is really more of a journey than a destination.