首页> 中国专利> 用于在一定数量的第一服务和一定数量的第二服务之间通信的方法

用于在一定数量的第一服务和一定数量的第二服务之间通信的方法

摘要

本发明涉及一种用于在一定数量的第一服务(WS1,WS2,WS3)和一定数量的第二服务(SE1,SE2,…,SE9)之间通信的方法。该一定数量的第一服务(WS1,WS2,WS3)属于面向服务的体系结构(SA),在该体系结构中借助第一协议基于请求-响应机制通过消息(RE,RS,SU,PN)提供相应的第一服务(WS1,WS2,WS3)。该一定数量的第二服务(SE1,SE2,…,SE9)属于数据驱动的体系结构(DA),在该体系结构中能借助第二协议将第二服务相互连接。第二协议指定第二服务(SE1,SE2,…,SE9)的数据输入(DI)和数据输出(DO)并且指定在第二服务(SE1,SE2,…,SE9)之间的数据传递。该方法的特征在于,将在服务转换器(SB)中到达的第一服务(WS1,WS2,WS3)的消息(RE,RS,PN)转换为分配给第一服务(WS1,WS2,WS3)的第二服务(SE1,SE2,…,SE9)的数据输入(DI),和/或将在服务转换器(SB)中到达的第二服务(SE1,SE2,…,SE9)的数据输出(DO)转换为分配给第二服务(SE1,SE2,…,SE9)的第一服务(WS1,WS2,WS3)的从服务转换器(SB)发出的消息(RE,RS,PN)。第一服务可以是Web服务。

著录项

  • 公开/公告号CN102422616A

    专利类型发明专利

  • 公开/公告日2012-04-18

    原文格式PDF

  • 申请/专利权人 西门子公司;

    申请/专利号CN201080020778.9

  • 申请日2010-04-29

  • 分类号H04L29/06;H04L29/08;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人张涛

  • 地址 德国慕尼黑

  • 入库时间 2023-12-18 04:59:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-16

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20150624 终止日期:20180429 申请日:20100429

    专利权的终止

  • 2015-06-24

    授权

    授权

  • 2012-05-30

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20100429

    实质审查的生效

  • 2012-04-18

    公开

    公开

说明书

技术领域

本发明涉及一种用于在一定数量的第一服务和一定数量的第二服务之间通信的方法。

背景技术

由现有技术公开了用于在数据网络中或在相互联网的电子单元中实施服务的不同体系结构。尤其是存在所谓的面向服务的体系结构,其中可以通过请求调用服务并且接着通过相应响应输出该服务提供的信息。在面向服务的体系结构中的服务的示例是由万维网公知的Web服务。

与此不同地也可以在数据驱动的体系结构中通过服务执行数据处理,该数据驱动的体系结构例如在所谓的嵌入式网络中使用。在此,为服务指定具有相应数据输入的输入端和具有相应数据输出的输出端,其中数据输入生成相应的数据输出。在此,多个服务可以连接成服务链,其中借助合适的协议可以确定服务的相应的数据输入和数据输出以及在服务之间的数据传递。在此,服务链可以被简单地改变而不需要匹配服务本身。通过这种方式可以在数据驱动的体系结构中实现对服务链的可灵活和快速执行的匹配。

目前同时使用不同的服务体系结构,并且到目前为止不存在将一种体系结构的服务转换为另一种体系结构的相应服务的接口。

发明内容

因此本发明的任务是提供一种用于在一定数量的第一服务和一定数量的第二服务之间通信的方法,利用该方法不同的服务体系结构可以相互通信。

该任务通过根据权利要求1的方法和根据权利要求14的服务转换器来解决。本发明的扩展定义在从属权利要求中。

