Microsoft Message Queueing (MSMQ) là công nghệ được phát triển bởi Microsoft và chỉ chạy trên nền hệ điều hành Microsoft Windows. Thông điệp có thể được truyền đi theo cả hai cách là đồng bộ hóa hoặc không đồng bộ hóa. Một số ưu điểm nổi bật của MSMQ là :
2.7.3.1 Không bị ảnh hưởng bởi đường truyền
Khi mạng bị sự cố hay lỗi, chương trình gửi thông điệp vẫn không bị lỗi. Quá trình gửi thông điệp sẽ được tiếp tục sau khi mạng sẵn sàng trở lại
2.7.3.2Thông điệp có độ ưu tiên
Việc đưa độ ưu tiên vào các thông điệp cho phép chúng ta xử lý quá trình truyền tin linh hoạt hơn, những thông điệp quan trọng hơn và cần được xử lý nghiệp vụ trước có thể được ưu tiên truyền trước so với những thông điệp khác của hệ thống
2.7.3.3 Việc truyền tin được đảm bảo
Trong trường hợp cần thiết, thông điệp có thể được lưu xuống ổ cứng nhằm tăng cường độ tin cậy của hệ thống
2.7.3.4 Gắn kết thông tin
Sử dụng khả năng này của MSMQ, chúng ta có thể gắn kết nhiều thông điệp lại cho một lần truyền tin, nhờ đó đảm bảo các thông điệp được truyền có thứ tự, không bị trùng lặp và thông tin tới được chính xác ứng dụng nhận
2.7.3.5 Bảo mật
MSMQ hỗ trợ bảo mật thông điệp thông qua các cơ chế kiểm soát quyền truy cập, cơ chế kiểm tra, mã hóa và xác thực
2.8 Kết luận
Á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 ưu điểm rõ ràng về hiệu năng, chi phí và thời gian phát triển. Tuy vậy, việc xây dựng một hệ thống hàng đợi thông điệp tốt là một công việc rất khó khăn và phức tạp. Hiện nay có nhiều hệ thống hàng đợi thông điệp được thương mại hóa, tuy nhiên việc lựa chọn sử dụng các công nghệ này cũng cần được xem xét thận trọng, phụ thuộc vào đặc tính và yêu cầu cụ thể của từng hệ thống
Chƣơng 3. Thiết kế hàng đợi thông điệp
Chương này sẽ tìm hiểu về thiết kế của một hàng đợi thông điệp có độ ưu tiên và xem xét về hiệu suất của chúng.
Trong thiết kế này, nhằm phục vụ cho việc tìm hiểu kỹ hơn, chúng ta sẽ đưa ra hai giả thiết. Thứ nhất, hàng đợi thông điệp phục vụ nhiều ứng dụng khách. Thứ hai, chỉ có một tiến trình chủ tiếp nhận thông điệp. Hàng đợi có thể có thuộc tính là vào trước ra trước hoặc hàng đợi có độ ưu tiên
Hình 8: Hàng đợi thông điệp
Trong thiết kế này, hệ thống có hai thành phần chính:
Thành phần nhận: Nhận thông điệp từ tiến trình khách, xử lý thông điệp và gửi nó tới đích cần gửi
Thành phần gửi: Nhận thông điệp từ tiến trình chủ và gửi lại cho tiến trình khách
Có hai khả năng cho thành phần gửi là:
Tiến trình gửi sẽ đợi cho đến khi nhận được phản hồi từ tiến trình chủ
Hàng đợi thông điệp sẽ truyền một dữ liệu được định nghĩa trước tới tiến trình khách chứ không cần đợi phản hồi từ tiến trình chủ. Trong phần này, chúng ta giả thiết là hệ thống hàng đợi thông điệp sử dụng kịch bản này.