Bez tytułu slajdu

Download Report

Transcript Bez tytułu slajdu

Internet i jego zastosowania
Wprowadzenie do platformy
J2EE
1
Internet i jego zastosowania
Co to jest J2EE
•
Specyfikacja firmy Sun Microsystems, która umożliwia budowanie
aplikacji wielowarstwowych (n-tier); systemów enterprise które
dostarczają
– Wysokiej niezawodności
Zapewnienie dostępu do zasobów wg reguły 24/7
– Bezpieczeństwa
Zapewnienie bezpieczeństwa użytkowników systemu i integracji
danych
– Trwałych i skalowlanych
• Wszystkie biznes transakcje są poprawnie zakończone
• Czas odpowiedzi na stałym poziomie wraz z wzrostem liczby
użytkowników
2
Internet i jego zastosowania
J2EE - serwisy
3
Internet i jego zastosowania
Model J2EE
• Model J2EE składa się z następujących elementów
– J2EE Platform
Specyfikacja platformy
– J2EE Programming Model
Zbiór wskazówek tzw. design patterns wraz z propozycją
konkretnego modelu aplikacji – J2EE BluePrints
– J2EE Compatibility Test Suite
Zbiór testów umożliwiający weryfikację zgodności ze
specyfikacją konkretnej implementacji J2EE
– J2EE Reference Implementation
Dostarczona przez twórcę specyfikacji, firmę SUN wzorcowa
implementacja specyfikacji
4
Internet i jego zastosowania
Model aplikacji opartej na J2EE
• Architektura aplikacji dostarczająca serwisów o architekturze
wielowarstwowej która posiada takie cechy jak skalowalność,
przenośność, łatwa administracja
• Architekt systemu może się skupić na logice biznesowej,
natomiast serwisy niskiego poziomu jak transakcyjność, obsługa
wielu klientów są dostarczane przez platformę (wielowątkowość)
• W tym modelu logika biznesowa jest implementowana w
poziomie middle modelu trójwarstwowego, który jest podzielony
na małe kawałki a każdy z nich ma swoją określoną funkcję,
każdy z tych kawałków w zależności od typu może być
wykonywany w Web-Container lub EJB-Container
• Kontenery zarządzają cyklem życia komponentów i dostarczają
mechanizmów dostępu do zasobów systemu, które są używane
przez te komponenty
5
Internet i jego zastosowania
Model aplikacji opartej na J2EE – cd.
6
Internet i jego zastosowania
Serwer aplikacji
• Manager komponentów J2EE – serwlety, JSP EJB, ich
pulowalność (resource pooling) oraz cykl życia
• Obsługa protokołów komunikacji – HTTP, HTTPS,
RMI, IIOP
• Zarządzanie zasobami – połączenia i wielowątkowość
• Manager transakcji
• Usługi zapewniające bezpieczeństwo
• Perzystencja
• Obsługa dostępu do EIS
• Nowa jakość – kontener dla komponentu jest jak
system operacyjny dla procesu
7
Internet i jego zastosowania
Deployment descriptors
• Opisuje aplikację, a dokładniej wszystkie komponenty
J2EE jakie się na nią składają
• Format plików oparty na standardzie XML
• deployment descriptors istnieją dla następujących
komponentów
- komponenty webowe (.war) – web.xml
- komponenty EJB (.jar) – ejb-jar.xml
- Cała aplikacja (.war + .jar = .ear) – application.xml
• deployment descriptors specyficzne dla serwera aplikacji
8
Internet i jego zastosowania
9
Deployment descriptors – cd.
Serwlety, Stony JSP Zawartość
statyczna(HTML, images),
biblioteki Java, TLDs
EJBs
Deployment Descriptor
web.xml
Deployment Descriptor
ejb-jar.xml
Deployment Descriptor
application.xml
Internet i jego zastosowania
Przegląd technologii wchodzących w skład J2EE
•
•
•
•
•
•
•
Java Naiming Directory Interface (JNDI)
Serwlety, JSP
EJB
Konektory
JTA/JTS
JMS
Webservices
10
Internet i jego zastosowania
Java Naming and Directory Interface
• Zasadniczy komponent Java 2 Platform Enterprise
Edition
• Pomost pomiędzy usługami nazewnictwa
i katalogowania
• Interfejs do lokalizacji zasobów
• Jednolity system dostępu do każdego rodzaju
informacji usług katalogowania (referencje
bezpieczeństwa, numery telefonów, elektroniczne
i pocztowe adresy, preferencje aplikacji, adresy
sieciowe, konfiguracje maszyn, itd.)
11
Internet i jego zastosowania
Java Naming and Directory Interface – cd.
• Pojedyncze API dostępu do katalogów o różnych
protokołach dostępu
• Izolacja aplikacji od protokołów i szczegółów
implementacyjnych
• Rozszerzalny interfejs. Przyszli dostarczyciele usług
katalogowania będą mogli dodawać nowe usługi do
JNDI bez ingerowania w kod klienta
• Czytanie i zapisywanie całych obiektów Java do
katalogów
• Łączenie różnych typów katalogowania
12
Internet i jego zastosowania
Architektura JNDI
13
Internet i jego zastosowania
Podobieństwa architektury JNDI i JDBC
• W JDBC jest jedno ujednolicone API do wykonywania
operacji na bazie danych. W JNDI, klienci usług
nazewnictwa i katalogowania również korzystają
z jednolitego API
• W JDBC dostarczyciele relacyjnych bazy danych
tworzą sterowniki umożliwiające korzystanie z tychże
baz.
W JNDI dostarczyciele usług katalogowania tworzą
SPI, umożliwiające korzystanie z ich specyficznych
katalogów.
14
Internet i jego zastosowania
Kluczowe pakiety JNDI
• The naming package, javax.naming, używany w celu
dostępu do usługi nazw. Usługi nazw kojarzą nazwy z obiektami
i dostarczają udogodnień do znajdowania obiektów na
podstawie ich nazw.
• The directory package, javax.naming.directory, używany
zarówno do dostępu do usług nazw, jak i usług katalogowych.
Pakiet ten dziedziczy po javax.naming, tak więc umożliwia
wykonanie tych samych operacji jakie są dostępne w
javax.naming. Dodatkowo dodaje możliwość manipulowania
atrybutami skojarzonymi z obiektami.
• The service provider interface (SPI), javax.naming.spi,
jest interfejsem, rozszerzanym przez doręczycieli usług.
15
Internet i jego zastosowania
Serwlety
• Komponenty wykonywane po stronie serwera, które
odpowiadają na żądania klientów przez protokół HTTP/HTTPS
• W modelu MVC (Model Viewer Controler) pełnią rolę Controlera
• Cechy
– lekkie komponenty, wykonywane wewnątrz Web-Containera
– bezpieczeństwo, w przeciwieństwie do CGI mają ograniczony dostęp do
zasobów systemowych
– programista dysponuje bogatym zestawem funkcji Java Servlet API
np. obsługa sesji HTTP (session tracking), obiekty HttpServletResponse oraz
HttpServletRequest reprezentujące odpowiednio żądanie klienta i odpowiedź
serwera
16
Internet i jego zastosowania
JSP
• strony HTML/XML wraz z osadzonym kodem Java
• strony JSP są kompilowane do serwletów, przez co
także są wykonywane wewnątrz Web-Container
• do klienta jako wynik zapytania zwracany jest
HTML/XML
• W modelu MVC (Model Viewer Controler) pełnią
funkcję View
• Cechy
– oparte na technologii serwletów
– mają charakter skryptowy, mogą używać JavaBeans, Taglibs
– rekompilowane automatycznie po każdej zmianie
17
Internet i jego zastosowania
Engine JSP & Servlets
18
Internet i jego zastosowania
Serwlety i JSP – porównanie
• obie technologie są równoważne, czyli każdy serwlet
można zaprojektować jako stronę JSP i odwrotnie, ale
biorąc pod uwagę model MVC odgrywają one różne
role
• JSP zapewniają podział prac pomiędzy programistom
a designerem stron HTML
• serwletów można używać gdy chcemy wykonać
czynności inicjalizacyjne lub zapisywać dane w
formacie binarnym do klienta
19
Internet i jego zastosowania
Enterprise Java Beans
• Zadanie to definiowanie logiki biznesowej systemu
• Komponenty o właściwościach modularnych, skalowalnych
• Wykonywane wewnątrz EJB Containera, przez co są
komponentami transakcyjnymi
• Trzy typy EJB: session, entity i message driven beans
• Zgodnie z założeniami J2EE logika biznesowa
implementowana jest w session EJBs, natomiast entity
EJBs są obiektową reprezentacją informacji w bazie
danych. Klient powinien odwoływać się do session EJB
a te następnie wywołują enity EJBs, innymi słowy ich
wywołania powinny zostać wewnątrz kontenera
20
Internet i jego zastosowania
Enterprise Java Beans – cd.
• Stateless Session EJB – nie zachowuje informacji o stanie
pomiędzy kolejnymi wywołaniami, są one obiektami
pulowalnymi tzn. klient przy jego wywołaniu otrzymuje już
istniejącą instancję, która po każdym wywołaniu metody
biznesowej jest zwracana z powrotem do puli
• Statefull Session EJB - każda instancja obsługuje jednego
klienta i co ważne zachowuje swój stan przy każdym kolejnym
odwołaniu, dlatego mogą być one używane w przypadku gdy
chcemy w nim przechowywać informacje dotyczące sesji klienta
• Entity EJB – odpowiedzialne za perzyztencję systemu, która
może być obsługiwana bezpośrednio przez kontener (CMPContainer Managed Persistence) lub też przez programistę
(BMP-Bean Managed Persistence). Każda instancja entity EJBs
jest identyfikowany przez obiekt primary key.
• Message Driven Beans – wykorzystywane w systemach o
architekturze MOM (Message Oriented Middleware),
komponenty sterowane komunikatami np. JMS
21
Internet i jego zastosowania
Enterprise Java Beans – cd.
22
Internet i jego zastosowania
Transakcja - definicja
Transakcja – seria operacji, która wydają się
wykonywać jak jedna duża atomowa operacja.
Wszystkie operacje uczestniczące w tej
jednostkowej operacji powinny zakończyć się
sukcesem, niepowodzeniem, jak i wyjść
z kryzysu razem.
23
Internet i jego zastosowania
Własności transakcji - ACID
•
•
•
•
Atomowość
Konsystencja
Izolacja
Trwałość
24
Internet i jego zastosowania
Transakcje w systemach biznesowych
• Domeny: finanse, bankowość, handel elektroniczny
• Złożoność wymagań biznesowych współczesnych
aplikacji powoduje, iż przetwarzanie transakcji to
jeden z najbardziej złożonych segmentów aplikacji
rozproszonych
25
Internet i jego zastosowania
Architektura przetwarzania transakcji
Komponenty tej architektury
• Komponenty aplikacji
• Menedżer zasobów
• Menedżer transakcji
26
Internet i jego zastosowania
Menadżer transakcji i zasobów
27
Internet i jego zastosowania
Sprzężenie JTS i JTA
28
Internet i jego zastosowania
Integracja J2EE z systemami EIS
•
•
•
•
•
Różne systemy operacyjne
Różne języki programowania
Wiele baz danych
Rozbudowana infrastruktura LAN
Trudny dostęp poprzez protokół
HTTP
Purchased
Apps
29
Internet i jego zastosowania
Adaptery Enterprise Application Integrator - EAI
Architektura konektorów
• Jak komunikować się z poziomu serwera aplikacji ze
systemami heterogenicznymi
• Określa standard dzięki któremu nasza aplikacja w
razie potrzeby może być przeniesiona na serwer
aplikacji innego producenta
• Umożliwia napisanie adaptera do odpowiedniego
systemu w charakterze wtyczki
30
Internet i jego zastosowania
Architektura konektorów – cd.
•
Resource adapter –
komunikacja na poziomie
serwer aplikacji – EIS,
odpowiedzialny za pulę
połączeń, transakcyjność,
bezpieczeństwo
•
Interfejs CCI (Common
Client Interface)
umożliwia wykorzystanie
zasobów poprzez API
wykorzystywane po stronie
klienta
31
Internet i jego zastosowania
Java Messaging Service
Java Messaging Service to usługa niezawodnej,
asynchronicznej wymiany komunikatów.
Architektura JMS opiera się na scentralizowanym
zarządzaniu rozsyłaniem informacji w systemie.
32
Internet i jego zastosowania
Architektura JMS
33
Internet i jego zastosowania
Architektura JMS – cd.
•
JMS provider: system komunikatów implementujący interfejs JMS i
dostarczający cech administracyjnych.
 JMS clients: programy lub komponenty napisane w języku Java, które
