Luận Văn: Ứng Dụng Mô Hình Hàng Đợi Thông Điệp trong Kiến Trúc Khách - Chủ (ĐH Quốc Gia Hà Nội)

Luận văn thạc sĩ: Ứng dụng mô hình hàng đợi thông điệp trong kiến trúc khách chủ. Nghiên cứu giải pháp hiệu quả cho hệ thống phân tán.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2011

62
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CÁM ƠN

Mục lục

Bảng ký hiệu các chữ viết tắt

Danh mục các bảng

Danh mục hình vẽ

Mở đầu

1. Lý do chọn đề tài

2. Tóm tắt cô đọng các luận điểm cơ bản của luận văn

3. Nội dung của luận văn

1. Chƣơng 1. Tổng quan về kiến trúc khách – chủ và hàng đợi thông điệp

1.1. Kiến trúc khách – chủ

1.2. Mô hình khách – chủ

1.3. Đồng bộ – Không đồng bộ

1.4. Hàng đợi thông điệp

1.4.1. Thông điệp

1.4.2. Hàng đợi thông điệp

2. Chƣơng 2: Hàng đợi thông điệp trong kiến trúc khách – chủ

2.1. Kiến trúc hàng đợi thông điệp

2.1.1. Ứng dụng khách

2.1.2. Ứng dụng chủ

2.1.3. Thành phần định tuyến

2.2. Lý do sử dụng hàng đợi thông điệp

2.2.1. Các chương trình có thể chạy ở các thời điểm khác nhau

2.2.2. Không rằng buộc về cấu trúc chương trình

2.2.3. Các chương trình được tách riêng biệt khỏi sự phức tạp của mạng

2.2.4. Chương trình có thể được sắp xếp, lên lịch để sử dụng tài nguyên một cách tốt nhất

2.2.5. Sự phối hợp giữa các tài nguyên

2.2.6. Dễ dàng di chuyển và sử dụng lại mã chương trình

2.2.7. Khi nào sử dụng hàng đợi thông điệp

2.2.8. Lợi ích của hàng đợi thông điệp so với cơ sở dữ liệu

2.3. Vòng đời của một thông điệp

2.4. Quá trình kết nối

2.5. Các thuộc tính của một hàng đợi thông điệp

2.5.1. Tính duy nhất

2.5.2. Tính duy trì

2.5.3. Một số thuộc tính khác

2.6. Các yêu cầu của một hàng đợi thông điệp

2.6.1. Yêu cầu chức năng

2.6.2. Yêu cầu khác

2.7. Một số hệ thống hàng đợi thông điệp phổ biến

2.7.1. IBM WebSphere MQ

2.7.2. Microsoft Message Queueing

3. Chƣơng 3: Thiết kế hàng đợi thông điệp

3.1. Mô hình hàng đợi

3.1.1. Hàng đợi vào trước ra trước

3.1.2. Hàng đợi có ưu tiên

3.2. Mô hình luồng thời gian

3.3. Hiệu năng của hệ thống

3.3.1. Một số định nghĩa

3.3.2. Thông lượng hệ thống

3.3.2.1. Mô hình giao tiếp đồng bộ
3.3.2.2. Mô hình hàng đợi thông điệp vào trước ra trước
3.3.2.3. Mô hình hàng đợi thông điệp có độ ưu tiên

4. Chƣơng 4: Thử nghiệm về áp dụng hàng đợi thông điệp để phân tải trong ứng dụng kiến trúc khách – chủ

4.1. Bài toán thử nghiệm

4.1.1. Mô tả bài toán

4.1.2. Lý do sử dụng hàng đợi thông điệp

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

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

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

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

4.3.1. Thành phần GameClient

4.3.2. Thành phần GameGuard

4.4. Kết quả thử nghiệm

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

4.4.2. Kết quả khi tích hợp với hệ thống

4.4.2.1. Đánh giá kết quả

5. Chƣơng 5: Kết luận

Tài liệu tham khảo

Tóm tắt

I. Tổng Quan về Ứng Dụng Hàng Đợi Tin Nhắn Lợi Ích Cách Dùng

