AAA

Semantyczne usługi sieci Web w funkcjonowaniu nowoczesnych organizacji

Ilona Pawełoszek-Korek

W niniejszym artykule opisano semantyczne usługi sieciowe (Semantic Web Services, SWS) postrzegane jako technologia, która ma szansę odmienić sposób funkcjonowania wielu organizacji i w znacznym stopniu wpłynąć na efektywność procesów biznesowych. Zaprezentowano kluczowe technologie w zakresie SWS oraz możliwości ich wykorzystania.

Systemy informatyczne współczesnych organizacji stają się układami otwartymi, których głównym zadaniem jest zautomatyzowana, możliwie w jak największym stopniu, komunikacja z partnerami biznesowymi, klientami i instytucjami. Tradycyjne systemy informatyczne często nie radzą sobie z problemami wynikającymi ze skali współczesnych zjawisk informacyjnych, z mobilnością użytkowników, potrzebą interakcji z innymi systemami i wykonywania niektórych zadań przez maszyny w imieniu człowieka, czy z serwowaniem użytkownikom relewantnej, bogatej multimedialnie treści. Rodzi się zatem zapotrzebowanie na zasoby informacyjne gromadzone w formie zrozumiałej dla maszyn, modelowanej w sposób semantyczny, umożliwiającej połączenie danych o ludziach, zasobach materialnych, zdarzeniach, lokalizacjach i czasie w sieć powiązań, w której współpracują inteligentne aplikacje (agenci programowi) działające w imieniu swoich właścicieli.

Celem niniejszego artykułu jest prezentacja zagadnień wykorzystania w systemach informatycznych nowoczesnych rozwiązań semantycznych stosowanych w usługach sieciowych, opartych na, znanej już od kilku lat, architekturze zorientowanej na usługi wzbogaconej o technologię sieci semantycznej.

Orientacja na usługi w nowoczesnych organizacjach

Działanie organizacji w coraz bardziej dynamicznym, konkurencyjnym środowisku gospodarczym wymusza konieczność szybkiej adaptacji do wymagań rynku. Przedsiębiorstwa muszą działać bardziej efektywnie i elastycznie. Sytuacja ta wymusza współdziałanie z wyspecjalizowanymi partnerami i powierzanie im realizacji fragmentów procesów, które były dotychczas realizowane samodzielnie. Nowoczesne organizacje działają zatem w modelu zorientowanym na usługi. W efekcie pojawiają się przedsiębiorstwa wirtualne, których proces biznesowy jest wynikiem współdziałania wielu partnerów, a każdy z nich optymalizuje i realizuje tylko jeden wybrany fragment. Bezpośrednie konsekwencje takiego modelu działalności to między innymi: większy nacisk na outsourcing, konieczność standaryzacji usług sektora IT oraz integracji systemów informatycznych działających w oparciu o różne platformy sprzętowe i programowe1.

Pojęcie orientacji na usługi jest znane również w inżynierii programowania2. W programowaniu określone zadania przyporządkowane są obiektom, z których składa się aplikacja. Obiekty te są odrębnymi fragmentami kodu, niezależnymi od pozostałych. Podczas działania aplikacji dostają dane wejściowe, a następnie za pomocą wewnętrznych algorytmów przetwarzają te dane i zwracają wyniki. Zatem poszczególne obiekty świadczą usługę przetwarzania na rzecz całej aplikacji, w ramach której współpracują. Na gruncie tych założeń ukształtowała się modularyzacja i metody obiektowe w programowaniu, które są podstawą projektowania architektur współczesnych systemów informatycznych.

Model przedsiębiorstwa zorientowanego na usługi stosuje się nie tylko we współpracy z partnerami biznesowymi, ale także w celu integracji wewnętrznych systemów informatycznych funkcjonujących w różnych działach. Można wtedy rozpatrywać jednostki organizacyjne jako konsumentów i producentów usług wewnętrznych. Zatem wdrożenie koncepcji przedsiębiorstwa zorientowanego na usługi dotyczy zarówno kwestii doboru odpowiedniej infrastruktury informatycznej, jak i transformacji procesów biznesowych w całym przedsiębiorstwie3.

Wciąż doskonalone platformy internetowe są środkiem realizacji coraz większego wachlarza usług w sposób elektroniczny. Jednakże orientacja na usługi w sieci nie powinna być kojarzona jedynie z automatycznym przesyłaniem danych. W ostatnich latach coraz bardziej popularny staje się model określany jako Cloud Computing, polegający na udostępnianiu oprogramowania jako usługi (Software as Service) oraz infrastruktury systemów informatycznych (np. sieci, pamięci masowej, mocy obliczeniowej).

