Tải bản đầy đủ (.doc) (19 trang)

BÁO CÁO THỰC TẬP-KIẾN TRÚC NỀN TẢNG J2EE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (562.94 KB, 19 trang )

Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
Trường Đại học Công nghệ Thông tin
Khoa Công nghệ Phần mềm
*****
Chuyên đề: Lập trình J2EE
Giáo viên hướng dẫn: Ths. Huỳnh Ngọc Tín
Nhóm 06:
1. Vũ Ngọc Hưng 06520197
2. Vương Hà Thanh Mẫn 06520282
BÁO CÁO CUỐI HỌC KỲ
ĐỀ TÀI:
KIẾN TRÚC NỀN TẢNG J2EE
******
Chuyên đề Lập trình J2EE
1
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
Mục lục:
PHẦN A: KIẾN TRÚC NỀN TẢNG J2EE 3
1. Kiến trúc J2EE 3
2. Hệ thống ứng dụng J2EE 4
3. Các kỹ thuật liên quan đến kiến trúc J2EE 5
3.1. Các loại container trong J2EE 5
3.2. Các kỹ thuật liên quan đến kiến trúc 6
3.2.1 Công nghệ EJB 7
3.2.2 Công nghệ Servlet 7
3.2.3 Công nghệ JSP 7
3.2.4 Java API cho dịch vụ thông điệp 7
3.2.5 Java API cho giao tác 7
3.2.6 Java API cho mail 8
3.2.7 Kiến trúc hoạt tác JavaBean 8
3.2.8 Java API cho xử lý XML 8


3.2.9 Java API cho giao thức gọi hàm từ xa dựa trên XML 9
3.2.10 Java API cho giao thức SOAP kèm thông tin 9
3.2.11 Java API cho sổ đăng ký XML 10
3.2.12 Kiến trúc bộ kết nối J2EE 10
3.2.13 Java API cho kết nối cơ sở dữ liệu 10
3.2.14 Giao diện quản lý thư mục và định danh trong Java 11
3.2.15 Dịch vụ cấp phép và xác thực người dùng trong Java 12
3.2.16 Kỹ thuật giản đơn tích hợp ứng dụng J2EE 12
PHẦN B: TRIỂN KHAI ĐỒ ÁN TASK MANAGER 13
1. Lời nói đầu: 13
2. Project TaskManager 13
2.1. Giới thiệu 13
2.2. Yêu cầu chức năng 13
2.3. Cấu trúc chương trình 15
2.4. Chạy chương trình phía server 16
2.5. Chạy chương trình phía client 17
Chuyên đề Lập trình J2EE
2
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
PHẦN A: KIẾN TRÚC NỀN TẢNG J2EE
1. Kiến trúc J2EE
Nền tảng J2EE dựa trên các ứng dụng phân tán. Nó là kiến trúc phân tán
hướng thành phần, trong đó các thành phần được triển khai và thực thi trong 1
container. ( thành phần là 1 đơn vị nhỏ nhất có khả năng kế thừa và chúng độc
lập với nhau ) Cũng là một ứng dụng java tất nhiên J2EE cũng thừa hưởng được
tính chất của 1 ứng dụng thuần java như : viết một lần, chạy khắp nơi, độc lập
hệ điều hành, độc lập server triển khai. Ngoài ra J2EE còn có các ưu điểm nổi
bật như: là 1 ứng dụng với kiến trúc đa tầng, hoạt động trong môi trường phân
tán, năng động, khả chuyển, có khả năng giao tiếp tốt với các nền tảng khác như
CORBA, .NET.

