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ế

