用于扩展服务模型的方法和系统的制作方法

文档序号:7718618阅读:194来源:国知局
专利名称:用于扩展服务模型的方法和系统的制作方法
技术领域
本发明涉及对服务所消费的信息进行建模和确认。
背景技术
在计算机科学领域,服务是设计为支持通过网络进行的可互操作的机器与机器 交互的软件系统。服务公开执行有意义动作的外部接口并提供用户绑定到的绑定。可 以使用例如web月艮务描述语言(参见http:〃en. wikipedia. org/wiki/Web Services Description Language)根据服务的外部端口来描述服务。服务典型地包括大量具有适当 绑定的端口以及该端口类型的接口的可选具体描述。如果可用,接口描述包括输入和输出 描述。 服务建模语言,诸如统一建模语言(参见htto:〃www. ibm. com/develooerworks/ rational/library/05/419 soa/),对某本服备描沭讲行建樽。描述包括端口类型、接口和 绑定以及可选地包括服务的内部处理所调用的其他服务。对其他服务的内部调用进行建模 仅仅是为了连线(wiring)和编排(orchestration)的目的,而不提供分析服务实现和信息 消费方面的任何方式。 过禾呈(process)是行为的流(参见http:〃en. wikipedia. org/wiki/Process)。 过程建模语言如BPML或BPMN(参见http:〃en. wikipedia. org/wiki/Business_Process_ Modeling—Language),对过程的基本行为流以及该过程的输入和输出接口进行建模。
过程执行建模语言,诸如BPEL (参见htto: 〃en. wikipedia. org/wiki/BPEL),在 S0A(面向服务的体系结构)的上下文中,将过程建模为人类和服务的编排。过程在其执行 期间调用服务(通常称为过程在服务上执行)。对服务的调用进行建模仅仅是为了连线和 编排的目的,而不提供分析信息消费方面的任何方式。 信息模型(参见http:〃en. wikipedia. org/wiki/Information model)是信息实 体的抽象的形式化表示,包括它们的性质、关系和能够对其执行的操作。信息模型通常用在 数据或信息体系结构的上下文中。信息模型还可以用作用于定义接口的共享语义上下文。
目前的服务和过程建模语言包括服务和过程的输入和输出,然而,它们不考虑服 务和过程内部消费的其他信息。这种信息表示的缺乏在出于某种原因适当的信息不可用的 时候可能导致在下游组件上的信息失配。目前的建模机制不能够检测这些问题,因为它们 不包括执行信息验证必需的模型元素。信息失配问题可能在事务性处理和批处理的上下文 中出现。 如上所述,服务和过程所消费的信息不是目前建模方法的一部分。因此,目前没有 用于信息可用性的定量和定性的控制机制。基于标准模型,没有办法验证服务、过程与支持 业务解决方案所需要的信息之间的平衡的"等式"。然而,为了避免昂贵的返工,在启动解决 方案的组装之前检测信息失配问题是很关键的。这种问题越早被识别出来,纠正它们的代 价就越小。另外,编程者应当不是必须了解信息消费和信息质量特征。这些特征与信息体 系结构有关。
本发明的一个方面是一种用于扩展服务模型的方法。服务模型包括至少一个公开 接口的规范。方法中的接收步骤接收服务模型的服务实现所消费的信息的规范。所消费的 信息是由或者需要由服务实现利用而不经过公开接口的信息。 该方法还包括使用计算机处理器自动生成扩展服务模型。扩展服务模型包括公开 接口的规范和服务实现所消费的信息的规范。 在本发明的一个实施方式中,服务模型的服务实现所消费的信息的规范包括所消
费的信息的消费类型。消费类型规定了对所消费的信息执行的一种或多种功能类型。例
如,消费类型可以规定由服务实现执行的创建所消费的信息的操作、读取所消费的信息的
操作、更新所消费的信息的操作以及删除所消费的信息的操作中的至少一个。 本发明的另一个实施方式包括所消费的信息的非功能性注释。例如,非功能性注
释可以包括所消费的信息的质量标准。非功能性注释可以另外地或者替代地包括所消费的
信息的定时标准,其规定了服务实现何时需要所消费的信息。 在本发明的另一个实施方式中,服务模型的服务实现所消费的信息的规范包括向 服务实现供应所消费的信息的至少一个信息源的标识。可以使用工具来接收服务模型的各 种消费信息需求并自动识别和分配符合该需求的信息源。 该方法还可以包括识别步骤,其中如果服务模型实现所消费的信息与供程序组件 内部处理的至少一个可用信息源不匹配,则识别扩展服务模型中的至少一个信息不一致。 可以使用工具来标记这种信息不一致并通过分配满足该模型需求的新信息源而自动地纠 正该信息不一致。 本发明的另一个方面是在计算机可用介质中包括的计算机程序产品。例如,该计 算机程序产品可以包括用于对服务所消费的信息进行建模和确认的一个或多个工具。计 算机可读程序代码耦合到计算机可用介质并可配置为使得程序接收服务模型的服务实现 所消费的信息的规范,所消费的信息是由或者需要由服务实现利用而不经过公开接口的信 息;并且使用计算机处理器自动生成扩展服务模型,该扩展服务模型包括公开接口的规范 和服务实现所消费的信息的规范。


