Most IT practitioners often lose sight of the core principles of Service-Oriented Architecture (SOA). This article and its extended white paper are a retelling of the SOA philosophy in an easily understandable and practically applicable form, independent of the actual tools used to implement it.
It is specially targeted to the Solution Architect, because at the end of the day, SOA is nothing but a way to put components together to build flexible, durable and reusable business solutions, and the solution architect is the person responsible for this outcome.
|
Date: Wed, 12th Oct, 2011 Level: Intermediate Reads: 3401 Comments: 0 | Login or register to post comments |
|
|
|
Introduction – Why Practical SOA
Service-Oriented Architecture (SOA) is a term that may seem tired and over-hyped today. However, it is WSO2’s case that SOA has always made perfect sense. It’s just that IT practitioners have often lost sight of its core principles in the noise and confusion of the market battle to sell SOA products. Our white paper, “Practical SOA for the Solution Architect”, is a retelling of the SOA philosophy in an easily understandable and practically applicable form, independent of the actual tools used to implement it.
Our target audience is the Solution Architect, because at the end of the day, SOA is nothing but a way to put components together to build flexible, durable and reusable business solutions, and the solution architect is the person responsible for this outcome.
The Two Layers of Practical SOA
The solution architect must consider two layers of the design – technology and data. If we only look at the technology layer, we will fail to “do SOA”, because poor data design can result in the dreaded tight coupling that SOA tries so hard to eliminate.
The 3 Core SOA Technology Components
At the technology layer, it’s sufficient to remember that there are just three core components commonly required for SOA solutions.
1. The Service Container
When you have to write business logic from scratch and can’t buy it off the shelf, yet want to reuse this functionality in different parts of your business, you will need to host it within a Service Container.
2. The Broker
When business logic or data already exists somewhere in your organisation (as is most likely the case), but it’s not readily accessible or usable, you will need to use a Broker to access it. A Broker acts as an adapter to hide proprietary protocols, as a transformer to convert data into a more digestible form, and as a mediator to hide the physical location and other attributes of the native service or data provider that should not be exposed.
3. The Process Coordinator
When a business process requires many steps to be performed, and these steps often depend on the situation at run-time, a more dynamic approach to composing services is required. A Process Coordinator is the right component to use in such cases.
Supporting Technology Components
While the above three components are “core”, there are other components at the technology level that play a supporting role in refining a solution design by providing specialised capabilities in different areas. The most common of these areas are:
Business Rules |
Data Access |
Registry/Repository |
Governance |
Activity Monitoring |
Complex Event Processing |
Presentation Support |
Identity and Access Management |
Data Principles
While the technology layer of a solution is very important, we must not neglect the design of the data layer. Many ostensibly SOA-based solutions suffer from the negative impacts of tight coupling, because some simple principles were not followed. Adherence to the following four simple principles can eliminate such expensive mistakes.
1. Identify and Remove Unnecessary Dependencies
Once you understand the dependencies that exist between systems, you can also identify which of them are legitimate and which of them exist for legacy reasons that no longer make sense. You should try and eliminate dependencies that don’t make sense.
2. Identify Implicit Dependencies and Make Them Explicit
Sometimes, even legitimate dependencies are assumed knowledge rather than explicitly stated. These can throw up nasty surprises in future. Hence all legitimate dependencies must be explicitly stated in the form of contracts between systems. You can better manage change when you have confidence in the dependencies that exist between systems, and you have ways to hide the changes occurring inside a system to shield others by simply ensuring continuing adherence to their contracts.
3. Ensure a Loose Association of Message Data with Domain Data
A misconception that lies at the heart of much data-related tight coupling is the failure to distinguish between domain data (which is the data held inside systems) and message data (which is the data exchanged between systems). While the two are obviously related, an excessive dependence of one on the other can make integration brittle. You must ensure that you only associate message data with domain data (perhaps through mapping) rather than attempt to derive or generate one from the other.
4. Choose an Intermediate Granularity for Domain Data Models
Sometimes, SOA practitioners go too far in the other direction, i.e., they attempt to find a universal vocabulary that covers every data item in their organisation. Rather than waste time and effort on this mammoth activity, you should identify more granular sub-domains with their own domain data models, and standardise these. Broker components exist to transform data between domains, and you should exploit them.
Conclusion
SOA is a practically useful discipline and fairly simple at its heart. WSO2’s white paper “Practical SOA for the Solution Architect” provides a quick refresher for those who may have lost sight of the core SOA principle of loose coupling in all the seeming complexity of various SOA products in the market. Simple principles at the technology and data layers will help solution architects use SOA tools in a way that delivers on the promise of SOA to reduce operational cost and risk, and improve organisational agility.
分享到:
相关推荐
AWS solution architect associate考试资料合集 - Study Guide - Practise Exams (问答题)
CommVault Solution Architect Certification - CVSA 我在线认证考试题时截图,不一定100%,大概70%左右,每次考试题都随机变化,有需要可以参考一下,可省不少时间。
It's for preparing AWS Solution Architect Certificate It's for preparing AWS Solution Architect Certificate
标题“aws solution architect associate”指的是AWS(Amazon Web Services)解决方案架构师助理认证。这个认证是针对那些设计部署AWS云基础设施的IT专业人士。它旨在证明持证人在利用AWS服务构建和部署分布式系统...
AWS Certified Solution Architect Associate (SAA) 认证是亚马逊网络服务(AWS)提供的一项专业资格认证,旨在验证个人在设计和实施基于AWS平台的可扩展、高效且安全的云解决方案的能力。这个认证对于IT专业人士,...
An architect attends multiple interviews for jobs or projects during the course of his or her career. This book is an interview resource created for designers, consultants, technical, solution, domain...
HCIP-AI Solution Architect V1.0 培训文档 HCIP-AI Solution Architect V1.0 实验手册
IBM.Press.Executing.SOA.A.Practical.Guide.for.the.Service.Oriented.Architect.May.2008.chm
AWS Certified Solution Architect Professional (SAP-C01)
Optimizing Java_Practical Techniques for Improving JVM Application Performance-O’Reilly(2018) How do you define performance? Most developers, when asked about the performance of their application, ...
在IBM的SOA Architect Summit中,这一概念被深入探讨,以帮助企业实现更高效、灵活的信息系统。 SOA的核心理念在于将企业的业务逻辑分解为一组可独立部署、可互操作的服务。这些服务具有明确的接口定义,能够通过...
PDF格式,AWS SAA Solution-Architect-Associate 助理架构师,适合考前冲刺, 中文题库考前冲刺 100题,修正答案,部分有解析,考试自测可判断对云计算知识的掌握程度。
AWS has been the frontrunner in cloud computing products and services, and the AWS Certified Solutions Architect Official Study Guide for the Associate exam will get you fully prepared through expert...
Microservices for Java EE Architects Addendum for The Java EE Architect's Handbook 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
Written by a software developer and solution architect who got tired of hunting and gathering various lessons for Arduino development as he taught himself all about the topic, this book gives you an ...