Udostępnianie aplikacji klasy enterprise w oparciu o usługi Amazon Cloud

Wielkość: px
Rozpocząć pokaz od strony:

Download "Udostępnianie aplikacji klasy enterprise w oparciu o usługi Amazon Cloud"

Transkrypt

1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Informatyki Praca magisterska Udostępnianie aplikacji klasy enterprise w oparciu o usługi Amazon Cloud Magdalena Krak, Zofia Węgrzyn Promotor: dr inż. Dominik Radziszowski Kraków 2010

2 Serdecznie dziękujemy dr. inż. Dominikowi Radziszowskiemu za cenne uwagi i wsparcie dydaktyczne w trakcie pisania pracy.

3 Spis treści 1 Wstep Cel i zakres pracy Struktura pracy Zastosowane rozwiązania technologiczne Usługi Amazon Web Services Amazon SimpleDB Amazon Simple Storage Service (S3) Amazon Elastic Compute Cloud (EC2) Amazon Elastic Block Store (EBS) Bezpieczeństwo w Amazon Cloud Computing Technologia Web Service Protokół SOAP Interfejs w stylu REST Nagios JMX Spring RCP Baza Danych PostgreSQL Zarządzanie pakietami w systemie Debian GNU/Linux Projekt systemu Analiza wymagań

4 3.2 Przypadki użycia Architektura Elementy systemu Model obiektowy systemu Diagramy sekwencji Dane przetwarzane w systemie Implementacja Koncepcja rozwiązania Wykorzystane technologie Wybrane problemy techniczne i implementacyjne Weryfikacja uzyskanej funkcjonalności Instalacja nowej aplikacji dla klienta na podstawie dostarczonego pakietu instalacyjnego Monitorowanie stanu aplikacji Wykrywanie nieprawidłowości w działaniu aplikacji Reinstalacja aplikacji Wyłączenie wybranej aplikacji Wyświetlanie listy aplikacji oraz wyświetlanie informacji o aplikacjach klientów Przechowywanie i wyświetlanie informacji o klientach Tworzenie zestawienia kosztów działania aplikacji danego klienta za wybrany okres czasu Sztuczne generowanie sytuacji krytycznych na instancji Podsumowanie weryfikacji Podsumowanie Możliwości zastosowania oprogramowania Możliwości rozwoju systemu Słownik 66 2

5 8 Bibliografia 71 A Instrukcja użytkownika 73 A.1 Instalacja programu AWS Managera A.2 Widok główny - panel aplikacji A.3 Panel klientów A.4 Panel pakietów instalacyjnych A.5 Panel billingów A.6 Panel statystyk A.7 Panel błędów A.8 Odinstalowanie aplikacji AWS Managera

6 Oświadczamy, świadomi odpowiedzialności karnej za poświadczenie nieprawdy, że niniejszą pracę dyplomową wykonaliśmy osobiście i samodzielnie (w zakresie wyszczególnionym we wstępie) i że nie korzystaliśmy ze źródeł innych niż wymienione w pracy. 4

7 1 Wst ep Tematem pracy magisterskiej jest analiza problemu udostępniania aplikacji klasy enterprise przy wykorzystaniu usługi Amazon Cloud. Pojęcie aplikacji klasy enterprise jest bardzo szerokie. Najczęściej oznacza ono skomplikowane i rozbudowane oprogramowanie biznesowe. Ponieważ ma ono wpływ na działalność całego przedsiębiorstwa musi charakteryzować się wysoką niezawodnością, skalowalnością (w miarę rozrastania się firmy), elastycznością (łatwe do modyfikacji i integracji z innymi systemami komputerowymi) i stosunkowo prostym procesem administrowania i monitorowania. Z reguły oprogramowanie takie działa w sieci korporacyjnej lub w internecie i obsługuje wielu zdalnych użytkowników. Wymagania stawiane takim aplikacjom są bardzo trudne do spełnienia. Szczególnie problematyczny wydaje się wymóg skalowalności w miarę rozrastania się przedsiębiorstwa. Dlatego też oprogramowanie tego typu jest drogie. Aby zapewnić skalowalność, należałoby stworzyć potężną infrastrukturę informatyczną, której koszty mogą przewyższyć zyski z wprowadzonej innowacji. Nie wszystkie firmy na to stać. Dlatego coraz częściej do rozwiązywania tego typu problemów wykorzystuje się ideę tak zwanego przetwarzania w chmurze (ang. Cloud Computing). Jest to model oprogramowania zakładający, że użytkowane oprogramowanie może znajdować się w części lub w całości poza serwerami lokalnymi przedsiębiorstwa i jest udostępniane użytkownikom za pomocą sieci komputerowej. Zewnętrzne serwery są odpowiedzialne za nadzorowanie pracy oprogramowania biznesowego. Przedsiębiorstwo nie musi zatem tworzyć własnej infrastruktury, a jedynie wykupuje możliwość użytkowania aplikacji. Obecnie, ze względu na fakt, że istnieje coraz więcej firm, które udostępniają odpłatnie swoją infrastrukturę, wykorzystywanie modelu przetwarzania w chmurze jest niezwykle proste. Firma Amazon jest jednym z większych dostawców tego typu usług. W ramach usług Amazon Web Services można w przeciągu kilku minut stworzyć bezpieczny i skalowalny system komputerowy dla oprogramowania biznesowego. Ze względu na dostępność i łatwość użycia systemu Amazon Cloud, został on wykorzystany w ramach prac nad systemem zarządzania aplikacjami typu enterprise. Poprzez zarządzanie rozumiemy uruchamianie aplikacji klienckich w środowisku przetwarzania w chmurze oraz nadzorowanie ich pracy. 5

8 1.1 Cel i zakres pracy Celem pracy jest określenie i analiza wymagań stawianych systemom udostępniającym aplikacje klasy enterprise oraz stworzenie na bazie sporzadzonej analizy aplikacji zarzadzaj acej, zwanej dalej AWS Managerem. Celem pośrednim jest zapoznanie się z możliwościami usług Amazon Cloud i ich wykorzystanie przy tworzeniu AWS Managera. W ramach prac zostały wykonane: analiza dostępnych narzędzi i technologii pod kątem przydatności w tworzonym systemie, analiza wymagań tworzonego systemu, projekt systemu, implementacja systemu, weryfikacja działania systemu. Celem pracy nie jest stworzenie przykładowych aplikacji typu enterprise, choć przykłady takowych zostały wykorzystane w ramach testowania aplikacji zarzadzaj acej. 1.2 Struktura pracy Praca została podzielona na kilka części. W rozdziale Zastosowane rozwiązania technologiczne znajduje się opis technologii użytych przy tworzeniu AWS Managera. Zostały tu opisane: serwis Amazon z udostępnianymi przez niego usługami, system monitorowania Nagios, protokół SOAP, interfejs w stylu REST, technologia Java Management Extensions, biblioteka Spring RCP, baza danych PostgreSQL, biblioteka Hibernate oraz idea pakietów instalacyjnych systemu Debian GNU/Linux. Rozdział Architektura systemu zawiera elementy projektu, a w ramach tego: zestawienie wymagań systemu, przypadki użycia, wysokopoziomowy opis architektury systemu, elementy systemu, obiektowy model systemu oraz rozważania na temat danych przetwarzanych przez aplikację. W rozdziale następnym ( Implementacja ) zostały omówione wybrane aspekty implementacji systemu zarządzającego. Przedstawione zostały napotkane przeszkody oraz ogólne założenia implementacji. 6

9 Rozdział pod tytułem Weryfikacja funkcjonalności zawiera odpowiedź na pytanie czy i w jakim stopniu system spełnia wymagania określone w rozdziale Architektura systemu. Jednocześnie został przedstawiony podstawowy scenariusz użycia oprogramowania. W sekcji zatytułowanej Podsumowanie nakreślone zostały możliwości zastosowania utworzonego systemu, a także jego ograniczenia i ewentualne kierunki rozwoju. Wszystkie zwroty i sformułowania wymagające wyjaśnienia znajdują się w rozdziale Słownik. Źródła wiedzy wykorzystane podczas pisania pracy zostały wymienione w rozdziale Bibliografia. Do pracy została dołączona instrukcja dla użytkownika AWS Managera (rozdział Załącznik ). 7

10 2 Zastosowane rozwiązania technologiczne Tworzony system zarządzania aplikacjami, by spełnić założone wymagania funkcjonalne, korzysta z wielu technologii i mechanizmów programistycznych. Idee ich działania zostały przedstawione w niniejszym rozdziale wraz z nakreśleniem, w jaki sposób zostały zaadoptowane do potrzeb AWS Managera. 2.1 Usługi Amazon Web Services Amazon Web Services jest zestawem serwisów sieciowych udostępnianych przez firmę Amazon, które razem tworzą platformę dla przetwarzania w chmurze. W ramach swoich usług Amazon oferuje między innymi: możliwość stworzenia wirtualnego hosta wraz z systemem operacyjnym, możliwość przechowywania dużych ilości danych i udostępniania ich przez sieć, możliwość dostępu do bazy danych. Poprzez swoje usługi Amazon Web Services ułatwia proces tworzenia i zarządzania aplikacjami dostępnymi zgodnie z zasadami modelu przetwarzania w chmurze. W kolejnych punktach przedstawione zostały zarówno wykorzystywane w systemie AWS Managera usługi Amazon Cloud Computing, jak i te, które w obecnej wersji systemu nie są używane, ale istnieje możliwość zastosowania ich w przyszłości Amazon SimpleDB Amazon SimpleDB jest rozproszoną bazą danych napisaną w Erlangu. Nie jest to baza relacyjna. Jej struktura składa się z tak zwanych domen (odpowiednik 8

11 tabeli w relacyjnych bazach danych), które są kolekcjami elementów zwanych items. Z kolei każdy element item (odpowiednik rekordu w relacyjnych bazach danych) jest reprezentowany przez zbiór par atrybut-wartość (odpowiednik kolejnych pól rekordu w bazie danych). Struktura danych nie jest określona (nie ma schematu bazy danych) i może ulec zmianie w dowolnym momencie, co daje dużą elastyczność i ułatwia proces wprowadzania zmian. Ponadto wszystkie operacje odczytu i zapisu danych wykonywane są za pomocą prostego API w formie serwisu sieciowego. Dużą zaletą tego rozwiązania jest ogromna skalowalność i wysoka dostępność (ze względu na rozproszenie geograficzne). Rozproszenie bazy polega na tym, że dane są przechowywane jednocześnie w wielu miejscach. Wiąże się to z koniecznością replikacji i duplikacji w celu zachowania spójności danych. W zamian jednak otrzymany system jest bezpieczniejszy i mniej podatny na awarie. Programiści Amazon ułatwili też w dużej mierze zarządzanie bazą automatyzując szereg funkcji (na przykład indeksowanie). Nie jest to relacyjna baza danych, dlatego trzeba mieć na uwadze, że bardziej zaawansowane funkcje typowe dla relacyjnych baz danych (np. zaawansowane transakcje lub operacja join) nie są w tym przypadku dostępne Amazon Simple Storage Service (S3) Amazon S3 jest systemem udostepniaj acym nieograniczone przestrzenie dyskowe na potrzeby przechowywania dowolnych danych. Dane można przesłać do Amazon S3 poprzez interfejs web service owy i w ten sam sposób je odczytać czy usunać. Dzieki przesłaniu danych do Amazon S3 są one dostepne w każdej chwili z dowolnego miejsca na świecie. W chwili pisania pracy S3 umożliwiało przechowywanie obiektów o wielkości od 1 bajta do 5 gigabajtów. Nie ma natomiast limitu ilości obiektów, które można przechowywać w S3. Zarzadzanie przechowywanymi obiektami odbywa sie z wykorzystaniem unikalnych kluczy (1 klucz = 1 obiekt). Nie ma struktury katalogów (zupełnie płaski model przechowywania danych). Wszystkie obiekty sa przechowywane w kontenerach (buckets). Klucz jednoznacznie identyfikuje obiekt w jego kontenerze, a wiec zestawienie kontener-klucz daje unikalny identyfikator obiektu. Dane moga mieć nadane prawa dostepu (private - wymagana autentykacja, public - dane dostepne dla wszystkich). Moga również być dostepne poprzez adres URL. W systemie AWS Managera Amazon S3 jest wykorzystywany do przechowywania plików z obrazami instancji (AMI) oraz pakietów instalacyjnych aplikacji. Do serwisu S3 niezbędny jest dostęp z wnętrza aplikacji AWS Managera. Zamiast tworzyć niskopoziomowe zapytania wykorzystana została istniejąca biblioteka. Wybrana została popularna JetS3[2]. Biblioteka jest darmowa, przetestowana i stabilna. Przykrywa wszelkie zawiłości komunikacji, w wyniku czego dostęp do S3 polega na wywoływaniu funkcji bibliotecznych. 9

12 2.1.3 Amazon Elastic Compute Cloud (EC2) Amazon Elastic Compute Cloud (Amazon EC2) jest usługą sieciową (ang. Web Service) umożliwiającą uruchamianie serwera na zwirtualizowanej infrastrukturze i zarządzanie tym serwerem. Odbywa się to przy pomocy programistycznego API lub dedykowanych do tego celu narzędzi (jak narzędzia konsolowe czy AWS Management Console). Nowo powstały serwer wraz z systemem operacyjnym jest w nomenklaturze Amazon AWS nazywany instancją. Amazon EC2 umożliwia programistom zapewnienie skalowalności dostarczanych usług. W sposób prosty i szybki pozwala na uruchomienie nowych instancji i zwiększenie pojemności serwerów. Instancje EC2 posiadają różną moc obliczeniową, mierzoną w jednostkach obliczeniowych EC2 (EC2 Compute Units). Standardowa instancja udostępniana przez Amazon EC2, dostarczająca mocy równej 1 EC2 Compute Unit, to maszyna 32-bitowa z 1,7 GB pamięci oraz dyskiem o pojemności 160 GB (dane ze stycznia 2009 roku). Użytkownicy Amazon EC2 są rozliczani za czas działania instancji oraz za transfer danych z i do serwerów. Korzystanie z Amazon EC2 polega na stworzeniu obrazu systemu AMI (Amazon Machine Image), umieszczeniu obrazu w Amazon Simple Storage Service (S3), skonfigurowaniu sieci i zabezpieczeń oraz uruchamianiu, monitorowaniu i wyłączaniu instancji za pośrednictwem API programistycznego lub dedykowanych narzędzi. Obrazy systemu AMI składają się z systemu operacyjnego, aplikacji, bibliotek, danych i konfiguracji. Amazon EC2 pozwala zarówno na tworzenie własnych obrazów AMI, jak i na wykorzystanie publicznie dostępnych szablonów AMI opartych na systemach Windows, Red Hat, Debian, Ubuntu czy OpenSolaris. W AWS Managerze serwis EC2 jest wykorzystywany do udostępniania klientom ich aplikacji. Z jego pomocą, gdy zachodzi taka potrzeba, można uruchomić instancję z dogodnym obrazem systemu operacyjnego (wraz z zestawem narzędzi, programów i bibliotek), a na tak utworzonym systemie zainstalować i uruchomić aplikację klienta. Tworzenie nowych instancji standardowo odbywa się przy pomocy uruchamianych z linii komend aplikacji lub przy użyciu AWS Management Console - narzędzia dostępnego z poziomu przeglądarki internetowej. Takie podejście jest jednak niewygodne z punktu widzenia programisty. W tym przypadku najlepiej połączyć się z serwisem EC2 bezpośrednio, poprzez protokół SOAP lub interfejs QUERY. Zamiast samemu pisać niskopoziomowe zapytania możliwe jest skorzystanie z istniejących bibliotek. Praktycznie każdy popularny język programowania wysokiego poziomu posiada co najmniej jedną bibliotekę obsługującą komunikację z serwisem EC2. W Javie taką biblioteką jest Typica[1]. Jest to proste API, nie tylko do EC2, ale także do SimpleDB, SQS i DevPay LS. Do komunikacji używany jest interfejs QUERY (pod tą nazwą kryje się podejście REST opisane poniżej). Typica jest darmowa, dobrze przetestowana i posiada wsparcie ze strony jej twórców. Z jej pomocą operacje takie 10

13 jak utworzenie, czy wstrzymanie instancji wykonywane są poprzez wywołanie odpowiedniej funkcji Amazon Elastic Block Store (EBS) Amazon Elastic Block Store jest systemem oferującym wysoce niezawodny sposób przechowywania danych na potrzeby instancji EC2. Służy do zapisywania i odczytywania danych w postaci blokowej. EBS jest używany podobnie jak zwykłe urządzenia blokowe. Niezawodność zapewniona jest poprzez automatyczną replikację każdego dysku EBS. EBS jest dedykowany do wykorzystania w aplikacjach wymagających dostępu do systemu plików lub baz danych. Dyski EBS tworzone są w tzw. strefach dostępności (Availability Zone). Po utworzeniu dysku może on być dołączony do instancji EC2 działającej w tej samej strefie. Dołączony do instancji dysk widoczny jest w postaci urządzenia blokowego. Może on być następnie poddany operacjom typowym dla urządzeń blokowych - na przykład sformatowany lub zamontowany. Jedna instancja może korzystać z wielu dysków EBS, natomiast pojedynczy dysk może być w danym momencie podłączony tylko do jednej instancji. Po odłączeniu dysku EBS od instancji dane znajdujące się na nim nie są w żaden sposób modyfikowane. Może on zostać podłączony do kolejnej instancji. Wobec tego, w przypadku awarii instancji, dysk z całą swoją zawartością może być dołączony do innej instancji w danej strefie bez utraty danych. Amazon udostępnia możliwość tworzenia obrazu dysku (snapshotu) danego zasobu dyskowego w EBS. Może on być następnie przechowywany i wykorzystany w celu ochrony danych lub na przykład utworzenia innego EBS na jego podstawie. Snapshoty EBS są przyrostowe, tzn. w kolejnych snapshotach zapisywane są tylko te bloki, które uległy zmianie od ostatniego wykonanego snapshotu. Wykonywanie snapshotów dysku co pewien ustalony czas i archiwizowanie ich w S3 umożliwia w przypadku awarii instancji uruchomienie aplikacji na nowej instancji, z zachowaniem spójnych danych aplikacji znajdujących się w ostatnio wykonanym snapshocie. System EBS wykorzystywany jest w systemie AWS Managera w celu podłączenia dysku do instancji, na której zainstalowana jest aplikacja klienta. W chwili obecnej nie jest używany mechanizm snapshotów Bezpieczeństwo w Amazon Cloud Computing Temat bezpieczeństwa systemu Amazon Cloud Computing można podzielić na dwa zagadnienia. Pierwsze dotyczy niezawodności działania. Drugie - ochrony przed nieuprawnionym dostępem do wykorzystywanych serwisów (autentykacja i autoryzacja). Pierwszy z tych warunków jest zapewniony poprzez fizyczną architekturę systemu, która 11

