Công nghệ tiêu chuẩn của kiến trúc Dịch vụ Web service – data.gov.vn

Trang chủ

(data.gov.vn)
Dịch vụ Web service đại diện cho một cấu trúc kiến trúc cho phép giao tiếp giữa các ứng dụng. Một dịch vụ có thể được gọi từ xa hoặc được sử dụng để sử dụng một dịch vụ mới cùng với các dịch vụ khác

Ngoài cấu trúc Dịch vụ Web service cơ bản, bài viết này sẽ trình bày một số công nghệ tiêu chuẩn để xây dựng các Dịch vụ Web service, chẳng hạn như: Ngôn ngữ mô tả dịch vụ Web Services WSDL (Web Services Description Language), Giao thức truy cập đối tượng đơn giản SOAP (Simple Object Access Protocol) và Mô tả, khám phá và tích hợp chung UDDI (Universal Description, Discovery and Integration). Các công nghệ này dựa trên Ngôn ngữ đánh dấu mở rộng XML (eXtensible Markup Language), và chúng cho phép sử dụng lại dịch vụ và yêu cầu, mà không cần biết ngôn ngữ hoặc nền tảng cơ bản.

Dịch vụ Web services là các ứng dụng được mô đun hóa có thể được mô tả, xuất bản và được gọi dưới một mạng, thường là dựa trên WEB. Nghĩa là, các dịch vụ Web là các giao diện mô tả một tập hợp các hoạt động có thể truy cập được thông qua mạng bằng cách sử dụng các các thông điệp chuẩn XML. Dịch vụ Web services cho phép tích hợp các dịch vụ một cách nhanh chóng, hiệu quả.

Dịch vụ Web services là một thành phần phần mềm độc lập trên nền tảng triển khai. Nó có thể được mô tả bằng cách sử dụng một ngôn ngữ mô tả dịch vụ, được xuất bản trong một cơ quan đăng ký và được phát hiện bởi một cơ chế tiêu chuẩn. Do đó, nó có thể được gọi từ một Giao diện Chương trình ứng dụng API (Application Program Interface) thông qua mạng, được xây dựng trong một dịch vụ khác.

Giống như các thành phần phần mềm khác, Web services chứa các chức năng hộp đen có thể được sử dụng lại mà không cần quan tâm đến ngôn ngữ sẽ được sử dụng.

Thuật ngữ Dịch vụ Web services mô tả các chức năng cụ thể của nghiệp vụ, thường thông qua các kết nối Internet với mục đích cung cấp một số cách để khai thác dịch vụ này.

Để tạo ra một dịch vụ có sẵn trên Web thường:

• Xuất bản giao diện dịch vụ, cho phép người dùng tìm và sử dụng nó;

• Chấp nhận các yêu cầu và gửi phản hồi bằng giao thức tin nhắn XML;

• Thiết lập một ràng buộc giữa các yêu cầu bên ngoài và thực hiện chức năng nghiệp vụ.

Bằng cách sử dụng một tài liệu dạng tin nhắn, một chương trình sẽ gửi một yêu cầu đến một Dịch vụ Web services thông qua mạng và tùy chọn sẽ nhận một số phản hồi, cũng trong một tài liệu dạng tin nhắn dựa trên XML. Như vậy, việc sử dụng XML làm tăng tầm quan trọng của việc cung cấp cơ chế mở rộng để mô tả các thông điệp và nội dung của nó. Hơn nữa, các tiêu chuẩn dịch vụ dựa trên web xác định định dạng của thông điệp; để xuất bản và khám phá các giao diện Dịch vụ Web services.

Dịch vụ Web services không được truy cập thông qua các giao thức mô hình đối tượng cụ thể như Mô hình đối tượng thành phần phân tán DCOM (Distributed Component Object Model), Gọi phương thức từ xa RMI (Remote Method Invocation) hoặc Giao thức Internet IIOP Inter-ORB (Internet Inter-ORB Protocol) sẽ được truy cập thông qua các giao thức truyền tải như HTTP, FTP…

1. Tổng quan về Dịch vụ Web service

a. Kiến trúc Dịch vụ Web service

Trong Kiến trúc Dịch vụ Web services, các dịch vụ được mô tả bao gồm tất cả các chi tiết cần thiết để cấp quyền tương tác dịch vụ, bao gồm định dạng thông điệp, giao thức truyền tải và vị trí vật lý.