Architektura zorientowana na usługi

Infrastruktura IT, pozwalająca różnym aplikacjom korzystać nawzajem ze swoich funkcji i wymieniać dane, jest określana jako architektura zorientowana na usługi (Service-Oriented Architecture, SOA). W modelu SOA aplikacje mogą być uruchamiane jako usługi i wykorzystywane przez inne aplikacje, ale szczegóły ich budowy są ukryte przed zewnętrznymi użytkownikami.

Niezależne usługi, oferujące niewielkie, lecz dobrze zdefiniowane funkcje, mogą być łączone w proces udostępniany jako nowa, złożona usługa. Taki dobór i łączenie usług w procesy określa się mianem kompozycji. Aplikacja działająca wewnątrz organizacji może wywołać inną aplikację jako usługę, np. aplikacja finansowa może programowo sprawdzić cenę papierów wartościowych (zapisaną w systemie informatycznym instytucji finansowej), a nawet dokonać ich zakupu za pomocą płatności elektronicznej, natomiast aplikacja w placówce handlowej może w sposób dynamiczny sprawdzać dostępność towaru w hurtowni i rezerwować jego partie dla klientów.

Kompozycja usług umożliwia praktyczną implementację idei przetwarzania automatycznego (Straight-Through Processing, STP)4. STP polega na przeprowadzeniu całego procesu (np. płatności) w sposób elektroniczny i w pełni zautomatyzowany.

Koncepcje zdalnego wywoływania procedur (np. CORBA, RMI, DCOM, .NET Remoting) znane są od lat. Jednakże SOA stało się bardzo dobrym rozwiązaniem dla integracji przedsiębiorstw i zastosowań e-commerce dopiero po wprowadzeniu standardu XML jako powszechnie przyjętego sposobu opisu danych w usługach sieciowych5.

Język XML i jego dialekty są odpowiedzią na problemy interoperacyjności, z jakimi spotykają się twórcy rozwiązań integracyjnych. Interoperacyjność można zdefiniować jako współdziałanie, umiejętność komunikowania się i bezpiecznej wymiany danych pomiędzy różnymi systemami oraz możliwość wykorzystywania przez nie tych samych danych. Usługi sieciowe (Web Services) wykorzystujące język XML są definiowane na wiele sposobów przez firmy i organizacje zajmujące się ich rozwojem takie jak IBM, Microsoft czy W3C. Jednakże wszystkie definicje uwzględniają kilka wspólnych elementów, do których należą:

  • SOAP (Simple Object Access Protocol) - protokół zdalnego dostępu do usług, wykorzystujący XML do kodowania danych oraz dowolny protokół sieciowy (zwykle HTTP) do ich przesyłania;
  • WSDL - język opisujący szczegółowo interfejsy usług. Opis zawiera parametry usługi (sposób jej wywołania, niezbędne dane wejściowe oraz strukturę komunikatu wyjściowego);
  • UDDI - biznesowy rejestr zawierający opis usług (pliki WSDL) i informacje o ich dostawcach. Usługi zawarte w rejestrze mogą być wyszukiwane.
Rejestry UDDI oferują tylko w pewnym stopniu sformalizowany sposób odnajdywania i uruchamiania właściwych usług, gdyż metadane zapisane w rejestrze są przeznaczone przede wszystkim do odczytu i interpretacji przez człowieka6. Zatem aplikacje mogą wywoływać usługi sieciowe, ale nie są w stanie samodzielnie ich wyszukiwać i wybierać spośród nich tych najbardziej odpowiednich - w celu dokonania kompozycji procesu biznesowego. Te zadania wymagają interwencji człowieka, co niewątpliwie stanowi niedogodność, zwłaszcza w przypadku skomplikowanych procesów biznesowych, w których krytycznym czynnikiem jest czas.

Semantyczne usługi sieciowe

Powodem, dla którego maszyny nie radzą sobie z odnajdywaniem i automatycznym doborem usług, jest niemożność zrozumienia przez nie znaczenia zarówno opisów tych usług, jak i kontekstu zapytania użytkownika.