14 gwarantuje wysoką dostępność. Pojedyncze centra danych systemu Amazon są, jak zapewniają ich twórcy, bardzo dobrze zabezpieczone przed awarią. Dodatkowo Amazon posługuje się wieloma takimi centrami, rozproszonymi po całym świecie. Nawet gdyby jedno centrum przestało spełniać swoje funkcje, rolę tę przejmą inne ośrodki. Drugie zagadnienie poruszane w tej sekcji dotyczy ochrony samych serwisów przed nieuprawnionym dostępem i naruszeniem prywatności. Za każdym razem, gdy użytkownik systemu Amazon próbuje skorzystać z jednego z serwisów musi udowodnić swoją tożsamość. W tym celu wykorzystuje się jeden z trzech mechanizmów: algorytm symetryczny z tajnym kluczem, certyfikat X.509 lub Amazon EC2 Key Pairs. Wybór mechanizmu zależy od rodzaju komunikacji oraz wykorzystywanego API (do wyboru między innymi REST, SOAP czy narzędzia konsolowe Amazon). Poniżej opisane zostały główne idee zabezpieczeń w Amazon AWS. Algorytm symetryczny z wykorzystaniem tajnego klucza Jest to jedna z łatwiejszych metod szyfrujących. Pojedynczy tajny klucz (ang. secret key) znany jest obu stronom komunikacji. Klucz ten jest wykorzystywany zarówno do szyfrowania, jak i deszyfrowania. Rysunek 2.1: Zasada działania szyfrowania symetrycznego. W celu identyfikacji użytkownika Amazon wykorzystuje dwa elementy: Access Key ID - identyfikator użytkownika, który zostaje wysłany przy każdej próbie dostępu do serwisu razem z zapytaniem. Ten element nie jest tajny. Secret Access Key - tajny klucz zawsze skojarzony z konkretnym identyfikatorem użytkownika. Fizycznie jest to tylko długi ciąg znaków (nie plik jak w przypadku certyfikatów), który użytkownik wykorzystuje do cyfrowego podpisania zapytania do serwisu Amazon. Klucz jest tajny i nie może być przekazany osobie postronnej. Zapytanie do Amazon zawiera zarówno Access Key ID, jak i cyfrowy podpis użytkownika wygenerowany z użyciem tajnego klucza. Na podstawie identyfikatora Amazon wyszukuje 12

15 odpowiadający mu tajny klucz. Klucz zostaje wykorzystany do sprawdzenia podpisu, co ostatecznie prowadzi do potwierdzenia lub też nie jego autentyczności. Certyfikat X.509 To podejście oparte jest na idei kryptografii asymetrycznej, w której używana jest para kluczy szyfrujących: publiczny i prywatny. Dodatkowe założenie mówi, że klucz prywatny można w prosty sposób odtworzyć na podstawie klucza publicznego. Klucz publiczny używany jest do szyfrowania wiadomości, a klucz prywatny do jej odczytania. Rysunek 2.2: Zasada działania szyfrowania asymetrycznego. Amazon w celu udostępnienia tego mechanizmu przekazuje dwa pliki: X.509 Certificate - certyfikat zawierający klucz publiczny i dodatkowe metadane. Jest on następnie dodawany do każdego zgłoszenia do serwisu Amazon i nie jest tajny. Private Key - klucz prywatny skojarzony z powyższym certyfikatem. Wykorzystywany jest do stworzenia cyfrowego podpisu, który jest przesyłany razem ze zgłoszeniem. Klucz prywatny jest tajny i nie może być przekazany osobie postronnej. Do Amazon AWS przesyła się wiadomość z certyfikatem i cyfrowym podpisem utworzonym na podstawie klucza prywatnego. Amazon używa klucza publicznego zawartego w certyfikacie do odczytania podpisu i sprawdzenia czy właściwy użytkownik przesłał zgłoszenie. Jednocześnie jest też sprawdzany certyfikat. Porównuje się go z kopią przechowywaną przez system Amazon. Zarówno certyfikat, jak i klucz są przekazywane użytkownikowi w postaci plików niezaszyfrowanych (PEM-encoded). Po przekazaniu klucza prywatnego nie jest on przechowywany po stronie Amazon i posiada go tylko użytkownik. Istnieje też możliwość przekazania swoich kluczy do Amazon AWS. W tym celu wysyła się sam certyfikat w formacie PEM (bez klucza prywatnego, który zostaje u użytkownika). 13

16 Para kluczy dostępu do instancji EC2 Para kluczy dostępu do instancji EC2 (Amazon EC2 key pair) jest wykorzystywana za każdym razem, gdy włączana jest instancja. Później mechanizm ten może (ale nie musi) być używany do uzyskania dostępu do instancji (na przykład przy dostępie z wykorzystaniem protokołu SSH). Klucze można generować z wykorzystaniem narzędzi AWS (na przykład Management Console). Możliwe jest zarządzanie dowolną ilością takich kluczy. Każda instancja może posiadać osobny zestaw kluczy. Można również współdzielić jeden zestaw pomiędzy wiele instancji. Istotne jest, aby nie zgubić klucza prywatnego, gdyż wtedy nie będzie możliwości dostania się na instancję. Para kluczy (key pair) zawiera: nazwę key pair - łatwa do zapamiętania nazwa pary kluczy. klucz prywatny - klucz w formie pliku, który jest lokalnie przechowywany w systemie, z którego użytkownik chce się łączyć z instancją. Klucz ten jest tajny i posiada go jedynie użytkownik. klucz publiczny - klucz przechowywany przez AWS. Po utworzeniu instancji przy użyciu konkretnego key pair AWS tworzy kopię klucza publicznego na instancji. W rezultacie tylko osoba, która posiada klucz prywatny może się do niej dostać. Warto wspomnieć o tym, że odkąd w ramach Amazon AWS powstało narzędzie Management Console, wiele z operacji można wykonywać poprzez przeglądarkę internetową. W takim wypadku autentykacja polega na zwykłym logowaniu - podawany jest login i skojarzone z nim hasło, gdzie login jest adresem użytkownika zarejestrowanego w Amazon AWS. Trzeba pamiętać, że żadne z zabezpieczeń serwisów AWS nie zagwarantuje bezpieczeństwa instancji. Jest to jednak zupełnie inne zagadnienie, które zostanie omówione w kolejnych rozdziałach. 2.2 Technologia Web Service Web services, czyli usługi sieciowe, udostępniają swoje funkcje przez sieć. Usługi takie mają interfejs niezależny od platformy lub implementacji. Dzięki temu klient może być napisany przy pomocy dowolnych technologii (różne języki programowania, różne systemy operacyjne). Dostarczane metody i przyjmowane przez nie parametry są dokładnie zdefiniowane w postaci opisu interfejsu (zazwyczaj w pewnym języku opisu, na przykład WSDL). Taki interfejs umożliwia zdalne wywołanie metod, a dzięki temu współpracę różnych aplikacji przez sieć (nawet, gdy aplikacje wykorzystują różne technologie). 14

17 Usługi sieciowe są coraz częściej wykorzystywane przy tworzeniu złożonych systemów informatycznych. Cała infrastruktura Amazon AWS opiera się na web service ach. W przypadku Amazona udostępniane są dwie możliwości dostępu do usług sieciowych: poprzez zatwierdzony przez W3C protokół SOAP lub z użyciem interfejsu w stylu REST. Oba zostały opisane poniżej. Z punktu widzenia projektu nie ma znaczenia, który z nich zostanie wykorzystany przy implementacji AWS Managera. Co więcej, niskopoziomowe wywołania metod usług sieciowych Amazon AWS nie zostały wykorzystane bezpośrednio. Istnieje bowiem szeroka gama bibliotek i narzędzi zasłaniających takie wywołania, a w konsekwencji ułatwiających implementację Protokół SOAP Niegdyś skrót SOAP odnosił się do Simple Object Access Protocol, czyli protokół zdalnego dostępu do obiektów. Od wersji 1.2 nie używa się jednak tego rozwinięcia. SOAP wykorzystuje język XML do przekazywania zdalnych wywołań usług. Najczęściej takie wywołanie jest transportowane przy użyciu protokołu HTTP. Koperta SOAP, gdy jest przesyłana do serwisu, zawiera nazwę usługi i parametry wywołania metody. Następnie rezultat (także w postaci koperty SOAP) zwracany jest do aplikacji wywołującej. Budowa koperty SOAP jest ściśle określona i - aby komunikacja z serwisem przebiegła prawidłowo - aplikacja wywołująca musi wiedzieć, jaką kopertę SOAP wysłać. W celu uproszczenia całego procesu korzysta się z języka WSDL (Web Service Description Language - Język Opisu Usługi Sieciowej), który jednoznacznie definiuje interfejs serwisu. Proces komunikacji przy użyciu protokołu SOAP i opisu WSDL składa się z kilku etapów: po stronie Serwisu Sieciowego ustala się interfejs i opisuje go w formacie WSDL, Klient Serwisu Sieciowego uzyskuje opis interfejsu Serwisu Sieciowego w formacie WSDL, Klient Serwisu Sieciowego w oparciu o opis WSDL tworzy struktury potrzebne do komunikacji z Serwisem Sieciowym, Klient Serwisu Sieciowego rozpoczyna komunikację z Serwisem Sieciowym. W wielu językach programowania istnieje możliwość generowania kodu źródłowego na bazie opisu WSDL, co może znacząco przyspieszyć implementację Interfejs w stylu REST REST(REpresentational State Transfer) jest stosunkowo młodą alternatywą dla SOAP. REST nie stanowi standardu, jest to raczej idea wykorzystania istniejących mechanizmów HTTP w nowy sposób. Polega na prostym przesyłaniu XML a z wykorzystaniem protokołu HTTP. 15

18 Usługa jest wywoływana poprzez zapytanie do dokładnego adresu URL. Metodą HTTP (GET, POST, PUT i DELETE) przesyłane są parametry wywołania. Usługa odpowiada zwracając zwykły dokument XML z wynikami zapytania. Największą zaletą tzw. serwisów RESTful jest ich prostota. Komunikacja przebiega w znany i sprawdzony sposób. Komunikaty (w postaci XML) są mniejsze i bardziej zrozumiałe niż koperty SOAP. W przeciwieństwie do protokołu SOAP, REST nie wykorzystuje definicji interfejsu (np. w postaci opisu w formacie WSDL). Ponieważ nie ma żadnego standardu opisującego, jakie komunikaty należy przesyłać, twórcy narzędzi programistycznych nie wspierają tego podejścia tak, jak ma to miejsce w przypadku SOAP. W rezultacie twórca oprogramowania sam musi zadbać o komunikację. Mimo to podejście REST staje się coraz bardziej popularne. 2.3 Nagios Nagios jest bezpłatnym (licencja GNU - General Public License) systemem służącym do monitorowania zasobów sieciowych. Został zaprojektowany do działania pod systemem operacyjnym Linux. Monitorowane zasoby obejmują: zasoby sieciowe (przepustowość łącza, dostępność portów itp.), zasoby systemowe (obciążenie procesora, zużycie przestrzeni dyskowej, zużycie pamięci), inne zasoby (np. aplikacje). Monitorowane mogą być zasoby zarówno lokalne, jak i zdalne. Nagios posiada modułową architekturę, a głównymi i najczęściej wykorzystywanymi w praktyce modułami są core Nagios, NRPE i liczne Pluginy. Główna aplikacja, tzw. core Nagios, to centrala zbierająca dane monitorowanych zasobów. W core Nagios użytkownik decyduje, jakie dane mają być nadzorowane, a także definiuje wartości WARNING i CRITICAL, po których przekroczeniu core Nagios zgłasza zaistnienie sytuacji nadzwyczajnej dla danego zasobu. Zazwyczaj stosuje się jedną instalację core Nagios, która łączy się z pewną ilością zdalnych hostów. Niektóre zasoby mogą być monitorowane bez wprowadzania żadnych zmian na zdalnych hostach (na przykład dostępność SSH, HTTP czy FTP). W przypadku badania lokalnych zasobów (jak przestrzenie dyskowe czy zużycie procesora) wymagane jest, by na hostach zdalnych były zainstalowane tzw. Nagios NRPE - moduły zbierające dane lokalne i przesyłające je na żądanie do core Nagios. 16

19 Dane monitorowane są przy pomocy programów zwanych Pluginami Nagiosa. Dla przykładu, za zebranie informacji o zasobach dyskowych odpowiada Plugin o nazwie check-disk. Gdy zachodzi potrzeba sprawdzenia przestrzeni dyskowych, program ten jest wywoływany przez core Nagios (jeżeli dotyczy to lokalnego względem core Nagios hosta) lub przez odpowiednie NRPE (jeżeli dotyczy to zdalnego hosta). W standardzie Nagiosa udostępnionych jest kilkadziesiąt Pluginów. Nic nie stoi jednak na przeszkodzie, by w razie potrzeby stworzyć własny Plugin nadzorujący nietypowe zasoby. Wystarczy napisać aplikację, która przestrzega kilku standardów Nagiosa. Idea działania systemu Nagios została przedstawiona na Rysunku 2.3. Rysunek 2.3: Przykładowe wykorzystanie systemu Nagios do monitorowania zdalnego hosta. W systemie monitorowany jest jeden zdalny system komputerowy. Monitorowane są trzy elementy: dostęp poprzez protokół HTTP, obciążenie procesora oraz zajętość urządzeń blokowych (dysków). Ponieważ dwa z monitorowanych zasobów są tak zwanymi zasobami lokalnymi, na monitorowanym komputerze jest zainstalowany moduł NRPE, który poprzez protokół SSL łączy się z aplikacją Nagios i przekazuje informacje o nadzorowanych parametrach. Usługa HTTP jest monitorowana bezpośrednio przez aplikację Nagios. W systemie zarządzania aplikacjami Nagios został wykorzystany do monitorowania instancji i znajdujących się na nich aplikacji. Do tego celu użyte zostały pluginy istniejące w standardzie. Nie został wykorzystany bezpośrednio core Nagios. Tę rolę przejęła aplikacja AWS Manager, która sama pobiera, przechowuje i porządkuje dane o monitorowanych zasobach na instancjach. Na każdej instancji został natomiast zainstalowany NRPE z zestawem standardowych Pluginów. Odpowiednie dane są pobierane przez Agentów zainstalowanych na instancjach i przesyłane do AWS Managera. 2.4 JMX Skrót JMX odnosi się do technologii Java Management Extensions (Rozszerzenie Javy dla Zarządzania). Jest to część podstawowej wersji Javy (Java SE - Standard Edition) wprowadzona od wersji 5.0. JMX umożliwia zarządzanie zasobami, którymi mogą być aplikacje, urządzenia czy usługi. Zarządzana i monitorowana może być również sama Wirtualna Maszyna Javy (Java Virtual Machine). Zarządzane elementy są reprezentowane przez tak zwane MBeany (Managed Bean - zarzą- 17

20 dzane ziarno ). MBean jest obiektem w języku Java, który musi spełniać pewne wymagania składniowe (na przykład wszystkie atrybuty zdefiniowane poprzez funkcje) i który opakowuje pewien zasób (choć może być zasobem sam w sobie). Taki obiekt jest rejestrowany w serwerze MBean. Tworzenie serwera i rejestracja MBeana odbywa się poprzez wywołanie kilku prostych metod w języku Java. Potencjalny klient może znaleźć interesujący go MBean znając lokalizację serwera MBean i nazwę obiektu, pod którym został on zarejestrowany. MBeany mogą być udostępniane dla zdalnych klientów, a komunikacja pomiędzy klientem a zarządzanymi obiektami może być zabezpieczona mechanizmami autentykacji. Użytkownik mający dostęp do serwera MBean, ma również dostęp do samego MBeana i reprezentowanych przez niego zasobów. Może on wykonywać metody MBeana, ustawiać i odczytywać dostępne atrybuty. W technologii JMX istnieje również mechanizm notyfikacji. Może on być użyty na przykład do powiadamiania o zmianie stanu atrybutów. Zgodnie ze specyfikacją JMX wyróżniamy kilka różnych typów MBeanów (Standard MBeans, Dynamic MBeans, Open MBeans, Model MBeans, MXBeans). Najczęściej jednak wykorzystuje się standardowe MBeany lub też MXBeany. W niniejszym projekcie technologia JMX została użyta w celu skomunikowania głównego modułu AWS Managera z aplikacjami Agentów zainstalowanymi na zdalnych instancjach. Wykorzystywane są obiekty typu MXBean, a komunikacja przebiega przy użyciu mechanizmu RMI (Remote Method Invocation). Każdy rozkaz płynący od AWS Managera do Agenta jest przekazywany za pośrednictwem JMX. Agenci wysyłają regularnie informacje o zarządzanych przez nich instancjach do AWS Managera w postaci notyfikacji. 2.5 Spring RCP Spring Framework[5] jest frameworkiem (szkieletem aplikacji) służącym do tworzenia oprogramowania w języku Java. Framework jest szablonem dostarczającym gotowych narzędzi i wzorców, które mają za zadanie wspomagać pracę programistów i przyczyniają się do wzrostu wydajności procesu tworzenia oprogramowania. Spring Framework posiada wielowarstwową budowę. Składa się z wielu podprojektów, które łączy kontener IoC (Inversion of Control). Taka architektura pozwala na elastyczne korzystanie z rozwiązań dostarczanych przez Springa. Spring Framework składa się z modułów: kontener IoC Kontener IoC (Inversion of Control - odwrócenie sterowania) jest głównym elementem frameworka. IoC jest wzorcem projektowym, zgodnie z którym zarządzanie zależno- 18

21 ściami między obiektami należy do kontenera IoC. W kontenerze tym umieszczane są obiekty zwane beanami (bean - klasa zgodna ze specyfikacją JavaBeans). Kontener IoC umożliwia definiowanie zależności między beanami przy użyciu plików konfiguracyjnych. Realizacja IoC odbywa się najczęściej poprzez wstrzykiwanie zależności (dependency injection). Wstrzykiwanie zależności ułatwia tworzenie aplikacji, a zwłaszcza powtarzalnych fragmentów, które są wykorzystywane w różnych miejscach programu. wsparcie dla AOP (Aspect Oriented Programming) AOP (programowanie aspektowe) jest metodą tworzenia oprogramowania mającą na celu modularyzację kodu. Aspektem nazywamy wydzielony fragment aplikacji, realizujący ściśle określoną funkcjonalność, który można łączyć z innymi częściami programu. Głównymi sposobami wykorzystania aspektów są: monitorowanie wydajności i stanu aplikacji, kontrola dostępu czy zarządzanie transakcjami. Zastosowanie AOP przyczynia się do uproszczenia kodu aplikacji poprzez redukcję powtarzających się części programu oraz do powstawania fragmentów kodu realizujących dobrze zdefiniowaną funkcję i gotowych do wielokrotnego użycia. zarządzanie transakcjami Spring dostarcza generyczną warstwę abstrakcji dla zarządzania transakcjami. Dzięki jej zastosowaniu możliwe jest wykorzystanie różnych metod zapewnienia spójności transakcyjnych danych oraz dołączanie własnych komponentów zarządzających transakcjami (ang. transaction manager). abstrakcja DAO, Warstwa dostępu do danych - DAO (Data Access Object) ułatwia programowanie komunikacji z bazą danych i obsługi błędów niezależnie od technologii używanej do dostępu do danych. wsparcie dla JDBC Warstwa abstrakcji JDBC (Java DataBase Connectivity - łącze do baz danych w języku Java) dostarcza standardowego mechanizmu JDBC oraz hierarchicznego mechanizmu wyjątków. Zastosowanie takiego podejścia znaczne ogranicza ilość kodu aplikacji potrzebnego do obsługi błędów związanych z dostępem do danych. integracja z narzędziami do mapowania O/R, Spring zawiera warstwy wspierające popularne mapowania obiektowo-relacyjne (JDO, Hibernate). implementacja wzorca MVC Spring dostarcza implementacji wzorca MVC (Model-View-Contreller, czyli Model- Widok-Kontroler). MVC pozwala na oddzielenie interfejsu użytkownika od warstwy logicznej aplikacji. 19