Giao diện này ẩn các chi tiết triển khai dịch vụ, giao diện này cho phép cùng một dịch vụ có thể được sử dụng độc lập với phần cứng hoặc ngôn ngữ cơ bản, do đó làm cho các ứng dụng dựa trên dịch vụ Web service định hướng các thành phần, làm cho các thành phần đó có sẵn để tái sử dụng.

Kiến trúc dịch vụ Web Services được trình bày trong Hình 1 được xây dựng dựa trên việc tương tác 3 vai trò:

• Nhà cung cấp dịch vụ: đây là chủ sở hữu dịch vụ từ góc độ nghiệp vụ. Từ cách tiếp cận kiến trúc, đây là nền tảng được truy cập trong yêu cầu dịch vụ. Nó cũng là thực thể tạo ra Dịch vụ Web services, nó chịu trách nhiệm thực hiện mô tả dịch vụ ở một số định dạng chuẩn và xuất bản các chi tiết trong cơ quan đăng ký trung tâm.

• Người yêu cầu dịch vụ: nó là một ứng dụng gọi hoặc khởi tạo một số tương tác với dịch vụ. Nó có thể là một trình duyệt web hoặc thậm chí là một chương trình giao diện phi người dùng như một Dịch vụ Web service khác. Bằng cách sử dụng mô tả dịch vụ, bạn có thể khám phá và gọi các Dịch vụ Web service.

• Đăng ký dịch vụ: đó là nơi các nhà cung cấp dịch vụ xuất bản các mô tả dịch vụ của họ. Người yêu cầu dịch vụ tìm kiếm các Đăng ký, tìm các thông tin ràng buộc và mô tả bao gồm cả các ràng buộc tĩnh (trong thời gian phát triển) hoặc các ràng buộc động (trong thời gian chạy).

Mô tả dịch vụ có nội dung chi tiết mô tả giao diện và quy trình triển khai dịch vụ, bao gồm: cấu trúc dữ liệu, hoạt động và thông tin liên kết mạng. Ngoài ra, nó còn đưa dữ liệu vào quá trình tìm kiếm của người yêu cầu dịch vụ. Dịch vụ là phần mềm được nhà cung cấp dịch vụ triển khai qua mạng.

Sau đó, có các hoạt động sẽ được diễn ra trong kiến trúc, chẳng hạn như:

• Ràng buộc: khi một dịch vụ phải được truy cập, thao tác này gọi và khởi tạo tương tác bên trong người gọi trong thời gian chạy, sử dụng thông tin ràng buộc được cung cấp bởi mô tả dịch vụ để định vị và liên hệ với nó.

• Xuất bản: một dịch vụ phải được xuất bản trong một đăng ký dịch vụ để được truy cập. Do đó, nhà cung cấp dịch vụ sẽ liên hệ với cơ quan đăng ký dịch vụ để xuất bản dịch vụ.

• Khám phá: Người yêu cầu dịch vụ tìm thấy mô tả dịch vụ hoặc truy vấn đăng ký dịch vụ cho loại dịch vụ được yêu cầu. Người yêu cầu dịch vụ có thể tìm thấy mô tả giao diện dịch vụ trong cả thời gian chạy hoặc thời gian phát triển. Sau đó, các thông tin cần thiết về các ràng buộc và ngôn ngữ để gọi một dịch vụ được tìm thấy và liên lạc.

b. Các lớp khái niệm dịch vụ Web services

Hình 2 sẽ trình bày các lớp khái niệm Dịch vụ Web services, được mô tả như sau:

• Cấp độ mạng: là lớp cơ sở đại diện cho các giao thức như HTTP, FTP, SMTP, POP,… Cấp này được sử dụng phù hợp với nhu cầu của ứng dụng: bảo mật, tính khả dụng, hiệu suất và độ tin cậy.

• Thông báo dựa trên XML: lớp này sử dụng giao thức SOAP làm tiêu chuẩn công nghệ trao đổi thông điệp trong một môi trường phân tán.

• Mô tả dịch vụ: mô tả dịch vụ được thực hiện bằng Ngôn ngữ mô tả dịch vụ Web WSDL (Web Services Description Language), xác định giao diện và các cơ chế tương tác của dịch vụ, mô tả thêm các thông tin bổ sung như ngữ cảnh, chất lượng dịch vụ và mối quan hệ dịch vụ.