Kiến trúc khách-chủ là một mô hình phổ biến trong phát triển phần mềm, đặc biệt là trong các hệ thống phân tán. Việc giao tiếp giữa ứng dụng kháchứng dụng chủ đóng vai trò then chốt. Lựa chọn phương thức giao tiếp phù hợp có thể tiết kiệm chi phí, tăng độ tin cậy và hiệu quả. Bài viết này tập trung vào việc áp dụng mô hình hàng đợi tin nhắn trong kiến trúc khách-chủ, khám phá lợi ích, tính khả thi và hiệu quả so với các phương pháp giao tiếp truyền thống. Hàng đợi tin nhắn cho phép giao tiếp không đồng bộ, đảm bảo tin nhắn được gửi và nhận, ngay cả khi các thành phần không hoạt động đồng thời. Điều này đặc biệt quan trọng trong các hệ thống có độ trễ mạng cao hoặc khi cần đảm bảo độ tin cậy của việc truyền tin. Luận văn của Nguyễn Quang Dũng đã nghiên cứu về "ỨNG DỤNG MÔ HÌNH HÀNG ĐỢI THÔNG ĐIỆP TRONG KIẾN TRÚC KHÁCH – CHỦ", chỉ ra rằng việc sử dụng hàng đợi tin nhắn làm giải pháp cho việc giao tiếp giữa khách – chủ có thể mang lại nhiều lợi ích về khả năng mở rộng và độ tin cậy. Việc tích hợp Message Queue cho phép xây dựng các chương trình khách – chủ một cách dễ dàng và sử dụng chúng để liên tác với nhau để đạt hiệu quả cao hơn. Hơn nữa, với sự ra đời của Kiến trúc Microservices, Message Queue càng được ứng dụng rộng rãi để đảm bảo sự liên lạc giữa các Microservices khác nhau.

1.1. Định Nghĩa và Vai Trò của Message Queue trong Hệ Thống

Hàng đợi tin nhắn (Message Queue) là một cơ chế cho phép các tiến trình gửi và nhận thông điệp một cách không đồng bộ. Tiến trình gửi sẽ đặt thông điệp vào hàng đợi, trong khi tiến trình nhận sẽ lấy thông điệp từ hàng đợi để xử lý. Điều này tạo ra sự decoupling (tách rời) giữa các thành phần, cho phép chúng hoạt động độc lập và tăng khả năng chịu lỗi (Fault Tolerance). Một hệ thống Message Queue có thể được xem là một phần của hệ phân tán, khi mà các ứng dụng phân tán trao đổi thông tin qua hàng đợi. Message Queue chứa thông tin (còn được gọi là thông điệp) trên bộ nhớ hoặc ổ cứng, sau đó điều phối chúng theo thứ tự tới một hoặc nhiều ứng dụng để xử lý. Message Queue cung cấp một giao thức giao tiếp không đồng bộ, có nghĩa là người gửi và người nhận thông điệp không cần giao tiếp với hàng đợi tại cùng một thời điểm. Thông điệp được đặt vào một hàng đợi và được lưu trữ cho tới khi nó được chuyển tới người nhận. Hầu hết các hàng đợi tin nhắn đều quy định giới hạn về kích cỡ của dữ liệu có thể được truyền đi như một thông điệp đơn lẻ.

1.2. Các Loại Message Broker Phổ Biến RabbitMQ Kafka SQS Azure Bus

Trên thị trường có nhiều lựa chọn Message Broker, mỗi loại có ưu và nhược điểm riêng. RabbitMQ là một Message Broker mã nguồn mở, hỗ trợ nhiều giao thức và dễ dàng triển khai. Kafka, ban đầu được phát triển bởi LinkedIn, được thiết kế cho thông lượng cao và xử lý luồng dữ liệu lớn, thích hợp cho các ứng dụng phân tích thời gian thực. Amazon SQSAzure Service Bus là các dịch vụ Message Queue đám mây, cung cấp khả năng mở rộngđộ tin cậy cao, đồng thời giảm gánh nặng quản lý hạ tầng. Việc lựa chọn Message Broker phù hợp phụ thuộc vào yêu cầu cụ thể của ứng dụng, bao gồm thông lượng, độ trễ, khả năng mở rộng, độ tin cậy và chi phí. Quyết định này cần xem xét kiến trúc hệ thống tổng thể và khả năng tích hợp với các thành phần khác.

1.3. Ưu Điểm của Asynchronous Communication so với Đồng Bộ

