B.3. 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 przypadkach. Poniżej opisano przykłady przeskalowania systemu dLibra na 2 oraz 3 serwery.

B.3.1. 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.

B.3.2. 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.