用于策略使能编程的方法和系统的制作方法

文档序号:6478813阅读:264来源:国知局
专利名称:用于策略使能编程的方法和系统的制作方法
技术领域
本发明大致涉及通信、信息和娱乐服务的编程。
背景技术
以传统形式编写的软件应用程序具有在应用程序代码内定义的所有功能。一旦部 署了这样的应用程序,提供该应用程序的提供商便没有影响应用程序的行为的余地。应用 程序具有少数可以调节的参数,然而通常除非修改了应用程序代码,否则应用程序的行为 是固定的。希望专注于动态市场的服务提供商需要快速提供新服务的灵活性。与修改应用程 序代码相关的周期令人不可接受地延缓了该过程。从而,对于应用程序代码,需要在不等待 软件发布的情况下便可以对应用程序行为进行修改。在用于构建智能电话网络服务的智能网和高级智能网概念的开发中,涉及到类似 的动机。通过改变在电话交换机内的代码来构造新的服务是可能的,然而这相当的慢和麻 烦。所选方式是精确地定义呼叫模型,该呼叫模型指定了在建立双方之间的连接时电话交 换软件的状态。在呼叫模型中的各个点处,可配置电话交换机向外部服务控制点查询关于 怎样进行处理的指令。通过改变服务控制点中逻辑的行为而不对交换系统内的软件自身做 出改变,便可以产生新的服务功能。该方式极大地依赖于对交换系统的状态进行指定的公共呼叫模型和所期望的行 为。因为从一个系统到另一个系统,建立呼叫的处理是一致的,因此可以定义这样的呼叫模 型。呼叫模型的定义和商定花费相当多的时间,这是可以容忍的,因为电话呼叫的处理在时 间上是相对静态的。在提供商频繁地提供新的并且变化的服务的环境中,为服务逻辑的内 部状态定义如此详细的模型将是不可能的。虽然该公共呼叫模型技术具有所期望的特性, 然而不能将其直接应用于对紧急的、新的并且变化的服务所进行的处理。电信设备厂商和运营商通过向呼叫处理系统增加附加特征来解决类似的问题。该 商定的解决方案(高级智能网(AIN)的基础)定义了另一公共呼叫模型,作为对电话呼 叫的建立进行处理的基础。该公共呼叫模型提供了事件的预定义集合,其中,可以向外部 系统查询决策。例如,美国专利 5,940,487,"Programmable call processing systemand method",Bunch等人示意了在与AIN耦合的分布式电信交换系统上的这种方式。这种处理 呼叫的服务交换点(交换机)与处理服务逻辑的服务控制点的分离允许在不对交换机内的 软件进行改变的情况下对新的呼叫服务进行了定义。这种方式对于控制电路交换网内的电 话呼叫起到很好的作用,并通过诸如Parlay组织规范和Java社区处理JAIN规范等工业论 坛的结果扩展到下一代分组交换网络中。需要这样的标准化的事实指示了该方式的局限在 于,其处理特定的功能(呼叫控制)并要求事先协定和/或对功能的标准化。从而,该方式 适于在时间上静态的应用程序功能。i^H^^J 6, 970, 901, "Device and method for swapping out a partof a service logic program”中,Moritz教导了用于在多个实体上分布服务逻辑的机制。Moritz特别地专注于使用作为客户端的智能终端的日益增加的能力,这是通过将服务逻辑 的一部分分布到客户端来实现的。Moritz公开了用于使用这种分布式的方式来确定与计费 相关的信息的方法。对客户设备的分布可以实现个性化,然而并未易于实现对整个服务的 行为的修改,因为必须将改变传播到所有的客户端设备。因为可以事先对通信机制(Moritz 中的“计费票”)进行定义和编码,简化了对单个主题(如,计费)的分布的实现。从而, Moritz解决了灵活的业务逻辑编程的需求,然而是在非常有限的领域中解决的。在美国专利6, 967, 957, "Architecture for the rapid creation oftelephony services in a next generation network”巾,Anjum ·入了胃 (寸|白勺Hf 口L]|1M,. 呼叫模型“向应用程序隐瞒了基本的呼叫状态管理协议和硬件”。特别地,Anjum等描述了 新的呼叫模型,该呼叫模型被设计为抽象得足以表示在电路交换和分组交换电话网络中的 呼叫控制。这种呼叫模型比其所基于的Java电话应用程序接口(JTAPI)模型更加灵活,然 而仍然表示单个功能。从而,该模型不能够应用于更一般的情况中,在更一般的情况中,事 先没有很好地定义行为或对行为有清楚地了解。开放移动联盟(OMA)内的策略评估执行管理(PEEM)研究描述了用于策略评 估和执行的架构来作为OMA的服务使能器(enabler)的支持,在草案需求文档“Policy Evaluation, Enforcement andManagement Architecture" (OMA-AD-Po 1 icy_Evaluation_ Enforcement_Management-Vl_0-200600625-D)中对此进行了指定。这些使能器包括诸如群 列表管理、消息收发和位置等功能。该架构被设计提供针对这些使能器的公共框架,以查询 策略决策。虽然不要求,但作为用于在此描述的策略使能编程的构造块,这种能力将是有用 的,因为这种能力可以简化系统间映射接口的处理。然而,OMA的工作没有指定使能器将如 何确定何时查询策略引擎(PEEM使能器)或者查询哪个策略引擎。另一种方式为工作流系统所支持。在这些常常应用于复杂的命令处理的系统中, 处理步骤的集合是以在运行时进行翻译的文本的形式定义的,而不是以软件代码的形式编 译的。这提供了灵活性,因为可以在不改变工作流引擎的代码的情况下修改工作流。然而, 翻译工作效率低下,导致性能足以用于命令处理,然而对于实际业务的执行来说通常是不 足的。数据库系统还提供了另一种机制,在该机制中,可以调用触发器和所存储的流程 来执行逻辑,该机制提供了大量的灵活性。然而,仅存在针对于对数据库中数据的插入、删 除、更新和选择的数据库操作的,可以执行所存储的流程的操作。该方式的问题在于对数据 库操作的限制;整个规范在数据库系统内,并且除非巡览过数据和相关联的触发器和所存 储的流程,否则不是能够轻易对照或修改的。因此,当前的处理被限制于特定的软件应用程序类型(如,呼叫处理),并且在应 用程序处理模型可以使用之前,具有该应用程序处理模型所需的高级协定和/或标准化。 其它当前的处理仅存在于诸如数据库和工作流系统等中间件内,这限制了这些其它的当前 处理的范围,并且不满足对于服务执行的性能需求。从而,需要能够动态地确定何时以及在何 处查询诸如策略引擎等外部决策点的系 统。还需要结构化和高效的、用于配置这种动态查询的机制,其特征在于,可以被配置为受 控的选项集合的中断点。