Giao tiếp không đồng bộ (Asynchronous Communication), được hỗ trợ bởi Message Queue, mang lại nhiều ưu điểm so với giao tiếp đồng bộ. Trong giao tiếp đồng bộ, ứng dụng khách phải chờ phản hồi từ ứng dụng chủ trước khi tiếp tục xử lý. Điều này có thể dẫn đến độ trễ và giảm hiệu suất, đặc biệt là trong các hệ thống phân tán. Giao tiếp không đồng bộ cho phép ứng dụng khách gửi tin nhắn và tiếp tục xử lý mà không cần chờ phản hồi ngay lập tức. Điều này giúp cải thiện hiệu suất, giảm độ trễ và tăng khả năng đáp ứng của hệ thống. Giao tiếp không đồng bộ cũng tăng cường khả năng chịu lỗi (Fault Tolerance), vì các thành phần có thể hoạt động độc lập và không bị ảnh hưởng bởi sự cố của các thành phần khác. Ví dụ, trong luận văn của Nguyễn Quang Dũng, một trong những ưu điểm được nêu ra là các chương trình có thể chạy ở các thời điểm khác nhau - có nghĩa là các chương trình không giao tiếp trực tiếp mà thông qua việc đặt các thông điệp vào hàng đợi. Vì vậy mà chúng không cần phải chạy ở cùng một thời điểm.

II. Giải Quyết Vấn Đề Phân Tải với Message Queue Hướng Dẫn Chi Tiết

Phân tải (Load Balancing) là một thách thức quan trọng trong các hệ thống phân tán, đặc biệt là khi xử lý lượng lớn yêu cầu đồng thời. Message Queue có thể đóng vai trò quan trọng trong việc giải quyết vấn đề này bằng cách phân phối yêu cầu đến nhiều ứng dụng chủ (workers) một cách cân bằng. Mô hình Publish-Subscribe Pattern cho phép một tin nhắn được gửi đến nhiều người nhận khác nhau, giúp tăng khả năng mở rộnghiệu suất của hệ thống. Khi một ứng dụng khách gửi yêu cầu, nó sẽ được đặt vào Message Queue. Các ứng dụng chủ (workers) sẽ lấy yêu cầu từ Message Queue và xử lý chúng. Bằng cách tăng số lượng ứng dụng chủ, hệ thống có thể xử lý lượng lớn yêu cầu đồng thời mà không bị quá tải. Message Queue cũng có thể được sử dụng để ưu tiên các yêu cầu quan trọng, đảm bảo rằng chúng được xử lý trước các yêu cầu ít quan trọng hơn. Điều này giúp cải thiện trải nghiệm người dùng và đảm bảo độ tin cậy của hệ thống. Việc sử dụng hàng đợi tin nhắn giúp chúng ta có thể xây dựng nhanh các ứng dụng mới bằng cách sử dụng lại tài nguyên cũ của hệ thống. Khi nghiệp vụ thay đổi, chỉ các thành phần chương trình liên quan tới nghiệp vụ mới cần thay đổi.

2.1. Cách Triển Khai Publish Subscribe Pattern với Message Queue

Mô hình Publish-Subscribe Pattern là một mô hình thiết kế trong đó các thành phần (publishers) gửi tin nhắn đến một kênh (topic), và các thành phần khác (subscribers) đăng ký để nhận tin nhắn từ kênh đó. Message Queue cung cấp một cơ chế để triển khai mô hình này một cách hiệu quả. Các publishers gửi tin nhắn đến Message Queue, và Message Queue sẽ phân phối tin nhắn đến tất cả các subscribers đã đăng ký với kênh tương ứng. Điều này cho phép decoupling giữa publishers và subscribers, và tăng khả năng mở rộng của hệ thống. Kafka là một Message Broker được thiết kế đặc biệt cho mô hình Publish-Subscribe Pattern, và cung cấp khả năng xử lý luồng dữ liệu lớn với thông lượng cao.

2.2. Ứng Dụng Load Balancing thông qua Message Queue và Workers

Để triển khai Load Balancing với Message Queue, chúng ta có thể sử dụng mô hình workers. Khi một ứng dụng khách gửi yêu cầu, nó sẽ được đặt vào Message Queue. Một hoặc nhiều workers sẽ lấy yêu cầu từ Message Queue và xử lý chúng. Message Queue có thể sử dụng các thuật toán Load Balancing để phân phối yêu cầu đến workers một cách cân bằng. Bằng cách tăng số lượng workers, hệ thống có thể xử lý lượng lớn yêu cầu đồng thời mà không bị quá tải. Điều quan trọng là phải đảm bảo rằng workers có đủ tài nguyên để xử lý yêu cầu một cách hiệu quả. Các thuật toán Load Balancing phổ biến bao gồm round-robin, least connections và consistent hashing.

