Đăng ký dịch vụ Web có ngữ nghĩa vào UDDI registry

Một phần của tài liệu Tổng hợp các dịch vụ web có ngữ nghĩa = design and implement a semantic web process composition framnework (Trang 42 - 53)

4.1 T HIEÁT KEÁ HEÄ THOÁNG

4.1.2 Đăng ký dịch vụ Web có ngữ nghĩa vào UDDI registry

Nếu đã có dịch vụ Web và bản mô tả dịch vụ Web với ngữ nghĩa kèm theo như trình bày ở trên, vấn đề kế tiếp cần giải quyết là đăng ký dịch vụ Web này vào UDDI registry.

Phần 2.7 ở trên trình bày khái quát về việc đăng ký tài liệu WSDL vào UDDI registry. Trong phần này ta bàn chi tiết về cách đăng ký một tài liệu WSDL vào UDDI registry trước, rồi mới bàn đến cách đăng ký tài liệu WSDL đã mở rộng (nhằm thêm mô tả ngữ nghĩa như vừa trình bày) vào UDDI registry.

Trường hợp giao diện cho dịch vụ Web

Giao diện cho dịch vụ Web được đăng ký vào UDDI registry dưới dạng một tModel có cấu trúc tuân theo các quy tắc sau:

<semantics>

<operation-semantics SemWebExt:operation-concept = “CommittedOnt:FindHouse” />

<input-semantics SemWebExt:input-concept = “CommittedOnt:HouseAddress” />

<output-semantics SemWebExt:output-concept = “CommittedOnt:HousePrice” />

<precondition-semantics SemWebExt:precondition-concept =

“CommittedOnt:ValidAddress” />

<effect-semantics SemWebExt:effect-concept = “CommittedOnt:CurrentPrice” />

<rollback-semantics SemWebExt:rollback-concept = “CommittedOnt:Supported” />

</semantics>

• documentation của giao diện cho dịch vụ Web: 256 ký tự đầu tiên trở thành nội dung của thẻ description trong tModel. Nếu thẻ documentation không tồn tại thì nội dung thẻ description trong tModel lấy giá trị từ thuộc tớnh name cuỷa theỷ definitions cuỷa giao dieọn cho dũch vuù Web

• Vị trí của tài liệu WSDL: Gán cho thẻ overviewURL của tModel. Nếu tài liệu WSDL có nhiều thẻ binding thì tên của một binding phải được mã hóa vào trong URL này. Ví dụ nếu file WSDL nằm ở http://locahost:8080/sample_wsi.wsdl và binding tên là SingleSymbolBinding thì overviewURL của tModel có nội dung là http://locahost:8080/sample_wsi.wsdl#SingleSymbolBinding. Neỏu chổ có một thẻ binding trong tài liệu WSDL thì tên của binding này không bắt buộc phải tham gia vào URL này

• Thẻ categoryBag của tModel phải chứa ít nhất một thẻ keyedReference với nội dung được quy ước trước để xác định rằng tModel này đại diện cho một giao diện của dịch vụ Web. Ví dụ:

<categoryBag>

<keyedReference tModelKey="UUID:C1ACF26D-9672-4404-9D70- 39B756E62AB4"

keyName="uddi-org:types"

keyValue="wsdlSpec"/>

</categoryBag>

Dĩ nhiên categoryBag này vẫn có thể chứa các keyedReference khác nữa tùy nhu cầu mô tả của người sử dụng, nhưng ít nhất keyedReference như trên phải tồn tại.

Sau đây là ví dụ minh họa về một giao diện của dịch vụ Web mô tả bằng WSDL và cấu trúc tModel tương ứng sẽ được đăng ký trong UDDI registry:

Hình 13 tModel tương ứng với giao diện cho dịch vụ Web ở hình sau

<?xml version="1.0"?>

<tModel tModelKey="">

<name>http://www.getquote.com/StockQuoteService-interface</name>

<description xml:lang="en">

Standard service interface definition for a stock quote service.

</description>

<overviewDoc>

<description xml:lang="en">

WSDL Service Interface Document

</description>

<overviewURL>

http://www.getquote.com/services/SQS-interface.wsdl#SingleSymbolBinding

</overviewURL>

</overviewDoc>

