You are on page 1of 39

Tổng quan J2EE

ThS Văn Thiên Hoàng


Mục đích
ˆGiới thiệu tổng quan về công nghệ J2EE.
ˆBiết các thành phần J2EE
J2EE là gì?
Challenges Key Products
Portability Technologies App Servers
Diverse J2SE™ Web Servers
Environments J2EE™ Components
Time-to-market JMS Databases
Core Competence Servlet Object to DB
Assembly JSP tools
Integration Connector
XML
Legacy
Data Systems
Binding
Databases
XSLT
TP Monitors
EIS Systems
J2EE là gì?
ˆNền tảng công nghệ chuẩn và mở cho việc:
 Phát triển, triển khai, và quản lý
 Các ứng dụng lớn dựa vào các thành phần, quản lý
tập trung, dạng web, n tầng.
Nền tảng công nghệ Java

Java Technology Java Technology Workgroup High-End


Enabled Devices Enabled Desktop Server Server
Nền tảng công nghệ Java
Java 2 Platform Micro Edition
(J2METM)

Optional
Packages

Optional
Packages

Personal Personal
Java 2 Java 2 Basis Profile Profile
Enterprise Standard
Edition Edition Foundation Profile MIDP
(J2EE) (J2SE)
Java
CDC CLDC Card
APIs

JVM KVM CardVM


Tại sao sử dụng J2EE
ˆPlatform có giá trị cho nhà phát triển.
ˆPlatform hỗ trợ đa dạng công nghệ có giá trị
đối với người sử dụng.
Java EE 4 APIs
ˆ J2SE 1.4 (improved) ˆ Servlet 2.4
ˆ JAX-RPC (new) ˆ JSP 2.0
ˆ Web Service for J2EE ˆ EJB 2.1
ˆ J2EE Management ˆ JAXR
ˆ J2EE Deployment ˆ Connector 1.5
ˆ JMX 1.1 ˆ JASS
ˆ JMS 1.1 ˆ JAXP 1.2
ˆ JTA 1.0 ˆ JavaMail 1.3
ˆ JAF 1.0
Java EE 5
ˆJAX-WS 2.0 & JSR 181
ˆJava Persistence
ˆEJB 3.0
ˆJAXB 2.0
ˆJavaSever Faces 1.2 – new to Platform
ˆJSP 2.1 – Unification w/ JSF 1.2
ˆStAX – Pull Parser – new to Platform
Servlet là gì?
ˆCác đối tượng Java mà nó kế thừa chức năng
của HTTPServer
ˆTạo nội dung động.
ˆMột sự thay thế tốt CGI, NSAPI, ISAPI, ..
 Hiệu quả
 Độc lập Platform và server.
 Quản lý Session
 Dựa trên ngôn ngữ Java
Servlet và CGI

Request CGI1
Child for CGI1

Request CGI2 CGI


Based CGI Child for CGI2
WebserverBased
Request CGI1 Webserver
Child for CGI1

Request Servlet1
Servlet Based Webserver

Request Servlet2 Servlet1


JVM
Request Servlet1 Servlet2
JSP là gì?
ˆCho phép tách biệt xử lý nghiệp vụ với việc
trình bày giao diện.
Trình bày ở dạng HTML hoặc XML.
Xử lý nghiệp vụ trình bày ở dạng Java Bean hoặc
custom tag.
Có thể duy trì và cải tiến dễ dàng.
ˆMở rộng thông qua custom tag.
ˆXây dựng dựa trên công nghệ Servlet.
Công nghệ EJB là gì?
ˆ Công nghệ ở server-side
ˆ Phát triển và triển khai ứng dụng dựa trên công
nghệ này dễ dàng.
ˆ Giúp thể hiện tiện ích của công nghệ phía server
side.
ˆ Tách biệt việc xử lý nghiệp vụ với hệ thống code.
ˆ Cho phép cấu hình trong thời gian triển khai.
Kiến trúc EJB
Java Beans
Enterprise JavaBeans

Synchronous communication Asynchronous communication


Session Bean Entity Bean Message-Driven Bean

Stateless Stateful

Bean managed Container managed


Persistence Persistence
(BMP) (CMP)
Java Message Service (JMS)
ˆCác hệ thống thông điệp cung cấp
Các cuộc giao tiếp dạng cặp.
Giao tiếp đồng bộ hóa.
Đóng vai trò là bưu điện trung tâm.
ˆTiện lợi của hệ thống quản lý thông điệp.
Linh hoạt, tin cậy, gọn.
ˆJMS là thư viện chuẩn cho quản lý thông
điệp.
Kiến trúc Connector

ˆ Định nghĩa API chuẩn cho việc tích hợp công nghệ
J2EE với hệ thống EIS.
 CICS, SAP, PeopleSoft, etc.

ˆ Trước khi có Connector, mỗi ứng dụng server phải


