Ngôn ngữ mô tả dịch vụ Web 2.0 (WSDL 2.0) 

WSDL (Web Services Description Language) – Ngôn ngữ mô tả dịch vụ Web, được IBM, Microsoft và Ariba phát triển lần đầu (phiên bản 1.0) vào tháng 9 năm 2000 để mô tả các Dịch vụ Web cho bộ công cụ SOAP của họ. Nó được xây dựng bằng cách kết hợp hai ngôn ngữ mô tả dịch vụ: NASSL (Ngôn ngữ đặc tả dịch vụ ứng dụng mạng) từ IBM và SDL (Ngôn ngữ mô tả dịch vụ) từ Microsoft...

I. Giới thiệu

WSDL (Web Services Description Language) – Ngôn ngữ mô tả dịch vụ Web, được IBM, Microsoft và Ariba phát triển lần đầu (phiên bản 1.0)  vào tháng 9 năm 2000 để mô tả các Dịch vụ Web cho bộ công cụ SOAP của họ. Nó được xây dựng bằng cách kết hợp hai ngôn ngữ mô tả dịch vụ: NASSL (Ngôn ngữ đặc tả dịch vụ ứng dụng mạng) từ IBM và SDL (Ngôn ngữ mô tả dịch vụ) từ Microsoft.

WSDL 1.1 được xuất bản vào tháng 3 năm 2001. Đây là phiên bản chính thức hóa so với WSDL 1.0, và không có thay đổi lớn nào so với bản 1.0.

WSDL 1.2 (ban hành vào tháng 6 năm 2003) được biên tập, công bố thành WSDL 2.0. Theo W3C, WSDL 1.2 dễ dàng và linh hoạt hơn so với phiên bản trước. WSDL 1.2 cố gắng loại bỏ các tính năng không tương thích và cũng xác định liên kết với HTTP 1.1 tốt hơn. WSDL 1.2 không được hỗ trợ bởi hầu hết các máy chủ /nhà cung cấp SOAP.

WSDL 2.0 được đề xuất bởi W3C vào tháng 6/2007. Một số thay đổi của WSDL 2.0 so với các phiên bản trước là:

  • Bổ sung thêm ngữ nghĩa cho ngôn ngữ mô tả
  • Cấu trúc thông điệp
  • Không hỗ trợ hoạt động quá tải
  • Đổi kiểu cổng (PortTypes) trên giao diện
  • Đổi cổng trên điểm đầu cuối

II. Một số nội dung mới trong WSDL 2.0

Nhóm mô tả dịch vụ Web của W3C đã xây dựng ngôn ngữ để mô tả các dịch vụ web và các phương thức có thể tương tác với chúng. Nhóm làm việc (Working Group (WG)) đã công bố dự thảo WSDL 2.0 vào ngày 26/03/2004. Đây là một mốc quan trọng trong tiến trình của WSDL. Trong bài viết này sẽ thảo luận về những thay đổi được thực hiện với WSDL 1.1 và các cải tiến quan trọng khác đối với ngôn ngữ mô tả dịch vụ.

W3C đã xuất bản các bản dự thảo sau là một phần trong các hoạt động  công việc của mình:

Các bản thảo làm việc liên quan bao gồm các yêu cầu và các kịch bản sử dụng.

Các Định nghĩa lược đồ XML W3C cho đặc tả WSDL 2.0 tại http://www.w3.org/2003/11/wsdl/.

II.1 Các thay đổi từ đặc tả kỹ thuật WSDL 1.1

WSDL 2.0 có sự khác biệt đáng kể của nó so với WSDL 1.1. Một số thay đổi bao gồm:

  • Bổ sung thêm ngữ nghĩa cho ngôn ngữ mô tả. Đây là một trong những lý do để không gian tên mục tiêu (targetNamespace) là một thuộc tính bắt buộc của phần tử định nghĩa trong WSDL 2.0.
  • Loại bỏ các cấu trúc thông điệp. Chúng được xác định bằng cách sử dụng hệ thống kiểu lược đồ XML trong phần tử kiểu (types).
  • Không hỗ trợ quá tải cho nhà triển khai dịch vụ
  • Kiểu cổng (PortTypes) được đổi tên cho giao diện. Hỗ trợ cho việc thừa kế giao diện bằng cách sử dụng thuộc tính mở rộng (extends) trong phần tử giao diện.
  • Các cổng được đổi tên thành các điểm cuối.

II.2 Mô hình khái niệm WSDL 2.0

