Every time I provide workflow training to customers, I have to contact different industries. But every time I am asked the same question: hongsoft, what should I do with SOA? In fact, this problem has little to do with workflow training, but the promotion of SOA is now in full swing, and it is related to BPEL. However, it is "unclear" between it and workflow ", so I really want to talk about how I understand SOA.
In the 7/80 S, procedural programming was popular. We generally need to use the top-down analysis method for functional decomposition. This is the most natural and original idea, and the unit of decomposition is function. For example, if you use a student to report to pay the tuition fee, the school has three departments: the academic office is responsible for registration; the Finance Department is responsible for collecting the tuition fee; the Political Office is responsible for luggage, and the accommodation fee may be charged.
Here, four functions exist. Registration (); tuition fee (); luggage (); accommodation fee (). The first thing we need to understand is that it is divided by internal school rules (internal functions of the software system), not from the perspective of students (users. Then, if you have developed a relatively large C language, you should know that the function and
The charge () function is probably named "charge ()". When one of the functions is placed in the. So package, the C compiler may not be wrong. It once took me two days to troubleshoot such a problem (using a 3rd-party company package ).
OO emerged in the 8/90 S. The core of OO is the object. There may be three packages: Academic Office/Finance Office/Political Office; political office this package may also be divided into several objects: the inspectors inspect and seal the Financial Office, and the warehouse personnel are responsible for luggage and so on. In this way, the problem of procedural programming is solved, and for students (software users), it is basically considered based on the user's ideas, this is also Comrade Mao's idea of "serving the people.
However, this is not enough. The inspection targets are stamped by the finance department, which is linked to other financial departments. The finance department package may change frequently: This year's special enrollment will receive an additional 3 W/year; next year's special enrollment will be eligible for loans .... And so on. This will have an impact on the seal of the finance department of the examiner's inspection: there may be no seal above, but the employee should also be checked in.
In this case, the idea of using service as the core to construct the software system is generated. Service is divided by actual enterprise applications. For example, the procedure of the Office of Political Affairs can be set as a service: the inspectors inspect the stamp of the Finance Department, and charge for accommodation, and send luggage. A service is actually a process, and a process unit may have a relationship with another service. In this way, SOA divides the system to reduce the coupling between services.
The "one-stop service" advocated by our current authorities has become very likely under the SOA architecture. The student paid the tuition fee at the school report office and filled out the form. Then the subsequent execution process will automatically run and go to the "Academic Affairs Office for registration; Finance Office for tuition fees; Political Affairs Office for luggage sending" and other services. Finally, "school reports" inform students: Please stay in B-305.
From the above technical analysis, we can also see some ideas in the management field, especially the BPM management field.
======================================
08.16 modification: It was identified by netizens. This article references
Http://www.hibernate.org.cn/viewtopic.php? T = 14437 & Highlight = thanks to the author of the original post!
For more information, see
Http://blog.csdn.net/hongbo781202/archive/2006/08/16/1069051.aspx communicates with a HW man's BPEL
Trackback: http://tb.blog.csdn.net/TrackBack.aspx? Postid = 1064037