Internet i jego zastosowania Wprowadzenie do platformy J












































- Slides: 44
Internet i jego zastosowania Wprowadzenie do platformy J 2 EE 1
Internet i jego zastosowania Co to jest J 2 EE • 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 J 2 EE - serwisy 3
Internet i jego zastosowania Model J 2 EE • Model J 2 EE składa się z następujących elementów – J 2 EE Platform Specyfikacja platformy – J 2 EE Programming Model Zbiór wskazówek tzw. design patterns wraz z propozycją konkretnego modelu aplikacji – J 2 EE Blue. Prints – J 2 EE Compatibility Test Suite Zbiór testów umożliwiający weryfikację zgodności ze specyfikacją konkretnej implementacji J 2 EE – J 2 EE Reference Implementation Dostarczona przez twórcę specyfikacji, firmę SUN wzorcowa implementacja specyfikacji 4
Internet i jego zastosowania Model aplikacji opartej na J 2 EE • 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 J 2 EE – cd. 6
Internet i jego zastosowania Serwer aplikacji • Manager komponentów J 2 EE – 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 J 2 EE 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 J 2 EE • • 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 Http. Servlet. Response oraz Http. Servlet. Request 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ć Java. Beans, 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 J 2 EE 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 J 2 EE 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 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 Web. Services 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 Web. Services – 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 App 2 App Web. Services • 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 SOAP 1. 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 SOAP 1. 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