Giới thiệu về Enterprise Service Bus

3409

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh

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!

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:

  • 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.

Enterprise Service Bus (ESB) là gì?

Để 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!

Tìm việc làm Java lương cao, đãi ngộ hấp dẫn tại đây!

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:

Enterprise Service Bus (ESB) là gì?

Để 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
Bài viết gốc được đăng tải tại huongdanjava.com
Xem thêm:

Đừng bỏ lỡ việc làm IT mọi cấp độ tại TopDev!