Biểu đồ tuần tự ca sử dụng Xuất bản bài viết mức khái niệm

Một phần của tài liệu (LUẬN văn THẠC sĩ) kiến trúc hướng dịch vụ và ứng dụng điện toán đám mây trong việc quản lý báo điện tử (Trang 56)

2.4 Kiến trúc hệ thống vật lý

2.4.1 Thiết kế kiến trúc hệ thống vật lý mức tổng quan

Hình 2.19: Kiến trúc hệ thống vật lý của ứng dụng

Toàn bộ hệ thống đặt trên nền điện toán đám mây và đƣợc chia thành các khối nhƣ sau:

a. Khối chức năng Đăng ký thuê bao

Là một ứng dụng chạy trên nền web cung cấp dịch vụ đăng ký tài khoản thuê bao sử dụng hệ thống.

b. Khối chức năng Web

Là một ứng dụng chạy trên nền web chịu trách nhiệm hiển thị trang báo điện tử của một tài khoản trong hệ thống.

c. Khối chức năng Mobile

Là một ứng dụng chạy trên nền mobile cho phép trang báo hiển thị tốt và chạy nhanh trên các loại điện thoại thông minh.

d. Khối chức năng Quản trị

Là một ứng dụng chạy trên nền web cung cấp dịch vụ quản trị nội dung trên trang báo điện tử của một tài khoản trong hệ thống.

e. Hệ thống máy chủ Cache

Là hệ thống các máy chủ lƣu trữ dữ liệu mà ngƣời dùng hay truy cập nhất hoặc lƣu các dữ liệu lớn để đảm bảo giảm tải cho máy chủ database. Ở lần truy cập đầu tiên, dữ liệu trả về cho ngƣời dùng là dữ liệu lấy trực tiếp từ database. Kể từ lần thứ hai trở đi, dữ liệu trả về sẽ lấy từ Cache thay vì lấy trực tiếp từ database. Dữ liệu trong cache

f. Hệ thống máy chủ Database

Là hệ thống các máy chủ lƣu trữ tất cả dữ liệu bài viết của trang báo điện tử của tất cả các thuê bao trên hệ thống.

g. Hệ thống CDN

Là hệ thống tạo ra các bản sao của các file tĩnh (file ảnh, javascript, css, …) ở các máy chủ gần với ngƣời đọc nhất nhằm làm cho trang load nhanh hơn và giảm tải cho máy chủ web chính.

h. Hệ thống VPN

Là hệ thống bảo mật nhằm tạo ra một kênh giao tiếp an toàn giữa ngƣời sử dụng và hệ thống trong quá trình trao đổi và tƣơng tác dữ liệu. Mọi dữ liệu trao đổi qua VPN đều đƣợc xác thực và mã hóa. Tất cả những ngƣời quản trị nội dung trên báo khi muốn truy cập vào trang Admin để cập nhật nội dung đều phải thông qua một tài khoản VPN (đã đƣợc tạo và cung cấp từ trƣớc). Nếu không có tài khoản này thì không thể nào truy cập vào đƣợc phần Admin.

2.4.2 Thiết kế kiến trúc hệ thống vật lý mức chi tiết

2.4.2.1 Thiết kế kiến trúc Hệ thống máy chủ Cache

Hình 2.20: Kiến trúc hệ thống máy chủ Cache

Hệ thống máy chủ Cache gồm nhiều máy chủ cài đặt công cụ Memcached để lƣu lại các bản sao dữ liệu của ngƣời dùng ở lần đầu tiên truy cập.

Khi ngƣời dùng truy cập trang tại thời điểm đầu tiên, các máy chủ ứng dụng sẽ lấy trực tiếp dữ liệu từ máy chủ MySQL đồng thời lƣu dữ liệu vào các máy chủ Cache trong một thời gian nhất định. Hết khoảng thời gian đó, dữ liệu trong các máy chủ

Từ lần truy cập thứ hai trở đi, mỗi khi ngƣời dùng truy cập trang, các máy chủ ứng dụng sẽ lấy dữ liệu từ các máy chủ Cache đã lƣu trƣớc đó mà không cần phải vào trực tiếp máy chủ MySQL. Điều này giảm tải cho hệ thống máy chủ MySQL rất nhiều dẫn đến dữ liệu trả về cho ngƣời dùng nhanh hơn và trang hoạt động hiệu quả hơn. Chỉ khi nào không có dữ liệu trong các máy chủ Memcached, các máy chủ ứng dụng sẽ truy cập lại trực tiếp máy chủ MySQL để lấy dữ liệu phục vụ ngƣời dùng.

