Opracowanie - Instytut Łączności

Transkrypt

Opracowanie - Instytut Łączności
Zakład Zaawansowanych Technik Informacyjnych (Z-6)
Wybrane aspekty budowy łańcucha
przetwarzania danych w zorientowanych
usługowo rozproszonych systemach
dostarczania informacji decyzyjnych
Praca nr 06300039
Warszawa, grudzień 2009
2
Wybrane aspekty budowy łańcucha przetwarzania danych w zorientowanych usługowo
rozproszonych systemach dostarczania informacji decyzyjnych
Praca nr 06300039
Słowa kluczowe (maksimum 5 słów): SOA, Jakość danych, Metoda Punktów Funkcyjnych,
Zarządzanie Reputacją, Sprawiedliwy Podziału Zasobów
Kierownik pracy:
mgr inż. Mariusz Pajer
Wykonawcy pracy:
mgr inż. Michał Majdan
mgr inż. Paweł Olender
inż. Agnieszka Gosk
mgr inż. Piotr Celej
Kierownik Zakładu: dr inż. Janusz Granat
© Copyright by Instytut Łączności, Warszawa 2009
3
4
Spis Treści
1
Wstęp ...............................................................................................................................7
2
Metody zapewnienia jakości w usługowych łańcuchach przetwarzania...........................7
2.1
Motywacja do budowy usługowo zorientowanych łańcuchów przetwarzania...........7
2.2
Massive Parallel Processing i Shared Nothing Architecture jako klucz do
wydajności i efektywności ....................................................................................................9
3
2.3
Service Oriented Architecture jako klucz do efektywności i elastyczności .............10
2.4
Podsumowanie .......................................................................................................14
Metoda Punktów Funkcyjnych jako narzędzie konstrukcji łańcucha przetwarzania.......14
3.1
Wstęp .....................................................................................................................14
3.2
Metoda Punktów Funkcyjnych – krótka charakterystyka ........................................14
3.2.1
Podstawowe elementy metody .......................................................................14
3.2.2
Klasyfikacje.....................................................................................................16
3.3
Charakterystyka systemów informacyjnych w kontekście pomiaru wielkości.........19
3.4
Dostosowanie Metody Punktów Funkcyjnych – propozycja ...................................20
3.5
Podsumowanie i Wnioski........................................................................................21
4
Zarządzanie Reputacją w Systemach Informacji Zarządczej o Niepewnej Jakości Źródeł
Informacji................................................................................................................................22
5
6
4.1
Wstęp .....................................................................................................................22
4.2
Operator agregacji WOWA .....................................................................................22
4.3
Model systemu zarządzania reputacją ...................................................................23
4.4
Podsumowanie .......................................................................................................26
Sprawiedliwy podział zasobów a systemy oparte o SOA ...............................................26
5.1
Wprowadzenie ........................................................................................................26
5.2
SOA w systemach wspomagania decyzji ...............................................................27
5.3
Sprawiedliwość jako warunek efektywności SOA...................................................28
5.4
Podsumowanie .......................................................................................................29
Podsumowanie ...............................................................................................................29
Bibliografia..............................................................................................................................29
Załącznik 1 .............................................................................................................................31
Załącznik 2 .............................................................................................................................41
5
6
1
Wstęp
Łańcuchy przetwarzania (ŁP) są jednym z podstawowych elementów nowoczesnych
systemów informacyjnych. W Hurtowniach Danych (HD), które są szczególnym skłądniukiem
a jednocześnie i rodzajem systemów informacyjnych, łańcuch przetwarzania jest tożsamy
z kompletnym zbiorem procesów Ekstrakcji, Transformacji i Ładowania (ang. ExtractionTransorformation-Load – ETL). W przypadku tradycyjnie zbudowanych systemów
informacyjnych, łańcuchy składają się z procedur, funkcji lub skryptów implementowanych
najczęściej w tej samej technologii lub technologiach powiązanych ze sobą poprzez
narzędzia dostawcy tzw. silnika hurtowni danych. Monolityczna budowa łańcucha
przetwarzania bywa często powodem wielu komplikacji już w trakcie projektowania
i implementacji hurtowni danych, które wiążą się najczęściej ze zbyt płytką analizą źródeł,
ograniczonym lub nie pełnym projektem koncepcyjno-funkcjonalny, heterogenicznością i nie
kompatybilnością źródeł danych, ograniczeniami w zakresie dostępnych interfejsów
wyjściowych. W dalszych etapach życia systemu informacyjnego, budowa monolityczna
powoduje często ograniczenia w zakresie wydajności lub rozwoju systemu informatycznego,
które często łączą się z podatnością na utratę jakości danych. Biorąc pod uwagę powyższe
ułomności tradycyjnych monolitycznych łańcuchów przetwarzania, autorzy niniejszej pracy
proponują konstruowanie elastycznych i rozproszonych łańcuchów przetwarzania danych
w zorientowanych usługowo rozproszonych systemach dostarczania informacji decyzyjnych,
które umożliwią przezwyciężyć ograniczenia monolitycznych łańcuchów przetwarzania.
W niniejszej pracy przedstawiono kilka nowych propozycji i metod w zakresie wybranych
aspektów budowy łańcucha przetwarzania danych w zorientowanych usługowo
rozproszonych systemach dostarczania informacji decyzyjnych, wśród których znalazły się:
problemy zapewnienia jakości, szacowanie złożoności przy użyciu metody punktów
funkcyjnych, problemy zarządzania reputacją oraz problemy sprawiedliwego podziału
zasobów.
2
2.1
Metody zapewnienia jakości w usługowych łańcuchach przetwarzania
Motywacja do budowy usługowo zorientowanych łańcuchów przetwarzania
Schemat przepływu danych w tradycyjnym systemie dostarczającym informacje decyzyjne
przedstawia Rysunek 1. Jak widać, system taki jest najczęściej oparty o monolityczną
hurtownię danych, w której stosuje się dwie podstawowe formy organizacji przetwarzania
i składowania danych:
1. łańcucha przetwarzania danych do informacji wyjściowej zapisywanej w Globalnym
Zasobie Hurtowni Danych (GZHD) – w tym przypadku procesy ETL formułują zwarty
łańcuch przetwarzania, który jako monolityczny blok przetwarza dane źródłowe
w informacje składowane w hurtowni danych i udostępniane użytkownikom, w tym
przypadku, każda z aplikacji użytkownika może najczęściej korzystać z tego samego
zestawu agregatów i wielowymiarowych kostek danych;
2. łańcucha przetwarzania do informacji operacyjnych zapisywanych w Operacyjnych
Zasobach Hurtowni Danych (OZHD) i informacji wyjściowych zapisywanych
w specjalizowanych Data Martach (DM) – w tym przypadku łańcuch procesów ETL jest
dzielony na dwa bloki, pierwszy służy do przetworzenia danych pochodzących ze źródeł
danych w operacyjne dane HD składowane w Operacyjnych Zasobach Hurtowni
Danych, drugi służy do przetworzenia informacji Operacyjnego Zasobu Hurtowni Danych
w docelowe informacje HD, zgodne z oczekiwaniami aplikacji użytkowników, w tym
przypadku, każda z aplikacji użytkownika korzystać z własnego, dedykowanego zestawu
agregatów i wielowymiarowych kostek danych.
7
Jak widać na wymienionym rysunku, w obydwu przypadkach, procesy ETL formułują zwarty
blok łańcucha przetwarzania, a jedynymi znaczącymi różnicami są: wykorzystanie OZHD,
jako dodatkowego operacyjnego repozytorium danych i specjalizacja wyjściowych struktur
danych dla potrzeb aplikacji użytkowników w drugiej ze stosowanych form.
Źródła danych
Hurtownia
Procesy ETL
Danych
Baza
danych
Baza
danych
Pliki
S
Moduły
ładowania
danych
Globalny zasób
HD
Moduły
transformacji
danych
Operacyjne
zasoby HD
Moduły
ekstrakcji
danych
Moduły
TL
OLTP
Interfejsy
użytkownika
HD
Aplikacja
OLAP 1
Aplikacja
OLAP n
Data
Mart(y)
S
Monolityczna Hurtownia Danych
Rysunek 1: Schemat przepływu danych w systemie informacyjnym
opartym o tradycyjną hurtownię danych
Tradycyjny monolityczny łańcuch przetwarzania jest nie adekwatny wobec potrzeb
odbiorców informacji decyzyjnych, którzy zgłaszają potrzeby w zakresie:
1. dodawania nowych typów źródeł danych (ŹD, ang. Data Source – DS), którymi mogą
być na przykład strumienie danych czy sieci czujników;
2. integracji danych pochodzących z wielu heterogenicznych źródeł danych, np. baz
danych, plików tekstowych i binarne, dokumentów HTML i XML, różnorodnych systemów
transakcyjnych (ang. On-line Transaction Processing – OLTP);
3. adaptacji używanych łańcuchów przetwarzania do lawinowo narastającej liczby
i różnorodności ładowanych danych, które pochodzą ze zmiennych w czasie źródeł
danych;
4. dostarczania zawsze aktualnych danych w wyjściowych strukturach GZHD lub Data
Mart, przy czym oznacza to, że użytkownicy coraz częściej chcą móc obserwować
w czasie rzeczywistym propagację zmian zachodzących w ŹD do informacji będących na
wyjściu HD;
5. możliwości otrzymywania informacji decyzyjnej w postaci konfigurowalnych analiz
i analiz wykonywanych na bieżąco na zamówienie decydenta (ang. ad-hock).
Należy tu ponadto zauważyć, że w znaczący sposób jest zauważalne wzrastanie presji na
natychmiastowe zaspokajanie wszystkich powyższych potrzeb na żądanie odbiorców
informacji oraz na udostępnienie decydentom narzędzi mogących służyć do samodzielnego
definiowania i modyfikowania analiz (zawartości aplikacji) udostępniających informacje
decyzyjne, a także uruchamiania łańcucha przetwarzania w celu odświeżenia wytworzonej
informacji lub wytworzenia nowej informacji decyzyjnej.
8
Częściowe spełnienie potrzeb 3 i 5 można uzyskuje się poprzez zwiększenie wydajności
i efektywności przetwarzania danych, przy czym samo zastosowanie bardziej wydajnego
sprzętu i oprogramowania tzw. silników przetwarzania danych jest tu nie wystarczające
i konieczne staje się wprowadzanie zmian w konstrukcji używanych łańcuchów
przetwarzania danych.
Wszelkie wprowadzanie zmian w monolitycznych łańcuchach jest pracochłonne i obarczone
ryzykiem wprowadzenia błędu, który nie zaburzając działania aktualnie modyfikowanego
ogniwa łańcucha, będzie rzutował na działanie innych ogniw, a przez to będzie trudny do
identyfikacji i usunięcia. Dodatkowe komplikacje pojawiają się w przypadku wprowadzania
nowych funkcjonalności, które poszerzają zakres obsługiwanych źródeł, zwiększają
złożoność przetwarzania I zmieniają zakres i formę informacji wyjściowych, tak jak tego
wymagają wszystkie powyższe potrzeby. Z powyższych względów konieczne staje
podzielenie łańcucha przetwarzania na mniejsze części, które staną się nie zależnymi
ogniwami, które będzie można elastycznie modyfikować, dodawać i usuwać bez wpływu na
inne ogniwa.
Podsumowując, aby móc spełnić potrzeby 1-5, konieczne jest spełnienie trzech
fundamentalnych postulatów jakościowych, które stawia się wobec nowoczesnych
łańcuchów przetwarzania w systemach dostarczania informacji decyzyjnych:
1. większa wydajność;
2. większe efektywność;
3. większa elastyczność.
2.2
Massive Parallel Processing i Shared Nothing Architecture jako klucz do wydajności
i efektywności
Jak już wcześniej wspomniano, jedną z metod zwiększania efektywności i wydajności
łańcuchów przetwarzania danych w systemach decyzyjnych jest zastosowanie bardziej
wydajnego sprzętu i oprogramowania tzw. silników przetwarzania danych. Jedną
z najbardziej obiecujących technologii stosowanych obecnie do osiągnięcia tych celów jest
Massive Parallel Processing (MPP), co tłumaczy się na język polski jako „Komputery
Masowo Równoległe”.
MPP jest terminem oznaczającym bardzo wydajną architekturę komputerową i technologię
wielostrumieniowego przetwarzania danych, zgodnie z którą pojedynczy i złożony system
komputerowy budowany jest z użyciem wielu niezależnych od siebie jednostek
obliczeniowych, które mogą być jednostkami arytmetycznymi, logicznymi lub pełnymi
procesorami, z których każdy dysponuje własną prywatną pamięcią operacyjną i przestrzenią
składowania danych, choć np. pamięć operacyjna może być również współdzielona.
Wszystkie jednostki obliczeniowe, które wchodzącą w skład pojedynczego systemu MPP,
działają równolegle i nie zależnie od siebie. Dzięki temu możliwe jest rozłożenie złożonych
i zasobochłonnych obliczeń na kilka strumieni przetwarzanych równolegle na wielu
jednostkach obliczeniowych.
W przypadku łańcuchów przetwarzania danych, zastosowanie MPP umożliwia
wprowadzenie wielu równoległych strumieni wprowadzania ustrukturalizowanych
i nieustrukturalizowanych danych, ich transformacji i ładowania w ramach jednego
wspólnego łańcucha przetwarzania, a także umożliwia stosowanie równoległych strumieni
podłańcucha przetwarzania pomiędzy OZHD i DM, które mogą mieć formę strumieni zapytań
pracujących na ustrukturalizowanych i nieustrukturalizowanych danych.
Nowoczesne silniki hurtowni danych zbudowane w oparciu o architekturę MPP są obecnie
coraz częściej implementowane w postaci wirtualnych hurtowni danych, które korzystają
9
z wirtualnych serwerów obliczeniowych osadzonych na sprzętowych rozwiązaniach typu
serwery kasetowe (ang. Blade). Serwery kasetowe są rozwiązaniem polegającym na
umieszczeniu od kilku do kilkunastu serwerów w jednej specjalizowanej obudowie, która
zapewnia im korzystanie z wysokowydajnych i zwielokrotnionych szyn wymiany danych,
komunikacji sieciowej i zasilania. Zastosowanie serwerów kasetowych, które korzystają
z procesorów kompatybilnych z x86, pozwala nie tylko na minimalizację kosztów zakupu
sprzętu, ale i na minimalizację kosztów utrzymania platformy sprzętowej, dzięki mniejszemu
zużyciu energii, mniejszym wymaganiom wobec potrzebnej powierzchni użytkowej
i mniejszej generacji ciepła. Jednak w przypadku wykorzystania MPP dla obsługi łańcuchów
przetwarzania danych, podstawowe znaczenie ma możliwość skonstruowania przy użyciu
platformy wirtualizacyjnej systemu MPP, w którym rolę jednostek obliczeniowych mogą
pełnić poszczególne serwery kasetowe albo serwery wirtualne współdzielące fizyczne
zasoby fizycznych serwerów kasetowych. Przykładem rozwiązania implementującego
wirtualną hurtownię danych w architekturze MPP w oparciu o serwery kasetowe
i wirtualizację jest rozwiązanie Kognitio WX2.
Upowszechnianie się technik wirtualizacyjnych, doprowadziło również do powstania nowych
rozwiązań hybrydowych, które połączyły cechy klasycznie rozumianej architektury MPP
z rozwiązaniami typowymi bardziej dla konkurencyjnej technologii wielostrumieniowego
przetwarzania wielkich zbiorów danych w postaci obliczeń rozproszonych (ang. distributed
computing). Przykładem takiego rozwiązania hybrydowego jest Shared Nothing Architecture
(SN), w której każdy z węzłów obliczeniowych (jednostek obliczeniowych) jest nie zależny
i samowystarczalny, przy czym węzły są zbudowane w oparciu o pojedyncze fizyczne
serwery, które z założenia mogą być rozproszone lokalizacyjnie i fizycznie połączone siecią
komputerową. Charakterystyczną cechą SN jest brak pojedynczych punktów dostępu do
łańcuchów przetwarzania oraz informacji przetwarzanych i składowanych. Jest to cecha
różniąca SN od tradycyjnych systemów obliczeń rozproszonych, w których poszczególne
węzły mają ściśle określony zakres obsługiwanych funkcjonalności i porcji informacji, w SN
każdemu z węzłów można zlecić wykonanie ten samego łańcucha obliczeniowego i uzyskać
dostęp do tej samej porcji informacji, co oznacza, że systemem wewnętrznie i niejako poza
kontrolą użytkownika dokona dystrybucji zleceń przetwarzania i odczyta rozproszone porcje
informacji. Przykładem rozwiązania będącego implementacją wirtualnego systemu MPP
w oparciu o SN jest Teradata, o której traktuje artykuł Agnieszki Gosk „Query optimization in
Teradata warehouse”, kóry stanowi Załącznik 1 do niniejszego opracowania. Innym
przykładem system zbudowanego z użyciem MPP SN jest GreenPlenum (produkt
komercyjny).
Wśród wysoko wydajnych systemów niekomercyjnych na uwagę zasługuje Apache Hadoop,
który jest systemem zmierzającym w kierunku MPP SN pod względem sposobu
przechowywania danych i organizacji przetwarzania i wyszukiwania informacji, jednak brak
w nim jeszcze mechanizmów pełnej niezależności i samo wystarczalności wszystkich
węzłow.
2.3
Service Oriented Architecture jako klucz do efektywności i elastyczności
Zastosowanie MPP i SN umożliwia konstruowanie łańcuchów przetwarzania danych, które
w swojej wydajności zbliżają się do przetwarzania w czasie rzeczywistym, o ile strumień
przetwarzanych danych ma ograniczoną pojemność, do której dopasowano skalowanie
wdrożonego silnika przetwarzania danych. Praktyka utrzymywania hurtowni danych dowodzi,
że nie w dłuższym horyzoncie czasu nie jest możliwe utrzymanie zakładanej efektywności,
a co za tym idzie wydajności przetwarzania, bez zastosowania dodatkowych rozwiązań,
które umożliwią obsługę nie przewidywalnych zmiany w pojemności wejściowych strumieni
danych, jakości danych wprowadzanych i przetwarzanych w łańcuchu przetwarzania, nawet
przy zapewnieniu nie zmienności źródeł danych, konstrukcji łańcuchów przetwarzania
i struktur informacji wyjściowych. Co więcej dynamika zmian zachodzących w źródłach
10
danych oraz wymagań wobec zawartości informacji decyzyjnych, które mają być
produkowane przez łańcuchy przetwarzania powoduje, że konieczne jest wprowadzenie
dodatkowych rozwiązań, które poprzez modularyzację łańcuchów przetwarzania zapewnią
ich elastyczność, a poprzez to wymaganą efektywności i wydajność.
Dla przykładu częstym problemem występującym w łańcuchach przetwarzania jest chwilowa
utrata jakości danych pochodzących z jednego ze źródeł, która prowadzi do uzyskania
pozbawionej jakości informacji wyjściowej. W takim przypadku konieczne jest powtórzenie
przetwarzania dla poprawionego zbioru danych źródłowych. W przypadku monolitycznych
łańcuchów przetwarzania, oznacza to powtórne wykonanie całego łańcucha, co
w znaczącym stopniu skonsumuje część mocy obliczeniowej zasobów przewidywanych do
wykonywania tego samego łańcucha dla aktualnych porcji danych źródłowych, a to może
oznaczać nawet 50-o procentowy spadek efektywności i wydajności przetwarzania danych.
Metodą pozwalającą na uniknięcie takiego spadku efektywności i wydajności przetwarzania
jest taki podział łańcucha na moduły, aby konieczne było wykonanie tylko części z modułów
łańcucha przetwarzani, które skonsumują dalece mniej zasobów niż cały łańcuch.
Przytoczony powyżej przykład wskazuje również na konieczność zapewnienia konstruowania
elastycznych modułowych łańcuchów przetwarzania, w celu uzyskania odpowiedniego
poziomu zapewnienia jakości danych, co jest możliwe jedynie w przypadku wprowadzenia
kontroli jakości na poziomie produktów poszczególnych modułów (ogniw) łańcucha
przetwarzania.
Innym częstym przykładem związanych z kwestią zapewnienia jakości przetwarzanych jest
wprowadzenie do łańcucha przetwarzania zmian związanych z dodaniem, usunięciem czy
modyfikacją źródła danych lub, co bardziej znaczące, zmian w logice przetwarzania danych
w samym łańcuchu. W takim przypadku (jak to już wcześniej wspomniano) monolityczny
łańcuch przetwarzania jest bardziej podatny na propagację utraty jakości danych będącej
konsekwencją błędów w implementacji lub niezgodności z innymi niż modyfikowany partiami
kodu.
W celu zapewnienia odpowiedniego poziomu efektywności i elastyczności, konieczne jest
zastosowanie architektury, która pozwoli na:
ϖ rozdrobnienie i modularność łańcucha przetwarzania – dzięki czemu łańcuch przestanie
być monolityczną aplikacji, a stanie się zbiorem niezależnych modułów, które pozwolą na
osiągnięcie najbardziej optymalnego rozdrobnienia procesów przetwarzania;
ϖ możliwość wielokrotnego wykorzystania każdego z modułów łańcucha przetwarzania;
ϖ możliwość nie zależnego budowania i modyfikacji poszczególnych modułów, jako
komponentów wytwarzanych przez różnych dostawców;
ϖ możliwość komponowania z dostępnych modułów dowolnej liczby różnych procesów
przetwarzania danych;
ϖ możliwość interakcji modułów pomiędzy sobą oraz pomiędzy nimi a źródłami danych
i aplikacjami interfejsu użytkownika;
ϖ zgodność modułów ze wspólnymi standardami tworzenia i interakcji niezależnych
komponentów oprogramowania;
ϖ zgodność modułów ze standardami wymiany i przepływu struktur danych i informacji
specyficznymi dla rodzaju działalności biznesowej, w której konieczne będzie
zastosowanie modułów przetwarzania;
ϖ automatyzację identyfikacji, kategoryzacji, wyszukiwania, dostarczenia, zabezpieczenia
i monitorowania udostępnionych modułów.
Wszystkie wymienione powyżej postulaty spełnia Architektura Zorientowana Usługowo (ang.
Service Oriented Architecture – SOA), która umożliwia budowę łańcucha przetwarzania
11
danych w zorientowanych usługowo rozproszonych systemach dostarczania informacji
decyzyjnych. Jest to możliwe między innymi dlatego, ze każda z usług zgodnych z SOA
może działać jako dostawca i odbiorca usług, co oznacza, że usługi-moduły łańcucha
przetwarzania zaimplementowanego w SOA są w pełni wzajemnie interaktywne. Spośród
wielu możliwych sposobów implementacji rozwiązań opartych o SOA, najbardziej efektywne,
elastyczne i coraz popularniejsze są implementacje korzystające z taskanych usług
sieciowych (ang. Web Service – WS).
W przypadku zastosowania WS do implementacji modułów łańcucha przetwarzania każdy
moduł łańcucha jest implementowany jako usługa sieciowa. Jeżeli, w formę usług sieciowych
zostaną również opakowane źródła danych i aplikacji interfejsu, to wtedy możliwa jest
budowa kompletnego Zorientowanego Usługowo Rozproszonego Systemu Dostarczania
Informacji Decyzyjnych (ZURSDID), a dzięki temu możliwe jest spełnienie wszystkich
postulatów 1-5 wymienionych w punkcie 2.1 niniejszego opracowania.
Filozofia SOA promuje wprowadzenie nowych narzędzi zapewniania jakości w zakresie
efektywnego rozdrobnienia funkcjonalności łańcucha przetwarzania danych pomiędzy
poszczególnymi modułami-usługami. Rozdrobnienie funkcjonalności musi zapewniać
bowiem jednoznaczną identyfikację zakresu i celu działania usługi oraz przeciwdziałać
nadmiernym narzutom na obsługę interfejsów usług-modułów, co może mieć miejsce przy
zbyt dużym rozdrobnieniu. Nowym użytecznym narzędziem zapewnienia jakości staje się
w tym przypadku Business Process Modeling Notation (BPMN), który pozwala na
zdefiniowanie logiki łańcucha przetwarzania zgodnie z logiką działań biznesowych, przez
odbiorców informacji decyzyjnych, ekspertów w zakresie przedmiotu analiz zawierających
informacje decyzyjne, ekspertów w zakresie zawartości źródeł danych i ekspertów
w zakresie metod stosowanych w łańcuchach przetwarzania. Dzięki BPMN można
wyodrębnić zbiory funkcjonalności, które zostaną zaimplementowane później jako usługimoduły oraz zdefiniować łańcuchy przetwarzania z nich korzystające. Dzięki możliwości
przełożenia diagramów BPMN na język Web Services Business Process Execution
Language (WS-BPEL), który specyfikuje interakcję pomiędzy usługami sieciowymi, można
bezpośrednio zamieniać zdefiniowaną logikę dziedzinową na logikę działania łańcucha
przetwarzania przy użyciu modułów-usług. W ten sposób decydenci mogą samodzielnie
definiować nowe łańcuchy przetwarzania i tworzyć nowe aplikacje informacyjne bez utraty
zapewnienia jakości wynikłej z ich braku wiedzy w zakresie działania samych modułowusług. Co więcej rozwiązania wypracowane przez ekspertów dziedzinowych w celu
zapewnienia jakości na poziomie BPMN, mogą być łatwo przenoszone na poziom interakcji
modułów-usług.
Dzięki WS SOA, moduły łańcucha przetwarzania stają się luźno powiązanymi usługami,
pomiędzy którymi nie ma żadnych bezpośrednich zależności. Konieczne jest przy tym
natomiast dostarczenie informacji niezbędnych do zapewnia interakcji pomiędzy modułami,
które muszą być “świadome” istnienia, interfejsów i możliwości usług kooperujących. Dlatego
tworzone są kontrakty usług, które opisują warunki korzystania z pracy poszczególnych
modułów i komunikacji z nimi. Kontrakt opisujący moduł-sługę może być ponadto istotnym
nowym narzędziem zapewnienia jakości w łańcuchu przetwarzania, ponieważ w ramach
zawartej w nim umowy Zapewnienia Poziomu Usługi (ang. Service Level Ageerment – SLA),
można zapisać wymagania co do jakości jego działania, wymagania warunkujące jakość
jego działania w trakcie interakcji z innymi usługami.
Kontrakty opisujące usługi są również konieczne z tego powodu, że każdy z modułów
przetwarzania jest abstrakcyjną usługą, która enkapsuluje (opakowuje, ukrywa przedświtem
zewnętrznym) swoje wewnętrzne mechanizmy działania przy użyciu zewnętrznych
interfejsów. Dzięki temu, każdy moduł-usługa uzyskuje pełną autonomię w zakresie
kontrolowania swojej wewnętrznej logiki działania. Abstrakcyjność, enakpsulacja i autonomia
usług są kolejnymi nowymi narzędziami zapewnienia jakości, ponieważ uodparniają moduł –
usługę od błędów poczynionych w pracy nad innymi modułami i chronią inne moduły od
błędów poczynionych w pracach nad aktualnym modułem. Pozwalają ponadto na
12
podniesienie jakości wdrażania ZURSDID, a szczególnie transformacji tradycyjnego systemu
dostarczania informacji decyzyjnych w ZURSDID, gdzie w pierwszym etapie wdrażania
ZURSDID, można dokonać tylko opakowywania wyodrębnionych modułów przetwarzania
w interfejsy usługowe, co pozwoli wprowadzanie zmian w logice działania poszczególnych
modułów w dowolnych kolejnych etapach i w dowolnej kolejności.
Kontrakty są ponadto niezbędne dla poprawnego działania narzędzi do odkrywania usług
dostępnych do użycia w budowanych aplikacjach. Mechanizm ten pozwala na odnalezienie
i dostęp do dobrze zdefiniowanych usług. Z tego powodu w ZURSDID konieczne jest
zapewnienie nowych narzędzi, które pozwolą na weryfikację jakości oferowanych kontraktów
i działania mechanizmu wyszukiwania.
Dzięki powyższych mechanizmom, moduły-usługi mogą być dowolnie komponowane
w usługi złożone, które składają się z grup połączonych, skoordynowanych i pozostających
w interakcji usług. Zdolność do kompozycji i ponownego wykorzystania raz utworzonych
modułów-usług jest następnym nowym narzędziem, które pozwala zapewnić wymagany
poziom jakości w trakcie tworzenia łańcucha przetwarzania lub jego złożonego elementu
o nowej funkcjonalności. Wymaga to jednak zastosowania dodatkowych nowych narzędzi
w postaci standardów specyfikujących zasady i organizację współpracy pomiędzy modułamiusługami, do czego w WS służą języki Web Services Choreography Description Language
(WS-CDL) i WS-BPEL.
Zgodnie z założeniami SOA, systemy informacyjne oparte o tę architekturę mogą korzystać
z usług-modułów, które choć mogą być dostarczane przez różnych dostawców, to powinny
być traktowane równorzędnie. Jednocześnie SOA przewiduje i promuje wprowadzanie zasad
umożliwiających wybór usług działających i pasujących w sposób najbardziej optymalny do
logiki działania aplikacji składającej się z tych usług. W przypadku ZURSDID stwarza to
możliwość wprowadzenia nowego narzędzia do oceny jakości działania modułów-usług
w łańcuchów przetwarzania danych, które pozwoli na preferowanie usług-modułów
o najwyższej jakości.
Źródła danych
Baza
danych
ZURSDID
Usługi ŹD i HD ETL
Moduł
Moduł
Moduł
Aplikacje
Interfejsu
Moduł
Moduł
Baza
danych
Usługi
UI
Globalny zasób
HD
Moduł
OLAP
Moduł
Moduł
Metadane
HD
Moduł
Moduł
Moduł
OLAP
Moduł
Pliki
A diti
Moduł
OLTP
Struktury Hurtowni
Danych
Zasób
Operacyjny
Moduł
Data
Mart(y)
Moduł
Moduł
OLTP
Moduł
Rysunek 2: Schemat przepływu danych w Zorientowanego Usługowo Rozproszonego
Systemu Dostarczania Informacji Decyzyjnych (widoczne moduły-usługi łańcucha
przetwarzania)
13
2.4
Podsumowanie
Dzięki zastosowaniu Service Oriented Architecture zaimplementowanemu przy użyciu Web
Services w połączeniu z Massive Parallel Processing lub Shared Nothing Architecture
możliwe stało się zbudowanie Zorientowanych Usługowo Rozproszonych Systemów
Dostarczania Informacji Decyzyjnych, które spełniają wymagania jakościowe względem
wydajności, efektywności i elastyczności przetwarzania. Kluczem do realizacji tych
wszystkich tych postulatów stało się przekształcenie monolitycznego łańcucha przetwarzania
w elastyczny modułowo-usługowy łańcuch przetwarzania. Rozdrobnienie i racjonalność
enkapsulowania funkcjonalności w modułach, ich autonomia, wzajemna niezależność
i zdolność do kompozycji w bardziej złożone grupy usług stały się nowymi strategicznymi
narzędziami do zapewnienia jakości w łańcuchu przetwarzania ZURSDID. Operacyjnymi
nowymi narzędziami zapewnienia jakości są Business Process Modeling Notation, Web
Services Business Process Execution Language, Web Services Choreography Description
Language I kontrakty definiujące warunki działania usług.
3
Metoda Punktów Funkcyjnych jako narzędzie konstrukcji łańcucha przetwarzania
3.1
Wstęp
Nieodłącznym elementem budowy systemów informatycznych, w tym także systemów
informacyjnych i przetwarzania danych jest szacowanie wielkości systemu. Szacowania takie
wykonuje się w różnych celach, do których należy między innymi ocena pracy wymaganej do
budowy systemu, ocena złożoności jak i ocena wydajności. W przypadku systemów
transakcyjnych, zbudowanych w celu przetwarzania operacyjnego danych oraz wykonywania
czynności związanych z obsługiwanymi obszarami, szacowanie takie jest uproszczone, gdyż
związane jest ono bezpośrednio z liczbą funkcjonalności, jakie implementuje dana aplikacja.
Znacznie większy problem jest w przypadku systemów informacyjnych, w przypadku których,
na najwyższym poziomie abstrakcji można powiedzieć, że implementowana jest jedna
funkcjonalność – dostarczanie informacji (danych, raportów itp.). Z oczywistych względów
takie przedstawienie systemu informacyjnego jest zbyt dużym uproszczeniem i nie ma
żadnego praktycznego zastosowania. W tej części pracy zaprezentowano metodę
szacowania wielkości systemów zwaną metodą Punktów Funkcyjnych (Function Points
Analysis) oraz zaproponowano modyfikacje związane z jej zastosowaniem w systemach
dostarczających informacje.
3.2
Metoda Punktów Funkcyjnych – krótka charakterystyka
Metoda Punktów Funkcyjnych została po raz pierwszy zaproponowana przez Allana
J. Albrechta z IBM w roku 1979. Pierwotnie miała na celu poprawienie możliwości
szacowania wielkości aplikacji komputerowych jaką wcześniej wykonywano poprzez
zliczanie linii kodu aplikacji. Metoda ta proponowała podejście od strony funkcjonalności
dostarczanych użytkownikom, a nie od strony programisty, co pozwalało na szacowanie
wielkości systemów niezależnie od zastosowanej technologii. W bardzo krótkim czasie
metoda okazała się przydatna do szacowania większych aplikacji i pozwalała na
wytłumaczenie zakładanej lub wyprodukowanej złożoności systemu stronie zamawiającej
czyli w większości przypadków osobom bez doświadczenia informatycznego.
3.2.1
Podstawowe elementy metody
14
3.2.1.1 Określenie granic systemu
Najważniejszym elementem szacowania wielkości systemu metodą Punktów Funkcyjnych
jest określenie granic systemu. Związane jest to z dalszymi krokami tej metody. Każdy
nowocześnie budowany system jest w jakiś sposób powiązany z innymi działającymi
w organizacji i już samo to zadanie może okazać się skomplikowane. Każdy z działających
systemów wyposażony jest także w szereg strumieni danych, poprzez które wymienia
informacje z otoczeniem (w tym wypadku interfejs użytkownika też może być traktowany jako
specyficzny strumień wymiany danych).
System Zewnętrzny 1
S
W tru
ej mi
śc eń
io
wy
System Zewnętrzny 2
System Zewnętrzny 4
eń
mi y
ru ciow
t
S jś
y
W
Strumień
Wejściowy
Opisywany System
mie
ń
We
-W
y
System Zewnętrzny 3
St
ru
m
ie
ń
W
eW
y
Str
u
Rysunek 3: Schemat systemu i otoczenia
Wyznaczenie granic opisywanego systemu jest istotne dla określenia w którym momencie
wymieniane z otoczeniem pliki (w ramach strumieni) lub zapytania przekraczają jego granice,
a gdzie są one jedynie przetwarzane wewnątrz systemu. Takie określenie przetwarzanych
danych jest konieczne, gdyż idea metody Punktów Funkcyjnych opiera się na identyfikacji
tych właśnie plików i operacji.
3.2.1.2 Elementy Szacowania
Wyróżnienie poszczególnych elementów szacowania pozwala na określenie wielkości
systemu. Jednocześnie ułatwia to badanie informacji o systemie, gdyż wyznaczony jest
konkretny cel – poszukiwanie opisu elementów. Informacje o tych elementach można
znaleźć w projekcie systemu, dokumentacji technicznej, dokumentacji przepływów danych i
innych dokumentach opisujących techniczne rozwiązania w systemie i otoczeniu.
W metodzie Punktów Funkcyjnych wyróżnione są następujące elementy szacowania
(podano wraz z krótką definicją):
1. Zewnętrzne Wejścia (External Inputs) – Jako Zewnętrzne Wejście (EI) określany jest
atomowy proces, w którym przetwarzane dane przekraczają granice systemu wchodząc
15
do jego wnętrza. Źródło tych danych nie jest w tym momencie istotne. Przy identyfikacji
wejścia jako EI należy pamiętać, że powinno mieć ono wpływ na modyfikację plików
wewnętrznych (ILF).
2. Zewnętrzne Wyjścia (Externat Outputs) – Zewnętrzne Wyjście (EO) to atomowy proces
odwrotny do EI. W EO dane wygenerowane wewnątrz systemu w ramach przetwarzania
plików ILF przekraczają jego granice w strumieniu wyjściowym.
3. Zewnętrzne Zapytania (External Inquires) – Zewnętrzne Zapytania (EQ) są procesami
systemu, które nie angażują w trakcie działania Logicznych Plików Wewnętrznych (ILF).
4. Logiczne Pliki Wewnętrzne (Internal Logical Files) – Logiczne Pliki Wewnętrzne (ILF) to
zbiory danych, powiązanych ze sobą logicznymi zależnościami i pogrupowanych pod
względem logicznym, które znajdują się (i są przetwarzane) w całości wewnątrz granic
systemu.
5. Pliki Zewnętrzne (External Interface Files) – Pliki Zewnętrzne (EIF) to zidentyfikowane
pliki logiczne wyłącznie używane przez system, a w żaden sposób nie modyfikowane.
EIF zawsze umieszczone są poza granicami systemu i modyfikowane przez inne
aplikacje.
3.2.2
Klasyfikacje
Po zidentyfikowaniu wszystkich elementów systemu konieczne jest dokonanie ich klasyfikacji
w celu oceny złożoności (czyli liczby Punktów Funkcyjnych charakteryzujących system).
Pierwszym krokiem jest ocena wielkości poszczególnych zidentyfikowanych elementów.
Oceny tej dokonuje się oddzielnie dla procesów EI, EO i EQ oraz dla plików ILF i EIF. Dla
procesów oceniana jest liczba plików modyfikowanych i takich, do których w trakcie
wykonania procesu następują odwołania – liczba ta nazywana jest FTR. Istnieją sztywne
reguły określające sposób liczenia FTR narzucone przez standard IFPUG 0.
Drugim elementem oceny wielkości procesów jest określenie liczby rekordów logicznych,
jakie w nich uczestniczą. Rekordy te nazywane są w metodzie DET. Tak jak w przypadku
FTR istnieją ścisłe reguły określające jak należy liczyć liczbę DET, dzięki którym możliwe jest
ścisłe określenie dla każdego procesu liczb DET i FTR.
Podobna klasyfikacja wykonywana jest dla plików ILF i EIF. W tym wypadku określana jest
w pierwszej kolejności liczba RET mówiąca jaka jest unikalna liczba rekordów logicznych
w ramach danego pliku. Należy zwrócić uwagę, że w tym wypadku mowa jest o logicznych
rekordach, bez odnoszenia się do fizycznej reprezentacji plików.
W drugiej kolejności, tak jak w wypadku procesów, określana jest liczba DET, która ma
podobne jak wcześniej znaczenie.
Mając określone liczby DET i FTR dla procesów oraz liczby DET i RET dla plików możliwe
jest przypisanie każdego z atomowych elementów do jednej z trzech kategorii (LOW,
AVERAGE, HIGH) określających ich wielkość (złożoność). Jednocześnie dla każdej z tych
kategorii wyspecyfikowana została liczba bazowych punktów, które jej odpowiadają dla
każdego z elementów. Liczby punktów przypisane do kategorii zebrane zostały w tabelach
złożoności (pokazanych niżej). Tabele zostały opracowane przez IFPUG na bazie statystyk
zbieranych z realizowanych projektów mierzonych metodą Punktów Funkcyjnych. W
tabelach litera oznacza przypisanie do kategorii, zaś w nawiasach podano bazową liczbę
punktów dla kategorii.
16
Tabela złożoności procesów EI
FTR\DET
1-4
5-15
16+
0-1
L(3)
L(3)
A(4)
2
L(3)
A(4)
H(6)
3+
A(4)
H(6)
H(6)
Tabela złożoności procesów EQ/EO
FTR\DET
1-5
6-16
20+
0-1
L(3/4)
L(3/4)
A(4/5)
2-3
L(3/4)
A(4/5)
H(6/7)
4+
A(4/5)
H(6/7)
H(6/7)
Tabela złożoności dla plików EIF/ILF
RET/DET
1-19
20-50
51+
1
L(5/7)
L(5/7)
A(7/10)
2-5
L(5/7)
A(7/10)
H(10/15)
6+
A(7/10)
H(10/15)
H(10/15)
Wartości z tabel zostają następnie przemnożone przez współczynniki dla każdego elementu,
w celu uzyskania liczby bazowych punktów funkcyjnych dla systemu (Total Number of
Unadjusted Function Points). Tabela ze współczynnikami wygląda następująco:
Typ elementu
Wielkość
LOW
AVERAGE
HIGH
EI
X3
X4
X6
EO
X4
X5
X7
EQ
X3
X4
X6
ILF
X7
X 10
X 15
EIF
X5
X7
X 10
SUMA PF
Razem Bazowych Punktów Funkcyjnych
Następnie ta bazowa wielkość musi zostać skorygowana o odpowiedni multiplikator
(współczynnik korekty) wynikający ze specyfiki systemu (jego przeznaczenia, planowanego
użycia, funkcji specyficznych itp.). IFPUG określa 14 kryteriów niezależnych od technologii,
które wyznaczają odpowiedni multiplikator. Dla każdego z podanych kryteriów określa się
wpływ na system w skali od 0 do 5 gdzie 0 oznacza brak wpływu na złożoność systemu,
a 5 oznacza bardzo duży wpływ:
17
L.p.
Kryterium
Opis
1.
Komunikacja
Jak wiele modułów jest potrzebnych w procesie
komunikacji i wymiany informacji w systemie?
2.
Przetwarzanie rozproszone
Jak są zrealizowane i jak
przetwarzania rozproszonego?
3.
Wydajność
Czy czas odpowiedzi systemu jest istotny dla
użytkownika końcowego?
4.
Użycie infrastruktury
Jak bardzo obciążona jest infrastruktura fizyczna
(hardware) na której działa system?
5.
Częstotliwość transakcji
Jak często wykonywane są transakcje?
6.
Wprowadzanie danych
Jak duża część informacji wprowadzana jest On-Line?
7.
Efektywność
Jak ważna
interfejsu?
8.
Zmiany danych On-Line
Jak wiele plików ILF jest zmienianych On-Line?
9.
Złożone operacje
Czy system przetwarza dane w złożonych
algorytmach logicznych/matematycznych?
10.
Wielokrotne Użycie
Czy system został zaprojektowany do użycia przez
jednego czy wielu użytkowników? Jak wielu?
11.
Łatwość instalacji
Jak skomplikowana jest instalacja i konwersja na inne
platformy?
12.
Łatwość obsługi
Jak skomplikowane i zautomatyzowane są procedury
zatrzymania/uruchomienia, backupu, odzyskania itp.
dla systemu?
13.
Liczba instalacji
Czy system był projektowany dla wielu organizacji lub
środowisk?
14.
Otwartość na zmiany
Czy system był projektowany pod kątem łatwiejszego
(automatycznego) wprowadzania zmian?
dla
użytkownika
wiele
jest
jest
funkcji
efektywność
Współczynnik korekty wyznaczany jest na podstawie wzoru (IFPUG):
14
V = 0.65 + 0.01 × ∑ c i
(1)
i =1
Gdzie ci jest wartością określoną dla kryterium i z wcześniejszej tabeli. Ostateczny wynik
określający liczbę Punktów Funkcyjnych (czyli złożoność systemu) otrzymujemy przez
przemnożenie bazowej liczby punktów funkcyjnych i współczynnika korekty.
Wykonana w ten sposób modyfikacja bazowej liczby Punktów Funkcyjnych może sięgać +/35%.
Dopiero zmodyfikowana liczba Punktów Funkcyjnych określa złożoność systemu. Na
podstawie tej liczby wyznaczyć można inne charakterystyki.
Dla przykładu pomnożenie liczby punktów funkcyjnych dla systemu przez produktywność
w danej technologii wyrażoną stosunkiem liczby FP na osobodzień pracy, pozwala na
określenie pracochłonności wykonania systemu.
18
3.3
Charakterystyka systemów informacyjnych w kontekście pomiaru wielkości
Systemy informacyjne, a w szczególności systemy rozproszone są bardzo trudne do
oszacowania jeśli chodzi o ich wielkość. Problemem w tym momencie staje się już na
wstępie określenie granic systemu. Jest to związane z ich budową i tym, że zazwyczaj
osadzone są one bardzo mocno i bardzo głęboko w środowisku informatycznym organizacji.
Typowa struktura systemu przetwarzania informacji została pokazana na rysunku
Rysunek 4: Schemat systemu dostarczania informacji
System dostarczania informacji może być rozpatrywany na kilku poziomach. Na każdym
z nich można mówić o innych funkcjonalnościach. Tym bardziej, że często są to elementy
realizowane oddzielnie i obwarowane innymi wymaganiami. Przy dużej wielkości systemach,
a takie często występują w przypadku systemów informacyjnych, dodatkowym elementem
jest fakt iż poszczególne części mogą być wykonywane przez odseparowane zespoły,
a zatem powinny być oceniane oddzielnie.
Z punktu widzenia użytkowników systemów (taki punkt widzenia narzuca metoda Punktów
Funkcyjnych) przedstawiony na schemacie system informacyjny ma funkcjonalności
związane z dostarczanymi na końcu procesu raportami. Jednakże zasady budowy systemów
informacyjnych pokazują, że większa część systemu znajduje się w jego wnętrzu, czyli
elementach związanych z ładowaniem danych z systemów źródłowych do Hurtowni Danych
oraz przetwarzaniem danych zgromadzonych w HD do tematycznych składnic danych
analitycznych. Te elementy systemu mogą stanowić nawet 80% jego złożoności.
W procesie ładowania danych wykonywane są dwa rodzaje operacji:
ϖ Ładowanie (Extracting) – ekstrakcja danych z systemów źródłowych i ładowanie ich albo
bezpośrednio (bez żadnych modyfikacji) do docelowej Hurtowni Danych albo do
pośrednich baz tymczasowych
ϖ Czyszczenie i wstępna obróbka (Data Preparation) – czyszczenie danych pochodzących
z różnych systemów źródłowych, wstępna klasyfikacja i zastosowanie prostych reguł,
uspójnienie danych pochodzących z różnych źródeł (np. uspójnienie definicji).
Te operacje stanowią pewien element złożoności systemu informacyjnego, który z definicji
nie jest widoczny dla użytkownika końcowego. Dodatkową trudność stanowi sytuacja,
w której system informacyjny gromadzi dane z całej organizacji, co powoduje multiplikowanie
źródeł danych i znaczne powiększenie warstwy związanej z ładowaniem i czyszczeniem
danych.
19
Hurtownia Danych, jako baza specyficzna i dedykowana do konkretnych zastosowań, jest
dość ustandaryzowana. Jednakże w każdym osobnym przypadku wymaga pracy
analitycznej związanej z jej zaprojektowaniem.
Element najważniejszy z punktu widzenia poprawnego działania systemu informacyjnego
(czyli systemu z założenia udostępniającego wiarygodną informację o organizacji) to
warstwa przetwarzania danych. Procesy występujące w tej warstwie mają za zadanie przy
pomocy wysoce wyspecjalizowanych algorytmów przetworzyć wstępnie zagregowane dane
znajdujące się w hurtowni danych na pogrupowane tematycznie bazy analityczne. Procesy
przetwarzania danych implementują algorytmy data mining takie jak segmentacje, algorytmy
predykcyjne, symulacje i inne złożone logicznie i matematycznie zadania. Rozpatrywanie
złożoności systemu stosującego takie algorytmy z punktu widzenia dostarczanych
funkcjonalności może prowadzić do błędu jakim byłoby znaczne zaniżenie takiej oceny
Ostatnią warstwą każdego systemu informacyjnego jest wygenerowanie i dostarczenie
użytkownikowi końcowemu raportów czy to w formie statycznej (jak strony WWW,
wiadomości mail czy raporty papierowe) czy w dynamicznej (jak zintegrowane karty
wyników, raporty OLAP 1 , dynamiczne portale informacyjne). Na tym etapie złożoność
systemu związana jest z wygenerowaniem odpowiedniej formy raportu.
3.4
Dostosowanie Metody Punktów Funkcyjnych – propozycja
Warstwa 1: Hurtownia Danych
Warstwa 2: Przetwarzanie Analityczne
Warstwa 3:
Raportowanie
Raporty
Przetwarzanie
System źródłowy
Składnica Danych
Analitycznych
Ładowanie danych
Przetwarzanie
Raporty
System źródłowy
Hurtownia Danych
Składnica Danych
Analitycznych
System źródłowy
Przetwarzanie
Raporty
Składnica Danych
Analitycznych
Rysunek 5: Schemat systemu dostarczania informacji w podziale na najważniejsze warstwy
Aby poprawnie szacować złożoność systemów informacyjnych metodą Punktów
Funkcyjnych konieczna jest jej modyfikacja. Nie jest możliwe rozpatrywanie systemu jako
całości. Tak jak opisano wcześniej, po pierwsze system informacyjny, mimo niekiedy dużego
zaawansowania technologicznego, dostarcza użytkownikowi końcowemu bardzo prostą
funkcjonalność (raport). Po drugie system informacyjny zazwyczaj składa się z kilku warstw,
z których każda jest złożonym elementem i każda wspiera końcową funkcjonalność jaką jest
dostarczenie informacji.
1
OLAP – OnLine Analitycal Processing – nazwa raportów wielowymiarowych umożliwiających
użytkownikowi końcowemu analizę danych w wielu przecięciach.
20
Proponuje się zatem, aby dokonać modyfikacji metody tak, aby odzwierciedlała ona
rzeczywistą złożoność systemów tej klasy. Naturalne wydaje się skorzystanie ze specyfiki
budowy systemu informacyjnego, jaką jest jego wielowarstwowość. System w podziale na
warstwy przestawiono na rysunku Rysunek 5.
W większości przypadków taki naturalny podział można dość łatwo wykonać. Widać także
wyraźnie, że w momencie dokonania tego podziału w systemie wyróżnione zostały trzy
podsystemy. Każdy z nich można w tym momencie traktować oddzielnie i opisywać
oddzielnie. Dla każdego można także oddzielnie wyznaczyć wszystkie elementy określane
w metodzie Punktów Funkcyjnych. Proponuje się zastosowanie następujących reguł:
ϖ Podsystem 1 – Hurtownia danych
¬ Wyznaczamy EIF dla każdego logicznego pliku źródłowego na wejściu podsystemu.
Ważne jest aby rozpoznać pliki logiczne w oderwaniu od ich fizycznej implementacji.
¬ Wyznaczamy EI dla każdej aplikacji ładowania danych do hurtowni danych.
¬ Wyznaczamy ILF dla każdego pliku logicznego przechowywanego w hurtowni
danych.
¬ Nie wyznaczamy żadnych elementów metody dla plików wstępnie czyszczonych
i przetwarzanych w bazach pośrednich.
¬ Nie wyznaczamy żadnych elementów dla plików i/lub strumieni wyjściowych
z podsystemu.
ϖ Podsystem 2 – Przetwarzanie analityczne
¬ Wyznaczamy EI dla każdego procesu przetwarzania danych analitycznych
¬ Wyznaczamy ILF lub EIF dla każdego logicznego pliku w Składnicy Danych
Analitycznych. ILF wyznaczany jest dla plików, które nie są używane w dalszym
przetwarzaniu (np. słowniki danych). EIF wyznaczany jest dla tabel faktów na
podstawie których generowane są raporty.
¬ Wyznaczamy EO dla każdego procesu eksportującego dane do raportowania.
ϖ Podsystem 3 – Raportowanie
¬ Wyznaczamy EIF dla każdego raportu, kostki wielowymiarowej i strony WWW.
Dla każdej z podanych tutaj zasad stosowane są standardowe techniki określania wielkości
zaproponowane w metodzie Punktów Funkcyjnych. Pozwala to na określenie złożoności
każdego z elementów systemu informacyjnego i nie zgubienie wewnętrznych procesów jakie
w tym systemie zachodzą.
Taki podział systemu informacyjnego i rozpatrywanie każdego z podsystemów oddzielnie ma
też dodatkową zaletę polegającą na tym, że możliwe jest wydzielenie i szacowanie
oddzielnie jego elementów. Sprzyja to np. podziałowi pracy pomiędzy różne jednostki
w organizacji.
3.5
Podsumowanie i Wnioski
W przypadku systemów dostarczania informacji konieczne wydaje się zastosowanie jakiejś
metody szacowania złożoności. Jest to związane z koniecznością późniejszego szacowania
pracochłonności, wydajności i innych parametrów zależnych od wielkości systemu. Istotne
jest także, aby szacowanie wykonane zostało w oderwaniu od użytej technologii czy
fizycznej implementacji systemu. Metoda Punktów Funkcyjnych pozwala na wykonanie
takiego szacowania jednak w swojej oryginalnej wersji nie może zostać zastosowana.
21
Wynika to z faktu, że w założeniu skupia się ona na funkcjonalnościach dostarczanych
użytkownikom końcowym. W przypadku systemów informacyjnych szacowanie na tej
podstawie wiedzie do zdecydowanie zaniżonych wartości gdyż większość złożoności
systemu jest ukryta przed wzrokiem użytkownika końcowego. Zaproponowano zatem pewną
modyfikację sposobu stosowania tej metody, która pozwala na uwzględnienie złożoności
wewnętrznych modułów systemu informacyjnego. Dzięki temu daje się oszacować jego
rzeczywistą wielkość a co za tym idzie określić np. pracochłonność wykonania, koszt
wykonania i inne parametry zależne.
4
4.1
Zarządzanie Reputacją w Systemach Informacji Zarządczej o Niepewnej Jakości
Źródeł Informacji
Wstęp
W systemach otwartych w których nadzór nad poprawną pracą wszystkich elementów
systemu nie jest sprawowany przez centralną jednostkę występuje naturalna tendencja do
zróżnicowania jakości świadczonych usług. Zgodnie z teorią przedstawioną przez G Akerloff
(1976) w jego znanym artykule pt. ”The Market for ‘Lemons’” [17], w takim przypadku
komponenty świadczące usługi o dobrej jakości mogą być wyparte przez komponenty
świadczące usługi złej jakości w sytuacji gdzie ocena usługi nie może być wykonana a-priori
przez jej odbiorcę. Sposobem na wymuszenie dobrej jakości usług świadczonych przez
poszczególne niezależne komponenty systemu informacyjnego jest wprowadzenie
zarządzania reputacją w takim środowisku.
Reputacja jest to całokształt ocen komunikowanych w danym środowisku na temat danego
komponentu tego środowiska - uczestnika systemu. Jako element reputacji można traktować
rekomendację źródła ze strony odbiorcy danego towaru dla potencjalnych innych odbiorców
tego samego towaru. Reputacja jest to w takiej sytuacji zbiór rekomendacji komunikowany
przez członków wybranego środowiska. Jeżeli uczestników systemu reputacyjnego
potraktujemy jako zbiór to reputacja wybranego źródła może różnić się w poszczególnych
podzbiorach. Tym samym odbiorca-agent który zmienia swoje lokalne środowisko – podzbiór
uczestników z którymi się komunikuje może obserwować inna reputacje dotyczącą tego
samego źródła.
Na podstawie reputacji i własnych doświadczeń związanych z danym źródłem informacji
odbiorca określa miarę nazywaną zaufaniem wobec tego źródła.
Zaufanie jest to
subiektywne prawdopodobieństwo że dany Partner w tym przypadku – źródło informacji
zachowa się tak jak to deklaruje sytuacji gdy jego prawdomówność nie może być
stwierdzona a priori. W powyższe sposób zaufanie definiuje D. Gambetta [18]. Zaufanie jest
wyznaczane jako agregacja reputacji.
W niniejszym rozdziale przedstawiony jest model zarządzania zaufaniem i reputacją
z wykorzystaniem operatora WOWA jako metody agregacji informacji.
4.2
Operator agregacji WOWA
Operator agregacji ważonej porządkowej średniej ważonej (ang. Weighted Ordered
Weighted Average) w skrócie WOWA został po raz pierwszy zaproponowany w roku 1997
przez V. Torra [19], jako uogólnienie operatora porządkowej średniej ważonej (ang Ordered
Weighted Average) OWA zaproponowanego przez Yagera [20].
Konstrukcja operatora zasadza się na definicji dwóch wektorów precyzujących preferencje
decydenta.
22
ϖ Wektor wag preferencyjnych
agregowanych wartości.
(wi)
–
precyzuje
preferencje
odnośnie
wielkości
ϖ Wektor wag istotnościowych(pi) – precyzuje preferencje co do poszczególnych kryteriów
których wartości są agregowane.
(2)
oznacza operator porządkowania wartości
od największej do
Gdzie operator
najmniejszej. Wektor wag
jest konstruowany według następującej zasady:
(3)
interpoluje punkty (
wraz z punktem (0,0). Przy czym
Gdzie funkcja
o ile to możliwe funkcja interpolująca powinna przyjmować postać funkcji odcinkami liniowej.
Operator WOWA jest uogólnieniem zarówno operatora średniej ważonej jak i operatora
porządkowej średniej ważonej. Przypadku gdy wagi preferencyjne są równe operator działa
jak średnia ważona w przypadku gdy równe są wagi wektora wag istotnościowych operator
zachowuje się tak jak OWA. Wartość wyniku agregacji WOWA jest zawsze położona
pomiędzy wyżej wymienionymi przypadkami brzegowymi.
Zastosowanie operatora WOWA zaproponowane w pracy E.Damiani i innych [21]
przedstawia możliwe zastosowanie operatora WOWA w zarządzaniu reputacją. Kolejny
punkt niniejszego opracowania przedstawia przykładowe zastosowanie WOWA bazujące na
tej koncepcji i odnoszące się do przypadku jednokryterialnego.
4.3
Model systemu zarządzania reputacją
Problem zarządzania reputacją w przypadku systemu informatycznego zbierającego
i przetwarzającego dane może zostać przedstawiona w następujący sposób. System ma za
zadanie zbierać dane ze swojego otoczenia biznesowego, przetwarzać je, agregować
doprowadzać do spójnej postaci. Następnie dane te są udostępniane odbiorcom.
Usługa – źródło danych spełniające na rzecz systemu funkcje na podstawie jego żądań.
Funkcje te mogą dotyczyć dostarczania danych opisujących konkretne aspekty
rzeczywistości biznesowej którą obsługuje element systemu operacyjnego przedsiębiorstwa.
Na przykład dane na temat aktualnej na daną chwilę bazy klientów kluczowych.
System – system informacyjny gromadzący, przetwarzający i udostępniający informację na
temat przedsiębiorstwa w postaci zagregowanej i ujednoliconej zgodnie z wymaganiami
informacyjnymi na poziomie zarządczym.
Klient – aplikacja pobierająca i wyświetlająca informacje udostępniane przez system.
Usługi udostępniają informację na rzecz szeregu systemów. Jakość tej informacji jest
oceniana przez system na podstawie liczby reklamacji jakości danych otrzymywanych od
odbiorców systemu za pośrednictwem aplikacji klienckich. System publikuje swoją ocenę
reputacji usługi w sieci łączącej systemy. Systemy określają poziomy zaufania do
poszczególnych usług dostarczających właściwe im typy informacji na podstawie
23
rekomendacji opublikowanych przez inne systemy oraz własnego doświadczenia
z kontaktów z daną usługą. Na podstawie dokonanej oceny wybierany jest najbardziej
zaufany dostawca informacji. Wzrost jakości danych końcowych udostępnianych odbiorcom
biznesowym powodowany jest przez eliminację z systemu źródeł najmniej zaufanych.
Rysunek 6: Model sytemu informacyjnego z reputacją
W proponowanym modelu sytuacja decyzyjna jest zdefiniowana w następujący sposób.
W sieci reputacyjnej łączącej systemy opublikowane są rekomendacje odnoście każdej
z usług z których zasilają się uczestnicy sieci. Rekomendacje wyrażone są w postaci
znormalizowanych liczb z zakresu <0,1>.
Przyjmujemy, że na podstawie oddzielnego modułu oceny wiarygodności każdy system jest
w stanie pozyskać informację o wiarygodności każdego z systemów partnerskich w ramach
sieci reputacyjnej. Na tej podstawie każdej z rekomendacji przydzielana jest waga (pi)
określająca poziom wiarygodności danej rekomendacji. Wektor tych wag tworzy wektor wag
istotnościowych (pi) przypisanych do każdego systemu.
Każdy z systemów może zostać wyposażony w model preferencji określający stopień
akceptacji niepewności. System krytyczny którego zasilenie musi spełniać wysokie standardy
jeżeli chodzi o wiarygodności danych będzie wymagał by usługa która ma być dopuszczona
jako źródło danych była powszechnie uznawana za godną zaufania. Wadą takiego podejścia
do problemu jest możliwość utraty źródła informacji gdy przestanie ono spełniać wysokie
wymagania co do reputacji. Tym samym system nie będzie w stanie dostarczać raportów
użytkownikom.
System o większej tolerancji niepewności co do jakości danych może zostać wyposażony
w model preferencji dopuszczający usługę gdy w jej reputacji pojawi się choć jedna wysoka
ocena przy pewnej dopuszczalnej wysokości pozostałych ocen. System taki zapewni sobie
większą dostępność, niestety dopuszczając spadek jakości danych w pewnych
okolicznościach.
24
Wyżej opisane dwa modele preferencji odpowiadają różnym kształtom funkcji interpolującej
definiowanej przez wektor wag preferencyjnych w modelu agregacji WOWA. Funkcja
wklęsła odpowiada podejściu o większej tolerancji niepewności.
Rysunek 7: Funkcja W*
odpowiadająca zwiększonej podatności na niepewność źródeł danych
W przypadku takiego kształtu funkcji interpolującej wagi wektora wag preferencyjnych
przypisane są w ten sposób, że rekomendacjom o wysokiej wartości przypisywane są
najwyższe wagi podczas gdy niskie wartości miary reputacji maja przypisane wagi relatywnie
mniejsze.
Rysunek 8: Funkcja W*
odpowiadająca zmniejszonej podatności na niepewność źródeł danych
25
Funkcja wypukła odpowiada mniejszej podatności na niepewność źródeł danych co można
związać z wysokimi wymaganiami dotyczącymi stabilnej jakości danych w stosunku do
systemów krytycznych. W takiej sytuacji wysokie wagi przypisywane są małym wartościom
ocen w wektorze agregowanym przy stosunkowo mniejszych waga właściwych dla miar
reputacji o wysokich wartościach.
Przy takich modelach preferencji wbudowanych w system widać że aby osiągnąć tę samą
wartość zagregowanej miary zaufania system o ostrożnym stosunku do źródeł danych
potrzebuje wyższych rekomendacji od swoich partnerów niż system o większej tolerancji dla
niepewnych danych.
4.4
Podsumowanie
Problematyka zarządzania zaufaniem i reputacją wywodzi się z obszaru otartych systemów
niezależnych „samolubnych” agentów takich jak sieci „peer to peer”, czy też sieci handlu
internetowego. Na współczesne systemy informacji zarządczej można spojrzeć jako na
systemy wymiany informacji pomiędzy niepewnymi źródłami danych a pewnymi platformami
raportowymi. Podstawową bolączką w długookresowym utrzymaniu systemu informacji
zarządczej jest jego wrażliwość na błędy w danych źródłowych. Ocena jakości danych jest
zwykle wykonywana dokładnie na etapie konstrukcji takiego systemu. Późniejsze utrzymanie
systemu zwykle prędzej czy później napotyka na problem spadku jakości danych w systemie
na skutek zmian w jednym lub więcej źródeł danych. Błędy wynikają zwykle z faktu że
organizacja nie przywiązuje właściwej wagi do przystosowania systemu informacji
zarządczej do zmieniającego się formatu i znaczenia produktów oferowanych przez usługę
źródłową. W przypadku dużej liczby źródeł danych i ich intensywnego rozwoju zapanowanie
w zorganizowany sposób nad zmieniającym się otoczeniem systemu informacyjnego
nastręcza szeregu problemów i zwykle w istotny sposób zmniejsza elastyczność
i dostępność systemu dla jego odbiorców oraz powoduje wzrost kosztów jego posiadania.
Proponowane tutaj alternatywne podejście do wykrywania „błędów” w źródłach danych
pozwala na wykrywanie i eliminacje źródeł danych, które na skutek różnych czynników
zmieniają znaczenie oferowanych przez siebie danych w nieuporządkowany sposób.
Zastosowanie tego podejścia jest właściwe dla organizacji dysponujących poważną liczbą
systemów źródłowych – operacyjnych przedsiębiorstwa oraz zdolnych do wytworzenia
warstwy pośredniej systemów informacji zarządczej (systemów analitycznych i raportowych)
rozwijanych na bazie źródeł i połączonych wspólną siecią reputacyjną.
5
5.1
Sprawiedliwy podział zasobów a systemy oparte o SOA
Wprowadzenie
Architektura zorientowana na usługi (ang. SOA – service-oriented architecture) jest obecnie
bardzo popularnym tematem w świecie IT. Zainteresowanie to wynika z korzyści, które
można uzyskać stosując tę architekturę do budowy systemów informatycznych w różnych
obszarach gospodarki. Główne zalety to zwiększenie efektywności, zmniejszenie kosztów
oraz większa elastyczności w utrzymaniu i rozwoju tego typu systemów. Dotyczy to
w szczególności systemów do wspomagania decyzji. Jak wiadomo są one wykorzystywane
w różnorodnych przedsiębiorstwach i organizacjach, które często przeznaczają na ich
budowę i obsługę duże środki finansowe, przez co są zainteresowane wykorzystaniem ich
w możliwie najefektywniejszy sposób. W ramach obecnej pracy statutowej, kontynuując
tematykę badań i wykorzystując doświadczenia zdobyte podczas realizacji pracy
zeszłorocznej, powstał artykuł prezentujący projekt systemu do wspomagania decyzji,
wykorzystujący podejście zorientowane na usługi. Artykuł został zgłoszony do redakcji JTIT.
26
Jak to zazwyczaj bywa nowe idee oprócz zalet stwarzają różnego rodzaju trudności.
Również SOA stawia pewne wyzwania, które wymagają uwagi projektantów i użytkowników
tych systemów. Poszczególne aplikacje składające się na całość rozwiązania SOA są
zazwyczaj rozproszone i komunikują się pomiędzy sobą poprzez sieć. Wymiana informacji
między nimi może być intensywna. Z tego względu sieć i jej zasoby stają się kluczową
kwestią decydującą o możliwości, szybkości i efektywności działania systemów
zorientowanych na usługi [23]. Ponieważ zasoby są wykorzystywane przez wiele różnych
usług potrzebny jest odpowiedni mechanizm ich współdzielenia, zapewniający
sprawiedliwość obsługi. W ramach pracy przyjrzano się aspektowi sprawiedliwego podziału
zasobów.
5.2
SOA w systemach wspomagania decyzji
W artykule z Załącznika 2 przedstawiony został projekt systemu do wspomagania analizy
rozwoju szerokopasmowych sieci dostępowych. Wykorzystuje on model technoekonomiczny i programowanie stochastyczne do zaplanowania budowy sieci FTTH w danym
regionie. Można w nim wyróżnić 3 podstawowe moduły (usługi), którym przypisane są różne
zadania:
ϖ obliczenie najkorzystniejszego stopnia agregacji w węzłach sieci;
ϖ wybór podobszarów do podłączenia, maksymalizujących wartość bieżącą netto (ang.
NPV – net present value);
ϖ wyznaczenie dodatkowych wskaźników ekonomicznych przedsięwzięcia.
Każda z tych usług rozwiązuje zadany podproblem i na podstawie danych wejściowych
oblicza wyjście, które może być dalej wykorzystywane jako wejście dla innej usługi. Dzięki
temu, w przypadku chęci modyfikacji lub rozbudowy systemu, można się ograniczyć tylko do
wybranego podzbioru usług. Zachowanie takiego samego sposobu komunikacji
z otoczeniem i pozostałymi częściami systemu gwarantuje działanie całości po
wprowadzeniu zmian w interesującym obszarze. Zmiany w prezentowanym modelu można,
więc wprowadzać stopniowo. Przykładowe modyfikacje to:
ϖ zmiana modelu wymiarowania sieci, topologii etc.;
ϖ zmiana metody budowy drzewa scenariuszy;
ϖ opracowanie koncepcji dekompozycji problemu w części optymalizacyjnej;
ϖ dodanie nowych wskaźników ekonomicznych przedsięwzięcia.
Można również rozpatrzyć wydzielenie nowej usługi dedykowanej tylko do konstrukcji drzewa
scenariuszy. Jest to oczywiście przykład małego systemu z małą liczbą modułów. Z tego
powodu może wydawać się, że zyski z takiego podejścia są niewielkie. Należy jednak wziąć
pod uwagę, że systemy komercyjne wykorzystywane na rynku są zazwyczaj znacznie
większe z dowolnie dużą liczbą usług. Ogólna koncepcja jest jednak taka sama. W takim
przypadku ograniczenie skali zmian przekłada się na realne obniżenie kosztów, jak również
skrócenie czasu ich realizacji i wdrożenia. Jest to szczególnie ważne przy dzisiejszych
dynamicznych zmianach na rynku i silnej konkurencji, kiedy zdolność i szybkość
przystosowania się do aktualnej sytuacji stanowi być albo nie być dla danego
przedsiębiorstwa. Czasami, ze względu na wielkość i złożoność systemów, jest to jedyny
sposób na ich przebudowanie niedezorganizujący funkcjonowania bazujących na nich
instytucji. Tutaj ważny jest również aspekt osób utrzymujących tego typu systemy
i możliwości ich zastąpienia.
27
5.3
Sprawiedliwość jako warunek efektywności SOA
Poszczególne usługi i aplikacje mają różne zapotrzebowanie na współdzielone zasoby sieci.
Z tego względu musi istnieć mechanizm, który zapewni odpowiedni podział tych zasobów.
Ma on na celu utrzymanie pewnego poziomu usług, który może np. wynikać z podpisanej
umowy (ang. SLA – service level agreement). Zarządca zasobów powinien rozdysponować
dostępne zasoby efektywnie i sprawiedliwie. Pojęcie sprawiedliwości wywołuje burzliwe
dyskusje od wielu wieków, których treści wykraczają daleko poza rozważania naukowe.
Panuje jednak dosyć powszechna zgoda na zaproponowaną przez Ch. Perelmana opinię,
gdzie sprawiedliwość określa się „jako zasadę działania, w myśl której osoby należące do tej
samej kategorii istotnej powinny być traktowane jednakowo” [24]. Oczywiście główny
problem dotyczy określenia kategorii istotnej, jednak nawet to nie jest wystarczające do
oceny i porównywania poszczególnych podziałów. Ponieważ jednak tego typu rozważania
nabierają już charakteru filozoficznego w praktycznych zastosowaniach przyjmuje się, że
kryteria sprawiedliwości zostały przyjęte i nie podlegają dyskusji. W przypadku
współdzielenia zasobów sieci można powiedzieć w uproszczeniu, że sprawiedliwy podział to
taki, w którym każda aplikacja ma szansę dostać pewną część dobra. Ponieważ
podstawowym zasobem sieci jest jej przepustowość, jej podział jest często rozważany
w różnych opracowaniach. Zasób ten ma również pewne własności pożądane ze względu na
problematykę podziału:
ϖ jednorodność – brak różnic jakościowych pomiędzy częściami dobra; występują jedynie
różnice ilościowe pomiędzy podziałami;
ϖ doskonała podzielność – brak ograniczeń realizowalności w partycjonowaniu dobra.
Formułując problem zakłada się istnienie łącza o określonej przepustowości,
współdzielonego przez wiele aplikacji, które zgłaszają potrzeby na przepływy o różnej
wielkości. Zarządca zasobów na podstawie określonej rangi usług przydziela pasmo za
pomocą zdefiniowanych algorytmów. Algorytmy te są zazwyczaj zaimplementowane w
routerach i przełącznikach, które przekierowują ruch na odpowiednie łącza.
Formalnie problem może być przedstawiony jak poniżej [25]. Zakłada się, że dostępna ilość
pasma wynosi Z . O dostęp do tego pasma konkuruje ze sobą n aplikacji, których
zapotrzebowanie wynosi D = [d1 , d 2 , K , d n ] . Zakładając, że każda aplikacja ma takie samo
prawo do zasobu, należy wyznaczyć pewien przydział zasobu A = [a1 , a 2 , K , a n ] . Przydział
dopuszczalny powinien spełniać dwa warunki:
ϖ każdy uczestnik podziału otrzymuje przydział większy lub równy zero;
∀a
i
≥0
i
ϖ sumaryczny przydział jest mniejszy lub równy wielkości dostępnego dobra;
∑a
i
i
;
≤Z
.
Jednym z mechanizmów sprawiedliwego podziału jest kryterium maksyminowe.
Dopuszczalny przydział jest określano jako sprawiedliwy według tego kryterium, jeśli
zwiększenie części przyznanego dobra dla jednego uczestnika i , może być możliwe tylko
przy zmniejszeniu części przyznanego dobra dla innego uczestnika j , dla którego
a j ≤ ai [26].
Zgodnie z tym kryterium zabronione jest zmniejszanie małych (mniejszych)
udziałów na korzyść większych. Można to również rozumieć jako pewnego rodzaju
priorytetyzację mniejszych udziałów.
Innym przykładem metody podziału jest mechanizm sprawiedliwości proporcjonalnej. W tym
przypadku funkcją celu jest maksymalizacja funkcji użyteczności przydziału [27].
Przykładową funkcją użyteczności jest funkcja logarytmiczna. Jej interpretacją jest
28
satysfakcja uczestnika względem wielkości otrzymanego dobra. Wadą tego podejścia jest
m.in. konieczność przekazania informacji o funkcji użyteczności do zarządcy zasobów.
Oprócz wspomnianych wyżej przykładów istnieją również inne metody podziałów, jak
chociażby podejścia wykorzystujące gry o zasoby. Poszczególne mechanizmy zapewniające
sprawiedliwy podział mają określone wady i zalety przez co działają inaczej dla różnych
warunków podziałów. Jednak już proste podejścia mogą znacząco wpłynąć na efektywność
łańcucha przetwarzania w architekturze SOA i zapewnić określony poziom i jakość usług.
5.4
Podsumowanie
W ramach pracy badano możliwości oraz ewentualne korzyści i trudności wykorzystania
architektury SOA w systemach do wspomagania decyzji. Przedstawiono przykład projektu
systemu z wykorzystaniem podejścia zorientowanego na usługi, zwracając uwagę na
korzyści z tego płynące. W dalszej części rozpatrzono wymogi stawiane przez architekturę
SOA względem zasobów sieci i rozważono możliwość wykorzystania mechanizmu
sprawiedliwego podziału zasobów w celu zapewnienia efektywności współdziałania
poszczególnych usług, a w konsekwencji pracy całego systemu. Potrzebne są dalsze analizy
różnych zasad sprawiedliwego podziału zasobów oraz ich teoretyczne i empiryczne
porównanie, mające na celu określenie głównych klas algorytmów w odniesieniu do
zróżnicowanych warunków współdzielenia zasobów, a w dalszej części podjęcie próby
opracowania nowych metod podziałów dla tej klasy zastosowań.
6
Podsumowanie
Propozycje i metody przedstawione w niniejszym sprawozdaniu i jego załącznikach
w zakresie aspektów zapewnienia jakości, szacowania złożoności przy użyciu metody
punktów funkcyjnych, zarządzania reputacją oraz sprawiedliwego podziału zasobów
umożliwiły realizację wszystkich trzech celów szczegółowych pracy: A (Metodyka
zapewnienia jakości Produktów Informacyjnych w projektowaniu łańcucha przetwarzania
danych zgodnie z Architekturą Zorientowaną Usługowo (SOA)), B (Metodyka przetwarzania
łańcucha przetwarzania danych w czasie rzeczywistym z użyciem źródeł o zawartości
zmiennej w czasie) i C (Metody oceny zaufania usług). Wyniki niniejszych prac zostaną
wykorzystane w przygotowaniu rozpraw doktorskich między innymi Michała Majdana i Pawła
Olendra. Wyniki niniejszej pracy są i będą w przyszłości wykorzystywane do przygotowania
i wykonania w projektów realizowanych przez zespół Zakładu Zaawansowanych Technik
Informacyjnych na rzecz operatorów telekomunikacyjnych, agencji rządowych oraz innych
projektów wykonywanych w ramach programów między narodowych (np. EUREKA – projekt
EDFAS) i krajowych (np. Program Operacyjny Innowacyjna Gospodarka – np. projekty
„Inżynieria Internetu Przyszłości”, „System Informacyjny o Infrastrukturze Szerokopasmowej
i portal Polska Szerokopasmowa”, „Informatycznego Systemu Osłony Kraju”).
Bibliografia
[1]
Liya Wu, Barash G., Bartolini C.: A Service-oriented Architecture for Business
Intelligence. Proceedings of the IEEE International Conference on Service-Oriented
Computing and Applications (SOCA’07), IEEE Computer Society, p. 279-285
[2]
Arsanjani A.: Service-Oriented Modeling & Architecture. IBM, 2004,
http://www.ibm.com/developerworks/library/ws-soa-design1/
[3]
OASIS: Definition of SOA,
http://opengroup.org/projects/soa/doc.tpl?gdid=10632
29
[4]
OASIS: SOA Reference Model definition,
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm
[5]
Kognitio WX2: http://www.kognitio.com/services/products/wx2.php:
[6]
Teradata: http://www.teradata.com
[7]
Greenplum: http://www.greenplum.com/
[8]
Apache Hadoop: http://hadoop.apache.org/
[9]
BPMN: http://www.bpmn.org/
[10] WS-BPEL 2.0: http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.pdf
[11] Web Services Choreography Description Language Version 1.0:
http://www.w3.org/TR/2005/CR-ws-cdl-10-20051109/
[12] Function Point Counting Practices Manual, version 4.0, www.ifpug.org
[13] Introduction To Function Point Analysis, http://www.softwaremetrics.com/fpafund.htm
[14] Longstreet D.: Fundametals of Function Point Analysis, www.softwaremetrics.com
[15] Longstreet D.: Improved Function Point Definictions, www.softwaremetrics.com
[16] Toffano Calazans A., Marcal de Oliveira K., Ribeiro dos Santos R.: Adapting Function
Point Analysis to Estimate Data Mart Size
[17] Akerlof G. A.: The market for “lemons”: Quality uncertainty and the market mechanism.
The Quarterly Journal of Economics, 84(3):488–500, 1970.
[18] Gambetta D.: Can we trust trust. In Trust: Making and Breaking Cooperative Relations,
pages 213–237. Basil Blackwell, 1988
[19] Torra V.: The weighted
Systems,12:153–166, 1997.
owa
operator.
International
Journal
of
Inteligent
[20] Yager R. R.: On ordered weighted averaging aggregation operators in multicriteria
decisionmaking. IEEE Trans. Syst. Man Cybern., 18(1):183–190, 1988
[21] Damiani E., De Capitani di Vimercati S., Samarati P., Viviani M.: A wowa-based
aggregation technique on trust values connected to metadata. In Metadata,
International Workshop on Security and Trust Management, 2005
[22] Liya Wu, Barash G., Bartolini C.: A Service-oriented Architecture for Business
Intelligence. Proceedings of the IEEE International Conference on Service-Oriented
Computing and Applications (SOCA’07), IEEE Computer Society, p. 279-285
[23] Cisco Service-Oriented Network Architecture: Support and Optimize SOA and Web 2.0
Applications, http://www.cisco.com
[24] Lissowski G.: Zasady sprawiedliwego podziału dóbr. Warszawa, Wydawnictwo
Naukowe Scholar, 2008
[25] Hosaagrahara M., Sethu H.: Max-min fair scheduling in input-queued switches. IEEE
Transactions on Parallel and Distributed Systems, 2008, nr 19(4), s. 462-475
[26] Boudec J. L.: Rate adaptation, congestion control and fairness: A tutorial. Technical
Report 3132, Ecole Polytechnique Federale de Lausanne (EPFL), 2005
[27] Salgueiro E., Cunha P., Salgueiro R., Monteiro J.: Fair Bandwidth Sharing Using
Shapley Value. Euro American Conference On Telematics And Information Systems
2008, Aracaju, 2008
30
Załącznik 1
Artykuł złożony do druku
w Journal of Telecommunications and Information Technology
Agnieszka Gosk:
Query optimization in Teradata warehouse
31
32
Załącznik 2
Artykuł złożony do druku
w Journal of Telecommunications and Information Technology
Paweł Olender:
Stochastic models in techno-economic analysis of broadband access networks
41