Michael Chen | Content Strategist | March 28, 2024
Service-oriented architecture (SOA) is a software design approach that focuses on building functional, scalable software systems from individual components, called services. Services can interact with one another to perform tasks, such as allowing someone to sign in once and access a variety of business applications. In SOA, the emphasis is on modularity, reusability, and interoperability—when businesses break complex applications down into smaller, more manageable building blocks, the result is greater flexibility and scalability.
Services aren’t hard-coded into applications. Instead, services are a published to a registry, and when an application wants to use a service, it asks the registry to find the latest version. In this way, services can be easily changed or updated by people without detailed knowledge of the application. An SOA approach makes it easier to adapt to changing business needs and to integrate systems that provide related functionality.
With SOA, individual services are loosely coupled and can communicate and transmit data as needed. For example, taking an SOA approach to developing cloud software creates benefits, including:
Examples of service-oriented architectures include:
A service-oriented architecture (SOA) is a design paradigm that creates or supplements applications with self-contained, reusable building blocks—services—that provide specific functions and can be invoked over a network. Each service has a defined scope and can be accessed by other components or services within the architecture to enhance the overall functionality and performance of the system.
Examples of services in a service-oriented architecture include a payment processing service, a customer management service, or a product recommendation service that can be embedded in an ecommerce site. Other services can be far simpler, like one that provides the current time in a city on the other side of the globe. As an example of a powerful benefit of using SOA, switching payment processors can be done without altering applications that need to use the service.
SOA makes for a modular and flexible software infrastructure, where individual services can be developed, tested, and deployed independently. Two key benefits are ease of maintenance and scalability.
SOA works by loosely coupling services within the framework of an application. Each service works as a module capable of delivering the input/output requested. The application doesn’t need to know the version of the service it’s using. Instead, it checks a registry and finds the most current service offering the functionality needed. Consider the following workflow of a retailer’s website built with an SOA model.
SOA speeds development of this sort of site by allowing integration of services in an off-the-shelf manner. In this example, the retailer is not only spared the burden of developing each of those modules individually but it’s also freed from needing to track service updates. IT can simply use vetted services with proven functionality, security, and availability.
The key to SOA development is to think modularly and understand where opportunities exist for service integration. Applications developed in the cloud can easily take advantage of huge arrays of SOA-style services implemented as web services.
A modular and flexible SOA infrastructure delivers major benefits for companies embracing cloud. Here are other top trends.
What is a service-oriented architecture example?
A consumer example of service-oriented architecture is an app for runners. Rather than build custom tools for distance tracking and maps, the app can integrate services for the phone’s GPS device and an existing map service, such as Google Maps. It can also pull local weather from the National Weather Service. It’s the app’s job to present data from these services seamlessly for the benefit of the runner.
How is SOA different from microservices?
SOA and microservices have a similar goal—to provide applications with functionality through network-based function calls. However, SOA considers use on an expansive, and usually higher, level. Microservices consider use on an application level and provide service for one extremely specialized task to repeat as needed. For example, an authentication plugin for secure login would be considered part of SOA; however, a repeatable service that encrypts the password is a microservice. Microservices may be called within an SOA service or integrated in the larger project. In this example, the authentication service will use the encryption microservice in getting its job done. Scope is the main difference between the two.
What are the main characteristics of a service-oriented architecture?
The main characteristics of service-oriented architecture include:
Where is service-oriented architecture used?
A service-oriented architecture can be used for nearly any application as long as standalone services exist to fulfill the requirements of the system. Because of the expansive services development ecosystem, most software creators can find the service to fill a need—even the most custom project will still be able to use an independent service for something like identity authentication or pulling map data.
注:为免疑义,本网页所用以下术语专指以下含义: