Basic concepts of SOA
SOA is the abbreviation of the English word "Service Oriented Architecture". Chinese translation "Service-Oriented Architecture", in which "Service-Oriented Architecture" SOA is defined as follows: SOA is a new set of distributed software system construction methods and environments, including the runtime environment, programming model, architecture style, and related methodology. It covers the entire service lifecycle: modeling-Development-integration-deployment-operation-management. SOA is the new development stage of the distributed software system construction method and environment.
In the SOA architecture style, services are the core abstract means. Businesses are divided into a series of coarse-grained business services and business processes. Business services are relatively independent, self-contained, and reusable. They are implemented by one or more distributed systems, and business processes are assembled by services. A "service" defines an Interface related to business functions or business data, and a contract that limits this interface, such as service quality requirements, business rules, security requirements, compliance with laws and regulations, and Key Performance indicators (KPIs. Interfaces and contracts are defined in a neutral and standard-based manner. They are independent of the hardware platform, operating system, and programming language that implements services. This allows services built in different systems to interact and understand each other in a unified and universal manner. In addition to this neutral feature that does not depend on specific technologies, Service Registry and Enterprise Service Bus support dynamic query, locating, routing, and Mediation) so that the interaction between services is dynamic and the location is transparent. The transparency of technology and location makes the service requestor and provider highly decoupled. This loosely coupled system has two advantages: one is its flexibility to adapt to changes; the other is that it does not affect other services when the internal structure and implementation of a service change gradually. Tightly coupled means that the interfaces of different components of an application are closely linked with their functions and structures. Therefore, when a change occurs, some adjustments may cause changes to other parts or even the entire application as a result of various tight coupling relationships. Such a system architecture is very fragile.
Another important point brought about by SOA architecture is business-driven IT, that is, IT and business are more closely aligned. Business Modeling Based on coarse-grained business services will produce a more concise business and system view; IT systems implemented based on services are more flexible, easier to reuse, and better (and faster) to respond to changes; Services-based, by explicitly defining, describing, implementing, and managing coarse-grained services (including business processes) at the business level, IT provides a better "traceability" between business models and related IT implementations ", this reduces the gap between them, making IT easier for business changes to pass to IT.
Therefore, the main advantages of SOA can be summarized as: IT can provide Business Centric, Flexibility, and Reusability better and faster ).
From the evolution process, SOA was proposed many years ago. The reproduction and prevalence of SOA are a combination of several factors. On the one hand, it is the experience, methods and various design/architecture modes accumulated by years of software engineering development and practice, including OO/CBD/MDD/MDA, EAI and middleware; on the other hand, the development of the Internet has brought unprecedented interaction capabilities and standardization foundations for distributed systems. At the same time, enterprises pay more and more attention to componentization of business models to support highly flexible business strategies. However, the existing enterprise software architecture is not flexible enough to adapt to increasingly complex enterprise integration, and it is difficult to meet business needs on demand, therefore, SOA architecture methods that are aligned with the business, with agile business response as the primary goal, loose coupling, and support reuse are favored.
Based on our experience in dealing with customers, it is necessary to clarify several basic questions that are frequently confused here.
First, SOA is the architectural style and method, rather than the specific implementation technology (such as Web Service) and specific Architecture elements (such as Enterprise Service Bus, Enterprise Service Bus, and ESB ).
Some people often think that as long as the Web Service is used, it is SOA. This is not correct. Web Service is only a specific technical manifestation of the Service. Similarly, we think that SOA is just about buying some software and building an ESB. This is also wrong. ESB is only part of the SOA architecture style. Firstly, ESB is an architectural style element summarized from practice, namely BUS (BUS mode). Secondly, the main function of ESB is to be responsible for connectivity and Service Mediation ), decouples service requestor and service provider.
Second, the primary goal of SOA is to align IT with business and support rapid business changes. Second, IT architecture flexibility and IT asset reuse.
The business needs agility and is the biggest driving force of SOA. On the one hand, business requirements in this area are getting higher and higher; on the other hand, today's IT is not flexible, IT is difficult to adapt to the needs of rapid business changes, not only because the IT architecture is not flexible, more importantly, there is a big gap between elements in the business model and those in the IT system. Such non-alignment leads to insufficient communication between business personnel and IT personnel, and business changes need to be transferred to the IT system at a high cost. It is hard to imagine that business personnel are interested in a Java object, an EJB or a JSP page, which is too far away from the business world. Such business and IT alignment requires more advanced abstract elements in the IT system, namely elements in the business model (services, processes, and performance management ), and horizontal integration to meet business needs (dynamic integration of people, information, applications and processes end-to-end ). Such a service-centric, end-to-end integrated environment first enables business changes to communicate at the business element level, making IT easier and more accurate to transfer from the business to IT. Second, such changes are isolated from the areas where they need to be changed without spreading to other parts of the system. This requires the entire IT architecture to be loosely coupled. Changes in a service (such as functions, Data, processes, and technical environments) do not affect other services. Finally, we hope that the services that reflect the business elements are relatively stable and reusable, which is very important to quickly adapt to changes and reduce costs.
Third, in engineering, SOA focuses on service modeling and SOA-based design principles for architecture decision-making and design.
The customer often asks the following question: SOA is quite good. Why? What is the method of SOA? What is the difference from the previous methods, such as OO/CBD? Sometimes a J2EE server is good. Why is it so complicated?
From the perspective of modeling and design, SOA focuses more on the business layer, that is, service components are converted into service models through service modeling, which is the underlying layer of the Business architecture, IT is the top layer of the technical architecture. IT is a bridge between flexible business models and IT to ensure "traceability" between the two ". From here, it is based on existing methods, such as OO/CBD. At the architectural level, SOA focuses more on how to connect multiple distributed systems (including existing systems and legacy systems) within an enterprise (ESB, Adapter/Connector ), how to transform their functions and data into services, how to ensure loose interaction between services through the Service mediation mechanism (ESB, Service Registry), and how to assemble (integrate) services are processes, and how to manage services and processes. From this point on, the architecture, design, and implementation of a specific application that implements services can be based on existing practices and methods, such as J2EE or. NET.
In some cases, because the business needs are relatively simple, all these things are on a J2EE Application Server. Some elements are not so prominent, but with the expansion of the system scale, when the business problems to be solved are more complex and more extensive, various Architecture elements of SOA become more and more important.
The following sections briefly discuss several important aspects of SOA, including service-oriented computing environments, programming models, Architecture styles, engineering methods, and related technologies.
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.
A Free Trial That Lets You Build Big!
Start building with 50+ products and up to 12 months usage for Elastic Compute Service