1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÀI TẬP LỚN MÔN KIẾN TRÚC PHẦN MỀM Nghiên cứu, tìm hiểu và xây dựng tài liệu kiến trúc của Framework nguồn mở Yii

31 1,8K 15
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu, tìm hiểu và xây dựng tài liệu kiến trúc của Framework nguồn mở Yii
Tác giả Vũ Văn Soái, Phạm Văn Phong, Nguyễn Quỳnh Vân, Lê Thị Trang, Nguyễn Văn Chiến, Nguyễn Văn Thông
Người hướng dẫn TS. Cao Tuấn Dũng
Trường học Học viện Công nghệ Bách Khoa Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại Bài tập lớn
Năm xuất bản 2013
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 229,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG    BÀI TẬP LỚN MÔN KIẾN TRÚC PHẦN MỀM Nghiên cứu, tìm hiểu và xây dựng tài liệu kiến trúc của Framework nguồn mở Yii Giáo viên hướng dẫn: TS. Cao Tuấn Dũng Học viên thực hiện : Vũ Văn Soái CB120109 Phạm Văn Phong CB120103 Nguyễn Quỳnh Vân CB120123 Lê Thị Trang CB120118 Nguyễn Văn Chiến CB121349 Nguyễn Văn Thông CB121357 Lớp: Công nghệ thông tin 2 (KT) Chuyên ngành: Công nghệ thông tin (KT) HÀ NỘI 04 – 2013 MỤC LỤC LỜI NÓI ĐẦU 2 CHƯƠNG 1. TỔNG QUAN VỀ YII 3 1.1. Yii là gì? 3 1.2. Đặc tính 3 1.3. Ưu Điểm 5 1.4 Cài đặt Yii 7 CHƯƠNG 2. CÁC TÍNH NĂNG CỦA YII FRAMEWORK 8 2.1. Mô hình thiết kế ModelViewController (MVC) 8 2.2. Database Access Objects (DAO), Query Builder, Active Record, DB Migration 16 2.3. Form nhập và kiểm tra (validate) 16 2.4. Các widget hỗ trợ Ajax(AJAXenabled widgets) 18 2. 5. Xác thực và phân quyền 20 2. 6. Giao diện 20 2. 7. Dịch vụ Web 21 2. 8. Đa ngôn ngữ (I18N) và địa phương hóa (L10N) 21 2.9. Lớp hỗ trợ cache 21 2.10. Xử lý lỗi và Log 22 2.11. Bảo mật 22 2.12. Kiểm thử 22 2.13. Tự động tạo code (Automatic code generation) 22 2.14. Tuân thủ theo XHTML 22 2.15. Thuần hướng đối tượng 23 2.16. Dễ dàng sử dụng với code của bên cung cấp thứ 3 23 2.17. Tài liệu chi tiết 23 2.18. Hệ thống thư viện mở rộng 23 CHƯƠNG 3. SO SÁNH YII VÀ CÁC FRAME KHÁC 25 CHƯƠNG 4. TỔNG KẾT 32 LỜI NÓI ĐẦU Nhiều năm qua đã đánh dấu “sự bùng nổ của các Framework”, và hầu như tất cả mọi người tham gia phát triển ứng dụng web ngày nay là một phần của thế hệ Framework”. Một Framework PHP dễ dàng hơn, mở rộng hơn và hiệu quả hơn để đáp ứng nhu cầu ngày càng tăng của các nhà phát triển ứng dụng Web là điều cần thiết. Vì vậy Yii Framework đã ra đời để đáp ứng các nhu cầu trên. Cho dù là một developer, phát triển một website nhỏ, đơn giản hay một nhóm developer phát triển một website đòi hỏi sự phức tạp cao, thì sử dụng Yii framework cũng có thể tăng thêm cho nhóm phát triển về các kinh nghiệm bổ sung, sự chuyên nghiệp và nguồn tài nguyên hiệu quả. Tất cả đều miễn phí. Chúng ta chỉ tập trung giải quyết tốt các nhiệm vụ cụ thể được yêu cầu mà không phải quan tâm vào việc viết các đoạn code. Qua đây, chúng em xin gửi lời cảm ơn sâu sắc đến TS Cao Tuấn Dũng đã hướng dẫn, tạo điều kiện tốt để chúng em hoàn thành tiểu luận của mình. Hà Nội, ngày 2 tháng 4 năm 2013 Nhóm trưởng Vũ Văn Soái CHƯƠNG 1. TỔNG QUAN VỀ YII 1.1. Yii là gì? Yii là một PHP framework được xây dựng để phát triển các ứng dụng web quy mô lớn dựa trên nền tảng component (thành phần sử dụng lại). Yii cho phép tái sử dụng tối đa các thành phần của hệ thống (ứng dụng) để tăng tốc độ viết ứng dụng. Tên Yii (phát âm là `i:`) theo tiếng Anh là easy, efficient và extensible. Yii được viết bằng PHP5, chủ yếu tập trung vào highperformance, componentbased cho phép dễ dàng tạo cũng như bảo trị các ứng dụng web, giúp làm việc hiệu quả hơn. Yii nói chung là một framework phát triển ứng dụng Web nên có thể dùng để viết mọi loại ứng dụng Web. Yii rất nhẹ và được trang bị giải pháp cache tối ưu nên nó đặc biệt hữu dụng cho ứng dụng web có dung lượng dữ liệu trên đường truyền lớn như web portal, forum, CMS, ecommerce... 1.2. Đặc tính Easy: Để phát triển ứng dụng trên Yii cần biết PHP và OOP, ứng dụng được viết và bảo trì dựa trên các PHP class được thừa kế từ core Yii Framework Efficient: Ứng dụng Yii được viết theo mô hình MVC (ModelViewController) điều này giúp tăng khả năng tái sử dụng code, dễ dàng bảo trì cũng như nâng cấp sau này mà không ảnh hưởng nhiều đến hệ thống hiện tại. Việc tách biệt giữa business logic và presentation tăng khả năng tùy biến cho các site khác nhau. Extensible: Hệ thống hỗ trợ sẵn ajax, web service, ADO, Active Record, cache, i18n, RBAC, theme… Ngoài các thư viện được cung cấp kèm theo, có thể dễ dàng phát triển các extension theo nhu cầu hoặc sử dụng các thư viện khác như Zend chẳng hạn. Security: Tăng cường khả năng bảo mật, tránh các kiểu tấn công như SQL injection, crosssite scripting (XSS), crosssite request forgery (CSRF), and cookie tampering Yii tốt hơn các framework khác bởi tính hiệu quả, nhiều tính năng và có tài liệu hướng dẫn đầy đủ (tài liệu từ nhà phát hành). Yii được thiết kế cẩn thận từ ban đầu để đáp ứng nhu cầu phát triển ứng dụng Web nghiêm ngặt. Yii không phải là sự trộn lẫn của các dự án đã qua hay tập hợp các 3rd party library. Nó là kết quả của kinh nghiệm phát triển ứng dụng Web lâu năm của các tác giả và sự phân tích kỹ lưỡng, tận dụng những điểm mạnh của các framework khác. Yii là một Framework dễ phát triển

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

  

