8/28/2011

Nội dung

(cid:61550) 1. J2EE là gì? (cid:61550) 2. Sự phát triển của các Enterprise Application

Frameworks

Bộ môn Công nghệ Phần mềm Viện CNTT & TT Trường Đại học Bách Khoa Hà Nội

(cid:61550) 3. Tại sao lựa chọn J2EE? (cid:61550) 4. J2EE APIs and Technologies (cid:61550) 5. Standard Impl (J2EE 1.4), Compatibility Test

(cid:76)(cid:7852)(cid:80)(cid:32)(cid:84)(cid:82)(cid:204)(cid:78)(cid:72)(cid:32)(cid:87)(cid:69)(cid:66)(cid:32)(cid:72)(cid:431)(cid:7898)(cid:78)(cid:71)(cid:32)(cid:74)(cid:65)(cid:86)(cid:65) Bài 05: Tổng quan về Java EE

Suite (CTS) (cid:61550) 6. BluePrints (cid:61550) 7. J2EE và Web Services (cid:61550) 8. Các bước nghiên cứu J2EE

Giảng viên: ThS. Trịnh Tuấn Đạt Bộ môn CNPM Email: trinhtuandat.bk@gmail.com/dattt@soict.hut.edu.vn

Enterprise Computing

Challenges

1. J2EE là gì?

Products App Servers Web Servers Components Databases Object to DB tools

Portability Diverse Environments Time-to-market Core Competence Assembly Integration

Legacy Systems

Key Technologies J2SE™ J2EE™ JMS Servlet JSP Connector XML Data Binding XSLT

Databases TP Monitors EIS Systems

3

J2EE là gì?

Java™ Platform

(cid:61550) phát triển (developing), triển khai (deploying) và

quản lý (managing) các ứng dụng doanh nghiệp hướng thành phần (component-based), ứng dụng Web, Server, …

(cid:61550) Là nền tảng (platform) mở, chuẩn tắc để

Java Technology Enabled Desktop

Workgroup Server

High-End Server

Java Technology Enabled Devices

1

8/28/2011

JavaTM Platform

Java 2 Platform Micro Edition (J2METM)

2. Sự phát triển của các Enterprise Application Frameworks

Optional Packages

Optional Packages

Personal Basis Profile

Personal Profile

Foundation Profile

MIDP

Java 2 Enterprise Edition (J2EE)

Java 2 Standard Edition (J2SE)

CDC

CLDC

Java Card APIs

CardVM

KVM

JVM

8

* Under development in JCP

2. Sự phát triển của các Enterprise Application Frameworks

Ứng dụng doanh nghiệp (Enterprise Applications)

(cid:61550) 1 tầng (Single tier) (cid:61550) 2 tầng (Two tier) (cid:61550) 3 tầng (Three tier ) (cid:61550) Dựa trên RPC (cid:61550) Dựa trên Remote object

(cid:61550) Presentation logic (cid:61550) Business logic (cid:61550) Data access logic (và data model) (cid:61550) System services

(cid:61550) Các thành phần của 1 enterprise application

(cid:61550) 3 tầng (HTML browser và Web server) (cid:61550) Máy chủ ứng dụng độc quyền (Proprietary

application server)

(cid:61550) Máy chủ ứng dụng chuẩn (Standard application

framework thể hiện ở (cid:61550) Cách thức thay đổi linh động như thế nào? (cid:61550) Các dịch vụ hệ thống được cung cấp ra sao?

server)

(cid:61550) Sự phát triển của 1 enterprise application

Single Tier (Mainframe-based)

Single-Tier: Ưu nhược điểm

(cid:61550) Dumb terminals kết nối trực tiếp với mainframe (cid:61550) Theo mô hình tập trung (ngược với mô hình phân

tán)

(cid:61550) Không cần quản lý phía client (cid:61550) Nhất quán dữ liệu (Data consistency)

(cid:61550) Ưu điểm:

(cid:61550) Các xử lý Presentation, business, và data access được thực hiện duy nhất trong 1 ứng dụng ở mainframe

