Data Caching áp dụng cho hệ thống cụ thể ở đây là Memcached. Nó cung cấp khả năng lƣu trữ đối tƣợng bất kỳ vào trong RAM. Ở lần truy cập đầu tiên của ngƣời dùng vào trang báo điện tử, hệ thống sẽ lấy trực tiếp dữ liệu từ CSDL đồng thời lƣu một bản sao vào Memcached. Từ lần truy cập thứ hai trở về sau, hệ thống sẽ không truy cập vào CSDL nữa mà lấy thẳng trực tiếp dữ liệu tử Memcached đã lƣu trƣớc đó. Điều này giảm tải cho máy chủ dữ liệu rất nhiều và tăng tốc độ truy cập đáng kể.
3.2.2 Kiến trúc logic hệ thống CDN
Hình 3.3: Kiến trúc CDN áp dụng cho hệ thống
Kiến trúc CDN áp dụng cho hệ thống bao gồm các máy chủ lƣu trữ và phân tải các dữ liệu tĩnh ít thay đổi nhƣ “hình ảnh, video clip, mã nguồn, css. Các máy chủ này đƣợc đặt ở khắp nơi nhằm cung cấp dữ liệu một cách nhanh nhất cho ngƣời truy cập. Khi một ngƣời dùng truy cập vào website thì máy chủ gần nhất với ngƣời dùng trong hệ thống CDN sẽ cung cấp dữ liệu đến ngƣời dùng.
3.2.3 Kiến trúc logic hệ thống VPN
Hình 3.4: Kiến trúc VPN áp dụng cho hệ thống
Kiến trúc VPN áp dụng cho hệ thống bao gồm máy chủ OpenVPN và các OpenVPN Client cài đặt trên máy ngƣời dùng để xác thực tài khoản mỗi khi truy cập hệ thống quản trị nội dung. Mỗi ngƣời dùng sẽ có tài khoản OpenVPN riêng để sử dụng trong quá trình xác thực.
3.3 Cài đặt hệ thống
3.3.1 Môi trƣờng, công nghệ và công cụ phát triển
Môi trƣờng phát triển:
o Hệ điều hành: Centos 6 o Máy chủ web: Apache 2.2.19 o Máy chủ điện toán đám mây
Ổ cứng: 160 GB
RAM: 4 GB
CPU: 2 Core E5606 2.13GHz o Ngôn ngữ: PHP 5.3.7
o Máy chủ dữ liệu: MariaDB 5.5.39 Công nghệ phát triển:
o Data Caching o CDN
o VPN
Công cụ phát triển:
o NuSphere PhpED Professional 5.9 o CodeIgniter Framework 2.2
o Memcached 1.4.10
o CloudFlare tại https://www.cloudflare.com/ o OpenVPN 2.2.2
3.3.2 Phát triển các khối chức năng
Hình 3.5: Mã nguồn các khối chức năng trong hệ thống
3.3.3 Tổ chức lƣu trữ ảnh trên server
Hình 3.6: Tổ chức lưu trữ ảnh trên server
Ảnh đƣợc lƣu trữ trên server theo ngày, tháng, năm và theo username của tài khoản thuê bao hệ thống. Tài khoản thuê bao chỉ xem và quản lý đƣợc các ảnh upload lên site của họ. Việc này giúp cho các ảnh của mỗi thuê bao đƣợc tách biệt rõ ràng, không lẫn vào nhau. Hiệu quả của sự áp dụng này đƣợc đề cập trong Phụ lục 02.
3.3.4 Áp dụng Memcached trong viết code phát triển hệ thống
Việc áp dụng Memcached sẽ đƣợc thực hiện ở tầng Model – tầng kết nối trực tiếp với cơ sở dữ liệu của hệ thống. Cụ thể nhƣ sau:
3.3.5 Áp dụng Minify cho các file JS, CSS trong phát triển hệ thống
Các file JS, CSS trên trang có ảnh hƣởng đến tốc độ load trang. Khi các file này có dung lƣợng lớn, trang sẽ load chậm hơn. Để tăng hiệu quả việc load trang, cần thiết phải áp dụng minify cho các file JS và CSS. Minify là quá trình nén nội dung file đến dung lƣợng nhỏ nhất. Phƣơng pháp nén là xóa các khoảng trắng, các dòng, các comment thừa trong nội dung file để tất cả nội dung file đều nằm trên một dòng. Điều này giúp giảm dung lƣợng file rất nhiều dẫn đến trang load nhanh hơn.
Hình 3.8: Minify các file JS và CSS
3.4 Kết quả thực hiện
Sau khi cài đặt, phát triển và tổ chức hệ thống theo các yêu cầu đặt ra, một hệ thống báo điện tử ứng dụng điện toán đám mây đã đƣợc triển khai thực tế trên Internet. Dƣới đây là địa chỉ truy cập các trang và một số hình ảnh về giao diện của hệ thống báo điện tử này.
Địa chỉ truy cập trang Đăng ký tài khoản
http://cloud.haivn.tv/cms/tinmoi
Địa chỉ truy cập trang Quản trị Báo điện tử của thuê bao
http://admincloud.haivn.tv/cms/tinmoi
Giao diện trang đăng ký tài khoản thuê bao hệ thống
Giao diện trang Tùy chỉnh module của thuê bao hệ thống
Hình 3.10: Giao diện trang Tùy chỉnh module của thuê bao hệ thống
Giao diện trang Tùy chỉnh giao diện của thuê bao hệ thống
Giao diện trang Quản lý thuê bao hệ thống
Giao diện trang Kiểm soát thuê bao hệ thống
Giao diện trang Báo điện tử của một thuê bao trên thiết bị di động
KẾT LUẬN
Những kết quả đạt đƣợc
Luận văn đã đạt đƣợc một số kết quả cả về lý thuyết lẫn ứng dụng. Cụ thể: - Về mặt lý thuyết
o Giải pháp thiết kế hệ thống theo công nghệ hƣớng đối tƣợng có sử dụng mẫu thiết kế giúp cho hệ thống có khả năng tái sử dụng, áp dụng cho các bài toán tƣơng tự và dễ dàng thay đổi khi có các yêu cầu. o Giải pháp thiết kế hệ thống theo kiến trúc hƣớng dịch vụ, chia hệ
thống thành nhiều khối chức năng. Mỗi chức năng nhƣ một dịch vụ cung cấp đến ngƣời dùng đã giúp cho hệ thống có khả năng mở rộng và ghép nối với các hệ thống khác. Bên cạnh đó, việc hƣớng ngƣời dùng sử dụng phần mềm theo hình thức thuê bao giúp ngƣời dùng tiết kiệm chi phí và dễ dàng sử dụng tùy theo nhu cầu.
o Giải pháp phân tải nhƣ Data Caching và CDN cùng với các công nghệ nén và tối ƣu hóa các file tĩnh (file ảnh, file css, …) giúp cho hệ thống chạy nhanh, ổn định hơn và khả năng chịu tải cao khi có nhiều ngƣời cùng truy cập tại một thời điểm.
o Giải pháp bảo mật nhƣ sử dụng VPN trong hệ thống bên cạnh việc mã hóa mật khẩu, phân quyền vai trò theo ngƣời dùng cộng với cơ chế xuất bản bài viết theo quy trình đã giúp cho hệ thống đƣợc an toàn hơn trƣớc các nguy cơ bị tấn công DDOS, bị hack, lộ mật khẩu, ...
o Giải pháp sao lƣu dữ liệu giúp cho thông tin dữ liệu của hệ thống đƣợc đảm bảo an toàn, dễ dàng phục hồi trong trƣờng hợp bị mất mát dữ liệu do phá hoại.
o Giải pháp ứng dụng điện toán đám mây giúp cho hệ thống có hạ tầng mạng ổn định, dễ nâng cấp cũng nhƣ đáp ứng và phục vụ đƣợc số lƣợng ngƣời dùng lớn trong tƣơng lai.
- Về mặt ứng dụng
o Hệ thống báo điện tử ra đời ứng dụng điện toán đám mây có khả năng chịu tải cao bởi việc áp dụng CDN, Memcached giúp cho hệ thống chạy ổn định ngay cả khi có nhiều ngƣời truy cập tại cùng một thời điểm. Bên cạnh đó, việc kiểm soát thông tin tốt, xuất bản qua các bƣớc duyệt giúp cho các tin bài đƣa lên báo không phản cảm, dung tục và gây khó chịu đối với ngƣời đọc. Ngoài ra, khả năng bảo mật cao do ứng dụng OpenVPN giúp cho báo đứng vững trƣớc mọi sự tấn công
o Hệ thống báo điện tử cho phép đăng ký tài khoản một cách nhanh chóng. Đăng ký xong là sử dụng đƣợc luôn. Do đó, thời gian triển khai một trang báo điện tử nhanh hơn rất nhiều so với trƣớc kia. Hệ thống có khả năng tùy biến giao diện cao, cung cấp các module (chức năng) nhƣ một dịch vụ. Ngƣời sử dụng dễ dàng trong việc đăng ký và lựa chọn module mình cần với chi phí hợp lý. Không những thế, với cơ chế kiểm soát chi tiết các module đang sử dụng và chi phí sử dụng module của từng tài khoản, hệ thống giúp cho ngƣời quản trị cũng nhƣ ngƣời sử dụng quản lý và theo dõi đƣợc các module đang chạy để có thể đƣa ra những điều chỉnh hợp lý nếu cần thiết.
Những hạn chế và tồn tại
Mặc dù đạt đƣợc một số ƣu điểm nhƣ trên nhƣng hệ thống vẫn không tránh khỏi một số hạn chế và tồn tại. Cụ thể đó là:
- Khách hàng chƣa hoàn toàn yên tâm khi mà mọi dữ liệu của họ lƣu trữ hoàn toàn trên máy chủ điện toán đám mây của hệ thống, nhất là các dữ liệu nhạy cảm và bảo mật.
- Do thời gian triển khai hệ thống gấp, chỉ trong một thời gian ngắn nên giải pháp phân tải hệ thống chƣa đƣợc giải quyết trọn vẹn.
- Việc quản lý chi phí thuê bao chỉ ở mức đơn giản. Thanh toán chi phí vẫn phải thực hiện qua hình thức thanh toán trực tiếp.
Hƣớng tiếp tục nghiên cứu
Trong thời gian tới, luận văn tập trung các hƣớng nghiên cứu sau để làm tăng hiệu quả hệ thống:
- Tiếp tục nghiên cứu, thử nghiệm và hoàn thiện giải pháp bảo mật cho hệ thống.
- Nghiên cứu và áp dụng giải pháp phân tải tối ƣu nhất cho hệ thống để hệ thống chạy hiệu quả và ổn định hơn khi có lƣợng ngƣời truy cập cao trong cùng một thời điểm
- Tiếp tục cải tiến và sử dụng các hình thức thanh toán khác nhƣ thanh toán trực tuyến, thanh toán qua thẻ cào, … để việc quản lý chi phí thuê bao dễ dàng hơn.
TÀI LIỆU THAM KHẢO
Tiếng Việt
1. Nguyễn Thị Trƣờng Giang. (2011). Báo mạng điện tử - Những vấn đềcơ bản.
NXB Chính trị Hành chính, Hà Nội.
Tiếng Anh
2. Gilmore, W. Jason (2010). Beginning PHP and MySQL, 4th Edition. Apress. 3. Josuttis, Nicolai M. (2007). SOA in Practice: The Art of Distributed System
Design. O'Reilly.
4. Keijser, Jan Just (2011). OpenVPN 2 Cookbook. Packt Publishing. 5. Kujawa, Lukasz (2013, 4 23). Performance benchmark of popular PHP
frameworks. Retrieved from http://systemsarchitect.net/performance-benchmark- of-popular-php-frameworks/
6. Skvorc, Bruno (2013, 12 28). Best PHP Frameworks for 2014. Retrieved from http://www.sitepoint.com/best-php-frameworks-2014/
7. Tiwari, Nitish (2014, 6 30). 3 open source content management systems compared. Retrieved from http://opensource.com/business/14/6/open-source- cms-joomla-wordpress-drupal
8. Velte, Anthony T.; Velte, Toby J. & Elsenpeter Robert. (2010). Cloud Computing: A Practical Approach. The McGraw-Hill Companies.
PHỤ LỤC
Phụ lục 01: Khảo sát một số hệ thống báo điện tử trên Internet hiện nay
1. Khảo sát 15 trang tin, báo điện tử hiện nay
TT Tên site Giải pháp Đơn vị Địa chỉ
1 Báo điện tử Đất Việt VCKM vSolutions http://baodatviet.vn/
2 Tinmoi.vn KCMS Netlink http://www.tinmoi.vn/
3 Báo điện tử Giao
thông vận tải VCKM vSolutions
http://giaothongvantai.com .vn/
4 Doisongphapluat.com KCMS Netlink http://www.doisongphaplu
at.com/ 5
Trang thông tin điện tử Ban Nội chính Trung ƣơng
VCKM vSolutions http://noichinh.vn/
6 Nguoiduatin.vn KCMS Netlink http://www.nguoiduatin.vn
/
7 Báo Thể thao Việt
Nam VCKM vSolutions http://thethaovietnam.vn/
8 Thethao247.vn Hệ thống CMS tự phát triển và xây dựng riêng cho báo điện tử Netlink http://thethao247.vn/
9 Báo điện tử bảo vệ
pháp luật VCKM vSolutions http://baobvpl.vn/
10 Edaily.vn Hệ thống CMS tự phát triển và xây dựng riêng cho báo điện tử Netlink http://edaily.vn/
11 Báo Đà Nẵng VCKM vSolutions http://baodanang.vn/
12 Báo Xây dựng MasterCMS MasterCMS
Team http://baoxaydung.com.vn/
13 Báo đầu tƣ MasterCMS MasterCMS
14 Báo PetroTimes MasterCMS MasterCMS
Team http://petrotimes.vn/
15 Saoonline.vn KCMS Netlink http://saoonline.vn/
Bảng 3.1: Bảng khảo sát 15 trang tin, báo điện tử hiện nay
2. Các giải pháp đã có
Hệ thống VKCM
Đơn vị phát triển: vSolutions
Tính năng:
o Cung cấp đầy đủ các tính năng cơ bản của một tờ báo điện tử o Quy trình xuất bản tin bài khép kín
o Hệ thống phân quyền chặt chẽ
Môi trƣờng phát triển
o Phát triển dựa trên môi trƣờng .NET o Hệ điều hành: Windows o Webserver: IIS Ƣu điểm: o Dễ dàng mở rộng và nâng cấp o Tốc độ truy cập nhanh o Hoạt động ổn định và bền bỉ
o Giao diện thân thiện với ngƣời dùng
Nhƣợc điểm:
o Giá thành cao do phát triển từ các phần mềm có bản quyền o Khách hàng phải chờ đợi thời gian triển khai hệ thống Hệ thống KCMS:
Đơn vị phát triển: Công ty Netlink
Tính năng:
o Hỗ trợ và cung cấp đầy đủ các tính năng của một tờ báo, trang tin điện tử
o Có cơ chế phân quyền theo vai trò ngƣời dùng
o Quy trình xuất bản tin chặt chẽ thông qua các bƣớc duyệt
o Hệ thống đƣợc áp dụng các công nghệ Data caching, CDN và VPN trong việc tăng khả năng chịu tải và tăng tính bảo mật của hệ thống. o Có cơ chế sao lƣu dữ liệu định kỳ hàng ngày.
Môi trƣờng phát triển:
Ƣu điểm:
o Giá thành ở mức vừa phải do sử dụng các phần mềm mã nguồn mở để phát triển
o Khả năng chịu tải cao
o Cơ chế kiểm soát thông tin tốt o An toàn và bảo mật dữ liệu
Nhƣợc điểm:
o Khách hàng phải chờ đợi thời gian phát triển hệ thống Hệ thống MasterCMS:
Đơn vị phát triển: MasterCMS Team
Tính năng:
o Có đầy đủ tính năng cơ bản của báo điện tử o Có quy trình xuất bản tin
o Có phân quyền chức năng
o Hỗ trợ chức năng quản lý quảng cáo và phản hồi độc giả
Môi trƣờng phát triển:
o Phát triển trên môi trƣờng PHP/MySQL o Hệ điều hành: Linux
o Webserver: Apache
Ƣu điểm:
o Nền tảng và kiến trúc hệ thống mở
o Giá thành vừa phải vì đƣợc phát triển trên mã nguồn mở o Hỗ trợ tùy biến giao diện
o Hỗ trợ hiển thị trên thiết bị di động
Nhƣợc điểm:
o Khách hàng phải chờ đợi thời gian phát triển và triển khai hệ thống o Hạn chế về bảo mật và phân quyền theo vai trò
Phụ lục 02: So sánh các PHP Framework hiện nay
1. So sánh về mức độ phổ biến
Theo Skvorc (2013), mức độ phổ biến của các Framework PHP trong năm 2013 đƣợc mô tả nhƣ trong hình vẽ dƣới đây [6].
Hình 3.17: Mức độ phổ biến của các PHP Framework
2. So sánh về hiệu quả tốc độ xử lý
Theo Kujawa (2013), hiệu quả tốc độ xử lý của các Framework PHP trong năm 2013 đƣợc biểu thị trong hình vẽ dƣới đây [5].
Phụ lục 03: So sánh 3 CMS mã nguồn mở phổ biến và nổi tiếng nhất thế giới
Ba mã nguồn mở phổ biến và nổi tiếng nhất thế giới là Joomla, Drupal và Wordpress. Mỗi mã nguồn đều có những thế mạnh khác nhau. Cụ thể dƣới đây là bảng so sánh 3 mã nguồn mở theo một số tiêu chí về bảo mật, SEO, tốc độ tải, mức độ phát triển và quy mô cộng đồng [7].
Tiêu chí Joomla Drupal Wordpress
Bảo mật Thấp Cao Tƣơng đối
SEO Yếu Trung bình Mạnh
Tốc độ tải Chịu tải rất tốt Load không nhanh
nhƣng rất chịu tải
Load nhanh nhƣng chịu tải không tốt
Phát triển Khó phát triển Rất khó phát triển Dễ phát triển
Cộng đồng Lớn mạnh Bé Rất lớn mạnh
Phụ lục 04: So sánh độ hiệu quả khi áp dụng Memcached, CloudFlare,
Minify, OpenVPN, quy trình xuất bản tin qua bƣớc duyệt và tổ chức sắp xếp ảnh thumb (ảnh đại diện) trong hệ thống
Áp dụng Trƣớc khi áp dụng Sau khi áp dụng
Memcached Hệ thống chạy chậm khi có
nhiều truy cập
Hệ thống chạy nhanh hơn
CloudFlare
Tốc độ load trang chậm khi trên trang có quá nhiều ảnh hoặc ngƣời dùng ở nơi xa truy cập tới
Hệ thống chạy ổn định. Trang load nhanh đối với tất cả ngƣời dùng ở khắp mọi nơi
Minify
Trang load chậm khi có nhiều file js và css bởi trang phải đợi