KHO TRI THỨC KHO TRI THỨC

Vai trò của trục tích hợp ESB trong kiến trúc ứng dụng hướng dịch vụ SOA
Ngày đăng 28/03/2017 | 18:14

Xây dựng Chính phủ điện tử đòi hỏi việc phải đáp ứng rất nhiều các yêu cầu như yêu cầu về kết nối các hệ thống khác nhau tại các Sở, ban, ngành. Thêm nữa, việc quản lý tập trung các dịch vụ chính phủ điện tử, điều khiển các quy trình nghiệp vụ, cung cấp đa giao thức kết nối cũng là những vấn đề trọng tâm trong việc xây dựng một chính phủ điện tử toàn diện, minh bạch

Xây dựng Chính phủ điện tử đòi hỏi việc phải đáp ứng rất nhiều các yêu cầu như yêu cầu về kết nối các hệ thống khác nhau tại các Sở, ban, ngành. Thêm nữa, việc quản lý tập trung các dịch vụ chính phủ điện tử, điều khiển các quy trình nghiệp vụ, cung cấp đa giao thức kết nối cũng là những vấn đề trọng tâm trong việc xây dựng một chính phủ điện tử toàn diện, minh bạch. Để giải quyết bài toán này thì việc xây dựng một hệ thống phần mềm lõi đóng vai trò trung tâm kết nối là thực sự cần thiết. Trong một kiến trúc hướng dịch vụ (SOA), một trục tích hợp ESB (Enterprise Service Bus) là một thành phần cơ sở hạ tầng có tính quyết định, quan trọng trong việc liên kết các ứng dụng lại với nhau như thể hiện trong hình bên dưới.

Hình 1 - Trục tích hợp ESB kết nối các ứng dụng khác nhau

Để triển khai một kiến trúc ứng dụng hướng dịch vụ (SOA), cả các ứng dụng và hạ tầng phải hỗ trợ các nguyên tắc cơ bản của SOA. Việc kích hoạt các ứng dụng liên quan đến quá trình khởi tạo các giao diện dịch vụ cho các chức năng hiện tại hoặc các chức năng mới một cách trực tiếp hoặc thông qua việc sử dụng các bộ chuyển đổi. Việc kích hoạt hạ tầng tại mức cơ bản nhất liên quan đến việc cung cấp khả năng để định tuyến và trung chuyển các yêu cầu dịch vụ đến các nhà cung cấp dịch vụ một cách chính xác. Do đó, vai trò của ESB, một phần nào đó, là để cho phép hạ tầng, các ứng dụng kết nối với nhau thông qua một trục duy nhất.

Tuy nhiên, giá trị thực của trục tích hợp ESB về cơ bản là cho phép hạ tầng của ứng dụng hướng dịch vụ thể hiện được các yêu cầu của doanh nghiệp, đó là cung cấp các mức độ dịch vụ thích hợp và khả năng quản lý và để vận hành và tích hợp trong một môi trường không đồng nhất. Hàm ý của các yêu cầu này vượt trên khả năng định tuyến và trung chuyển cơ bản. Trục tích hợp ESB nên cho phép thay thế một dịch vụ bằng một dịch vụ khác mà không gây ảnh hưởng tới khách hàng của dịch vụ đó.

Dưới đây sẽ giới thiệu một số vai trò quan trọng của trục tích hợp ESB trong kiến trúc hướng dịch vụ SOA.

ESB hỗ trợ rất nhiều kiểu mẫu tích hợpVới mục đích hỗ trợ đầy đủ các kiểu mẫu tích hợp khác nhau theo yêu cầu trong một kiến trúc SOA (ví dụ yêu cầu/phản hồi, xuất bản/đăng ký hay sự kiện), trục tích hợp ESB phải hỗ trợ cả ba kiểu kiến trúc tích hợp trong một hạ tầng, bao gồm:

  • Kiến trúc hướng dịch vụ, trong đó các ứng dụng liên lạc với nhau thông qua việc sử dụng lại các dịch vụ với các giao diện đầy đủ, đúng đắn và rõ ràng. Tích hợp hướng dịch vụ thúc đẩy các mô hình truyền tải thông điệp và các mô hình giao tiếp của các sự kiện.
  • Kiến trúc hướng thông điệp, trong đó các ứng dụng tạo và sử dụng các thông điệp một cách độc tập từ các ứng dụng khác.

Trục tích hợp ESB thực hiện nhiệm vụ này trong khi cung cấp các khả năng bổ sung cho tầng trung gian hoặc chuyển đổi các tương tác và các thông điệp dịch vụ, tạo điều kiện cho một loạt các hành vi và hỗ trợ các mô hình khác nhau của sự tương tác khớp nối. Hình bên dưới thể hiện một mức độ cao hơn của trục tích hợp ESB.

Hình 2 - Mô hình mức độ cao hơn của trục tích hợp ESB

Trục tích hợp ESB đóng vai trò trung tâm kiểm soát và phân bổ quá trình xử lý

