Tiêu chuẩn Web Services Business Activity Version 1.2 

Các giao thức dịch vụ Web được định nghĩa bởi Tổ chức vì sự tiến bộ của các tiêu chuẩn thông tin có cấu trúc (Organization for the Advancement of Structured Information Standards – OASIS) và cung cấp các phương thức xác định các ứng dụng dịch vụ web, đồng thời cho phép các ứng dụng hoạt động độc lập với sản phẩm, nền tảng hoặc ngôn ngữ lập trình khác nhau...

Giới thiệu

Các giao thức dịch vụ Web được định nghĩa bởi Tổ chức vì sự tiến bộ của các tiêu chuẩn thông tin có cấu trúc (Organization for the Advancement of Structured Information Standards – OASIS) và cung cấp các phương thức xác định các ứng dụng dịch vụ web, đồng thời cho phép các ứng dụng hoạt động độc lập với sản phẩm, nền tảng hoặc ngôn ngữ lập trình khác nhau.

Hoạt động Nghiệp vụ Dịch vụ Web (Web Service Business Activity (WS-BA)) là việc triển khai các đặc tả sau đây trong máy chủ ứng dụng. Các đặc tả này định nghĩa một bộ các giao thức cho phép các ứng dụng dịch vụ web tham gia vào các quy trình nghiệp vụ trong môi trường dịch vụ web không đồng nhất. Các dịch vụ web này  có khả năng bù trừ nếu các hành động xảy ra lỗi. Hoạt động nghiệp vụ là một nhóm các nhiệm vụ chung liên kết với nhau để các tác vụ có kết quả. WS-BA xác định các giao thức được phối hợp cụ thể cho các hoạt động nghiệp vụ.

WS-BA phối hợp các hoạt động nghiệp vụ theo một cách logic và xử lý các ngoại lệ xảy ra trong quá trình thực hiện các hoạt động của một quy trình nghiệp vụ. Hoạt động nghiệp vụ - BA - có các đặc điểm sau:

• Một BA có thể tiêu thụ nhiều tài nguyên trong một thời gian dài.

• Các nhiệm vụ đơn lẻ trong một BA có thể dự đoán trước khi hoàn thành hoạt động nghiệp vụ. Kết quả của các nhiệm vụ này có thể có tác động bên ngoài hệ thống máy tính.

• Trả lời yêu cầu có thể mất nhiều thời gian.

• Những người tham gia vào một hoạt động nghiệp vụ có thể thuộc các lĩnh vực khác nhau, trong đó tất cả các mối quan hệ tin cậy được thiết lập một cách rõ ràng.

WS-BA được xây dựng dựa trên WS-Coordination[WSCOOR]. Giao thức WS-Coordination mô tả một khung mở rộng nhằm cung cấp các giao thức điều phối các hoạt động trong các ứng dụng phân tán. Các giao thức điều phối như thế thường được sử dụng để hỗ trợ các ứng dụng có yêu cầu đầu ra trong giao dịch phân tán một cách thống nhất.

Nội dung chính về Web Services Business Activity

Các hoạt động nghiệp vụ hỗ trợ hai loại phối hợp (coordination types) và hai loại giao thức (protocol types). Loại giao thức có thể được sử dụng với một trong hai loại phối hợp. Các giao thức loại phối hợp cho các hoạt động nghiệp vụ được tóm tắt dưới đây:

• Thỏa thuận nghiệp vụ với sự hoàn thành của người tham gia - BusinessAgreementWithParticipantCompletion: Một người tham gia đăng ký giao thức này với điều phối viên, để điều phối viên có thể quản lý. Một người tham gia phải biết khi nào đã hoàn thành tất cả công việc cho một hoạt động nghiệp vụ.

• Thỏa thuận nghiệp vụ với sự hoàn thành của điều phối viên - BusinessAgreementWithCoordinatorCompletion: Một người tham gia đăng ký giao thức này với điều phối viên, để điều phối viên có thể quản lý. Một người tham gia dựa vào điều phối viên của mình để cho biết khi nào họ đã nhận được tất cả các yêu cầu để thực hiện công việc trong hoạt động nghiệp vụ.

Giao thức BusinessAgreementWithParticipantCompletion

Sơ đồ trạng thái trong Hình 1 quy định hành vi của giao thức giữa một điều phối viên và một người tham gia. Các trạng thái này phản ánh những gì mỗi người tham gia biết mối quan hệ của họ tại một thời điểm nhất định.

