Wykład 7. Java Enterprise Edition. Serwer Aplikacji GlassFish. Język

advertisement
Wybrane działy
Informatyki Stosowanej
Java Enterprise Edition.
WebServices. Język XML.
Serwer aplikacji GlassFish.
Dr inż. Andrzej Czerepicki
[email protected]
http://www2.wt.pw.edu.pl/~a.czerepicki
Aplikacje rozproszone
• Rozproszone
dane
• Rozproszone
obliczenia
• Rozproszeni
użytkownicy
Aplikacje rozproszone (c.d.)
• Rozproszenie danych
• Dane mogą znajdować się na wielu serwerach
• Dane mogą być heterogeniczne (różnorodne)
• Rozproszenie obliczeń
• Serwery mogą udostępniać swoją moc obliczeniową w
zależności od potrzeb użytkowników lub aplikacji
• Rozproszenie użytkowników
• Użytkownicy łączą się zdalnie z zasobami i korzystają z
usług rozproszonych
Cechy aplikacji rozproszonych
Platforma
Java Enterprise Edition
• Platforma do tworzenia współczesnych
skalowalnych rozproszonych
wieloplatformowych aplikacji biznesowych
• Wykorzystuje język Java jako podstawowy
• Celem powstania platformy była integracja
usług programowych oraz ułatwienie budowy
skomplikowanych aplikacji sieciowych
• Znana również jako J2EE (nazwa jest
przestarzała)
• W roku 2017 planowana jest wersja Java EE 8
Składniki JEE
Architektura Java EE
Architektura Java EE (inny
przekrój)
Warstwa klienta (Client tier)
• Aplikacje pracujące na komputerze klienta
• Aplikacje desktopowe
• Aplikacje WWW działające w przeglądarce internetowej
(HTML + JavaScript + Aplety + etc.)
• Realizowana funkcjonalność:
• Interfejs użytkownika GUI
• Komunikacja z warstwą serwera: zlecanie zadań oraz
pobieranie wyników przetwarzania danych
• Brak bezpośredniej komunikacji z bazą danych
• Nie są przechowywane / przetwarzane dane poufne
Warstwa serwera: Java EE Server
• Aplikacje dynamiczne działające na serwerze:
•
•
•
•
Aplikacje typu serwlet
Dynamiczne strony JSP
Strony JSF (połączenie JSP + serwletów)
Komponenty EJB (Enterprise Java Beans) – klasy
obiektów w Javie, które mogą być wykorzystywane w
aplikacjach rozproszonych
• Warstwa realizuje algorytmy przetwarzania danych
(tzw. „logika biznesowa aplikacji”)
Warstwa danych: Database server
• Oprogramowanie realizujące funkcje przechowania
danych, ich przetwarzania oraz utrwalania w
pamięci zewnętrznej
• Najczęściej tę rolę pełni relacyjna baza danych:
• Dane są przechowywane w tabelach
• Język programowania SQL
• Interfejs JDBC (Java Database Connectivity)
• Pośrednictwo w komunikacji pomiędzy BD a kodem w
warstwie biznesowej
Komponenty aplikacji Java EE
• Komponent – jednostka realizująca określone
zadanie oraz będąca w stanie komunikować się z
innymi komponentami
• Komponenty JEE:
• Aplikacje klienckie oraz aplety
• Serwlety, JPS, JSF
• Komponenty Java Beans (EJB)
• Wszystkie komponenty są wykonywane na
serwerze Java Server
Technologia Enterprise Java Beans
• EJB realizuje logikę biznesową aplikacji
• Logika prezentacji musi być zrealizowana przez
zewnętrzne komponenty
Technologia Enterprise Java Beans
• EJB – technologia komponentów pracujących po
stronie serwera
• Komponenty (ang. Beans) są samodzielnymi
„klockami” z których można budować złożone
aplikacje
• Komponenty wymagają tzw. środowiska
uruchomieniowego (kontenera) tj. aplikacji
zewnętrznej:
• Dostarczającej interfejs wejścia – wyjścia
• Zapewniająca bezpieczeństwo, komunikacje oraz
transakcje
Koncepcja działania EJB
Komponent
„PKP”
Komponent
„MZA”
Aplikacja
„Bilet
online”
Komponent
„ZTM”
Bank
…
Kiedy EJB ma zastosowanie
• Głównym atutem technologii jest skalowalność
aplikacji:
• Przy zwiększeniu obciążenia łatwo można dodać kolejny
serwer do systemu i umieścić na nim część
komponentów
• Kosztem takiego rozwiązania jest wzmożona
komunikacja sieciowa
• Kiedy klienci aplikacji rozproszonej są różnorodni:
• Przeglądarki internetowe
• Aplikacje desktopowe
• Inne usługi internetowe
Rodzaje „ziaren” EJB
• Bezstanowe:
• Stan sesji nie jest
zapamiętywany
• Obsługa anonimowych klientów
• Wysoka skalowalność
• Stanowe
• Każdy klient jest obsługiwany
osobno
• Dane klienta są
przechowywane na serwerze
Osadzanie EJB na serwerze
• Komponenty EJB są osadzane wewnątrz kontenerów
• Kontener jest częścią platformy JEE i działa na JEE
Server
Interfejs
pomocniczy
tłumaczy obiekt
na opis uniwersalny
Protokół
Usługa
Object Request Broker
organizuje komunikację
pomiędzy serwerami
Serwer odbiorcy usług
Serwer dostawcy usług
Porównanie EJB z innymi
technologiami rozproszonych obiektów
Server aplikacji GlassFish
• Serwer aplikacji – platforma zapewniająca
funkcjonowanie, programowanie,
dystrybucję oraz wspieranie sieciowych
aplikacji przemysłowych
• GlassFish Open Source Server – wersja
niekomercyjna otwarta
• GlassFish Enterprise Server – wsparcie przez
producenta, większa skalowalność
Funkcjonalność GlassFish
• Wsparcie języków programowania: Java, Ruby, PHP,
Python etc.
• Modułowa struktura
• Skalowalność aplikacji
• Wsparcie wirtualizacji
• Obsługa baz danych JDBC
• Rozproszone przetwarzanie danych: Klastry
serwerów, Replikacja, zapewnienie HighAvailability,
wsparcie Application deployment
Panel administrowania GlassFish
Klastry GlassFish
WebServices – usługi sieciowe
• WS – współczesna technologia realizacji
rozproszonych usług sieciowych
• Założenia:
• WS - samodzielny komponent programowy
• WS potrafi się „samodokumentować” tj. programista nie
musi deklarować osobno kodu a interfejsu usługi
• WS jest rejestrowane w rejestrze usług
• Aplikacja konsumencka „odkrywa” w sieci komponent
WS i może korzystać z jego usług w trybie zdalnego
wywołania
Rejestr usług
UDDI
Rejestr UDDI
• Specjalizowana baza danych przechowująca
informacje o WS dostępnych w sieci
Protokół SOAP
• SOAP – protokół oparty na języku XML
• SOAP służy od przekazywania wywołań zdalnych
komponentów WS:
• Przekazywanie żądania zdalnego wywołania usługi
• Przekazywanie wyników wywołania usługi
• SOAP współpracuje z wieloma protokołami
transportowymi (najczęściej HTTP)
Przykładowe żądanie SOAP
Przykładowa odpowiedź SOAP
Język WSDL (Web Service Description Language)
Przykład dokumentu WSDL
Język XML
• eXtensible Markup Language – uniwersalny
niezależny od platformy strukturalny język
reprezentacji dokumentów lub danych
• Uniwersalny: może być stosowany do wymiany
danych pomiędzy dowolnymi aplikacjami
• Strukturalny: zawiera dane oraz jednocześnie
opisuje ich strukturę
• Niezależny od platformy: jest stosowany w różnych
systemach operacyjnych
Przykładowy dokument XML
Ogólna struktura dokumentu XML
<xml>
<obiekt param1="value1" param2="value2" …>
<obiekt_włożony>
…
</obiekt_włożony>
…
</obiekt>
…
</xml>
Schemat dokumentu XML
• Dokument XML może posiadać tzw. schemat – opis
pól oraz ich typów
Błąd
walidacji
Schemat
XSD
Walidacja
Dokument
XML
Sukces
Zastosowanie XML
• Opis zasobów
• Uniwersalny sposób na konfigurację aplikacji
komputerowej, usługi sieciowej, etc. Przykład: plik
Web.XML serwera Apache, lub pliki WSDL konfiguracji
usług sieciowych WebService
• Elektroniczna wymiana danych (EDI)
• Format przekazywania danych pomiędzy systemami B2B,
np. deklaracje podatkowe
• Protokoły komunikacyjne
• Ściśle sformalizowane podzbiory XML stosowane do
przekazywania komunikatów pomiędzy elementami
rozproszonego systemu informatycznego, np. SOAP
• Etc. etc.
Obsługa formatu XML w
aplikacjach komputerowych
• Zapis pliku XML jest
prostym zadaniem dla
programisty
• Odczyt pliku XML jest
bardziej złożonym
zadaniem
Aplikacja
Aplikacja
?
Przesłanie dokumentu
Biblioteka JAXB
• Java Architecture for XML Binding – standardowa
(od v. 6) biblioteka Javy do przetwarzania
dokumentów XML
• Podstawowe pojęcia:
• Marshalling – zapis obiektu do XML
• Unmarshalling – odczyt obiektu z XML
• Referencje:
• import javax.xml.bind.annotation.XmlAttribute;
• import javax.xml.bind.annotation.XmlElement;
• import javax.xml.bind.annotation.XmlRootElement;
Stosowanie atrybutów JAXB
Konstruktor bez parametrów
Zapis obiektu do pliku XML
Odczyt obiektu z pliku XML
Document Object Model (DOM)
• DOM – uniwersalny standard modelowania
dokumentów XML w pamięci komputera
• Znaczniki XML są reprezentowane w postaci
wierzchołków drzewa
• Hierarchia znaczników XML jest reprezentowana za
pomocą krawędzi drzewa
• DOM API – biblioteka wspomagająca tworzenie
oraz przeszukiwanie drzew DOM
• XPath – język do wykonania zaawansowanych
zapytań w DOM
Download
Random flashcards
Create flashcards