BÀI TẬP LỚN MÔN: KIẾN TRÚC PHẦN MỀM

Nghiên cứu, tìm hiểu và xây dựng tài liệu kiến trúc của Framework

nguồn mở Yii

Giáo viên hướng dẫn: TS Cao Tuấn Dũng

Học viên thực hiện : Vũ Văn Soái CB120109

Chuyên ngành: Công nghệ thông tin (KT)

HÀ NỘI 04 – 2013

Trang 2

MỤC LỤC

LỜI NÓI ĐẦU 2

CHƯƠNG 1 TỔNG QUAN VỀ YII 3

1.1 Yii là gì? 3

1.2 Đặc tính 3

1.3 Ưu Điểm 5

1.4 Cài đặt Yii 7

CHƯƠNG 2 CÁC TÍNH NĂNG CỦA YII FRAMEWORK 8

2.1 Mô hình thiết kế Model-View-Controller (MVC) 8

2.2 Database Access Objects (DAO), Query Builder, Active Record, DB Migration 16

2.3 Form nhập và kiểm tra (validate) 16

2.4 Các widget hỗ trợ Ajax(AJAX-enabled widgets) 18

2 5 Xác thực và phân quyền 20

2 6 Giao diện 20

2 7 Dịch vụ Web 21

2 8 Đa ngôn ngữ (I18N) và địa phương hóa (L10N) 21

2.9 Lớp hỗ trợ cache 21

2.10 Xử lý lỗi và Log 22

2.11 Bảo mật 22

2.12 Kiểm thử 22