本发明的方法用于在一定数量的第一服务和一定数量的第二服务之间通信,其中该一定数量的第一服务属于面向服务的体系结构,在该体系结构中借助第一协议基于请求-响应机制通过消息提供相应的第一服务,以及其中该一定数量的第二服务属于数据驱动的体系结构,在该体系结构中可借助第二协议连接第二服务,其中第二协议指定第二服务的数据输入和数据输出并且指定在第二服务之间的数据传递。请求-响应机制的概念在此应当宽泛理解,不仅包括对请求和直接响应该请求而发送的响应的接收,而且必要时还包括订购,根据这些订购基于该订购发送第一服务的相应通知。由此在这种含义下,请求通过以通知的形式生成相应的响应的订购来代表。数据输入或数据输出被理解为在服务的输入端上接收数据或在服务的输出端上输出数据。尤其是第二协议在此为数据输入或数据输出指定相应的消息,该消息包含输入或输出的数据以及确定是数据输入还是数据输出。此外,该消息包含针对在其上进行数据输入或数据输出的服务的名称或标识符。

在本发明的方法中,将在服务转换器中到达的第一服务的消息转换为分配给第一服务的第二服务的数据输入,和/或将在服务转换器中到达的第二服务的数据输出转换为分配给第二服务的第一服务的从服务转换器发出的消息。通过本发明将面向服务的体系结构的第一服务的发出或到达的消息分配给数据驱动的体系结构的第二服务的相应数据输入或数据输出,以简单的方式实现在面向服务的体系结构和数据驱动的体系结构之间的通信,从而也可以由第一服务使用第二服务或反过来由第二服务使用第一服务。

在特别优选的实施方式中,所述一定数量的第一服务包括一个或多个Web服务,该Web服务由现有技术足够公开。作为用于第一服务的消息的第一协议,优选使用同样由现有技术公开的SOAP协议(SOAP=Simple Object Access Protocol,简单对象存取协议)。第二服务优选是分布在网络中的服务,其中该网络尤其是所谓的嵌入式网络。嵌入式网络已由现有技术足够公开,并且使得可以将服务嵌入在合适的网络节点中,这些网络节点例如可以是传感器、执行器或其它电子单元。在此,第二服务在该网络中至少部分地借助一个或多个通过第二协议指定的服务链相互连接。

在本发明方法的优选实施方式中,将以发给第一服务的请求消息的形式在服务转换器中到达的第一服务的消息转换为分配给第一服务的第二服务的数据输入,并且接着将第二服务或同样分配给第一服务并且与该第二服务连接的其它第二服务的数据输出转换为按照对该请求消息的响应消息的形式的、从服务转换器发出的第一服务的消息。优选地,在此第一服务是在服务转换器中实现的服务。利用本发明方法的该变型,可以由第一服务借助服务转换器有效地调用第二服务或第二服务链。

在本发明方法的另一实施方式中,一个或多个第二服务的一个或多个数据输出存储在中间存储器中并且通过该中间存储器提供给服务转换器,其中该一个或多个服务输出优选周期性地产生。利用该变型可以通过第一服务调用第二服务的数据输出,而不需要通过事件触发该数据输出。在一种特别优选的实施方式中,所述中间存储器在此实现为单独的第二服务,其中可以通过数据输入,例如通过表示发给第一服务的经过转换的请求消息的数据输入调用中间存储的数据输出,该数据输出优选是被转换为第一服务的相应的响应消息的数据输出。

在本发明方法的另一构成中,通过以用于第一服务的描述语言写成的文档,尤其是通过WSDL文档(WSDL=Web Service Description Language,Web服务描述语言)指定在服务转换器中的第一服务,其中该文档在所述服务转换器中被处理,使得从发给第一服务的一个或多个在该文档中指定的请求消息中生成一个或多个第二服务的一个或多个数据输入,并且从一个或多个第二服务的一个或多个数据输出中生成第一服务的一个或多个在该文档中指定的响应消息。

在本发明方法的另一构成中,将在服务转换器中到达的第二服务的数据输出转换为按照发给第一服务的请求消息的形式的、分配给该第二服务的第一服务的从服务转换器发出的消息。通过这种方式可以通过第二服务的数据输出起动第一服务。优选地,在此由服务转换器将应所述请求消息而到达的第一服务的响应消息转换为第二服务的数据输入。

在本发明方法的另一构成中,第一服务订购或订阅第二服务的预定数据输出,其中在服务转换器中到达的第二服务的预定数据输出在服务转换器中被转换为从服务转换器发出的第一服务的消息。在此,该预定数据输出尤其是周期性的数据输出。根据本发明方法的该变型,第一服务可以通过简单的方式调用第二服务的数据输出。

