Lựa chọn hàng đợi thông điệp cho hệ thống

Một phần của tài liệu Ứng dụng mô hình hàng đợi thông điệp trong kiến trúc khách - chủ (Trang 53)

Như đã trình bày ở trên, việc sử dụng hàng đợi thông điệp làm giao thức giao tiếp khách – chủ là hoàn toàn phù hợp cho “Hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền Windows chống lại các hacker”. Hiện. nay có nhiều hệ thống hàng đợi thông điệp được phân phối và phổ biến (với các đặc tính như đã trình bày ở trên). Tuy nhiên, với những yêu cầu đặc thù của hệ thống, có những giải pháp hàng đợi thông điệp có thể rất tốt trong nhiều trường hợp khác nhưng lại không thể ứng dụng cho hệ thống ở đây. Một ví dụ là các hệ thống hàng đợi thông điệp chỉ hỗ trợ giao diện lập trình cho ngôn ngữ Java. Khi đó ứng dụng khách phải chạy trên máy tính có cài máy ảo Java và như vậy không thích hợp cho việc triển khai trò chơi trên máy tính người dùng. Hay một giải pháp hàng đợi hệ thống rất mạnh trên nền tảng Windows là MSMQ, có hỗ trợ giao diện lập trình C++. Tuy nhiên, một yêu cầu bắt buộc khi sử dụng giải pháp này là người dùng phải kích hoạt một dịch vụ hàng đợi thông điệp trên máy khách (đă được cài đặt cùng hệ điều hành nhưng chưa được bật lên khi cài đặt hệ điều hành một cách mặc định). Điều này gây ra nhiều phiền phức cho người dùng nếu hệ thống này được triển khai kèm trò chơi.

Có hai giải pháp hàng đợi thông điệp là phù hợp để triển khai cùng ứng dụng trò chơi. Sự khác biệt ở đây là thông điệp được lưu ở hàng đợi thông điệp một cách tạm thời (trên bộ nhớ) hay một cách bền vững (trên ổ đĩa). Trong phần này, chúng ta sẽ xem xét đặc tính của từng hệ thống

4.2.1 Hệ thống lƣu thông điệp tạm thời

Sử dụng giải pháp này, thông điệp khi đến máy chủ của nhà cung cấp sẽ được lưu trên bộ nhớ. Một chương trình trên máy chủ sẽ có nhiệm vụ đón nhận thông tin này và lưu chúng vào cơ sở dữ liệu. Với giải pháp này, chúng ta sử dụng hệ thống hàng đợi thông điệp Zero Message Queue, được phát triển dựa trên cơ sở của giao

thức hàng đợi thông điệp amqp. Lý do chúng ta lựa chọn giải pháp này cho giao tiếp khách – chủ của sản phẩm “Hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền Windows chống lại các hacker” bao gồm :

Sự tương thích với trò chơi

Zero Message Queue cung cấp một giao thức giao tiếp khách – chủ không đồng bộ và mềm dẻo. Ứng dụng khách có thể lập trình bằng ngôn ngữ lập trình C++ và không đòi hỏi phải chạy trên hệ điều hành Microsoft Windows mà không cần thêm bất kỳ một nền tảng đặc biệt nào.

Khả năng xử lý trên máy chủ

Với giải pháp giao tiếp khách – chủ này, thông điệp trên hàng đợi thông điệp sẽ được lưu vào bộ nhớ của máy chủ. Do vậy mà tốc độ xử lý thông điệp trên máy chủ sẽ được tăng lên đáng kể. Hơn nữa, chương trình trên máy chủ có thể chạy trên các nền tảng hệ điều hành khác nhau (Windows hoặc Linux)

4.2.2 Hệ thống lƣu thông điệp bền vững

Đối với giải pháp này, chúng ta sử dụng hệ thống hàng đợi thông điệp SAFMQ – một hệ thống hàng đợi thông điệp miễn phí, cung cấp một phương pháp giao tiếp khách – chủ không đồng bộ. Từ ứng dụng khách, thông tin sẽ được đóng gói thành thông điệp và gửi tới hàng đợi được đặt trên máy chủ. Hàng đợi này sẽ lưu giữ thông điệp cho tới khi thông điệp đó được truyền nguyên vẹn tới ứng dụng đích. Hệ thống hàng đợi thông điệp có nhiệm vụ đảm bảo cho thông điệp được bảo tồn nguyên vẹn cho tới khi ứng dụng đích nhận được thông điệp đó.