22 zarządzanie kontekstem aplikacji Spring Context dostarcza takich funkcjonalności, jak internacjonalizacja, obsługa zdarzeń cyklu życia aplikacji, walidacja, szeregowanie zadań. Framework może być wykorzystywany zarówno przy tworzeniu aplikacji internetowych, jak i programów typu gruby klient. Spring RCP (Spring Rich Client Project)[6] jest podprojektem frameworka Spring służącym do budowania aplikacji desktopowych. Spring RCP ułatwia konstruowanie aplikacji wykorzystujących do prezentacji graficznej bibliotekę Swing poprzez wprowadzenie funkcjonalności frameworka Spring. Dodatkowo Spring RCP pomaga w tworzeniu zaawansowanych interfejsów użytkownika. Posiada bowiem wsparcie dla mechanizmów takich jak na przykład kreatory, walidacja wprowadzanych danych, internacjonalizacja, sortowanie, konstruowanie stron pomocy. Konfiguracja odbywa się przy pomocy plików.xml. W plikach tych definiowane są takie rzeczy jak wygląd menu czy pasków narzędzi, akcje podpięte do przycisków czy ułożenie okien. Ponadto Spring RCP ułatwia zarządzanie akcjami i obsługę zdarzeń. 2.6 Baza Danych PostgreSQL PostgreSQL jest bazą typu RDBMS (Related Database Management System). Jest to system zarządzania relacyjną bazą danych, zgodną ze standardem SQL. PostgreSQL zawdzięcza swoją popularność głównie temu, że może być używany bezpłatnie na licencji BSD Open Source, a także temu, że współpracuje z najczęściej używanymi systemami operacyjnymi (typu Linux, Windows, Unix i Mac). Udostępnia bardzo szeroki wachlarz zaawansowanych opcji. Główne cechy systemu baz danych PostgreSQL: umożliwia tworzenie procedur i funkcji w różnych językach programowania, umożliwia tworzenie wyzwalaczy (ang. trigger), zapewnia transakcyjność, dostęp do bazy może być chroniony nie tylko parą login-hasło, ale także poprzez SSPI, PAM i dopasowanie adresu IP osoby zdalnie łączącej się z bazą, daje możliwość replikacji danych, posiada wygodne narzędzia administracyjne, wprowadza automatyczne generowanie kluczy na podstawie tak zwanych sekwencji. 20

23 Największym konkurentem dla PostgreSQL wśród bezpłatnych systemów zarządzania bazą danych jest popularny MySQL. Obie bazy udostępniają podobne funkcje i różnią się jedynie na poziomie bardzo zaawansowanych opcji. W niniejszym projekcie został wybrany system PostgreSQL ze względu na doświadczenia autorów w tworzeniu oprogramowania z wykorzystaniem właśnie tej bazy danych. Aplikacja AWS Managera wykorzystuje bazę PostgreSQL do przechowywania informacji o klientach, paczkach instalacyjnych i zainstalowanych aplikacjach. AWS Manager łączy się z PostgreSQL poprzez bibliotekę Hibernate[3]. Wszystkie operacje są wykonywane na obiektowym modelu danych, który Hibernate automatycznie mapuje na postać relacyjną. 2.7 Zarządzanie pakietami w systemie Debian GNU/Linux Pakietem instalacyjnym (ang. software package) nazywamy stosowany w systemach typu unix pakiet zawierający aplikację klienta. Pakiet instalacyjny ułatwia i przyspiesza proces dystrybucji, instalacji, aktualizacji i odinstalowania programu. W systemie Debian GNU/Linux występują dwa typy pakietów instalacyjnych: pakiety binarne, składające się z plików wykonywalnych, konfiguracyjnych, stron pomocy, informacji o prawach autorskich i pozostałej dokumentacji. Pakiety te mogą być rozpakowywane, aktualizowane i usuwane przy pomocy specjalnie do tego celu przeznaczonego narzędzia zwanego menadżerem pakietów. Formatem pakietów binarnych jest.deb. pakiety źródłowe, zawierające plik opisujący pakiet źródłowy, archiwum z oryginalnym skompresowanym źródłem oraz plik opisujący zmiany związane z systemem Debian wprowadzone w oryginalnym źródle. Pakiet.deb pozwala na określenie powiązań i zależności pomiędzy instalowanym programem, a pozostałymi elementami systemu, takimi jak biblioteki i programy zależne. Rozwiązanie to sprawia, że po pomyślnej instalacji mamy pewność, iż program posiada wszystkie niezbędne do prawidłowego działania składniki. Narzędzie dpkg jest podstawowym menadżerem pakietów w Debianie. Przy jego pomocy możliwe jest wykonanie podstawowych operacji na pakietach.deb: instalacji, budowania, usuwania i zarządzania pakietami. Zaawansowane narzędzia (na przykład APT - Advanced Packaging Tool) umożliwiają przeprowadzenie operacji bardziej skomplikowanych, takich jak automatyczne rozwiązywanie zależności i konfliktów pomiędzy pakietami. 21

24 W systemie AWS Managera aplikacje klientów mają postać pakietów binarnych systemu Debian. Do ich instalacji wykorzystywany jest manager dpkg. 22

25 3 Projekt systemu Niniejszy rozdział zawiera projekt systemu zarządzania aplikacjami. Opracowanie projektu wymagało przeprowadzenia analizy wymagań, jakie są stawiane przed tworzonym systemem. Określone zostały potrzeby użytkownika AWS Managera i na ich bazie opracowana została architektura aplikacji zarządzającej. Zostały opisane najważniejsze elementy systemu (jego moduły) wraz z wykorzystywanymi w nich danymi. 3.1 Analiza wymagań Podstawowym zadaniem projektowanej aplikacji jest instalowanie i uruchamianie aplikacji klientów oraz nadzorowanie ich pracy. W celu udostępnienia takiej funkcjonalności system zarządzania aplikacjami powinien umożliwić: instalację nowej aplikacji dla klienta. Aplikacje uruchamiane są na zdalnych serwerach (instancjach) działających w środowisku Amazon AWS. Za każdym razem, gdy zachodzi potrzeba zainstalowania nowej aplikacji dla klienta, musi zostać dla niej stworzona w środowisku Amazon AWS nowa instancja na podstawie obrazu systemu (AMI). Na obraz AMI składa się system operacyjny oraz biblioteki i programy na nim zainstalowane. Po uruchomieniu instancji system zarządzania aplikacjami musi zapewnić jej niezbędne zasoby (jak na przykład przestrzeń dyskowa). instalację aplikacji na podstawie dostarczonego przez klienta pakietu instalacyjnego. System zarządzania aplikacjami powinien umożliwić użytkownikowi dodawanie nowych pakietów z aplikacjami do systemu, zmianę ich danych oraz ich usuwanie. Podczas instalacji aplikacji AWS Manager musi zapewnić możliwość wyboru pakietu instalacyjnego. Proces instalacji powinien przebiegać automatycznie, bez ingerencji użytkownika AWS Managera. Pakiety instalacyjne aplikacji muszą być tak skonstruowane, by to umożliwić. monitorowanie stanu aplikacji. W trakcie pracy aplikacji jej stan powinien być stale monitorowany. Wynika to z dwóch powodów. Pierwszym jest wymaganie zapewnienia stałej dostępności aplikacji. Drugi powód monitorowania wynika z potrzeby zbierania 23

26 informacji o zasobach zużytych przez aplikację. Zebrane dane są potrzebne w celach statystycznych, a także do tworzenia zestawień kosztów poniesionych przez klientów. Do monitorowanych elementów powinny należeć: zużycie zasobów pami eciowych przez aplikacj e, zużycie zasobów dyskowych przez aplikacj e, dostępność zasobów sieciowych, zużycie procesora, inne. wykrywanie nieprawidłowości w działaniu aplikacji. Błędy działania aplikacji muszą być na bieżąco zgłaszane użytkownikowi AWS Managera. Umożliwi to użytkownikowi podjęcie określonego działania - wyłączenia aplikacji lub jej powtórnej instalacji. reinstalację aplikacji. W przypadku przerwania działania instancji, na której uruchomiona była aplikacja klienta, system zarządzania aplikacjami powinien utworzyć nową instancję z taką samą aplikacją, wykorzystującą te same dane, co instancja, która uległa awarii. Nowo uruchomiona aplikacja musi mieć dostęp do danych poprzedniej instalacji i z punktu widzenia klienta nie może różnić się od poprzedniej instalacji. wyłączenie wybranej aplikacji. Działająca aplikacja może się stać niepotrzebna (na przykład w wyniku decyzji klienta o rezygnacji z usługi). AWS Manager musi umieć odinstalować wskazaną przez użytkownika aplikację. Proces ten powinien przebiegać bez potrzeby interakcji z użytkownikiem. Usuwanie aplikacji nie może zakłócać działania innych aplikacji. W ramach odinstalowania usuwane muszą być wszelkie wykorzystywane przez aplikację zasoby, w tym zasoby dyskowe i instancja, na której była zainstalowana aplikacja. wyświetlenie listy aplikacji. Użytkownik AWS Managera musi mieć możliwość przeglądania listy aplikacji uruchomionych na zdalnych instancjach. Dane te muszą być pogrupowane według stanu aplikacji (uruchomiona, w trakcie uruchomienia, wyłączona), a także według klienta, dla którego aplikacja została zainstalowana. Dla każdej aplikacji musi istnieć możliwość wyświetlenia szczegółowych informacji na jej temat (na przykład adres IP, pod którym jest dostępna czy nazwa paczki instalacyjnej), a także statystyk dotyczących instancji, na której aplikacja została zainstalowana (na przykład dostępność portów czy obciążenie procesora). przechowywanie i wyświetlanie informacji o klientach. Powinna istnieć możliwość dodania nowego klienta wraz z jego danymi takimi jak imię, nazwisko czy adres , zmiany danych istniejacego klienta, a także usunięcia klienta i wszystkich jego danych. przechowywanie i wyświetlanie informacji o aplikacjach klientów. System zarządzania aplikacjami musi wyszukiwać i prezentować użytkownikowi informacje o wszystkich aplikacjach dla danego klienta. 24

27 tworzenie zestawienia kosztów działania aplikacji danego klienta za wybrany okres czasu. Zestawienia powinny być wyliczane na podstawie informacji zebranych podczas monitorowania aplikacji klienta (takich jak zużycie zasobów). Mogą one być tworzone jako zestawienia zbiorcze (dla kilku/wszystkich aplikacji klienta) lub dla pojedynczych aplikacji. przekazywanie klientowi informacji dotyczących jego aplikacji działających w systemie zarządzania aplikacjami. Klientowi muszą być przekazywane adresy, pod którymi dostępne są jego aplikacje, a także informacje o kosztach utrzymania aplikacji. 3.2 Przypadki użycia W niniejszym rozdziale przedstawione zostaną przypadki użycia systemu zarządzania aplikacjami. Rysunek 3.1: Diagram przypadków użycia dla funkcji związanych z nadzorowaniem aplikacji. Rysunek 3.1 przedstawia przypadki użycia odnoszące się do operacji na aplikacjach klienta. Aplikację można zainstalować, odinstalować oraz zreinstalować. Możliwe jest wyświetlenie danych aplikacji, a także sprawdzenie, czy nie wystąpiły błędy w jej działaniu. 25

28 Rysunek 3.2: Diagram przypadków użycia dla funkcji związanych z nadzorowaniem danych o klientach. Rysunek 3.2 prezentuje przypadki użycia dotyczące operacji wykonywanych na danych klienta. Możliwe jest stworzenie nowego wpisu z danymi klienta, wyświetlenie, zaktualizowanie i usunięcie już istniejących danych klienta. Dodatkowo dla każdego klienta można wygenerować zestawienie kosztów utrzymania jego aplikacji. 26

29 Rysunek 3.3: Diagram przypadków użycia dla funkcji związanych z nadzorowaniem danych o pakietach instalacyjnych. Rysunek 3.3 przedstawia przypadki użycia odnoszące się do operacji na pakietach instalacyjnych. Nowy pakiet zawierający aplikację klienta może być dodany do systemu i w nim przechowywany, dane istniejącego w systemie pakietu mogą być wyświetlone lub zaktualizowane oraz może on zostać usunięty z systemu. Szczegółowy opis najważniejszych z pokazanych tu operacji znajduje się w rozdziale 3.6 (pt. Diagramy Sekwencji ). 3.3 Architektura Po przeanalizowaniu wymagań stawianych systemowi utworzony został projekt architektury AWS Managera. Zdecydowano się na przyjęcie modelu systemu centralnie zarządzanego. Schemat architektury zaprezentowano na Rysunku

30 Rysunek 3.4: Architektura systemu - system z centralnym zarządzaniem. Centralnym elementem systemu zarządzania jest moduł Managera. To za jego pośrednictwem administrator może zarządzać aplikacjami klientów. Administrator komunikuje się z modułem Managera za pośrednictwem interfejsu graficznego (przerywana, czerwona linia). Wszystkie dane systemu przechowywane są w lokalnej bazie danych. Moduł Managera rozpoczyna instalację aplikacji klienckiej od utworzenia instancji w systemie Amazon EC2. Następnie na instancji instalowany jest moduł Agenta (pomarańczowa linia). Moduł Agenta zarządza instancją, na której jest zainstalowany. Na życzenie modułu Managera może on zainstalować aplikację klienta (kropkowana, niebieska linia). 28

31 Zieloną linią oznaczono komunikację między modułami Agentów a modułem Managera. Pakiety instalacyjne z aplikacjami klientów oraz obrazy AMI instancji są przechowywane w systemie Amazon S Elementy systemu W niniejszym podrozdziale zostały wymienione i wyjaśnione poszczególne elementy systemu oraz role jakie pełnią one w systemie zarządzania aplikacjami. System zarządzania aplikacjami (AWS Manager) zespół współpracujących ze sobą modułów umożliwiający zarządzanie aplikacjami typu enterprise, system ten składa się z modułu Managera oraz modułów Agentów. Moduł Managera aplikacja sterująca systemem zarządzania aplikacjami, jeden dla całego systemu zarządzania aplikacjami, udostępnia panel administratora i umożliwia zarządzanie aplikacjami, klientami i pakietami instalacyjnymi. Moduł Agenta moduł znajdujący się na każdej z zarządzanych instancji, odpowiedzialny jest za nadzorowanie pracy instancji, za instalowanie oprogramowania na instancji, za monitorowanie instancji i jej komponentów, moduł Managera za pośrednictwem modułu Agenta sprawuje kontrolę nad instancją i jej komponentami. Klient 29

32 osoba (lub instytucja/organizacja/firma), dla której uruchamiane są aplikacje. Aplikacja klienta program dostarczany przez klienta w postaci paczki instalacyjnej i instalowany dla klienta przez system zarządzania aplikacjami. Instancja wirtualny system komputerowy utworzony w serwisie Amazon AWS na potrzeby instalacji i uruchomienia aplikacji klienta, na instancji instalowane są aplikacje klienta, każda instancja jest zarządzana przy pomocy zainstalowanego modułu Agenta, każda instancja jest przypisana do co najwyżej jednego klienta. 3.5 Model obiektowy systemu Przedstawiony na Rysunku 3.5 diagram prezentuje strukturę klas występujących w systemie zarządzania aplikacjami. Podstawowe klasy to klasa AWSManager i klasy AWSAgent oraz AWSAgentClient. Instancja klasy AWSManagera dla każdej instalowanej aplikacji klienta tworzy instancję klasy AWSAgentClient oraz klasy AWSClientApplication. Obiekty klasy AWSAgent znajdują się na zdalnych instancjach i komunikują się poprzez mechanizm JMX z odpowiadającymi im po stronie modułu Managera obiektami typu AWSAgentClient. Klasa AWSClientApplication opisuje aplikacje klientów. Oprócz danych takich jak nazwa, adres, status czy czas uruchomienia i wyłączenia posiada powiązanie z klasą AWSClient, definiującą klienta, dla którego została uruchomiona oraz z klasą AWSApplicationPackage, zawierającą dane na temat pakietu instalacyjnego. Aplikacja jest dodatkowo powiązana z klasą dotyczącą statystyk (AWSApplicationStatistics). 30

33 Rysunek 3.5: Model obiektowy systemu. 31

34 3.6 Diagramy sekwencji Na podstawie diagramów przypadków użycia oraz klas powstały diagramy sekwencji przedstawione na Rysunkach 3.6, 3.7, 3.8, 3.9, Stanowią one rozwinięcie najważniejszych funkcjonalności systemu. Rysunek 3.6 prezentuje sekwencję operacji wykonywanych w ramach instalacji aplikacji. Użytkownik systemu z poziomu interfejsu uruchamia instalację nowej aplikacji. Obiekt AW- SManager tworzy nową instancję w systemie Amazon EC2. Następnie tworzy obiekt typu AWSAgentClient. AWSAgentClient zdalnie instaluje AWSAgenta na instancji. AWSManager wywołuje polecenie instalacji aplikacji na obiekcie AWSAgentClient, AWSAgentClient na obiekcie AWSAgent. AWSAgent uruchamia mechanizm wysyłania notyfikacji JMX. W rezultacie aplikacja zostaje zainstalowana. AWSManager, przy pomocy obiektu DAO udostępniającego operacje na bazie danych, zapisuje w bazie danych informacje dotyczące zainstalowanej aplikacji. Rysunek 3.6: Instalacja nowej aplikacji. Przebieg procesu odinstalowywania aplikacji został przedstawiony na Rysunku 3.7. Użytkownik uruchamia na obiekcie AWSManagera funkcję odinstalowywania aplikacji. AW- SManager wywołuje na obiekcie AWSAgentClient funkcję wyłączającą aplikację. AWSAgentClient robi to samo na obiekcie AWSAgent znajdującym się na zdalnej instancji zawierającej aplikację. W kolejnym kroku AWSManager usuwa obiekt AWSAgentClient skojarzony z usuwaną aplikacją. Na zakończenie AWSManager usuwa instancję w środowisku Amazon EC2 oraz aktualizuje w bazie danych informacje dotyczące aplikacji. Aplikacja jest wyłączona. 32

35 Rysunek 3.7: Odinstalowywanie aplikacji. Rysunek 3.8 prezentuje proces wyświetlania statystyk dotyczących aplikacji. Proces zbierania statystyk rozpoczyna się po pomyślnym zainstalowaniu aplikacji i odbywa się w nieskończonej pętli. Polega na cyklicznym wysyłaniu statystyk zebranych przez AW- SAgenta działającego na zdalnej instancji do obiektu AWSAgentClient. AWSAgentClient następnie wysyła statystyki do obiektu AWSManagera, który to zapisuje je w bazie danych. Użytkownik przy użyciu obiektu AWSManagera wywołuje funkcję wyświetlenia statystyk dotyczących aplikacji. AWSManager pobiera z bazy danych statystyki. Statystyki zostają wyświetlone użytkownikowi na ekranie aplikacji AWS Managera. 33

36 Rysunek 3.8: Wyświetlanie statystyk dotyczących aplikacji. Proces wykrywania sytuacji krytycznych ukazuje Rysunek 3.9. Wszelkie nieprawidłowości w działaniu aplikacji wykrywane są na podstawie statystyk znajdujących się w bazie danych. Proces ich zbierania został omówiony przy opisie przypadku wyświetlania statystyk dotyczących aplikacji. Użytkownik przy pomocy obiektu AWSManagera wysyła żądanie wyświetlenia błędów dotyczących działania aplikacji. AWSManager pobiera z bazy danych statystyki, a następnie sprawdza ich poprawność. Informacja o wykrytych błędach zostaje wyświetlona użytkownikowi systemu AWS Managera. 34