2.3. Quản Lý Độ Ưu Tiên và Message Delivery trong Message Queue

Message Queue cho phép quản lý độ ưu tiên của tin nhắn, đảm bảo rằng các tin nhắn quan trọng được xử lý trước các tin nhắn ít quan trọng hơn. Điều này có thể được thực hiện bằng cách gán độ ưu tiên cho tin nhắn khi chúng được gửi đến Message Queue. Message Queue cũng cung cấp các cơ chế Message Delivery để đảm bảo rằng tin nhắn được gửi và nhận một cách đáng tin cậy. Các cơ chế này bao gồm At-least-once delivery, At-most-once deliveryExactly-once delivery. Việc lựa chọn cơ chế Message Delivery phù hợp phụ thuộc vào yêu cầu cụ thể của ứng dụng, bao gồm độ tin cậy và hiệu suất. Ngoài ra, Message Persistence, Durable Queues, và Transient Queues là các yếu tố quan trọng khác trong việc quản lý Message Delivery.

III. Cách Xây Dựng Hệ Thống Ứng Dụng Khách Chủ với Message Queue

Việc xây dựng một hệ thống ứng dụng khách-chủ hiệu quả với Message Queue đòi hỏi sự cân nhắc kỹ lưỡng về kiến trúc, lựa chọn công nghệ và triển khai. Đầu tiên, cần xác định rõ các yêu cầu của ứng dụng, bao gồm thông lượng, độ trễ, khả năng mở rộng, độ tin cậy và chi phí. Tiếp theo, cần lựa chọn Message Broker phù hợp với các yêu cầu đó. Sau khi lựa chọn Message Broker, cần thiết kế kiến trúc hệ thống, bao gồm cách các ứng dụng kháchứng dụng chủ tương tác với Message Queue. Cuối cùng, cần triển khai và kiểm tra hệ thống để đảm bảo rằng nó hoạt động đúng như mong đợi. Một số hệ thống hàng đợi thông điệp thường được thiết kế theo hướng mềm dẻo, để đảm bảo thông điệp không bị mất ngay cả khi hệ thống mạng bị lỗi. Có rất nhiều lựa chọn cho việc sử dụng hệ thống hàng đợi thông điệp như Jboss Messaging, JORAM, Apache ActiveMQ, Sun Open Message Queue, ApacheQpid hay HTTPSQS.

3.1. Thiết Kế Kiến Trúc Client Server dựa trên Event Driven Architecture

Kiến trúc ứng dụng khách-chủ với Message Queue thường dựa trên mô hình Event-Driven Architecture. Trong mô hình này, các ứng dụng khách tạo ra các sự kiện (events) và gửi chúng đến Message Queue. Các ứng dụng chủ đăng ký để nhận các sự kiện cụ thể từ Message Queue, và xử lý chúng khi chúng đến. Mô hình Event-Driven Architecture cho phép decoupling giữa ứng dụng kháchứng dụng chủ, và tăng khả năng mở rộnghiệu suất của hệ thống. Nó cũng giúp giảm sự phụ thuộc giữa các thành phần, tạo điều kiện thuận lợi cho việc phát triển và bảo trì hệ thống. Điều quan trọng là phải xác định rõ các sự kiện mà ứng dụng khách tạo ra, và cách các ứng dụng chủ xử lý chúng. Hơn nữa, Non-Blocking Architecture là một yếu tố quan trọng trong thiết kế hệ thống này.

3.2. Xử Lý Lỗi và Dead Letter Queue DLQ trong Message Queue

Xử lý lỗi là một phần quan trọng trong việc xây dựng một hệ thống ứng dụng khách-chủ đáng tin cậy với Message Queue. Khi một ứng dụng chủ không thể xử lý một tin nhắn, nó có thể gửi tin nhắn đó đến Dead Letter Queue (DLQ). DLQ là một hàng đợi đặc biệt được sử dụng để lưu trữ các tin nhắn không thể xử lý. Việc sử dụng DLQ cho phép chúng ta kiểm tra và xử lý các tin nhắn lỗi một cách riêng biệt, và ngăn chúng gây ảnh hưởng đến hoạt động của hệ thống. Cần thiết lập các quy tắc để xác định khi nào một tin nhắn nên được gửi đến DLQ, và cách xử lý các tin nhắn trong DLQ. Ngoài ra, cần thiết lập cơ chế Error Handling hiệu quả để ghi lại và thông báo về các lỗi xảy ra trong quá trình xử lý tin nhắn.