Lý do chúng ta lựa chọn SAFMQ là giải pháp giao tiếp khách – chủ là:

Sự tương thích với trò chơi

Cũng như các hệ thống hàng đợi thông điệp khác, SAFMQ cung cấp các giao diện lập trình cho các ngôn ngữ khác nhau. Ở đây, ứng dụng khách có thể lập trình bằng ngôn ngữ C++ và chạy trên nền tảng Microsoft Windows. Do đó, ứng dụng khách hoàn toàn có thể tương thích với ứng dụng trò chơi trên máy khách mà không đòi hỏi người chơi phải cài đặt thêm gì (như máy ảo Java, nền tảng .NET của Microsoft hay phải kích hoạt các dịch vụ đặc biệt của Microsoft trước khi chơi)

Thông tin truyền đi được đảm bảo

tại như là những tệp trên ổ đĩa, do vậy thông tin ở đây đảm bảo không bị mất đi ngay cả khi chương trình chủ (hay thậm chí là máy chủ) cần khởi động lại.

Sử dụng giải pháp giao tiếp này, các chương trình khách và chủ có thể được chạy ở các thời điểm khác nhau và giảm được nguy cơ quá tải hệ thống. Trong trường hợp chương trình chủ chưa sẵn sàng (chưa được khởi động) hoặc không xử lý kịp (trong trường hợp có quá nhiều thông điệp cùng được gửi tới máy chủ), thông điệp sẽ được lưu vào hàng đợi trên máy chủ và được xử lý khi chương trình chủ đã sẵn sàng.

Hệ thống cung cấp cơ chế xác thực quyền truy cập từ ứng dụng khách vào hàng đợi chứa thông điệp. Vì vậy, sử dụng giải pháp giao tiếp này giúp chúng ta có thể kiểm soát, ngăn ngừa được những truy cập không mong muốn vào hệ thống trên máy chủ

