Portalowy dostęp do usług obliczeniowych i wizualizacyjnych Michał Kosiedowski
PROGRESS Czas trwania: Grudzień 2001 – Grudzień 2003 Partnerzy: –Sun Microsystems Polska –Poznańskie Centrum Superkomputerowo-Sieciowe –AGH ACK Cyfronet Kraków –Politechnika Łódzka Projekt współfinansowany przez Komitet Badań Naukowych oraz Sun Microsystems Polska Cel: Stworzenie środowiska dostępowego do usług obliczeniowych realizowanych przez klaster komputerów Sun
Motywacja Konstruktorzy środowisk gridowych –Musimy zbudować nowy portal, aby udostępnić użytkownikom zasoby naszego gridu... Autorzy aplikacji –Musimy zbudować nowy portal, aby udostępnić użytkownikom naszą aplikację gridową... Administratorzy portali –Być może to zadziała, ale prawdopodobnie będziemy musieli przeprojektować nasz portal, aby udostępnić te nowe usługi gridowe...
PORTAL ZASOBY KDM SYSTEM ZARZĄDZANIA GRIDEM DOSTAWCA USŁ. GRID. 4-warstwowe nowe Środowisko gridowo-portalowe PORTAL ZASOBY KDM SYSTEM ZARZĄDZANIA GRIDEM 3-warstwowe klasyczne środowisko gridowo-portalowe
Dostawca Usług Gridowych Użytkowanie zasobów gridowych jest łatwiejsze i bardziej wygodne –Dostawca Usług Gridowych umożliwia łatwe wykorzystanie zasobów gridowych w ramach wielu portali obliczeniowych oraz interfejsów użytkownika innego typu –Dostawca Usług Gridowych umożliwia udostępnienie zasobów należących do wielu różnych infrastruktur gridowych –Wiele portali obliczeniowych współdzieli te same zasoby gridowe
PROGRESS Portlet Webservice Session Bean Entity Beans Portal Dostawca Usług Gridowych
Usługa Zlecania Zadań Obliczeniowych Tworzenie zadań obliczeniowych, zlecanie ich do wykonania w gridzie oraz analiza wyników Opis zadania obliczeniowego jest przygotowywany z użyciem języka XRSL; opis jest następnie przekazywany do Brokera Zasobów Obliczeniowych w celu wykonania zadania Broker Zasobów Obliczeniowych informuje usługę o zdarzeniach związanych z wykonaniem zadania Zadania z przepływem danych: sekwencje i paralele
Usługa Zarządzania Aplikacjami Obliczeniowymi Zarządzanie repozytorium aplikacji Deskryptor aplikacji zawiera referencję do programu wykonywalnego: jest to identyfikator pliku znajdującego się w SZD bądź ścieżka do programu zainstalowanego na serwerze obliczeniowym Deskryptor aplikacji zawiera także: listę argumentów aplikacji, listę zmiennych środowiskowych wymaganych przez aplikację a także listę plików wejściowych i wyjściowych Jeden program wykonywalny może zostać użyty do utworzenia wielu aplikacji Aplikacje wirtualne
Wizualizacja (1)
Wizualizacja (2)
Wizualizacja (3)
Inne usługi Usługa Zarządzania Dostawcą: umożliwia utrzymywanie bieżącej informacji o usługach dostępnych w ramach Dostawcy Usługa Krótkich Wiadomości: umożliwia prowadzenie serwisów wiadomości z różnych dziedzin; przykład usługi informacyjnej przeznaczonej dla portali i serwisów webowych
PROGRESS HPC Portal
Portlety bazowe My computing jobs : umożliwia tworzenie, konfigurację i uruchamianie zadań obliczeniowych w gridzie, a także pobieranie i wizualizację wyników. Wykorzystuje usługi Zlecania Zadań Obliczeniowych i Zarządzania Aplikacjami Obliczeniowymi oraz funkcjonalność Systemu Zarządzania Danymi. Applications : umożliwia zarządzanie ugridowionymi aplikacjami obliczeniowymi dostępnymi w ramach repozytorium aplikacji Dostawcy Usług Obliczeniowych. Wykorzystuje Usługę Zarządzania Aplikacjami Obliczeniowymi oraz funkcjonalność Systemu Zarządzania Danymi. My data : umożliwia zarządzanie plikami przechowywanymi w Systemie Zarządzania Danymi. Pozwala przy tym na umieszczanie i pobieranie plików z SZD. Portlet komunikuje się z SZD. Management : umożliwia zarządzanie instancjami Dostawcy Usług Gridowych. Używa funkcjonalności Usługi Zarządzania Dostawcą, metod przeznaczonych do zarządzania instancjami usług, które dostarczane są przez usługi posiadające możliwość tworzenia wielu instancji, oraz metod Usługi Zarządzania Aplikacjami Obliczeniowymi. News : umożliwia prezentację i edycję krótkich wiadomości tekstowych. Wykorzystuje Usługę Krótkich Wiadomości.
PROGRESS Portlet Framework PROGRESS Portlet Framework umożliwia przygotowanie wysokiego poziomu interfejsu do usług typu Web Services dzięki zastosowaniu specjalnych obiektów do przechowywania danych otrzymanych w ramach odpowiedzi usług na zadane żądanie oraz klas tłumaczących zapytania HTTP na wywołania odpowiednich metod WS. Cechy te umożliwiają szybką budowę nowych portletów na bazie tych klas, przy wykorzystaniu już zaimplementowanej funkcjonalności, którą one dostarczają.
Provider... Provider HTTP Content Generator Request Handler... Web Service Proxy... Web Service Proxy... Web Services Invocation Framework SOAP (do DUS, SZD) Portlety
Komunikacja z usługami Web Services (1) Do komunikacji z Web Services wykorzystana została Web Services Invocation Framework Object executeMethod( String methodName, ArgumentTable methodArguments) Do generacji klas mapujących złożone typy używany jest pakiet Apache AXIS Każda usługa WS opisana jest w specjalnym pliku konfiguracyjnym XML
Application Management ApplicationManagementWS.wsdl ApplicationCtrl GSP Application Management Service Job Submission JobSubmission.wsdl JobSubmissionCtrl GSP Job Submission Service Komunikacja z usługami Web Services (2)
Generowanie stron (1) Na podstawie dwóch parametrów z żądania HTTP ( page i action ). 1.page np. ApplicationList, EditApplication 2.action np. removeApplication, createSzdDirectory wybierana jest odpowiednia akcja do wykonania oraz strona do wygenerowania Akcje zdefniniowane w actions.xml, strony w pages.xml (zawartość wczytywana przez odpowiednie klasy, ContentGenerator pobiera z tych klas obiekty Action i Page ). Akcje są wykonywane przed wygenerowaniem zawartości strony; strona zwykle zawiera domyślną akcję do wykonania. Akcje mogę być niezależne od strony lub zastępować domyślną akcję dla strony Akcja skojarzona z jedną lub wieloma metodami RequestHandlera,lub wielu RequestHandlerów ) Wykorzystanie mechanizmu refleksji do wywołania konkretnej metody na obiekcie RequestHandler
Generowanie stron (1) Zawartość strony jest dostarczana w formie klas PageBean przez RequestHandlery Każda strona może zawierać jedną lub więcej klas implementujących interface PageBean (klasy PageBean wiedzą jak zwrócić swoją zawartość w postaci DOM-a) Strona generuje swoją zawartość konwertując składające się na nią PageBeany do DOM-a, następnie transformując go przy użyciu szablonu XSL
Page PageBean1 RequestHandler1 RequestHandler2 RequestHandler3 PageBean2 PageBean3 PageBean4 DOM1 DOM2 DOM3 DOM4 DOM Content Generator HTML Generowanie stron (2)
Generowanie stron (3) Strony zdefiniowane są w pliku konfiguracyjnym XML: Application List List of PROGRESS applications application-list.xsl...
Generowanie stron (4) Wykorzystanie wielu RequestHandlerów: Edit Application Executable Edit application executable file - choose/change the file. The executable can also be uploaded to SZD. edit-application-executable.xsl
Generowanie stron (5) Przepływ danych pomiędzy RequestHandlerami Job List List of jobs for a given user job-list.xsl <method name="filterJobs" input-name="userJobs" output-name="filteredJobs"/>
Generowanie stron (6) Przekierowania stron:
PROGRESS Portlet Framework: korzyści Wykonane portlety można łatwo wdrożyć w ramach innych portali i serwisów webowych –Klasę Provider można łatwo dostować, aby spełniała wymogi dowolnego frameworka portalowego –Zawartość stron generowana przez portlet może być łatwo zmieniona poprzez zmiany wprowadzone w plikach konfiguracyjncych Te same RequestHandlery można wykorzystać do budowy wielu różnych portletów dzięki czemu łatwo jest budować nowe portlety komunikujące się z tymi samymi usługami –specjalizowane portlety aplikacyjne, np..: Gaussian portlet (zaimplementowany), DNA Assembly portlet (w trakcie realizacji)
Gaussian Portlet
Dostęp z wielu portali
Wnioski Konstruktorzy środowisk gridowych –Nareszcie możemy zapomnieć o budowie portali obliczeniowych. Autorzy aplikacji –Teraz możemy w łatwy sposób udostępnić naszą aplikację w ramach wielu portali obliczeniowych. Administratorzy portali –Są portlety, które możemy wdrożyć na naszym portalu. To na pewno zadziała. Użytkownik końcowy –Teraz nie muszę się martwić, gdzie znajdują się usługi i zasoby gridowe. Mogę uzyskać do nich dostęp z portalu, z którego codziennie korzystam.
PROGRESS