Mô tả của một dịch vụ web được mô hình hoá gồm 2 phần, phần trừu tượng và phần mô tả. Trong phần trừu tượng, WSDL mô tả một dịch vụ web dưới dạng các gói tin mà nó gửi nhận thông qua một hệ thống kiểu, thường là lược đồ XML của W3C. Các mẫu trao đổi thông điệp xác định trình tự và thành phần của thông điệp. Một tác vụ liên kết các mẫu thông điệp trao đổi với một hoặc nhiều thông điệp. Một giao diện (interface) gom nhóm các tác vụ dựa trên giao thức và phương tiện truyền tải.

Phần mô tả cụ thể diễn giải các ràng buộc về định dạng giao thức và phương tiện truyền tải đối với các giao diện. Điểm đầu cuối của dịch vụ được gắn với một địa chỉ mạng. Sau đó, một dịch vụ gom nhóm các điểm đầu cuối có chung giao diện. Hình 1 thể hiện Mô hình khái niệm các phần tử WSDL

Hình 1: Mô hình khái niệm WSDL

WSDL cung cấp một tập hợp các phần tử và các thuộc tính liên quan để mô tả các dịch vụ web.

Trong Danh mục 2 cho thấy cấu trúc mô tả của WSDL 2.0. Các phần tiếp theo đưa ra một cái nhìn tổng quan về từng phần tử này.

<definitions targetNamespace = "xs: anyURI">

<documentation />?

[<import /> | <include />] *

<type/>?

[<interface /> | <binding /> | <service />] *

</ definitions>

Danh mục 2: Khung WSDL 2.0

II.3 Một số lược đồ cơ bản

Các định nghĩa (definitions)

Phần tử định nghĩa (definitions) là phần tử gốc của bất kỳ tài liệu WSDL nào. Nó cung cập một kho chứa tất cả các thông tin cần thiết về dịch vụ và các thuộc tính.

Hình 2 cho thấy sơ đồ của các phần tử. Thuộc tính KhôngGianTênĐích  (ThetargetNamespace) của phần tử định nghĩa (definitions) là thuộc tính bắt buộc thuộc loại URI. Không gian tên có thể trực tiếp hoặc gián tiếp xác định ngữ nghĩa của WSDL. Ngoài ra, phần tử  định nghĩa có thể có các thuộc tính tùy chọn khác tương ứng với các không gian tên khác nhau có thể được sử dụng trong tài liệu WSDL.

http://www.xml.com/pub/a/ws/2004/05/19/graphics/image004.jpg

Hình 2 – Lược đồ định nghĩa

Include (Bao gồm)

Phần tử include giúp mô đun hóa các mô tả của dịch vụ web để tách các phần tử định nghĩa dịch vụ khác nhau từ một không gian tên đích tồn tại trong một tài liệu WSDL khác, được sử dụng hoặc chia sẻ trong các mô tả dịch vụ web. Thuộc tính location (vị trí) là bắt buộc và xác định vị trí của các tài liệu WSDL này. Giá trị thực tế của không gian tên đích của WSDL phải khớp với không gian tên đích của phần tử definitions (định nghĩa) trong WSDL. Hình 3 cho thấy lược đồ XML cho phần tử include.

http://www.xml.com/pub/a/ws/2004/05/19/graphics/image006.jpg


Hình 3: Lược đồ include

Import (nhập vào)

Khái niệm phần tử import rất giống với phần tử include. Thuộc tính không gian tên cho phần tử import là bắt buộc trong khi thuộc tính location (vị trí) là tùy chọn. Hình 4 cho thấy lược đồ XML cho phần tử import.

http://www.xml.com/pub/a/ws/2004/05/19/graphics/image008.jpg


Hình 4: Lược đồ import

Kiểu (Types)

Phần tử Types xác định các kiểu dữ liệu được sử dụng bởi các thông điệp trao đổi. WSDL sử dụng Lược đồ XML W3C như là ngôn ngữ lược đồ ưu tiên của nó. Nó cũng hỗ trợ các hệ thống khác như DTD và RELAX NG. Lược đồ có thể được sử dụng bằng cách nhập vào hoặc nhúng trong phần tử Types của tài liệu WSDL. Việc nhập có thể được thực hiện bằng cách sử dụng tệp constructxs: import trong khi việc nhúng sử dụng lược đồ xs: construct. Các thành phần nhập hoặc nhúng có sẵn cho WSDL để tham chiếu bởi QName.