2.4.2.2 Thiết kế kiến trúc Hệ thống CDN

Hình 2.21: Kiến trúc hệ thống CDN

Hệ thống CDN đóng vai trò trung gian cung cấp dữ liệu đến ngƣời dùng. Dữ liệu từ hệ thống máy chủ web sẽ thông qua các máy chủ CloudFlare gần ngƣời dùng nhất để cung cấp kịp thời đến ngƣời dùng.

2.4.2.3 Thiết kế kiến trúc Hệ thống VPN

Hình 2.22: Kiến trúc hệ thống VPN

Hệ thống VPN giúp bảo mật quá trình tƣơng tác với hệ thống quản trị nội dung. Ngƣời dùng sử dụng OpenVPN Client để kết nối với hệ thống. Hệ thống sẽ xác thực tài khoản thông qua OpenVPN Server trƣớc khi ngƣời dùng truy cập đƣợc vào Khối chức năng Quản trị nội dung.

2.4.3 Quy trình hoạt động

Khách hàng thuê bao lần đầu tiên phải đăng ký một tài khoản trên hệ thống thông qua dịch vụ đăng ký thuê bao đƣợc cung cấp bởi Khối chức năng Đăng ký thuê bao. Trong quá trình đăng ký tài khoản, khách hàng lựa chọn các module sẽ sử dụng cho trang báo điện tử. Sau khi đăng ký xong, ngƣời thuê bao phải đợi quản trị hệ thống duyệt tài khoản thì trang báo điện tử của họ mới hoạt động đƣợc.

Trang báo sẽ hoạt động và hiển thị đƣợc ngay sau khi quản trị hệ thống đồng ý xác nhận tài khoản. Độc giả vào xem trang báo qua dịch vụ hiển thị trên web đƣợc cung cấp bởi Khối chức năng Web. Khối chức năng này sẽ xác định đƣợc chính xác trang báo điện tử mà ngƣời dùng muốn xem thông qua url của trang web đó. Khối chức năng Mobile sẽ giúp cho ngƣời đọc xem đƣợc trang báo trên điện thoại di động với giao diện

ngƣời đọc truy cập trang nhanh hơn bởi dữ liệu trên trang đƣợc lấy từ bên trong bộ nhớ. Hệ thống CDN giúp cho trang báo khi truy cập ở những nơi xa máy chủ web vẫn load bình thƣờng, không bị hiện tƣợng chạy chậm.

Tất cả các tin bài trên trang báo đều do cộng tác viên hoặc biên tập viên thu thập viết bài hoặc tổng hợp, trích dẫn từ các nguồn khác. Tin bài sau khi viết sẽ đƣợc chuyển qua chủ mục để duyệt. Chủ mục duyệt xong sẽ chuyển tiếp qua Thƣ ký tòa soạn hoặc Tổng biên tập duyệt lần cuối trƣớc khi xuất bản. Mọi tƣơng tác trên đều đƣợc thực hiện thông qua dịch vụ quản trị nội dung do Khối chức năng Quản trị cung cấp.

Vì việc quản trị nội dung hết sức quan trọng và có ảnh hƣởng lớn đến hệ thống báo điện tử nên mọi ngƣời dùng khi sử dụng phần này đều phải đăng nhập vào hệ thống thông qua hai lớp bảo mật. Lớp thứ nhất là lớp đăng nhập qua OpenVPN. Mỗi ngƣời sử dụng làm việc trên phần này đều đƣợc quản trị hệ thống cung cấp một tài khoản OpenVPN. Khi ngƣời dùng truy cập vào hệ thống, phần mềm OpenVPN Client (đƣợc cài đặt trên máy ngƣời dùng) sẽ yêu cầu xác thực tài khoản. Sau khi ngƣời dùng nhập đúng tài khoản OpenVPN, phần mềm OpenVPN Client chuyển ngƣời dùng đến lớp bảo mật thứ hai là lớp đăng nhập hệ thống quản trị nội dung. Ngƣời sử dụng dùng chính tài khoản của mình có trên hệ thống để đăng nhập vào và tiến hành quản trị tùy theo vai trò.

2.4.4 Công cụ phát triển và môi trƣờng phát triển