37 Rysunek 3.9: Wykrywanie sytuacji krytycznych. Na Rysunku 3.10 przedstawiony został przypadek reinstalacji aplikacji. Reinstalacja aplikacji składa się z dwóch następujących po sobie procesów: usuwania aplikacji oraz instalowania aplikacji. Oba zostały omówione powyżej. Wynikiem przeprowadzenia reinstalacji jest działająca aplikacja. 35

38 Rysunek 3.10: Reinstalacja aplikacji. 3.7 Dane przetwarzane w systemie Na podstawie przedstawionych wymagań stawianych systemowi zarządzania aplikacjami określone zostały dane, jakie są przechowywane i przetwarzane w systemie. Przechowywane są następujące elementy: obrazy systemów operacyjnych, z których instalowane są instancje (obrazy takie posiadają moduł Agenta, aby zaraz po ich zainicjalizowaniu możliwa była komunikacja na linii Agent-Manager; ewentualnie można stworzyć mechanizm automatycznego instalowania Agenta na instancji zaraz po jej uruchomieniu), pakiety instalacyjne aplikacji klientów (skonstruowane tak, by ich instalacja przebiegała bez interakcji z administratorem systemu), dynamicznie zmieniające się dane o instancjach i aplikacjach klientów, prywatne dane aplikacji. 36

39 Obrazy systemów operacyjnych oraz pakiety instalacyjne aplikacji powinny być dostępne zdalnie tak, aby nie było problemów z ich instalacją na wirtualnych komputerach w sieci Amazon. Tego typu dane posiadają znaczne objętości. Infrastruktura Amazon AWS udostępnia usługę idealnie nadającą się do przechowywania takich obiektów. Jest to Amazon S3, które zostało dokładniej omówione w rozdziale drugim. W przypadku systemu zarządzania aplikacjami wykorzystywane są dwa kontenery S3 (buckets), jeden dla obrazów instancji i jeden dla aplikacji klientów (Rysunek 3.11). Rysunek 3.11: Obrazy systemów operacyjnych i aplikacje klientów przechowywane w dwóch różnych kontenerach systemu Amazon S3. Dane o instancjach i aplikacjach są zbierane od Agentów i przetwarzane przez moduł Managera. Agenci nie mają dostępu do zebranych danych. Jedynym modułem, który ma dostęp do danych całego systemu jest Manager. Dane takie mogą więc być przechowywane lokalnie w postaci bazy danych. Prywatne dane aplikacji przechowywane są na dołączonej do instancji wirtualnej stacji dysków (Amazon EBS). W przypadku wystąpienia problemów z instancją zapewnia to bezpieczeństwo tych danych (gdyby na przykład instancja przez przypadek została wyłączona). 37

40 4 Implementacja W tym rozdziale opisano zagadnienia dotyczące implementacji systemu. Wyjaśniono podjęte decyzje implementacyjne, przedstawiono wykorzystane technologie oraz pokazano problemy, które pojawiły się w trakcie tworzenia programu. 4.1 Koncepcja rozwiązania W niniejszym podrozdziale znajduje się analiza przyjętych rozwiązań implementacyjnych oraz uzasadnienia wybranego rozwiązania. Wybór języka programowania Przed podjęciem decyzji o tym, w jakim języku programowania ma być napisana aplikacja, należało się zapoznać z istniejącymi bibliotekami służącymi do komunikacji z poszczególnymi elementami systemu Amazon (EC2, S3, EBS). Korzystanie z usług Amazon AWS jest możliwe przy użyciu bibliotek w językach takich jak Ruby, PHP, Python, Perl, Java, C czy C#. Biblioteki służące do komunikacji aplikacji napisanych w Javie z serwisami Amazona posiadają proste API, są darmowe, dobrze udokumentowane i przetestowane. Na wybór Javy jako języka programowania wpływ miały również takie czynniki, jak łatwość tworzenia aplikacji i interfejsu użytkownika oraz doświadczenie programistyczne autorów. Wybór pomiędzy tworzeniem aplikacji webowej a desktopowej Wybierając pomiędzy aplikacją webową a desktopową należało zastanowić się nad zastosowaniem programu AWS Managera. Aplikacja AWS Managera miała być używana przez administratora systemu zarządzania aplikacjami. Możliwe było więc stworzenie aplikacji instalowanej i działającej w konkretnym systemie operacyjnym. Dlatego też została podjęta decyzja o utworzeniu aplikacji desktopowej z interfejsem graficznym. 38

41 Stworzenie systemu zarządzania jako aplikacji webowej pozwoliłoby na dostęp do niego z dowolnego komputera z działającą przeglądarką internetową i podłączeniem do sieci Internet. Wiąże się to jednak z potrzebą zastosowania dodatkowych zabezpieczeń. Konieczne jest zapewnienie mechanizmu logowania i ochrony serwera przed atakami z zewnątrz. W przypadku rozwijania projektu w przyszłości i rozszerzenia funkcjonalności o dostęp klientów do systemu, warto przekształcić AWS Managera w aplikację webową. Wybór biblioteki GUI Po ustaleniu, że aplikacja AWS Managera jest aplikacją typu desktopowego, kolejnym krokiem był wybór biblioteki graficznej służącej do implementacji interfejsu użytkownika. W Javie interfejs można tworzyć w oparciu o: bibliotekę AWT (Abstract Windowing Toolkit), stanowiącą pierwszą biblioteką okienkową Javy. Jej wadą jest mało przyjazne API i ograniczona ilość kontrolek. bibliotekę Swing, będącą nowszą, udoskonaloną wersją biblioteki okienkowej. Oferuje ona elementy GUI dające dużo większe możliwości. Wygląd komponentów jest znacznie mniej zależny od platformy niż w przypadku AWT. Dodatkowo biblioteka jest dobrze udokumentowana oraz posiada wiele przykładów użycia i gotowych rozwiązań. inne biblioteki, niewchodzące w skład samej Javy, na przykład SWT (Standard Widget Toolkit). Rozwiązania te są przeważnie szybsze w działaniu i mają mniejsze wymagania pamięciowe oraz posiadają zaawansowane komponenty. Ograniczeniem w stosowaniu SWT jest natomiast obowiązek dołączania kodu biblioteki do programu, trudności w rozszerzaniu i tworzeniu nowych komponentów oraz konieczność samodzielnego zwalniania zasobów i tworzenia różnych paczek aplikacji pod różne architektury. Ze względu na wygodę użycia i szeroką gamę dostępnych komponentów interfejs użytkownika powstał przy pomocy biblioteki Swing. Tworzenie aplikacji w Swingu można było uprościć poprzez zastosowanie frameworka Spring RCP. Dodatkowo użycie Spring RCP pozwoliło na wykorzystanie mechanizmów frameworka Spring. Komunikacja aplikacji AWS Managera z serwisami Amazon AWS Istnieje kilka sposobów na skomunikowanie się i użycie serwisów Amazon AWS. Zagadnienie to zostało dokładniej omówione w rozdziale drugim. Przy implementacji systemu AWS Managera trzeba było dokonać wyboru pomiędzy następującymi dostępnymi metodami komunikacji: wysłanie pytania przy użyciu czystego protokółu SOAP, 39

42 wysłanie pytania przy użyciu interfejsu QUERY, użycie wysokopoziomowej biblioteki (o ile jest dostępna), użycie narzędzi konsolowych wywoływanych z linii komend, użycie narzędzia Management Console z poziomu przeglądarki internetowej. W tworzonym systemie konieczne było wywoływanie serwisów z wnętrza aplikacji. Do tego celu nie można było użyć narzędzia Management Console. W celu użycia narzędzi konsolowych można wywoływać wewnątrz aplikacji komendy linii poleceń. Takie rozwiązanie jest jednak nieeleganckie i narażone na szereg nieprawidłowości (na przykład błędy zgłaszane przez narzędzia byłyby trudne do zidentyfikowania i naprawienia). Dlatego do wyboru pozostały tylko trzy pierwsze metody. W przypadku tworzenia systemu zarządzania aplikacjami przy użyciu mało popularnego języka programowania, szanse na znalezienie dobrej biblioteki do komunikacji z Amazon AWS byłyby niewielkie. W takim wypadku należałoby wybrać pomiędzy interfejsem SOAP, a QU- ERY. Z punktu widzenia prostoty użycia interfejs QUERY jest lepszym rozwiązaniem. Ponieważ istnieją biblioteki do Javy, w celu skomunikowania się z serwisem EC2 została wykorzystana biblioteka Typica[1], a z serwisem S3 - biblioteka JetS3[2]. Użycie już istniejących bibliotek jest dużo lepszym rozwiązaniem niż samodzielne pisanie kodu realizującego komunikację. Wybrane biblioteki są bardzo dobrze przetestowane i od dłuższego czasu używane przez programistów, co niejako daje gwarancję ich stabilności i bezpieczeństwa. Komunikacja aplikacji AWS Managera z instancją Zdalna instancja działająca w środowisku Amazon jest widoczna na zewnątrz tego środowiska jako pojedynczy system komputerowy z zainstalowanym systemem operacyjnym i oprogramowaniem (software), który jest podłączony do sieci internet i posiada zewnętrzny adres IP. Problem komunikacji aplikacji AWS Managera z instancją Amazon może być więc sprowadzony do bardziej uniwersalnego zagadnienia: komunikacji z poziomu aplikacji z innym systemem komputerowym z wykorzystaniem do tego celu sieci w taki sposób, by możliwe było wprowadzanie zmian wewnątrz tego systemu (instalowanie/odinstalowywanie aplikacji, konfigurowanie systemu operacyjnego itp.). Do zdalnego połączenia z odległymi hostami korzysta się z protokołu SSH. Amazon ułatwia nam użycie tego mechanizmu. Instancje Amazon mają standardowo odblokowany port 22 protokołu TCP, a dodatkowo zostaje na nich zapisany wskazany klucz publiczny (do którego właściciel konta Amazon posiada klucz prywatny). Para kluczy jest następnie wykorzystywana w protokole SSH do autentykacji. Cały mechanizm zabezpieczenia dostępu do instancji został opisany w rozdziale 2., w podrozdziale Bezpieczeństwo w Amazon Cloud Computing. 40

43 Istotne jest, że bez wprowadzania zmian na instancji Amazon możliwe jest korzystanie z ogólnie dostępnego, popularnego i bezpiecznego protokołu komunikacji, jakim jest SSH. Strona instancji jest przygotowana na taką interakcję. Pozostaje jeszcze druga strona komunikacji - aplikacja AWS Managera. Pisanie własnej obsługi SSH w Javie nie jest konieczne, gdyż istnieją biblioteki przeznaczone do tego celu. W niniejszym projekcie została wykorzystana biblioteka JSch[25]. Z punktu widzenia wymagań funkcjonalnych, protokół SSH jest konieczny jedynie do zainstalowania na instancji aplikacji Agenta. Pozostałe zdalne operacje wykonywane są za pośrednictwem technologii JMX. Komunikacja modułu Managera z modułem Agenta W trakcie projektowania systemu brane były pod uwagę dwa rozwiązania. System Amazon AWS oparty jest na serwisach webowych, dlatego na początku pojawił się pomysł zastosowania protokołu SOAP lub interfejsu w stylu REST. Istotna była kwestia wsparcia, jakie Java zapewnia dla SOAP-a. Istnieje biblioteka wspomagająca ten protokół, a dodatkowo środowisko NetBeans, w którym powstawał projekt, jest wyposażone w narzędzia generowania kodu aplikacji na podstawie pliku WSDL, jak i pliku WSDL na podstawie kodu. Gdyby moduły Agenta i Managera powstawały przy użyciu różnych technologii (języków programowania), użycie SOAP-a byłoby dobrym wyborem, gdyż z założenia protokół SOAP jest podejściem uniwersalnym. Ponieważ jednak moduły te napisane zostały w Javie, możliwe było skorzystanie z mechanizmów komunikacji łatwiejszych w użyciu i dedykowanych dla tego języka. Interakcja modułu Managera z modułem Agenta polega na wykonywaniu przez Agenta poleceń, które są wydawane przez moduł Managera (na przykład polecenie zainstalowania aplikacji klienckiej). Dodatkowo w systemie znajdującym się na zdalnej instancji wyróżnić możemy zasoby, które są nadzorowane przez Agenta i których stan musi być udostępniany na życzenie Managera (parametry działania instancji takie jak zużycie procesora, czy pamięci). W Javie tego typu funkcjonalność można uzyskać wykorzystując różne technologie. Można skorzystać z protokołu RMI (Remote Method Invocation - zdalne wywołanie metod obiektów Javy), z technologii JMX lub cięższych rozwiązań takich jak CORBA czy ICE. W implementacji AWS Managera została wybrana technologia JMX. Poprzez interfejs MBean możliwe jest wywoływanie metod obiektów wchodzących w skład Agenta. Zapewniony jest również stały dostęp do zmieniających swój stan zasobów; zmiany wartości atrybutów zasobów są przekazywane metodą notyfikacji. 41

44 Instalacja aplikacji klienckich na instancji AWS Manager ma za zadanie instalowanie aplikacji klienckich. Aby zainstalować dowolną aplikację klienta na instancji należało wybrać wspólny format programów dostarczanych przez klientów. Format ten uzależniony był od systemu operacyjnego, jaki został wybrany dla instancji uruchamianych przez AWS Managera. Instancje posiadają system operacyjny Debian GNU/Linux. Z tego powodu została podjęta decyzja o tym, że aplikacje otrzymywane od klientów mogą mieć postać pakietów binarnych systemu Debian. Innym rozwiązaniem, które było brane pod uwagę, jest dostarczanie plików z programami klientów w postaci plików wykonywalnych. Użycie pakietów debianowych okazało się jednak lepszym rozwiązaniem niż wykorzystanie plików wykonywalnych. Instalacja w postaci pakietów pozwala dodatkowo na określenie zależności i wymagań instalowanego programu. Dzięki temu zostało zagwarantowane, że po zainstalowaniu aplikacji klienckiej posiada ona wszystkie niezbędne do prawidłowego działania biblioteki i programy. Składowanie i przetwarzanie danych aplikacji AWS Managera Obrazy systemu operacyjnego (AMI) instalowanego na instancjach oraz pakiety instalacyjne aplikacji to dane charakteryzujące się znacznymi rozmiarami. Niezbędna jest ich stała dostępność. Dodatkowo istotny jest czas, w jakim mogą być przesłane do EC2. Rozwiązaniem dedykowanym do przechowywania obrazów systemu operacyjnego, ze względu na niezawodność, skalowalność, pojemność i szybkość transferu, jest Simple Storage Service (Amazon S3). Inną możliwością może być wykorzystanie zdalnych serwerów udostępniających przestrzenie dyskowe. Jednak ze względu na łatwość dostępu do S3 z poziomu API programistycznego oraz szybkość komunikacji pomiędzy EC2 a S3, została podjęta decyzja o przechowywaniu AMI oraz pakietów z aplikacjami klientów w S3. Aktualnie wykorzystywane jest jedno AMI na stałe umieszczone w S3. Pakiety instalacyjne mogą być natomiast dodawane i usuwane z poziomu modułu Managera. Dodanie pakietu wiąże się z przesłaniem wskazanego pliku z pakietem do S3, natomiast usunięcie to skasowanie pliku z lokalizacji, pod jaką znajduje się on w S3. Dane dotyczące klientów i ich aplikacji, do których dostęp ma moduł Managera, są przechowywane w postaci lokalnej relacyjnej bazy danych. Jedną z możliwości rozwoju systemu jest wykorzystanie do przechowywania bazy danych AWS Managera zdalnego serwera lub rozproszonej bazy danych Amazon SimpleDB. Podejście takie zapewniłoby wysoką dostępność danych oraz zagwarantowałoby spójność danych pomiędzy instalacjami AWS Managera uruchamianymi w różnych lokalizacjach. 42

45 Zagwarantowanie spójności danych w systemie Moduł Managera przechowuje i przetwarza dane o klientach, ich aplikacjach i instancjach w postaci relacyjnej bazy danych. Operacje na instancjach, takie jak wyłączenie instancji, zatrzymanie na niej Agenta czy aplikacji, mogą być wykonywane bez użycia AWS Managera, na przykład z wykorzystaniem narzędzi konsolowych, narzędzi do zdalnego zarządzania EC2 udostępnianych przez Amazon (jak AWS Management Console) czy po zalogowaniu się na instancję, poprzez protokół SSH. AWS Manager przechowuje dane takie jak stan aplikacji, czas uruchomienia i zatrzymania oraz statystyki dotyczące poszczególnych aplikacji. Dla AWS Managera istotne jest więc posiadanie informacji zgodnych z rzeczywistym stanem instancji działających w EC2. Rozwiązaniem zapewniającym spójność danych pomiędzy AWS Managerem, a systemem Amazon jest okresowe monitorowanie stanu instancji. Odbywa się to podczas komunikacji modułu Managera z Agentami zainstalowanymi na instancjach. Agenci nadzorują stan systemu, w którym działają i przesyłają zebrane informacje do modułu Managera przy pomocy notyfikacji JMX. Równocześnie moduł Managera stale analizuje dane otrzymane od Agentów. W przypadku wykrycia sytuacji krytycznej (na przykład zerwania komunikacji z Agentem) moduł Managera aktualizuje dane dotyczące aplikacji w bazie. Powyżej opisane podejście daje gwarancję, że moduł Managera posiada aktualne informacje na temat aplikacji klienckich zainstalowanych w systemie. Zabezpieczenie systemu Zagadnienie bezpieczeństwa systemu może być rozpatrywane w kilku aspektach. Po pierwsze należy zadbać o fizyczne bezpieczeństwo zarządzanych przez system instancji. Jak już zostało wspomniane w rozdziale drugim problem ten został rozwiązany poprzez odpowiednią infrastrukturę serwisów Amazon. Po drugie dostęp do instancji musi być chroniony. Środowisko Amazon również pomaga w realizacji tego celu. Na każdej tworzonej instancji umieszczony jest bowiem klucz publiczny, do którego klucz prywatny posiada wyłącznie właściciel konta Amazon. Newralgicznym elementem systemu jest komunikacja modułu Managera z modułami Agentów przy użyciu technologii JMX. Komunikacja ta powinna być chroniona przynajmniej poprzez mechanizm autentykacji. Możliwe jest także wykorzystanie protokołu SSL. Obie opcje mogą być zastosowane poprzez dodanie dodatkowych argumentów podczas uruchamiania Agenta. Dodatkowo użycie protokołu SSL wymaga ustawienia (przy użyciu narzędzia keytool) cyfrowego certyfikatu, a autentykacja pociąga za sobą stworzenie pliku przechowującego hasła. Zabezpieczenie systemu obejmuje także zadbanie o bezpieczeństwo danych w nim przetwarzanych. Kluczowe informacje zapisywane są w bazie danych. Standardowo dostępne jest zabezpieczenie dostępu do bazy danych w postaci pary: nazwa użytkownika i hasło. W 43

