laboratorium 6
Transkrypt
laboratorium 6
Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul [email protected] Architektury usług internetowych laboratorium nr 6 Publikacja i integracja usług w scenariusze w systemie BeesyCluster Wprowadzenie Celem niniejszego laboratorium jest prezentacja i wykorzystanie systemu BeesyCluster do publikacji aplikacji linuksowych jako usług oraz scalania usług w rozproszone scenariusze a następnie ich wykonanie. BeesyCluster jest portalem dostępowym do sieci klastrów/superkomputerów/komputerów PC. Dzięki wirtualnemu kontu w systemie, użytkownik uzyskuje dostęp do wszystkich swoich kont fizycznych na poszczególnych komputerach. BeesyCluster udostępnia swoje usługi poprzez interfejs WWW, jak również Web Services stanowiąc idealne rozwiązanie dla użytkowników korzystających z urządzeń przenośnych. Funkcjonalność systemu BeesyCluster BeesyCluster udostępnia m.in. następujące funkcje zarejestrowanym użytkownikom (poprzez interfejs WWW oraz, w ograniczonym zakresie, poprzez interfejs Web Services): • • • • zdalne zarządzanie kontami fizycznymi na komputerach poprzez interfejs WWW, w szczególności: • kopiowanie plików z/na lokalny komputer z klastra/superkomputera/komputera PC, pomiędzy klastrami/superkomputerami/komputerami PC, tworzenie, edycję, podgląd plików, kompresję, dekompresję. • wykonywanie zadań: • poprzez systemy kolejkowe - zadanie jest przedłożone do kolejki zadań do wykonania, użytkownik może sprawdzić status zadania oraz jego wyniki • interaktywnie - standardowe wyjście pokazane jest w nowym oknie przeglądarki publikacja usług - użytkownik może opublikować usługi (aplikacje - zarówno do zakolejkowania jak i interaktywnego uruchomienia jak również pliki do wglądu) dla innych użytkowników systemu BeesyCluster. Właściciel udostępnianego zasobu może zdefiniować politykę dostępu oraz wykorzystania zasobu. uruchamianie usług opublikowanych przez innych użytkowników - zadania zostają uruchomione na koncie użytkownika, który udostępnił zadanie. Użytkownik uruchamiający ma jednak dostęp jedynie do wyników zadania bez dostępu do systemu plików właściciela aplikacji (chyba że zadanie uruchamiane jest przez właściciela). delegacja praw - właściciel zasobu może delegować wybrane prawa do danego zasobu innym użytkownikom i zdefiniować ewentualne prawa dalszych delegacji. • • środowisko pracy grupowej, w którym użytkownicy mogą wysyłać do siebie wiadomości, definiować zadania, prowadzić interaktywną wymianę komunikatów, rysować projekty na współdzielonej tablicy itd. przeglądanie dostępnych zasobów. • scalanie usług w rozproszone scenariusze, optymalizacja doboru usług do wykonania scenariuszy i wykonanie, • inne, które nie są przedmiotem niniejszego laboratorium. Modelowanie scenariusza i wykonanie w środowisku BeesyCluster W modelu zaimplementowanym w systemie BeesyCluster scenariusz powinien być zdefiniowany w formie grafu, którego wierzchołki oznaczają podzadania do wykonania zaś skierowane krawędzie zależności czasowe pomiędzy węzłami (model omawiany na wykładzie). Do każdego z zadań należy przypisać jedną lub więcej usług, które są w stanie wykonać dane zadanie. Na przykład do zadania konwersja pliku z formatu tif na jpg możemy przypisać kilka usług, które wykonują to zadanie w różny sposób z tym samym efektem. Niektóre usługi konwersji mogą być opublikowane z szybszych serwerów/klastrów (co zapewne będzie skutkowało wyższym kosztem wywołania takich usług) inne z wolniejszych, ale bardziej przystępnych cenowo. W przypadku gdy do zadania przypiszemy tylko jedną usługę wówczas zawsze ta usługa będzie wykonywała zadanie. W przypadku gdy usług będzie więcej wówczas system BeesyCluster dokona wyboru usług do każdego zadania (do każdego jednej) optymalizując zadane kryteria jakościowe np. minimalizacja czasu wykonania scenariusza przy założeniu, że maksymalny koszt wybranych usług nie przekracza zadanego progu. Po wybraniu usług system wykona scenariusz. Definicja scenariusza obejmuje więc definicję grafu z usługami. Przy usługach należy zwrócić uwagę na wyjściowe formaty danych. Na przykład przy usłudze przyjmującej pliki wejściowe w formacie *tif a generującej pliki *jpg, należy określić format danych wyjściowych jako *jpg. Takie dane wyjściowe będą kopiowane do kolejnych usług jako dane wejściowe. Przy każdej usłudze można określić czy dane będą przetwarzane w sposób strumieniowy czy nie. Jeśli nie, wówczas dana usługa rozpocznie wykonywanie dopiero w momencie gdy wszystkie potencjalne pliki wejściowe zostaną przetworzone przez usługi poprzedzające daną usługę (zadanie). W przypadku przetwarzania strumieniowego, pliki będą przetwarzane potokowo. Zakłada się, że dana usługa będzie wywoływana (o ile nie określono inaczej – opcja nie będzie wykorzystywana podczas laboratorium) wielokrotnie – dla każdego pliku wejściowego osobno. Nazwa pliku podawana jest automatycznie jako argument. Usługi należy wcześniej opublikować z aplikacji, do których użytkownik ma dostęp poprzez menedżer plików (jak pokazano na filmie – patrz niżej). Najłatwiej zdefiniować skrypt, który realizuje pewne zadanie przetwarzając pliki wejściowe. Dla przykładu następujące skrypty zostały opublikowane jako usługi przetwarzania obrazów: 1. convert $1 -normalize $1.TIFF konwersja pliku wejściowego – normalizacja; plikiem wynikowym jest plik z rozszerzeniem *TIFF – takie też wyjście usługi należy zdefiniować w edytorze 2. convert $1 -resize 600x400 -sharpen 1x1.2 -quality 97% $1.jpg zmiana rozmiaru pliku wejściowego, wyostrzenie i zapisanie pliku wynikowego jpg z jakością 97% jako rozszerzenie pliku wyjściowego danej usługi należy zdefiniować *jpg Warto zwrócić uwagę na fakt, że użytkownik systemu BeesyCluster może udostępniać własne usługi innym użytkownikom systemu. Tak udostępnione usługi będą mogły być wykorzystane jako elementy scenariusza. Dane wejściowe do scenariusza należy umieścić w wybranym katalogu i następnie zdefiniować ten katalog w edytorze jak pokazano na filmie. Należy zwrócić uwagę na to, aby ścieżka poprzedzona była ../../.. a następnie określona przez pełną ścieżkę do katalogu z danymi wejściowymi. Zakłada się, że katalog wejściowy może zawierać przynajmniej jeden a potencjalnie więcej plików wejściowych. Na przykład może to być 10 obrazów wejściowych w formacie tif, które mogą być przetwarzane przez kolejne zadania i usługi realizujące operacje np. normalizację, konwersję tif na jpg itp. Dla każdego zadania należy określić formaty danych wyjściowych. Definicja równoległych ścieżek scenariusza pozwala na równoległe przetwarzanie różnych plików przez równoległe ścieżki. Po przetworzeniu danych przez scenariusz, system tworzy katalog o nazwie <id_instancji_scenariusza>-results, w którym powinny znajdować się dane wyjściowe. Konto w systemie BeesyCluster Przed zajęciami każdy zakłada indywidualnie konto w systemie BeesyCluster, do którego będzie przypisane konto systemowe podane przez prowadzącego tj. nazwa serwera/klastra już zarejestrowanego w systemie BeesyCluster, login oraz hasło. Po założeniu konta w systemie BeesyCluster można się zalogować i wykonać pozostałe czynności. Niezbędne lokalizacje Poniżej podano lokalizacje modułów niezbędnych do wykonania zadania: 1. logowanie https://lab527.eti.pg.gda.pl:10030/ek/AS_LogIn 2. menedżer plików https://lab527.eti.pg.gda.pl:10030/ek/FileManager 3. edytor scenariuszy – definiowanie i zapisanie scenariusza, po zdefiniowaniu scenariusza należy wygenerować ograniczenia na scenariusz (odpowiedni przycisk jak na filmie) i zapisać scenariusz pod własną nazwą – jest wówczas gotowy do wykonania – panel poniżej. https://lab527.eti.pg.gda.pl:10030/ek/SIEditor 4. panel z listą scenariuszy do wykonania – uruchamianie scenariusza wykorzystując jeden z algorytmów optymalizacyjnych – na potrzeby laboratorium sugerowany Uruchom (dynamiczna pelna optymalizacja) lub Uruchom (optymalizacja przed wykonaniem) https://lab527.eti.pg.gda.pl:10030/ek/ServiceIntegration 5. panel z listą uruchomionych instancji scenariuszy https://lab527.eti.pg.gda.pl:10030/ek/WorkflowInstanceList Filmy instruktażowe Poniżej zamieszczono odwołania do filmów pokazujących odpowiednio: 1. tworzenie usługi w systemie BeesyCluster za pomocą menedżera plików 2. tworzenie i zapisywanie scenariusza 3. przeglądanie scenariuszy dostępnych dla użytkownika Zadanie do wykonania W ramach laboratorium należy zdefiniować i wykonać własny scenariusz usług realizujący wybrane złożone zadanie. Należy wykorzystać aplikacje dostępne w systemie Linux jako usługi realizujące fragmenty danego zadania. Ze względu na liczbę osób wykonujących zadanie podczas laboratorium należy ograniczyć się do definicji i wykonania prostych scenariuszy o rozmiarze kilku zadań (usług) i przetwarzania kilku plików wejściowych. Można ograniczyć się do przypisania jednej usługi do danego zadania. Proszę pamiętać, że przeciążenie systemu np. czasochłonnymi obliczeniami i/lub danymi wejściowymi dużych rozmiarów może skutecznie utrudnić pracę całej grupie. Po wykonaniu scenariusza należy zaprezentować działanie prowadzącemu oraz sporządzić 1 stronicowy raport, który powinien zawierać: 1. imię i nazwisko, 2. login konta w systemie BeesyCluster, 3. nazwa scenariusza, 4. opis scenariusza, 5. zrzut ekranu z edytora ze scenariuszem, 6. opis wyników/wykonania. Raport należy przesłać do prowadzącego oraz na adres [email protected] z tytułem AUI LAB 6.