Koordynowanie procesów biznesowych w środowiskach SOA
|
|
- Julian Michałowski
- 6 lat temu
- Przeglądów:
Transkrypt
1 XVI Konferencja PLOUG Kościelisko Październik 2010 Koordynowanie procesów biznesowych w środowiskach SOA Krzysztof Jankiewicz, Mateusz Mor, Kamil Kujawiński, Tadeusz Morzy Politechnika Poznańska Krzysztof.Jankiewicz@cs.put.poznan.pl Abstrakt. Długotrwałe procesy biznesowe funkcjonujące w środowiskach SOA, są często konstrukcjami złożonymi. Poszczególne ich fragmenty różnią się między sobą wieloma cechami. Realizacja części z nich jest niezbędna do osiągnięcia sukcesu procesu biznesowego, podczas gdy inne fragmenty mogą mieć charakter opcjonalnych składowych, których fiasko nie musi oznaczać rezygnacji z realizacji całego procesu. Złożoność procesu biznesowego często wynika z umieszczonej w nim obsługi najróżniejszych wyjątków, które mogą zaistnieć podczas jego realizacji. Obsługa ta często ma charakter obsługi systemowej, doprowadzając do wymieszania charakteru biznesowego i systemowego procesu. Wydaje się, że mimo istnienia całego szeregu standardów i specyfikacji związanych z przetwarzaniem długotrwałych procesów biznesowych (WS-BA, WS-BPEL), nie ma rozwiązania, które w wystarczający sposób wspomagałoby twórców procesów w ich pracy. Takim rozwiązaniem może być środowisko Koordynatora Transakcji przedstawione w ramach tego artykułu. Badania, których wyniki są przedstawione w tym artykule, zostały częściowo sfinansowane przez Ministerstwo Nauki i Szkolnictwa Wyższego z Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka projekt IT-SOA nr POIG /08, Informacja o autorach. Krzysztof Jankiewicz jest adiunktem w Instytucie Informatyki Politechniki Poznańskiej. Specjalizuje się w technologiach baz danych ze szczególnym uwzględnieniem danych XML, przestrzennych, pełnotekstowych. Brał udział w kilku dużych projektach informatycznych, kierował realizacją m.in. systemu kadrowo-płacowego wyższej uczelni, systemu informatycznego dla agencji reklamowej. Jest autorem szeregu publikacji o charakterze naukowo-technicznym. Od wielu lat prowadzi szkolenia z technologii i produktów Oracle w ramach Oracle University. W trakcie konferencji, szkół i seminariów PLOUG wielokrotnie prowadził warsztaty, tutoriale i wykłady na tematy wchodzące w zakres jego zainteresowań. Dr hab. inż. Mikołaj Morzy jest adiunktem w Instytucie Informatyki Politechniki Poznańskiej. Jego zainteresowania naukowe koncentrują się przede wszystkim na tematyce eksploracji danych, jest on autorem ponad czterdziestu publikacji dotyczących tej tematyki. Drugą dziedziną zainteresowań i głównym tematem działalności dydaktycznej Mikołaja Morzego są technologie aplikacji internetowych i rozproszonych oraz technologie związane z bazami danych i hurtowniami danych.
2
3 Koordynowanie procesów biznesowych w środowiskach SOA Wstęp Wprowadzenie semantyki transakcji do specyfikacji i przetwarzania złożonych procesów biznesowych w architekturze SOA pozwoliłoby użytkownikom, analogicznie jak w przypadku systemów baz danych i rozproszonych systemów informatycznych, na uproszczenie definiowania obliczeń w kontekście awarii i współbieżności dostępu do danych. Niestety, w systemach opartych na architekturze SOA, mamy do czynienia z asynchronicznymi, złożonymi i długotrwałymi procesami biznesowymi, w których występują luźno powiązani uczestnicy (usługi), powoduje to, że klasyczny model płaskiej transakcji (tzw. flat transaction model) a nawet transakcji zagnieżdżonej (tzw. nested transaction model), dla których cała transakcja jest jednostką atomowości, spójności, izolacji oraz trwałości, jest niewystarczający i niewłaściwy. Należy podkreślić, że problem koordynacji przetwarzania w systemach opartych na architekturze SOA został zauważony już kilka lat temu. W efekcie prac związanych z tym zagadnieniem opracowano szereg protokołów i specyfikacji wspomagających koordynację procesów i implementację przetwarzania transakcyjnego. Można do nich zaliczyć specyfikacje: WS-Coordination w wersji 1.2 [FeJe09], WS-AtomicTransaction (WS-AT) w wersji 1.2 [LiWi09] oraz WS- BusinessActivity (WS-BA) w wersji 1.2 [FrLi09], a także specyfikację języka WS-BPEL (Web Services Business Process Execution Language) [AAA+09]. Struktura artykułu jest następująca. W rozdziale drugim przedstawione zostały główne wnioski z analizy wymienionych wyżej specyfikacji. Rozdział trzeci omawia charakterystykę procesu biznesowego, podczas gdy rozdział czwarty zawiera opis architektury Koordynatora Transakcji. Rozdział piąty poświecony został implementacji zrealizowanej przy wykorzystaniu narzędzia Oracle BPEL Process Manager. Podsumowanie zawarto w rozdziale szóstym. 2. Aktualne specyfikacje Analiza obecnie wspomnianych we wstępie specyfikacji, wspomagających koordynację procesów i implementację przetwarzania transakcyjnego, pozwala zauważyć, że każda z nich posiada pewnego rodzaju ograniczenia, niekiedy też jej użycie wymaga spełnienia szeregu warunków. WS-AT jest przeznaczona tylko dla krótkotrwałych aktywności i nie nadaje się do koordynowania aktywności biznesowych trwających często okres czasu mierzony w dniach lub miesiącach. W ramach tej specyfikacji możliwa jest koordynacja usług, które muszą funkcjonować w zgodnie z ustalonymi warunkami. Przykładowo działania podejmowane przez usługi muszą być realizowane w ramach lokalnych transakcji posiadających własności izolacji i atomowości. Ponadto przetwarzanie musi być wstrzymane w końcowym etapie przetwarzania aktywności i w zależności od sposobu zakończenia aktywności, powinno być zatwierdzane lub wycofywane. Ograniczenia te z oczywistych względów nie są możliwe do spełnienia w każdym przypadku. WS-BA jest specyfikacją przeznaczoną do długotrwałych transakcji biznesowych. Podobnie jak w przypadku WS-AT została ona oparta o specyfikację WS-Coordination co determinuje wykorzystanie procesu koordynatora aktywności oraz wykorzystanie protokołów do komunikowania się pomiędzy uczestnikami aktywności a jej koordynatorem. Jednak w odróżnieniu od specyfikacji WS-AT, która definiuje zarówno protokoły wykorzystywane do współpracy pomiędzy koordynatorem a inicjatorem aktywności, jak również pomiędzy koordynatorem a innymi uczestnikami aktywności (usługami składowymi), specyfikacja WS-BA definiuje jedynie protokoły wykorzystywane do komunikacji pomiędzy koordynatorem a uczestnikami aktywności innymi niż inicjator aktywności. Wynika to z faktu, iż reguły zatwierdzania lub wycofania transakcji biznesowych mogą być bardzo złożone i zgodnie z intencją specyfikacji WS-BA należą one do jej sfery biznesowej. W rezultacie rozwiązania oparte na specyfikacji WS-BA są w ogólności bardzo skompliko-
4 20 Krzysztof Jankiewicz, Mateusz Mor, Kamil Kujawiński, Tadeusz Morzy wane. Twórca procesu biznesowego musi samodzielnie opracować protokół współpracy pomiędzy inicjatorem aktywności a koordynatorem. Alternatywnym rozwiązaniem jest całkowita integracja koordynatora i jego mechanizmów z inicjatorem aktywności, który realizuje proces biznesowym. Rozwiązanie takie prowadzi często do wymieszania elementów biznesowych (wynikających z definicji procesu biznesowego) z mechanizmami systemowymi (wynikającymi z potrzebą koordynacji transakcji), co znacząco wpływa na prostotę i czytelność definicji procesu. Kolejną różnicą pomiędzy specyfikacją WS-AT, a WS-BA jest to, że ta druga zezwala na to aby efekty działania usług uczestniczących w procesie biznesowym miały charakter trwały, a także nieodwracalny, jeszcze zanim proces biznesowy zostanie ukończony. W efekcie, fiasko procesu biznesowego wymaga podjęcia odpowiednich akcji kompensacyjnych. Zgodnie ze specyfikacją WS-BA za operacje kompensacyjne odpowiedzialne są usługi będące uczestnikami aktywności. Inicjacja operacji kompensacyjnych realizowana jest za pomocą komunikatu wysyłanego do poszczególnych usług. Rozwiązanie przyjęte przez specyfikację WS-BA umożliwia jednak jedynie pełną kompensacje działań podjętych przez wszystkie bądź wybrane usługi, nie ma możliwości kompensacji tylko wybranych przez twórcę procesu biznesowego akcji. Specyfikacja WS-BPEL pozwala na definiowanie procesów biznesowych, które w swych założeniach mogą być długotrwałe (LRT). Niestety rozwiązania przyjęte przez specyfikację WS-BPEL zakładają, że elementy takie jak obsługa wyjątków, czy podejmowanie odpowiednich akcji kompensujących należą do twórcy procesu biznesowego. Zatem i tu, podobnie jak w przypadku specyfikacji WS-BA, mamy do czynienia z procesem definiującym elementy biznesowe jak i elementy o charakterze systemowym. Niestety, w odróżnieniu od specyfikacji WS-BA, gdzie kompensacja usługi inicjowana jest za pomocą prostego komunikatu, w przypadku WS-BPEL, twórca procesu biznesowego w celu wykonania działań kompensujących musi zadeklarować wywołanie odpowiednich usług przekazując podczas wywołań odpowiednie parametry. W efekcie definiowanie poprawnie zaprojektowanych procesów biznesowych, jest zadaniem skomplikowanym i wymagającym dużej znajomości wywoływanych usług i ich kompensacyjnych odpowiedników. Na koniec, należy zauważyć, że zarówno specyfikacja WS-BPEL jak i WS-BA w żaden sposób nie nawiązują do problemów związanych ze współbieżną realizacją wielu procesów biznesowych. Powyższe cechy wymienionych specyfikacji skłaniają do zaproponowania takiego rozwiązania, które w znaczący sposób ułatwi tworzenie procesów biznesowych, rozdzieli warstwę biznesową od systemowej, umożliwi tworzenie długotrwałych procesów biznesowych wykorzystujących różnorodne usługi składowe nie koniecznie posiadające określone cechy. Rozwiązanie to powinno umożliwiać odpowiednią koordynację procesów biznesowych w fazie akceptacji (lub odrzucenia), powinno dawać możliwość dokonywania częściowej kompensacji oraz powinno uwzględniać potrzebę wzajemnej koordynacji współbieżnie wykonywanych procesów. 3. Charakterystyka procesów biznesowych Zanim przejdziemy do omówienia zaproponowanego przez nas rozwiązania, dokonamy analizy wymaganych cech procesów biznesowych Złożoność procesu biznesowego W systemach zarządzania baz danych dominuje model przetwarzania oparty na transakcjach posiadających własności ACID [BHG87], w środowiskach opartych na architekturze SOA wykonywanie procesów biznesowych wymaga zastosowania bardziej elastycznych rozwiązań [MTSS03]. Wynika to z tego, że procesy biznesowe bazują na usługach sieciowych, które są luźno ze sobą powiązane, a także z tego, że są to procesy, które nierzadko posiadają złożoną definicję, składającą się z wielu zagnieżdżonych konstrukcji o różnorodnej charakterystyce, ponadto, ich czas trwania może być mierzony w dniach lub miesiącach. Kolejną istotną różnicą jest sposób
5 Koordynowanie procesów biznesowych w środowiskach SOA 21 reakcji na awarie. W przypadku systemów zarządzania bazami danych z reguły obsługa awarii, która ma miejsce w ramach transakcji, polega na systemowym wykonaniu szeregu czynności mających na celu powrót do stanu sprzed rozpoczęcia transakcji. W procesach biznesowych czynności podejmowane w wyniku awarii mogą mieć odmienny charakter, wynika to z faktu, że kształt tych czynności jest często ściśle uzależniony od miejsca awarii w procesie biznesowym. Rozważmy przykład zakupu towaru w sklepie internetowym, proces tego typu może składać się z wielu etapów obejmujących np. złożenie zamówienia, zapłatę za towar, wyprodukowanie towaru, transport towaru do magazynu, dostarczenie towaru do klienta, odbiór towaru. Z punktu widzenia biznesowego zupełnie inne akcje powinny być podjęte w sytuacji, gdy proces ulegnie awarii w wyniku zniszczenia towaru podczas transportu do magazynu (towar powinien być na nowo wyprodukowany i dostarczony do magazynu, po czym proces może być kontynuowany), a zupełnie inne gdy awaria procesu nastąpi w wyniku rezygnacji klienta z zakupionego towaru podczas jego odbioru (towar może zostać z powrotem umieszczony w magazynie). Powyższy przykład wykazuje, że na pewnym poziomie abstrakcji podejście systemowe oparte o mechanizmy transakcyjne nie jest właściwe. Nie zmienia to jednakże faktu, iż automatyzacja i systemowość na niższych poziomach procesu biznesowego mogą być bardzo przydatne. Wyobraźmy sobie złożoność procesu biznesowego, który po każdym kroku, każdym wywołaniu usługi, określa sposób reakcji na awarie, jakie w tym miejscu mogą wystąpić. Proces taki, z punktu widzenia definicji, byłby bardzo skomplikowany. Tymczasem większość procesów biznesowych składa się z szeregu złożonych zadań (podprocesów), opartych dla przykładu na wywołaniu szeregu usług składowych. Wyodrębnienie takich zadań pod postacią transakcji posiadających określone cechy i w sposób systemowy reagujących na zaistniałe w ich wnętrzu awarie, pozwoliłoby znacząco uprościć definicję procesów biznesowych, pozwalając ich twórcom skoncentrować się na zagadnieniach o charakterze biznesowym. Zakładamy zatem, że proces biznesowy może składać się z szeregu transakcji. Awaria procesu biznesowego wymaga od twórcy procesu zdefiniowania odpowiednich akcji, które uwzględnią fakt, iż do czasu awarii część transakcji występujących w procesie biznesowym została wykonana i zatwierdzona. Akcje te definiowane są przez twórcę procesu gdyż mają one z reguły charakter biznesowy. Twórca procesu biznesowego nie musi natomiast troszczyć się o akcje zrealizowane w ramach tych transakcji, które do momentu wystąpienia awarii się nie zakończyły. Ich wycofaniem lub kompensacją zajmują się mechanizmy systemowe transakcji Opcjonalność i obligatoryjność Tak jak zostało to wspomniane wcześniej, procesy biznesowe nierzadko posiadają złożoną definicję, składającą się z wielu zagnieżdżonych konstrukcji o różnorodnej charakterystyce. Aby odwzorować tę złożoność zakładamy, że każda transakcja, podobnie jak proces biznesowy, może być skonstruowana przy użyciu transakcji podrzędnych. Ponadto, zakładamy, że każda z transakcji podrzędnych powinna posiadać własność informującą o tym, czy jej prawidłowe zakończenie jest warunkiem sukcesu nadrzędnej. Pozwoliłoby to w prosty sposób definiować obligatoryjne i opcjonalne składowe transakcji. Aby uzasadnić takie rozwiązanie rozważmy transakcję organizującą zagraniczny wyjazd, zawierającą trzy, kolejno wykonywane, transakcje podrzędne odpowiedzialne za: rezerwację hotelu, zakup biletu na samolot oraz zamówienie taksówki na lotnisko. Nie chcąc aby fiasko transakcji podrzędnej związanej z zamówieniem taksówki było powodem wycofania całej transakcji związanej z wyjazdem, możemy zdefiniować ją jako opcjonalną Zależność i niezależność składowych Kolejną własnością transakcji podrzędnych powinna być zależność lub niezależność od końcowego sukcesu transakcji nadrzędnej. W przypadku transakcji niezależnych, efekty dokonanych przez nie akcji, nie będą zależeć od sukcesu lub porażki transakcji nadrzędnej. W przypadku transakcji zależnych, akcje przez nie podjęte mogą zostać wycofane lub skompensowane nie tylko
6 22 Krzysztof Jankiewicz, Mateusz Mor, Kamil Kujawiński, Tadeusz Morzy na podstawie wycofania transakcji podrzędnej, ale także w wyniku fiaska transakcji nadrzędnej. Ponownie rozważmy transakcję przedstawioną w poprzednim akapicie. Załóżmy, że rezerwacja hotelu oraz zakup biletu na samolot wymaga uiszczenia niezwrotnej zapłaty za skorzystanie z odpowiednich usług. W związku z tym transakcja podrzędna, odpowiedzialna za dokonanie wspomnianej zapłaty, umieszczona przed pozostałymi podrzędnymi transakcjami będzie niezależna nie będzie przedmiotem wycofania lub kompensacji, nawet w przypadku fiaska transakcji nadrzędnej. Pozostałe trzy transakcje podrzędne będą zależne, przykładowo zakończona transakcja obejmująca rezerwację hotelu będzie mogła zostać skompensowana w przypadku fiaska transakcji, odpowiedzialnej za zakup biletu na samolot, która jako obowiązkowa spowoduje wycofanie transakcji podstawowej Częściowe wycofanie transakcji Aby zwiększyć przepustowość systemu przetwarzającego procesy biznesowe, każda wykorzystywana transakcja powinna móc definiować punkty zachowania. Pozwalają one, w przypadku wystąpienia awarii, na częściowe wycofanie (kompensację) podjętych akcji, a następnie wznowienie działań, poprzez ponowienie tych samych czynności lub np. podjęcie czynności alternatywnych. Przykładowo fiasko zakupu biletu na samolot w ramach omawianej transakcji, może zainicjować podjęcie alternatywnych działań, mających na celu zakup biletu, przy wykorzystaniu innych linii lotniczych i nie musi oznaczać automatycznego wycofania całej transakcji. Mając na uwadze omówioną powyżej charakterystykę procesów biznesowych, a także fakt, iż obowiązujące specyfikacje, w chwili obecnej, nie ułatwiają, w sposób wystarczający, definiowania procesów, które funkcjonowałyby zgodnie z tą charakterystyką, postanowiliśmy zaprojektować i zaimplementować środowisko Koordynatora Transakcji. 4. Architektura Koordynatora Transakcji Koordynator Transakcji ma budowę modułową. Poniżej scharakteryzowano moduły wchodzące w skład Koordynatora Transakcji. Moduł Definiowania Transakcji moduł, którego zadaniem jest umożliwienie użytkownikowi końcowemu definiowanie procesu biznesowego z wykorzystaniem poleceń sterujących przetwarzaniem transakcji. Definicja procesu biznesowego ma postać definicji procesu BPEL uzupełnionego o polecenia sterujące przetwarzaniem transakcji. Definicja ta jest nazywana w ramach systemu Definicją Transakcji lub Plikiem Definicji Transakcji. Moduł Zarządcy Transakcji (MZT) zadaniem tego modułu jest realizacja poleceń zawartych Pliku Definicji Transakcji. W szczególności rolę MZT może pełnić dowolny serwer procesów BPEL posiadający funkcjonalność pozwalającą na jego rozbudowę tak aby była możliwa interpretacja poleceń sterujących przetwarzaniem transakcji. Moduł Konstrukcji Transakcji w związku z tym, że polecenia sterujące przetwarzaniem transakcji nie wchodzą w skład standardu języka BPEL, oraz że wymagają one w ramach naszego systemu podjęcia całego szeregu czasami skomplikowanych akcji, wymagają one odpowiedniej interpretacji i przetwarzania. W naszym rozwiązaniu zadanie to realizuje Moduł Konstrukcji Transakcji. Funkcjonuje on w ramach MZT reagując na odpowiednie fragmenty procesów BPEL wymagające ponadstandardowych akcji. Moduł Zarządzania Współbieżnym Dostępem (MZWD) jest modułem, który ma na celu zarządzanie zbiorem równolegle wykonywanych instancji procesów. W celu zarządzania współbieżnym zbiorem procesów współpracuje on z Lokalnymi Zarządcami Spójności (LZS) funkcjonującymi po stronie dostawców usług. Lokalni Zarządcy Zasobów obsługują definicje kompatybilności usług dostarczanych przez określonego dostawcę oraz utrzymują
7 Koordynowanie procesów biznesowych w środowiskach SOA 23 grafy konfliktowej uszeregowalności związane z wywoływaniem obsługiwanego zbioru usług. Z punktu widzenia specyfikacji WS-Coordination moduł ten pełni rolę koordynatora. Moduł Akceptacji Transakcji (MAT) zadaniem tego modułu jest koordynacja procesu akceptacji obejmująca akcje związane z: rozpoczynaniem transakcji, zatwierdzaniem transakcji, wycofywaniem transakcji, tworzeniem punktów zachowania, oraz wycofywaniem do punktu zachowania. Z punktu widzenia specyfikacji WS-Coordination ten moduł również pełni rolę koordynatora. Plik Definicji Transakcji to definicja procesu BPEL uzupełniona o polecenia sterujące przetwarzaniem transakcji i inne deklaracje związane z ich sposobem realizacji. Architekturę systemu przedstawia rys. 1. Rys. 1. Architektura Koordynatora Transakcji Poniżej scharakteryzowano szczegółowo sposób funkcjonowania Koordynatora Transakcji Plik Definicji Transakcji Tak jak zostało to wspomniane przy opisie modułów Koordynatora Transakcji, definicja transakcji to definicja procesu biznesowego wyrażona w języku BPEL. Taki wybór wynikał ze stosunkowo dużej popularności języka BPEL oraz z istnienia wielu serwerów, które umożliwiają wykonywanie procesów biznesowych w nim wyrażonych. W specyfikacji języka BPEL nie istnieją konstrukcje umożliwiające bezpośrednie odwoływanie się do semantyki poleceń sterujących transakcjami. Wymagało to zatem zastosowania rozszerzeń języka BPEL. Rozszerzenia te mogą mieć różną postać, zależną najczęściej od serwera procesów biznesowych, w ramach którego będą wykonywane. Przykładowo w przypadku Apache ODE 2.0 można wykorzystać dostępne w nim rozszerzenia mające postać wstawek umieszczonych w definicji procesu w znacznikach <bpel:extensionactivity> jak na poniższym przykładzie. <bpel:extensionactivity> <ext:begintransaction transname="trans0_2mat" transnamemzwd="trans0_2mzwd" parentname="transmain0mat"> <Independent>no</Independent> <Mandatory>no</Mandatory> </ext:begintransaction> </bpel:extensionactivity> Aby umożliwić tworzenie procesów biznesowych posiadających wymagane przez nas własności zdefiniowaliśmy następujące rozszerzenia języka BPEL: begintransaction rozpoczyna transakcję, w tym również transakcję zagnieżdżoną.
8 24 Krzysztof Jankiewicz, Mateusz Mor, Kamil Kujawiński, Tadeusz Morzy preinvoke jedyne rozszerzenie mające charakter systemowy, dzięki niemu istnieje możliwość wykonania koniecznych czynności związanych z wywołaniem usługi w ramach transakcji. savepoint zadaniem tego rozszerzenia jest stworzenie tzw. punktu zachowania umożliwiającego transakcji biznesowej dokonanie kompensacji (wycofanie) części wywołań usług składowych. rollback zadaniem tego rozszerzenia jest wykonanie kompensacji całej transakcji lub części z wywołanych w jej ramach usług składowych. commit zadaniem rozszerzenia commit jest zatwierdzenie całej transakcji i jej ostateczne zakończenie. Oczywiście pod każdym rozszerzeń kryć muszą się odpowiednie akcje o charakterze systemowym. Tylko dzięki takim akcjom transakcje definiowane w ramach procesu biznesowego mogą pozostawać proste w swej definicji, jednocześnie zachowując podczas wykonywania zadeklarowane cechy Moduł Definiowania Transakcji Zadaniem Modułu Definiowania Transakcji jest umożliwienie użytkownikowi końcowemu definiowania procesu biznesowego z wykorzystaniem poleceń sterujących przetwarzaniem transakcji Po przeanalizowaniu różnych możliwości zdecydowaliśmy na wykorzystanie platformy Eclipse. Jest ona w chwili obecnej bardzo popularna, pozwala na definiowanie procesów biznesowych w języku BPEL (Eclipse BPEL Designer), i co najważniejsze posiada duże możliwości rozbudowy. Stworzona przez nas wtyczka znacząco ułatwia definiowanie rozszerzeń sterujących transakcjami, przekształcając edytor definicji procesów biznesowych BPEL funkcjonujący w ramach platformy Eclipse w Moduł Definiowania Transakcji. Definiowanie wspomnianych rozszerzeń może odbywać się w sposób wizualny. Na rysunku 2. widać początkową postać definicji procesu biznesowego, w zakładce będącej paletą narzędzi można zauważyć na dole paletę dotyczącą rozszerzeń transakcyjnych. Za pomocą mechanizmu drag and drop można uzupełnić definicję procesu o rozszerzenia będące rozpoczęciem transakcji, zatwierdzeniem transakcji, deklaracją wywołania usługi itd. Dla każdego rozszerzenia posiadającego możliwe do zdefiniowania własności, Moduł Definiowania Transakcji umożliwia ich wizualną edycję, przykładowo na rysunku 3. przedstawiona jest edycja własności rozszerzenia begintransaction. Końcowa postać prostego procesu biznesowego wykorzystującego pojedynczą transakcję została przedstawiona na rysunku 4. Moduł Definiowania Transakcji w sposób automatyczny uzupełnia definicję procesu o istotne, z punktu widzenia wykorzystywanych rozszerzeń, składowe. Na rysunku 6. przedstawiono fragment definicji procesu obejmujący rozszerzenia języka BPEL. Moduł Definiowania Transakcji może być wykorzystany nie tylko do definiowania prostych procesów biznesowych składających się z pojedynczych transakcji, ale także złożonych procesów biznesowych wykorzystujących wiele transakcji, w tym transakcje zagnieżdżone. Fragment graficznej reprezentacji procesu złożonego przedstawiono na rysunku 5.
9 Koordynowanie procesów biznesowych w środowiskach SOA 25 Rys. 2. Początkowa postać procesu Rys. 3. Edycja własności rozszerzenia Rys. 4. Końcowa postać procesu Rys. 5. Graficzna reprezentacja procesu złożonego Rys. 6. Rozszerzenie języka BPEL (Apache ODE)
10 26 Krzysztof Jankiewicz, Mateusz Mor, Kamil Kujawiński, Tadeusz Morzy 4.3. Moduł Zarządcy Transakcji Modułem Zarządcy Transakcji (MZT) jest serwer języka BPEL. Jego zadaniem jest wykonywanie operacji zawartych w procesach zdefiniowanych przy wykorzystaniu języka BPEL. Oprócz czynności wynikających bezpośrednio z instrukcji języka BPEL, dzięki rozszerzeniom języka BPEL i zaimplementowanej obsłudze rozszerzeń, współpracuje on dodatkowo z innymi modułami Koordynatora Transakcji, przykładowo z Modułem Akceptacji Transakcji. Każdorazowe pojawienie się rozszerzenia w definicji procesu BPEL powoduje przeniesienie przetwarzania do implementacji rozszerzenia. Dzięki temu możliwe jest, w ramach procesu biznesowego, wykonywanie niezbędnych, dodatkowych działań np. mających na celu sterowanie i koordynację procesu. Z punktu widzenia architektury systemu obsługą rozszerzeń zajmuje się Moduł Konstrukcji Transakcji. Dla większej czytelności artykułu został on omówiony po przedstawieniu modułów, z którymi współpracuje Moduł Akceptacji Transakcji Moduł Akceptacji Transakcji został zaimplementowany w oparciu o specyfikację WS- Coordination. Jego zadaniem jest koordynacja procesu transakcji w zakresie: aktywacji transakcji, rejestracji punktów zachowania, akceptacji transakcji, wycofania częściowego transakcji (do wskazanego punktu zachowania), wycofania pełnego transakcji. Z punktu widzenia specyfikacji WS-Coordination MAT pełni rolę procesu koordynatora i z tego powodu udostępnia następujące usługi: Aktywacji zadaniem usługi aktywacji jest stworzenie tzw. kontekstu koordynacji, który pełni rolę identyfikatora transakcji wspólnego dla wszystkich uczestników pojedynczej instancji transakcji wykonywanej w ramach procesu biznesowego. Usługę aktywacji funkcjonującą w ramach MAT wywołuje MZT, w rezultacie otrzymuje kontekst koordynacji. Kontekst koordynacji jest wykorzystywany przez niego podczas rejestracji jako uczestnika aktywności. Ponadto kontekst koordynacji przekazywany jest (w nagłówkach komunikatów) usługom wywoływanym w ramach transakcji, dzięki temu mogą one również zarejestrować się jako uczestnicy tej samej koordynowanej aktywności. Rejestracji zadaniem tej usługi jest rejestracja uczestnika aktywności na podstawie przesłanego przez niego kontekstu koordynacji. Uczestnicy aktywności mogą pełnić różną rolę w procesie jej koordynacji, i tak dla MAT uczestnikiem aktywności będą zarówno MZT przetwarzający Plik Definicji Transakcji jak i usługi składowe wywoływane na podstawie zapisów w Pliku Definicji Transakcji. Zgodnie ze specyfikacją WS-Coordination MAT komunikuje się z uczestnikami aktywności za pomocą określonych protokołów. Protokoły te wynikają z typów koordynacji ustalanych podczas tworzenia kontekstu koordynacji. W przypadku MAT opracowane zostały dwa protokoły. Pierwszy z nich EnhancedCompletion wykorzystywany jest do współpracy MAT z inicjatorem aktywności Modułem Zarządcy Transakcji. Drugi z protokołów Enhanced2PC wykorzystywany jest natomiast do współpracy MAT z innymi uczestnikami aktywności usługami składowymi. Poniżej przedstawiono każdy z protokołów, jego komunikaty, a także diagram stanów Protokół EnhancedCompletion Protokół EnhancedCompletion jest wykorzystywany w komunikacji pomiędzy nadzorującym wykonanie transakcji Modułem Zarządcy Transakcji, zwanym poniżej inicjatorem aktywności, a procesem koordynatora Modułem Akceptacji Transakcji. Komunikaty wymieniane w ramach tego protokołu są następujące:
11 Koordynowanie procesów biznesowych w środowiskach SOA 27 RegisterInvocation wysyłany przez inicjatora aktywności. Każdorazowo przed wywołaniem usługi składowej MZT wysyła do MAT informację o fakcie wywołania określonej usługi komunikat RegisterInvocation. Koordynator zapisuje tę informację w dzienniku wycofania i potwierdza inicjatorowi fakt przyjęcia i zapisania tej informacji komunikat RegisterInvocationResponse. Dopiero po otrzymaniu odpowiedzi MZT może wykonywać dalsze działania np. wywołać określoną usługę składową. RegisterInvocationResponse wysyłany przez MAT w odpowiedzi na komunikat Register- Invocation. Potwierdza on tym samym fakt zarejestrowania wywołania usługi składowej w dzienniku wycofania. Savepoint - wysyłany przez inicjatora aktywności w celu zarejestrowania przez MAT faktu zaistnienia w procesie biznesowym punktu zachowania. Zadaniem punktów zachowania jest tworzenie nazwanych miejsc w transakcjach, do których będzie możliwość skompensowania przetwarzania. W momencie pojawienia się w Pliku Definicji Transakcji instrukcji utworzenia punktu zachowania, MZT (inicjator) wysyła do MAT (koordynator) informację o jego zaistnieniu w komunikacie Savepoint. Koordynator zapisuje informację o punkcie zachowania w dzienniku wycofania i potwierdza ten fakt inicjatorowi za pomocą komunikatu SavepointResponse. Po otrzymaniu potwierdzenia MZT może realizować dalsze działania. SavepointResponse wysyłany przez MAT w odpowiedzi na komunikat Savepoint. Potwierdza on tym samym fakt zarejestrowania punktu zachowania w dzienniku wycofania. Commit - wysyłany przez inicjatora aktywności w celu zainicjowania przez MAT procedury zatwierdzenia i zakończenia transakcji. Commited wysyłany przez MAT po zatwierdzeniu transakcji. Komunikat ten pełni rolę odpowiedzi na komunikat Commit i potwierdza fakt zatwierdzenia i zakończenia transakcji. Rollback wysyłany przez inicjatora aktywności w celu zainicjowania przez MAT procedury wycofania i zakończenia transakcji. Aborted wysyłany przez MAT do inicjatora aktywności w dwóch sytuacjach: jako potwierdzenie wykonania akcji wycofywania transakcji w wyniku komunikatu Rollback, albo jako informacja o zakończonym niepowodzeniem zatwierdzeniu transakcji. SavepointRollback wysyłany przez inicjatora aktywności w celu zainicjowania przez MAT procedury skompensowania (wycofania) transakcji do wskazanego punktu zachowania. W momencie pojawienia się w Pliku Definicji Transakcji instrukcji wycofania do punktu zachowania, MZT (inicjator) wysyła do MAT (koordynator) informację o tym fakcie w komunikacie SavepointRollback. Koordynator przy współpracy z uczestnikami aktywności i na podstawie zapisów w dzienniku wycofania wykonuje operacje kompensacji dla tych akcji, które miały miejsce od wystąpienia punktu zachowania o określonej nazwie. Następnie potwierdza fakt wykonania czynności inicjatorowi za pomocą komunikatu SavepointAborted. Po otrzymaniu potwierdzenia MZT może kontynuować wycofaną w części transakcję. SavepointAborted wysyłany przez MAT do inicjatora aktywności jako potwierdzenie wykonania akcji wycofywania transakcji do punktu zachowania. Diagram stanów dla protokołu EnhancedCompletion został przedstawiony na rys.7.
12 28 Krzysztof Jankiewicz, Mateusz Mor, Kamil Kujawiński, Tadeusz Morzy Rys. 7. Diagram stanów dla protokołu EnhancedCompletion Rys. 8. Diagram stanów dla protokołu Enhanced2PC Protokół Enhanced2PC Protokół Enhanced2PC jest wykorzystywany w komunikacji pomiędzy usługami składowymi wykorzystywanymi w procesie biznesowym a procesem koordynatora MAT. Komunikaty wymieniane w ramach protokołu Enhanced2PC są następujące: RegisterCompensation zadaniem komunikatu jest przekazanie przez uczestnika aktywności (usługa składowa) informacji do MAT o usłudze kompensacji związanej z danym wywołaniem usługi składowej. Usługi składowe przy każdym wywołaniu, po (lub przed) wykonaniu akcji, wysyłają do MAT (koordynator) informację wskazującą na usługę kompensującą, której zadaniem jest kompensacja efektów wywołania usługi komunikat Register- Compensation. Koordynator zapisuje tę informację w dzienniku wycofania (razem z zapisaną już wcześniej informacją o wywołaniu usługi) i potwierdza usłudze składowej fakt przyjęcia i zapisania tej informacji komunikat RegisterCompensationResponse. RegisterCompensationResponse wysyłany przez MAT do uczestnika aktywności jako potwierdzenie zarejestrowania usługi kompensacji. Prepare powiadamia uczestnika o tym, że aktywność wchodzi w pierwszą fazę protokołu zatwierdzania dwufazowego i powinien on głosować za możliwym zatwierdzeniem transakcji (komunikat Prepared). Jeżeli transakcja nie jest znana uczestnikowi, wówczas musi on głosować za wycofaniem transakcji (komunikat Aborted). Jeżeli uczestnik dokonał już wcześniejszego wyboru i głosował już w sprawie danej transakcji, powinien wysłać komunikat o takiej samej treści. Prepared informuje koordynatora o tym, że uczestnik aktywności jest gotowy i głosuje za zatwierdzeniem transakcji. Commit powiadamia uczestnika o tym, że należy doprowadzić do zatwierdzenia transakcji. Komunikat ten może być wysłany tylko po pierwszej fazie protokołu i jedynie w przypadku gdy wszyscy uczestnicy transakcji zagłosowali za jej zatwierdzeniem. Jeżeli uczestnik transakcji nie posiada informacji na temat danej transakcji musi wysłać komunikat Commited do koordynatora. Commited za pomocą tego komunikatu koordynator (MAT) jest informowany, że uczestnik zatwierdził zmiany dotyczące transakcji. Taki uczestnik może zostać bezpiecznie skasowany z pamięci koordynatora. Rollback powiadamia uczestnika aktywności o tym, że należy wycofać transakcję i zapomnieć o jej istnieniu. Komunikat z tą informacją może być wysłany zarówno w pierwszej jak i w drugiej fazie protokołu.
13 Koordynowanie procesów biznesowych w środowiskach SOA 29 Aborted informuje koordynatora (MAT), że uczestnik wycofał transakcję, a także nie przechowuje już o niej żadnej informacji. ReadOnly informuje koordynatora, że uczestnik głosuje za zatwierdzeniem transakcji oraz, że nie przechowuje on już informacji o danej transakcji. Uczestnik nie będzie uczestniczył w drugiej fazie protokołu.. Diagram stanów dla protokołu Enhanced2PC został przedstawiony na rys Mechanizm zarządzania współbieżną realizacją procesów biznesowych W ramach Koordynatora Transakcji został zaimplementowany także mechanizm zarządzania współbieżną realizacją procesów biznesowych. Został on oparty o Moduł Zarządzania Współbieżnym Dostępem (MZWD) oraz z Lokalnych Zarządców Spójności (LZS), którzy zostali zaprojektowani i zaimplementowani ze względu na zastosowane przez nas podejście. Należy w tym miejscu zaznaczyć, że rozwiązanie, które wykorzystaliśmy było w znaczący sposób zainspirowane pomysłem zaprezentowanym w ramach pracy [ADN06]. Szczegóły przyjętego przez nas rozwiązania zostały zaprezentowane poniżej Wykorzystywane moduły Moduł Zarządzania Współbieżnym Dostępem z punktu widzenia specyfikacji WS- Coordination pełni on rolę koordynatora, podobnie jak Moduł Akceptacji Transakcji. Różnica polega na charakterze tej roli. MZWD odpowiada za koordynację procesu biznesowego w zakresie zarządzania współbieżną realizacją procesów biznesowych. Moduł Zarządcy Transakcji serwer procesów biznesowych wraz z Modułem Konstrukcji Transakcji (obsługującym rozszerzenia języka BPEL). Jest on odpowiedzialny za utworzenie kontekstu koordynacji w ramach wymagającej tego transakcji, rejestrację jako jednego z uczestników aktywności w ramach kontekstu, przekazywanie kontekstów koordynacji do wywoływanych usługach składowych i komunikację z koordynatorem w ramach ustalonego protokołu. Wymienione czynności wynikają z mechanizmów zarządzania współbieżną realizacją procesów biznesowych. Ponadto MZT realizuje szereg innych działań jako serwer procesów biznesowych, nie związanych z kontrolą współbieżnej realizacji procesów biznesowych, np. wywołuje zgodnie z definicją procesów usługi składowe. Lokalny Zarządca Spójności z punktu widzenia specyfikacji WS-Coordination funkcjonuje jako usługa protokołu, lub po prostu uczestnik aktywności. Po stronie każdego dostawcy usług, który udostępnia usługi będące między sobą w konflikcie (biznesowym), zainstalowana jest pojedyncza instancja LZS. Tam też definiowana jest macierz usług konfliktowych, z której korzysta LZS przy wykrywaniu wywołań usług konfliktowych. Podczas wywoływania usług, w ramach poszczególnych transakcji, LZS na podstawie macierzy usług konfliktowych utrzymuje lokalny graf konfliktowej uszeregowalności Moduł Zarządzania Współbieżnym Dostępem Jak już wspomniano, z punktu widzenia specyfikacji WS-Coordination, MZWD pełni rolę koordynatora. W związku z tym udostępnia on między innymi usługi aktywacji kontekstu koordynacji, oraz rejestracji w ramach utworzonego kontekstu koordynacji. Funkcjonują one w sposób analogiczny jak w przypadku omówionego wcześniej Modułu Akceptacji Transakcji, dlatego nie będą w tymi miejscu szczegółowo omawiane. Różnica polega na innych uczestnikach aktywności oraz na innych protokołach wykorzystywanych do komunikacji pomiędzy koordynatorem a uczestnikami aktywności. W przypadku MZWD wykorzystywane są dwa protokoły, które zostały opisane poniżej.
14 30 Krzysztof Jankiewicz, Mateusz Mor, Kamil Kujawiński, Tadeusz Morzy Protokół TransactionFinalizationProtocol Protokół TransactionFinalizationProtocol służy do komunikacji pomiędzy koordynatorem (MZWD) a Modułem Zarządcy Transakcji. W ramach protokołu wysyłane są następujące komunikaty: od Modułu Zarządcy Transakcji do koordynatora: Complete komunikat będący instrukcją zatwierdzenia transakcji. Po odbiorze tego komunikatu koordynator rozpoczyna algorytm zatwierdzania, czyli wysyła komunikat Complete w ramach protokołu ConcurrentAccessControlProtocol do Lokalnych Zarządców Spójności będących uczestnikami koordynowanej aktywności. Close komunikat informujący koordynatora o fakcie zakończenia koordynowanej transakcji. Po odbiorze tego komunikatu koordynator informuje Lokalnych Zarządców Spójności o zakończeniu transakcji i możliwości usunięcia wpisów na jej temat (wysyła komunikat Close w ramach protokołu ConcurrentAccessControlProtocol). Savepoint komunikat informujący koordynatora o fakcie utworzenia punktu zachowania. Rollback komunikat będący instrukcją wycofania transakcji. Komunikat rozpoczyna algorytm wycofywania transakcji, czyli wysłanie komunikatów Rollback w ramach protokołu ConcurrentAccessControlProtocol do Lokalnych Zarządców Spójności będących uczestnikami koordynowanej aktywności. SavepointRollback komunikat będący instrukcją częściowego wycofania transakcji. Komunikat rozpoczyna algorytm częściowego wycofywania, czyli wysłanie komunikatów SavepointRollback w ramach protokołu ConcurrentAccessControlProtocol. od koordynatora do Modułu Zarządcy Transakcji: Completed komunikat informujący o zakończeniu zatwierdzania transakcji przez MZWD i możliwości kontynuowania tego procesu. Komunikat jest zezwoleniem na zakończenie zatwierdzania transakcji. W sytuacji gdy zatwierdzanie przebiegnie pomyślnie kolejnym krokiem jest wysłanie przez Moduł Zarządcy Transakcji komunikatu Close, jeśli wystąpią problemy podczas zatwierdzania wówczas MZT może wysłać komunikat Rollback. Closed informuje MZT o fakcie zakończenia obsługi koordynowanej transakcji. Aborted informuje MZT o fakcie zakończenia wycofywania koordynowanej transakcji. SavepointAborted komunikat informujący MZT o fakcie zakończenia częściowego wycofywania koordynowanej transakcji. Compensate komunikat informujący MZT o potrzebie dokonania wycofania/kompensacji koordynowanej transakcji ze względu na mechanizm zarządzania współbieżną realizacją procesów. Przykładem takiej sytuacji może być pełne wycofanie transakcji poprzedzającej koordynowaną transakcję. Rysunek 9. przedstawia diagram stanów protokołu TransactionFinalizationProtocol.
15 Koordynowanie procesów biznesowych w środowiskach SOA 31 Rys. 9. Diagram stanów dla protokołu TransactionFinalizationProtocol Rys. 10. Diagram stanów dla protokołu ConcurrentAccessControlProtocol Protokół ConcurrentAccessControlProtocol Protokół ConcurrentAccessControlProtocol służy do komunikacji pomiędzy koordynatorem (Modułem Zarządzania Współbieżnym Dostępem) a Lokalnymi Zarządcami Spójności. W ramach protokołu wysyłane są następujące komunikaty: od koordynatora do Lokalnych Zarządców Spójności: Complete informuje Lokalnych Zarządców Spójności o rozpoczętej procedurze zatwierdzania transakcji i oczekiwaniu na głosy Lokalnych Zarządców Spójności za zatwierdzeniem usługi. Zatwierdzanie jest kontynuowane tylko, gdy wszystkie głosy są Completed, w przypadku pojedynczego głosu Wait zatwierdzanie jest opóźnione, w przypadku pojedynczego głosu Compensate zatwierdzanie jest anulowane. Close informuje Lokalnych Zarządców Spójności o zakończonej obsłudze koordynowanej transakcji. LocalCompensate wysyłany przez koordynatora do Lokalnych Zarządców Spójności gdy w wyniku głosowania opisanego w omówieniu komunikatu Complete należy wycofać daną transakcję. Komunikat jest wysyłany tylko do tych Lokalnych Zarządców Spójności, którzy głosowali Completed lub Wait i nie głosowali Compensate. Rollback informuje Lokalnych Zarządców Spójności o fakcie wycofania koordynowanej transakcji, wymuszając modyfikację lokalnych grafów konfliktowej uszeregowalności. Jeśli w wyniku aktualizacji zostanie naruszona spójność grafu konfliktowej uszeregowalności wysyłany jest komunikat Compensate do koordynatorów odpowiednich transakcji. Odpowiedzią na komunikat Rollback jest komunikat Aborted. Przez naruszenie spójności grafu konfliktowej uszeregowalności rozumie się, usunięcie z grafu węzła, który poprzedzał inne węzły, w takiej sytuacji konieczne jest usunięcie poprzedzanych węzłów i tym samym wycofanie reprezentowanych przez te węzły transakcji poprzedzanych. SavepointRollback - nakazuje Lokalnym Zarządcom Spójności modyfikację lokalnych grafów konfliktowej uszeregowalności, która uwzględni fakt częściowej kompensacji transakcji. od Lokalnego Zarządcy Spójności do koordynatora: Completed wysyłany wówczas gdy LZS głosuje za zatwierdzeniem transakcji. Closed komunikat potwierdza zakończenie obsługi transakcji po stronie LZS, Wait wysyłany wówczas gdy LZS głosuje za opóźnieniem zatwierdzania transakcji. Sytuacja ta występuje, gdy zatwierdzana transakcja jest poprzedzana w grafie konfliktowej uszeregowalności przez wciąż aktywną transakcję. Istnieje wówczas konieczność oczekiwania
16 32 Krzysztof Jankiewicz, Mateusz Mor, Kamil Kujawiński, Tadeusz Morzy na zakończenie aktywnej transakcji poprzedzającej. W zależności od sposobu jej zakończenia określany jest sposób zakończenia transakcji koordynowanej. Compensate wysyłany wówczas gdy LZS głosuje za wycofaniem transakcji. Komunikat Compensate jest wysyłany gdy: podczas oczekiwania na zakończenie innej transakcji (patrz komunikat Wait) upłynie określony timeout, lub też gdy dana transakcja ma zostać wycofana np. ze względu na naruszenie spójności grafu konfliktowej uszeregowalności w wyniku wycofywania innej transakcji. Aborted komunikat jest potwierdzeniem wycofania transakcji. SavepointAborted potwierdzenie częściowego wycofania transakcji. Rysunek 10. przedstawia diagram stanów protokołu ConcurrentAccessControlProtocol. Wykorzystanie MZWD dało możliwość poprawnej realizacji współbieżnie wykonywanych procesów biznesowych, która uwzględnia konfliktowość biznesową poszczególnych usług. Należy zaznaczyć, że zastosowane podejście optymistyczne nie zapewnia transakcjom własności izolacji Moduł Konstrukcji Transakcji Koordynator Transakcji posiadający budowę modułową wykorzystuje dwa moduły pełniące z punktu widzenia specyfikacji WS-Coordination rolę koordynatorów MAT oraz MZWD. Obydwa moduły koordynują te same transakcje. Każdy z nich ma swój jasno określony cel. MAT zapewnia spełnienie deklarowanych cech poszczególnych transakcji (obligatoryjności, zależności), dokonuje kompensacji transakcji podczas wycofywania, a także współpracuje z uczestnikami aktywności podczas zatwierdzania transakcji. MZWD zapewnia spójność realizacji dla współbieżnie wykonywanych transakcji. Każdy ze wspomnianych modułów może funkcjonować osobno, zapewniając odpowiednie dla siebie własności. Jednak w sytuacji gdy oba moduły funkcjonują w ramach jednego środowiska Koordynatora Transakcji konieczna jest ich współpraca. Wszystkie komunikaty inicjujące kolejne etapy przetwarzania transakcji wysyłane są przez Moduł Konstrukcji Transakcji (funkcjonujący w ramach Modułu Zarządcy Transakcji), w ramach protokołów EnhancedCompletion lub TransactionFinalizationProtocol, który interpretuje rozszerzenia języka BPEL występujące w Pliku Definicji Transakcji i zamienia je na odpowiednie akcje. Moduł Konstrukcji Transakcji jest uczestnikiem aktywności (w imieniu MZT) zarówno dla MAT jak i MZWD. W naturalny zatem sposób współpraca pomiędzy modułami koordynatorów odbywa się za jego pośrednictwem. Rozwiązanie to jest o tyle uzasadnione, że to Moduł Konstrukcji Transakcji na podstawie definicji transakcji wie, jakie mechanizmy koordynacji w poszczególnych przypadkach są potrzebne. Moduł Konstrukcji Transakcji odpowiedzialny jest za przetwarzania czterech instrukcji sterujących transakcjami (rozszerzeń języka BPEL) begintransaction, commit, rollback, savepoint, które mogą być zapisane w definicji procesów biznesowych (Pliku Definicji Transakcji). Sposób obsługi tych instrukcji w sytuacji gdy oba moduły koordynacji są wykorzystywane opisano poniżej Rozpoczęcie transakcji instrukcja begintransaction W przypadku wystąpienia instrukcji begintransaction Moduł Konstrukcji Transakcji podejmuje kolejno następujące akcje. 1. Aktywacja instancji koordynatora MAT oraz odbiór adresu rejestracji i kontekstu koordynacji, który będzie przekazywany w nagłówkach komunikatów wysyłanych do usług. 2. Aktywacja instancji koordynatora MZWD oraz odbiór adresu rejestracji i kontekstu koordynacji, który będzie przekazywany w nagłówkach komunikatów wysyłanych do usług.
17 Koordynowanie procesów biznesowych w środowiskach SOA Rejestracja (pod adresem uzyskanym w punkcie 1.) w koordynatorze MAT jako uczestnika protokołu EnhancedCompletion oraz odbiór adresu koordynatora MAT. 4. Rejestracja (pod adresem uzyskanym w punkcie 2.) w koordynatorze MZWD jako uczestnika protokołu TransactionFinalizationProtocol oraz odbiór adresu koordynatora MZWD Zatwierdzenie transakcji instrukcja commit W przypadku wystąpienia instrukcji commit Moduł Konstrukcji Transakcji podejmuje kolejno następujące akcje. 1. Wysłanie komunikatu complete do koordynatora MZWD, oczekiwanie na odpowiedź koordynatora. 2. W zależności od rodzaju odpowiedzi od koordynatora MZWD: (a) w przypadku otrzymania komunikatu compensate: i. do koordynatora MAT wysyłany jest komunikat rollback, ii. odbiór komunikatu aborted od koordynatora MAT, iii. koniec obsługi instrukcji commit, (b) w przypadku otrzymania komunikatu completed i. przejście do punktu Wysłanie komunikatu commit do koordynatora MAT, oczekiwanie na odpowiedź koordynatora. 4. W zależności od rodzaju odpowiedzi od koordynatora MAT: (a) w przypadku otrzymania komunikatu aborted: i. do koordynatora MZWD wysyłany jest komunikat rollback, ii. odbiór komunikatu aborted od koordynatora MZWD, iii. koniec obsługi instrukcji commit, (b) w przypadku otrzymania komunikatu committed i. przejście do punktu Wysłanie komunikatu close do koordynatora MZWD, oczekiwanie na odpowiedź koordynatora. 6. Otrzymanie komunikatu closed od koordynatora MZWD Wycofywanie pełne transakcji instrukcja rollback bez wskazanego punktu zachowania W przypadku wystąpienia instrukcji rollback bez wskazanego punktu zachowania Moduł Konstrukcji Transakcji podejmuje kolejno następujące akcje. 1. Wysłanie komunikatu rollback do koordynatora MAT, oczekiwanie na odpowiedź koordynatora. 2. Otrzymanie komunikatu aborted od koordynatora MAT. 3. Wysłanie komunikatu rollback do koordynatora MZWD, oczekiwanie na odpowiedź koordynatora. 4. Otrzymanie komunikatu aborted od koordynatora MZWD Tworzenie punktu zachowania instrukcja savepoint W przypadku wystąpienia instrukcji savepoint Moduł Konstrukcji Transakcji podejmuje kolejno następujące akcje.
18 34 Krzysztof Jankiewicz, Mateusz Mor, Kamil Kujawiński, Tadeusz Morzy 1. Wysłanie komunikatu savepoint do koordynatora MAT z informacją o numerze operacji oraz nazwie punktu zachowania. 2. Wysłanie komunikatu savepoint od koordynatora MZWD z informacją o numerze operacji oraz nazwie punktu zachowania Wycofywanie do punktu zachowania instrukcja rollback ze wskazanym punktem zachowania W przypadku wystąpienia instrukcji rollback ze wskazanym punktem zachowania Moduł Konstrukcji Transakcji podejmuje kolejno następujące akcje. 1. Wysłanie komunikatu savepointrollback do koordynatora MAT z nazwą punktu zachowania, oczekiwanie na odpowiedź koordynatora. 2. Otrzymanie komunikatu savepointaborted od koordynatora MAT. 3. Wysłanie komunikatu savepointrollback do koordynatora MZWD z nazwą punktu zachowania, oczekiwanie na odpowiedź koordynatora. 4. Otrzymanie komunikatu savepointaborted od koordynatora MZWD. 5. Oracle BPEL Process Manager jako Moduł Zarządcy Transakcji Koordynator Transakcji ma budowę modułową, która jest na tyle elastyczna, że może być dopasowana do różnych konfiguracji systemów przetwarzających procesy biznesowe. W szczególności można sobie wyobrazić funkcjonowanie Koordynatora Transakcji opartego o różne serwery procesów biznesowych. Serwer procesów biznesowych w ramach Koordynatora Transakcji pełni rolę Modułu Zarządcy Transakcji. W pierwotnej konfiguracji w tym celu wykorzystany został serwer Apache ODE w wersji 2.0, w którym można wykorzystać rozszerzenia definicji procesów BPEL mające postać własnych konstrukcji umieszczonych w znacznikach <bpel:extensionactivity>. Aby udowodnić tezę o elastyczności przyjętego przez nas rozwiązania postanowiliśmy dokonać jego implementacji w oparciu o Oracle BPEL Process Manager Wymagania Aby była możliwość implementacji Modułu Zarządcy Transakcji w ramach serwera procesów BPEL konieczne jest spełnienie przez niego kilku warunków: Mechanizmy Modułu Konstrukcji Transakcji zostały zaimplementowane przy wykorzystaniu języka Java. Implementacja każdego z rozszerzeń wymienionych w punktach 4.1 oraz 4.5 zrealizowana została za pomocą oddzielnej klasy Javy. Aby możliwe było odpowiednie wykorzystanie Modułu Konstrukcji Transakcji w ramach serwera procesów BPEL muszą istnieć konstrukcje, które w trakcie przetwarzania procesu BPEL pozwolą korzystać z zewnętrznych klas Javy. Mechanizmy Modułu Konstrukcji Transakcji, rozszerzające funkcjonalność serwera procesów BPEL muszą mieć możliwość wykorzystywania zmiennych środowiska BPEL, definiowanych w ramach procesu biznesowego. Zmienne te wykorzystywane są do przechowywania niezbędnych podczas koordynacji, a także do wymiany tej informacji pomiędzy kolejnymi akcjami Modułu Konstrukcji Transakcji podejmowanymi na rzecz tych samych transakcji. Ze względu na fakt iż Modułem Zarządcy Transakcji nie zawsze jest stroną inicjującą pewne zdarzenia i musi również reagować na komunikaty zewnętrzne wysyłane od modułów
Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi
Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska Plan prezentacji 1 Architektura
Bardziej szczegółowoObsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska
Obsługa transakcji rozproszonych w języku j Java Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska Plan prezentacji Transakcje i ich własności Proste transakcje w JDBC
Bardziej szczegółowoCENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI
CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI Instrukcja użytkownika Narzędzie do modelowania procesów BPEL Warszawa, lipiec 2009 r. UNIA EUROPEJSKA EUROPEJSKI FUNDUSZ
Bardziej szczegółowoBazy danych. Andrzej Łachwa, UJ, /15
Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 12/15 WSPÓŁBIEŻNOŚĆ Serwer bazodanowy nie może obsługiwać klientów sekwencyjnie: wszyscy musieli by czekać
Bardziej szczegółowoI. Techniki wielowersyjne sterowania współbieżnością
I. Techniki wielowersyjne sterowania współbieżnością Techniki wielowersyjne multiversion concurrency control. Technika wielowersyjna oparta na znacznikach czasu Dla każdej wersji X i elementu X przechowywane
Bardziej szczegółowoZarządzanie transakcjami
Zarządzanie transakcjami Właściwości ACID Przyjmuje się, że transakcje i protokoły zarządzania transakcjami powinny posiadać właściwości ACID: Atomowość (atomicity) każda transakcja stanowi pojedynczą
Bardziej szczegółowoCurrenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3
Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...
Bardziej szczegółowoWykład Ćwiczenia Laboratorium Projekt Seminarium
WYDZIAŁ ELEKTRONIKI KARTA PRZEDMIOTU Nazwa w języku polskim Języki programowania Nazwa w języku angielskim Programming languages Kierunek studiów (jeśli dotyczy): Informatyka - INF Specjalność (jeśli dotyczy):
Bardziej szczegółowoPlan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych
Plan wykładu 2 BAZY DANYCH Wykład 5: Transakcje. Hurtownie danych. Transakcje Hurtownie danych Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka Wprowadzenie Przykład Zmiany zachodzące
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoZdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1
Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego
Bardziej szczegółowoBazy danych 2. Wykład 1
Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu
Bardziej szczegółowoDeduplikacja danych. Zarządzanie jakością danych podstawowych
Deduplikacja danych Zarządzanie jakością danych podstawowych normalizacja i standaryzacja adresów standaryzacja i walidacja identyfikatorów podstawowa standaryzacja nazw firm deduplikacja danych Deduplication
Bardziej szczegółowoTemat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
Bardziej szczegółowoXQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
Bardziej szczegółowoOpis zmian w wersji G Oprogramowania do Obsługi SR/FA/SW/ST/DM
Opis zmian w wersji G-1.03-2-5.0 Oprogramowania do Obsługi SR/FA/SW/ST/DM 1. Dodanie komunikatu informującego o nieaktualnej wersji JAVY JRE na stacji klienckiej, wyświetlanego w przypadku, gdy system
Bardziej szczegółowoZAMAWIAJĄCY. CONCEPTO Sp. z o.o.
Grodzisk Wielkopolski, dnia 11.02.2013r. ZAMAWIAJĄCY z siedzibą w Grodzisku Wielkopolskim (62-065) przy ul. Szerokiej 10 realizując zamówienie w ramach projektu dofinansowanego z Programu Operacyjnego
Bardziej szczegółowowersja dokumentu 1.0 data wydania 2008.11.14
HERMESEDI System elektronicznej wymiany dokumentów w systemie EDI/ECOD wersja dokumentu 1.0 data wydania 2008.11.14 Syriusz sp. z o.o. Rzeszów 2008 SPIS TREŚCI: 1. Przeznaczenie... 3 2. Schemat pracy...
Bardziej szczegółowo1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3
Plan wykładu Spis treści 1 Przetwarzanie transakcyjne 1 1.1 Cechy transakcji................................. 2 1.2 Rozpoczęcie i zakończenie........................... 3 1.3 Punkty bezpieczeństwa.............................
Bardziej szczegółowoWS-Transaction (WS-TX) i transakcje z kontrolowaną przejrzystością
Polsko-Japońska Wyższa Szkoła Technik Komputerowych WS-Transaction (WS-TX) i transakcje z kontrolowaną przejrzystością Poza ACID i 2PC koncepcje mechanizmów transakcji wspierających procesy biznesowe Edgar
Bardziej szczegółowoInstalacja SQL Server Express. Logowanie na stronie Microsoftu
Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy
Bardziej szczegółowoAUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7
AUREA BPM Oracle TECNA Sp. z o.o. Strona 1 z 7 ORACLE DATABASE System zarządzania bazą danych firmy Oracle jest jednym z najlepszych i najpopularniejszych rozwiązań tego typu na rynku. Oracle Database
Bardziej szczegółowoEXSO-CORE - specyfikacja
EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.
Bardziej szczegółowoWprowadzenie do zarządzania procesami biznesowymi
Wprowadzenie do zarządzania procesami biznesowymi Definicja procesu Proces jest jednostką pracy obejmującą wiele czynności, wykonywanych w ogólności przez różnych wykonawców i w sposób współbieżny. Proces
Bardziej szczegółowoPojęcie bazy danych. Funkcje i możliwości.
Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór
Bardziej szczegółowoDiagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska
Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Wprowadzenie Modelowanie biznesowe jest stykiem między
Bardziej szczegółowo<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>
Wersja [Uwaga: Niniejszy wzór dostarczony jest w celu użytkowania z Unified Process for EDUcation. Tekst zawarty w nawiasach kwadratowych i napisany błękitną kursywą
Bardziej szczegółowoTransakcje. (c) Instytut Informatyki Politechniki Poznańskiej
ransakcje Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy izolacji transakcji, blokady, zakleszczenie Definicja
Bardziej szczegółowoOpis podstawowych modułów
Opis podstawowych modułów Ofertowanie: Moduł przeznaczony jest dla działów handlowych, pozwala na rejestrację historii wysłanych ofert i istotnych zdarzeń w kontaktach z kontrahentem. Moduł jest szczególnie
Bardziej szczegółowoOpis zmian funkcjonalności platformy E-GIODO wprowadzających możliwość podpisania wniosku bezpośrednio w oknie przeglądarki.
Opis zmian funkcjonalności platformy E-GIODO wprowadzających możliwość podpisania wniosku bezpośrednio w oknie przeglądarki. Wstęp. Opisane poniżej zmiany wprowadzają modyfikacje platformy e-giodo w zakresie
Bardziej szczegółowoPobieranie komunikatów GIF
Spis treści Wstęp... 2 1. Ustawienia harmonogramu zadań... 3 1.1. Tryby pracy AswPlan... 3 2. System KS-EWD... 4 2.1. Instalacja KS-EWD... 5 3. Inauguracja OSOZ... 6 3.1. Zdefiniowanie zadania pobierania
Bardziej szczegółowoPHP: bazy danych, SQL, AJAX i JSON
1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji
Bardziej szczegółowoKS-ZSA. Mechanizm centralnego zarządzania rolami
KS-ZSA Mechanizm centralnego zarządzania rolami 1. Opis funkcjonalności W KS-ZSA zostaje udostępniona funkcji centralnego zarządzania rolami. W samym programie jest możliwość tworzenia centralnej roli
Bardziej szczegółowoStan globalny. Krzysztof Banaś Systemy rozproszone 1
Stan globalny Krzysztof Banaś Systemy rozproszone 1 Stan globalny Z problemem globalnego czasu jest związany także problem globalnego stanu: interesuje nas stan systemu rozproszonego w konkretnej pojedynczej
Bardziej szczegółowoDokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV
Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium
Bardziej szczegółowoPraca Magisterska "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu" AUTOR PROMOTOR
System Oferta Praca Magisterska Niniejszy system powstał w ramach pracy magisterskiej "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu". Politechnika Poznańska Wydział Informatyki
Bardziej szczegółowoPodstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
Bardziej szczegółowoReplikacje. dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej. Kontakt:
dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej Kontakt: piotr.dziwinski@kik.pcz.pl Replikacje 2 1 Podstawowe pojęcia Strategie replikacji Agenci replikacji Typy replikacji Modele replikacji Narzędzia
Bardziej szczegółowoWypożyczalnia VIDEO. Technologie obiektowe
Wypożyczalnia VIDEO Jest to program do obsługi wypożyczalni i wypożyczeń klientów. Głównym zadaniem programu jest zarządzanie wypożyczeniami i drukowanie potwierdzenia wypożyczenia oraz naliczenie punktów
Bardziej szczegółowoMiędzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4
Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka
Bardziej szczegółowo1 Wprowadzenie do J2EE
Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2
Bardziej szczegółowoWymiana studencka w serwisie USOSWeb składanie wniosków o wyjazdy zagraniczne objęte programem Erasmus
Wymiana studencka w serwisie USOSWeb składanie wniosków o wyjazdy zagraniczne objęte programem Erasmus SPIS TREŚCI Wprowadzenie... 2 Interfejs studenta... 2 Przeglądanie ofert... 3 Pierwszy etap rekrutacji
Bardziej szczegółowoImplementacja mechanizmu SkyCashClick Wersja 0.1
Implementacja mechanizmu SkyCashClick Wersja 0.1 SkyCash 1/6 Spis treści: 1. Opis usługi... 3 2. Osadzenie przycisku SkyCashClick... 4 2.1. Parametry transakcji... 4 2.2. Weryfikacja znacznika parametrów
Bardziej szczegółowoNarzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl
Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z
Bardziej szczegółowoSystem zarządzający grami programistycznymi Meridius
System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu
Bardziej szczegółowoKompensowalność w procesach biznesowych
XVII Konferencja PLOUG Kościelisko Październik 2011 Kompensowalność w procesach biznesowych Hubert Gęzikiewicz, Krzysztof Jankiewicz, Tadeusz Morzy Politechnika Poznańska, Instytut Informatyki e mail:
Bardziej szczegółowoRok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c
Wymagania edukacyjne w technikum ADMINISTROWANIE BAZAMI DANYCH kl. 4c Lp. 1 2 4 5 Temat Zasady dotyczące zarządzania projektem podczas prac związanych z tworzeniem bazy oraz cykl życiowy bazy Modele tworzenia
Bardziej szczegółowoDiagramy przypadków użycia. WYKŁAD Piotr Ciskowski
Diagramy przypadków użycia WYKŁAD Piotr Ciskowski Diagram przypadków użycia definiowanie wymagań systemowych graficzne przedstawienie przypadków użycia, aktorów, związków między nimi występujących w danej
Bardziej szczegółowoWymiana studencka w serwisie USOSWeb składanie wniosków o wyjazdy zagraniczne objęte programem Erasmus
Wymiana studencka w serwisie USOSWeb składanie wniosków o wyjazdy zagraniczne objęte programem Erasmus SPIS TREŚCI Wprowadzenie... 2 Interfejs studenta... 2 Przeglądanie ofert... 3 Pierwszy etap rekrutacji
Bardziej szczegółowoSystemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.
Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową..
Bardziej szczegółowoZagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)
Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu
Bardziej szczegółowoVinCent Administrator
VinCent Administrator Moduł Zarządzania podatnikami Krótka instrukcja obsługi ver. 1.01 Zielona Góra, grudzień 2005 1. Przeznaczenie programu Program VinCent Administrator przeznaczony jest dla administratorów
Bardziej szczegółowoCEMEX Go. Katalog zamówień i produktów. Wersja 2.1
Katalog zamówień i produktów Wersja 2.1 Katalog zamówień i produktów Stawiając na innowacje i doskonaląc obsługę Klienta, firma CEMEX stworzyła zintegrowane rozwiązanie cyfrowe, nazwane, które pozwoli
Bardziej szczegółowoInstrukcja użytkownika bgk24 Moduł Konsolidacja Finansów Publicznych
Instrukcja użytkownika bgk24 Moduł Konsolidacja Finansów Publicznych Spis treści 1 Konsolidacja finansów publicznych... 2 1.1 Lista dyspozycji... 2 1.1.1 Szczegóły dyspozycji... 3 1.1.2 Modyfikacja dyspozycji...
Bardziej szczegółowoPodręcznik Użytkownika LSI WRPO
Podręcznik użytkownika Lokalnego Systemu Informatycznego do obsługi Wielkopolskiego Regionalnego Programu Operacyjnego na lata 2007 2013 w zakresie wypełniania wniosków o dofinansowanie Wersja 1 Podręcznik
Bardziej szczegółowoAnaliza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji
Analiza i programowanie obiektowe 2016/2017 Wykład 6: Projektowanie obiektowe: diagramy interakcji Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Przejście
Bardziej szczegółowoprzykłady problemów; realizacja dostaw części od producenta do klienta:
Przetwarzanie transakcyjne Transakcja zestaw operacji pod szczególną kontrolą transakcja to sekwencja operacji, która musi zakończyć się sukcesem w całości - w przeciwnym wypadku musi powrócić stan początkowy
Bardziej szczegółowoSystemy obiegu informacji i Protokół SWAP "CC"
Systemy obiegu informacji i Protokół SWAP Grzegorz Blinowski "CC" Grzegorz.Blinowski@cc.com.pl http://www.cc.com.pl/ tel (22) 646-68-73; faks (22) 606-37-80 Problemy Integracja procesów zachodzących w
Bardziej szczegółowoREFERAT O PRACY DYPLOMOWEJ
REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja mobilnego systemu wspomagającego organizowanie zespołowej aktywności fizycznej Autor: Krzysztof Salamon W dzisiejszych czasach życie ludzi
Bardziej szczegółowoBazy danych w sterowaniu
Bazy danych w sterowaniu systemy transakcyjne sterowanie dostępem współbieżnym Stan spójny bazy danych zgodność z możliwym stanem reprezentowanego fragmentu świata rzeczywistego; spełnione są wszystkie
Bardziej szczegółowoTECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek
TECHNOLOGIE OBIEKTOWE WYKŁAD 2 Anna Mroczek 2 Diagram czynności Czym jest diagram czynności? 3 Diagram czynności (tak jak to definiuje język UML), stanowi graficzną reprezentację przepływu kontroli. 4
Bardziej szczegółowoWybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej Java Enterprise Edition WebServices Serwer aplikacji GlassFish Dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Aplikacje
Bardziej szczegółowoZdalne monitorowanie i zarządzanie urządzeniami sieciowymi
Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Infomatyki Stosowanej Piotr Benetkiewicz Nr albumu: 168455 Praca magisterska na kierunku Informatyka
Bardziej szczegółowoZAPYTANIE OFERTOWE. nr 1/UE/2014. z dnia 7.01.2014 r. w związku z realizacją projektu pn.
Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Rozwoju Regionalnego ZAPYTANIE OFERTOWE nr /UE/204 z dnia 7.0.204 r. w związku z realizacją projektu pn. Wdrożenie
Bardziej szczegółowoDokument Detaliczny Projektu
Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej
Bardziej szczegółowoPodyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle
Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle EFEKTY KSZTAŁCENIA Wiedza Absolwent tej specjalności
Bardziej szczegółowoTworzenie i obsługa wirtualnego laboratorium komputerowego
Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego
Bardziej szczegółowoINSTRUKCJA UŻYTKOWNIKA Repozytorium Dokumentów Elektronicznych KS-EDE ISO 9001:2008 Dokument: 2015.0.0.7 Wydanie: 2015-08
Spis treści Wstęp... 2 1. System KS-EWD... 2 1.1. Instalacja KS-EWD... 2 2. Aktualizacja plików repozytorium Dokumentów... 4 2.1.1. Instalacja KS-EDE... 7 3. Integracja systemów... 8 4. Konfiguracja ustawień
Bardziej szczegółowoDokumentacja aplikacji Szachy online
Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja
Bardziej szczegółowoProgramowanie Komponentowe WebAPI
Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,
Bardziej szczegółowoOracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 7 Dynamiczny SQL i PL/SQL Pierwotny dynamiczny SQL Pierwotny dynamiczny DDL Pierwotny dynamiczny DML i SELECT Pakiet DBMS_SQL Transakcje
Bardziej szczegółowoDokumentacja projektu QUAIKE Architektura oprogramowania
Licencjacka Pracownia Oprogramowania Instytut Informatyki Uniwersytetu Wrocławskiego Jakub Kowalski, Andrzej Pilarczyk, Marek Kembrowski, Bartłomiej Gałkowski Dokumentacja projektu QUAIKE Architektura
Bardziej szczegółowoWebowy generator wykresów wykorzystujący program gnuplot
Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący
Bardziej szczegółowoAkademia Techniczno-Humanistyczna w Bielsku-Białej
Akademia Techniczno-Humanistyczna w Bielsku-Białej Wydział Budowy Maszyn i Informatyki Laboratorium z sieci komputerowych Ćwiczenie numer: 9 Temat ćwiczenia: Aplikacje klient-serwer. 1. Wstęp teoretyczny.
Bardziej szczegółowoZastosowania Robotów Mobilnych
Zastosowania Robotów Mobilnych Temat: Zapoznanie ze środowiskiem Microsoft Robotics Developer Studio na przykładzie prostych problemów nawigacji. 1) Wstęp: Microsoft Robotics Developer Studio jest popularnym
Bardziej szczegółowoBazy danych i ich aplikacje
ORAZ ZAPRASZAJĄ DO UDZIAŁU W STUDIACH PODYPLOMOWYCH Celem Studiów jest praktyczne zapoznanie słuchaczy z podstawowymi technikami tworzenia i administrowania bazami oraz systemami informacyjnymi. W trakcie
Bardziej szczegółowoSpis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7
I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego
Bardziej szczegółowoArchitektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.
Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,
Bardziej szczegółowoZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia 23.03.2015 r.
ZAPYTANIE OFERTOWE Wrocław, dnia 23.03.2015 r. W związku z realizacją przez Nova Telecom spółka z ograniczoną odpowiedzialnością, projektu pn.: Wdrożenie zintegrowanego systemu klasy B2B, umożliwiającego
Bardziej szczegółowoJęzyk BPEL. Bussiness Process Execution Language
Język BPEL Bussiness Process Execution Language Język BPEL BPEL jest (Web Services) Business Process Execution Language, standaryzowany przez OASIS BPEL jest językiem bazującym na XML służącym do definiowania
Bardziej szczegółowoModelowanie i Programowanie Obiektowe
Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do
Bardziej szczegółowoIntegrator ze sklepem internetowym (dodatek do Sage Symfonia ERP Handel)
Integrator ze sklepem internetowym (dodatek do Sage Symfonia ERP Handel) Cena brutto: 11672.7 Cena netto: 9490 Integracja Symfonia ERP Handel z dowolnym sklepem internetowym usprawnia proces składania
Bardziej szczegółowo2. INSPEKTOR OCHRONY DANYCH OSOBOWYCH
KARTA INFORMACYJNA 1. ADMINISTRATOR Administratorem Państwa danych osobowych jest XOPERO SOFTWARE S.A. z siedzibą w Gorzowie Wlkp., ul. Herberta 3, 66-400 Gorzów Wlkp., zarejestrowana w Rejestrze Przedsiębiorców
Bardziej szczegółowoUsługi analityczne budowa kostki analitycznej Część pierwsza.
Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.
Bardziej szczegółowoArchitektury Usług Internetowych. Laboratorium 2. Usługi sieciowe
Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache
Bardziej szczegółowo4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Bardziej szczegółowoMulti-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne
Architektury i technologie integracji danych Systemy Mediacyjne Multi-wyszukiwarki Wprowadzenie do Mediacyjnych Systemów Zapytań (MQS) Architektura MQS Cechy funkcjonalne MQS Cechy implementacyjne MQS
Bardziej szczegółowoSystem kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010
System kontroli wersji - wprowadzenie Rzeszów,2 XII 2010 System kontroli wersji System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy
Bardziej szczegółowoWarstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.
Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy
Bardziej szczegółowoInternetowa sieć laboratoriów fotograficznych
Internetowa sieć laboratoriów fotograficznych Wstęp Pragniemy przedstawić Państwu profesjonalny system umożliwiający stworzenie internetowej sieci laboratoriów fotograficznych realizujących usługę wywołania
Bardziej szczegółowoSPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD
Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości
Bardziej szczegółowoZINTEGROWANY SYSTEM ZARZĄDZANIA TREŚCIĄ
ZINTEGROWANY SYSTEM ZARZĄDZANIA TREŚCIĄ INSTRUKCJA UŻYTKOWNIKA DLA REDAKTORÓW Modułu ANKIETY v 3.0 WWW.CONCEPTINTERMEDIA.PL 1 1. WPROWADZENIE Rys. 1 Widok modułu ankiet od strony Internauty (pytanie) Rys.
Bardziej szczegółowoLaboratorium Technologii Informacyjnych. Projektowanie Baz Danych
Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w
Bardziej szczegółowoSystem Obsługi Wniosków
System Obsługi Wniosków Wersja 2.0 1 System Obsługi Wniosków wersja 2.0 System Obsługi Wniosków to nowoczesne rozwiązanie wspierające proces obsługi wniosków o produkty bankowe. Pozwala na przyjmowanie,
Bardziej szczegółowoSiR_13 Systemy SCADA: sterowanie nadrzędne; wizualizacja procesów. MES - Manufacturing Execution System System Realizacji Produkcji
System informatyczny na produkcji: Umożliwi stopniowe, ale jednocześnie ekonomiczne i bezpieczne wdrażanie i rozwój aplikacji przemysłowych w miarę zmiany potrzeb firmy. Może adoptować się do istniejącej
Bardziej szczegółowoForum Client - Spring in Swing
Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy
Bardziej szczegółowoProblemy optymalizacji, rozbudowy i integracji systemu Edu wspomagającego e-nauczanie i e-uczenie się w PJWSTK
Problemy optymalizacji, rozbudowy i integracji systemu Edu wspomagającego e-nauczanie i e-uczenie się w PJWSTK Paweł Lenkiewicz Polsko Japońska Wyższa Szkoła Technik Komputerowych Plan prezentacji PJWSTK
Bardziej szczegółowoPrzewodnik po wskaźnikach dla Działania 2.3 Programu Operacyjnego Innowacyjna Gospodarka 2007-2013
Przewodnik po wskaźnikach dla Działania 2.3 Programu Operacyjnego Innowacyjna Gospodarka 2007-2013 W punkcie 14. formularza wniosku o dofinansowanie w ramach Działania 2.3 POIG należy wypełnić tabelę skwantyfikowanych
Bardziej szczegółowoTom 6 Opis oprogramowania
Część 4 Narzędzie do wyliczania wielkości oraz wartości parametrów stanu Diagnostyka stanu nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 30 maja 2012 Historia dokumentu Nazwa
Bardziej szczegółowoPojęcie systemu baz danych
Pojęcie systemu baz danych System baz danych- skomputeryzowany system przechowywania danych/informacji zorganizowanych w pliki. Składa się z zasadniczych elementów: 1) Danych 2) Sprzętu 3) Programów 4)
Bardziej szczegółowo