Đồ án Tiếp cận và xây dựng ứng dụng J2EE với Rational Rose và UML

TRƯỜNG………………………  
KHOA……………………  
ĐỒ ÁN TỐT NGHIỆP:  
" Tiếp cận và xây dựng ứng dụng J2EE với  
Rational Rose và UML "  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
LỜI NÓI ĐẦU  
Nếu như trước đây phần mềm (software) được bán kèm theo máy tính, phần mềm coi  
như được cho không thì ngày nay hn tn khác, giá cả phần cứng hạ xuống và phần mềm  
dần dần trở nên thống lĩnh. Máy tính trở nên hữu dụng trong mọi mặt của cuộc sống, sản  
xuất kinh doanh, khoa học kỹ thuật, quản lý, giáo dục ... Để có thể áp dụng máy tính vào  
những nhu cầu của đời sống xã hội ta phải có các chương trình điều khiển, quản lý, tính tốn  
và thực hiện các chức năng như mong muốn mà ta gọi đó là phần mềm. Quy trình để sản  
xuất được một phần mềm gồm nhiều công đoạn từ phân tích thiết kế, đặc tả yêu câu khách  
hàng cho tới lập trình, bảo trì...Mỗi công đoạn là cả quá trình đòi hỏi kỹ sư phần mềm phải  
khảo sát tỉ mỉ, chính xác trong từng thao tác. Chất lượng phần mềm do khâu phân tich thiết  
kế quyết định là chủ yếu, do vậy phân tích thiết kế và đặc tả các yêu cầu là giai đoạn quan  
trọng nhất.  
Nói đến công nghệ phần mềm chúng ta phảI kể đến các hệ thống phân tán. Trong thời  
kỳ phát triển mạnh của mạng tồn cầu – Internet, các ứng dụng phân tán phát triển rất mạnh  
và mang tính cấp thiết. Nó đem lại lợi ích vô cùng to lớn cho con người. Nhằm tìm hiểu  
theo hướng phát triển này, đồ án của em tiếp cận một công nghệ xây dựng ứng dụng phân  
tán, đa tầng có tính bảo mật cao. Đó là công nghệ J2EE- Java 2 Platform, Enterprise  
Edition, nó tương đối mới. Cùng với công nghệ này, ngôn ngữ mô hình thuần nhất(UML-  
Unified Modeling Language) là ngừời bạn đồng hành để mô hình hóa, hiện thực hố ứng  
dụng trong quá trình phân tích và thiết kế hướng đối tượng.  
Trong đồ án tốt nghiệp em phát triển ứng dụng J2EE với UML (Unified Modeling  
Language) và Rational Rose. Trong thời gian ngắn cũng như khả năng, trong đồ án còn  
nhiều sai sót, rất mong sự chỉnh sửa của thầy hướng dẫn và sự góp ý từ phía người đọc.  
Một lần nữa em xin cảm ơn thầy Nguyễn Thanh Tùng đã tận tình hướng dẫn cho em hồn  
thành đồ án này.  
Nha Trang tháng 07/ 2003  
Sinh viên thực hiện:  
Lê Quang Dung  
Trang 1  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
PHẦN I  
GIỚI THIỆU CÔNG NGHỆ  
CHƯƠNG 1  
GIỚI THIỆU VỀ PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG VỚI  
UML  
Mô hình hóa và thiết kế hướng đối tượng là một cách suy nghĩ về vấn đề sử dụng các  
mô hình được tổ chức xung quanh các khái niệm thế giới thực. Cấu trúc nền tảng là đối  
tượng, nó kết hợp cả cấu trúc dữ liệu và hành vi vào trong một thực thể đơn. Các mô hình  
hướng đối tượng là có ích cho việc hiểu vấn đề, việc trao đổi với người dùng, mô hình hố  
các tổ chức kinh doanh, chuẩn bị tài liệu và thiết kế chương trình cùng cơ sở dữ liệu.  
1.1. Các nguyên tắc cơ bản của OO-Object Orientation  
1.1.1. Trừu tượng hóa (Abstraction)  
Trừu tượng hóa bao gồm việc tập trung vào các khía cạnh bản chất cố hữu của một  
thực thể và lờ đi các đặc tính phụ của nó. Trong phát triển hệ thống, điều này có nghĩa là  
tập trung vào đối tượng là cái gì và làm cái gì, trước khi quyết định nó được cài đặt như thế  
nào. Sử dụng trừu tượng hố giữa quyền thực hiện các quyết định lâu dài nhằm tránh các  
ràng buộc vội vã tới các chi tiết. Việc sử dụng trừu tượng hóa trong khi phân tích có nghĩa  
là chỉ giải quyết với các khái niệm lĩnh vực ứng dụng, không thực hiện các quyết định thiết  
kế và cài đặt trước khi hiểu vấn đề. Sử dụng chính xác trừu tượng hố cho phép cùng một  
mô hình được sử dụng cho cả phân tích, thiết kế mức cao, cấu trúc chương trình, cấu trúc  
dữ liệu và tài liệu.  
1.1.2. Bọc kín (Encapsulation)  
Bọc kín (che giấu thông tin) bao gồm việc phân tách các khía cạnh bên ngi của đối  
tượng, từ các chi tiết cài đặt bên trong của đối tượng. Bọc kín ngăn ngừa một chương trình  
trở nên quá phụ thuộc lẫn nhau đến nỗi một thay đổi nhỏ cũng có các hiệu ứng lớn. Việc  
cài đặt một đối tượng có thể bị thay đổi mà không ảnh hưởng đến các ứng dụng có dùng  
đến nó. Việc bọc kín là không duy nhất đối với các ngôn ngữ hướng đối tượng, nhưng khả  
năng kêt hợp cấu trúc dữ liệu và hành vi trong một thực thể đơn thực hiện việc bọc kín là  
kỳ diệu hơn so với các ngôn ngữ truyền thống.  
1.1.3. Kết hợp dữ liệu và hành vi(data - behavior)  
Nơi gọi một thao tác không cần xem xét việc thực hiện thao tác đã cho tồn tại như thế  
nào. Đa hình đã di chuyển gánh nặng của việc quyết định sử dụng cài đặt nào từ việc gọi  
mã tới phân cấp lớp. Trong một hệ thống hướng đối tượng, phân cấp cấu trúc dữ liệu là  
đồng nhất với phân cấp kế thừa thao tác.  
1.1.4. Phân chia  
Kỹ thuật hướng đối tượng đề xướng việc phân chia tại vài mức khác nhau. Việc kế  
thừa cả cấu trúc dữ liệu và hành vi cho phép cấu trúc chung được chia sẻ trong vài lớp con  
Trang 2  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
giống nhau mà không dư thừa. Việc phân chia mã sử dụng kế thừa là một trong những tiến  
bộ chính của ngôn ngữ hướng đối tượng.  
Phát triển hướng đối tượng không chỉ cho phép chia sẻ thông tin trong ứng dụng mà  
còn đưa ra triển vọng của việc sử dụng lại các thiết kế và mã trong các đề án tượng lai.  
Phát triển hướng đối tượng cung cấp các công cụ như là trừu tượng bọc kín, kế thừa để xây  
dựng các thư viện của các thành phần có thể dùng lại được.  
1.2. Các khái niệm cơ bản của hướng đối tượng  
Khi nói về hướng đối tượng, các khái niệm cơ bản sau đây cần được hiểu rõ:  
Đối tượng (Object)  
Lớp (Class)  
Thuộc tính (Atribute)  
Thao tác (Operation)  
Giao tiếp đa hình (Interface - Polymorphism)  
Thành phần (Component)  
Đóng gói (Package)  
Hệ thống con (Subsystem)  
Quan hệ (Relationship)  
Tất cả các khái niệm này được trình bày trong phần “tổng quan về UML” ở phần  
sau.  
1.3. Phát triển hướng đối tượng là gì?  
Phát triển hướng đối tượng là một cách suy nghĩ mới về phần mềm đặt cơ sở trên  
những khái niệm trừu tượng đang tồn tại trong thế giới thực. Bản chất của việc phát triển  
hướng đối tượng là nhận biết và tổ chức các khái niệm thuộc lĩnh vực ứng dụng.  
1.3.1. Các khái niệm mô hình hố  
Các ngôn ngữ lập trình hướng đối tượng là có ích trong việc loại bỏ các hạn chế do  
tính không mềm dẻo của các ngôn ngữ lập trình truyền thống.  
Phát triển hướng đối tượng là quá trình nhận thức độc lập với ngôn ngữ lập trình cho  
đến các bước cuối cùng. Phát triển hướng đối tượng là hướng suy nghĩ mới và không là kỹ  
thuật lập trình. Lợi ích của vấn đề này là giúp các chuyên gia, phát triển viên và khách  
hàng biểu lộ các khái niệm trừu tượng một cách rõ ràng và truyền gởi chúng tới nơi khác.  
Nó có thể phục vụ như là một trung gian cho việc xác định, phân tích, lập tài liệu và giao  
tiếp cũng như việc lập trình.  
1.3.2. Phương pháp hướng đốI tượng  
Chúng ta đưa ra phương pháp phát triển hướng đối tượng và các ký hiệu đồ họa cho  
việc biểu diễn các khái niệm hướng đối tượng. Phương pháp bao gồm việc xây dựng một  
mô hình của lĩnh vực ứng dụng, sau đó thêm các chi tiết vào nó trong khi thiết kế hệ thống.  
Có nhiều phương pháp phân tích và thiết kế hướng đối tượng khác nhau – tiêu biểu là  
các phương pháp Booch của Grady Booch, phương pháp OMT (Object Modeling  
Technique) của James Rumbaugh, phương pháp OOSE (Object Oriented Software  
Engineering) của Ivar Jacobson. Nhìn chung, một cách chắc chắn rằng các phương pháp  
này đều bao gồm các bước: phân tích, thiết kế hệ thống, thiết kế đối tượng, cài đặt. Mặc dù  
vậy, mỗi phương pháp có cách thức mô hình hkhác nhau.  
Trang 3  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Trong đồ án này, em sẽ trình bày phương pháp hướng đối tượng với việc sử dụng ký  
pháp của UML để mô hình h.  
1.4. Lợi ích và sức mạnh của OO  
Cách tiếp cận hướng chức năng  
Trước kia chúng ta thường hay sử dụng phương pháp hướng chức năng để xây dựng  
hệ thống. Với phương pháp này, dữ liệu và chức năng(hành vi hay xử lý) được tách ra  
riêng rẽ. Ở đó, chức năng được coi như là những hành vi có tính chủ động, còn dữ liệu là  
bộ phận nắm giữ thông tin một cách bị động và được tác động bởi các chức năng. Hệ thống  
được chia thành các chức năng nhỏ dần cho tới khi nó có thể dễ dàng cho việc mã h, còn  
dữ liệu được gửi giữa các chức năng này. Một hệ thống được phát triển theo cách này  
thường trở nên khó bảo trì. Một vấn đề quan trọng với phương pháp hướng chức năng là tất  
cả các chức năng phải biết làm thế nào dữ liệu được lưu trữ, cấu trúc dữ liệu của nó. Các  
kiểu khác nhau của dữ liệu có những định dạng khác nhau, vì thế việc mã hố chương trình  
trở nên rắc rối. Hơn nữa, khi ta thay đổi cấu trúc dữ liệu, dẫn đến ta phải thay đổi tất cả các  
chức năng liên quan đến cấu trúc này. Hệ thống được phát triển theo phương pháp này trở  
nên có tính ổn định kém. Một chút thay đổi sẽ gây nên hậu quả nghiêm trọng.  
Một vấn đề khác đối với phương pháp hướng chức năng là chúng ta thường không có  
những tư duy một cách tự nhiên về cấu trúc của vấn đề nó được cấu tạo như thế nào. Do  
vậy việc xây dựng hệ thống trở nên khó khăn hơn.  
Một nguyên nhân khác đối với phương pháp hướng chức năng là hệ thống rất khó để  
sửa đổi, tính khả chuyển kém, nhạy cảm với sự thay đổi, vì dữ liệu và hành vi bị tách riêng.  
Cách tiếp cận hướng đối tượng  
Việc phát triển hệ thống theo cách tiếp cận hướng đối tượng sẽ mang lại cho ta nhiều  
lợi ích, tiêu biểu là:  
- Giảm chi phí bảo trì: bởi vì hầu hết các xử lý trong hệ thống được bọc kín - dữ liệu  
và hành vi được gom chung lại, các hành vi có thể được sử dụng lại và kết hợp thành các  
hành vi mới.  
- Mô hình thế giới thực: hệ thống hướng đối tượng là định hướng để mô hình thế giới  
thực. Các đối tượng được tổ chức thành các lớp đối tượng, và các đối tượng được kết hợp  
với các hành vi. Mô hình dựa trên đối tượng hơn là dựa trên dữ liệu và xử lý. Cách thức  
này gần gũi với tư duy con người, do vậy việc xây dựng dễ dàng hơn.  
- Tính tin cậy cao: bởi vì các hành vi mới được xây dựng từ các đối tượng đã có sẵn.  
- Khả năng sử dụng lại mã nguồn cao: bởi cơ chế kết hợp dữ liệu với hành vi vào một  
đối tượng riêng biệt, cơ chế đóng gói, cơ chế bọc kín. Do vậy, dễ dàng cho việc kế thừa,  
hay sử dụng lại.  
1.5. Tổng quan về UML  
UML được viết tắt của cụm từ Unified Modeling Language, tạm dịch là ngôn ngữ mô  
hình hợp nhất.  
UML là thế hệ kế vị của làn sóng phân tích và thiết kế hướng đối tượng (OOA & D)  
xuất hiện trong những năm đầu 80 và cuối những năm 90. UML phát triển trên sự hợp nhất  
trong các phương pháp của tác giả Booch, Rumbaugh (OMT) và Jacopson, và đã được  
chuẩn hóa bởi OGM.  
Trang 4  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hì nh 1.1: sự hợp nhất của UML  
UML được gọi là một ngôn ngữ mô hình hóa dùng để đặc tả, trực quan hóa dùng để  
xây dựng và làm sưu liệu cho các hệ thống phần mềm  
Mô hình hóa : giúp cho chúng ta hiểu được thế giới thực, mô hình hóa thế giới thực  
để có thể hiểu được những đặc trưng, tính tốn các thông số và dự đốn kết quả sẽ đạt được.  
Ngôn ngữ : Chức năng của UML như là một phương tiện để bày tỏ và trao đổi tri  
thức (giao tiếp)  
Trực quan hóa hệ thống : được sử dụng để diễn tả hệ thống một cách trực quan trước  
khi nó được thực hiện.  
Xây dựng hệ thống : được sử dụng để hiện thực hóa hệ thống.  
Làm sưu liệu : được sử dụng để nắm bắt kiến thức về hệ thống thông qua vòng đời  
của nó.  
UML không phải là :  
Một ngôn ngữ lập trình trực quan, mà nó là một ngôn ngữ mô hình.  
Một công cụ, mà nó là một ngôn ngữ đặc tả mô hình  
Một xử lý, mà nó cho phép xử lý  
UML thích hợp với việc giải quyết vấn đề hướng đối tượng. Bất kì ai quan tâm đến  
UML đều quen thuộc với nguyên lý cơ bản về việc giải quyết vấn đề hướng đối tượng, bắt  
đầu với việc xây dựng mô hình. Mô hình (model ) là sự trừu tượng hố vấn đề cơ bản. Phạm  
vi (domain ) là thế giới thực mà vấn đề đó mang đến.  
Mô hình chứa các đối tượng (objects) tác động lẫn nhau bằng cách gởi các thông tin  
(messages) khác nhau. Nếu một đối tượng đang tồn tại thì đối tượng đó có thuộc tính  
(attributes) và có các hành vi (behaviors hoặc operations). Giá trị của các thuộc tính trong  
đối tượng được xác định bởi trạng thái của nó (state).  
Lớp (Classes) là bảng thiết kế cho các đối tượng. Lớp bao gồm các thuộc tính (dữ liệu)  
và các hành vi (phương thức hoặc hàm) trong một thực thể riêng biệt đơn giản. Các đối  
tượng là các thể hiện (instance) của các lớp.  
1.5.1. Các đặc điểm của UML  
Bốn đặc điểm chính của UML để có thể phân biệt với các ngôn ngữ mô hình khác :  
Trang 5  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Đa năng (general-purpose)  
Khả năng ứng dụng rộng rãi (broadly applicable)  
Được hỗ trợ bởi các công cụ (tool- supported)  
Là một chuẩn công nghiệp (industrial standerdized)  
1.5.2 Kiến trúc tổng quát của UML  
a)Các mô hình .  
Xét về đặc điểm tĩnh, các mô hình nắm bắt một số đặc điểm và hành vi của hệ thống.  
Xét về đặc điểm động, nắm bắt các đặc điểm của hệ thống, về cơ bản chúng lưu trữ  
các tri thức về mặt ngữ nghĩa.  
b) Cấu trúc View  
Ngày nay các hệ thống phần mềm càng trở nên phức tạp, khó khăn do vậy ta không thể  
mô hình hóa chúng chỉ bằng một lược đồ hay mô hình. Hệ thống phải được phân tích dưới  
nhiều góc độ khác nhau. UML đưa ra định nghĩa về cấu trúc View. Mỗi View là một thể  
hiện của hệ thống dưới một khía cạnh nào đó. Mỗi View có thể bao gồm nhiều loại lược đồ  
khác nhau (xem hình 1.2)  
Use Case View hay còn gọi là Use model view thể hiện các vấn đề về giải  
pháp liên quan đến chức năng tổng quát của hệ thống.  
Logical View hay còn gọi là Structure Model view hoặc Static view: thể hiện  
các vấn đề liên quan đến cấu trúc thiết kế hệ thống.  
Hình 1.2 : cấu trúc View trong UML  
Process View hay còn gọi là bihavioral model view, Dynamic hay Collaboration  
View thể hiện các vấn đề liên quan đến xử lý giao tiếp và đồng bộ trong hệ thống.  
Deployment View hay còn gọi là Environment model View : thể hiện các vấn đề  
liên quan đến việc triển khai hệ thống.  
Một số model View khác có thể được sử dụng khi cần thiết.  
c) Các lược đồ. Lược đồ miêu tả các tri thức về mặt cú pháp được miêu tả quanh cấu trúc,  
Hình 1.3  
Trang 6  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.3 : Các lược đồ của UML  
Use Case View  
Lược đồ người sử dụng (Use Case Diagram) : Mô tả các chức năng của hệ thống. Lược  
đồ Use Case diễn tả các Use Case trong hệ thống và các quan hệ ràng buộc…  
Logical View  
Lược đồ lớp (Class Diagram) : mô tả cấu trúc tĩnh của hệ thống thể hiện các phần mà  
hệ thống có thể xử lý được.  
Lược đồ đối tượng (Object Diagram): mô tả cấu trúc tĩnh của hệ thống tại một thời  
điểm, nó có thể xem như một thể hiện của lược đồ lớp.  
Process View  
Lược đồ tuần tự ( Sequence Diagram ) :Mô tả sự tương tác giữa các thành phần trong  
hệ thống theo thời gian.  
Lược đồ cộng tác (Collaboration Diagram) : mô tả sự tương tác giữa các thành phần  
trong hệ thống theo thời gian và không gian.  
Lược đồ trạng thái (State Diagram) : mô tả trạng thái, sự hồi đáp của một thành phần  
trong hệ thống khi có những tác động vào nó.  
Lược đồ hoạt động (Activity Diagram) : mô tả sự hoạt động của các thành phần trong  
hệ thống.  
Implementation View  
Lược đồ thành phần (Component) : mô tả tổ chức của các thành phần thực thi trong hệ  
thống.  
Invironmen View  
Trang 7  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Lược đồ triển khai (Deployment Diagram) : mô tả cấu hình của các thành phần môi  
trường và trình tự của các thành phần thực thi trên đó.  
1.5.3. Các lược đồ trong UML  
Trọng tâm của việc giải quyết vấn đề hướng đối tượng là xây dựng một mô hình. Mô  
hình trừu tượng hóa các chi tiết cần thiết của vấn đề cơ bản về thế giới thực. Trọng tâm  
của UML được thể hiện qua 8 loại lược đồ khác nhau :  
Use case diagrams (Lược đồ Use case)  
Class diagrams (Lược đồ lớp)  
Sequence diagrams (Lược đồ tuần tự)  
Collaboration diagrams (Lược đồ cộng tác)  
Statechart diagrams (Lược đồ trạng thái)  
Activity diagrams (Lược đồ hoạt động)  
Component diagrams (Lược đồ thành phần)  
Deployment diagrams (Lược đồ triển khai)  
1.5.3.1. Use case diagrams (Lược đồ use case)  
Use case diagrams mô tả hệ thống làm gì từ quan điểm của người quan sát tổng quan.  
Điều quan trọng là nhấn mạnh hệ thống làm gì hơn là làm như thế nào.  
Lược đồ Use case quan hệ gần gũi đến các sự kiện. Sự kiện (scenario) là những gì xảy  
ra khi ai đó tương tác với hệ thống. Đây là sự kiện về một khoa y học: một bệnh nhân gọi  
phòng khám để hẹn gặp cho việc kiểm tra hàng năm. Người tiếp tân tìm thời gian trống  
gần nhất trong sổ hẹn gặp và lịch hẹn gặp cho thời qian đó.  
Use case là tập hợp các sự kiện về một công việc đơn giản hoặc mục đích của nó. actor  
là người tham gia vào các sự kiện trong phiên làm việc. Actor đóng vai trò là người hoặc  
đối tượng hoạt động. Hình dưới là mô tả use case là Make Appointment, actor là Patient.  
Mối liên hệ giữa use case và actor là mội quan hệ kết hợp ( communication association )  
(gọi tắt là communication ).  
Hình 1.4: actor và use case  
Actor có hình que, Use case có hình bầu dục, mối quan hệ là đường thẳng liên kết giữa  
actor và use case.  
Lược đồ use case là tập hợp các actor, các use case, các mối quan hệ giữa chúng. Hình  
vẽ dưới cho ta 4 use case và 4 actor. Chú ý rằng một use case đơn giản có thể có nhiều  
actor.  
Trang 8  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.5: lược đồ use case  
Lược đồ Use case hổ trợ 3 phạm vi sau :  
Xác định các đặc trưng : Use case mới thường thường phát sinh các yêu cầu mới  
khi hệ thống phân tích và đưa ra các mô hình.  
Giao tiếp với clients : các kí hiệu đơn giản giúp cho lược đồ use case có thể giao  
tiếp với client.  
Phát sinh các trường hợp test : tập hợp các sự kiện cho một use case có thể đề  
nghị các trường hợp cho các sự kiện này.  
Chi tiết lược đồ Use case  
Lược đồ Use case phát hoạ tổng quan của hệ thống. Mỗi lược đồ Use case có các actor,  
các use case, các quan hệ. Một lược đồ Use case đơn giản được mở rộng với các đặc trưng  
thêm vào để hiển thị thông tin hơn (hình 1.6).  
Các đặc trưng của lược đồ Use case  
system boundaries (kết hợp hệ thống)  
generalizations (tổng quát hố)  
includes (bao hàm)  
extensions (mở rộng)  
Trang 9  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.6: lược đồ use case mở rộng  
Lược đồ Use case mở rộng lược đồ với các đặc trưng thêm vào.  
Hình chữ nhật kết hợp hệ thống ( system boundary ) phân chia hệ thống từ các actor  
mở rộng.  
Tổng quát hố (generalization) use case biểu diễn rằng một use case là một loại đặc biệt  
đơn giản khác.Pay Bill là use case cha và Bill Insurance là use case con .Use case con  
được thay thế bởi use case cha bất cứ khi nào cần thiết. Sự tổng quát hxuất hiện như một  
dòng với mũi tên hình tam giác ở đầu hướng về use case cha.  
Quan hệ bao hàm ( Include ) quản lý use case thành use case thêm vào.Quan hệ bao  
hàm hữu ích khi cùng use case được phân chia thành hai use case khác nhau. CMake  
Appointment Request Medication quan hệ bao hàm với như công việc con. Trong  
lược đồ, kí hiệu bao hàm là đường gạch đứt, bắt đầu ở use case cơ sở và kết thúc với mũi  
tên đến use case bao hàm. Đường gạch đứt được gán nhãn <<include>>.  
Quan hệ mở rộng (extend) chỉ ra một use case là một biến đổi của use case khác. Kí  
hiệu quan hệ mở rộng là đường gạch đứt, có nhãn là <<extend>> và một mũi tên hướng về  
use case cơ sở. Điểm mở rộng (extension point) được xác định khi use case mở rộng là  
thích hợp và được viết bên trong use case cơ sở.  
1.5.3.2. Class diagrams (Lược đồ lớp)  
Class diagram đưa ra tổng quan hệ thống bằng cách hiển thị các lớp và quan hệ giữa  
chúng.  
Lược đồ lớp là lược đồ tĩnh, hiển thị những gì tác động nhưng không xảy ra những gì  
khi chúng tác động.  
Lược đồ lớp dưới đây mô tả một khách hàng đặt hàng. Lớp chính là Order, kết hợp với  
nó là Customer Payment. Payment là một trong 3 loại : Cash, Check, hoặc Credit.  
Order chứa OrderDetails và kết hợp với Item.  
Trang 10  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.6:lược đồ lớp  
Lược đồ lớp có 3 loại quan hệ :  
association (quan hệ kết hợp) -- một quan hệ giữa các thể hiện của 2 lớp. Đây là  
một quan hệ kết hợp giữa hai lớp nếu một thể hiện của một lớp phải biết đến thể hiện khác  
làm việc với nó. Trong một lược đồ, một quan hệ kết hợp là một liên kết, kết nối đến hai  
lớp.  
aggregation (quan hệ thu nạp)-- mối kết hợp trong một lớp thuộc về một tập hợp.  
Một quan hệ thu nạp có một hình thoi cuối điểm được xem là tn thể. Trong lược đồ  
này,Order có một tập hợp là OrderDetails.  
generalization (quan hệ tổng quát hố)-- mối liên kết kế thừa diển tả một lớp là một  
lớp cha (superclass) của lớp khác. Quan hệ tổng quát hố có một hình tam giác biểu diễn  
lớp cha. Payment là lớp cha của Cash, Check, và Credit.  
Một mối kết hợp có hai đầu giới hạn. Một đầu có thể có một tên vai trò (role name) để  
lọc ra tính tự nhiên của mối kết hợp. Ví dụ,OrderDetail là một đường mẫu của Order.  
navigability (tính định hướng) : mũi tên trong quan hệ kết hợp hiển thị hướng quan hệ  
có thể xem xét và truy vấn. OrderDetail có thể truy vấn về mẫu (Item) của nó nhưng  
không thông qua cách khác. Trong trường hợp này, OrderDetail Item. Quan hệ kết hợp  
có mũi tên có tính định hướng .  
multiplicity (bản số ) của một đầu quan hệ là số thể hiện của lớp kết hợp với một đầu  
khác. Bản số là một số hoặc một dãy số. Ví dụ : một Order chỉ có một Customer, nhưng  
một Customer có nhiều Orders.  
Bản số  
Giải thích  
0 hoặc 1 thể hiện.  
0..1  
0..* hoặc *  
Không giới hạn số thể hiện  
Chính xác 1 thể hiện  
Ít nhất 1 thể hiện  
1
1..*  
Trang 11  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.7: bản số trong lược đồ lớp  
Mỗi lược đồ lớp có các lớp, các quan hệ, và các bản số. Tính định hướng và các vai trò  
là các mẫu tuỳ chọn đặt trong lược đồ để làm sáng tỏ.  
Chi tiết lược đồ lớp Lược đồ lớp gồm các lớp, các liên kết, các bản số. Lược đồ lớp có thể  
biểu diễn nhiều thông tin.  
compositions (thành phần)  
class member visibility and scope (phạm vi và tầm vực của lớp thành viên)  
dependencies and constraints (phụ thuộc và ràng buộc)  
interfaces (giao diện)  
Composition and aggregation (Thành phần và thu nạp)  
Quan hệ kết hợp trong đối tượng là phần mở rộng của quan hệ thu nạp. Thành phần  
(Composition ) là quan hệ kết hợp với phần (part) thuộc về tồn bộ (whole), phần không  
tồn tại nếu không có tồn bộ. Thành phần được hiển thị bởi hình thoi đặc ở phía cuối tồn  
bộ.  
Trong lược đồ này biểu diễn rằng, một BoxOffice thuộc về một MovieTheater.Nếu  
bMovieTheater thì sẽ huỷ BoxOffice. T  
Hình 1.8:lược đồ thành phần và thu nạp  
Lớp thông tin: tầm vực (visibility) và phạm vi (scope)  
Chú thích lớp là một hình chữ nhật gồm 3 phần : tên lớp, thuộc tính (attributes) và  
phương thức (operations). Thuộc tính và phương thức được gán theo phương thức truy  
xuất và phạm vi.  
Trang 12  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.9 : lớp thông tin tầm vự và phạm vi  
Ví dụ minh hoạ cách sử dụng theo qui ước UML.  
Thành viên tĩnh được gạch dưới. Thành viên làm ví dụ thì không.  
Phương thức được trình bày như  
sau  
:
<access specifier> <name> ( <parameter list>) : <return type>  
Danh sách thông số (parameter list) hiển thị mỗi kiểu thông số sau dấu hai chấm  
Dependencies and constraints (Phụ thuộc và ràng buộc)  
Phụ thuộc (dependency ) là mối quan hệ giữa hai lớp mà thay đổi lớp này có thể ảnh  
hưởng đến lớp khác. Phụ thuộc được vẽ như đường gạch đứt. Trong lược đồ lớp Co op  
dưới đây phụ thuộc vào Company. Nếu thay đổi Company thì phải thay đổi Co op.  
Hình 1.10: quan hệ phụ thuộc và ràng buộc trong lược đồ lớp  
Ràng buộc ( constraint ) là điều kiện mà mỗi thực thi về thiết kế phải hồn thành. Ràng  
buộc được biểu diễn dưới hai dấu ngoặc mốc {}. Ràng buộc trong lược đồ trên chỉ ra rằng  
một Section có thể là một phần của CourseSchedule..  
Interfaces (Giao diện) và stereotypes (Khuôn mẫu)  
Trang 13  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Giao diện (interface) là một tập hợp các kí hiệu hoạt động. Trong C++, giao diện được  
thực hiện như các lớp trừu tượng với các thành viên ảo. Trong Java chúng được thực hiện  
trực tiếp.  
Lược đồ lớp dưới đây là một mô hình về hội nghị nghề nghiệp. Lớp liên quan đến hội  
nghị là SessionTalk (một bảng trình bày đơn giản) và Session (tập hợp liên quan đến  
SessionTalk). ShuttleSchedule với danh sách các ShuttleStop là phần quan trọng để đăng  
ở tại khách sạn. Trong lược đồ có một ràng buộc, ShuttleStop được phân cấp.  
Có ba giao diện trong lược đồ : IDated, ILocatable, ITimed. Tên của giao diện bắt  
đầu bằng kí tự I và đi kèm với các phương thức trừu tượng được viết bằng chữ nghiêng.  
Một lớp như lớp ShuttleStop, với các phương thức kết hợp trong giao diện như  
ILocatable, là implementation ( hoặc realization ) của giao diện.  
Lớp ShuttleStop có kiểu mẫu ( stereotype ) << place>>. Kiểu mẫu qui định phương  
pháp mở rộng UML, là thành phần mô hình mới được tạo từ các kiểu tồn tại. Tên kiểu mẫu  
được viết trên tên lớp. Giao diện là một loại đặc biệt của kiểu mẫu.  
Có hai cách kí hiệu giao diện trong UML : một là kí hiệu như trên, hai là kí hiệu hình  
que hoặc hình tròn.  
Trong hình tròn chú thích, giao din là hình tròn với đường thẳng kết nối đến lớp thi  
hành.  
Hình 1.11:các lớp giao diện trong lược đồ.  
Trang 14  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.12: các lớp giao diện và khuôn mẫu  
Packages (Gói) và objects (Đối tượng)  
Để tổ chức các lược đồ lớp phức tạp, ta có thể nhóm các lớp phức tạp vào trong các gói  
(packages). Một gói là một tập hợp các thành phần UML liên quan. Lược đồ dưới đây là  
một mô hình nghiệp vụ với các lớp được nhóm vào các gói. Các gói có dạng hình chữ nhật  
với các nhãn (tab)ở đầu. Tên gói trong nhãn hoặc trong hình chnhật. Đường gạch nối là  
quan hệ phụ thuộc (dependencies). Một gói phụ thuộc vào một gói khác nếu sự thay đổi  
của gói khác có ảnh hưởng đến sự thay đổi ngay lúc đầu.  
Hình 1.13: lược đồ thành phần  
1.5.3.3. Object diagrams (Lược đồ đối tượng) là một loại đặc biệt của lược đồ lớp, biểu  
diễn các thể hiện thay vì các lớp. Chúng dùng để giải thích các mối quan hệ phức tạp, đặc  
biệt là quan hệ đệ qui.  
Lược đồ lớp dưới đây hiển thị một Department có thể chứa nhiều Departments khác.  
Trang 15  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.14: lược đồ lớp thể hiện quan hệ đệ qui  
Lược đồ đối tượng dưới đây giải thích lược đồ lớp.  
Hình 1.15: lược đồ đốI tượng  
Mỗi hình chữ nhật trong lược đồ tương ứng với một thể hiện. Tên thể hiện được gạch  
dưới trong lược đồ UML. Tên lớp hoặc tên thể hiện có thể được loại bỏ từ lược đồ đối  
tượng nhưng ý nghĩa lược đồ vẫn rõ.  
1.5.3.4. Sequence diagrams (Lược đồ tuần tự)  
Lược đồ lớp và lược đồ đối tượng là các cấu trúc (view) mô hình tĩnh. Lược đồ tương  
tác (Interaction diagrams) là cấu trúc động, mô tả các đối tượng cộng tác như thế nào.  
Lược đồ tuần tự (sequence diagram ) là lược đồ tương tác diễn tả các phương thức  
(operations ) hoạt động như thế nào, thông điệp nào được gởi đến và khi nào. Lược đồ tuần  
tự được tổ chức theo thời gian. Các đối tượng liên quan đến phương thức được liệt kê từ  
trái sang phải khi chúng tham gia vào thông điệp tuần tự.  
Dưới đây là lược đồ tuần tự cho việc đặt chổ khách sạn. Đối tượng bắt đầu các thông  
điệp tuần tự là Reservation window.  
Trang 16  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.16: lược đồ tuần tự  
Reservation window gởi một thông điệp makeReservation()đến HotelChain. Sau đó  
HotelChain gởi một thông điệp makeReservation() đến Hotel. Nếu Hotel có phòng, thì nó  
sẽ đặt chỗ (Reservation) thừa nhận việc đặt chổ này (Confirmation ).  
Đường nét đứt gọi là lifeline, biểu diễn thời gian mà đối tượng đang tồn tại. Mỗi mũi  
tên là một thông điệp gọi. Mũi tên đi từ người gởi đến đỉnh activation bar của thông điệp  
trong lifeline của người nhận. Activation bar biểu diễn khoảng thời gian thực thi thông  
điệp.  
Trong lược đồ ví dụ, Hotel sử dụng selfcall để quyết định nếu có phòng. Khi đó Hotel  
tạo công việc đặt chổ (Reservation) và thừ nhận việc đặt chổ này (Confirmation). Dấu  
hoa thị trong self call có nghĩa lặp lại ( iteration ) để chắc chắn rằng có phòng để ở mỗi  
ngày trong khách sạn. Biểu thức trong dấu ngoặc đơn là điều kiện ( condition ).  
Lược đồ có một thông báo (note) để giải thích, đó là đoạn văn bản ở trong hình chữ  
nhật có nếp quăn ở góc. Thông báo có thể đặt vào trong bất kì lược đồ UML nào.  
1.5.3.5. Collaboration diagrams (Lược đồ cộng tác)  
Collaboration diagrams cũng là lược đồ tương tác. Chúng chuyển thông tin giống  
nhau như lược đồ tuần tự, nhưng chúng tập trung vào vai trò đối tượng thay vì thời gian mà  
thông điệp đó gởi đến. Trong lược đồ tuần tự, vai trò đối tượng là các đỉnh và thông điệp  
được kết nối.  
Trang 17  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.17: lược đồ cộng tác  
Hình chữ nhật của vai trò đối tượng được ghi trong lớp hoặc tên đối tượng hoặc cả hai.  
Tên lớp được đặt trước dấu hai chấm ( : ).  
Mỗi thông điệp trong lược đồ cộng tác có số tuần tự (sequence number).Thông điệp  
đầu tiên được đánh số 1.  
1.5.3.6. Statechart diagrams (Lược đồ trạng thái)  
Các đối tượng có các hành vi và trạng thái. Trạng thái của đối tượng phụ thuộc vào  
hoạt động hoặc điều kiện hiện hành. Lược đồ trạng thái (statechart diagram) hiển thị các  
trạng thái của đối tượng và các biến đổi trong trạng thái.  
Trong lược đồ ví dụ, mô hình đăng nhập vào hệ thống ngân hàng trên mạng.Trước hết,  
đăng nhập vào số mật khẩu và số ID của người đó, sau đó submit thông tin để xác nhận.  
Đăng nhập có thể thực hiện trong 4 trạng thái không trùng lắp sau :Getting SSN,  
Getting PIN, Validating (tính hợp lệ), và Rejecting (loại bỏ). Từ mỗi trạng thái đến một  
số chuyển tiếp(transitions) hồn tồn, xác định được trạng thái kế tiếp.  
Trang 18  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.18: lược đồ trạng thái  
Các trạng thái được khoanh tròn trong hình chữ nhật. Các chuyển tiếp theo hướng mũi  
tên từ trạng thái này đến trạng thái khác. Các sự kiện hoặc các điều kiện được viết bên  
cạnh mũi tên.  
Trạng thái ban đầu (hình tròn đen) là một động tác giả để bắt đầu hoạt động. Trạng thái  
cuối cùng cũng là trạng thái giả để kết thúc hoạt động.  
Hoạt động diễn ra khi kết quả của một sự kiện hoặc điều kiện được nhấn mạnh trong  
phần trình bày hay trong hành động. Trong khi ở trạng thái hợp lệ (), đối tượng không chờ  
một sự kiện bên ngồi đến một trigger chuyển đổi thay vì trình bày một hoạt động. Kết quả  
của hoạt động được xác định ở trạng thái kế tiếp.  
Tiến trình không đồng bộ hoặc trùng lắp  
Lược đồ tuần tự, lược đồ cộng tác, lược đồ hoạt động, lược đồ trạng thái là các cấu trúc  
mô hình động. Chúng cho ta thấy được cấu trúc bên trong mô hình. Lược đồ tuần tự và  
lược đồ cộng tác tập trung vào các thông điệp liên quan đến việc hồn tất một tiến trình đơn  
lẻ. Lược đồ trạng thái tập trung vào một đối tượng đơn lẻ. Lược đồ hoạt động tập trung vào  
luồng hoạt động trong công việc đơn lẻ. Sau đây là phần trình bày về các hoạt động không  
đồng bộ hoặc trùng lắp của lược đồ tuần tự và lược đồ trạng thái .  
Lược đồ tuần tự với thông điệp không đồng bộ  
Thông điệp gọi là không đồng bộ (asynchronous ) nếu nó cho phép gởi thêm các  
thông điệp trong khi thông điệp ban đầu vẫn còn đang xử lý. Thời gian của một thông điệp  
không đồng bộ độc lập với thời gian các thông điệp xen vào.  
Lược đồ tuần tự dưới đây minh hoạ hoạt động của một y tá yêu cầu kiểm tra chuẩn đn  
ở phòng mạch. Có hai thộng diệp không đồng bộ từ Nurse :  
Trang 19  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.19 : lược đồ tuần tự với thông điệp không đồng bộ  
1) yêu cầu phòng mạch (MedicalLab) đăng kí ngày để kiểm tra.  
2) yêu cầu công ty bảo hiểm (InsuranceCompany) chấp thuận kiểm tra.  
Yêu cầu của các thông điệp này được gởi hoặc được thực hiện không thích hợp. Nếu  
InsuranceCompany chấp nhận kiểm tra thì sẽ lên lịch kiểm tra trong ngày được cung cấp  
bởi MedicalLab.  
UML sử dụng các qui ước thông điệp sau :  
Biểu tượng  
Ý nghĩa  
Thông điệp có thể đồng bộ hoặc không đồng bộ  
Thông điệp phản hồi (không bắt buộc)  
Thông điệp đồng bộ  
Thông điệp không đồng bộ  
Hình 1.20: các qui ước thông điệp của UML  
Trùng lắp và không đồng bộ trong lược đồ trạng thái  
Các trạng thái trong lược đồ trạng thái có thể lồng nhau. Quan hệ các trạng thái có thể  
nhóm cùng trong một trạng thái hồn chỉnh (composite state) đơn lẻ. Các trạng thái lồng  
nhau thì cần thiết khi một hoạt động liện quan đến các hoạt động con trùng lắp hoặc không  
đồng bộ.  
Lược đồ trạng thái dưới đây có hai tiểu trình trùng lắp dẫn vào hai trạng thái con của  
trạng thái hồn chỉnh Auction: Bidding Authorizing Credit. Bidding là trạng thái hồn  
chỉnh với ba trạng thái con.Authorizing Credit có hai trạng thái con.  
Trang 20  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Auction yêu cầu phân nhánh ở đầu vào thành hai tiểu trình riêng biệt. Trừ khi có một  
tồn tại khác thường (như Cancelled hoặc Rejected), sự tồn tại từ trạng thái hồn chỉnh  
Auction diễn ra khi cả các trạng thái con đang tồn tại.  
Hình 1.21: trùng lắp và không đồng bộ trong lược đồ trạng thái  
1.5.3.7. Activity diagrams (Lược đồ hoạt động)  
activity diagram là một biểu đồ tiến trình (flowchart). Lược đồ hoạt động và lược đồ  
trạng thái có quan hệ với nhau. Khi lược đồ trạng thái tập trung vào một đối tượng thông  
qua một quá trình, lược đồ hoạt động tập trung vào luồng hoạt động liên quan đến một tiến  
trình đơn. Lược đồ hoạt động biểu diễn có nhiều hoạt động này phụ thuộc vào nhiều hoạt  
động khác.  
Ví dụ chúng ta sử dụng theo tiến tình:"Rút tin ra khỏi ngân hàng thông qua ATM "  
Ba lớp liên quan đến hoạt động Customer, ATM, và Bank.Tiến trình bắt đầu ở hình  
tròn đen đầu tiên phía trên và kết thúc ở hình tròn trắng trọng tâm là màu đen phía dưới.  
Lược đồ hoạt động có thể phân chia thành đối tượng swimlanes để xác định đối tượng  
nào liên quan đến hoạt động này. Một chuyển đổi (transition) đơn giản ra khỏi hành động  
để kết nối đến hành động khác.  
Một chuyển đổi có thể tách ra thành hai hay nhiều chuyển đổi riêng biệt qua lại. Biểu  
thức chắn (Guard expressions) bên trong dấu [] chuyển đổi ra khỏi một nhánh. Một nhánh  
và nhánh kế tiếp của nó kết hợp để đánh dấu nhánh cuối xuất hiện trong lược đồ dưới dạng  
hình thoi rỗng.  
Một chuyển đổi có thể phân nhánh thành hai hay nhiều hoạt động song song. Sự phân  
nhánh và sự kết hợp các tiểu trình tiếp theo ra khỏiphân nhánh xuất hiện trong lược đồ như  
thanh rắn.  
Trang 21  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 1.22: lược đồ hoạt động  
Trang 22  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
CHƯƠNG 2  
GIỚI THIỆU VỀ J2EE  
(Java 2 Platform Enterprise Edition)  
2.1. Giới thiệu sơ lược về J2EE System  
J2EE là nền để phát triển các ứng dụng phần mềm phân tán của hãng. Từ lúc bắt đầu  
của ngôn ngữ java, nó đã thích nghi và phát triển tốt. Ngày càng nhiều công nghệ đã trở  
thành một phần của nền Java, các API và các chuẩn mới được phát triển đến nhiều địa chỉ  
cần thiết. Sau cùng, Sun và 1 nhóm nhà lãnh đạo công nghiệp, dưới sự bảo trợ của open  
Java Community Process(JCP) hợp nhất tất cả các chuẩn liên quan đến hãng vào nền J2EE  
Một hệ thống J2EE về tổng quát có thể bao gồm 3 máy logic như sau: máy dùng cho  
Client, máy J2EE Server, máy dùng cho Database Server. Xét về các lớp để xây dựng ứng  
dụng thì bao gồm 4 lớp chính: client tier, web tier, business tier và EIS tier.(hình 2.1)  
Hình 2.1:tổng quát các máy logic của J2EE  
Client tier:  
Application clients: là ứng dụng client thực thi trên máy client (logic) và chuẩn bị  
trước một số cách thức để cho user có thể giao tiếp hệ thống J2EE để thực hiện một công  
việc nào đó. Cách thức giao tiếp có thể là thông qua giao diện đồ họa hoặc dòng lệnh.  
Application client có thể truy xuất trực tiếp đến các EJB của lớp Business hoặc có thể  
thể thiết lập một kết nối HTTP đến các servlet của lớp Web.  
Web Browsers: là môi trường để thực thi các ứng dụng trên web của máy logic client  
Applets: cũng là một hình thức của application client nhưng được thiết kế để được  
download xuống và thực thi trên Java VM của Web Browser, do đó khả năng của Applet  
được khống chế bởi Web Browser.  
Trang 23  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
JavaBeans component: client cũng có thể bao gồm một số JavaBean để quản lý dòng  
data giao tiếp giữa các application client hoặc applet để giao tiếp với các component thực  
thi trên J2EE server.  
Sau đây là sơ đồ giao tiếp giữa Client tier và J2EE server:  
Hình 2.2: sơ đồ giao tiếp giữa Client tier và J2EE server  
Web tier:  
Bao gồm các trang JSP và các servlet và có thể có các JavaBean để quản lý các dòng  
dữ liệu giữa các web components và business tier của hệ thống J2EE.  
Hình2.3:sơ đồ tầng Web tier  
Business tier:  
Business tier là một lớp logic dùng để thực hiện việc xử lý của hệ thống J2EE server.  
Trang 24  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình2.4: sơ đồ tầng Business tier.  
Hình vẽ minh họa cho ta thấy 1 Enterprise Bean có thể nhận dữ liệu từ client, xử lý nó  
(nếu cần thiết) và gửi nó đến EIS tier (Enterprise Information System tier) để lưu trữ. 1  
Enterprise Bean cũng có thể nhận dữ liệu từ EIS tier, xử lý dữ liệu đó (nếu cần thiết) và  
sau đó là gửi nó trở lại các chương trình client.  
Có 3 loại Enterprise Bean: session bean, entity bean, message-driven bean.  
Session Bean thể hiện cho một phiên dao dịch với client, với 1 client sẽ có 1 instance  
của session bean tương ứng, và instance này có thể lưu giữ các thông tin của client đó. Tuy  
nhiên, khi phiên giao dịch kết thúc (client kết thúc việc thực thi), các instance này cũng sẽ  
bị hủy. Ngược lại với session bean, entity bean có thể lưu giữ lâu dài các thông tin về  
client. Còn message-driven bean là sự kết hợp giữa sesssion bean và JMS message listener.  
Enterprise Information System tier (EIS tier):  
Lớp này thực hiện việc lưu trữ dữ liệu cho hệ thống J2EE, bao gồm cả các interface để  
giao tiếp với các Database khác nhau, và giữa các OS khác nhau trong việc quản lý và lưu  
trữ file…  
Kiến trúc tổng thể của một hệ thống J2EE:  
EJB container (Enterprise JavaBean container) quản lý việc thực thi của tất cả các  
enterprise bean cho một ứng dụng J2EE. Các enterprise bean và container của nó đều được  
chạy trên J2EE server.  
Web container quản lý và thực thi của tất cả các trang JSP và các servlet cho một ứng  
dụng J2EE. Các web component và container của nó đều được chạy trên J2EE server.  
Application client container quản lý và thực thi của tất cả các thành phần application  
client cho một ứng dụng J2EE. Các application client và container của nó đều được thực  
thi trên máy client.  
Applet container chính là web browser (có các Java Plug-in) chạy trên máy client.  
Trang 25  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 2.5:kiến trúc tổng thể của hệ thống J2EE.  
2.2. Giới thiệu dịch vụ JNDI (Java Naming and Directory Interface)  
JNDI là dịch v đăng ký và truy tìm tên đối tượng chuẩn. Enterprise JavaBeans dựa  
vào JNDI để truy tìm các thành phần phân tán thông qua mạng. JNDI là một công nghệ  
chính yếu được yêu cầu cho mã khách kết nối đến một thành phần EJB.  
Cách lấy một tham chiếu tới một home object thông qua dịch vụ JNDI được trình bày  
ở hình 2.6 như sau:  
Hình 2.6: lấy một tham chiếu đến một home object (Acquiring a reference to a home  
object)  
Trang 26  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hệ thống JNDI  
Là một service trong hệ thống J2EE phục vụ cho việc đặt tên của các Object, trong đó  
1 object ta có thể xem như là module, một service để thực hiện một chức năng nào đó. Với  
1 object có thể có nhiều tên được tham khảo đến. Thông qua JNDI, client hoặc EJB có thể  
truy xuất đến object thông qua tên mà không cần quan tâm object đó nằm ở đâu trên mạng  
(khái niệm tương tự như việc đánh tên cho địa chỉ IP).  
Hình 2.7: sơ đồ client truy xuất đốI tượng thông qua tên  
Một hệ thống JNDI bao gồm 3 phần chính yếu sau: lookup services, service providers,  
và clients.  
Trong đó lookup services đóng vai trò trung tâm, nó là cầu nối giữa service providers  
và clients. Lookup services có nhiệm vụ quản lý các dịch vụ mà service providers cung  
cấp, service providers cung cấp các dịch vụ cho hệ thống JNDI, còn clients là người sử  
dụng các dịch vụ, sẽ kết hợp các dịch vụ với nhau để thực hiện một công việc nào đó.  
Khi một service provider “muốn” đưa ra một dịch vụ nào đó thì nó phải đăng ký dịch  
vụ đó với lookup services. Khi một client muốn dùng một dịch vụ nào đó của hệ thống thì  
nó sẽ phải “đề xuất yêu cầu” với lookup service, và các dịch vụ của hệ thống có thể phục  
vụ cho client khi được lookup service cho phép.  
Quá trình đăng ký một dịch vụ của service provider với lookup service được thực hiện  
như sau (quá trình discovery): đầu tiên service proveider cần thông báo cho lookup service  
biết ý định của mình bằng cách gửi broadcast một presence announcement packet (dùng  
một well-known port). Khi loopkup service nhận được một presence announcement packet  
(một packet có tính chất thông báo), nó sẽ mở ra và phân tích packet này và lấy các thông  
tin về service provider và service mà service provider muốn cung cấp. Nếu lookup services  
chấp nhận service này thì nó sẽ mở cầu nối TCP đến IP và port do presence announcement  
packet cung cấp để gửi đến đó một Object, object này được gọi là service registrar. Mục  
đích của service registrar object là để tạo sự dễ dàng trong việc giao tiếp giữa service  
providers và lookup services trong quá trình đăng ký service.  
Khi lookup service chấp nhận một service mới bằng cách gửi lại cho service providers  
một service registrar object, thì quá trình đưa một service vào lookup service được thực  
hiện như sau (quá trình join): service providers sẽ gọi hàm registrer() của service registrar  
object với thông số là một object, object này gọi là service item, nó chứa tất cả các thông  
tin cần thiết cho một dịch vụ cần đưa vào hệ thống JNDI. Khi quá trình đưa Service Item  
vào lookup service kết thúc thành công thì ta có thể coi như quá trình đưa một service mới  
vào hệ thống JNDI thành công.  
Service Item có bản chất là một container và nó chứa một số các Object khác, trong đó  
chính yếu nhất là một object được đặt tên là service object. Đây là object mà thông qua đó,  
client có thể tương tác với service. Ngồi ra, service item còn chứa một số các Object thuộc  
tính khác như icon, GUIs… của service.  
Trang 27  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Trong service registrar object cũng còn có một method có tên là lookup() dành cho  
client để yêu cầu lookup service kiểm tra tính tồn tại của 1 hoặc 1 số service trong hệ thống  
JNDI. Và method này trả về service object cho client. Khi client gọi một method trong  
service object thì service object đó sẽ kết nối trực tiếp với service provider tương ứng để  
thực thi method (thông qua RMI)  
Trong J2EE, JNDI được sử dụng bởi client để nhận ConnectionFactory object. Có 2  
loại kỹ thuật có thể dùng được cho JNDI lookup của ConnectionFactory Object:  
Dựa trên cơ sở của kỹ thuật Serialication: sử dụng java.io.Serializable. Application  
server/component tạo ra một instance ManagedConnectionFactory. Instance này được cấu  
hình bằng cách sử dụng các thông tin được lưu trong 1 file cấu hình theo cú pháp của  
XML (các thông tin về server name, port, gateway…). Bước kế tiếp là server/component  
tạo ra và thiết lập cấu hình cho một instance của ConnectionManager và truyền instance  
này đến method createConnectionFactory của ManagedConnectionFactory object. Khi  
server/component thực hiện JNDI loookup thì nó sẽ trả về 1 ConnectionFactory object để  
sử dụng cho Connection này.  
Dựa  
trên  
cơ  
sở  
của  
kỹ  
thuật  
Referenceable:  
sử  
dụng  
javax.naming.spi.ObjectFactory javax.naming.Referenceable. Application/Component  
tạo ra một Reference object. Reference này chứa tất cả các thông tin mà application  
server/component cần để tạo và cấu hình cho một ManagedConnectionFactory tương ứng.  
Reference này có thể chứa cặp <reference name>/<logical name> được sử dụng để nhận  
các đặt tính của factory, reference cũng có thể là một chuỗi nhị phân chứa các thông số  
dùng để thiết lập cho ManagedConnectionFactory. Method getObjectInstance sẽ được gọi  
khi component thực hiện thao tác loookup của ConnectionFactory.  
Để loookup 1 object from naming service, ta sử dụng Context.lookup() với thông số là  
tên của object mà ta muốn nhận  
2.3. Giới thiệu về JDBC (Java Database Connectivity)  
JDBC là một chuẩn mở rộng của Java cho việc truy cập dữ liệu, mà cho phép người lập  
trình Java mã hóa đến giao diện lập trình ứng dụng cơ sở dữ liệu quan hệ đồng nhất. Bằng  
cách dùng JDBC, người lập trình Java có thể trình diễn việc kết nối cơ sỡ dữ liệu, xuất các  
câu lệnh SQL, kết quả của việc xử lý cơ sở dữ liệu, và nhiều cách linh động liên quan khác.  
Clients lập trình đến JDBC API đồng nhất, cái này được thực hiện bởi trình điều khiển  
JDBC (JDBC Driver), một trình điều hợp mà biết cách làm thế nào giao tiếp đến cơ sở dữ  
liệu với cách độc quyền. JDBC tương tự như chuẩn ODBC(Open Database Connectivity),  
và cầu nối thông qua hai thành phần thao tác khá tốt là JDBC-ODBC. JDBC 2.0 chứa sự  
hỗ trợ cho sự thăm dò kết nối cơ sở dữ liệu, tăng sự độc lập cơ sở dữ liệu đối với mã ứng  
dụng của bạn.  
Trang 28  
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML  
Hình 2.7: kết nốI cơ sở dữ liệu qua cầu nốI JDBC (Java Database Connectivity)  
2.4. Giới thiệu về RMI (Remote Method Invocation)  
Mục đích là để tạo ra một Java distributed object model. Trong kiến trúc của RMI, có  
một yếu tố khá quan trọng mà ta cần phải xác định rõ ràng, đó là việc định nghĩa ra các  
method và việc thực thi các method đó là hn tồn khác nhau. RMI cho phép ta định nghĩa 1  
method với mã thực thi của nó trên 1 JVM (Java Virtual Machine) và có thể gọi để thực thi  
method đó trên một JVM khác.  
Hình 2.8: gọi thực thi phương thức thông qua RMI  
RMI Architecture Layers: kiến trúc của RMI có thể phân vào 3 lớp sau:  
Stub and Skeleton layer: lớp này có nhiệm vụ giao tiếp trực tiếp với chương  
trình ứng dụng, tiếp nhận các lời gọi method của server từ client.  
Remote Reference layer: lớp này quản lý các tham khảo được thiết lập từ  
client đến remote object service trên server. Đây cũng là lớp dùng để thiết lập kết nối từ  
client đến remote object service trên server.  
Transport layer: thiết lập kết nối TCP/IP giữa các máy với nhau trên mạng để  
truyền dữ liệu khi lớp Remote Reference yêu cầu.  
Kiến trúc 3 lớp của RMI được thể hiện như hình vẽ sau:  
Trang 29  

Tải về để xem bản đầy đủ

pdf 73 trang yennguyen 02/04/2025 70
Bạn đang xem 30 trang mẫu của tài liệu "Đồ án Tiếp cận và xây dựng ứng dụng J2EE với Rational Rose và UML", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbao_cao_tiep_can_va_xay_dung_ung_dung_j2ee_voi_rational_rose.pdf