在本发明方法的另一构成中,将以第一服务的响应消息的形式在服务转换器中到达的第一服务的消息转换为分配给第一服务的第二服务的数据输入,该第一服务的响应消息是为了响应事先从服务转换器向第一服务发送的请求消息而发送的。通过这种方式可以通过第二服务以合适的方式调用第一服务的数据。

在本发明方法的另一构成中,服务转换器订购第一服务的预定消息,其中在服务转换器中到达的第一服务的预定消息在所述服务转换器中被转换为分配给第一服务的第二服务的数据输入。优选地,在此在服务转换器上到达的消息周期性地产生。根据本发明的该变型,可以用简单的方式通过订购机制向第二服务提供第一服务的数据。

在本发明方法的另一特别优选的实施方式中,第一和/或第二服务至少部分地在服务转换器上实现。尤其是可以将第二服务实现为虚拟服务,通过这些虚拟服务实现到达的第一服务的消息向相应的第二服务的数据输入的转换,以及第二服务的数据输出向发出的第一服务的消息的转换。

本发明还涉及一种用于在一定数量的第一服务和一定数量的第二服务之间通信的服务转换器,其中该一定数量的第一服务属于面向服务的体系结构,在该体系结构中借助第一协议基于请求-响应机制通过消息提供相应的服务,并且其中该一定数量的第二服务属于数据驱动的体系结构,在该体系结构中借助第二协议将第二服务相互连接,其中第二协议指定第二服务的数据输入和数据输出,并且指定在第二服务之间的数据传递。

所述服务转换器在此包括第一转换器装置,用于将在服务转换器中到达的第一服务的消息转换为分配给第一服务的第二服务的数据输入,和/或包括第二转换器装置,用于将在服务转换器中到达的第二服务的数据输出转换为分配给第二服务的第一服务的从服务转换器发出的消息。

优选地,服务转换器被构成为,使得利用该服务转换器可执行本发明方法的一个或多个上述优选的实施方式。

附图说明

下面借助附图详细描述本发明的实施例。

图1示出由多个网络节点形成的网络,第二服务嵌入在这些网络节点中;

图2示出图1的网络,该网络示出基于第二协议的变型对嵌入式服务的实施;

图3示出图1的再现嵌入式服务的动态重定位的网络;

图4示出根据本发明实施方式借助服务转换器在第一和第二服务之间通信的示意性显示;

图5至图8示出本发明的用于在第一和第二服务之间通信的方法的不同构成;

图9示出基于百叶窗控制的示例场景的示意性显示,在该百叶窗控制中借助服务链实施第二服务;

图10示出本发明的一种实施方式的示意性显示,其中通过WSDL文档在服务转换器上实现第一服务;以及

图11示出说明根据第一协议的消息转换为根据第二协议的数据输入或数据输出的示意性显示。

具体实施方式

在讨论第一和第二服务之间根据本发明的通信之前,借助图1至图3以嵌入在由多个网络节点形成的网络中的服务的形式描述数据驱动的服务。根据图1,该网络包括网络节点N1,N2,N3,N4和N5,这些网络节点可以表示可以无线地和/或有线地相互通信的不同类型的设备。尤其是这些网络节点可以表示传感器、执行器、纯计算单元以及这些设备的组合。在若干节点上实现第二服务,这些第二服务通过具有附图标记SE1,SE2,SE3,SE4和SE5的齿轮表示。通过这种方式多个第二服务分布在该网络中,其中这些第二服务可以通过第二协议相互通信,并且可以相互连接。该第二协议基于图1的网络中的数据驱动的通信。在该通信中,对数据的接收可以启动继续发送数据的处理步骤。使用该类型的数据处理是因为由此带来了该网络的网络节点之间的小的延迟和小的通信代价。

根据第二协议的各个第二服务之间的通信这样进行,即针对每个服务指定数据输入和数据输出,并且通过该协议针对相应的第二服务的数据输出确定应当向哪个服务传递输出的数据作为相应的数据输入。通过这种方式,服务在外部通过第二协议相互连接,其中通过相应指定的服务之间的数据路径来确定关于在服务之间传递数据的知识。在此各个服务不知道其数据输出向哪个服务传递或者其从哪个服务接收数据输入。该知识是通过第二协议基于中间件来指定的。由此实现了以下优点,即在不改变服务的情况下按照合适的方式通过匹配借助第二协议指定的数据路径可以改变服务链。

