The emergence of WebService has brought about a revolution, which makes every system, platform, program directly in the gap, for the integrated enterprise application is a great liberation. I have always loved her, the beautiful Bridge (Beautiful Rainbow).
Here's a look at SOA.
The full name of SOA is service oriented Architecture, which is services-oriented architecture. Before defining an SOA, let's look at the definition of a service. In real life, service refers to the content of the services we receive after payment. For example: to the hotel to eat a la carte service content, the first guest to go to the counter to order, then the kitchen will prepare food for guests, the last waiter served to the guests. In this process, the three parts of the counter order, the kitchen and the waiter are served, as shown in the following illustration:
Figure 1 Service of the hotel
So, when you order at the hotel, you need to work together with the above three services.
Similar to the example above, in the software world, the content of the service becomes a business service. Their logic is self-contained, so we'll define the business service contained.
definition of Business service : A business service is a logical encapsulation of a self-contained business function, and the result of encapsulation is the business service.
For example: The following figure shows a simple ordering system, "Order System", which is implemented by combining three services for the payment Gateway (Payment gateway), inventory system (stock systems) and shipping system (delivery systems). All of these services are self-contained. They are like a black box, we do not have to understand the internal implementation details of these business services, for the outside world it is only a black box, only with care message reception and service. For example, in the payment gateway (Payment gateway), the business service will receive a message check credit (check credits) and then export the customer with a credit voucher. For the order system, the Business Services payment Gateway (payment gateways) is a black box.
Figure 2 Simple ordering system
After understanding the above, let's first understand some of the basic aspects of SOA, and finally we will give a definition of SOA.
(1)SOA components are loosely coupled : when we say loosely coupled, it means that each service is self-contained and only appears in a single logic, such as the payment gateway (Payment Gateway) service shown in the example above, which can be used in other systems.
(2)SOA services are black-box : SOA services Hide internal complexities. They interact only with messages and services that are sent based on these messages. This design makes loose coupling possible.
(3)SOA services should be self-contained : SOA services should be clear and self-defining.
(4)SOA services should be maintained in the list : SOA services should be maintained in a central service library. Applications can find these services and then use them.
(5)SOA components can be combined and connected in a certain order to achieve specific functionality : SOA can implement a plug-and-play service approach. For example: The following figure shows two service "Security service" and "Order processing service". You can implement the custom function in the following order, that is, you can check the user first and then order Processing, you can turn over. Through SOA we can orchestrate the workflow of a service in a loosely coupled way (work flow).
Figure 3 Combination of services
Let's define SOA. SOA is an architecture that builds business applications with specific functionality by combining and connecting services. Where services are loosely coupled, the outside world is like a black box, hiding the inner working way. how SOA systems are built
If you need to integrate an existing system and use it as a business service, then you just need to create a loosely-coupled wrapper over your system that will encapsulate your system and then present your system's services to the outside world in a common way. business layers and pipeline layer for SOA (plumbing layers)
In SOA, a two-tier architecture is used, with the first layer directly related to the business because it implements business functions. The second layer is the technical level, which manages the computer resources, such as databases, Web servers, and so on. This division needs to identify the service, consider the following figure "simple Order System". It contains a number of components that communicate between components to complete the function of the ordering system.
Fig. 4 Simple ordering system
This simple ordering system can be divided into two tiers, as shown in the "Business and Plumbing layer", where one layer is related to the service and the other is technology-related. You can see that the pipeline Layer (plumbing layer) contains the data access layer, AJAX, and numerous technical points.
Figure 5 What's different about services (service) and components (component) in the Business and plumbing layer SOA.
Services are logical groupings of components that implement specific business functions by grouping components logically. A component is a method of implementing a service. Components can be implemented in Java, C #, C + +, but services are provided in a common way, such as Web services. The overall architecture of SOA
The following figure "SOA architecture" shows a complete view of the SOA. Note that this image is not tied to a specific implementation, and it is not a separate reference to the implementation of Microsoft or IBM. It's just a generic architecture. Any company that wants to implement an SOA architecture will implement the following SOA components.
Figure 6 SOA architecture
The primary goal of SOA is to achieve connectivity to other independent systems. For each system to work together, they send messages to each other (message), and the ESB (Enterprise service Bus) is like a stable post office, which ensures that messages between systems are passed in a loosely coupled manner. An ESB is a special level that is responsible for sending messages between systems only. In the diagram above, we show a pipeline, which is not a hardware or a pipeline, it's just a set of software components that will help send and receive messages from applications on different systems. Instead of making the ESB yourself, you can go to Microsoft, IBM, and Oracle to buy one. Below we will explain some of the above figure.
SOA Registry: It is like a reference to a database of services that describes what each service can do, where they can get it, and how they communicate between them. It is a central reference collection of service metadata.
SOA Workflow: It allows us to define workflows using services in SOA registry.
Service Broker: It reads the definition of a workflow and then binds the service and process. Service broker is usually a middleware, such as the EAI (Enterprise application integration) product, you can find relevant product information from Microsoft, IBM or Sun company.
Process Manager: It is a collection of SOA registry, SOA workflow, and Service Broker.
SOA Supervisor: It guarantees the quality of the service and is primarily concerned with the performance metrics of the service, and if there is a problem with the performance of a service it will send the appropriate message.
Note: The above explanation is just a basic SOA architecture, and any company, such as MS, IBM, or sun products, should contain the components above or otherwise be implemented. So if you are interested, you may wish to practice a product to deepen understanding. practical examples of SOA
The following illustration shows examples of SOA in display, with well-known web Service, Biz talk, and XML.
Figure 7 SOA Reality Example terminal (ends), conventions (contract), address and bindings (bindings) Concepts
These terms are supported by SOA, and each service must provide one or more terminals that can be accessed by the client through these Terminal Services. The terminal contains three important parts: Where,what and how:
Contract: an agreement is a contract between two or more parties. It defines the protocol for how the customer communicates with the service. Technically, it describes the parameters and return values of the method.
Address (where): a description of where you can get the service. The address is a URL that points to the location of the service.
Binding (How): bindings determine how the terminal can be accessed. It determines how the communication is done. For example, if you mention the service, the service can be accessed by using the SOAP protocol on HTTP or TCP transmitting binary (binary). Therefore, bindings are required for each communication method.
The following figure shows the three main components of a terminal. You can see that the stock Tiker is the class of the service, which is placed on the www.soa.com address and can use the StockTicker interface type via HTTP or TCP bindings.
Figure 8 Endpoint Architecture WEB Services and SOA differences
SOA is a conceptual idea, it's an architectural concept, and Web service is a technical implementation of SOA. Today's Web service is also a popular way to implement SOA.