Mô tả bài toán

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 48)

Hiện nay, trò chơi trực tuyến, tức Game Online, đang trở thành một lĩnh vực dịch vụ giải trí có mức độ phát triển nhanh hiện nay. Dịch vụ này cung cấp một trò chơi tập thể trong đó người chơi có thể ngồi tại nhà với một máy tính nối mạng, cùng tham gia vào một thế giới trò chơi ảo. Máy chủ của nhà cung cấp sẽ làm nhiệm vụ liên tục thu nhận hành vi của người chơi, xử lý thông tin đồng bộ từ tập thể người chơi rồi cập nhật trạng thái mới cho mỗi máy chơi. Sự tham gia tập thể của rất nhiều người chơi sẽ làm tăng sức hút của bản thân trò chơi đó, nhưng cũng làm phát sinh việc lừa gạt, dối trá làm ảnh hưởng tới kết quả của người chơi.

Hiện nay, trên thị trường trò chơi trực tuyến của Việt Nam, có rất nhiều nhà cung cấp dịch vụ, trong đó phải kể đến một nhà cung cấp dịch vụ lớn là VTC-Game, với nhiều trò chơi do VTC-Game cung cấp như Audition, FifaOnline, CrossFire … đã chiếm thị phần rất lớn (khoảng 55%) người chơi trong nước, lượng người chơi trong lúc cao điểm có thể lên tới 10 ngàn lượt chơi đối với một trò chơi tại một thời điểm. Tuy nhiên, trong thời gian qua, lượng người chơi các trò chơi này giảm sút đáng kể do có quá nhiều người chơi sử dụng các công cụ lừa dối, làm ảnh hưởng tới kết quả chơi của bản thân họ và những người khác, làm giảm doanh thu và số lượng người chơi.

Sản phẩm VTCGuard – được xây dựng và phát triển bởi phòng Phát triển công nghệ, Công ty Công ty đầu tư và phát triển công nghệ thông tin – VTC Intecom, là

Thông thường, các nhà sản xuất trò chơi hiện nay, họ chỉ tập trung chủ yếu vào việc phát triển và sản xuất trò chơi mới chứ không chú ý đến việc xây dựng hệ thống bảo vệ trò chơi của họ. Việc xây dựng hệ thống bảo vệ đều do hãng thứ ba sản xuất, do đó khi nhà cung cấp trò chơi (ví dụ: VTC-Game) mua sản phẩm từ nhà phân phân phối trò chơi về, họ lại phải lựa chọn hệ thống bảo vệ cho trò chơi của mình từ một nhà cung cấp nào đó. Sau khi lựa chọn xong, cả ba bên cùng ngồi thỏa thuận và lúc này mới tiến hành ghép nối giữa GameClient và GameGuard, quá trình này có thể phức tạp và mất thời gian, đôi khi còn xảy ra lỗi do xung khắc mà phải mất nhiều thời gian khắc phục do sự khác biệt giữa các bên liên quan.

Hệ thống VTCGuard ra đời nhằm đáp ứng hai yêu cầu: Chống lại những tác động của hacker từ phía máy khách và tạo ra một hệ thống có thể dễ dàng ghép nối với các trò chơi khác mà đảm bảo không có xung đột giữa bản thân trò chơi và phần mềm bảo vệ. Việc bảo vệ trò chơi chủ yếu được dựa vào cơ chế phát hiện mẫu trên máy tính người chơi. Mô hình tổng quát của hệ thống có thể được mô tả như hình vẽ sau:

GuardClient Máy chư trò chưi

Internet

Máy ngưưi chưi Máy chư guard

GameClient Đưng bư

Các thành phần chính của hệ thống là:

Máy chủ Guard: Các cụm máy chủ nằm ở phía nhà cung cấp dịch vụ, chúng gồm các máy chủ phục vụ cập nhật, máy chủ thu nhận thông tin, báo cáo …

GameGuard: Là thành phần chính của hệ thống, nằm trên máy khách, có nhiệm vụ bảo vệ GameClient trước sự tấn công của của các chương trình lừa dối và lừa gạt. GameGuard được gắn và tương tác với GameClient bằng một cơ chế đặc biệt là đồng bộ hóa và cảnh báo. Cơ chế liên kết phải đảm bảo tính bảo mật và an toàn

Các chức năng chính của GameGuard là:

Quét tất cả các tiến trình đang chạy trên máy tính người chơi: Khi GameGuard khởi động thì nó thực hiện việc quét tất cả các tiến trình đang chạy trên máy người chơi để kiểm tra xem có tiến trình nào đang thực thi thuộc diện tiến trình lừa dối không? Nếu có, hệ thống sẽ báo cho GameClient thoát và sau đó cũng thoát theo. Nếu không tìm thấy tiến trình lừa dối nào, hệ thống vẫn hoạt động bình thường.

Nhận biết các tiến trình phát sinh sau khi đã quét tất cả: Sau khi quét tất cả các tiến trình mà không có hiện tượng bất thường nào, trò chơi vẫn tiếp tục bình thường. Chức năng này có tác dụng nhận biết các tiến trình được khởi động sau quá trình quét tất cả và kiểm tra xem tiến trình mới này có thuộc diện lừa dối không.

Điều khiển Driver của Guard: có tác dụng điều khiển driver của hệ thống hoạt động. Bản thân Guard không thể tác động trực tiếp lên hệ điều hành mà phải thông qua driver để che dấu thông tin và giám sát toàn bộ hệ thống

