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 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 k
Trang 1Vai trò của trục tích hợp ESB trong kiến trúc ứng dụng hướng dịch vụ SOA
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
Trang 2ESB hỗ trợ rất nhiều kiểu mẫu tích hợp
Vớ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?
Trang 3Hì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ạ
Trang 4giả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
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
Trang 5 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ộ uyể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ả)
Trang 6 Bảo mật (tất cả)
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
Trang 7 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