Điều phối viên chấp nhận:

- Đã hoàn thành (Completed): Khi nhận được thông báo này, điều phối viên biết rằng người tham gia đã hoàn thành tất cả quá trình xử lý liên quan đến giao thức cụ thể (protocol instance). Đối với thông báo giao thức tiếp theo, điều phối viên phải gửi thông báo Đóng hoặc Bồi thường để cho biết kết quả cuối cùng của cá thể giao thức cụ thể (protocol instance).

- Lỗi (Fail): Khi nhận được thông báo này, điều phối viên biết rằng người tham gia đã thất bại dựa trên trạng thái hoạt động Kích hoạt, Đang hủy hoặc hoặc Bồi thường. Đối với thông báo giao thức tiếp theo, điều phối viên sẽ gửi thông báo bị lỗi.

- Bồi thường (Compensated): Khi nhận được thông báo này, điều phối viên biết rằng người tham gia đã ghi lại yêu cầu bồi thường cho một giao thức.

- Đã đóng (Closed): Khi nhận được thông báo này, điều phối viên biết rằng người tham gia đã thực hiện thành công.

- Đã hủy (Canceled): Khi nhận được thông báo này, điều phối viên biết rằng người tham gia đã hoàn tất xử lý thành công thông báo Hủy.

- Thoát (Exit): Khi nhận được thông báo này, điều phối viên biết rằng người tham gia sẽ không còn tham gia vào hoạt động nghiệp vụ nữa. Đối với thông báo giao thức tiếp theo, điều phối viên sẽ gửi thông báo Đã thoát.

Người tham gia chấp nhận:

- Đóng (Close): Khi nhận được thông báo này, người tham gia biết rằng công việc đã hoàn tất thành công. Đối với thông báo giao thức tiếp theo, người tham gia Phải gửi thông báo Đóng để kết thúc giao thức.

- Hủy bỏ (Cancel): Khi nhận được thông báo này, người tham gia biết rằng công việc đang được thực hiện phải bị hủy bỏ. Đối với thông báo giao thức tiếp theo, người tham gia phải gửi thông báo Hủy để kết thúc giao thức.

- Bồi thường (Compensate): Khi nhận được thông báo này, người tham gia biết rằng công việc đang được thực hiện cần được bồi thường. Đối với thông báo giao thức tiếp theo, người tham gia phải gửi thông báo Bồi thường để kết thúc giao thức cụ thể.

- Bị hỏng (Failed): Khi nhận được thông báo này, người tham gia biết rằng điều phối viên nhận thức được một lỗi và không cần có thêm hành động nào của người tham gia.

- Đã thoát (Exited): Khi nhận được thông báo này, người tham gia nhận biết rằng điều phối viên biết người tham gia sẽ không còn tham gia hoạt động nữa. Cả điều phối viên và người tham gia đều chấp nhận.

- Trạng thái (Status): Khi nhận được thông báo này, dịch vụ đích trả về một thông báo cho biết trạng thái hiện tại của điều phối viên hoặc người tham gia. Ví dụ, nếu một người tham gia đang ở trạng thái đóng như được chỉ ra bởi bảng trạng thái, nó sẽ trả thông điệp wsba: Closing (Đóng).

Hình 1: Sơ đồ trạng thái của BusinessAgreementWithParticipantCompletion.

Điều phối viên có thể nhập vào một điều kiện trong đó điều phối viên đã gửi một thông báo giao thức và nhận được một thông báo giao thức từ người tham gia (tương ứng với trạng thái trước đó, chứ không phải trạng thái hiện tại). Trong trường hợp này, điều phối viên phải hoàn nguyên về trạng thái trước đó, chấp nhận thông báo từ người tham gia và tiếp tục giao thức từ thời điểm đó. Nếu người tham gia phát hiện tình trạng này, nó phải loại bỏ thông báo giao thức không nhất quán từ điều phối viên.

Giao thức BusinessAgreementWithCoordinatorCompletion

Giao thức BusinessAgreementWithCoordinatorCompletion cũng giống như giao thức BusinessAgreementWithParticipantCompletion, ngoại trừ việc một người tham gia dựa vào điều phối viên của nó để biết khi nào nó đã nhận được tất cả các yêu cầu để hoạt động trong hoạt động nghiệp vụ.

Hình 2: Sơ đồ trạng thái của BusinessAgreementWithCoordinatorCompletion

