1

Wprowadzenie do J2EE Maciej Zakrzewicz [email protected] http://www.cs.put.poznan.pl/mzakrzewicz/

2

Plan rozdziału • • • •

Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Podstawowa architektura Oracle9iAS

3

Java 2 Enterprise Edition • J2EE to platforma tworzenia i uruchamiania rozproszonych aplikacji wielowarstwowych, zwykle wykorzystywanych przez użytkowników przy użyciu przeglądarki WWW • W skład J2EE wchodzą: – zbiór bibliotek standardowych języka Java służących do tworzenia różnych typów programów – zbiór zasad projektowania, implementowania i instalowania aplikacji J2EE, m.in. umożliwiających wyraźny rozdział ról członków zespołu projektowego – serwer aplikacji J2EE, stanowiący środowisko uruchomieniowe dla aplikacji J2EE

4

Biblioteki J2EE 1.3 • • • • • • • • • • • • • • •

Servlet 2.3 JavaServer Pages 1.2 Enterprise JavaBeans 2.0 JDBC 2.0 RMI-IIOP JNDI 1.2 WebServices 1.1 Java Messaging Service 1.0.2 Java Transaction API 1.0 Java Authentication and Authorization Service 1.0 J2EE Connector Architecture SOAP for Java 1.1 JavaMail 1.2 Java IDL 1.0 Java API for XML Parsing 1.1

5

Aplikacje J2EE • Aplikacje J2EE posiadają charakter modułowy, wielowarstwowy i rozproszony; składają się z następujących typów komponentów: – – – –

Serwlety Java Aplikacja JavaServer Pages (JSP) Komponenty Enterprise JavaBeans (EJB) Usługi WebServices (WS) ORMI

serwlet serwlet Java Java HTTP

ORMI

JSP JSP warstwa klienta

warstwa prezentacji

EJB EJB

NET

WS WS warstwa logiki biznesowej

SOAP

warstwa danych

6

Serwlety Java Serwlet: program Java, służący do generowania kompletnych dokumentów WWW na żądanie użytkownika. Serwlet jest wykonywany tylko wówczas, gdy przeglądarka prześle żądanie HTTP. W odpowiedzi serwlet wysyła do przeglądarki kody HTML tworzące dokument. import java.io.*; import javax.servlet.*; import javax.servlet.http.*;

public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html"); PrintWriter out = response.getWriter();

out.println("Moj serwlet!"); }}

7

Aplikacje JavaServer Pages JSP: program służący do generowania kompletnych dokumentów WWW na żądanie użytkownika, zaimplementowany w formie szkieletu HTML, wewnątrz którego zanurzono kod Java. Aplikacje JSP podlegają automatycznej translacji do serwletów Java i w związku z tym posiadają wszystkie własności serwletów.

JSP demo Multiplication result:

8

Komponenty Enterprise JavaBeans EJB: klasy Java służące do przetwarzania danych w trybie RPC (remote procedure call). Mogą pełnić funkcję lokalnych/zdalnych bibliotek wspomagających działanie serwletów Java lub aplikacji JSP. Często pośredniczą w dostępie do bazy danych. Mogą być również wykorzystywane przez inne typy programów Java. dodaj(2,3)

public class Kalkulator {

program Java

public double dodaj(double a, double b) {

ORMI

return a + b; } }

wynik = 5

9

Usługi WebServices WebServices: klasy Java służące do przetwarzania danych w trybie RPC (remote procedure call). Mogą pełnić funkcję zdalnych bibliotek wspomagających działanie programów tworzonych w dowolnych językach. Do komunikacji wykorzystują protokół SOAP, tzn. komunikaty XML transportowane przez HTTP. XML

dodaj(2,3)

public class Kalkulator { public double dodaj(double a, double b) {

program klienta

HTTP

return a + b; } }

XML

wynik = 5

10

Dystrybucja aplikacji J2EE • W celu uproszczenia procedur instalacyjnych oraz administracyjnych, komponenty aplikacji J2EE są gromadzone w pojedynczym pliku instalacyjnym: – WAR (Web Application Archive) – zawiera serwlety, JSP, WebServices – EJB-JAR (EJB Java Archive) – zawiera komponenty EJB – EAR (Enterprise Application Archive) – zawiera wszystkie elementy składowe aplikacji J2EE (WAR + EJB-JAR)

• Pliki instalacyjne mogą być tworzone przy użyciu narzędzi programistycznych (np. Oracle JDeveloper)

11

Rola serwera aplikacji J2EE • Serwer aplikacji J2EE jest środowiskiem uruchomieniowym (runtime) niezbędnym do wykonywania komponentów aplikacji J2EE: serwletów, JSP, EJB, WebServices • W stosunku do aplikacji J2EE, serwer aplikacji pełni analogiczną rolę do tej, jaką dla aplikacji .EXE pełni system operacyjny Windows • Serwer aplikacji udostępnia aplikacjom J2EE szereg usług systemowych, jak np. obsługa komunikacji z bazami danych, obsługa transakcji, autoryzacja dostępu, obsługa trwałości, obsługa kolejek komunikatów • Oracle9iAS jest przykładem serwera aplikacji J2EE

