Service-oriented architecture (SOA)

Service-oriented architecture (SOA) is a type of computer software design. It allows computer developers to create programs that access an existing service, rather than designing a version of that service for each application. This saves developing firms money by allowing them to avoid hiring programmers to code redundant software. It also saves developers time by allowing them to integrate pre-existing services instead of designing those services from scratch.

In many cases, developers working on a SOA are unfamiliar with how a specific service functions. They may not have been given access to the service’s programming, and may simply have been given the tools to allow their application to access the necessary, pre-existing services.

In most cases, the services utilized in a SOA must be able to communicate with one another. To accomplish this, programmers often utilize Simple Object Access Protocol (SOAP). SOAP allows services and applications to communicate with other programs while still remaining independent from one another.

rssalemscience-20200812-33-185263.jpgrssalemscience-20200812-33-185264.jpg

Background

Applications are a specialized type of computer software commonly used on both desktop computers and mobile devices, such as tablets and smartphones. They allow users to quickly and easily perform specific tasks. Most modern devices are sold with applications already installed, such as internet browsers, text messaging software, and image editors. Though applications typically utilize a device’s operating system, they are considered a different type of software.

Many computer users install additional types of software on their devices as a means of customizing the devices to better fit their needs. For example, two people with the same device might download and install different sets of applications. One person might install a calculator, while the other might install a spreadsheet editor. These applications allow devices to function in new ways.

Applications are written by software developers using specialized software languages. Software languages allow developers to tell computers to act in specific ways. Some developers write proprietary software, which may also be known as privately owned software. Propriety software is owned through copyright law, and may not be modified by most computer users. For example, the popular word processing software Microsoft Word is proprietary. While the average computer owner might download and use the program, they may not modify how it functions. Other software, commonly called “open-source software,” is publicly owned. This means that the average computer user can examine the code that makes the application function, modifying it in whatever manner they desire.

Applications are often designed to run on a particular platform. Applications designed to function on one platform may not run on other devices. For example, applications written to work on a desktop PC may not function on a smartphone. Applications may also be sorted by the method in which they were designed. Vertical applications are designed to serve a narrow purpose, such as a billing system in a hospital or office. Horizontal applications are designed to serve a wider range of purposes, such as web browsing.

Overview

Service-oriented architecture (SOA) is a specific method of software design that allows an application to use a network to provide services to other applications. When utilizing SOA to design an application, software developers typically refer to a specific function as a unit or service. This service is then provided through the network to an application instead of being directly written by the software developers. When applications are written in such a manner, the same unit or service can be provided to multiple applications with only minor adjustments. If written in a traditional manner, each application might require that coding necessary to perform the function be written from scratch.

For this reason, SOA practices reduce the cost of software development, which firms may pass on to the consumer. Instead of paying for the development of numerous individual programs, many of which will use similar code to perform the same functions, the software development firm can instead build applications around a pre-written set of functions.

For example, a business might require a service-scheduling application, an order-processing application, and an account-management application to maximize their profits. The service-scheduling applications requires the ability to check customer status and determine product available. The order-processing application requires the ability to check customer status, determine product availability, verify customer credit, and check order status. The account-management application requires the ability to calculate shipping charges, check order status, and verify customer credit. Instead of paying for each program to be developed separately, despite their numerous redundant features, the business may choose to have features developed individually. They may then utilize SOA to design applications that access these functions independently, and use them to communicate with one another.

Additionally, the implementation of SOA creates a standard form of communication used by software throughout a suite or company. It can allow the numerous types of software utilized by a company to communicate while remaining independent of one another. This allows them to share important information without interfering with computer security systems, such as firewalls.

In order for SOA to function properly, the many services utilized by applications within a network must interact with one another. They typically communicate through Simple Object Access Protocol (SOAP) or Representational State Transfer (ReST). When connected by such a network, services within an SOA are considered “loosely coupled.” They are able to communicate, but are coded as separate services. In many cases, developers working within a SOA may utilize a feature without understanding how such a feature has been implemented. Instead, they have simply been provided with the means to access a pre-existing feature.

Bibliography

Giao, Joao, et al. "A Framework for Service-Oriented Architecture (SOA)-Based on IoT Application Development." Processes, 29 July 2022, doi.org/10.3390/pr10091782. Accessed 12 Nov. 2024.

Hughes, Adam. “The Ins and Outs of a Service-Oriented Architecture (SOA).” Cleo, 2020, www.cleo.com/blog/knowledge-base-soa-service-oriented-architecture. Accessed 9 Sept. 2020.

Rouse, Margaret. “Application.” SearchSoftwareQuality, searchsoftwarequality.techtarget.com/definition/application. Accessed 9 Sept. 2020.

“Service-Oriented Architecture.” GeeksforGeeks, 2018, www.geeksforgeeks.org/service-oriented-architecture/. Accessed 9 Sept. 2020.

“SOA (Service Oriented Architecture) Principles.” Guru99, 2020, www.guru99.com/soa-principles.html. Accessed 9 Sept. 2020.

Tyson, Matthew. “What Is Service-Oriented Architecture?” Infoworld, 2020, www.infoworld.com/article/2071889/what-is-service-oriented-architecture.html. Accessed 9 Sept. 2020.

“What Are Applications?” Indeed.com, 2020, www.indeed.com/career-advice/finding-a-job/what-are-applications. Accessed 9 Sept. 2020.

“What Is Service-Oriented Architecture?” Medium.com, medium.com/@SoftwareDevelopmentCommunity/what-is-service-oriented-architecture-fa894d11a7ec#. Accessed 9 Sept. 2020.

“What Is Service-Oriented Architecture?” Visual Paradigm, www.visual-paradigm.com/guide/development/what-is-service-oriented-architecture. Accessed 9 Sept. 2020.