基于通过第二协议对第二服务链的指定,可以在各个服务之间传输数据时实现不同的优化。尤其是可以实现具有尽可能少量的传输数据的在网络中优化的数据路径。如果例如使用多于一个服务的数据值,则确定优化的数据路径,使得尽可能地在朝着目标的方向上仅进行一次数据分组的传输,而在优化的位置上—例如尽可能迟地—执行多个数据分组向不同接收节点的分配。为此在网络中的一个或多个中央位置上收集不同的、通过分布式服务实现的应用的结构,并且在这些中央位置上检查数据路径的可能的重叠并进行优化。基于该分析的结果确定传递规程,这些传递规程基于服务的相应源地址说明用于传递的一个或多个服务或节点。由此在该方法中使用源地址,该源地址不是指定发送网络节点,而是标识发送服务。此外也可以将数据内容或数据内容类型的标志符用于源地址寻址。

图2说明上述的优化。在此,根据第一应用实现从服务SE1出发至服务SE4的服务链,并且通过第二应用实现从服务SE1出发至服务SE5的服务链。根据优化,在服务之间所传输的数据首先通过共同的数据路径DP1和DP2传输,在服务SE3中才分配到数据路径DP3和DP4中,其中根据数据路径DP3数据到达服务SE5,而根据数据路径DP4数据到达服务SE4。

在优化该数据传输的一种构成中,在网络节点之间执行消息的传递,使得基于利用源地址和源地址向接收节点或接收服务的分配对消息的识别,实现消息向多个接收者的传输路径的尽可能广泛的组合。这导致减少了在共同的传输路径上的传递规程的数量。

在基于第二协议进行优化的另一变型中,实现分布在网络中的服务的重定位,使得这些服务动态地从一个网络节点迁移到另一个网络节点,并且为此只需要在新的数据路径上安装附加的、基于网络中的源地址的必要传递规程。该变型在图3中说明。可以看出,与图1和图2不同的是,首先在节点N1上的服务SE2现在位于节点N3上,而以前在服务N4上的服务SE3现在位于节点N5上。在此,通过数据路径DP5和DP6表示通过从服务SE1经由服务SE2至服务SE3的链条的应用。

通过基于上述优化避免数据的冗余重叠,可以在具有复杂的分布式应用的网络中实现用于通信的带宽的显著节省。这意味着,尤其是在无线的、具有电池供应的网络节点的情况下也能显著减小能量消耗并且由此在很多情况下获得更长的电池寿命。此外,对于服务来说还产生以下优点,即服务不需要清楚地知道和管理它们的通信伙伴。整个通信结构反映在在使用第二协议的情况下实现在服务之外的传递规程中,其中第二协议通过相应的标志符管理服务并且指定各个服务之间的数据路径。

图4以示意图示出本发明方法的一种实施方式,基于该方法示例性地借助图1至图3描述的数据驱动的体系结构的第二服务可以与基于本身公知的面向服务的体系结构(SOA=Service Oriented Architecture)的第一服务通信。数据驱动的体系结构DA表示在图4的下部中,而面向服务的体系结构SA表示在图4的上部中。数据驱动的体系结构中的网络节点又用相应的附图标记N1,N2,N3,N4和N5表示。同样,按照嵌入式服务形式的第二服务用相应的附图标记SE1,SE2,SE3,SE4,SE5和SE6表示。相对的,在面向服务的体系结构SA中的第一服务用WS1,WS2和WS3表示,其中在图4的实施方式中第一服务按照本身公知的Web服务实现。此外,在面向服务的体系结构SA中的客户端计算机用C表示。通过该计算机可以调用相应的Web服务。面向服务的体系结构SA和数据驱动的体系结构DA通过按照服务桥SB形式的服务转换器相互关联,其中在该服务桥本身上可以实现Web服务或第二服务。在图4中,Web服务WS3和第二服务SE6是在服务桥SB上安装的服务。

