Get Adobe Flash player
The official site of the project's partner

postheadericon How to apply SOA-enT

No translation.

System SOA-enT można zastosować w wielu dziedzinach, przykładowo mogą to być:

  • inwestycje budowlane,
  • akcje ratunkowe,
  • logistyka i transport kolejowy.

Aby zastosować system SOA-enT w nowej dziedzinie należy:

  1. Zdefiniować środowisko wykonania usług dla nowej dziedziny w Słowniku Pojęć:
    • wyspecyfikować typy usług,
    • wyspecyfikować typy dokumentów wykorzystywanych i wytwarzanych przez te typy usług.
  2. Zaimplementować Serwery Usług dla nowych typów przy pomocy dostarczonych narzędzi (w tym interfejsów graficznych dla typów dokumentów).
  3. Dostosować konfigurację pozostałych komponentów (jeżeli jest to konieczne).

Przykład zastosowania systemu

Prześledźmy przykład zastosowania systemu SOA-enT w logistyce np. w transporcie kolejowym. Przykładowo może to być proces biznesowy polegający na zakupie towaru w Szczecinie i przewozie go do sklepu w Biłgoraju.

Przykładowy abstrakcyjny plan procesu biznesowego

Aranżacja i wykonanie tak przedstawionego procesu ogólnie będzie przebiegać następująco:

  1. Aranżacja:
    • Zapytanie ofertowe,
    • Oferta,
    • Wybór oferty.
  2. Wykonanie:
    • Zamówienie,
    • Umowa,
    • Wykonanie usługi,
    • Protokół odbioru,
    • Faktura,
    • Płatność.

Przyglądając się szczegółowo poszczególnym krokom proces biznesowy będzie miał następujący przebieg:

Aranżacja

1.1. Zakup towaru w hurtowni z dostawą do stacji załadunkowej,

Wybór oferty oznacza, że zamawiający towar wie, skąd ma on być pobrany (ze Szczecina) a dostarczony do Biłgoraja. Może to być wykorzystane do aranżacji innych usług związanych z omawianym procesem.

1.2. Wypożyczenie wagonu do przewozu towaru ze Szczecina do Biłgoraja:

W zapytaniu ofertowym należy określić miejscowość z i do której zamawiający chciałby odstawić wagon.

2.1. Przewóz wagonu z towarem ze Szczecina do Biłgoraja:

Okazuje się, że nie ma takiej firmy kolejowej (ew. propozycje są zbyt kosztowne) – nikt w ustalonym czasie przez zamawiającego nie odpowie na to zapytanie. Z analizy sytuacji wynika, że PKP Cargo może przewieźć ze Szczecina do Sławkowa, a LHS ze Sławkowa do Biłgoraja. Wobec tego:

  • Zapytanie ofertowe (dokument) do firmy PKP Cargo,  
  • Oferta (dokument),
  • Wybór oferty,
  • Zapytanie ofertowe (dokument) do firmy LHS,
  • Oferta (dokument),
  • Wybór oferty.

3.1. Odesłanie wagonu z Biłgoraja do Hrubieszowa:

Można by proces (usługę) wypożyczenia wagonu połączyć z procesem (usługą) odesłania wagonu. I takie zapytanie ofertowe można również złożyć. Wybieramy dwa procesy, gdyż takie rozwiązanie jest dla nas „najlepsze” (np. z powodu ceny lub odpowiedzialności za ew. uszkodzenia wagonu).

Wykonanie zaaranżowanego planu

1.1. Zakup towaru w hurtowni w Szczecinie i dostarczenie do stacji przeładunkowej:

1.2. Wypożyczenie wagonu do przewozu towaru ze Szczecina do Biłgoraja:

Wypożyczanie wagonu może być wykonywane w tym samym czasie co i zakup towaru z hurtowni.

2.1.a. Przewiezienie wagonu z towarem ze Szczecina do Sławkowa przez PKP Cargo:

2.1.b. Przewiezienie wagonu ze Sławkowa do Biłgoraja przez LHS:

3.1. Odesłanie wagonu do Hrubieszowa:

