⬆️ ⬇️

Anatomy of distributed business processes: Oracle SOA and BPM



Everything is intertwined, a sea of ​​threads, but.

Pull the thread, for it will tangle.

This world is a spindle

Oxxxymiron - Intertwined


The world of building large-scale IP in the top 100 companies, like any other IT areas, is subject to fashion trends. Five years ago, SOA seemed to be the solution to all the problems of complex architectures. Banks and large retailers actively rebuilt their systems in an integrated SOA-style. BPM platforms were implemented where management adheres to a modern approach in building business applications and the company's integration architecture.



Today, you will not surprise anyone with service-oriented architecture, and in particularly advanced circles this is already a moveton - after all, there are microservices, a new medicine for all diseases.



But there are a large number of those organizations where everything is done “in the old-fashioned way” - such customers very often think in terms of their existing IT systems. Like, "we bought just such a cool CRM-system and happy." Or "we have SAP ERP, we have enough for all occasions." Although, in fact, difficulties arise: there is often a situation when a company acquires some kind of system and starts stuffing it with unusual functionality and setting tasks that vendors did not expect. As a result, the system turns into a cumbersome monster, whose additional features are poorly documented, it is very difficult to deal with and work with it. And most importantly - it is difficult to develop.

')

The second common situation: each department within the organization sculpts something different. In one subdivision they downloaded the Open Source accounting system, in the other they ordered a solution from a local programmer, and so on. As a result, there is a zoo systems that solve the same problem.



And the exit from these two extreme situations are still integration and BPM solutions. Great representatives of which are Oracle SOA Suite and Oracle BPM Suite. What is it and why are they needed?



SOA Suite



Oracle SOA Suite is a solution for building distributed business processes.





It allows us to link together various business applications, employees (both working in these applications and those not related to them), decision-making rules, events, dates, scheduled meetings in the calendar, documents that are born during the work on the business process (from invoices to large reports). And, of course, tasks that are assigned to users to perform their work. These may be simple tasks, such as reconciliation, or they may be those that are transferred from one user to another, and maybe even last for several months.



What is all this for?



And here in most companies a number of organizational problems arise: it is not very clear how to divide tasks among themselves. Where are the boundaries of each system? How do they agree among themselves about the format of interaction, the frequency of unloading? Who transfers data to someone? Immediately to answer these questions is difficult because of the human factor: “ Why should we do this? "Or" Our system supports one format, and yours - another. Who will do the conversion? ".



To solve all these problems and uncertainties, the Oracle SOA Suite integration platform is intended.



For the organization of clear integration processes that can begin in any systems, any adapters can be used, both technological and adapters to external systems. Adapters are Oracle SOA Suite components that allow you to work with files of different formats, with databases, send REST requests, interact with web services, send messages in queues of different standards, exchange data with business systems. In total, Oracle SOA Suite has more than three hundred adapters, and their number is constantly increasing.



All components of the SOA Suite, including adapters, are a set of cubes from which an integration solution specialist assembles integration processes. In the IDE - JDeveloper, all the elements of a business process, like cubes, are dragged into the editor, connections are created between them, functions are written. This is a doubly convenient implementation of the product, which allows not to make mistakes and save a lot of time and effort in the process of implementing or updating large-scale business systems when many integration tasks arise. After all, systems in most cases do not work in isolation - they have to interact with each other. In addition, the time of yesterday’s student’s training to a fully productive integration developer is about two months, which means that with the introduction of a large project, the power of the team can be increased quite quickly.



Business Rules



But to implement a large business process, it is not enough just to link various systems together, because there are processes in which decision making problems arise. And the solutions to these problems should not be strictly written in the code.



For example, the company has a basic rule: if the cost of the order in the online store exceeds 1000 rubles, the delivery is free. But you cannot numerically prescribe the threshold amount in the code, because it must be a configurable parameter. Tomorrow the business conditions may change, and it will be unprofitable to carry from 1000 rubles, and this value is already carved in the code. That is, the code will have to be recompiled and redeployed on an industrial server.



For these situations, Oracle SOA Suite has a great Business Rules tool. In essence, this is a set of rules that are embedded in a business process and on the basis of which either the branching of this business process can be performed, or the transformation of internal data, or additional calls to external services. For example, the condition with free shipping when ordering from 1000 rubles can be implemented as a separate unit. And later, any analyst will be able to change it online, expand it, complicate it, add additional outputs to it. For example, add a condition, if there is a special product in the order, then provide express delivery. No need to send a task to programmers, wait until they do everything, test, assemble and transfer to the combat server.