Kiến trúc đa tầng: đây là nhân tố cơ bản trong kiến trúc của J2EE. Nhân
tố này giúp cho lập trình viên có thể tạo ra các component hoạt động, trao đổi
thong tin với nhau ở các môi trường máy ảo khác nhau. Tùy thuộc vào tính chất
của ứng dụng, lập trình viên có thể quyết định cách thức truy cập vào cơ sở dữ
liệu thong qua 1 web tier hoặc thông qua business tier( còn gọi là EJB tier ):
Môi trường phân tán: trong mô trình kiến trúc của J2EE, môi trường
này giúp cho các thành phần hoạt động trong các máy áo khác nhau có khả năng
giao trao đổi thông tin với nhau. Đây cũng là một nhân tố hết sức quan trọng
Chuyên đề Lập trình J2EE
3
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
trong 1 ứng dụng J2EE. Ví dụ như việc sử dụng cơ sở dữ liệu phân tán để giải
quyết lại với việc sự gia tăng nhanh kích thước của cơ sở dữ liệu.
Năng động khả chuyển: một ứng dụng J2EE có khả năng chạy trên mọi
hệ điều hành và mọi server hỗ j2ee. Ngoài ra ta có thể tùy biến ứng dụng j2ee
mà không cần phải chỉnh sửa hay biên dịch lại source code.
Giao tiếp với các nền tảng khác: đây là 1 đặc điểm rất quan trọng của
ứng dụng J2EE giúp cho các thành phần được viết bằng ngôn ngữ java có khả
năng giao tiếp với các thành phần được viết bằng các ngôn ngữ khác. J2EE hỗ
trợ giao tiếp với 2 nền tảng là CORBA( Common Object Request Broker
Architecture ) và .NET
2. Hệ thống ứng dụng J2EE
J2EE hỗ trợ cho ta rât nhiều công nghệ để xây dựng nên các thành phần
cho các tier khác nhau như Client Technologies, Presentation Technologies(web
tier), Business Technologies(ejb tier), và một số các công nghệ khác như JNDI,
JMS, JTA, JAXP, …
Với Client Technologies ta có thể xây dựng nên 2 loại client đó là
application client và web client. Các application client là các ứng dụng được
viết bằng ngôn ngữ java, các ứng dụng này có khả năng giao tiếp với các tier
khác, như trao đổi thông tin trực tiếp với Business tier, hoặc với web tier thong

qua giao thức HTTP. Các web client là các ứng dụng sử dụng các giao thức
HTTP để giao tiếp với các ứng dụng ở Server. Nó có thể là 1 ứng dụng có khả
năng gửi HTTP request hoặc 1 web browser.
Presentation Technologies còn gọi là kĩ thuật hiển thị ở tầng web tier. Nó
hỗ trợ lập trình viết tạo nên các thành phần ở server có khả năng nhận các
request từ client và tương tác trực tiếp( hoặc thong qua ejb tier ) với cơ sơ dữ
liệu. Lập trình viên có thể tạo nên các thành phần này bằng servlet hoặc jsp.
Servlet đơn thuần là 1 class java có khả năng tiếp nhận các request từ client. JSP
là 1 dạng file chứa các đoạn mã, chúng được dịch sang servlet bởi JspEngine.
Servlet và Jsp đều có khả năng truy cập trực tiếp vào cơ sở dữ liệu(EIS tier)
hoặc thong qua EJB tier. Ngoài ra ta cũng có thể sử dụng JavaBean để tạo ra các
class sử dụng cho servlet và jsp.
Business Technologies các thành phần được xây dựng bằng công nghệ
này để thực thi các business logic của ứng dụng. Trong J2EE việc phát triển các
thành phần này sử dụng công nghệ gọi là Enterprise Java Bean.
JDBC Technologies đây là cách thức mà Middle tier(web tier và ejb
tier ) sử dụng để truy cập vào cơ sơ dữ liệu. Đối với J2EE việc truy cập vào cơ
sơ dữ liệu bắt buộc phải được thực hiện thong qua JDBC API.
Naming Service do các J2EE được triển khai trong môi trường phân tán
nên các component sẽ nằm ở các máy ảo khác nhau. Chính vì vậy cần phải có
Chuyên đề Lập trình J2EE
4
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
một cách thức để xác định vị trí của các thành phần đó. Và đây cũng chính làm
nhiệm vụ của Naming Service ( còn gọi là JNDI: Java Naming and Directory
Interface ).
Java Message Service( JMS ) đây là phương thức trao đổi thong tin bất
đồng bộ giữa các component. Với JMS các thành phần có thể trao đổi thông tin
theo mô hình 1-1( point -point ) hoặc 1-nhiều(publish-subscribe )
Transaction Service( JTA ) việc quản lí các giao tác của các thành phần