Điều khiển GameClient hoạt động thông qua cơ chế đồng bộ: Guard điều khiển hoạt động bật – tắt GameClient thông qua cơ chế đồng bộ này. Khi GameGuard phát hiện có tiến trình lừa dối trên máy tính người chơi, nó sẽ ra lệnh cho GameClient thoát và thoát theo

Giao tiếp GameGuard – Máy chủ guard: Giao tiếp với hệ thống máy chủ của nhà cung cấp nhằm thực hiện các chức năng như: Cập nhật

phiên bản mới, gửi các dữ liệu thu thập được từ máy tính người chơi về máy chủ của nhà cung cấp.

Từ đó, chúng ta có thể thấy được các thành phần cụ thể của chương trình mô tả các thành phần của chương trình như hình vẽ sau:

Hoocking

Che dưu thông tin Quét tiưn trình

Giao tiưp vưi GameClient Giao tiưp vưi máy chư Guard (HĐTĐ)

Lưy blacklist vư Mã hóa/Giưi mã

Tư đưng cưp nhưt So sánh vưi mưu trong blacklist

Điưu khiưn driver

User Mode

Kernel Mode

Hình 13: Tổng quan hệ thống Guard 4.1.2 Lý do sử dụng hàng đợi thông điệp

Như đã miêu tả ở trên, một thành phần quan trọng của hệ thống là giao tiếp giữa GameGuard và máy chủ Guard của nhà cung cấp. Khi GameGuard phát hiện được tiến trình lừa dối đang thực thi trên máy của người chơi, trước khi thông báo thoát trò chơi và thoát Guard, một nhiệm vụ của GameGuard là gửi các thông tin của người chơi về cho máy chủ của nhà cung cấp (máy chủ GameGuard) để giúp nhà cung cấp có thể theo dõi, cập nhật thông tin và nếu cần thì có thể can thiệp vào tài khoản người chơi đó. Các thông tin được gửi lên máy chủ bao gồm: Thông tin về tài khoản người chơi và thông tin về công cụ lừa dối được người chơi sử dụng.

Ở đây, chúng ta sử dụng hàng đợi thông điệp làm cơ chế truyền thông tin từ máy tính người chơi lên máy chủ. Lý do sử dụng hàng đợi thông điệp là vì:

 Tại cùng một thời điểm, có thể có rất nhiều người cùng tham gia trò chơi và cũng có thể có rất nhiều người sử dụng công cụ để lừa dối trong khi chơi (đặc biệt là khi có một phiên bản công cụ lừa dối miễn phí mới được tung ra, có thể có rất nhiều người sử dụng). Khi đó, có thể có rất nhiều kết nối được thiết lập tới máy chủ của nhà phát hành trò chơi. Tuy nhiên, trong thực tế, số lượng máy chủ phục vụ cho hệ thống Guard lại không phải là nhiều. Nhà phát hành trò chơi có thể đầu tư rất nhiều máy chủ để phục vụ kinh doanh, nhưng không thể cung cấp quá nhiều máy chủ cho hệ thống Guard. Hơn nữa, lượng kết nối tới máy chủ Guard thường chỉ lớn trong một khoảng thời gian nhất định (thời điểm phiên bản công cụ lừa dối mới được tung ra, như đã nói ở trên). Nếu người dùng chơi trò chơi một cách bình thường và không sử dụng công cụ lừa dối nào, sẽ không có kết nối từ máy người chơi tới máy chủ guard. Các giao tiếp này chỉ nhằm mục đích gửi thông tin tới máy chủ, việc phản hồi thông tin tới máy khách ngay lập tức là không cần thiết. Vì vậy, máy chủ Guard có thể từ từ xử lý thông tin mà không bị yêu cầu rằng buộc khắt khe về mặt thời gian. Trong khi đó, nếu sử dụng các phương pháp kết nối khách – chủ thông thường, có thể gây ra hiện tượng quá tải, có thể gây lỗi ở phía máy người dùng và tê liệt hệ thống máy chủ.

 Phần mềm VTCGuard là một phần mềm được đi kèm với các phần mềm khác, ở đây cụ thể là GameClient. Do vậy một yêu cầu bắt buộc của phần mềm này là nó phải được ghép nối tốt với trò chơi (trên máy khách), không gây ra lỗi trong quá trình chơi của khách hàng. Trong khi đó, các trò chơi lại được các nhóm khác nhau phát triển, sử dụng các công nghệ và môi trường phát triển khác nhau. Cụ thể, trò chơi Audition được phát triển trên nền Visual Studio 6.0 trong khi trò chơi Squad lại được phát triển trên nền Visual Studio 2005.

Để giải quyết vấn đề này, chúng ta sử dụng hàng đợi thông điệp cho việc giao tiếp khách – chủ. Khi phát hiện máy người dùng bị tấn công, GameGuard sẽ gửi thông tin tài khoản người chơi và thông tin chương trình lừa dối tới hàng đợi thông

cùng một thời điểm, rất nhiều máy tính khách có thể truyền thông tin tới máy chủ. Nếu máy chủ không kịp xử lý thì thông tin vẫn được lưu trên hàng đợi mà không sợ mất đi. Điều quan trọng nhất là nó giúp giảm nguy cơ có lỗi kết nối từ máy khách và giảm nguy cơ tê liệt hệ thống máy chủ. Để thuận lợi cho quá trình ghép nối với trò chơi, nhóm phát triển đã sử dụng công cụ phát triển Visual Studio 6.0 nhằm tương thích với các phần mềm sử dụng các công cụ phát triển khác nhau.

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 48)

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

(62 trang)