Human task



The next major component of Oracle SOA Suite is the Human Task . It is a tool for automatically embedding users in business processes. It is enough to insert a block into the scheme, specify what data should go into it and what decisions the user should take. And, based on this, the package automatically generates the form using Oracle ADF technology. In my opinion, it is quite enough such forms for the decision of usual daily tasks.



Thus, we can practically add users to some business process in one day. For example, before, we automatically sent orders from an online store to a delivery service, and now we decided that we need to confirm orders with customers in excess of 5,000 rubles. Add a Human Task block and a condition to the scheme, for example, from the same Business Rules. Add to the Human Task entirely the entire customer basket with delivery information. A form with this data is automatically generated, and the operator already has a ready screen in which he receives tasks for dialing. This option can be implemented in one day. If the customer has special requirements for the forms and processes, then you can customize both the visual component and the logic of work.



Audit



So, we have built a business process in which different systems interact, different users participate, and we really want to follow all this. After all, if something went wrong, then you need to figure out why and what exactly did not work according to plan.



Errors, of course, happen: you can not foresee any of the conditions, it is not enough to test something qualitatively. In the system where the entire audit of the past processes is built on logs - text records - it will be very hard to figure out why the order went to the A delivery service, and not to the B. delivery service. to the minimum error display? And now we can not figure out the cause of the error, and we have to wait for it to happen again. And this happens in many companies.



Oracle SOA Suite has a built-in graphical auditing mechanism. It stores all information on each launch of each unit as part of a business process. Returning to the previous example with the delivery service: the integration support specialist inserts the order number and opens the completed business process - with all the “squares”, with all the branches, user decisions, results of automatic conditions, responses of all web services. And can easily figure out where the crash occurred. He does not need to go into the documentation (after all, the implemented business process is self-documented), it is not necessary to read what this business process consists of.



Business Activity Monitoring



This is a tool for generating online reports. Inside the business process, we can in any place embed separate notifications for the report management system. Suppose in one place we say that a new order has been received. In another - that the user canceled the order. In the third - the order went to the delivery service. And based on this data, a beautiful online report will be generated, with all orders broken down by category. It will change in real time, that is, we will be able to see “live” data, and not a day ago — after ETL processing and loading into the repository.





And then we can build, say, a new interactive report on the processing of orders that have gone to the delivery service. You can immediately see that the delivery service does not have time to process orders on time: it’s already half a day that they have accumulated remnants, which they have recruited for themselves. If we offer a customer prompt service, then this is unacceptable. The management sees a violation of the SLA, agreements with partners, and without waiting for the statistics for the past 24 hours, call and ask: “ Guys, what is it? Why do you ship orders so slowly? "



Oracle BPM



Oracle BPM is an add-on to SOA Suite. That is, SOA Suite is at a lower level than Oracle BPM and provides the lion’s share of functionality. And what about the rest? First of all, it is an opportunity to portray customer's business processes in BPMN notation .





Horizontal levels - divisions of the company. Blocks denote:





The resulting scheme is understandable to any analyst, since it is an open standardized language for describing business processes. Unfortunately, in Russia in many companies there are no specialists who can read all this. But it is the BPM representation that is the main and most useful feature of the product. With the help of such schemes it is possible to clearly, visually and formally describe the business processes, sewn into the code of various systems and not documented.



The second major function of Oracle BPM is to convert BPMN to BPEL . In this case, the process is no longer divided into divisions and users, but according to the logic of the process.





The same external service calls and user tasks are displayed here, but in a different way. With such a presentation, programmers of integration solutions usually work. Converting from BPMN-notation to BPEL-notation is the main feature of Oracle BPM.



Another important difference between Oracle BPM and SOA Suite is the online business process editor. It allows on the fly, right in the browser to rebuild all the schemes. It is necessary to add a block, click "Apply", and all business processes that start from now on will go according to the new scheme. In Oracle SOA Suite for this, you have to manually make changes in the JDeveloper development environment, then test, and then transfer the development to production. That is, the procedure is much less flexible and operational.



In addition to all of the above, in Oracle BPM there is a large set of ready-made automatic reports. With their help, you can immediately identify all sorts of bottlenecks in existing business processes.



Oracle BPM 12c



Separately, I want to talk about the capabilities of Oracle BPM version 12c. Formally, this is not a novelty, but in Russia this version appeared relatively recently, the majority of customers in the last couple of years have also introduced version 11g.