<categoryBag>

<keyedReference tModelKey="UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4"

keyName="uddi-org:types" keyValue="wsdlSpec"/>

<keyedReference tModelKey="UUID:DB77450D-9FA8-45D4-A7BC-04411D14E384"

keyName="Stock market trading services"

keyValue="84121801"/>

</categoryBag>

</tModel>

Hình 14 Giao diện cho dịch vụ Web, mô tả bằng WSDL

<?xml version="1.0"?>

<definitions name="StockQuoteService-interface"

targetNamespace="http://www.getquote.com/StockQuoteService-interface"

xmlns:tns="http://www.getquote.com/StockQuoteService-interface"

xmlns:xsd=" http://www.w3.org/2001/XMLSchema "

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns="http://schemas.xmlsoap.org/wsdl/">

<documentation>

Standard WSDL service interface definition for a stock quote service.

</documentation>

<message name="SingleSymbolRequest">

<part name="symbol" type="xsd:string"/>

</message>

<message name="SingleSymbolQuoteResponse">

<part name="quote" type="xsd:string"/>

</message>

<portType name="SingleSymbolStockQuoteService">

<operation name="getQuote">

<input message="tns:SingleSymbolRequest"/>

<output message="tns:SingleSymbolQuoteResponse"/>

</operation>

</portType>

<binding name="SingleSymbolBinding"

type="tns:SingleSymbolStockQuoteService">

<soap:binding style="rpc"

transport="http://schemas.xmlsoap.org/soap/http"/>

<operation name="getQuote">

<soap:operation

soapAction="http://www.getquote.com/GetQuote"/>

<input>

<soap:body use="encoded"

namespace="urn:single-symbol-stock-quotes"

encodingStyle="http://schemas.xmlsoap.org/soap/e ncoding/"/>

</input>

<output>

<soap:body use="encoded"

namespace="urn:single-symbol-stock-quotes"

encodingStyle="http://schemas.xmlsoap.org/soap/e ncoding/"/>

</output>

</operation>

</binding>

</definitions>

Trường hợp hiện thực cụ thể của dịch vụ Web

Một hiện thực cụ thể của dịch vụ Web được đăng ký vào UDDI registry bằng cách sử dụng cấu trúc businessService. Mỗi phương thức của dịch vụ Web được đăng ký vào UDDI registry bằng cách sử dụng cấu trúc bindingTemplates.

Việc ánh xạ thẻ service của dịch vụ Web tuân theo các quy tắc sau:

• Mỗi thẻ service trong tài liệu WSDL được ánh xạ thành 01 thẻ businessService

• Giá trị thuộc tính name của thẻ service của dịch vụ Web: Gán cho nội dung cuûa theû name cuûa businessService

• Thẻ documentation của thẻ service của dịch vụ Web: 256 ký tự đầu tiên trở thành nội dung của thẻ description trong businessService tương ứng.

Nếu thẻ documentation không tồn tại thì thẻ description trong businessService để trống

Việc ánh xạ thẻ port của dịch vụ Web tuân theo các quy tắc sau:

• Mỗi thẻ port trong tài liệu WSDL được ánh xạ thành 01 thẻ bindingTemplate (là thẻ con của thẻ businessService)

• Thẻ documentation của thẻ port của dịch vụ Web: 256 ký tự đầu tiên trở thành nội dung của thẻ description trong bindingTemplate tương ứng. Nếu thẻ documentation không tồn tại thì thẻ description trong bindingTemplate để trống

• Giá trị thuộc tính location của thẻ mở rộng của thẻ port: Gán cho nội dung của thẻ accessPoint (là thẻ con của thẻ bindingTemplate). Đối với trường hợp sử dụng SOAP hoặc HTTP thì thuộc tính URLType của thẻ accessPoint sẽ chứa tên giao thức (HTTP hay gì khác) như giao thức trong thuộc tính location của thẻ mở rộng của thẻ port

• Vị trí của tài liệu WSDL: Gán cho nội dung của thẻ overviewURL (là thẻ con của thẻ bindingTemplate). Nếu trong tài liệu WSDL này có nhiều port thì overviewURL chứa tham khảo trực tiếp đến một trong số các port này. Ví dụ nếu file WSDL nằm ở http://locahost:8080/sample_wsi.wsdl và port tên là SingleSymbolPort thì overviewURL có nội dung là