3.3. API Gateway và Load Balancing cho Message Queue Systems

API Gateway có thể được sử dụng để cung cấp một giao diện thống nhất cho các ứng dụng khách để truy cập vào Message Queue. API Gateway có thể xử lý các tác vụ như xác thực, ủy quyền, định tuyến và Load Balancing. Bằng cách sử dụng API Gateway, chúng ta có thể giảm sự phức tạp của ứng dụng khách, và tăng khả năng mở rộngbảo mật của hệ thống. Load Balancing có thể được sử dụng để phân phối yêu cầu đến nhiều Message Queue một cách cân bằng. Điều này giúp cải thiện hiệu suất và khả năng chịu lỗi của hệ thống. Các thuật toán Load Balancing phổ biến bao gồm round-robin, least connections và consistent hashing. Cần thiết lập các chính sách về Message RoutingMessage Filtering để đảm bảo rằng các tin nhắn được gửi đến đúng đích.

IV. Ứng Dụng Thực Tế GameGuard và Hệ Thống Bảo Vệ Trò Chơi

Luận văn của Nguyễn Quang Dũng đã nghiên cứu việc áp dụng mô hình hàng đợi tin nhắn vào hệ thống phần mềm bảo vệ trò chơi trực tuyến, cụ thể là VTCGuard. VTCGuard được phát triển để chống lại các hành vi gian lận và tấn công trong trò chơi trực tuyến. Việc sử dụng Message Queue trong VTCGuard giúp tăng độ tin cậy và khả năng mở rộng của hệ thống, đồng thời giảm độ trễ trong việc phát hiện và xử lý các hành vi gian lận. Hệ thống này 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.

4.1. Mô Tả Về Hệ Thống GameGuard và Chức Năng Chính

GameGuard là một hệ thống bảo vệ trò chơi trực tuyến, có nhiệm vụ phát hiện và ngăn chặn các hành vi gian lận và tấn công trong trò chơi. Các chức năng chính của GameGuard bao gồm:Quét tất cả các tiến trình đang chạy trên máy tính 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.Nhận biết các tiến trình phát sinh sau khi đã quét tất cả.Điều khiển Driver của Guard.Điều khiển GameClient hoạt động thông qua cơ chế đồng bộ.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

4.2. Cách Message Queue Được Sử Dụng trong Giao Tiếp GameClient GameGuard

Trong VTCGuard, Message Queue được sử dụng để giao tiếp giữa GameClientGameGuard. Khi GameGuard phát hiện một hành vi gian lận, nó sẽ gửi một tin nhắn đến Message Queue. Máy chủ sẽ nhận tin nhắn này và thực hiện các hành động cần thiết, chẳng hạn như khóa tài khoản của người chơi gian lận. Việc sử dụng Message Queue giúp giảm độ trễ trong việc phát hiện và xử lý các hành vi gian lận, và tăng độ tin cậy của hệ thống.Nó cũng giúp giảm sự phụ thuộc giữa GameClient và máy chủ, tạo điều kiện thuận lợi cho việc phát triển và bảo trì hệ thống.

4.3. Kết Quả Thử Nghiệm và Đánh Giá Hiệu Quả của Hệ Thống

Luận văn của Nguyễn Quang Dũng đã thực hiện các thử nghiệm để đánh giá hiệu quả của việc sử dụng Message Queue trong VTCGuard. Các kết quả thử nghiệm cho thấy rằng việc sử dụng Message Queue giúp giảm độ trễ trong việc phát hiện và xử lý các hành vi gian lận, và tăng độ tin cậy của hệ thống. Các thử nghiệm cũng cho thấy rằng hệ thống có khả năng mở rộng tốt, và có thể xử lý lượng lớn yêu cầu đồng thời mà không bị quá tải. Các kết quả này chứng minh rằng Message Queue là một giải pháp hiệu quả để xây dựng các hệ thống bảo vệ trò chơi trực tuyến đáng tin cậy.

V. Kết Luận và Tương Lai của Ứng Dụng Hàng Đợi Tin Nhắn

Việc ứng dụng hàng đợi tin nhắn trong kiến trúc khách-chủ mang lại nhiều lợi ích, bao gồm tăng độ tin cậy, khả năng mở rộng và hiệu suất. Message Queue cũng giúp giảm độ trễ, tăng khả năng đáp ứng và tạo sự linh hoạt cho hệ thống. Tuy nhiên, việc xây dựng một hệ thống Message Queue hiệu quả đòi hỏi sự cân nhắc kỹ lưỡng về kiến trúc, lựa chọn công nghệ và triển khai. Tương lai của Message Queue hứa hẹn nhiều tiềm năng phát triển, đặc biệt là trong bối cảnh kiến trúc Microservices ngày càng phổ biến.