trong ứng dụng là rất quan trọng, giao tác này thực hiện trên cở sở sử dụng Java
Transaction API
XML Processing Service( JAXP ) Việc xử lí XML là 1 phần tính hợp
vào J2EE. Nó được sử dụng để parse các XML file. Nó cũng support các công
cụ như SAX( Simple API for XML parsing ), DOM( Document Object Model ),
XSLT( XML Stylesheet Language for Transformation )
Ngoài ra còn một số các công nghệ khác như RMI, Java mail, …
3. Các kỹ thuật liên quan đến kiến trúc J2EE
J2EE là nền cung cấp các dịch vụ, các hàm giao tiếp(API) và các giao
thức để triển khai các ứng dụng đa tầng.
3.1. Các loại container trong J2EE
Server J2EE cung cấp 2 container : Web Container và EJB container
Chuyên đề Lập trình J2EE
5
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
+ EJB (Enterprice java bean) container : quản lý và thực thi các thành phần
enterprice bean
+ Web Container : quản lý và thực thi các thành phần JSP và Servlet
+ Application Client Container : quản lý và thực thi các thành phần phía client
(ví dụ như applet)
3.2. Các kỹ thuật liên quan đến kiến trúc
Chuyên đề Lập trình J2EE
6
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
3.2.1 Công nghệ EJB
Enterprise JavaBean Technology :Thể hiện vật lý của tầng EJB là
mô-đun EJB bao gồm một hay nhiều linh kiện EJB, EJB nếu xét đơn giản là
một lớp Java bao gồm đoạn mã chứa những phương thức và thuộc tính phục
vụ cho một thao tác nghiệp vụ (một số điểm cơ bản về EJB đã được giới
thiệu trong phần trước)., EJB có thể đơn sử dụng đơn lẻ hay cộng tác với

EJB khác. Công nghệ EJB bao gồm các chuẩn, phương pháp và kỹ thuật để
xây dựng nên EJB, như đã đề cập, EJB là phần quan trọng nhất trong kiến
trúc J2EE. Có 3 loại EJB: bean phiên làm việc, bean thực thể, bean hướng
thông điệp. EJB thường tương tác với CSDL. Một trong những thuận lợi của
bean thực thể là chúng ta không cần viết những đoạn mã SQL hay dùng kỹ
thuật kết nối JDBC để truy cập CSDL, những thao tác này đã được thùng
chứa EJB thực hiện thay. Tuy nhiên, người dùng có thể thay thế thao tác kết
nối & lưu trữ mặc định của thùng chứa bằng cách sử dụng kỹ thuật JDBC
theo những yêu cầu riêng.
3.2.2 Công nghệ Servlet
Java Servlet Technology : Nhắc lại, công nghệ servlet giúp xử lý những
yêu cầu và trả kết quả về cho phía khách qua giao thức HTTP, servlet mở rộng
chức năng của máy chủ theo mô hình yêu cầu – đáp ứng (request – response).
Mặc dù servlet có thể đáp ứng bất kỳ dạng yêu cầu nào từ khách nhưng nó
thường được ứng dụng nhiều trong ứng dụng web.
3.2.3 Công nghệ JSP
JavaServer Page Technology : Công nghệ JSP giúp bạn nhúng đoạn
mã Java servlet vào trong tập tin tài liệu dạng văn bản, nói cách khác, một
tập tin JSP chứa 2 dạng văn bản: dữ liệu tĩnh (dữ liệu văn bản theo khuôn
mẫu HTML, WML, XML) và những đoạn mã Java (tức đoạn mã JSP) xử lý
động nội dung của trang web. Khi thực thi, JSP được biên dịch thành servlet
thực hiện những chức năng vốn có của servlet, vì thế về bản chất, JSP là
servlet nhưng hỗ trợ việc lập trình trên web dễ dàng hơn.
3.2.4 Java API cho dịch vụ thông điệp
Java Message Service API – JMS API : JMS API là chuẩn và kỹ thuật
cho phép những linh kiện có thể đọc, tạo, gởi và nhận thông điệp cho nhau. JMS
API giúp các linh kiện, dịch vụ trong môi trường phân tán tương tác nhau một
cách đáng tin cậy và có thể theo giao tiếp bất đồng bộ.
3.2.5 Java API cho giao tác
Java Transaction API – JTA :JTA cung cập giao diện lập trình chuẩn

