1 / 83

Procesy biznesowe

Procesy biznesowe. Windows Workflow Foundation. Proces Biznesowy. PB jest zbiorem jednej lub wielu powiązanych ze sobą procedur lub aktywności, których wykonanie prowadzi do osiągnięcia celu biznesowego. PB jest inicjowany przez pewne zdarzenie biznesowe.

christmas
Download Presentation

Procesy biznesowe

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procesy biznesowe Windows Workflow Foundation

  2. Proces Biznesowy • PB jest zbiorem jednej lub wielu powiązanych ze sobą procedur lub aktywności, których wykonanie prowadzi do osiągnięcia celu biznesowego. • PB jest inicjowany przez pewne zdarzenie biznesowe. • W czasie wykonywania PB wykorzystywane są zasoby organizacji oraz dostarczane są produkty (wyniki biznesowe) do wszystkich zainteresowanych stron (pracownicy, klienci, dostawcy, właściciele organizacji, itd.). • PB posiada mierniki efektywności, dzięki czemu proces można oceniać, porównywać z innymi procesami i w dalszej konsekwencji ulepszać.

  3. Zgłoszenie zapotrzebowania Dostępne zasoby Brak wolnych zasobów Zamówienie zasobów Rezerwacja zasobów Pobranie zasobów Pojęcia • Model vs. instancja • Aktywność • Środowisko uruchomieniowe

  4. Business Process Execution Language for Web Services • Język opisu opracowany przez BEA Systems, IBM, Microsoft, SAP AG, Siebel Syst • Wspiera wykorzystywanie usług sieciowych kontrolując ich wywoływanie i koordynację • Jest interpretowany i wykonywany przez silnik (ang. Workflow Engine) • Wspiera wykonywanie długich transakcji (dni, tygodnie, miesiące) • Zapewnia obsługę wyjątków pojawiających się w takcie wykonywania procesu

  5. Business Process Execution Language for Web Services • Język BPEL4WS jest oparty na XML • Do korzystania z BPEL4WS stworzono narzędzia graficzne. • Podstawowe elementy, które wykorzystuje się podczas modelowania to: • Punkty graniczne procesu (inaczej porty) – miejsca, w których proces biznesowy styka się z systemami za pośrednictwem wywoływanych usług sieciowych • Wiadomości – informacje przesyłane pomiędzy poszczególnymi portami • Aktywności – elementy, które mają wpływ na sposób przepływu wiadomości pomiędzy portami.

  6. Business Process Modelling Notation • Standard stworzony przez Business Process Management Initiative - BPMI, obecnie rozwijany przez Object Managament Group • Notacja, która byłaby zrozumiała dla wszystkich użytkowników: od analityków biznesowych, poprzez programistów, aż po osoby odpowiedzialne za monitorowanie procesów • Prezentacja modelu (np. BPEL4WS) użytkownikom biznesowym. • Etap pośredni pomiędzy modelowaniem i implementacją. • Graficzne narzędzia dostępne wraz z WF przedstawiają procesy biznesowe w odmienny sposób, zapewniając większą ilość szczegółowych informacji dla programisty.

  7. Microsoft BizTalk Server • integracja aplikacji w ramach organizacji – EAI (ang. Enterprise Application Integration) • integracja aplikacji między różnymi organizacjami – B2B (ang. Business to Business) • Wykorzystanie specjalizowanego serwera uruchamieniowego dla procesów biznesowych pozwala tworzyć skalowalne i odporne na awarie rozwiązania. • Wszystkie moduły wchodzące w skład produktu mogą być uruchamiane na wielu fizycznych maszynach realizujących ten sam, logiczny proces biznesowy.

  8. Microsoft BizTalk Server • Orchestration Designer • BizTalk Schema Editor • BizTalk Mapper • Adapter Frameworkoraz zestaw gotowych adapterów • Środowisko uruchomieniowe

  9. Orchestration Designer • Graficzne modelowanie PB • Dostępny jako plugin do MSVisio lub uruchamianiy z VS • Stała grupa aktywności m.in.: • przygotowanie komunikatu (construct message) • przypisanie komunikatu (message assignment) • transformacja komunikatu (transform). • Model procesu może obejmować również elementy odpowiedzialne za monitorowanie zdarzeń ważnych z punktu widzenia biznesu

  10. Orchestration Designer

  11. BizTalk Schema Editor • Tworzenie schematów XML (XSD) definiujących komunikaty przetwarzane przez orkiestrację • Na tej podstawie komunikat może być stworzony np. poprzez aktywność przypisania komunikatu.

  12. BizTalk Schema Editor

  13. BizTalk Mapper • definiowania mapowania wykorzystywanego przez aktywność transformacji • Aktywność transformacji zmienia komunikat na inny (dokument XML -> dokument XML) • Na tej podstawie komunikat może być stworzony np. poprzez aktywność przypisania komunikatu.

  14. BizTalk Mapper

  15. Integracja Biztalka • Komunikacja pomiędzy różnymi systemami za odbywa się za pomocą różnych protokołów komunikacyjnych • Porty używane w orkiestracjach wykorzystują elementy zwane adapterami • Adaptery: • predefiniowane (m.in. Adapter Web Services, Adapter plików, Adapter HTTP/SMTP/POP3, Adapter SQL) • dedykowane do konkretnych aplikacji (m.in. Adapter WebSphere MQ lub Adapter Windows SharePoint Services) • dostarczone przez fimy zewnętrzne • stworzone z wykorzystaniem Adapter Framework

  16. Środowisko uruchomieniowe • Elementy wchodzące w skład orkiestracji są kompilowane do postaci bibliotek DLL. • Procesy przed uruchomieniem należy umieścić (ang. deploy) na serwerze BizTalk Server oraz połączyć z odpowiednimi portami. • Porty są tworzone na serwerze (np. np. BizTalk Administration Console) jako oddzielne elementy - niezależność procesu biznesowego od zewnętrznych systemów.

  17. Business Rules Engine • Definiowanie i obliczanie reguł logicznych wykorzystywanych do odpowiedniego przetwarzania procesów biznesowych. • Przydatny zwłaszcza, gdy podczas implementowania procesu należy brać pod uwagę dużą ilość parametrów mających wpływ na przebieg procesu. • Możliwość modyfikacji reguł bez konieczności zmieniania orkiestracji, (tj. bez zmiany modelu, rekompilacji oraz wdrażania). • Do modyfikacji reguł można używać narzędzia Business Rule Composer.

  18. BizTalk Administration Console • Podstawowe narzędzie służące do zarządzania silnikiem BizTalk Server. • Informacje przydatne do monitorowania działania wszystkich składników serwera. • Konfiguracja i wdrażanie wszystkich elementów (tj. m.in. procesy biznesowe, porty, powiązania pomiędzy portami i orkiestracjami oraz wymagane biblioteki DLL), np.: ustawianie adresu URL dla portu wykorzystującego adapter HTTP - Logika działania procesu jest niezależna od środowiska wykonywania.

  19. Business Activity Monitoring • Śledzenie informacji ważnych z punktu widzenia użytkowników biznesowych. • Orkiestracje muszą udostępniać odpowiednie dane i zdarzenia (musi to być uwzględnione na etapie implementacji procesu). • Odpowiednio przygotowana orkiestracja w trakcie wykonywania, zapisuje dane w bazie danych (ang. tracking database), • Businnes Activity Monitoring może być wykorzystany do monitorowania zdarzeń nie tylko orkiestracji ale także dowolnych aplikacji stworzonych w oparciu o platformę .NET.

  20. IBM WebSphere • WebSphere Business Modeler: • graficzny edytor umożliwiający modelowanie PB • możliwość przeprowadzenia symulacji stworzonego PB i jego analizy za pomocą stworzonych wskaźników biznesowych. • WebSphere Integration Developer • implementacja modelu PB. • wykorzystanie wizualnych elementów, odpowiadających elementom znanym z języka BPEL • możliwość zaimplementowania maszyny stanów (ang. state machine). • WebSphere Process Server • serwer aplikacji oraz silnik odpowiedzialny za uruchamianie procesów biznesowych oparty o Enterprise Service Bus • wspiera dynamiczne modyfikowanie reguł biznesowych wykorzystywanych przez procesy. • WebSphere Business Monitor

  21. Inne rozwiazania • Jboss i Flux • Oracle: • workflow package, • WF_Engine wraz z Java API

  22. Dziedziny zastosowań • Szybka zmiennosc wymagań (np. plany taryfowe oeratorów t. Komórkowych) • Duże zindywidualizowanie wymagań – planowanie obsługi klientów, sposobów przetwarzania danych itd. • Powtarzalność definicji

  23. .NET Framework 3.x • Workflow Foundation – pierwsze wydanie .NET Framework 4.x • Workflow Foundation – zupełnie zmieniona implementacja

  24. Windows Workflow Foundation • Rodzaje przepływów • Proces sekwencyjny • Proces stanowy • Aktywności • Środowisko uruchomieniowe

  25. Proces sekwencyjny • Proces sekwencyjny składa się z punktu wejscia, punktu wyjścia oraz kolejnych aktywności wykonywanych jedna po drugiej. • Klasa definiująca ten typ procesu dziedziczy po klasie SequentialWorkflowActivity. • Na przebieg wykonania procesu mają wpływ aktywności zmieniające przepływ procesu. • Przebieg procesu może zostać zmieniony w wyniku wystąpienia wyjątków, które mogą być przechwytywane na poziomie pojedynczej aktywności lub całego procesu.

  26. Proces sekwencyjnyPrzykład

  27. Aktywności kontrolujące przepływ • IfElseActivity • IfElseBranchActivity

  28. Aktywności kontrolujące przepływ • WhileActivity

  29. Aktywności kontrolujące przepływ • SequenceActivity • ParallelActivity

  30. Proces stanowy • Zaniechany w WF 4.0/ ponownieudostepniony w WF 4.5 • Proces stanowy jest procesem, który można porównać do skończonej maszyny stanowej. Składa się z • specjalnych aktywności typu StateActivity, które reprezentują stan procesu • połączeń określających możliwe przejścia między stanami. • Spośród aktywności odpowiadających stanom można wyróżnić aktywność początkową oraz opcjonalną aktywność, która symbolizuje zakończenie procesu. • Proces stanowy jest realizowany jako klasa dziedzicząca po StateMachineWorkflowActivity.

  31. Proces stanowy. Przykład

  32. Aplikacja Instancja procesu Środowisko uruchomieniowe Usługi Środowisko uruchomieniowe

  33. WF4.0 Wszystko jest aktywnością CodeActivity AsyncCodeActivity Activity NativeActivity DynamicActivity Workflow jest równieżaktywnością

  34. DynamiczneaktywnościWF4.0 Foo.dll Compile via XAML Build Task <Activity x:Class=“Foo" > <x:Members> <x:Property Name="argument1“ Type="InArgument(x:String)" /> <x:Property Name="argument2” Type="InArgument(x:String)" /> </x:Members> C# (DynamicActivity) Activity x = ActivityXamlServices.Load(xamlFile); WorkflowInvoker.Invoke(x, new Dictionary … ); Execute with DynamicActivity

  35. WorkflowInvoker WF4.0 Foo WorkflowInvoker.Invoke(new foo)

  36. WorkflowApplication WF 4.0 Foo Foo Foo varwa = new WorkflowApplication(new Foo) wa.Run() wa.Cancel() wa.Unload() wa.Persist() wa.ResumeBookmark()

  37. Otoczenie procesu WF4.0 WorkflowServiceHost Foo Foo Foo

  38. WF Persistence WF 4.0 Host WorkflowApplication wa.Persist() Idle

  39. Workflow Events Workflow Runtime Scheduler Tooling raises events Tracking Provider Tracking Profile add Monitoring Data notify Tracking Participant Application Host

  40. Tworzenie WF • WF jest aktywnością • może być napisany w postaci kodu lub zdefiniowany w XAML – lub dowolnym innym formacie (np w jęz. dynamicznym) • Aktywność może zawierać inne aktywności • Aktywność może mieć argumenty we i wy (jak również zmienne) • Aktywności zwracajace warość mają oddzielne klasy bazowe • n.p. CodeActivity<TResult>, NativeActivity<TResult> • WF jest definicją, wg której można utworzyć wiele instancji • Każda instancja ma indywidualne środowisko (zmienne, argumenty) • InArgument

  41. Wykonanie • WF runtime „widzi” aktywności, aktywności, aktywności (nie Sequence, Parallel, Recurrence) • WF runtime jest „sędzią” pilnuje reguł • CacheMetadatasposób auto-opisu aktywności • WF runtime „wie” o zakończeniu aktywności • Aktywność może zlecić wykonanie aktywności potomnej (i. ew. poczekać na jej zakończenie) • Mozliwych jest wiele różnych działań (“pulses of work”) dla jednej aktywności • Możliwe jest wyrażenie dowolnych, złożonych rodzajów przepływów (control flow) • Możliwe jest wiele scieżek wykonania…

  42. Scheduler External Code Work items are executed one at a time within a single workflow instance Activity Code ADD WF Runtime while !EmptyList Execute(next WorkItem) while !EmptyList Execute(next WorkItem) DoBookkeeping() while !EmptyList Execute(next WorkItem)DoBookkeeping() PUSH Some work items are added to the front of the list, others to the back POP WorkItem 1 WorkItem 2 WorkItem 3 WorkItem 4 ENQUEUE

  43. [ scheduler example ] PARALLEL SEQUENCE1 SEQUENCE2 “1” “3” “2” “4” ■ Parallel.Execute Sequence1.Execute Write(“1”).Execute Write(“2”).Execute Sequence1.Continue Parallel.Continue Write(“4”).Execute Sequence2.Execute Write(“3”).Execute Sequence2.Continue Sequence2.Continue Parallel.Continue Sequence1.Continue Workflow Instance Complete! Sequence2.Execute

  44. Scheduler • Jedna instancja Scheduler-a na proces • Zarządza uporządkowana listą zadań jednostkowych • Zadania mogą być dodwane przez aktywności ale również przez hosta lub zewnętrzny kod • Niektóre zdania sa dodawane na poczatek inne na koniec kolejki • Wykonywane jest jedno zadnie na raz • Zadania nie sa przerywane • Pomiędzy zadaniami mogą być realizowane różne operacje np. tracking, persistence

  45. Threading Model • Dla pojedynczej instancji programu jest wykorzystywany jeden wątek na raz • Upraszcza model programowania aktywności • Do poszczegolnych zadań mogą zostać przypisane rózne wątki (jeden na raz)w ramach tej samej instancji • WF runtime korzysta z dostarczonego przez hosta SynchronizationContext • System.Threading.SynchronizationContext • Można wykorzystać dla utworzenia własnych mechanizmów zarzadzania wątkami • Nie mozna wykorzystać TLS dla WF • WF Execution Properties – nazwane własciwośc i widoczne dla poddrzewa WF • WF runetime odpowiada za dołączanie / odłaczanie środowiska brzed/po wykonaniu zadania • Aktywności nie powinny blokować wątku • WF programs coordinate work

  46. Asynchroniczne Aktywności WF Runtime Async Activity I/O code BeginExecute BeginWrite WorkItem AsyncWorkCompletionCallback WorkItem WorkItem WorkItem EndExecute EndWrite WorkItem

  47. Parallel p = new Parallel { Branches = { new WriteToFile { FileName = "a", Bytes = … }, new WriteToFile { FileName = "b", Bytes = … } } }; WorkflowInvoker.Invoke(p); Parallel + asynchroniczne a. = równoległość

  48. Bookmarks • Co się dzieje gdy program musi czekać (i czekac i czekać) na wejście? • Być może czeka również 1000 innych instancji • Potrzebny nieobciążajacy systemu WaitForInput() • Zakładka! • Nazwany punkt wznowienia w WF • Wznowienie wskazuje metodę zwrotną aktywności • WF runtime zarządza wznowieniem – instancja nie musi być w pamięci • Gotowa do użycia aktywność WCF Receive

  49. Bookmark Resumption “Please deliver [data] to instance [id] at bookmark [name]” External Code Activity Code RESUME WF Runtime CREATE ENQUEUE Work item 1 “pizza” Work item 2 Work item 3 Work item 4

  50. Persystencja • Persystencja pozwala wstrzymywać instancję WF, zapisać ją „gdzieś” i wznowić później • Zachowana instancja nie jest związana z konkretnym WF hostem, komputerem, CLR, wątkiem czy procesem • Zalety skalowalność, odporność na upadki • Instancje WF są serializowalne • Stos CLR nie jest serializowalny, ale instancja WF ma stos tylko w trakcie wykonania pojedynczego zadania • Czasem nie chcemy możliwości persystencji - “no persist zone” • Automatyczne założenie podczas asynchronicznych aktywności • Szczegóły implementacji persystencji są niezależne od silnika WF

More Related