46 chwili obecnej wykorzystywana jest lokalna baza danych. W przypadku przeniesienia jej na zdalny serwer warto zastanowić się nad dodatkowym zabezpieczeniem, na przykład w postaci sprawdzania adresu IP, z którego nastąpiła próba połączenia. Dodatkowo do przechowywania danych wykorzystywany jest Amazon S3. Znajdują się w nim obrazy AMI i pakiety instalacyjne aplikacji klientów. Obrazy systemów operacyjnych nie muszą być chronione, natomiast pakiety instalacyjne powinny podlegać ochronie przed nieuprawnionym dostępem. W tym celu należałoby użyć narzędzi szyfrujących przed wysłaniem pakietów do S3. Tak przygotowane pakiety musiałyby podlegać procesowi odszyfrowywania przez Agentów przed instalacją. Wszystkie powyższe metody nie zapewnią bezpieczeństwa systemu, jeżeli klucze i certyfikaty wykorzystywane w systemie nie będą przechowywane w sposób poufny. Jest to podstawowa zasada kryptografii, znana jako zasada Kerckhoffsa. Zgodnie z nią mechanizm zabezpieczenia, czyli algorytm szyfrujący, może być jawny pod warunkiem, że klucze są tajne. Aby warunek ten był spełniony, do systemu komputerowego, w którym uruchomiony jest moduł Managera i w którym przechowywane są klucze i certyfikaty, nie mogą mieć dostępu osoby niepowołane. Dotyczy to zarówno zdalnego, jak i lokalnego dostępu. Zagadnienie projektowania zabezpieczeń systemu jest obszerne i dotyczy nie tylko samego systemu komputerowego (hardware i software), ale również osób z niego korzystających (stworzenie procedur bezpieczeństwa, na przykład wprowadzenie zasady wylogowywania się z systemu operacyjnego po opuszczeniu stanowiska z systemem komputerowym). Na zdalnych instancjach instalowane są aplikacje klienckie, które mogą wpływać na osłabienie poziomu bezpieczeństwa systemu. Na takie problemy trudno jest się jednak przygotować i rozwiązanie ich nie jest kluczowe dla funkcjonowania systemu zarządzania aplikacjami. Wiele z powyższych zagadnień ma charakter czysto teoretyczny. Wynika to z faktu, że tworzona aplikacja nie jest systemem produkcyjnym, ale prototypem. Niektórych mechanizmów nie warto było wykorzystywać w fazie testów (na przykład szyfrowanie paczek instalacyjnych na Amazon S3). Inne, jak na przykład zapewnienie procedury bezpieczeństwa dla certyfikatów i kluczy, jest niewykonalne do zrealizowania w warunkach tworzenia systemu. Podrozdział ten stanowi więc zbiór wytycznych dotyczących zasad tworzenia ostatecznej wersji systemu. Zdalne sprawdzanie stanu instancji Sprawdzanie stanu instancji można podzielić na dwa tematy: sprawdzanie stanu elementów systemu widocznych z zewnątrz tego systemu oraz sprawdzanie stanu parametrów systemu, których odczytanie wymaga pełnego dostępu do systemu operacyjnego. Do pierwszej grupy należy weryfikacja możliwości połączenia się z instancją, a także określenie, jakie porty zostały otwarte. Elementy te można sprawdzić z poziomu aplikacji AWS Managera. 44

47 Aby uzyskać dostęp do danych systemowych, takich jak na przykład zajętość dysku, zużycie procesora i pamięci czy ilość uruchomionych procesów, należy zainstalować i uruchomić na danej instancji aplikację, która takie dane jest w stanie zebrać i przesłać do modułu Managera. Podczas realizacji monitorowania wymienionych elementów za wzór posłużyło jedno z najbardziej popularnych, a jednocześnie bezpłatnych narzędzi do monitorowania systemów komputerowych - Nagios. Jak zostało wspomniane w rozdziale drugim, nie wszystkie elementy Nagiosa zostały użyte. Architektura tworzonego systemu pozwala bowiem, by moduł Managera przejął rolę aplikacji bazowej Nagiosa. Moduł Agenta pełni natomiast rolę NRPE. Standardowo praca NRPE polega na uruchamianiu skryptów (Pluginów Nagios) w systemie operacyjnym, a następnie przesyłaniu danych zebranych w ten sposób do aplikacji bazowej Nagiosa. W systemie zarządzania aplikacjami Agent wywołuje odpowiednie skrypty (zainstalowane razem z NRPE) i poprzez notyfikacje JMX przesyła uzyskane dane do modułu Managera. Manager zapisuje otrzymane informacje w lokalnej bazie danych. Jednocześnie nieustannie sprawdzana jest treść zebranych danych. System reaguje na zaistniałe sytuacje krytyczne (na przykład brak notyfikacji od instancji czy przekroczenie bezpiecznego poziomu zużycia procesora). W ten sposób narzędzia Nagiosa nie są bezpośrednio wykorzystywane, zaadoptowana została jedynie idea ich działania. Jedynym elementem Nagiosa, jaki został użyty, jest zbiór standardowych pluginów. Obsługa sytuacji krytycznych Za krytyczną uznajemy sytuację, w której moduł Managera nie otrzymał żadnych wiadomości od Agenta znajdującego się na zdalnej instancji albo przekazane informacje są niepokojące (na przykład duże obciążenie procesora czy pamięci). Ponieważ takie zdarzenia mogą mieć różne przyczyny, aplikacja AWS Managera jedynie zgłasza zaistnienie problemu i proponuje jedną z dwóch opcji: całkowite wyłączenie instancji lub utworzenie nowej instalacji na bazie uszkodzonej. Zanim administrator systemu wybierze jedną z tych opcji może spróbować ręcznie rozwiązać problem poza aplikacją AWS Managera. Zabezpieczenie prywatnych danych aplikacji klienta W celu zapewnienia bezpieczeństwa danych aplikacji klienta muszą one być przechowywane na dołączonej do instancji wirtualnej stacji dysków EBS. Podejście takie zapewnia zabezpieczenie danych przed utratą lub uszkodzeniem na skutek nieprawidłowego działania instancji (na przykład jej wyłączenia). Dyski EBS używane są w sposób podobny do innych urządzeń blokowych. Po zamontowaniu dysku możliwe jest przechowywanie na nim takich zasobów jak bazy danych czy pliki wykorzystywane przez aplikację. Odłączenie dysku EBS od instancji nie powoduje utraty danych na nim zawartych. Dysk może zostać podłączony do innej instancji wraz z danymi, które zawiera. W przypadku awarii 45

48 instancji możliwe jest więc uruchomienie aplikacji klienta na nowej instancji i odtworzenie jej stanu poprzez dołączenie dysku EBS, który był używany przez uszkodzoną instancję. Powyższe operacje mogą być wykonane w sposób niezauważalny dla klienta. Kolejnym problemem związanym z bezpieczeństwem danych aplikacji jest zapewnienie ich integralności i spójności. Awaria instancji może doprowadzić do sytuacji, w której dane znajdujące się na dysku EBS będą niespójne. Jednym z powodów może być na przykład wyłączenie aplikacji w momencie zapisu informacji do pliku, w którym przechowywane są dane aplikacji. Mechanizmem, który można wykorzystać w celu rozwiązania powyższego problemu jest okresowe tworzenie snapshotów dysków EBS. Ze względu na wykorzystanie w obecnej wersji AWS Managera prototypów aplikacji, które tak naprawdę nie potrzebują zasobów dyskowych oraz nie posiadają danych, system EBS stosowany był tylko w fazie testów. Zostało sprawdzone czy i w jaki sposób przy jego pomocy można uzyskać funkcjonalność dotyczącą zabezpieczenia prywatnych danych aplikacji. Z powyższego powodu nie został zastosowany mechanizm snapshotów. Jego wykorzystanie jest jednak konieczne w przypadku rozwoju systemu i uruchamiania w nim aplikacji będących faktycznie aplikacjami typu enterprise. 4.2 Wykorzystane technologie W niniejszej sekcji przedstawiono podsumowanie informacji na temat najważniejszych technologii wykorzystanych podczas tworzenia systemu AWS Manager. Dane zebrano w tabeli poniżej. 46

49 Tablica 4.1: Technologie wykorzystane podczas tworzenia systemu AWS Manager. Technologia lub Opis Cel użycia narzędzie Java 1.6 popularny język programowania wysokiego poziomu zarówno kod modułu Managera, jak i Agentów jest w całości napisany w tym Spring RCP biblioteka wspomagająca tworzenie aplikacji graficznych w Swingu (Java) Hibernate biblioteka wykorzystywana do mapowania obiektów aplikacji do ich relacyjnych odpowiedników w bazie danych JMX rozszerzenie języka Java w celu zarządzania pewnymi zasobami (obiektami) i udostępniania tych zasobów zdalnym klientom Typica biblioteka napisana w Javie, która ułatwia komunikację z systemem Amazon EC2 JetS3 biblioteka napisana w Javie, która ułatwia komunikację z systemem Amazon S3 NRPE i pluginy Nagiosa elementy systemu Nagios wykorzystywane do zdalnego monitorowania hostów języku aplikacja AWS Managera powstała w oparciu o tę bibliotekę poprzez Hibernate a przebiega komunikacja pomiędzy AWS Managerem, a bazą danych działanie Agenta w głównej mierze opiera się o technologię JMX; Agent jest zarządzanym zasobem, do którego dostęp posiada moduł Managera jest używana do zarządzania instancjami (tworzenie, komunikacja, usuwanie) jest używana do zarządzania zasobami w systemie S3 (głównie chodzi o paczki instalacyjne aplikacji klientów) Agent wykorzystuje te narzędzia do monitorowania stanu instancji PostgreSQL 8.4 system zarządzania bazą danych PostgreSQL służy do przechowywania persystentnych danych systemu w postaci relacyjnej bazy danych instalator dpkg instalator pakietów debianowych służy do instalacji pakietów z aplikacjami klientów na zdalnych instancjach Ubuntu 8.10 dystrybucja systemu operacyjnego GNU/Linux oparta na dystrybucji Debian system operacyjny instalowany na zdalnych instancjach (wersja wzbogacona o kilka dodatkowych narzędzi i bibliotek) Tabela przedstawia najważniejsze użyte podczas implementacji systemu zarządzania aplikacjami technologie (języki, biblioteki, narzędzia itd.) wraz z krótkim opisem oraz informacją do czego dana rzecz została wykorzystana. 47

50 Dokładniejsze opisy przedstawionych tu technologii znajdują się w rozdziale 2. ( Zastosowane Rozwiązania Technologiczne ). 4.3 Wybrane problemy techniczne i implementacyjne W niniejszym podrozdziale przedstawione zostały wybrane problemy techniczne i implementacyjne zaistniałe w trakcie implementacji systemu. Niektóre z nich nie wyglądają na skomplikowane, ale często identyfikacja bezpośredniej przyczyny błędów czy znalezienie sposobu ich rozwiązania zajęło dłuższy czas. Problemy z komunikacją poprzez JMX W trakcie tworzenia i wstępnego testowania aplikacji Agenta wykorzystywany był lokalny system komputerowy. Moduły Agenta i Managera komunikowały się i wymieniały dane. Problem wystąpił w momencie zainstalowania Agenta na docelowej instancji postawionej w środowisku Amazon AWS. Okazało się, że nie jest możliwe połączenie się z serwerem MBean ani z poziomu Managera, ani nawet poprzez jconsole. Tymczasem na samej instancji wydawało się, że Agent działa bez zarzutu. Na początku założono, że problem może wynikać z wadliwej instancji. Dlatego podjęta została próba uruchomienia Agenta na zdalnym komputerze, ale nie należącym do systemu Amazon AWS. W takiej sytuacji także nie była możliwa komunikacja Agenta z Managerem. Okazało się, że przy uruchomieniu Agenta w zdalnej lokalizacji należy określić zewnętrzny adres IP i port, pod którym MBean jest dostępny. Po dodaniu odpowiednich atrybutów do komendy uruchomieniowej Agenta (-Djava.rmi.server.hostname=ADRES-IP i -Dcom.sun.management.jmxremote.port=9990) udało się skomunikować moduły. Wprowadzenie takich samych zmian na docelowej instancji w środowisku Amazon nie rozwiązało jednak problemu. Standardowo bowiem wszystkie porty uruchamianej instancji były blokowane. Po odblokowaniu odpowiednich portów problem został rozwiązany. Problem reinstalacji Agenta W trakcie tworzenia systemu pojawił się pomysł wprowadzenia zdalnego reinstalowania Agenta. Miała to być dodatkowa opcja AWS Managera, nie wynikająca z wymagań funkcjonalnych, a jedynie usprawniająca przyszłe aktualizacje oprogramowania. Rozważane były trzy sposoby zrealizowania tego celu. Po pierwsze, moduł Managera na życzenie użytkownika mógłby łączyć się poprzez protokół SSH z instancją, na której ma być zaktualizowany Agent. Po wyszukaniu procesu Agenta, moduł Managera kończyłby jego działanie, usuwał wszystkie pliki należące do starszej wersji 48

51 oprogramowania, a następnie przesyłał nowszy pakiet Agenta, instalował go i uruchamiał tak, jak ma to miejsce za każdym razem, gdy włączana jest nowa instancja. Takie rozwiązanie nie wymagałoby dodatkowych zmian w kodzie Agenta, a wszystkie dodatkowe operacje wykonywane przez moduł Managera mogłyby być wykonane ręcznie po bezpośrednim zalogowaniu się użytkownika na instancję. Drugie rozwiązanie to aktualizacja wykonywana przez samego Agenta. Należałoby w kodzie aplikacji Agenta zawrzeć sprawdzanie aktualności oprogramowania. W przypadku, gdyby pojawiła się nowsza wersja oprogramowania, Agent uruchamiałby osobny proces, którego celem byłoby wyłączenie i odinstalowanie istniejącej paczki, a następnie pobranie (na przykład z Amazon S3) najnowszej wersji, zainstalowanie jej i uruchomienie. W takim przypadku zmiany w kodzie dotyczyłyby tylko aplikacji Agenta, a moduł Managera nie miałby kontroli nad procesem. Trzeci pomysł zakłada wykorzystanie cech MBeanów. Obecnie główny wątek Agenta uruchamia serwer MBean i rejestruje w nim konkretny MBean. Taki MBean może być następnie odrejestrowany. Pomysł reinstalacji polega na podmianie wyłącznie MBeana, a nie całej aplikacji Agenta. Przykładem może być następujący scenariusz - główny wątek Agenta, po otrzymaniu informacji o potrzebie aktualizacji MBeana, odrejestrowuje go, pobiera jego nowszą wersje i na nowo rejestruje w serwerze MBean. Proces ten mógłby rozpoczynać się po otrzymaniu sygnału od modułu Managera lub też mógłby istnieć niezależny mechanizm regularnie (na przykład codziennie) sprawdzający aktualność oprogramowania. Po głębszej analizie zostało stwierdzone, że dodanie opcji reinstalacji, niezależnie od wyboru jej przeprowadzenia, jest kosztowne w realizacji, a nie ma większego wpływu na funkcjonalność systemu. Aktualizacja byłaby przydatna, gdyby zakładane były częste zmiany Agenta. Od momentu powstania modułu był on modyfikowany jedynie kilka razy, w celu poprawy zauważonych błędów w działaniu. Nie wprowadzono natomiast znaczących zmian w funkcjonalności. Jeżeli w przyszłości konieczne okazałyby się częste zmiany modułu, powinno zostać wybrane i zaimplementowane jedno z powyższych rozwiązań. Problem długiego czasu uruchamiania instancji w EC2 Uruchomienie nowej instancji w środowisku EC2 może trwać stosunkowo długo. Początkowo podejmowane były próby uruchamiania nowej instancji i zaraz potem instalowania na niej Agenta i aplikacji. Szybko jednak zostało zauważone, że konieczne jest wstrzymanie się z podejmowaniem działań do momentu, aż instancja znajdzie się w stanie running (instancja działająca). Dlatego też moduł Managera, po wywołaniu instrukcji uruchamiającej nową instancję w EC2, sprawdza jej stan i dopiero, gdy zmieni się on z pending (oczekiwanie) na running (instancja działająca) rozpoczyna instalację aplikacji. Dodatkowo proces opisany powyżej aktualnie odbywa się w osobnym wątku. Program AWS 49

52 Managera nie mógł bowiem pozostać w pierwotnej wersji, w której nie można było wykonać żadnej akcji AWS Managera ze względu na to, że zajmował się on oczekiwaniem na uruchomienie instancji. Po zleceniu instalacji aplikacji użytkownik może teraz zająć się kolejną instalacją albo innymi opcjami dostępnymi z poziomu interfejsu AWS Managera. W skrajnym przypadku może się zdarzyć, że instancja nie znajdzie się nigdy w stanie running, na przykład na skutek wyłączenia jej spoza systemu (chociażby przy użyciu narzędzia AWS Management Console). Dlatego też, aby nie dopuścić do nieskończonej pętli, konieczne było wyznaczenie maksymalnego czasu oczekiwania na działającą instancję. W obecnej wersji systemu użytkownik nie jest informowany o zakończeniu instalacji aplikacji. O tym, czy instalacja została wykonana pomyślnie, dowiaduje się w momencie, w którym odświeży widok z listą aplikacji. Sposób powiadamiania o pomyślnej instalacji powinien zostać udoskonalony w przypadku dalszego rozwijania systemu. Problem obsługi wyjątków Ze względu na rozproszony charakter środowiska Amazon AWS, podczas komunikacji AWS Managera z systemem EC2 czy S3 możliwe jest wystąpienie szeregu błędów. Na początkowym etapie implementacji aplikacji występowały problemy spowodowane tym, że niektóre składniki nie zostały zainstalowane na zdalnych instancjach. Kluczowe stało się nabycie pewności, że instalacja wszystkich niezbędnych elementów przebiegała bez komplikacji. Konieczne było więc przechwytywanie wyjątków, które mogą wystąpić na każdym etapie komunikacji. W obecnej wersji systemu obsługa wyjątków polega na logowaniu ich treści. Oznacza to, że system AWS Managera informuje użytkownika o problemie, ale nie podejmuje próby jego rozwiązania. 50

53 5 Weryfikacja uzyskanej funkcjonalności Niniejszy rozdział zawiera odpowiedź na pytanie, czy powstały system zarządzania aplikacjami spełnia wymagania funkcjonalne określone na etapie projektowania. Weryfikacja została przeprowadzona w formie testów funkcjonalnych. Dla każdego wymagania zostały określone kroki, jakie użytkownik systemu powinien wykonać, aby osiągnąć konkretny cel. 5.1 Instalacja nowej aplikacji dla klienta na podstawie dostarczonego pakietu instalacyjnego Podstawowym zadaniem AWS Managera jest instalowanie i uruchamianie na zdalnych serwerach aplikacji klientów. Zadanie to wiąże się z uruchomieniem zdalnej instancji i zainstalowaniem na niej systemu operacyjnego. Aby zainstalować nową aplikację klienta, należało przy użyciu aplikacji AWS Managera wykonać następujące kroki: przejść na zakładkę MainView, nacisnąć przycisk zainstaluj aplikację, 51

54 Rysunek 5.1: Aplikacja AWS Manager - lista aplikacji. w oknie, które się pojawiło, wybrać klienta, dla którego miała być instalowana aplikacja, wybrać pakiet instalacyjny i nacisnąć OK. Rysunek 5.2: Aplikacja AWS Manager - instalacja aplikacji. Nowa aplikacja stała się widoczna w zakładce MainView, a jej status został oznaczony jako RUNNING (aplikacja działająca). W celu potwierdzenia udanej instalacji należało zalogować się na instancję spoza aplikacji AWS Managera, na przykład przy użyciu protokołu SSH i klucza prywatnego dostępu do instancji. 52

55 Rysunek 5.3: Sprawdzenie dostępności uruchomionej instancji. Jak widać na Rysunku 5.3 logowanie było udane, a więc uruchomienie instancji i zainstalowanie na niej systemu operacyjnego zostało wykonane poprawnie. Sprawdzenie poprawności zainstalowania aplikacji klienta zależało od tego, jaka była zawartość paczki instalacyjnej. Testowa paczka testowy pakiet.deb zawierała skrypt (program.sh), który miał zostać skopiowany do katalogu /tmp i uruchomiony. Po wylistowaniu procesów działających na instancji okazało się, że skrypt jest uruchomiony. Rysunek 5.4: Sprawdzenie poprawności instalacji aplikacji. Na podstawie powyższych rozważań wykazano, że funkcja instalacji aplikacji na podstawie pakietu instalacyjnego została osiągnięta. 5.2 Monitorowanie stanu aplikacji W momencie, gdy instancja była uruchomiona, a aplikacja klienta zainstalowana, możliwe było zdalnie sprawdzenie jej stanu. W tym celu należało: 53