Hình 5 cho thấy lược đồ XML cho phần tử types.
 

http://www.xml.com/pub/a/ws/2004/05/19/graphics/image010.jpg


Hình 5: Lược đồ kiểu

Giao diện (Interface)

Một phần tử Interface bao gồm một tập hợp các hoạt động trích xuất và các thông điệp trích xuất. Nó có thể tùy chọn mở rộng một hoặc nhiều Interface khác. Interface được gọi bằng QName trong các thành phần khác như bindings (ràng buộc). Tên và mẫu của phần tử hoạt động Interface là bắt buộc, trong khi kiểu là thuộc tính tùy chọn. Hình 6 cho thấy lược đồ của phần tử Interface. Tính năng định nghĩa các chức năng liên quan đến trao đổi thông điệp giữa các bên giao tiếp, có thể bao gồm độ tin cậy, bảo mật, tương quan và định tuyến. Thuộc tính được sử dụng để kiểm soát hành vi của một chức năng. Nó có một tập hợp các giá trị có thể và được phép được xác định bởi các tham chiếu đến một mô tả lược đồ. Các giá trị này có thể được chia sẻ giữa các tính năng.

http://www.xml.com/pub/a/ws/2004/05/19/graphics/image012.jpg

Hình 6: Lược đồ interface (giao diện)

Ràng buộc (Binding)

Phần tử Binding xác định định dạng cơ bản và định tuyến đường truyền cho các thông điệp. Mỗi Binding trong WSDL tham chiếu đến một giao diện. Tất cả các hoạt động được xác định trong giao diện phải được giới hạn trong Binding. Điểm cuối trong thành phần dịch vụ tham chiếu đến một Binding. Cả điểm cuối và Binding đều được mô hình hóa để hỗ trợ tính linh hoạt và minh bạch của vị trí. Nhiều điểm cuối với địa chỉ mạng khác nhau vẫn có thể chia sẻ cùng một giao thức Binding. Đặc tả Binding WSDL 2.0 xác định phần mở rộng Binding cho các định dạng giao thức và thông điệp như SOAP, HTTP và MIME. Hình 7 cho thấy lược đồ XML cho phần tử Binding.

http://www.xml.com/pub/a/ws/2004/05/19/graphics/image014.jpg

Hình 7: Lược đồ binding

Service (Dịch vụ)

Một phần tử Service mô tả một tập hợp các điểm cuối tham chiếu đến một địa chỉ mạng duy nhất cho một binding. Tất cả các thông tin giao thức cụ thể chứa trong binding. Service có thể được QName tham chiếu. Phần tử Service bắt buộc phải có tên và nội dung. Hình 8 cho thấy lược đồ XML cho phần tử Service.

http://www.xml.com/pub/a/ws/2004/05/19/graphics/image016.jpg

Hình 8: Lược đồ dịch vụ

II. 4 Kịch bản cung cấp tài liệu WSDL

Đặc tả kỹ thuật tài liệu WSDL

Các phần mềm trung gian tích hợp (Integration Broker) có thể cung cấp các tài liệu WSDL ở định dạng WSDL 1.1 hoặc WSDL 2.0. Theo mặc định, Trình cung cấp Dịch vụ Web được sử dụng để cung cấp các tài liệu WSDL ở định dạng WSDL 1.0, đồng thời cho phép bổ sung các tùy chọn để tạo các tài liệu WSDL ở định dạng WSDL 2.0.

Mô hình sau đây minh họa sự khác biệt giữa các tài liệu WSDL 1.1 và WSDL 2.0 ở các lớp trích xuất và cụ thể:

 

Hình 10 - Các lớp trích xuất và cụ thể của các tài liệu WSDL 1.1 và WSDL 2.0

Sơ đồ này minh họa sự khác biệt giữa các lớp trích xuất và cụ thể của các đặc tả WSDL 1.1 và WSDL 2.0.

Hỗ trợ các kiểu hoạt động cho tài liệu WSDL

Trình cung cấp Dịch vụ Web có thể tạo các tài liệu WSDL cho các hoạt động dịch vụ có các kiểu hoạt động sau:

  • Đồng bộ.
  • Không đồng bộ một chiều.
  • Yêu cầu/phản hồi không đồng bộ.

Không gian tên đích

Các lược đồ thông báo phải chứa một không gian tên đích. Nếu không có không gian tên đích nào tồn tại trong lược đồ, lỗi sẽ xảy ra khi hệ thống tạo tài liệu WSDL.