(cid:61550) Các thao tác (presentation, data model, business logic) được mix vào lẫn nhau (cid:61664) khó bảo trì & tái sử dụng code.

(cid:61550) Nhược điểm:

2

8/28/2011

Two-Tier

Two-Tier

(cid:61550) Thuận lợi:

(cid:61550) DB product independence

(cid:61550) Gửi truy vấn SQL, nhận về dữ liệu thô

(cid:61550) Cons:

(cid:61550) Presentation, data model, business logic được mix lẫn

nhau ở client (cid:61664) khó cập nhật & bảo trì

(cid:61550) Fat clients giao tiếp với database phía sau

(cid:61550) Data Model đính chặt với mọi client: nếu CSDL thay đổi

(cid:61664) tất cả clients đều hỏng

(cid:61550) Presentation, Business logic và Data Model processing logic đều nằm trong ứng dụng client

SQL request

(cid:61550) Các cập nhật phải được tiến hành trên tất cả các clients

(cid:61664) ác mộng trong bảo trì hệ thống

Database

(cid:61550) Tạo DB connection cho tất cả client (cid:61664) Tốn tài nguyên,

SQL response

khó mở rộng

(cid:61550) Trao đổi dữ liệu thô (Raw data) (cid:61664) tốn băng thông

Three-tier (RPC based): ưu nhược điểm

Three-Tier (RPC based)

(cid:61550) Thinner client: business & data model được tách

(cid:61550) Business logic thay đổi linh động hơn so với mô

biệt với presentation (cid:61550) Business logic và data access logic nằm trên server trung

hình 2-tier (cid:61550) (Nằm trên middle-tier server)

gian (middle tier server), client xử lý presentation (cid:61550) Middle tier server cần xử lý các dịch vụ hệ thống

(cid:61550) Ưu điểm:

(cid:61550) Điều khiển tương tranh, đa luồng, transaction, security,

persistence, multiplexing, performance, ...

(cid:61550) Độ phức tạp cao ở middle-tier server (cid:61550) Client và middle-tier server liên kết khá chặt (So

với mô hình three-tier object based)

(cid:61550) Nhược điểm:

RPC request

SQL request

Database

(cid:61550) Chưa thực sự tái sử dụng được Code (So với mô

RPC response

SQL response

hình three-tier object based)

Three-tier (Remote Object based): ưu nhược điểm

Three-Tier (Remote Object based)

(cid:61550) Business logic và data model phát triển theo mô

hình ĐT (cid:61550) Business logic và data model được mô tả “trừu tượng”

(cid:61550) Kết nối linh động hơn mô hình RPC (cid:61550) Tái sử dụng Code tốt hơn

(interface language)

(cid:61550) Ưu điểm:

(cid:61550) Mô hình đối tượng được sử dụng: CORBA, RMI,

(cid:61550) Vẫn có độ phức tạp ở server trung gian

DCOM (cid:61550) Interface language trong CORBA là IDL (cid:61550) Interface language trong RMI là Java interface

(cid:61550) Nhược điểm:

Object request

Database

Object response

SQL request SQL response

3

8/28/2011

Three-tier (Web Server based): ưu nhược điểm

Three-Tier (Web Server)

(cid:61550) Đa dạng cho thiết bị client

(cid:61550) Điện thoại di động hỗ trợ J2ME, …

thức HTTP

(cid:61550) Không cần quản lý client

(cid:61550) Ưu điểm: (cid:61550) Browser xử lý presentation logic (cid:61550) Browser giao tiếp với Web server qua giao

(cid:61550) Vẫn còn phức tạp ở tầng trung gian

công nghệ “Sinh nội dung động” (CGI, Servlet/JSP, ASP)

(cid:61550) Business logic và data model được xử lý theo (cid:61550) Nhược điểm:

HTML request

SQL request

WEB Server

Database

HTML response

SQL response

Xu hướng

Single-tier vs. Multi-tier

Single tier

Multi-tier

thành kiến trúc multi-tier

(cid:61548) Separation among

(cid:61548) No separation

presentation, business logic, database