56 przejść do zakładki StatsView, wybrać klienta oraz aplikację (aplikacja jest identyfikowana poprzez adres IP instancji i nazwę paczki instalacyjnej). W wyniku tego przedstawione zostały dane dotyczące instancji, na której uruchomiona była wybrana aplikacja, regularnie przesyłane przez moduł Agenta znajdujący się na tej instancji. Rysunek 5.5: Aplikacja AWS Manager - widok statystyk. Na podstawie powyższych rozważań wykazano, że funkcja monitorowania stanu aplikacji została osiągnięta. 54

57 5.3 Wykrywanie nieprawidłowości w działaniu aplikacji Wszelkie nieprawidłowości w raportowaniu o stanie Agenta znajdującego się na zdalnej instancji z aplikacją klienta muszą być zgłaszane użytkownikowi. Dla zademonstrowania tej opcji wykonano następujące kroki: instancja została wyłączona z pominięciem aplikacji AWS Managera, administrator AWS Managera przeszedł na zakładkę ErrorLogView. W wyniku takiego postępowania przestały do modułu Managera docierać raporty o statystykach dla wyłączonej instancji, a w rezultacie na zakładce ErrorLogView pojawił się nowy wpis. Jak zostało zaprezentowane na Rysunku 5.6, użytkownik otrzymał informację mówiącą, że ostatni raport dotyczący aplikacji jest nieaktualny. Rysunek 5.6: Aplikacja AWS Manager - widok błędów. 55

58 Na podstawie powyższych rozważań wykazano, że funkcja wykrywania nieprawidłowości w działaniu aplikacji została osiągnięta. 5.4 Reinstalacja aplikacji AWS Manager udostępnia funkcję reinstalacji. W celu jej weryfikacji należało wykonać następujące czynności: przejść na zakładkę ErrorLogView, znaleźć wpis dotyczący interesującej nas instancji, użyć przycisku reinstall. Ponowna instalacja przebiegała automatycznie, bez udziału użytkownika. Po przejściu do widoku MainView dla klienta były widoczne trzy wpisy - wpis z numerem 3 dotyczył uszkodzonej i wyłączonej instalacji, natomiast wpis z numerem 4 nowo powstałej instalacji. Rysunek 5.7: Aplikacja AWS Manager - lista aplikacji po reinstalacji. Poprawność przeprowadzonej reinstalacji można było zweryfikować poprzez zalogowanie się bezpośrednio na nowo powstałą instancję tak, jak już zostało to opisane powyżej w bieżącym rozdziale. Na podstawie powyższych rozważań wykazano, że funkcja reinstalacji aplikacji została osiągnięta. 5.5 Wyłączenie wybranej aplikacji Aby wyłączyć aplikację należało wykonać następujące czynności: przejść do widoku MainView, 56

59 znaleźć uruchomioną aplikację, która miała być wyłączona, nacisnąć przycisk stop przy opisie wybranej aplikacji, potwierdzić swoją decyzję przyciskiem OK. W wyniku powyższych czynności zostały zaktualizowane dane przedstawiające listę aplikacji. Aplikacja otrzymała status TERMINATED (wyłączona) oraz datę i godzinę wyłączenia. Rysunek 5.8: Aplikacja AWS Manager - lista aplikacji po wyłączeniu aplikacji. By sprawdzić, czy aplikacja została poprawnie wyłączona, użyto narzędzia AWS Management Console. Rysunek 5.9 pokazuje, że w środowisku EC2 zostało zakończone działanie dwóch instancji, a ich identyfikatory zgadzają się z identyfikatorami widocznymi w systemie AWS Managera. Są to więc instancje, na bazie których demonstrowana była podstawowa funkcjonalność systemu zarządzania aplikacjami. Obie instancje były w stanie TERMINA- TED, co oznacza, że wyłączenie aplikacji oraz instancji, na których były one uruchomione, przebiegło poprawnie. Rysunek 5.9: AWS Management Console - sprawdzenie stanu instancji. Na podstawie powyższych rozważań wykazano, że funkcja wyłączenia aplikacji została osiągnięta. 5.6 Wyświetlanie listy aplikacji oraz wyświetlanie informacji o aplikacjach klientów Wszystkie dane o instancjach i aplikacjach były dostępne z poziomu zakładki MainView (podstawowe informacje takie jak adres IP, nazwa klienta, status itp.) oraz zakładki Stat- 57

60 sview (raporty o stanie instancji przesyłane przez Agenta). Po wybraniu klienta wyświetlane były wyłącznie aplikacje tego klienta. Weryfikacja tych funkcji została wykonana przy okazji sprawdzania innych opcji programu. 5.7 Przechowywanie i wyświetlanie informacji o klientach System umożliwiał tworzenie, zmianę i usuwanie danych klientów. Wszystkie te operacje były możliwe do przeprowadzenia z wykorzystaniem zakładki ClientListView. Rysunek 5.10: Aplikacja AWS Manager - lista klientów. Ze względu na to, że funkcje zarządzania danymi klientów zawierają jedynie proste operacje zapisu i odczytu danych z bazy danych, nie będziemy opisywać weryfikacji ich działania. 58

61 5.8 Tworzenie zestawienia kosztów działania aplikacji danego klienta za wybrany okres czasu Dla klientów możliwe było tworzenie zestawień. W celu zweryfikowania tej funkcji należało: przejść na zakładkę BillingsView, wybrać klienta, określić okres rozliczeniowy. Dla potrzeb weryfikacji został utworzony raport dla klienta o nazwie Jan Kowalski (klient używany we wszystkich powyższych testach), za okres ostatnich 30 dni. Rysunek 5.11: Aplikacja AWS Manager - wydruk billingu. Zestawienie zawierało podliczenie kosztów działania wszystkich aplikacji klienta. Koszt został policzony dla każdej zakończonej godziny działania aplikacji, dlatego na przykład za pierwsze trzy instalacje wykonane w ramach testów klient nie poniósł opłat (czas ich działania był krótszy niż jedna godzina). Na podstawie powyższych rozważań wykazano, że funkcja tworzenia zestawienia kosztów działania aplikacji została osiągnięta. 59

62 5.9 Sztuczne generowanie sytuacji krytycznych na instancji Aby przetestować reakcje systemu na wystąpienie sytuacji krytycznych konieczne było sztuczne generowanie błędów. Poniżej wypunktowane zostały możliwe problemy i sposoby ich uzyskania. Awarię instancji można uzyskać poprzez wyłączenie instancji poza systemem AWS Managera, na przykład z poziomu AWS Management Console. Brak połączenia sieciowego może zostać zasymulowany zablokowaniem portów na instancji lub odłączeniem przewodu sieciowego na komputerze z modułem Managera. Drugi sposób spowoduje wykrycie sytuacji krytycznej na wszystkich uruchomionych instancjach. Awarię Agenta można spowodować poprzez zalogowanie się bezpośrednio na instancję i zatrzymanie procesu Agenta. Brak wolnej przestrzeni dyskowej może być uzyskany poprzez skopiowanie na instancję danych o dużej objętości. Przeciążenie procesora i pamięci można wywołać poprzez uruchomienie na instancji aplikacji zużywających te zasoby. Takie sytuacje nie są jednak łatwe do zidentyfikowania. Przy znacznym obciążeniu Agent nie może bowiem regularnie wysyłać notyfikacji, co może być odczytane jako problemy z siecią lub awaria instancji Podsumowanie weryfikacji W wyniku testów funkcjonalnych zweryfikowane zostały następujące wymagania funkcjonalne: instalacja nowej aplikacji dla klienta, instalacja nowej aplikacji na podstawie dostarczonego przez klienta pakietu instalacyjnego, monitorowanie stanu aplikacji, wykrywanie nieprawidłowości w działaniu aplikacji, reinstalacja aplikacji, wyłączenie wybranej aplikacji, 60

63 wyświetlanie listy aplikacji oraz wyświetlanie informacji o aplikacjach klientów, przechowywanie i wyświetlanie informacji o klientach, tworzenie zestawienia kosztów działania aplikacji danego klienta za wybrany okres czasu. Zautomatyzowaniu nie podległo wymaganie mówiące o tym, że klientowi powinny być przekazywane informacje o utrzymywanych instalacjach (na przykład billingi, adresy instancji itp.). Tego typu dane przekazywane mogą być klientom inną drogą, na przykład poprzez telefon albo . 61

64 6 Podsumowanie W ramach wykonanych prac został stworzony model systemu zarządzającego aplikacjami typu enterprise. Została przeprowadzona analiza wymagań stawianych takiemu systemowi. Na tej podstawie powstała aplikacja AWS Managera, która w celu realizacji wymagań wykorzystuje usługi Amazon Cloud. Niniejszy rozdział prezentuje możliwe sposoby wykorzystania stworzonego oprogramowania. Na kolejnych etapach realizacji systemu zauważonych zostało wiele możliwości dalszego rozwoju, które również będą omówione w bieżącym rozdziale. 6.1 Możliwości zastosowania oprogramowania System zarządzania aplikacjami służy do udostępniania aplikacji klasy enterprise. Aplikacje te dostarczane są przez klientów. Pod pojęciem udostępniania rozumiemy uruchamianie, zarządzanie i monitorowanie aplikacji internetowych. Klientami systemu mogą być więc osoby, które posiadają programy przeznaczone dla innych użytkowników i udostępniane za pośrednictwem sieci, ale nie dysponują wystarczającymi zasobami sprzętowymi. Najczęściej spotykanym rozwiązaniem w takich przypadkach jest skorzystanie z usługi hostingu. Jednak uruchomienie aplikacji w Amazon Cloud jest korzystniejsze ze względu na większą niezawodność i dostępność aplikacji. Samodzielne udostępnienie aplikacji za pośrednictwem systemu Amazon wymaga od użytkownika poznania poszczególnych elementów Amazona, narzędzi służących do komunikacji z nimi oraz zaznajomienia się z takimi zagadnieniami, jak na przykład proces tworzenia obrazów systemów operacyjnych czy dostosowywania ich do własnych potrzeb. AWS Manager pozwala na ograniczenie aktywności swoich klientów do minimum - jedyne, czego od nich wymaga, to dostarczenie pakietu instalacyjnego aplikacji. Następnie klient otrzymuje adres, pod jakim działa aplikacja, okresowe statystyki i billingi. System zarządzania aplikacjami może być wykorzystany również w innym celu - do dystrybucji oprogramowania, na przykład przez firmę tworzącą i udostępniającą aplikacje. Wszystkie konstruowane i rozpowszechniane przez nią programy mogą być uruchamiane przez AWS 62

65 Managera na instancjach Amazon (są przystosowane do instalacji za pomocą pakietów Debiana). Dzięki temu sprzedaż egzemplarza aplikacji polega na stworzeniu jej instalacji na wirtualnym sprzęcie w sieci i udostępnienie adresu DNS lub IP. Klient może wtedy korzystać z oprogramowania firmy nie posiadającej własnego zaplecza sprzętowego. 6.2 Możliwości rozwoju systemu Obecna wersja systemu spełnia kluczowe wymagania funkcjonalne, jednak już w trakcie jego tworzenia powstało wiele pomysłów dotyczących dodatkowych możliwości aplikacji. Po pierwsze, warto byłoby umożliwić współpracę z innymi systemami operacyjnymi niż Debian GNU/Linux. W chwili obecnej system instalowany na zdalnych instancjach oparty jest o jeden przykładowy obraz AMI z zainstalowanym standardowym zestawem narzędzi. W przyszłości w systemie zarządzającym mogłoby istnieć wiele takich obrazów do wyboru, z różnymi systemami operacyjnymi (w tym także Windows) i różnymi zestawami zainstalowanego oprogramowania. Obrazy byłyby dostosowane do wykorzystania jako serwery dla aplikacji napisanych w różnych technologiach. W zależności od technologii aplikacji klienta instalacje wykorzystywałyby obrazy AMI z odpowiednimi serwerami aplikacji i bibliotekami. Elastyczność oprogramowania można zwiększyć poprzez dodanie obsługi paczek instalacyjnych innych niż debianowe. Dodatkowo, klient może posiadać możliwość instalowania na jednej instancji wielu swoich aplikacji. Ponieważ takie podejście znosiłoby zależność instancji od aplikacji, należałoby dodać funkcję wyłączenia i odinstalowania samej aplikacji bez zakłócania działania instancji, na jakiej aplikacja się znajduje. Takie rozwiązanie wiąże się jednak z problemem rozwiązywania konfliktów pomiędzy aplikacjami. Przykładowo dwa programy mogą korzystać z tego samego portu sieciowego, co może prowadzić do błędu. Jedną z możliwości uzyskania instalacji wielu aplikacji na jednej instancji jest zastosowanie pakietów debianowych z rozbudowanym systemem opisu zależności, zarówno programowych, jak i sprzętowych. AWS Manager może próbować zainstalować taki pakiet na jednej z instancji zawierających już uruchomione aplikacje klienta. Jeżeli zależności byłyby spełnione, pakiet byłby instalowany. Jeżeli okazałoby się, że aplikacja na danej instancji nie może otrzymać niezbędnych zasobów - AWS Manager sprawdzałby możliwości instalacji na kolejnych instancjach klienta. Dopiero po nieudanych próbach instalacji pakietu na wszystkich działających już instancjach uruchamiana byłaby nowa instancja i na niej byłaby instalowana aplikacja. W chwili obecnej monitorowaniu podlega kilka z góry określonych parametrów. Nie w każdym przypadku są one interesujące. Na przykład nie ma potrzeby monitorowania dostępności portu FTP na instancji, na której ten port zawsze ma być zamknięty. Zmiana może polegać na wyborze monitorowanych elementów dla każdej instalacji osobno. Powinna istnieć rów- 63

66 nież możliwość dołączania nowych skryptów do monitorowania przez aplikację klienta. Dzięki temu klient mógłby sam zadbać o monitorowanie nietypowych, ale istotnych jego zdaniem cech systemu. Warto zastanowić się nad zautomatyzowaniem systemu naprawczego instancji. Obecnie system AWS Managera zgłasza jedynie użytkownikowi zaistnienie sytuacji krytycznej. Użytkownik musi podjąć decyzję o tym, jak rozwiązać problem. Gdyby cały ten proces przebiegał bez udziału człowieka, wszelkie nieprawidłowości byłyby usuwane natychmiast po ich wykryciu. Dzięki temu czas, w którym klient jest pozbawiony dostępu do aplikacji, zostałby zminimalizowany. Aby mieć pewność, że system podejmie właściwą decyzję, należałoby w tym celu stworzyć rozbudowane schematy decyzyjne. Przekazanie klientowi dostępu do aplikacji w bieżącej wersji AWS Managera odbywa się poprzez podanie mu adresu IP lub adresu DNS instancji, na jakiej uruchomiona jest jego aplikacja. W przypadku reinstalacji aplikacji, na przykład na skutek problemów w funkcjonowaniu instancji, adres, pod jakim dostępna jest aplikacja klienta, ulega zmianie. W takiej sytuacji wymagane jest niezwłoczne powiadamianie klienta, który to zapewne musi poinformować wszystkich użytkowników swojej aplikacji. Rozwiązaniem może być zastosowanie stałych adresów DNS przypisanych do konkretnych aplikacji. Do tego celu służy usługa DDNS (Dynamic Domain Name Server). DDNS posiada bazę danych z mapowaniami adresu numerycznego na domenowy oraz pozwala na aktualizację przypisań w dowolnym momencie. Podobną funkcjonalność, ale działającą na adresach IP zamiast DNS, zapewnia mechanizm dostępny w Amazon - Elastic IP Addresses. Pozwala on użytkownikowi systemu Amazon na rezerwację stałych adresów IP, które mogą być następnie przydzielane do różnych instancji. Po zmianie instancji, na jakiej działa aplikacja, wystarczyłoby wykonać przypisanie adresu Elastic IP do innej instancji. Zastosowanie jednego z wyżej wymienionych rozwiązań pozwoliłoby więc na przekazanie klientowi jednego, stałego adresu aplikacji. Natomiast wszelkie zmiany adresu IP, pod jakim faktycznie działa aplikacja, byłyby dla niego niezauważalne. W aktualnej wersji systemu dane o instancji przesyłane są klientowi poza aplikacją AWS Managera (poprzez telefon lub ). Naturalnym kierunkiem rozwoju jest więc zautomatyzowanie tego procesu. Rozwiązaniem mogłoby być nadanie klientowi ograniczonego dostępu do systemu. Mógłby on sam sprawdzać stan instancji i ich statystyki, zarządzać swoimi paczkami instalacyjnymi, a nawet uruchamiać i wyłączać instalacje. Takie podejście wymagałoby, aby cała aplikacja AWS Managera była dostępna w wersji sieciowej (aktualnie jest dostępna tylko w wersji desktopowej), z mechanizmem autentykacji i autoryzacji. To pociągałoby też za sobą potrzebę wykorzystywania zewnętrznej bazy danych o dostępie zdalnym (w chwili obecnej jest to baza lokalna, znajdująca się w systemie komputerowym, na którym jest zainstalowany AWS Manager). Za względu na potrzebę zwiększenia bezpieczeństwa danych klientów należy zastanowić się nad możliwością wykorzystania mechanizmu Snapshotów oferowanych przez Amazon AWS. 64

67 Temat ten był już wcześniej poruszany w rozdziale Koncepcja rozwiązania. Jak już wspomniane zostało w rozdziale Wybrane problemy techniczne i implementacyjne, dużym udogodnieniem byłoby dodanie opcji reinstalacji Agenta. Powyższe zestawienie nie wyczerpuje w pełni możliwości rozwoju systemu. Są to jednak kwestie najważniejsze i w przypadku kontynuacji projektu w przyszłości stanowiłyby punkt wyjścia do dalszej pracy. 65

68 7 Słownik Poniżej zostały wyjaśnione wybrane pojęcia techniczne, które mogą być niejasne dla czytelnika. Większość tych pojęć funkcjonuje w środowisku informatycznym tylko w języku angielskim i dlatego, poza kilkoma wyjątkami, nie zostały one przetłumaczone na język polski. ACID (Atomicity, Consistency, Isolation and Durability) - cztery warunki, jakie powinny spełniać transakcje w bazach danych i w tłumaczeniu na język polski oznaczają atomowość, spójność, izolację i trwałość transakcji. AMI (Amazon Machine Image) - obraz systemu operacyjnego, który może być wykorzystywany do tworzenia nowej instancji w systemie Amazon AWS. AOP (Aspect Oriented Programming) - programowanie aspektowe, jest to metoda tworzenia oprogramowania mająca na celu modularyzację kodu. Apache Tomcat - kontener dla aplikacji sieciowych napisanych w technologiach Java Servlets i Java Server Pages (JSP). Aplikacja desktopowa (desktop application) - aplikacja uruchomiona w lokalnym systemie komputerowym, do której użytkownik ma dostęp tylko z komputera, na którym jest zainstalowana. Aplikacja sieciowa (web application) - aplikacja uruchomiona na serwerze aplikacji, do której użytkownik ma zdalny dostęp poprzez sieć. APT (Advanced Packaging Tool) - zaawansowane narzędzie Linux do zarządzania pakietami instalacyjnymi. Autentykacja - szereg mechanizmów pozwalających na ustalenie tożsamości osoby próbującej uzyskać dostęp do systemu komputerowego. Autoryzacja - szereg mechanizmów pozwalających na ustalenie praw dostępu danej osoby do zasobów systemu komputerowego. AWS (Amazon Web Services) - zespół usług udostępnianych przez firmę Amazon w formie serwisów sieciowych, w skład których wchodzi między innymi serwis EC2, S3 i SimpleDB. AWS Management Console - konsola dostępna z poziomu przeglądarki internetowej, 66