2.13 Tự động tạo code (Automatic code generation) 22

2.14 Tuân thủ theo XHTML 22

2.15 Thuần hướng đối tượng 23

2.16 Dễ dàng sử dụng với code của bên cung cấp thứ 3 23

2.17 Tài liệu chi tiết 23

2.18 Hệ thống thư viện mở rộng 23

CHƯƠNG 3 SO SÁNH YII VÀ CÁC FRAME KHÁC 25

CHƯƠNG 4 TỔNG KẾT 32

Trang 3

LỜI NÓI ĐẦU

Nhiều năm qua đã đánh dấu “sự bùng nổ của các Framework”, và hầu nhưtất cả mọi người tham gia phát triển ứng dụng web ngày nay là một phần của thế

hệ "Framework” Một Framework PHP dễ dàng hơn, mở rộng hơn và hiệu quảhơn để đáp ứng nhu cầu ngày càng tăng của các nhà phát triển ứng dụng Web làđiều cần thiết Vì vậy Yii Framework đã ra đời để đáp ứng các nhu cầu trên

Cho dù là một developer, phát triển một website nhỏ, đơn giản hay mộtnhóm developer phát triển một website đòi hỏi sự phức tạp cao, thì sử dụng Yiiframework cũng có thể tăng thêm cho nhóm phát triển về các kinh nghiệm bổsung, sự chuyên nghiệp và nguồn tài nguyên hiệu quả Tất cả đều miễn phí.Chúng ta chỉ tập trung giải quyết tốt các nhiệm vụ cụ thể được yêu cầu màkhông phải quan tâm vào việc viết các đoạn code

Qua đây, chúng em xin gửi lời cảm ơn sâu sắc đến TS Cao Tuấn Dũng đãhướng dẫn, tạo điều kiện tốt để chúng em hoàn thành tiểu luận của mình

Hà Nội, ngày 2 tháng 4 năm 2013

Nhóm trưởng

Vũ Văn Soái

Trang 4

CHƯƠNG 1 TỔNG QUAN VỀ YII 1.1 Yii là gì?

Yii là một PHP framework được xây dựng để phát triển các ứng dụng webquy mô lớn dựa trên nền tảng component (thành phần sử dụng lại) Yii cho phéptái sử dụng tối đa các thành phần của hệ thống (ứng dụng) để tăng tốc độ viếtứng dụng Tên Yii (phát âm là `/i:/`) theo tiếng Anh là easy, efficient vàextensible

Yii được viết bằng PHP5, chủ yếu tập trung vào high-performance,component-based cho phép dễ dàng tạo cũng như bảo trị các ứng dụng web,giúp làm việc hiệu quả hơn

Yii - nói chung là một framework phát triển ứng dụng Web nên có thể dùng

để viết mọi loại ứng dụng Web Yii rất nhẹ và được trang bị giải pháp cache tối

ưu nên nó đặc biệt hữu dụng cho ứng dụng web có dung lượng dữ liệu trênđường truyền lớn như web portal, forum, CMS, e-commerce

1.2 Đặc tính

Easy: Để phát triển ứng dụng trên Yii cần biết PHP và OOP, ứng dụng

được viết và bảo trì dựa trên các PHP class được thừa kế từ core Yii Framework

Efficient: Ứng dụng Yii được viết theo mô hình MVC

(Model-View-Controller) điều này giúp tăng khả năng tái sử dụng code, dễ dàng bảo trì cũngnhư nâng cấp sau này mà không ảnh hưởng nhiều đến hệ thống hiện tại Việctách biệt giữa business logic và presentation tăng khả năng tùy biến cho các sitekhác nhau

Extensible: Hệ thống hỗ trợ sẵn ajax, web service, ADO, Active Record,

cache, i18n, RBAC, theme… Ngoài các thư viện được cung cấp kèm theo, cóthể dễ dàng phát triển các extension theo nhu cầu hoặc sử dụng các thư viện

Trang 5

Security: Tăng cường khả năng bảo mật, tránh các kiểu tấn công như SQL

injection, cross-site scripting (XSS), cross-site request forgery (CSRF), andcookie tampering

Yii tốt hơn các framework khác bởi tính hiệu quả, nhiều tính năng và có tàiliệu hướng dẫn đầy đủ (tài liệu từ nhà phát hành) Yii được thiết kế cẩn thận từban đầu để đáp ứng nhu cầu phát triển ứng dụng Web nghiêm ngặt Yii khôngphải là sự trộn lẫn của các dự án đã qua hay tập hợp các 3rd party library

