Piotr Matkowski Wprowadzenie do J2EE 20 kwietnia 2005. "Unfortunately, no one can be...told what the J2EE is. You have to see it for yourself.



Podobne dokumenty
Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

Automatyzacja procesu publikowania w bibliotece cyfrowej

1 Wprowadzenie do J2EE

Rola EJB na platformie Java EE. Enterprise JavaBeans (EJB)

OPIS PRZEDMIOTU ZAMÓWIENIA DO ZAPYTANIA KE1/POIG 8.2/13

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

DOTACJE NA INNOWACJE. Zapytanie ofertowe

EJB 3.0 (Enterprise JavaBeans 3.0)

Platforma J2EE i EJB. Oprogramowanie systemów równoległych i rozproszonych Wykład 9. Rola EJB na platformie J2EE. Dr inż. Tomasz Olas olas@icis.pcz.

Sieci komputerowe cel

DOTACJE NA INNOWACJE ZAPYTANIE OFERTOWE

Sieci komputerowe. Definicja. Elementy

Utrzymanie aplikacji biznesowych SI PSZ

Microsoft Management Console

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

elektroniczna Platforma Usług Administracji Publicznej

BEZPIECZEŃSTWO INFORMACYJNE I CYBERNETYCZNE

Testowanie i wdrażanie oprogramowania Emulator systemu bankowego

InsERT GT Własne COM 1.0

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Podstawowe informacje o technologii Java EE 6

mprofi.pl nowa generacja usług mobilnych TWOJA APLIKACJA MOBILNA: Komunikator na smartfony

Wprowadzenie do J2EE. Maciej Zakrzewicz.

SOP System Obsługi Parkingów

Opteamum korzyści. Aktualnie poszukujemy kandydatów na stanowisko: Programista ASP.NET MVC / WCF Nr ref. PROGRAMISTA ASP.NET/DRP/2014.

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

Regulamin organizacji przetwarzania i ochrony danych osobowych w Powiatowym Centrum Kształcenia Zawodowego im. Komisji Edukacji Narodowej w Jaworze

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Zapytanie ofertowe M.M. Druk Serwis Sp. z o.o.

Systemy mikroprocesorowe - projekt

Nowości w module: BI, w wersji 9.0

Informatyzacja JST z zastosowaniem technologii przetwarzania w chmurze w świetle strategicznych działań MC

Realizacja projektów 8.3 PO IG na przykładzie Gminy Borzęcin Rafał Bakalarz

PROBIT Wysoka Kultura w Księgowości

Platforma do obsługi zdalnej edukacji

Java wybrane technologie

Wybrane działy Informatyki Stosowanej

Instrukcja Obsługi STRONA PODMIOTOWA BIP

1. Proszę krótko scharakteryzować firmę którą założyła Pani/Pana podgrupa, w zakresie: a) nazwa, status prawny, siedziba, zasady zarządzania (5 pkt.

MINISTERSTWO PRACY I POLITYKI SPOŁECZNEJ

Wzorce projektowe warstwy aplikacji

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

Enterprise JavaBeans

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

V. Wymagania dla wsparcia projektu oraz nadzoru eksploatacyjnego... 6

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Rozwiązywanie nazw w sieci. Identyfikowanie komputerów w sieci

Lublin, Zapytanie ofertowe

PoluProduction. <jedi> Vision. Version 1.0

SPRAWOZDANIE z podróŝy słuŝbowej poza granicami kraju

Harmonogramowanie projektów Zarządzanie czasem

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

Kontrola na miejscu realizacji projektu Procedury i zarządzanie projektem Archiwizacja

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT

Współczesne serwisy internetowe. Wykład 1 Dr Krzysztof Podlaski

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Serwery Aplikacji "CC" Grzegorz Blinowski. tel (22) ; faks (22)

API transakcyjne BitMarket.pl

Spring MVC Andrzej Klusiewicz 1/18

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

Stan prac w zakresie wdrożenia systemów operacyjnych: NCTS2, AIS/INTRASTAT, AES, AIS/ICS i AIS/IMPORT. Departament Ceł, Ministerstwo Finansów

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ).

ARIES-IT Profesjonalne Usługi Informatyczne dla Firm i Instytucji, Outsourcing IT

REGULAMIN BIURA KARIER EUROPEJSKIEJ WYŻSZEJ SZKOŁY PRAWA I ADMINISTRACJI

WZÓR UMOWY DLA PRZETARGU NIEOGRANICZONEGO na realizację szkoleń w ramach projektu Patrz przed siebie, mierz wysoko UMOWA NR.