69 dzięki której możliwe jest zarządzanie kontem w systemie AWS. AWT (Abstract Windowing Toolkit) - biblioteka języka Java do tworzenia aplikacji graficznych w środowisku okienkowym. BSD Open Source - liberalna licencja dystrybucji oprogramowania opierająca się na założeniach idei wolnego oprogramowania. Certyfikat X certyfikat zawierający klucz publiczny i dodatkowe meta dane umożliwiający zdalną autentykację. Cloud Computing - tak zwane przetwarzanie w chmurze, czyli idea wykorzystywania przez klienta usług udostępnianych zdalnie przez sieć bez potrzeby instalowania oprogramowania lokalnie. DAO (Data Access Object)- warstwa dostępu do danych ułatwiająca komunikację z bazą danych. DDNS (Dynamic Domain Name Server) - serwer mapujący adresy IP na adresy DNS..deb pakiet - pakiet instalacyjny wykorzystywany w systemach typu Linux. Debian - darmowa dystrybucja systemu operacyjnego Linux. Deployment - proces uruchamiania aplikacji sieciowej w kontenerze aplikacji (np. w Apache Tomcat). DNS adres - adres sieciowy w postaci tekstowej, zrozumiałej przez użytkownika, który jest skojarzony ze zrozumiałym przez infrastrukturę sieci numerycznym adresem IP. dpkg - podstawowy menadżer pakietów w systemie Debian. EC2 Key Pair - para kluczy wykorzystywana w systemie AWS przy dostępie do instancji. EJB (Enterprise JavaBeans) - jedna z technologii języka Java umożliwiająca tworzenie aplikacji sieciowych. EBS (Elastic Block Store) - system przechowywania danych na potrzeby instancji EC2 w postaci wirtualnego urządzenia blokowego. EC2 (Elastic Cloud Computing) - jedna z usług AWS, umożliwiająca uruchamianie wirtualnych serwerów zwanych instancjami oraz zarządzanie nimi. Elastic IP - jedna z usług AWS, która umożliwia rezerwowanie na stałe adresów IP. FTP (File Transfer Protocol) - protokół umożliwiający przesyłanie plików przez sieć. Hibernate - biblioteka języka Java umożliwiająca mapowanie modelu obiektowego danych na model relacyjny. JBoss Application Server - kontener aplikacji sieciowych. JDBC (Java DataBase Connetivity) - interfejs umożliwiający komunikację pomiędzy 67

70 aplikacją Java, a bazą danych. JetS3 - biblioteka napisana w języku Java, która umożliwia komunikację z serwisem Amazon S3. JMX (Java Management Extensions) - rozszerzenie języka Java stworzone w celu zarządzania pewnymi zasobami i udostępniania tych zasobów zdalnym klientom. JVM (Java Virtual Machine) - wirtualny model systemu komputerowego wykorzystywany do uruchamiania aplikacji napisanych w języku Java. MBean (Managed Bean) - obiekt w języku Java, który reprezentuje pewien zasób systemu i który udostępnia ten zasób poprzez protokół JMX. MVC (Model View Controller) - wzorzec projektowy zakładający logiczny podział aplikacji na części modelu, widoku i kontroli. MySQL - popularny i bezpłatny system zarządzania relacyjną bazą danych. Nagios - system służący do monitorowania zasobów w sieci. NRPE - element systemu Nagios, który umożliwia nadzorowanie lokalnych zasobów komputera poprzez sieć. O/R mapowanie - mapowanie danych obiektowych do danych w postaci relacyjnej bazy danych. PAM (Pluggable Authentication Modules) - rozszerzenie mechanizmów bezpieczeństwa w systemie Linux, które umożliwia zastosowanie dowolnych sposobów autentykacji do dowolnych aplikacji. PEM format - format pliku tekstowego używany do reprezentowania certyfikatów cyfrowych. plugin Nagios - skrypt uruchamiany przez aplikację Nagios lub NRPE w celu uzyskania informacji o zasobach. PostgreSQL - popularny i bezpłatny system zarządzania relacyjną bazą danych. protokół SSH - bezpieczny protokół komunikacji przez sieć, który umożliwia operowanie na zdalnym systemie komputerowym. QUERY - interfejs wprowadzony przez system AWS w celu udostępnienia serwisów zdalnym użytkownikom, jest on oparty o ideę REST. RDBMS (Relational Database Management System) - system zarządzania relacyjną bazą danych. REST - idea tworzenia serwisów sieciowych w oparciu o protokół HTTP i proste przesyłanie plików XML. RESTful serwis - potoczne określenie serwisu sieciowego wykorzystującego ideę REST. 68

71 RMI (Remote Method Invocation) - zdalne wywołanie metody. sekwencje PostgreSQL - mechanizm wykorzystywany w PostgreSQL do automatycznego generowania kluczy dla wierszy tabel. S3 (Simple Storage Service) - usługa systemu AWS udostępniająca duże przestrzenie dyskowe na potrzeby przechowywania danych. SimpleDB - rozproszona baza danych udostępniana w ramach systemu AWS. Snapshot EBS - mechanizm zabezpieczenia danych uruchomionych instancji w systemie AWS poprzez tworzenie kopii dysków EBS i przechowywanie ich w serwisie S3. SOAP - protokół dostępu do serwisów sieciowych. Spring Framework - szkielet aplikacji służący do tworzenia oprogramowania w języku Java. Spring RCP (Reach Client Project) - podprojekt frameworka Spring służący do budowania aplikacji desktopowych. SQL (Structured Query Language) - strukturalny język zapytań wykorzystywany do operowania na bazach danych. SQS (Simple Queue Service) - jeden z serwisów AWS, który udostępnia kolejkę wiadomości pomiędzy instancjami. SSPI (Security Support Provider Interface) - jeden z mechanizmów uwierzytelniania sieciowego. Swing - biblioteka języka Java do tworzenia aplikacji graficznych. SWT (Standard Widget Toolkit) - biblioteka języka Java do tworzenia aplikacji graficznych. szyfrowanie asymetryczne - szyfrowanie wykorzystujące dwa klucze: jeden do zaszyfrowania, a drugi do odczytania danych. szyfrowanie symetryczne - szyfrowanie wykorzystujące jeden klucz do zaszyfrowania i do odczytania danych. Typica - biblioteka napisana w języku Java, która ułatwia dostęp do serwisu Amazon EC2. Ubuntu - dystrybucja systemu operacyjnego Linux bazująca na dystrybucji Debian. rejestr UDDI (Universal Description, Discovery and Integration) - rejestr usług sieciowych dostępnych w sieci Internet, dzięki któremu możliwe jest wykrywanie i integrowanie usług. Web Service - usługa sieciowa, czyli komponent udostępniający swoje funkcje poprzez sieć. WSDL (WebService Description Language) - język opisu usługi sieciowej. wyzwalacz, trigger - procedura wykonywana automatycznie za każdym razem, gdy zajdzie 69

72 określone zdarzenie w bazie danych. XML (Extensible Markup Language) - uniwersalny język przeznaczony do strukturalnego przedstawiania danych. 70

73 8 Bibliografia [1] Praca zbiorowa, Strona domowa projektu Typica, dostępna pod adresem [2] Praca zbiorowa, Strona domowa JetS3, dostępna pod adresem [3] Praca zbiorowa, Strona domowa projektu Hibernate, dostępna pod adresem [4] Praca zbiorowa, Strona domowa systemu PostgreSQL, dostępna pod adresem [5] Praca zbiorowa, Dokumentacja z oficjalnej strony Spring, dostępna pod adresem [6] Praca zbiorowa, Strona domowa Spring Rich Client Project, dostępna pod adresem [7] Praca zbiorowa, JMX Documentation - oficjalna dokumentacja technologii JMX, dostępna pod adresem [8] Praca zbiorowa, Trail: Java Management Extensions (JMX) - oficjalny kurs technologii JMX udostępniony przez firmę SUN, dostępny pod adresem [9] Praca zbiorowa, Amazon Web Services: Overview of Security Processes, oficjalna dokumentacja Amazon AWS przedstawiająca zagadnienia bezpieczeństwa w udostępnianych serwisach sieciowych [10] Praca zbiorowa, Amazon Web Services: Security Best Practices, oficjalna dokumentacja Amazon AWS dotycząca zalecanych zabezpieczeń instancji i aplikacji na instancjach uruchamianych [11] Praca zbiorowa, Amazon Elastic Compute Cloud Getting Started Guide, oficjalna dokumentacja Amazon AWS zawierająca podstawowe informacje o serwisie EC2 71

74 [12] Praca zbiorowa, Amazon Elastic Compute Cloud Developer Guide, oficjalna dokumentacja Amazon AWS zawierająca porady dla programistów wykorzystujących serwis EC2 z poziomu swoich aplikacji [13] Praca zbiorowa, Amazon Simple Storage Service Getting Started Guide, oficjalna dokumentacja Amazon AWS zawierająca podstawowe informacje o serwisie S3 [14] Praca zbiorowa, Amazon Simple Storage Service Developer Guide, oficjalna dokumentacja Amazon AWS zawierająca porady dla programistów wykorzystujących serwis S3 z poziomu swoich aplikacji [15] Praca zbiorowa, Amazon SimpleDB Getting Started Guide, oficjalna dokumentacja Amazon AWS zawierająca podstawowe informacje o serwisie SimpleDB [16] Praca zbiorowa, Amazon SimpleDB Developer Guide, oficjalna dokumentacja Amazon AWS zawierająca porady dla programistów wykorzystujących serwis SimpleSB z poziomu swoich aplikacji [17] Ethan Galstad, Nagios Version 3.x Documentation, oficjalna dokumentacja systemu Nagios [18] Ethan Galstad, NRPE Documentation, oficjalna dokumentacja aplikacji NRPE [19] Praca zbiorowa, Strona domowa 4shared, dostępna pod adresem [20] Praca zbiorowa, Strona domowa FreeDriv, dostępna pod adresem [21] Praca zbiorowa, Strona domowa FreeSQL, dostępna pod adresem [22] Praca zbiorowa, Strona domowa Rackspace, dostępna pod adresem [23] Praca zbiorowa, Strona domowa FlexiScale, dostępna pod adresem [24] Praca zbiorowa, Strona domowa Eucalyptus, dostępna pod adresem [25] Praca zbiorowa, Strona domowa JSch, dostępna pod adresem 72

75 A Instrukcja użytkownika Instrukcja użytkownika wyjaśnia sposób instalacji oprogramowania oraz prezentuje interfejs graficzny aplikacji AWS Managera. Program składa się z kilku ekranów, nazywanych dalej panelami. Poniżej przestawione zostaną kolejne ekrany oraz ich możliwości. A.1 Instalacja programu AWS Managera Oprogramowanie dostarczane jest w postaci archiwum ApplicationManager.zip, zawierającego kod programu oraz niezbędne biblioteki. Do prawidłowego działania aplikacji AWS Managera konieczne jest posiadanie Postgresql w wersji 8.2 lub wyższej, stworzenie bazy danych awsmanager dla użytkownika manager (hasło: manager ) oraz zainicjalizowanie jej danymi pochodzącymi z pliku awsmanagerdb.sql, znajdującego się w archiwum. Instalacja polega na rozpakowaniu archiwum oraz uruchomieniu projektu poleceniem java -jar ApplicationManager.jar. A.2 Widok główny - panel aplikacji Główne okno AWS Managera składa się z następujących elementów: tabeli zawierającej listę aplikacji, list służących do filtrowania aplikacji - filtrowanie może odbywać się poprzez wybór klienta i/lub statusu aplikacji (ALL, RUNNING, PENDING, TERMINATED), przycisku służącego do instalacji nowej aplikacji ( zainstaluj aplikację ). Wiersz tabeli z listą aplikacji zawiera takie dane dotyczące aplikacji, jak: ścieżka do pakietu instalacyjnego, identyfikator instancji, na której działa aplikacja, adres IP instancji, 73

76 adres DNS instancji, imię i nazwisko klienta, status, czas uruchomienia i czas zatrzymania. Dodatkowo dla każdej aplikacji dostępne są przyciski Stop, Stats oraz Delete. Po ich naciśnięciu wykonane zostaną odpowiednio zatrzymanie aplikacji, przejście do panelu statystyk i wyświetlenie statystyk dotyczących tej aplikacji, usunięcie aplikacji. Rysunek A.1: Panel aplikacji. Instalacja nowej aplikacji Naciśnięcie przycisku zainstaluj aplikację w widoku głównym powoduje otwarcie okna z wyborem klienta, dla którego aplikacja ma zostać uruchomiona oraz pakietu instalacyjnego. Po przyciśnięciu OK rozpoczyna się instalacja aplikacji. Rysunek A.2: Panel aplikacji - instalacja aplikacji. 74

77 A.3 Panel klientów Panel klientów prezentuje listę zawierającą dane klientów znajdujących się w systemie AWS Managera. Pod tabelą znajdują się dwa przyciski: Applications, po przyciśnięciu którego następuje przejście do widoku głównego i wyświetlenie aplikacji dla zaznaczonego klienta, Billings, służący do wyświetlenia widoku billingów dla wybranego klienta. Rysunek A.3: Panel klientów. Pod tabelą znajdują się również przyciski umożliwiające usunięcie lub edycję istniejącego oraz dodanie nowego klienta. Edycja klienta Edycja klienta polega na zmianie jego danych (imienia, nazwiska, telefonu, adresu ) i wybraniu Update w celu zapisu zmian. 75

78 Rysunek A.4: Panel klientów - edycja. Dodawanie nowego klienta Dodawanie klienta odbywa się poprzez podanie jego danych i naciśnięcie Create new. Nowo utworzony klient pojawia się na liście klientów. 76

79 Rysunek A.5: Panel klientów - dodawanie. Usuwanie klienta W celu usunięcia zaznaczonego klienta należy wybrać przycisk Delete. Klient jest usuwany z listy klientów. 77

80 Rysunek A.6: Panel klientów - usuwanie. A.4 Panel pakietów instalacyjnych Panel pakietów instalacyjnych zawiera listę pakietów instalacyjnych aplikacji dostępnych w systemie i przechowywanych w Amazon S3. Ścieżka do pakietu jest utworzona na podstawie połączenia nazwy kontenera używanego do przechowywania pakietów w S3 (aktualnie jest to application-manager ) z nazwą pliku z pakietem instalacyjnym. 78

81 Rysunek A.7: Panel pakietów. Poniżej tabeli znajdują się przyciski służące do usuwania, zmiany opisu oraz dodania nowego pakietu. Edycja opisu pakietu instalacyjnego Pozwala na zmianę opisu zaznaczonego pakietu w polu Description, zatwierdzenie zmian odbywa się po naciśnięciu Update. 79

82 Rysunek A.8: Panel pakietów - edycja. Dodawanie nowego pakietu instalacyjnego Polega na wybraniu z lokalnego systemu plików pliku z pakietem instalacyjnym (przycisk Choose file ), wpisaniu opisu oraz wybraniu Upload file. Następnie wskazany plik jest wysyłany do Amazon S3, gdzie jest przechowywany. 80

83 Rysunek A.9: Panel pakietów - dodawanie. Usuwanie pakietu instalacyjnego Po przyciśnięciu Delete na zaznaczonym pakiecie zostaje on usunięty z listy dostępnych pakietów. Plik z pakietem jest usuwany z Amazon S3. 81

84 Rysunek A.10: Panel pakietów - usuwanie. A.5 Panel billingów Panel billingów pozwala na wybranie klienta z listy klientów, określenie zakresu dat, dla jakich ma zostać wyświetlony billing oraz na jego wygenerowanie (przycisk generate ). Zestawienie, dla każdej aplikacji klienta działającej w podanym okresie, zawiera takie informacje jak: nazwa pakietu instalacyjnego aplikacji, data jej uruchomienia i wyłączenia (jeżeli w danym czasie aplikacja została zatrzymana), zakres dat, dla jakich powstał billing oraz koszt (liczony jako iloczyn ilości godzin pracy aplikacji i przykładowej stawki). Poniżej wpisów dotyczących poszczególnych aplikacji znajduje się całkowity czas pracy (ilość godzin pracy wszystkich aplikacji) i całkowity koszt. 82

85 Rysunek A.11: Panel billingów. A.6 Panel statystyk Panel statystyk pokazuje listę statystyk dotyczących konkretnych aplikacji. Po wybraniu klienta (z listy Client ) oraz aplikacji (z listy Application ; gdy wybrano klienta na liście znajdują się aplikacje wskazanego klienta) w tabeli wyświetlone zostają statystyki. Poszczególne wiersze, oprócz danych dotyczących aplikacji i instancji, zawierają datę otrzymania statystyki. Statystyki wyświetlane są w kolejności od najbardziej aktualnej do najstarszej. 83

86 Rysunek A.12: Panel statystyk. A.7 Panel błędów Panel błędów służy do prezentacji nieprawidłowości wykrytych przez AWS Managera. Naciśnięcie przycisku refresh powoduje aktualizację listy błędów. Każdy wpis zawiera treść komunikatu o błędzie, nazwę aplikacji, dla której wystąpił oraz imię i nazwisko klienta. 84

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki Tomasz Pawłowski Nr albumu: 146956 Praca magisterska na kierunku

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Tworzenie i obsługa wirtualnego laboratorium komputerowego Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition WebServices Serwer aplikacji GlassFish Dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Aplikacje

Bardziej szczegółowo

System Kancelaris. Zdalny dostęp do danych

System Kancelaris. Zdalny dostęp do danych Kancelaris krok po kroku System Kancelaris Zdalny dostęp do danych Data modyfikacji: 2008-07-10 Z czego składaj adają się systemy informatyczne? System Kancelaris składa się z dwóch części: danych oprogramowania,

Bardziej szczegółowo

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska Plan prezentacji 1 Architektura

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

Win Admin Replikator Instrukcja Obsługi