12

Podstawowa architektura Oracle9iAS J2EEJ2EEJ2EE użytkownicy HTTP

Oracle HTTP Server (OHS)

AJP

Oracle Containers for J2EE (OC4J) JVM

administrator HTTP

EM WebSite

ORMI pliki konfiguracyjne

klient Java

13

Architektura Oracle HTTP Server (UNIX)

parent process

mod_access mod_access mod_alias mod_access mod_alias ... mod_alias ...mod_access child mod_oc4j child process mod_oc4j mod_alias ... mod_access mod_plsql process child mod_oc4j mod_alias ... mod_plsql process mod_ossl mod_oc4j child mod_plsql ... mod_ossl process child mod_osso mod_oc4j mod_plsql mod_ossl process mod_osso mod_plsql mod_ossl mod_osso

Oracle

mod_ossl mod_osso mod_osso

OHS bazuje na popularnym serwerze WWW Apache, lecz rozszerza go o dodatkowe moduły funkcjonalne: mod_oc4j, mod_plsql, itd. Żądania HTTP są odbierane przez proces nadrzędny, który uruchamia proces potomny i przekazuje mu obsługę danego żądania. Pojedynczy proces potomny obsługuje jednocześnie wyłącznie jedno połączenie HTTP. Administracja OHS jest bardzo zbliżona do administracji oryginalnym Apache.

14

Architektura OC4J aplikacja A serwletJSP

JSP

EJB

JSP

EJB

kontener kontener serwletów serwletów

kontener kontener EJB EJB

JNDI JNDI JMS JMS JDBC JDBC JTA JTA JAAS JAAS JCA JCA JavaMail JavaMail JAF JAF

kontener kontener EJB kontener EJB EJB

JSP

JNDI JNDI JNDI JMS JMS JMS JDBC JDBC JDBC JTA JTA JTA JAAS JAAS JAAS JCA JCA JCA JavaMail JavaMail JavaMail JAF JAF JAF

kontener kontener serwletów kontener serwletów serwletów

EJB

aplikacja C

aplikacja B

JVM JVM JVM

JVM JVM

instancja OC4J

instancja OC4J

Oracle9iAS może wykorzystywać wiele równoległych procesów OC4J, podzielonych na niezależnie administrowane zbiory, nazywane instancjami OC4J. Każda aplikacja J2EE jest instalowana na konkretnej instancji OC4J.

15

Oracle9iAS – pozostałe własności • • • • • • • • • •

Obsługa tradycyjnych aplikacji internetowych: CGI, Perl CGI, FastCGI Obsługa aplikacji Web PL/SQL Obsługa aplikacji Oracle Forms, Oracle Reports, Oracle Discoverer Obsługa urządzeń bezprzewodowych Serwer buforowania statycznych i dynamicznych dokumentów WWW – Web Cache Konstrukcja klastrów serwerów aplikacji Centralne uwierzytelnianie użytkowników – Single Sign-On Server Bezpieczna komunikacja klient-serwer aplikacji – SSL Ochrona dostępu do aplikacji Automatyczne gromadzenie i przetwarzanie statystyk wykorzystania serwera aplikacji przez użytkowników

16

Oracle9iAS – tryby instalacji • Wybór produktu: – „Oracle9i Application Server”: serwer aplikacji J2EE – „Oracle9iAS Infrastructure”: centralny serwer uwierzytelniania użytkowników, centralne repozytorium gromadzące konfigurację serwerów aplikacji, serwer LDAP – „Oracle9iAS Developer Kits”: biblioteki programisty, m.in. XML Developer’s Kit, Portal Developer’s Kit, Wireless Developer Kit, LDAP Developer’s Kit

• Wybór zakresu instalacji Oracle9i Application Server: – „J2EE and Web Cache”: podstawowa konfiguracja serwera J2EE, obejmująca OHS, OC4J, EM Website, Web Cache – „Portal and Wireless”: j.w., a ponadto moduły Portal i Wireless – „Business Intelligence and Forms”: j.w., a ponadto moduły Discoverer, Report Services, Clickstream Intelligence, Forms Services, Personalization

17

Klaster Oracle9iAS J2EE J2EE OHS

OC4J

J2EE J2EE WebCache

OHS

OC4J

J2EE J2EE OHS

OC4J

Moduł WebCache zajmuje się równoważeniem obciążenia oraz wykrywaniem niedostępnych węzłów. Serwer infrastruktury gromadzi dane o konfiguracji węzłów oraz o konfiguracji aplikacji. Wszystkie węzły klastra posiadają identyczną konfigurację i identyczne aplikacje, dzięki czemu każdy węzeł może być zastąpiony innym. Nowe aplikacje są automatycznie replikowane pomiędzy wszystkimi węzłami. Procesy OC4J automatycznie replikują stan aplikacji.

Infrastructure