用于软件产品的动态过程制造技术

技术编号:38760229 阅读:8 留言:0更新日期:2023-09-10 09:45
提供了一种通过使用动态过程在运行时改变正在执行的软件产品的功能的方法。进一步提供了对应的计算机化系统、计算机程序以及包含该计算机程序的非易失性数据载体。该计算机程序的非易失性数据载体。该计算机程序的非易失性数据载体。

【技术实现步骤摘要】
【国外来华专利技术】用于软件产品的动态过程


[0001]本专利技术涉及一种用于改变软件产品的功能而不更改软件产品本身的方法、计算机化系统和计算机程序产品。

技术介绍

[0002]当提供软件应用、服务或其他产品时的挑战之一是如何允许具有稍微不同需要的多个客户/用户使用相同的产品。在简单的情况下,这可以通过使一些特征可配置来实现,所述特征诸如URL、何时运行备份、最大用户数量等。
[0003]静态软件库是一种封装功能的方式,使得功能可以容易地被包括在产品中,并从产品内的其他代码被调用(invoke)。库由开发者在产品正在被构建时使用,并且此后功能是静态的。
[0004]软件框架是特殊种类的库,其中通过使用诸如多态性(polymorphism)和动态绑定之类的面向对象的技术,与普通的库相比,调用以另一种方式工作。在该框架中,该框架调用产品代码。典型的应用是用户接口事件的处理——当对象被点击时,“OnClick”方法被调用,但是这取决于产品开发者通过超控(override)由该框架提供的功能来定义“OnClick”应该做什么。
[0005]然而,传统的框架,就像库一样,是由开发者在产品正在被构建时使用的,并且此后功能是静态的。
[0006]脚本化(scripting)是一种允许客户/用户定义业务逻辑/工作流动作的方法,这些业务逻辑/工作流动作要由产品在预定义的触发点处调用。脚本可以以许多不同的方式来定义和存储,例如,作为单独的脚本文件(如对于Power shell),或者通过产品本身中的嵌入式脚本文件(如对于Excel)。除了脚本语言中可能相当广泛的特征之外,脚本通常还有权访问产品中的预定义的操作或数据集。脚本通常由解释器来运行。然而,脚本仅可以访问产品中的预定义的操作或数据集,即,由产品开发者显式地暴露的操作或数据变量集,并且因此其功能在开发之后是静态的。
[0007]然而,考虑到提供用户工作流和数据管理的快速和灵活的适配、以及软件产品功能的定制,这些现有解决方案中没有一个是令人满意的。因此,存在对改进的解决方案的需要。

技术实现思路

[0008]本专利技术的目的是消除或至少最小化上面讨论的问题。这是通过根据所附独立权利要求的用于改变软件产品的功能而不更改软件产品本身的方法、计算机化系统和计算机程序产品来实现的。
[0009]根据本专利技术的一方面,提供了一种用于在运行时改变正在执行的软件产品的功能的方法,该方法包括在系统的存储器中提供可执行软件产品,其中可执行软件产品是使用面向对象的编程语言生成的。可执行软件产品包括:至少一个第一编程接口;至少一个触发
点,指示用于调用与相应触发点相关联的一个或多个检测到的动态过程的软件代码中的位置;触发点检测器,被配置成检测被包括在可执行软件产品中的一个或多个触发点;以及改变检测器,被配置成在运行时检测存储在存储器中的任何动态过程源代码的任何添加、删除或改变。可执行软件产品进一步包括:运行时编译器、运行时链接器和运行时加载器,它们被配置成在运行时、即在可执行软件产品的执行期间编译、链接和加载动态过程源代码。该方法进一步包括在存储器中提供被设计成在可执行软件产品中引入功能的改变的至少一个动态过程的动态过程源代码,其中每个动态过程的动态过程源代码包括至少一个第二编程接口,其中至少一个第二编程接口中的每一个符合(comply with)至少一个第一编程接口之一。该方法进一步包括通过使用被包括在该系统中或通信地连接到该系统的系统加载器来加载可执行软件产品,从而在动态运行时环境中创建执行程序,并且在运行时、即在可执行软件产品的执行期间执行以下方法步骤:
[0010]‑
使用改变检测器来检测存储器中的动态过程源代码的任何添加、删除或改变;
[0011]‑
使用运行时编译器来编译动态过程源代码的选择;以及
[0012]‑
使用运行时链接器来链接经编译的动态过程;
[0013]‑
由触发点检测器来检测被包括在可执行软件产品中的一个或多个触发点;
[0014]‑
响应于对一个或多个触发点的检测,从存储器中调用与每个检测到的触发点相关联的一个或多个动态过程;以及
[0015]‑
使用运行时加载器来加载或执行正在执行的软件产品内的一个或多个所调用的动态过程。
[0016]合适地,由此使得能够更改软件产品(这里被称为正在执行的软件产品)的功能而不更改软件产品本身,这是由于更改软件产品的动态过程执行起来好像它们是正在执行的软件产品的一部分。通过使用动态过程,由此使得能够在源代码级别上使用软件产品中的所有操作、类和/或数据变量,从而在每个客户/用户级别上实现适配,同时仍然使用相同的产品,即不改变产品的二进制代码。由此,实现了用户工作流和数据管理的快速和灵活的适配、以及软件产品功能的定制。
[0017]在一些实施例中,该方法进一步包括:在与每个检测到的触发点相关联的一个或多个动态过程中的最后一个已经被执行之后,由被包括在该系统中并且通信地连接到存储器的处理器将控制返回到正在执行的软件产品。
[0018]应当注意的是,动态过程源代码可以在可执行软件产品的执行之前和/或在可执行软件产品的执行期间被提供在存储器中。
[0019]可选地,合适的方法步骤可以被重复地执行,如详细描述中进一步描述的。
[0020]在一个或多个实施例中,可执行软件产品在开发期间通过以下方式来生成:由外部编译器将软件产品源代码编译成二进制或中间代码;以及由外部链接器将二进制或中间代码链接到可执行软件产品中。
[0021]根据本专利技术的另一方面,提供了一种用于在运行时改变正在执行的软件产品的功能的计算机化系统。该系统包括被配置成存储可执行软件产品的存储器,其中可执行软件产品是使用面向对象的编程语言生成的。可执行软件产品包括:至少一个第一编程接口;至少一个触发点,指示用于调用与相应触发点相关联的一个或多个检测到的动态过程的软件代码中的位置;触发点检测器,被配置成检测被包括在可执行软件产品中的一个或多个触
发点;以及改变检测器,被配置成在运行时检测存储在存储器中的任何动态过程源代码的任何添加、删除或改变。可执行软件产品进一步包括:运行时编译器、运行时链接器和运行时加载器,它们被配置成在运行时、即在可执行软件产品的执行期间编译、链接和加载动态过程源代码。存储器进一步被配置成存储被设计成在可执行软件产品中引入功能的改变的至少一个动态过程的动态过程源代码,其中每个动态过程的动态过程源代码包括至少一个第二编程接口,其中至少一个第二编程接口中的每一个符合至少一个第一编程接口之一。该系统进一步包括或者通信地连接到系统加载器,该系统加载器被配置成通过将可执行软件产品加载到存储器中来在动态运行时环境中创建执行程序。改变检测器被配置成在运行时、即在可执行软件产品的执行期间检测存储器中的动态过程源代码的任何添加、删除或改变。运行时编译器被配置成在运行时编译所包括的动态过程源代码的选择。运行时链接器被配置成在运行时链接经本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】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...

【专利技术属性】
技术研发人员:B
申请(专利权)人:艾迪医疗公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1