cho việc phân ranh giới các giao tác, nói cách khác, JTA quản lý các giao tác
Chuyên đề Lập trình J2EE
7
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
khi có sự cạnh tranh truy xuất hay truy xuất đồng thời giữa các linh kiện,
dịch vụ.
Lưu ý:
Giao tác (transaction): là tập một số tác vụ, thực hiện một giao tác
như thực hiện một tác vụ tức thực hiện nhiều tác vụ như thực hiện một tác
vụ, vì thế, giao tác là một đơn vị xử lý không thể phân chia. Một giao tác chỉ
có hiệu ứng khi đã được commit (xác nhận).
Rollback (hủy bỏ): hủy bỏ một số tác vụ đã được thực hiện trong một
giao tác rồi trả giao tác về trạng thái ban đầu khi chưa thực hiện các tác vụ
này, xem như giao tác chưa được thực hiện.
Commit (xác nhận): xác nhận giao tác đã được thực hiện.
Kiến trúc J2EE đưa ra phương thức commit tự động (auto commit) để xử lý
việc commit hay rollback giao tác, commit tự động nghĩa là sau mỗi thao tác
cập nhật dữ liệu, ứng dụng đương nhiên được commit, bất kỳ ứng dụng nào
khác khi đang xem CSDL sẽ thấy được những dữ liệu đã được cập nhật này.
Tuy nhiên, nếu trong ứng dụng có các tác vụ truy xuất CSDL phụ thuộc lẫn
nhau (đọc – ghi, ghi – đọc, ghi – ghi) thì chúng ta phải sử dụng JTA để xây
dựng và quản lý các giao tác.
3.2.6 Java API cho mail
JavaMail API :Ứng dụng JEE sử dụng JavaMail API để gởi mail,
JavaMail API gồm hai phần: Giao diện mức ứng dụng hỗ trợ các linh kiện
gởi mail và Giao diện bộ cung cấp dịch vụ. Nền tảng J2EE cung cấp
JavaMail với bộ cung cấp dịch vụ cho phép linh kiện gởi mail qua internet.
3.2.7 Kiến trúc hoạt tác JavaBean
JavaBeans Activation Framework – JAF : JAF cung cấp những dịch
vụ chuẩn để quyết định kiểu của một mẫu dữ liệu tùy ý, gói gọn các truy cập

đến nó, phát hiện các thao tác dành sẵn trên nó và tạo các JavaBean để thực
hiện các thao tác này. JavaMail sử dụng JAF.
3.2.8 Java API cho xử lý XML
Java API for XML Processin – JAXP : JAXP cung cấp các phương
thức xử lý XML theo một số mô hình sau:
- DOM: Document Object Model – Mô hình đối tượng tài liệu.
- SAX: Simple API for XML – Giao diện lập trình ứng dụng đơn giản cho
XML.
- XSLT: Extensible Stylesheet Language Transformation – Chuyển đổi ngôn
ngữ thẻ mở rộng.
JAXP cho phép ứng dụng phân tích và chuyển đổi tài liệu XML độc lập với
Chuyên đề Lập trình J2EE
8
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
thao tác bên dưới, điều này có nghĩa là người dùng chỉ cần dùng JAXP xử lý
tài liệu XML qua các giao diện (interface) chuẩn mà không cần biết chi tiết
về kỹ thuật bên trong. Theo đó, mô hình JAXP đa phần định nghĩa các giao
diện, người dùng phải sử dụng gói phần mềm của hãng thứ ba nào đó đã thi
công các giao diện này để xử lý tài liệu XML.
Lưu ý: J2SE, J2EE, J2ME… nói chung là công nghệ Java do công ty Sun
phát triển, trong đó với một số gói phần mềm, Sun chỉ đưa ra kiến trúc cấp
cao thông qua các giao diện, việc thi công hay cài đặt cụ thể các giao diện
này do hãng/công ty/tổ chức/nhóm/cá nhân khác – thuật ngữ gọi là hãng thứ
ba thực hiện. Không phải Sun không thể cài đặt được một số gói nhưng họ
để cho hãng thứ ba thực hiện nhằm tạo nên tính mở rất tốt cho công nghệ
Java, hãng thứ ba có thể cài đặt giao diện tốt hơn và Sun cũng nhẹ gánh, khi
đó Sun chỉ đóng vai trò kiến trúc sư.
Các gói phần mềm thi công các giao diện JAXP thường là những bộ phân
tích và bộ xử lý XML (XML parser và XML processor) do hãng thứ ba phát
triển. JAXP sử dụng không gian tên (namespace) để tránh trùng tên thẻ khi