một thẻ port trong tài liệu WSDL thì tên của port này không bắt buộc phải tham gia vào overviewURL như vừa nói

• Thẻ tModelInstanceInfo (là thẻ con của thẻ bindingTemplate) phải chứa ít nhất một tham khảo trực tiếp đến tModel biểu diễn cho giao diện của dịch vụ Web. Thẻ tModelInstanceInfo có thể chứa tham khảo đến các tModel khác nữa

Sau đây là ví dụ minh họa về một hiện thực cụ thể của dịch vụ Web mô tả bằng WSDL và cấu trúc businessService tương ứng sẽ được đăng ký trong UDDI registry:

Hình 15 Mô tả về hiện thực của dịch vụ Web, viết bằng WSDL

Trong hình trên, chú ý các chỗ in đậm là những chỗ có liên quan đến việc tạo ra businessService tương ứng. Ngoài ra thông tin về tên file WSDL trên, vị trí file này nằm ở đâu cũng như tModel key của giao diện Web

<?xml version="1.0"?>

<definitions name="StockQuoteService"

targetNamespace="http://www.getquote.com/StockQuoteService"

xmlns:interface="http://www.getquote.com/StockQuoteService-interface"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns="http://schemas.xmlsoap.org/wsdl/">

<documentation>

This service provides an implementation of a standard stock quote service. The Web service uses the live stock quote service provided by XMLtoday.com. The XMLtoday.com stock quote service uses an HTTP GET interface to request a quote, and returns an XML string as a response.

For additional information on how this service obtains stock quotes, go to the XMLtoday.com web site:

http://www.xmltoday.com/examples/soap/stock.psp.

</documentation>

<import namespace="http://www.getquote.com/StockQuoteService-interface"

location="http://www.getquote.com/wsdl/SQS-interface.wsdl"/>

<service name="StockQuoteService">

<documentation>Stock Quote Service</documentation>

<port name="SingleSymbolServicePort"

binding="interface:SingleSymbolBinding">

<documentation>Single Symbol Stock Quote Service</documentation>

<soap:address

location="http://www.getquote.com/stockquoteservice"/>

</port>

</service>

</definitions>

Hình 16 businessService tương ứng với mô tả dịch vụ Web

Trường hợp dịch vụ Web có ngữ nghĩa

Việc thêm ngữ nghĩa cho dịch vụ Web nằm trong phần giao diện cho dịch vụ Web. Để phù hợp với UDDI registry, việc đăng ký dịch vụ Web có ngữ nghĩa được tiến hành bằng cách sử dụng các cấu trúc tModel và keyedReference.

Chi tieỏt nhử sau:

• Trước hết cần nhắc lại tModel được dùng để mô tả một mô hình kỹ thuật (technical model) biểu diễn một khái niệm dùng lại được, ví dụ như một giao diện của dịch vụ Web, một giao thức dùng bởi các dịch vụ Web, hay

<businessService businessKey="..." serviceKey="...">

<name>StockQuoteService</name>

<description xml:lang="en">

Stock Quote Service

</description>

<bindingTemplates>

<bindingTemplate bindingKey="..." serviceKey="...">

<description>

Single Symbol Stock Quote Service

</description>

<accesssPoint URLType="http">

http://www.getquote.com/stockquoteservice

</accessPoint>

<tModelInstanceDetails>

<tModelInstanceInfo tModelKey="[tModel Key for Service Interface]">

<instanceDetails>

<overviewURL>

http://www.getquote.com/services/SQS.wsdl

</overviewURL>

</instanceDetails>

</tModelInstanceInfo>

</tModelInstanceDetails>

</bindingTemplate>

</bindingTemplates>

<categoryBag>

<keyedReference tModelKey="UUID:DB77450D-9FA8-45D4-A7BC-04411D14E384"

keyName="Stock market trading services"

keyValue="84121801"/>

</categoryBag>

</businessService>

ƒ Universal Standard Products and Services Codes (UNSPSC-7.03)

ƒ ISO 3166 Geographic Taxonomy

ƒ Standard Industrial Classification (SIC-1987)

