preloader
Virtual Elephant

Articles

Cloud Application Framework: Service-Oriented Architecture 

This article explores the concepts of Service-Oriented Architecture (SOA) and its relevance to the AWS and Azure Well-Architected Frameworks. The article provides an overview of the common layers and services in SOA, including the service, messaging, data, business process, and security layers, as well as popular tools and open source offerings for each layer. The article also discusses the ways in which the AWS and Azure Well-Architected Frameworks facilitate the adoption of SOA, including design principles, best practices, tools and services, and review processes.

Standards Based Application Frameworks

There are several industry standard application architectural styles that provide a set of guidelines and best practices for building distributed software systems that are modular, scalable, and resilient. They help organizations to develop and deploy software more quickly and efficiently by breaking down complex systems into smaller, independent components that can be developed, tested, and deployed independently.

Service-Oriented Architecture (SOA) is an architectural style that enables the creation of distributed, modular, and reusable software systems. In an SOA, software applications are broken down into small, self-contained units of functionality called services. These services can be independently developed, deployed, and consumed by other applications over a network. SOA is based on the concept of loose coupling, which means that services can be changed or replaced without affecting the overall system.

Microservices is an architectural style that builds on the principles of SOA. In a microservices architecture, software applications are composed of many small, independent services that communicate with each other over a network using lightweight protocols such as HTTP or message queues. Each service is responsible for a single, well-defined function and can be developed, deployed, and scaled independently of the others. Microservices architectures are highly scalable and resilient since each service can be replicated or replaced as needed.

Event-Driven Architecture (EDA) is an architectural style that emphasizes the use of events to trigger and communicate between software components. In an EDA, events are generated by various sources such as user actions, system events, or sensors. These events are processed by one or more event handlers, which can trigger additional events or perform other actions. EDA is highly scalable and resilient since events can be processed asynchronously and independently of each other.

Service-Oriented Architecture Layers

As noted above, a SOA application is broken down into several smaller self-contained units of functionality called services. These services can be independently developed, deployed, and consumed by other applications over a network. The common layers or services within a SOA application often include:

These layers work together to provide a flexible and scalable architecture for building distributed software systems. By breaking down a system into smaller, independent services, organizations can develop, deploy, and maintain software more quickly and efficiently. Within each layer, there are several common commercial and Open-Source applications that organizations can leverage to streamline the development of their applications.

Service Layer

Messaging Layer

Data Layer

Business Process Layer

Security Layer

Cloud Architecture + Standards Based Application Frameworks

As a cloud architect, the Standards Based Application frameworks will likely fall outside our domain expertise. While these patterns do not dictate how the underlying infrastructure should be designed or implemented, they are often used to build distributed and scalable applications that can run on various types of infrastructure. SOA is more of an architectural style that is applicable to both applications and infrastructure. In the context of infrastructure, SOA can be used to design reusable infrastructure components or services that can be used by multiple applications or systems.

We’ve covered the AWS and Azure Well-Architected frameworks in the article “Cloud Frameworks – Identifying Similarities and Emphasizing Operational Excellence“. These framework are both designed to help organizations build and operate secure, reliable, efficient, and cost-effective systems in the cloud. While these frameworks do not prescribe a specific software architecture pattern, they provide guidance and best practices that can help organizations adopt Service-Oriented Architecture (SOA), Microservices, and Event-Driven Architecture (EDA) effectively.

Here are some ways in which the AWS and Azure Well-Architected Frameworks facilitate the adoption of these software architecture patterns:

The AWS and Azure Well-Architected Frameworks provide guidance, best practices, tools, and review processes that can help organizations adopt Service-Oriented Architecture, Microservices, and Event-Driven Architecture effectively. By following these frameworks, organizations can build systems that are scalable, modular, and easier to manage and maintain, which is essential for success in the cloud.

Conclusion

This article is a guide to Service-Based Architecture and discusses it’s relevance in the context of the AWS and Azure Well-Architected Frameworks. It provides a detailed description of the common layers and services in SOA, as well as popular tools and open source offerings for each layer. The article also discusses the ways in which the AWS and Azure Well-Architected Frameworks support the adoption of these software architecture patterns, including design principles, best practices, tools and services, and review processes.