xây dựng lược đồ XML.
3.2.9 Java API cho giao thức gọi hàm từ xa dựa trên XML
Java API for XML-Based RPC – JAX-RPC :(dùng phát triển dịch vụ
web) JAX-RPC sử dụng giao thức SOAP và HTTP , theo đó phía khách thực
hiện lời gọi hàm xa bằng cách gởi thông điệp theo chuẩn XML qua internet.
JAX-RPC cũng hỗ trợ WSDL, vì thế bạn có thể xuất khẩu và nhập khẩu tài
liệu WSDL. Với JAX-RPC và WSDL, phía khách tương tác với dịch vụ độc
lập với nền dù Java hay .NET, ví dụ: phía khách trên nền .NET có thể thực
hiện lời gọi hàm xa với dịch vụ web trên nền Java, ngược lại một dịch vụ
web trên nền Java vẫn tương tác được với phía khách trên nền .NET. JAX-
RPC dựa trên giao thức vận chuyển HTTP. Hơn thế nữa, JAX-RPC hỗ trợ
xây dựng các dịch vụ kết hợp HTTP với công nghệ Java trên SSL (Secure
Socket Layer –Tầng lỗ cắm bảo mật) và giao thức TSL (Transport Layer
Security – Bản mật tầng vận chuyển) giúp thiết lập sự xác thực
(authentication) căn bản hay hỗ tương trên mạng. SSL và TSL bảo đảm tính
toàn vẹn của thông điệp gởi trên mạng bằng kỹ thuật mã hóa dữ liệu ở khách
và khả năng xác thực ở chủ.
Xác thực là phương cách bảo đảm một người dùng/nhóm/đơn vị/tổ chức có
được phép truy cập những thông tin cần được bảo vệ hoặc nhạy cảm hay
không nhằm ngăn cản việc sử dụng, khai thác hay vận chuyển thông tin một
cách bất hợp pháp. Vận chuyển thông tin có khả năng bị xâm phạm hay bị
sử dụng sai mục đích sẽ bị chặn lại, vì thế, việc cấu hình dịch vụ web JAX-
RPC rất quan trọng để bảo vệ dữ liệu khi vận chuyển.
3.2.10 Java API cho giao thức SOAP kèm thông tin
SOAP with Attachments API for Java – SAAJ :(dùng phát triển dịch
vụ web) SAAJ là một API mức thấp giữ vai trò nền tảng cho JAX-RPC.
Chuyên đề Lập trình J2EE
9
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
SAAJ cho phép các thông điệp tương thích với đặc tả SOAP có kèm theo

thông tin ghi chú. Hầu hết các nhà phát triển không dùng SAAJ API, thay
vào đó họ sử dụng JAX-RPC ở cấp cao hơn.
3.2.11Java API cho sổ đăng ký XML
Java API for XML Registries – JAXR :(có thể dùng phát triển dịch
vụ web) Các công ty hay tổ chức cần công bố thông tin về dịch vụ/sản phẩm
của họ lên internet, điều này được thực hiện qua việc đăng ký dịch vụ vào sổ
đăng ký (registry). JAXR giúp bạn truy cập các sổ đăng ký thông thường
hay sổ đăng ký nghiệp vụ qua web. JAXR hỗ trợ chuẩn lưu trữ và đăng ký
ebXML đồng thời tăng cường vai trò đặc tả UDDI. Với JAXR, nhà phát
triển có thể truy cập sổ đăng ký theo hai công nghệ quan trọng (ebXML và
UDDI) chỉ với một giao diện lập trình duy nhất.
Thêm vào đó, các doanh nghiệp/tổ chức có thể chia sẻ các sản phẩm/tài liệu
trên mạng hay truy tìm các tài liệu/sản phẩm khác đã được công bố. Ví dụ:
một nhóm xây dựng một lược đồ XML cho một loại tài liệu, hai doanh
nghiệp nếu như đồng ý lược đồ chuẩn này cho đơn đặt hàng, họ hoàn toàn
có thể truy cập thông tin sản phẩm lẫn nhau bởi lược đồ này được lưu trong
sổ đăng ký nghiệp vụ.
3.2.12Kiến trúc bộ kết nối J2EE
J2EE Connector Architecture :Những nhà cung cấp công cụ J2EE và
nhà tích hợp hệ thống sử dụng kiến trúc bộ kết nối J2EE để tạo các bộ thích
nghi tài nguyên (resource adapter) – bộ thích nghi tài nguyên giúp ứng dụng
J2EE truy cập hệ thống thông tin (CSDL, mail…) ở tầng EIS, nhờ thế các hệ
thống thông tin ở tầng EIS có thể được gắn vào bất kỳ sản phẩm J2EE nào.
Nói cụ thể, một bộ thích nghi tài nguyên là một linh kiện phần mềm cho
phép các linh kiện J2EE truy cập và tương tác với các hệ quản trị tài nguyên
nền tảng tại tầng EIS. Một bộ thích nghi tài nguyên chỉ phù hợp với một hệ
quản trị tài nguyên của nó, vì thế sẽ có mỗi bộ thích nghi tài nguyên cho
từng kiểu CSDL hay từng hệ quản trị tài nguyên khác nhau.
Kiến trúc bộ kết nối J2EE cung cấp sự tích hợp giữa dịch vụ web J2EE và hệ
thống EIS với phương thức đồng bộ hay bất đồng bộ theo tiêu chuẩn: bảo