与面向服务的体系结构SA中的Web服务的通信基于请求-响应机制,根据该机制请求可以通过客户机发向Web服务,接着通过相应的响应来回答该请求。在此,请求和响应都是根据面向服务的体系结构的协议的消息。在一种特别优选的实施方式中,这些消息是所谓的SOAP消息(SOAP=Simple Object Access Protocol,简单对象存取协议),该SOAP消息由现有技术充分公开。服务桥包含两个模块M1和M2,其中模块M1用于将从面向服务的体系结构到达的消息SA转换为相应的、发给数据驱动的体系结构DA的嵌入式服务的数据输入。相对地,模块M2用于将从数据驱动的体系结构DA到达的相应嵌入式服务的数据输出转换为面向服务的体系结构SA的合适消息。在图4中还表示出服务SE1和SE2的输入端E1和E2,以及服务SE1和SE2的输出端A1和A2,其中还示例性地用箭头P1表示在输入端E1上的数据输入,用箭头P2表示从输出端A1至输入端E2的数据传输,用箭头P3表示在输出端A2上的数据输出。

下面基于通过服务桥SB的通信来描述实现本发明方法的四个变型a)至d)。

在变型a)中,客户端C向面向服务的体系结构SA的Web服务提出Web服务请求。该Web服务请求与第一嵌入式服务SE1的输入端E1上的数据输入关联。在此,服务桥SB通过以下方式将该请求传递给所寻址的嵌入式服务SE1的输入端E1,即该服务桥从该请求中生成根据数据驱动的体系结构的第二协议的相应数据输入。在变型a1)中,在嵌入式服务SE1的输出端A1上的数据输出相当于在面向服务的体系结构中起动的Web服务的相应响应。在该情况下,服务桥依据嵌入式服务SE1的输出端A1上的数据输出直接产生响应,并且将该响应经由通过该请求起动的Web服务而发送给客户端C。在另一变型a2)中,经由通过客户机C起动的Web服务而发送的响应与在第二嵌入式服务SE2的输出端A2上的数据输出关联。在该情况下,服务桥SB将相应的响应返回给请求客户端C,只要在第二嵌入式服务SE2的输出端A2上的输出数据相应地到达嵌入式服务链并从那里被传送给服务桥。通过这种方式,数据驱动的体系结构DA的嵌入式服务的分布式实施被映射到面向服务的体系结构的Web服务。

在第二变型b)中,Web服务可通过服务桥SB调用,并且通过服务链实现,使得嵌入式服务的状态信息或输出信号连续地在服务桥上中间存储。为此使用合适的高速缓存器,该高速缓存器安装在服务桥中或分配给该服务桥。客户端C又向面向服务的体系结构的Web服务提出请求。该请求又与第一嵌入式服务SE1的输入端E1以及第二嵌入式服务SE2的输出端A2关联。由此又在数据驱动的体系结构中实现服务的链接。服务桥SB用第二嵌入式服务的输出值响应由客户端发送的请求,其中该输出值中间存储在所述高速缓存器中。

在第三变型c)中,服务桥SB作为服务链的一部分配置在数据驱动的体系结构DA中。在此,第一服务SE1的输出端A1与服务桥连接,该服务桥将输出信号作为请求传递给面向服务的体系结构的Web服务。此外,服务桥SB可以与第二嵌入式服务SE2的输入端E2连接,从而所述Web服务的响应被传递给该输入端。由此通过该变型在数据驱动的体系结构中提供来自面向服务的体系结构的Web服务。

在第四变型d)中,服务桥SB通过以下方式又被配置为服务链的一部分,即服务桥SB与嵌入式服务SE1的输入端E1连接,使得面向服务的体系结构SA的Web服务的响应消息被传递给该输入端。此外,服务桥针对服务链被配置为,使得该服务桥发布特定的Web服务请求,使得Web服务响应被传递给嵌入式服务E1的输入端。由此通过服务桥使得Web服务在数据驱动的体系结构DA中可用。

可以例如通过URI(URI=Universal Resource Indicator,通用资源标识符)对可通过服务桥SB接近的嵌入式服务进行识别和寻址。在优选的实施方式中,该URI直接是相应的嵌入式服务的地址。在另一变型中,该URI也可以对服务桥的服务进行寻址,该服务又通过在请求中存在的信息对期望的嵌入式服务进行寻址。

