{"id":32642,"date":"2024-02-24T14:32:19","date_gmt":"2024-02-24T13:32:19","guid":{"rendered":"https:\/\/www.intellias.com\/?p=32642"},"modified":"2024-07-26T12:26:30","modified_gmt":"2024-07-26T10:26:30","slug":"service-oriented-architecture-soa-the-modern-merits","status":"publish","type":"blog","link":"https:\/\/intellias.com\/service-oriented-architecture-soa\/","title":{"rendered":"Service-Oriented Architecture (SOA): The Modern Merits"},"content":{"rendered":"
The service-oriented architecture (SOA) is a software architecture pattern that was all the rage in the early 2000s. Two decades later, SOA remains largely undervalued. Perhaps this is because it\u2019s often misunderstood and misinterpreted.<\/p>\n
At Intellias, we’ve extensively worked with SOAs and want to share our experience with this underrated architecture. After all, if it\u2019s suitable for a Fortune 500 company<\/a>, why shouldn\u2019t we highlight its specifics and unique use cases?<\/p>\n So, what exactly is a service-oriented architecture and why does it still have a place in companies such as Airbnb and Twitter?<\/p>\n The SOA architecture approach to software design enables the creation and use of reusable service components via service interfaces. See an example of an SOA architecture diagram below. Source: Infoworld<\/a><\/em><\/p>\n In 2009, Gartner placed SOA at the Peak of Inflated Expectations<\/a> alongside cloud computing, Web 2.0, Internet TV, and virtual worlds, highlighting its early widespread adoption. It was seen as a game-changing technology for the next five years.<\/p>\n Although SOA software lost its mainstream dominance to microservices, surveys in the 2020s show that it is still adopted by 35% of businesses<\/a>.<\/p>\n Think of your office building. Point-to-point integration is like having one elevator \u2014 if you pack in more than five people, the system is overloaded and no one travels anywhere. Instead, everyone crowds in the lobby and slowly goes up four or five at a time.<\/p>\n SOA was innovative in the sense that it allowed developers to build a more spacious lobby (enterprise service bus) with different elevators (communication protocols such as SOAP and later REST) to send people to their respective floors (services). See how monolithic architecture differs from SOA in the service-oriented architecture diagram below.<\/p>\n <\/p>\n In essence, SOA enabled access to different chunks of data and business logic encapsulated in various apps and made it possible to connect them to various services.<\/p>\n A service in SOA is a set of code plus the data integrations needed to run a certain business process.<\/strong><\/p>\n For example, a lending application<\/a> can include a risk engine service, a loan underwriting service, and a decision engine service.<\/p>\n You can also use SOA to reorganize supply chain architecture<\/a>, creating services for inventory management, order processing, and logistics coordination, leading to more flexible and efficient operations.<\/p>\n Service-oriented architectures have several important characteristics:<\/p>\n The main advantage of a service-oriented architecture is increased system interoperability<\/b>. Compared to a monolithic architecture, SOA enables a wider range of cross-system communication, which, in turn, leads to a higher degree of automation and productivity for end users.<\/p>\n From a technical perspective, the benefits of a service-oriented architecture are as follows:<\/p>\n How to approach legacy system modernization in finance<\/p>\n We’ve personally implemented SOA many times as part of our software engineering services. For example, we used it to overhaul a European bank’s system, transitioning from legacy infrastructure to a modern payment microservice architecture<\/a>.<\/p>\n Our SOA approach prioritized round-the-clock, instant payment processing, along with high scalability, availability, and resiliency. The architecture complies with the ISO 20022 standard, providing more detailed transaction information and eliminating payment delays due to compliance checks.<\/p>\n This SOA-based system now serves nearly 30,000 enterprise clients, 5 million mobile users, and 7,000 internal users. It processes 3 million transactions in 8 hours with 99.741% failure resistance.<\/p>\n SOA is often called the predecessor of the microservices architecture<\/a>. Indeed, as SOA does, a microservices architecture assumes the use of loosely coupled, reusable, scoped services that can be deployed independently.<\/p>\n However, microservices are lighter and have more granular context than SOA services. Also, microservices support a cloud-native architecture and are often adopted as part of cloud migrations<\/a>. SOA appeals more to enterprises who run operations on-premises or in hybrid environments.<\/p>\n <\/p>\n As you can understand, microservices are relatively small (hence the name) and are used for high-priority niche tasks, whereas SOA serves as a comprehensive solution, particularly in large organizations.<\/p>\n A deeper dive into the microservices architecture<\/p>\n An enterprise service bus (ESB)<\/b> is the main middleware component for enabling service-to-service communications. In short, an ESB acts as a \u201clobby\u201d where different people (services) can come to exchange information.<\/p>\n In contrast to microservices, SOA services talk to the bus rather than connect with one another directly.<\/b><\/p>\n For enterprises, ESB is an effective way to expose internal applications to their counterparts without building a point-to-point integration. Extra benefits of ESB include:<\/p>\n SOAP (Simple Object Access Protocol)<\/b> is one of two standard network protocols for inter-service communication. It primarily relies on XML to provide messaging services \u2014 a somewhat heavy way to structure messages. This makes SOAP rigid in terms of the messaging structure and not as common and effective as JSON these days.<\/p>\n SOA architecture and REST<\/b>. REST (Representational State Transfer) is a low-bandwidth protocol that works with an array of data formats (plain text, XML, HTML, and JSON). Primarily used by microservices, REST-based architectures provide speed and agility in communications.<\/p>\n The SOA architecture is compatible with RESTful APIs, though more complicated API strategies<\/a> are required than when using SOAP.<\/p>\n Learn how APIs can propel your business forward<\/p>\n <\/p>\n The prime time for SOA was in the early 2000s, when it was indeed revolutionary. At that time, SOA also caught some flack after several high-profile migration failures among enterprises who opted for vendor-specific SOA stacks.<\/p>\n In the 2020s, a service-oriented architecture still has its merits. But they have little to do with top-to-bottom migration scenarios driven by vendors. Enterprises and complex platforms see SOA as an intermediate step to wider digital transformation and cloud adoption.<\/p>\n The best part? You don\u2019t need to try to rip apart your legacy software and put something new atop it. Instead, you can gradually decouple service elements from the bottom up, as Airbnb did<\/a>.<\/p>\n The Airbnb platform used to have a monolithic architecture developed with Ruby on Rails. The dev team lovingly called it \u201cMonorail.\u201d However, this was a leftover from their MVP product development<\/a> days.<\/p>\n To split the architecture, Airbnb engineers phased the migration and compared Monorail functionality to that of new services. Then they\u2019d take 1% of the load to the new service-oriented architecture, compare the results, and keep switching loads. Eventually, they moved 100% of processes to SOA.<\/p>\nWhat is a service-oriented architecture?<\/h2>\n
\n<\/p>\nHow SOA works<\/h2>\n
Architectural principles of SOA<\/h3>\n
\n
Benefits of SOA<\/h2>\n
\n
Example of SOA architecture implementation<\/h2>\n
SOA vs microservices: What are the differences?<\/h2>\n
Check out the table below to see the key differences between SOA and microservices.<\/h4>\n
The main SOA communication protocols<\/h2>\n
\n
Is the service-oriented architecture modern enough?<\/h2>\n
\n\t\t\t\t