5.1. Tổng Kết Lợi Ích và Hạn Chế của Message Queue trong Kiến Trúc Client Server

Tóm lại, việc sử dụng Message Queue trong kiến trúc khách-chủ mang lại nhiều lợi ích về khả năng mở rộng, độ tin cậy, hiệu suất và linh hoạt. Tuy nhiên, cũng cần lưu ý đến các hạn chế, bao gồm sự phức tạp trong thiết kế và triển khai, cũng như yêu cầu về quản lý và bảo trì hệ thống.Cần cân nhắc kỹ lưỡng các yếu tố này trước khi quyết định sử dụng Message Queue trong một dự án cụ thể.Việc lựa chọn hàng đợi tin nhắn nào phụ thuộc nhiều vào việc nó có dễ sử dụng cho mục đích của họ hay không.

5.2. Hướng Phát Triển và Nghiên Cứu Tiềm Năng trong Tương Lai

Trong tương lai, Message Queue sẽ tiếp tục đóng vai trò quan trọng trong các hệ thống phân tán và kiến trúc Microservices. Các hướng phát triển tiềm năng bao gồm: Tăng cường khả năng tự động mở rộng và quản lý. Phát triển các thuật toán Load Balancing thông minh hơn. Cải thiện khả năng bảo mậtđộ tin cậy. Tích hợp tốt hơn với các công nghệ mới như serverless computingblockchain. Nghiên cứu về các ứng dụng mới của Message Queue trong các lĩnh vực như IoT, AI và machine learning.

24/09/2025

Trích đoạn nội dung tài liệu

Chương 1 trình bày các kiến thức chung nhấ t về kiế n trúc khách – chủ và các khái niệm về hàng đợi thông điệp. 1 TIEU LUAN MOI download : skknchat@gmail.com Chƣơng 2: Hàng đợi thông điệp trong kiến trúc khách – chủ Chương 2 tìm hiểu chi tiết về hàng đợi thông điệp, các lý do tại sao việc áp dụng mô hình hàng đợi thông điệp trong kiến trúc khách chủ mang lại những lợi ích nhất định. Đồng thời, chương này cũng tìm hiểu và đánh giá về một số loại hệ thống cụ thể nên áp dụng hàng đợi thông điệp làm cơ chế giao tiếp khách – chủ. Chƣơng 3: Thiết kế hàng đợi thông điệp Chương 3 tìm hiểu về các thành phần của một hệ thống hàng đợi thông điệp.

Trong chương này, chúng ta cũng đưa ra một số đánh giá, nhận xét về hiệu suất của hệ thống khi sử dụng hàng đợi thông điệp so với khi không sử dụng hàng đợi thông điệp, cũng như việc lựa chọn loại hàng đợi thông điệp nào sẽ có những lợi ích và chi phí cụ thể. Chƣơng 4: Thử nghiệm về áp dụng hàng đợi thông điệp để phân tải trong ứng dụng kiến trúc khách – chủ Chương 4 trình bày về thử nghiệm việc áp dụng mô hình hàng đợi thông điệp để phân tải trong kiến trúc khách – chủ. Trong chương này, mô hình hàng đợi thông điệp sẽ được đưa vào một hệ thống phần mềm cụ thể, trong đó hàng đợi thông điệp đóng vai trò giao tiếp khách – chủ trong hệ thống để chuyển tải các thông tin cần thiết lên máy chủ Chƣơng 5: Kết luận Chương 5 đưa ra một số đánh giá về kết quả thử nghiệm và kết luận 2 TIEU LUAN MOI download : skknchat@gmail.com Chƣơng 1. Tổng quan về kiến trúc khách – chủ và hàng đợi thông điệp 1.1 Kiến trúc khách – chủ Thuật ngữ ứng dụng chủ được dùng cho những chương trình thi hành như một dịch vụ trên toàn mạng.

