SOA-opis projektu - Katedra Informatyki AGH

Transkrypt

SOA-opis projektu - Katedra Informatyki AGH
NOWE TECHNOLOGIE INFORMACYJNE DLA ELEKTRONICZNEJ GOSPODARKI I SPOŁECZEŃSTWA
INFORMACYJNEGO OPARTE NA PARADYGMACIE SOA
Dominik Radziszowski, Krzysztof Zieliński - Katedra Informatyki AGH
1. Wstęp
Obecne zmiany w zakresie budowy i architektur oprogramowania zapowiadają rychły zmierzch 40letniej dominacji monolitycznych architektur oprogramowania oraz stopniowe zastępowanie ich
przez systemy budowane zgodnie z paradygmatem SOA. Poprzez architektury monolityczne należy
rozumieć aplikacje, których tworzenie polega na integracji modułów oprogramowania. Integracja ta
ma charakter statyczny i trwały, co sprawia, że stworzone aplikacje są trudno modyfikowalne, a ich
dostosowywanie do zmieniających się warunków otoczenia – kosztowne i pracochłonne. Natomiast
SOA, które jest skrótem od angielskiego zwrotu „Service Oriented Architecture”, czyli architektury
zorientowanej na usługi, reprezentuje paradygmat, który stanowi kolejny przełom w zakresie filozofii
informatycznej oraz podejścia do podstawowych problemów programistycznych, a także wyznacza
kierunek budowy nowoczesnych systemów informatycznych na najbliższe dziesięciolecie. W
przeciwieństwie do dominujących obecnie architektur monolitycznych, aplikacje oparte o
paradygmat SOA tworzone są nie poprzez integrację, lecz poprzez kompozycję, a ich elementami
składowymi są autonomiczne usługi, a nie moduły oprogramowania.
Architektura SOA porządkuje relacje pomiędzy oferentami usług, a ich konsumentami
reprezentowanymi przez moduły oprogramowania wystarczająco duże, aby realizowały kompletne
funkcje biznesowe. Wnosi przede wszystkim takie własności niefunkcjonalne jak: ponowne użycie
elementów oprogramowania, enkapsulację funkcjonalności, precyzyjną definicję interfejsów oraz
elastyczność aplikacji tworzonych na drodze kompozycji.
Główne korzyści z zastosowania paradygmatu SOA w gospodarce elektronicznej oraz społeczeństwie
informacyjnym leżą w sferze ekonomicznej i wynikają z następujących przesłanek, zaobserwowanych
w praktyce:
•
•
•
•
•
•
zmniejszenia kosztów opracowania i dostarczenia nowych rozwiązań informatycznych,
zmniejszenia kosztów aktualizacji i modernizacji funkcjonujących systemów informatycznych
w celu dostosowania ich do zmian w otoczeniu,
redukcji czasu potrzebnego do wprowadzenia nowego produktu na rynek,
wzrostu wykorzystania już istniejących elementów systemu informacyjnego,
rozszerzenia ilości oferowanych usług i lepszego zarządzania tymi usługami,
poprawy funkcjonalności oferowanych rozwiązań.
Obecnie istnieją wyniki badań [3], które wskazują, że budowa systemu zgodnie z paradygmatem SOA
ponad 10 razy skraca proces modyfikacji systemu informatycznego firmy oraz ponad 5 razy skraca
proces jego budowy od podstaw w porównaniu architekturą monolityczną. Podobnie czas naprawy
błędów w systemie opartym na paradygmacie SOA skraca się około 4 razy w stosunku do tego, który
oparty jest na architekturze monolitycznej. Przekłada się to bezpośrednio na oszczędności finansowe
przedsiębiorstw z branży IT oraz ich klientów, co niewątpliwie przyczynia się do poprawy ich
konkurencyjności na arenie międzynarodowej.
Istotność i przełomowość podejścia SOA stoi u podstaw szerokiego zainteresowania światowych
laboratoriów badawczych tym obszarem, oraz intensywnych działań na rzecz maksymalnego
przyspieszenia szerokiego wykorzystania SOA w praktyce przemysłowej. W prace te aktywnie włączyli
się również naukowcy z wiodących polskich jednostek naukowo-badawczych, realizując w ramach
Programu Operacyjnego Innowacyjna Gospodarka projekt IT-SOA - „Nowe technologie informatyczne
dla elektronicznej gospodarki i społeczeństwa informacyjnego oparte na paradygmacie SOA”. Jego
celem strategicznym jest opracowanie metod i narzędzi umożliwiających praktyczne zastosowanie
paradygmatu SOA w procesie tworzenia nowoczesnych rozwiązań informatycznych dla poprawy
konkurencyjności polskich przedsiębiorstw, rozwoju elektronicznej gospodarki i społeczeństwa
informacyjnego.
Celem niniejszego opracowania jest przedstawienie kluczowych aspektów związanych z budową
systemów opartych na architekturze SOA oraz sposobu realizacji projektu IT-SOA, jego aktualnych
rezultatów i nadchodzących zadań. Struktura opracowania jest następująca: w rozdziale drugim
przedstawiono bazowe koncepcje leżące u podstaw architektury SOA oraz stanowiące fundament dla
konstrukcji zadań badawczych projektu. W kolejnym rozdziale przybliżono konsorcjum projektu oraz
harmonogram realizacji projektu. Rozdział czwarty wyznacza osiem kluczowych dla realizacji projektu
obszarów badawczych. Przykładowe, uzyskane już w wyniku ich realizacji rezultaty zostały zebrane w
rozdziale piątym. Rozdział szósty zawiera opis obszarów aplikacyjnych, w ramach których, z
wykorzystaniem opracowanych metod i narzędzi, stworzone zostaną pilotowe aplikacje zgodne z
paradygmatem SOA. Całość zamyka krótkie podsumowanie.
2. Geneza projektu
Za szczególnie trafną definicje SOA, należy uznać tę, zaproponowaną przez Institute for Enterprise
Architecture Developments (IFEAD) [2]:
Zorientowanie na usługi prezentuje idealistyczną wizję świata, w której zasoby są klarownie
podzielone i spójnie reprezentowane. W odniesieniu do architektur IT, zorientowanie na usługi
oznacza ustalenie uniwersalnego modelu, w którym logika przetwarzania informacji jak i logika
biznesowa są zgodne z tą wizją. Model ten stosuje się równorzędnie do zadań, rozwiązań,
organizacji, społeczności i innych elementów ekosystemu.
Podejście SOA kładzie nacisk na fakt, że usługi są dobrem – funkcjonalnością o określonej wartości
organizacyjnej, która sama jako taka podlega procesowi zarządzania w trakcie swojego cyklu życia.
Jak wszystkie inne dobra, muszą one być wytwarzane, sprzedawane bądź dzierżawione. Elementem
wspierającym ten proces są repozytoria usług - katalogi umożliwiające między innymi:
•
wyszukanie usługi,
•
określenie, jak może być użyta,
•
określenie, gdzie jest zlokalizowana,
•
która organizacja jej używa,
•
jakie procesy biznesowe są z nią powiązane.
Jednym z głównych zadań inicjatywy SOA jest rozwiązanie znanego problemu związanego z kosztem
integracji systemów. Budowa aplikacji zgodnie z paradygmatem SOA prowadzi do modelu firmy
określanego jako zero-integracji (ang. zero-integration enterprise). Konsekwentna budowa systemu
zgodnie z architekturą SOA pozwala bowiem zastąpić kosztowny proces integracji procesem
kompozycji, który może być przeprowadzony dynamicznie, pozwala na adaptację systemu do nowych
uwarunkowań oraz jest znacznie mniej kosztochłonny.
Architektura SOA powiązana z systemami wspierania decyzji typu „business intelligence” umożliwia
zarządzanie procesami biznesowymi w czasie rzeczywistym. Rozwiązanie to może przyjąć formę EDD
(Executive Digital Dashboard), czyli systemu, który dostarcza kierownictwu firmy w czasie
rzeczywistym metryki dotyczące wskaźników działania firmy. Jednym z podejść stosowanym w tym
zakresie jest Business Activity Monitoring (BAM). BAM dostarcza stosownych analiz procesów
biznesowych poprzez monitorowanie operacji przetwarzanych przez system komputerowy
związanych z tymi procesami. SOA upraszcza monitorowanie procesów między innymi dzięki:
•
elastycznemu i przejrzystemu podejściu do integracji,
•
optymalizacji procesów biznesowych poprzez ich logiczne modelowanie,
•
eliminacji lub zmniejszeniu liczby używanych niestandardowych interfejsów.
Nie należy utożsamiać SOA z technologią Web Services. Użycie technologii Web Services nie oznacza
bowiem, że architektura systemu jako całości została zmieniona i że udostępniane usługi
reprezentują rzeczywiście moduły funkcjonalne procesu biznesowego. Wprowadzenie SOA oznacza
bowiem przeprowadzenie odpowiedniego procesu transformacji systemu a nie tylko zmiany
technologicznej.
Cykl życia aplikacji SOA obejmuje cztery fazy: modelowania, asemblacji, uruchamiania, oraz
zarządzania. Fazy te dotyczą wszystkich aplikacji budowanych zgodnie z paradygmatem SOA, przy
czym nakłady na ich realizację mogą być zróżnicowane.
Faza modelowania aplikacji SOA dotyczy analizy wymagań oraz specyfikowania procesów
biznesowych. Jest to złożony proces wymagający w bardziej skomplikowanych przypadkach badań
symulacyjnych. W tej fazie definiuje się także wskaźniki oceny procesu (ang. key performance
indicators); elementy je mierzące mogą być wbudowane do aplikacji w celu jej monitorowania.
Faza asemblacji obejmuje wyszukanie serwisów spełniających wymagania specyfikacji zbudowanej w
fazie pierwszej oraz stworzenie nowych usług bądź aplikacji, które nie są jeszcze zaimplementowane.
Faza ta może także zawierać modyfikację już istniejących usług. Na tym etapie określa się także
politykę oraz warunki, które muszą być spełnione w trakcie działania aplikacji a także szereg innych
wymagań operacyjnych takich jak: lokalizacja, zasoby (moc obliczeniowa, pamięć, przepustowość,
itp.) i zależności między nimi, kontrola integralności oraz zabezpieczenia dostępu.
Faza rozmieszczania i uruchamiania (ang. deploy) dotyczy odwzorowania zdefiniowanych we
wcześniejszej fazie wymagań operacyjnych w istniejącą fizyczną bądź zwirtualizowaną infrastrukturę
sprzętową oraz uruchomienia aplikacji. Etap ten dotyczy także zintegrowania aplikacji SOA z usługami
infrastrukturalnymi realizującymi np. transakcyjność, bezpieczeństwo, czy kontrolę dostępu.
Faza zarządzania obejmuje działania związane z zarządzaniem i monitorowaniem aplikacji
uruchomianej w środowisku produkcyjnym. Monitorowanie stanowi krytyczną funkcjonalność
systemów IT, która dostarcza informacji o dostępności i działaniu usług. Funkcjonalność ta obejmuje:
(i) monitorowanie wskaźników jakości przetwarzania wywołań usług oraz (ii) zbieranie informacji
związanej z występowaniem błędów, ich lokalizacją, oraz odtwarzaniem stanu operacyjnego systemu.
Zarządzanie systemem jest związane z rutynowym administrowaniem systemem, w tym z
odpowiednim zabezpieczeniem aplikacji. Zarządzanie systemem obejmuje także predykcję
zapotrzebowania na zasoby. Bardzo ważnym obszarem zarządzania typowym dla SOA jest
zarządzanie procesem biznesowym oraz dostrajanie środowiska operacyjnego w celu osiągnięcia
wymagań określonych w fazie modelowania.
Architektura odniesienia dla SOA jest konstruowana z dwóch punktów widzenia:
•
dekompozycji rozwiązania SOA na warstwy budujące usługi
•
logicznej architektury aplikacji SOA reprezentującej podział systemu na komponenty
istotne z punktu widzenia oprogramowania pośredniczącego (ang. middleware).
Pierwszy z tych punktów widzenia jest reprezentowany przez model S3 zaproponowany przez firmę
IBM, obejmuje on dwa widoki:
•
dostawcy usług – obejmujący biznesowe i techniczne rozwiązania, które usługa musi
realizować w celu spełnienia oczekiwań konsumenta,
•
konsumenta usług – reprezentujący biznesowe i techniczne rozwiązania,
rozwią
które
zgodnie z oczekiwaniami konsumenta powinny być zapewnione przez usługę użytą w
konkretnym kontekście.
Model S3 obejmuje dziewięć aspektów, które pozwalają organizacji na wybór różnego stopnia
integracji systemu konsumenta oraz dostawcy usług. Analizując ten model wygodnie jest przyjąć
podejście top-down i wyjść od analizy wymagań konsumenta, które przekształcane są w procesy
biznesowe, które z kolei mogą stanowić kompozycję innych procesów i usług. Procesy i usługi są w
dalszej kolejności uszczegóławiane
zegóławiane w postaci komponentów usługowych. Komponenty te zawierają
metadane wykorzystywane do opisu usług. Usługi mogą być zagregowane w moduły grupujące je z
punktu widzenia danego projektu i ułatwiające proces uruchamiania. Wynikowy zbiór definicji
procesów,
ocesów, usług i modułów stanowi logiczną architekturę aplikacji, która musi być odwzorowana w
architekturę fizyczną.
Rysunek 1.
Architektura odniesienia SOA: widok logiczny
Składowe elementy architektury logicznej, z której zbudowana
zbudowana jest aplikacja SOA zostały
przedstawione na rysunku 1.. W jego części centralnej leży sześć serwisów (interakcji, procesu,
informacji, partnera, biznesu oraz dostępu), które stanowią zbiór usług bazowych wykorzystywanych
przez aplikacje w środowisku jej wykonania. Pozostałe serwisy są wykorzystywane do wspierania
usług bazowych. Centralne znaczenie dla architektury logicznej aplikacji SOA posiada szyna
komunikacyjna Enterprise Service Bus (ESB) zapewniająca komunikację pomiędzy serwisami,
jednocześnie eliminując bezpośrednie połączenia pomiędzy klientem i konsumentem – klient dołącza
się do szyny a nie bezpośrednio do serwisu. Czyni to infrastrukturę
infrastrukturę komunikacyjną bardziej klarowną,
skalowalną i łatwiejszą w utrzymaniu niż sieć powiązań punkt-punkt.
punkt punkt. Dodatkowo ESB zapewnia
szereg dodatkowych usług, takich jak bezpieczeństwo, gwarancja dostawy, mediacje protokołów
i formatów danych itp. Funkcjonalność ESB jest uzupełniona przez usługi dostępu, które koncentrują
się na zapewnieniu pomostu pomiędzy aplikacją SOA a istniejącymi aplikacjami. Łącznie te dwa
elementy stanowią kompleksowe rozwiązanie integrujące aplikacje SOA.
Architektura
SOA
jest
także
ściś
ściśle
związana
z
wizją
biznesu
na
żądanie
(ang. on-demand business),
), która jest bliska wizji spontanicznego przedsiębiorstwa.
przedsiębiorstwa Wizja ta musi być
wspierana przez dobrze zdefiniowaną infrastrukturę techniczną. Uważa się, że kluczowe atrybuty
SOA takie jak elastyczność, efektywność i gotowość do zmian wymagane przez podejście biznes na
żądanie są konsekwencją rozwiązań na poziomie:
•
integracji,
•
wirtualizacji,
•
automatyzacji,
•
otwartych standardów.
Wymienione poziomy i atrybuty zostały przedstawione na rysunku 2, który prezentuje także
transformację towarzyszącą realizacji wizji biznesu na żądanie w kontekście zmian atrybutów
architektur oprogramowania.
Integracja
Pełna
integracja
Infrastruktura
zwirtualizowana
Izolacja
Wirtualizacja
Infrastruktura
fizyczna
Wykonanie
ręczne
Własne
standardy
Systemy tradycyjne
Rysunek 2.
Automatyzacja
Współpraca
Wykonanie
automatyczne
Standardy
otwarte
Systemy SOA
Ewolucja atrybutów architektur oprogramowania
Poszczególne warstwy można odnieść do architektury logicznej SOA.
Integracja dotyczy:
•
użytkowników - obejmuje organizację interakcji na różnych poziomach: relacji
człowiek-człowiek oraz człowiek-proces. Dotyczy ona także narzędzi służących do
dynamicznego włączania ludzi w łańcuch akcji związanych z realizacją procesów
biznesowych,
•
procesów - dotyczy powtarzających się usług horyzontalnych – takich jak
bezpieczeństwo, monitorowanie, orkiestracja (ang. orchestration), itp., które są
dzielone przez aplikacje i rozłączne w stosunku do ich funkcjonalności,
•
aplikacji - ma na celu dołączenie do systemu istniejących już aplikacji i jest związana z
zapewnieniem połączenia, routingiem, transformacją danych, itp.
•
systemów - dotyczy infrastruktury zarządzania i przetwarzania oraz dostarczania
danych do ludzi i aplikacji,
•
danych - jest związana z reprezentacją i specyfikacją danych, a także zastosowaniem
standardów przeźroczystego dzielenia danych przez aplikacje.
Wirtualizacja jest koncepcją polegającą na ekspozycji zasobów w postaci najbardziej przydatnej do
zarządzania nimi i wykorzystywania przez aplikację. Może ona dotyczyć zarówno zasobów fizycznych
jak i mocy obliczeniowej, pamięci czy przepustowości sieci, jak i logicznych np. systemu
operacyjnego, czy też systemu plików. W kontekście korporacyjnych systemów IT i architektury SOA,
szczególnego znaczenia nabiera wirtualizacja organizacji oraz gridów.
Automatyzacja, ten poziom technologii nawiązuje zazwyczaj do koncepcji systemów autonomicznych
stanowiących próbę rozwiązania złożonych problemów zarządzania w dużych systemach
korporacyjnych. Podejście to opisują cztery kluczowe cechy:
•
samonaprawianie - zdolność systemu do kontynuowania działania niezależnie od
uszkodzenia sprzętu bądź oprogramowania. Funkcja ta obejmuje detekcję błędów,
odtworzenie stanu oraz kontynuację działania systemu bez interwencji człowieka,
•
samokonfiguracja - zdolność systemu do adaptacji do zmieniających się warunków
otoczenia oraz dynamicznego dołączania i odłączania jego elementów,
•
samooptymalizacja - zdolność systemu do optymalizacji konfiguracji w celu
maksymalizacji efektywności działania systemu włączając w to zarządzanie
obciążeniem oraz dostrajanie alokacji zasobów. Proces ten jest realizowany w sposób
ciągły i wykorzystuje procedury uczenia się przy wykorzystaniu danych zbieranych
przez podsystem monitorowania,
•
samoochrona - zdolność systemu do identyfikacji, antycypacji, detekcji i zapobiegania
zagrożeniom danych udostępnianych na zewnątrz organizacji.
Otwarte standardy, poziom ten dotyczy zasadniczo wszystkich omawianych wcześniej poziomów w
sensie doboru technologii implementacyjnej i reprezentacji danych. Stosowanie otwartych
standardów jest bowiem podstawą elastyczności i wzajemnej współpracy heterogenicznych
systemów komputerowych niezależnie od producentów konkretnych platform technologicznych.
Jedną z zalet paradygmatu SOA jest możliwość przyjęcia długofalowej wizji budowy systemu
informatycznego korporacji i jednocześnie wkomponowanie do niej elementów pozwalających na
uzyskanie natychmiastowych efektów. Dlatego większość strategii wdrażania systemów budowanych
zgodnie z tym podejściem zaleca tworzenie laboratoriów SOA oraz poprzedzenie etapu
implementacji badaniami ustalającymi wizję budowy sytemu w długim horyzoncie czasu.
3. Struktura projektu
Zarówno struktura i zadania badawcze projektu „Nowe technologie informatyczne dla elektronicznej
gospodarki i społeczeństwa informacyjnego oparte na paradygmacie SOA” zostały zdefiniowane tak ,
aby korespondowały z zarysowanym w poprzednim rozdziale obszarami problemowym SOA oraz
najnowszymi kierunkami badań naukowych. Adresują one zagadnienia zgodnie z wizją modelu
budowy tej klasy aplikacji zarówno w ujęciu całościowej architektury rozwiązania (model S3) jak i
cyklu życia aplikacji SOA oraz przewidywanej ewolucji tej klasy systemów.
Wyróżnione zadania nie obejmują wszystkich aspektów budowy i działania aplikacji SOA, zostały
jednak dobrane w sposób umożliwiający konstrukcję w pierwszej fazie projektu funkcjonalnych
i kompletnych metod i narzędzi w wybranych obszarach problemowych, oraz realizacje z ich
wykorzystaniem pilotażowych aplikacji SOA w istotnych obszarach przemysłowych, w fazie drugiej.
Efektem takiego podejścia jest nie tylko stworzenie konkretnych, w pełni funkcjonalnych aplikacji
SOA ale również praktyczna weryfikacja narzędzi zbudowanych w pierwszej fazie projektu.
Projekt jest realizowany w ośmiu, półrocznych etapach. Każdy z etapów określa zadania realizowane
w rozwijanych równolegle obszarach badawczych i aplikacyjnych odpowiednio w pierwszej i drugiej
fazie projektu - Rysunek 3. Aktualnie (maj 2010), realizowany jest etap III.
Faza I
ETAP 1
ETAP 2
ETAP 3
Faza II
ETAP 4
ETAP 5
ETAP 6
ETAP 7
ETAP 8
Obszar Badawczy 8
Obszar Badawczy 1
Doskonalenie metod i narzędzi dla systemów SOA
Obszar Badawczy 2
Obszar Aplikacyjny 1
Obszar Badawczy 3
Obszar Aplikacyjny 2
Obszar Badawczy 4
Obszar Aplikacyjny 3
Obszar Badawczy 5
Obszar Aplikacyjny 4
Obszar Badawczy 6
Obszar Aplikacyjny 5
Obszar Badawczy 7
Obszar Aplikacyjny 6
Badanie
Opracowanie
Badanie i
Opracowanie
Badanie
Opracowanie
Badanie i
Opracowanie
technologii, eksperymental doskonalenie
wersji
obszarów
eksperymental doskonalenie
pilotowych
rozwiązań
eksploata- dziedzinowych nych wersji
opracowanie
nych
aplikacji
wersji
koncepcji i
implementacji eksperymental
cyjnych
opracowanie
aplikacji
eksperymental
aplikacji
wykonanie
metod i
nych
metod i
koncepcji
nych
narzędzi
narzędzi
projektów
wykorzystania
metod i
metod i
1/2 roku
1/2 roku
narzędzi
narzędzi
01.01
2009
01.01
2011
31.12
2012
Rysunek 3 Harmonogram realizacji projektu
Etap 1 – Badanie technologii, opracowanie koncepcji i wykonanie projektów metod i narzędzi
Realizowane w ramach tego etapu badanie technologii obejmowały studia literaturowe, analizę
istniejących i opracowywanych standardów najbardziej aktualnych platform, narzędzi i metod dla
SOA, a także planów ich rozwoju oraz wymagań i oczekiwań przyszłych użytkowników. Analiza
przeprowadzona, we wszystkich obszarach badawczych, była podstawą opracowania koncepcji
nowych oraz rozszerzenia istniejących metod i narzędzi dla SOA. Opracowanie koncepcji narzędzi
zakładało określenie podstawowych wymagań funkcjonalnych i niefunkcjonalnych oraz ustalenie
niezależnej od konkretnej technologii architektury i modelu danych, będących podstawą wykonania
projektów.
Etap 2 – Opracowanie eksperymentalnych implementacji metod i narzędzi, polegał na zbudowaniu,
na podstawie zrealizowanych w poprzednim etapie projektów, oprogramowania narzędziowego oraz
określeniu odpowiednich procedur i metod ich wykorzystania. Przeprowadzone prace obejmowały
wybór środowiska programistycznego, stworzenie kodu źródłowego oraz testowanie jego
poprawności. Głównym tego celem etapu było zbudowanie eksperymentalnych wersji narzędzi tak,
aby możliwe było z jednej strony szybkie potwierdzenie realizowalności przyjętych koncepcji, a z
drugiej wstępną weryfikacja spełnienia przyjętych wymagań funkcjonalnych i niefunkcjonalnych.
Wynikiem prac są działające, przetestowane eksperymentalne wersje narzędzi.
Etap 3 – Badanie i ulepszanie rozwiązań eksperymentalnych, czyli stworzonych w drugim etapie
eksperymentalnych metod i narzędzi obejmuje ocenę ich wydajności, skalowalności, stabilności,
kompletności funkcjonalnej oraz ergonomii. W wyniku ich przeprowadzenia diagnozowane są
potencjalne problemy w ich wykorzystywaniu oraz określone możliwe rozszerzenia i ulepszenia
zarówno narzędzi jak i proponowanych metod. Doskonalenie rozwiązań eksperymentalnych polega
na wprowadzeniu uzupełnień do projektu i implementacji oraz, w razie konieczności, modyfikacji
architektury lub zmianie środowiska implementacyjnego i wykonawczego. Wynikiem etapu będą
wydajniejsze, posiadające bogatszą i lepiej dostosowaną funkcjonalność, ulepszone narzędzia i
metody dla SOA.
Etap 4 – Opracowanie wersji eksploatacyjnych metod i narzędzi, polegać będzie na ich
przygotowaniu do udostępnienia użytkownikom. Przygotowanie to obejmie pielęgnację kodu,
opracowanie i automatyzację procesu instalacji oraz integracji z innymi narzędziami oraz platformami
wykonawczymi, stworzenie dokumentacji technicznej oraz dokumentacji użytkownika. Wynikiem
etapu będzie, przyjazny w użyciu, dobrze udokumentowany zestaw metod i narzędzi, gotowy do
wykorzystania w drugiej fazie projektu.
Etap 5 – Badanie obszarów dziedzinowych, opracowanie koncepcji wykorzystania metod i narzędzi
obejmuje, dla każdego obszaru aplikacyjnego niezależnie (OA1-OA6), analizę istniejących rozwiązań,
specyfikację wymagań funkcjonalnych i niefunkcjonalnych, identyfikację procesów biznesowych oraz
analizę aspektów prawnych wykorzystania technologii SOA występujących w danej dziedzinie.
Dokonany zostanie wybór technologii oraz platform realizacji w celu opracowania projektu
eksperymentalnych wersji aplikacji dziedzinowych zgodnych z paradygmatem SOA, wykorzystujących
metody i narzędzia stworzone w fazie pierwszej. Projekty te będą stanowić wynik prac w tego etapu.
Równocześnie prowadzone w ramach OB-8 prace będą służyły uwzględnieniu dodatkowych wymagań
dla metod i narzędzi, ujawnionych w trakcie realizacji aplikacji w obszarach dziedzinowych.
Etap 6 – Opracowanie eksperymentalnych wersji aplikacji polegać będzie na zbudowaniu w
architekturze SOA, na podstawie opracowanych w poprzednim etapie projektów, odpowiednich
modułów programowych o zadanej funkcjonalności. Przeprowadzone prace obejmą stworzenie kodu
źródłowego oraz testowanie jego poprawności. Głównym etapu celem jest zbudowanie
eksperymentalnych wersji aplikacji, tak by możliwa była szybka praktyczna weryfikacja
realizowalności oraz funkcjonalności przyjętych koncepcji. Wynikiem prac będą działające,
przetestowane eksperymentalne wersje aplikacji dziedzinowych.
Etap 7 – Badanie i doskonalenie aplikacji eksperymentalnych obejmować będzie weryfikację ich
wydajności, skalowalności, stabilności, kompletności funkcjonalnej, ergonomii oraz konsultacje z
potencjalnymi użytkownikami, którym, w celu weryfikacji, udostępnione zostaną demonstracyjne
wersje aplikacji. W wyniku przeprowadzenia badań zdiagnozowane zostaną potencjalne problemy w
wykorzystywaniu aplikacji oraz określone zostaną ich możliwe rozszerzenia i ulepszenia.
Doskonalenie aplikacji eksperymentalnych polegać będzie na wprowadzeniu zaproponowanych
ulepszeń poprzez realizacje uzupełnień do projektu i implementacji oraz, jeśli będzie taka
konieczność, modyfikację architektury lub zmianę środowiska implementacyjnego i wykonawczego.
Wynikiem tego etapu będą wydajniejsze, posiadające bogatszą i lepiej dostosowaną funkcjonalność,
ulepszone aplikacje dziedzinowe zbudowane zgodnie architekturą SOA.
Etap 8 – Opracowanie pilotowych wersji aplikacji polegać będzie na ich przygotowaniu do
udostępnienia potencjalnym użytkownikom. Przygotowanie to obejmie pielęgnację kodu,
opracowanie i automatyzację procesu instalacji oraz integracji z innymi narzędziami oraz platformami
wykonawczymi, ustalenie procedur aktualizacji stworzenie dokumentacji technicznej oraz
dokumentacji użytkownika. Wynikiem etapu będą przyjazne w użyciu, dobrze udokumentowane
pilotowe wersje aplikacji dla obszarów aplikacyjnych OA1-OA6.
Wnioskodawcą i koordynatorem projektu jest Akademia Górniczo-Hutnicza w Krakowie pełniąca
jednocześnie funkcję koordynatora Sieci Naukowej IT-SOA, które integruje potencjał badawczy i
aparaturowy pięciu wiodących jednostek naukowych z czterech największych ośrodków
akademickich w Polsce:
•
•
•
•
Akademii Górniczo-Hutniczej z Krakowa,
Akademii Ekonomicznej z Poznania,
Instytutu Podstaw Informatyki Polskiej Akademii Nauk z Warszawy,
Politechniki Poznańskiej,
•
Politechniki Wrocławskiej.
Stworzone konsorcjum scala umiejętności, wiedzę i doświadczenie wielu naukowców – specjalistów z
branży IT, udostępnia im posiadaną infrastrukturę badawczą oraz stwarza warunki pracy, konieczne
do osiągnięcia sukcesu badawczego.
4. Zadania badawcze projektu
Ze względu na interdyscyplinarny charakter projektu, zakres prac badawczych usystematyzowany
został poprzez wyodrębnienie ośmiu obszarów badawczych, są one realizowane w ramach pierwszej
fazy projektu zatytułowanej: „Badania w zakresie metod i narzędzi budowy systemów opartych na
paradygmacie SOA”. Celem realizacji tej fazy jest opracowanie metod i narzędzi wspierających
modelowanie, asemblacje, uruchamianie i zarządzanie systemami SOA, w oparciu o model S3.
Szczegółowe działania, zostały przedstawione w kolejnych punktach.
Usługi systemowe wspierające procesy integracji, kompozycji i wykonania aplikacji SOA (OB1)
Budowa systemów informatycznych zgodnych z paradygmatem SOA wymaga odpowiednich
środowisk wykonawczych dostarczających usługi systemowe wspierające procesy integracji,
kompozycji i wykonania aplikacji komponowanych z pojedynczych usług. Wymienione procesy
obejmują cały cykl życia aplikacji SOA – począwszy od ich budowy, uruchamiania, monitorowania a na
zarządzaniu i ocenie efektywności skończywszy [5].
Wsparcie wymienionych procesów jest obecnie dostarczane przez technologie ESB [4] oraz SCA.
Obydwie te technologie są na etapie intensywnego rozwoju zarówno w zakresie technicznym jak i
metodologii ich praktycznego wykorzystania. Celem prac w ramach tego obszaru badawczego jest
opracowanie nowych, innowacyjnych mechanizmów rozszerzających rozważane technologie o
możliwości uwzględnienia wymagań jakościowych (QoS) w procesach systemowych obsługujących
cykl życia aplikacji SOA [6][7].
W związku z tym zakres prac będzie obejmuje opracowanie metod i strategii uruchamiania aplikacji
SOA wykorzystujących technologie ESB oraz SCA z uwzględnieniem wymagań funkcjonalnych oraz
wymagań dotyczących jakości usług, co wymaga rozbudowy tych środowisk o mechanizmy
monitorowania i zarządzania. Prace te zostały uzupełnione o zagadnienia detekcji awarii.
Mechanizmy te są wykorzystane w badaniach nad adaptacyjnym doborem instancji usług SOA i
routingiem semantycznym. Opracowanie wspomnianych usług systemowych związanych z
zarządzaniem wykonaniem aplikacji SOA jest ważnym etapem rozwoju tej klasy systemów. Zakłada
się, że opracowane usługi systemowe będą dynamicznie rozszerzać bazowe oprogramowanie tak, że
ich użycie oraz konfiguracja będą możliwe w trakcie wykonania aplikacji. Spełnienie tego wymagania
będzie możliwe dzięki opracowaniu i zastosowaniu odpowiednich technik budowy adaptowalnego
oprogramowania.
Mechanizmy i usługi wiarygodnej infrastruktury SOA (OB2)
Przewidywane bardzo szerokie spektrum wykorzystania aplikacji SOA stwarza szczególnie duże
wymagania w zakresie wiarygodności infrastruktury ich wykonania [8][9]. Spełnienie tych wymagań
warunkuje bowiem w praktyce możliwość użycia paradygmatu SOA w takich obszarach, jak np. służba
zdrowia, bankowość czy telekomunikacja. Uzasadnia to podjęcie badań w zakresie mechanizmów
zwiększania dostępności i niezawodności realizacji usług.
Celem prac badawczych realizowanych w tym obszarze będzie opracowanie mechanizmów
systemowych zapewniających pożądaną dostępność usług i poprawność ich wykonania. Prace te
będą stanowić rozwinięcie znanych z systemów rozproszonych technik takich jak replikacja,
odtwarzanie stanu oraz wykonanie transakcyjne – uwzględniające specyfikę aplikacji SOA. Dla ich
realizacji są opracowywane odpowiednie mechanizmy komunikacji grupowej oraz realizacji operacji
atomowych. W procesach realizacji odtwarzania stanu uwzględniono, oprócz odpowiednich
kryteriów spójności, także wymagania ciągłości realizacji procesów biznesowych. Prace te obejmują
formalną weryfikację i analizę złożoności protokołów tworzenia punktów kontrolnych dla aplikacji
SOA. W zakresie prac dotyczących wsparcia dla realizacji przetwarzania transakcyjnego
opracowywane są mechanizmy transakcyjności dla protokołów aranżacji i kompozycji usług w
długotrwałe procesy biznesowe.
Opracowane mechanizmy zwiększające dostępność i niezawodność realizacji usług zostaną
udostępnione w postaci usług systemowych możliwych do wkomponowania w sposób przeźroczysty
w tworzone lub istniejące aplikacje SOA.
Systemy wspomagania współpracy procesów biznesowych, usług i ludzi (OB3)
Znaczenie paradygmatu SOA w budowie nowoczesnego oprogramowania polega na organizacji
współpracy procesów biznesowych, usług i ludzi. Aktualnie duży wysiłek badawczy jest związany
głównie z tym pierwszym aspektem, czyli z metodami integracji heterogenicznych systemów
komputerowych różnych jednostek gospodarczych i administracyjnych w celu realizacji wspólnych
przedsięwzięć. W praktyce biznesowej wąskim gardłem staje się współpraca ludzi uczestniczących w
procesach biznesowych. Komputerowe wspomaganie tej współpracy w sferze biznesu i administracji
jest dalece niewystarczające, stąd podjęcie badań w tym obszarze stało się szczególnie ważne.
Celem tego obszaru badawczego jest opracowanie narzędzi wspierających procesy współpracy
realizowane w ramach wirtualnych organizacji. Narzędzia te automatyzują procesy integracji
zasobów dla osiągnięcia zdolności przedsiębiorstw do szybkiej przebudowy modeli funkcjonowania i
współpracy, co implikuje możliwość podjęcia nowych wyzwań na polu biznesu. Prace dotyczą także
opracowania modelu współpracy uwzględniającego adaptacyjność protokołów współpracy do
aspektów kontekstowych występujących w złożonych strukturach organizacyjnych.
Metody automatyzacji kompozycji aplikacji i procesów biznesowych (OB4)
Automatyzacja kompozycji aplikacji i procesów biznesowych jest jednym z najważniejszych obszarów
badawczych związanych z paradygmatem SOA. Realizowane w tym obszarze badania dotyczą
szerokiego spektrum zagadnień, począwszy od metod konstrukcji ontologii dziedzinowych, budowy
języków formalnych do definiowania interfejsów i usług, poprzez tworzenie repozytoriów usług oraz
protokołów publikacji opisów usług, a na wyszukiwaniu i automatycznej kompozycji usług złożonych
skończywszy [10][11].
Cechą charakterystyczną prowadzonych badań jest dążenie do wykorzystania wiedzy dziedzinowej
prezentowanej w postaci ontologii i odpowiednich opisów semantycznych w odniesieniu do każdego
z wymienionych zagadnień. W zakresie procesów wyszukiwania i kompozycji usług złożonych będzie
to skutkować ich automatyzacją.
Wynikiem realizacji prac będą metody i narzędzia do tworzenia i analizy opisu semantycznego,
klasyfikacji usług oraz metod ich semantycznego wyszukiwania. Opracowane są również procedury
programistyczne do automatycznej kompozycji usług złożonych, protokoły do aranżacji usług w grafy
przepływu prac (ang. workflow) oraz środowiska do ich wykonania i kontroli [7]. Będą one stanowić
rozszerzenie aktualnie istniejących i powstających w tym zakresie standardów opracowywanych
przez wiodące konsorcja takie jak: OMG, OASIS, SOA Consortium, OpenSOA.
Sprzętowe systemy SOA i wsparcie dla realizacji usług w środowiskach mobilnych (OB5)
Systemy budowane zgodnie z paradygmatem SOA muszą uwzględniać nowe możliwości jakie wnosi
postęp technologiczny w zakresie sprzętowej realizacji algorytmów oraz mobilności urządzeń
komputerowych.
Opracowanie technologii realizacji sprzętowych systemów SOA (Hardware SOA – HSOA) znacząco
usprawni i zredukuje koszty łączenia niezależnych elementów otaczającego środowiska i systemów
informatycznych w jeden spójnie działający system. Systemy HSOA posiadają odmienne wymagania
w zakresie konstrukcyjnym – typowe dla klasy systemów wbudowanych, stosowanych do sterowania
urządzeniami i procesami przemysłowymi. Jest to grupa systemów jakościowo odmienna od
typowych systemów zarządzania rozważanych w kontekście technologii SOA, co uzasadnia podjęcie
odrębnych badań w tym zakresie.
Do budowy aplikacji HSOA została wykorzystana technologia FPGA, pozwala ona bowiem na
dynamiczne kreowanie połączeń układów logicznych w celu wykonania odpowiednich funkcji.
Zapewnia także szerokie możliwości zrównoleglenia obliczeń, co prowadzi do znacznego ich
przyśpieszenia. Prowadzone prace badawcze dotyczą zarówno konstrukcji odpowiednich modułów
sprzętowych wyposażonych w odpowiednie interfejsy komunikacji sieciowej, jak i implementacji w
układach FPGA protokołów komunikacji pomiędzy usługami oraz funkcjonalności udostępnianej przez
ich interfejsy.
Metody i narzędzia wykorzystania wiedzy dla potrzeb systemów SOA (OB6)
Koncepcja SOKU (Service Oriented Knowledge Utilities) jest przykładem zorientowanego na usługi
podejścia do organizacji przetwarzania informacji, wykorzystującego jako element centralny wiedzę
w celu ułatwienia automatyzacji przetwarzania informacji i podwyższenia funkcjonalności systemu.
Podejście to zostało zaproponowane na podstawie obserwowanych trendów rozwojowych
telekomunikacji i informatyki oraz stosowanych praktyk wytwarzania rozwiązań teleinformatycznych
i koncentruje się na zasadach i metodach budowania środowisk przetwarzania wykorzystujących
techniki współpracy i samoorganizacji. W tym zakresie SOKU stanowi rozszerzenie paradygmatu SOA.
Badania dotyczące paradygmatu SOKU, dotyczą wykorzystania metod inżynierii wiedzy w zakresie
konstrukcji algorytmów analizy wymagań, automatyzacji projektowania i dostarczania usług, a także
zarządzania usługami i jakością ich wykonania. W tym celu opracowywane są specjalistyczne usługi
zarządzania ontologiami usług służącymi do reprezentacji wiedzy oraz środowisko zarządzania
wirtualnymi organizacjami z wykorzystaniem informacji semantycznych. Rozwiązania te wykorzystują
istniejącą w systemach SOKU możliwość kreowania zindywidualizowanych usług poprzez
komponowanie ich jako zestawów składowych usług atomowych (ang. composed atomic services).
Podjęto również prace w zakresie opracowania koncepcji hierarchicznej architektury oceny jakości
usług bazowych i usług złożonych w systemach SOKU. Są one związane ze zdefiniowaniem
jakościowych i ilościowych kryteriów oceny usług (w tym usług tworzonych w czasie rzeczywistym) w
odniesieniu do poszczególnych warstw proponowanej architektury oraz opracowaniem koncepcji
dostarczania, negocjacji i gwarancji jakości usług w systemach SOKU.
Zarządzanie środowiskiem i aplikacjami SOA (OB8)
Sprawne zarządzanie systemami SOA jest warunkiem koniecznym możliwości efektywnego i ciągłego
korzystania z zasobów tych systemów oraz udostępniania usług zgodnie z oczekiwanym poziomem
jakości ich świadczenia (ang. Quality of Service – QoS). Jakość usług dotyczy wielu aspektów działania
systemu, w tym wydajności, niezawodności i bezpieczeństwa, a także kryteriów specyficznych dla
danej aplikacji [12]. W celu sprawnego zarządzania aplikacjami SOA z punktu widzenia jakości
realizacji procesów biznesowych potrzebne są mechanizmy i narzędzia, które umożliwią
monitorowanie metryk oceny działania aplikacji SOA oraz wykrywanie i diagnozowanie sytuacji
awaryjnych, jak również mechanizmy pozwalające na wyszukiwanie i dostarczanie usług dla klientów
zgodnie z uzgodnionym poziomem ich świadczenia (ang. Service Level Agreement – SLA).
Należy podkreślić, że narzędzia te posiadają inny charakter niż te rozważane w poprzednich
obszarach badawczych, gdyż dotyczą poziomu aplikacyjnego, a nie systemowego. W ramach
planowanych prac powstają metody i narzędzia do monitorowania jakości realizacji procesów
biznesowych, zarządzania i adaptacji wykonania usług gwarantujących wymagany poziom jakości
usług, a także definiowania polityki i szacowania bezpieczeństwa w systemach SOA.
Realizacja tych prac powinna umożliwić globalne zarządzanie systemami SOA uwzględniające politykę
ich funkcjonowania zdefiniowaną przez końcowego użytkownika i wykorzystujące w procesie jego
realizacji mechanizmy systemowe.
5. Przykłady realizowanych zadań
Rezultatem prowadzonych w pierwszej fazie projektu prac badawczych i implementacyjnych jest
opracowanie metod i narzędzi dla SOA. W kolejnych punktach przedstawiono kilka wybranych zadań
badawczych realizowanych przez Grupę Systemów Rozproszonych Katedry Informatyki AGH
dotyczących budowy zestawu narzędzi dla SOA oraz systemów mobilnych i HSOA.
AS3 Studio
AS3 studio jest zestawem narzędzi opracowanych, adresującym wszystkie warstwy "SOA solution
stack". Zawiera ono następujące, uzupełniające się wzajemnie, narzędzia zorientowane na
wprowadzenie mechanizmów adaptacji i zarządzania, leżące u podstaw nowej generacji systemów
SOA:
VEI - Virtual Execution Enviroment jest to zintegrowane narzędzie zarządzania wirtualizacją
zasobów w celu dostarczenia sprofilowanego środowiska wykonawczego dla aplikacji lub usług.
Działanie AS3-VEI polega na tworzeniu, monitorowaniu i modyfikacji zwirtualizowanych zasobów
obliczeniowych (tworzenie maszyn wirtualnych), komunikacyjnych (wirtualna sieć) oraz służących do
przechowywania danych (wirtualne dyski). Narzędzie umożliwia korzystanie z wielopoziomowego
systemu wirtualizacji zasobów obliczeniowych obejmującego: tworzenie logicznych domen, maszyn
wirtualnych oraz kontenerów. Operacje, które można wykonywać na zwirtualizowanej
infrastrukturze mogą być zlecane za pomocą interfejsu administratora lub autonomicznie z
wykorzystaniem polityki przydziału zasobów zaimplementowanej w systemie.
OSGi/ESB Monitoring to narzędzie umożliwiające monitorowanie federacji kontenerów ESB oraz
OSGi na poziomie systemowym oraz biznesowym. Parametry monitorowania są specyfikowane w
sposób deklaratywny na podstawie zadanego przez użytkownika scenariusza. Na ich podstawie
narzędzie dokonuje dynamicznej instalacji sensorów w monitorowanym środowisku oraz konfiguruje
odpowiednio warstwy zbierania, przetwarzania i prezentacji danych. Działanie systemu
monitorowania jest w pełni dynamiczne, co oznacza, że scenariusz monitorowania może być
dowolnie zmieniany w trakcie działania systemu. Mechanizmy oferowane przez narzędzie pozwalają
na określenie ziarnostości monitorowania zasobów oraz zapewniają reakcję na zmiany stanu usług w
monitorowanym środowisku. Integralną częścią systemu jest procesor zdarzeń złożonych
umożliwiający wykrywanie zadanych sytuacji w monitorowanym systemie, co jest szczególnie
przydatne w dużych rozproszonych aplikacjach.
Adaptive ESB jest narzędziem umożliwiającym zarządzanie adaptacją kompozycji usług
wykorzystujących szynę ESB w warstwie integracji. Narzędzie rozszerza szynę ESB o elementy
adaptowalności, których zadaniem jest realizacja złożonych usług zgodnie z wybraną przez
użytkownika polityką adaptacji, określającej wymagania w zakresie jakości wykonania usług.
Specyfikacja polityki adaptacji jest dokonywana na podstawie zadanego przez użytkownika modelu
wykonania serwisu złożonego, z uwzględnieniem metryk definiujących jakość wykonania tego
serwisu. System dostarcza wsparcia dla definiowania polityk oraz metryk w sposób przyjazny dla
użytkownika. Przetwarzanie polityk jest wspierane przez procesor przetwarzania polityk, co zapewnia
dużą skalowalność i efektywność tego procesu. Wykonanie polityki skutkuje odpowiednim
skonfigurowaniem elementów ESB odpowiedzialnych za dynamiczny wybór instancji usług
realizujących określoną funkcjonalność, tak aby zapewnić pożądaną jakość.
Adaptive SCA to narządzie pozwalające na zarządzanie adaptowalnymi usługami, stworzonymi z
wykorzystaniem komponentowej technologii SCA (Service Component Architecture). Adaptacja jest
dokonywana poprzez dynamiczny wybór instancji komponentów oraz odpowiedni dobór protokołów
komunikacji pomiędzy nimi. Operacje adaptacji są realizowane zgodnie z zadaną przez użytkownika
polityką uwzględniającą jakość wykonania usługi oraz obserwowaną jakości usługi. W celu określenia
polityki adaptacji, narzędzie oferuje odpowiedni interfejs użytkownika pozwalający na definiowanie
odpowiednich polityk, które są przetwarzane przez procesor polityk i skutkują odpowiednią
dynamiczną rekonfiguracją usługi zbudowanej z komponentów. W ten sposób Adaptive SCA rozszerza
technologię SCA o możliwości dynamicznej adaptacji usług, co wprowadza nową jakość w tej
warstwie systemu budowy aplikacji SOA.
BPEL Engine Monitoring (ang. Business Process Execution Language) pozwala na monitorowanie
przebiegu wykonania procesów biznesowych wykonywanych w różnych implementacjach silników
procesowych (aktualnie są wspierane Apache ODE oraz OpenESB). Narzędzie pozwala użytkownikom
biznesowym nieposiadajacym głębokiej wiedzy technicznej na śledzenie realizacji procesu BPEL w
oparciu nie tylko o informację o stanie procesu, lecz również jego zmiennych i parametrów. Proces
monitorowania realizowany jest przeźroczyście z punktu widzenia procesu, co sprawia, że nie musi
on być w żadnym stopniu modyfikowany. Integralną część tego narzędzia stanowi łatwa w użyciu,
intuicyjna konsola monitorowania dostarczająca zagregowanego widoku procesów, mechanizmów
filtrowania danych, powiadomień oraz drążenia danych.
Metadata Repository Management jest narzędziem służącym do jednolitego zarządzania
metadanymi pochodzącymi ze wszystkich warstw środowiska SOA. Ponieważ systemy oparte na
paradygmacie SOA mogą korzystać z różnorodnych metod rejestracji i wyszukiwania serwisów
zarówno lokalnych, jak i zdalnych, celem realizacji narzędzia jest zapewnienie spójnego,
zunifikowanego dostępu do metadanych. Ma to zasadnicze znaczenie dla międzywarstwowej
integracji środowiska wykonania aplikacji SOA i praktycznego wykorzystania narzędzi AS3 Studio.
Oprogramowanie to umożliwia obsługę metadanych odnoszących się do usług ESB, SCA, OSGi, a
także usług udostępnianych przez SLP (Service Location Protocol) oraz UPnP (Universal Plug and
Play).
Systemy mobilne i HSOA
Systemy mobilne i HSOA stanowią jakościowo odmienna grupę od typowych systemów zarządzania
rozważanych w kontekście architektury SOA. Posiadają one specyficzne wymagania w zakresie
konstrukcyjnym – typowe dla klasy systemów wbudowanych, stosowanych do sterowania
urządzeniami i procesami przemysłowymi. W ramach prac na tymi systemami badane i
opracowywane są technologie sprzętowej realizacji systemów SOA (HSOA), metod integracji
dostarczanych w ten sposób usług z sieciami sensorowymi oraz mechanizmy budowy aplikacji,
uwzględniające możliwości i specyfikę uruchamiania aplikacji SOA na urządzeniach mobilnych. Celem
prowadzonych prac jest także stworzenie spójnej architektury integracji tej klasy systemów z
aplikacjami SOA realizowanymi w środowisku stacjonarnych systemów obliczeniowych i sieci
komputerowych.
Uniwersalny interfejs systemu HSOA
W ramach prowadzonych prac wykonano szereg prototypowych rozwiązań, służących do budowy i
uruchamiania sprzętowych serwisów HSOA. Zrealizowane zostały adaptery modułów
komunikacyjnych dla, opartych na układach FPGA, zestawów uruchomieniowych firmy Altera,
moduły sterowania urządzeniami powszechnego użytku, zasilanymi energią elektryczną 230V oraz
oparty na układzie FPGA, moduł sprzętowego węzła HSOA. Opracowano również koncepcję
połączenia urządzenia SunSpot z układem FPGA. Wykonano szereg unikatowych modułów
sprzętowych umożliwiających budowanie prototypowych elementów węzłów HSOA. Opracowano
także wstępnie moduł komunikacyjny USB jako jeden z elementów służący do budowy sprzętowych
serwisów sieciowych oparty na architekturze SODA. Trwają prace nad opracowaniem uniwersalnego
interfejsu dla stworzonych prototypowych modułów HSOA oraz nad opracowaniem sprzętowych
algorytmów komunikacji z cyfrowymi czujnikami parametrów otoczenia (temperatury, wilgotności,
itp.).
Sześcionogi robot jako mobilny element HSOA
Kolejny wątek w obszarze HSOA stanowił zagadnienia związane z budową robota mobilnego. Robot
posiada sześć nóg, z których każda wyposażona jest w trzy serwomechanizmy. Każdy
serwomechanizm sterowany jest przez osobny obwód sprzętowy zrealizowany w układzie FPGA.
Skonstruowano i wykonano elementy mechaniczne robota, opracowano i uruchomiono przykłady
sprzętowych algorytmów sterowania serwomechanizmami. Trwają prace implementacyjne nad,
dedykowanym dla robota, modułem HSOA opartym na układzie FPGA EP3C40 firmy Altera.
Równolegle prowadzone są prace nad implementacją sprzętowych algorytmów poruszania się robota
w języku VHDL, a także sprzętowych algorytmów pozyskiwania obrazu z zamontowanej na robocie
kamery video.
Urządzenia mobilne
Efektem badań i prac w obszarze urządzeń mobilnych jest narzędzie wspomagające tworzenie
serwisów, które mogą być instalowane i wykorzystywane na urządzeniach mobilnych oraz
wykorzystujących inteligentne sieci sensorowe. Takie podejście rozszerza możliwości budowy
aplikacji SOA o platformy mobilne oraz umożliwia tworzenie usług wykorzystujących informacje o
otoczeniu: lokalizacji, temperaturze, wilgotności itp. Zbudowane środowisko uruchomieniowe
wspiera tworzenie usług z wykorzystaniem technologii OSGi oraz ułatwia budowę oprogramowania
dla sieci sensorowych zgodnie z modelem komponentowym SCA. Oprócz wsparcia fazy tworzenia
oprogramowania, narzędzie dostarcza także mechanizmów zarządzania usługami na współcześnie
wykorzystywanych platformach mobilnych.
6. Zadania aplikacyjne
Realizacja drugiej fazy projektu, zatytułowanej: „Badania w zakresie zastosowania opracowanych
metod i narzędzi do budowy pilotowych aplikacji”, będzie obejmowała działania w siedmiu
obszarach aplikacyjnych. Rezultatem ich realizacji będzie sześć pilotowych aplikacji, stworzonych w
oparciu o paradygmat SOA.
Opracowanie aplikacji SOA dla interaktywnych medycznych systemów telekonsultacyjnych (A1)
Podjęcie prac w obszarze interaktywnych medycznych systemów telekonsultacyjnych jest wynikiem
dużego zainteresowania środowiska medycznego wykorzystaniem tego typu systemów oraz
doświadczeń realizatorów projektu w zakresie budowy takich aplikacji w dziedzinie kardiologii.
Pilotowe prace wykazały zasadność ekonomiczną takich rozwiązań i ich istotny, korzystny wpływ na
podnoszenie jakości usług medycznych. Zastosowanie podejścia SOA do realizacji systemów
telekonsultacyjnych pozwoli na bardziej efektywne i łatwiejsze ich dostosowanie do wymagań
użytkowników.
Realizacja środowiska dla interaktywnych telekonsultacji medycznych w oparciu o architekturę SOA
będzie wymagać budowy pilotowych wirtualnych organizacji wraz ze zwirtualizowanym
środowiskiem wykonawczym. Umożliwi to osiągnięcie odpowiedniego poziomu zarządzania i
monitorowania działania systemu, a przy wykorzystaniu wzorców konfiguracji pozwoli także na
sprawny przebieg procesu uruchamiania. Istotnym etapem prac będzie także opracowanie
repozytorium specjalistycznych usług SOA dla telekonsultacji medycznych, z którego usługi będą
dobierane zgodnie z określonymi wzorcami procesu biznesowego.
Opracowanie aplikacji SOA dla informacyjnych systemów medycznych (OA2)
Możliwość precyzyjnego odwzorowania procesu organizacyjnego w systemach informatycznych
opartych o architekturę zorientowaną na usługi powoduje, że podejście to jest bardzo atrakcyjne do
wykorzystania w systemach informacyjnych przeznaczonych dla różnych gałęzi gospodarki. W ramach
obszaru aplikacyjnego dla informacyjnych systemów medycznych planuje się zdefiniowanie modeli
procesowych dla jednostek NZOZ i SPZOZ, przeprowadzenie ich symulacji i weryfikacji oraz
opracowanie implementujących je usług komunikacyjnych.
Prace te pozwolą w sposób efektywny integrować ze sobą istniejące systemy szpitalne HIS (ang.
Hospital Information System). W chwili obecnej brak jest na rynku kompleksowych rozwiązań tego
typu, stąd też istnieje duża szansa, że zaproponowane nowoczesne rozwiązania znajdą swoje
zastosowanie w praktyce. Pomocne przy tym będzie znaczne doświadczenie realizatorów projektu z
zakresu konstrukcji i wdrażania systemów medycznych.
W ramach realizacji modeli procesowych zostaną wykonane określone zbiory usług, wśród których
znajdą się: usługi wspomagania ewidencji zasobów, usługi udostępniania danych krytycznych, usługi
dla gabinetu oraz usługi na potrzeby elektronicznego rekordu pacjenta.
Platforma komunikacyjna dla elektronicznego rynku złożonych usług biznesowych (OA3)
Technologie Internetowe wprowadziły nie tylko rewolucyjne zmiany w komunikacji pomiędzy
producentami, sprzedawcami i konsumentami, ale stworzyły również warunki do tworzenia nowych
modeli handlu. Analiza stanu rozwoju rynków elektronicznych wskazuje jednak, że istniejące e-rynki
są w znacznym stopniu niedoskonałe, czego główną przyczyną jest brak wsparcia dla realizacji
procesów biznesowych. Celem tego obszaru jest więc wykorzystanie technologii informacyjnej
opartej na paradygmacie SOA do realizacji otwartej i skalowalnej platformy na potrzeby
elektronicznego rynku złożonych usług biznesowych. Proponowana platforma będzie znacznie
rozszerzać dotychczasową formułę e-rynku m.in. poprzez automatyzację szeregu procesów
wchodzących w skład transakcji biznesowych takich jak: wyszukiwanie potencjalnych partnerów,
negocjację i uzgadnianie warunków, zawieranie umów itp.
Do realizacji założonego celu konieczne jest jednak pokonanie podstawowych barier, takich jak np.
brak wsparcia dla realizacji procesów biznesowych, które powstrzymują rozwój rynków
elektronicznych. Niniejszy obszar zakłada więc opracowanie ontologii dziedzinowych dla wybranych
rodzajów rynków elektronicznych, na podstawie których będą mogły zostać stworzone bazowe
interfejsy dla usługodawcy i usługobiorcy, a także formaty dokumentów oraz procedury ich
przetwarzania.
Opracowanie aplikacji SOA dla inwestycji w sektorze budowlanym (OA4)
Tradycyjny model współpracy pomiędzy użytkownikami, opracowany na gruncie podejścia
inżynierskiego, koncentruje się przede wszystkim na technicznej stronie współpracy zaniedbując
aspekty interakcji z użytkownikami będącym uczestnikami procesu biznesowego. Tymczasem z
modułami programowymi architektury SOA związani są korzystający z nich ludzie, konieczne jest więc
uwzględnienie faktu, że przepływ i dostępność informacji odbywa się nie tylko pomiędzy modułami
programowymi, ale także pomiędzy osobami bądź zespołami ludzi. W szczególności współpraca taka
wymaga wsparcia w nowych modelach biznesowych opartych na pojęciu wirtualnych organizacji.
Przykładem dziedziny, w współpraca zespołów ludzi związanych procesem biznesowym ma
szczególne znaczenie jest obszar inwestycji w sektorze budowlanym. W chwili obecnej współpraca
firm tego sektora limitowana jest wąskim gardłem jakim jest tradycyjny model zarządzania oparty na
dokumentach papierowych i uzgodnieniach dokonywanych podczas bezpośrednich spotkań między
pracownikami. Prace w tym obszarze aplikacyjnym będą zmierzały do usunięcia tych ograniczeń
poprzez opracowanie zestawu usług wspomagających współpracę w sektorze budowlanym.
Przewiduje się, że w ramach tego obszaru aplikacyjnego opracowana elektroniczna platforma
umożliwiającej tworzenie i konfigurowanie wirtualnej organizacji na potrzeby realizacji inwestycji
budowlanej, opracowanie platformy hierarchicznego modelowania procesów postępowania
administracyjnego oraz stworzenie hierarchii procesów postępowań administracyjnych związanych z
realizacją inwestycji budowlanych. Niemniej istotne będzie przy tym stworzenie modułu
personalizacji dostępu do usług, którego zadaniem będzie ułatwienie współdziałania grupy procesów
i ludzi oraz opracowanie mechanizmów dynamicznej adaptacji modeli postępowania
administracyjnego do warunków danego postępowania.
Opracowanie sprzętowej realizacji aplikacji SOA dla monitorowania (OA5)
Celem tego obszaru aplikacyjnego jest stworzenie modułów sprzętowych pozwalających na łatwe,
dynamiczne budowanie systemów kontroli i nadzoru otoczenia z wykorzystaniem podejścia HSOA.
Pozwoli to na zweryfikowanie w praktyce możliwości oferowanych przez sprzętową implementację
usług z użyciem układów FPGA w zakresie dynamicznej rekonfiguracji funkcji . Wybór obszaru
zastosowań jest związany z rosnącym znaczeniem systemów monitorowania i nadzoru środowiska
pracy i życia człowieka. W szczególności systemy oparte o proponowane rozwiązania pozwolą na
stałe kontrolowanie warunków panujących w monitorowanych budynkach i pomieszczeniach, w tym
detekcję ruchu, pomiar temperatury, wilgotności, hałasu, pojawienie się gazów trujących itp.
Jednocześnie funkcjonalność usług będzie można zmieniać dynamicznie w zależności od potrzeb i
stanu systemu.
Do realizacji założonego celu zostanie zbudowane środowisko zarządzania modułami HSOA, które
pozwoli na uruchamianie, konfigurowanie i monitorowanie pracy usług przy jednoczesnym
zapewnieniu podstawowych mechanizmów. Na bazie tak opracowanego środowiska zostaną
stworzone uniwersalne i adaptowalne moduły sprzętowe SOA przygotowane do dynamicznej zmiany
kodu co w połączeniu z opracowanymi w tym obszarze procedurami samokonfiguracji i
samowyszukiwania ułatwi integrację usług HSOA z pozostałą częścią systemu.
Opracowanie aplikacji SOA dla sektora telekomunikacji (OA6)
W systemach telekomunikacyjnych od dłuższego czasu stosowane i implementowane są kolejne
wersje koncepcji Sieci Inteligentnych, których idea jest bliska koncepcji systemów SOA. Wraz z
rosnącym zainteresowaniem architekturą SOA konieczne jest jednak wypracowanie odpowiednich
technik i rozwiązań umożliwiających integrację usług telekomunikacyjnych z procesami biznesowymi
SOA operatora i klienta. Pozwoli to w nowatorski sposób wykorzystać złożone aplikacje SOA nie
należące dotąd do domeny telekomunikacyjnej. Ponadto umożliwi poszukiwanie i sprawdzenie
specyficznych zastosowań dla usług telekomunikacyjnych, a także pozwoli na lepszą predykcję
zapotrzebowania na określone usługi telekomunikacyjne na podstawie analizy zachowań
użytkowników systemu.
W celu integracji usług telekomunikacyjnych z procesami biznesowymi SOA operatora i klienta
zostaną opracowane scenariusze migracji usług Sieci Inteligentnych do usług systemów SOA i SOKU
oraz zostaną określenie wzorce procesów telekomunikacyjnych i wybranych procesów biznesowych
dla typowych usług operatorskich. Pozwoli to na opracowanie procedur integracji, a w efekcie na
opracowanie metodologii budowy aplikacji zintegrowanych. Jednocześnie do zapewnienia spójności
opisu komponentów systemu konieczne będzie opracowanie ontologii dziedzinowych dla różnych
klas systemów telekomunikacyjnych, które opisywać będą m.in. metryki QoS, bezpieczeństwo,
metody pomiarowe itp.
Integracja usług elementarnych poprzez aktywny udział użytkowników o różnym stopniu
przygotowania i rozumienia usług systemu telekomunikacyjnego wymaga ponadto opracowania
interfejsu użytkownika. Interfejs taki będzie pozwalał na dostęp do zasobów, w tym bazy usług
elementarnych oraz do konfiguratora usług.
7. Podsumowanie
Projekt „Nowe technologie informatyczne dla elektronicznej gospodarki i społeczeństwa
informacyjnego oparte na paradygmacie SOA” adresuje istotne, zgodne z najnowszymi kierunkami
badań naukowych, aspekty problemowe architektury SOA. Prowadzone prace koncentrują się
głównie w obszarze zarządzania systemami SOA, zwiększenia ich niezawodności i jakości działania
oraz rozszerzenia na klasy systemów wbudowanych i mobilnych. Wyróżnione zadania zostały
dobrane w sposób umożliwiający konstrukcję, w pierwszej fazie projektu, funkcjonalnych
i kompletnych metod i narzędzi w wybranych obszarach problemowych, oraz realizacje z ich
wykorzystaniem pilotażowych aplikacji SOA w istotnych obszarach przemysłowych, w fazie drugiej.
Efektem takiego podejścia jest nie tylko stworzenie konkretnych, w pełni funkcjonalnych aplikacji
SOA ale również praktyczna weryfikacja narzędzi zbudowanych w pierwszej fazie projektu.
Projekt
„Nowe technologie informatyczne dla elektronicznej gospodarki i społeczeństwa
informacyjnego oparte na paradygmacie SOA” jest finansowany przez Ministerstwo Nauki i
Szkolnictwa Wyższego z Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu
Operacyjnego Innowacyjna Gospodarka - nr POIG.01.03.01-00-008/08."
8. Bibliografia
[1] David W. McCoy, Yefim V. Natis, Service-Oriented Architecture: Mainstream Straight Ahead, ID
Number: LE-19-7652, 16 April 2003, Gartner Research.
[2] Eric Sweden, Service Oriented Architecture: An Enabler of the Agile Enterprise in State
Government, NASCIO Report, May 2006
[3] Trent Mayberry, Shiping Wang and Xiaoshu Chen , Accelerating Business Transformation Through
SOA– A Guide for Chinese Executives in the Private and Public Sectors, http//:www.accenture.com/
[4] The Forrester Wave: Enterprise Service Buses, Q1 2009," http://www.forrester.com/.
[5] D. Chappell, T. Erl, M. Little, B. Loesgen, S. Roy, T. Rischbeck, and A. Simon, Modern SOA
Infrastructure: Technology, Design, and Governance. Upper Saddle River, NJ, USA: Prentice Hall PTR,
2010.
[6] T. Erl, SOA Design Patterns. Upper Saddle River, NJ, USA: Prentice Hall PTR, 2009.
[7] T. Erl, Service-Oriented Architecture: Concepts, Technology, and Design. Upper Saddle River, NJ,
USA: Prentice Hall PTR, 2005.
[8] C. Hayman, The Benets of an Open Service Oriented Architecture in the Enterprise, 2005.
[9] B. Hutchison, M.-T. Schmidt, D. Wolfson, and M. Stockton, SOA programming model for
implementing web services, part 4: An introduction to the ibm enterprise service bus,
http://www.ibm.com/developerworks/library/ws-soa-progmodel4/ [Accessed 01/04/2009].
[10] SCA Service Component Architecture. Assembly Model Specifcation, version 1.00, OASIS, May
2007.
[11] M. Burstein, J. Hobbs, O. Lassila, D. Mcdermott, S. Mcilraith, S. Narayanan, M. Paolucci, B.
Parsia, T. Payne, E. Sirin, N. Srinivasan, and K. Sycara, OWL-S: Semantic Markup for Web Services,
Website, World Wide Web Consortium, November 2004. [Online]. Available:
http://www.w3.org/Submission/ 2004/SUBM-OWL-S-20041122/
[12] A. Ali, Z. Liang-Jie, E. Michael, A. Abdul, and C. Kishore, Design an SOA solution using a reference
architecture, improve your development process using the soa solution stack, IBM developerWorks,
2007. [Online]. Available: http://www.ibm.com/developerworks/library/ar-archtemp/

Podobne dokumenty