among presentation, business logic, database

(cid:61550) Chuyển kiến trúc single-tier hoặc two-tier

(cid:61548) Hard to maintain

client

(cid:61548) More flexible to change, i.e. presentation can change without affecting other tiers

(cid:61550) Chuyển từ mô hình nguyên khối (monolithic model) sang mô hình ứng dụng hướng đối tượng (cid:61550) Chuyển ứng dụng client thành HTML-based

Các vấn đề và gải pháp nổi bật

Monolithic vs. Object-based

Monolithic

Object-based

(cid:61548) Pluggable parts (cid:61548) Reusable (cid:61548) Enables better

design

quyết các vấn đề về (cid:61550) Concurrency control, Transactions (cid:61550) Load-balancing, Security (cid:61550) Resource management, Connection pooling

(cid:61548) 1 Binary file (cid:61548) Recompiled, relinked, redeployed every time there is a change

(cid:61548) Easier update (cid:61548) Implementation

(cid:61550) Phức tạp ở middle tier server (cid:61550) Cần nhân bản các dịch vụ hệ thống, giải

(cid:61550) Cần có 1 container chung xử lý toàn bộ dịch vụ

hệ thống ở trên

can be separated from interface (cid:61548) Only interface is

published

(cid:61550) Giải pháp độc quyền và giải pháp mở, chuẩn

(cid:61550) Giải pháp?

4

8/28/2011

Giải pháp độc quyền-Proprietary Solution

Giải pháp mở & chuẩn - Open and Standard Solution

dịch vụ hệ thống

động trong code (cid:61550) Dựa trên công nghệ Java và standard-based Java

programming APIs

chẽ, rõ ràng nhưng theo cách thức của bên cung cấp (cid:61550) (cid:61664) Vấn đề: phụ thuộc vào nhà cung cấp

(cid:61550) Sử dụng mô hình "component và container" trong đó container cung cấp các dịch vụ hệ thống theo chuẩn. (cid:61550) Sử dụng mô hình "component và container" (cid:61550) Components đảm nhiệm các business logic (cid:61550) Container cung cấp môi trường thực thi kèm các (cid:61550) J2EE: là 1 chuẩn như thế, cho phép linh (cid:61550) Components và container có giao kết chặt

(cid:61550) Ví dụ: Tuxedo, .NET

Với Developers

(cid:61550) Có thể sử dụng bất kỳ J2EE implementation nào để

3. Tại sao lựa chọn J2EE?

phát triển và triển khai (cid:61550) Bản chuẩn tắc, chất lượng, miễn phí (cid:61550) Bản nâng cao, có phí, đảm bảo scalability và fault-

tolerance

(cid:61550) Có rất nhiều tài nguyên trong cộng đồng J2EE (cid:61550) books, articles, tutorials, quality code, best practice

guidelines, design patterns etc.

(cid:61550) Sử dụng các thành phần có sẵn (off-the-shelf) của

bên thứ 3

27

Với Vendors

Với Business Customers

(specifications), sau đó cạnh tranh trong cài đặt/thực thi (cid:61550) Trong các lĩnh vực Scalability, Performance,

requirements (cid:61550) Price (free(cid:61664)trả phí), scalability (1 CPU (cid:61664) mô

hình clustered), reliability, performance, tools, …

Reliability, Availability, và development tools, … (cid:61550) Tự do sáng tạo trong cài đặt, vẫn đảm bảo

(cid:61550) Luôn có lựa chọn tối ưu

tính portability của các ứng dụng

(cid:61550) Vendors: cùng tạo ra các đặc tả (cid:61550) Đảm bảo tính portability cho ứng dụng (cid:61550) Có nhiều thực thi để lựa chọn, tùy

riêng mình

(cid:61550) Rất nhiều công cụ phát triển (cid:61550) Không cần create/maintain các APIs cho

5

8/28/2011

J2EE 1.4 APIs and Technologies

4. J2EE APIs & Technologies

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

