2.2 Giới thiệu chung về IBM Websphere MQ
2.2.5 Các lợi ích có đƣợc khi sử dụng MessageQueue
Lợi ích của việc sử dụng Message Queue xuất phát từ 3 đặc trƣng chính của MQ đã nêu ở trên:
- Các hệ thống có thể liên lạc bất cứ lúc nào
- Tránh đƣợc các vấn đề phức tạp liên quan đến mạng
a. MQI rất dễ dàng sử dụng
Thiết kế và viết chƣơng trình ứng dụng xử lý các giao tiếp qua mạng là công việc khó. Tuy nhiên, MQI lại rất dễ dàng sử dụng. Có hai phƣơng thức cơ bản MQPUT và MQGET là các phƣơng thức đƣợc sử dụng để đặt thông điệp vào hàng đợi và lấy thông điệp từ các hàng đợi. Các phƣơng thức còn lại, khoảng hơn 10 phƣơng thức đƣợc sử dụng nhiều tuỳ theo lựa chọn. Ví dụ nhƣ MQCONN để thiết lập kết nối với một bộ quản lý hàng đợi, MQDISC dùng để ngắt kết nối. Các phƣơng thức mở một hàng đợi thông điệp MQOPEN và đóng một hàng đợi thông điệp MQCLOSE, lấy thông tin về một hàng đợi thông điệp MQINQ. Nói tóm lại, MQI không chỉ dễ dàng sử dụng, nó còn nhất quán từ môi trƣờng này đến môi trƣờng khác.
b. Ràng buộc giữa các hệ thống đƣợc xoá bỏ
Một trong các đặc trƣng của các công nghê giao tiếp giữa các hệ thống đó là bất cứ cặp hệ thống nào giao tiếp với nhau, chỉ một hệ thống đƣợc xử lý tại cùng một thời điểm. Điều này thực tế, gây ra ràng buộc khi bạn xây dựng một ứng dụng phân tán.
Ngƣợc lại, với các hệ thống có sử dụng MQ có thể thao tác độc lập, sự ràng buộc sẽ không còn nữa. Tất cả các hệ thống có thể hoạt động đồng thời. Hơn nữa, bạn có thể thay đổi cấu trúc của một ứng dụng phân tán bằng cách bổ sung thêm vào hay loại bỏ bớt đi các hệ thống con, và bạn có thể thay đổi trình tự mà không cần phải tháo dỡ hệ thống. Dòng sản phẩm MQ cho phép các mối quan hệ giữa các hệ thống dễ thích nghi hơn.
c. Dễ dàng lên kế hoạch để sử dụng tốt nhất nguồn tài nguyên
Các hệ thống giao tiếp thông qua MQ không phụ thuộc về thời gian. Trong một ứng dụng, với nhiều hệ thống khác nhau có thể chạy với tốc độ khác nhau và thậm chí thời gian khác nhau nếu cần thiết. Các hệ thống có thể thao tác độc lập không phải chờ khi có trả lời từ hệ thống khác mới làm tiếp. Điều đó giải phóng bạn khi thiết kế và lên kế hoạch cho các hệ thống phù hợp với chức năng công việc các hệ thống, chứ không phải quan tâm đến phƣơng thức giao tiếp. Giao tiếp của các
ứng dụng có thể thực hiện đồng thời, hoặc chồng chéo một phần hoặc không chồng chéo tí nào.
Để thấy đƣợc MQ nâng cao khả năng sử dụng tài nguyên, hãy xem một ví dụ: Một hệ thống tạo ra 20 câu hỏi khác nhau, hệ thống khác trả lời các câu hỏi đó.
Hai hệ thống có thể thay đổi vai trò, vì thế một câu hỏi đƣợc trả lơi trƣớc khi câu tiếp theo đƣợc hỏi. Điều này có thể đạt đƣợc nếu nguyên lý là câu hỏi đƣợc trả lời trƣớc khi tạo ra câu hỏi tiếp theo.
Nếu mối quan hệ giữa các câu hỏi cho phép, 2 hệ thống có thể thực hiện cùng lúc: tất cả 20 câu hỏi có thể cùng đƣợc hỏi mà không phải chờ câu trả lời. Đây là cách để loại bỏ các tiến trình chậm chạp thƣờng xảy ra trong giao tiếp giữa các hệ thống.
Để giảm thời gian xử lý, các câu hỏi có thể đƣợc trả lời bởi 20 hệ thống khác nhau hoặc bởi 20 câu trả lời của cùng một hệ thống, thực hiện cùng thời gian. Nói cách khác, tiến trình của 20 câu hỏi có thể chồng chéo , vì thế tất cả chúng đƣợc trả lời ngay khi nhận câu hỏi.
d. Số lƣợng phiên giao dịch trên mạng ít hơn
Khi các hệ thống giao tiếp qua MQ, các phiên giao dịch mạng không cần thiết. Thay vào đó là các phiên giao dịch giữa các bộ quản lý hàng đợi. Nhờ đó, số lƣợng giao dịch trên mạng ít hơn, tổng số giao dịch trên mạng giảm đáng kể. Việc giảm số lƣợng giao dịch làm cho việc quản lý dễ dàng hơn và khởi động nhanh hơn.
e. Các hệ thống ít bị ảnh hƣởng khi ngắt mạng
Các hệ thống sử dụng MQ giao tiếp bằng cách đặt thông điệp và lấy thông điệp từ hàng đợi. MQ tại mỗi bộ xử lý có trách nhiệm đảm bảo một thông điệp đƣợc đƣa tới hàng đợi đích, bất kể là hàng đợi đó ở đâu. Vì thế các giao tiếp qua mạng đƣợc thiết lập thông qua các bộ quản lý hàng đợi chứ không phải là giữa các hệ thống. Nếu kết nối giữa các hệ thống bị ngắt, việc của các bộ quản lý hàng đợi phải khôi phục kết nối đó. Các hệ thống không bị ảnh hƣởng khi bị ngắt. Thực tế, chúng không cần đƣợc cảnh báo trƣớc những gì xảy ra.
f. Các nguồn tài nguyên trên mạng đƣợc sử dụng tối ƣu hơn
Trong hầu hết các mạng, nguồn tài nguyên thƣờng không đƣợc sử dụng tối ƣu. Khi một phiên giao dịch đƣợc thiết lập, nhƣng chỉ sử dụng một % nhỏ thời gian,
các bộ xử lý sẵn sàng, nhƣng khối lƣợng công việc đƣợc xử lý lại rất nhỏ. Các hệ thống đã sẵn sàng, nhƣng thƣờng phải đợi phản hồi từ các hệ thống khác mới tiếp tục. Các mạng có sử dụng MQ có ít phiên giao dịch hơn và sử dụng các phiên đầy đủ hơn. Các hệ thống thƣờng thực hiện công việc của chúng bình thƣờng vì không bị ép phải đợi đáp ứng từ các hệ thống khác, và đƣợc lên kế hoạch để sử dụng tốt nhất thời gian xử lý.
g. Mã nguồn dễ dàng dịch chuyển và sử dụng lại
Vì chúng không phụ thuộc vào giao thức kết nối, và vì chúng sử dụng cùng giao diện MQI trong tất cả các môi trƣờng. Các hệ thống MQ có thể đƣợc dịch chuyển xung quanh mạng từ node này đến node khác, hoặc nhân đôi quanh mạng, dễ dàng hơn các hệ thống có chứa mã giao tiếp của từng môi trƣờng cụ thể.
h. Doanh nghiệp thay đổi dễ dàng hơn
Các hệ thống sử dụng MQ định nghĩa rõ ràng đầu vào và đầu ra với các hệ thống khác mà không phải thay đổi. Do đó, các hệ thống dễ dàng cập nhật hơn, và có thể đáp ứng dễ dàng hơn để đáp ứng đƣợc các yêu cầu của doanh nghiệp. Khi có thay đổi, thì việc giao tiếp giữa các hệ thống vẫn tiếp tục bình thƣờng
i. Thông điệp gửi đi đƣợc đảm bảo đến với bên nhận
Dữ liệu trong thông điệp là rất quan trọng. Nếu thông điệp bị mất, không đến đƣợc với bên nhận, chẳng hạn thông điệp mang thông tin chuyển tiền mất, điều đó có nghĩa là sẽ ảnh hƣởng đến tài chính của doanh nghiệp cũng nhƣ của khách hàng. Với hệ thống sử dụng MQ, đảm bảo thông điệp đƣợc đến với bên nhận và không bị đúp.