• Xuất bản và khám phá dịch vụ: hai lớp này sử dụng tiêu chuẩn UDDI để khám phá và xuất bản thông tin về các Dịch vụ Web services.

2. Các công nghệ tiêu chuẩn được sử dụng trong các kiến trúc Dịch vụ Web services

Có 3 công nghệ đã được đề cập về cấu trúc Dịch vụ Web service. Ở vị trí giữa các công nghệ này là WSDL, SOAP và UDDI sẽ được giải quyết dưới dạng các phần con của dịch vụ.

a. Ngôn ngữ mô tả dịch vụ Web Services WSDL Description Language (Web Services Description Language)

WSDL là một ngôn ngữ dựa trên XML để mô tả các dịch vụ như một tập hợp các hoạt động có thể truy cập được thông qua các thông điệp. WSDL định nghĩa các giao diện và các cơ chế tương tác dịch vụ, các giao thức ràng buộc và các chi tiết dịch vụ mạng. WSDL trình bày các mô tả dịch vụ bổ sung như bối cảnh, chất lượng dịch vụ và mối quan hệ dịch vụ tới dịch vụ. Bằng cách sử dụng các phương pháp riêng của nó, WSDL có thể mô tả một đối tượng theo cách minh bạch, độc lập.

WSDL tách biệt cả phần giao diện và phần triển khai dịch vụ, cho phép các phần này được tái sử dụng riêng biệt. Mô tả ngắn gọn về các lớp của Hình 3 được giải thích như sau:

Lớp mô tả giao diện dịch vụ

Giao diện dịch vụ có chứa định nghĩa Dịch vụ WSDL. Định nghĩa này cho phép một giao diện có thể được sử dụng, khởi tạo và tham chiếu bởi nhiều định nghĩa triển khai dịch vụ.

Thành phần WSDL:binding mô tả giao thức, định dạng dữ liệu, bảo mật và các thuộc tính khác cho một giao diện dịch vụ cụ thể như WSDL:portType. Thẻ WSDL:portType thông báo cho các phần tử hoạt động của Dịch vụ Web service.

Thẻ WSDL:message được sử dụng để xác định đầu vào và đầu ra của dữ liệu liên quan đến hoạt động của dữ liệu.

Thẻ WSDL:type cũng định nghĩa các kiểu dữ liệu phức tạp bên trong một thông điệp.

Tệp giao diện mô tả Dịch vụ Web service, bao gồm các phương thức được gọi, các tham số được gửi và quy trình mã hóa đang được sử dụng.

Lớp mô tả triển khai dịch vụ

Lớp mô tả triển khai dịch vụ là một tài liệu WSDL mô tả cách một giao diện dịch vụ được thực hiện bởi một nhà cung cấp dịch vụ. Một dịch vụ dựa trên Web được mô hình hóa như là một phần tử WSDL có chứa tập hợp các phần tử WSDL:port (cổng liên kết và tìm kiếm dịch vụ) với một phần tử định nghĩa giao diện WSDL:binding.

Một tệp triển khai mô tả nơi Dịch vụ Web service được cài đặt và cách nó có thể được truy cập.

Tương tự như các định nghĩa giao diện và quy trình thực hiện, WSDL chỉ định các phần mở rộng cho các ràng buộc giao thức và các định dạng thông điệp, chẳng hạn như SOAP, HTTP GET/POST và MIME.

b. Giao thức truy cập đối tượng đơn giản SOAP (Simple Object Access Protocol)

SOAP là một giao thức trao đổi thông tin trong một môi trường phân tán, do đó SOAP cho phép giao tiếp giữa các ứng dụng khác nhau. Giao tiếp này được thực hiện thông qua trao đổi thông điệp định dạng XML, bao gồm các tham số gọi và các yêu cầu kết quả. Điều này ngụ ý rằng các thông điệp được tạo ra có thể được hiểu bởi hầu như tất cả các nền tảng phần cứng, hệ điều hành, ngôn ngữ lập trình và phần cứng mạng. Giao thức SOAP chủ yếu được sử dụng để gọi một Dịch vụ Web service và cũng có thể được sử dụng để xuất bản và định vị các Dịch vụ Web service thông qua một đăng ký UDDI.