2.4.4.1 Phân tích và thiết kế hệ thống

 Ngôn ngữ sử dụng để phát triển hệ thống là ngôn ngữ Mô hình hóa thống nhất (UML).

 Công cụ hỗ trợ: Software Ideas Modeler Portable

 Môi trƣờng: Windows 7

2.4.4.2 Xây dựng chương trình

 Ngôn ngữ lập trình sử dụng để phát triển: PHP

 Nền tảng: CodeIgnitor Framework

 Cơ sở dữ liệu: MySQL

 Công cụ: NuSphere PhpED, phpMyAdmin, CodeIgnitor Framework, Memcached, CloudFlare và OpenVPN

 Web server: Apache

 Môi trƣờng phát triển: Linux

2.5 Thiết kế hệ thống báo điện tử ứng dụng điện toán đám mây 2.5.1 Biểu đồ lớp thiết kế của hệ thống 2.5.1 Biểu đồ lớp thiết kế của hệ thống

Để phân biệt dữ liệu của từng tài khoản thuê bao trên hệ thống báo điện tử, một số lớp (class) sẽ cùng có thuộc tính acc_id. Đây chính là id của tài khoản thuê bao sử

Ở lớp Article (Bài viết) sẽ có các thuộc tính created_by, approved_by, denied_by, published_by, unpublished_by để xác định tác giả bài viết, ngƣời duyệt bài viết, ngƣời trả về bài viết, ngƣời xuất bản bài viết và ngƣời hạ bài viết xuống.

Dƣới đây là chi tiết biểu đồ lớp thiết kế của hệ thống báo điện tử.

2.5.2 Xác định các gói thiết kế

Hệ thống ứng dụng đƣợc thiết kế theo hƣớng kiến trúc, chia hệ thống thành bốn khối chức năng chính: Khối chức năng Đăng ký thuê bao, khối chức năng Web, khối chức năng Mobile và khối chức năng Quản trị, có ứng dụng mô hình MVC (Model – View – Controller). View có chức năng hiển thị kết quả và tiếp nhận thông tin từ phía ngƣời dùng để chuyển Controller xử lý. Controller xử lý các tác vụ mà View gửi đến, sau đó gửi các yêu cầu truy vấn dữ liệu đến Model. Model gửi các truy vấn trực tiếp đến cơ sở dữ liệu hệ thống để lấy kết quả. Kết quả trả về sẽ đƣợc Controller gửi lại cho View để hiển thị lên cho ngƣời dùng. Vì vậy, các gói thiết kế của hệ thống cụ thể sẽ nhƣ sau:

TT Các gói thiết kế Mô tả

Khối chức năng Đăng ký thuê bao

1 Model Tâng truy nhập dữ liệu