Ngoài các thông báo như trên, Giao thức BusinessAgreementWithCoordinatorCompletion tái xác định các thông báo như sau:

Điều phối viên chấp nhận:

- Thất bại (Fail): Khi nhận được thông báo này, điều phối viên biết rằng người tham gia đã thất bại trong các trạng thái: Đang hoạt động, Hủy, Hoàn thành hoặc Bồi thường; trạng thái của công việc do người tham gia thực hiện chưa được xác định. Đối với thông báo giao thức tiếp theo, điều phối viên PHẢI gửi thông báo Không thành công.

- Không thể hoàn thành (CannotComplete): Khi nhận được thông báo này, điều phối viên biết rằng người tham gia đã xác định rằng không thể hoàn tất thành công tất cả quá trình xử lý liên quan đến giao thức cụ thể. Bất kỳ công việc (đang chờ xử lý  đã bị loại bỏ bởi người tham gia hoặc được thực hiện bởi người tham gia liên quan đến  giao thức cụ thể) đã được hủy thành công. Đối với thông báo giao thức tiếp theo, điều phối viên PHẢI gửi thông báo Không hoàn thành. Sau khi gửi thông báo Không hoàn thành, người tham gia KHÔNG ĐƯỢC tham gia vào bất kỳ công việc nào khác liên quan đến hoạt động đó.

 Người tham gia chấp nhận:

- Hoàn thành (Complete): Khi nhận được thông báo này, người tham gia biết rằng họ sẽ không nhận được yêu cầu công việc mới nào trong hoạt động nghiệp vụ. Người tham gia hoàn tất quá trình xử lý ứng dụng và nếu thành công, PHẢI gửi thông báo đã hoàn thành. Nếu người tham gia không thành công, PHẢI gửi một thông báo Thoát, hoặc Không hoàn thành.

Xác nhận chính sách

Khung cộng tác chính sách WS-Policy và tệp đính kèm chính sách WS-PolicyAttachment định nghĩa chung một khung, mô hình và ngữ nghĩa để mô tả các khả năng, yêu cầu và đặc điểm chung của các thực thể trong một hệ thống dựa trên dịch vụ Web XML. Để kích hoạt một dịch vụ Web nhằm mô tả các khả năng và yêu cầu liên quan đến hoạt động nghiệp vụ của một dịch vụ và các hoạt động của nó, đặc tả này cần xác định một cặp xác nhận chính sách Thỏa thuận nghiệp vụ sử dụng khung cộng tác WS-Policy.

Các phác thảo chuẩn cho các xác nhận chính sách Hoạt động nghiệp vụ như sau:

<wsba:BAAtomicOutcomeAssertion [wsp:Optional="true"]? ... >

...

</wsba:BAAtomicOutcomeAssertion>

Trong đó:

/wsba: BAAtomicOutcomeAssertion – là một xác nhận chính sách xác định rằng người gửi một thông điệp đầu vào PHẢI bao gồm một ngữ cảnh phối hợp cho một Hoạt động nghiệp vụ được truyền đi với thông báo. Đối với các thông điệp ứng dụng sử dụng liên kết SOAP, ngữ cảnh phối hợp Hoạt động nghiệp vụ PHẢI lưu tiêu đề SOAP trong thông báo.

/wsba: BAAtomicOutcomeAssertion / @ wsp: Tùy chọn = "true" - Theo WS-Policy, là ký hiệu gọn gàng cho hai lựa chọn chính sách, một với và một không có xác nhận.

<wsba:BAMixedOutcomeAssertion [wsp:Optional="true"]? ... >

...

</wsba:BAMixedOutcomeAssertion>

Phần sau đây mô tả các ràng buộc được liệt kê ở trên:

/ wsba: BAMixedOutcomeAssertion – là một xác nhận chính sách chỉ ra rằng người gửi của một thông báo đầu vào PHẢI bao gồm một ngữ cảnh phối hợp cho một Hoạt động nghiệp vụ với kiểu phối hợp MixedOutcome được lưu với thông điệp. Đối với các thông điệp ứng dụng sử dụng liên kết SOAP, ngữ cảnh phối hợp Hoạt động nghiệp vụ PHẢI lưu như một tiêu đề SOAP trong thông báo.

/ wsba: BAMixedOutcomeAssertion / @ wsp: Tùy chọn = "true" - Theo WS-Policy, đây là ký hiệu gọn gàng cho hai lựa chọn chính sách, một với và một không có xác nhận.

