Usługi dla bibliotek cyfrowych

pomaranczona lza man-ha minZasoby polskich bibliotek cyfrowych liczą już blisko 2,5 mln obiektów cyfrowych a tempo ich przyrostu osiągnęło już ponad 0,5 mln obiektów na rok. Są to ogromne ilości danych, które niejednokrotnie wymagają przetworzenia:

 

  • W kontekście długoterminowego przechowywania jak i udostępniania niezbędne są konwersje (stratne jak i bezstratne) pomiędzy różnymi formatami danych (TIFF, JPEG, DJVU, PDF, itp).
  • Wiele z bibliotek udostępnia swoje zdigitalizowane zasoby bez warstwy tekstowej. Niemożliwe staje się wówczas pełnotekstowe zaindeksowanie takich zasobów w danej bibliotece cyfrowej jak i Federacji Bibliotek Cyfrowych.
  • Zdarza się także, że opracowane metadane obiektów cyfrowych są niepełne co powoduje problemy przy prezentacji obiektów na różnych urządzeniach.

W ramach projektu MAN-HA zostały zaimplementowane skalowalne, rozproszone i odporne na błędy usługi będące odpowiedzią na powyższe wyzwania: konwersje formatów danych, OCR oraz wzbogacanie metadanych technicznych.

Usługi zostały zaimplementowane i uruchomione jako tzw. topologie obliczeniowe w systemie Apache Storm (https://storm.apache.org), który w ramach projektu został wzbogacony o możliwość automatycznego rozłożenia przetwarzania na kolejne maszyny wirtualne rezerwowane ad-hoc. Kiedy ilość żądań do danej usługi wzrasta, system uruchamia kolejne węzły przetwarzania danych (maszyny wirtualne), na których uruchamia tzw. procesy workers Apache Storm realizujące podzadania danej topologii obliczeniowej. Odwrotnie też, jeśli do danej usługi przestają przychodzić żądania, system zwalnia i zamyka maszyny wirtualne.

Poszczególne podzadania topologii obliczeniowych zostały zaimplementowane w języku Java z wykorzystaniem sprawdzonych i otwartych narzędzi zainstalowanych na każdej z maszyn wirtualnych. Wykorzystywane są między innymi takie narzędzia jak tesseract-ocr (https://github.com/tesseract-ocr) czy ImageMagick (http://www.imagemagick.org).

Źródła danych topologii (tzw. spouts Apache Storm) potrafią przyjąć i poprawnie obsłużyć każdy typ danych wejściowych. Mogą to być zarówno pojedyncze pliki danych, ale także całe obiekty cyfrowe jak i tylko metadane administracyjne obiektów cyfrowych do przetworzenia. Dane te mogą być także dostarczone w postaci URI danego zasobu.