用于面向服务架构(soa)应用采用的验证框架的制作方法

文档序号:6479389阅读:153来源:国知局
专利名称:用于面向服务架构(soa)应用采用的验证框架的制作方法
技术领域
本发明涉及开发基于面向服务架构(SOA)的系统这一领域并且具体地涉及SOA应 用的验证。
背景技术
随着企业和客户变得进一步通过计算机通信网络如全球因特网和本地内部网来 互连,集成企业与客户之间交互的商务站点和配套计算应用同样变得越来越复杂。为了解 决企业到企业和企业到客户的在线交互的激增问题,信息技术越来越多地聚焦于设计和实 施完整的商务站点解决方案以反映业务的整个生命周期而不是集成在组合时反映业务生 命周期的多个不同应用。因此,由于现代商务站点可能是大型和分布式的,所以商务系统已 经配置成以尽可能无缝的方式部署完整的电子商务系统。从可以个别地重新用来为不同解决方案创建业务过程的一个或者多个组件产生 传统、独立、面向商务的应用现在是一种普遍趋势。这些组件中的各组件可以将本身暴露为 可重用业务功能的集合,这些功能也称为与用于有助于开放式面向服务架构(SOA)的部署 机构级逻辑的计算标准一致的“服务”。SOA实质上可以定义为如下系统,在该系统中所有 暴露的业务和技术功能均为可重用服务的形式。这些可重用服务可以相互通信以参与在两 个或者更多服务之间的简单数据传递或者参与两个或者更多服务的活动协调。在SOA中,客户机可以调用对服务的操作以执行功能,并且可选地,客户机可以接 收响应。调用的服务一般为配置成满足业务客户的需要的业务功能,无论这些客户是个人 客户还是其它企业。功能可以分组成各种服务,其中各服务可以专用于诸如目录管理、购物 车管理、信用卡交易处理、销售税计算等功能。通过利用S0A,在商务解决方案中的业务可以 与在更大商务解决方案中的其它业务过程互操作,这些业务过程涉及到一个或者多个单独 企业实体和一个或者多个单独客户实体。SOA应用赋予诸多益处,但是未计划和无组织的SOA采用致使组织面临诸多潜在 风险。就这一点而言,在变换组织以变成符合SOA时,必须考虑机构设计者如何保证可以容 易地发现所需服务。也必须考虑管理如何保证服务符合技术和业务应用标准。另外必须考 虑管理如何可以保证服务可以重用来构建可执行的端到端软件应用。最后必须考虑如何可 以在有组织的管理结构内控制服务的互操作。

发明内容
本发明的实施例解决现有技术在业务过程模型验证方面的缺陷并且提供一种用 于验证面向SOA的应用的新颖而非显而易见的方法、系统和计算机程序产品。在本发明的 一个实施例中,可以提供一种用于验证面向SOA的应用的方法。该方法可以包括将用于面 向SOA的应用的业务过程模型变换成有向连通无环图;进一步将用于业务过程模型的服务 分组变换成对应有向连通无环图;计算在业务过程模型的图中从根节点到叶节点的所有路 径;并且通过保证在业务过程模型的图中无回路或者循环来验证业务过程模型并且通过保证在服务分组的图之间无共享顶点来进一步验证业务过程模型。在该实施例的一个方面中,验证业务过程模型还可以包括确定路径中的单个路 径包含针对服务分组中的单个服务分组的所有顶点;并且如果未连通单个路径中包含的所 有顶点则认为服务分组中的单个服务分组无效。在该实施例的另一方面中,验证业务过程 模型还可以包括验证仅包含对应图中的单个顶点的各服务分组。在该实施例的另一方面 中,验证业务过程模型还可以包括计算在各路径与服务分组之间的交集;确定各交集是 否包括多个顶点;并且当任何交集包括未连通的多个顶点时认为服务分组无效。在本发明的另一实施例中,可以提供一种面向SOA的应用验证数据处理系统。该 系统可以包括模型变换模块,配置成将用于面向SOA的应用的业务过程模型变换成有向 连通无环图;服务组变换模块,配置成进一步将用于业务过程模型的多个服务分组变换成 对应有向连通无环图;路径发现模块,配置成计算在业务过程模型的图中从根节点到叶节 点的所有路径;以及模型验证逻辑。该逻辑可以包括如下程序代码,该程序代码能够通过保 证在业务过程模型的图中无回路或者循环来验证业务过程模型并且通过保证在服务分组 的图之间无共享顶点来进一步验证业务过程模型。本发明的附加方面将部分地在下文描述中加以阐述并且部分地将根据该描述而 变得清楚或者可以通过本发明的实践来获悉。本发明的方面将借助在所附权利要求中指出 的要素和组合来实现和达成。将理解前文总体描述和下文具体描述仅为举例和说明而不限 制如要求保护的本发明。