System SOA-enT zapewnia automatyzację procesów biznesowych tzn.:

  • Automatyczne generowanie, przesyłanie i przetwarzanie dokumentów:
    • Semantyczny opis dokumentów przetwarzanych przez usługi,
    • Klient zleca zadanie:
      • zakup i dostawa towaru (wspomaganie),
    • Generowanie abstrakcyjnego planu realizacji zadania (automatyzacja),
    • Plan konkretny: aranżacja i koordynacja kroków planu abstrakcyjnego (automatyzacja),
    • Wykonanie planu konkretnego i zapewnienie transakcji (automatyzacja ze wspomaganiem)
  • Klucz do automatyzacji - Formalna specyfikacja dziedziny w Słowniku, tj. formalny opis dokumentów przetwarzanych przez usługi,
  • Na podstawie Słownika:
    • Definiowanie interfejsów (opisów) usług,
    • Implementacja interfejsów komunikacyjnych usług (menadżer usługi),
    • Rozszerzenie (na podstawie Słownika) Menadżera Zadań  do wspomagania (automatyzacji) obsługi zleceń.

Jak już wspomniano na wstępie aby dostosować system SOA-enT do nowej dziedziny należy: zdefiniować w Słowniku Pojęć środowisko wykonania usług związane z daną dziedziną, zaimplementować serwery usług dla nowych typów oraz jeśli jest to konieczne dostosować konfigurację pozostałych komponentów.

Słownik pojęć – definiowanie środowiska wykonania usług

Słownik pojęćSłownik służy do definiowania pojęć na potrzeby automatyzacji procesów biznesowych w różnych środowiskach.

W celu opisania interfejsów usług oraz formułowania zadań definiujemy w słowniku :

  • Atrybuty - np.: nazwisko użytkownika.
  • Typy - np.: dane adresowe klienta.
  • Typy dokumentów np.:. Faktura.
  • Typy usług- abstrakcyjne opisy operacji usługi:
    • funkcja - abstrakcyjny opis operacji wykonywanej przez usługę,
    • typy dokumentów wejściowych
    • typy dokumentów wyjściowych
  • Kategorie - grupują typy usług - mają strukturę hierarchiczną zgodną z klasyfikacją towarów i usług CPV.
  • Przestrzenie nazw - grupują pojęcia dla specyficznej dziedziny.

Dodatkowo dostępne są mechanizmy agregacji i dziedziczenia typów oraz importowanie i eksportowanie definicji w różnych językach (xsd, wsdl, owl).

Słownik pojęć - dodawanie kategoriiWprowadzenie opisu nowego środowiska wykonania usług rozpoczynamy od zdefiniowania kategorii, np., definiujemy kategorie dla usług transportu kolejowego.

Następnie definiujemy typy dokumentów. Na podstawie rzeczywistych dokumentów (np. list przewozowy), opracowujemy strukturę typu tego dokumentu, którą potem dodamy do Słownika.

W kolejnym kroku definiujemy typ usługi firmy kolejowej PKP LHS. Dodajemy potrzebne typy dokumentów wejściowych i wyjściowych. Typ usługi umieszczamy w odpowiedniej kategorii usług transportu kolejowego.

Dodajemy typy innych usług potrzebnych do zrealizowania procesu logistycznego. Wykorzystujemy istniejące już w słowniku oraz dodane typy dokumentów.

Aby usługa mogła być użyta jako "zwykły" Web serwis, możemy  wygenerować opis jej interfejsu jako dokument WSDL. Generujemy dokument WSDL opisujący usługę firmy PKP LHS.

Szczegółowe informacje na temat korzystania ze słownika i definiowania w nim elementów środowiska wykonania usług można znaleźć w pomocy dołączonej do słownika pod adresem: http://gf.itsoa.ipipan.eu/itsoaontology/help.html. Została ona przygotowana w formie e-lekcji.

Serwery usług dla nowych typów usług