Enterprise Java Beans wykład 7 i 8

Systemy wspierające sprzedaż i marketing w logistyce. Iwo Baszkowski Wojtek Dubicki

Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych

Integracja systemów, integracja procesów

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Procedura działania Punktu Potwierdzającego Profile Zaufane epuap w Urzędzie Miejskim w Gdańsku

Regu g l u a l min i n w s w pó p ł ó p ł r p acy O ow o iązuje od dnia

System do kontroli i analizy wydawanych posiłków

Wykaz tematów prac dyplomowych w roku akademickim 2013/2014 kierunek: informatyka

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Postanowienia ogólne. Usługodawcy oraz prawa do Witryn internetowych lub Aplikacji internetowych

Ogólnozakładowy system monitoringu i rozliczeń mediów

Marcin Werla

Kancelaris - Zmiany w wersji 2.50

Projektowanie systemów informacyjnych: język UML

Uchwała nr 21 /2015 Walnego Zebrania Członków z dnia w sprawie przyjęcia Regulaminu Pracy Zarządu.

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

PROGRAM ZAPEWNIENIA I POPRAWY JAKOŚCI AUDYTU WEWNĘTRZNEGO

BI 2 T. Transformacja podmiotu administracji publicznej w świadomy, zorientowany na cele eurząd CASE STUDY

Konfiguracja historii plików

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHICZNA 1

CENTRUM TRANSFERU TECHNOLOGII AKADEMII GÓRNICZO - HUTNICZEJ im. S. STASZICA w KRAKOWIE (CTT AGH) Regulamin

Charakterystyka systemów plików

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2013/2014

Procedura weryfikacji badania czasu przebiegu 1 paczek pocztowych

Programowanie Zespołowe

Transkrypt:

Piotr Matkowski Wprowadzenie do J2EE 20 kwietnia 2005 "Unfortunately, no one can be...told what the J2EE is. You have to see it for yourself."

Plan referatu 1.Wstęp 2.Najważniejsze koncepcje Wielowarstwowość Komponentowy model programowania Menadżery zasobów 3.Najważniejsze technologie Podział ogólny Interfejsy programowe 4.Schemat procesu tworzenia aplikacji 5.Istniejące implementacje 6.Bibliografia

Wstęp Co to jest J2EE? J2EE jest platformą dla złożonych, wielowarstowych, rozproszonych, wydajnych i skalowalnych aplikacji zbiór specyfikacji dotyczących powiązanych ze sobą technologii, które razem mają zapewnić dobrą realizację zadań: Uwierzytelnianie Kontrola uprawnień Transakcyjność Komunikacja między modułami systemu Dostęp do danych

Wstęp Middleware - warstwa oprogramowania rezydującą ponad systemem operacyjnym, odpowiedzialna za implementację zestawu mechanizmów, protokołów i interfejsów programistycznych, które są nieodzowne dla stworzenia zaawansowanego systemu informatycznego dla współczesnego przedsiębiorstwa prowadzącego działalność w sieci. Istnienie takiej warstwy umożliwia twórcy systemu pracę na wyższym poziomie abstrakcji i skupienie się na oprogramowaniu logiki aplikacji, bez angażowania się w skomplikowane mechanizmy niskopoziomowe.

Middleware - korzyści Uniknięcie ryzyka popełnienia błedów programistycznych w krytycznych mechanizmach systemu Szybsze, tańsze i łatwiejsze projektowanie, programowanie, wdrażanie i utrzymanie aplikacji Lepsza skalowalność i łatwiejsza integracja systemów dzięki standaryzacji interfejsów

Części składowe J2EE J2EE Platform - specyfikacja platformy J2EE Compatibility Test Suite - zbiór testów umożliwiających weryfikację zgodności ze specyfikacją konkretnej implementacji J2EE J2EE Reference Implementation - dostarczona przez twórcę specyfikacji, firmę Sun Microsystems, wzorcowa implementacja specyfikacji J2EE Blueprints - zbiór wskazówek, preferowanych rozwiązań, wzorców projektowych wraz z propozycją konkretnego modelu rozproszonej, skalowalnej aplikacji

