bài 2: j2ee - lập trình mạng nâng cao

39
Tổng quan J2EE ThS Văn Thiên Hoàng

Upload: tuan-nguyen

Post on 06-Dec-2014

525 views

Category:

Documents


11 download

DESCRIPTION

Lập Trình Mạng Nâng Cao - J2EE

TRANSCRIPT

Page 1: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Tổng quan J2EE

ThS Văn Thiên Hoàng

Page 2: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Mục đích

Giới thiệu tổng quan về công nghệ J2EE.Biết các thành phần J2EE

Page 3: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

J2EE là gì?

ChallengesPortabilityDiverse EnvironmentsTime-to-marketCore CompetenceAssemblyIntegration

Key Technologies

J2SE™

J2EE™

JMS

Servlet

JSP

Connector

XML

Data Binding

XSLT

Products

App Servers

Web Servers

Components

Databases

Object to DB tools

LegacySystems

Databases

TP Monitors

EIS Systems

Page 4: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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.

Page 5: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Nền tảng công nghệ Java

High-EndServer

Java Technology Enabled Desktop

WorkgroupServer

Java Technology Enabled Devices

Page 6: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Nền tảng công nghệ Java

OptionalPackages

Java 2Enterprise

Edition(J2EE)

Java 2StandardEdition(J2SE)

JVM

Java Card APIs

CardVM

OptionalPackages

Personal Basis Profile

Personal Profile

Foundation Profile

CDC

MIDP

CLDC

KVM

Java 2 Platform Micro Edition(J2METM)

Page 7: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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.

Page 8: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Java EE 4 APIs

J2SE 1.4 (improved) JAX-RPC (new) Web Service for J2EE J2EE Management J2EE Deployment JMX 1.1 JMS 1.1 JTA 1.0

Servlet 2.4 JSP 2.0 EJB 2.1 JAXR Connector 1.5 JASS JAXP 1.2 JavaMail 1.3 JAF 1.0

Page 9: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Java EE 5

JAX-WS 2.0 & JSR 181Java PersistenceEJB 3.0JAXB 2.0JavaSever Faces 1.2 – new to PlatformJSP 2.1 – Unification w/ JSF 1.2StAX – Pull Parser – new to Platform

Page 10: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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ý SessionDựa trên ngôn ngữ Java

Page 11: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Servlet và CGI

CGIBased

Webserver

Request CGI2

Request CGI1

Request Servlet1

Request Servlet2

Request Servlet1

CGIBased

WebserverChild for CGI2

Child for CGI1

Servlet Based Webserver

JVMServlet1

Servlet2

Request CGI1Child for CGI1

Page 12: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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.

Page 13: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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.

Page 14: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Kiến trúc EJB

Page 15: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Java Beans

Enterprise JavaBeans

Entity Bean Message-Driven Bean

Synchronous communication Asynchronous communication

Stateless Stateful

Bean managedPersistence

(BMP)

Container managedPersistence

(CMP)

Session Bean

Page 16: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Java Message Service (JMS)

Các hệ thống thông điệp cung cấpCá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.

Page 17: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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

Page 18: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Bài toán mxn trước kiến trúc Connector

AppServer1

AppServer

AppServer3

AppServer2

SAP

EIS4

EIS3

m n

EIS2

Page 19: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

JAAS: Authentication

Gắn framework cho việc chứng thựcUserid/passwordSmartcardKerberosBiometric

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.

Page 20: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Chứng thực - JAAS

Page 21: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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 phải được

cấu hình bởi quản trị khi ứng dụng được triển khai.

Page 22: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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

Page 23: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Quản lý J2EE

Một platform cho phép quan lý J2EE server.

JMX

Page 24: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Triển khai J2EE

Tools J2EE PlatformsStandard

Deployment API(Universal Remote)

IDEs

Vendor Deploy Tools

Management Tools

Page 25: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

JMX

J2EE App ServerApp

JMX

JMX

JMX defacto

Dynamic DeploymentJMX API into the J2EE 1.4 platform

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

Page 26: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Kiến trúc Plagform J2EE

B2BApplications

B2CApplications

WebServices

WirelessApplications

Application Server EnterpriseInformation

Systems

ExistingApplications

Page 27: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Kiến trúc N-tầng

Web Tier EJB Tier

Page 28: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

J2EE Containers & Components

JN

DI

J2SE

JM

S

RM

I/IIO

P

JD

BC

Database

AppClient

App Client Container

HTTP/HTTPS

J2SE

RMI

J2SE

JN

DI

JM

S

RM

I/IIO

P

JD

BC

JT

A JavaMail

JAF JN

DI

JM

S

RM

I/IIO

P

JD

BC

JT

A

JavaMail

JAF

HTTP/HTTPS

Applet Container

Applet JSP Servlet EJB

Web Container EJB Container

RMI

J2SE

Page 29: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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

DB & EISResources

Browser

Stand-alone

Web Server EJB Server

Web Server EJB Server

Page 30: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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.

Page 31: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Công cụ thiết lập môi trường

NetBean IDEGlassfishJDK 1.6IE

Page 32: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Kiến trúc kiểm soát sự kiện

Page 33: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Công nghệ ứng dụng web

Page 34: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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.

Page 35: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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

Page 36: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

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.

Page 37: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

URL và Alias

URL http://[host]:[port]/[request path]?[query string]

URN-Alias http://localhost:8080/hello1/greeting?

username=Monica

Page 38: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Cấu trúc tập tin XML

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"

xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<servlet> <servlet-name>ServletDemo</servlet-

name> <servlet-class>ServletDemo</servlet-class> <init-param> <param-name>HelloStr</param-name> <param-value>Hello Servelet</param-

value> </init-param> </servlet> <servlet> <servlet-name>FormServlet</servlet-name> <servlet-class>FormServlet</servlet-class> </servlet> <servlet> <servlet-name>UploadServlet</servlet-

name> <servlet-class>UploadServlet</servlet-

class> </servlet>

<servlet-mapping> <servlet-name>ServletDemo</servlet-

name> <url-pattern>/ServletDemo</url-

pattern> </servlet-mapping> <servlet-mapping> <servlet-name>FormServlet</servlet-

name> <url-pattern>/FormServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>UploadServlet</servlet-

name> <url-pattern>/UploadServlet</url-

pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>

Page 39: Bài 2: J2EE - Lập Trình Mạng Nâng Cao

Câu hỏi