Realizacja wieloagentowej integracji danych
3.2.1 Agent zarz ˛ adzaj ˛ acy
Zasadniczym zadaniem agenta zarz ˛adzaj ˛acego jest globalna optymalizacja ru-chu sieciowego z uwzgl˛ednieniem priorytetów projektów. Agent przypisany jest do realizacji pojedynczego projektu. Reprezentuje on u ˙zytkownika we-wn ˛atrz systemu. Odpowiedzialny jest za całokształt operacji zwi ˛azanych z two-rzeniem projektu oraz replikacj ˛a niezb˛ednych danych. Koordynuje realizacj˛e oblicze ´n, a tak ˙ze dostarcza wyniki do u ˙zytkownika systemu.
Agent pracowa´c mo ˙ze w dwóch trybach pracy: kooperacji lub konkurencji z innymi agentami zarz ˛adzaj ˛acymi. Celem pierwszego z nich jest optymalizacja korzy´sci z systemu dla wszystkich jego u ˙zytkowników, drugiego, zapewnienie realizacji zadania pojedynczego u ˙zytkownika.
3.2.1.1 Zarys funkcjonalno´sci
W chwili rozruchu systemu tworzona jest pula agentów zarz ˛adzaj ˛acych. Re-zyduj ˛a oni na fizycznej platformie sprz˛etowej centralnej bazy danych oraz nie posiadaj ˛a mo ˙zliwo´sci (potrzeby) przemieszczania si˛e do innych w˛ezłów syste-mu. Przypominaj ˛a oni zachowaniem demony systemu operacyjnego, oczeku-j ˛ac na nadej´scie zgłosze ´n od u ˙zytkowników. Agent oczekuj ˛acy na zadanie jest w stanie nieaktywnym. Nadej´scie zgłoszenia aktywuje agenta, który odpowie-dzialny b˛edzie za projekt przez cały czas jego istnienia. Zako ´nczenie projektu przez u ˙zytkownika powoduje ponowne przej´scie agenta do stanu nieaktywne-go i powrót do puli agentów oczekuj ˛acych na zgłoszenia.
Podj˛ecie zgłoszenia przez agenta zarz ˛adzaj ˛acego zwi ˛azane jest z wykona-niem akcji przygotowawczych w postaci stworzenia prywatnej kopii centralnej bazy danych, inicjalizacji stosownym schematem danych, a tak ˙ze utworzenia instancji modułu obliczeniowego. Zako ´nczenie sekwencji inicjalizuj ˛acej sygna-lizowane jest u ˙zytkownikowi w oczekiwaniu na decyzj˛e odno´snie szczegóło-wych parametrów projektu.
Lekarz decyduje o maksymalnym czasie dostarczenia oraz ilo´sci danych wymaganych w projekcie. Agent waliduje mo ˙zliwo´s´c realizacji zadania przy uwzgl˛ednieniu bie ˙z ˛acego oraz planowanego obci ˛a ˙zenia systemu. Wynikiem sprawdzenia mo ˙ze by´c stwierdzenie potwierdzaj ˛ace wykonalno´s´c projektu, lub te ˙z odpowied´z negatywna. Pomy´slna weryfikacja mo ˙zliwo´sci realizacji powo-duje przej´scie do fazy wykonawczej.
Agent zarz ˛adzaj ˛acy deleguje zadania szczegółowe do agentów replikuj ˛ a-cych oraz polega na ich ekspertyzie. Oznacza to, i ˙z z globalnego punktu widze-nia sposób realizacji replikacji lokalnej nie jest istotny. Interesuj ˛acym parame-trem ka ˙zdego segmentu sieci jest natomiast maksymalna przepustowo´s´c, rozu-miana jako ilo´s´c danych mo ˙zliwych do przesłania w zadanym kwancie czasu. W pocz ˛atkowej fazie pracy systemu zakłada si˛e oszacowanie dost˛epnej przepu-stowo´sci w oparciu o wiedz˛e dotycz ˛ac ˛a struktury sieci komputerowej. Podczas regularnej pracy statystyki te s ˛a uaktualniane bazuj ˛ac na rezultatach uzyskiwa-nych przez agentów replikuj ˛acych.
Zako ´nczenie replikacji danych powoduje automatyczne przekazanie sygna-łu powoduj ˛acego rozpocz˛ecie kalkulacji przez moduł obliczeniowy. Sytuacja ta sygnalizowana jest u ˙zytkownikowi. Agent oczekuje na zako ´nczenie obli-cze ´n, informuje u ˙zytkownika o tym zdarzeniu oraz przekazuje uzyskane wy-niki oczekuj ˛ac na dalsze polecenia.
3.2.1.2 Okre´slenie mo˙zliwo´sci realizacji
Najbardziej zaawansowane zadanie agenta stanowi sprawdzenie mo ˙zliwo´sci realizacji projektu w ˙z ˛adanym czasie, a tak ˙ze dobór optymalnej sekwencji wy-konawczej. W tym celu u ˙zytkownik musi poinformowa´c agenta o wymaganej strategii działania:
strategia 1 — konkurencja,
strategia 2 — kooperacja.
Skutkuje to w ustawieniu stanu wewn˛etrznego oraz notyfikacji innych agen-tów zarz ˛adzaj ˛acych o dokonanym wyborze. Z formalnego punktu widzenia strategia konkurencji odpowiada minimalizacji maksymalnego kosztu realizacji zada ´n, natomiast strategia kooperacji minimalizacji całkowitego kosztu, przy-j˛etego modelu
Agent utrzymuje w swojej pami˛eci nast˛epuj ˛ace parametry obsługiwanego projektu:
tmax– maksymalny czas realizacji,
a– priorytet,
b– przepustowo´s´c sieci,
t0– czas pocz ˛atkowy,
t1– czas ko ´ncowy,
ip – numer identyfikacyjny porz ˛adku pocz ˛atkowego,
io – numer identyfikacyjny porz ˛adku optymalnego.
Walidacja wykonalno´sci projektu odbywa si˛e w poszczególnych krokach decyzyjnych, wykorzystuj ˛ac zaprezentowany uprzednio aparat matematycz-ny. Pierwszym etapem procesu jest okre´slenie priorytetu realizacji projektu a. Obliczany jest on w oparciu o ˙z ˛adany czas dostarczenia danych tmax zgodnie z formuł ˛a:
a = 1 tmax
. (3.2)
Zakłada si˛e, i ˙z tmax 1. Realizacja tego zało ˙zenia jest zapewniona poprzez
dobór stosownej jednostki czasu dla wszystkich projektów.
Dla ka ˙zdej decyzji wchodz ˛acej w skład optymalizowanej sekwencji osobne podzadanie stanowi okre´slenie maksymalnego przepływu w sieci oraz optyma-lizacja uszeregowania realizacji projektów. W celu wyznaczenia przepustowo-´sci sieci konieczna jest znajomo´s´c zarówno dost˛epnej struktury sieciowej wraz z maksymaln ˛a przepustowo´sci ˛a replikacji poprzez ka ˙zdy łuk, jak i zapotrzebo-wania na dane z poszczególnych w˛ezłów.
Struktura sieciowa przechowywana jest w postaci listy w˛ezłów V identy-fikowanych poprzez indeks unikalny oraz nazw˛e, a tak ˙ze listy kraw˛edzi E, opisanych poprzez indeks wierzchołka pocz ˛atkowego, ko ´ncowego oraz mak-symaln ˛a przepustowo´s´c. Ka ˙zdy w˛ezeł o dodatnim zapotrzebowaniu (wyzna-czonym podczas interakcji z u ˙zytkownikiem) okre´slany jest jako ´zródło danych. Graf uzupełniany jest o specjalny w˛ezeł o charakterze super-´zródła, który ł ˛ aczo-ny jest ze wszystkimi ´zródłami poprzez kraw˛edzie o przepustowo´sci równej zapotrzebowaniu. W rozpatrywanym systemie istnieje wył ˛acznie jeden w˛ezeł docelowy (uj´scie) b˛ed ˛acy centraln ˛a baz ˛a danych.
Dla tak przygotowanej struktury agent oblicza maksymaln ˛a przepustowo´s´c sieci F F . Zgodnie z twierdzeniem Forda – Fulkersona warto´s´c ta równa jest mi-nimalnemu przekrojowi grafu. W przypadku, kiedy wszystkie przesyłane dane s ˛a jednakowego rodzaju stosowany jest algorytm Goldberga – Tarjana. Rozwi ˛ a-zanie zagadnienia dla danych ró ˙znych typów (ang. multi-commodity) wyznacza-ne jest przy pomocy algorytmu Karakostasa.
Poprzez komunikacj˛e z innymi agentami zarz ˛adzaj ˛acymi znane s ˛a projekty aktywnie realizowane w systemie, ich szczegółowe wymagania odno´snie da-nych oraz stosowne warto´sci F F . Wiedza ta jest niezb˛edna w celu wyznaczenia parametru b funkcji celu przyj˛etego modelu. Normalizacja czynnika
odpowia-daj ˛acego za przepustowo´s´c sieci realizowana jest zgodnie ze wzorem:
b = F F
max F F. (3.3)
Znajomo´s´c zapotrzebowania na dane Z jest niezb˛edna w celu okre´slenia mo ˙zliwo´sci realizacji projektu. Jednorazowe obliczenie maksymalnej przepu-stowo´sci F F pozwala na oszacowanie mo ˙zliwo´sci realizacji projektu w sytuacji wył ˛aczno´sci dost˛epu do zasobów. W przypadku, kiedy:
tmax < Z
F F, (3.4)
arbitralnie mo ˙zna stwierdzi´c, i ˙z projekt nie jest realizowalny w ˙z ˛adanym czasie. Projekt zostaje odrzucony, a informacja o tym przekazana u ˙zytkownikowi.
Dla przypadku, kiedy ˙z ˛adany czas realizacji jest wi˛ekszy b ˛ad´z równy sto-sunkowi zapotrzebowania do maksymalnej przepustowo´sci niezb˛edna jest kontynuacja walidacji wykonalno´sci, a ˙z do momentu obliczenia wszystkich planowanych cykli wykonawczych, b ˛ad´z stwierdzenia braku mo ˙zliwo´sci reali-zacji na którym´s etapie procesu. Pełny algorytm decyzyjny przedstawi´c mo ˙zna nast˛epuj ˛aco3.1:
F F ←maksymalny przepływ w sieci
while tmax Z /F F
do tmax← tmax− 1
if tmax = 0or Z = 0 return true
Z ← Z − F F
F F ←maksymalny przepływ w sieci
return false
Tabela 3.1: Algorytm badaj ˛acy wykonalno´s´c projektu w sytuacji wył ˛aczno´sci dost˛epu do zasobów
Zauwa ˙zmy, i ˙z proste podzielenie zapotrzebowania przez pocz ˛atkowy prze-pływ maksymalny nie gwarantuje realizowalno´sci projektu, gdy ˙z przeprze-pływ mo ˙ze zmniejsza´c si˛e w kolejnych cyklach przetwarzania.
Komplikacja okre´slenia optymalnej sekwencji realizacji projektów zale ˙zy od przyj˛etej strategii działania. W przypadku konkurencji agentów — co odpowia-da problemowi formalnemu n | aiti−1+ bi; ai > 0; bi > 0; t0 0 | min(max(ti)) — zagadnienie zawsze posiada rozwi ˛azanie o wielomianowej zło ˙zono´sci obli-czeniowej. Parametry wszystkich aktywnych projektów s ˛a dla agentów jawne. Wyznaczenie optimum polega na sortowaniu ilorazu czynnika a oraz b w po-rz ˛adku malej ˛acym. Symboliczny zapis procedury przedstawiony jest w postaci algorytmu3.2.
Dla strategii kooperacji — równowa ˙znej problemowi formalnemu n |
aiti−1+ bi; ai > 0; bi > 0; t0 0 | minP
ti — dobór optymalnej sekwencji de-cyzji zale ˙zy od relacji mi˛edzy parametrami a i b. Je ˙zeli pr˛edko´s´c sieci nie jest
whilew systemie istnieje niezoptymalizowany projekt
dopobierz parametry projektu p p[i++] ← p
sortuj(p[], porz ˛adek a/b malej ˛aco)
fori ∈ (0, ilo´s´c projektów - 1)
p[i].t0 ← (i == 0 ? p[i].t0 : p[i–1].t1 p[i].t1 ← (p[i].a + 1) * p[i].t0 + p[i].b
returnp[]
Tabela 3.2: Optymalizacja uporz ˛adkowania w trybie konkurencji
ograniczeniem dla projektu, wówczas czynnik b mo ˙zna pomin ˛a´c. Algorytm wy-znaczaj ˛acy uporz ˛adkowanie optymalne jest podobny jak3.2. Jedyn ˛a ró ˙znic ˛a jest zamiana porz ˛adku sortowania na: sortuj(p[], porz ˛adek a rosn ˛aco).
W sytuacji kiedy wszystkie priorytety a s ˛a identyczne, post˛epowanie jest podobne jak poprzednio, przy czym funkcja porz ˛adkuj ˛aca przyjmuje posta´c: sortuj(p[], porz ˛adek b rosn ˛aco).
Inny przypadek szczególny zachodzi je´sli czynniki b s ˛a sobie równe. Wów-czas szybki algorytm wyznaczaj ˛acy uporz ˛adkowanie optymalne mo ˙zna zapisa´c nast˛epuj ˛aco3.3.
whilew systemie istnieje niezoptymalizowany projekt
dopobierz parametry projektu p p[i++] ← p
sortuj(p[], porz ˛adek a rosn ˛aco) n ← ilo´s´c projektów forkrok ∈ (0, n-3) foropt ∈ (1, n) pr ← (opt==n ? 0 : p[0].b*(1 +Pn k=opt+2 Qk l=opt+2(p[l].a + 1)))
if((krok==0 ? p[krok].t0 : p[krok-1].t1) > pr) p[krok] ↔ p[krok+opt-1]
oblicz t0, t1 dla p[krok]
sortuj(p[], krok+1, n, porz ˛adek a rosn ˛aco)
break
oblicz t0, t1, t10, t2, t20 dla p[n-2], p[n-1]
if(t20 < t2)
p[n-2] ↔ p[n-1]
returnp[]
Tabela 3.3: Optymalizacja uporz ˛adkowania w trybie kooperacji dla b = const W najbardziej skomplikowanym przypadku, kiedy czynniki a, b ró ˙zni ˛a si˛e dla poszczególnych projektów, wyznaczone rozwi ˛azanie jest suboptymalne. Procedura post˛epowania dana jest w postaci algorytmu3.4.
whilew systemie istnieje niezoptymalizowany projekt
dopobierz parametry projektu p p[i++] ← p
sortuj(p[], porz ˛adek a rosn ˛aco) n ← ilo´s´c projektów forkrok ∈ (0, n-2) fori ∈ (1, n) le-mniejsza-pr ← 0 forj ∈ (1, n) if i 6= j si ←Pn−2 k=1 Qk l=1;l6=i;l6=j (p[l].a + 1)
t0 ← (krok==0 ? p[krok].t0 : p[krok-1].t1) le ← t0*(p[krok+i-1].a + 1) + p[krok+i-1].b +
((p[krok+j-1].a + 1)*p[krok+i-1].b + p[krok+j-1].b) * (1 + si) pr ← t0*(p[krok+j-1].a + 1) + p[krok+j-1].b +
((p[krok+i-1].a + 1)*p[krok+j-1].b + p[krok+i-1].b) * (1 + si) le-mniejsza-pr += ((le<pr) ? 1 : 0)
ifle-mniejsza-pr == (n-1) p[krok] ↔ p[krok+i-1] oblicz t0, t1 dla p[krok]
sortuj(p[], krok+1, n, porz ˛adek a rosn ˛aco)
break
oblicz t0, t1 dla p[n-1]
returnp[]
Tabela 3.4: Optymalizacja uporz ˛adkowania w trybie kooperacji
3.2.2 Agent replikuj ˛acy
Agent replikuj ˛acy obsługuje cało´s´c lokalnego procesu integracyjnego od eks-trakcji danych z systemu ´zródłowego, poprzez opcjonalne etapy transformacji, uzupełnienia i korekty informacji, nast˛epuj ˛acej po nich walidacji danych, a ˙z do ko ´ncz ˛acego przetwarzanie ładowania do systemu docelowego. Podstawowym zadaniem agenta replikuj ˛acego jest lokalna replikacja danych, czyli fizyczne kopiowanie pomi˛edzy zadanym zbiorem ´zródłowym, a docelowym poprzez ustalony segment sieci. Agent spełnia rol˛e kontenera wykonawczego dla dedy-kowanych agentów wykonawczych. Dodatkowo, w zakresie jego obowi ˛azków znajduje si˛e dobór wydajnej architektury przetwarzania.
3.2.2.1 Etapy procesu
Z logicznego punktu widzenia przetwarzanie zawsze odbywa si˛e w nast˛epuj ˛ a-cych po sobie etapach zilustrowanych na diagramie3.1.
Dane pobierane s ˛a z systemu ´zródłowego poprzez agenta odczytuj ˛acego. W tym celu niezb˛edne jest umo ˙zliwienie podł ˛aczenia si˛e do okre´slonego
syste-Agent Replikujący System Źródłowy System Docelowy Agent Zapisujący Agent jący Sprawdza-Agent Korygujący Agent Transformu-jący Agent Czytający Bufor Danych Bufor Danych Bufor Danych Bufor Danych
Rysunek 3.1: Model replikacji danych
mu oraz odczyt interesuj ˛acej informacji zgodnie z logik ˛a oraz interfejsami obo-wi ˛azuj ˛acymi w tym systemie.
Kolejnym etapem jest opcjonalna transformacja danych, czyli zmiana formy lub formatu informacji. Zagadnienie to mo ˙zna rozpatrywa´c pocz ˛awszy od tak prostych przypadków jak konwersja typów danych, poprzez mechanizmy wy-szukiwania odpowiednich danych referencyjnych oraz skomplikowane przy-padki ł ˛aczenia danych z ró ˙znych ´zródeł.
Nast˛epny opcjonalny etap to automatyczne uzupełnianie oraz korekta da-nych. Stosunkowo cz˛esto zachodzi sytuacja, kiedy mo ˙zliwe jest automatyczne uzupełnienie brakuj ˛acych danych. Operacj˛e tak ˛a przeprowadzi´c mo ˙zna bazuj ˛ac na ustawieniach systemowych lub u ˙zytkownika oraz niekiedy na dodatkowej logice, która jest znana, ale nie jest zaimplementowana w systemie ´zródłowym. Kolejny opcjonalny etap to walidacja danych, czyli kontrola jako´sci informa-cji. Zachodzi tutaj sprawdzenie zgodno´sci przetwarzanych danych z zadanym zestawem reguł. Zbiór danych rozdzielony zostaje na dane poprawne oraz dane naruszaj ˛ace okre´slon ˛a reguł˛e lub zbiór reguł.
Ostatnim etapem procesu integracyjnego jest ładowanie danych do central-nej bazy danych. Proces ten obsługuje szczegóły poł ˛aczenia oraz zapisu okre´slo-nego rodzaju zbioru danych. Zapisywane mog ˛a by´c zarówno dane poprawne jak i te naruszaj ˛ace pewne reguły.
3.2.2.2 Dost˛epne strategie
Replikacj˛e lokaln ˛a mo ˙zna przeprowadzi´c stosuj ˛ac jedn ˛a z fizycznych architek-tur przetwarzania:
strategia 1 — po stronie systemu ´zródłowego,
strategia 2 — po stronie systemu docelowego,
strategia 3 — zarówno po stronie systemu ´zródłowego, jak i docelowego.
W pierwszym przypadku agent replikuj ˛acy przebywa w fizycznej platfor-mie sprz˛etowej ´zródłowej bazy danych. Odczytywane dane przesyłane s ˛a lo-kalnie z bazy do agenta poprzez JDBC. Jednocze´snie dane zapisywane s ˛a do zdalnej bazy docelowej, równie ˙z poprzez JDBC. W drugim przypadku stosowa-ne protokoły przesyłu danych s ˛a identyczne, zmienia si˛e wył ˛acznie lokalizacja agenta replikuj ˛acego.
Ostatni scenariusz wymaga współpracy dwóch agentów replikuj ˛acych. Je-den z nich przebywa na platformie sprz˛etowej ´zródłowej bazy danych, drugi docelowej. Odczyt danych nast˛epuje poprzez JDBC, nast˛epnie dane przetwa-rzane s ˛a na posta´c tekstow ˛a oraz wysyłane poprzez protokół FTP. Współpra-cuj ˛acy agent odbiera dane w postaci tekstowej, po czym ostatecznie zapisuje poprzez JDBC do lokalnej bazy docelowej.
W zale ˙zno´sci od dost˛epnej konfiguracji sprz˛etowej oraz integrowanych zbiorów danych integracja bezpo´srednia lub te ˙z poprzez wprowadzenie jawnej warstwy transportowej skutkuje w najwy ˙zszej wydajno´sci przetwarzania. Nad-rz˛ednym celem działania agenta jest zastosowanie strategii najbardziej efektyw-nej w konkretnym przypadku integracyjnym.
3.2.2.3 Taktyka post˛epowania
Przeprowadzono liczne badania wydajno´sciowe maj ˛ace na celu okre´slenie naj-lepszej strategii działania. W przypadku replikacji bezpo´sredniej, w wi˛ekszo´sci przebadanych konfiguracji przetwarzanie na komputerze docelowym okazało si˛e bardziej efektywne, ni ˙z operacja przeprowadzona na serwerze ´zródłowym. Replikacja z jawn ˛a warstw ˛a transportow ˛a zrealizowana w sposób równoległy typowo wykazywała przewag˛e nad replikacj ˛a bezpo´sredni ˛a. Odnotowano jed-nak konfiguracje wykazuj ˛ace odmienne zachowanie.
Prognozowanie, która z dost˛epnych architektur b˛edzie pracowa´c w sposób najefektywniejszy jest skomplikowane. Najprostszym sposobem okre´slenia ak-tualnej wydajno´sci jest dokonanie pomiaru bazowanego na przetwarzaniu re-alnych danych. Utrudnienie powoduje fakt, i ˙z wydajno´s´c replikacji mo ˙ze zmie-nia´c si˛e w czasie, w zwi ˛azku ze zmianami obci ˛a ˙zenia serwerów oraz ł ˛acz ˛acych je sieci komputerowych. Sytuacja ta wpływa na zaburzenie warunków pomia-rowych.
W momencie pocz ˛atkowym agent replikuj ˛acy rezyduje po stronie systemu docelowego, czyli centralnej bazy danych. Po dokonaniu czynno´sci inicjalizu-j ˛acych rozpoczyna si˛e regularne przetwarzanie. Agent replikuj ˛acy na bie ˙z ˛aco mierzy oraz zapami˛etuje (składuje) efektywno´s´c wykonania.
Przyj˛ecie nowego zgłoszenia powoduje przemieszczenie si˛e agenta do w˛ezła systemu ´zródłowego oraz wykonanie zadania w nowej lokalizacji. Podobnie jak poprzednio, zapami˛etywana jest pr˛edko´s´c replikacji w bie ˙z ˛acej konfiguracji.
Realizacja kolejnego zadania rozpoczyna si˛e od sklonowania agenta, po czym nast˛epuje przemieszczenie jednego z nich do lokalizacji macierzystej. Po dokonaniu migracji agenci nawi ˛azuj ˛a współprac˛e, a przetwarzanie odbywa si˛e zarówno na serwerze ´zródłowym, jak i docelowym. Przesył danych pomi˛edzy w˛ezłami realizowany jest wykorzystuj ˛ac protokół FTP. Nast˛epuje badanie
bie-˙z ˛acej wydajno´sci replikacji.
Po zako ´nczeniu trzeciego zadania integracyjnego agent replikuj ˛acy porów-nuje wydajno´s´c przetwarzania uzyskan ˛a w ka ˙zdej dost˛epnej konfiguracji. Naj-wydajniejsza z nich zostaje zapami˛etana i u ˙zywana do realizacji kolejnych zgło-sze ´n.
Przedstawiona strategia obarczona jest bł˛edem pomiaru wynikaj ˛acym z po-tencjalnie mocno zró ˙znicowanych danych przetwarzanych w ka ˙zdym ze zgło-sze ´n. Jak wykazały badania praktyczne pr˛edko´s´c replikacji zale ˙zna jest od roz-miaru rekordu. Dodatkowo, nie s ˛a uwzgl˛edniane wyniki replikacji bardzo ma-łych zbiorów danych, gdy ˙z w przypadkach takich widoczny jest wpływ inicja-lizacji procesu na uzyskiwane wyniki pomiarowe.
3.2.2.4 Strategia 3
Najprostsza realizacja przetwarzania z jawn ˛a warstw ˛a transportow ˛a wyma-ga ekstrakcji danych z systemu ´zródłowego, przesyłu pliku stosuj ˛ac protokół FTP oraz ładowania do docelowej bazy danych. Zasadniczym mankamentem tej koncepcji integracji jest sekwencyjno´s´c przetwarzania. Podczas replikacji z bazy danych do pliku tekstowego komputer docelowy nie realizuje ˙zadnego przetwarzania oczekuj ˛ac na dostarczenie danych. Podobnie, podczas ładowa-nia z pliku tekstowego do bazy docelowej komputer ´zródłowy pozostaje zupeł-nie zupeł-nieaktywny.
Bazuj ˛ac na tym spostrze ˙zeniu zaproponowa´c mo ˙zna znacznie wydajniejsz ˛a wersj˛e replikacji z jawn ˛a warstw ˛a transportow ˛a, realizowan ˛a poprzez party-cjonowanie danych, które umo ˙zliwia zrównoleglenie przetwarzania. Podej´scie takie zakłada zapis zadanej ilo´sci rekordów do pliku, po czym nast˛epuje jedno-czesny zapis do nowego pliku oraz przesłanie pierwszej cz˛e´sci do komputera docelowego. Bezpo´srednio po otrzymaniu pliku komputer docelowy rozpocz ˛a´c mo ˙ze zapis do systemu bazodanowego, podczas kiedy komputer ´zródłowy re-alizuje ekstrakcj˛e dalszej cz˛e´sci danych.
Załó ˙zmy, ˙ze strumie ´n danych składa si˛e z N 1 niezale ˙znych partycji oraz oznaczmy:
Extb
n– pocz ˛atek przetwarzania DB –> tekst n–tej partycji danych
Exte
n– koniec przetwarzania DB –> tekst n–tej partycji danych
F tpe
n– koniec transferu FTP n–tej partycji danych
Ldrb
n– pocz ˛atek replikacji tekst –> DB n–tej partycji danych
Ldrne – koniec replikacji tekst –> DB n–tej partycji danych
Rozpocz˛ecie poszczególnych etapów procesu integracyjnego opisa´c mo ˙zna zale ˙zno´sci ˛a:
Extb1 = 0 (3.5)
F tpb1 = Exte1 (3.6)
Ldr1b = F tpe1 (3.7)
Dodatkowo zakładaj ˛ac sekwencyjno´s´c wykonania poszczególnych etapów, zapisa´c mo ˙zna: ∀n ∈ (1, N i
Extbn= Exten−1 (3.8)
F tpbn= max(Exten, F tpen−1) (3.9)
Ldrbn= max(F tpen, Ldren−1) (3.10) Oznaczmy czas przetwarzania n–tej partycji danych: ∀n ∈ h1, N i
Exten− Extbn= ∆Extn (3.11)
F tpen− F tpb
n= ∆F tpn (3.12)
Ldrne − Ldrb
n= ∆Ldrn (3.13)
Równanie czasu zako ´nczenia procesu ekstrakcji mo ˙zna rozwi ˛aza´c jako:
Exten=
N
X
n=1
∆Extn (3.14)
Wyliczenie czasu zako ´nczenia transferu FTP oraz replikacji do docelowej bazy danych wymaga w przypadku ogólnym zastosowania algorytmu reku-rencyjnego. Równanie rozwi ˛azuje si˛e bezproblemowo, przy zało ˙zeniu stałego czasu przetwarzania pojedynczego fragmentu danych. Je ˙zeli strumie ´n danych podzielony jest na równe, dostatecznie du ˙ze cz˛e´sci oraz infrastruktura dedyko-wana jest do zadania testowego, zało ˙zenie to wydaje si˛e akceptowalne w celu oszacowania wyników pomiarowych.
Przyjmijmy wi˛ec: ∀n ∈ h1, N i
∆Extn= const (3.15)
∆F tpn= const (3.16)
wówczas: Exten = N X n=1 ∆Extn = n ∆Ext (3.18)
Czas zako ´nczenia procesu FTP wynosi odpowiednio:
F tpen = ( Exte n+ ∆F tp Exten F tpe n−1 ∨ ( F tpe n−1+ ∆F tp Exten¬ F tpe n−1 (3.19) co przekształci´c mo ˙zna do postaci:
F tpen= ( n ∆Ext + ∆F tp ∆Ext ∆F tp ∨ ( n ∆F tp + ∆Ext ∆Ext ¬ ∆F tp (3.20) Czas zako ´nczenia procesu ładowania danych do bazy docelowej wynosi z kolei: Ldren= ( F tpe n+ ∆Ldr F tpe n Ldre n−1 ∨ ( Ldre n−1+ ∆Ldr F tpe n¬ Ldre n−1 (3.21) Pierwsz ˛a cz˛e´s´c formuły przekształci´c mo ˙zna do postaci:
Ldren= n ∆Ext + ∆F tp + ∆Ldr ∆Ext ∆F tp ∆Ext ∆Ldr ∨ n ∆F tp + ∆Ext + ∆Ldr ∆Ext ¬ ∆F tp ∆F tp ∆Ldr (3.22) Drug ˛a cz˛e´s´c wyra ˙zenia mo ˙zna zapisa´c jako:
Ldren= n ∆Ldr + ∆F tp + ∆Ext ∆Ext ∆F tp ∆Ext ¬ ∆Ldr ∨ n ∆Ldr + ∆F tp + ∆Ext ∆Ext ¬ ∆F tp ∆F tp ¬ ∆Ldr (3.23) Czas zako ´nczenia ładowania danych do docelowej bazy danych równowa ˙z-ny jest z ł ˛acznym czasem realizacji zadania integracyjnego. Formuł˛e zapisa´c mo ˙zna w zwi˛ezłej postaci jako:
T = ∆Ext + ∆F tp + ∆Ldr + (N − 1) max(∆Ext, ∆F tp, ∆Ldr) (3.24) Zgodnie ze wzorem, zwi˛ekszanie ilo´sci partycji powoduje skrócenie czasu replikacji. Nale ˙zy jednak pami˛eta´c o poczynionym zało ˙zeniu na stało´s´c czasu wykonania pojedynczego kroku przetwarzania. W praktyce, zało ˙zenie to prze-staje by´c prawdziwe przy podziale strumienia na zbyt du ˙z ˛a ilo´s´c partycji, przy którym narzut czasowy zwi ˛azany z inicjalizacj ˛a przetwarzania oka ˙ze si˛e istot-ny.
Maksymalny teoretyczny przyrost wydajno´sci wynikaj ˛acy ze zrównolegle-nia przetwarzazrównolegle-nia przewy ˙zsza 65%. Faktyczna poprawa obserwowana w licz-nych badaniach praktyczlicz-nych plasuje si˛e na poziomie 40%.