Nó là kết quả của kinh nghiệm phát triển ứng dụng Web lâu năm của cáctác giả và sự phân tích kỹ lưỡng, tận dụng những điểm mạnh của các frameworkkhác

Yii là một Framework dễ phát triển

Để chạy một ứng dụng web Yii, tất cả những gì cần là download YiiFramework phiên bản mới nhất và một máy chủ hỗ trợ PHP 5.1.0 hoặc cao hơn

Để phát triển với Yii, chỉ cần biết PHP và lập trình hướng đối tượng (OOP).Không cần phải học bất kỳ hệ điều hành hoặc ngôn ngữ lập trình mới nào Xâydựng một ứng dụng Yii chủ yếu liên quan đến việc viết và duy trì các lớp PHPcủa theo yêu cầu dự án, một số trong đó sẽ mở rộng từ các lớp thành phần chínhcủa Yii Framework

Yii kết hợp rất nhiều các ý tưởng tuyệt vời và tích lũy từ các Framework vàứng dụng web nổi tiếng khác Vì vậy, nếu đang tìm hiểu Yii sau khi đã sử dụngcác Framework phát triển khác, đây là điều kiện để có thể đánh giá Frameworknào ưu điểm hơn và định hướng cho dự án phù hợp

Yii cũng bao gồm một quy ước cấu hình, góp phần để dễ sử dụng Điều này

có nghĩa rằng Yii đã quy ước cho hầu như tất cả các hệ thống ứng dụng Nếuthực hiện theo các quy ước, sẽ code ít hơn và tốn ít thời gian phát triển ứng dụngcủa hơn Nếu muốn, Yii cho phép tùy biến và linh hoạt mà không phải theo quyước của Yii

Trang 6

Yii có hiệu xuất cao

Yii đã được thiết kế cẩn thận để cho phép gần như tất cả đoạn code đượcphát triển và chỉnh sửa để đáp ứng bất kỳ yêu cầu nào Nếu muốn phát triểncode mở rộng hơn thành các công cụ hữu ích cho các nhà phát triển khác sửdụng, Yii cung cấp theo các bước và hướng dẫn để giúp bạn dễ dàng phát triển.Điều này cho phép đóng góp vào danh sách ngày càng tăng các tính năng củaYii và tích cực tham gia trong việc mở rộng Điều gì đáng chú ý về Yii ? là dễ

sử dụng, hiệu suất cao, và chiều sâu mở rộng không tốn kém Yii được đóng góivới các tính năng giúp bạn đáp ứng những nhu cầu cao trên ứng dụng web hiệnnay AJAX cho phép web tích hợp các widgets, thực thi của một kiến trúc MVC,DAO và quan hệ lớp ActiveRecord, kiểm soát truy cập, xem video chuyênnghiệp, quốc tế (I18N),và nội địa hoá (l10n), đây là các tính năng vượt trội củaYii Với phiên bản 1.1, Framework chính bây giờ là được đóng gói với một thưviện mở rộng chính thức được gọi là Zii Những mở rộng được phát triển và duytrì bởi các thành viên chủ chốt tiếp tục mở rộng tính năng của Yii

1.3 Ưu Điểm

Yii tốt hơn các Framework khác bởi tính hiệu quả, nhiều tính năng Yiiđược thiết kế cẩn thận từ ban đầu để đáp ứng nhu cầu phát triển ứng dụng Webnghiêm ngặt Yii là kết quả của sự kết hợp những gì tốt nhất của các Framework

đi trước Nó là kết quả của kinh nghiệm phát triển ứng dụng Web lâu năm củacác tác giả và sự phân tích kỹ lưỡng, tận dụng những điểm mạnh của cácFramework khác

Trước đó, Qiang đã từng phát triển PRADO nhiều năm Những năm kinhnghiệm và đánh giá của người sử dụng, cần một Framework PHP dễ dàng hơn,

mở rộng hơn và hiệu quả hơn để đáp ứng nhu cầu ngày càng tăng của các nhàphát triển ứng dụng web Số liệu cực kỳ ấn tượng khi so sánh với các

Trang 7

Framework PHP khác dựa trên hiệu suất của nó ngay lập tức đã thu hút sự chú

ý rất tích cực