被认为是发明的主题在本文件的末尾的权利要求中特定地指出并分别地主张权 利。在结合附图的下面的具体实施方式
中,本发明的前述和其他目标、特征和优势将变得明 显。附图中 图1示出了本发明所建模的服务实现的例子。 图2A示出了被扩展为提供本发明所设想的服务信息消费模型的服务模型的一个 实施方式。 图2B示出了被扩展为提供本发明所设想的服务信息消费模型的服务模型的另一 个实施方式。 图3示出了根据本发明的用于对计算机程序进行建模的计算机实现的操作的一 种可能的流程图。
4
图4描绘了结合本发明的一个或多个方面的产品的一个实施方式。
具体实施例方式
本发明参考发明的实施方式来描述。在本发明说明书的全文中参考图1-图4。
参考图l,示出了本发明的一个实施方式所建模的服务实现102的例子。如此处所 用的,服务是邻近且自治的业务或技术操作的离散定义集合。服务实现102包括用于实现 服务的操作的代码104。代码104可以以现有技术已知的各种编程或建模语言来编写。这 种编程语言可以包括面向对象的编程语言,诸如0++、》^等。编程语言还可以包括传统的 程序性编程语言,诸如C、 Fortran等。建模语言还可以包括类似UML的服务建模语言和用 于描述服务的实现方面的其他语言。 服务实现102还可以包括公开接口 106。公开接口是至少定义传递给服务的输入 参数、来自服务的输出参数、可以被调用的操作以及如何调用这些操作的公布的接口。因 此,使用公开接口 106,服务用户108(人类或机器)可以经由计算机网络110将输入参数和 操作调用传递给服务实现。 服务在执行其操作时可以处理不经过公开接口的其他信息(在此称为所消费的 信息112)。例如,航班预定服务可以从公开接口接收航班起点、终点和日期的参数。服务消 费存储在航线数据库中的其他信息,诸如航班时间和座位可用性。 —旦服务的操作完成,服务102就经由网络IIO通过公开接口 106向服务用户108 返回输出参数。因此,航班预定服务可以将可用航班输出参数通过网络iio输出给服务用 户108。 应当注意,出于例示的目的,极大地简化了关于图1的服务实现的前述讨论。很多 服务实现是很难设计的并且通常都需要服务建模工具来促进它们的创建和修改。本发明的 实施方式将传统的服务模型扩展为包括服务实现102所利用的不经过公开接口 108的信息 的规范。实施方式捕获必要的所消费的信息112来构架和设计服务。 早期地执行根据本发明对这种信息要求进行建模,以避免返工和浪费努力。本发 明可以促进从信息的视角验证服务模型是否一致,以及从业务的视角验证是否消费和产生 了正确的信息。本发明的实施方式提出了必要的建模和验证机制来执行这些动作,并且可 以被用于早期地识别和纠正信息失配问题。信息失配问题在本文也称为"信息不一致"。
在本发明的一个特定实施方式中,服务的信息不一致可能通过用于内部处理的可 用信息源上的失配和发往服务实现所调用的其他服务或从其接收的信息上的失配而发生。 具体地,信息不一致可能包括如下情形没有适当的信息源存在,规定的信息源与信息要求 不完全相当,信息要求中所规定的源信息的质量不可用,在信息要求所规定的适当时间信 息源不可用以及服务模型规定了多个不一致的信息源。 根据本发明的一个实施方式,所消费的信息与服务模型集成在一起。在一个特定 的实施方式中,服务信息消费模型组件被添加到传统的服务模型。 信息消费模型用于验证在整个业务解决方案的范围中的信息不一致。为了获得信 息消费模型的简洁且形式的表示,模型基于信息实体的概念(基于用于固定装备的已定义 的范围或组合的信息模型)。 现在转向图2A,示出了被扩展为提供本发明所设想的服务信息消费模型的服务模型202的一个实施方式。服务模型202包括对服务用户可用的接口的规范204和规定了服 务所消费的信息210的列表206。 如在本文所用的,"所消费的信息"被定义为服务访问、更新、删除和/或创建的不 经过服务的公开接口的信息。所消费的信息字段210捕获服务所访问、更新、删除和/或创 建的永久性的和阶段性的信息。该所消费的信息的规范210还捕获从业务或执行的视角看 需要的、但是尚未分配给信息源的信息。如下文所讨论的,通过在服务模型202中包括所消 费的信息的规范210,本发明可以有利地被用于早在设计过程中就检测一组互连的服务与 信息源之间的信息不一致。 使用与信息实体在传统信息模型中的用途相似的方式利用信息实体来表达信息 消费模型。优选地但是并非排他地,信息实体在语义上基于用于所讨论的解决方案的共享 全局信息模型。如果所消费的信息的规范210基于全局信息模型,则信息模型的操作部分 可以被用于信息源的其他验证,如下文所讨论的。 在图2B中,示出了被扩展为包括本发明所设想的服务信息消费模型的服务模型 202的另一个实施方式。该服务模型202除了提供上述信息外还提供用于每个所消费的信 息210的非功能性注释212。非功能性注释212可以例如包括服务如何利用特定的所消费 的信息的描述。 可以设想,非功能性注释212可以包括所消费的信息的质量214的规范和所消费 的信息应当对服务可用的定时216。例如,航班预定服务模型可以在质量字段214中规定信 息源必须满足的可信程度或陈旧程度。类似地,服务模型可以规定在定时字段216中规定 来自信息源的信息何时必须对实现可用。 服务模型202可以可选的规定为每个所消费的信息210记录分配的信息源。如下 文更详细讨论地,该字段的值可以通过软件工具基于服务模型中其他要求自动生成。
服务模型202可以另外地包括消费类型字段220。消费类型220规定对所消费的 信息执行的一种或多种功能类型。例如,消费类型可以规定由所述服务实现执行的创建所 消费的信息的操作、读取所消费的信息的操作、更新所消费的信息的操作以及删除所消费 的信息的操作中的至少一个。应当注意,可以在服务模型202中规定消费类型操作的组合。 例如,信息可以被服务实现读取、更新和删除。 可以设想,信息质量214、定时216、源218和消费类型220规范可以被用于进一步 增强信息一致性分析。 信息一致性分析相对于可用信息源检查服务模型202。具体地,信息一致性分析验 证分配的且可用的信息源是否能够提供对所消费的信息的完全支持。换言之,信息一致性 分析确认所有的信息实体在一个信息源或另一个信息源处是可用的。例如,分析可以确认 可用的信息源包括所建模的服务更新的或读取的信息。 信息一致性分析还可以验证可用信息源是否具有适当的质量和定时特征。如上所 述,这可以是如下情况,所消费的信息必须具有特定的质量或者在特定执行时间可用。 一致 性分析可以被用于验证这种情形并揭示不能满足信息质量和/或信息定时设计要求的体 系结构缺陷。信息一致性分析还可以验证信息实体操作(基于信息模型)是否与信息消费 特征匹配。例如,分析可以验证所规定的消费类型(创建、读取、更新和/或删除操作)是 否被分配的信息源所允许。最后,分析可以基于所规定的消费的信息210利用信息源更新和丰富元数据。该动作可以包括当信息源218被发现和应用时将信息源218分配给服务信息消费模型。 本发明的另一实施方式包括支持服务信息消费模型的扩展软件工具。例如,软件工具可以包括利用服务信息消费模型来注释服务模型的能力。该工具可以提供编辑器,诸如文本编辑器或者图形编辑器,以允许设计者将服务信息消费模型与传统的面向服务的体系结构模型结合在一起。例如,文本编辑器可以允许用户标记规定所消费的信息、信息质量和服务设计的信息定时要求的文本字段。图形编辑器例如可以允许用户将包含所消费的信息的规范的各种服务模板拖放到图形工作空间上。 还可以进一步设想,软件工具可以确认服务的信息一致性。如上所述,软件工具可以例如通过分析和验证服务所访问、更新和创建的永久性和/或阶段性信息来扩展服务建模方法。因此,除了在传统的服务建模之下的跟踪消费的端点,软件工具可以分析服务消费(访问、更新或创建)的信息源。此外,当模型中规定了信息质量和定时特征时,分析可以验证与这种信息规范匹配的可用的信息实体是否对于服务可用。 如上所述,软件工具可以分析执行服务需要的信息,包括尚未分配给信息源的信
息和非功能性特征。分析还可以确定是否可以从可用信息源找到将要消费的需要的信息实
体,并且如果可以找到,则可以自动地分配给信息实体,作为信息源218。 工具还可以自动地或者人工地基于信息特征规则将信息源分配给服务。例如,如
果服务模型需要所消费的信息的特定信息质量,软件工具可以从多个可用信息源中选择能
够满足所需信息质量的实体(如果存在一个这样的实体的话)。软件工具还可以被用于以
类似的方式实现信息定时要求。 另外可以设想,软件工具可以针对信息不一致来验证服务模型。该验证例如可以检查需要的信息源是否不存在,信息源是否提供不完整的信息,信息在适当的时间是否从信息源不可用,以及是否存在多个不一致的信息源。 现在转向图3,示出了一种图示用于如本发明所设想的那样用于扩展服务模型的计算机实现的操作的可能流程图。需要扩展的服务模型包括至少一个公开接口的规范。
操作开始于接收操作302。在接收操作302期间,接收服务模型的服务实现所消费的信息的规范。服务实现所消费的信息是服务所利用的不经过公开接口的信息。
服务实现所消费的信息的规范可以包括消费类型、所消费的信息的非功能性注释和信息源的规范。非功能性注释可以包括服务实现所消费的信息的质量标准。非功能性注释还可以包括用于所消费的信息的定时标准,其规定了服务实现何时需要所消费的信息。
可以设想,可以通过人类输入来接收服务实现所消费的信息。在本发明的一个特定实施方式中,提供用户接口 304来辅助服务模型的信息方面的人类注释。这种用户接口304可以是现有建模工具的扩展。 在本发明的另一个实施方式中,可以通过工具辅助的分析来接收服务实现所消费的信息。在本发明的一个特定实施方式中,工具辅助的分析通过检查服务实现来自动地确定服务实现所消费的信息。该分析可以包括服务实现中用于在公开接口外部进行信息传递的程序代码306。例如,工具可以针对关系数据库中的结构化数据来分析SQL查询。工具可以另外地使用将非结构化数据结合在信息架构中的现有能力来针对非结构化数据分析查询。
在本发明的另一个实施方式中,可以通过分析服务模型308自动地接收所消费的
信息。例如,工具辅助的分析可以遍历内部服务调用并或者报告信息发现或者将信息发现
结合在编排服务的更高级信息消费模型中。注意,分层地遍历服务调用以及通过这些绑定
合成所消费的信息,只有当所调用的服务实际上利用输入和输出信息实体被正确地注释的
情况下才是可能的。句法输入和输出参数不是足够的,进入调用或从调用中出来的信息实
体必须是可推理的,因此存在应用在交互的服务的层级式结构中的递归性质。 在生成操作310中,自动为服务生成扩展服务模型。扩展服务模型包括公开接口
的规范和服务实现所消费的信息的规范。在生成操作310完成之后,控制传递到比较操作
312。 在比较操作312中,将扩展服务模型与分配的且可用的信息源进行比较以识别任何信息不一致。当服务实现所消费的信息与至少一个分配的或可用的用于所消费的信息的信息源不匹配时会发生信息不一致。 可以设想,可以通过用户接口 304经由人类输入或者根据对建模工具来说已知的分配的和可用的信息源的分析来接收信息源能力。该步骤还可以捕获信息源的任何非功能性方面,诸如信息的质量标准和定时标准。再一次地,可以通过用户接口 304或者根据对分配的信息源313的分析来获得非功能性信息。 在比较操作312完成之后,控制传递到识别操作314。识别操作314确定在扩展服
务模型和分配的且可用的信息源之间是否存在任何信息不一致。如上所述,通过如下的情
形可能会发生信息不一致在模型中规定的源信息不存在,模型中规定的源不是完全可用
的,模型中规定的信息质量是不可用的,以及模型规定了多个不一致的信息源。 在本发明的一种配置中,早期地检测到信息失配。例如,在编写用于服务实现的基
本源代码之前执行对服务模型中的至少一个信息不一致的识别。越早地识别信息失配问
题,纠正这些问题的代价越低。此外,编程者应当不必了解信息消费和信息质量特征。这种
特征与信息体系有关。如果没有识别出信息不一致,则控制传递到分配操作316。 在分配操作316中,至少部分地基于服务实现所消费的信息自动地或人工地分配
供服务实现内部处理的至少一个信息源。当然,并非所有的信息实体都代表永久性信息,只
是对于那些代表永久性信息的信息实体,存在一个值作为元数据分配给需要针对每个永久
性信息实体访问的实际信息源。 另一方面,如果识别操作314发现在扩展服务模型和分配的且可用的信息源之间存在一个或多个信息不一致,则可以采用若干可能的操作来纠正这些不一致。例如,控制可以传递给分配操作318,其中将不同的信息源分配给满足扩展服务模型要求的服务。可以通过用户接口人工地或者通过建模工具自动地执行分配操作318。 备选地,可以在更新操作320中更新服务模型以满足所分配的信息源的限制。该
操作还可以通过用户接口人工地执行。 一旦更新了服务模型,建模工具可以再次返回比较
操作312,重复搜索更多的信息不一致。最后,建模工具可以简单地警告用户,在标记操作
332中已经发现了服务建模错误。用户可以选择是否纠正信息不一致。 本发明的另一个方面针对能够以计算机实现的过程和用于实践这些过程的装置
的形式具体化的实施方式,现在结合图4进行讨论。例如,用于对计算机程序进行建模的计
算机实现的操作包含在由计算机处理器执行的计算机程序代码中。
实施方式包括如图4所示的在具有包含指令的计算机程序代码逻辑406的计算机可用介质404上的计算机程序产品402,其中指令包含在作为产品的有形介质中。用于计算机可用介质404的示例性产品可以包括软盘、CD-ROM、硬盘驱动器、通用串行总线(USB)、闪存驱动器、或者任何其他的计算机可读存储介质,其中当计算机程序代码逻辑406被载入计算机并由计算机执行时,计算机变为用于实践本发明的装置。 实施方式包括被载入计算机并由计算机执行的计算机程序代码逻辑406,例如,无论其是否存储在存储介质中,其中当计算机程序代码逻辑406被载入计算机并由计算机执行时,计算机变为用于实践本发明的装置。当在通用微处理器上实现时,计算机程序代码将该微处理器配置为创建特定的逻辑电路。 此外,可以提供有形地包括可由机器执行以实现系统10的能力的至少一个指令程序的至少一个机器可读的程序存储设备。产品可以被包括作为计算机系统的一部分或者单独销售。 用于对计算机程序进行建模的操作的能力可以以软件、固件、硬件或者它们的某种组合的方式实现。本文所示的流程图只是例子。在不偏离本发明的主旨的情况下,可以对这些视图或步骤(或操作)进行很多的改变。例如,可以以不同的次序来执行步骤或者可以增加、删除或者改变步骤。所有这些步骤都被考虑为本发明的一部分。另外,术语一个、等等的使用并不意味着对数量的限制,而是仅仅表明至少一个所引用的项的存在。
尽管已经描述了本发明的优选实施方式,但是本领域技术人员将能够理解,现在和将来可以进行各种改进和增强,其都落入后续的权利要求的范围内。这些权利要求应当被解释为保持针对最初描述的本发明的适当保护。
权利要求
一种用于扩展服务模型的计算机实现的方法,所述服务模型包括至少一个公开接口的规范,所述方法包括步骤接收所述服务模型的服务实现所消费的信息的规范,所消费的信息是由或者需要由所述服务实现利用而不经过所述公开接口的信息;以及使用计算机处理器自动生成扩展服务模型,所述扩展服务模型包括所述公开接口的规范和所述服务实现所消费的信息的规范。
2. 根据权利要求1所述的计算机实现的方法,其中接收所述服务实现所消费的信息的 规范包括接收所述服务模型的所述服务实现;以及通过检查所述服务实现,自动确定所述服务实现所消费的信息。
3. 根据权利要求2所述的计算机实现的方法,其中自动确定所述服务实现所消费的信 息包括对所述服务实现中用于在所述公开接口外部的信息传递的代码进行分析。
4. 根据权利要求1所述的计算机实现的方法,其中接收所述服务实现所消费的信息的 规范包括提供用户接口以从人类建模者输入所述服务实现所消费的信息。
5. 根据权利要求1所述的计算机实现的方法,其中所述服务模型的服务实现所消费的 信息的规范包括供应所消费的信息的至少一个信息源的标识。
6. 根据权利要求1所述的计算机实现的方法,其中所述服务模型的服务实现所消费的 信息的规范包括非功能性注释。
7. 根据权利要求6所述的计算机实现的方法,其中所述非功能性注释包括所消费的信 息的质量标准。
8. 根据权利要求6所述的计算机实现的方法,其中所述非功能性注释包括所消费的信 息的定时标准,其规定了所述服务实现何时需要所消费的信息。
9. 根据权利要求1所述的计算机实现的方法,还包括如果所述服务模型所消费的信息 与供所述服务实现处理的至少一个可用信息源不匹配,则识别所述服务模型中的至少一个 信息不一致。
10. 根据权利要求9所述的计算机实现的方法,其中在编写用于所述服务实现的基本 源代码之前执行识别所述服务模型中的至少一个信息不一致。
11. 根据权利要求1所述的计算机实现的方法,还包括至少部分地基于所述服务实现 所消费的信息自动分配供所述服务模型的所述服务实现处理的信息源。
12. 根据权利要求1所述的计算机实现的方法,其中所述服务模型的服务实现所消费 的信息的规范包括消费类型,消费类型规定了由所述服务实现执行的创建所消费的信息的 操作、读取所消费的信息的操作、更新所消费的信息的操作以及删除所消费的信息的操作 中的至少一个。
13. —种用于扩展服务模型的计算机系统,所述服务模型包括至少一个公开接口的规 范和用于该公开接口的至少一个端点,所述计算机系统包括用于实现权利要求1-12中的 任意方法的装置。
14. 一种计算机产品介质,包括实现权利要求1-12中的任意方法的程序代码。
全文摘要
本发明涉及用于扩展服务模型的方法和系统。提供了以所消费的信息的规范来扩展服务模型的技术。服务模型包括至少一个公开接口的规范。接收操作接收服务模型的服务实现所消费的信息的规范。所消费的信息是由或需要由服务实现利用而不经过公开接口的信息。生成操作使用计算机处理器自动生成扩展服务模型。扩展服务模型包括公开接口的规范和服务实现所消费的信息的规范。
文档编号H04L29/08GK101753619SQ200910222438
公开日2010年6月23日 申请日期2009年11月13日 优先权日2008年12月11日
发明者A·丹, C·T·简森 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1