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/