Khả năng tái sử dụng và mở rộng của Yii rất cao Yii là 1 Framework hoàntoàn hướng đối tượng Mọi thứ trong Yii đều có thể tái sử dụng và mở rộng rất

dễ dàng

Yii hỗ trợ trên tất cả các DBMS bởi PDO (PHP Data Object)

Hiệu suất xử lý của ZendFramework khá là chậm, vì kiến trúc của nó quá

đồ sộ và phức tạp

Hiện tại có rất nhiều người ưa thích sử dụng Wordpress hay Joomla nhưngchỉ phù hợp xây dựng các website nhỏ, cần làm nhanh, vì có sẳn nhiều thứ, cộngđồng và tài liệu nhiều Khi nâng cấp và bảo trì rất khó khăn, tốn nhiều thờigian

Hiệu suất xử lý của Framework Yii hiệu quả cao Biểu đồ dưới đây chothấy hiệu quả hơn hẳn so với các Framework PHP khác RPS là viết tắt của

“Request per second” nhằm mô tả việc làm mới ứng dụng có thể xử lý trong mỗigiây Số càng cao thì tính hiệu quả càng lớn của Framework Sự thuận lợi nàycủa Yii rất cần thiết cho người sử dụng khi tương tác với ứng dụng

Trang 8

1.4 Cài đặt Yii

Yêu cầu

Sau khi cài đặt Yii, kiểm tra máy chủ có đáp ứng các yêu cầu Có thể làmnhư vậy bằng cách truy cập kiểm tra kịch bản yêu cầu tại followingURL trongmột trình duyệt web:

Cài đặt Yii qua 2 bước sau:

• Tải về Yii Framework từ yiiframework.com

Trang 9

• Giải nén Yii vào một thư mục Web có thể truy cập.

CHƯƠNG 2 CÁC TÍNH NĂNG CỦA YII FRAMEWORK

2.1 Mô hình thiết kế Model-View-Controller (MVC)

Yii framework sử dụng kiến trúc đã được kiểm chứng MVC, hỗ trợ việcphân tách các phần liên quan với nhau

MCV (Model View Controller) là tên một phương pháp chia nhỏ một ứngdụng thành ba thành phần để cài đặt, mỗi thành phần đóng một vai trò khác nhau

và ảnh hưởng lẫn nhau, đó là models, views, và controllers

Trang 10

Hình 2.1 Mô hình MVC

Models (Tầng dữ liệu): là một đối tượng hoặc một tập hợp các đối tượng

biểu diễn cho phần dữ liệu của chương trình, ví dụ như các dữ liệu được lưutrong database, dữ liệu từ một hệ thống các ứng dụng khác như legacy system,file system, mail system …

Thông thường trong kiến trúc MVC, Model là phần rất quan trọng trong cả

dự án, nó có quan hệ mật thiết với cơ sở dữ liệu

Yii có 2 loại model: form model là lớp (CFormModel) và active recordmodel là lớp (CActiveRecord) Cả hai được mở rộng từ lớp (CModel).CFormModel đại diện cho mô hình dữ liệu do người dùng nhập vào ở dạngHTML Sau đó lưu dữ liệu này vào bộ nhớ và thông qua CActiveRecord dữ liệuđược lưu vào CSDL

Trang 11

ActiveRecord (AR) là một mô hình được sử dụng để truy cập cơ sở dữ liệutheo hướng đối tượng Mỗi đối tượng AR trong Yii là một thể hiện củaCActiveRecord là kết quả của 1 dòng dữ liệu của bảng được tạo trong CSDL.

Views (Tầng giao diện): là phần giao diện với người dùng, bao gồm việc

hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa

…, để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đốivới dữ liệu trong hệ thống Thông thường, các thông tin cần hiển thị được lấy từthành phần Models

Nó có thể chứa câu lệnh PHP nhưng nó được khuyến cáo không nên thayđổi mô hình dữ liệu nên vẫn còn tương đối đơn giản

Các câu lệnh PHP trong View thường có các điều kiện và vòng lặp rất đơngiản, và được hỗ trợ bởi các phương thức HTML và Widget là lớp có thể tái sửdụng nhiều lần

Controllers (Tầng điều khiển)

Controller là một thể hiện của CController Nó được tạo ra bởi các ứngdụng khi người dùng yêu cầu Controller là thiết bị điều khiển chính cho các yêucầu từ người sử dụng, và nó sẽ tương tác với cơ sở dữ liệu Một lớp trongController có tên bắt đầu là “action” Khi tạo mới một ứng dụng Yii thì mặcđịnh trong Controller là có lớp actionIndex, actionContact

