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

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

119 748 4
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 119
Dung lượng 6,2 MB

Nội dung

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 1

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

Giáo viên hướng dẫn : TS. PHẠM HUY HOÀNG

Trang 2

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ờ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 3

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ệ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 4

Nhận xét của giáo viên hướng dẫn:

Trang 5

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 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 6

III.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 8

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ú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 9

quá 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 10

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ô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 11

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ạ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 12

nộ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 13

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ộ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 15

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 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 16

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à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 17

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ộ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 19

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á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 20

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â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 21

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

PERSONALIZATION

PUBLICATION PROCESSOR

CORE COLLECTING MANAGEMENT PUBLISHING

PLUGIN MODULE

Trang 22

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ừ 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 23

thick 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 24

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à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 25

thị 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 26

nhậ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 27

trang 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 28

Vì 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 29

MySQL 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 30

MySQL 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 31

Khô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 32

II.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 33

CHƯƠ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 34

trong 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 35

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ể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 37

III.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 38

III.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 39

III.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

Ngày đăng: 21/11/2012, 09:56

HÌNH ẢNH LIÊN QUAN

b. Web động (Dynamic Web) - Xây dựng hệ thống quản lý nội dung ECMS
b. Web động (Dynamic Web) (Trang 10)
Webtĩ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 - Xây dựng hệ thống quản lý nội dung ECMS
ebt ĩ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 (Trang 10)
Mô hình: - Xây dựng hệ thống quản lý nội dung ECMS
h ình: (Trang 22)
III.2.1. Mô hình các tình huống sử dụng tổng quan - Xây dựng hệ thống quản lý nội dung ECMS
2.1. Mô hình các tình huống sử dụng tổng quan (Trang 35)
Mô hình - Xây dựng hệ thống quản lý nội dung ECMS
h ình (Trang 37)
Mô hình - Xây dựng hệ thống quản lý nội dung ECMS
h ình (Trang 38)
Hiển thị kết quả là màn hình phù hợp với Administrator. - Xây dựng hệ thống quản lý nội dung ECMS
i ển thị kết quả là màn hình phù hợp với Administrator (Trang 112)
Hiển thị màn hình đăng nhập. - Xây dựng hệ thống quản lý nội dung ECMS
i ển thị màn hình đăng nhập (Trang 113)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w