SOA and enterprise software system architecture

xiaoxiao2021-03-06  107

I http://blog.joycode.com/ghj/archive/2004/09/16/33703.ASPX See many people are not prepared to participate in the "SOA and Enterprise Software System Architecture" this BOF discussion. In fact, this discussion is very valuable regardless of the developer, or the project supervisor, IT practitioners are very valuable, and the basic information of Some SOA is organized. You are welcome to participate in the discussion of "SOA and Enterprise Software System Architecture".

The following is published from Dong Wei on August 2, published in the computer world article:

Dip the veil of SOA

brief introduction

SOA is an abbreviation for English Service-Oriented Architecture, a service-oriented architecture. This vocabulary has frequently occurred in various technical journals in the last or two years. But I have always had no clear answer for SOA; what is the characteristics of SOA? Suitable for solving what problems? What is the difference and connection between other technologies? What is the relationship between Web Service and SOA? What is the effect of SOA does the software architecture design? This article will try to give SOA definitions according to the author's own understanding; sum up the three basic features of the SOA; then explain these features as an example of HTTP protocol; final brief description SOA pair The software architecture design may be affected in the future.

SOA definition

The following is a definition of author to SOA: SOA refers to a software system architecture that implements a specific task independent function entity by connecting to a specific task. From this definition I hope to express the following two points:

1) Software System Architecture: SOA is not a language, nor a specific technology but a software system architecture. It tries to give an architecture recommended in a particular environment. From this perspective, it is more Like a pattern (Pattern). Therefore, it is complementary rather than mutually exclusive, such as object-oriented technology, such as object-oriented technology. They face different application scenarios, which are used to meet different specific needs.

2) The range of use of SOA: Demand decisions simultaneously restrict function. SOA is not a Wan spirit that is grouped. The most important application is to solve business integration issues between different commercial applications in the Internet environment. Below we will discuss in detail how the Internet is how to determine SOA characteristics, here we only need to simply review several features of the Internet environment: a) a large number of heterogeneous systems coexist, computer hardware work mode Different, the operating system is different, the programming language is also different; b) a large number, frequent data transmission is still slow and unstable; C) version upgrade cannot be completed, we can't know which machines on the Internet are directly or indirectly used. service.

Based on the above premise, let us take a look at the basic characteristics of SOA.

Three basic characteristics of SOA

Independent functional entity

In the loose environment such as Internet, any access request is possible to errors, so anything that attempts to control through the Internet will face a serious stability issue. SOA is very emphasizing the complete independent ability of the functional entities that provide services in the architecture. Traditional component technology, such as .NET Remoting, EJB, COM or CORBA, there is a host (Host or Server) to store and manage these functional entities; the life of these components is also over when these hosts run. This will affect other application services running on the host when there is a problem in the host itself or other functional part.

The SOA architecture emphasizes entity self-management and recovery. Common techniques for self-recovery technologies, such as transaction, Message Queue, redundant deployment, and cluster systems, are critical in SOA. Low frequency accesses

For .NET Remoting, EJB, or XML-RPC these traditional distributed computing models, their service provides through function calls, and a function is often required to call back to the client and servers. Can complete it. In an intranet environment, these causations can be ignored by the response speed and stability of the system, but these factors are often a key determinant that determines whether the entire system can work properly in the Internet environment. Therefore, the SOA system is recommended to exchange information in a single way.

Text-based messaging

Since the existence of a large number of heterogeneous systems in the Internet determines that the SOA system must adopt a text-based message transfer method. In COM, CORBA these traditional component models, from the server side to the client is a binary encoded object, perform some functions by calling this object by calling this object; but in the Internet environment, different languages, different The platform is different from the data, or even some basic data types, which gives a big difficult to pass objects between different services. Since the text-based message itself does not contain any processing logic and data types, the service is only transmitted, and the processing of data depends on the receiving end can help bypass the large mud pit of the compatibility.

In addition, for a service, the biggest difference between Internet and LAN is extremely difficult to manage version management on the Internet, and the upgrade mode of traditional software is almost unable to perform in this loose distributed environment. With text-based messaging mode, the data processing end can only select the part of the data you understand, and ignore other data, which is ideally compatible.