发明内容
本发明有利地提供了用于构造和部署应用程序软件的设计架构和方法学,该设计 架构和方法学允许在执行期间,在不改变应用程序的代码的情况下,适配或配置应用程序 的行为。提供了通过应用程序的配置或适配,针对不同的目的对单个软件应用程序的多次 重用。此外,本发明的系统和方法实现了新的业务行为的快速部署,这是因为可以在没有与 软件开发周期相关联的延迟的情况下传递这些新的业务行为。一种系统和方法,用于允许在电信系统中对应用程序的应用程序行为进行外部执 行时适配,所述系统包括具有至少一个中断点并驻留在应用程序服务器上的应用程序; 至少一个可识别的决策引擎;以及针对每一个中断点,具有决策引擎的至少一个标识符的 中断点列表,使得在中断点中的一个处,应用程序访问中断点列表,调用与中断点相对应的 决策引擎的所列实例,并基于该决策引擎对应用程序的行为进行适配。中断点列表可以是应用程序外部的文件,并可以包含针对每一个标识符和针对每 一 个标识符的动作类型的属性映射,此外,中断点列表可以动态地将中断点映射到决策引 擎。


通过以非限制地示出的本发明的实施例的方式来参考所提到的图,对随后的详细 描述进行了进一步的描述,在图中,相同的附图标记表示所有图中类似的部分。然而,应该 理解的是,本发明不限于所示出的精确的布置和手段。在图中图1是用于策略使能的程序执行的架构;以及图2是中断点配置的示例性的表;以及图3是示出在处理中断点配置表中的条目时,应用程序的行为的流程图。
具体实施例方式提出了允许应用程序行为的外部执行时间适配的系统和方法。该方式的关键特征 是,向应用程序开发员提供了与所编译的代码相关联的性能以及对应用程序流内的决策点 和可能的动作进行定义的灵活性的,允许将这些决策点动态地映射到外部的评估引擎,以 及使得当部署应用程序时或甚至在执行应用程序时能够将被配置的应用程序的行为,而不 是仅在应用程序的设计和开发期间能够配置应用程序的行为。有两种支持这种系统和方法的特定机制。第一种是外部表,如中断点配置表。应 用程序在其执行期间到达中断点时读取该表,以确定采取什么动作。基于对在给定的中断 点处应用程序已定义了什么属性或变量的了解,可以与应用程序分离地定义该表中的条 目,并且甚至可以在应用程序运行时改变该表中的条目。第二种适配方法包含在外部系统 中。这些系统内的逻辑、策略和/或规则将创建将要影响到应用程序的后续流程和行为的 响应。采用这两种机制,可以在不必重写或修改应用程序代码的情况下对应用程序的行为 进行重大的修改。图1示出了本发明系统的一个实施例。策略使能的应用程序10驻留在电信系统 (未示出)的应用程序服务器12中。策略使能的应用程序10是以应用程序逻辑的流程内 的可配置中断点14的指定集合来构建的。当应用程序代码的执行到达这些中断点14中的一个时,应用程序代码查看中断点配置的列表或外部表16 (如,中断点配置表),所述中断 点配置的列表或外部表16包含包括动作类型18在内的数据。通过评估该数据,应用程序 10可以确定在中断点14处将要采取的动作。为了管理表的复杂度,可以限制可能的动作 类型的数目。对于应用程序,一般的动作可以是向外部系统20发送数据,并使用所产生的 响应来确定应用程序的后续动作。如在其已编译的代码内所定义的那样,执行这些后续动 作,作为具有相关联的性能的应用程序10的一部分。外部系统20可以是决策引擎、策略引 擎或从应用程序10接收输入、应用所定义的一个或多个策略的集合以及提供响应的策略 决策点。通过修改该策略中的一个或多个,而不是通过改变应用程序的代码来改变应用程 序的行为。在备选的实施例中,可以在应用程序10中实现跳转表(未示出)。在这种情况 下,可以通过修改外部决策点或通过修改和重新编译应用程序10来改变应用程序的行为。注意,外部系统20还可以是工作流系统、数据库系统或甚至另外的软件应用程 序。甚至在将决策点硬编码于策略使能应用程序10中的情况下,可将映射改变为指向不同 的软件应用程序的事实也提供了灵活性。策略使能应用程序10可以对其从外部策略引擎20接收到的响应做出反应的方式 有很多。构造在确定其后续行为时给予外部系统20完全的灵活性的应用程序10可能是极 端困难和容易出错的。然而,通过对动作类型或选项18的范围进行了适当的限制,可以将 复杂度保持在可管理的水平。特别地,可以基于外部系统20提供的响应来设计应用程序, 以支持数目有限的动作类型18。这些动作类型18的示例可以包括分支或双路的决策点动 作、空动作和变量替换动作。在双路决策点动作18中,应用程序10向外部系统20发送消息,并且外部系统提 供二进制(即,“是/否”或“真/假”)响应。如果响应是“是”,那么应用程序10沿着一条 预定义的路径前进,如果响应是“否”,应用程序10沿着另一条路径前进。当应用程序10在 该决策点动作18中仅执行两个选项中的一个时,基于外部系统20用来进行决策的策略或 处理,整个行为可以发生极大的改变。可以将此扩展到可能存在多条路径的多路决策动作。作为示例,被设计为向用户传递或发送数字内容项的应用程序10可以包括刚好 在内容发送之前的中断点14。响应于该中断点14,应用程序10在向外部策略引擎20的查 询中提供识别用户以及内容项列表的信息。如果响应是“是”,应用程序被编程为继续进行 内容的传输,如果响应是“否”,取消传输。在一种情况下,外部系统20可以是确定用户是否 有充足的结余来支付该项的实时计费引擎。如果用户的结余充足,外部系统20将用户的账 户计入借方并返回“是”,如果结余不足,外部系统20返回“否”。在另一种情况中,外部系 统20可以是授权系统,该授权系统仅允许将内容下载到特定物理位置内的用户,以例如作 为公司的安全措施或作为餐馆吸引游客的手段。如果用户位于针对该内容项指定的区域范 围内,外部系统20返回“是”,如果没有,系统20返回“否”。从而,两种使用截然不同的外 部系统20的完全不同的服务使用同一个内容传递策略使能的应用程序10。在空动作18的情况下,应用程序10只是执行中断点14并继续操作。空动作适于 应用程序只是需要告知外部系统20某些事件的情况。在上述的内容下载服务示例中,可以 指示应用程序10刚好在内容发送之前执行包括空动作在内的中断点14。执行该中断点14 可以使得外部系统记录包括内容项列表在内的下载事件,以使得在下一个记账周期期间针 对该内容向具有后付费账户的用户收费。
在变量替换动作18的情况下,应用程序10使用来自外部系统20的响应来改变应 用程序10正在处理的变量的值。在以上的内容下载服务示例中,可以指示应用程序10刚好 在内容发送之前执行包括变量替换动作在内的中断点14。执行该中断点14可以使得外部 系统20过滤内容项的列表,移除其评定信息指示其不能被用户所接受的那些内容项,这可 能是基于所识别的用户的年纪或偏好来进行的。然后,外部系统20向应用程序10返回经 过滤的列表,应用程序10使用经过滤的列表来替换初始的内容项列表,并继续进行下载。可以限定其它的动作类型18,在对应用程序流的控制中提供更大的灵活性。注意, 期望限制动作类型或选项18的数目,以避免在应用程序10的构建中不适当的复杂度。 策略使能的应用程序10可以在应用程序服务器12或服务传递平台内执行,并可 以本地访问中断点配置表16,该中断点配置表16可以指定与每一个中断点14相关联的应 用程序的行为。图2示出了可由负责产品/服务部署的供应系统填充的示例性的表16。表 16不仅包括以上讨论的动作类型18,还包括下面将要更详细地描述的随后的字段策略引 擎或外部系统20的地址、序列号24和属性映射26。策略使能的应用程序10可以与一个或 多个外部策略决策点交互。配置表16将程序流内的点与交互的方式(如,发送的属性)相 链接,在所述程序流中,可以以与其交互的特定决策点来执行交互。虽然在此的讨论描述了策略决策点,在此处定义的机制中,没有将外部系统20限 制为策略评估器。任何具有所定义的调用接口的外部系统20都可以被用来替换策略决策 点ο表1中示出了简化的抽样配置表16。在这种情况下,存在与中断点14相关联的两 个中断点条目。针对第一个条目,应用程序10必须通过经由表16中的系统地址22向策略 引擎1发送属性A、B和C来执行属性映射,并使用响应来替换属性C的值。针对第二个条 目,应用程序10必须经由表16中的系统地址22向策略引擎1发送属性26A、C和D,并基 于“是/否”响应来执行决策点动作18。序列栏中的序列号24指示了与单个中断点14相 关联的调用的执行顺序。可以并行地执行共享序列号24的调用。在没有使用序列号24的 情况下,应用程序10可以以在文件中找到的顺序来执行查询。表1中断点配置表 图3包含示出了图1所示的应用程序10的行为的流程图。参考该图的左侧,在步 骤S 1处发起时,应用程序10通过阶段1执行所设计的活动。在步骤S2,应用程序到达中 断点114。在该点处,应用程序查看中断点配置表16,看是否有任何与中断点114相关联的 条目。图3的右侧示出了在中断点1模块内用于处理这些条目的流程。一旦在步骤S3处进入,应用程序10在步骤S4处调用外部系统20,使用表16中定义的属性映射26。当外 部系统20响应时,应用程序10在步骤S5处确定正在处理的中断点的类型或动作类型18。 如果中断点类型18是变量替换,应用程序10在步骤S6处执行配置表16中定义的替换,并 前进至步骤S7检验是否有更多的中断点14要处理。如果中断点类型18是空,应用程序10 不需要等待响应,并直接前进至步骤S7以检验是否有更多的中断点14需要处理。如果中 断点类型18是分支,应用程序10在步骤S8处检验来自外部系统20的响应。如果外部系 统20的响应是“是”,应用程序10前进至在步骤S7处的检验更多的中断点14。如果外部 系统响应是“否”,应用程序在步骤S9处以“否”的退出条件从对任何其它中断点条目14的 处理中断,并返回主应用程序流程。当没有更多的终端点条目14要处理时,应用程序10在 步骤SlO处以“是”的退出条件返回主应用程序流。没有示出在与外部系统20的交互中对异常和错误条件的处理。应用程序10可以 被编程为具有各种异常处理行为,以处理返回的错误和无响应的超时。备选地,可以对表进 行扩展以指示在特定的处理异常的情况下所采取的动作。对于本机制来说,应用程序10处 理这些情况的方式不是关键的。该动态编程方式的关键方面是,可以将应用程序中断点14动态地映射到决策点 系统20以及决策点系统20内特定的策略。有无数的可以执行该映射的方法。可能最直接 的方法是人工方式,在人工方式中,人类分析者创建中断点配置表16、定义与每一个中断点 14相对应的策略、将配置表16加载到应用程序服务器12中以及将策略加载到决策点中。 如果可以以结构化的方式使应用程序中断点14和策略可见, 映射处理中更大的自动化和 有效程度是可能的。
设计环境可以将所有中断点14的结构化表示导入到用户所选的应用程序10中。 设计环境可以从其所知的决策点取得策略。当人类用户选择中断点14(表2中示出了中 断点14的简要表示)时,设计环境可以取得并呈现那些有效的策略。例如,如果中断点14 仅允许分支操作或两路决策动作18,只有那些返回是/否或真/假值的那些策略才是适合 的。在选择策略后,用户可以将在所选中断点14处从软件应用程序20可用的变量映射到 在如表3所示的策略的接口中指定的变量。然后,设计环境可以使该映射生效,例如确保诸 如串、整数等的类型匹配。在以这种方式成功定义所有的映射后,设计环境可以创建对应的 中断点配置表16并将其安装在应用程序服务器12上。表2简化的中断点表示结构 表3简化的策略调用接口结构 虽然已在具体的实施例中对本发明进行了描述,然而应该意识到的是,不应将本 发明解释为被这些实施例所限制,而是应该根据下面的权利要求来进行解释。
权利要求
一种系统,用于允许在电信系统中对应用程序的应用程序行为进行外部执行时适配,所述系统包括驻留在应用程序服务器上的应用程序,所述应用程序具有至少一个中断点;至少一个可识别的决策引擎;以及中断点配置列表,针对每一个中断点,包括所述决策引擎的至少一个标识符,其中,在所述中断点中的至少一个处,所述应用程序访问所述中断点配置列表,调用针对所述一个中断点的所述决策引擎的所列实例,并基于所述至少一个决策引擎对应用程序的行为进行适配。
2.根据权利要求1所述的系统,其中,所述中断点配置列表在所述应用程序外部。
3.根据权利要求1所述的系统,其中,所述中断点配置列表还包括针对每一个标识符 的属性映射以及针对每一个标识符的动作类型。
4.根据权利要求1所述的系统,其中,所述中断点配置列表还包括与所述列表中的每 个条目相关联的序列号。
5.根据权利要求1所述的系统,其中,所述中断点配置列表动态地将所述中断点映射 到所述决策引擎。
6.根据权利要求1所述的系统,其中,如果针对所述一个中断点的每一个条目的所述 序列号是相等的,则并行地进行调用。
7.一种用于允许在电信系统中对应用程序的应用程序行为进行外部执行时适配的方 法,所述方法包括在应用程序中的至少一个中断点的每一个处,访问中断点配置列表,针对所述至少一 个中断点中的每一个,所述列表具有决策引擎的至少一个标识符;调用与所述中断点相对应的所有决策引擎,以及基于决策引擎对应用程序的行为进行适配。
8.根据权利要求7所述的方法,其中,所述中断点配置列表在所述应用程序外部。
9.根据权利要求7所述的方法,其中,所述中断点配置列表还包括针对每一个标识符 的属性映射以及针对每一个标识符的动作类型。
10.根据权利要求7所述的方法,其中,所述中断点配置列表还包括与所述列表中的 每个条目相关联的序列号。
11.根据权利要求7所述的方法,其中,所述中断点配置列表动态地将所述中断点映射 到所述决策引擎。
12.根据权利要求7所述的方法,其中,如果针对所述一个中断点的每一个条目的所述 序列号是相等的,则并行地进行调用。
全文摘要
在不对应用程序代码进行修改的情况下允许在电信系统中对应用程序的应用程序行为进行外部执行时适配的系统和方法包括具有至少一个中断点并驻留在应用程序服务器上的应用程序;至少一个可识别的决策引擎;以及针对每一个中断点,具有决策引擎的至少一个标识符的中断点列表,使得在中断点中的一个处,应用程序访问中断点列表,调用与一个中断点相对应的决策引擎的所列实例,并基于该决策引擎对应用程序的行为进行适配。此外,中断点列表中的每一个条目可以具有序列号,使得如果针对同一个中断点的两个条目具有相等的序列号,可以并行地调用在这些条目中识别出的决策引擎。
文档编号G06F15/177GK101842781SQ200880113955
公开日2010年9月22日 申请日期2008年11月3日 优先权日2007年11月2日
发明者穆尼尔·科钦瓦拉, 约瑟芬·米卡勒夫, 约翰·R·乌尔特Ii 申请人:特尔科迪亚许可公司有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1