mật, hiệu năng cao, dễ mở rộng, dựa trên thông điệp và hỗ trợ giao tác.
Thông qua kiến trúc bộ kết nối J2EE, những ứng dụng hiện tại và hệ EIS
tích hợp có thể được cung cấp cho doanh nghiệp như là các dịch vụ web dựa
trên XML có sử dụng công nghệ JAX-RPC và mô hình linh kiện J2EE. Vì
thế, JAX-RPC và kiến trúc bộ kết nối là những công nghệ bổ sung cần thiết
cho tích hợp ứng dụng J2EE và cho nghiệp vụ của người dùng cuối.
3.2.13 Java API cho kết nối cơ sở dữ liệu
JDBC API:JDBC API giúp bạn thực hiện câu truy vấn SQL đến hệ
quản trị CSDL từ bên trong hệ thống Java. Theo cơ chế lưu trữ bền vững
Chuyên đề Lập trình J2EE
10
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
mặc định, thùng chứa chịu trách nhiệm quản lý các thao tác truy xuất CSDL,
EJB không cần có bất kỳ đoạn mã JDBC hay câu lệnh SQL nào. Bạn sử
dụng JDBC API trong một EJB khi bạn muốn thay thế cơ chế lưu trữ bền
vững được quản lý bởi thùng chưa hay EJB đó là bean phiên làm việc
(session bean). Bạn cũng có thể dùng JDBC API bên trong một servlet hay
JSP để truy xuất CSDL mà không cần phải thông qua EJB.
JDBC API gồm 2 phần:
- Giao diện mức ứng dụng giúp các linh kiện truy cập CSDL
- Giao diện bộ cung cấp dịch vụ đăng ký trình điều khiển JDBC vào hệ
thống JDBC
3.2.14Giao diện quản lý thư mục và định danh trong Java
Java Naming and Directory Interface – JNDI :JNDI cung cấp chức
năng quản lý thư mục và định danh, theo đó nó cung cấp các phương thức
hỗ trợ những thao tác chuẩn trên thư mục, gắn những thuộc tính vào một đối
tượng trong thư mục (thư mục chứa nhiều đối tượng), tìm kiếm đối tượng
theo thuộc tính của chúng. Sử dụng JNDI, ứng dụng J2EE có thể lưu trữ và
truy tìm bất cứ đối tượng Java nào với bất cứ kiểu gì.
Dịch vụ định danh (naming) J2EE cho phép ứng dụng khách, EJB, linh kiện