Hệ thống hàng đợi thông điệp này còn cho phép chúng ta thiết lập các giao tiếp theo bó (nghĩa là thông tin được truyền lên máy chủ theo một nhóm (hay một tập hợp). Nếu việc truyền một thông điệp bị lỗi thì tất cả các thông điệp trong nhóm đó sẽ bị hủy bỏ. Khả năng này của hệ thống giúp thông tin được truyền đi đảm bảo được tính nhất quán.

Ứng dụng chủ trên máy chủ của nhà phân phối (lấy thông tin từ hàng đợi thông điệp đưa vào cơ sở dữ liệu) có thể được xây dựng một cách linh hoạt. Ứng dụng này có thể được viết bằng các ngôn ngữ lập trình khác nhau như C++, Java hay C# (ứng dụng chạy trên máy chủ nên chúng ta không cần lo lắng về việc cần cài đặt thêm các nền tảng khác nhau để chạy ứng dụng này) và có thể chạy trên các hệ điều hành khác nhau (Windows hay Linux)

4.3 Cài đặt và tích hợp thử hệ thống

Mô hình hàng đợi thông điệp được tích hợp vào một sản phẩm phần mềm cụ thể là phần mềm bảo vệ trò chơi trực tuyến GameGuard như đã trình bày ở trên. Sản phẩm này đang trong quá trình thử nghiệm và chuẩn bị đưa vào vận hành tại Công ty Đầu tư và phát triển công nghệ thông tin – VTC Intecom, trực thuộc Tổng công ty Truyền thông đa phương tiện VTC. Sơ đồ các thành phần chính của hệ thống được thể hiện như trong hình vẽ sau:

Internet

Tưng kernel

GameClient Đưng bư

Guard

Driver

NTDLL.dll

Máy chư trò chưi

Nhà phân phưi trò chưi

Máy chư cưp nhưt (adsbygoogle = window.adsbygoogle || []).push({});

Máy chư lưu báo cáo B áo c áo n gư ư i c h ư i l ư a d ư i Lư y b ưn c ưp n h ưt b la ck lis t

Nhà phân phưi trò chưi

Tưng user

Hình 14: Mô hình cài đặt hệ thống GameGuard với GameClient tại VTC

4.3.1 Thành phần GameClient

Thành phần này được sản xuất và phát hành bởi nhà cung cấp, nhà phân phối (VTC) sẽ cung cấp cho nhà cung cấp thư viện để đồng bộ hóa trong đó có các API cần thiết để tích hợp với GameClient. Các chức năng thông thường của GameClient

thời kết nối với máy chủ trò chơi để thông báo các thao tác chơi và cập nhật trạng thái chơi về máy chủ của nhà phân phối. Thông qua đồng bộ (do nhà phân phối cung cấp), GameClient tương tác với máy chủ của trò chơi để thực hiện cơ chế kiểm tra sự tồn tại của tiến trình lừa dối trong môi trường máy khách, nếu phát hiện thấy, cả trò chơi và GameGuard cùng thoát.

4.3.2 Thành phần GameGuard

Là thành phần trung tâm của hệ thống bảo vệ, được cài đặt các tính năng như sau:

Tự động cập nhật: Cập nhật các tệp cần thiết cho GameGuard, như tệp mẫu chứa mẫu các chương trình lừa dối trong trò chơi.

Kết nối đến máy chủ của VTC: Gửi thông tin khảo sát trên máy chơi về, cập nhật vào cơ sở dữ liệu mã nghi vấn

Liên lạc đồng bộ: Liên lạc giữa GameGuard và GameClient thông qua cơ chế đồng bộ (dữ liệu được mã hóa để bảo mật).

Che dấu, bảo vệ thông tin: Không cho tin tặc tấn công vào hệ thống.

Quét kiểm tra: Kiểm tra các tiến trình đang chạy để phát hiện công cụ lừa dối trong trò chơi.

4.4 Kết quả thử nghiệm

4.4.1 Kết quả thử nghiệm truyền dữ liệu

Trước khi tiến hành ứng dụng mô hình hàng đợi dữ liệu vào hệ thống, nhóm đã tiến hành thử nghiệm khả năng giao tiếp khách – chủ của hàng đợi thông điệp với hệ thống Zero Message Queue. Thông tin văn bản với các dung lượng khác nhau được truyền từ ứng dụng khách lên máy của nhà phân phối. Một máy chủ cấu hình chíp Intel Xecon Quad Core E5420, 2,5GHz, dung lượng bộ nhớ 4Gb, cài đặt hệ điều hành Windows Server 2008 thì khả năng xử lý thông tin theo bảng sau:

Dung lượng một thông điệp (Byte)

Số thông điệp gửi đi Tốc độ xử lý thông điệp trên máy chủ (thông điệp/giây)

1 10000 1902406

100 10000 276301

200 10000 152091

1000 10000 31868

2000 10000 16494

Bảng 2: Kết quả truyền dữ liệu 4.4.2 Kết quả khi tích hợp với hệ thống

Với mô hình hệ thống hàng đợi thông điệp ở trên, tác giả đã tích áp dụng vào phần mềm VTC GameGuard. Phần mềm này đã tích hợp thực tế với một số trò chơi do VTC-Game phát hành như Squad, CrossFire (Đột kích), Audition (AU). Kết quả khi thử nghiệm hệ thống sau khi tích hợp, hệ thống chạy ổn định, không xung khắc với trò chơi trên nền hệ điều hành Windows XP sp2 và Windows 7. Thông tin về người chơi và công cụ lừa dối được truyền đầy đủ từ chương trình khách lên máy chủ của nhà phân phối.

Hệ thống giao tiếp khách – chủ chạy ổn định và không gây lỗi. Việc sử dụng hàng đợi thông điệp cho giao tiếp khách – chủ không tốn nhiều tài nguyên của máy tính người chơi, do đó không ảnh hưởng tới hiệu suất của máy tính khách khi chơi.

Hơn nữa, việc triển khai thành phần giao tiếp khách – chủ với hàng đợi thông điệp không yêu cầu máy tính người chơi phải cài đặt thêm phần mềm nào (do ứng dụng khách được viết bằng ngôn ngữ C++ trên nền Windows) và không phải thực hiện thao tác gì đặc biệt. Do đó, việc sử dụng hàng đợi thông điệp cho giao tiếp khách – chủ là hoàn toàn có thể chấp nhận được.

Chương trình chủ chạy ổn định trên nền hệ điều hành Windows Server 2008, lấy đầy đủ thông tin gửi lên từ máy khách và đưa vào cở sở dữ liệu của nhà phân phối

Hình 15: Hệ thống chạy ổn định khi tích hợp với Audition (adsbygoogle = window.adsbygoogle || []).push({});

Như đã trình bày trong phần mô tả bài toán, một trong những yêu cầu quan trọng nhất của phần mềm bảo vệ là tính tương thích với trò chơi. Nghĩa là ở các điều kiện bình thường, chương trình trò chơi trên máy khách không thoát đột ngột hoặc không có lỗi hệ thống một cách bất thường. Ở đây, hệ thống khi được tích hợp vào game Audition thỏa mãn yêu cầu trên. Khi chạy trò chơi một cách bình thường, chỉ có biểu tượng nhỏ của Guard được xuất hiện ở góc trái màn hình. Biểu tượng này thể hiện driver của Guard đã được cài đặt thành công và chương trình Guard đang hoạt động bình thường trên máy tính.

Trong quá trình chơi trò chơi, nếu người chơi sử dụng các công cụ để lừa gạt kết quả của trò chơi, hệ thống sẽ phát hiện ra. Khi đó, thông tin tài khoản người chơi và thông tin công cụ lừa gạt sẽ được gửi từ ứng dụng Guard lên thành phần chủ của hệ thống hàng đợi thông điệp trên máy chủ của nhà cung cấp. Chương trình trên máy chủ sẽ đón nhận thông tin từ hàng đợi và đưa vào hệ quản trị cơ sở dữ liệu. Quá trình thử nghiệm cho thấy thông tin từ máy tính người chơi được đưa đầy đủ vào cơ sở dữ liệu trên máy chủ

Thông tin về người chơi cố tình lừa dối trong trò chơi

Hình 16: Thông tin tài khoản ngƣời chơi sử dụng công cụ lừa dối

Thông tin về các chương trình lừa dối trong trò chơi được người chơi sử dụng

Chƣơng 5. Kết luận 5.1 Đánh giá kết quả

Việc ứng dụng mô hình hàng đợi thông điệp là khả thi trong một hệ thống cụ thể. Phương thức giao tiếp ở đây được thực hiên là giao tiếp không đồng bộ hóa. Chương trình khách sau khi gửi thông tin tới chương trình chủ sẽ tiếp tục thực hiện các công việc khác mà không cần quan tâm là thông tin đó đã tới được chương trình chủ hay chưa.

Ứng dụng trên máy chủ có khả năng tương thích cao, vì vậy, trong trường hợp số lượng kết nối tới máy chủ nhiều, có thể dễ dàng triển khai ứng dụng đó trên các máy tính khác được điều động để tăng cường khả năng xử lý thông tin từ phía máy chủ

5.2 Kết luận

Sử dụng hàng đợi thông điệp có thể làm tăng thông lượng chung – cũng là tăng hiệu suất chung của hệ thống

Sử dụng hàng đợi thông điệp cho một hệ thống cụ thể có thể mang lại những lợi ích rõ ràng nhưng cũng có thể gây ra những tác động không mong muốn vào hệ thống. Vì vậy, việc ứng dụng hàng đợi thông điệp vào hệ thống cần được cân nhắc kỹ, dựa trên nhiều yếu tố.

Tài liệu tham khảo

[1]AMQP Group. Advanced Message Queuing Protocol, Protocol Specification, 2008.

[2]Sara Bouchenak and Noel De Palma. Message Queuing System, Department of Computer Science, University of Grenoble I – Inria, Grenoble, France, 2007 [3]Hany Mohammed Abdulaziz Almansour. Performance Evaluation for a

Message-oriented Middleware with Priority Queue, Master thesis, Computer Engineering, College of Computer Science in King Saud University, 2007

Một phần của tài liệu Ứng dụng mô hình hàng đợi thông điệp trong kiến trúc khách - chủ (Trang 53)