HTTP protocol: a typical SOA implementation

Each new technique is developed on the basis of some old technologies. As XML's fundamental thinking is like the early marker language that has emerged in the 1960s, although SOA has appeared these two years, the concept it expressed should be said that there is a wide application in the network of distributed system structures in the network. . For example, our most familiar HTTP protocol is a very typical SOA architecture design. The work process of the HTTP protocol is simple and described below:

1) Client, usually through the browser, send a request to the server side in text, request a web page;

2) After receiving this request, the server side is processed according to the request content and returns a text that conforms to the HTML syntax;

3) The client receives the server-side response text that calls the local program, which is usually the browser, showing the content returned by the HTML text.

Let's take a look at how the HTTP protocol satisfies the features of SOA:

Independent Functions: As a server-side web server is absolutely not changed by changes in the client's condition, it is always very stable to run, respond to external requests, manage your resources and data in response to external requests. Here a very good example is the processing of the web server to the cache. Many web servers can cache data in order to improve performance, but cache data, refresh data, which is completely unrelated to the client. The server is independently completed, which is not affected by the client. Low frequency accesses: For an HTTP request, the boundaries accessed between the client and the server are very simple: it is a request, a response, no other information round trip. Regardless of the information other than the text, for the client, the request is just simply telling the web page of the web page it needs; as in order to generate this web page, whether the server is required Accessing the database, performing a servlet or other CGI program, is completely transparent to the client. Text-based message delivery: The best-compatible system so far may be most of the web applications supported by the HTTP protocol, we can use IE to view the Internet on a Linux Apache server on a Windows platform to automatically generate web pages . The key here is that all content is passed in a formatted text, regardless of how the Perl script is executed, as long as its output is a web page that complies with the HTML specification, it can be interpreted by the client's browser. Since different operating systems, the same HTML is followed, so that the consistent user interface can still be seen under different operating systems. We have basically described SOA as a software architecture. Let's take a look at the relationship between Web Service and SOA.

SOA at Web Service

Web Service is the collection of some technologies that are best suited to implement SOA, in fact, the recent popularity of SOA is largely reached to the popularity and application of Web Service standards, providing a foundation for a wide range of implementation SOA architecture. Let's take a look at how the various protocols in Web Service work to meet each other to meet the features required for SOA:

Independent Functions: Find through the UDDI directory, we can dynamically change a service provider without affecting the application configuration of the client. All access is performed through SOAP access, as long as the WSDL interface is well packaged, the outside client is at all, there is no way to directly access the server's data.

Low frequency of large data: By using WSDL and text-based SOAP requests, we can implement interfaces that can receive large amounts of data at once. Here, it is necessary to focus on the SOAP request sub-text method and remote call (RPC), as already mentioned above, SOAP requests with remote calling methods do not meet this requirements. But unfortunately, the existing SOAP requests are still remote calls (RPC) methods, on some platforms, such as IBM WebSphere's earlier versions, and even unable to provide SOAP support for text. Text-based messaging: Web Service All communication is made through SOAP, while SOAP is based on XML, and different versions can be used to distinguish and distinguish between different DTDs or XML Schema. Therefore, we can easily implement version control targets for different versions.

SOA effect on software architecture design

Whether your current system involves Internet-based business integration, SOA recommended architecture is a great help to improve your system's scalability, the following is a change in software architecture after introducing SOA in the system:

Using a text-based SOAP call, get rid of information-independent information such as the function parameter type that appears in remote calls, ensuring that all SOAP passes is meaningful business data. Relying on Schema, not the class definitions explain these data. Traditional three-layer web applications will be able to become four-layer structure: the commercial logic layer in the conventional sense will be further divided into a client logic layer stored in each session (session) and SOA layers that have nothing to do with state. to sum up

According to the author's understanding of SOA, this paper summarizes SOA's three-point characteristics and briefly pointing from the programmer's perspective of SOA's impact on software architectural design. I hope this article can help you have SOA. In-depth understanding.

转载请注明原文地址:https://www.9cbs.com/read-103724.html

New Post(0)