Code dưới đây nó định nghĩa 1 SiteController gồm 1 index action và 1 contact action:

class SiteController extends CController

{

public function actionIndex()

{

//

Trang 12

Trong kiến trúc MVC, view chỉ có tác dụng hiển thị giao diện, còn điềukhiển dòng nhập xuất của người dùng vẫn do Controllers đảm trách Trong phântích/ thiết kế hướng đối tượng (OOA/OOD), khi nói đến MVC, người ta thườngdùng các thuật ngữ MVC Design Pattern, MVC Framework, MVC Paradigm.

Có người lại nói, về thiết kế chương trình, vẽ diagram về cấu trúc của chươngtrình, MVC là một phương pháp thiết kế (Design Pattern) Khi có một bộ công

cụ tiện ích lập trình hỗ trợ cho lập trình viên viết chương trình theo phương phápMVC (ví dụ như Jakarta Struts ), thì bộ công cụ tiện ích lập trình đó gọi là MVCFramework implementation Còn từ Paradigm dùng cho MVC mang tính chấtchỉ chung chung Hiện nay, tại Mỹ, các thuật ngữ trên thường được dùng lẫn,tùy theo tác giả và hoàn cảnh

Sau đây là quy trình hoạt động:

Lược đồ sau đây mô tả một workflow tiêu biểu của 1 ứng dụng Yii khiđang xử lý request từ user

Trang 13

Hình 2.2 Quy trình hoạt động

Trang 14

1 user gửi một request với một

2 url http://www.example.com/index.php?r=post/show&id=1, WebServer sẽ xử lý request đó bằng cách thực thi script bootstrap(index.php)

3 Script bootstrap sẽ tạo một thể hiện (instance) của Application vàchạy nó

4 Application lấy thông tin trong request từ một component ứng dụng

có tên là request

5 Ứng dụng sẽ xác định controller và action phù hợp với sự giúp đỡ củamột component ứng dụng có tên là urlManager VD: Từ url trên, tathấy controller cần gọi là post và trong controller này action ta cần gọi

là show, ứng dụng sẽ tìm đến function actionShow() có trong classPostController

6 Ứng dụng sẽ tạo một thể hiện của controller cần gọi để tiếp tục xử lýrequest từ user Controller sẽ xác định được request sẽ chuyển đếnmột phương thức có tên là actionShow(), nó tạo và thực thi các filter(vi dụ như access control, benchmarking) kết hợp với action được gọi.Action được thực thi nếu đúng với filter

7 Action sẽ đọc model Post với ID là 1 từ cơ sở dữ liệu

8 Action sẽ render ra một view có tên là show với model Post

9 View đọc và hiển thị các thuộc tính của model Post

10.View thực thi các widget

11.View sẽ render kết quả được nhúng trong layout

12.Action hoàn tất việc render và hiển thị kết quả cho người dùng

Trong tiểu luận này, nhóm chúng em xin đưa ra 2 mô hình MVC thamkhảo:

Trang 15

MVC 1: Trong MVC model 1, các trang JSP đóng vai trò Hiển thị (View)

và Điều khiển (Controller) Có thể có nhiều trang JSP khác nhau đóng các vaitrò khác nhau

Hình 2.3 Sơ đồ MVC 1

Khi người sử dụng dùng các nút bấm, menu hoặc link … trên trình duyệtWeb (Web browser) để thực hiện một thao tác, một lệnh (có thể kèm theo cáctham số) được gửi tới một trang JSP tương ứng Trang JSP này sẽ khởi tạo mộthoặc nhiều Java Bean (nếu cần thiết), truyền các lệnh cần thi hành tới Java Bean.Chú ý rằng đây là các Java Bean thông thường, chứ không phải Enterprise JavaBean (EJB) Sau khi Java Bean thực hiện xong việc truy xuất hoặc cập nhật dữliệu, trang JSP ban đầu có thể hiển thị dữ liệu lấy từ Bean (JSP ban đầu đóngluôn vai trò View), hoặc chọn một trang JSP khác để hiện dữ liệu từ Bean (JSPban đầu đóng luôn vai trò Controller) Trong một thiết kế tốt, để bảo đảm việctách rời phần trình bày và logic của chương trình, trang JSP nhận request chỉđóng vai trò Điều khiển (Controller) MVC model 1 có một nhược điểm là phầnlogic điều khiển được viết trong trang JSP, như vậy phần chương trình Javaphức tạp dùng để điều khiển sẽ bị lẫn vào trong mã HTML dùng để trình bày

Độ phức tạp của chương trình càng cao, thì trang JSP càng khó bảo trì Hơn nữatrong các dự án phần mềm phức tạp, thì phẩn hiển thị của trang JSP thườngđược làm bởi người thiết kế Web, giỏi về HTML và đồ họa, còn phần chương

Trang 16

trình Java được viết bởi lập trình viên chuyên về lập trình Trong các dự án phứctạp, dùng JSP làm phần điều khiển sẽ làm lẫn lộn việc phân chia ranh giới tráchnhiệm giữa nhóm thiết kế đồ họa và nhóm lập trình, đôi khi dẫn đến việc bảo trì

và phát triển trở nên rất khó khăn, gần như không thể làm được

MVC 2: Trong MVC model 2, một hoặc nhiều servlet (thường là một)

đóng vai trò điều khiển, các Java Bean đóng vai trò Mô hình và các trang JSPđóng vai trò hiển thị

Trong model 2, các logic phức tạp của chương trình được viết hoàn toàntrong các servlet, là các chương trình Java Phần hiển thị chỉ gồm các trang JSPvới một vài mã đơn giản để lấy dữ liệu có sẵn, không có logic phức tạp, vì thếhoàn toàn có thể được tạo ra bằng những người thiết kế Web Các yêu cầu củangười dùng được gửi từ trình duyệt Web tới servlet Servlet sẽ khởi tạo JavaBean (nếu cần thiết), ra lệnh thu thập, cập nhật thông tin Khi Java Bean hoànthành công việc, servlet sẽ chọn trang JSP thích hợp để hiện thông tin trong JavaBean cho người dùng Đây chính là một cách sử dụng MVC rất hiệu quả trongJava

Tất nhiên là sử dụng MVC model 2 một cách hoàn toàn cứng nhắc, phầnĐiều khiển chỉ dùng servlet, phần Hiển thị chỉ dùng JSP sẽ dẫn đến một vàitrường hợp kém hiệu quả, nhất là khi có các request từ trình duyệt Web chỉ đòihỏi việc hiển thị thông tin

Ví dụ: Một trang Web đang hiện các mail trong mail box từ mail thứ 20đến mail thứ 40 Danh sách các mail này đã có sẵn phần mô hình khi người dùnglogin và phần điều khiển ra lệnh cho phần; mô hình lấy danh sách các mail cótrong mail box trong POP server Từ trang Web này, người dùng phát ra mộtyêu cầu “Next” để xem tiếp danh sách các mail từ mail thứ 40 đến mail thứ 60 Đây đơn thuần chỉ là đòi hỏi thông tin hiển thị, do đó, nếu gửi qua servletđiều khiển , servlet sẽ không làm gì cả, mà chỉ gửi yêu cầu hiển thị tới trang JSP

Ngày đăng: 08/07/2014, 10:34

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Mô hình MVC - BÀI TẬP LỚN MÔN KIẾN TRÚC PHẦN MỀM Nghiên cứu, tìm hiểu và xây dựng tài liệu kiến trúc của Framework nguồn mở Yii
Hình 2.1. Mô hình MVC (Trang 10)
Hình 2.2. Quy trình hoạt động - BÀI TẬP LỚN MÔN KIẾN TRÚC PHẦN MỀM Nghiên cứu, tìm hiểu và xây dựng tài liệu kiến trúc của Framework nguồn mở Yii
Hình 2.2. Quy trình hoạt động (Trang 13)
Hình 2.3. Sơ đồ MVC 1 - BÀI TẬP LỚN MÔN KIẾN TRÚC PHẦN MỀM Nghiên cứu, tìm hiểu và xây dựng tài liệu kiến trúc của Framework nguồn mở Yii
Hình 2.3. Sơ đồ MVC 1 (Trang 15)
Hình 2.4. Sơ đồ MVC 2 - BÀI TẬP LỚN MÔN KIẾN TRÚC PHẦN MỀM Nghiên cứu, tìm hiểu và xây dựng tài liệu kiến trúc của Framework nguồn mở Yii
Hình 2.4. Sơ đồ MVC 2 (Trang 17)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w