TỔNG QUAN VỀ CMS
Dữ liệu(data), thông tin(information) và nội dung(content)
Máy vi tính được tạo ra để chạy dữ liệu Dữ liệu bao gồm những mẩu thông tin, các con số, từ, hình ảnh, âm thanh - những thứ có ý nghĩa với người dùng khi được xử lý và chiết xuất Ngày nay con người thực hiện trên máy tính để chạy nội dung Cũng giống như dữ liệu, nhưng nội dung còn bao gồm cả thông tin và nó chứa đựng tính người và hoàn cảnh.
Từ “thông tin” bao gồm nhiều ý nghĩa Từ “thông tin” có thể dùng để chỉ những dạng thức thông thường của giao tiếp đã được ghi lại, bao gồm như sau:
Dạng văn bản như là bài báo, sách, và bản tin.
Dạng âm thanh như là: âm nhạc, hội thoại, và đọc …
Dạng chuyển động như video và hoạt hình
Các file máy tính như bảng tính, hoặc các tệp tin (file) định dạng khác mà bạn muốn tìm và sử dụng.
Ta có thể bổ sung định nghĩa về thông tin như sau: “Thông tin là những gì con người chuyển tải từ những kiến thức của họ khi họ muốn giao tiếp với những người khác Kiến thức đã được cụ thể để nhìn thấy, nghe thấy bằng cách viết ra in ra hoặc trong bài phát biểu.”
Trên quan điểm của người sử dụng, thông tin là những gì chúng ta tìm kiếm và chú ý trong thế giới khi chúng ta cần để bổ sung hoặc làm phong phú kiến thức của chúng ta để mà chúng ta có thể sử dụng nó Và khi chúng ta tìm thấy nó chúng ta sẽ chuyển nó thành dạng kiến thức Việc vận chuyển kiến thức vào thông tin là một khối công việc Để có được một mẩu thông tin cho bạn có người đã phải làm rất nhiều việc Người đó đã định hình ý tưởng về một khái niệm để trao đổi và sự sáng tạo trong khi sử dụng và khả năng lập luận với những từ kỹ năng, âm thanh hay hình ảnh để phù hợp với khái niệm Sau đó sẽ ghi lại thông tin theo một cách có thể Tác giả của thông tin đã đặt rất nhiều tính cá nhân và ngữ cảnh vào trong thông tin trước khi ai đó nhìn thấy mẩu thông tin đó Vì vậy không giống như dữ liệu, thông tin không xuất hiện một cách tự nhiên trong một lượng nhất định, với cùng một cấu trúc và diễn ra theo cùng một cách.
Nội dung là sự kết hợp giữa những dữ liệu hữu ích và thông tin phong phú Nội dung là sự đóng gói những thông tin đa dạng trong dữ liệu giản đơn Dữ liệu bao quanh thông tin là một phiên bản đã được giản hoá về ngữ cảnh và ý nghĩa của thông tin.
Quản lý nội dung(CM)
1.2.1 Vì sao cần quản lý nội dung?
Quản lý nội dung là liều thuốc hữu hiệu cho sự bùng nổ thông tin hiện nay: Các website đang vượt ra khỏi tầm kiểm soát và chúng ta đang mong đợi để thu thập được những thông tin tốt từ những nguồn tin ngày càng rộng lớn, và chúng ta cũng được trông mong để có thể tạo ra những thông tin có khả năng tái sử dụng toàn bộ để bất cứ ai bất kì lúc nào cũng có thể xây dựng Quản lý nội dung giúp bạn tổ chức và quản lý trực tiếp thông tin của bạn trong tầm tay.
Quản lý nội dung cung cấp chìa khóa cho những câu hỏi không có lời đáp về độ tuổi của thông tin: "Làm thế nào mà thông tin có thể đưa ra những giá trị và bản chất dặc trưng của nó?" hệ thống Quản lý nội dung tạo ra và quản lý nội dung đồng thời gắn chúng với tất cả những thông tin mà bạn có thể cần để chỉ ra chúng có giá trị thế nào
1.2.2 Quản lý nội dung là gì?
Một trong những câu hỏi khiến tôi lúng túng nhất chính là: Quản lý nội dung là gì? Nhiều người xem quản lý nội dung như là công nghệ và trên thực tế nó chính là công nghệ, nhưng còn hơn cả công nghệ Mọi người sử dụng công nghệ và đã khiến cho quản lý nội dung xuất hiện Quản lý nội dung bao gồm cả 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 chương trình quản lý nội dung thành công thì không đơn thuần chỉ là lựa chọn và áp dụng các công nghệ hiệu quả, mà nó là thay đổi cách mọi người làm việc.
Nhiều người cho rằng quản lý nội dung cũng giống như quản lý nội dung trang Web- và nó cũng chính là về quản lý nội dung Web nhưng nội dung Web chỉ là một trong các dạng thông tin mà bạn cần quản lý Hầu hết các tổ chức đều cần quản lý cả giấy tờ và Web và họ cũng thường quản lý nội dung chung giữa các vật trung gian Đôi khi việc này được xem như quản lý nội dung táo bạo.
Thông thường quản lý nội dung chỉ được hiểu như là quản lý về nội dung nhưng quản lý nội dung hiệu quả bắt đầu từ việc soạn thảo và kết thúc là vận chuyển Bạn cần phải soạn thảo nội dung một cách hiệu quả để có thể lưu trữ, khôi phục và tái sử dụng. Nếu bạn không dành thời gian để xây dựng cấu trúc nội dung thì bạn sẽ không thể thấy được lợi ích đầy đủ của hệ thống quản lý nội dung và các phương pháp Việc đảm bảo thông tin được vận chuyển trong một dạng thức cụ thể có lợi cho người sử dụng cũng rất hiệu quả.
Vậy quản lý nội dung là gì? “Quản lý nội dung hiệu quả là một phương pháp nhằm xác định tất cả các yêu cầu nội dung, tạo ra những nội dung có cấu trúc ổn định để tái sử dụng, quản lý nội dung đó trong một nguồn xác định và thu thập nội dung đáp ứng cho nhu cầu người sử dụng” (Ann Rockey).
1.2.3 Quản lý nội dung theo quan điểm tiến trình
Nếu nhìn theo quan điểm tiến trình, CM là một tiến trình bao gồm thu thập, quản lý và xuất bản nội dung.
Thu thập (Collecting): Bạn có thể tạo hoặc có được thông tin từ các nguồn khác nhau Tùy thuộc vào nguồn mà có thể hoặc không cần phải chuyển thông tin về định dạng hợp lý phù hợp với phương thức lưu trữ của bạn Cuối cùng là việc tập hợp các thông tin này vào hệ thống bằng việc soạn thảo, phân chia hoặc thêm vào các metadata hợp lý.
Quản lý (Management): Tạo ra kho lưu trữ, có thể là CSDL hoặc/ và các file chứa nội dung và quản lý kho nội dung đó.
Xuất bản: (Publishing): Xuất bản nội dung cho người dùng bằng cách chiết xuất các thành phần từ kho lưu trữ và tổ chức lại để phù hợp với cách xuất bản nhưWebsite, các tài liệu để in hoặc các bản tin gửi cho khách hàng.
Các thành phần chính của Hệ thống quản trị nội dung (CMS) 10
Ở mức đầy đủ nhất, CMS chịu trách nhiệm thu thập, quản lý, và xuất bản nội dung Từ đó có thể thấy một CMS bao gồm 3 phần chính: Hệ thống thu thập nội dung (Collection System), Hệ thống quản lý nội dung (Management System), và Hệ thống xuất bản (Pubication System) Mô hình tổng quan của tiến trình này như sau:
Từ trái sang phải, cho thấy làm thế nào để từ thông tin thô trở thành các thành phần nội dung (content component) Hệ thống quản lý sẽ quản lý các thành phần nội dung này.
Hệ thống quản lý sẽ chuyển các thành phần nội dung này thành các ấn phẩm
Về mặt logic, ba hệ thống này có vẻ độc lập với nhau nhưng về mặt vật lý, chúng có những sự xếp chồng lên nhau:
Hệ thống quản lý có thể phục vụ như là một phần của hệ thống thu thập: Trong quá trình thu thập nội dung, ta thường xuyên chuyển nội dung vào kho của hệ thống quản lý để lưu trữ tạm thời trước khi quá trình thu thập hoàn thành.
Hệ thống quản lý có thể phục vụ như một phần của hệ thống xuất bản: Ví dụ kho lưu trữ thường đặt trên site do CMS tạo ra và ta không dễ dàng gì tách biệt nó với hệ thống xuất bản site.
Hệ thống xuất bản có thể phục vụ như một phần của hệ thống thu thập: Trong hệ thống thu thập dạng Web, tác giả sẽ nhập nội dung dạng Web Nội dung này được lưu trữ trong kho Sau đó, hệ thống xuất bản có thể xuất bản nội dung dưới dạng nào đó mà hệ thống thu thập có thể sử dụng.
Hệ thống thu thập chịu trách nhiệm tất cả các tiến trình trước khi nội dung được sẵn sàng cho việc xuất bản Nó chuyển thông tin thô thành các thành phần nội dung được tổ chức dưới các định dạng phù hợp với ứng dụng Web Hình dưới đây cho thấy cái nhìn tổng quan các quá trình từ việc soạn thảo, chuyển đổi, kết hợp mà hệ thống thu thập cung cấp.
Các tiến trình này bao gồm:
Soạn thảo (Authoring): Tạo nội dung từ các nguồn bất kì.
Tìm kiếm nội dung (Acquisition): Lấy nội dung từ một số nguồn có sẵn.
Chuyển đổi (Conversion): Loại bỏ các thông tin không cần thiết khỏi nội dung và chuyển đổi chúng thành các ngôn ngữ đánh dấu.
Kết tập (Aggregation): Soạn thảo nội dung, thêm một số thành phần phù hợp với metadata.
Dịch vụ thu thập (Collection services): Chương trình CMS và các chức năng hỗ trợ cho các tiến trình thu thập Ví dụ như đưa ra định dạng Web để người dùng nhập nội dung.
1 Soạn thảo: Ở đây ta nói đến quá trình tạo ra nội dung từ các dữ liệu hỗn tạp.
CMS có thể giúp người dùng làm việc một cách hiệu quả bằng cách thực hiện các việc sau:
Cung cấp môi trường soạn thảo.
Cung cấp những chú ý hướng đến khách hàng: Định hướng CMS tạo ra những nội dung phù hợp với khách hàng của hệ thống.
Cung cấp các hỗ trợ để bao gồm các thông tin chuẩn: ví dụ CMS sẽ tự động nhập ngày tạo, người tạo,
Cung cấp các mẫu để người dùng soạn thảo nội dung.
Cung cấp qui trình làm việc, trạng thái và quản lý phiên bản trong quá trình soạn thảo nội dung.
2 Tìm kiếm nội dung: Là quá trình thu thập thông tin đã có cho CMS Những thông tin có thể được thu thập từ một trong các nguồn sau:
Syndication: Là các nguồn được thiết kế cho sử dụng lại Nghĩa là các thông tin đó được nhận từ một số định dạng hữu dụng như XML, và những thông tin tin đó đã được phân đoạn và đính kèm metadata
Found Sources: Là những file được cung cấp từ đâu đấy và ta cần phải xử lý để đưa vào CMS
3 Chuyển đổi nội dung: Những thông tin do bạn tạo ra hoặc thu thập được có thể khôn đúng với định dạng mà hệ thống yêu cầu, do vậy ta cần phải chuyển đổi về định dạng chuẩn Ở đây ta nói đến việc chuyển đổi từ nội dung sau khi đã được soạn thảo chứ không phải chuyển đổi từ dữ liệu thô Quá trình chuyển đổi bao gồm 3 bước logic sau:
Lược bỏ (strip): Lược bỏ những phần thông tin và nội dung không cần thiết như tiêu đề trang,
Định dạng (Format mapping): Chuyển dạng nhị phân của thông tin thành dạng chuẩn mà CMS hỗ trợ.
Cấu trúc (Structure mapping): Làm cho cấu trúc của thông tin trở nên rõ ràng hoặc có thể thay đổi nếu cần thiết.
4 Kết tập: Kết tập là việc mang những thông tin khác nhau vào một cấu trúc thông qua:
Quá trình phân đoạn: Phân thông tin thành các đoạn gọi là thành phần nội dung.
Xử lý meta: Thực hiện đưa thông tin mới vào hệ thống metadata.
5 Các dịch vụ thu thập: Hỗ trợ cho quá trình thu thập nội dung Cung cấp dịch vụ để lấy và lưu tạm nội dung vào kho Dịch vụ này thực hiện các tác vụ sau:
Soạn thảo các compoent trực tiếp vào kho của CMS.
Tải các thành phần đã được tạo trước đó vào kho.
Hệ thống quản lý chịu trách nhiệm lưu trữ lâu dài các thành phần nội dung và các tài nguyên khác Hệ thống quản lý chứa kho lưu trữ, qui trình làm việc và các chức năng quản lý hệ thống Một hệ thống quản lý, nên đảm bảo các khả năng sau:
Cho phép người dùng xem chi tiết nội dung.
Người dùng của hệ thống được sử dụng như thế nào và có những trở ngại gì sẽ đến.
Làm thế nào để dùng các thành phần nội dung cho xuất bản hoặc nội dung nào
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.
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.
Mô hình kiến trúc CMS
Tầng dưới cùng đó là nhân của CMS, bao gồm các module cần thiết để cài đặt và xây dựng các ứng dụng web trên đó.
Tầng giữa thể hiện rất rõ tiến trình của một CMS bao gồm thu thập, lưu trữ và xuất bản nội dung.
Tầng trên cùng là các phần thêm vào để hoàn thiện hơn CMS (hỗ trợ tìm kiếm hoặc vấn đề đa ngôn ngữ…).
GIỚI THIỆU VỀ SYMFONY
Symfony là gì?
Framework, đó là một khái niệm khá trừu tượng, và cũng có khá nhiều định nghĩa về framework:
Một framewwork theo định nghĩa được sử dụng trong nghiên cứu để thể hiện các nguyên nhân có thể dẫn đến các hành động hay để thể hiện một cách tiếp cận ưu tiên đối với một dự án phân tích có hệ thống Framework được xây dựng từ một tập các khái niệm được liên kết với một hệ thống được lên kế hoạch hay đã tồn tại bao gồm các phương thức, thuộc tính, các hàm, các quan hệ và các đối tượng.
Framework cũng có thể được định nghĩa theo một cách khác: đó là một cấu trúc logic để xác định và sắp xếp thông tin một cách hoàn chỉnh
Symfony là một framework tổ chức việc phát triển ứng dụng bằng việc tự động hóa nhiều mẫu được dùng cho một mục đích xác định Nó tạo cấu trúc cho mã, thúc đẩy lập trình viên viết những mã tốt hơn, dễ đọc hơn và dễ bảo trì hơn Cuối cùng, nó làm cho việc lập trình dễ hơn bởi vì nó bao hàm những tác vụ phức tạp trong những câu lệnh đơn giản.
Symfony là một framework đầy đủ được thiết kế để tối ưu việc phát triển ứng dụng web bằng một vài đặc điểm chính Với những người mới bắt đầu, nó phân chia những qui tắc nghiệp vụ, server logic và phần hiển thị của ứng dụng web Nó có những công cụ và lớp để thu ngắn thời gian phát triển của những ứng dụng web phức tạp Thêm vào đó, nó tự động hóa những công việc thông thường để lập trình viên có thể tập trung hoàn toàn vào những đặc điểm của ứng dụng Kết quả cuối cùng của những điểm lợi này là không cần phải lặp lại mỗi lần tạo ứng dụng web!
Symfony được viết hoàn toàn bằng PHP 5 Nó đã được kiểm tra một cách hoàn hảo trong nhiều dự án thực tế khác nhau và thực sự được dùng cho những website kinh doanh điện tử có yêu cầu cao Nó tương thích với hầu hết các loại cơ sở dữ liệu, bao gồm MySQL, PostgreSQL, Oracle, và Microsoft SQL Server Nó chạy trên hệ điều hành *nix(Linux và Unix) và Windows.
Tìm hiểu về Symfony
2.2.1 Những khái niệm cơ bản
Trước khi bạn bắt đầu với symfony, ta hãy cùng tìm hiểu một vài khái niệm cơ bản:
PHP (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 kịch bản (script), chạy trên server (Window, Linux 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 thường Vì việc dịch và thực thi các lệnh php được thực hiện ở phía server nên các 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àoHTML 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 PHP5 đ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á.
PHP5 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ịch thà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 PHP5 sử dùng con trỏ hàm và bảng băm để chứa con trỏ hàm
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.
Cơ sở dữ liệu có tính chất quan hệ PHP 5 và symfony có tính hướng đối tượng Để truy xuất vào cơ sở dữ liệu theo cách hướng đối tượng, cần phải có một giao diện chuyển đổi logic đối tượng sang logic quan hệ Giao diện này gọi là sự ánh xạ đối tượng có tính quan hệ (object-relational mapping) hay ORM.
Một ORM được tạo từ những đối tượng cho phép truy xuất vào dữ liệu và giữ các qui tắc nghiệp vụ bên trong nó.
Một lợi ích của lớp trừu tượng đối tượng có tính quan hệ là nó ngăn bạn sử dụng cú pháp đặc trưng cho một cơ sở dữ liệu Nó tự động chuyển đổi những lời gọi đối tượng mô hình (model object) thành những câu SQL tối ưu cho cơ sở dữ liệu hiện tại. Điều này đồng nghĩa với việc chuyển đổi sang hệ cơ sở dữ liệu khác khi đã đi một nửa dự án trở nên dễ dàng Hãy tưởng tượng rằng bạn đang viết một phiên bản mẫu cho một ứng dụng nhưng khách hàng chưa quyết định hệ cơ sở dữ liệu nào phù hợp với yêu cầu của họ Bạn có thể bắt đầu ứng dụng của bạn với SQLite chẳng hạn, và chuyển đổi sang MySQL, PostgreSQL hay Oracle khi nào khách hàng có quyết định Chỉ cần thay đổi một dòng trong file cấu hình và mọi thứ vẫn hoạt động.
Propel, một dự án nguồn mở khác, hiện là một trong những lớp trừu tượng đối tượng có tính quan hệ tốt nhất cho PHP 5 Symfony tích hợp Propel một cách mặc định vào framework, vì vậy hầu hết các thao tác dữ liệu trong Symfony được tuân theo cú pháp của Propel
2.2.1.3 YAML (YAML Ain't a Markup Language)
YAML là "1 định dạng tuần tự dữ liệu có thể phân tích bằng máy đơn giản được thiết kế để con người có thể đọc và tương tác với những ngôn ngữ kịch bản" Nói cách khác, YAML là ngôn ngữ rất đơn giản được dùng để mô tả dữ liệu theo kiểu tựa XML nhưng với cú pháp đơn giản hơn Nó đặc biệt hữu dụng để mô tả dữ liệu có thể được chuyển sang các mảng hoặc hash (bảng băm), giống như sau:
$person = array(‘name’ => ‘hung’, ‘age’ => 24, ‘city’ => ‘Hanoi’);
Mảng PHP này có thể tự động được tạo bằng cách phân tích chuỗi YAML sau:
Trong YML, cấu trúc được thể hiện thông qua sự thụt vào, các item liên tục được biểu thị bằng dấu gạch ngang, và các cặp khóa/giá trị trong một ánh xạ được phân chia bởi dấu hai chấm YAML cũng cung cấp một cú pháp tốc ký để mô tả cấu trúc tương tự với ít dòng hơn, đó là mảng được thể hiện trong cặp dấu [] và bảng băm trong cặp dấu {}
Bạn có thể thấy, viết bằng YAML sẽ nhanh hơn XML (không cần thêm các thẻ đóng hoặc dấu bao chuỗi), và mạnh hơn những file ini (không hỗ trợ phân cấp) Đó là lý do tại sao symfony sử dụng YAML như là một ngôn ngữ ưu tiên để lưu trữ thông tin cấu hình.
2.2.2 Những đặc điểm của Symfony
Symfony được xây dựng để thực hiện các yêu cầu sau:
Dễ cài đặt và cấu hình trên hầu hết các hệ điều hành (và được bảo đảm làm việc trên các hệ điều hành chuẩn *nix(Linux và Unix) và Windows)
Độc lập với hệ cơ sở dữ liệu
Dễ dùng trong hầu hết các trường hợp nhưng vẫn đủ mềm dẻo để thích nghi với những trường hợp phức tạp
Hoạt động theo cấu hình định trước - lập trình viên chỉ cần cấu hình trong những trường hợp riêng biệt không theo quy ước.
Tuân theo những hoạt động và mẫu thiết kế tốt nhất
Sẵn sàng cho môi trường xí nghiệp - thích nghi với những chính sách và kiến trúc công nghệ thông tin và đủ ổn định cho những dự án dài hạn
Mã rất dễ đọc, với những chú thích kiểu phpDocumentor, dễ dàng bảo trì
Dễ dàng mở rộng, cho phép tích hợp với những thư viện khác
2.2.3 Những tính năng dự án web được tự động
Hầu hết các chức năng thông thường của những dự án web được tự động trong symfony, như sau:
Lớp ngôn ngữ có sẵn cho phép phiên dịch giao diện, dữ liệu cũng như là những nội dung đa ngôn ngữ
Phần trình diễn sử dụng template và layout có thể được xây dựng bởi người thiết kế HTML mà không cần có kiến thức về framework Các helper làm giảm số lượng mã trình diễn phải viết bằng cách tóm gọn các phần của mã vào những hàm đơn giản
Các form hỗ trợ kiểm tra và điền tự động, và điều này đảm bảo chất lượng tốt của dữ liệu trong cơ sở dữ liệu và kinh nghiệm người sử dụng tốt hơn
Việc đưa thông tin ra ngaoì bảo vệ các ứng dụng khỏi những tấn công thông qua dữ liệu bị hỏng
Những tính năng quản lý cache giúp giảm lượng băng thông và tải của máy chủ
Những tính năng phân quyền và xác nhận giúp việc tạo các quản lý những mục hạn chế và bảo mật người dùng dễ dàng hơn
Việc định hướng và các URL thông minh làm cho phần địa chỉ của các trang trở nên thân thiện với máy tìm kiếm
Các tính năng quản lý API và email sẵn có cho phép ứng dụng web vượt qua những tương tác trình duyệt cổ điển
Các danh sách trở nên thân thiện với người dùng hơn nhờ việc phân trang, sắp xếp và tìm kiếm 1 cách tự động
Các phần hỗ trợ (plugins) cung cấp khả năng mở rộng ở mức cao
Các tương tác AJAX dễ hiện thực nhờ vào các helper một dòng tóm lượt những hiệu ứng javascript tương thích với các trình duyệt
2.2.4 Mô hình MVC trong Symfony
Symfony được dựa trên mô hình thiết kế web cơ bản là kiến trúc MVC, bao gồm 3 mức:
Model : Model biểu diễn dữ liệu của ứng dụng và chứa các xử lý logic để truy cập và thao tác với dữ liệu Bất kì một dữ liệu nào mang tính chất lâu dài của ứng dụng đều phải nằm trong đối tượng model Như vậy, model phải đủ khả năng để hỗ trợ hàng loạt client Làm thế nào đó để khi lướt qua danh sách các hàm public của model, ta có thể dễ dàng hiểu được làm thế nào để điều khiển các hành vi của model Một model sẽ nhóm các dữ liệu và hành vi liên quan thành một dịch vụ cụ thể Các nhóm này sẽ bao bọc và trứu trượng các xử lý nghiệp vụ Giao diện của model sẽ thể hiện các phương thức để truy cập và cập 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ói trong model Model sẽ thông báo với view khi có sự thay đổi trạng thái trong model
PHÂN TÍCH THIẾT KẾ SCMS
Tổng quan về SCMS
3.1.1 Các tiêu chí đặt ra đối với SCMS
Hệ quản trị nội dung SCMS phải thể hiện được đủ 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à SCMS 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, MS SQL Server, DB2, MySQL…
Mô hình thiết kế có tính mở cao, dễ dàng tích hợp, mở rộng các module trong tương lai.
Giao diện thân thiện, các menu chức năng tổ chức, sắp xếp hợp lý phù hợp với người dùng ở nhiều trình độ tin học khác nhau.
3.1.2 Vấn đề bảo mật của SCMS
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, 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.
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ản root (Với đầy đủ các đặc quyền).
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ớiMD5 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ên chọ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.
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ấu vế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ệ
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.
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 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 IDE6
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 IDE6 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 ‘IDE6’
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
Thiết kế SCMS
3.2.1 Mô hình các tình huống sử dụng tổng quan
3.2.2 Danh sách các vai trò nghiệp vụ
ACT02 Administrator ACT03 System 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)
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 quản trị hệ thống Đặc tính Administrator tác động đến các chức năng có thể điều chỉnh thay đổi hệ thống như: cấu hình hệ thống, đăng nhập, tạo nhóm người dùng
3.2.2.3 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
3.2.2.4 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.
3.2.2.5 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.
3.2.2.6 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.
3.2.3 Biểu đồ trường hợp sử dụng(UserCase Diagram)
3.2.3.1 UC1 Quản lý Group(Group Management)
Administrator thêm mới một nhóm hoặc sửa thông tin một nhóm đã có.
Administrator yêu cầu tạo ra một group mới hoặc yêu cầu sửa group đã có.
1 Administrator nhập thông tin mới cho nhóm: Tên nhóm, Mô tả nhóm, Trạng thái (active/deactive).
2 Hệ thống tạo ra một nhóm mới.
Hệ thống tạo ra một nhóm mới hoặc cập nhật lại thông tin của nhóm cũ, với những thông tin do người dùng nhập 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.
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).
List groups, List permission, List module và List workflow
3.2.3.1.1.10Các yêu cầu phi chức năng
Administrator liệt kê các nhóm có trong database tùy theo yêu cầu lọc(filter) cụ thể.
Administrator yêu cầu liệt kê các nhóm (có thể bao gồm các điều kiện lọc).
Administrator chọn điều kiện lọc cụ thể.
Hệ thống thực hiện lọc dữ liệu, hiển thị danh sách các nhóm thỏa mãn điều kiện đã chọn.
Hệ thống hiển thị danh sách các nhóm thỏa mãn điều kiện lọc của Administrator
Các điều kiện lọc cụ thể như sau:
- Không có (Liệt kê toàn bộ các nhóm)
- Sắp xếp theo tên nhóm, theo ngày tạo, ngày chỉnh sửa, hoặc theo trạng thái…
Hiển thị thông tin các nhóm thỏa mãn yêu cầu lọc.
3.2.3.1.2.10Các yêu cầu phi chức năng
Administrator xóa một hay nhiều nhóm khỏi hệ thống.
Administrator yêu cầu xóa một hay nhiều nhóm.
Administrator lựa chọn vào danh sách các nhóm cần xóa.
Hệ thống yêu cầu Administrator xác nhận chắc chắn muốn xóa.
Nếu Administrator xác nhận, hệ thống xóa các nhóm được lựa chọn.
Các nhóm được chọn bị xóa khỏi hệ thống
Danh sách các nhóm cần xóa
Hiển thị thông tin các nhóm sau khi xóa.
3.2.3.1.3.10Các yêu cầu phi chức năng
Administrator thay đổi trạng thái của một hay nhiều nhóm trong hệ thống Thay đổi trạng thái tức là tạm khóa hay không khóa nhóm Khi nhóm bị khóa thì các người dùng trong nhóm đó cũng sẽ bị khóa theo.
Administrator yêu cầu thay đổi trạng thái một hay nhiều nhóm.
Administrator lựa chọn vào danh sách các nhóm cần thay đổi.
Hệ thống thực hiện thay đổi trạng thái các nhóm được lựa chọn Sau khi thay đổi hiển thị lại kết quả.
Hệ thống thay đổi trạng thái của các nhóm được chọn
Danh sách các nhóm cần thay đổi trạng thái
Hiển thị thông tin các nhóm sau khi thay đổi trạng thái.
3.2.3.1.4.10Các yêu cầu phi chức năng
3.2.3.2 UC2 Quản lý Permission(Permission Management)
Administrator thêm mới một permission hoặc sửa thông tin một permission đã có.
Administrator yêu cầu tạo ra một permission mới hoặc yêu cầu sửa permission đã có.
1 Administrator nhập thông tin permission mới: Tên permission, Mô tả permission, Trạng thái (active/deactive).
2 Hệ thống tạo ra một permission mới.
Hệ thống tạo ra một permission mới hoặc cập nhật lại thông tin của permission cũ, với những thông tin do người dùng nhập vào.
Thông tin đầu vào bao gồm: tên permission, mô tả permission, trạng thái.
Trong hệ thống xuất hiện permission mới hoặc cập nhật lại thông tin của permission (trong trường hợp edit).
3.2.3.2.1.10Các yêu cầu phi chức năng
Administrator liệt kê các permission có trong database tùy theo yêu cầu lọc(filter) cụ thể.
Administrator yêu cầu liệt kê các permission (có thể bao gồm các điều kiện lọc).
Administrator chọn điều kiện lọc cụ thể.
Hệ thống thực hiện lọc dữ liệu, hiển thị danh sách các permission thỏa mãn điều kiện đã chọn.
Hệ thống hiển thị danh sách các permission thỏa mãn điều kiện lọc của Administrator
Các điều kiện lọc cụ thể như sau:
- Không có (Liệt kê toàn bộ các permission)
- Sắp xếp theo tên permission, theo ngày tạo, ngày chỉnh sửa, theo tác giả hoặc theo trạng thái…
Hiển thị thông tin các permission thỏa mãn yêu cầu lọc.
3.2.3.2.2.10Các yêu cầu phi chức năng
Administrator xóa một hay nhiều permission khỏi hệ thống.
Administrator yêu cầu xóa một hay nhiều permission.
Administrator lựa chọn vào danh sách các permission cần xóa.
Hệ thống yêu cầu Administrator xác nhận chắc chắn muốn xóa.
Nếu Administrator xác nhận, hệ thống xóa các permission được lựa chọn.
Các permission được chọn bị xóa khỏi hệ thống
Danh sách các permission cần xóa
Hiển thị thông tin các permission sau khi xóa.
3.2.3.2.3.10Các yêu cầu phi chức năng
3.2.3.3 UC3 Quản lý User(User Management)
Administrator thêm mới một user hoặc sửa thông tin một user đã có.
Administrator yêu cầu tạo ra một user mới hoặc yêu cầu sửa user đã có.
1 Administrator nhập thông tin mới cho user
2 Hệ thống kiểm tra thông tin đầu vào
3 Hệ thống tạo ra một user mới hoặc thông báo lỗi.
Hệ thống tạo ra một user mới hoặc cập nhật lại thông tin của user cũ, với những thông tin do người dùng nhập vào.
Thông tin đầu vào bao gồm: tên user, mô tả user, trạng thái, password, firstname, lastname, email, mobile, chọn nhóm người dùng.
Trong hệ thống xuất hiện user mới hoặc cập nhật lại thông tin của user cũ(trong trường hợp edit).
3.2.3.3.1.10Các yêu cầu phi chức năng Địa chỉ email cần phải đánh đúng theo chuẩn quốc tế.
Administrator liệt kê các user có trong database tùy theo yêu cầu lọc(filter) cụ thể.
Administrator chọn điều kiện lọc cụ thể.
Hệ thống thực hiện lọc dữ liệu, hiển thị danh sách các user thỏa mãn điều kiện đã chọn.
Hệ thống hiển thị danh sách các user thỏa mãn điều kiện lọc của Administrator
Các điều kiện lọc cụ thể như sau:
- Không có (Liệt kê toàn bộ các user)
- Sắp xếp theo username, theo ngày tạo, ngày chỉnh sửa, hoặc theo trạng thái, first name, last name, tác giả…
Hiển thị thông tin các nhóm user mãn yêu cầu lọc.
3.2.3.3.2.10Các yêu cầu phi chức năng
Administrator xóa một hay nhiều user khỏi hệ thống.
Administrator yêu cầu xóa một hay nhiều user.
Administrator lựa chọn vào danh sách các user cần xóa.
Hệ thống yêu cầu Administrator xác nhận chắc chắn muốn xóa.
Nếu Administrator xác nhận, hệ thống xóa các user được lựa chọn.
Các user được chọn bị xóa khỏi hệ thống
Danh sách các user cần xóa
Hiển thị thông tin các user sau khi xóa.
3.2.3.3.3.10Các yêu cầu phi chức năng
Administrator thay đổi trạng thái của một hay nhiều user trong hệ thống Thay đổi trạng thái tức là tạm khóa hay không khóa user Khi user bị khóa thì user đó sẽ không thể đăng nhập được vào hệ thống.
Administrator lựa chọn vào danh sách các user cần thay đổi.
Hệ thống thực hiện thay đổi trạng thái các user được lựa chọn Sau khi thay đổi hiển thị lại kết quả.
Hệ thống thay đổi trạng thái của các user được chọn
Danh sách các user cần thay đổi trạng thái
Hiển thị thông tin các user sau khi thay đổi trạng thái.
3.2.3.3.4.10Các yêu cầu phi chức năng
3.2.3.4 UC4 Quản lý module(Module Management)
Administrator thêm mới một module hoặc sửa thông tin một module đã có.
Administrator yêu cầu tạo ra một module mới hoặc yêu cầu sửa module đã có.
1 Administrator nhập thông tin mới cho module
2 Hệ thống kiểm tra thông tin đầu vào
3 Hệ thống tạo ra một module mới hoặc thông báo lỗi.
Hệ thống tạo ra một module mới hoặc cập nhật lại thông tin của module cũ, với những thông tin do người dùng nhập vào.
Thông tin đầu vào bao gồm: tên module, mô tả, trạng thái, chọn nhóm người dùng.
Trong hệ thống xuất hiện module mới hoặc cập nhật lại thông tin của module cũ(trong trường hợp edit).
3.2.3.4.1.10Các yêu cầu phi chức năng
Tên module phải trùng với những module đã tạo.
Administrator yêu cầu liệt kê các module (có thể bao gồm các điều kiện lọc).
Administrator chọn điều kiện lọc cụ thể.
Hệ thống thực hiện lọc dữ liệu, hiển thị danh sách các module thỏa mãn điều kiện đã chọn.
Hệ thống hiển thị danh sách các module thỏa mãn điều kiện lọc của Administrator
Các điều kiện lọc cụ thể như sau:
- Không có (Liệt kê toàn bộ các module)
- Sắp xếp theo tên module, theo ngày tạo, ngày chỉnh sửa, hoặc theo trạng thái, tác giả…
Hiển thị thông tin các module mãn yêu cầu lọc.
3.2.3.4.2.10Các yêu cầu phi chức năng
Administrator xóa một hay nhiều module khỏi hệ thống.
Administrator yêu cầu xóa một hay nhiều module.
Administrator lựa chọn vào danh sách các module cần xóa.
Hệ thống yêu cầu Administrator xác nhận chắc chắn muốn xóa.
Nếu Administrator xác nhận, hệ thống xóa các module được lựa chọn.
Các module được chọn bị xóa khỏi hệ thống
Danh sách các module cần xóa
Hiển thị thông tin các module sau khi xóa.
3.2.3.4.3.10Các yêu cầu phi chức năng
Administrator thay đổi trạng thái của một hay nhiều module trong hệ thống Thay đổi trạng thái tức là tạm khóa hay không khóa module Khi module bị khóa thì user đó sẽ không thể thao tác trên module đó.
Administrator yêu cầu thay đổi trạng thái một hay nhiều module.
Administrator lựa chọn vào danh sách các module cần thay đổi.
Hệ thống thực hiện thay đổi trạng thái các module được lựa chọn Sau khi thay đổi hiển thị lại kết quả.
Hệ thống thay đổi trạng thái của các module được chọn
Danh sách các module cần thay đổi trạng thái
Hiển thị thông tin các module sau khi thay đổi trạng thái.
3.2.3.4.4.10Các yêu cầu phi chức năng
Administrator thêm mới một action hoặc sửa thông tin một action của một module nào đó.
Administrator yêu cầu tạo ra một action mới hoặc yêu cầu sửa action đã có.
1 Administrator nhập thông tin mới cho action
2 Hệ thống kiểm tra thông tin đầu vào
3 Hệ thống tạo ra một action mới hoặc thông báo lỗi.
Hệ thống tạo ra một action mới hoặc cập nhật lại thông tin của action cũ, với những thông tin do người dùng nhập vào.
Thông tin đầu vào bao gồm: tên action, chọn permission.
Trong hệ thống xuất hiện action mới hoặc cập nhật lại thông tin của action cũ(trong trường hợp edit).
3.2.3.4.5.10Các yêu cầu phi chức năng
Administrator liệt kê các action thuộc một module nào đó.
Administrator yêu cầu liệt kê các action.
Administrator đưa ra yêu cầu liệt kê action của module.
Hệ thống thực hiện hiển thị danh sách các action thỏa mãn điều kiện đã chọn.
Hệ thống hiển thị danh sách các action của module
Yêu cầu liệt kê action và mã của module cụ thể.
Hiển thị thông tin các action mãn yêu cầu lọc.
3.2.3.4.6.10Các yêu cầu phi chức năng
Administrator xóa một hay nhiều action khỏi hệ thống.
Administrator yêu cầu xóa một hay nhiều action.
Administrator lựa chọn vào danh sách các action cần xóa.
Hệ thống yêu cầu Administrator xác nhận chắc chắn muốn xóa. Nếu Administrator xác nhận, hệ thống xóa các action được lựa chọn.
Các action được chọn bị xóa khỏi hệ thống
Danh sách các action cần xóa
Hiển thị thông tin các module sau khi xóa.
3.2.3.4.7.10Các yêu cầu phi chức năng
3.2.3.5 UC5 Quản lý quy trình(Workflow Management)
Workflow trong CMS là qui trình làm việc của tòa soạn áp dụng CMS đó, bao gồm các bước từ lúc thu thập, biên tập nội dung cho đến khi xuất bản nội dung Tùy theo từng toà soạn cụ thể mà có thể xây dựng workflow phù hợp Hệ thống cho phép xác định các hành động có thể trên từng công đoạn và chỉ định người dùng thực hiện các hành động đó trong từng giai đoạn của qui trình làm việc
Administrator thêm mới một bước hoặc sửa thông tin một bước trong quy trình làm việc.
Administrator yêu cầu tạo ra một bước mới hoặc yêu cầu sửa bước đã có trong workflow.
1 Administrator nhập thông tin mới cho bước trong quy trình làm việc:
- Nhóm người dùng có quyền thao tác trên bước đó.
2 Hệ thống tạo ra một bước mới.
Hệ thống tạo ra một bước mới hoặc cập nhật lại thông tin của bước cũ, với những thông tin do người dùng nhập vào.
Thông tin đầu vào bao gồm: tên bước, trạng thái, nhóm người dùng có quyền thao tác trên bước đó.
Trong hệ thống xuất hiện bước mới hoặc cập nhật lại thông tin của bước cũ(trong trường hợp edit).
3.2.3.5.1.10Các yêu cầu phi chức năng
Administrator liệt kê các bước có trong database tùy theo yêu cầu lọc(filter) cụ thể.
Administrator yêu cầu liệt kê các bước trong workflow (có thể bao gồm các điều kiện lọc).
Administrator chọn điều kiện lọc cụ thể.
Hệ thống thực hiện lọc dữ liệu, hiển thị danh sách các bước thỏa mãn điều kiện đã chọn.
Hệ thống hiển thị danh sách các bước thỏa mãn điều kiện lọc của Administrator
Các điều kiện lọc cụ thể như sau:
- Không có (Liệt kê toàn bộ các bước)
- Lọc theo tên của bước cụ thể nào đó.
- Sắp xếp theo tên các bước, theo ngày tạo, ngày chỉnh sửa, hoặc theo trạng thái…
Hiển thị thông tin các bước thỏa mãn yêu cầu lọc.
3.2.3.5.2.10Các yêu cầu phi chức năng
Administrator xóa một hay nhiều workflow khỏi hệ thống.
Administrator yêu cầu xóa một hay nhiều bước trong quy trình làm việc.
Administrator lựa chọn vào danh sách các bước cần xóa.
Hệ thống yêu cầu Administrator xác nhận chắc chắn muốn xóa. Nếu Administrator xác nhận, hệ thống xóa các bước được lựa chọn.
Các bước được chọn bị xóa khỏi hệ thống
Danh sách các bước cần xóa
Hiển thị thông tin các bước sau khi xóa.
3.2.3.5.3.10Các yêu cầu phi chức năng
Administrator thay đổi trạng thái của một hay nhiều bước trong hệ thống Thay đổi trạng thái tức là tạm khóa hay không khóa bước trong quy trình Khi bước nào đó bị khóa thì bước đó sẽ bị bỏ qua trong quy trình làm việc.
Administrator yêu cầu thay đổi trạng thái một hay nhiều bước trong quy trình làm việc.
Administrator lựa chọn vào danh sách các bước cần thay đổi.
Hệ thống thực hiện thay đổi trạng thái các bước được lựa chọn Sau khi thay đổi hiển thị lại kết quả.
Hệ thống thay đổi trạng thái của các bước được chọn
Danh sách các bước cần thay đổi trạng thái
Hiển thị thông tin các bước sau khi thay đổi trạng thái.
3.2.3.5.4.10Các yêu cầu phi chức năng
Administrator sắp xếp lại thứ tự các bước trong quy trình làm việc Quy trình làm việc sẽ được thực hiện từ trên xuống dưới theo thứ tự từ thấp đến cao Bước cuối cùng được đánh dấu is_final (dấu hiệu kết thúc) Adminisretor có thể sắp xếp bằng cách click vào các nút lên xuống hay có thể nhập trực tiếp số thứ tự của bước đó vào ô nhập dữ liệu.
Administrator yêu cầu thay đổi thay đổi thứ tự các bước trong quy trình làm việc.
- Administrator đưa ra yêu cầu sắp xếp các bước trong quá trình làm việc.
- Hệ thống phân loại yêu cầu sắp xếp (sắp xếp bằng cách nhập số thự tự vào ô textbox hoặc click trực tiếp vào mũi tên lên xuống).
- Tùy vào yêu cầu hệ thống sẽ đưa ra form nhập cho người dùng.
- Administrator nhập số thứ tự mới.
- Hệ thống thực hiện thay đổi số thứ tự các bước trong quy trình làm việc Sau khi
Hệ thống thực hiện thành công thay đổi số thứ tự của các bước trong quy trình làm việc.
Danh sách các bước cần thay đổi thứ tự
Hiển thị thông tin các bước sau khi thay đổi thứ tự, theo thứ tự từ thấp đến cao hoặc ngược lại.
3.2.3.5.5.10Các yêu cầu phi chức năng
Administrator lựa chọn một bước trong quy trình làm việc là is_final(bước cuối cùng trong quy trình làm việc) Khi một bước được chọn là bước cuối cùng thì phải bỏ biểu tượng is_final của các bước khác nếu có.
Administrator chọn một bước trong quy trình làm việc là bước cuối cùng.
- Administrator đưa ra yêu cầu chọn một bước trong quá trình làm việc là bước cuối.
- Hệ thống thực hiện chọn bước đó là bước cuối và thay đổi số thứ tự.
Hệ thống thực hiện thành công thay đổi số thứ tự của các bước trong quy trình làm việc.
Một bước trong quá trình làm việc mà Administrator lựa chọn
Hiển thị thông tin các bước sau khi thực hiện lựa chọn bước cuối.
3.2.3.5.6.10Các yêu cầu phi chức năng
3.2.3.6 UC6 Quản lý đa ngôn ngữ(Localization)
Administrator thêm một ngôn ngữ mới hoặc sửa thông tin một ngôn ngữ đã có Khi thêm một ngôn ngữ mới thì các keyword đã có sẽ được tạo ra tương ứng với ngôn ngữ mới để tiện cho người dịch keyword có thể tìm kiếm và dịch sang ngôn ngữ mới Khi xây dựng module này ta sẽ dùng thư viện I18N có sẵn trong symfony.(như đã trình bày ở phần tìm hiểu I18N).
Administrator yêu cầu tạo ngôn ngữ mới hoặc yêu cầu sửa ngôn ngữ đã có.
1 Administrator nhập thông tin mới cho ngôn ngữ:
- Ảnh cờ (cờ tương ứng với ngôn ngữ)
2 Hệ thống tạo ra một ngôn ngữ mới đồng thời tạo các keyword tương ứng với ngôn ngữ đó.
Hệ thống tạo ra một ngôn ngữ mới hoặc cập nhật lại thông tin của ngôn ngữ cũ, với những thông tin do người dùng nhập vào.
Thông tin đầu vào bao gồm: tên ngôn ngữ, trạng thái, culture.
Trong hệ thống xuất hiện ngôn ngữ mới hoặc cập nhật lại thông tin của ngôn ngữ cũ(trong trường hợp edit).
3.2.3.6.1.10Các yêu cầu phi chức năng
- Ảnh cờ tương ứng với ngôn ngữ tuy không bắt buộc nhập nhưng nên nhập để tiện cho việc chọn ngôn ngữ sau này.
- Trường culture phải theo chuẩn ISO 639 – 1 standard (ví dụ: với ngôn ngữ là tiếng việt thì culture là vi_VN, tiếng anh là en_US hoặc en_GB…).
- Tên ngôn ngữ theo mẫu sau: messages.[culture] hoặc common.[culture]
Administrator liệt kê các ngôn ngữ hiện có trong hệ thống tùy theo yêu cầu lọc(filter) cụ thể.
Administrator yêu cầu liệt kê ngôn ngữ (có thể bao gồm các điều kiện lọc).
Administrator chọn điều kiện lọc cụ thể.
Hệ thống thực hiện lọc dữ liệu, hiển thị danh sách các ngôn ngữ thỏa mãn điều kiện đã chọn.
Hệ thống hiển thị danh sách các ngôn ngữ thỏa mãn điều kiện lọc của Administrator
Các điều kiện lọc cụ thể như sau:
- Không có (Liệt kê toàn bộ các ngôn ngữ hiện có trong hệ thống)
- Lọc theo tên ngôn ngữ.
- Sắp xếp theo tên ngôn ngữ, theo culture, ngày tạo, ngày chỉnh sửa, hoặc theo
Hiển thị thông tin các ngôn ngữ thỏa mãn yêu cầu lọc.
3.2.3.6.2.10Các yêu cầu phi chức năng
Administrator xóa một hay nhiều ngôn ngữ khỏi hệ thống Chú ý khi xóa ngôn ngữ thì tất cả các keyword thuộc ngôn ngữ đó sẽ bị xóa.
Administrator yêu cầu xóa một hay nhiều ngôn ngữ.
Administrator lựa chọn vào danh sách các ngôn ngữ cần xóa.
Hệ thống yêu cầu Administrator xác nhận chắc chắn muốn xóa.
Nếu Administrator xác nhận, hệ thống xóa các ngôn ngữ được lựa chọn.
Các ngôn ngữ được chọn bị xóa khỏi hệ thống
Danh sách các ngôn ngữ cần xóa
Hiển thị thông tin các ngôn ngữ sau khi xóa.
3.2.3.6.3.10Các yêu cầu phi chức năng
Administrator thay đổi trạng thái của một hay nhiều ngôn ngữ trong hệ thống Thay đổi trạng thái tức là tạm khóa hay không khóa ngôn ngữ Khi ngôn ngữ bị khóa thì hệ thống sẽ không thể hiển thị theo ngôn ngữ đã khóa.
Administrator yêu cầu thay đổi trạng thái một hay nhiều ngôn ngữ.
Administrator lựa chọn vào danh sách các ngôn ngữ cần thay đổi.
Hệ thống thực hiện thay đổi trạng thái các ngôn ngữ được lựa chọn Sau khi thay đổi hiển thị lại kết quả.
Hệ thống thay đổi trạng thái của các ngôn ngữ được chọn
Danh sách các ngôn ngữ cần thay đổi trạng thái
Hiển thị thông tin các ngôn ngữ sau khi thay đổi trạng thái.
3.2.3.6.4.10Các yêu cầu phi chức năng
Administrator lựa chọn một ngôn ngữ làm ngôn ngữ mặc định khi hệ thống hiển thị ở trang frontend.
Administrator yêu cầu chọn ngôn ngữ mặc định.
Administrator lựa chọn ngôn ngữ mặc định.
Hệ thống thực hiện chọn lại ngôn ngữ sẽ thể hiện ở trang frontend.
Hệ thống chọn ngôn ngữ mặc định thành công.
Ngôn ngữ được chọn làm ngôn ngữ mặc định
Chọn thành công ngôn ngữ mặc định và đánh dấu ngôn ngữ mặc định.
3.2.3.6.5.10Các yêu cầu phi chức năng
Administrator liệt kê các keyword hiện có trong hệ thống tùy theo yêu cầu lọc(filter) cụ thể.
Administrator yêu cầu liệt kê keyword (có thể bao gồm các điều kiện lọc).
Administrator chọn điều kiện lọc cụ thể.
Hệ thống thực hiện lọc dữ liệu, hiển thị danh sách các keyword thỏa mãn điều kiện đã chọn.
Hệ thống hiển thị danh sách các keyword thỏa mãn điều kiện lọc của Administrator
Các điều kiện lọc cụ thể như sau:
- Không có (Liệt kê toàn bộ các keyword hiện có trong hệ thống)
- Lọc theo keyword hoặc theo từng ngôn ngữ.
- Sắp xếp theo keyword, theo target(từ đã dịch tương ứng với từng ngôn ngữ)…
3.2.3.6.6.10Các yêu cầu phi chức năng
TRIỂN KHAI HỆ THỐNG
Môi trường cài đặt và phát triển
- Môi trường hỗ trợ MySQL 5x, PHP 5.
- Để có thể tiếp tục phát triển trên SCMS cần có các phần mềm hỗ trợ lập trình như: Zend Optimizer, MacroMedia DreamWeaver …
Xây dựng website mẫu
Website mẫu tuy có quy mô không lớn nhưng thể hiện được đầy đủ các tiến trình từ thu thập, lưu trữ và xuất bản tin tức Website mẫu bao gồm trang giới thiệu về một công ty, trang tin tức, trang liệt kê sản phẩm công ty, liên hệ … Áp dụng SCMS mà ta đã có, xây dựng thêm giao diện và nội dung các trang bên ngoài.Trang mẫu có sử dụng form liên hệ nên có thêm yêu cầu về MailServer, phục vụ cho việc gửi mail.
ĐÁNH GIÁ VÀ TỔNG KẾT
Các vấn đề đã được giải quyết
Qua quá trình nghiên cứu và giải quyết vấn đề, cùng với sự giúp đỡ của Th.s Đinh Hùng, tôi đã thực hiện được các công việc sau:
Nghiên cứu, tìm hiểu, có cái nhìn tổng quan về hệ thống quản trị nội dung.
Nghiên cứu, lựa chọn được công nghệ có khả năng giải quyết tốt bài toán, chi phí phù hợp với các doanh nghiệp Việt Nam đó là Symfony.
Xây dựng một hệ thống quản trị nội dung mô phỏng đầy đủ các thành phần trong tiến trình của một CMS từ việc thu thập, quản lí và xuất bản thông tin.
Sử dụng hệ thống để xây dựng một website mẫu.
Các vấn đề còn tồn tại
Tuy SCMS đã thể hiện và đáp ứng được các đòi hỏi trong việc quản lý nội dung nhưng cũng còn nhiều thiếu sót để có thể trở thành một CMS hoàn chỉnh, và đủ mạnh để phục vụ trong thương mại Cụ thể như sau:
Quản lý quy trình làm việc(workflow) mới chỉ dừng lại ở việc quản lý các bước trong một tiến trình, nhưng việc dùng tiến trình đó trong khi sản xuất tin thì chưa thể hiện được.
Chưa phân quyền người dùng tới các mức như danh mục tin, và nội dung… mà mới chỉ dừng lại ở các module và hành động(action).
Chưa giải quyết vấn đề cùng lúc có nhiều người truy cập với cùng một tên.
Hướng phát triển mở rộng
Hệ thống SCMS đã xây dựng chỉ đảm bảo phần core cơ bản cho một CMS Đây là một hệ thống mở và còn nhiều điều cần khắc phục cũng như mở rộng:
Phát triển thêm các hình thức thu thập nội dung như thu thập nội dung từ các nguồn đã có sẵn
Phát triển thêm một số loại hình xuất bản như xuất bản thành site tĩnh, xuất bản dưới các định dạng phù hợp với các thiết bị cầm tay.
Hoàn thiện để hệ thống có thể cài đặt và chạy như một ứng dụng độc lập để tiện cho người dùng trong việc cài đặt.
Xây dựng các module thành các component tương ứng và cung cấp khả năng thiết kế giao diện kéo thả các component này.
[1] Bob Boiko, Content Management Bible 2nd Edition, Wiley Publishing, Inc.,Indianapolis, Indiana, 2006.