Today’s application development landscape is paired with many buzzword methodologies and practices: Agile, DevOps, and Microservices, to name a few. Today, I aim to help you gain a foundational understanding of the Service-Oriented Architecture (SOA) methodology, its benefits, and whether it’s a good fit for your organization or not.
According to CIO staff members at CIO.com, SOA is an overarching [software] development strategy based on the concept of building software assets using the service-oriented programming (SOP) methodology [1]. SOP is based on the premise of creating blocks of code (services) that are reusable and can be integrated with many platforms throughout an organization.As an IT leader within a mid-sized financial institution, I can relate to the example provided by CIO.com. Imagine a financial institution and its services, such as various loans, investments, insurance sales, etc. Each one of these services has its own information system used to drive its business processes. Each information system would likely need the ability to perform a credit check on a potential customer. In many cases, each system has its own mechanism for performing a credit check. CIO.com’s example of SOA is creating a singular, reusable service called “get credit rating” that can be integrated with all the information systems that need to perform a credit check, eliminating the need to “reinvent the wheel”.
Organizations using SOA will realize many tactical and strategic benefits. According to Gartner Inc., creating reusable software components, like the “get credit rating” service mentioned above, can lead to productivity increases and at least a 30% reduction in new development implementation costs [1]. In addition to reusable software and productivity increases, CIO.com says that increased agility is another tactical advantage of SOA. ProFlowers.com is a prime example of increased agility. The organization only has one line of business (selling flowers), so reusable code doesn’t offer an enormous benefit; however, ProFlowers.com found other benefits of implementing the SOA methodology. By breaking apart their monolithic system, they were able to design and build a system comprised of individual software components. This enabled ProFlowers.com to scale its system during peak transaction volume times such as Valentine’s Day and allows them to upgrade individual processes without tearing apart the entire system.
In addition to its tactical benefits, the SOA methodology also has strategic benefits. SOA better aligns the various businesses within an organization by illustrating the big picture of all business processes and flows within the organization. In addition, SOA helps unify the lines of business and IT regarding the importance of Enterprise Architecture (EA). To be candid, an EA deep dive isn’t for everyone, especially since the return on investment (ROI) is often opaque to the business. SOA provides tangible value to the company through its tactical benefits: reusable services, improved productivity, and improved agility.
SOA introduces several benefits to an organization, but is SOA the right methodology for your organization? The answer is “it depends.” CIO.com says SOA may be a good fit if your organization is large and complex, meaning it has “more than two primary systems that require some level of integration” [1]. Companies that have enjoyed the most success with their SOA implementation journeys are big companies with large IT budgets whose business is technology-based, such as telecom and financial services [1].
Adopting the SOA methodology often requires a heavy upfront investment of time and money. It will require the support of senior executives to pave the way for IT to dive into the core business processes of the organization [1]. Organizations need to adopt SOA across the entire organization and establish centralized architecture design, software development, and governance practices to ensure uniformity. Organizations will not realize maximum benefit if SOA is adopted in silos. Services built by siloed teams may have little potential to be reused across the organization.
In summary, the SOA methodology is primarily based on creating small blocks of code to form reusable services across an organization. The methodology offers several benefits but is often associated with high upfront implementation costs. Small or decentralized companies may find it challenging to implement the SOA methodology.
References
[1] CIO Staff, “SOA definitions and solutions,” 19 March 2007. [Online]. Available: https://www.cio.com/article/272203/service-oriented-architecture-soa-definition-and-solutions.html. [Accessed 11 September 2022].
[2] J. Rehman, “Advantages and disadvantages of service oriented architecture,” IT Release, [Online]. Available: https://www.itrelease.com/2018/10/advantages-and-disadvantages-of-service-oriented-architecture-soa/. [Accessed 11 September 2022].