ƒ GeoWeb Geographic Classification

ƒ UDDI Types Taxonomy

Như vậy để hỗ trợ việc mô tả ngữ nghĩa, thực chất ta thêm vào một cách phân loại nữa: Phân loại dựa trên ngữ nghĩa, trong đó ngữ nghĩa được mô tả bằng ontology (DAML+OIL). Trong bài toán cụ thể, đối với mỗi loại mô tả ngữ nghĩa ta tạo ra một tModel để đại diện cho ontology tương ứng:

ƒ operation-semantics: Mô tả ngữ nghĩa của phương thức (hàm): Ta thêm một tModel vào UDDI registry để đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa của phương thức

ƒ input-semantics: Mô tả ngữ nghĩa của dữ liệu nhập: Ta thêm một tModel vào UDDI registry để đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa của dữ liệu nhập

ƒ output-semantics: Mô tả ngữ nghĩa của dữ liệu xuất: Ta thêm một tModel vào UDDI registry để đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa của dữ liệu xuất

ƒ precondition-semantics: Mô tả ngữ nghĩa của tiền điều kiện: Ta thêm một tModel vào UDDI registry để đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa của tiền điều kiện

ƒ effect-semantics: Mô tả ngữ nghĩa của kết quả thực thi: Ta thêm một tModel vào UDDI registry để đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa của kết quả

ƒ rollback-semantics: Mô tả ngữ nghĩa trong trường hợp cần rollback: Ta thêm một tModel vào UDDI registry để đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa trong trường hợp cần rollback phương thức

• Để phục vụ cho việc tìm kiếm các phương thức (hàm) của dịch vụ Web có dùng ngữ nghĩa, thì việc đăng ký các dịch vụ Web có ngữ nghĩa có thể được giải quyết theo một trong hai hướng như sau

ƒ Phần đăng ký trong UDDI chỉ ở mức tối thiểu, thông tin về các phương thức trong dịch vụ Web không được đăng ký trong UDDI registry.

Cách giải quyết này sẽ giống như cách giải quyết việc đăng ký giao diện của dịch vụ Web thông thường, trong đó muốn tìm hiểu thông tin của từng phương thức trong dịch vụ Web thì người quan tâm phải sử dụng tài liệu WSDL tương ứng (thông qua nội dung thẻ overviewURL của tModel đại diện cho giao diện của dịch vụ Web này trong UDDI registry).

Vớ duù nhử sau:

Hình 17 tModel mức tối thiểu đại diện cho dịch vụ Web có ngữ nghĩa

keyedReference như nêu trên có thể xuất hiện trong businessService biểu diễn hiện thực cụ thể của dịch vụ Web, hoặc có thể xuất hiện trong tModel bieồu dieón giao dieọn cuỷa dũch vuù Web. keyedReference này cho biết dịch vụ Web có được mô tả ngữ nghĩa hay không, nếu có thì tuân theo ontology nào.

Thực chất thì thông tin về vị trí của ontology có thể tìm được ở tài liệu WSDL mô tả giao diện của dịch vụ Web, cho nên các thuộc tính keyName và keyValue có thể chứa mô tả về ontology này hoặc không cần cũng được.

Nếu không chứa các thông tin chi tiết về ontology trong keyedReference (nghĩa là chỉ xác định dịch vụ Web có hay không được mô tả ngữ nghĩa) thì có ưu điểm là dịch vụ Web có thể thay đổi ontology mà thông tin về dịch vụ Web trong UDDI registry không phải cập nhật, miễn là đường dẫn đến tài liệu WSDL không đổi.

<businessService businessKey=”…” serviceKey=”…”>

… <categoryBag>

<keyedReference tModelKey=”uddi:ubr.uddi.org:categorization:SEMANTICS_ONTOLOGY”

keyName=”AnyName” keyValue=”AnyValue”/>

… </categoryBag>

</businessService>

Khi đó muốn tìm hiểu thông tin về từng phương thức trong dịch vụ Web thì người quan tâm chỉ phải truy xuất UDDI registry. Đây là cách làm mà METEOR-S sử dụng.