Các máy chủ này chấp nhận tất cả các yêu cầu hợp lệ đến từ mọi nơi trên mạng, sau đó nó thi hành dịch vụ và trả kết quả về máy yêu cầu. Một chương trình được coi là khách khi nó gửi các yêu cầu tới máy có chương trình chủ và chờ đợi câu trả lời từ chương trình chủ. Chương trình chủ và khách nói chuyện với nhau bằng các thông điệp thông qua một cổng truyền thông liên tác. Để một chương trình chủ và một chương trình khách có thể giao tiếp được với nhau thì giữa chúng phải có một chuẩn để nói chuyện, chuẩn này được gọi là giao thức.

Nếu một chương trình khách nào đó muốn yêu cầu lấy thông tin từ chương trình thì nó phải tuân theo giao thức mà chương trình chủ đó đưa ra. Bản thân chúng ta khi cần xây dựng một mô hình khách – chủ cụ thể thì ta cũng có thể tự tạo ra một giao thức riêng nhưng thường chúng ta chỉ làm được điều này ở tầng ứng dụng của mạng. Với sự phát triển mạng như hiện này thì có rất nhiều giao thức chuẩn trên mạng ra đời nhằm đáp ứng nhu cầu phát triển này. Các giao thức chuẩn (ở tầng mạng và vận chuyển) được sử dụng rộng rãi nhất hiện nay như: giao thức TCP/IP, giao thức SNA của IBM, OSI, ISDN, X.25 hoặc giao thức LAN-to-LAN NetBIOS.

Một máy tính chứa chương trình chủ được coi là một máy chủ hay máy phục vụ và máy chứa chương trình khách được coi là máy khách. Mô hình mạng trên đó có các máy chủ và máy khách giao tiếp với nhau theo một hoặc nhiều dịch vụ được gọi là mô hình khách – chủ. Thực tế thì mô hình khách – chủ là sự mở rộng tự nhiên và tiện lợi cho việc truyền thông liên tiến trình trên các máy tính cá nhân. Mô hình này cho phép xây dựng các chương trình khách – chủ một cách dễ dàng và sử dụng chúng để liên tác với nhau để đạt hiệu quả hơn.1 Mô hình khách – chủ Mô hình khách – chủ là mô hình tổng quát nhất, trên thực tế thì một máy chủ có thể được nối tới nhiều máy chủ khác nhằm làm việc hiệu quả và nhanh hơn.

Khi nhận được một yêu cầu từ chương trình khách, chương trình chủ này có thể gửi tiếp 3 TIEU LUAN MOI download : skknchat@gmail.com yêu cầu vừa nhận được cho chương trình chủ khác ví dụ như cơ sở dữ liệu vì bản thân nó không thể xử lý yêu cầu này được. Máy chủ có thể thi hành các nhiệm vụ đơn giản hoặc phức tạp. Ví dụ như một máy chủ trả lời thời gian hiện tại trong ngày, khi một máy khách yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do ứng dụng chủ định ra, nếu yêu cầu được chấp nhận thì ứng dụng chủ sẽ trả về thông tin mà ứng dụng khách yêu cầu. Có rất nhiều các dịch vụ chủ trên mạng nhưng nó đều hoạt động theo nguyên lý là nhận các yêu cầu từ chương trình khách sau đó xử lý và trả kết quả cho chương trình khách yêu cầu.

Thông thường chương trình chủ và khách được thi hành trên hai máy khác nhau. Cho dù lúc nào chương trình chủ cũng ở trạng thái sẵn sàng chờ nhận yêu cầu từ chương trình khách nhưng trên thực tế một tiến trình liên tác qua lại giữa khách và chủ lại bắt đầu ở phía máy khách, khi mà ứng dụng khách gửi tín hiệu yêu cầu tới ứng dụng chủ. Các chương trình chủ thường đều thi hành ở mức ứng dụng (tầng ứng dụng của mạng). Sự thuận lợi của phương pháp này là nó có thể làm việc trên bất cứ một mạng máy tính nào có hỗ trợ giao thức truyền thông chuẩn cụ thể ở đây là giao thức TCP/IP.

Với các giao thức chuẩn này cũng giúp cho các nhà sản xuất có thể tích hợp nhiều sản phẩm khác nhau của họ lên mạng mà không gặp phải khó khăn gì. Với các chuẩn này thì các chương trình chủ cho một dịch vụ nào đấy có thể thi hành trên một hệ thống chia sẻ thời gian với nhiều chương trình và dịch vụ khác hoặc nó có thể chạy trên chính một máy tính các nhân bình thường. Có thể có nhiều chương trình chủ cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính. Với mô hình trên chúng ta nhận thấy rằng mô hình khách – chủ chỉ mang đặc điểm của phần mềm không liên quan gì đến phần cứng mặc dù trên thực tế yêu cầu cho một máy chủ là cao hơn nhiều so với máy khách.