(cid:61550) Servlet 2.4 (cid:61550) JSP 2.0 (cid:61550) EJB 2.1 (cid:61550) JAXR (cid:61550) Connector 1.5 (cid:61550) JACC (cid:61550) JAXP 1.2 (cid:61550) JavaMail 1.3 (cid:61550) JAF 1.0

31

Java EE 5

4.1. Servlet & JSP (JavaServer Pages)

(cid:61550) JAX-WS 2.0 & JSR 181 (cid:61550) Java Persistence (cid:61550) EJB 3.0 (cid:61550) JAXB 2.0 (cid:61550) JavaSever Faces 1.2 – new to Platform (cid:61550) JSP 2.1 – Unification w/ JSF 1.2 (cid:61550) StAX – Pull Parser – new to Platform

Servlet là gì?

Servlet vs. CGI

(cid:61550) Servlets là các Java™ objects, mở rộng chức

Request CGI1 Request CGI1 Request CGI1 Request CGI1 Request CGI1 Request CGI1 Request CGI1

Child for CGI1 Child for CGI1 Child for CGI1 Child for CGI1 Child for CGI1 Child for CGI1 Child for CGI1

năng của 1 HTTP server (cid:61550) Cho phép sinh động nội dung (Dynamic contents

Request CGI2 Request CGI2 Request CGI2 Request CGI2

Child for CGI2 Child for CGI2 Child for CGI2 Child for CGI2

generation)

CGI CGI CGI CGI CGI CGI CGI CGI Based Based Based Based Based Based Based Based Webserver Webserver Webserver Webserver Webserver Webserver Webserver Webserver

Request CGI1 Request CGI1

(cid:61550) Là lựa chọn ưu việt hơn CGI, NSAPI, ISAPI,

Child for CGI1 Child for CGI1

Request Servlet1 Request Servlet1 Request Servlet1 Request Servlet1 Request Servlet1

Servlet Based Webserver Servlet Based Webserver Servlet Based Webserver Servlet Based Webserver Servlet Based Webserver Servlet Based Webserver

Servlet1 Servlet1 Servlet1 Servlet1 Servlet1

Request Servlet2 Request Servlet2 Request Servlet2

JVM JVM JVM JVM JVM JVM

Request Servlet1

Servlet2 Servlet2 Servlet2

... (cid:61550) Độ hiệu quả (cid:61550) Độc lập Platform và Server (cid:61550) Hỗ trợ quản lý Session (cid:61550) Nền tảng Java

6

8/28/2011

Công nghệ JSP?

(cid:61550) Cho phép tách biệt business logic khỏi

4.2. EJB (Enterprise Java Beans)

presentation (cid:61550) Presentation: dạng HTML hoặc XML/XSLT (cid:61550) Business logic: được thực hiện với Java Beans

hoặc custom tags

(cid:61550) Bảo trì, tái sử dụng tốt hơn

(cid:61550) Dễ mở rộng ứng dụng với custom tags (cid:61550) Dựa trên công nghệ Servlet

Tại sao sử dụng EJB Technology?

EJB Technology?

(cid:61550) Tận dụng được các lợi ích của mô hình hướng

thành phần trên server

server

(cid:61550) Tách biệt business logic với system code (cid:61550) Container cung cấp các system services

(cid:61550) Đảm bảo tính portability cho các components

(cid:61550) Là công nghệ cho các components phía

(cid:61550) Trên các servers khác nhau (cid:61550) Trên môi trường tính toán khác nhau

scalable, secure, …

(cid:61550) Cho phép cấu hình tại thời điểm triển khai

(deployment-time configuration) (cid:61550) Deployment descriptor (XML file)

(cid:61550) Cho phép phát triển và triển khai các ứng dụng doanh nghiệp với các tính năng cao cấp: (cid:61550) Transactional, distributed, multi-tier, portable,

EJB Architecture

Enterprise JavaBeans

Enterprise JavaBeans

Synchronous communication

Asynchronous communication

Session Bean

Entity Bean

Message-Driven Bean

Stateless

Stateful

Container managed Persistence (CMP)

Bean managed Persistence (BMP)

7

8/28/2011