Above, I talked about Business Rules - a set of business rules. Now you can upload them as an Excel table, make changes and import them back into Business Rules. This feature is necessary for those who for some reason do not want or cannot work with the Business Rules themselves. For example, if it is hard to master a new interface, or if the changes have to go through a series of approvals from employees who do not have access to Oracle BPM.



But the most important innovation in version 12c is the Business Architecture mechanism. This is a set of additional high-level control screens through which top managers can plan the development of an information platform.



Here you can specify strategic goals, for example, the abstract task of increasing profits. Then it can be divided into subtasks:





Further, these tasks are broken down into even smaller ones, down to the level of such business processes as the processing of an application on the site.





From the resulting circuit, you can go to the above-mentioned scheme in BPMN-notation.



Another innovation is the Event Processing Complex. This is the mechanism and interfaces for event analysis. For example, if in previous versions we within the business process sent notifications directly to the monitoring system, then now we can instead publish events that occur in all business processes of the company. Based on the pool of these events, you can build a report that will predict the future dynamics of all processes.



In addition, version 12c has improved and simplified the integration of UCM — the mechanism for storing documents that are generated during the execution of business processes and loaded in tasks created using the Human Task.



Also improved repository for projects, metadata and data schemas. In version 11g, it was intended to use mostly third-party storage, be it SVN or Git. And in 12c, Oracle offers its own repository for storing all the code. This is convenient from the point of view that there will be a single source of all data on the processes, besides the use of previous developments in the new project saves time.



How to promote in Russia?



The question is complicated. Many large companies that have already realized the importance of such products have already purchased the package from either Oracle or IBM. And all the others are very hard to explain, what benefit they can get for themselves. In addition, it is not easy to take and transfer all business processes to new rails. In the ideal case, there should be some kind of incentive for this, an influential supporter of the renovation of the IT infrastructure, which will begin with the optimization of business processes. And then they can be implemented on the basis of the integration architecture of Oracle SOA Suite or BPM Suite. Embed areas of interaction with other systems, apply user participation, notifications, and more.



What we get in the end?



Business processes that are documented in themselves. You can go to the editor and, if necessary, quickly and accurately modify the business process, simply by dragging the block to the right place: “I want this to leave a letter to the head of some department.” One letter is not enough, the boss must make some decision? We put the block with his participation. Now the boss receives a letter with a link: “you have such a task - please read the document”.



Of course, inserting blocks into a BPM schema, a business user or analyst does not write the actual implementation code. But the resulting scheme allows you to quickly and unambiguously set the task for programmers who will clearly understand what data each block should receive and issue. They do not need to deal with all the intricacies of business processes. The user can immerse a little deeper into the programming of business processes, and the developer will be a little easier to understand what relationships he needs to implement, because everyone speaks the same language. And it is precisely for the sake of dynamic development and change in their business processes that companies buy such large integration platforms.



In full compliance with current trends in SOA Suite and BPM, you can work on smartphones and tablets. So what if the specialist went to the meeting? As long as he is stuck in traffic jams or is traveling in public transport, he can open the BPM screen and perform actions on a new task.



The introduction of an integration platform allows omnichannel access to the company's processes and customers. That is, within business processes, you can implement not only the notification of company employees, but also the notification of external customers. We can send them emails, duplicate them by SMS, we can send links to mobile apps. Of course, the application will have to be developed separately, but due to the fact that we have a large integration platform, it is easier to integrate interaction with the mobile application, mail and other channels into an existing business process than to implement it from scratch every time. .



Summary



Oracle BPM is based on the Oracle SOA Suite toolkit. SOA functionality is sufficient for most customers, but for large companies, BPM features such as business process editor in BPMN notation, numerous predefined out-of-the-box reports showing business processes, and an online business process editor may be important.



One of the main difficulties in promoting Oracle SOA Suite and BPM in Russia is their certain abstractness for end customers. More familiar products - analytics systems, BI or CRM systems - have clear, clear results of implementation. That is, the customer understands that after their implementation he will receive reports, a unified customer storage system, an interface for his operators to work with customer data, and so on. And in the case of an integration platform, everything is more complicated. We can show the customer beautiful schemes and paint the bright consequences. But the final business user will never see these schemes, because they do not need them. It will still only have windows of familiar systems. And what is behind them (all these blocks and connections) is too abstract for him and not very interesting.



If you have interesting ideas or stories about the introduction of such systems - welcome to the comments.



Dmitry Ovcharenko, architect of the Jet Infosystems Business Systems Implementation Center

Source: https://habr.com/ru/post/338786/



All Articles