cung cấp bộ điều khiển thuộc tính cho mỗi EIS.
 m (# of App servers) x n (# of EIS's) Adaptors

ˆ Với kiến trúc connector, cùng một adaptor có thể


thực hiện với nhiều container J2EE.
 1 (common to all App servers) x n (# of EIS's) Adaptors
Bài toán mxn trước kiến trúc Connector

m n
App SAP
Server1

App
EIS2
Server2

App EIS3
Server3

App EIS4
Server
JAAS: Authentication
ˆGắn framework cho việc chứng thực
 Userid/password
 Smartcard
 Kerberos
 Biometric

ˆLược đồ chứng thức khả chuyển.


 Cung cấp lược đồ chứng thực độc lập API.
 Lược đồ chứng thực được đặc tả bởi tập tin cấu
hình mà nó được đọc bởi JAAS.
Chứng thực - JAAS
JNDI
ˆ Giao diện dịch vụ Naming và Directory.
ˆ Tiện lợi cho ứng dụng J2EE xác định tài nguyên và
các đối tượng.
 Ứng dụng sử dụng tên để tham chiếu đến tài nguyên qua
JNDI.
 Tên tượng trưng và tham chiếu đối tượng pahỉ được cấu
hình bởi quản trị khi ứng dụng được triển khai.
JDBC
ˆCung cấp thư viện lập trình java cho cơ sỏ dữ
liệu quan hệ.
Sử dụng SQL
ˆNhà cung cấp JDBC driver (được gọi thông
qua các hàm chuẩn của Java).
Quản lý J2EE
ˆMột platform cho phép quan lý J2EE
server.
ˆJMX
Triển khai J2EE
Tools J2EE Platforms
Standard
IDEs Deployment API
(Universal Remote)

Vendor Deploy
Tools

Management Tools
JMX
JMX API into Dynamic Deployment
the J2EE 1.4 platform

JMX

JMX
App
J2EE App Server

JMX defacto

Công nghệ đơn giả cho Platform J2EE


Kiến trúc Plagform J2EE
B2B
Applications

Existing
Applications
B2C
Applications

Web
Services

Application Server Enterprise


Wireless
Information
Applications Systems
Kiến trúc N-tầng

Web Tier EJB Tier


J2EE Containers & Components
Applet Container Web Container EJB Container

Applet HTTP/ JSP Servlet RMI EJB


HTTPS

J2SE

RMI/IIOP
JavaMail

RMI/IIOP
JavaMail

JDBC
JDBC
JMS
JNDI

JTA

JNDI

JMS

JTA
App Client Container
JAF JAF
App HTTP/ J2SE
Client HTTPS

RMI
RMI/IIOP

JDBC
JNDI
JMS

J2SE J2SE

Database
Phân tích ứng dụng EJB

Web Server EJB Server

DB & EIS
Resources

Browser Web Server EJB Server

Stand-alone
Phân tích ứng dụng EJB
ˆ 4-tầng
 HTML client, JSP/Servlets, EJB, JDBC/Connector
ˆ 3-tầng
 HTML client, JSP/Servlets, JDBC
ˆ 3-tầng
 EJB standalone applications, EJB, JDBC/Connector
ˆ B2B
 Sử dụng JMS hoặc thông nghiệp dựa vào XML.
Công cụ thiết lập môi trường
ˆNetBean
IDE
Glassfish
JDK 1.6
IE
Kiến trúc kiểm soát sự kiện
Công nghệ ứng dụng web
Các bước viết một ứng dụng web
ˆ Viết và biên dịch code cho các thành phần xử lý
(Servlet or JSP) và các lớp bổ trợ khác.
ˆ Tạo các nguồn tài nguyên tĩnh (ví dụ: ảnh, HTML)
ˆ Tạo tập tin cấu hình miêu tả triển khai (web.xml).
ˆ Đóng gói ứng dụng Web (tập tin *.war hoặc thư mục
được deloyment).
ˆ Triển khai ứng dụng web vào Web server.
ˆ Web client truy cập ứng dụng URL.
Cấu trúc thư mục
ˆ Thư mục gốc – lưu dạng file *.war
 build.xml
 src: source các thành phần dạng servlets và JavaBeans
 web: các trang JSP, trang HTML, các ảnh.
ˆ Ví dụ: hello2
 Hello2
• src/servlets
– GreetingServlet.java
– ResponseServlet.java
• web
– WEB-INF
» web.xml
– duke.waving.gif
• build.xml
Triển khai một ứng dụng web
ˆ Sử dụng công cụ hỗ trợ deloy của web server.
ˆ Sao chép tập tin *.war vào thư mục triển khai.
ˆ Cấu trúc tập tin *.war.
URL và Alias
ˆ URL
 http://[host]:[port]/[request path]?[query string]
ˆ URN-Alias
 http://localhost:8080/hello1/greeting?username=Monica
Cấu trúc tập tin XML
<?xml version="1.0" encoding="UTF-8"?> <servlet-mapping>
<web-app version="2.5" <servlet-name>ServletDemo</servlet-name>
xmlns="http://java.sun.com/xml/ns/javaee" <url-pattern>/ServletDemo</url-pattern>
xmlns:xsi="http://www.w3.org/2001/XMLSch </servlet-mapping>
ema-instance"
xsi:schemaLocation="http://java.sun.com/xml <servlet-mapping>
/ns/javaee <servlet-name>FormServlet</servlet-name>
http://java.sun.com/xml/ns/javaee/web- <url-pattern>/FormServlet</url-pattern>
app_2_5.xsd"> </servlet-mapping>
<servlet> <servlet-mapping>
<servlet-name>ServletDemo</servlet-name> <servlet-name>UploadServlet</servlet-name>
<servlet-class>ServletDemo</servlet-class> <url-pattern>/UploadServlet</url-pattern>
<init-param> </servlet-mapping>
<param-name>HelloStr</param-name> <session-config>
<param-value>Hello Servelet</param-value> <session-timeout>
</init-param> 30
</servlet> </session-timeout>
<servlet> </session-config>
<servlet-name>FormServlet</servlet-name> <welcome-file-list>
<servlet-class>FormServlet</servlet-class> <welcome-file>index.jsp</welcome-file>
</servlet> </welcome-file-list>
<servlet> </web-app>
<servlet-name>UploadServlet</servlet-name>
<servlet-class>UploadServlet</servlet-class>
</servlet>
Câu hỏi

You might also like