用于提供web服务的设备以及方法

文档序号:7666076阅读:138来源:国知局
专利名称:用于提供web服务的设备以及方法
技术领域
本发明涉及用于提供Web服务的设备以及方法。具体来说,本 发明涉及用于判断用于请求服务的服务请求消息是否满足规范,然后 提供对应于服务请求消息的服务的设备,并涉及用于执行同一种操作 的方法。
背景技术
迄今为止,WSDL (Web服务描述语言) 一直被用作描述Web 服务的接口的规范的语言(参见作为有关WSDL的技术文件的专利 文件1)。在用于提供Web服务的提供设备中,用于请求可以由设 备进行处理的服务的消息的数据结构的规范是以WSDL编写的。然 后,提供设备作为服务的定义数据来说明编写的规范。用于请求Web 服务的请求设备生成符合所说明的数据结构的消息,并向提供设备发 送该消息。提供设备根据消息中的每一个元素是否都匹配以WSDL 编写的数据中的对应元素,判断接收到的消息是否符合规范。如果消 息符合规范,则适当地对服务进行处理。此外,请求设备还可以根据 定义数据自动地生成用于请求服务的应用程序。[专利文件 1日本未经审查的专利申请出版物 No. 2005-174120发明内容[本发明解决的问题用于请求Web服务的消息包含用于标识服务提供设备的URI (统一资源标识符),被请求的服务的标识名,以及要被馈送到服务 以便服务进行处理的输A数据。被请求的服务由URI和服务标识名 称唯一地标识,服务标识名称确定被标识的服务的输入数据的数据结
构。以WSDL编写的定义数据作为这样的URI、标识名称,以及输 入数据的数据结构的组合来定义Web服务的接口。当Web服务提供设备提供彼此类似的多个服务时,则可能需要 通过附加通用的标识名称来管理这些服务。例如,当作为Web服务 提供使用应用程序表单的应用程序服务时,服务"submit,,的内容是通 用的,而与应用程序表单的类型无关,虽然对于每一种类型的应用程 序表单,输入数据的结构是不同的。相应地,通过附加通用的标识名 称并根据输入数据的结构执行不同的操作来管理这些服务,不仅使得 对用于对服务进行处理的程序的维护和管理更加容易,而且对于提供 方法过载功能的已知程序语言,具有高的亲和力。然而,如果对具有以已知WSDL编写的不同数据结构的输入数 据的多个服务定义了相同的标识名称,则不能执行成功的操作,因为 不能唯一地标识服务。当为每一个服务提供了提供设备时,定义具有 相同的标识名称的多个服务成为可能。然而,随着服务的数量增大, 这需要许多提供设备,这可能会导致系统复杂化。相应地,本发明的目的是提供一种能够解决上文所描述的问题的 提供设备、系统、方法以及程序。此目的是通过将所附的权利要求中 的独立权利要求中所描述的特征组合起来取得的。另外,从属权利要 求定义了本发明的进一步的有益的实施例。[解决问题的手段为解决上文所描述的问题,根据本发明的一个方面,提供了一种 用于接收服务请求消息并提供对应于接收到的服务请求消息中包含 的输入数据的结构的服务的提供设备,该提供设备包括通用定义存 储器,用于预先存储通用定义数据,该通用定义数据定义要被接收到 的服务请求消息的数据结构共同满足的规范,而与消息中包含的输入 数据的数据结构无关,用于使用通信接口接收所述服务请求消息的接 收器,所述服务请求消息包含所述输入数据和允许将所述输入数据的 数据结构标识为元素的接口标识符,通用验证器,用于通过中央处理 单元的操作,根据所述接收到的服务请求消息中的每一个元素是否匹 配所述通用定义数据中的对应元素,验证所述接收到的服务请求消息 是否满足所述规范,单个定义存储器,用于与所述接口标识符相关联 地预先存储单个定义数据,所述单个定义数据定义由所述接口标识符 所标识的数据结构的规范,所述规范将被匹配于所述通用定义数据中的ANY元素的输入数据满足,其中所述ANY元素匹配于不同数据 结构中的任何输入数据,检索器,用于通过所述中央处理单元的操作 从所述单个定义存储器中检索和读出对应于所述接收到的服务请求 消息中包含的所述接口标识符的单个定义数据,单个验证器,用于通 过所述中央处理单元的操作,确定如果所述服务请求消息中的每一个 元素都匹配所述检索到的单个定义数据中的所述对应元素,则所述服 务请求消息满足所述规范,以及服务处理器,用于如果所述服务请求 消息中的每一个元素都塔配所述通用定义数据和所述单个定义数据 中的所述对应元素,则通过所述中央处理单元的操作,对对应于所述服务请求消息中包含的所述输入数据的数据结构的所述服务进行处 理。此外,还提供了一种使信息处理设备用作提供设备的程序。在如上文所提及的本发明的发明内容中,并没有列举本发明的所 有必要的特征,这些特征的再组合也可以构成本发明。


图1显示了信息系统10的配置的概述。图2显示了信息系统20的配置的概述。图3显示了服务提供设备30的功能配置。图4显示了服务处理单元300的功能配置。图5显示了接口定义单元310的功能配置。图6显示了存储在通用定义存储器400中的通用定义数据的示例。图7显示了单个定义存储器430中的数据结构的示例。图8显示了测试WSDL文件700的示例。图9显示了用于响应来自用户的输入生成单个定义数据的过
图10显示了输入接收器500显示出的输入屏幕的示例。 图11显示了响应接收服务请求消息对服务进行处理的流程。 图12显示了用作服务提供设备30的信息处理设备1200 的硬件配置的示例。[附图标记J10:信息系统20:信息系统30:服务提供设备100:服务提供设备105:定义数据110:服务请求设备200:服务提供设备205:定义数据210:服务请求设备300:服务处理单元310:接口定义单元320:服务请求设备400:通用定义存储器410:接收器420:通用验证器430:单个定义存储器440:检索器450:单个验证器460:服务处理器;500:输入接收器510:定义数据生成器520:定义数据管理器700:测试WSDL文件
1200: 信息处理i殳备具体实施方式
虽然下面将通过具体实施方式
(下面,简称为实施例)来描述本发明,但是,下面将给出的实施例并不限制由权利要求所定义的本发 明,并非实施例中所描述的所有特征的组合对本发明的解决手段都是 不可缺少的。图1显示了信息系统10的配置的概述。信息系统10包括服 务提供设备100-1到100-N和分别对应于服务提供设备100-1到 100-N的服务请求设备110-1到110-N。服务提供设备100-1到 100-N中的每一个都根据具有彼此不同的数据结构的输入数据提供 类似的服务。例如,所有服务提供设备100-1到100-N都接受提 交的在工作流管理中所使用的应用程序表单数据。然而,每一个服务 提供设备100-1到100-N都涵盖了对不同种类的应用程序表单的 处理。服务提供设备100-1到100-N分别存储对应的定义数据 105-1到105-N。定义数据105-1到105-N是以例如WSDL编写 的。在从对应的服务请求设备110接收服务请求消息时,每一个服 务提供设备100-1到100-N验证服务请求消息的数据结构是否满 足规范。此验证是根据对应的定义数据105中的每一个元素是否都 匹配服务请求消息中的对应元素来执行的。图1概要显示了通过将 定义数据105安排在服务提供设备100的附近来使用定义数据 105进行的验证。此外,还向对应的服务请求设备110说明定义数据105。每一 个服务请求设备110-1到110-N都从服务提供设备100获取对应 的定义数据105,并将定义数据105存储在其中。服务请求设备 110-1到110-N的每一个用户都创建用于请求服务的应用程序,以 便在浏览所获得的定义数据105时请求消息符合规范。然后,用户 在服务请求设备110中运行应用程序。或者,每一个服务请求设备110-1到110-N都可以利用基于定义数据自动地创建应用程序的软 件来自动地创建用于请求服务的应用程序。相应地,可以安装多个服务提供设备和多段定义数据,以提供使 用具有不同结构的输入数据的类似的服务类型。然而,此配置需要与 输入数据的数据结构的类型数成比例的服务提供设备。例如,在作为 对应的定义数据提供定义数据105-(N+l)之后必须新添加服务提供 设备,以便添加具有不同数据结构的输入数据。添加服务提供设备 100-(N+l)需要安装新的设备,或需要修改Web页面的配置,并新 开发用于对服务进行处理的应用程序,即使不另外安装设备,这是比 较麻烦的。图2显示了信息系统20的配置的概述。信息系统20包括服 务提供设备200和服务请求设备210。即使服务请求消息包含不同 数据结构的多段输入数据中的任何一段,服务提供设备200根据数 据结构对操作进行分类,并有选择地对适当的服务进行处理。服务提 供设备200还存储定义数据205。如在如图1所示的情况,定义数 据205用于验证服务请求消息是否满足规范。定义数据205包括匹配不同数据结构的任何输入数据的ANY 元素。具体来说,服务提供设备200根据定义数据205判断是否满 足要被共同满足的规范,而与输入数据的数据结构无关。另一方面, 服务提供设备200不根据定义数据205判断服务请求消息中包含 的输入数据是否满足规范。在输入数据的数据结构之外的数据结构满 足规范的条件下,服务提供设备200基于输入数据执行操作。将定义数据205通知给服务请求设备210。定义数据205用于 在服务请求设备210中开发应用程序。然而,由于定义数据205包 含输入数据的ANY元素,可以限制用于请求服务的应用程序的自动 创建。具体来说,在完全理解在服务提供设备200中根据数据结构 执行操作的分类之后,程序开发人员必须创建适合于操作的适当的应 用程序。因此,最初用于对接口进行定义的定义数据205,不起作用。 结果,难以准确地定义程序的规范,可能要花许多精力和成本来维护
和管理或改进程序。另一方面,如下所示的服务提供设备30将接口定义清楚地通知 给服务请求设备。同时,可以由一个服务提供设备30对具有多个不 同数据结构的输入数据进行处理。下面将具体地描述服务提供设备 30。图3显示了服务提供设备30的功能配置。服务提供设备30 包括服务处理单元300和接口定义单元310。服务提供设备30被 设计为响应来自每一个服务请求设备320-1到320-N的请求而对 服务进行处理。服务处理单元300被虚拟地分配给Web系统上的一 个位置。即,使用URI (统一资源标识符)从外部以可标识的方式对 服务处理单元300进行管理。服务处理单元300从服务请求设备 320-1到320-N中的某一个(例如,服务请求设备320-1 )接收服务 请求消息。然后,服务处理单元300验证服务请求消息是否满足必 须满足的规范以请求可以由服务处理单元300进行处理的服务。此 验证是#>据通用定义数据和单个定义数据执行的。通用定义数据定义 了不管输入数据的数据结构如何而共同满足的规范,而单个定义数据 允许对输入数据的数据结构是否满足规范进行单个的验证。如果满足 规范,则服务处理单元300对服务进行处理,并将处理结果返回到 服务请求设备320-1。接口定义单元310从用户接受有关输入数据的数据结构的新的 规范的输入。接口定义单元310根据此规范生成单个定义数据,并 将所生成的单个定义数据存储在服务处理单元300中。这可使服务 处理单元300根据此单个定义数据验证服务请求消息。此外,接口 定义单元310还将所生成的单个定义数据通知给服务请求设备 320-1到320-N。这可使每一个服务请求设备320-1到320-N生成 符合单个定义数据的服务请求消息,并将所生成的服务请求消息发送 到服务处理单元300。图4显示了服务处理单元300的功能配置。服务处理单元300 具有通用定义存储器400,接收器410,通用验证器420,单个定义 存储器430,检索器440,单个验证器450,以及服务处理器460。 服务处理单元300向服务请求设备320-1到320-N提供Web服 务。这些单元中的每一个单元都是通过稍后将描述的中央处理单元 (CPU) 1000和随机存取存储器(RAM) 1020的操作来实现的。下面 将作为示例描述这些单元中的每一个单元的功能,其中,在从服务请 求设备320-1接收服务请求之后服务处理单元300对服务进行处 理。通用定义存储器400预先存储通用定义数据,该通用定义数据 定义接收到的服务请求消息的数据结构应该共同满足的规范,而与消 息中包含的输入数据的数据结构无关。通用定义数据可以以例如 Web服务描述语言WSDL进行编写。此通用定义数据包含可扩展标 记语言XML的ANY数据类型的元素或"ANY"元素。ANY类型元 素或ANY元素匹配不同数据结构的多段输入数据中的任何一个。利 用此配置,可以判断不包括服务请求消息的输入数据的部分是否满足 规范。接收器410使用稍后所描述的通信接口 (I/F) l(BO从服务请 求设备320-1接收服务请求消息,包括输入数据和允许将输入数据的 数据结构标识为元素的接口 ID。此服务请求消息是,例如,包含接 口 ID作为元素的SOAP(简单对象访问协议)消息。此接口 ID可 以由在服务请求设备320-1中操作的用于请求服务的应用程序来提 供,作为SOAP消息中的预先确定的标记的属性值。或者,此接口 ID 可以是SOAP消息中设置的命名空间的名称。通用验证器420从通用定义存储器400读出通用定义数据。然 后,通用验证器420通过CPU 1000的操作,根据接收到的服务请 求消息中的每一个元素是否匹配通用定义数据中的对应元素,来验证 接收到的服务请求消息是否满足规范。例如,由于通用定义数据中的 ANY元素匹配任何数据,构的输入数据,因此,服务请求消息满足 通用的规范,即使它包含任何数据结构的输入数据。然而,如果不包 括输入数据的部分中的每一个元素不匹配通用定义数据中包括的对
应元素,则服务请求消息不满足规范。例如,此验证判断可以作为使用XML架构的WSDL验证过程来实现。单个定义存储器430与接口 ID相关联地预先存储单个定义 数据,单个定义数据定义由接口 ID所标识的数据结构的规范。单个 定义数据定义了匹配通用定义数据中的ANY元素的输入数据应该 满足的数据结构的规范。此外,还可以通过将通用定义数据中包括的 ANY数据类型的元素或ANY元素替换为匹配具有不同数据类型或 不同标识信息的输入数#的多个元素来生成每一个单个定义数据。检索器440通过CPU的操作从单个定义存储器430中检索 并读出对应于接收到的服务请求消息中包括的接口 ID的单个定义 数据。在服务请求消息的每一个元素都匹配检索到的单个定义数据的 对应元素的条件下,那么,单个验证器450通过CPU 1000的操作 判断服务请求消息满足规范。此判断也可以作为使用XML架构的 WSDL验证过程来实现。如果服务请求消息中的每一个元素都匹配通用定义数据和单个 定义数据中的对应元素,那么,服务处理器460通过CPU 1000的 操作,对对应于服务请求消息中包含的输入数据的数据结构的服务进 行处理。图5显示了接口定义单元310的功能配置.接口定义单元310 具有输入接收器500、定义数据生成器510,以及定义数据管理器 520。为了对服务进行处理,对于输入数据中包括的每一个输入项, 输入接收器500接收用户通过诸如键盘或指示设备之类的输入设备 输入的输入项的项目名和输入项的数据类型。例如,在提供了用于接 受提交的在工作流管理中所使用的应用程序表单的服务的情况下,在 应用程序表单中写入的数据对应于输入数据,应用程序表单中包括的 每一项都对应于输入数据的输入项。可以根据项的特征,向应用程序 表单的项中输入数值或字符。这样的数据特征对应于数据类型。即, 当用户希望提供用于接受提交的新的应用程序表单的服务时,用户只 需要使用键盘等等向输入接收器500中输入应用程序表单中包括的
每一项的项目名,数据类型,及其他信息。定义数据生成器510通过CPU 1000的操作从通用定义存储 器400中读出通用定义数据。然后,定义数据生成器510将通用定 义数据中包括的ANY元素替换为以由输入接收器500接收到的项 目名作为元素名称、并以由输入接收器500接收到的数据类型作为 数据类型属性的元素。然后,定义数据生成器510使用替换后的定 义数据作为生成的新的单个定义数据,并将生成的单个定义数据提供到定义数据管理器520。定义数据管理器520通过CPU 1000的操 作与允许标识替换后的元素的接口 ID相关联地将生成的单个定义 数据存储在单个定义存储器430中。然后,定义数据管理器520将 接口 ID通知给服务请求设备320-1到320-N。接口 ID可以通过 接受用户的输入以及项目名的输入等等(例如)来生成。此外,还可 以根据预先确定的规则生成没有重复的字符、签名或编号,并用作接 口 ID。或者,可以生成接口 ID并将其包括在单个定义数据中。例如, 定义数据生成器510可以通过将通用定义数据中的ANY元素替换 为以项目名为元素名称的元素,然后将元素的标识信息作为命名空间 的名称添加到定义数据中,来生成新的单个定义数据。在此情况下, 定义数据管理器520不必与单个定义数据分开地将接口 ID通知给 服务请求设备320-1到320-N.如果定义数据管理器520将单个定 义数据通知给服务请求设备320-1到320-N,也将其中包括的接口 ID通知给服务请求i殳备320-1到320-N。在这样的情况下,服务请 求设备320-1到320-N只需要基于通知的单个定义数据生成服务 请求消息。如此,服务请求设备320-1到320-N可以包括作为服务 请求消息中的命名空间的名称提供给它们的接口 ID,而不进行涉及 接口 ID的显式处理。图6是存储在通用定义存储器400中的通用定义数据的示例。 此通用定义数据是以WSDL编写的,不仅包含用于定义输入数据的 数据结构的类型定义,而且还包含消息定义、绑定定义,以及服务定, 义。图6有选择地显示了这些定义之中的类型定义。在此通用定义 数据中,在第3行中定义了服务标识信息"submit"。在随后的第4 行到第9行中,定义了对服务进行处理所需的输入数据的数据结构。 具体来说,第6行表示元素名称为"fixedParameter"的数据是字符串 类型"string"。第7行的数据是ANY元素,并匹配给定数量的给定 数据类型的元素。第5和8行表示第6和7行的元素是按此顺序 编写的。具体来说,如果服务"submit"的输入数据是以字符串类型 "fixedParameter,,的元素开始接下来是给定元素的数据,那么,输入 数据被判断为符合规范。第11到17行显示了具有标识信息"submitReseponse,,的服 务。此服务的输入数据的数据结构不包含ANY元素。相应地,只有 给定了预先定义数据,即,标识名称为"submitReturn"的字符串类型 的数据,被允许作为此服务的输入,而其他类型的输入被判断不满足 规范。图7显示了单个定义存储器430中的数据结构的示例。单个定 义存储器430与接口 ID相关联地预先存储单个定义数据,单个定 义数据定义由接口 ID所标识的数据结构的规范。单个定义数据是, 例如,彼此独立的WSDL文件,并可以根据其应用和服务的处理内 容,附加不同的文件名。例如,接口 ID为1的单个定义数据包括 在名为"TEST.wsdl,,的文件中。存储在此文件中的单个定义数据被称 为测试wsdl文件700。检索器440从接收到的服务请求消息中提 取接口 ID,然后从单个定义存储器430中检索对应于接口 ID的 WSDL文件。然后,检索器440读出检索到的WSDL文件,并将 WSDL文件输出到单个验证器450。图8显示了测试WSDL文件700的示例。类似于图6的i兌 明,图8有选择地显示了来自单个定义数据的数据类型定义。此单 个定义数据定义了匹配通用定义数据中的ANY元素的输入数据应 该满足的数据结构的规范。数据结构由如图7所示的接口 ID"1"来 进行标识。具体来说,图8中的第3行指出,定义了服务"submit"
的接口。在第4到10行写入了定义的实体。第6行表示元素名称 为"fixedParameter"的数据是字符串类型"string"。这与图6的第6 行显示的说明相同。具体来说,第6行指出要一定满足的规范,即 使输入数据的数据结构不同。相比之下,第7和8行定义了代替如图6所示的ANY元素 的特定元素名称和数据类'型。笫 7行表示元素名称为 "variableParameterl,,的数据是字符串类型"string"。第8行表示元 素名称为"variableParameter2"的数据是字符串类型"string"。具体来 说,不由通用验证器420判断服务请求消息中的"fixedParameter,, 之后的每一个元素是否满足规范。然而,每一个元素是否专门满足规 范由单个验证器450来进行判断。如图8所示,根据本发明的实施例的数据结构对应于一个概念, 不仅包括一个元素的数据类型,而且还包括由多个元素构成的数据中 的元素的数量,每一个元素的标识名称,以及每一个元素的数据类型。 根据实施例的服务提供设备30允许具有相同的标识名称的服务的 如上文所描述的各种输入数据,并能够有选择地根据数据结构执行适 当的操作。图9显示了用于响应来自用户的输入生成单个定义数据的过 程。输入接收器500向用户显示输入屏幕,并从用户那里接收项目 名以及其数据类型的输入(S900)。输入接收器500也在输入屏幕上 接收接口 ID的输入(S910)。请参看图10,该图说明了用于定义应用程序表单数据的接口的输入屏幕,应用程序表单数据是有关接受提 交的在工作流管理中所使用的应用程序表单的服务的输入数据。图10显示了输入接收器500显示出的输入屏幕的示例。在此 输入屏幕上的字段"FIELD NAME,,处显示了已经输入的输入项的名 称列表。与"COMMENT"相关联地显示了每一个输入项,用于描述输 入项的角色,"TYPE"和"CONTAINER TYPE"表示项的数据类型, 项的"ATTRIBUTE",信息表示输入项是否要利用WSDL数据进行 验证。作为示例,输入项"Userld,,表示申请人的标识信息,其数据类
型是正文类型。该项也要利用wsdl数据进行验证。在用户利用指示设备等等选择输入项时,有关输入项的情况在屏 幕下部显示的"fieldproperty"中变得可编辑。具体来说,例如, 输入接收器500接收在field property中的字段"field name"处输入的字符串作为输入项的项目名。此项目名被用作单个 定义数据中的输入数据中包含的元素的元素名称。然后,输入接收器 500 接收在 field property 中的字段"type"或 "container type"处输入的数据类型作为输入项的数据类型。此 数据类型被用作单个定义数据中的输入数据中包含的元素的属性值。此外,输入接收器500还在屏幕的上部显示了接口 id输入字 段。具体来说,输入接收器500接收在此接口 id输入字段中输入 的字符串作为接口 id。此输入接口 id可以作为单个定义数据的命 名空间的名称包括在单个定义数据中。或者,可以与单个定义数据分 开独立地生成接口 id,并与单个定义数据相关联地向服务请求设备 320-1到320-n输出。请回头参看图9,定义数据生成器510然后根据已经输入的项 目名和数据类型,生成单个定义数据(s920)。具体来说,定义数据生 成器510首先从通用定义存储器400读出通用定义数据。然后,定 义数据生成器510将通用定义数据中包含的any元素替换为以由 输入接收器500接收到的项目名作为元素名称、并以由输入接收器 500接收到的数据类型作为数据类型属性的元素。然后,定义数据生 成器510使用替换后的定义数据作为新的单个定义数据。定义数据管理器520与允许标识下一个替换后的元素的接口 id相关联地将生成的单个定义数据通知给服务请求设备320-1到 320-n (s930)。此接口 id例如对应于图10中所显示的接口 id输 入字段处的一个输入。被通知了接口 id的每一个服务请求设备 320-1到320-n都可以包括根据对应于接口 id的单个定义数据生 成的服务请求消息中的接口 id,并可以向服务提供设备30发送服 务请求消息。定义数据管理器520与对应的接口 id相关联地将生 成的单个定义数据存储在单个定义存储器430中(S940)。图11显示了响应接收服务请求消息对服务进行处理的流程。接 收器410从服务请求设备320-1接收服务请求消息,该服务请求消 息包含输入数据和允许将输入数据的数据结构标识为元素的接口 ID (SllOO)。然后,通用验证器420验证服务请求消息的数据结构是否 满足不管输入数据的数据结构如何都要共同满足的规范(SlllO)。具 体来说,通用验证器420从通用定义存储器400中读出通用定义数 据,并判断接收到的服务请求消息中的每一个元素是否都匹配通用定 义数据中的对应元素。例如,当输入数据之外的部分不符合规范时或 当不包含接口 ID时,通用验证器420判断木满足要共同满足的规 范。检索器440通过CPU的操作从单个定义存储器430中检索 并读出对应于接收到的服务请求消息中包括的接口 ID的单个定义 数据(S1120)。如果没有检索这样的单个定义数据(S1125:NO),则服 务处理器460返回一个错误通知,指出服务请求消息不满足规范 (S1150)。如果检索到了单个定义数据(S1125:YES),则单个验证器 450判断服务请求消息是否满足单个定义数据(S1130)。此验证是根 据服务请求消息中的每一个元素是否都匹配单个定义数据中的对应 元素来执行的。如果服务请求消息中的每一个元素都匹配通用定义数据和单个 定义数据中的对应元素(S1140:YES),那么,服务处理器460对对 应于服务请求消息中包含的输入数据的数据结构的服务进行处理 (S1160)。然后,服务处理器460返回对服务进行处理的处理结果 (S1170)。另一方面,如果服务请求消息中有任何元素不匹配通用定义 数据中的或单个定义数据中的对应元素的话(S1140:NO),则服务处 理器460返回一个错误通知,指出服务请求消息不符合规范 (S1150)。图12显示了用作服务提供设备30的信息处理设备1200的 硬件配置的示例。信息处理设备1200具有CPU (中央处理单元)
外围部分,输入/输出(I/O)部分,以及旧式I/O部分。CPU外围 部分包括CPU 1000、 RAM (随机存取存储器)1020,以及图形控制 器1075,它们通过主机控制器1082彼此连接在一起。I/O部分包 括通信接口 (I/F) 1030、硬盘驱动器(HDD) 1040,以及CD-ROM(压 缩光盘-只读存储器)驱动器1060,它们通过I/O控制器1084连接 到主机控制器1082。旧式I/O部分包括ROM 1010、软磁盘驱动器 (FD驱动器)1050,以及I/O芯片1070,它们连接到I/O控制器 1084。CPU 1000和图形控制器1075以较高的传输速率访问RAM 1020。主机控制器1082将RAM 1020、 CPU 1000,以及图形控制 器1075互连在一起。CPU 1000基于存储在ROM 1010和RAM 1020中的程序而进行操作,并对每一部分进行控制。图形控制器 1075在RAM 1020中提供的帧緩冲器中获取由CPU 1000等等所 生成的图像数据,并使使显示设备1080在其上面显示对应于图像数 据的图像。代替此配置,图形控制器1075可以包括帧緩沖器,用于 在其中存储由CPU 1000等等生成的图像数据。I/O控制器1084将主机控制器1082以及诸如通信接口 1030、 HDD 1040,以及CD-ROM驱动器1060之类的相对来说速 度比较高的I/O设备互连在一起。通信接口 1030通过网络与外部 设备进行通信。HDD 1040存储供信息处理设备1200使用的程序和 数据。CD-ROM驱动器1060从CD-ROM 1095读取程序或数据, 并将程序或数据提供到RAM 1020或HDD 1040。ROM 1010以及诸如FD驱动器1050和I/O芯片1070之 类的相对来说速度比较低的I/O设备,连接到I/O控制器1084。 ROM 1010存储在信息处理设备1200启动时由CPU 1000所执行 的启动程序,以及依赖于信息处理设备1200的硬件的程序。FD驱 动器1050从软盘1090读取程序或数据,并通过I/O芯片1070 将程序或数据提供到RAM 1020或HDD 1040。 I/O芯片1070通 过,例如,并行端口、串行端口、键盘端口或鼠标端口等等,连接到 软盘1090和各种输入/输出i殳备。要提供到信息处理设备1200的程序存储在记录介质上,如软盘 10卯、CD-ROM 1095,或IC(集成电路)卡,并由用户提供到信息 处理i殳备1200。通过I/O芯片1070和/或I/O控制器1084从记 录介质中读出程序,并安装到信息处理设备1200中,由其执行。由 于程序使信息处理设备1200等等执行的操作与参考图1到11描 述的服务提供设备30执行的操作相同,因此,省略了其说明。上文所描述的程序可以存储在外部记录介质上。记录介质不仅可 以是软盘1090或CD-ROM 1095,而且还可以是诸如DVD (数字 通用光盘)或PD (相位变化可重写光盘)之类的光记录介质,诸如 MD (微型光盘)之类的磁光记录介质,磁带介质,以及诸如IC卡 之类的半导体存储器。此外,程序还可以通过网络,使用连接到专用 通信网或因特网的服务器系统中提供的诸如HDD或RAM之类的 存储设备,提供到信息处理设备1200。如上文所描述的,有关WSDL等等中的接口定义,根据实施例 的服务提供设备30可以管理使用具有相同的标识名称的不同数据 结构的输入数据的多个服务。这使得请求服务的用户利用接口定义更 有效地开发应用程序。另一方面,提供服务的用户不必新添加服务提 供设备30,并可以使用现有的服务提供设备30,无需进行任何修改, 即使添加了新服务。此外,在开发定义数据时,还可以提供现有的程 序语言中的相当于方法过载的功能。此外,有关添加新服务所需的新 的单个定义数据的开发,可以通过提供允许为每一个输入项输入数据 的接口定义单元310来改进用户的方便性。尽管是使用本发明的实施例来对本发明进行描述的,但是,本发 明的技术范围不仅限于上文的实施例中所描述的范围。对于那些本领 域普通技术人员显而易见的是,可以向上文所描述的实施例中添加各 种修改或改进。例如,服务提供设备30可以按照对服务进行处理之 后消息返回处理的顺序使用通用定义数据和使用单个定义数据进行 验证。具体来说,通用定义数据定义了不管通知消息的输出数据的数
据结构如何而共同满足的规范。另一方面,单个定义数据定义了要被 通知消息的输出数据的数据结构满足的规范。在对服务进行处理之后,服务提供设备30生成输出信息,以便允许标识服务的输出消息 的数据结构的接口 ID包含在输出消息中。然后,服务提供设备30 判断输出消息是否满足通用定义数据,并判断输出消息是否满足对应 于接口 ID的单个定义数据。如果输出消息满足每一个规范,则将输 出消息返回到服务请求设备。从所附的权利要求可以看出,这样的修 改或改进也可以包括在本发明的技术范围内。
权利要求
1.一种用于接收服务请求消息并提供对应于所述接收到的服务请求消息中包含的输入数据的结构的服务的提供设备,包括通用定义存储器,用于预先存储通用定义数据,所述通用定义数据定义要被所述接收到的服务请求消息的数据结构共同满足的规范,而与所述消息中包含的所述输入数据的数据结构无关;用于使用通信接口接收所述服务请求消息的接收器,所述服务请求消息包含所述输入数据和允许将所述输入数据的数据结构标识为元素的接口标识符;通用验证器,用于通过中央处理单元的操作,根据所述接收到的服务请求消息中的每一个元素是否匹配所述通用定义数据中的所述对应元素,验证所述接收到的服务请求消息是否满足所述规范;单个定义存储器,用于与所述接口标识符相关联地预先存储单个定义数据,所述单个定义数据定义由所述接口标识符所标识的数据结构的规范,所述规范将被匹配于所述通用定义数据中的ANY元素的输入数据满足,其中所述ANY元素匹配于不同数据结构中的任何输入数据;检索器,用于通过所述中央处理单元的操作从所述单个定义存储器中检索和读出对应于所述接收到的服务请求消息中包含的所述接口标识符的单个定义数据;单个验证器,用于通过所述中央处理单元的操作,确定如果所述服务请求消息中的每一个元素都匹配所述检索到的单个定义数据中的所述对应元素,则所述服务请求消息满足所述规范;以及服务处理器,用于如果所述服务请求消息中的每一个元素都匹配所述通用定义数据和所述单个定义数据中的所述对应元素,则通过所述中央处理单元的操作,对对应于所述服务请求消息中包含的所述输入数据的数据结构的所述服务进行处理。
2. 根据权利要求1所述的提供设备,其中,所述提供设备是用于提供Web服务的设备,以及其中,所述通用定义存储器存储包括ANY数据类型的元素或 可扩展标记语言XML的ANY元素,并且以Web服务描述语言 WSDL编写的数据,作为所述通用定义数据,以及其中,所述接收器以所述服务请求消息的形式,接收包括所述接 口标识符作为元素的简单对象访问协议SOAP消息,以及其中,所述通用验证器以WSDL验证操作的形式,判断所述服 务请求消息中的每一个元素是否都匹配所述通用定义数据中的所述 对应元素,以及其中,所述单个定义存储器预先存储多段单个定义数据,其中这 些多段单个定义数据通过将所述通用定义数据中包含的ANY数据 类型的元素或ANY元素替换为匹配具有不同数据类型或不同标识 信息的所述输入数据的多个元素而获得,以及其中,所述单个验证器以所述WSDL验证操作的形式,判断所 述服务请求消息中的每个元素是否都匹配所述单个定义数据中的所 述对应元素。
3. 根据权利要求2所述的提供设备,其中,所述接收器接收 在所述SOAP消息中设置的命名空间的名称作为所述接口标识符。
4. 根据权利要求3所述的提供设备,进一步包括 输入接收器,用于对于所述输入数据中包括的每一个输入项,接收用户通过输入/输出设备输入的所述输入项的项目名和所述输入项 的数据类型;定义数据生成器,用于通过所述中央处理单元的操作,通过从所 述通用定义存储器中读出所述通用定义数据,将所述通用定义数据中 包含的所述ANY元素替换为以由所述输入接收器接收到的所述项 目名作为元素名称、并以由所述输入接收器接收到的所述数据类型作 为数据类型属性的元素,并添加所述替换后的元素的所述标识信息作 为命名空间的所述名称,生成新的单个定义数据;以及定义数据管理器,用于通过所述中央处理单元的操作,将所述生成的单个定义数据存储在所述单个定义存储器中,并用于通知请求设 备,以便请求所述生成的单个定义数据的服务。
5. 根据权利要求2所述的提供设备,进一步包括 输入接收器,用于对于所述输入数据中包括的每一个输入项,接收用户通过输入/输出设备输入的所述输入项的项目名和所述输入项 的数据类型;定义数据生成器,用于通过所述中央处理单元的操作,通过从所 述通用定义存储器中读出所述通用定义数据,将所述通用定义数据中 包含的所述ANY元素替换为以由所述输入接收器接收到的所述项 目名作为元素名称、并以由所述输入接收器接收到的所述数据类型作 为数据类型属性的元素,生成新的单个定义数据;以及定义数据管理器,用于通过所述中央处理单元的操作,与允许标 识所述替换后的元素相关联地将所述生成的单个定义数据存储在所 述单个定义存储器中,并用于通知请求设备,以便请求所述接口标识 符的服务。
6. —种系统,包括用于发送服务请求消息以便请求服务的请 求设备;以及用于接收服务请求消息并提供对应于所述接收到的服务 请求消息中包含的输入数据的结构的服务的提供设备,其中,所述提 供设备包括通用定义存储器,用于预先存储通用定义数据,所述通用定义数 据定义要被所述接收到的服务请求消息的数据结构共同满足的规范, 而与所述消息中包含的所述输入数据的数据结构无关,用于使用通信接口接收所述服务请求消息的接收器,所述服务请 求消息包含所迷输入数据和允许将所述输入数据的数据结构标识为 元素的接口标识符,通用验证器,用于通过中央处理单元的操作,根据所述接收到的服务请求消息中的每一个元素是否匹配所述通用定义数据中的所述 对应元素,验证所述接收到的服务请求消息是否满足所述规范,单个定义存储器,用于与所述接口标识符相关联地预先存储单个 定义数据,所述单个定义数据定义由所述接口标识符所标识的数据结构的规范,所述规范将被匹配于所述通用定义数据中的ANY元素的 所述输入数据满足,其中所述ANY元素匹配于不同数据结构中的任 何输入数据,检索器,用于通过所述中央处理单元的操作,从所述单个定义存 储器中检索和读出对应于所述接收到的服务请求消息中包含的所述 接口标识符的单个定义数据,单个验证器,用于通过所述中央处理单元的操作,确定如果所述 服务请求消息中的每一个元素都匹配所述检索到的单个定义数据中 的所述对应元素,则所述服务请求消息满足所述规范,服务处理器,用于如果所述服务请求消息中的每一个元素都匹配 所述通用定义数据和所述单个定义数据中的所述对应元素,则通过所 述中央处理单元的操作,对对应于所述服务请求消息中包含的所述输 入数据的数据结构的所述服务进行处理,以及定义数据管理器,用于通过所述中央处理单元的操作,将与允许标识所述单个定义数据中包含的所述输入数据的数据结构的所述接口标识符关联的每一个单个定义数据通知给所述请求设备,以及其中,所述请求设备包括由所述定义数据管理器在根据对应于所 述接口标识符的所述单个定义数据生成的所述服务请求消息中通知的所述接口标识符,并向所述提供设备发送所述服务请求消息。
7. —种程序产品,用于使信息处理设备用作用于接收服务请求消息并提供对应于所述接收到的服务请求消息中包含的输入数据的结构的服务,所述程序使所述信息处理设备用作通用定义存储器,用于预先存储通用定义数据,所述通用定义数据定义要被所述接收到的服务请求消息的数据结构共同满足的规范,而与所述消息中包含的所述输入数据的数据结构无关;用于使用通信接口接收所述服务请求消息的接收器,所述服务请求消息包含所述输入数据和允许将所述输入数据的数据结构标识为元素的接口标识符; 通用验证器,用于通过中央处理单元的操作,根据所述接收到的 服务请求消息中的每一个元素是否匹配所述通用定义数据中的所述对应元素,验证所述接收到的服务请求消息是否满足所述规范;单个定义存储器,用于与所述接口标识符相关联地预先存储单个 定义数据,所述单个定义数据定义由所述接口标识符所标识的数据结 构的规范,所述规范将被匹配于所述通用定义数据中的ANY元素的 所述输入数据满足,其中所述ANY元素匹配于不同数据结构中的任 何输入数据;检索器,用于通过所述中央处理单元的操作,从所述单个定义存 储器中检索和读出对应于所述接收到的服务请求消息中包含的所述 接口标识符的单个定义数据;单个验证器,用于通过所述中央处理单元的操作,确定如果所述 服务请求消息中的每一个元素都匹配所述检索到的单个定义数据中 的所述对应元素,则所述服务请求消息满足所述规范;以及服务处理器,用于如果所述服务请求消息中的每一个元素都匹配 所述通用定义数据和所述单个定义数据中的所述对应元素,则通过所 述中央处理单元的操作,对对应于所述服务请求消息中包含的所述输 入数据的数据结构的所述服务进行处理。
8. —种用于接收服务请求消息,并提供对应于所述接收到的服 务请求消息中包含的输入数据的结构的服务的方法,包括预先存储通用定义数据,所述通用定义数据定义要被所述接收到 的服务请求消息的数据结构共同满足的规范,而与所述消息中包含的 所述输入数据的数据结构无关;使用通信接口接收所述服务请求消息,所述服务请求消息包含所 述输入数据和允许将所述输入数据的数据结构标识为元素的接口标 识符;通过中央处理单元的操作,根据所述接收到的服务请求消息中的 每一个元素是否匹配所述通用定义数据中的所述对应元素,验证所述 接收到的服务请求消息是否满足所述规范; 与所述接口标识符相关联地预先存储单个定义数据,所述单个定 义数据定义由所述接口标识符所标识的数据结构的规范,所述规范将被匹配于所述通用定义数据中的ANY元素的输入数据满足,其中所 述ANY元素匹配于不同数据结构中的任何输入数据;通过所述中央处理单元的操作,检索和读出对应于所述接收到的 服务请求消息中包含的所述接口标识符的单个定义数据;通过所述中央处理单元的操作,确定如果所述服务请求消息中的 每一个元素都匹配所述检索到的单个定义数据中的所述对应元素,则 所述服务请求消息满足所述规范;以及如果所述服务请求消息中的每一个元素都匹配所述通用定义数 据和所述单个定义数据中的所述对应元素,则通过所述中央处理单元的操作,对对应于所述服务请求消息中包含的所述输入数据的数据结 构的所述服务进行处理。
全文摘要
公开了用于提供WEB服务的设备以及方法,用于使得用于提供Web服务的系统的开发或维护和管理更加容易。用于提供服务的提供设备存储通用定义数据,该通用定义数据定义将由服务请求消息满足的规范,而与接收到的服务请求消息中包含的输入数据的数据结构无关,以及定义由不同数据结构的输入数据满足的单个定义数据。在接收到包含输入数据和允许将输入数据的数据结构标识为元素的接口ID的服务请求消息时,提供设备验证服务请求消息的数据结构是否满足通用定义数据。此外,提供设备还检索对应于接收到的接口ID的单个定义数据,并判断服务请求消息是否满足单个定义数据。如果服务请求消息满足通用定义数据和单个定义数据,则提供设备对对应于输入数据的数据结构的服务进行处理。
文档编号H04L29/08GK101166197SQ200710180250
公开日2008年4月23日 申请日期2007年10月16日 优先权日2006年10月17日
发明者伊庭嘉仁 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1