Ten dokument zawiera informacje na temat wewnętrznej architektury systemu dLibra oraz możliwości skalowania tego systemu w przypadku potrzeby rozbudowy biblioteki cyfrowej. Dokument przeznaczony jest dla administratorów systemu dLibra.

Architektura systemu dLibra

System dLibra jest systemem wielowarstwowym o architekturze przedstawionej na poniższym schemacie:
Oznaczony przerywaną linią prostokąt reprezentuje serwer systemu dLibra opisany dokładniej w dalszej części tekstu. Z serwerem komunikują się następujące komponenty architektury systemu:



Serwer systemu dLibra

Serwer systemu dLibra składa się z szeregu współdziałających ze sobą usług sieciowych, tworzących razem w pełni funkcjonalną bibliotekę cyfrową. Usługi te to:

Skalowanie systemu dLibra

Każda z usług systemu dLibra może być uruchomiona na osobnym serwerze lub też usługi te mogą być łączone w grupy. Dodatkowo każda z usług systemu dLibra wymaga do swojego działania relacyjnej bazy danych. Usługi mogą współdzielić między sobą jedno konto bazy danych, ale mogą też korzystać z odrębnych baz danych uruchomionych na osobnych serwerach.

Podstawowy wariant konfiguracji systemu dLibra to wszystkie usługi uruchamiane na pojedynczym serwerze jako jedna grupa. W przypadku potrzeby rozbudowy biblioteki cyfrowej istnieje możliwość przenoszenia poszczególnych komponentów systemu na odrębne serwery. Obecnie maksymalny stopień rozbicia systemu dLibra oznacza uruchomienie tego systemu na piętnastu serwerach: 7 x serwer bazy danych dla poszczególnych usług, 7 x serwer dla poszczególnych usług systemu dLibra, 1 x serwer na aplikację czytelnika. Takie rozbicie jest oczywiście uzasadnione tylko w skrajnych prrzypadkach. Poniżej opisano przykłady przeskalowania systemu dLibra na 2 oraz 3 serwery.

Dwa serwery

Pierwszy serwer: Następujące usługi systemu dLibra: Metadata Server, User Server, Event Server, Distributed Search Server, System Services, Serwer WWW z aplikacją czytelnika, Baza danych współdzielona przez wszystkie usługi pierwszego serwera
Drugi serwer: Następujące usługi systemu dLibra: Search Server, Content Server, Baza danych współdzielona przez wszystkie usługi drugiego serwera. Takie podejście pozwala wydzielić część systemu dLibra zajmującą się przechowywaniem i indeksowaniem treści. Jest to część, która generuje duże obciążenie serwera w momencie dodawania nowych publikacji do biblioteki cyfrowej. Dzięki temu w momencie maksymalnych obciążeń drugiego serwera, związanych z analizą zawartości obiektów cyfrowych, nadal możliwe jest funkcjonowanie aplikacji czytelnika oraz praca użytkowników aplikacji administratora oraz redaktora, gdyż wszystkie metadane wraz ze stosownymi usługami znajdują się na pierwszym serwerze.

Trzy serwery

Pierwszy serwer: Następujące usługi systemu dLibra: Metadata Server, User Server, Event Server, Distributed Search Server, System Services, Baza danych współdzielona przez wszystkie usługi pierwszego serwera
Drugi serwer: Następujące usługi systemu dLibra: Search Server, Content Server, Baza danych współdzielona przez wszystkie usługi drugiego serwera
Trzeci serwer: Serwer WWW z aplikacją czytelnika. Takie podejście dodatkowo odseparowuje aplikację czytelnika, która może powodować okresowe większe obciążenia w przypadku zwiększonego ruchu czytelników. Dzięki wbudowanemu w aplikację czytelnika mechanizmowi cache, jest ona stosunkowo niezależna od usług systemu dLibra, a więc takie przeskalowanie systemu umożliwia rozłożenie na dwa serwery (odpowiednio pierwszy i trzeci) obciążenia związanego z pracą użytkowników aplikacji redaktora i administratora oraz obciążenia związanego z obsługą żądań czytelników. Podobnie jak w poprzednim scenariuszu, drugi serwer odpowiedzialny jest za przechowywanie i przetwarzanie udostępnianych treści cyfrowych.