Do wytworzenia serwery usług dla nowych typów usług, można wykorzystać przygotowane w tym celu narzędzia wspomagające implementację.

  • Serwery usług są aplikacjami programowymi, umożliwiającymi usługodawcom:
    • Tworzenie kont, dzięki czemu są oni jednoznacznie identyfikowani w systemie.
    • Składanie ofert  i rejestrację usług, których możliwości wykonawcze są opisane poprzez te oferty.
    • Obsługę i zarządzanie dokumentami związanymi z wywołaniem usług (korzystaniem z usług przez klientów).

Architekturę serwera usług przedstawia poniższy rysunek:

Architektura serwera usług

Zaprojektowane narzędzia wspomagają proces tworzenia aplikacji spełniających funkcje serwerów usług.

W poszczególnych etapach, tworząc nową aplikację serwera usług programista:

  • Zakłada projekt serwera usług,
  • Implementuje logikę biznesową związaną z przetwarzaniem dokumentów (Menadżer Dokumentów),
  • Tworzy interfejsy do obsługi dokumentów przez użytkowników systemu (usługodawców i usługobiorców),
    • Wykorzystuje elementy interfejsów umieszczone w repozytorium interfejsów
  • Umieszcza nowopowstałe elementy interfejsu w repozytorium interfejsów,  w celu powtórnego wykorzystania przy implementacji innych serwerów usług pracujące na tych samych typach dokumentów,
  • Tworzy konfigurację dla interfejsów wykorzystywanych przez dany typ usługi

Nowy projekt aplikacji serwera usług powstaje przy użyciu narzędzia (pluginu Eclipse) stanowiącego rozszerzenie Web Tools Platform (Faceted Project Framework),

  • wybór typu usługi, który jest zdefiniowany w słowniku,
  • określenie nazw dla kluczowych komponentów aplikacji,
  • konfiguracje komponentów (m.in. dla kontenera IoC)

Ponadto do każdej aplikacji serwera usług można dodać możliwość obsługi kolejnego typu usługi.

Jednym z typów komponentów, które trzeba zaimplementować dla każdego typu usługi z osobna jest Menadżer Dokumentów. Z myślą o programistach został zaimplementowany system pomocy pracujący na danych słownikowych:

  • Podpowiada składnię,
  • oPilnuje hierarchii typów,
  • oWykorzystuje specjalne adnotacje.

Programista musi również wytworzyć warstwę webową – modele dokumentów. Jest ona tworzona w oparciu o paradygmat MVC. Narzędzie (w postaci pluginu Eclipse) pozwala na tworzenie modeli dokumentów (komponenty Java Beans) na podstawie danych zapisanych w słowniku.

Modele tworzone są na podstawie typów zapisanych w słowniku, ale nie muszą być ich odbiciem w stosunku 1:1. Mogą być spłaszczone (daje to większą wydajność), nie muszą zawierać wszystkich atrybutów (parametry systemowe), obsługują warianty (faza aranżacji).

Modele posiadają metody konwertujące:

  • createDocumentElement (lub createElement) – konwersja modelu na Element,
  • createDocumentModel (lub createModel) – konwersja Element-u na model.

Każdy element modelu może być skonfigurowany przy użyciu 3 flag (domyślnie wszystkie mają wartość false),

  • ignored – element interfejsu jest pomijany podczas prezentacji danych użytkownikowi,
  • readonly – element znajduje się w trybie tylko do odczytu
  • optional – element jest opcjonalny – nie musi być wypełniony przez użytkownika.

Jeśli element nie posiada bezpośredniej konfiguracji, to jest ona dziedziczona po elemencie nadrzędnym. Wszystkie pola danej sekcji są z reguły, albo do edycji, albo tylko do odczytu).

Zostały zaimplementowane tagi JSP, wspierające tworzenie formularzy.

  • DocumentTag – generuje etykietę, zapisuje w żądaniu podstawowe informacje dotyczące dokumentu,
  • SectionTag – generuje sekcję dokumentu, obsługuje zagnieżdżenia sekcji, wprowadza auto-numerację.
  • InputTag, SelectTag, TextAreaTag, itd.. – produkują podstawowe kontrolki wraz z etykietą i informacją o obligatoryjności (integracja z konfiguracją)
  • ModelBindTag – wiąże element dokumentu na danym poziomie, wykorzystuje konfigurację dokumentu w celu podjęcia decyzji o pominięciu elementu (pomijanie sekcji w fazie aranżacji)

