- WSO2 Developer’s Guide
- Fidel Prieto Estrada Ramón Garrido Lázaro
- 745字
- 2021-07-08 10:05:50
SOA organization
Once we understand what is SOA and its principles, the next question is How to apply SOA to a standard organization?
Well, what SOA tries to say to a big organization that has a large number of systems with a high level of integration (remember the spaghetti dish), is, Stop turning a blind eye! That spaghetti dish is also your business!
What we mean by this sentence is that companies add new systems on demand as their business grows. In this scenario, the typical way to proceed is to add new systems and configure all the integrations needed with the current systems of the company. This way, little by little, the number of systems grows until they achieve the spaghetti dish.
What is wrong with this scenario is the thinking that interconnections do not play any role in the company business, but only play the simple role of an information socket. At this point, all the interconnections of the company have enough dimension and impact on the business that they should be treated like another part of the business.
SOA tells the company that all that system connections is a business that has to be managed. The company must go deep inside the spaghetti dish to understand the business behind it. Then, that business must be digested to turn a large number of wires between applications into business services. The beautiful thing about this is that after taking a look at these system connections and discovering the business behind them, the business that we find is the essential business of the company, which defines its identity and what the company is and does.
Once we realize that, let's see how we can bring SOA to our company.
The very first step to do this is service prospection. In service prospection, we look deep inside the connection network to look for the business behind it and turn it into business services. We need to know which systems produce information and which ones consume information. This analysis can be made with the following two strategies:
- Bottom-up: This approach starts analyzing the integration from the point-to-point connection (bottom) existing between the systems, building the integration map. These connections are linked together to result in another one in a higher level of abstraction, which will be the very first candidate services. We iterate several times over these connections/services, building high-level services according to the SOA principles until we achieve the business services (up) of the company.
- Top-down: This approach is the opposite of the bottom-up approach. It starts designing high-level business services (top) according to the business expert. Starting from that point, we iterate over them, increasing the level of detail in each iteration and splitting them according to the SOA principles. We stop when no new services result from the previous iteration (down).
Take a look at the following diagram:

Neither of the strategies are perfect and each one has its pros and cons. The top-down approach is theoretical and lacks the real-world vision, while the bottom-up part is data or real world but does not consider the business theory. Finally, each strategy has its advantages and disadvantages; so, the best practice is to apply both the approaches and stop where they both meet.
For example, we start by defining the high-level business service (top) and identifying the point-to-point connection (bottom); these are the ideally desired business services for the business. We follow this by adding detailed information to top-level services and splitting the services into other services that compose them. On the bottom level, we link or compose the services to generate higher-level ones; these are real-world services that currently form the business. Both the processes continue iterating until they meet each other at a point, where both the processes merge, obtaining the final set of detailed business services. These are the candidate services that have the ideal or desired vision of the business, but use the real-world services that are part of the current business.
These groups of business services will be the SOA catalog. The catalog is a registry where we can find, at the very least, the following information:
- The available services
- The services in progress
- Relationships between services
- Detailed information about each service
Once we have the service catalog of our future SOA organization, the following steps do not differ much from other typical IT projects:



So now, we are ready to turn our standard organization into an SOA organization.
- 在最好的年紀學Python:小學生趣味編程
- Python快樂編程:人工智能深度學習基礎
- C語言程序設計案例教程(第2版)
- 深入淺出Prometheus:原理、應用、源碼與拓展詳解
- Java編程指南:基礎知識、類庫應用及案例設計
- C語言從入門到精通(第4版)
- ASP.NET 3.5程序設計與項目實踐
- Apache Mahout Clustering Designs
- INSTANT Passbook App Development for iOS How-to
- 大模型RAG實戰:RAG原理、應用與系統構建
- Android程序設計基礎
- Machine Learning in Java
- Windows Embedded CE 6.0程序設計實戰
- 基于GPU加速的計算機視覺編程:使用OpenCV和CUDA實時處理復雜圖像數據
- Building UIs with Wijmo