Tài liệu tham khảo kỹ thuật công nghệ, chuyên ngành tin học Xây dựng hệ thống quản lý nội dung ECMS
Trang 1TRƯỜ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
Giáo viên hướng dẫn : TS. PHẠM HUY HOÀNG
Trang 2LỜ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ờicảm ơn chân thành đến trường đại học Bách Khoa Hà Nội nói chung và khoa côngnghệ 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ủatrườ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ủacá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ữngkiế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ôichọ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 đồ ántố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ếnsĩ
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
Trang 3LỜ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ệpvừ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ànhphần cơ bản
Triển khai xây dựng một trang tin công nghệ nhỏ
Trang 4Nhận xét của giáo viên hướng dẫn:
Trang 5MỤ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 32
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
Trang 6III.1.2 Vấn đề bảo mật của ECMS 33
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) 45
III.2.3.c UC3 Quản lý User(User Management) 50
III.2.3.d UC4 Quản lý module(Module Management) 55
III.2.3.e UC5 Quản lý quy trình(Workflow Management) 65
III.2.3.f UC6 Quản lý đa ngôn ngữ(Localization) 74
III.2.3.g UC7 Quản lý file(File management) 86
III.2.3.h UC8 Quản lý Section(Section Management) 87
III.2.3.i UC9 Quản lý danh mục (Category Management) 95
III.2.3.j UC10 Quản lý nội dung(Content Management) 104
III.2.3.k UC11 Accession 112
III.2.4 Biểu đồ Class (Class Diagram) 116
III.2.5 Thiết kế cơ sở dữ liệu 117
CHƯƠNG IV: TRIỂN KHAI HỆ THỐNG 118
IV.1 Môi trường cài đặt và phát triển 118
IV.1.1 Phần cứng 118
IV.1.2 Phần mềm 118
IV.1.3 Yêu cầu về nhân sự 118
IV.2 Xây dựng website mẫu 118
CHƯƠNG V: ĐÁNH GIÁ VÀ TỔNG KẾT 119
V.1 Các vấn đề đã được giải quyết 119
V.2 Các vấn đề còn tồn tại 119
V.3 Hướng phát triển mở rộng 119
Trang 8CHƯƠ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úpdoanh 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ữngchi 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ànghơ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ôngtin 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ộidung (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ạivớ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
Trang 9quá 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 CMthành công là CM có nhiều lưạ chọn và triển khai hiệu quả Nó có thể thay đổi cáchthứ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ớinhau 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 CMhiệ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ạncầ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ôngnhậ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ằngviệ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ácnộ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ủakhá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ácnhau 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ệctậ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ặcthê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 filechứ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ấtcá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:
Trang 10Web 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ôngcầ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 trangHTML 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 rafile HTML khi nào muốn Điều này trái ngược với Web tĩnh, khi tất cả cáctrang 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êucầ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ữamộ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ốngtà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
Trang 11Mặt khác, có thể có CMS để tạo site tĩnh Ví dụ, ta cài đặt một CMS phức tạpchứ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 rakhoả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ácfile 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 thaotá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 trangHTML 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ùytheo sản phẩm Vài CMS có phần mềm trên mạng LAN của tổ chức, bêntrong tường lửa để thu thập và kiểm định nội dung và phần mềm bên ngoàichạ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
Trang 12nội dữ liệu và nội dung từ kho lưu trữ của nó thành CMS-generateddatabase 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àngxuấ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ịchcho việc bán hàng trên site có thể kết nối với Web site không thông quaCMS
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ệuphả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
Trang 13I.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ộidung 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ốngxuấ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ànhphần nội dung (content component) Hệ thống quản lí sẽ quản lí các thành phần nộidung 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 ấnphẩ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: Trongquá 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
Trang 14 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 dungdướ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
Trang 151 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 ranhữ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ự độngnhậ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ìnhsoạ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ữngthô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 đã đượcsoạn thảo chứ không phải chuyển đổi từ dữ liệu thô Quá trình chuyển đổi baogồ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ộidung
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
Tải các thành phần đã được tạo trước đó vào kho
Trang 16I.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àokhô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
Trang 17Nộ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ộidung 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ầnnày chứa các thông tin được đùng để truy cập vào hệ thống và cá nhânhó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ácnhâ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ântí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ácqui tắc và quyền sử dụng, cấu hình hệ thống, duy trì cấu trúc và qui trìnhlà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ôngthườ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ộidung, 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ầncứ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, đốitượng ứng dụng quản lí nội dung, CSDL, và các chương trình cần thiếtkhá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àmviệc tác động đến 3 phần của CMS như sau:
Trang 18 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ếthợp nội dung Trong hấu hết các trường hợp, qui trình làm việc phụ thuộcvà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 CMSvớ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 đượcxuấ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
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ộidung
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ế
Trang 19Mẫ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áccomponent và các metadata từ kho lưu trữ và thực hiện các xử lí cần thiếtkhá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àiCMS để lấy kết quả đưa vào ấn phẩm
2 Các dịch vụ xuất bản
Trang 20Dị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ânhó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ấtbả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
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ủakhá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ử
Trang 21I.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
PERSONALIZATION
PUBLICATION PROCESSOR
CORE COLLECTING MANAGEMENT PUBLISHING
PLUGIN MODULE
Trang 22CHƯƠ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ừ CSDLhoặ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 quaIIOP (the Internet Inter-Orb Protocol)
Đặt logic nghiệp vụ của ứng dụng ở đâu? Có thể chủ yếu ở Server (Mô hìnhthin client), có thể chủ yếu ở phía client (mô hình fat client/thin server) hoặctrải đều ra cả client và server Mỗi mô hình đều có những ưu và nhược điểmriê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
Trang 23thick 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ầuhế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í
Trang 24Khung 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àngthay đổ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 giaodiệ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ầnphả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, taphải thay đổi cả một đối tượng chứa logic nghiệp vụ mỗi khi ta muốn thay đổigiao 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ạitoàn bộ logic nghiệp vụ khi thay đổi dù chỉ là một phần nhỏ của giao diệnngườ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ểukhá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í tathích xem dữ liệu đó dạng biểu đồ hình tròn Trong nhiều giao diện người dùng
Trang 25thị cùng một lúc Nếu người thay đổi dữ liệu trong một khung nhìn, hệ thốngphả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ớicá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ầnnà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ộthà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ếtquả 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ườidùng sẽ quay về trang liệt kê chính sau khi thêm mới mục mới vào danh sáchhoặ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ùngmột trang (liệt kê) sau khi thực hiện 2 lệnh khác nhay (thêm và xóa) bên trongphạ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 sovới logic nghiệp vụ Nghĩa là cùng một dữ liệu, nhưng để hiển thị trên nhữngthiết bị khác nhau cần phải có mã nguồn hiển thị khác nhau Nếu ta muốnchuyể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 khilogic 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 logicnghiệ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ườngkhó 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ứcnă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 để truycậ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áchàm public của model, ta có thể dễ dàng hiểu được làm thế nào để điều khiểncác hành vi của model Một model sẽ nhóm các dữ liệu và hành vi liên quanthà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
Trang 26nhật trạng thái của model và để thực hiện các xử lí phức tạp được đóng góitrong model Model sẽ thông báo với view khi có sự thay đổi trạng thái trongmodel
View: View chịu trách nhiệm hiển thị dữ liệu do model đưa ra Việc biểu diễn
dữ liệu sẽ được đóng gói bên trong view, do vậy dữ liệu model có thể tươngthích với nhiều loại client khác nhau khi dùng các view khác nhau để hiển thị.View sẽ được thay đổi khi sự thay đổi trong model có liên quan tới nó, đồngthời chuyển các dữ liệu đầu vào của người dùng cho controller
Controller: Nhận biết các yêu cầu và chuyển các yêu cầu của người dùng chocác hành động tương ứng trong model Controller còn chịu trách nhiệm chọnview tiếp theo dựa trên yêu cầu của người dùng và kết quả xử lí từ model.Quan hệ giữa 3 thành phần này như sau:
Model
ControllerView
Select View
Query the model state
Invoke Method in the Model’s public API Notify View Of
Change in Model State
User action/ Commands
Method invocations Event
Ta thấy rằng cả View và Controller đều phụ thuộc vào model Tuy nhiên, model không phụ thuộc vào Controller cũng không phụ thuộc vào View Đây là lợi ích quan trọng nhất của việc phân tách này Việc phân tách này cho phép model được xây dựng
và kiểm thử độc lập với việc trình diễn trực quan Trong ứng dụng Web, sự tách biệt giữa view (trình duyệt) và controller (các thành phần ở phía server quản lí các yêu cầuHTTP) được định nghĩa rất rõ ràng
II.2 Tổng quan PHP
II.2.1 PHP là gì ?
PHP là viết tắt của của PHP Hypertext Preprocessor, tạm dịch là ngôn ngữ tiền
xử lí siêu văn bản Đây là một ngôn ngữ kiểu script, chạy trên server (Window hoặc Unix) Khi một trang được yêu cầu có chứa mã php, bộ xử lí sẽ dịch và thực hiện tất
cả các lệnh php trong trang và trả kết quả về cho trình duyệt dưới dạng HTML thông
Trang 27trang viết bằng PHP có thể xem được ở bất kì trình duyệt nào trên bất kì hệ điều hành nào.
Cũng như hầu hết các ngôn ngữ script khác, PHP có thể được nhúng trực tiếp vào HTML Mã PHP được phân tách với mã HTML bằng các kí hiệu bắt đầu và kết thúc Khi một trang PHP được đưa vào, bộ xử lí PHP sẽ dịch và thực hiện những đoạn mã ở các vị trí được đánh dấu, và trả kểt quả về đúng vị trí đó
Hiện tại PHP 5 đang được phát triển và dần chuyển thành ngôn ngữ lập trình hướng đối tượng và nhiều lỗi bảo mật quan trọng sẽ được vá
Hiện tại, PHP vẫn đang được cung cấp miễn phí trong sự phát triển của mã nguồn mở Tuy nhiên, không giống như những dự án mã nguồn mở khác, PHP đangtrở thành xu thế chủ tạo với ngày càng nhiều tổ chức và doanh nghiệp chuyển sang dùng PHP
Với các nhà phát triển chuyên nghiệp, một trong những điều thú vị nhất là sự ra đời của Zend Encoder, cho phép mã nguồn PHP được mã hóa, từ đó giúp các nhà phát triển bảo mật được mã nguồn cho các dự án của mình
II.2.2 Những cải tiến trong PHP5
Hiệu năng: PHP 5 có sự cải thiện đáng kể về tốc độ so với PHP4 Trước hết,
mô hình thực hiện đã được thay đổi so với PHP4 Một đoạn script PHP sẽ được dịchthành mảng của (op code) trước khi được thực thi PHP4 về căn bản sử dụng một cơchế chuyển đổi khi thực hiện các toán tử thuộc mảng này Còn PHP sử dùng con trỏhàm và bảng băm để chứa con trỏ hàm Do đó việc gọi hàm trong PHP 5 nhanh hơnkhoảng 40%
Hỗ trợ lập trình hướng đối tượng: Với những phiên bản trước đây của PHP,
việc hỗ trợ lập trình hướng đối tượng chỉ ở mức độ phôi thai Đến PHP 5, tất cả cácđặc tính thuần túy của lập trình hướng đối tượng đã được thực hiện
Một sự thay đổi lớn trong PHP 5 có thể sẽ làm giảm đáng kể các lỗi trong các dự
án dùng lớp và đối tượng là đối tượng được gửi bằng tham chiếu thay vì bằng giá trịnhư cách xử lí mặc định PHP có bộ đếm tham chiếu quản lí tất cả các trường hợp
sử dụng đối tượng Đối tượng sẽ được giải phóng nếu bộ đếm tham chiếu bằng 0hoặc sử dụng lệnh unset hoặc ra khỏi phạm vi
II.2.3 Tại sao lại chọn PHP?
1 Tính đơn giản:
Với những người lập trình mới, đây là một thuộc tính quan trọng và có thể là yếu
tố được quan tâm đầu tiên Với những người lập trình có kinh nghiệm, đây cũng làyếu tố quan trọng để tăng tốc độ xây dựng một ứng dụng hoàn thiện Vì được xâydựng nhằm mục đích xây dựng các ứng dụng web, PHP có thể tích hợp nhiều chứcnăng cần thiết thông dụng khác
2 PHP là mã nguồn mở :
Trang 28Vì mã nguồn của PHP được cung cấp miễn phí, cộng đồng các nhà phát triểnluôn luôn làm việc để cải thiện, nâng cấp, và sửa các lỗi trong ngôn ngữ Mã nguồn
mở có nghĩa là bạn không cần phải lo lắng việc khi nhà cung cấp cho ra đời phiênbản mới thì sẽ có những chắc năng nào không còn chạy được nữa
Với đối tượng mà dự án này hướng đến là các doanh nghiệp vừa và nhỏ, chi phí
là vấn đề rất lớn Với một trang tin vừa và nhỏ, việc đầu tư nhân lực để có thể thựchiện trên các công nghệ khác như Java hay Net là vấn đề cực kì khó khăn so vớikhả năng chi trả của các doanh nghiệp Việt Nam Hơn nữa, nhu cầu cần thiết cácwebsite tin tức vừa và nhỏ ở Việt Nam ra rất lớn, nhưng thực tế trên thị trường hiệnnay các nhà cung cấp hosting cho các công nghệ khác như Java, Net không nhiều,giá cao, không phù hợp với doanh nghiệp Việt Nam Hơn nữa, PHP tuy đơn giảnhơn nhưng không có nghĩa là không có sức mạnh riêng của nó, không thể xây dựngđược các ứng dụng lớn và phức tạp Thực tế cho thấy ông trùm Internet Yahoo đã,đang và sẽ tiếp tục phát triển bằng PHP Và hiện tại Microsoft cũng đang nghiêncứu để tích hợp PHP vào bộ Studio, điều này cho thấy sự ảnh hưởng to lớn của PHPđối với thị trường thế giới Tóm lại, với qui mô bài toán và thị trường là các doanhnghiệp vừa và nhỏ ở Việt Nam, việc lựa chọn PHP, mã nguồn mở là giải pháp tối ưunhất
3 Tính ổn định và tính tương thích cao :
Hiện tại, PHP đang chạy ổn định trên nhiều Hệ điều hành khác nhau như Unix,Window và Mac và được tích hợp tốt vào 2 Internet Server thông dụng nhất hiệnnay là IIS và Apache
II.3 Tổng quan MySQL
II.3.1 MySQL là gì ?
MySQL là hệ quản trị CSDL mã nguồn mở phổ biến nhất hiện nay trên thế giới
II.3.2 Lí do chọn MySQL
1 Khả năng tương tích và mềm dẻo
MySQL Server cung cấp tối đa sự mềm dẻo, rõ ràng và sức chứa để quản lí mộtcách chặt chẽ, sâu sắc các ứng dụng được nhúng vào với vết chân (footprint) khoảng1MB để chạy một kho dữ liệu khổng lồ chứa hàng Terebytes thông tin MySQL cóthể hoạt động tốt trên nhiều platform khác nhau như Linux, Unix, và Windows cũngđang được hỗ trợ Và, do vậy, MySQL database server cho phép tùy biến toàn bộnhững gì bạn cần và có thể thêm vào những yêu cầu riêng vào database server
2 Hiệu năng cao
Kiến trúc cơ chế lưu trữ đặc biệt cho phép các chuyên gia CSDL cấu hìnhMySQL DB server tùy theo các ứng dụng riêng biệt và đạt được hiệu năng đángkinh ngạc Dù mục đích của ứng dụng là một hệ thống xử lí giao dịch tốc độ cao hay
Trang 29MySQL có thể đáp ứng được những đòi hỏi khắc khe về hiệu năng của bất kì hệthống nào Với ích lợi tải tốc độ cao, tách biệt bộ nhớ đệm, đánh chỉ số văn bản, vànhiều cơ chế hỗ trợ hiệu năng khác, MySQL có thể đáp ứng tất cả các tiêu chí củamột hệ thống thương mại hiện đại.
3 Hight-Avalability
Dùng MySQL, người dùng luôn được hỗ trợ bất kì lúc nào MySQL đưa ra hàngloạt những sự lựa chọn sắn để thiết kế theo mục đích riêng của người dùng, đồngthời cho phép các nhà phát triển khác đưa ra các giải pháp khác tích hợp vàoMySQL database Server
4 Hỗ trợ giao dịch tốt
MySQL được xem là một trong những hệ quản trị CSDL có cơ chế giao dịchmạnh nhất trên thị trường Các đặc tính bao gồm hỗ trợ đầy đủ ACID (atomic-nguyên tử, consident- chính xác, isolated- độc lập, durable- bền bỉ), không giới hạnrow-level locking (một kĩ thuật khóa các dòng thực hiện thao tác ghi của ngườidùng, bảo vệ dữ liệu tránh tác động từ các thao tác cập nhật thông tin của ngườidùng khác), khả năng giao dịch phân tán, hỗ trợ giao dịch đa phiên bản giúp ngườiđọc dữ liệu ra không bao giờ bị trở ngại bỡi người ghi dữ liệu vào và ngược lại Tínhtoàn vẹn dữ liệu đầy đủ ngòai ra cũng được đảm bảo thông qua các cơ chế tôn trọngtòan vẹn dữ liệu phía server, phát hiện ngay lập tức các khóa chết
5 Sức mạnh Web và kho dữ liệu
MySQL là tiêu chuẩn mặc nhiên cho các website có sự trao đổi thông tin caonhờ vào cơ chế truy vấn hiệu năng cao, khả năng thêm dữ liệu nhanh, và hỗ trợmạnh mẽ cho các tính năng đặc biệt của một ứng dụng web như tìm kiếm văn bảnnhanh Những sức mạnh này ngoài ra còn được áp dụng cho môi trường kho dữdiệu, ở đó MySQL tương thích với hàng terabyte chỉ với một server đơn lẻ hoặc mộtkiến trúc hợp lí Các thuộc tính khác như bảng bộ nhớ chính, B-tree và đánh chỉ sốbăm, và nén bảng dữ liệu để giảm dung lượng lưu trữ bằng lên đến 80% làmMySQL được khuyến cáo mạnh mẽ cả cho ứng dụng web lẫn các ứng dụng nghiệp
vụ khác
6 Bảo vệ dữ liệu
MySQL cung cấp một số đặc tính bảo mật đặc biệt để bảo đảm bảo vệ dữ liệutuyệt đối MySQL cung cấp cơ chế mạnh mẽ để chắc chắn rằng chỉ có những ngườidùng hợp lệ mới có thể truy cập vào database server, với khả năng ngăn chặn ngườidùng ngay từ phía client MySQL hỗ trợ SSH và SSL để bảo đảm kết nối an toàn vàbảo mật Có cơ chế phân quyền để người dùng chỉ có thể nhìn thấy được các dữ liệu
mà họ có quyền trên đó MySQL còn có chức năng mã hóa và giải mã dữ liệu đểbảo vệ các dữ liệu nhạy cảm khi có người đột nhập và xem trái phép Cuối cùng, cáctiện ích sao lưu và phục hồi dữ liệu được cung cấp công qua MySQL và bên thứ 3cho phép sao lưu hoàn chỉnh cả về logic và vật lí cũng như phục hồi đầy đủ dữ liệutại mọi thời điểm
7 Phát triển ứng dụng toàn diện
Trang 30MySQL hỗ trợ đầy đủ các chức năng mà các ứng dụng cần đến như: storeprocedure, trigger, function, views, cursor, ANSI-standard SQL, và nhiều đặc tínhkhác Để nhúng các ứng dụng, MySQL cung cấp sẵn các thư viện để CSDL MySQLđược nhúng vào có thể hỗ trợ bất kì ứng dụng nào MySQL ngoài ra còn cung cấpconnector và driver (ODBC, JDBC,…), cho phép tất cả các dạng ứng dụng có thểdùng MySQL như là một hệ quản trị CSDL được ưu tiên lựa chọn Bất kể ngườidùng đang dùng PHP, Perlm Java, Visual Basic or .NET, họ đều có thể dùngMySQL để làm hệ quản trị cơ sở dữ liệu cho ứng dụng.
8 Giá thành thấp
Do là hệ quản trị CSDL mã nguồn mở nên dùng MySQL sẽ không tốn tiền đầu
tư mua phần mềm Đây là điều hết sức quan trọng đối với các doanh nghiệp và tổchức ở Việt Nam.s
II.3.3 Bảo mật trong MySQL và một số kĩ thuật
Bảo mật trong MySQL được xây dựng dựa trên Danh sách điều khiển truy cập (Access Control List- ACL) cho tất cả các kết nối, truy vấn và nhiều hoạt động khác
mà người dùng có thể thực hiện Nghĩa là những người dùng khác nhau sẽ có nhiều mức độ truy cập khác nhau đến CSDL và các bảng và họ sẽ bị giới hạn chỉ để thực hiện được các thao tác trong phạm vi quyền hạn của họ Ví dụ: người dùng với đầy
đủ quyền cps thể thực hiện các thao tác như: SELECT, DELETE, UPDATE và INSERT, trong khi một người dùng bị giới hạn quyền chỉ có thể thực hiện được thaotác SELECT
1 Tài khoản root
Mặc định với user là root trong MySQL server, mật khẩu được bỏ trống Do vậy,
ta cần đặt lại mật khẩu cho user này để trành trường hợp bị kẻ địch tấn công bằng tàikhoản root (Với đầy đủ các đặc quyền)
2 Mật khẩu
Khi lưu mật khẩu vào CSDL không nên lưu dưới dạng bản rõ Nếu hệ thống có lỗi xảy ra, người khác sẽ có được mật khẩu và như vậy sẽ rất nguy hiểm Mã hóa mật khẩu với MD5 hoặc SHA1() hoặc bằng bất kì một hàm băm nào khác sẽ làm cho người khác khó có thể biết được mật khẩu của bạn Khi tạo mật khẩu không nênchọn mật khẩu quá đơn giản, tốt nhất nên kết hợp giữa các chữ cái và số, có thể có phân biệt chữ hoa, chữ thường để tạo mật khẩu, như vậy sẽ làm cho người khác khó đoán được mật khẩu của bạn hơn
3 Tường lửa
Khi nói đến tường lửa có thể làm cho nhiều người cảm thấy ngại, nhưng đây là cách bảo vệ thiết yếu khi kết nối Internet Tường lửa sẽ giúp bạn che giấu những dấuvết mà có thể bị kẻ địch lợi dụng để tấn công Do vậy, nên cài tường lửa và chắc chắn đặt MySQL phía sau tường lửa đó để được bảo vệ
4 Truyền dữ liệu
Trang 31Không nên truyền dữ liệu bản rõ qua Internet, bỡi vì bất kì ai đó có thời gian vàbiết cách sẽ có thể chặn việc truyền dữ liệu và dùng chúng cho mục đích riêng của
họ Các giao thức như SSL hay SSH sẽ là cách bảo vệ đáng kể cho việc truyền dữliệu thông qua Internet Phiên bản MySQL 4.0.0 đã bắt đầu hỗ trợ kết nối SSL SSHport-forwarding có thể được dùng để tạo và mã hóa các đường ống kết nối
5 Dữ liệu từ Form trên Website
Dữ liệu do người dùng nhập từ website có thể tiềm ẩn nhiều nguy cơ Một trongnhững lỗ hổng mà các nhà phát triển non kinh nghiệm thường hay mắc phải là SQLInjection Ví dụ, nếu ứng dụng truy vấn dạng :
SELECT * FROM tblname WHERE ID=456
Trong đó số 456 là dữ liệu do người dùng nhập vào Thoạt nhìn câu truy vấn trên
có vẻ hợp lí và không có vấn đề gì đáng nói Tuy nhiên nếu người dùng nhập vào
“456 OR 1=1” thì câu truy vấn sẽ trở thành:
SELECT * FROM tblname WHERE ID=456 OR 1=1
Và kết quả trả về tất cả các bản ghi trong bảng Hơn nữa lỗ hổng này có thể làmcho server bị quá tải, có thể làm treo hoặc làm chậm server rất nhiều Để khắc phục
lỗ hổng này, ta dùng dấu nháy đơn bao quanh dữ liệu Và câu truy vấn an toàn sẽnhư sau:
SELECT * FROM tblname WHERE ‘ID=456’
Khi bao giá trị bằng dấu nháy đơn làm cho ta có cảm giác như tất cả các dữ liệu
số cũng trở thàn chuỗi Nếu trường dữ liệu có kiểu là số, MySQL sẽ tự động chuyểnchuỗi này thành số và loại bỏ tất cả các phần không phải là kểu số từ chuỗi này
II.4 Tổng quan Symfony Framework
II.4.1 Sơ lược về symfony
Framework được phát triển nhằm tự động hóa nhiều công việc và cung cấp nhiềumẫu cũng như các công cụ nền tảng để xây dựng các ứng dụng Frame work ngoài
ra còn cung cấp các mẫu để lập trình, hỗ trợ cho việc lập trình tốt hơn, mã nguồn dễđọc và duy trì hơn Sau cùng, framework làm cho việc lập trình dễ dàng hơn bằngviệc cung cấp các gói thao tác phức tạp trong các đoạn lệnh đơn giản
Symfony là một framework hoàn thiện được thiết kế để tối ưu hóa việc phát triểncác ứng dụng web Đầu tiên, nó phân chia ứng dụng web thành các quy tắc nghiệp
vụ, logic server và trình diễn dữ liệu Symfony chứa hàng loạt các công cụ và cáclớp để giảm thời gian phát triển các ứng dụng web phức tạp Hơn nữa, symfony sẽ
tự động hóa nhiều tác vụ thông thường do vậy làm cho các nhà phát triển có thể tậptrung tòan bộ vào những đặc trưng của ứng dụng
Symfony được viết bằng PHP5 và đã được kiểm tra qua nhiều dự án thực tế vàthực thế được dùng trong các website thương mại điện tử phức tạp Symfony tươngthích với hầu hết các hệ quản trị cơ sở dữ liệu bao gồm MySQL, PostgreSQL,Oracle và MS SQL Server Symfony chạy trên nên *nix và Windows
Trang 32II.4.2 Các đặc điểm của symfony
Symfony được tích hợp các tính năng nhằm đáp ứng đầy đủ các yêu cầu sau:
Dễ dàng cài đặt và cấu hình trên các platform phổ biến nhất (Làm việc tốt trênnền *nix chuẩn và Windows)
Độc lập với engine cơ sở dữ liệu
Dễ dùng trong hầu hết các trường hợp nhưng cũng đủ mềm dẻo để tương thíchvới các trường hợp phức tạp
Được xây dựng dựa trên những tiền đề về các qui ước cấu hình- người pháttriển chỉ cần cấu hình những phần không theo qui ước
Tuân thủ các mẫu thiết kế web tốt nhất
Phù hợp và với các qui định và kiến trúc hiện hành của công nghệ thông tin, đủvững vàng cho các ứng dụng dại hạng
Mã nguồn dễ đọc, với chú thích phpDocumentor, do vậy dễ duy trì
Dế dàng mở rộng, cho phép tích hợp các thư viện khác vào framework
II.4.3 Propel
ORM (Object- Ralational mapping) – Ánh xạ quan hệ- đối tượng
CSDL là các quan hệ PHP 5 và symfony đều hướng đối tượng Để truy cập vào
cơ sở dữ liệu quan hệ bằng cách hướng đối tượng, cần phải có giao diện để chuyển
từ logic đối tượng sang logic quan hệ Giao diện này được gọi là ánh xạ quan đối tượng (ORM)
hệ-ORM sẽ làm cho đối tượng vừa có thể truy cập dữ liệu, vừa chứa các qui tắcnghiệp vụ
Khi xây dựng được ORM tốt, trong quá trình phát triển ứng dụng, ta hoàn toàntrong suốt với cú pháp các câu truy vấn để truy cập vào CSDL ORM sẽ tự độngdịch các lời gọi hàm từ đối tượng sang các câu SQL một cách tối ưu cho CSDLđược dùng Điều này có nghĩa là việc chuyển đổi hệ thống từ việc dùng CSDL nàysang dùng CSDL khác khá dễ dàng Giả sử ta phải viết mổt giao thức ngắn choứng dụng nhưng khách hàng chưa quyết định là sẽ dùng hệ thống CSDL gì Ta cóthể bắt đầu xây dựng ứng dụng ví dụ với SQLite, và sau đó sẽ chuyển sangMySQL, PostgreSQL hay Oracle khi có quyết định của khách hàng Chỉ cần thayđổi cấu hình cho ứng dụng và nó sẽ làm việc bình thường
Tầng trừu tượng hóa sẽ đóng gói dữ liệu Phần còn lại của ứng dụng không cần biết về câu truy vấn SQL Khi lập trình chúng ta sẽ có điều kiện để tập trung vào các qui tắc nghiệp vụ nhiều hơn
Trang 33CHƯƠNG III: Phân Tích Thiết Kệ Hệ Thống ECMS
III.1 Tổng quan về ECMS
III.1.1 Các tiêu chí đặt ra đối với ECMS
Hệ quản trị nội dung ECMS phải thể hiện đầy đủ được 3 giai đoạn: Thu nhập và
soạn thảo nội dung (Content Creation), Quản lý nội dung (Content Management), Xuất bản nội dung (Content Delivery)
Hệ quản trị nội dung cần thiết hỗ trợ cơ chế thu nhập – lọc thông tin từ nhiều
nguồn thông tin khác nhau Trên thế giới, các website tin tức đều có chức năng xuất
bản tin theo chuẩn RDF/RSS (Dublin Core) do đó đây là nguồn thông tin rất quan
trọng và cần thiết Ngoài ra, hệ quản trị cần cung cấp các công cụ chuyển đổi dữ liệu
từ nhiều dạng khác nhau về định dạng chuẩn mà ECMS quy định
Hệ quản trị nội dung cung cấp công cụ soạn thảo trực quan (WYSIWYG) Công
cụ hỗ trợ người dùng soạn thảo nội dung nhanh chóng và trực quan
Quy trình xử lý thông tin (workflow) mềm dẻo, linh hoạt phù hợp với nhiều yêu
cầu cụ thể Người dùng có thể tùy biến số bước thực hiện của quy trình xử lý thông
tin, phân quyền thực hiện trên từng thư mục, từng nhóm người dùng…
Đặt lịch hiển thị và không hiển thị nội dung ra website Một nội dung có thời gian
hiển thị ra ngoài trang web cho người đọc và sau đó nội dung sẽ hết thời gian hiển thị (expiration)
Hỗ trợ nhiều ngôn ngữ và định dạng (Localization) Nội dung sẽ được hiển thị
theo nhiều ngôn ngữ và định dạng phù hợp với vùng, lãnh thổ theo đúng tiêu chuẩn quốc tế
Hệ thống phải được triển khai dễ dàng trên nhiều nền tảng khác nhau (multi – platform) Tức là hệ thống cài đặt và vận hành tốt trên nhiều hệ điều hành khác nhau như: Windows, Unix/Linux,… Điều này làm tăng tính khả chuyển của hệ thống
Hệ thống hỗ trợ nhiều hệ quản trị cơ sở dữ liệu Tùy theo từng yêu cầu cụ thể, hệ thống phải chuyển đổi tốt giữa các hệ quản trị cơ sở dữ liệu khác nhau như: Oracle,
III.1.2 Vấn đề bảo mật của ECMS
Bảo mật trong MySQL được xây dựng dựa trên Danh sách điều khiển truy cập (Access Control List- ACL) cho tất cả các kết nối, truy vấn và nhiều hoạt động khác
mà người dùng có thể thực hiện Nghĩa là những người dùng khác nhau sẽ có nhiều mức độ truy cập khác nhau đến CSDL và các bảng và họ sẽ bị giới hạn chỉ để thực hiện được các thao tác trong phạm vi quyền hạn của họ Ví dụ: người dùng với đầy đủquyền có thể thực hiện các thao tác như: SELECT, DELETE, UPDATE và INSERT,
Trang 34trong khi một người dùng bị giới hạn quyền chỉ có thể thực hiện được thao tác
SELECT
6 Tài khoản root
Mặc định với user là root trong MySQL, mật khẩu được bỏ trống Do vậy, ta cầnđặt lại mật khẩu cho user này để trành trường hợp bị kẻ địch tấn công bằng tài khoảnroot (Với đầy đủ các đặc quyền)
7 Mật khẩu
Khi lưu mật khẩu vào CSDL không nên lưu dưới dạng bản rõ Nếu hệ thống có lỗi xảy ra, người khác sẽ có được mật khẩu và như vậy sẽ rất nguy hiểm Mã hóa mật khẩu với MD5 hoặc SHA1() hoặc bằng bất kì một hàm băm nào khác sẽ làm cho người khác khó có thể biết được mật khẩu của bạn Khi tạo mật khẩu không nênchọn mật khẩu quá đơn giản, tốt nhất nên kết hợp giữa các chữ cái và số, có thể có phân biệt chữ hoa, chữ thường để tạo mật khẩu, như vậy sẽ làm cho người khác khó đoán được mật khẩu của bạn hơn
8 Tường lửa
Khi nói đến tường lửa có thể làm cho nhiều người cảm thấy ngại, nhưng đây là cách bảo vệ thiết yếu khi kết nối Internet Tường lửa sẽ giúp bạn che giấu những dấuvết mà có thể bị kẻ địch lợi dụng để tấn công Do vậy, nên cài tường lửa và chắc chắn đặt MySQL phía sau tường lửa đó để được bảo vệ
10 Dữ liệu từ Form trên Website
Dữ liệu do người dùng nhập từ website có thể tiềm ẩn nhiều nguy cơ Một trong những lỗ hổng mà các nhà phát triển non kinh nghiệm thường hay mắc phải là SQL Injection Ví dụ, nếu ứng dụng truy vấn dạng :
SELECT * FROM tblname WHERE ID=456Trong đó số 456 là dữ liệu do người dùng nhập vào Thoạt nhìn câu truy vấn trên
có vẻ hợp lí và không có vấn đề gì đáng nói Tuy nhiên nếu người dùng nhập vào
“456 OR 1=1” thì câu truy vấn sẽ trở thành:
SELECT * FROM tblname WHERE ID=456 OR 1=1
Và kết quả trả về tất cả các bản ghi trong bảng Hơn nữa lỗ hổng này có thể làm cho server bị quá tải, có thể làm treo hoặc làm chậm server rất nhiều Để khắc phục
lỗ hổng này, ta dùng dấu nháy đơn bao quanh dữ liệu Và câu truy vấn an toàn sẽ như sau:
SELECT * FROM tblname WHERE ‘ID=456’
Trang 35Khi bao giá trị bằng dấu nháy đơn làm cho ta có cảm giác như tất cả các dữ liệu
số cũng trở thàn chuỗi Nếu trường dữ liệu có kiểu là số, MySQL sẽ tự động chuyển chuỗi này thành số và loại bỏ tất cả các phần không phải là kểu số từ chuỗi này
III.2 Thiết kế ECMS
III.2.1 Mô hình các tình huống sử dụng tổng quan
III.2.2 Danh sách các vai trò nghiệp vụ
Trang 37III.2.2.a Vai trò ACT01 – User
Tên: User – Người dùng hệ thống
Mô tả: User đại diện cho những người dùng của hệ thống.
Đó có thể là: khách duyệt web,người quản trị website, những người thuộc ban biên tập tin.
Đặc tính User có thể tác động đến toàn bộ hệ thống như:
đăng nhập hệ thống, duyệt thông tin đầu ra của hệ thống (website publication)
Mối liên
hệ
Mô hình
III.2.2.b Vai trò ACT02 – Administrator
Tên: Administrator – Quản trị hệ thống
Mô tả: Administrator đại diện cho những người dùng có quyền
III.2.2.c Vai trò ACT03 – System user
Tên: System User – Người dùng hệ thống
Mô tả: System User là những người dùng sử dụng các chức
năng nghiệp vụ của hệ thống System User phải đăng nhập trước khi sử dụng hệ thống
Đặc tính System User sử dụng các chức năng nghiệp vụ của
hệ thống như: tạo bài viết mới, publish một bài viết lên website
Mối liên
hệ
Mô hình
Trang 38III.2.2.d Vai trò của ACT04 – Author
Tên: Author – Người tạo ra các bài viết
Mô tả: Author là những người dùng có chức năng tạo ra các
bài viết của hệ thống.
Đặc tính Author tác động đến các module của hệ thống và tạo
ra các bài viết mới Author không có quyền thay đổi các thông số của hệ thống Author phải đăng nhập trước khi sử dụng hệ thống.
Mối liên
hệ
Mô hình
III.2.2.e Vai trò của ACT05 – Editor
Tên: Editor – Người chỉnh sửa các bài viết
Mô tả: Editor là một người dùng hệ thống nhưng chỉ có quyền
duyệt, chỉnh sửa các bài viết mà Author đã tạo ra
Đặc tính Editor tác động đến các module của hệ thống để
hiển thị, chỉnh sửa bài viết, ngoài ra không có quyền thay đổi thông số hệ thống, xuất bản bài viết Editor phải đăng nhập trước khi sử dụng hệ thống.
Mối liên
hệ
Mô hình
III.2.2.f Vai trò của ACT06 – Publisher
Tên: Publisher – Người duyệt và xuất bản bài viết
Mô tả: Publisher là người dùng hệ thống có quyền xuất bản
bài viết.
Đặc tính Publisher tác động đến các module có chức hiển thị,
chỉnh sửa bài viết, xuất bản bài viết Publisher phải đăng nhập hệ thống.
Trang 39III.2.3.a UC1 Quản lý Group(Group Management)
UC1.1 create/edit group
Trang 40Điều kiện bắt đầu:
Administrator yêu cầu tạo ra một group mới hoặc yêu cầu sửa group đã có
Thông tin đầu vào:
Thông tin đầu vào bao gồm: tên nhóm, mô tả nhóm, trạng thái, các module,
permission, workflow mà group có quyền tác động
Thông tin đầu ra:
Trong hệ thống xuất hiện nhóm mới hoặc cập nhật lại thông tin của nhóm cũ(trong trường hợp edit)
Include Use cases
List groups, List permission, List module và List workflow
Các yêu cầu phi chức năng