在优选的实施方式中,上述情况a)和b)还可以组合,使得用在服务桥中中间存储的值来响应来自面向服务的体系结构的Web服务请求。在另一优选的实施方式中,Web服务消息在面向服务的体系结构中基于文本式的XML消息,相反在数据驱动的体系结构中的数据输入或数据输出包含二进制XML消息,其中在第二协议的相应消息中还指定该消息是数据输入还是数据输出,并且该消息属于哪个第二服务。在此,通过Web服务实现从文本式XML消息向二进制XML消息的相应转换以及从二进制XML消息向文本式XML消息的相应转换。尤其是,服务桥可以根据SOAP协议对Web服务消息进行打包和拆包并且基于相应的转换传递给嵌入式服务或Web服务。

Web服务的请求和响应与嵌入式服务的数据输入和数据输出的关联例如可以通过WSDL文档实现。该文档由服务桥提供,并且针对相应的Web服务描述了所期待的请求以及基于该请求的响应,它们在服务桥中与服务的相应数据输入和服务的相应数据输出关联。在桥中,在此还指定从在其上进行数据输入的服务直到在其上进行数据输出的服务的相应的服务链。该服务链可以按照合适的方式被优化,如上面参照图1至图3描述的。在另一实施方式中,WSDL文档不需要已经在服务桥中可用,而是在需要时,也就是在通过URI对Web服务进行相应的寻址时才生成。

在另一实施方式中,根据上述变型a)和b)通过Web服务对嵌入式服务的访问可以限于特定的服务。此外,必要时可以在服务桥上从多个嵌入式服务的数据输出中编辑出Web服务请求,和/或分别将Web服务响应的一个或多个部分分配给嵌入式服务的一个或多个数据输入。

下面为了借助图5至图8进行说明描述服务桥SB与Web服务和嵌入式服务的通信。图5和图6在此示出上述变型a)和b)的实施例,相反图7和图8说明根据本发明的通信的其它变型。在图5至图8的场景中,在作为菱形再现的服务桥SB的左侧交换的所有消息都是SOAP消息(SOAP=Simple Object Access Protocol,简单对象存取协议),相反在服务桥SB的右侧的所有消息被指定为根据数据驱动的体系结构的第二协议的数据输入或数据输出。第二协议的消息的结构在此是,在该消息中一方面指定该消息是数据输入还是数据输出,以及另一方面指定该数据输入或数据输出被分配给哪个服务。

在根据图5的变型中,客户端C将Web服务请求RE发送给在服务桥SB上运行的Web服务。该请求作为相应的数据输入DI被传递给嵌入式服务SE1,接着嵌入式服务SE1在其输出端上产生数据输出DO,该数据输出通过服务桥SB转换为所述Web服务的响应消息RS。由此,根据图5的变型,到达的Web服务请求被翻译为数据驱动的体系结构DA中的数据输入。在此Web服务请求被延迟到所请求的数据到达服务桥为止。在数据到达之后,所延迟的请求消息RE被重新激活,并且产生合适的Web服务响应消息RS,然后该Web服务响应消息被传输给客户端C。在该客户端看来,嵌入式服务SE1的行为如同可请求(英语:pullable)的Web服务。

在图6的场景中,使用以高速缓存器CA的形式的中间存储器。通过高速缓存器CA调用所存储的数据,尤其是在不能触发嵌入式服务的情况下,以例如提供测量值。在图6的场景中,又将客户端C的请求消息RE发送给服务桥SB。该请求消息RE在服务桥SB中复位,并且产生与该请求相应的数据输入DI,但是该数据输入现在不直接发送给嵌入式服务SE1,而是发送给其中对嵌入式服务SE1的数据进行中间存储的高速缓存器CA。这些数据在周期性更新PA的范围内从嵌入式服务SE1传送给高速缓存器CA。发给高速缓存器的数据输入DI又触发了数据输出DO,根据该数据输出嵌入式服务SE1的相应中间存储的数据被传输给服务桥SB。为了保证客户端C的短的响应时间,高速缓存器作为合适的嵌入式服务被提供,该高速缓存器存储最新的、由嵌入式服务SE1提供的测量值。通过这种方式类似于根据图5的变型的嵌入式服务SE1可请求高速缓存器。