Có thể có nhiều lược đồ nhập vào cùng một không gian tên đích, nhưng các vị trí lược đồ phải được xác định.

Phần tử đa gốc và thẻ loại phức

Nếu hệ thống PeopleSoft (công nghệ phần mềm trung gian cho phép đồng bộ thông điệp giữa các hệ thống nội bộ với các hệ thống của bên thứ ba) tìm thấy nhiều phần tử gốc <element> hoặc thẻ <complexType>  trong các lược đồ thông báo, thì chỉ có lược đồ đầu tiên được tham chiếu trong tài liệu WSDL.

Ngoài ra, WSDL sẽ cho phép nhập lược đồ vào cùng một tên miền đích nhưng các vị trí lược đồ khác nhau và sử dụng <xsd: include> khi không gian tên lược đồ giống như không gian tên WSDL.

Các kho lưu trữ và điểm cuối UDDI

Khi xuất một tài liệu WSDL vào kho lưu trữ UDDI, hệ thống PeopleSoft xuất bản giá trị điểm cuối hiện tại được xác định trong trường Vị trí đích trong phần Cấu hình dịch vụ.

Giá trị điểm cuối trong tài liệu WSDL thực tế là một tài liệu động do nhà phát triển dịch vụ có thể thay đổi giá trị vị trí đích, ví dụ, khi bạn chuyển từ phát triển sang sản xuất.

Nếu nhà phát triển thay đổi vị trí đích, họ sẽ phải thay đổi các điểm cuối của các tài liệu WSDL đã xuất bản trước đó, hoặc sửa đổi trong sổ đăng ký UDDI hoặc bằng cách tái xuất bản các tài liệu WSDL tới kho lưu trữ UDDI bằng cách sử dụng điểm cuối đã thay đổi.

Định dạng URL WSDL

Sau khi nhà phát triển dịch vụ xuất bản một tài liệu WSDL bằng cách sử dụng Trình cung cấp dịch vụ Web, hệ thống sẽ hiển thị một URL WSDL. URL được cung cấp là đường dẫn đến vị trí tài liệu WSDL trong kho lưu trữ WSDL trong Kiến trúc Internet thuần túy của PeopleSoft. URL được sử dụng bởi các hệ thống bên ngoài sẽ gọi một dịch vụ PeopleSoft.

Định dạng URL mặc định là kiểu đường dẫn. Ví dụ sau đây cho thấy một URL WSDL ở định dạng đường dẫn:

http://localhost/PSIGW.war/PeopleSoftServiceListeningConnector/PT_WORKLIST.1.wsdl

Kiểu đường dẫn URL được tạo bằng cách gắn thêm tên tài liệu WSDL vào giá trị vị trí đích được chỉ định trong phần Cấu hình dịch vụ.

Phần mềm trung gian tích hợp PeopleSoft (PeopleSoft Integration Broker) cũng hỗ trợ định dạng tham số truy vấn. Ví dụ sau cho thấy một URL WSDL trong định dạng tham số truy vấn:

http: // PeopleSoftServiceListeningConnector? Operation = GetWSDL & wsdl = PT_WORKLIST.1

URL kiểu tham số truy vấn được tạo bằng cách chuyển tên tài liệu WSDL hoặc dịch vụ name.version hoặc dịch vụ alias.version dưới dạng tham số truy vấn. Hệ thống PeopleSoft vẫn hỗ trợ định dạng tham số truy vấn, tuy nhiên định dạng đường dẫn vẫn được ưu tiên sử dụng.

Các phần của tài liệu WSDL

Thành phần

Mô tả WSDL 1.1

Mô tả WSDL 2.0

<definitions>

Xác định các không gian tên cho tài liệu WSDL, Lược đồ XML W3C và SOAP. Một không gian tên duy nhất sẽ được ghi lại từ  định nghĩa dịch vụ (the Service definition). Định nghĩa dịch vụ này sẽ được sử dụng để xác định các không gian tên WSDL. Định dạng của không gian tên này như sau:

 http://xmlns.oracle.com/Enterprise/<App Name> / <Service Name>.

Khi một dịch vụ được định nghĩa trong một ứng dụng cơ sở dữ liệu, trường không gian tên được mặc định cho vùng tên dịch vụ được định nghĩa trên trang Cấu hình dịch vụ.

Không áp dụng.

Phần tử <description> thực hiện cùng một mục tiêu trong các tài liệu WSDL 2.0.

Xem <description>.

<description>

Không áp dụng