Trục tích hợp ESB đôi khi được mô tả như một hạ tầng phân bổ với các giải pháp (như các công nghệ “môi giới”) và thường được mô tả như là hub - và - spoke. Hình bên dưới thể hiện sự mô tả này của ESB. Tuy nhiên, cách nhìn nhận về ESB không thực sự giúp ích gì được nhiều trong việc mô tả cách mà ESB được triển khai thực tế. Ví dụ, những thành phần hạ tầng nào xây dựng nên ESB mà được mô tả trong hình bên dưới như một đường thẳng?

Hình 3 - Mô hình trục tích hợp ESB được thiết kế như một hạ tầng vật lý

Ngược lại, các giải pháp tích hợp hub - và - spoke (hình 4) tìm cách tập trung kiểm soát các cấu hình: thông tin định tuyến, đặt tên dịch vụ…

Hình 4 - Mô hình tích hợp hub - và - spoke

Trong các mô hình tích hợp quy trình nghiệp vụ điện tử, một trục tích hợp ESB được xác định như một kênh (bus), trong khi đó nó sẽ được xác định như một cụm tập trung (hub) như trong Hình 5 và Hình 6.

Hình 5 - Sự biến đổi Hub thành Bus

Hình 6 - Mối quan hệ giữa Hub, Bus và ESB

Sự khác biệt giữa hai giải pháp phân bổ Bus và hub - và - spoke tập trung thực ra lại là một sai lầm. Có hai vấn đề ở đây đó là sự tập trung về kiểm soát và sự phân bổ của hạ tầng. Trong giai đoạn đầu tiên hoặc đối với các mô hình triển khai ở mức độ nhỏ của các giải pháp tích hợp thì hạ tầng vật lý có xu hướng tập trung: tập trung vào một cụm duy nhất, hoặc một Hub, hoặc tập trung vào các máy chủ. Tuy nhiên, trong quá trình triển khai, hạ tầng lại có xu hướng trở thành phân bổ hơn là tập trung, như là một Bus. Hình 7 cho thấy kết quả của việc triển khai một ESB. Tất nhiên việc phân bổ rộng rãi của công nghệ “môi giới” này trong một mô hình Bus phụ thuộc vào khả năng của công nghệ để hỗ trợ mô hình phân bổ này. Điều quan trọng nữa trong việc triển khai công nghệ ESB đó là khả năng mở rộng các công việc hiện tại bằng việc bổ sung khả năng xử lý phân bổ mà không ảnh hưởng đến hạ tầng hiện tại.

Hình 7 - Trục tích hợp ESB được thiết kế như một hạ tầng phân bổ với việc kiểm soát tập trung

Trong phần tiếp theo, tôi sẽ giới thiệu một vài ví dụ trong việc triển khai kiến trúc hướng dịch vụ với việc áp dụng trục tích hợp ESB. Các ví dụ được nêu ra nhằm mục đích mô tả các trường hợp riêng biệt trong việc triển khai SOA mà áp dụng ESB chứ không mô tả các yêu cầu của SOA hay là của ESB trong toàn bộ hệ thống của một tổ chức. Thực tế thì, trong một vài trường hợp SOA hoặc ESB có thể là những mục tiêu chiến lược được tạo nên từ các yêu cầu nghiệp vụ thông suốt trong một tổ chức, nhưng trong rất nhiều các trường hợp khác SOA hoặc ESB được khuyến nghị để đáp ứng các nhu cầu về tính mềm dẻo và khả năng tích hợp rộng rãi trong một tổ chức.

Lý do cho việc tập trung vào các trường hợp cụ thể bởi vì chúng mô tả các yêu cầu cụ thể mà có thể phân tích, đánh giá được nhằm xác định các phương pháp và công nghệ phù hợp. Trong một số trường hợp, triển khai các giải pháp đơn giản đối với mỗi trường hợp nhất định lại là phương pháp tốt nhất. Trong các trường hợp khác nó có thể mang lại lợi ích tốt hơn nếu kết hợp các yêu cầu từ các trường hợp mà triển khai một giải pháp thông dụng, toàn diện hơn. Trong một số trường hợp khác thì việc sử dụng một phương pháp là sự trộn lẫn của nhiều phương pháp sẽ tốt hơn.

1. Sự tích hợp cơ bản của hai hệ thống

Ví dụ này sẽ mô tả các bộ điều khiển, các công nghệ, và các vấn đề về việc tích hợp hai hệ thống và làm nổi bật các mô hình SOA cụ thể và khả năng của ESB áp dụng trong trường hợp này. 

Các bộ điều khiển:

  • Sự cần thiết phải tích hợp hai và chỉ hai hệ thống mà đã được triển khai bằng các công nghệ khác nhau, ví dụ như J2EE và .NET
  • Sự cần thiết phải triển khai sự tích hợp nhanh chóng và có chiến lược

  Các công nghệ có thể được sử dụng

  • Các dịch vụ web
  • Công nghệ thông điệp
  • Các bộ chuyển đổi hoặc các bộ kết nối.