Usługi pochodzące od różnych dostawców, ale oferujące te same funkcje, mogą być opisane przy użyciu odmiennych wyrażeń. Zatem wyszukiwanie w oparciu o słowa kluczowe może prowadzić do nierelewantnych wyników lub do pominięcia istotnych usług. Aby maszyny mogły znajdywać i organizować usługi w oparciu o ich znaczenie, a nie tylko słowa znajdujące się w ich tekstowym opisie, należy uzupełnić opisy o semantykę, która pozwoli aplikacjom rozpoznać, czy dane wyrażenia są tożsame bądź zrozumieć, jakie są relacje pomiędzy nimi. Na przykład dwa przedsiębiorstwa oferujące ten sam produkt mogą się posługiwać różnymi miarami (opakowania, sztuki itp.) lub używać innych słów na określenie tych samych produktów.

Zwykle w celu ustalenia wymaganej dla realizacji procesu biznesowego sekwencji wywołań usług konieczna jest interwencja programisty. Natomiast semantyczna usługa sieciowa (Semantic Web Sernice, SWS) sama potrafi odnaleźć inne usługi, rozpoznać ich funkcje, zdecydować, czy mogą być przydatne i wykorzystać efekty ich działania do osiągnięcia celu, jaki wyznaczył użytkownik. Aby było to możliwe, konieczne jest zastosowanie technologii umożliwiającej prezentację semantyki pojęć stosowanych w opisach, tak by były zrozumiałe dla programów komputerowych. Podstawowym narzędziem reprezentacji wiedzy w postaci semantycznej są języki służące do definiowania ontologii.

Ontologia jest formalną specyfikacją koncepcji pewnego obszaru wiedzy czy obiektów rzeczywistości. Składa się z klas obiektów, relacji między nimi i aksjomatów, które mają zastosowanie w danej dziedzinie wiedzy.

Współczesnymi standardami postrzeganymi jako kluczowe rozwiązania umożliwiające realizację semantycznych usług sieci są języki ontologii OWL-S i WSMO oraz technologia SWF bazująca na paradygmacie agentów programowych.

OWL-S, czyli język ontologii zorientowany na usługi, jest najbardziej znanym standardem budowy architektur semantycznych omawianych usług. Jest językiem używanym przez programistów do opisywania właściwości i możliwości usług. Zbudowany został na podstawie OWL7, który jest z kolei językiem budowy ontologii ogólnego przeznaczenia. Zapis OWL-S jest zrozumiały dla agentów programowych, czyli aplikacji działających w sposób autonomiczny, wyposażonych w podstawowe umiejętności oceny sytuacji i podejmowania decyzji w określonej dziedzinie, których zadaniem jest realizacja celu postawionego im przez użytkownika. W języku OWL-S zapisuje się informacje, których agent programowy może potrzebować, aby stwierdzić, czy dana usługa nadaje się do realizacji celu użytkownika. Na podstawie opisów OWL-S agent może skomponować proces złożony z kilku usług oraz koordynować i monitorować jego wykonywanie. OWL-S opisuje także techniczne podstawy działania usługi (grounding) i określa, w jaki sposób agent może mieć do niej dostęp (protokoły komunikacji, format wiadomości, numery portów używanych w komunikacji z usługą)8.

WSMO (Web Service Modeling Ontology) to ontologia mająca na celu jednoznaczne zdefiniowanie wszystkich pojęć związanych z semantycznymi usługami sieciowymi. Obecnie istnieje kila ontologii WSMO9:

  • ontologia dat i czasu - definiująca ogólny model opisywania czasu i danych oraz relacje między pojęciami w tym zakresie;
  • ontologia lokalizacji - opisująca pojęcia, takie jak kontynenty, kraje, miasta i ich wzajemne powiązania;
  • ontologia zakupów - opisująca podstawowe elementy transakcji pomiędzy kupującym a sprzedającym;
  • ontologia połączeń kolejowych - opisująca pojęcia związane z usługami kolejowymi (rodzaje połączeń, odległości, lokalizacje, bilety itp.);
  • Amazon ECS - ontologia opisująca usługi e-commerce firmy Amazon.
WSMO ma się przyczynić do osiągnięcia całkowitej lub częściowej automatyzacji zadań, takich jak: odkrywanie, wybór, kompozycja, mediacja, wykonywanie i monitorowanie usług związanych zarówno z wewnętrznymi procesami przedsiębiorstw, jak i ich integracją z partnerami zewnętrznymi10.

Płynne funkcjonowanie systemów bazujących na semantycznych usługach sieciowych wymaga zautomatyzowanego wykonywania zadań (celów). Agenci muszą znajdywać odpowiednich partnerów do kooperacji, jak również zasoby obliczeniowe niezbędne do automatycznego wykonania zadania powierzonego im przez użytkownika.