Với cách giải quyết này thì trong businessService biểu diễn dịch vụ Web, trong phần categoryBag ta dùng các keyedReferenceGroup để biểu diễn các phương thức. Mỗi phương thức của dịch vụ Web được biểu diễn bằng một keyedReferenceGroup, trong đó mô tả ngữ nghĩa liên quan đến phương thức này. Ví dụ như sau:

Hình 18 tModel mức chi tiết đại diện cho dịch vụ Web có ngữ nghĩa

<businessService businessKey=”…” serviceKey=”…”>

… <categoryBag>

<keyedReferenceGroup tModelKey= ”uddi:ubr.uddi.org:categorizationGroup:MAPPINGGROUP”>

<keyedReference tModelKey=”uddi:ubr.uddi.org:categorization:OPERATION_CONCEPTS”

keyName=”FindHousePrice” keyValue=”FindHouse”/>

<keyedReference tModelKey=”uddi:ubr.uddi.org:categorization:INPUT_CONCEPTS”

keyName=”Input” keyValue=”HouseAddress”/>

<keyedReference tModelKey=”uddi:ubr.uddi.org:categorization:OUTPUT_CONCEPTS”

keyName=”Output” keyValue=”HousePrice”/>

<keyedReference tModelKey=”uddi:ubr.uddi.org:categorization:PRECONDITION_CONCEPTS”

keyName=”Precondition” keyValue=”ValidAddress”/>

<keyedReference tModelKey=”uddi:ubr.uddi.org:categorization:EFFECT_CONCEPTS”

keyName=”Effect” keyValue=”CurrentPrice”/>

<keyedReference tModelKey=”uddi:ubr.uddi.org:categorization:ROLLBACK_CONCEPTS”

keyName=”Rollback” keyValue=”Supported”/>

</keyedReferenceGroup>

<keyedReferenceGroup tModelKey=”uddi:ubr.uddi.org:categorizationGroup:MAPPINGGROUP”>

…… </keyedReferenceGroup>

… </categoryBag>

</businessService>

Phần in đậm (và nằm trong khung đứt nét) là mô tả ngữ nghĩa cho một phương thức của dịch vụ Web theo cách giải quyết này. Chú ý rằng khái niệm keyedReferenceGroup chỉ có trong phiên bản 3 của đặc tả UDDI, và chính khái niệm này cho ta khả năng nhóm các tiêu chuẩn phân loại vào một nhóm, phù hợp cho việc mô tả các tiêu chuẩn khác nhau của một phương thức trong dịch vụ Web. Như trình bày, ta thấy có 06 tModel đại diện cho các ontology với khóa lần lượt là

9 uddi:ubr.uddi.org:categorization:OPERATION_CONCEPTS

Đại diện ontology chứa các khái niệm biểu diễn ngữ nghĩa của phương thức.

9 uddi:ubr.uddi.org:categorization:INPUT_CONCEPTS

Đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa của dữ liệu nhập.

9 uddi:ubr.uddi.org:categorization:OUTPUT_CONCEPTS

Đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa của dữ liệu xuất.

9 uddi:ubr.uddi.org:categorization:PRECONDITION_CONCEPTS Đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa của tieàn ủieàu kieọn.

9 uddi:ubr.uddi.org:categorization:EFFECT_CONCEPTS

Đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa của kết quả việc thực hiện phương thức.

9 uddi:ubr.uddi.org:categorization:ROLLBACK_CONCEPTS

Đại diện cho ontology chứa các khái niệm biểu diễn ngữ nghĩa trong trường hợp rollback.

Cách giải quyết này có ưu điểm là việc tìm kiếm thông tin về một phương thức của dịch vụ Web chỉ cần tiến hành tại UDDI registry chứ không cần sử dụng tài liệu WSDL.

Tuy nhiên nhược điểm của cách giải quyết này là nó không giống với cách giải quyết được dùng trong trường hợp giao diện cho dịch vụ Web

Một nhược điểm nữa là cách làm này không phù hợp nếu sử dụng đặc tả UDDI phiên bản 2 (chưa có keyedReferenceGroup).

Một phần của tài liệu Tổng hợp các dịch vụ web có ngữ nghĩa = design and implement a semantic web process composition framnework (Trang 42 - 53)

Tải bản đầy đủ (PDF)

(79 trang)