Win Admin Replikator Instrukcja Obsługi Win Admin Replikator Instrukcja Obsługi Monitoring Kopie danych (backup) E-mail Harmonogram lokalne i zewnętrzne repozytorium Logi Pamięć Procesor HDD Administracja sprzętem i oprogramowaniem (automatyzacja

Bardziej szczegółowo

DESlock+ szybki start

DESlock+ szybki start DESlock+ szybki start Wersja centralnie zarządzana Wersja bez centralnej administracji standalone WAŻNE! Pamiętaj, że jeśli chcesz korzystać z centralnego zarządzania koniecznie zacznij od instalacji serwera

Bardziej szczegółowo

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. Gdy już posiadamy serwer i zainstalowany na nim system Windows XP, 7 lub 8 postawienie na nim serwera stron WWW jest bardzo proste. Wystarczy

Bardziej szczegółowo

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym 1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Infomatyki Stosowanej Piotr Benetkiewicz Nr albumu: 168455 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

EXSO-CORE - specyfikacja

EXSO-CORE - specyfikacja EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.

Bardziej szczegółowo

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy Dokumentacja techniczna Młodzieżowe Pośrednictwo Pracy Spis Treści 1. Widok ogólny architektury MPP... 3 2. Warstwy systemu... 5 3. Struktura systemu/komponentów... 7 3.1 Aplikacje... 7 3.2 Biblioteki...

Bardziej szczegółowo

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7 I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 1. Relacyjne

Bardziej szczegółowo

11. Autoryzacja użytkowników

11. Autoryzacja użytkowników 11. Autoryzacja użytkowników Rozwiązanie NETASQ UTM pozwala na wykorzystanie trzech typów baz użytkowników: Zewnętrzna baza zgodna z LDAP OpenLDAP, Novell edirectory; Microsoft Active Direcotry; Wewnętrzna

Bardziej szczegółowo

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:

Bardziej szczegółowo

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych: Egzaminy na plus Stres na minus! Zdawaj bezpłatne egzaminy Microsoft, Linux, C++ z nami i zadbaj o swoją karierę. Oferujemy Ci pierwsze certyfikaty zawodowe w Twojej przyszłej karierze, które idealnie

Bardziej szczegółowo

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin HENRYKOWSKI Nr albumu: 158069 Praca magisterska na kierunku Informatyka Archiwizacja

Bardziej szczegółowo

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) Spis treści Dzień 1 I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami

Bardziej szczegółowo

INFRA. System Connector. Opis systemu

INFRA. System Connector. Opis systemu INFRA System Connector Opis systemu Spis treści Opis składników systemu... 3 Bezpieczeństwo systemu... 4 Bezpieczeństwo komunikacji... 4 Zabezpieczenie dostępu do serwisów... 4 Autoryzacja użytkowników...

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Tomasz Kapelak Nr albumu: 187404 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows Spis treści Rozdział 1. Przegląd......... 1 Wstęp................. 1 Wdrażanie technologii Data Access........ 1 Źródła danych

Bardziej szczegółowo

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ www.e-awizo.pl BrainSoft sp. z o. o. ul. Bolesława Chrobrego 14/2 65-052 Zielona Góra tel.68 455 77 44 fax 68 455 77 40 e-mail: biuro@brainsoft.pl

Bardziej szczegółowo

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Dr inż. Michał Bednarczyk Uniwersytet Warmińsko-Mazurski w Olsztynie Wydział Geodezji i Gospodarki Przestrzennej Katedra Geodezji

Bardziej szczegółowo

Referat pracy dyplomowej

Referat pracy dyplomowej Referat pracy dyplomowej Temat pracy: Wdrożenie intranetowej platformy zapewniającej organizację danych w dużej firmie na bazie oprogramowania Microsoft SharePoint Autor: Bartosz Lipiec Promotor: dr inż.

Bardziej szczegółowo

Praca w sieci z serwerem

Praca w sieci z serwerem 11 Praca w sieci z serwerem Systemy Windows zostały zaprojektowane do pracy zarówno w sieci równoprawnej, jak i w sieci z serwerem. Sieć klient-serwer oznacza podłączenie pojedynczego użytkownika z pojedynczej

Bardziej szczegółowo

7. zainstalowane oprogramowanie. 8. 9. 10. zarządzane stacje robocze

7. zainstalowane oprogramowanie. 8. 9. 10. zarządzane stacje robocze Specyfikacja oprogramowania do Opis zarządzania przedmiotu i monitorowania zamówienia środowiska Załącznik nr informatycznego 1 do specyfikacji Lp. 1. a) 1. Oprogramowanie oprogramowania i do systemów

Bardziej szczegółowo

System kontroli dostępu ACCO NET Instrukcja instalacji

System kontroli dostępu ACCO NET Instrukcja instalacji System kontroli dostępu ACCO NET Instrukcja instalacji acco_net_i_pl 12/14 SATEL sp. z o.o. ul. Budowlanych 66 80-298 Gdańsk POLSKA tel. 58 320 94 00 serwis 58 320 94 30 dz. techn. 58 320 94 20; 604 166

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http. T: Konfiguracja usługi HTTP w systemie Windows. Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http. HTTP (ang. Hypertext Transfer Protocol) protokół transferu plików

Bardziej szczegółowo

Sprawa numer: BAK.WZP Warszawa, dnia 16 sierpnia 2016 r.

Sprawa numer: BAK.WZP Warszawa, dnia 16 sierpnia 2016 r. Sprawa numer: BAK.WZP.26.18.2016.30 Warszawa, dnia 16 sierpnia 2016 r. Zaproszenie do udziału w ustaleniu wartości zamówienia publicznego 1. Zamawiający: Skarb Państwa - Urząd Komunikacji Elektronicznej

Bardziej szczegółowo

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia) Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia) WERSJA WSTĘPNA, BRAK PRZYKŁADOWYCH PYTAŃ DLA NIEKTÓRYCH PRZEDMIOTÓW Należy wybrać trzy dowolne

Bardziej szczegółowo

Dokumentacja projektu QUAIKE Architektura oprogramowania

Dokumentacja projektu QUAIKE Architektura oprogramowania Licencjacka Pracownia Oprogramowania Instytut Informatyki Uniwersytetu Wrocławskiego Jakub Kowalski, Andrzej Pilarczyk, Marek Kembrowski, Bartłomiej Gałkowski Dokumentacja projektu QUAIKE Architektura

Bardziej szczegółowo

INFORMATYKA Pytania ogólne na egzamin dyplomowy

INFORMATYKA Pytania ogólne na egzamin dyplomowy INFORMATYKA Pytania ogólne na egzamin dyplomowy 1. Wyjaśnić pojęcia problem, algorytm. 2. Podać definicję złożoności czasowej. 3. Podać definicję złożoności pamięciowej. 4. Typy danych w języku C. 5. Instrukcja

Bardziej szczegółowo

Firma Informatyczna ASDER. Prezentacja. Serwer danych lokalnych. Przemysław Kroczak ASDER 2012-08-06

Firma Informatyczna ASDER. Prezentacja. Serwer danych lokalnych. Przemysław Kroczak ASDER 2012-08-06 2012 Firma Informatyczna ASDER Prezentacja Serwer danych lokalnych Przemysław Kroczak ASDER 2012-08-06 Szanowni Państwo, W dzisiejszej coraz częściej trzeba współdzielić pliki między pracownikami/działami

Bardziej szczegółowo

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne Jarosław Kuchta Internetowe Usługi Informacyjne Komponenty IIS HTTP.SYS serwer HTTP zarządzanie połączeniami TCP/IP buforowanie odpowiedzi obsługa QoS (Quality of Service) obsługa plików dziennika IIS

Bardziej szczegółowo

Usługi sieciowe systemu Linux

Usługi sieciowe systemu Linux Usługi sieciowe systemu Linux 1. Serwer WWW Najpopularniejszym serwerem WWW jest Apache, dostępny dla wielu platform i rozprowadzany w pakietach httpd. Serwer Apache bardzo często jest wykorzystywany do

Bardziej szczegółowo

Wykaz zmian w programie WinAdmin Replikator

Wykaz zmian w programie WinAdmin Replikator Wykaz zmian w programie WinAdmin Replikator Pierwsza wersja programu 1.0.0.1 powstała w czerwcu 2010. kod źródłowy programu zawiera ponad 6 900 wierszy. Modyfikacje/zmiany w wersji 1.0.4.0 (październik

Bardziej szczegółowo

Win Admin Replikator Instrukcja Obsługi

Win Admin Replikator Instrukcja Obsługi Win Admin Replikator Instrukcja Obsługi Monitoring Kopie danych (backup) E-mail Harmonogram lokalne i zewnętrzne repozytorium Logi Pamięć Procesor HDD Administracja sprzętem i oprogramowaniem (automatyzacja

Bardziej szczegółowo

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Cena szkolenia Cena szkolenia wynosi 100 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Koszalin, 15.06.2012 r. Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Zespół projektowy: Daniel Czyczyn-Egird Wojciech Gołuchowski Michał Durkowski Kamil Gawroński Prowadzący: Dr inż.

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4 Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania. Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania. Założenia projektowe systemu NETDOC. część 1: założenia ogólne i funkcjonalność rdzenia systemu Założenia ogólne Celem projektu jest

Bardziej szczegółowo

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.

Bardziej szczegółowo

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu Polska Organizacja Turystyczna ul. Chałubińskiego 8 00-613 Warszawa Spis treści 1 Założenia wstępne... 1 1.1 Informacje wstępne... 1 1.2 Cel projektu...

Bardziej szczegółowo

Wykaz zmian w programie SysLoger

Wykaz zmian w programie SysLoger Wykaz zmian w programie SysLoger Pierwsza wersja programu 1.0.0.1 powstała we wrześniu 2011. Funkcjonalność pierwszej wersji programu: 1. Zapis logów do pliku tekstowego, 2. Powiadamianie e-mail tylko

Bardziej szczegółowo

Bezpieczeństwo systemów informatycznych

Bezpieczeństwo systemów informatycznych Politechnika Poznańska Bezpieczeństwo systemów rozproszonych Bezpieczeństwo systemów informatycznych ĆWICZENIE VPN 1. Tunele wirtualne 1.1 Narzędzie OpenVPN OpenVPN jest narzędziem służącym do tworzenia

Bardziej szczegółowo

BSX PRINTER INSTRUKCJA UŻYTKOWNIKA. Autor: Karol Wierzchołowski 30 marca 2015

BSX PRINTER INSTRUKCJA UŻYTKOWNIKA. Autor: Karol Wierzchołowski 30 marca 2015 ! BSX PRINTER INSTRUKCJA UŻYTKOWNIKA Autor: Karol Wierzchołowski 30 marca 2015 SPIS TREŚCI WSTĘP... 3 INTERFEJS PROGRAMU... 5 KONFIGURACJA PROGRAMU... 6 DRUKOWANIE PARAGONÓW I FAKTUR... 8 REJESTRACJA PROGRAMU...

Bardziej szczegółowo

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dotacje na innowacje. Inwestujemy w waszą przyszłość. PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia

Bardziej szczegółowo

Dokument Detaliczny Projektu

Dokument Detaliczny Projektu Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej

Bardziej szczegółowo

Kancelaria Prawna.WEB - POMOC

Kancelaria Prawna.WEB - POMOC Kancelaria Prawna.WEB - POMOC I Kancelaria Prawna.WEB Spis treści Część I Wprowadzenie 1 Część II Wymagania systemowe 1 Część III Instalacja KP.WEB 9 1 Konfiguracja... dostępu do dokumentów 11 Część IV

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...

Bardziej szczegółowo

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle EFEKTY KSZTAŁCENIA Wiedza Absolwent tej specjalności

Bardziej szczegółowo

ActiveXperts SMS Messaging Server

ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server to oprogramowanie typu framework dedykowane wysyłaniu, odbieraniu oraz przetwarzaniu wiadomości SMS i e-mail, a także tworzeniu własnych

Bardziej szczegółowo

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy

Bardziej szczegółowo

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji: 2012-03-08

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji: 2012-03-08 Nr: 12 Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW Data modyfikacji: 2012-03-08 Co zawiera ten dokument: Ten dokument zawiera informacje o możliwościach i sposobie

Bardziej szczegółowo

Zapewnienie dostępu do Chmury

Zapewnienie dostępu do Chmury Zapewnienie dostępu do Chmury O bezpiecznym i sprawnym dostępie do Chmury i danych w Chmurze. Marcin Tynda Business Development Manager Grupa Onet S.A. Warszawa, 24.06.2013 1 Kto jest kim Klient? Kim jest

Bardziej szczegółowo

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych Spis treści Wprowadzenie... ix Organizacja ksiąŝki... ix Od czego zacząć?... x Konwencje przyjęte w ksiąŝce... x Wymagania systemowe... xi Przykłady kodu... xii Konfiguracja SQL Server 2005 Express Edition...

Bardziej szczegółowo

Zapytanie ofertowe 13-09-2013

Zapytanie ofertowe 13-09-2013 Zapytanie ofertowe W związku z realizacją projektu współfinansowanego ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Działania 8.2 Programu Operacyjnego Innowacyjna Gospodarka 2007-2013,

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition. WebServices. Język XML. Serwer aplikacji GlassFish. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

Przetwarzanie danych w chmurze

Przetwarzanie danych w chmurze Materiały dydaktyczne Katedra Inżynierii Komputerowej Przetwarzanie danych w chmurze Modele przetwarzania w chmurze dr inż. Robert Arsoba Robert.Arsoba@weii.tu.koszalin.pl Koszalin 2017 Wersja 1.0 Modele

Bardziej szczegółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. Informacje ogólne. Jednym z takich systemów jest Mambo. MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację

Bardziej szczegółowo

Instrukcja instalacji i obsługi programu Szpieg 3

Instrukcja instalacji i obsługi programu Szpieg 3 COMPUTER SERVICE CENTER 43-300 Bielsko-Biała ul. Cieszyńska 52 tel. +48 (33) 819 35 86, 819 35 87, 601 550 625 Instrukcja instalacji i obsługi programu Szpieg 3 wersja 0.0.2 123 SERWIS Sp. z o. o. ul.

Bardziej szczegółowo

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA VPN Virtual Private Network Użycie certyfikatów niekwalifikowanych w sieciach VPN wersja 1.1 Spis treści 1. CO TO JEST VPN I DO CZEGO SŁUŻY... 3 2. RODZAJE SIECI VPN... 3 3. ZALETY STOSOWANIA SIECI IPSEC

Bardziej szczegółowo

Połączenia. Obsługiwane systemy operacyjne. Instalowanie drukarki przy użyciu dysku CD Oprogramowanie i dokumentacja

Połączenia. Obsługiwane systemy operacyjne. Instalowanie drukarki przy użyciu dysku CD Oprogramowanie i dokumentacja Strona 1 z 6 Połączenia Obsługiwane systemy operacyjne Korzystając z dysku CD z oprogramowaniem, można zainstalować oprogramowanie drukarki w następujących systemach operacyjnych: Windows 8.1 Windows Server

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

LANDINGI.COM. Case Study. Klient Landingi.com. Branża IT, marketing i PR. Okres realizacji od grudnia 2013 do chwili obecnej.

LANDINGI.COM. Case Study. Klient Landingi.com. Branża IT, marketing i PR. Okres realizacji od grudnia 2013 do chwili obecnej. Klient Landingi.com Branża IT, marketing i PR Okres realizacji od grudnia 2013 do chwili obecnej Rodzaj usługi doradztwo, hosting, Cloud Computing Amazon Web Services, zarządzanie serwerami Doradztwo Hosting

Bardziej szczegółowo

Ełk, dn. 15.10.2013 r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, 19-300 Ełk. Nip 848-172-84-22 ZAPYTANIE OFERTOWE

Ełk, dn. 15.10.2013 r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, 19-300 Ełk. Nip 848-172-84-22 ZAPYTANIE OFERTOWE Ełk, dn. 15.10.2013 r. DOMSET Marcin Brochacki ul. Wojska Polskiego 43 lok. 3, 19-300 Ełk Nip 848-172-84-22 ZAPYTANIE OFERTOWE Firma DOMSET Marcin Brochacki zwraca się z prośbą o przesłanie oferty cenowej

Bardziej szczegółowo

System Obsługi Wniosków

System Obsługi Wniosków System Obsługi Wniosków Wersja 2.0 1 System Obsługi Wniosków wersja 2.0 System Obsługi Wniosków to nowoczesne rozwiązanie wspierające proces obsługi wniosków o produkty bankowe. Pozwala na przyjmowanie,

Bardziej szczegółowo

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA Informatyka, studia dzienne, inż. I st. semestr VI Podstawy Kryptografii - laboratorium 2010/2011 Prowadzący: prof. dr hab. Włodzimierz Jemec poniedziałek, 08:30 Data oddania: Ocena: Marcin Piekarski 150972

Bardziej szczegółowo

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1 Instrukcja obsługi ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1 1 ArtPlayer to proste oprogramowanie umożliwiające odtwarzanie plików video i ich wybór poprzez protokół

Bardziej szczegółowo

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji OMNITRACKER Wersja testowa Szybki przewodnik instalacji 1 Krok 1:Rejestracja pobrania (jeżeli nie wykonana dotychczas) Proszę dokonać rejestracji na stronieomninet (www.omnitracker.com) pod Contact. Po

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

Panda Managed Office Protection. Przewodnik. Panda Managed Office Protection. Przewodnik

Panda Managed Office Protection. Przewodnik. Panda Managed Office Protection. Przewodnik Panda Managed Office Protection. Przewodnik Panda Managed Office Protection Przewodnik Maj 2008 Spis treści 1. Przewodnik po konsoli administracyjnej i monitorującej... 3 1.1. Przegląd konsoli... 3 1.2.

Bardziej szczegółowo

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs. www.poczta.greenlemon.pl

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs. www.poczta.greenlemon.pl Instrukcja do panelu administracyjnego do zarządzania kontem FTP WebAs www.poczta.greenlemon.pl Opracowanie: Agencja Mediów Interaktywnych GREEN LEMON Spis treści 1.Wstęp 2.Konfiguracja 3.Konto FTP 4.Domeny

Bardziej szczegółowo

Konspekt pracy inżynierskiej

Konspekt pracy inżynierskiej Konspekt pracy inżynierskiej Wydział Elektryczny Informatyka, Semestr VI Promotor: dr inż. Tomasz Bilski 1. Proponowany tytuł pracy inżynierskiej: Komunikator Gandu na platformę mobilną Android. 2. Cel

Bardziej szczegółowo

Połączenia. Obsługiwane systemy operacyjne. Strona 1 z 5

Połączenia. Obsługiwane systemy operacyjne. Strona 1 z 5 Strona 1 z 5 Połączenia Obsługiwane systemy operacyjne Korzystając z dysku CD Oprogramowanie i dokumentacja, można zainstalować oprogramowanie drukarki w następujących systemach operacyjnych: Windows 8

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Referat pracy dyplomowej

Referat pracy dyplomowej Referat pracy dyplomowej Temat pracy: Projekt i implementacja oprogramowania dla salonu kosmetycznego. Autor: Wojciech Rubiniec Promotor: dr inż. Roman Simiński Kategorie: Oprogramowanie użytkowe Słowa

Bardziej szczegółowo

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o. STRONA GŁÓWNA ` Usługa earchiwizacja.pl przeznaczona jest zarówno dla osób indywidualnych, jak i firm. Wykorzystuje zasadę przetwarzania danych w chmurze. Pozwala to na dostęp do własnej bazy dokumentów

Bardziej szczegółowo

Instrukcja konfiguracji funkcji skanowania

Instrukcja konfiguracji funkcji skanowania Instrukcja konfiguracji funkcji skanowania WorkCentre M123/M128 WorkCentre Pro 123/128 701P42171_PL 2004. Wszystkie prawa zastrzeżone. Rozpowszechnianie bez zezwolenia przedstawionych materiałów i informacji

Bardziej szczegółowo

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami Serwer SSH Serwer SSH Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami Serwer SSH - Wprowadzenie do serwera SSH Praca na odległość potrzeby w zakresie bezpieczeństwa Identyfikacja

Bardziej szczegółowo

Dodatkowo, w przypadku modułu dotyczącego integracji z systemami partnerów, Wykonawca będzie przeprowadzał testy integracyjne.

Dodatkowo, w przypadku modułu dotyczącego integracji z systemami partnerów, Wykonawca będzie przeprowadzał testy integracyjne. Załącznik nr 1a do Zapytania ofertowego nr POIG.08.02-01/2014 dotyczącego budowy oprogramowania B2B oraz dostawcy sprzętu informatycznego do projektu pn. Budowa systemu B2B integrującego zarządzanie procesami

Bardziej szczegółowo