Zorientowany na użytkownika portal gridowy dla dopasowywania dużych zbiorów sekwencji Piotr Dziubecki 1 1 Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka, Rok V pdziubecki@o2.pl Streszczenie Wobec ciągłego wzrostu ilości przetwarzanych danych, coraz większą popularność zdobywa wykorzystanie zasobów rozproszonych. Celem tej pracy jest możliwość wykorzystania infrastruktury dla obliczeń rozproszonych typu Grid. Dzisiaj termin ten obejmuje zarówno skoordynowane współdzielenie zasobów, jak i model przetwarzania danych i prowadzenia obliczeń. Niestety, obecnie dostęp do tego rodzaju zasobów i wykorzystujących je aplikacji jest problematyczny, z punktu widzenia osoby nie posiadającej specjalistycznej wiedzy w tym zakresie. Ogranicza to znacznie grono użytkowników docelowych. Celem tego projektu było stworzenie systemu umożliwiającego przeprowadzanie obliczeń związanych z zagadnieniem dopasowywania sekwencji. Został on tak zaprojektowany, by ukryć warstwę konfiguracji i obsługi systemów gridu przed użytkownikiem. Natomiast otrzymał on intuicyjny interfejs, który jednocześnie udostępnia pełną funkcjonalność aplikacji oraz zasobów. Niniejsza praca zawiera opis procesu budowania tego typu aplikacji, z uwzględnieniem zadań i przepływu informacji pomiędzy poszczególnymi warstwami architektury typu grid. Szczególny nacisk został położony na zagadnienia związane z bezpieczeństwem oraz interfejsem użytkownika. 1 Wstęp Naukowcy nieustannie pracują nad nowymi rozwiązaniami, które będą w stanie rozwiązywać złożone problemy inżynierskie. Dzięki wzrostowi przetwarzania wspólczesnych komputerów, możliwe jest tworzenie coraz bardziej wyrafinowanych narzędzi. Obecnie jesteśmy świadkami przełomu, jaki dokonuje się w związku z dostępem do zasobów rozproszonych o ogromnych mocach obliczeniowych. 1.1 Wymagania stawiane przez bioinformatykę Współczesne zadania z dziedziny biologii są ściśle związane z bioinformatyką i z biologią obliczeniową. Według The National Institutes of Health s Biomedical Information and Technology Initiative Consortium [1] te dwa pojęcia można zdefiniować jako: 1
Bioinformatyka: badania, rozwój i zastosowanie technik obliczeniowych i podejść stworzonych, by efektywniej wykorzystywać dane biologiczne, medyczne, behawioralne.. Biologia obliczeniowa: badania i zastosowanie teorii, metod analizujących dane, matematycznego modelowania, technik symulacji obliczeniowej w celu poznawania systemów biologicznych. Obecnie niemożliwe jest rozwiązywanie problemów, z jakimi zmaga się współczesna biologia bez zaangażowania bioinformatyki i biologii obliczeniowej. Dobrym tego przykładem jest chociażby opublikowanie mapy ludzkiego genomu w 2001 roku. To wydarzenie, ogłoszone jako przełom w badaniach związanych z genetyką, w rzeczywistości przyczyniło się do otrzymania ogromnej ilości nieprzetworzonych danych. Nasze możliwości związane z transformacją tych danych w użyteczną informację są wciąż niewystarczające i realizacja takich zadań jest jednym z głównych celów bioinformatyki i biologii obliczeniowej. Celem prezentowanego projektu jest opracowanie interfejsu webowego, udostępniającego funkcjonalność aplikacji związanymi z zagadnieniem dopasowywania sekwencji - Multiple Sequence Algnment (MSA). Obliczenia związane z tym problemem wymagają dużej mocy obliczeniowej do efektywnego działania, z racji tego iż dopasowanie większej ilości sekwencji jest problemem klasy Max - SNP - Hard. W praktyce oznacza to, że np. obliczenie dopasowania zbioru 1024 sekwencji na 32 węzłach klastra icluster2(każdy węzeł wyposażony w procesor Itanium2 900 MHz, 3 GB pamięci RAM) może być mierzone w dniach[2]. 1.2 Dostęp do zasobów W obliczu takich skali czasowych, korzystanie z rozproszonych zasobów jest jednym rozsądnym wyjściem. Niestety, obecnie dostęp oraz swobodne poruszanie się w tym środowisku wymaga niedostępnej wszystkim biologom wiedzy, dotyczącej zagadnień związanych z bezpieczeństwem, autoryzacją czy choćby z podstawową znajomością pisania skryptów w języku powłoki. Użytkownik również musi być świadomy, jakie ograniczenia ma użytkowany przez niego system (ograniczenia związane z wykorzystaniem pamięci, ilości węzłów, rezerwacji czasu itp.). Powyższe wymagania stały się podstawą specyfikacji tego projektu. Zakłada ona ukrycie przed użytkownikiem, za pomocą dostępnych technologii (omówionych później), szczegółów technicznych związanych z komunikacją z zasobami obliczeniowymi. Nie wiążę się to jednak z ograniczeniem funkcjonalności oferowanej przez aplikacje związane z MSA. Głównym powodem powstania tego rodzaju projektu jest ścisła zależność pomiędzy stopniem, w którym jest wykorzystywane oprogramowanie bioinformatyczne, jako naturalny aspekt metod badawczych, a przyjaznemu interfejsowi użytkownika tegoż oprogramowania. 2 Rozwiazania stosowane obecnie Portale zbliżone funkcjonalnością i postawionymi przed nimi zadaniami, skupiają sie obecnie głównie na samym udostępnianiu zasobów, przy minimalnym poziomie zabez- 2
pieczeń. Poniżej zostaną zaprezentowane trzy rozwiązania, z których każde kładzie na nacisk na inny aspekt systemu. 2.1 PARALIGN Jest to projekt rozwijany przez naukowców z University of Oslo. Składa się on z dwóch części: implementacji dwóch algorytmów (accelerated Smith-Waterman i heurystycznego Paralign) oraz webowego interfejsu (www.paralign.org). Algorytmy są również dostępne w postaci samodzielnej aplikacji. Zastosowano tu szereg innowacyjnych rozwiązań (algorytmy wykorzystują multimedialne instrukcje procesorów MMX, AltiVec; korzystają z technologii SIMD), które wykorzystywane są w środowisku rozproszonym (wykorzystanie standardu MPI) [3]. Sam interfejs web został zaprojektowany, aby umożliwiać zgłaszanie zadań do systemu kolejkowego (TORQUE) klastra. Dostęp do tych zasobów jest publiczny, bez mechanizmów identyfikujących użytkownika, czy zapewniających podstawowe bezpieczeństwo proces użytkowania portalu (poza walidacją danych wejściowych). Same dane mogą być wprowadzanie przez użytkownika, mogą też być wykorzystywane bazy danych umieszczone na serwerze i replikowane na węzłach klastra - wedle zapewnień autorów, bazy te są cotygodniowo manualnie aktualizowane. 2.2 EBI tools - interfejs dla ClustalW Jest to część dużego serwisu poświęconemu bioinformatyce, tworzonego przez European Bioinformatics Institute (EBI). Rozwinięto tu wiele użytecznych narzędzi z dziedziny biologii. Mimo, że obecnie serwis ten nie wspiera bezpośrednio technologii związanych z wykorzystaniem zasobów rozproszonych, jest on warty wspomnienia ze względu na dopracowany interfejs użytkownika. Jest to przykład na wzorcowe zastosowanie technik zorientowanych na użytkownika, nie zapomniano tu o zasadach ergonomii jak i o spójnym układzie graficznym serwisu (Rys. 1). Rys. 1: EBI - ClustalW results form. 3
Ciekawym zabiegiem jest stworzenie tematycznych sekcji, które grupują pewne klasy powiązanych ze sobą parametrów. Oszczędza to niewątpliwie czas użytkownika, który prowadzony jest poprzez kolejne etapy, aż do odebrania wyników. Jednak także i tu, nie znalazły miejsca mechanizmy związane z bezpieczeństwem i autoryzacją, co stwarza zagrożenie w postaci ewentualnych ataków anonimowych użytkowników. 2.3 GPS@: bioinformatic Web portal GPS@ jest projektem realizowanym przez zespół z Institute of Biology and Chemistry of Proteins z Lyonu. Jest to rozszerzenie uznanego serwisu NPS@, sami autorzy nazywają ten proces ugridowieniem. Zadania serwisu skupiają się na między innymi: zagadnieniach bioinformatycznych, medyczną wizualizacją i innymi dziedzinami związanymi ze zdrowiem. Przeportowanie tych serwisów w środowisko rozproszone możliwe jest dzięki projektowi Enabling Grids for E-Science (EGEE). Z założenia system ten będzie wspierał szeroką gamę aplikacji (część będzie dostarczona od razu, część będzie dostarczona przez partnerów projektu, reszta na drodze kwalifikacji) [4]. Obecna działająca wersja systemu jest dostępna pod adresem http://gpsa-pbil.ibcp.fr/. Głównymi założeniami systemu było pozostawienie dotychczasowego interfejsu użytkownika, brak ingerencji w kod udostępnianych aplikacji, automatyczna replikację danych na potrzebne węzły systemu. Mimo, że mamy tu do czynienia z migracją serwisu w środowisko rozproszone, postawione zostały tu zupełne inne wymagania, zamiast nacisku na zwiększenie wydajności - wydajniejsze składowanie większej ilości danych biologicznych. W obecnym stadium rozwoju również nie uwzględniono mechanizmów autoryzacji, użytkownicy są zaledwie identyfikowani przez ich adres IP, w przyszłości autorzy zakładają dodanie procedur zwiększających bezpieczeństwo. 3 Projekt portalu Poniższy schemat portalu (Rys. 2) przedstawia strukturę i hierarchię poszczególnych warstw systemu, które zostaną scharakteryzowane w dalszej części rozdziału. 3.1 Warstwa Grid Określenie Grid powstało ok. roku 1990 jako termin oznaczający infrastrukturę dla obliczeń rozproszonych, mającą zastosowanie w zaawansowanych badaniach naukowych i inżynierii. Obecnie termin ten obejmuje zarówno skoordynowane współdzielenie zasobów, jak i model przetwarzania danych i prowadzenia obliczeń [5]. Systemy typu Grid powstały, by zunifikować zasady bezpiecznego współdzielenia i zarządzania zasobami. W tym celu zostały stworzone nowe protokoły, serwisy i narzędzia radzące sobie z wyzwaniami jakie stwarza budowanie i zarządzanie zasobami. Te technologie zawierają mechanizmy bezpieczeństwa, wspierające zarządzanie tożsamościami i polityką obliczeń wykonywanych przez wielu użytkowników równocześnie; systemów zarządzających danymi, umożliwiających transport danych między zbiorami danych, a aplikacjami [6]. Zadania określone powyżej realizowane są przez oprogramowanie nazywane middleware. W tym przypadku jest to Globus Toolkit, który jest właśnie zbiorem takich narzędzi. 4
Globus Toolkit + MyProxy MSA Applications Java Cog Tomcat Containter GridSphere Framework GridPortlets + Interface Grid System Server Rys. 2: Struktura portalu. Zapewnia on również zbiór implementacji funkcji, narzędzia do budowania Web services, podstawowe struktury związane z bezpieczeństwem, API dla klientów i programy do dostępu do wcześniej wymienionych elementów. Jednym z najważniejszych, jeżeli nie najważniejszym elementem tego pakietu jest GRAM (Grid Resource and Administration Manager), który jest odpowiedzialny za przetwarzanie i zarządzanie zadaniami zgłaszanymi przez użytkownika oraz monitorowaniem i alokacją zasobów. Co więcej GRAM oferuje API dla Web services umożliwiające zdalne zarządzanie zadaniami (zgłaszanie, kasowanie, sprawdzanie statusu zadań). Właśnie z GRAM em komunikuje się poprzez pakiet Java Cog opisywany portal w celu uzyskania, czy też wysłania wszystkich informacji niezbędnych do wykonywania zadań użytkownika. Globus Toolkit zawiera kompleksowy zestaw komponentów, również jeżeli chodzi o bezpieczeństwo i autoryzację, odpowiednio: za autoryzacje odpowiada: Grid-Mapfile/SAML delegacja proxy: Certyfikaty Proxy standardu X.509 uwierzytelnianie: Certyfikaty ID standardu X.509 Najnowsze wersje tego oprogramowania zawierają w sobie MyProxy - system zarządzającymi tożsamościami (ang. credentials) użytkowników. Umożliwia on delegowanie tymczasowych certyfikatów do zdalnego repozytorium, co pozwala na dostęp do zasobów użytkownikom, czy aplikacjom znajdujących się na zewnatrz systemu (np. będących poza domeną). Zasadniczą kwestia jest wiedza, w jaki sposób jest skonfigurowany serwer MyProxy, w opisywanym systemie serwer zabrania pobierania tymczasowych proxy przez anonimowych użytkowników i z racji tego potrzebny był dodatkowy certyfikat, tzw. host certificate umożliwiający pobieranie proxy, bez hasła. Dzięki niemu serwisy działające w ramach portalu są w stanie przeprowadzić operację uwierzytelniania poprzez Java Cog na węźle dostępowym maszyny docelowej (front end server). 5
3.2 Warstwa portalu Jak widać na rys. 2 całość oparta jest na serwerze Tomcat - tu pełni on funkcję pojemnika na serwlety. W nim osadzony jest framework GridSphere, narzędzie wspierające technologię portletów (zarówno standard JSR 168 jak i standard WebSphere a firmy IBM). Ten zbiór oprogramowania udostępnia spójny zbiór funkcji oraz API dla projektowania aplikacji typu web. W podstawowej wersji są to podstawowe elementy umożliwiające zarówno budowanie części wizualnej portalu (m.in. tzw. tagi, których używa się analogicznie jak Java Beans), jak i tworzenie logiki biznesowej w oparciu o dostarczone wzorce projektowe (singleton & factory). Jednakże by wykorzystać to oprogramowanie w celu stworzenia portalu umożliwiającego dostęp do zasobów typu grid (grid-aware) należy skorzystać z pakietu portletów GridPortlets. Jest to projekt stworzony przy wykorzystaniu framework u GridSphere, dostarczający w pełni konfigurowalny zbiór serwisów i portletów odpowiedzialnych za komunikację ze zdalnymi zasobami. Istota tego oprogramowania polega na tym, że jest to niejako rozszerzenie funkcjonalności podstawowego frameworku. Sam autor zaznaczacza, że dostarczone wraz z pakietiem aplikacje są tylko przykładowym wykorzystniem API GridPortlets. Projektant portalu dostaje narzędzia pozwalające na zbudowanie portalu w pełni korzystającego z dodatkowych możliwości związanych z operowaniem na zasobach rozproszonych. Jednocześnie nie musi on od początku tworzyć potrzebnej do tego warstwy oprogramowania. Oczywiście, wiąże się to z dostosowaniem do zaproponowanych przez autora pakietu konwencji, jednak w przypadku zestawu GridSphere + GridPortlets można tu mówić o przemyślanym projekcie ze stabilna i wewnętrznie spójna strukturą. Na podstawie dostarczonych narzędzi oraz elementów budowany jest interfejs portalu, obecnie będzie to interfejs sprofilowany dla programu ClustalW-MPI [7] - zrównoleglonej wersji programu ClustalW. Ta aplikacja została wybrana, ze względu na jej wzorcowy charakter, zarówno jeżeli chodzi o jej interfejs, jak i obliczane przez nią dopasowania (często pojawiające się jako referencyjne w testach podobnych aplikacji). Użytkownik obecnie może korzystać z baz danych zgromadzonych na serwerze, lub dostarczyć własne sekwencje do analizy i dopasowania. Na obecnym etapie użytkownik docelowy, by wykorzystać portal w celu przeprowadzenia swoich obliczeń, musi jedynie wydelegować swoje proxy do zdalnego repozytorium z poziomu wezła dostępowego na gridzie. Zwykle okres ważności takiego tymczasowego certyfikatu wynosi siedem dni, więc czynność ta nie powinna być aż nadto uciążliwa. Cała reszta związana z zarządzaniem danymi, zgłaszaniem zadań odbywać się będzie z poziomu portalu (Rys. 3). Obecnie prowadzone są prace nad pełnym wykorzystaniem API (pojawiły się nowe stabilne wersje oprogramowania, rozszerzające oferowany zakres funkcji) oraz nad ergonomią interfejsu. Ostatnim etapem będzie opracowanie szaty graficznej. Powodem takiej kolejności jest zapewniony przez GridSphere system tematów graficznych dla aplikacji, opartych na plikach xml. Dzięki temu projektant jest w stanie zaplanować układ graficzny całości odpowiednio wcześniej, a do zadań grafika należy odpowiednie wypełnienie luk w interfejsie. 6
4 Podsumowanie Rys. 3: Interfejs portalu - zarządzanie plikami. Należy wspomnieć tu o ważnym aspekcie dotyczącym projektowania i budowy omawianego portalu. Otóż większość jego elementów jest obecnie intensywnie rozwijana, co skutkuje problemami przy współdziałaniu poszczególnych elementów. Jest to jednak rekompensowane szybką reakcją deweloperów pracujących nad tym oprogramowaniem, w przypadku zgłoszenia problemu lub błędu. Na obecnym etapie można stwierdzić, że jest to obiecująca platforma, która wyznacza właściwy kierunek rozwoju tego typu aplikacji. Dzięki modularnej budowie, można w względnie łatwy sposób wymieniać poszczególne elementy, czego dobrym przykładem jest system GAMA, który prawdopodobnie w najbliższym czasie zastąpi MyProxy i zupełnie wyeliminuje kontakt docelowego użytkownika z konsolą. W przyszłości planowane jest dodanie obsługi meta-schedulera GRMS, dzięki temu można uzyskać dostęp do systemów klasy Clusterix oferujących większą moc przetwarzania. W planach jest również kompleksowa obsługa baz danych, z możliwością ich aktualizacji i replikacji przy wykorzystaniu Web services. Aby zwiększyć funkcjonalność oferowanych użytkownikowi narzędzi, należy się również skupić na możliwości natychmiastowej analizy otrzymanych wyników, chociażby dodając możliwość obsługi wyników przez program JalView. Literatura [1] Biological Information Science and Technology Consortium Definition Committee. National Institutes of Health working definition of bioinformatics and computational biology, http://www.bisti.nih.gov/compubiodef.pdf, 2000. [2] Jarosław Żola, Parallel Server for Multiple Sequence Alignment, http://icis.pcz.pl/ zola/counter/counter.php?res=resources/zola-thesis-text.pdf, 2005. [3] PARALIGN: Rapid and Sensitive Sequence Similarity Searches Powered by Parallel Computing Technology, Nucleic Acids Research, 2005. 7
[4] GPS@: Bioinformatics grid portal for protein sequence analysis on EGEE grid, egee.pnpi.nw.ru/presentation/06.03.01.egeeuf.gpsa.pdf, 2006. [5] The Anatomy of the Grid: Enabling Scalable Virtual Organizations, Lecture Notes in Computer Science, 2001. [6] Globus Toolkit Version 4: Software for Service-Oriented Systems, IFIP International Conference on Network and Parallel Computing, Springer-Verlag LNCS 3779, 2005. [7] CLUSTALW-MPI Web Site, http://web.bii.a-star.edu.sg/ kuobin/clustalg/, 2006. 8