VỤ, XÂY DỰNG ỨNG DỤNG
Chương 5 SOA VÀ QUẢN LÝ TIẾN TRÌNH NGHIỆP VỤ
5.2. Quản lý tiến trình, SOA và Web Service
5.2.2. Phân tích một ví dụ kết hợp Quản lý tiến trình, SOA và web
Phần này ta sẽ ứng dụng giải pháp kết hợp quản lý tiến trình, SOA và web service để giải quyết bài toán sau: “Tạo và cung cấp các dịch vụ nghiệp vụ cho các người dùng thuộc nội bộ và ở bên ngoài tổ chức dựa trên những hệ thống cũ.”
5.2.2.1. Mô tả các hệ thống cũ Các hệ thống cũ của ta bao gồm:
Hệ thống quản lý nhân sự (HR system):
Hệ thống này được xây dựng trên nền J2EE.
Bao gồm: một hệ cơ sở dữ liệu, một mô hình đối tượng.
Cung cấp một thành phần giao tiếp dựa trên EJB
Hệ thống quản lý tài chính (Finance system)
Chạy trên máy mainframe.
Sử dụng hệ thống điều khiển thông tin khách hàng (Customer Information Control System-CICS) kết hợp với một cơ sở dữ liệu để quản lý giao tác.
Hệ thống bảo mật (Enterprise Security)
Quản lý các thông tin về người dùng, vai trò, và quyền.
Hệ thống quản lý hệ thống (Enterprise Management Systems)
Hình 5-7 – Ví dụ về các hệ thống cũ cần đƣợc service hóa. [8]
5.2.2.2. Xây dựng các mô hình dữ liệu, dịch vụ và tiến trình
Bước đầu tiên trong việc tạo ra các dịch vụ (có khả năng tái sử dụng) theo các nguyên tắc thiết kế của SOA đó là phải định nghĩa các mô hình dữ liệu, dịch vụ và tiến trình
Hình 5-8 – Mô hình dữ liệu, dịch vụ và tiến trình. [8]
Mô hình dữ liệu:
Định nghĩa các mô hình dữ liệu sẽ được trao đổi giữa các dịch vụ và giữa dịch vụ và đối tượng sử dụng dịch vụ. Vì thế mô hình này còn được gọi là mô hình dữ liệu mức dịch vụ.
Mô hình này bao gồm: định nghĩa về dữ liệu (Xml schema), các nguyên tắc kiểm tra và ràng buộc về dữ liệu (Xml Schema và XPath), các nguyên tắc chuyển đổi dữ liệu (XSLT).
Mô hình được xây dựng dựa trên các cấu trúc dữ liệu, mô hình đối tượng, lược đồ cơ sở dữ liệu của các hệ thống hiện tại.
Mô hình dịch vụ:
Mô hình này xây dựng các đặc tả dịch vụ (bao gồm WSDL + WS-Policy) cho các dịch vụ nghiệp vụ.
Các đặc tả nghiệp vụ này xác định các thông tin sau:
Các tham số đầu vào và ra cho các dịch vụ (có kiểu được xác định trong mô hình dữ liệu).
Mô tả về cơ chế bảo mật của dịch vụ (như là quyền, danh sách đối tượng được phép truy cập …)
Chất lượng của dịch vụ (độ ưu tiên, an toàn đường truyền, quản lý giao tác,…).
Một số thông tin cấu hình (thời gian phản hồi, tình trạng).
Mô hình này được xây dựng dựa trên thông tin giao tiếp của các thành phần hiện có trong hệ thống (COM/DCOM type library, CORBA IDL…), các định dạng thông điệp, hay tập các hàm APIs.
Mô hình tiến trình:
Mô hình này xây dựng các tiến trình nghiệp vụ dựa trên các ngôn ngữ đặc tả tiến trình (WS-BPEL).
Mỗi tiến trình bao gồm các tác vụ cần thực hiện, luồng điều khiển giữa các tác vụ đó, luồng dữ liệu giữa các tác vụ…
Mô hình này được xây dựng dựa trên các định nghĩa về các qui trình hiện có.
5.2.2.3. Xây dựng các dịch vụ cơ sở và nền tảng dịch vụ web (Web service platform)
Các dịch vụ đơn vị được xây dựng dựa trên mô hình dữ liệu và mô hình dịch vụ. Trong ví dụ này, ba trong số dịch vụ được định nghĩa bằng cách tạo ra các đối tượng bọc cho các hệ thống cũ. Các đối tượng bọc này thực hiện dịch vụ hóa các hệ thống cũ (SOAP và WSDL), có nhiệm vụ nhận các thông điệp SOAP được gởi đến, chuyển chúng sang định dạng mà hệ thống cũ có thể hiểu, và chuyển yêu cầu xử lý đến cho các hệ thống cũ.
Hình 5-9 – Xây dựng các dịch vụ đơn vị [8]
Ngoài các dịch vụ cơ sở, ta còn phải xây dựng nền tảng khung Web service để cung cấp các tính năng cơ bản như định nghĩa, đăng ký, bảo mật và quản lý các
5.2.2.4. Xây dựng các dịch vụ tích hợp
Các dịch vụ tích hợp là các dịch vụ mà sử dụng đến các dịch vụ khác, một cách nói khác là được tạo thành bằng cách liên kết các dịch vụ với nhau. Dịch vụ tích hợp cũng giống như một web service bình thường: có một đặc tả dịch vụ WSDL và được gọi bằng các thông điêp SOAP.
Dịch vụ tích hợp có thể được tạo ra bằng cách lập trình (một EJB có thể thể hiện như một web service, trong đó có gọi đến các web service khác) hay sử dụng kỹ thuật orchestration kết hợp với WS-BPEL
Hình 5-10 – Xây dựng các dịch vụ tích hợp. [8]
5.2.2.5. Xây dựng các tiến trình nghiệp vụ
Một tiến trình nghiệp vụ thực hiện một chuỗi các tác vụ liên quan đến nhiều đối tượng (người dùng nội bộ, các đối tượng sử dụng tiến trình ở bên ngoài, và các dịch vụ liên quan). Qui trình xử lý của tiến trình nghiệp vụ được định nghĩa bằng ngôn ngữ đặc tả tiến trình WS-BPEL, và được thực thi bởi một engine.
Mỗi tác vụ trong tiến trình nghiệp vụ được thực hiện bởi một web service hay một người dùng. Khi tác vụ được thực hiện bởi web service thì engine sẽ xác định và gọi web service này, còn nếu tác vụ được thực hiện bởi một người dùng thì engine sẽ chuyển yêu cầu xử lý đến đối tượng đã được phân quyền.
Hình 5-11 – Xây dựng các tiến trình nghiệp vụ [8]
5.2.2.6. Cung cấp các dịch vụ nghiệp vụ cho người dùng
Hình 5-12 – Cung cấp các tiến trình nghiệp vụ cho người dùng [8]