【技术实现步骤摘要】
【国外来华专利技术】用于软件产品的动态过程
[0001]本专利技术涉及一种用于改变软件产品的功能而不更改软件产品本身的方法、计算机化系统和计算机程序产品。
技术介绍
[0002]当提供软件应用、服务或其他产品时的挑战之一是如何允许具有稍微不同需要的多个客户/用户使用相同的产品。在简单的情况下,这可以通过使一些特征可配置来实现,所述特征诸如URL、何时运行备份、最大用户数量等。
[0003]静态软件库是一种封装功能的方式,使得功能可以容易地被包括在产品中,并从产品内的其他代码被调用(invoke)。库由开发者在产品正在被构建时使用,并且此后功能是静态的。
[0004]软件框架是特殊种类的库,其中通过使用诸如多态性(polymorphism)和动态绑定之类的面向对象的技术,与普通的库相比,调用以另一种方式工作。在该框架中,该框架调用产品代码。典型的应用是用户接口事件的处理——当对象被点击时,“OnClick”方法被调用,但是这取决于产品开发者通过超控(override)由该框架提供的功能来定义“OnClick”应该做什么。
[0005]然而,传统的框架,就像库一样,是由开发者在产品正在被构建时使用的,并且此后功能是静态的。
[0006]脚本化(scripting)是一种允许客户/用户定义业务逻辑/工作流动作的方法,这些业务逻辑/工作流动作要由产品在预定义的触发点处调用。脚本可以以许多不同的方式来定义和存储,例如,作为单独的脚本文件(如对于Power shell),或者通过产品本身中的嵌入式脚本文件(如对于Ex ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种用于在运行时改变正在执行的软件产品的功能的计算机化方法,所述方法包括:a.在系统(100)的存储器(120)中提供可执行软件产品(210),其中所述可执行软件产品(210)是使用面向对象的编程语言生成的,所述可执行软件产品(210)包括:i)至少一个第一编程接口(211);ii)至少一个触发点(212),指示用于调用与相应触发点(212)相关联的一个或多个检测到的动态过程的软件代码中的位置;iii)改变检测器(214),被配置成在运行时检测存储在存储器(120)中的任何动态过程源代码(240)的任何添加、删除或改变;以及iv)触发点检测器(213),被配置成检测被包括在所述可执行软件产品(210)中的一个或多个触发点(212);v)运行时编译器(215)、运行时链接器(216)和运行时加载器(217),它们被配置成在运行时、即在所述可执行软件产品(210)的执行期间编译、链接和加载动态过程源代码;b.在存储器(120)中提供被设计成在所述可执行软件产品(210)中引入功能的改变的至少一个动态过程的动态过程源代码(240),其中每个动态过程的动态过程源代码(240)包括至少一个第二编程接口,其中所述至少一个第二编程接口中的每一个符合所述至少一个第一编程接口之一;c.通过使用被包括在系统(100)中或通信地连接到系统(100)的系统加载器来加载所述可执行软件产品(210),从而在动态运行时环境(230)中创建执行程序(232);以及在运行时,即在所述可执行软件产品(210)的执行期间:d.使用改变检测器来检测存储器(120)中的动态过程源代码(240)的任何添加、删除或改变;e.使用运行时编译器(215)来编译动态过程源代码的选择;以及f.使用运行时链接器(216)来链接经编译的动态过程;g.由触发点检测器(213)来检测被包括在所述可执行软件产品(210)中的一个或多个触发点;h.响应于对一个或多个触发点的检测,从存储器(120)中调用与每个检测到的触发点相关联的一个或多个动态过程;以及i.使用运行时加载器(217)来加载或执行所述执行程序(232)内的一个或多个所调用的动态过程。2.根据权利要求1所述的方法,进一步包括:在与每个检测到的触发点相关联的一个或多个动态过程中的最后一个已经被执行之后,由被包括在系统(100)中并且通信地连接到存储器(120)的处理器(110)将控制返回到所述执行程序(232)。3.根据权利要求1或2所述的方法,其中权利要求1的方法步骤d至i、可选地权利要求1的步骤b以及可选地权利要求2的方法步骤被重复地执行。4.根据前述权利要求中任一项所述的方法,其中步骤b在步骤c之前、与步骤c并行地、或者在步骤c之后执行。5.根据权利要求1所述的方法,其中所述可执行软件产品(230)是在开发期间通过以下方式生成的:
由通信地连接到系统(100)的外部编译器将软件产品源代码(202)编译(204)成二进制或中间代码(206);以及由外部链接器将所述二进制或中间代码(206)链接(208)到可执行软件产品(210)中。6.一种用于在运行时改变正在执行的软件产品(230)的功能的计算机化系统(100),所述系统(100)包括:存储器(120),被配置成存储可执行软件产品(210),其中所述可执行软件产品(210)是使用面向对象的编程语言生成的,所述可执行软件产品(2...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。