2011-11-10 18 views

Trả lời

14

Đó là một câu hỏi hay vì chúng giống nhau ở chỗ chúng cung cấp quyền truy cập ứng dụng vào hệ thống nhắn tin. Đó là cách họ đạt được nó, tôi nghĩ rằng việc phân biệt chúng.

Mẫu Bộ điều hợp kênh đề cập cách lấy dữ liệu từ hệ thống hiện tại mà không sửa đổi hệ thống đó. Thông thường, Adapdter kênh được triển khai ngoài quy trình. Ví dụ thường thấy là một chương trình định kỳ đi vào cơ sở dữ liệu cơ bản để tìm mọi thứ để enqueue. Có lẽ một ứng dụng độc lập gọi một truy cập từ xa hoặc HTTP API để truy cập dữ liệu hệ thống để tạo thông báo. Vấn đề là, hệ thống không nhắn tin hoàn toàn chưa được sửa đổi.

Tôi nghĩ Cổng thông báo có ý định hơn cho tích hợp nhắn tin trong quá trình. Nó thực sự là về việc áp dụng đóng gói OO tốt xung quanh hệ thống con tin nhắn. Có lẽ một số đối tượng trong hệ thống được gọi là WorkOrderSender với một phương thức gọi là Send (WorkOrder wo). Việc thực hiện lớp đó bảo vệ ứng dụng khỏi bất kỳ chi tiết nào của tin nhắn ... cho cuộc gọi đó chỉ là một cuộc gọi phương thức khác. Trong thực tế, chúng ta có thể trao đổi trên nhà cung cấp tin nhắn của bạn hoặc thậm chí giao dịch gửi tin nhắn cho HTTP hoặc FTP, vv

+0

Nếu @Pillblast đề cập đến các mẫu như được mô tả trong sách Mẫu tích hợp doanh nghiệp của Hohpe và Woolf, thì tôi đồng ý. Các định nghĩa khác có thể khác nhau (xem phần tham chiếu Mùa xuân của emush bên dưới). Trong trường hợp tôi đã triển khai các mẫu này, tôi đã thực sự sử dụng Cổng nhắn tin trong Bộ điều hợp kênh để trừu tượng hệ thống nhắn tin cơ bản giống như cách tôi thực hiện trong một ứng dụng. – BitMask777

15

Một kênh Adaptor kết nối một ứng dụng với hệ thống nhắn tin.

  • Bộ điều hợp kênh được đặt tại bắt đầu và kết thúc luồng thông báo một chiều một chiều.
  • Bộ điều hợp kênh áp dụng cho bất kỳ một chiều bộ điều hợp trong hoặc ngoài nước nào.
  • Nói cách khác, bộ điều hợp kênh trong nước hỗ trợ chỉ trong thông báo
    trao đổi và bộ điều hợp kênh đi hỗ trợ chỉ trao đổi ngoài số.

Bất kỳ hai chiều, hoặc yêu cầu trả lời, bộ chuyển đổi được biết đến như một Cổng.

  • Nếu một request đến cần phải được phục vụ bởi nhiều chủ đề nhưng Invoker cần vẫn không biết gì về hệ thống nhắn tin, một inbound cổng cung cấp giải pháp.
  • Ở bên bên ngoài, có thể sử dụng tin nhắn đến trong lời gọi đồng bộ và kết quả được gửi trên kênh trả lời. Ví dụ, các cổng ra ngoài có thể được sử dụng để gọi các dịch vụ web và cho các tương tác yêu cầu trả lời đồng bộ trên JMS.