web truy cập môi trường định danh (naming environment) J2EE. Môi trường
định danh cho phép tùy biến một linh kiện mà không cần truy xuất hay thay
đổi mã nguồn của linh kiện.Thùng chứa sẽ cài đặt môi trường định danh và
cung cấp môi trường này cho linh kiện như là một ngữ cảnh định danh JNDI
(JNDI naming context) gọi tắt là ngữ cảnh.
Một linh kiện J2EE sẽ thiết lập một ngữ cảnh định danh thông qua sử dụng
giao diện JNDI. Thoạt đầu, linh kiện sẽ tạo ra ngữ cảnh khởi tạo
javax.naming.InitialContext, sau đó truy vấn tiếp các ngữ cảnh bên dưới
InitialContext, việc này tương tự như tìm tập tin trong hệ thống cây thư mục,
trong đó InitialContext là thư mục gốc, tương ứng java:/comp/env. Nói
chung JNDI sẽ quản lý các đối tượng Java như quản lý tập tin trong hệ thống
thư mục – tập tin, theo đó đối tượng Java tương tự tập tin và ngữ cảnh tương
tự thư mục, tuy nhiên thực tế, JNDI tổng quát hơn hệ thống thư mục – tập tin
(đối tượng ở đây là đối tượng trong Java).
Linh kiện J2EE có thể truy cập đối tượng do người dùng định nghĩa hay do
hệ thống cung cấp nếu đối tượng được định danh. Định danh của đối tượng
do hệ thống cung cấp, như đối tượng JTA UserTransaction, được lưu trữ
trong ngữ cảnh môi trường Java, java:/comp/env. J2EE cho phép một linh
kiện định danh những đối tượng do người dùng định nghĩa như EJB, JDBC
DataSource (dùng để kết nối CSDL), các kết nối thông điệp. Một đối tượng
có thể được định danh trong ngữ cảnh con (bên dưới) tương ứng với kiểu
của đối tượng, ví EJB được định danh trong ngữ cảnh con
java:comp/env/ejb, JDBC DataSource được định danh trong ngữ cảnh con
java:comp/env/jdbc.
JNDI là một chuẩn nên độc lập với các thi công/cài đặt cụ thể, ứng dụng có
thể dùng JNDI để truy cập tùy ý nhiều dịch vụ thư mục và định danh, một số
Chuyên đề Lập trình J2EE
11
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
dịch vụ hiện tại có cài đặt JNDI như LDAP, NDS, DNS, NIS. Điều này cho

phép ứng dụng J2EE kết hợp được với các ứng dụng và hệ thống di sản
trước đây. Tham khảo về JNDI: />3.2.15Dịch vụ cấp phép và xác thực người dùng trong Java
Java Authentication and Authorization Service – JAAS : JASS cung
cấp cho ứng dụng J2EE phương cách xác thực và cấp phép một người
dùng/nhóm người dùng khi chạy ứng dụng J2EE này. JASS là phiên bản
Java của kiến trúc mô-đun xác thực khả cắm (Pluggable Authentication
Module – PAM), theo đó sẽ mở rộng cơ chế bảo mật của Java để hỗ trợ kỹ
thuật cấp phép người dùng
3.2.16 Kỹ thuật giản đơn tích hợp ứng dụng J2EE
Simplified Systems Integration :Kiến trúc J2EE cung cấp giải pháp
tích hợp hệ thống toàn diện và độc lập nền, tạo ra một “chợ” phần mềm
(marketplace) rộng mở, theo đó người bán phần mềm dễ dàng bán sản phẩm
cho khách hàng, Chợ phần mềm này tạo tính cạnh tranh giữa các người bán
hàng, vì thế người mua hàng không phụ thuộc hay phải bị ép mua công nghệ
từ phía người bán, người mua sẽ tự do chọn lựa những dịch vụ tốt nhất phù
hợp nhu cầu của họ với hiệu năng cao, tính bảo mật.
J2EE API cho phép sự tích hợp ứng dụng và hệ thống theo các đặc điểm sau:
- Mô hình ứng dụng thống nhất với EJB xuyên qua các tầng (across tiers).
- Cơ chế yêu cầu – đáp ứng đơn giản với JSP và servlet.
- Mô hình bảo mật đáng tin cậy với JAAS.
- Sự tích hợp và trao đổi dữ liệu dựa trên XML với JAXP, SAAJ và JAX-
RPC.
- Khả năng tương tác và nối kết đơn giản với kiến trúc bộ kết nối J2EE
(J2EE connector architecture).
- Khả năng kết nối CSDL đơn giản với JDBC API.
- Sự tích hợp ứng dụng quy mô lớn với bean hướng thông điệp (message-
driven bean) , JMS, JTA và JNDI.
Chuyên đề Lập trình J2EE
12
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm

PHẦN B: TRIỂN KHAI ĐỒ ÁN TASK MANAGER
1. Lời nói đầu:
Sau đây là đồ án triển khai áp dụng một trong kỹ thuật Webservice
(SOAP) , một trong các kỹ thuật cần thiết trong nền tảng J2EE
Do đây là đồ án nghiên cứu nền tảng cơ bản J2EE , nên nhóm chúng tôi
tránh nhờ đến sự giíp đỡ của các framework như Spring , Hibernate hay Strut …
mà sẽ tự xây dựng mô hình MVC dựa trên các kỹ thuật cơ bản của JSP , Servlet