Giao thức SOAP có thể được sử dụng kết hợp với vô số các giao thức khác, chẳng hạn như HTTP, SMTP e JMS. SOAP hỗ trợ các Cuộc gọi thủ tục từ xa RPC (Remote Procedure Calls), và không đồng bộ chức năng thông điệp.

Mô hình dữ liệu SOAP cung cấp định nghĩa kiểu dữ liệu cho các cấu trúc được sử dụng nhiều nhất như chuỗi, số nguyên, phao, và cả ngày tháng. Quá trình dịch từ dữ liệu (tham số và kết quả) sang XML thường được gọi là mã hóa.

Một gói SOAP bao gồm 4 phần:

Phong bì SOAP: định nghĩa một khung có chứa nội dung thông điệp, người có thể xử lý thông điệp đó và trạng thái của nghĩa vụ xử lý nó. Đó là cấu trúc thông báo SOAP có các phần tử cú pháp của thông điệp được đóng gói.

Mã hóa SOAP: định nghĩa các cơ chế tuần tự hóa có thể được sử dụng để trao đổi các cá thể hoặc các kiểu dữ liệu được định nghĩa bởi một ứng dụng.

RPC SOAP: xác định cách đóng gói các cuộc gọi và phản hồi thủ tục từ xa bên trong thông báo, do đó RPC SOAP là chức năng gọi thủ tục từ xa.

Khung ràng buộc và truyền tải SOAP: Định nghĩa một khung trừu tượng để trao đổi các phong bì SOAP giữa các ứng dụng bằng cách sử dụng một giao thức truyền tải đơn giản.

Trong đặc tả SOAP, một khái niệm khác cũng rất quan trọng:

Khách hàng SOAP: đó là một chương trình tạo ra một tài liệu XML chứa các thông tin cần thiết để gọi một phương thức từ xa trong một hệ thống phân tán (nó có thể là một Web hoặc máy chủ ứng dụng);

Máy chủ SOAP: chịu trách nhiệm thực thi thông điệp SOAP và hoạt động như một thông dịch viên và nhà phân phối tài liệu;

• Mensagem SOAP: đó là hình thức giao tiếp cơ bản giữa các nút SOAP;

Một thông điệp SOAP là một phong bì chứa các tiêu đề tùy chọn và một thông điệp với các tham số hoặc kết quả của nó. Các thông báo SOAP được viết bằng XML.

Khối SOAP là một cấu trúc cú pháp được sử dụng, bao gồm dữ liệu cấu thành sự hợp nhất tính toán logic duy nhất. Khối được xác định bởi một phần tử bên ngoài được gọi là Không gian tên URI (URI namespace). Tiêu đề SOAP là một tập hợp có giá trị không (zero) hoặc có nhiều khối, có thể được chuyển hướng đến một số phần SOAP đã biết bên trong đường dẫn của thông báo. Cuối cùng, phần thân SOAP là một tập hợp các khối không (zero) hoặc có nhiều khối được chuyển hướng đến bộ nhận SOAP cuối cùng.

Khi SOAP không định tuyến, SOAP biết người gửi SOAP nào đã tạo thông báo và biết ai sẽ là người tiếp nhận thông điệp cuối cùng thông qua khối zero hoặc nhiều nút trung gian.

Khi một nút SOAP nhận được một thông báo, nó phải thực hiện một quy trình tạo ra các thông báo thành công hoặc thất bại hoặc, nếu cần thiết, SOAP sẽ trả về các thông báo bổ sung.

c. Mô tả, khám phá và tích hợp chung UDDI (Universal Description, Discovery and Integration)

Đặc tả UDDI là một nỗ lực chung để xác định và tạo ra một đăng ký dịch vụ tiêu chuẩn. Đăng ký dịch vụ tiêu chuẩn này có thể được truy cập bởi khách hàng và xác định vị trí tất cả các dịch vụ mà họ cần. Thành phần trung tâm, được gọi là Dự án UDDI điều khiển các dịch vụ công, đăng ký toàn cầu được gọi là đăng ký nghiệp vụ UDDI. Tất cả thông tin được lưu giữ trong sổ đăng ký công khai đều có sẵn các truy vấn chung. Đăng ký riêng tư có thể bổ sung thêm các kiểm soát bảo mật để cung cấp tính toàn vẹn dữ liệu và ngăn sự truy cập không được phép. Bằng cách đó, nó chỉ có thể lưu trữ thông tin cá nhân, chứa phần con từ sổ đăng ký công cộng, thậm chí là sự kết hợp cả hai. Thông tin được cung cấp bởi sổ đăng ký nghiệp vụ bao gồm 3 thành phần:

