Wprowadzenie do J2EE

Transkrypt

Wprowadzenie do J2EE
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("<H1>Moj serwlet!</H1>");
}}
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.
<HTML>
<HEAD>
<TITLE>JSP demo</TITLE>
</HEAD>
<BODY>
<%@ page language=”java” %>
<%! int result; %>
<% result = 2*2; %>
<H1> Multiplication result:
<%= result %>
</H1>
</BODY>
</HTML>
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

Podobne dokumenty