– Chúng tôi hướng tới việc cung cấp các tutorial và lý thuyết liên quan đến công nghệ Java, đặc biệt là J2EE/JavaEE- Chúng tôi không chủ trương cung cấp source code, video trên web site này bởi vì chúng tôi mong muốn các bạn làm từng bước một để cảm nhận được kiến thức, hiểu biết và kết quả. Cách tiếp cận của chúng tôi là làm từng bước bằng hướng dẫn- Hướng tiếp cận của chúng tôi theo hướng thể hiện các lý thuyết thông qua ví dụ để giúp tiết kiệm thời gian

Bạn đang xem: Jms là gì

*

Giới thiệu về JMS – Java MessageServices – Cài đặt ứng dụng Chat

Mục đích: Nộidung của chủ đề này giới thiệu các khái niệmliên quan đến Java Message Services – JMS và cách sử dụngJMS trong cả EJB2 và EJB3. Sau nội dung lý thuyết, chúng tôisẽ cài đặt ứng dụng chat sử dụng JMS

Giới thiệu về JMS – Java MessageServices – Cài đặt ứng dụng Chat

Mục đích: Nộidung của chủ đề này giới thiệu các khái niệmliên quan đến Java Message Services – JMS và cách sử dụngJMS trong cả EJB2 và EJB3. Sau nội dung lý thuyết, chúng tôisẽ cài đặt ứng dụng chat sử dụng JMS

Yêu cầu

Nắm vững các khái niệm về EJB 2.1 và EJB3 và các nguyên lý cơ bản về cài đặt các đối tượng trong EJB 2.1 và EJB3 Nắm vững kiến thức về OOP

Định nghĩa về Message

Trong lúc quá trình áp dụng mô hình EJB nghĩa là chúng ta đang thực hiện gọi phương thức từ xa trên middleware Áp dụng cơ chế này, chúng ta nhận thấy khi một client gọi phương thức trên máy ở xa thì bản chất nó đã tạo ra một request và thread/process của nó sẽ bị block lại để chờ response trở về và có thể làm trì hoãn quá trình xử lý Thay vì thế người ta đưa ra cơ chế giao tiếp bằng cách chuyển thông tin qua định dạng dùng chung qua đối tượng trung gian và không cần mong kết quả trả về.

Xem thêm: Adrenergic Là Gì – Giải Thích Một Số Thuật Ngữ

Xem thêm: Ideal Là Gì – Nghĩa Của Từ Ideal, Từ Từ điển Anh

Cơ chế này đòi hỏi phải có đối tượng trung gian để nhận và chuyển message độc lập với việc xử lý Cơ chế này còn cho phép khả năng truyền message đến nhiều hơn một đối tượng nhận cùng một lúc (broadcast) Cơ chế này có hạn chế đó là làm quá tải đối tượng trung gian Đối tượng theo định dạng giao tiếp dùng chung đó là message Đối tượng trung gian đó là MOM – Message Oriented Middleware hay MQ – Message Queue Hỗ trợ cơ chế tương tự như DB với việc nhận và gửi message, đảm bảo toàn vẹn dữ liệu, transaction và cân bằng cho việc gửi nhận dữ liệu Nơi lưu trữ dữ liệu và tương tác với MOM có tên gọi là Destination

Khái niệm về hệ thống EMS –Enterprise Message System

Cung cấp cơ chế gửi nhận message đồng bộ và bất đồng bộ Người gửi gửi message đến middleware, middleware tự chuyển message đến người nhận, khi tác vụ truyền hoàn tất thì người nhận sẽ gửi tín hiệu đến middleware thông báo hoàn tất tác vụ (đây là cơ chế gửi nhận message bất đồng bộ)

*

Hệ thống EMS có thể nhìn tương đương cuộc sống thực tế chính là hệ thống gửi nhận SMS của chúng ta theo cách nhìn đó là điện thoại gửi tin nhắn cho nhau thông qua tổng đài, và máy chúng ta nhận tin nhắn tự động là do tổng đài đưa tin nhắn đến máy và tín hiệu phản hồi thể hiện cho chúng ta biết người nhận có nhận hay chưa. Bên cạnh đó, người nhận tin nhắn không cần bật điện thoại tại thời điểm gửi Hệ thống EMS cũng giống tương tự hệ thống khác đó là email, cho phép lưu trữ message và sau đó người dùng sử dụng account với quyền xác thực truy cập vào mail server để lấy thông tin về message theo nghĩa chúng ta không gửi mail cho nhau mà gửi thông qua object trung gian

Khái niệm về hệ thống JMS

JMS đưa ra API cho phép người phát triển phần mềm có thể tương tác với các MOM khác nhau tương tự như khái niệm người ta đưa ra JDBC API để hỗ trợ tương tác giữa các DB khác nhau JMS API cung cấp tất các mọi chức năng hỗ trợ tạo, thêm, xóa, gửi và nhận message JMS bao gồm 2 thành phần API hỗ trợ chức năng cho người phát triển phần mềm và SPI – Service Provider Interface cho phép các nhà sản xuất tạo ra tool JMS tích hợp định hướng cho mọi người sử dụng theo hướng chuẩn hóa

*

