Trend Watch: Service Oriented Architecture and Web Services
This is the seventh post in a multi-part series with a focus on trends that are interesting and important, specifically in enterprise computing. In this post, I’ll continue my point-in-time analysis with a focus on the subject of integration, and a discussion on service oriented architecture (SOA) and web services like representational state transfer (REST) and simple object access protocol (SOAP).
SOA Is About Integration
Part of the evolution of systems and applications is the development and proposal of solutions by researchers, practitioners and suppliers in response to new problems. SOA is a way to approach the challenge of integrating application functions that run on different software platforms—including applications on the same platform.
A straightforward way to understand SOA is to look at a general description from a textbook. Here’s an outline of the elements of SOA:
Elements of SOA discussed in the book Enterprise SOA published by Prentice Hall in 2005.
1. Application Frontend
2. Service
2.1 Contract
2.2 Implementation
2.2.1 Business Logic
2.2.2 Data
2.3 Interface
3. Service Repository
4. Service Bus
This outline focuses on the application frontend, the service, the repository where it resides and the bus that allows business information to flow between disparate applications across multiple hardware and software platforms.
An architecture like SOA can operate independently of specific technologies and thus can be implemented using a wide range of approaches. These include:
- Web services based on web service definition language (WSDL) and SOAP
- REST that utilizes its own architectural style
- Implementations using robust message-oriented middleware like IBM MQ, providing a common messaging backbone across many different platforms
Takeaway: SOA is an architectural style; it’s a way of thinking that can be implemented using a variety of technologies like SOAP and REST utilizing message-oriented middleware.
Web Services
REST and SOAP are often discussed and used in regard to web services. Why? How are they the same and different?
REST is a significant way of working. It’s an architectural style that’s used with the World Wide Web by programmers for. Many web services are made public with the intent of being accessed or consumed in a RESTful fashion. SOAP is a different way to do the same thing—accessing web resources—to perform a function in support of an application.
SOAP is more likely to be preferred by financial and business applications. However, it’s not that simple; a financial company might prefer SOAP because it has a capability through WS-Atomic Transactions, which supports two-phase commit transactions. Two-phase commit is the accepted way to handle many types of financial updates because this feature enables databases to return to the pre-transaction state if some error condition occurs during update processing.
However, leading financial and business service leaders provide support for both REST and SOAP. When they are exposing your data to your programmers, they realize that developers will want to use REST (and not just SOAP).
Takeaway: SOA can be implemented in different ways. REST and SOAP are just two elements that can be used in a service-oriented implementation.
SOA, Web Technologies and Middleware
Here’s a summary of key ideas regarding SOA and the technologies used to deploy services. What five elements make up a service-oriented approach?
1. A set of services that a business wants to provide to their customers, partners or other areas of an organization
2. An architectural style that requires a service provider, mediation and service requestor with a service description
3. A set of architectural principles, patterns and criteria that address characteristics such as modularity, encapsulation, loose coupling, separation of concerns, reuse and composability
4. A programming model complete with standards, tools and technologies that supports web, REST or other kinds of services
5. A middleware solution optimized for service assembly, orchestration, monitoring and management
Next Post
Next week, I’ll continue this point-in-time analysis of trends with a focus on business intelligence (BI) and advanced analytics. Has BI entered a new era in extracting insights from data?