Giới thiệu về Enterprise Service Bus – Hướng Dẫn Java

Views: 6.638

Enterprise Service Bus (ESB) là thành phần trọng tâm trong một hệ thống phân tán, giúp kết nối các thành phần, các ứng dụng khác nhau lại với nhau. Vậy cụ thể nó là gì, trong bài viết này chúng ta hãy cùng tìm hiểu nhé các bạn!

[external_link_head]

Tại sao lại cần phải có ESB?

Hãy tưởng tượng các bạn đang làm việc trong một hệ thống có nhiều ứng dụng và các ứng dụng đó cần được liên kết, trao đổi thông tin với nhau: ứng dụng A cần gửi một message tới ứng dụng B thông qua JMS, ứng dụng C cần gọi tới ứng dụng D để lấy thông tin cần thiết thông qua giao thức HTTP, … Tất cả các nhu cầu này được thực hiện dưới nhiều hình thức khác nhau, không cùng chung một định dạng các kiểu dữ liệu hay cùng một chuẩn giao tiếp chung.

Lập trình viên cho các ứng dụng này cũng đối mặt với nhiều khó khăn về mặt:

[external_link offset=1]

  • Giao thức: các ứng dụng này phải làm việc với các dữ liệu đầu vào từ các tập tin hệ thống cho tới các API RESTful web service.
  • Định dạng dữ liệu: các ứng dụng có thể sử dụng bất kỳ định dạng dữ liệu nào để trao đổi với nhau.
  • Cách trao đổi dữ liệu: các ứng dụng có thể gọi đến ứng dụng khác theo kiểu đồng bộ, bất đồng bộ, messaging, … rất nhiều cách trao đổi dữ liệu khác nhau.
  • Vòng đời của một ứng dụng: các ứng dụng khác nhau sẽ cần phải phát triển, bảo trì và quản lý theo những cách khác nhau.
  • Xử lý lỗi: đây là vấn đề cốt lõi của các ứng dụng, mỗi ứng dụng khác nhau sẽ có cách xử lý lỗi khác nhau.
  • Giám sát: việc giám sát việc tích hợp giữa các ứng dụng cũng gây nhiều khó khăn cho các lập trình viên.

Một vấn đề nữa là các ứng dụng phải kết nối trực tiếp với nhau theo kiểu một-một, gây khó khăn cho việc mở rộng sau này khi số lượng kết nối ngày một tăng lên.

Giới thiệu về Enterprise Service Bus - Hướng Dẫn Java

Để giải quyết vấn đề này, một hệ thống Enterprise Service Bus đã được giới thiệu. Chúng ta sẽ tìm hiểu kỹ hơn về nó trong phần tiếp theo nhé các bạn!

Enterprise Service Bus là gì?

ESB là một giải pháp cho vấn đề kết nối một-một trong một hệ thống có nhiều ứng dụng kết nối với nhau. Nó định nghĩa một nơi để các ứng dụng có thể thông qua nơi này tương tác với các ứng dụng khác, gọi là bus. Tất cả các ứng dụng của hệ thống bây giờ sẽ chỉ nói chuyện với nhau thông qua bus.

Hãy xem hình vẽ sau để hình dung rõ hơn ý nghĩa của ESB nhé các bạn:

[external_link offset=2]

Giới thiệu về Enterprise Service Bus - Hướng Dẫn Java

Để làm được điều này, hệ thống bus của chúng ta phải có thể giao tiếp thông qua nhiều giao thức khác nhau như HTTP, FTP, … và nó phải sử dụng một chuẩn định dạng dữ liệu chung cho tất cả các message như Java object hay XML.

ESB cho phép chúng ta gom tất cả các vấn đề về bảo mật, chuyển hướng và chuyển đổi dữ liệu về một chỗ. Việc chuyển đổi từ service này sang service khác cũng diễn ra suôn sẻ mà không cần phải thay đổi gì ở các ứng dụng kết nối.

Xem thêm https://en.wikipedia.org/wiki/Enterprise_service_bus

Các framework hiện thực Enterprise Service Bus

  • Mule Enterprise Service Bus
  • Apache ServiceMix

[external_footer]

Viết một bình luận