Java Message Service (JMS)

(cid:61550) Messaging systems (MOM) cung cấp

4.3. JMS (Java Message Service)

(cid:61550) Giao tiếp linh động (cid:61550) Giao tiếp không đồng bộ (Asynchronous communication) (cid:61550) Có vai trò như 1 bưu điện tập trung (cid:61550) Lợi ích của các Messaging systems

(cid:61550) Flexible, Reliable, Scalable communication systems

(cid:61550) Hỗ trợ mô hình: Point-to-Point, Publish & Subscribe (cid:61550) JMS định nghĩa các chuẩn Java APIs cho các

messaging systems

Connector Architecture

(cid:61550) Định nghĩa các API chuẩn tắc để tích hợp công

nghệ J2EE với các hệ thống EIS (cid:61550) CICS, SAP, PeopleSoft, etc.

4.4. Connector Architecture

(cid:61550) Nếu không có Connector architecture, mỗi App

server phải cung cấp 1 adaptor riêng cho từng hệ thống EIS (cid:61550) m (# of App servers) x n (# of EIS's) Adaptors

(cid:61550) Với Connector architecture, cùng 1 adaptor làm việc được với tất cả App server tuân theo kiến trúc J2EE Connector (cid:61550) 1 (common to all App servers) x n (# of EIS's) Adaptors

Bài toán m x n nếu không có Connector Architecture

m

n

SAP

App Server1

4.5. JAAS (1 thành phần của J2SE 1.4) (Java Authentication & Authorization Service)

App Server2

EIS 2

EIS3

App Server3

EIS4

App Server

8

8/28/2011

JAAS: Authentication

JAAS Pluggable Authentication

(cid:61550) Dễ dàng chuyển đổi các kỹ thuật xác thực sau:

(cid:61550) Userid/password (cid:61550) Smartcard (cid:61550) Kerberos (cid:61550) Biometric (Sinh trắc học)

(cid:61550) Cho phép ứng dụng là portable, không quan tâm sử

dụng kỹ thuật xác thực nào (cid:61550) JAAS cung cấp các API độc lập với kỹ thuật sử dụng

(cid:61550) Cho các ứng dụng Java

(cid:61550) Có file cấu hình (login configuration file) chứa thông tin

về kỹ thuật áp dụng cho 1 môi trường cụ thể

JAAS: Authorization

(cid:61550) Không có JAAS, Java platform security dựa

4.6. Các J2EE APIs & Technologies khác

trên: (cid:61550) Where the code originated (cid:61550) Who signed the code (cid:61550) JAAS API hỗ trợ thêm: (cid:61550) Who’s running the code

(cid:61550) (cid:61664) Hỗ trợ User-based authorization

JNDI

JDBC

CSDL quan hệ (cid:61550) Sử dụng SQL

(cid:61550) Cung cấp Java API chuẩn tắc giao tiếp với (cid:61550) Java Naming and Directory Interface (cid:61550) Được sử dụng bởi các ứng dụng J2EE để

định vị tài nguyên & đối tượng (resources & objects) (cid:61550) Ứng dụng: thông qua định danh để tham chiếu

driver tương ứng để Java API gọi đến

tới đối tượng

(cid:61550) Định danh phải được cấu hình chỉ tới đối tượng

và hoặc tài nguyên nào bởi quản trị hệ thống khi triển khai ứng dụng

(cid:61550) Các nhà cung cấp (Vendors) đưa ra các JDBC

9

8/28/2011

J2EE Platform Architecture

B2B Applications

4.7. J2EE là 1 kiến trúc End- to-End

Existing Applications

B2C Applications

Web Services

Application Server

Wireless Applications

Enterprise Information Systems

N-tier J2EE Architecture

J2EE là giải pháp End-to-End

Firewall

J2EE Application Server

Client

Enterprise JavaBeans™

Client

Client

Enterprise Information Systems (EIS): Relational Database,

Enterprise JavaBeans

Client

Legacy Applications,

ERP Systems

Web Server JSP, Servlets

Client

HTML/XML

Other Services: JNDI, JMS, JavaMail™

E J B T ie r W e b T ie r

Client Tier

Middle Tier

Enterprise Information Tier

J2EE Containers & Components

Applet Container

Web Container

EJB Container

Applet

Servlet

JSP

EJB

RMI

HTTP/ HTTPS

J2SE

I

I

P O

P O

A JavaMail

I I / I

I I / I

A JavaMail T J

4.8. J2EE Component & Container Architecture

S M J

T J

S M J

D N J

D N J

C B D J

C B D J

M R

JAF

M R

JAF

App Client Container

J2SE

HTTP/ HTTPS

App Client

RMI

I

P O

I I / I

S M J

D N J

C B D J

M R

J2SE

J2SE

Database

10

8/28/2011

Containers và Components

Containers & Components

Containers Handle

Components Handle

thầm lặng (invisibly) (cid:61550) Không có các APIs phức tạp

(cid:61548) Presentation (cid:61548) Business Logic

(cid:61550) Đem đến tính simplicity và flexibility cho J2EE

(cid:61550) Containers thực hiện các công việc 1 cách

(cid:61548) Concurrency (cid:61548) Security (cid:61548) Availability (cid:61548) Scalability (cid:61548) Persistence (cid:61548) Transaction (cid:61548) Life-cycle

(cid:61550) Gần giống với các components (cid:61550) Các nhà sản xuất (Vendors) các containers tự do

sáng tạo

management (cid:61548) Management

Vòng đời phát triển ứng dụng J2EE

(cid:61550) Containers thực thi J2EE

(cid:61550) Servlet, JSP, EJB

(cid:61550) Viết và biên dịch các thành phần code

(cid:61550) Viết deployment descriptors cho các

4.9. Vòng đời phát triển và triển khai các ứng dụng J2EE

components (cid:61550) Từ Java EE 5, có thể thay bằng annotation

deployable package

(cid:61550) Tập hợp các components trong các ready-to-

Các Roles trong quá trình phát triển ứng dụng J2EE

(cid:61550) Triển khai package trên server

Minh họa cho vòng đời

Creation

Assembly

Deployment

(cid:61550) Component provider

J2EE Modules

J2EE APP

(cid:61550) Còn được gọi là Bean provider

Processed by Deployer

Created by Component Developer

Assembled and Augmented by Application Assembler

Deploy

J2EE Container

(cid:61550) Còn được gọi là Container provider

(cid:61550) Application assembler (cid:61550) Deployer (cid:61550) Platform provider

Enterprise Components

(cid:61550) Tools provider (cid:61550) System administrator

11

8/28/2011

Deployment Descriptor

4.10. Các thành phần trong ứng dụng J2EE Application

với programming customization) (cid:61550) (cid:61664)XML file

(cid:61550) Chỉ dẫn cho container cách quản lý và điều khiển hoạt động của các J2EE components (cid:61550) Transaction (cid:61550) Security (cid:61550) Persistence (cid:61550) Cho phép declarative customization (ngược

Các thành phần có thể có trong ứng dụng J2EE

Các thành phần trong ứng dụng J2EE

(cid:61550) Đảm bảo tính portability cho mã nguồn

(cid:61550) Các ứng dụng J2EE 4 tầng:

EJB Server

Web Server

(cid:61550) HTML client, JSP/Servlets, EJB, JDBC/Connector

(cid:61550) Các ứng dụng J2EE 3 tầng:

DB & EIS Resources

(cid:61550) HTML client, JSP/Servlets, JDBC

(cid:61550) Các ứng dụng J2EE 3 tầng:

Web Server

EJB Server

Browser

(cid:61550) EJB standalone applications, EJB,

JDBC/Connector

Stand-alone

(cid:61550) Từ J2EE platform đến J2EE platform thông qua

trao đổi các JMS hoặc các thông điệp XML

(cid:61550) Các ứng dụng B2B Enterprise

Chọn loại nào?

5. J2EE 1.4 Standard Implementation, Compatibility Suite, Brand

(cid:61550) Phụ thuộc vào 1 số yếu tố (cid:61550) Requirements của ứng dụng (cid:61550) Tầng EJB có sẵn có không (cid:61550) Các tài nguyên cho developer có sẵn có không

12

8/28/2011

5.1. Standard Implementation

5.2. Compatibility Test Suite (CTS)

Server Platform Edition 8 (cid:61550) Cài đặt theo đúng chuẩn đề ra (cid:61550) Miễn phí phát triển và triển khai (cid:61550) Được cập nhật liên tục

technology: (cid:61550) Write Once, Run Anywhere™ (cid:61550) Ứng dụng Java chạy trên bất kỳ máy ảo java nào (cid:61550) Ứng dụng J2EE chạy được trên J2EE platform bất

kỳ (cid:61550) (cid:61664) Cần được test

J2EE Application Verification Kit (J2EE AVK)

5.3. Các sản phẩm cho J2EE Platform (Brand)

(cid:61550) Cài đặt cho J2EE 1.4: Sun Java Application (cid:61550) Nhiệm vụ lớn nhất của công nghệ Java™

J2EE? (cid:61550) Sử dụng J2EE RI 1.3.1 và J2EE Application

Verification Kit (J2EE AVK)

(cid:61550) ATG (cid:61550) Bea Systems (cid:61550) Borland (cid:61550) Computer Associates

(cid:61550) Cách thức test tính portability của ứng dụng

(cid:61550) Static verification (cid:61550) Dynamic verification

(cid:61550) Cách thức test:

(cid:61550) iPlanet (cid:61550) Macromedia (cid:61550) NEC (cid:61550) Oracle (cid:61550) Pramati (cid:61550) SilverStream (cid:61550) Sybase (cid:61550) Talarian (cid:61550) Trifork

mãn tất cả các yêu chí chưa.

(cid:61550) Fujitsu (cid:61550) Hitachi (cid:61550) HP (cid:61550) IBM (cid:61550) IONA

Các sản phẩm cho J2EE Platform

Đầu tư đảm bảo tính compatibility của J2EE

(cid:61550) Lấy về các kết quả test, kiểm tra đã thỏa

test kit

(cid:61550) IDE’s: Borland JBuilder Enterprise, WebGain

(cid:61550) Tools (cid:61550) Sun đầu tư xây dựng các bộ compatibility

Visual Cafe’, IBM Visual Age for Java™, Forte™ for Java™, Oracle JDeveloper, Macromedia Kawa

bảo có sản phẩm chất lượng

(cid:61550) Kiểm tra trình độ kỹ sư hàng năm để đảm

(cid:61550) Modeling, Performance, Testing, etc. (cid:61550) Enterprise Integration: Connectors,

Java Message Service (JMS) API, XML

đặc tả (specification), thực thi (implementation), thương mại (business)

(cid:61550) Đầu tư vào Testing luôn cao hơn đầu tư vào

platform compatibility

(cid:61550) > 10 million $ được đầu tư trong J2EE

(cid:61550) Components (cid:61550) Frameworks (cid:61550) Applications

13

8/28/2011

6. J2EE Blueprint

(cid:61550) Các hướng dẫn thực hành, mẫu thiết kế, các

nguyên lý thiết kế (cid:61550) MVC pattern

6. J2EE Blueprint

(cid:61550) Blueprint bao trùm tất cả các tầng

(cid:61550) Client tier (cid:61550) Web tier (cid:61550) Business logic (EJB) tier (cid:61550) Database access tier

(cid:61550) Có code mẫu/ví dụ đi kèm với J2EE 1.4 SDK

(cid:61550) Java Pet Store, Adventure builder

Tại sao lựa chọn J2EE cho Web Services?

7. J2EE và Web Services?

thành Web services

(cid:61550) Web services đơn thuần là 1 trong nhiều kênh dịch vụ của J2EE (để khai thác tầng business logic) (cid:61550) Không cần thay đổi kiến trúc (cid:61550) Dễ dàng chuyển đổi các J2EE components đã có

Web services (cid:61550) Portability, Scalability, Reliability (cid:61550) Không phụ thuộc vào vendor riêng lẻ nào

(cid:61550) Rất nhiều ích lợi của J2EE được giữ lại trong

Mô hình Web services trên J2EE

Hỗ trợ hiện tại của J2EE cho Web services

(cid:61550) Java APIs cho Web Services đang phát triển rất

J2EE Server JSP™/ JavaServlet API / EJB™

Rich Clients

XMLP/SOAP

nhanh (cid:61550) Web services dựa trên WUST (WSDL, UDDI, SOAP) được

JSPJSP

JDBC

hỗ trợ rất tốt

DBMS

(cid:61550) Các tầng Web services tiếp theo đang được phát triển

XMLP/SOAP

MIDP Devices

XHTML/WML

(cid:61550) Đã cung cấp các Tools để triển khai các J2EE

JMS Connectors

EJBEJB

components thành Web services

Existing Existing Apps Apps

HTML/XML

(cid:61550) J2EE đã định nghĩa framework đầy đủ cho Web

XMLP/SOAP

Browsers

Services (J2EE 1.4, Web services for J2EE)

Services

14

8/28/2011

Các mục tiêu thiết kế của J2EE 1.4 Web Services Framework

J2EE 1.4 Web Services Framework

services component (cid:61550) Trên các vendor platform khác nhau (cid:61550) Trên các operational environment khác nhau (cid:61550) Sử dụng các mô hình lập trình J2EE đã có để

thực thi/cài đặt các service

(cid:61550) Đảm bảo tính Portability cho các Web

(cid:61550) Java APIs mức cao (cid:61550) Sử dụng mô hình triển khai đã có

Bước 1: Cho Beginners & Intermediate J2EE Programmers

(cid:61550) J2EE 1.4 (JSR 151) (cid:61550) Web services for J2EE (JSR 109) (cid:61550) JAX-RPC (JSR 101) (cid:61550) JAXR (Java API for XML Registries) (cid:61550) SAAJ (SOAP with Attachments API for Java) (cid:61550) EJB 2.1 (cid:61550) Dễ phát triển và triển khai (deploy)

8. Các bước nghiên cứu J2EE?

(cid:61550) Hỗ trợ J2EE rất tốt (cid:61550) Có rất nhiều tutorials

(cid:61550) Eclipse

Bước 2: Cho Advanced J2EE Programmers

(cid:61550) Tham gia khóa học đầy đủ (cid:61550) Sử dụng J2EE IDE, tùy lựa chọn (cid:61550) Thử các IDE mã nguồn mở (cid:61550) NetBeans IDE (netbeans.org)

(cid:61550) Tìm hiểu các giải pháp mã nguồn mở

Tổng kết

(cid:61550) Spring framework (for light-weight framework) (cid:61550) Hibernate (for O/R mapping) (cid:61550) JDO (for transparent persistence) (cid:61550) Struts, WebWork, Tapestry (for Web-tier

frameworks)

(cid:61550) JUnit (for unit testing) (cid:61550) Log4j (for logging) (cid:61550) ...

15

8/28/2011

Tổng kết

Resources

(cid:61550) J2EE Home page

(cid:61550) java.sun.com/j2ee

(cid:61550) J2EE 1.4 SDK

(cid:61550) java.sun.com/j2ee/1.4/download.html#appserv

(cid:61550) J2EE 1.4 Tutorial

(standard-based architecture)

(cid:61550) java.sun.com/j2ee/1.4/download.html#appserv

(cid:61550) J2EE Blueprints

(cid:61550) J2EE là nền tảng để phát triển và triển khai các ứng dụng doanh nghiệp hướng thành phần, n-tier, web-based, transactional (cid:61550) J2EE là kiến trúc xây dựng theo chuẩn

(cid:61550) java.sun.com/blueprints/enterprise/index.html

(cid:61550) NetBeans IDE Homesite (cid:61550) http://www.netbeans.org

(cid:61550) J2EE tất cả vì cộng đồng (cid:61550) J2EE phát triển theo yêu cầu của thực tế

16