2 Controller Tkhiầng xển) ử lý các yêu cầu nghiệp vụ (Tầng điều

3 View Tầng hiển thị dữ liệu cho ngƣời dùng (Tầng giao

diện)

Khối chức năng Web

1 Model Tâng truy nhập dữ liệu

2 Controller Tầng xử lý các yêu cầu nghiệp vụ (Tầng điều khiển)

3 View Tầng hiển thị dữ liệu cho ngƣời dùng (Tầng giao

diện)

Khối chức năng Mobile

1 Model Tâng truy nhập dữ liệu

2 Controller Tầng xử lý các yêu cầu nghiệp vụ (Tầng điều khiển)

3 View Tdiầệng hin) ển thị dữ liệu cho ngƣời dùng (Tầng giao

TT Các gói thiết kế Mô tả

Khối chức năng Quản trị

1 Model Tâng truy nhập dữ liệu

2 Controller Tầng xử lý các yêu cầu nghiệp vụ (Tầng điều khiển)

3 View Tầng hiển thị dữ liệu cho ngƣời dùng (Tầng giao

diện)

2.5.3 Thiết kế cho từng ca sử dụng

2.5.3.1 Gói ca sử dụng Đăng ký tài khoản thuê bao hệ thống

a. Ca sử dụng Đăng ký tài khoản

 Các lớp tham gia thực thi ca sử dụng Đăng ký tài khoản

Gói Lớp mô hình phân tích Lớp thiết kế thích Chú

Model CloudMemberModel CloudModuleModel CloudModuleMemberModel CloudMemberModel CloudModuleModel CloudModuleMemberModel PHP Controller MemberRegistrationController MemberRegistrationController PHP

View CloudMemberView

CloudModuleView

CloudMemberView

CloudModuleView PHP

Bảng 2.18: Các lớp tham gia thực thi ca sử dụng Đăng ký tài khoản

 Thiết kế ca sử dụng Đăng ký tài khoản

 Biểu đồ lớp của ca sử dụng Đăng ký tài khoản

Hình 2.25: Biểu đồ lớp thiết kế ca sử dụng Đăng ký tài khoản 2.5.3.2 Gói ca sử dụng Hiển thị báo điện tử trên hệ thống 2.5.3.2 Gói ca sử dụng Hiển thị báo điện tử trên hệ thống

a. Ca sử dụng Kiểm soát thuê bao

 Các lớp tham gia thực thi ca sử dụng Kiểm soát thuê bao

Gói Lớp mô hình phân tích Lớp thiết kế Chú thích

Model CloudMemberModel

CloudModuleModel

CloudMemberModel

CloudModuleModel PHP

Controller CloudMemberObservationController CloudMemberObservationController PHP

View CloudMemberView

CloudModuleView

CloudMemberView

CloudModuleView PHP

 Thiết kế ca sử dụng Kiểm soát thuê bao

Hình 2.26: Sơ đồ thiết kế ca sử dụng Kiểm soát thuê bao

2.5.3.3 Gói ca sử dụng Quản trị nội dung báo điện tử

a. Ca sử dụng Xuất bản bài viết

 Các lớp tham gia thực thi ca sử dụng Xuất bản bài viết

Gói Lớp mô hình phân tích Lớp thiết kế Chú thích

Model UserModel CategoryModel ArticleModel SourceModel CloudMemberModel UserModel CategoryModel ArticleModel SourceModel CloudMemberModel PHP

Controller ArticlePublishController ArticlePublishController PHP

View UserView CategoryView ArticleView SourceView CloudMemberView UserView CategoryView ArticleView SourceView CloudMemberView PHP

Bảng 2.20: Các lớp tham gia thực thi ca sử dụng Xuất bản bài viết

 Thiết kế ca sử dụng Xuất bản bài viết

 Biểu đồ lớp của ca sử dụng Xuất bản bài viết

Hình 2.29: Biểu đồ lớp thiết kế ca sử dụng Xuất bản bài viết

CHƢƠNG III – CÀI ĐẶT VÀ THỬ NGHIỆM HỆ THỐNG

3.1 Kiến trúc logic hệ thống mức tổng quan

Hình 3.1: Kiến trúc logic hệ thống báo điện tử

Kiến trúc hệ thống báo điện tử bao gồm bốn khối chức năng chính sau:

 Khối chức năng Đăng ký thuê bao: Cung cấp dịch vụ đăng ký tài khoản thuê bao sử dụng hệ thống. Trong quá trình đăng ký, ngƣời sử dụng có thể chọn giao diện trang báo điện tử cũng nhƣ lựa chọn các module (chức năng) cần sử dụng cho trang báo. Khối này đƣợc thiết kế theo hƣớng đảm bảo khả năng chịu tải tốt khi có nhiều ngƣời cùng truy cập.

 Khối chức năng Web: Khối này chịu trách nhiệm hiển thị trang báo điện tử của một tài khoản trong hệ thống dƣới dạng website trên Internet.

 Khối chức năng Mobile: Cho phép trang báo hiển thị tốt trên các loại thiết bị cầm tay cũng nhƣ các loại điện thoại thông minh.

 Khối chức năng Quản trị: Cung cấp dịch vụ quản trị nội dung, các dữ liệu hiển thị trên trang báo điện tử của một tài khoản trong hệ thống. Khối này có các cơ chế bảo mật giúp ngƣời sử dụng hoàn toàn yên tâm khi thực hiện các thao tác trên đó.

Ngoài ra, hệ thống còn cài đặt CDN, Cache và VPN để tăng khả năng chịu tải và nâng cao độ bảo mật cho hệ thống.

3.2 Kiến trúc logic hệ thống mức chi tiết 3.2.1 Kiến trúc logic hệ thống máy chủ Cache 3.2.1 Kiến trúc logic hệ thống máy chủ Cache

Hình 3.2: Data Caching áp dụng cho hệ thống

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.

Một phần của tài liệu (LUẬN văn THẠC sĩ) kiến trúc hướng dịch vụ và ứng dụng điện toán đám mây trong việc quản lý báo điện tử (Trang 56)

Tải bản đầy đủ (PDF)

(92 trang)