图7示出其中周期性地通过客户端C调用嵌入式服务SE1的数据的场景。在此,客户端订阅/订购他所期望的数据,相应的嵌入式服务SE1通过对服务桥的Web服务的订购SU来提供该数据。该订购例如可以借助由现有技术充分公开的WS事件(WS=Web Service,Web服务)实现。该WS事件是标准Web服务的特殊订阅方法。通过嵌入式服务SE1生成的数据经由数据输出DO以周期性数据传送的形式传输给服务桥SB。在服务桥SB上将这些数据转换为周期性的通知PN(例如WS事件通知)并且传递给客户端C。

在图8的场景中,向嵌入式服务SE1进行周期性的数据传送。在此,服务桥SB通过相应的订购SU订购客户端C的外部数据源的Web服务,例如又用上述WS事件。基于该订购向服务桥SB提供涉及该外部数据源的数据的周期性的通知PN,服务桥SB将这些通知转换为在数据驱动的体系结构DA中的相应消息格式,并且作为数据输入DI以周期性数据传输送的形式发送给嵌入式服务SE1。

下面借助图9至图11描述按照百叶窗控制的形式对数据驱动的体系结构的具体实现,其中该体系结构可以通过服务桥借助Web服务来适当地起动。图9的方框在此表示嵌入式服务,它们分别用附图标记SE1至SE9表示。被粗重地包围的服务SE1和SE2在此是所谓的虚拟服务,它们存储在服务桥SB上并且表示用于在面向服务的体系结构中的Web服务交互的占位符。虚拟服务SE1被分配给用户输入Web服务,其中通过服务桥将发给Web服务的请求转换为服务SE1的数据输入,该服务SE1从该数据输入中产生虚拟用户输入服务SE1的相应数据输出。相对地,虚拟服务SE2是输出服务,在服务桥中从该输出服务的数据输出中生成用户输入Web服务的相应响应。在图9中示出的其它服务不需要实现在服务桥中并且具有以下功能:

SE3=风传感器

SE4=亮度传感器

SE5=停止传感器(上部)

SE6=停止传感器(下部)

SE7=优先权设置

SE8-控制逻辑

SE9=电动机。

通过上述服务实现了百叶窗控制,该百叶窗控制基于用户输入或基于风传感器或亮度传感器的数据在考虑对数据进行合适的优先权设置的情况下借助控制逻辑控制电动机用于将百叶窗向上移动和向下移动,其中通过相应的停止传感器(上部)获得该百叶窗最上面的位置并且通过相应的停止传感器(下部)获得该百叶窗最下面的位置,然后触发百叶窗的停止。在图9的服务网络中,通过从左向右行进的服务链内部的服务来处理交互。

通过输出服务SE2响应于服务SE1的用户输入而生成告知百叶窗在处理了所述服务链之后实际上位于哪个位置上的输出,所述用户输入指定百叶窗的期望位置。上述服务SE1和SE2应当通过所分配的Web服务从互联网提供,以例如通过移动电话实现远程监视。基于以下事实,即百叶窗的需要的、通过用户确定的位置可以由风传感器根据服务SE3来改写,百叶窗的最终位置应当作为对用户输入的响应而通过输出服务SE2来被告知。

图10示出如何能够基于图9的数据驱动的服务SE1和SE2来生成适用于使用被分配给服务SE1和SE2的Web服务的WSDL文档。块SD1和SD2在此分别代表涉及用户输入的服务SE1的相应服务描述和涉及输出的服务SE2的相应服务描述。根据服务描述SD1,基于在服务的输入端上的数据输入以浮点数格式的参数的形式产生数据输出,该参数再现了期望的百叶窗位置。根据服务描述SD2,基于在服务SE2的输入端上的数据输入以浮点数格式的参数的形式产生数据输出,该参数再现了百叶窗的实际位置。