“trang trắng” – chứa địa chỉ, số liên lạc và số nhận dạng đã biết;

“trang vàng” – phân loại công nghiệp;

“trang xanh” – chứa thông tin.

Việc triển khai UDDI là một máy chủ đăng ký Dịch vụ Web service cung cấp một cơ chế để xuất bản và định vị các Dịch vụ. Một máy chủ đăng ký UDDI chứa thông tin được phân loại về các doanh nghiệp, dịch vụ cung cấp kéo dài và các liên kết với các đặc tả Dịch vụ Web services. Các đặc tả này thường được thực hiện trong WSDL thông qua một đăng ký UDDI.

Mô hình thông tin chính được sử dụng bởi đăng ký UDDI được định nghĩa thông qua một lược đồ XML, xác định 4 loại thông tin:

• Thông tin về nghiệp vụ;

• Thông tin về dịch vụ;

• Thông tin về sự ràng buộc;

• Thông tin về dịch vụ cụ thể.

Thông tin kết thúc đăng ký dịch vụ bao gồm 4 loại cấu trúc dữ liệu. Sự phân chia theo kiểu thông tin cung cấp các phân vùng đơn giản để giúp tìm kiếm thông tin nhanh chóng và hiểu các dữ liệu khác nhau để xây dựng sổ đăng ký.

BusinessEntity cung cấp thông tin về một doanh nghiệp, có chứa một hoặc nhiều businessServices. Các mô tả kỹ thuật và nghiệp vụ của một Dịch vụ Web service cụ thể được định nghĩa trong các phần tử businessServicebindingTemplate của nó. Mỗi bindingTemplate chứa một tham chiếu đến một hoặc nhiều tModels. Một tModel được sử dụng để xác định đặc tả kỹ thuật của một dịch vụ.

Thực thể businessEntity

Cấu trúc này đại diện cho toàn bộ thông tin được biết đến từ một doanh nghiệp hoặc tổ chức cụ thể xuất bản thông tin mô tả về thực thể, tương tự như các dịch vụ cung cấp của nó. Từ góc độ quan điểm của XML, thực thể businessEntity là cấu trúc dữ liệu cấp cao nhất có chứa thông tin liên quan đến việc mô tả về một dịch vụ hoặc một thực thể.

Dịch vụ businessService

Dịch vụ businessService thể hiện phân loại hợp lý của dịch vụ. Tên của phần tử có chứa thuật ngữ “nghiệp vụ (business)” nhằm mô tả mục đích của cấp phân cấp này trong mô tả dịch vụ. Do đó, mỗi cấu trúc businessService thuộc về một cấu trúc businessEntity duy nhất.

Cấu trúc ràng buộc bindingTemplate

Các cấu trúc bindingTemplate là các mô tả kỹ thuật của các Web services được lưu trữ thông qua các cá thể bindingTemplate riêng lẻ. Những cấu trúc này cung cấp sự hỗ trợ cho một truy cập dịch vụ từ xa. Sự hỗ trợ này cũng hỗ trợ các tham số công nghệ cụ thể của các ứng dụng và các tập tin cấu hình. Sau đó, nó mô tả cách businessService sử dụng các thông tin kỹ thuật khác nhau.

tModel

Cấu trúc tModel được biểu diễn thông qua siêu dữ liệu (dữ liệu về dữ liệu). Mục đích của tModel bên trong một đăng ký UDDI là cung cấp một hệ thống tham chiếu.

publisherAssertion

