MDA cung cấp một cách tiếp cận mởvà trung lập với nhà cung cấp dịch vụcho sự
thay đổi vềnghiệp vụvà công nghệ. Dựa trên các chuẩn đã được thiết lập, MDA tách biệt
luận lý nghiệp vụvà ứng dụng khỏi công nghệplatform bên dưới. Các mô hình độc lập
platform của một ứng dụng hay của các chức năng và hành vi nghiệp vụcủa hệthống tích
hợp, được xây dựng bằng cách sửdụng UML và các chuẩn lập mô hình có liên quan khác,
có thể được thực hiện thông qua MDA trên hầu nhưbất kỳplatform nào, platform mở
hoặc có bản quyền, bao gồm Web Services, .NET, CORBA®, J2EE, Những mô hình
độc lập platform này tách biệt việc lập tài liệu các chức năng và hành vi nghiệp vụcủa
một ứng dụng khỏi code hiện thực chúng, cô lập lõi (core) của ứng dụng khỏi công nghệ
và chu kỳphát triển không ngừng của nó, trong khi vẫn cho phép tính cộng tác giữa các
phần cảtrong platform và xuyên platform. Không còn ràng buộc lẫn nhau, các mặt công
nghệvà nghiệp vụcủa một ứng dụng hoặc một hệthống tích hợp có thểphát triển theo
nhịp độriêng của nó – luận lý nghiệp vụtương ứng với nhu cầu nghiệp vụ, và công nghệ
tận dụng những phát triển mới khi nghiệp vụyêu cầu.
115 trang |
Chia sẻ: tuandn | Lượt xem: 2182 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đồ án Nghiên cứu và áp dụng công nghệ MDA, các Framework hỗ trợ ứng dụng Web, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nghiên cứu và áp dụng công nghệ MDA, các framework hỗ trợ ứng dụng Web
i
1. Tổng quan......................................................................................................................1
1.1. Tổng quan về MDA...............................................................................................1
1.1.1. Khái niệm MDA.............................................................................................1
1.1.2. Sơ lược các thành phần cơ bản trong MDA...................................................2
1.1.2.1. PIM (Platform Independent Model) .......................................................2
1.1.2.2. PSM (Platform Specified Model) ...........................................................3
1.1.2.3. Code ........................................................................................................3
1.1.2.4. Các bước chuyển đổi tự động .................................................................3
1.1.3. Các lợi ích từ MDA........................................................................................4
1.1.3.1. Tính khả chuyển đổi (Portability) ...........................................................4
1.1.3.2. Hiệu suất (Productivity)..........................................................................5
1.1.3.3. Tính cộng tác với các hệ thống khác (Interoperability)..........................7
1.1.3.4. Bảo trì và lập tài liệu (Maintenance and Documentation) ......................8
1.1.4. Sơ lược về sự chuyển đổi mô hình .................................................................8
1.1.4.1. Các mô hình đánh dấu.............................................................................9
1.1.5. Tóm tắt các thành phần chính của MDA Framework ..................................11
1.1.6. Ví dụ về áp dụng MDA framework .............................................................14
1.1.6.1. Các thuộc tính Public và Private...........................................................14
1.1.6.2. Sự liên kết (Association) giữa các lớp ..................................................16
1.1.7. Các công cụ hỗ trợ MDA .............................................................................18
1.1.7.1. openMDX .............................................................................................18
1.1.7.2. Giới thiệu về Rational XDE..................................................................21
1.2. Các frameworks sử dụng cho ứng dụng web.......................................................22
1.2.1. Struts.............................................................................................................22
1.2.1.1. MVC Design Pattern (Model-View-Controller Design Pattern) ..........23
1.2.1.2. Struts : Một sự hiện thực của MVC pattern..........................................24
1.2.1.3. Các tầng của MVC áp dụng trong Struts ..............................................24
1.2.2. JavaServer Faces ..........................................................................................30
1.2.2.1. Các ưu điểm của công nghệ JavaServer Faces .....................................31
1.2.2.2. Ứng dụng JavaServer Faces..................................................................32
1.2.2.3. User Interface Component Model.........................................................32
1.2.2.4. Quản lý Backing Bean ..........................................................................33
1.2.3. So sánh giữa JavaServer Faces (JSF) và Struts............................................33
1.2.3.1. Độ trưởng thành ....................................................................................34
1.2.3.2. Tính linh động của Controller/ Xử lý các sự kiện ................................34
1.2.3.3. Định hướng ...........................................................................................36
1.2.3.4. Phát triển trang......................................................................................39
1.2.3.5. Tích hợp ................................................................................................39
1.2.3.6. Khả năng mở rộng.................................................................................40
1.2.4. Hibernate ......................................................................................................40
Nghiên cứu và áp dụng công nghệ MDA, các framework hỗ trợ ứng dụng Web
ii
1.2.4.1. ORM .....................................................................................................41
1.2.4.2. Kiến trúc Hibernate...............................................................................41
1.2.4.3. Truy vấn trong Hibernate - HQL (Hibernate Query Language)...........45
2. Áp dụng MDA vào quá trình phát triển ứng dụng Web .............................................53
2.1. Các hướng tiếp cận hỗ trợ cho MDA...................................................................53
2.1.1. Pattern...........................................................................................................53
2.1.2. Code template (code mẫu)............................................................................53
2.1.3. UML Profile – cơ chế mở rộng UML ..........................................................53
2.1.4. Plugin............................................................................................................54
2.1.4.1. Cấu trúc bên trong một plugin ..............................................................55
2.1.4.2. The Plug-in Development Environment (PDE)....................................55
2.2. Lập mô hình ứng dụng web với UX....................................................................56
2.2.1. Các artifact của UX ......................................................................................57
2.2.1.1. Screen....................................................................................................57
2.2.1.2. Quản lý Content ....................................................................................58
2.2.1.3. Các đường định hướng..........................................................................59
2.2.2. Lập mô hình UX với UML...........................................................................59
2.2.2.1. Screen Flow ..........................................................................................65
2.2.2.2. User Input..............................................................................................66
2.2.2.3. Sự hiện thực storyboard ........................................................................70
2.2.2.4. Screen Compartment.............................................................................72
2.2.3. Ánh xạ từ mô hình UX sang JSF..................................................................74
2.2.4. Tổng kết........................................................................................................75
2.3. Giới thiệu về MDA Toolkit .................................................................................75
2.3.1. Transformation Development Wizard..........................................................75
2.3.1.1. MDA Transformation ...........................................................................76
2.3.1.2. Wizard...................................................................................................76
2.3.2. MDA API .....................................................................................................76
2.3.3. MDA Profile Tool ........................................................................................77
2.4. Quy trình phát triển MDA với Rational XDE và MDA Toolkit .........................78
2.4.1. Các vấn đề nảy sinh và các kết luận.............................................................78
2.4.2. Các mặt chính của MDA Toolkit .................................................................79
2.4.3. Vai trò của các profile UML ........................................................................80
2.4.4. Đóng gói và chuyển giao các chuyển đổi MDA Toolkit .............................80
2.4.5. Các bài học trong việc thiết kế và ứng dụng các giải pháp MDA ...............81
2.4.5.1. Về vấn đề các kết nối mô hình ngữ nghĩa.............................................81
2.4.5.2. Về vấn đề xác định các chuyển đổi cần thiết ........................................83
2.4.5.3. Về vấn đề lập tài liệu các yêu cầu chuyển đổi ......................................83
2.4.5.4. Về vấn đề tạo UML Profile...................................................................93
2.4.5.5. Về vấn đề phát triển chuyển đổi ...........................................................94
2.4.5.6. Về vấn đề triển khai chuyển đổi ...........................................................98
3. Hiện thực .....................................................................................................................99
Nghiên cứu và áp dụng công nghệ MDA, các framework hỗ trợ ứng dụng Web
iii
3.1. Pattern và Code Template....................................................................................99
3.1.1. DateHelperLib ..............................................................................................99
3.1.2. FileHelperLib ...............................................................................................99
3.2. Plugin ...................................................................................................................99
3.2.1. Plugin UserManagement ..............................................................................99
3.2.1.1. Chức năng .............................................................................................99
3.2.1.2. Hiện thực:............................................................................................100
3.2.1.3. Hướng dẫn sử dụng plugin: ................................................................102
3.2.2. Plugin Search..............................................................................................105
3.2.2.1. Chức năng ...........................................................................................105
3.2.2.2. Hiện thực.............................................................................................106
3.2.2.3. Hướng dẫn sử dụng.............................................................................107
3.3. Ứng dụng web: WebLog ...................................................................................109
Nghiên cứu và áp dụng công nghệ MDA, các framework hỗ trợ ứng dụng Web
iv
Hình 1-1: Tổng quan về MDA .............................................................................................1
Hình 1-2: Chu trình phát triển phần mềm trong MDA.........................................................2
Hình 1-3: Ba bước chính trong chu trình phát triển của MDA ............................................4
Hình 1-4: So sánh các cách hiện thực Petstore qua thông số LOC.....................................6
Hình 1-5: So sánh chi tiết .....................................................................................................6
Hình 1-6: Tính cộng tác với các hệ thống khác trong MDA sử dụng các cầu nối ...............7
Hình 1-7: Các định nghĩa chuyển đổi trong các công cụ chuyển đổi...................................8
Hình 1-8: Định nghĩa chuyển đổi được định nghĩa giữa các ngôn ngữ ...............................9
Hình 1-9: Mark và marking model.....................................................................................10
Hình 1-10: Từ các PIM đến các PSM ................................................................................11
Hình 1-11: MDA framework cơ bản ..................................................................................12
Hình 1-12: Framework MDA mở rộng, bao gồm cả siêu ngôn ngữ ..................................13
Hình 1-13: MDA framework đầy đủ ..................................................................................14
Hình 1-14: Mô hình độc lập platform (PIM)......................................................................15
Hình 1-15: Mô hình có platform xác định với đích là Java (PSM)....................................15
Hình 1-16: Mô hình độc lập platform được mở rộng.........................................................17
Hình 1-17: Mô hình cụ thể platform được mở rộng...........................................................18
Hình 1-18: Tổng quan về kiến trúc openMDX ..................................................................19
Hình 1-19: Tách sự phát triển khỏi môi trường run-time...................................................21
Hình 1-20: Struts Framework hiện thực MVC pattern.......................................................24
Hình 1-21: Công nghệ JSF dựa trên MVC.........................................................................30
Hình 1-22: UI chạy trên server...........................................................................................31
Hình 1-23: Công nghệ Web Java........................................................................................32
Hình 1-24: Quá trình tương tác trong Struts.......................................................................35
Hình 1-25: Quá trình tương tác trong JavaServer Faces ....................................................36
Hình 1-26: Tổng quan về Hibernate API trong kiến trúc phân tầng ..................................42
Hình 2-1: Icon của class có stereotype là «screen»............................................................60
Hình 2-2: Content screen động đơn giản............................................................................60
Hình 2-3: Screen với các thuộc tính có stereotype.............................................................61
Hình 2-4: Mô hình content động với các các ký hiệu array ...............................................61
Hình 2-5: Quan hệ bao gộp. ...............................................................................................62
Hình 2-6: Các thành phần tham gia trong storyboard checkout.........................................63
Hình 2-7: Lược đồ tuần tự storyboard checkout chỉ rõ các phương thức tĩnh ...................64
Hình 2-8: Shopping cart screen với các phương thức được khai báo ................................65
Hình 2-9: Các đường định hướng được lập mô hình với các association ..........................66
Hình 2-10: Input form được lập mô hình với association class. ........................................67
Hình 2-11: Input form được lập mô hình với contained class............................................67
Hình 2-12: Dòng định hướng được xác định dựa vào user input .......................................68
Hình 2-13: Input form với các giá trị được điền trước.......................................................69
Hình 2-14: Nhiều form cho một screen..............................................................................70
Nghiên cứu và áp dụng công nghệ MDA, các framework hỗ trợ ứng dụng Web
v
Hình 2-15: Một storyboard thể hiện dưới dạng một lược đồ cộng tác ...............................71
Hình 2-16: Lược đồ tuần tự cho usecase Browse Catalog .................................................72
Hình 2-17: Icon của stereotype «screen compartment» .....................................................73
Hình 2-18: Định nghĩa một screen với các compartment...................................................74
Hình 2-19: MDA API cung cấp sự nhất quán với tất cả các chức năng XDE cần thiết ....77
Hình 2-20: Ánh xạ một thực thể đơn giản vào các mô hình đối tượng và mô hình thiết kế
............................................................................................................................................86
Hình 2-21: Mô hình phân tích ............................................................................................87
Hình 2-22: Chiến lược Roll up ...........................................................................................87
Hình 2-23: Chiến lược Roll Down .....................................................................................88
Hình 2-24: Chiến lược Separate tables...............................................................................89
Hình 2-25: Thiết kế đối tượng java với quan hệ tổng quát hóa và khóa kết hợp...............90
Hình 2-26: Một pattern của các thành phần mô hình trong mô hình tham chiếu...............91
Hình 2-27: Áp dụng một pattern dựa trên mô hình tham chiếu .........................................92
Hình 3-1: Mô tả một mô hình tạo các stereotype phục vụ cho plugin quản lý User........101
Hình 3-2: Eclipse Preferences ..........................................................................................104
Hình 3-3: Transformation Dialog.....................................................................................108
Hình 3-4: TransformationSearch dialog………….……………………………………..108
Hình 3-5: SelectInfo dialog ..............................................................................................109
Hình 3-6: mô hình UX cho ứng dụng WebLog................................................................110
Nghiên cứu và áp dụng công nghệ MDA, các framework hỗ trợ ứng dụng Web
1
1. Tổng quan
1.1. Tổng quan về MDA
1.1.1. Khái niệm MDA
MDA (Model Driven Architecture) là một hướng tiếp cận mới trong việc phát
triển các hệ thống phần mềm. Nó tách biệt sự đặc tả các chức năng hệ thống khỏi sự
đặc tả việc hiện thực các chức năng này trên một platform cụ thể thông qua khái
niệm mô hình.
Hình 1-1: Tổng quan về MDA
MDA cung cấp một cách tiếp cận mở và trung lập với nhà cung cấp dịch vụ cho sự
thay đổi về nghiệp vụ và công nghệ. Dựa trên các chuẩn đã được thiết lập, MDA tách biệt
luận lý nghiệp vụ và ứng dụng khỏi công nghệ platform bên dưới. Các mô hình độc lập
platform của một ứng dụng hay của các chức năng và hành vi nghiệp vụ của hệ thống tích
hợp, được xây dựng bằng cách sử dụng UML và các chuẩn lập mô hình có liên quan khác,
có thể được thực hiện thông qua MDA trên hầu như bất kỳ platform nào, platform mở
hoặc có bản quyền, bao gồm Web Services, .NET, CORBA®, J2EE,… Những mô hình
độc lập platform này tách biệt việc lập tài liệu các chức năng và hành vi nghiệp vụ của
một ứng dụng khỏi code hiện thực chúng, cô lập lõi (core) của ứng dụng khỏi công nghệ
và chu kỳ phát triển không ngừng của nó, trong khi vẫn cho phép tính cộng tác giữa các
phần cả trong platform và xuyên platform. Không còn ràng buộc lẫn nhau, các mặt công
Nghiên cứu và áp dụng công nghệ MDA, các framework hỗ trợ ứng dụng Web
2
nghệ và nghiệp vụ của một ứng dụng hoặc một hệ thống tích hợp có thể phát triển theo
nhịp độ riêng của nó – luận lý nghiệp vụ tương ứng với nhu cầu nghiệp vụ, và công nghệ
tận dụng những phát triển mới khi nghiệp vụ yêu cầu.
1.1.2. Sơ lược các thành phần cơ bản trong MDA
Chu kỳ phát triển MDA (như hình 1-2) không khác mấy chu kỳ phát triển phần mềm
truyền thống. Chúng có cùng một số các pha.
Hình 1-2: Chu trình phát triển phần mềm trong MDA
Một trong các điểm phân biệt chính nằm ở bản chất của các artifact được tạo trong
suốt quá trình phát triển phần mềm. Các artifact đó là các mô hình hình thức (formal
model), tức là các mô hình có thể được hiểu bởi máy tính. Dưới đây là ba mô hình cốt lõi
của MDA.
1.1.2.1. PIM (Platform Independent Model)
Nghiên cứu và áp dụng công nghệ MDA, các framework hỗ trợ ứng dụng Web
3
PIM là một cái nhìn về hệ thống trên quan điểm độc lập platform. Một PIM thể hiện
một mức độc lập platform cụ thể để có thể sử dụng với một tập các platform khác nhau
thuộc các loại tương tự. Một PIM mô tả một hệ thống phần mềm h