当前位置 : 主页 > 网页制作 > Nodejs >

WebServices原理与研发实践——读书笔记3

来源:互联网 收集:自由互联 发布时间:2021-06-24
第六章 统一描述、发现和集成协议(Universal Description, Discovery and Integration, UDDI)是一套基于Web的分布式的Web Services信息注册中此乃的实现标准规范。 1、工作原理 UDDI的工作方式和邮局

第六章

统一描述、发现和集成协议(Universal Description, Discovery and Integration, UDDI)是一套基于Web的分布式的Web Services信息注册中此乃的实现标准规范。

1、工作原理

UDDI的工作方式和邮局公开发行的电话黄页类似,它可以把特定的企业信息和Web Services 在Internet上广而告之,并且提供具体的联系地址和方式。

        ** UDDI商业注册中心所提供的信息从概念上来说分为三个部分:

        白页(white page)表示与企业有关的基本信息,包括企业名称、经营范围、联系地址、企业标识等;

                黄页(yellow page)依据标准分类法区分不同的行业类别,使企业能够在更大的范围(如地域范围)内查找已经在注册中心注册的企业或Web Services;

                绿页(green page)则包括企业所提供的Web Services的技术信息,其形式可能是一些指向文件或是URL的指针,而这些文件或URL是服务发现机制的必要组成部分。

** UDDI的具体工作步骤如下:

               * 软件公司、标准化组织和程序员定义了企业如何在UDDI中注册的规则后,开始向UDDI注册中心发布这些规则的描述信息。这些规则被称为技术模型(即tModel)

               * 企业向UDDI注册中心注册关于该企业及其提供的Web Services的描述;

               * UDDI注册中心会给每个实体(tModel以及企业)指定一个在相关程序中唯一的标识符UUID(通用唯一标识符,Universally Unique ID)。UUID可以用来引用与之相关联的实体。

               * 电子交易场所和搜索引擎等其他类型的客户和商务应用程序使用UDDI注册中心来发现它们感兴趣的Web Services。

               * 其他的企业就可以调用这些服务,方便、迅速地进行商务应用程序的动态集成。

** UDDI注册中心里的四类数据:

               * 商业实体(businessEntity),发布服务信息的商业实体的详细信息,包括企业名称、关键性的标识、可选的分类信息和联络方法等。

               * 服务信息(businessService),一组特定的技术服务的描述信息。该信息是“绿页”数据的重要组成部分,是对Web Services的技术和商业描述。businessService结构是一个描述性容器,它组合了一系列的有关商业流程或分类目录的Web Services的描述信息。

               * 绑定模板(bindingTemplate),关于Web Services的入口点和相关技术规范的描述信息。

               * 技术模型(tModel),Web Services或分类法的规范性描述信息,也就是关于调用规范的元数据,包括Web Servicces名称、注册Web Services的企业信息和指向这而规范本身的URL指针等。


2、UDDI数据信息模型

* businessEntity元素

<element name="businesssEntity">
     <type content="elementOnly">
           <group order="seq">
                <element ref="discoveryURLs" minOccurs="0" maxOccurs="1" />
                <element ref="name" />
                <element ref="description" minOccurs="0" maxOccurs="*" />
                <element ref="contacts" minOccurs="0" maxOccurs="1" />
                <element ref="businessServices" minOccurs="0" maxOccurs="1" />
                <element ref="identifierBag" minOccurs="0" maxOccurs="1" />
                <element ref="categoryBag" minOccurs="0" maxOccurs="1" />
           </group>
           <attribute name="businessKey" minOccurs="1" type="string" />
           <attribute name="operator" type="string" />
           <attribute name="authorizedName" type="string" />
     </type>
</element>
其中businessKey、operator和authorizedName分别表示businessEntity的主键、实施注册的UDDI操作入口站点以及该businessEntity拥有所有权的用户ID。

discoveryURLs,包含多个discoveryURL,访问其中的每个discoveryURL都可以获得这个businessEntity的完整XML文本。 name表示该商业实体的名字、description表示该实体的描述、contacts表示联系方法。businessServices是一个businessService的容器,它表示这个businessEntity所能提供的所有Web Services。

       UDDI支持多种查询方式,可以通过传统的商业实体的标识进行查询,也可以使用行业分类法进行查询。identifierBag和categoryBag为这样的查询提供了统一的支持。

* businessService元素

<element name="businessService">
     <type content="elementOnly">
           <group order="seq">
                <element ref="name" />
                <element ref="description" minOccurs="0" maxOccurs="*" />
                <element ref="bindingTemplates" />
                <element ref="categoryBag" minOccurs="0" maxOccurs="1" />
           </group>
           <attribute name="serviceKey" minOccurs="1" type="string" />
           <attribute name="businessKey" type="string" />
     </type>
</element>
serviceKey表示businessService的主键,businessKey表示businessService的父类容器businessEntity的主键标识。
name表示该服务的名字,description表示服务的描述信息,categoryBag提供查询支持。bindingTemplates是一个bindingTemplate的容器,它表示这个businessService所包含的所有技术绑定信息。


* bindingTemplate元素