Tuy nhiên chắc chắn sẽ không tránh khỏi những sai sót. Vi vậy, rất mong
nhận được những nhận xét và những ý kiến đóng góp của quý thầy cô và các
bạn để chúng ta có thể cùng trao dồi và chia sẻ kiến thức, giúp ích được trong
học tập và trong công việc.
2. Project TaskManager
2.1. Giới thiệu
TaskManager là một ứng dụng web được cài đặt dựa trên nền tảng Java
EE. Chức năng chính của hệ thống là cung cấp một công cụ cho các nhóm làm
việc vừa và nhỏ để có thể quản lý các dự án, giúp trưởng nhóm có thể phân
công công việc cho các thành viên trong nhóm cũng như quản lý được các dự
án.
Ngoải một hệ thống chạy trên nền web, TaskManager còn cung cấp một
web service, cho phép các thành viên không cần đăng nhập vào trang web của
hệ thống mà vẫn có thể theo dõi được những công việc mà mình mới được giao,
cập nhật trạng thái của công việc, cũng như cập nhật thông về các dự án hay các
công việc mới nhất.
2.2. Yêu cầu chức năng
Chương trình phải cho phép người dùng (leader hay project manager ,
member) được phép có các thao tác cơ bản để quản lý task trong project
a. Leader (admin , project manager)
Chuyên đề Lập trình J2EE
13

Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
Trưởng nhóm hay người quản trị có thể:
Tạo mới thành viên.
Tạo mới project.
Chỉnh sửa thông tin của các thành viên.
Chỉnh sửa thông tin của các dự án
Phân công nhiệm vụ (task) cho các thành viên.
Chỉ có admin mới có quyền xóa, hủy bỏ một project, một task hay một
thành viên khác.
b. Member
Các thành viên trong nhóm có thể:
Truy cập vào hệ thống thông qua giao diện web
Chuyên đề Lập trình J2EE
14
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
Truy cập vào hệ thống thông qua một ứng dụng desktop phía client.
Xem các project mà mình đã tham gia.
Cập nhật các task mà mình được giao.
Cập nhật trạng thái cho các task (đang làm, đã hoàn thanh hay từ chối).
Các thành viên có thể xem được các task và các project mới nhất hiện
chưa có thành viên nào tham gia.
Mỗi thành viên có thể tham gia nhiều task.
Lưu ý : Một project hay một task sẽ có số lượng thành viên nhất định do
admin định trước.
2.3. Cấu trúc chương trình
Chương trình được thiết kế từ đầu theo mô hình MVC (Model – Controller -
View):
• Controller : đóng vai trò quản lý điều phôi toàn bộ chương trình.
• Model : Xử lý các thao tác business , kết nối db , mapping object với db,
trả về dữ liệu cần thiết.

• View : đóng vai trò hiển thị với người dùng cuối ,ngoài ra nhóm còn cài
đặt cơ chế thay đổi template tùy thích dựa vào kỹ thuật định nghĩa các
Custom Tag
Ngoài việc cho phép user quản lý (theo dõi) task thông qua giao diện web ,
nhóm còn hổ trợ cho các thành viên của project theo dõi và cập nhật trạng thái
task của mình thông qua một chương trình nền Destop bằng kỹ thuật webservice
Chuyên đề Lập trình J2EE
15
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
2.4. Chạy chương trình phía server
Chọn File > Open Project, mở project có tên TaskManager_Server được
đính kèm theo báo cáo này.
Nhấp phải p\vào project chọn RUN, giao diện chính của màn hình xuất
hiện:
Chuyên đề Lập trình J2EE
16
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
Nhập user và password để đăng nhập vào hệ thống:
2.5. Chạy chương trình phía client
Chọn File > Open Project, mở project có tên TaskManager_Client được
đính kèm theo báo cáo này.
Nhấp phải chọn RUN để chạy ứng dụng.
Chuyên đề Lập trình J2EE
17
Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
Nếu đăng nhập thành công thì màn hình giao diện cơ bản của Task
Manager client sẽ hiện ra:
Để xem các tasks của user hiện tại chọn Show Tasks:
Chuyên đề Lập trình J2EE
18

Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm
Chuyên đề Lập trình J2EE
19

×