JMS cung cấp cơ chế giao tiếp bao gồm Asynchronous: JMS tự động chuyển message đến người nhận khi message đến Reliable: một message chỉ được chuyển đến đúng một người nhận mà không có cơ chế nhân bản, do vậy, tín hiệu phản hồi hoàn tất nhận message từ người nhận sẽ gây nên xóa bỏ thông tin trên middleware object Kiến trúc JMS bao gồm 4 thành phần JMS Provider: những người tạo ra hệ thống JMS để lưu trữ tương tự hệ thống quản lý CSDL như SQL Server, Oracle, …. JMS Client: những thành phần sử dụng JMS API truy cập và thao tác trên JMS Provider Messages: định dạng trung gian để giao tiếp giữa JMS Clients và Providers Administratered Object: hỗ trợ cơ chế quản lý và cấu hình cho JMS Objects Cơ chế JMS được deploy vào trong Application Server JMS được deploy vào trong server bao gồm 02 thành phần

§Connection Factory: là nơi tạo ra thành phầnđịnh hướng đến địa chỉ haytên gọi để truy cập vào JMS tương tựnhư khái niệm truy cập DataSource của kết nốidữ liệu

§Destination: là nơi lưu trữ chomessage

02 đối tượng này được quản lý bởi administered object và container, để container cung cấp cơ chế active cho phép bên ngoài giao tiếp

§Khi cần thao tác sử dụng JMS, ứngdụng thực hiện tìm kiếm connection factory vàdestination để thao tác và thực hiện tác vụ củaứng dụng

*

Khi thao tác trong thực hiện tạo ứng dụng với JMS, ngoài chuyện thực hiện kết nối 02 đối tượng nêu trên, người dùng cần thực hiện thêm một số thao tác sau Tạo connection từ connection factory tìm thấy Từ connection để phân biệt giữa các người dùng khác nhau, chúng ta cần phải tạo session object

§Khi có session object, tùy theo việc gửi nhậnmessage mà chúng ta tạo Message Producer hay Consumer.

Sau đó thực hiện phương thức gửi hay nhận message

*

Giới thiệu về JMS Domain Đây là cơ chế để thực hiện việc gửi, nhận message Có 02 cách đó là Point to Point (P2P) và Publisher and Subcriber (Pub/Sub) P2P Sử dụng queue để lưu trữ message và hủy message đi khi hết thời gian và mô hình này message chuyển đi tuần tự (FIFO) Định nghĩa 02 đối tượng cho việc gửi và nhận, đó là sender và receiver, và chỉ có một người gửi và một người nhận Sử dụng tín hiệu acknowledge để kích hoạt cho việc nhận message ở người nhận hoàn tất Mô hình có tính bảo mật cao do một người gửi và một người nhận nhưng đôi lúc làm hệ thống bị block lại do chờ message đến Ngoài ra, mô hình cho phép người nhận không cần active tại thời điểm gửi message

*

Môhình tổng quát

*

Môhình cắt dọc

Pub/Sub Mô hình sử dụng Topic làm nơi lưu trữ Mô hình cho phép 1 người gửi và nhiều người nhận do vậy đối tượng được định nghĩa là Publisher và Subcribers Không cần sử dụng thông tin acknowledge và message được chuyển đến các subscriber chỉ là bản copy Mô hình này có thể đại diện cho email so với mô hình P2P tương tự như SMS Mô hình bảo mật không cao do gửi nhiều người nhận nhưng được ưu điểm đó là áp dụng thuận lợi cho hệ thống phân tán Topic thực chất cũng là dạng queue nhưng có nhiều hơn một queue với các queue có đánh độ ưu tiên khác nhau Mô hình Pub/Sub đòi hỏi đối tượng nhận phải active hay listener tại thời điểm gửi nhận message, nếu không message sẽ mất đi (non-durable). Do vậy, để message vẫn không mất đi nhưng được lưu trữ tạm thời trong MOM và cho phép người dùng truy cập vào MOM với tính xác thực thì chức năng durable phải được kích hoạt

*

Môhình tổng quát

*

Môhình cắt dọc

Cơ chế gửi nhận message trong JMS được chia thành hai thành phần Synchronous: đối tượng nhận và gửi message thông qua thực hiện phương thức receive và phương thức này giữ ứng dụng chờ đợi cho đến khi message tới. Asynchronous: đối tượng nhận bắt buộc phải đăng ký cơ chế lắng nghe MessageListener để đón nhận message và phương thức được kích hoạt là onMessage để đón nhận và xử lý message Mô hình tổng quát của JMS trong thực tế là kết hợp các domain và phối hợp với nhau tạo nên kênh truyền tin theo kiểu chúng ta gửi tin nhắn từ tổng đài này qua tổng đài khác rồi mới đến máy người nhận

*

Một số thành phần trong mô hình JMS Destination: nơi tiếp nhận, lưu trữ message và là nơi để các chương trình ứng dụng truy cập tới Connection factory: nơi đưa ra kết nối trên server đến chỗ lưu trữ message để từ đó có thể gửi và nhận message Connection: thể hiện một kết nối TCP/IP để thực hiện kết nối giữa client và người tạo ra lưu trữ message đó là provider Session: một thread hỗ trợ tương tác cho việc gửi nhận message Message Producer: được tạo từ session được dùng để gửi message lên destination Message Consumer: được tạo từ session được dùng để nhận message từ destination Message Listener: đưa ra cơ chế bất đồng bộ trong việc gửi nhận message Message Selector: cung cấp cơ chế lọc message theo cơ chế của provider Message: loại dữ liệu dùng để cung cấp cơ chế nói chuyện giữa các ứng dụng và thành phần component của ứng dụng Bao gồm 3 phần header (bắt buộc có) Dùng để xác định thông tin giao tiếp giữa client và thông qua cặp key và trị của nó, xác định việc gửi message đi từ đâu đến đâu Các thành phần chủ yếu bao gồm to, from, cc, bcc, subject Các thuộc tính thường sử dụng

Chuyên mục: Hỏi Đáp