produkują i konsumują komunikaty
 Messages: obiekty, w których przesyłana jest informacja pomiędzy
klientami JMS
 Administered objects: prekonfigurowane obiekty JMS stworzone
przez administratora do użytku klientów. Dwa rodzaje: destinations
i connection factories.
 Native clients: programy, które używają natywne API kliencie produktu
kolejkowego zamiast JMS API.
34
Internet i jego zastosowania
Model point-to-point
35
Internet i jego zastosowania
Model point-to-point – cd.
• Każdy komunikat ma tylko jednego konsumenta
• Nie ma żadnych zależności czasowych pomiędzy nadawcą,
a odbiorcą komunikatu. Odbiorca może pobrać komunikat
niezależnie od tego, czy był uruchomiony, gdy klient wysłał
ten komunikat, czy też nie
• Odbiorca potwierdza udane przetworzenie komunikatu
Stosuj, gdy chcesz, aby każdy komunikat wysłany został
przetworzony z sukcesem przez konsumenta.
36
Internet i jego zastosowania
Model publish/subscribe
37
Internet i jego zastosowania
Model publish/subscribe – cd.
• Każdy komunikat może mieć wielu konsumentów
• Jest zależność czasowa pomiędzy nadawcami i odbiorcami,
ponieważ klient, który subskrybował się do forum może
konsumować tylko komunikaty publikowane po jego subskrypcji,
i musi pozostawać aktywnym, aby konsumować komunikaty
Stosuj, gdy chcesz, aby każdy komunikat był przetwarzany
przez zero, jednego lub wielu konsumentów.
38
Internet i jego zastosowania
WebServices
Infrastruktura niezależna od języka
programowania i platformy dla luźno
połączonych (ang. loosely-coupled),
wspólnie komunikujących się aplikacji
poprzez mechanizmy Internet.
39
Internet i jego zastosowania
WebServices – cd.
• Niezależność od platformy i języka programowania
Oddzielenie specyfikacji oraz implementacji
• Luźno połączone
Oparte na wymianie komunikatów – komunikacja synchroniczna
lub asynchroniczna
• Komunikacja (ang. interoperability)
Oparta na protokołach
• Poprzez internet
Brak centralnego punktu przetwarzania, wykorzystanie
odpowiednich protokołów transportowych (np. HTTP)
40
Internet i jego zastosowania
Komunikacja App2App WebServices
• Protokół transportowy
HTTP/HTTPS, SMTP
• Kodowanie (format) danych
SOAP (Simple Object Access Protocol)
• Opis interfejsów
WSDL (Web Services Description Language)
• Opis serwisu oraz lokalizacja
UDDI (Universal Description, Discovery and
Integration)
• Bezpieczeństwo
WS-Security, XML-Signature
41
Internet i jego zastosowania
42
SOAP
• Protokół oparty na XML
– Określa sposób kodowania
danych
– Reprezentuje składnie zdalnych
wywołań (RPC)
• Loosely coupled
– Brak zdalnych referencji
• Niezależny od warstwy
transportowej
• „SOAP with Attachments” pozwala na przesyłanie
specyficznych danych
SOAP1.1 Message
Structure
SOAP
Envelope
Header
Entries
[Header
Element]
Body
Element
[Fault
Element]
Internet i jego zastosowania
WSDL
• Dokument WSDL opisuje
– Funkcjonalność
– Lokalizacje
– Sposób wywołania
• Podobny do IDL, ale bardziej rozszerzalny
• Definiuje mapowania dla SOAP1.1, HTTP, GET/POST
and MIME
• Dokumenty WSDL mogą być udostępniane
w serwisach UDDI
43
Internet i jego zastosowania
Dziękuję za Uwagę
44