Xác nhận Tệp đính kèm

WS-PolicyAttachment định nghĩa hai biểu thức đính kèm chính sách WSDL với một Chủ thể chính sách hoạt động:

Wsdl: portType / wsdl: operation - Biểu thức chính sách có chứa một khẳng định chính sách Hoạt động nghiệp vụ PHẢI KHÔNG được gắn vào một wsdl: portType; xác nhận chính sách Hoạt động nghiệp vụ chỉ định một hành vi cụ thể trong khi wsdl: portType là một cấu trúc trừu tượng.

Wsdl: binding / wsdl: operation - Biểu thức chính sách có chứa một xác nhận chính sách Hoạt động nghiệp vụ NÊN được gắn vào một wsdl: binding.

Các vấn đề bảo mật

Việc giao tiếp giữa các dịch vụ được bảo mật bằng cách sử dụng các cơ chế được mô tả trong WS-Security [WSSec]. Để đảm bảo an toàn cho thông điệp, nội dung chính và tất cả các tiêu đề có liên quan cần phải được bao gồm trong chữ ký số. Cụ thể, tiêu đề <wscoor: CoordinationContext> cần phải được ký với phần thân và các tiêu đề thư chính khác để "liên kết" hai phần tử này với nhau. Bốn kỹ thuật phổ biến:

- Đính kèm một nonce (chữ số bất kì sử dụng một lần trong mật mã) cho mỗi thông điệp và sử dụng nó trong một hàm khóa dẫn xuất với bí mật được chia sẻ;

- Sử dụng chuỗi khóa xuất phát và chuyển đổi "thế hệ";

- Đóng và thiết lập lại một ngữ cảnh bảo mật (không thể cho các khoá được ủy quyền);

- Trao đổi bí mật mới giữa các bên (không thể cho các khóa được ủy quyền).

Nhận thấy cơ chế được liệt kê ở trên độc lập với Mã thông báo ngữ cảnh bảo mật (Security Contect Token) và bí mật được trả về khi ngữ cảnh phối hợp được tạo ra. Nghĩa là, các khóa được sử dụng để bảo mật kênh có thể độc lập với khóa được sử dụng để chứng minh quyền đăng ký hoạt động.

Để ngăn chặn và giảm thiểu các cuộc tấn công an ninh, giao thức WS-BA cần:

- Thay đổi thông báo - Thay đổi được ngăn chặn bằng cách bao gồm các chữ ký của thông tin tin nhắn sử dụng;

- Phơi bày Thông điệp: - Tính bảo mật được duy trì bằng cách mã hóa dữ liệu nhạy cảm sử dụng WS-Security;

- Tính toàn vẹn khóa - Tính toàn vẹn khóa được duy trì bằng cách sử dụng các thuật toán mạnh nhất có thể (bằng cách so sánh các chính sách bảo mật - xem WS-Policy và WS-SecurityPolicy;

- Xác thực - Mỗi thông điệp được xác thực bằng cách sử dụng các cơ chế WS-Security [WSSec];

- Nhắc lại - Tin nhắn có thể được phát lại vì nhiều lý do. Để phát hiện và loại bỏ tấn công này, các cơ chế nên được sử dụng để xác định các thông điệp được phát lại như dấu thời gian / không được xác định trong WS-Security.

Kết luận

Trong Thông tư số 39/2017/TT-BTTTT ngày 15/12/2017 của Bộ trưởng Bộ Thông tin và Truyền thông Công bố Danh mục tiêu chuẩn kỹ thuật về ứng dụng công nghệ thông tin trong cơ quan nhà nước quy định Khuyến nghị áp dụng tiêu chuẩn Web Services Business Activity phiên bản 1.2, thuộc mục 1.16 Dịch vụ đặc tả Web và được xếp vào nhóm Tiêu chuẩn về kết nối.  

Nguyễn Thị Thu Trang

Tài liệu tham khảo

[1] http://specs.xmlsoap.org/ws/2004/10/wsba/wsba.pdf

[2] Web Services Business Activity (WS-BusinessActivity) Version 1.2, OASIS Standard, 2 February 2009

112 Go top

Ý kiến về Trang thông tin điện tử Cục Tin học hóa?



THÔNG KÊ TRUY CẬP
  • Người trực tuyến Người trực tuyến
    • Khách Khách 38
    • Thành viên Thành viên 0
    • Tổng Tổng 38
    • Tổng lượt truy cập: Tổng lượt truy cập: 10403869