Do realizacji wyżej wymienionych zadań stworzona została technologia SWF (Semantic Web FRED). Korzysta ona z rozwiązań agentowych realizujących semantyczne usługi sieciowe, tworząc jeden spójnie działający mechanizm realizacji celów - oparty o ontologię WSMO. System FRED, opracowany przez Net Dynamics, jest środowiskiem działania aplikacji agentowych, pozwala importować ontologie i integrować zewnętrzne usługi sieciowe. FRED może zatem służyć jako platforma działania aplikacji sieci semantycznej11.

Wybrane przykłady zastosowań semantycznych usług sieciowych

Semantyczne usługi sieciowe mogą tworzyć wartość dodaną w tych obszarach działalności, które są czasochłonne i pracochłonne, a jednocześnie wymagany jest jak najkrótszy czas ich wykonania i minimalizacja liczby błędów wynikających z ludzkich pomyłek. Zatem sektorami, które mogą w znacznym stopniu skorzystać z omawianej technologii, są: finanse, bankowość i ubezpieczenia.

Przykładem prezentującym użyteczność technologii SWS może być aplikacja porównująca oferty banków w zakresie kredytów hipotecznych12. Aplikacja korzysta z wielu usług sieciowych, z których każda jest udostępniana przez inny bank. Wiele stron internetowych oferuje obecnie usługi porównywania ofert kredytowych - na przykład: www.eHipoteka.com, www.OpenFinance.pl, porownajkredyt.wp.pl.

Obecnie dane do serwisów porównawczych uzyskuje się w sposób manualny. Pracownik serwisu przegląda oferty banków na stronach internetowych bądź przeprowadza rozmowy telefoniczne z oddziałami banków. Wykorzystanie technologii semantycznych usług sieci mogłoby w znacznym stopniu poprawić efektywność działania aplikacji porównującej oferty. Banki udostępniałyby swoje oferty w postaci usług opublikowanych w specjalnym rejestrze.

Dzięki semantycznemu opisowi byłoby możliwe zautomatyzowane odkrywanie nowych usług pojawiających się na rynku, a także wywoływanie ich przez zewnętrzne aplikacje w celu kompozycji nowych funkcjonalności (np. porównania ofert). W efekcie serwis oferujący porównywanie ofert kredytowych byłby bogatszy w informacje, a koszt jego administracji i aktualizacji uległby znacznemu obniżeniu, gdyż nie byłoby potrzeby wyszukiwania ofert przez pracownika serwisu.

Innym przykładem obrazującym ideę kompozycji semantycznych usług sieci jest serwis internetowy umożliwiający zaplanowanie podróży. Użytkownik określa swój cel, którym jest np. dotarcie z Częstochowy do Nowego Jorku samolotem w określonym dniu i o określonej godzinie - w jak najkrótszym czasie. Na wstępie musi on określić niezbędne wymagania dotyczące czasu, kosztów, form płatności i lokalizacji hotelu, w którym się zatrzyma po przyjeździe. Serwis planowania podróży musi korzystać z usług wielu dostawców, które wywoływane w określonym porządku, stworzą złożony proces:

  1. Sprawdzenie terminów lotów do Nowego Jorku - usługa oferowana przez porty lotnicze w różnych miastach Polski. Wybór lotu, który umożliwia dotarcie do celu na czas;
  2. Usługa sprawdzenia dostępności miejsc w samolocie i rezerwacji biletu;
  3. Płatność za bilet - usługa oferowana przez bank;
  4. Sprawdzenie istniejących połączeń komunikacyjnych do wybranego portu lotniczego - usługa oferowana przez kolej lub firmy przewozowe;
  5. Wywołanie usługi rezerwacji biletu na wybrany środek transportu;
  6. Dokonanie elektronicznej płatności za bilet;
  7. Usługa lokalizacji hotelu znajdującego się w wybranej części Nowego Jorku;
  8. Usługa porównania cen i standardów w hotelach;
  9. Rezerwacja noclegu - usługa oferowana przez wybrany hotel;
  10. Usługa przeliczająca kursy walut w celu prezentacji całkowitych kosztów w wybranej walucie.
Ten zautomatyzowany proces to wizja z przyszłości, mająca za zadanie zobrazować, jak dalece rozpowszechnienie usług sieciowych i semantyki może ułatwić oraz przyspieszyć proces optymalizacji i planowania.

