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

Post on 06-Dec-2014

525 views 11 download

description

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

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

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ì?

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

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

High-EndServer

Java Technology Enabled Desktop

WorkgroupServer

Java Technology Enabled Devices

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)

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

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

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

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

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

Entity Bean Message-Driven Bean

Synchronous communication Asynchronous communication

Stateless Stateful

Bean managedPersistence

(BMP)

Container managedPersistence

(CMP)

Session Bean

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.

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

AppServer1

AppServer

AppServer3

AppServer2

SAP

EIS4

EIS3

m n

EIS2

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.

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

Deployment API(Universal Remote)

IDEs

Vendor Deploy Tools

Management Tools

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

Kiến trúc Plagform J2EE

B2BApplications

B2CApplications

WebServices

WirelessApplications

Application Server EnterpriseInformation

Systems

ExistingApplications

Kiến trúc N-tầng

Web Tier EJB Tier

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

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

DB & EISResources

Browser

Stand-alone

Web Server EJB Server

Web Server EJB Server

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 IDEGlassfishJDK 1.6IE

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"?><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>

Câu hỏi