<element name="bindingTemplate">
     <type content="elementOnly">
           <group order="seq">
                <element ref="description" minOccurs="0" maxOccurs="*" />
                <group order="choice">
                      <element ref="accessPoint" minOccurs="0" maxOccurs="1" />
                      <element ref="hostingRedirector" minOccurs="0" maxOccurs="1" />
                </group>
                <element ref="tModelInstanceDetails" />
           </group>
           <attribute name="bindingKey" minOccurs="1" type="string" />
           <attribute name="serviceKey" type="string" />
     </type>
</element>
bindingKey表示bindingTemplate的主键,serviceKey表示bindingTemplate的父类容器businessService的主键标识。tModelInstanceDetails包含了这个bindingTemplate所定位的调用入口的调用规范描述,这些描述都以tModel的形式出现。tModel在bindingTemplate中以引用关系存在。

accessPoint定义了由这个bindingTemplate描述的服务调用入口的访问地址,用户可以通过这个地址访问具体的服务。hostingRedirector则是accessPoint无法满足需求时的一种替代机制,同时hostingRedirector也是在当前电子交易市场、ISP等中间机构存在的情况下的一种强有力的描述托管机制。

* tModel元素

每一个bindingTemplate元素都包含一个特殊的元素tModel,该元素包含一个列表,列表的每个子元素分别是一个调用规范的引用。

<element name="tModel">
     <type content="elementOnly">
           <group order="seq">
                <element ref="name" />
                <element ref="description" minOccurs="0" maxOccurs="*" />
                <element ref="overviewDoc" minOccurs="0" maxOccurs="1" />
                <element ref="identifierBag" minOccurs="0" maxOccurs="1" />
                <element ref="categoryBag" minOccurs="0" maxOccurs="1" />
           </group>
           <attribute name="tModelKey" minOccurs="1" type="string" />
           <attribute name="operator" type="string" />
           <attribute name="authorizedName" type="string" />
     </type>
</element>
tModelKey表示tModel的主键,operator是实施注册的UDDI操作入口站点,authorizedName是对该tModel拥有所有权的用户ID。overviewDoc包含的是规范的关键信息,包含了一系列的URL,通过这些URL可以访问到这个tModel的具体技术规范文本。

3、UDDI的注册、查找与发布

(1)、UDDI的分类法与标识系统

businessEntity、businessService以及tModel等实体信息附加了类别信息以及标识信息等信息。

       类别信息(属于某个分类法下的某个类别),是使用categoryBag元素来指定的,其中包含具备命名空间修饰的对分类法键值和描述的引用。

       标识信息(在某个标识系统中拥有一个标识),是使用identifierBag元素来指定的,其中包含了具备命名空间修饰的对标识符和描述的引用。


        UDDI规范1.0版中内置了三个分类法:

        ** NAICS行业分类法。

                 ** UN/SPSC产品分类法。

                 ** ISO 3166地理分类法。

        UDDI规范1.0版内置了两个标识系统:

                 ** Dun & Bradstreet D-U-N-S? Number标识符

                 此标识符表示一旦注册中心开始运行,这个tModel就会被传送到Dun & Bradstreet信息发布者那里进行管理。

                 ** Thomas Registry Suppliers标识符

                此标识符表示一旦注册中心开始运行,这个tModel的监管权将被移交给Thomas注册中心的信息发布者。

         UDDI1.0中内置的分类法和标识系统是美国的商业惯例。全球各地的分类法和标识体系不可能全部加到UDDI中,因此为了解决如何提供种类繁多的分类法和标识系统,来满足全球用户的需要,又无需太多地增加UDDI注册中心的运作代价。UDDI规范2.0引入了已校验(checked)的外部命名空间的概念。

外部命名空间描述的外部分类法或标识系统的工作流程如下:

         * 分类法(或标识系统)提供商首先将其自身提供的分类法的技术信息注册到UDDI注册中心,然后在UDDI注册中心注册与该分类法对应的分类校验服务(Taxonomy Validation Service)。

        * 商业实体将自身信息注册到UDDI注册中心,同时采用外部的分类法提供商提供的分类法对其信息加以分类。

                * UDDI注册中心发现这个外部分类,因此调用外部的与该分类法对应的分类校验服务来实施校验,如果校验成功则实体包含的相关分类信息被标注为已校验,否则就被标注为未通过校验。

(2)、UDDI的API介绍

UDDI的API是用于商业实体、Web Services和绑定信息的发布与发现的一套请求/响应机制。

        UDDI的API中定义了两类API,即发布API和查询API。发布API主要用于在UDDI注册中心之间修改和存储注册信息,需要通过授权才能访问。而查询API主要用于从注册中心读取Web Services的相关信息,不需要通过授权。

       

4、从WSDL到UDDI的映射

一个完整的WSDL服务描述是由一个服务接口和一个服务实现文档组成的,由于服务接口标识服务的可重用定义,因此它在UDDI注册中心被作为tModel发布。服务实现描述服务的实例,每个实例都是使用一个WSDL Service元素定义的。服务实现文档中的每个Service元素都用于发布UDDI businessService。

网友评论