Kolejnym przykładem jest wykorzystanie omawianych usług w portalach instytucji administracji państwowej. Załatwianie spraw w urzędach wymaga zapoznania się z pewnymi procedurami, wypełniania wniosków i odwiedzania wielu instytucji. Zastosowanie SWS mogłoby zaoferować użytkownikom bardziej przyjazne formy interakcji z organami administracji. Załatwienie sprawy, takiej jak na przykład założenie działalności gospodarczej, które obecnie wymaga odwiedzenia kilku instytucji, mogłoby być zrealizowane za pomocą jednego interfejsu (np. portalu). Wszystkie procedury odbywałyby się w sposób zautomatyzowany, poprzez wywołanie odpowiednich usług, których dostawcami są właściwe instytucje (wpisu do ewidencji, nadania REGON-u, założenia konta bankowego, zgłoszenia formy rozliczeń opodatkowania, ubezpieczenia społecznego). Idea SWS może zatem wspomagać inicjatywę e-government, dążącą do rozpowszechnienia elektronicznej drogi wymiany danych z urzędami.

Zakończenie

Usługi nowej generacji, wykorzystujące koncepcję sieci semantycznej, są postrzegane jako technologie umożliwiające powstanie rozbudowanych aplikacji wyposażonych w cechy sztucznej inteligencji. Obecne kierunki badawcze w zakresie rozwoju infrastruktury SWS obejmują tworzenie ontologii opisującej je w sposób sformalizowany oraz opracowywanie inteligentnych agentów programowych, których zadaniem jest optymalny dobór i uruchamianie usług w celu realizacji zadania powierzonego im przez użytkownika. Semantyczne usługi sieci mają duży potencjał w zakresie obniżania kosztów realizacji procesów biznesowych - zwłaszcza tych, które wymagają pracochłonnych działań ze strony człowieka, a jednocześnie czas realizacji i jakość danych są ich kluczowym elementem.

Bibliografia

  • N. Bieberstein, S. Bose, M. Fiammante, K. Jones, R. Shah, Service-oriented Architecture Compass, IBM Press, 2005.
  • T. Erl, Service-oriented Architecture: Concepts, Technology, and Design, Prentice Hall, 2005.
  • D. Fensel, H. Lausen, A. Polleres, J. De Bruijn, M. Stollberg, D. Roman, J. Domingue, Enabling Semantic Web Services: Web Service Modeling Ontology, Springer, 2006.
  • Z. Fryźlewicz, A. Salamon, Podstawy architektury i technologii usług XML sieci Web, PWN, Warszawa 2008.
  • S. Khoshafian, Service Oriented Enterprises, Auerbach Publications, 2007.

Netografia

INFORMACJE O AUTORZE

ILONA PAWEŁOSZEK-KOREK

Autorka jest adiunktem w Katedrze Informatyki Ekonomicznej Wydziału Zarządzania Politechniki Częstochowskiej. Do jej zainteresowań naukowych należą: technologie informacyjne wspomagające zarządzanie wiedzą - w szczególności zagadnienia budowy i zastosowań sieci semantycznych, praktyczne aspekty implementacji standardów internetowych oraz technologia mobilna.

 

Komentarze

Nie ma jeszcze komentarzy do tego artykułu.

dodaj komentarz dodaj komentarz

Przypisy

1 Z. Fryźlewicz, A. Salamon, Podstawy architektury i technologii usług XML sieci Web, PWN, Warszawa 2008, s. 15.

2 T. Erl, Service-oriented Architecture: Concepts, Technology, and Design, Prentice Hall, 2005, s. 290.

3 N. Bieberstein, S. Bose, M. Fiammante, K. Jones, R. Shah, Service-oriented Architecture Compass, IBM Press, 2005, s. 63-64.

4 S. Khoshafian, Service Oriented Enterprises, Auerbach Publications, 2007, s. 43.

5 L. Cabral, J. Domingue, E. Motta, T.R. Payne, F. Hakimpour, Approaches to Semantic Web Services: An Overview and Comparison, kmi.open.ac.uk/tech.... [16.09.2008].

6 Tamże.

7 DAML Services, www.daml.org/servic.... [16.09.2008].

8 D. Martin, OWL-S: Semantic Markup for Web Services www.daml.org/servic.... [16.09.2008].

9 Semantic Web FRED (SWF), swf.deri.at. [16.09.2008].

10 D. Fensel, H. Lausen, A. Polleres, J. De Bruijn, M. Stollberg, D. Roman, J. Domingue, Enabling Semantic Web Services: Web Service Modeling Ontology, Springer, 2006, s.5.

11 Semantic Web FRED (SWF), dz.cyt.

12 M. Martínez Montes, J.L. Bas, S. Bellido, O. Corcho, S. Losada, R. Benjamins, J.Contreras, Data, Information and Process Integration with Semantic Web Services, dip.semanticweb.org... , [16.09.2008].