Wprowadzenie do platformy J2EE

Slides:



Advertisements
Podobne prezentacje
Mechanizmy pracy równoległej
Advertisements

Sieci komputerowe Usługi sieciowe Piotr Górczyński 27/09/2002.
Tworzenie portali z wykorzystaniem technologii Sun Java Enterprise Systems Joanna Kosińska
WEB SERVICE Stefan Rutkowski.
CORBA Łukasz Wnęk.
ADAM Active Directory w trybie aplikacyjnym
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
Uwierzytelnianie i autoryzacja dostępu do portali
Artur Jonak empolis Polska Sp. z o.o.
XML w integracji aplikacji
XML w integracji aplikacji 11 grudnia XML w integracji aplikacji Cel: umożliwienie wymiany danych pomiędzy aplikacjami: aplikacje/komponenty/moduły.
ISOiWUT Internetowy System Oferowania i Wyszukiwania Usług Transportowych.
Projektowanie Aplikacji Komputerowych
Architektura systemu Gra strategiczna „Strusia Jama”
Opracował: Patryk Kołakowski(s1715)
Internet Communication Engine
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
Systemy operacyjne.
Platforma J2EE korporacyjny standard wytwarzania złożonych systemów informatycznych Autor: Jarosław Lis Warszawa, 2006r.
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Artur Szmigiel Paweł Zarębski Kl. III i
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Architektura SOA.
Tomasz Hankus Jarosław Janik Konrad Tendera
Platforma udostępniająca skalowalną komunikację w środowisku rozproszonym Tomasz Hankus Jarosław Janik Konrad Tendera Opiekun: dr inż. Tomasz Szydło Prowadzący:
Systemy Rozproszone TECHNOLOGIA JAVA 2 ENTERPRISE EDITION PRZEMYSŁAW SOŁTAN
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Rozwój aplikacji przy wykorzystaniu ASP.NET
Integracja aplikacji Wykład 2
Web Serwisy w praktyce Technologie internetowe ( )
Architektura Systemu MunSOL
Protokół Komunikacyjny
Message-Driven Bean.
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Opracował : Przemysław Drzymała
ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL)
Wybrane zagadnienia relacyjnych baz danych
Internetowe surfowanie
Programowanie obiektowe – język C++
S IMON SAYS … A RCHITECTURE ! Usługi zdalne Technologie, techniki i praktyki implementacji.
Programowanie aplikacji telefonicznych z wykorzystaniem
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Service Oriented Architecture
Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, 85 – 321 Bydgoszcz
Technologie programowania systemów internetowych
Clustering Technologia klastrowa - architektura łącząca serwery i urządzenia pamięci masowych w celu zwiększenia niezawodności, bezpieczeństwa i wydajności.
Systemy operacyjne i sieci komputerowe
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Hibernate Podstawy.
Odwzorowania relacyjno-obiektowe Hibernate Podstawy.
XML w serwisach webowych. Zapotrzebowanie na serwisy XML.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Obiekty COM Przemysław Buczkowski. Plan prezentacji 1.Wprowadzenie do COM 2.Historia standardu 3.Jak działa COM 4.Interface IUknown 5.Paradygmaty COM.
Połączenia aplikacji Klient/Serwer
Platforma .Net.
Model warstwowy ISO-OSI
Bartosz Pawlak Wiktor Paliwoda Bezpieczeństwo Systemów Operacyjnych IMAP vs POP.
Sławomir Staśkiewicz JBossAS i EJB 3.1 Sławomir Staśkiewicz
Języki i technologie wytwarzania stron WWW Autor: Michał Walkowski Referat.
Usługi webowe & Service- Oriented Architecture (SOA) S2523 Anna Jenerowicz.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Web services w PHP Inżynieria e-systemów - technologia Java Miłosz Dybizbański Małgorzata Gocał Kinga Knapik
Wzorzec MVC na przykładzie CakePHP
materiały dla uczestników
Wydział Matematyki, Informatyki i Architektury Krajobrazu
Sieci komputerowe Usługi sieciowe 27/09/2002.
Aplikacje i usługi internetowe
JavaBeans by Paweł Wąsala
Zapis prezentacji:

Wprowadzenie do platformy J2EE

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

J2EE - serwisy

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

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

Model aplikacji opartej na J2EE – cd.

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

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

Deployment descriptors – cd. Serwlety, Stony JSP Zawartość statyczna(HTML, images), biblioteki Java, TLDs Deployment Descriptor web.xml EJBs ejb-jar.xml application.xml

Przegląd technologii wchodzących w skład J2EE Java Naiming Directory Interface (JNDI) Serwlety, JSP EJB Konektory JTA/JTS JMS Webservices

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.)

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

Architektura JNDI

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.

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.

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

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

Engine JSP & Servlets

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

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

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 (CMP-Container 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

Enterprise Java Beans – cd.

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.

Własności transakcji - ACID Atomowość Konsystencja Izolacja Trwałość

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

Architektura przetwarzania transakcji Komponenty tej architektury Komponenty aplikacji Menedżer zasobów Menedżer transakcji

Menadżer transakcji i zasobów

Sprzężenie JTS i JTA

Integracja J2EE z systemami EIS Purchased Apps Internet Java Różne systemy operacyjne Różne języki programowania Wiele baz danych Rozbudowana infrastruktura LAN Trudny dostęp poprzez protokół HTTP

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

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

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.

Architektura JMS

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.

Model point-to-point

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.

Model publish/subscribe

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.

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.

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)

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

SOAP Protokół oparty na XML Loosely coupled SOAP1.1 Message Structure 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 Envelope Header Entries [Header Element] Body Element [Fault Element]

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

Dziękuję za Uwagę