服务描述SD1和SD2与WSDL文档D关联,该WSDL文档中只有与本发明相关的部分被再现出来并且该WSDL在上面的部分中包含两个类型T1和T2的XML模式定义。类型T1在此代表给Web服务的请求并且用元素名“UserInputRequest”表示。类型T2指定Web服务的响应并且用元素名“OutputResponse”表示。在WSDL文档D的更下面存在对相应消息ME1和ME2的定义,其中消息ME1以待设置的百叶窗位置的形式相应于Web服务的请求,并且用“SetPositionInput”表示。相对地,消息ME2以实际百叶窗位置的形式相应于Web服务的响应,并且称为“SetPositionOutput”。在消息ME1和ME2的定义之后接着是按照URI指示符的形式的相应地址,这些消息就应当被发送给该地址。所述地址在图10中未示出。

在服务桥中将相应的Web服务请求转换为服务SE1的数据输入,并且将服务SE2的数据输出转换为相应的Web服务响应。WSDL文档在此指定用于与嵌入式服务交互的各个通信终点,这些嵌入式服务如图9所示相互链接。这允许不同的嵌入式服务的数据在相应链中的不同位置上被接收和发送。在此,通过WSDL文档确定Web服务的请求和响应,该请求和响应分别在服务链的开头和末尾与相应的数据输入和数据输出连接。WSDL文档可以事先基于在第二协议中指定的嵌入式服务链来产生,其中生成用于对该服务链寻址的URI,只要该服务链被实例化。必要时也可以产生在未实例化情况下的URI,其中只要通过Web服务对该URI寻址就执行实例化。

下面借助图11描述通过WSDL文档指定的Web服务的到达的消息如何被转换为嵌入式服务SE1的数据输入,以及嵌入式服务SE2的数据输出如何被转换为Web服务的相应响应。块RE在此代表以在1.0处的期望的百叶窗位置“targetPosition”的形式给Web服务的请求。该请求通过文本式XML文档代表,该文本式XML文档称为D1。接着将文本式SOAP消息转换为所谓的二进制EXI表达以用在嵌入式服务的数据驱动的体系结构中(EXI=Efficient XML Interchange,有效XML互换)。由此通过这种方式借助EXI编码的SOAP消息为服务SE1生成相应的数据输入,该数据输入用DI表示。该数据输入除了EXI编码的SOAP消息之外还包含服务SE1的规范(例如以服务标志的形式)以及这是数据输入的信息。

接着消息DI在图9中再现出并且在图11中用SK表示的嵌入式服务链中得到进一步处理。在此,该服务链通过上面已经提到的URI来被寻址。例如,对给所有要消费数据的服务的数据输入DI寻址,该数据通过用户输入SE1的虚拟服务产生。在上面百叶窗控制的示例中是服务SE3,该服务描述了在服务SE1,SE3和SE4的输出之间的优先权设置。最后在遍历该服务链之后生成数据输出DO,该数据输出具有与数据输入DI相同的格式并且由虚拟服务SE2输出。该数据输出DO又包含EXI编码的SOAP消息以及服务SE2的名称和这是数据输出的信息。该消息DO随后又在服务桥中被转换为Web服务的相应响应RS,这是如下来进行的,即包含在数据输出DO中的EXI编码的SOAP消息被转换为文本式XML文档D2,该文本式XML文档将位置1.0指定为百叶窗的最终位置“finalPosition”。然后根据文档D2的SOAP消息作为响应RS给予Web服务。

上述请求/响应交互需要存储在数据驱动的体系结构中的SOAP消息和所触发的消息或交互的映射,以便能将来自服务链的嵌入式服务之一的消息分配给正确等待的Web服务请求。通过上述WSDL文档D定义并且可以作为URI或还作为URL(URL=Universal Resource Locator,统一资源定位符)起动的Web服务终点在此识别出唯一的交互,例如基于SOAP消息的目标终点。由此服务桥可以识别出服务链的哪个服务参与到该交互中。

如由前面的描述所给出的,通过本发明的方法把在面向服务的体系结构的服务之间的合适的通信实现在数据驱动的体系结构中,该面向服务的体系结构通过请求-响应机制定义,该数据驱动的体系结构通过服务的数据输入和数据输出以及服务之间的数据传递来指定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号