BPM Mini Course. Class 2: Modern Business Process Management Architecture and Technology (1of 2) |
From SOA and Web Services to POA |
Originally Published in iThome Computer Paper, vol. 213, 2005/10/21 |
The Raise of SOA
|
Modern BPM systems mostly utilize the Service Oriented Architecture (SOA), based the Standard Based Open Architecture and applying the most advanced Web Services technology to achieve system integration and distributed processing. So what is SOA? Why has the SOA become one of the most popular terms in IT? Is there better technology architecture in the BPM area to replace SOA? To enable users to gain a better understanding of SAP, we first provide a brief overview of the software development history. |
|
40 years ago when computers first started, it would take 2 or 3 rooms to fit a computer. Software features were simple and were mainly for number calculations. But its calculation abilities don't even match a modern laptop computer. After the birth of transistors, the size of computer gradually become smaller and its calculation abilities increased by many folds. At this time, software became more complex, various computer programming languages started to appear. To make programs easier to manage, designers divided programs into pieces, called procedures or functions. Each procedure or function has an interface that can allow the caller to pass in and receive information after the procedure or function has been executed. But this method of division is mainly focused on control and operation. However, the data was still shared. Therefore, when computer speed multiplies every 18 m onths, the size and complexity of programs also grew. How to modulate program design and improve the rate of reusability has become an important topic. At this time, the Object-Oriented design concept has been developed to solve this problem. The so called object is to package the data and procedures into a basic unit, making object the basic unit of managing and reusing, this avoiding the line to line search of programming code to modify programs or data structure. |
|
During the 1990s when the internet started to flourish, the execution of programs is not only restricted to just one single computer. The structure of programs evolved from client/server, 3-teir and evolved into an n-tier MVC architecture. Between the complex system architecture are millions of program objects. The only way to manage such a complex system is to apply objected-oriented concepts, to package a larger program into a basic unit, and define a set of standards to call each basic unit through the internet. This is the basics of SOA, these basic units in SOA are called services. |
|
What is SOA |
To understand SOA, it must be known first the meaning of “service”. Different systems have different definitions and demand for services. From a feature point of view, service can be a simple foreign exchange rate conversion to a complex credit card transaction system. From a technical point of view, a service needs to have an Application Programming Interface and protocol. Service oriented architecture is a service based distributed processing architecture. It has three mandatory components: service provider, service request system, and service catalog. A system built upon SOA is itself is a requestor, it finds service providers that can meet its needs using the service catalog, and use standardized methods to make requests to the services. For example an accounting system that can calculate foreign exchange rates in real time can find all the foreign exchange services from the service directory environment, and filter the required foreign exchange service providers. Then this system can communicate and request service from the service providers through standard protocols. The service requestor (the accounting system) can also be a service provider, providing though various combinations of services to other systems (such as ERP) specialized services. Therefore services are like building blocks; where small services can be grouped together to form larger services, then all these services can form a complete system. |
|
SOA and Web Services |
Before SOA became an popular topic, there are already many SOA technologies that exist. Earlier ones include RPC, CORBA, and DCOM. More recent ones include RMI and web services are all tools to bring about SOA. Aside from these more complete architecture technology, there are technologies focused on data exchange structure and protocol. We refer to them as Service Based Architecture, such as Rosetta Net is representative of this type of technology. But while these technologies have been around for many years, it has not attracted the attention of most people. The main reason is that these technologies are often limited in the scope where it can be applied and the technology barrier is too high, making it difficult to learn. |
|
In recent years, the rapid development of internet technologies along with the rapid increases in bandwidth and speed have resulted in more attention on distributed processing architectures. Also, standard technologies such as HTTP and XML have all became mature, enabling Web Services to gain more attention. The strength of Web Services is that it is not limited, from PC computers to large mainframes and from VB to Java, can all communicate with each other. Tools to create services and use services have become more mature, making the barrier of entrance much lower. In addition, with the promotion of major software providers, it has become more popular than ever. |
|
Web Services is defined by three standards based on XML and HTTP: SOAP, UDDI, and WSDL. These three standards define, respectively, transfer protocol, information required for service directory, and service as well as description of services. SOAP (Simple Object Access Protocol) regulates that information transfer can be conducted through the internet using the standardized HTTP or SMTP protocols, and the data formats, including MIME and XML, are all defined in detail. So a service requestor can generate a SOAP request for the service provider. The results of the service can also be transferred to the requestor through SOAP. But for a requestor to find a provider, it must find the provider through a directory. Such as when we use the 104 directory service. UDDI (Universal Description, Discovery, and Integration) provides a service for providers of various services to register their services on so requestors can find service providers and their information, including the types of company information provided and service information. The service description is provided in the WSDL (Web Service Description Language) format that defines the features provided by the service, such as API concepts, and describes the input and output data types. |
|
POA (Process Oriented Architecture) Has the Potential to Surpass SOA |
The advantage of SOA is that it provides a very good architecture to achieve distributed processing. Service can easily plug and play. When the service stops, the system can search through the service directory to find the same type of service, achieving a HotSwap effect. But in reality, engineers have found that creating a system using SOA is not an easy task. The main reason is because SOA emphasizes on service orientation, but while we design systems, the focus is on compete features and goals. For example, every employee of a company is actually a service provider, assisting the company team in achieving a certain goal. But from a company's point of view, how to group these employees into a strong battle group to complete the task given to them is also as important as finding these people. This integration activity is actually an enterprise process or service oriented process (SOP). Thus, the Process Oriented Architecture (POA) concept is proposed to be used to integrate various services. Each service can also be composed of a chain processes. SOA focuses on the communication and management of components. But POA focuses on how to use these components to do something useful. |
|
The Benefits of Process Oriented Architecture Are as Follows: |
1. POA is built on top of SOA. So it also has the benefits of SOA, such as high levels of integration, modularization, high reusability rates, and flexible extensions.
2. Easy to maintain, increasing flexibility: Because processes can be expressed using diagrams, while making modifications only requires drag-and-drop actions. It is not like regular business logic or hides the execution steps in the program.
3. Rapid creation: It is different from SOA, which is just a concept and some protocols, the POA architecture has the support of the BPM system. A POA system can be created quickly using the existing BPM system on the market. |
|
From the software system development history, when the system becomes more and more complex, people start to find out ways to increase basic components. So this his how it evolved from each line, to each procedure, and to each object. Now, service is viewed as the basic component to simplify system design. When the service related protocols are standardized, it would result in an “Internet Effect”— more and more services appearing, and system creation does not start from zero; rather they would build on these existing services to be rapidly created, resulting in more demand for services that starts a positive circulation. |
|
Because a 21 st century BPM system must be able to assist enterprises in becoming even more swift, and to effectively connect people, process, system use, and information, to enable the enterprise to react even more quickly to the ever changing business environment. Therefore, in the future, system development will be more focused on integrating various different applied services, so POA will then be the best choice. |
|