Upload
quy-linh
View
4
Download
0
Embed Size (px)
Citation preview
1.1 Tổng quan về J2EE
1.1.1J2EE là gì
Java 2 Platform Enterprise Edition viết tắt là J2EE, định nghĩa một chuẩn để phát
triển những ứng dụngthương mại đa tầng (multitier enterprise applications). J2EE
platform chứa đựng những tính năng tốt của Java 2 Platform như "viết một lần, chạy ở
mọi nơi", JDBC (Java Database Connectivity) truy cập cơ sở dữ liệu, CORBA kết hợp
với những tài nguyên đã có…Được xây dựng trên nền tảng là Java 2 Platform, J2EE mở
rộng hổ trợ cho nhiều công nghệ mới như Enterprise JavaBeans, Java Servlets,
JavaServer Pages và XML.
1.1.2Kiến trúc của J2EE
J2EE nền tảng sử dụng một mô hình ứng dụng phân tán đa tầng.
Hình 2-1 Mô hình đa tầng của J2EE
Trong mô hình ứng dụng J2EE có nhiều tầng: Tầng khách hàng (client tier), tầng
web (web tier),tầng thương mại(business tier)và tầng hệ thống thông tin thương
mại (enterprise information system tier). Tầng thương mại và tầng web nằm trên
một máy chủ ứng dụng gọi là máy chủ ứng dụng (application server) hay máy chủ
J2EE (J2EE server).Máy chủ J2EE cung cấp những dịch vụ cần thiết cho những
thành phần (component) của tầng thương mại và tầng web.
Có hai loại khách hàng (client) là: Những khách hàng ứng dụng
(application clients) và những khách hàng web (web client). Khách hàng web truy
cập tới những thành phần trong tâng web là các lớp Java Servlet hay Java
ServerPages.Những khách hàng ứng dụng là những ứng dụng độc lập, chúng truy
cập trực tiếp tới các thành phần trong tầng thương mại.
Hình 2-2 Containers và Components
J2EE có các loại container như :
- Web Container : Quản lý sự thực thi của các thành phần web, và container
của chúng chạy trong máy chủ J2EE (J2EE server).
- EJB Container : Quản lý sự thực thi của các thành phần EJB, các thành
phần EJB và container của chúng chạy trong J2EE server.
- Application client Container : Quản lý sự thực thi các thành phần của ứng
dụng client.
- Applet Container : Quản lý sự thực thi của applets(ứng dụng ký sinh).
Các công nghệ trong J2EE :
1) Java Database Connectivity (JDBC) API: JDBC là một tập hợp các giao diện cho
phép các ứng dụng Java truy cập vào cơ sở dữ liệu bất kỳ. API này có cùng một
mục đích như ODBC (Open Database Connectivity) Microsoft.
2) Remote Method Invocation (RMI): RMI là một API cho phép các đối tượng Java
để giao tiếp từ xa với các đối tượng khác.
3) Java IDL: IDL (Interface Definition Language) là một ngôn ngữ nền tảng tiêu
chuẩn khai báo độc lập được sử dụng để xác định các giao diện đối tượng triển
khai cung cấp và đối tượng khách hàng gọi. Java IDL cho phép bất kỳ đối tượng
Java để giao tiếp với các đối tượng khác trong ngôn ngữ bất kỳ bằng phương tiện
của IDL.
4) Enterprise Java Beans: Đóng gói các logic thương mại (business logic) và hổ trợ
thực hiện giao tác và bảo mật.
5) Servlets và Java Server Pages (JSP): Công nghệ dùng trong xây dựng những ứng
dụng web.
6) Java Message Service (JMS): Tập APIs cho phép ứng dụng tạo, gởi, nhận, và đọc
thông điệp bất đồng bộ.
7) Java Transaction API (JTA): JTA cho phép những ứng dụng J2EE thực hiện
những giao tác phân tán (distibuted transaction).
8) JavaMail: Cho phép thành phần java gởi và nhận mail.
9) Java API cho xử lý XML (Java API for XML Processing -JAXP): XML là một
định dạng dữ liệu cho các tài liệu thay thế cấu trúc trên Web. JAXP cho phép các
ứng dụng Java phân tích và chuyển đổi tài liệu XML. XML được sử dụng nhiều
trong J2EE như là một định dạng dữ liệu.
10)Java Naming và Directory Interface (JNDI): JNDI là một giao thức cung cấp một
tập API chuẩn cho phép truy cập tới những dịch vụ naming và directory.
11)Java Persistence API (JPA) : Cho phép ánh xạ giữa một lớp java với các cột trong
một bảng.
1.2 Enterprise Java Bean
1.2.1Enterprise Java Bean là gì?
EJBs là các thành phần công nghệ phía máy chủ dùng để đóng gói lớp logic
nghiệp vụ (business logic) và hổ trợ mạnh việc thực hiện các giao tác và bảo mật. EJB
cũng có một tích hợp một ngăn xếp cho messaging, scheduling, remote access, web
service endpoints (SOAP and REST), dependency injection, component life cycle,..vv.
Ngoài ra, EJBs còn kết hợp với các công nghệ khác của Java SE và Java EE như JDBC,
JavaMail, JPA, Java Transaction API (JTA), Java Messaging Service (JMS), Java
Authentication and Authorization Service (JAAS), Java Naming and Directory
Interface (JNDI), and Remote Method Invocation (RMI).
Ngày nay EJBs là một cách đơn giản cho các việc phát triển các mô hình lập
trình Java phía máy chủ, giảm độ phức tạp trong khi mang lại khả năng tái sử dụng và
khả năng mở rộng tới các ứng dụng thương mại quan trọng. Tất cả những điều đạt được
này đều xuất phát từ một lớp java nguyên thủy(Plain old Java Object-POJO) sẽ được
triển khai vào một thùng chứa (container).
Các loại EJB:
Session bean dùng để đóng gói logic nghiệp vụ (business logic) cấp cao và
là phần quan trọng nhất của công nghệ EJB. Các loại session bean:
- Stateless: Session bean không chứa trạng thái giao tiếp giữa các phương
thức và bất kỳ thể hiện (instance) nào của nó có thể được sử dụng cho bất
kỳ khách hàng nào.
- Stateful: Session bean có chứa trạng thái giao tiếp với khách hàng (client)
trong suốt phiên làm việc (session).
Message-driven beans (MDBs): Được sử dụng để liên kết các hệ thống bên
ngoài bằng việc nhận các thông điệp bất đồng bộ sử dụng JMS (Java Message
Service). MDBs chủ yếu được sử dụng để tích hợp các hệ thống thông điệp hướng
thành phần giữa (message-oriented middleware - MOM).
Entity Bean: Những thực thể bean kết nối với cơ sở dữ liệu thông qua ánh
xạ giữa một lớp java và một cột trong một bảng trong cơ sở dữ liệu .
1.2.2Những đặc điểm tạo nên thế mạnh của Enterprise Java Bean
EJB là một thành phần phía máy chủ và cần được thực thi trong một thùng chứa
(container). Môi trường thực thi này cung cấp các tính năng cốt yếu cho nhiều ứng
dụng thương mại như:
- Remote client communication: Các EJBs sử dụng giao thức RMI – Remote
Method Invocation để giao tiếp giữa client và các lớp bean. Vì vậy EJB có
thể được triệu gọi từ nhiều máy chủ khác nhau, phục vụ cho nhiều loại
client (Desktop Application, Web Application…). Rất hữu ích khi kết hợp
với các tính năng khác để xây dựng nên một kiến trúc phân tán đa tầng hoạt
động một cách ổn định.
- Dependency injection: Phụ thuộc tiêm, cho phép bean dễ dàng truy cập tới
những tài nguyên khác.
- State management: Cho phép các stateful session bean quản lý trạng thái
giao tiếp với từng client riêng biệt trong một phiên làm việc.
- Pooling: Hồ chứa, cho phép quản lý các thể hiện bean đang sẳn sàng để
thực hiện các yêu cầu từ phía client.
- Component life cycle: Cho phép Container thông báo cho bean biết khi
chuyển từ trạng thái này sang trạng thái khác.
- Messaging: Hệ thống quản lý các thao tác gởi và nhận các thông điệp bất
đồng bộ sử dụng JMS API.
- Transaction management:Quản lý việc thực thi các giao tác, đảm bảo các
giao tác thực hiện một cách an toàn.
- Security: Bảo mật cho các phương thức, lớp bean. Sử dụng chứng thực
JAAS, cho phép phân quyền truy cập trên phương thức hoặc lớp bean dựa
vào vai trò của client.
- Concurrency support: Hổ trợ giải quyết khi có nhiều yêu cầu tài nguyên
phát sinh cùng một thời điểm. Đảm bảo dữ liệu được toàn vẹn và nhất quán
- Interceptors: Sự chặn đứng lời triệu gọi một phương thức, cho phép cung
cấp các dịch vụ chứng thực, kiểm tra,… trước khi phường thức được triệu
gọi.