Najważniejsze koncepcje Wielowarstwowość aplikacji Aplikacje J2EE są logicznie podzielone na warstwy. Każda warstwa odpowiada za inny zakres funkcjonalności systemu i może zawierać wiele komponentów. Najczęściej pod terminem "wielowarstwowy" (ang. multi-tiered) rozumie się 3 warstwy: (jak we wzorcu MVC) Warstwa prezentacji (View) - aplikacje w Javie, aplety, serwlety, strony JSP Warstwa logiki biznesowej (controller) - komponenty EJB Warstwa danych (Model) - bazy danych, Enterprise Information Systems

Wielowarstwowość aplikacji

Najważniejsze koncepcje Komponentowy model programowania Platforma J2EE wspiera następujące komponenty: aplikacje klienckie, applety, komponenty WWW (serwlety i strony JSP) oraz komponenty EJB Kontener - otoczka, w której działają komponenty. Kontener zapewnia środowisko wykonania oraz standardowe usługi, z których korzystają komponenty (np. dynamiczne tworzenie i kasowanie komponentów, zarządzanie transakcjami i zewnętrznymi zasobami, autoryzacja użytkowników). Dzięki istnieniu kontenerów programista komponentów nie musi się zajmować tymi funkcjami. Pomiędzy komponentami a kontenerami również zdefiniowany jest odpowiedni intefejs

Najważniejsze koncepcje Menadżery zasobów Dostęp do zewnętrznych zasobów danych organizowany jest wokół koncepcji tzw. menadżerów zasobów (ang. resource manager). Serwer aplikacyjny korzysta z usług odpowiedniego sterownika, który, implementując odpowiedni protokół komunikacyjny, umożliwia dostęp do zasobów konkretnego systemu przechowywania i archiwizacji danych (EIS). Specyfikacja J2EE connector architecture 1.0 opisuje ten standard.

Technologie podział ogólny Technologie komponentowe Ze względu na miejsce wykonania kodu: komponenty strony klienta (applety i aplikacje w Javie) komponenty strony serwera (pozostałe) Ze wzlgędu na charakter wykonywanych zadań: komponenty odpowiedzialne za interakcję z użytkownikiem (wszystkie oprócz EJB) komponenty odpowiedzialne za logikę biznesową, stosujące skomplikowane algorytmy i przeprowadzające transakcje na dużych wolumenach (EJB)

Technologie podział ogólny Komunikacja Ponieważ aplikacje tworzone na platformę J2EE są zwykle rozproszone, muszą być dostarczone odpowiednie protokoły zapewniające komunikację między poszczególnymi elementami systemu HTTP, HTTPS - typowym klientem systemu J2EE jest przeglądarka WWW JDBC, JNDI - dostęp do baz danych RMI/RMI-IIOP - dostęp do komponentów EJB

Technologie podział ogólny Usługi Ze względu na to, że aplikacje J2EE często muszą integrować wiele źródeł informacji (bazy danych, systemy typu ERP, CRM, inne aplikacje isntniejące w firmie), serwer aplikacyjny musi oferować jednolity sposób dostępu do tych zasobów. Tego typu usługi definiuje specyfikacja J2EE Connector Architecture.

Technologie interfejsy programowe Aby aplikacje zbudowane w modelu J2EE mogły działać zgodnie z podanymi wytycznymi, potrzebnych jest wiele interfejsów programowych (API). Dostawca systemu zgodnego z J2EE zapewnia ich implementację, a twórca komponentów musi ich przestrzegać, co wiąże się także z pewnymi ograniczeniami, np. pisząc komponenty EJB nie można korzystać z bibliotek natywnych, tworzyć i synchronizować wątków, korzystać z dostępu do plików poprzez bibliotekę java.io, ani korzystać z obiektów klasy ServerSocket. Kilka z tych interfejsów występuje już w J2SE

Technologie interfejsy programowe Java IDL API - Java IDL pozwala na tworzenie aplikacji obiektowych komunikujących się przez CORBA. JDBC Core API - dostęp do relacyjnych baz danych. RMI-IIOP API - Protokół RMI pozwala na komunikację międzyprocesową. RMI-IIOP jest jego przenośnym rozszerzeniem bazującym na protokole IIOP (Internet Inter-ORB Protocol), używanym przez aplikacje wykorzystujące standard CORBA. JNDI API - JNDI pozwala na zlokalizowanie komponentu lub innego zasobu w sieci.

Technologie interfejsy programowe EJB - Standard EJB definiuje sposób pisania komponentów strony serwera i ustanawia standardowy interfejs pomiędzy komponentami i serwerem aplikacyjnym. Servlets - Specyfikacja Servlets 2.3 definiuje zasady programowania serwletów. JSP - Specyfikacja JSP określa zasady budowania komponentów WWW bazujących na osadzaniu kodu języka Java w dokumentach HTML. JMS - Java Messaging Service pozwala na asynchroniczną komunikację pomiędzy rozproszonymi obiektami.