Repozytorium interfejsów.
Głównym czynnikiem powstania Repozytorium Interfejsów była potrzeba zarządzania zaimplementowanymi modelami, skryptami jsp i plikami internacjonalizacyjnymi, tworzącymi interfejs użytkownika.

  • Istniejące elementy mogą być powtórnie wykorzystane do implementacji interfejsów dla nowych typów dokumentów,
  • Istniejące interfejsy dla pełnych dokumentów są wykorzystywane w implementacji serwerów usług wykorzystujących te same typy dokumentów,
  • Wszystkie interfejsy dokumentów oraz ich konfiguracje są wykorzystywane przez Menadżera Zadań.

Po umieszczeniu w repozytorium interfejsów wymaganych przez dany typ usługi, możliwa jest konfiguracja tych interfejsów (pod ten typ usługi). Każdy serwer usług oraz Menadżer Zadań mogą aktualizować się samodzielnie jak również istnieje możliwość ich aktualizacji z poziomu Repozytorium Interfejsów.

Szczegółowe informacje na temat tworzenia serwerów usług można znaleźć w dokumentacji: użytkownika oraz technicznej.

Menedżer Zadań

Jest to uniwersalne narzędzie do definiowania i realizacji zadań użytkownika w różnych środowiskach usług. Umożliwia automatyczną kompozycję i realizację złożonych procesów biznesowych a także udostępnia interfejs użytkownika do zarządzania realizacją zadań.

Menedżer Zadań odpowiedzialny jest za realizację zadań, którą można podzielić na następujące kroki:

  1. Żądanie do planeraDefiniowanie zadania
  2. Wygenerowanie abstrakcyjnego planu (wykorzystując Planner - rys. obok)
  3. Przeprowadzenie fazy aranżacji
    • Zdefiniowanie intencji
    • Wysłanie intencji do usług danego typu
    • Odebranie zbioru zobowiązań
    • Wybranie zobowiązania
  4. Wykonanie procesu
    • Wypełnienie dokumentów wejściowych
    • Wysłanie dokumentów wejściowych do usługi
    • Wykonanie zadania przez usługę
    • Odebranie dokumentów wyjściowych od usługi

Menedżer Zadań nie wymaga modyfikacji w celu zastosowania w różnych środowiskach usług.

  • Zadania są definiowane przy użyciu pojęć zdefiniowanych w Słowniku.
  • Komponenty do obsługi typów dokumentów są pobierane z repozytorium interfejsów.
  • Sposób realizacji procesów (planowanie, aranżacja i wykonanie jego kroków) jest niezależny od dziedziny zastosowań.

Szczegółowe informacje o Menedżerze Zadań dostępne są w dokumentacji użytkownika oraz technicznej.

Broker Usług i biblioteka narzędziowa iTools

Aplikacja Sieciowa (Broker Usług) może pracować w trzech trybach: w roli Rejestru Usług, w roli Agenta Ofertowego lub jednocześnie w obu tych rolach. Trybem pracy oraz jego parametrami steruje się poprzez plik konfiguracyjny aplikacji.

Zadaniem Rejestru Usług jest gromadzenie i udostępnianie informacji o usługach aktualnie dostępnych w systemie. Zadaniem Agenta Ofertowego jest pozyskanie zobowiązań od odpowiednich usług dla intencji zgłoszonej przez klienta (Menedżera Zadań).

Biblioteka iTools stanowi zbiór klas do definiowania i przetwarzania dokumentów w jednolity sposób niezależnie od fazy realizacji procesu. Dostarcza także zbiór klas służących do przesyłania wiadomości między komponentami w ramach zdefiniowanych protokołów komunikacyjnych.

Szczegółowe informacje o tym komponecię można zaleźć w dokumentacji użytkownika oraz technicznej.

Więcej informacji o komponentach systemu SOA-enT dostępnych jest w dziale Narzędzia i dokumentacja.

Created: Wednesday, 19 January 2011 11:11
Last Updated: Sunday, 28 September 2014 15:20