Jest tylko jedna prawdziwa korzyść, ale ogromna:
oddzielenie obaw .
Tak więc zamiast logiki organizacji procesu wbudowanej w nasz system, staje się ona konfiguracją zewnętrzną. Zasadniczo mapa. Możesz to zmienić (znacznie więcej) niezależnie, możesz mieć wiele procesów, wiele wersji procesów, wiele wersji wielu procesów działających w tym samym czasie, i to wszystko jest gotowe od każdego porządnego rozwiązania.
Historycznie koncepcja SoC wielokrotnie wygrywała - zaczynając od zasady uniksowej „zrób jedną rzecz, ale zrób to dobrze”, i stosuj ją wielokrotnie - jak posiadanie dedykowanych komponentów serwerowych, takich jak ESB, różne systemy utrzymywania, buforowanie, równoważenie obciążenia , monitorowanie, np. dzielenie CSS z HTML itp.
Proces biznesowy i reguły przepływu są często ortogonalne w stosunku do danych, „ekranów” interfejsu użytkownika lub „hierarchii” użytkowników. Dlatego warto go rozwijać i zmieniać oddzielnie od innych aspektów systemu. To była przesłanka, na której BPM pojawił się na początku lat 90.
Od tego czasu stworzono wiele narzędzi i języków do obsługi tej koncepcji, z których najbardziej znany to BPMN - język graficzny do tworzenia „schematów blokowych”, które bezpośrednio mapują procesy. Podczas gdy ludzie narzekają, że jest duży i nieporęczny (ma ponad 100 symboli w słownictwie) i opowiada się za nowoczesnymi podejściami, takimi jak S-BPM (ma tylko 5 podstawowych symboli), obecna praktyka branżowa polega na trzymaniu się BPMN lub jego pochodnych, podzbiorów lub rodzeństwa.
Nie wyglądasz na zadowolonego z BPMN:
Wydaje się, że programiści wykonują znaczną ilość pracy w warstwie linii i ramek, co dla mnie wygląda jak naprawdę kiepski, naprawdę podstawowy wizualny język programowania.
Ale nie jest tak źle) Za tym stoi teoria. Wersja 2.0 miała dobry wgląd w niedociągnięcia 1.0.
Jeśli masz zamiar posunąć się tak daleko, dlaczego nie użyć jakiegoś języka skryptowego?
Imperatywny paradygmat i języki skryptowe nie zawsze są najlepszą odpowiedzią. Jak zapewne widzieliście w językach deklaratywnych (takich jak HTML, CSS, SQL, Drools lub wewnętrzne Nginx, Graddle i Maven, Puppet itp.), Wynikowy kod może być znacznie mniejszy i czystszy niż wersja napisana w „ porządnym języku, jak Java lub C ++ ”.
Co do twojego drugiego punktu:
O ile wiem, w tym momencie są to wizualne języki programowania, w tym warunkowe i pętle.
spojrzałeś na Wydarzenia i Wyzwalacze ? BPMN to język i musisz się go nauczyć przed użyciem lub przynajmniej się z nim zapoznać.
Pod maską BPMN to XML, więc możesz edytować go ręcznie lub generować. Możesz kontrolować ich wersję, ponieważ XML jest oparty na tekście. Jednak posiadanie kodu XML, który można przetłumaczyć na schematy blokowe, nie brzmi jak pomoc goona, i to jest poprawne - napisanie własnego parsera lub edytora jest trudne i kosztowne zadanie z wątpliwymi korzyściami.
Na szczęście istnieją już na rynku narzędzia, które to właśnie robią.
Activiti jest bezpłatny i dość popularny zarówno wśród deweloperów, jak i właścicieli firm, ze względu na jego początkową cenę ( zero ), dostępność informacji i pokorę. Ostatni punkt jest naprawdę wyjątkowy, ponieważ Activi koncentruje się wyłącznie na zarządzaniu procesami biznesowymi, bez konieczności wiązania się z rozwiązaniami obejmującymi cały pakiet. Ponadto jest otwarty - wystarczy znać Java i REST, aby go uruchomić. Wadą jest to, że po stronie klienta, integracja i logika aplikacji / biznesu oraz cała architektura są pozostawione programistom, więc jeśli twój zespół ds. Rozwoju jest słaby - przygotuj się na porażkę. Całkowity koszt posiadania może być zaskakująco wysoki dla darmowego narzędzia;)
Po drugiej stronie spektrum znajduje się Pega (Pega PRPC), królujący w systemach BPM (według Gartnera i Forestera), który wygląda zaskakująco dobrze jak na swój wiek. Ten potwór z umywalką kuchenną jest nawet w stanie obsługiwać CRM, OCR i (jeśli się nie mylę) funkcje rozpoznawania mowy, analizy predykcyjne, zarządzanie regułami biznesowymi i edytor WYSIWYG UI. Ma jednak poważną cenę. Nie tylko kosztuje fortunę, ale cały rozwój odbywa się w aplikacji internetowej, co oznacza, że musisz korzystać z przeglądarki, którą jest IE8 (plus niektóre wtyczki i brzydkie włamania, takie jak edytowanie tabel danych w programie Excel). Ponadto przeglądarka internetowa wykonuje również edycję Java, JavaScript lub HTML / CSS - więc pożegnaj się z testami jednostkowymi, podświetlaniem kodu IDE, refaktoryzacją i wszystkimi zabawkami programistycznymi, które pokochałeś.
Dobra strona tego? możesz wdrożyć złożony system W CIĄGU TYGODNI [ PDF , patrz strona 22]. I tak, wynik nie jest gwarantowany.
IBM niedawno (zgodnie z tempem czasu dla przedsiębiorstw) kupił Lombardi i oferuje teraz bardzo konkurencyjne rozwiązanie (ale wtedy trzeba będzie wszystko kupić ibm ). Appian to młody sprzedawca, który ma ciekawe spostrzeżenia i pozytywne opinie, ale sposób, w jaki zostały napisane (dwa dodatkowe języki DSL oprócz języka wizualnego) po prostu mi się nie podoba.
Są inni gracze i ich rozwiązania. Większość z nich jest po prostu okropna. Na przykład - twoje oczy, mózg i serce dosłownie krwawią, gdy tylko na nie spojrzysz. Ufaj więc sobie i nie zniechęcaj programistów i użytkowników.
Notatka końcowa:
System BPM jest taki sam dla procesów, co Photoshop dla obrazów. Nie bój się, że jest wizualny. Nie zmuszaj go do wykonywania pracy nieodpowiedniej (pamiętasz strony internetowe utworzone w całości w Photoshopie, których edytowanie było prawie niemożliwe?). Uprość to i nie rób błędów;)