Phần tử <definitions> thực hiện cùng một mục tiêu trong các tài liệu WSDL 1.1.

Xem <định nghĩa>.

Xác định các không gian tên cho tài liệu WSDL, Lược đồ XML W3C và SOAP. Một không gian tên duy nhất sẽ được ghi lại từ Định nghĩa dịch vụ (the Service definition), nó sẽ được sử dụng để xác định các không gian tên WSDL. Định dạng của không gian tên này như sau:

http://xmlns.oracle.com/Enterprise/<App Name> / <Service Name>.

Khi một dịch vụ được định nghĩa trong một ứng dụng cơ sở dữ liệu, trường không gian tên được mặc định cho vùng tên dịch vụ. Vùng này được định nghĩa trên trang Cấu hình dịch vụ.

<partnerLinktype>

A partnerLinkType xác định vai trò của các dịch vụ và loại cổng.

Không thay đổi gì từ WSDL 1.1.

 

<types>

Xác định các kiểu đơn giản và phức tạp theo yêu cầu của lược đồ  yêu cầu và định nghĩa thông điệp phản hồi của các hoạt động dịch vụ.

 

Không thay đổi gì từ WSDL 1.1.

 

message>

Xác định các thông điệp trừu tượng cần thiết cho các hoạt động đã chọn. Các kiểu dữ liệu được lấy từ phần tử Types của tài liệu WSDL.

Không có phần tử <message> nào trong WSDL2.0.

Thay vào đó, các hoạt động bên trong giao diện tham chiếu trực tiếp đến các phần tử lược đồ.

<portType>

Một tập hợp các hoạt động trừu tượng và các thông điệp trừu tượng có liên quan. Phần này bao gồm tất cả các hoạt động của dịch vụ được chọn để xuất.

Không áp dụng.

Xem <interface>

<interface>

Không áp dụng.

Xem <portType>

WSDL 2.0 có phần tử <interface> thay thế phần tử <portType> trong WSDL 1.1.

Không giống như phần tử <portType> trong WSDL 1.1, các hoạt động trong phần tử <interface> không tập trung đến các thông điệp, mà thay vào đó tập trung đến các phần tử lược đồ có trong phần tử <types>.

<binding>

Xác định giao thức mạng và định dạng dữ liệu của các thông điệp được sử dụng cho loại cổng cụ thể.

Để cung cấp dịch vụ web, PeopleSoft sử dụng gói SOAP và giao thức truyền tải HTTP. Định dạng dữ liệu của thông điệp là định dạng Kiểu tài liệu.

Không thay đổi gì từ WSDL 1.1.

 

<operation>

Đây là một định nghĩa trừu tượng về một hoạt động dịch vụ, trong đó xác định các yêu cầu/phản hồi /các thông báo lỗi.

Không thay đổi gì từ WSDL 1.1.

 

<service>

Một nhóm dịch vụ các điểm cuối kết hợp thực hiện một giao diện chung.

Không thay đổi gì từ WSDL 1.1.

 

<port>

Trong WSDL 1.1, phần tử <port> chứa định nghĩa địa chỉ mà máy khách sẽ yêu cầu dịch vụ. Phần tử <port> cũng có tham chiếu đến binding được sử dụng bởi dịch vụ

Không áp dụng.

 

III. Kết luận

WSDL 2.0 là ngôn ngữ được sử dụng để mô tả đầy đủ về các dịch vụ Web theo tiêu chuẩn XML như kiểu dữ liệu, phương thức truyền tải...dựa trên lược đồ XML. WSDL cùng với các tiêu chuẩn SOAPUDDI tạo nên nền tảng cơ bản để triển khai dịch vụ Web. Điều này cho phép các phần mềm được viết bởi các ngôn ngữ lập trình khác nhau chạy trên nhiều nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu và giao tiếp với nhau một cách dễ dàng.

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 Ban hành 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, Bắt buộc áp dụng tiêu chuẩn WSDL 2.0 và được xếp vào nhóm Tiêu chuẩn kết nối.

Đỗ Tiến Thành

 

Tài liệu tham khảo

1.https://www.xml.com/pub/a/ws/2004/05/19/wsdl2.html

2.https://docs.oracle.com/cd/E41633_01/pt853pbh1/eng/pt/tibr/concept_UnderstandingProvidingWSDLDocuments-076201.html

 

63 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 36
    • Thành viên Thành viên 0
    • Tổng Tổng 36
    • Tổng lượt truy cập: Tổng lượt truy cập: 10409735