Lý do là bởi vì máy chủ phải quản lý rất nhiều các yêu cầu từ các máy khách khác nhau trên mạng.1 Ưu và nhược điểm chính Có thể nói rằng với mô hình khách – chủ thì mọi thứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa (bao gồm các công việc như gửi và nhận tệp, tìm kiếm thông tin, .) với nhiều dịch vụ đa dạng mà mô hình cũ không thể làm được. Mô hình khách – chủ cung cấp một nền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý. Một trong những vấn đề nảy sinh trong mô hình này đó là tính 4 TIEU LUAN MOI download : skknchat@gmail.com an toàn và bảo mật thông tin trên mạng, do phải đảm bảo an toàn trong việc trao đổi dữ liệu giữa hai máy ở hai khu vực khác nhau.2 Máy khách Trong mô hình khách – chủ, người ta còn định nghĩa cụ thể cho một máy khách là một máy trạm mà chỉ được sử dụng bởi một người dùng với để muốn thể hiện tính độc lập cho nó. Máy khách có thể sử dụng các hệ điều hành bình thường như Windows, DOS, Linux, OS/2.

Bản thân mỗi một ứng dụng chủ cũng đã được tích hợp nhiều chức năng trên hệ điều hành mà nó chạy, nhưng khi được nối vào một mạng LAN, WAN theo mô hình khách – chủ thì nó còn có thể sử dụng thêm các chức năng do hệ điều hành mạng cung cấp với nhiều dịch vụ khác nhau (cụ thể là các dịch vụ do các chương trình chủ trên mạng này cung cấp), ví dụ như nó có thể yêu cầu lấy dữ liệu từ một máy chủ hay gửi dữ liệu lên máy chủ đó. Thực tế trong các ứng dụng của mô hình khách – chủ, các chức năng hoạt động chính là sự kết hợp giữa khách và chủ với sự chia sẻ tài nguyên, dữ liệu trên cả hai máy. Vai trò của chương trình khách Trong mô hình khách – chủ, chương trình khách được coi như là người sử dụng các dịch vụ trên mạng do một hoặc nhiều máy chủ cung cấp và chương trình chủ được coi như là người cung cấp dịch vụ để trả lời các yêu cầu của các chương trình khách. Điều quan trọng là phải hiểu được vai trò hoạt động của nó trong một mô hình cụ thể, một máy khách trong mô hình này lại có thể là máy chủ trong một mô hình khác.

Ví dụ cụ thể như một máy trạm làm việc như một máy chủ bình thường trong mạng LAN nhưng đồng thời nó có thể đóng vai trò như một máy in chủ cung cấp dịch vụ in ấn từ xa cho nhiều ứng dụng khác (ứng dụng khách) sử dụng. Chương trình khách được hiểu như là bề nổi của các dịch vụ trên mạng, nếu có thông tin vào hoặc ra thì chúng sẽ được hiển thị trên máy khách.3 Máy chủ Máy chủ còn được định nghĩa như là một máy tính nhiều người sử dụng. Vì một máy chủ phải quản lý nhiều yêu cầu từ các chương trình khách trên mạng cho nên nó hoạt động sẽ tốt hơn nếu hệ điều hành của nó là đa nhiệm với các tính năng hoạt động độc lập song song với nhau như hệ điều hành UNIX, WINDOWS. Máy chủ cung cấp và điều khiển các tiến trình truy cập vào tài nguyên của hệ thống.

Các 5 TIEU LUAN MOI download : skknchat@gmail.com ứng dụng chạy trên máy chủ phải được tách rời nhau để một lỗi của ứng dụng này không làm hỏng ứng dụng khác. Tính đa nhiệm đảm bảo một tiến trình không sử dụng toàn bộ tài nguyên hệ thống. Chương trình chủ có vai trò như là một nhà cung cấp dịch vụ cho các chương trình khách yêu cầu tới khi cần, các dịch vụ như cơ sở dữ liệu, in ấn, truyền tệp, hệ thống. Các ứng dụng chủ cung cấp các dịch vụ mang tính chức năng để hỗ trợ cho các hoạt động trên các máy khách có hiệu quả hơn.

Sự hỗ trợ của các dịch vụ này có thể là toàn bộ hoặc chỉ một phần thông qua IPC.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