并入于本说明书中并且构成本说明书一部分的附示了本发明的实施例并且 与描述一起用于说明本发明的原理。目前优选这里图示的实施例,然而应当理解本发明不 限于所示精确布置和手段,在附图中图1是配置用于SOA应用验证的验证数据处理系统的示意图;图2是图示了 SOA应用验证过程的流程图;并且图3A至图3C—同考虑,是图示用于通过业务过程模型和服务分组的有向连通无 环图以及用于业务过程模型的所计算的路径来验证SOA业务过程模型的过程的流程图。
具体实施例方式本发明的实施例提供一种用于SOA应用验证的方法、系统和计算机程序产品。根 据本发明的一个实施例,业务过程模型可以变换成有向图,并且用于业务过程模型的指定 服务分组也可以变换成个别有向图。随后,可以将个别有向图与业务过程模型的有向图进 行个别地比较以检测表明无效分组的回路。另外,可以将遍历业务过程模型有向图的所有 路径与服务分组的个别有向图进行比较,并且可以检测具有不连通顶点的服务分组和路径 以表明无效服务分组。以这一方式,无论业务过程模型的复杂度如何都可以验证面向SOA 的业务过程模型及其指定服务分组。在进一步图示中,图1是配置用于SOA应用验证的验证数据处理系统的示意图。该 系统可以包括支持执行操作环境120的主机计算平台110。操作环境120可以是操作系统 或者虚拟机并且可以主控验证框架130的操作。验证框架130可以配置成为面向SOA的业
5务过程模型180提供验证190,该模型包括从面向SOA的业务过程模型180的服务组件之中 限定的子过程。具体而言,验证框架130可以包括模型变换模块140、服务组变换模块150和路径 发现模块160。验证框架130还可以包括模型验证逻辑170。模型变换模块140可以配置 成将面向SOA的业务过程模型180变换成有向连通无环图。类似地,服务组变换模块150 可以配置成将面向SOA的业务过程模型180中反映的不同服务子分组变换成相应有向连通 无环图。另外,路径发现模块160可以配置成计算遍历面向SOA的业务过程模型180的有 向图的所有路径。注意模型验证逻辑170可以包括如下程序代码,该程序代码能够处理业务过程模 型的有向连通无环图以及服务的服务分组的有向连通无环图以及计算的路径以产生无效 分组列表190。就这一点而言,可以使程序代码能够确定业务过程模型的图是否包含任何循 环或者回路。如果是这样,则可以使程序代码能够报告无效业务过程模型。另外,可以使程 序代码能够确定业务过程模型的图中的给定顶点是否包含于服务组的多个图中。如果是这 样,则可以使程序代码能够报告包含相同顶点的服务分组列表可以被报告为无效分组。另外,可以使程序代码能够处理各对应服务分组的各个别图以识别包含多个顶点 的服务分组,其中未沿着相同路径连通所有包含的顶点。对于包含未沿着相同路径连通的 多个顶点的那些服务分组,可以使程序代码能够将那些服务分组报告为无效。最后,可以使 程序代码能够处理各路径以识别展示一个或者多个共同顶点的相交服务分组。这样,可以 使程序代码能够检测各相交服务分组中的不连通顶点。就在服务分组中检测出不连通顶点 这一程度而言,可以使程序代码能够将服务分组报告为无效。在进一步图示中,图2是图示了 SOA应用验证过程的流程图。该过程可以在块201 中从加载业务过程模型开始。在块220中,业务过程模型可以变换成有向连通无环图。在 块230中,可以识别作为业务过程模型子集的各服务分组集合并且也将各集合个别地变化 成单独有向连通服务图。另外,可以计算在业务过程模型的有向连通无环图中从根到叶的 所有路径。最后在块250中可以验证业务过程模型和服务分组的无环图以及所计算的路径 并且在块260中可以报告无效服务分组列表以及任何无效业务过程模型的指示。具体而言,图3A至图3C —起图示了用于通过业务过程模型和服务分组的有向连 通无环图以及用于业务过程模型的计算路径来验证业务过程模型的过程。先参照图3A,可 以在块300中加载业务过程模型的有向连通无环图,同样可以在块305中加载业务过程模 型各对应服务分组的各有向连通无环图。在块310中可以遍历业务过程模型的图以识别不 允许的回路和循环。在判决块315中,如果能够在业务过程模型的图中识别出回路或者循环,则在块 320中可以将业务过程模型本身报告为无效。否则在块325中可以识别包含业务过程模型 的图中的各顶点的各服务分组,并且在判决块330中,如果在多个不同服务分组之间共享 图中的顶点,则可以将共享顶点的服务分组报告为无效。否则业务过程模型可以通过第一 验证阶段。在第二验证阶段中,可以分析各服务分组的有效性。具体而言,结合单个服务分组 的分析,参照图3B,在块350中可以针对服务分组加载有向连通无环图,并且在块350中可 以进一步加载为业务过程模型的图而计算的所有路径。在判决块360中,如果服务分组仅
6包含单个顶点,则可以在块365中将服务分组确定为有效(并且可以针对各其它服务分组 重复图3B的过程)。否则,过程可以通过判决块370继续。在判决块370中,如果单个计算的路径包含服务分组的所有顶点,则可以在判决 块375中确定是否在路径中连通所有顶点。如果是这样,则可以在块365中将服务分组确 定为有效。否则可以在块380中将服务分组报告为无效(并且可以针对各其它服务分组重 复图3B的过程)。另外,如果单个计算的路径未完整包含服务分组的顶点,则可以在块385 中进行完全的静态路径分析。参照图3C中所示静态路径分析,在块390中开始可以针对服务分组加载有向连通 无环图。在块395中可以加载业务过程模型图的所有路径,并且在块400中可以先选择路 径之一进行处理。在块405中可以确定在路径与服务分组之间的交集(如果有的话),因为 服务分组在路径中的共享顶点可以是交集。在块410中可以确定是否多个顶点包含于交集 中。如果不是,则在判决块420中如果有附加路径留待考虑,则可以在块400中针对下一路 径继续该过程。在判决块410中,如果确定多个顶点包含于交集中,则在块430中还可以确定是否 连通交集中的所有顶点。如果不是,则在块415中可以将服务分组报告为无效。否则在判 决块420中,如果有附加路径留待考虑,则可以在块400中针对下一路径继续该过程。当针 对服务分组无更多路径留待考虑时,可以在块425中将服务分组确定为有效。本发明的实施例可以采用全硬件实施例、全软件实施例或者包含硬件和软件单元 的实施例这一形式。在一个优选实施例中,用包括但不限于固件、常驻软件、微代码等的软 件实施本发明。另外,本发明可以采用如下计算机程序产品的形式,从提供程序代码的计算 机可用或者计算机可读介质可获取该计算机程序产品用于由计算机或者任何指令执行系 统使用或者与计算机或者任何指令执行系统结合使用。对于本说明书的目的而言,计算机可用或者计算机可读介质可以是任何如下装 置,该装置可以包含、存储、传达、传播或者传送用于由指令执行系统使用或者与指令执行 系统结合使用的程序。介质可以是电子、磁性、光学、电磁、红外线或者半导体系统(或者装 置或者设备)或者传播介质。计算机可读介质的例子包括半导体或者固态存储器、磁带、可 拆卸计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前例子 包括光盘_只读存储器(CD-ROM)、光盘-读/写(CD-R/W)和DVD。适合于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或者 间接耦合到存储器单元的至少一个处理器。存储器单元可以包括在执行程序代码期间运用 的本地存储器、大容量储存器和如下高速缓存存储器,这些高速缓存存储器提供至少一些 程序代码的临时存储以便减少在执行期间必须从大容量储存器取回代码的次数。输入/输 出或者I/O设备(包括但不限于键盘、显示器、指示设备等)可以直接或者通过居间I/O控 制器耦合到系统。网络适配器也可以耦合到系统以使数据处理系统能够变成通过居间专用 或者公用网络耦合到其它数据处理系统或者远程打印机或者存储设备。调制解调器、有线 调制解调器和以太网卡仅为当前可用网络适配器类型中的少数类型。
权利要求
一种用于验证面向面向服务架构(SOA)的应用的方法,该方法包括将用于面向SOA的应用的业务过程模型变换成有向连通无环图;进一步将用于所述业务过程模型的多个服务分组变换成对应有向连通无环图;计算在所述业务过程模型的图中从根节点到叶节点的所有路径;并且通过保证在所述业务过程模型的图中无回路或者循环来验证所述业务过程模型并且通过保证在所述服务分组的图之间无共享顶点来进一步验证所述业务过程模型。
2.根据权利要求1所述的方法,其中验证所述业务过程模型还包括确定所述路径中的单个路径包含针对所述服务分组中的单个服务分组的所有顶点;并且如果未连通单个路径中包含的所有所述顶点则认为所述服务分组中的所述单个服务 分组无效。
3.根据权利要求1所述的方法,其中验证所述业务过程模型还包括验证仅包含对应图 中的单个顶点的各所述服务分组。
4.根据权利要求1所述的方法,其中验证所述业务过程模型还包括 计算在各路径与服务分组之间的交集;确定各交集是否包括多个顶点;并且当任何交集包括未连通的多个顶点时认为所述服务分组无效。
5.一种面向面向服务架构(SOA)的应用验证数据处理系统,包括模型变换模块,配置成将用于面向SOA的应用的业务过程模型变换成有向连通无环图;服务组变换模块,配置成进一步将用于所述业务过程模型的多个服务分组变换成对应 有向连通无环图;路径发现模块,配置成计算在所述业务过程模型的图中从根节点到叶节点的所有路 径;以及包括程序代码的模型验证逻辑,所述程序代码能够通过保证在所述业务过程模型的图 中无回路或者循环来验证所述业务过程模型并且通过保证在所述服务分组的图之间无共 享顶点来进一步验证所述业务过程模型。
6.根据权利要求5所述的系统,其中所述程序代码还能够确定所述路径中的单个路径 包含针对所述服务分组中的单个服务分组的所有顶点并且如果未连通单个路径中包含的 所有所述顶点则认为所述服务分组中的所述单个服务分组无效。
7.根据权利要求5所述的系统,其中所述程序代码还能够验证仅包含对应图中的单个 顶点的各所述服务分组。
8.根据权利要求5所述的系统,其中所述程序代码还能够计算在各路径与服务分组之 间的交集、确定各交集是否包括多个顶点并且当任何交集包括未连通的多个顶点时认为所 述服务分组无效。
9.一种包括计算机可用介质的计算机程序产品,所述计算机可用介质包含用于验证面 向面向服务架构(SOA)的应用的计算机可用程序代码,所述计算机程序产品包括用于将用于面向SOA的应用的业务过程模型变换成有向连通无环图的计算机可用程 序代码;用于进一步将用于所述业务过程模型的多个服务分组变换成对应有向连通无环图的 计算机可用程序代码;用于计算在所述业务过程模型的图中从根节点到叶节点的所有路径的计算机可用程 序代码;以及用于通过保证在所述业务过程模型的图中无回路或者循环来验证所述业务过程模型 并且通过保证在所述服务分组的图之间无共享顶点来进一步验证所述业务过程模型的计 算机可用程序代码。
10.根据权利要求9所述的计算机程序产品,其中用于验证所述业务过程模型的所述 计算机可用程序代码进一步包括用于确定所述路径中的单个路径包含针对所述服务分组中的单个服务分组的所有顶 点的计算机可用程序代码;以及用于如果未连通单个路径中包含的所有所述顶点则认为所述服务分组中的所述单个 服务分组无效的计算机可用程序代码。
11.根据权利要求9所述的计算机程序产品,其中用于验证所述业务过程模型的所述 计算机可用程序代码还包括用于验证仅包含对应图中的单个顶点的各所述服务分组的计 算机可用程序代码。
12.根据权利要求9所述的计算机程序产品,其中用于验证所述业务过程模型的所述 计算机可用程序代码还包括用于计算在各路径与服务分组之间的交集的计算机可用程序代码;用于确定各交集是否包括多个顶点的计算机可用程序代码;以及用于当任何交集包括未连通的多个顶点时认为所述服务分组无效的计算机可用程序 代码。
全文摘要
本发明的实施例解决本领域在业务过程模型验证方面的缺陷并且提供一种用于验证面向服务架构(SOA)的应用的方法、系统和计算机程序产品。在本发明的一个实施例中,可以提供一种用于验证面向SOA的应用的方法。该方法可以包括将用于面向SOA的应用的业务过程模型变换成有向连通无环图;进一步将用于业务过程模型的服务分组变换成对应有向连通无环图;计算在业务过程模型的图中从根节点到叶节点的所有路径;并且通过保证在业务过程模型的图中无回路或者循环来验证业务过程模型并且通过保证在服务分组的图之间无共享顶点来进一步验证业务过程模型。
文档编号G06Q10/00GK101911104SQ200880124333
公开日2010年12月8日 申请日期2008年10月10日 优先权日2008年1月8日
发明者H·勒恩 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1