Các vấn đề cụ thể

  • Các giao diện chức năng và dữ liệu
  • Các công nghệ cho việc liên thông
  • Các đặc tính tương tác nâng cao
  • Công nghệ hỗ trợ trong các hệ thống hiện tại
  • Kích hoạt dịch vụ một cách ổn định và có thể kiểm soát
  • Truy cập từ bên ngoài tới các dịch vụ
  • Các yêu cầu mức độ dịch vụ
  • Các yêu cầu bảo mật

Các mô hình SOA cụ thể

  • Kết nối trực tiếp: tích hợp cơ bản trong hoặc giữa các tổ chức sử dụng các bộ chuyển đổi, các giao thức can thiệp…
  • Mô hình ESB: sử dụng công nghệ hạ tầng để triển khai một trục tích hợp ESB.
  • Các mô hình SOA tổng thể mở rộng: Việc áp dụng các mô hình SOA cho việc mở rộng tổ chức.

Các yêu cầu về khả năng của ESB

  • Các giao tiếp (tất cả)
  • Tương tác dịch vụ:

- Định nghĩa giao diện dịch vụ

- Các mô hình thông điệp dịch vụ

  • Tích hợp:

- Cơ sở dữ liệu

- Di sản và các bộ chuyển đổi ứng dụng

- Các môi trường máy chủ ứng dụng

- Các giao diện ngôn ngữ cho việc dẫn chứng dịch vụ

  • Chất lượng dịch vụ (tất cả)
  • Bảo mật (tất cả)

2. Mở rộng kết nối đến một hoặc nhiều ứng dụng

Ví dụ sẽ mô tả các bộ điều khiển, các công nghệ, và các vấn đề cho việc mở rộng kết nối đến một hoặc nhiều ứng dụng và làm nổi bật các mô hình SOA cụ thể và khả năng áp dụng của ESB.

Các bộ điều khiển:

  • Cho phép dịch vụ truy cập đến các ứng dụng đóng gói (ví dụ CRM, ERP)
  • Cho phép dịch vụ truy cập đến các ứng dụng hiện tại hoặc các ứng dụng mới tùy chỉnh, có thể triển khai trong J2EE hoặc trong các môi trường máy chủ ứng dụng khác

Các công nghệ có thể sử dụng

  • Các dịch vụ web
  • Thông điệp không đồng bộ
  • Tích hợp ứng dụng tổng thể trung gian, công nghệ chuyển đổi thông điệp, ESB

Các vấn đề cụ thể

  • Các giao diện chức năng và dữ liệu
  • Mô hình dữ liệu nghiệp vụ thông dụng
  • Các công nghệ cho việc liên thông
  • Các đặc tính tương tác nâng cao
  • Công nghệ hỗ trợ trong các hệ thống hiện tại
  • Sự sẵn sàng của các dịch vụ trong hạ tầng EAI
  • Sự bảo vệ nhà cung cấp dịch vụ
  • Kích hoạt dịch vụ một cách ổn định và có thể kiểm soát
  • Truy cập từ bên ngoài tới các dịch vụ
  • Các yêu cầu mức độ dịch vụ
  • Các yêu cầu bảo mật

Các mô hình SOA cụ thể

  • Kết nối trực tiếp: tích hợp cơ bản trong hoặc giữa các tổ chức sử dụng các bộ chuyển đổi, các giao thức can thiệp…
  • Mô hình ESB: sử dụng công nghệ hạ tầng để triển khai một trục tích hợp ESB
  • Các mô hình SOA tổng thể mở rộng: Việc áp dụng các mô hình SOA cho việc mở rộng tổ chức.
  • Kết cấu dịch vụ nghiệp vụ: nếu kết cấu dịch vụ nghiệp vụ cũng cần thiết, triển khai mô hình Quy trình chuỗi hoặc Quy trình song song.

Các yêu cầu về khả năng của ESB

  • Các giao tiếp (tất cả)
  • Tương tác dịch vụ:

- Định nghĩa giao diện dịch vụ

- Các mô hình thông điệp dịch vụ

  • Tích hợp:

- Cơ sở dữ liệu

- Di sản và các bộ chuyển đổi ứng dụng

- Các môi trường máy chủ ứng dụng

- Các giao diện ngôn ngữ cho việc dẫn chứng dịch vụ

  • Chất lượng dịch vụ (tất cả)
  • Bảo mật (tất cả)

Qua bài viết này, chúng ta có thể một phần nào thấy được vai trò quan trọng của trục tích hợp ESB trong một kiến trúc hướng dịch vụ (SOA). Với vai trò hỗ trợ rất nhiều mẫu tích hợp và làm trung tâm kiểm soát và phân bổ quá trình xử lý, trục tích hợp ESB đã gián tiếp kết nối các ứng dụng có sử dụng các dạng dịch vụ khác nhau để liên thông, chia sẻ dữ liệu cũng như quy trình tạo nên một kiến trúc tổng thể góp phần thúc đẩy mạnh việc xây dựng chính phủ điện tử toàn diện, minh bạch, tiết kiệm chi phí, thời gian.

Cao Hoàng Nam - Cục Tin học hóa