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

Xây dựng hệ thống quản lý nội dung ECMS

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 (2.74 MB, 119 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
------------------------
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
XÂY DỰNG HỆ THỐNG QUẢN LÝ NỘI
DUNG ECMS
Sinh viên thực hiện : ĐÀO QUANG NGHĨA
Lớp : TT&MMT - K48
Giáo viên hướng dẫn : TS. PHẠM HUY HOÀNG
Hà Nội 6-2008
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
1
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
LỜI CẢM ƠN
Trước khi đi vào nội dung chính của báo cáo đồ án tốt nghiệp, tôi xin gửi lời cảm
ơn chân thành đến trường đại học Bách Khoa Hà Nội nói chung và khoa công nghệ
thông tin nói riêng. Xin gửi lời cảm ơn đến tập thể giáo viên, giảng viên của trường,
của khoa. Trong 5 năm qua, nhờ sự giảng dậy nhiệt tình và đầy tâm huyết của các thầy,
cô giáo tôi đã lãnh hội được rất nhiều kiến thức bổ ích, đặc biệt là những kiến thức
chuyên môn ở cấp cao, sẽ giúp cho tôi rất nhiều trong công việc sau này.
Xin gửi lời cảm ơn đến bộ môn Truyền Thông và Mạng Máy Tính, lớp mà tôi
chọn học chuyên ngành hẹp trong năm cuối ở trường Bách Khoa Hà Nội. Bộ môn đã
tạo ra môi trường học tập, thực tập rất tốt cho chúng tôi trong giai đoạn cuối đại học.
Nhờ vậy, tôi đã có sự chuẩn bị tốt trong quá trình làm và hoàn thành đồ án tốt nghiệp.
Đặc biệt, xin gửi lời cảm ơn đến TS. Phạm Huy Hoàng, giáo viên hướng dẫn đồ
án tốt nghiệp của tôi. Nhờ sự hướng dẫn tận tình của tiến sĩ, tôi đã hoàn thành đồ án tốt


nghiệp khoa công nghệ thông tin. Xin cảm ơn những kinh nghiệp quý báu của tiến sĩ.
Xin gửi lời cảm ơn đến hội đồng bảo vệ đồ án tốt nghiệp khoa công nghệ thông tin
khóa 48.
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
2
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
LỜI NÓI ĐẦU
Ngày nay, cùng với sự phát triển của Internet, nhu cầu xây dựng website quảng bá
doanh nghiệp, các trang tin điện tử ngày càng tăng. Tuy nhiên, trong khả năng tài chính
của hầu hết các doanh nghiệp vừa và nhỏ, việc đầu tư để xây dựng mới hoàn toàn một
hệ thống thu thập và xuất bản thông tin phục vụ cho mục đích của mình là một khó
khăn lớn, cả về chi phí, con người và công nghệ.
ECMS được xây dựng nhằm mục đích đưa ra một giải pháp đáp ứng tương đối
nhu cầu này của các doanh nghiệp vừa và nhỏ, trên cơ sở những kiến thức học tập ở
trường, cùng với sự hướng dẫn của TS. Phạm Huy Hoàng.
Trong giới hạn thời gian làm đồ án và nhân sự, trong phạm vi đồ án này, tôi tập
trung giải quyết một số vấn đề sau:
• Nghiên cứu về hệ thống quản lí nội dung (Content Management System).
• Nghiên cứu, lựa chọn công nghệ phù hợp với thị trường là các doanh nghiệp
vừa vả nhỏ ở Việt Nam.
• Phân tích, thiết kế, xây dựng một hệ thống quản lí nội dung với các thành
phần cơ bản.
• Triển khai xây dựng một trang tin công nghệ nhỏ.
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
3
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
Nhận xét của giáo viên hướng dẫn:
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN

4
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
MỤC LỤC
CHƯƠNG I: Tổng Quan Về CMS ............................................................................................ 8
I.1. CMS là gì? .................................................................................................... 8
I.1.1. Nội dung (content) là gì? .............................................................................. 8
I.1.2. Quản lí nội dung (Content Management )là gì? ............................................ 8
I.1.2.a. Khái niệm .............................................................................................. 8
I.1.2.b. Tiến trình ............................................................................................... 9
I.1.2.c. Cơ sở hạ tầng ......................................................................................... 9
I.2. Các thành phần chính của CMS ................................................................... 13
I.2.1. Hệ thống thu thập ....................................................................................... 14
I.2.2. Hệ thống quản lí ......................................................................................... 16
I.2.3. Hệ thống xuất bản ...................................................................................... 18
I.3. Mô hỉnh tổng quan kiến trúc CMS .............................................................. 21
CHƯƠNG II: GIỚI THIỆU CÔNG NGHỆ .............................................................................. 22
II.1. Giới thiệu về kiến trúc của ứng dụng trên nền WEB .................................. 22
II.1.1. Kiến trúc của một ứng dụng Web cổ điển ................................................. 22
II.1.2. Kiến trúc ứng dụng web dưới các khung nhìn khác nhau .......................... 23
II.1.3. Giới thiệu mô hình kiến trúc MVC ............................................................ 24
II.1.3.a. Vấn đề ................................................................................................ 24
II.1.3.b. Giải pháp ............................................................................................ 25
II.2. Tổng quan PHP .......................................................................................... 26
II.2.1. PHP là gì ? ................................................................................................ 26
II.2.2. Những cải tiến trong PHP5 ....................................................................... 27
II.2.3. Tại sao lại chọn PHP? ............................................................................... 27
II.3. Tổng quan MySQL .................................................................................... 28
II.3.1. MySQL là gì ? .......................................................................................... 28
II.3.2. Lí do chọn MySQL ................................................................................... 28

II.3.3. Bảo mật trong MySQL và một số kĩ thuật ................................................. 30
II.4. Tổng quan Symfony Framework ................................................................ 31
II.4.1. Sơ lược về symfony .................................................................................. 31
II.4.2. Các đặc điểm của symfony ....................................................................... 31
II.4.3. Propel ....................................................................................................... 32
CHƯƠNG III: Phân Tích Thiết Kệ Hệ Thống ECMS ............................................................. 33
III.1. Tổng quan về ECMS ............................................................................... 33
III.1.1. Các tiêu chí đặt ra đối với ECMS ............................................................. 33
III.1.2. Vấn đề bảo mật của ECMS ...................................................................... 33
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
5
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
III.2. Thiết kế ECMS ......................................................................................... 35
III.2.1. Mô hình các tình huống sử dụng tổng quan .............................................. 35
III.2.2. Danh sách các vai trò nghiệp vụ ............................................................... 35
III.2.2.a. Vai trò ACT01 – User ....................................................................... 37
III.2.2.b. Vai trò ACT02 – Administrator ......................................................... 37
III.2.2.c. Vai trò ACT03 – System user ............................................................ 37
III.2.2.d. Vai trò của ACT04 – Author
......................................................................................................................... 38
III.2.2.e. Vai trò của ACT05 – Editor ............................................................... 38
III.2.2.f. Vai trò của ACT06 – Publisher .......................................................... 38
III.2.3. Biểu đồ trường hợp sử dụng(UserCase Diagram) .................................... 38
III.2.3.a. UC1. Quản lý Group(Group Management) ........................................ 39
III.2.3.b. UC2. Quản lý Permission(Permission Management) ......................... 44
III.2.3.c. UC3. Quản lý User(User Management) ............................................. 49
III.2.3.d. UC4. Quản lý module(Module Management) .................................... 54
III.2.3.e. UC5. Quản lý quy trình(Workflow Management) .............................. 64
III.2.3.f. UC6. Quản lý đa ngôn ngữ(Localization) ........................................... 73

III.2.3.g. UC7. Quản lý file(File management) ................................................. 85
III.2.3.h. UC8. Quản lý Section(Section Management) .................................... 86
III.2.3.i. UC9. Quản lý danh mục (Category Management) .............................. 94
III.2.3.j. UC10. Quản lý nội dung(Content Management) .............................. 103
III.2.3.k. UC11. Accession ........................................................................... 111
III.2.4. Biểu đồ Class (Class Diagram) .............................................................. 115
III.2.5. Thiết kế cơ sở dữ liệu ............................................................................ 116
CHƯƠNG IV: TRIỂN KHAI HỆ THỐNG .............................................................................. 117
IV.1. Môi trường cài đặt và phát triển .............................................................. 117
IV.1.1. Phần cứng .............................................................................................. 117
IV.1.2. Phần mềm .............................................................................................. 117
IV.1.3. Yêu cầu về nhân sự ................................................................................ 117
IV.2. Xây dựng website mẫu ........................................................................... 117
CHƯƠNG V: ĐÁNH GIÁ VÀ TỔNG KẾT ............................................................................ 118
V.1. Các vấn đề đã được giải quyết ................................................................. 118
V.2. Các vấn đề còn tồn tại .............................................................................. 118
V.3. Hướng phát triển mở rộng ........................................................................ 118
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
6
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
Các thuật ngữ viết tắt:
Viết tắt Ý nghĩa
CSDL Cơ sở dữ liệu
CM Content Management
CMS Content Management System
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
7
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008

CHƯƠNG I: Tổng Quan Về CMS
I.1. CMS là gì?
CMS (Content Management System) – Hệ quản trị nội dung là hệ thống giúp doanh
nghiệp trình bầy những nội dung mới trên website của họ. Nó lược giản những chi tiết
kỹ thuật mà người soạn thảo cần phải thực hiện, làm cho việc quản lý dễ dàng hơn
trong khi nếu nhìn qua, việc đưa nội dung lên website có vẻ khó khăn. Nhất là khi nó có
nhiều đặc thù phức tạp. Nội dung có thể bao gồm nhiều dạng: bài viết, hình ảnh, thông
tin sản phẩm, lưu trữ email, flash, audio, video…
Để tìm hiểu sâu hơn về khái niệm của CMS ta tìm hiểu các khái niệm cơ sở của nó:
Content (nội dung) và Content Management (quản lý nội dung).
I.1.1. Nội dung (content) là gì?
Máy tính được xây dựng để xử lí dữ liệu. Dữ liệu (data) bao gồm các mẩu thông tin
máy tính như số, hình ảnh, âm thanh, các từ, chúng có ý nghĩa với người dùng khi được
xử lí và chiết xuất. Ngày nay, người ta gọi máy tính được xây dựng để xử lí nội dung
(content). Giống như dữ liệu, nội dung ngoài ra còn bao gồm thông tin.
Dữ liệu (Data): Trong một ứng dụng web, một cách tương đối có thể định nghĩa dữ
liệu như sau: Dữ liệu là các mẩu thông tin nhỏ được con người thu thập, kết hợp lại với
nhau thành các bản ghi dữ liệu và lưu trữ trong CSDL.
Thông tin (Information): Từ “Thông tin (Infomation)” có nhiều ý nghĩ khác nhau.
Trong tài liệu này, sử dụng từ “thông tin” với ý nghĩ bao gồm các dạng giao tiếp có thể
ghi lại được thông dụng như sau:
• Văn bản: Như bài viết, tin tức, sách.
• Âm thanh: Như nhạc, hội thoại, đọc…
• Hình ảnh: Như tranh, hình minh họa..
• Chuyển động: Như video hoặc hoạt hình.
• Các file máy tính: Như các bảng tính, ….
Nội dung (Content): là thông tin (Information) cộng với dữ liệu (Data)
I.1.2. Quản lí nội dung (Content Management )là gì?
I.1.2.a. Khái niệm
Nhiều người cho rằng CM là một kĩ thuật (công cụ). Có vẻ đúng là như vậy

nhưng CM còn bao hàm hơn nhiều so với một công cụ đơn thuần. CM bao gồm cả quá
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
8
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
trình từ khi thu thập, xử lí đến việc quản lí, lưu trữ và xuất bản nội dung. Một CM
thành công là CM có nhiều lưạ chọn và triển khai hiệu quả. Nó có thể thay đổi cách
thức làm việc của con người, giúp con người vượt qua những sự cản trở của việc thay
đổi và hỗ trợ tác giả các công cụ trong quá trình làm việc của họ.
CM là Quản lí nội dung Web. Tuy nhiên không thể đồng nhất 2 khái niệm này với
nhau. Nội dung Web chỉ là một loại nội dung cần quản lí. Nhiều tổ chức cần quản lí cả
nội dung web lẫn nội dung trên giấy.
Thông thường CM chỉ được hiểu là việc quản lí các nội dung. Tuy nhiên, một CM
hiệu quả sẽ bắt đầu từ việc soạn thảo và kết thúc bằng việc xuất bản nội dung. Bạn cần
phải soạn thảo nội dung để có thể lưu trữ, tìm, và sử dụng lại một cách hiệu quả. Nếu
bạn không dành thời gian để tổ chức nội dung trước khi lưu trữ thì bạn sẽ không nhận
ra đầy đủ lợi ích của các kĩ thuật và phương pháp quản lí nội dung. Chú ý rằng việc bạn
xuất bản nội dung theo định dạng thích hợp nhất với hầu hết người dùng là một việc rất
quan trọng.
Tóm lại, CM hiệu quả là một phương pháp có tính lặp lại của việc xác định tất cả các
nội dung cần thiết trước, tạo ra nội dung, tổ chức thuận lợi cho việc sử dụng lại, quản lí
nội dung, và tổ hợp các nội dung đó với nhau và xuất bản đáp ứng yêu cầu của khách
hàng.
I.1.2.b. Tiến trình
Nếu nhìn theo quan điểm tiến trình, CM là một tiến trình bao gồm thu thập, quản lí
và xuất bản nội dung.
• Thu thập (Collecting): Bạn có thể tạo hoặc có được thông tin từ các nguồn khác
nhau. Tùy thuộc vào nguồn mà có thể hoặc không cần phải chuyển thông tin về
định dạng hợp lí phù hợp với phương thức lưu trữ của bạn. Cuối cùng là việc tập
hợp các thông tin này vào hệ thống bằng việc soạn thảo, phân chia hoặc thêm vào

các metadata hợp lí.
• Quản lí (Management): Tạo ra kho lưu trữ, có thể là CSDL hoặc/ và các file chứa
nội dung và quản lí kho nội dung đó.
• Xuất bản: (Publishing): Xuất bản nội dung cho người dùng bằng cách chiết xuất
các thành phần từ kho lưu trữ và tổ chức lại để phù hợp với cách xuất bản như
Website, các tài liệu để in hoặc các bản tin gửi cho khách hàng.
I.1.2.c. Cơ sở hạ tầng
a. Website tĩnh (Static Web)
Web tĩnh là tập hợp các file HTML và các file tài nguyên liên quan. Tất cả
được lưu trữ riêng biệt trên Web server. Để cập nhật nội dung, bạn phải thay
đổi các trang của site. Mô hình của Web tĩnh như sau:
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
9
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
Web tĩnh là hình thức site đơn giản nhất, thích hợp với các site nhỏ, ít thay đổi
và không cần cá nhân hóa. Lợi ích của Web tĩnh là tốc độ nhanh vì không cần
phải xử lí nghiệp vụ gì cả. Hạn chế của Webtĩnh chính là tính mềm dẻo, rất khó
thay đổi nội dung và số lượng trang của site có thể rất nhiều.
b. Web động (Dynamic Web)
Web động là hệ thống tạo ra các trang web theo yêu cầu của người dùng.
Khi hệ thống tiếp nhận yêu cầu của người dùng sẽ kích hoạt một trang mẫu.
Trang mẫu chứa mã HTML bình thường hoặc các đoạn script, đối tượng,.. sau
đó kết nối vào nguồn dữ liệu để lấy nội dung tương ứng. Nội dung này có thể
sẽ được xử lí nếu cần thiết và kết hợp với trang mẫu tạo thành một trang
HTML và gửi cho người dùng. Mô hình của Web động như sau:
Trong một Site hoàn toàn động, sẽ không tồn tại file HTML, chỉ có thể tạo ra
file HTML khi nào muốn. Điều này trái ngược với Web tĩnh, khi tất cả các
trang HTML đều được tạo sẵn từ trước.
Nhìn vào khái niệm Web động, nhiều người sẽ nhầm lẫn giữa Web động và

CMS. CMS cũng có nguồn dữ liệu là CSDL hoặc cấu trúc XML, nhận yêu cầu
người dùng, lấy nội dung thích hợp và trả về các trang cho người dùng. Tuy
nhiên, giữa CMS là Web động có nhiều điểm khác nhau. Một website động
không hẳn đã thực hiện được công việc quản lí nội dung (CM). Hơn nữa một
CMS đôi khi chỉ là một cách để xây dựng site tĩnh dễ dàng hơn.
Ví dụ: Một website động dùng để đặt giao diện của người dùng vào hệ thống
tài chính của một tổ chức. Hệ thống sẽ phản hồi yêu cầu của người dùng và
đưa ra trang HTML tương ứng. Đây chỉ là một site động đơn thuần, hoàn toàn
không phải là một CMS.
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
10
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
Mặt khác, có thể có CMS để tạo site tĩnh. Ví dụ, ta cài đặt một CMS phức tạp
chứa hàng triệu thành phần, cung cấp qui trình làm việc phức tạp và tạo ra
khoảng 100 ấn phẩm khác nhau. Một trong những ấn phẩm đó là website. Ta sẽ
có một thao tác trạo ra một Website tĩnh từ các thành phần đó, và đặt các file
này lên Web server, như vậy ta đã có một Website tĩnh. Khi muốn thay đổi nội
dung Website, ta cập nhật nội dung trong CMS, sau đó thực hiện thao tác trên
một lẫn nữa. Mô hình của một CMS tạo ra Website tĩnh như sau:
c. Web CMS
Một Webiste không cần phải hoàn toàn động hoặc hoàn toàn tĩnh. Trên thực tế,
rất nhiều Webiste có sự kết hợp cả hai. Có những phần là những trang HTML
nhưng cũng có những phần được đưa ra từ CSDL khi có yêu cầu từ phía người
dùng.
Trong một Web CMS hoàn chỉnh có thể có các đặc tính sau
• Ứng dụng CMS (CMS Application): Chạy trên Webserver, ứng dụng này
sẽ đảm nhiệm từ việc thu thập nội dung từ các cộng tác viên, quản lí nội
dung trong qui trình làm việc của hệ thống và thực hiện quản lí tất cả các
thành phần khác của hệ thống. Có thể có nhiều kiến trúc khác nhau tùy theo

sản phẩm. Vài CMS có phần mềm trên mạng LAN của tổ chức, bên trong
tường lửa để thu thập và kiểm định nội dung và phần mềm bên ngoài chạy
trực tiếp trên Webserver để đáp ứng yêu cầu của khách hàng.
• Kho lưu trữ (repository): Có thể là CSDL quan hệ hoặc dữ liệu định dạng
XML. Kho chứa tất cả các nội dung, dữ liệu quản lí hệ thống, và bất kì tài
nguyên nào cần thiết để xây dựng site.
• Tập các file HTML: CMS quản lí và triển khai các file này vào các phần
tĩnh của site.
• Nguồn dữ liệu trực tiếp (CMS-generated database): Phần này được đặt
trên Webserver cho cách thành phần động của site. CMS có thể triển khai
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
11
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
nội dữ liệu và nội dung từ kho lưu trữ của nó thành CMS-generated
database. Trong trường hợp này, thậm chí là nội dung động cũng có thể
được quản lí sau tường lửa và sẽ giữ kín ở server nếu nó chưa sẵn sàng xuất
bản.
• Các nguồn dữ liệu khác: Có thể kết nôi các nguồn dữ liệu khác tới
Website mà không cần kết nối với CMS. Ví dụ CSDL cho việc giao dịch
cho việc bán hàng trên site có thể kết nối với Web site không thông qua
CMS.
• Template: Là các mẫu xuất bản để chuyển bất kì nội dung từ nguồn nào
thành trạng thái cần thiết để đặt lên site. Trong nhiều trường hợp, dữ liệu
phải ở dạng một trang HTML tĩnh hoàn chỉnh. Trong trường hợp khác, nó
có thể được đặt trong CSDL và tồn tại trên Webserver.
CMS có thể đứng sau tất cả các phần động hoặc tĩnh của Website
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
12
Đồ Án Tốt Nghiệp Đại Học - ECMS

2008
I.2. Các thành phần chính của CMS
Ở mức đầy đủ nhất, CMS chịu trách nhiệm thu thập, quản lí, và xuất bản nội
dung. Từ đó có thể thấy một CMS bao gồm 3 phần chính: Hệ thống thu thập nội dung
(Collection System), Hệ thống quản lí nội dung (Management System), và Hệ thống
xuất bản (Pubication System). Mô hình tổng quan của tiến trình này như sau:
Từ trái sang phải, cho thấy làm thế nào để từ thông tin thô trở thành các thành phần
nội dung (content component). Hệ thống quản lí sẽ quản lí các thành phần nội dung
này. Hệ thống quản lí sẽ chuyển các thành phần nội dung này thành các ấn phẩm.
Về mặt logic, 3 hệ thống này có vẻ độc lập với nhau nhưng về mặt vật lí, chúng có
những sự xếp chồng lên nhau:
• Hệ thống quản lí có thể phục vụ như là một phần của hệ thống thu thập: Trong
quá trình thu thập nội dung, ta thường xuyên chuyển nội dung vào kho của hệ
thống quản lí để lưu trữ tạm thời trước khi quá trình thu thập hoàn thành.
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
13
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
• Hệ thống quản lí có thể phục vụ như một phần của hệ thống xuất bản: Ví dụ kho
lưu trữ thường đặt trên site do CMS tạo ra và ta không dễ dàng gì tách biệt nó
với hệ thống xuất bản site.
• Hệ thống xuất bản có thể phục vụ như một phần của hệ thống thu thập: Trong hệ
thống thu thập dạng Web, tác giả sẽ nhập nội dung dạng Web. Nội dung này
được lưu trữ trong kho. Sau đó, hệ thống xuất bản có thể xuất bản nội dung dưới
dạng nào đó mà hệ thống thu thập có thể sử dụng.
I.2.1. Hệ thống thu thập
Hệ thống thu thập chịu trách nhiệm tất cả các tiến trình trước khi nội dung được sẵn
sàng cho việc xuất bản. Nó chuyển thông tin thô thành các thành phần nội dung được tổ
chức dưới các định dạng phù hợp với ứng dụng Web. Hình dưới đây cho thấy cái nhìn
tổng quan các quá trình từ việc soạn thảo, chuyển đổi, kết hợp mà hệ thống thu thập

cung cấp.
Các tiến trình này bao gồm:
• Soạn thảo (Authoring): Tạo nội dung từ các nguồn bất kì.
• Tìm kiếm nội dung (Acquisition): Lấy nội dung từ một số nguồn có sẵn.
• Chuyển đổi (Conversion): Loại bỏ các thông tin không cần thiết khỏi nội dung
và chuyển đổi chúng thành các ngôn ngữ đánh dấu.
• Kết tập (Aggregation): Soạn thảo nội dung, thêm một số thành phần phù hợp
với metadata.
• Dịch vụ thu thập (Collection services): Chương trình CMS và các chức năng
hỗ trợ cho các tiến trình thu thập. Ví dụ như đưa ra định dạng Web để người
dùng nhập nội dung.
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
14
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
1. Soạn thảo: Ở đây ta nói đến quá trình tạo ra nội dung từ các dữ liệu hỗn tạp.
CMS có thể giúp người dùng làm việc một cách hiệu quả bằng cách thực hiện các
việc sau:
• Cung cấp môi trường soạn thảo.
• Cung cấp những chú ý hướng đến khách hàng: Định hướng CMS tạo ra
những nội dung phù hợp với khách hàng của hệ thống.
• Cung cấp các hỗ trợ để bao gồm các thông tin chuẩn: ví dụ CMS sẽ tự động
nhập ngày tạo, người tạo,..
• Cung cấp các mẫu để người dùng soạn thảo nội dung.
• Cung cấp qui trình làm việc, trạng thái và quản lí phiên bản trong quá trình
soạn thảo nội dung.
2. Tìm kiếm nội dung: Là quá trình thu thập thông tin đã có cho CMS. Những
thông tin có thể được thu thập từ một trong các nguồn sau:
• Syndication: Là các nguồn được thiết kế cho sử dụng lại. Nghĩa là các thông
tin đó được nhận từ một số định dạng hữu dụng như XML, và những thông

tin tin đó đã được phân đoạn và đính kèm metadata.
• Found Sources: Là những file được cung cấp từ đâu đấy và ta cần phải xử lí
để đưa vào CMS.
3. Chuyển đổi nội dung: Những thông tin do bạn tạo ra hoặc thu thập được có thể
khôn đúng với định dạng mà hệ thống yêu cầu, do vậy ta cần phải chuyển đổi về
định dạng chuẩn. Ở đây ta nói đến việc chuyển đổi từ nội dung sau khi đã được
soạn thảo chứ không phải chuyển đổi từ dữ liệu thô. Quá trình chuyển đổi bao
gồm 3 bước logic sau:
• Lược bỏ (strip): Lược bỏ những phần thông tin và nội dung không cần thiết
như tiêu đề trang, .
• Định dạng (Format mapping): Chuyển dạng nhị phân của thông tin thành
dạng chuẩn mà CMS hỗ trợ.
• Cấu trúc (Structure mapping): Làm cho cấu trúc của thông tin trở nên rõ
ràng hoặc có thể thay đổi nếu cần thiết.
4. Kết tập: Kết tập là việc mang những thông tin khác nhau vào một cấu trúc thông
qua:
• Quá trình biên tập
• Quá trình phân đoạn: Phân thông tin thành các đoạn gọi là thành phần nội
dung.
• Xử lí meta: Thực hiện đưa thông tin mới vào hệ thống metadata.
5. Các dịch vụ thu thập: Hỗ trợ cho quá trình thu thập nội dung. Cung cấp dịch vụ
để lấy và lưu tạm nội dung vào kho. Dịch vụ này thực hiện các tác vụ sau:
• Soạn thảo các compoent trực tiếp vào kho của CMS.
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
15
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
• Tải các thành phần đã được tạo trước đó vào kho.
I.2.2. Hệ thống quản lí
Hệ thống quản lí chịu trách nhiệm lưu trữ lâu dài các thành phần nội dung và các tài

nguyên khác. Hệ thống quản lí chứa kho lưu trữ, qui trình làm việc và các chức năng
quản lí hệ thống. Một hệ thống quản lí, nên đảm bảo các khả năng sau:
• Cho phép người dùng xem chi tiết nội dung.
• Người dùng của hệ thống được sử dụng như thế nào và có những trở ngại gì sẽ
đến.
• Làm thế nào để dùng các thành phần nội dung cho xuất bản hoặc nội dung nào
không được sử dụng hoặc sẵn sàng loại bỏ.
• Ai có thể truy cập vào nội dung gì và ai có đóng góp nhiều nhất.
Một cách ngắn gọn, bất kì vấn đề nào bạn cần quan tâm như nội dung, ấn phẩm, hệ
thống thu thập, bạn đều có thể tìm thấy câu trả lời cho chúng từ hệ thống quản lí.
Để cung cấp khả năng này, hệ thống quản lí bao gồm:
• Kho (repository): Nơi để lưu trữ nội dung.
• Quản lí (Administration): Quản lí hệ thống cho việc cài đặt và cấu hình CMS.
• Qui trình làm việc (Workflow): Định nghĩa tập các bước để thực hiện các công
việc cần thiết trên nội dung để có thể xuất bản nội dung.
• Kết nối (Connection): Tập các kết nối (phần cứng và phần mềm) đến các hệ
thống khác bên trong tổ chức bao gồm từ mạng, các máy chủ và các kho dữ liệu.
1. Kho
Kho là thành phần chính của hệ thống quản lí. Kho có thể chứa các thành phần
sau: Các file và CSDL nội dung, Các file điều khiển và cấu hình.
a. Các file và CSDL nội dung
CSDL nội dung và các file chứa các thành phần nội dung của hệ thống. CSDL
nội dung có thể là các CSDL quan hệ chuẩn, hoặc các cấu trúc XMl hoặc có
thể là sự trộn lẫn cả hai.
Ta có thể lưu các file media vào CSDL, tuy nhiên, thông thường ta lưu chúng
dưới dạng các file nhị phân bên ngoài CSDL và liên kết với bản ghi trong
CSDL. Cách làm này lại quay trờ về thời kì các CSDL chưa có khả năng lưu
các file nhị phân, tuy nhiên nó lại giúp cho việc truy cập các file media không
thông qua CSDL sẽ tiện lợi hơn.
Các file dạng Word, excel, hay PDF có thể được lưu trữ và phân phối thành

các file thông thường. Trong trường hợp này, CMS còn làm luôn cả chức
năng là một hệ thống quản lí tài liệu.
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
16
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
Nội dung có thể được lưu trữ trong các file XML. Cấu trúc XML tương tự
như các đối tượng CSDL nhưng cần phải lập trình để có cơ chế đọc và lưu dữ
liệu vào file XML.
b. Các file điều khiển và cấu hình
Các file điều khiển và cấu hình không phải là các thành phần nội dung. Có
những kiểu file điều khiển và cấu hình sau:
• Mẫu đầu vào và xuất bản: Cấu hình các mẫu để người dùng nhập nội dung
và các mẫu để xuất bản nội dung.
• Các file, CSDL của nhân viên và người dùng cuối: Những thành phần này
chứa các thông tin được đùng để truy cập vào hệ thống và cá nhân hóa.
• Các file, CSDK qui định sử dụng hệ thống: Các thành phần này chứa các
định nghĩa các kiểu thành phần, qui trình làm việc, quyền hạn của các
nhân viên và các thủ tục cá nhân hóa.
• Danh sách thông tin meta, file đánh dấu nội dung và CSDL: Các file và
CSDL trực tiếp lưu trữ nội dung.
• Log và các file điều khiển và cấu trúc khác: Sử dụng các file này để phân
tích, lưu trữ các tham số điều khiển các thủ tục và chức năng của CMS.
• Script và các thủ tục duy trì tự động: Là các chương trình mà CMS dùng
để giúp quản lí nội dung.
c. Hệ thống quản lí (Administration) : Chịu trách nhiệm cài đặt các tham số
và cấu trúc CMS.
Hệ thống quản lí tác động tới tất cả các phần của CMS theo các cách sau:
• Với hệ thống thu thập: Quản lí bao gồm cấu hình nhân viên, thiết lập các
qui tắc và quyền sử dụng, cấu hình hệ thống, duy trì cấu trúc và qui trình

làm việc của CMS
• Với hệ thống quản lí: Thực hiện nhiều công việc quản lí CSDL thông
thường như duy trì người dùng và quyền sử dụng, sao lưu, lưu trữ. Ngoài
ra hệ thống xử lí còn thực hiện nhiệm vụ trên nội dung như: Tạo kiểu nội
dung, tạo qui trình làm việc.
• Với hệ thống xuất bản: Hệ thống quản lí phải chắc chắn rằng tất cả phần
cứng và phần mềm phục vụ cho việc hiển thị nội dung đều đang hoạt động
tốt. Với xuất bản dạng Web, công việc giống với người quản lí website,
chịu trách nhiệm đảm bảo Web server, application server, đối tượng ứng
dụng quản lí nội dung, CSDL, và các chương trình cần thiết khác đang
hoạt động tốt.
2. Hệ thống qui trình làm việc: Chịu trách nhiệm phối hợp, lập tiến trình và tuân
theo tiến trình làm việc và các nhiệm vụ của nhân viên. Hệ thống qui trình làm
việc tác động đến 3 phần của CMS như sau:
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
17
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
• Với hệ thống thu thập: Sẽ có qui trình làm việc cho việc thu thập, tạo và kết
hợp nội dung. Trong hấu hết các trường hợp, qui trình làm việc phụ thuộc vào
loại nội dung từ lúc thu thập cho đến khi sẵn sàng xuất bản. Tuy nhiên, cũng
có thể thiết kế qui trình làm việc cho tất cả các loại nội dung.
• Với hệ thống quản lí: Sẽ có qui trình làm việc chuẩn cho các nhiệm vụ như
sao lưu và lưu trữ. Hơn nữa, có thể có qui trình làm việc để xem, thay đổi,
kiểm soát các thông tin không còn hữu dụng. Cũng có thể có qui trình để khai
thác dữ liệu. Ngoài ra, còn có qui trình quản lí các kết nối giữa CMS với các
hệ thống cung cấp dữ liệu cho CMS.
• Với hệ thống xuất bản: Sẽ có chu kì xuất bản để đảm bảo nội dung được xuất
bản là tốt nhất. Ví dụ ta có thể có qui trình làm việc để duyệt, chạy thử nội
dung trước khi xuất bản.

3. Các kết nối: Bao gồm các kết nối từ CMS đến các hệ thống cung cấp dữ liệu
khác, các hệ thống đó có thể là : Môi tường mạng LAN hay WAN của tổ chức,
Hệ thống quản lí người dùng của tổ chức, Hệ thống dữ liệu của công ty, và các hệ
thống dữ liệu khác.
I.2.3. Hệ thống xuất bản
Hệ thống xuất bản chịu trách nhiệm kéo các thành phần nội dung và các tài
nguyên khỏi kho lưu trữ và tự động tạo ra các ấn phẩm.
Hệ thống xuất bản bao gồm:
• Mẫu xuất bản (Publishing Template): Chương trình xây dựng các ấn phẩm một
cách tự động.
• Các dịch vụ xuất bản (Publishing Services): Tập các công cụ để điều khiển xuất
bản cái gì và làm thế nào để xuất bản.
• Các kết nối (Connections): Các công cụ và phương pháp được sử dụng để lấy dữ
liệu từ các nguồn khác vào ấn phẩm.
• Ấn phẩm Web: Là đầu ra phổ biến nhất của hầu hết các hệ thống quản lí nội
dung.
• Các dạng ấn phẩm khác: Các dạng xuất bản không phải dạng Web như: bản in,
các bài báo….
1. Các mẫu xuất bản
Hạt nhân của hệ thống xuất bản là các mẫu xuất bản, là cầu nối giữa các nội
dung trung lập và các ấn phẩm thực tế.
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
18
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
Mẫu xuất bản bao gồm các thành phần sau
• Các thành phần tĩnh (Static Element): Các thành phần như văn bản, media,
các script được đưa trực tiếp vào ấn phẩm mà không cần qua xử lí.
• Gọi đến các dịch vụ xuất bản:Những lời gọi này lấy và định dạng các
component và các metadata từ kho lưu trữ và thực hiện các xử lí cần thiết

khác như chạy các chức năng cá nhân hóa chuyển đổi nội dung,..
• Gọi đến các dịch vụ bên ngoài CMS: Sử dụng các thành phần khác ngoài
CMS để lấy kết quả đưa vào ấn phẩm.
2. Các dịch vụ xuất bản
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
19
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
Dịch vụ xuất bản là các ứng dụng logic và nghiệp vụ do CMS cung cấp để hỗ
trợ việc tạo các ấn phẩm từ nội dung và các metadata trong kho.
Dịch vụ xuất bản cung cấp những chức năng sau:
• Tài và thực hiện các mẫu xuất bản: Những dịch vụ này xử lí việc các nhân
hóa, chuyển đổi, kết xuất nội dung để tạo ra các ấn phẩm
• Cung cấp các dịch vụ xuất bản đặc biệt: Ví dụ như cung cấp khả năng xuất
bản dạng PDF cho các ấn phẩm dạng ín.
• Cung cấp cầu nối đến các dịch vụ ngoài CMS: Đó là những dịch vụ bạn gọi
đến để cung cấp dữ liệu đưa vào các ấn phẩm.
3. Các kết nối
Hệ thống xuất bản thường duy trì các kết nối đến các hệ thống dữ liệu khác mà
CMS có thể dung đến nhưng không muốn lưu vào hệ thống quản lí ví dụ như dữ
liệu ERP, dữ liệu của người dung khi thực hiện các dịch vụ thanh toán trực
tuyến,..
4. Ấn phẩm Web
Hầu hết các CMS ngày nay đều xuất bản dưới dạng Web. Đó là các site trên
Internet, intranet và extranet do CMS tạo ra. Nếu đây là các site động, CMS sẽ
tạo ra các trang để phản hồi yêu cầu của người dùng. Để phản hồi yêu cầu người
dùng, hệ thống thực hiện các thao tác sau:
• Tải mẫu xuất bản.
• Đưa vào các tham số từ yêu cầu của người dùng.
• Thực hiện mã nguồn trong mẫu xuất bản để tạo ra trang hoàn chỉnh.

• Đưa trang hoàn chỉnh về Web server để gửi về hiển thị trên trình duyệt của
khách hàng.
Nếu xuất bản ra Web tĩnh, CMS sẽ tạo ra tất cả các trang cùng lúc dựa vào các
mẫu xuất bản và cách dịch vụ xuất bản cần thiết.
5. Các ấn phẩm khác
Các ấn phẩm của CMS không chỉ là dưới dạng Web mà còn dưới một số định
dạng khác nữa như các ấn phẩm in, ấn phẩm điện tử.
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
20
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
I.3. Mô hỉnh tổng quan kiến trúc CMS
AUTHORING
ACQUISITION
CONVERT AGGREGATE
WEBFORM
SERVICE
BULK LOAD
PROCESSING
MEDIA FILES
RAW XML
RAW XML
MEDIA
FILE
XML
REPOSITORY
VERSIONING
MANAGEMENT
TEMPLATE
MANAGEMENT

STAFF
MANAGEMENT
WORKFLOW SECURITY
SYSTEM
ACCES
CONFIGURATION
MANAGEMENT
CMS ARCHITECTURE
MODULE
MANAGEMENT
SEARCH
FILE
MANAGEMENT
PERSONALIZATION
PUBLICATION
PROCESSOR
CORE
COLLECTING
MANAGEMENT PUBLISHING
PLUGIN MODULE
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
21
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
CHƯƠNG II: GIỚI THIỆU CÔNG NGHỆ
II.1. Giới thiệu về kiến trúc của ứng dụng trên nền WEB
II.1.1. Kiến trúc của một ứng dụng Web cổ điển
Ngày nay, việc phát triển ứng dụng trên nền web là một trong những xu hướng lớn
trên thế giới. Office online, Photoshop online và hàng loạt các website ra đời là một
minh chứng rõ ràng cho xu hướng này. Tuy nhiên, dù là ứng dụng nào đi chăng nữa

thì tất cả chúng đều tuân theo kiến trúc dưới đây:
Mô hình:
Client thông qua trìn duyệt gửi yêu cầu đến Web Server, Web Server sẽ nhận dạng
yêu cầu và lấy các file xử lí cần thiết, chuyển yêu cầu cho application server xử lí.
Application server có thể có nhiều kiểu khác nhau tùy theo mỗi ứng dụng. Khi xử lí,
application server có thể lấy thông tin từ file system, hoặc lấy dữ liệu từ CSDL hoặc
kết hợp với các hệ thống ngòai để xử lí. Kết quả xử lí được trả về cho web server, sau
đó web server gửi về máy client và hiển thị trở lại trên trình duyệt dưới dạng một
trang web (html).
Các thành phần: File System, application server, data, và external system về bản
chất tương tự như một hệ thống clien/ server truyền thống. Web Browser là một thành
phần đặc biệt và chỉ có ở ứng dụng web.
Nhìn vào kiến trúc này, có thể thấy một số trở ngại như sau:
 Làm thế nào để lưu lại trạng thái phiên truy cập của người dùng? Có thể có
nhiều lựa chọn, một trong những giải pháp đó là cookies và kết nối thông qua
IIOP (the Internet Inter-Orb Protocol).
 Đặt logic nghiệp vụ của ứng dụng ở đâu? Có thể chủ yếu ở Server (Mô hình
thin client), có thể chủ yếu ở phía client (mô hình fat client/thin server) hoặc
trải đều ra cả client và server. Mỗi mô hình đều có những ưu và nhược điểm
riêng: Mô hình thin client làm cho việc bảo mật và phân phối dễ hơn nhưng lại
làm cho trình duyệt trông có vể như một thiết bị đầu cuối câm nhiều hơn; thick
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
22
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
client giúp cho việc tương tác tốt hơn (vì có thể nhiều người dùng cùng xử lí
một công việc trên server) nhưng giá thàn phân phối lại cao hơn. Hầu hết các
hệ thống ngày nay đều đẩy các ứng dụng logic về phía server.
Logic nghiệp vụ phải nói lên được tình trạng của nghiệp vụ. Ý tưởng thể hiện một
trở ngại nữa của kiến trúc. Nên kết nối phi trạng thái từ logic đến dữ liệu thông qua

các cơ chế như PHP, hay có những kiểu kết nối có trạng thái rõ ràng hơn như thông
qua servlet? Mỗi cách tiếp cận đều có đều lợi và bất lợi riêng.
Kết nối đến dữ liệu lâu dài của ứng dụng, có thể bị giới hạn trong các hệ thống kế
thừa (legacy system), ngoài ra còn bao hàm nhiều trở ngại của kiến trúc. Đầu tiên,
Làm thế nào để cung cấp ảo giác các đối tượng cho người dùng trng khi dữ liệu là ở
trong quan hệ giữa các bảng? Thứ hai, làm thế nào để kết nối giữa logic nghiệp vụ
của hệ thống đến dữ liệu của nó được rõ ràng? Ví dụ, kết nôi thông qua JDBC thì trực
tiếp hơn nhưng yêu cầu các nhà phát triển ứng dụng phải có kiến thức tốt về form dữ
liệu. Một lựa chọn khác, kiến trúc thông điệp (messaging architecture) không trực tiếp
bằng nhưng lại mềm dẻo hơn.
II.1.2. Kiến trúc ứng dụng web dưới các khung nhìn khác nhau
Thực tế cho thấy không thể hiểu được một hệ thống phức tạp nếu chỉ nhìn dưới
một góc độ. Thật vậy, lược đồ mô tả kiến trúc của một ứng dụng web trên đây đơn
giản chỉ cho thấy được việc triển khai của hệ thống. Philippe Kruchten là người đầu
tiên đưa ra khái niệm khung nhìn mô hình 4+1 dưới đây:
Khung nhìn thiết kế (Design view) của hệ thống bao gồm các lớp, giao diện và
cộng tác hình thành các thành phần cơ bản (vocabulary) của vấn đề và giải pháp của
nó. Khung nhìn này chủ yếu hỗ trợ nhứng yêu cầu tính năng của hệ thống, nghĩa là
các dịch vụ mà hệ thống sẽ cung cấp cho người dùng cuối.
Khung nhìn xử lí (process view) bao hàm các luồng dữ liệu và các xử lí trong hệ
thống, tạo nên tính đồng bộ của hệ thống và cơ chế đồng bộ hóa. Khung nhìn này chủ
yếu xác định các hoạt động, các điều kiện cần thiết và đầu vào của hệ thống trong các
quá trình xử lí.
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
23
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
Khung nhìn thực thi (implementation view) bao hàm các thành phần (component)
và file được dùng để thu thập và phát hành hệ thống vật lí. Khung nhìn này chủ yếu
định địa chỉ quản lí cấu hình của xuất bản của hệ thống. Sự xuất bản bao gồm các

thành phần độc lập và các file cá thể được thu thập theo nhiều cách để tạo ra một hệ
thống chạy được.
Khung nhìn triển khai (deployment view) bao hàm các thành phần hình thành nên
phần cứng của hệ thống để trỉên khai ứng dụng. Khung nhìn này chủ yếu định địa chỉ
phân tán, phân phối và cài đặt các thành phần hình thầnh nên hệ thống vật lí.
Khung nhìn trường hợp sử dụng (use case view) bap hàm các trường hợp sử dụng,
mô tả các cách xử lí, sử dụng hệ thống dưới góc nhìn của người dùng cuối. Khung
nhìn này tồn tại để chỉ định tác động, hình thành nên kiến trúc của hệ thống.
II.1.3. Giới thiệu mô hình kiến trúc MVC
II.1.3.a. Vấn đề
Mục đích của nhiều hệ thống máy tính là nhận dữ liệu từ kho dữ liệu và hiển thị
dữ liệu đó cho người dùng. Sau khi người dùng thay đổi dữ liệu, hệ thống sẽ lưu lại
những thay đổi đó trong kho dữ liệu. Bỡi vì dữ liệu chủ yếu được trao đổi qua lại gữ
kho dữ liệu và giao diện người dùng, ta có thể kết hợp 2 thành phần này với nhau để
giảm công sức lập trình và cải thiện hiệu năng của ứng dụng. Tuy nhiên, cách tiếp cận
có vẻ như rất tự nhiên này lại nảy sinh một số vấn đề khó khăn. Một vấn đề là giao
diện người dùng có khuynh hướng thay đổi thường xuyên hơn so với hệ thống kho dữ
liệu. Một vấn đề khác với sự kết hợp giữa dữ liệu và giao diện người dùng là các ứng
dụng thương mại có xu hướng kết hợp chặt chẽ logic ứng dụng để làm cho việc
truyền dữ liệu tốt hơn.
Vấn đề đặt ra là làm thế nào để module hóa một ứng dụng web để có thể dễ dàng
thay đổi giao diện cũng như logic nghiệp vụ của ứng dụng.
Từ vấn đề trên, ta sẽ đưa ra một số ý tưởng dưới đây :
• Giao diện người dung có xu hướng thay đổi nhiều hơn so với logic nghiệp vụ,
nhất là với các ứng dụng trên nền Web. Ví dụ, có thể thêm mới các trang giao
diện người dùng hoặc có thể thay đổi các thành phần trên một layout có sẵn. Sau
cùng, một trong ững lợi ích của một ứng dụng thin-clinet web-based là thực tế
bạn có thể thay đổi giao diện người dùng bất cứ lúc nào mà không cần phải phân
phối lại ứng dụng. Nếu mã nguồn để hiển thị và mã nguồn để xử lí nghiệp vụ
của ứng dụng được kết hợp với nhau trong cùng một đối tượng, ta phải thay đổi

cả một đối tượng chứa logic nghiệp vụ mỗi khi ta muốn thay đổi giao diện
người dùng. Điều này sẽ có thể gây ra các lỗi và ta phải kiểm tra lại toàn bộ
logic nghiệp vụ khi thay đổi dù chỉ là một phần nhỏ của giao diện người dùng.
• Trong một số trường hợp, ứng dụng hiển thị cùng một dữ liệu theo nhiều kiểu
khác nhau. Ví dụ, khi phân tích ta sẽ thích dùng bảng tính, còn khi quản lí ta
thích xem dữ liệu đó dạng biểu đồ hình tròn. Trong nhiều giao diện người dùng
rich-client, nhiều cách hiển thị khác nhau của dùng một dữ dữ liệu được hiển thị
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
24
Đồ Án Tốt Nghiệp Đại Học - ECMS
2008
cùng một lúc. Nếu người thay đổi dữ liệu trong một khung nhìn, hệ thống phải
tự động. cập nhật cất cả các khung nhìn khác của dữ liệu.
• Việc thiết kế các trang HTML đẹp, có hiệu quả sẽ yêu cầu các kĩ năng khác với
các kĩ năng cần thiết đẻ phát triển logic ứng dụng phức tạp, và khó yêu cầu để
một người đểu có thể làm tốt 2 việc đó. Do vậy, cần thiết phải tách biệt 2 phần
này để dễ dàng phát triển ứng dụng hơn.
• Giao diện người dùng tương tác thường bao gồm 2 phần: trình diễn
(presentation) và cập nhật (update) dữ liệu. Phần trình diễn nhận dữ liệu từ
nguồn dữ liệu và định dạng chúng để hiển thị. Khi người dùng thực hiện một
hành động trên dữ liệu, phần cập nhật sẽ truyền những dữ liệu cho người dùng
đưa vào tới logic nghiệp vụ để cập nhật dữ liệu.
• Trong các ứng dụng Web, một yêu cầu trang (page request) kết hợp việc xử lí
hành động tương ứng với liên kết được người dùng chọn và trả về trang kết quả.
Trong nhiều trường hợp, trang kết quả không liên quan trực tiếp tới hành động.
Ví dụ, giả sử ứng dụng web hiển thị danh danh sách các mục. Người dùng sẽ
quay về trang liệt kê chính sau khi thêm mới mục mới vào danh sách hoặc sau
khi xóa một mục khỏi danh sách. Do vậy, ứng dụng phải trả về cùng một trang
(liệt kê) sau khi thực hiện 2 lệnh khác nhay (thêm và xóa) bên trong phạm vi
cùng một yêu cầu HTTP.

• Mã nguồn giao diện người dùng có xu hướng phụ thuộc thiết bị nhiều hơn so với
logic nghiệp vụ. Nghĩa là cùng một dữ liệu, nhưng để hiển thị trên những thiết bị
khác nhau cần phải có mã nguồn hiển thị khác nhau. Nếu ta muốn chuyển một
ứng dụng web thông thường sang hỗ trợ các thiết bị như PDA, hoặc điện thoại di
động, ta phải thay thế mã nguồn của giao diện, trong khi logic nghiệp vụ có thể
không bị tác động. Việc tách biệt tốt giữa giao diện và logic nghiệp vụ sẽ tăng
tốc độc chuyển đổi và giảm thiểu các lỗi cho logic nghiệp vụ.
• Việc tạo một chức năng kiểm thử tự động cho giao diện người dùng thường khó
hơn nhiều và mất nhiều thời gian hơn so với cho logic nghiệp vụ. Do vậy, việc
tách biệt 2 thành phần này với nhau còn làm cho việc xây dựng các chức năng
kiểm thử tự động cho ứng dụng đỡ mất thời gian hơn.
II.1.3.b. Giải pháp
Mô hình Model-View-Controller (MVC)
• Model : Model biểu diễn dữ liệu của ứng dụng và chứa các xử lí logic để truy
cập và thao tác với dữ liệu. Bất kì một dữ liệu nào mang tính chất lâu dài của
ứng dụng đều phải nằm trong đối tượng model. Như vậy, model phải đủ khả
năng để hỗ trợ hàng loạt client. Làm thế nào đó để khi lướt qua danh sách các
hàm public của model, ta có thể dễ dàng hiểu được làm thế nào để điều khiển
các hành vi của model. Một model sẽ nhóm các dữ liệu và hành vi liên quan
thành một dịch vụ cụ thể. Các nhóm này sẽ bao bọc và trứu trượng các xử lí
nghiệp vụ. Giao diện của model sẽ thể hiện các phương thức để truy cập và cập
Đào Quang Nghĩa – Lớp TT&MMT – K48 - ĐHBKHN
25

×