Chủ Nhật, 1 tháng 1, 2017

EJB - 4. JMS

Java Message Service là một Java API cho phép các ứng dụng để tạo, gửi, nhận và đọc tin nhắn. JMS API xác định một tập hợp các giao diện và ngữ nghĩa có liên quan mà cho phép các chương trình viết bằng ngôn ngữ lập trình Java để truyền đạt với việc triển khai tin nhắn khác. JMS API cho phép truyền thông không chỉ lỏng lẻo mà còn thể hiện 2 thành phần như sau:
  • Asynchronous (không đồng bộ): Một nhà cung cấp JMS có thể phân phối các thông điệp tới một client khi chúng xảy ra. Một client không có yêu cầu thông điệp để nhận được chúng.
  • Reliable: JMS API có thể đảm bảo rằng một tin nhắn được chuyển một lần. Cấp thấp hơn của độ tin cậy là có sẵn cho các ứng dụng có khả năng bỏ lỡ các thông điệp hoặc để nhận tin nhắn trùng lặp.

I. Ứng dụng JMS:
JMS Client: Đây là các chương trình ngôn ngữ Java mà gửi và nhận tin nhắn.
Non-JMS Client: Đây là những client mà thường sử dụng Native client API của hệ thống sao thay vì JMS.
Message: Mỗi ứng dụng xác định một tập hợp các thông điệp được sử dụng để trao đổi thông tin giữa các client của nó.
JMS Provider: Đây là một hệ thống tin nhắn (MOM) mà thực hiện JMS API ngoài các chức năng quản trị và kiểm soát khác theo yêu cầu của một sản phẩm thông điệp có đầy đủ tính năng.
Administered Objects: Đối tượng quản lý là JMS được cấu hình sẵn các đối tượng được tạo ra bởi một quản trị viên cho việc sử dụng của client.

II. JMS Administered Objects:
ConnectionFactory: Đây là đối tượng một client sử dụng để tạo ra một kết nối với một nhà cung cấp.
Destination: Đây là đối tượng một client sử dụng để xác định đích đến của thông điệp mà nó được gửi và nguồn gốc của thông điệp mà nó nhận được.
Đối tượng quản lý được đặt trong JNDI namespace bởi một quản trị viên.

III. JMS Messaging Models:
1. Point-to-point (PTP):
Một nhà sản xuất tạo ra và gửi một tin nhắn mà sẽ được nhận chỉ bởi người tiêu dùng duy nhất. Đích đến tin nhắn được gọi là "Queue".
Đặc tính bao gồm 3 thành phần:
  • Mỗi tin nhắn chỉ có một người tiêu dùng.
  • Một người gửi và người nhận của một thông điệp không có sự phụ thuộc thời gian. Người nhận có thể lấy các thông điệp hay không và nó đang chạy khi client gửi tin nhắn.
  • Người nhận công nhận việc xử lý thành công của một thông điệp.
2. Publish/Subscrible:
Bất cứ số lượng client nào có thể đăng ký điểm đến tin nhắn và khi một khách hàng gửi một thông điệp tới điểm đến, tin nhắn đó được nhận bởi tất cả các client đã đăng ký vào điểm đến đó.
Nhà sản xuất thông điệp được gọi là nhà xuất bản và người tiêu dùng được gọi là các thuê bao. Ngoài các điểm đến tin nhắn được gọi là "Topic".
Đặc tính bao gồm 2 thành phần:
  • Mỗi thông điệp có thể có nhiều người tiêu dùng.
  • Các nhà xuất bản và thuê bao có sự phụ thuộc thời gian. Client mà đăng ký tới một chủ đề có thể tiêu thụ chỉ những thông điệp được công bố sau khi client đã tạo ra một thuê bao, thuê bao phải tiếp tục hoạt động để cho nó tiêu thụ thông điệp này.

Không có nhận xét nào:

Đăng nhận xét