Technologie interfejsy programowe JTA - Specyfikacje Java Transaction API i Java Transaction Service oferują komponentom usługi transakcyjne. JavaMail - Pozwala na wysyłanie poczty z poziomu aplikacji napisanej w Javie w sposób niezależny od platformy oraz używanych protokołów dostarczania poczty (zależny od JAF) JAF - Specyfikacja JavaBeans Activation Framework określa zadania tego interfejsu jako: określanie typu dowolnych danych, enkapsulacja dostępu do danych, pobieranie zestawu operacji możliwych do wykonania na określonym typie danych.

Technologie interfejsy programowe JAXP - Java API for XML Parsing obsługuje interfejsy SAX i DOM parserów XML, jak również wspiera obsługę procesorów transformacji XSLT. Connector - Ten interfejs pozwala na integrację aplikacji J2EE z różnymi systemami EIS. JAAS - Za pomocą Java Authentication and Authorization Service można przeprowadzić autentykację użytkowników i kontrolować ich prawa dostępu do aplikacji.

Technologie interfejsy programowe

Tworzenie aplikacji - pakowanie Aplikacje zgodne ze specyfikacją J2EE są odpowiednio pakowane do pliku typu EAR. Plik taki ma dobrze określoną strukturę, a jego zawartość opisywana jest przez deskryptor pliku EAR. Pojedynczy plik EAR jest samodzielnym, zamkniętym pakietem, który stanowi kompletną aplikację gotową do uruchomienia na dowolnym systemie zgodnym z J2EE. Plik EAR zwykle składa się z kilku modułów, które zawierają komponenty. Podobnie jak plik EAR, każdy moduł jest opisany swoim deskryptorem. Każdy moduł może dać się samodzielnie uruchomić, nie jest do tego potrzebny kontekst ani deskryptor aplikacji.

Części składowe aplikacji J2EE W pliku EAR przynajmniej jeden spośród: Moduły EJB w postaci archiwów JAR, które zawierają komponenty EJB (sesyjne, trwałe oraz komunikacyjne) razem z właściwym deskryptorem. Specyfikacja EJB określa strukturę i zawartość takiego modułu. Moduły WWW w postaci archiwów WAR (Web Archive), zawierających serwlety, JSP, strony HTML i inne zasoby WWW razem z właściwym deskryptorem. Specyfikacja Servlets określa strukturę i zawartość takiego modułu. Moduły adapterów zasobów w postaci plików RAR (Resource Archive) Moduły aplikacji klienta w postaci archiwów JAR

Struktura pliku EAR

Przykładowy deskryptor Deskryptor aplikacji: <!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN' 'http://java.sun.com/j2ee/dtds/application_1_2.dtd'> <application> <display-name>admin</display-name> <description>application description</description> <module> <web> <web-uri>petstoreadmin.war</web-uri> <context-root>admin</context-root> </web> </module> <module> <ejb>petstoreadminejb.jar</ejb> </module> <security-role> <description>the administrator role</description> <role-name>administrator</role-name> </security-role> </application>

Jak wysłać e-mail Użycie interfejsu JavaMail: (wersja minimalna) import java.util.*; import javax.mail.*; public class MailUtils { public static boolean sendmail(string sender, String receiver, String subject, String text, String footer) { Properties properties = System.getProperties(); properties.put("mail.smtp.host", "adres.serwera.smtp"); properties.put("mail.smtp.auth", "false"); Session session = Session.getInstance(properties); Message message = new MimeMessage(session); message.setfrom(new InternetAddress(sender)); message.setrecipient(message.recipienttype.to, new InternetAddress(receiver)); message.setsubject(subject); message.setsentdate(new Date()); message.settext(text); } } Transport.send(message);

Wybrane implementacje Bea Weblogic Server HP Bluestone Total-e-Server iplanet Application Server IBM Websphere Application Server IONA iportal Application Server Oracle 9i Application Server Macromedia JRun Server SilverStream Application Server Sybase EAServer TogetherSoft ControlCenter Trifork Enterprise Application Server Ars Digita Community System Borland AppServer Java 2 SDK, Enterprise Edition

Bibliografia http://strony.aster.pl/gregor/subsites/j2ee/ http://java.sun.com/j2ee http://www.javasoft.pl/