Nhiều nghiệp vụ không được đại diện bởi chỉ một businessEntity mà nó đại diện cho nhiều cấu trúc businessEntity có thể được xuất bản. Thậm chí sau đó, các nghiệp vụ này lại tiếp tục đại diện cho một nhóm khác và có thể yêu cầu rằng một trong các mối quan hệ của nó sẽ được hiển thị trong thanh ghi UDDI của chúng. Trong vấn đề này, hai nghiệp vụ liên quan có liên quan sử dụng các thông điệp publisherAssertion, như một cách để xuất bản các khai báo về cách chúng có liên quan với nhau như thế nào. Một hoặc nhiều nhà xuất bản phải đồng ý rằng mối quan hệ giữa chúng là hợp lệ. Cả hai nghiệp vụ nên xuất bản chính xác cùng một thông tin, để hiển thị mối quan hệ của chúng.

Một đăng ký UDDI chạy bên trong một máy chủ UDDI. Đăng ký đó là một ứng dụng WEB có thể được truy cập thông qua trình duyệt hoặc bằng một chương trình API được lập trình, thông qua giao thức SOAP.

Xuất bản và tìm kiếm các mô tả dịch vụ WSDL trong đăng ký UDDI

Các thực thể dữ liệu UDDI cung cấp hỗ trợ để mô tả thông tin về nghiệp vụ và dịch vụ. Thông tin về một mô tả dịch vụ bên trong WSDL bổ sung cho thông tin được tìm thấy trong sổ đăng ký UDDI. UDDI cũng cung cấp hỗ trợ cho các loại mô tả dịch vụ khác nhau, mặc dù nó không hỗ trợ trực tiếp WSDL hoặc hỗ trợ cơ chế mô tả dịch vụ khác.

Một mô tả dịch vụ WSDL hoàn chỉnh là sự kết hợp của một giao diện dịch vụ và tài liệu triển khai của nó. Việc triển khai này mô tả các trường hợp của dịch vụ; mỗi cá thể được định nghĩa bằng cách sử dụng phần tử dịch vụ WSDL.

Triển khai dịch vụ được xuất bản trong một đăng ký UDDI dưới dạng businessService hoặc trong một hoặc nhiều bindingTemplates. businessService được xuất bản bởi nhà cung cấp dịch vụ.

Khi giao diện dịch vụ được xác định là có thể tái sử dụng, thì giao diện này có thể được xuất bản bên trong một đăng ký UDDI bằng cách sử dụng một tModel. Hoạt động này phải được thực hiện trước khi triển khai dịch vụ được xuất bản dưới dạng businessService

Các công nghệ tiêu chuẩn đang đặt nỗ lực vào một số công ty cung cấp kiến trúc phát triển để nhắm mục tiêu phát triển các Dịch vụ Web Services.

Kết luận

Bài báo này đã trình bày các phương pháp tiếp cận Dịch vụ Web service chính, tương tự như các công nghệ và tiêu chuẩn của nó. Việc triển khai kiến trúc khác nhau cho thấy thực tế rằng các tiêu chuẩn như SOAP, UDDI và WSDL đại diện cho một biểu mẫu để cho phép truyền thông dịch vụ Web được xây dựng giữa các nền tảng khác nhau.

Để sử dụng các tiêu chuẩn được xây dựng dựa trên ngôn ngữ XML cho phép các ứng dụng có thể giao tiếp với nhau bằng cách sử dụng một công nghệ thông điệp phổ biến, tiêu chuẩn và có thể đọc được. Đặc điểm có thể thấy được của Kiến trúc dịch vụ Web Services khác so với các kiến trúc khác là khả năng tạo ra các ứng dụng mới và kết hợp các dịch vụ đã tồn tại thông qua Internet.

Trong Quy chuẩn kỹ thuật quốc gia số 109:2017/BTTTT ngày 04/4/2017 của Bộ Thông tin và Truyền thông về cấu trúc thông điệp dữ liệu công dân trao đổi với cơ sở dữ liệu quốc gia về dân cư, các hệ thống thông tin được kết nối với nhau qua dịch vụ web service trên mạng. Dịch vụ web được mô tả chi tiết bằng tiêu chuẩn ngôn ngữ WSDL đi kèm, sử dụng giao thức đóng gói yêu cầu truy vấn dữ liệu và dữ liệu trao đổi bằng tiêu chuẩn SOAP (ưu tiên). Dữ liệu trao đổi được đóng gói bằng ngôn ngữ mô tả dữ liệu XML.

theo http://qcvn109.gov.vn/cong-nghe/cong-nghe-tieu-chuan-cua-kien-truc-dich-vu-web-service.html