CN101162428A - 软件动态演化中构件运行时状态的获取和转换方法 - Google Patents
软件动态演化中构件运行时状态的获取和转换方法 Download PDFInfo
- Publication number
- CN101162428A CN101162428A CNA2007101707683A CN200710170768A CN101162428A CN 101162428 A CN101162428 A CN 101162428A CN A2007101707683 A CNA2007101707683 A CN A2007101707683A CN 200710170768 A CN200710170768 A CN 200710170768A CN 101162428 A CN101162428 A CN 101162428A
- Authority
- CN
- China
- Prior art keywords
- component
- redaction
- information
- status information
- version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种软件维护技术领域的软件动态演化中构件运行时状态的获取和转换方法,包括如下步骤:解析构件新旧版本的实现源代码、构件规约和内部业务逻辑,分别建立构件内部结构逻辑表示模型;比较两个逻辑表示模型,识别相对应的成员变量和语法结构,返回版本间的相关性详细描述,确定应被获取并转换到新版本的构件状态信息;修改构件新版本的逻辑表示模型,增加接口方法从旧版本中导出并保存其运行时状态信息,并增加接口方法导入并转换状态信息;基于已修改的构件新版本逻辑表示模型,重新生成构件新版本的源代码。本发明方法能够有效获取并转换构件运行时的状态信息,实现动态演化支持系统中的状态转换功能。
Description
技术领域
本发明涉及一种电信技术领域的方法,具体是一种软件动态演化中构件运行时状态的获取和转换方法。
背景技术
应用型的软件系统包括航天支撑系统、在线服务系统、医学应用中的生命支持系统等,需要系统提供24/7/365的可用性,系统中断意味着要付出高昂的代价甚至危及生命,系统软件必须具有运行时动态演化的能力。其通常包括许多相互交互的构件,这些构件各自为一个独立的组合或配置单元,包含由契约指定的接口和显式环境依赖,拥有明确且良定义的任务,软件构件可以独立配置,并且由第三方来进行整合,由于高度模块化的设计,基于构件的软件非常适于运行时演化。然而,构件动态取代仍然是个复杂的任务,主要归因于在不同版本之间,构件的内部实现和运行状态都可能发生改变,要保持运行时系统的一致性,包含在活跃构件中的状态必须被转换到构件新版本中。目前大多数与构件化软件动态演化相关的工作都重点关注新版本构件模块的加载和替换操作,而往往把状态转换逻辑的实现这一动态演化中最为重要的问题留给应用程序员,或是完全忽略。
经对现有技术文献的检索发现,Michael Hicks等在《ACM Transactions onProgramming Languages and Systems》(ACM程序语言与系统学报)2005年第27卷第6期第1049到1096页上发表的“Dynamic Software Updating”(动态软件更新)文章中提到对软件动态演化中的状态转换提供工具支持,能够为变量名不发生改变的变量生成转换代码。其不足之处在于,受限于某一特定的语言和环境(Michael Hicks的方法主要为类C语言提供升级支持),且仅仅为用户提供转换实现的简单框架,没有对状态本身的转换提供智能化的支持,并且也没有提供一般可用的方法。因此,为提供有益支持而从根本上解决该问题,本发明专门针对软件动态演化中构件运行时状态的获取和转换问题提供方法,以增加软件动态演化自动支持的级别。
发明内容
本发明针对现有技术存在的不足,提供了一种软件动态演化中构件运行时状态的获取和转换方法,使其通过直接分析并获取构件旧版本的运行时状态信息,进行导出和分解,构件新版本生成对应的转换函数导入状态信息,并在构件初始化时具体实现状态的转换。
本发明是通过如下技术方案实现的,本发明包括以下步骤:
步骤一,通过代码构造解析器解析构件新版本和旧版本的实现源代码、构件规约以及成员类之间的业务逻辑,分别建立构件内部结构的逻辑表示模型,并解析构件外部接口的定义和实现方法信息;
所述逻辑表示模型为有向图结构表示,包含类、属性、操作之间的交互和联系。
所述构件外部接口的定义和实现方法信息,是指构件作为一个整体实现要向外部用户提供显式调用接口时所必须满足的约束以及契约。
步骤二,通过状态管理器中的比较函数比较新版本和旧版本的逻辑表示模型,识别两个版本中相对应的成员变量和语法结构,返回版本间的相关性详细描述,结合构件间交互与通信信息,确定当前待演化的构件旧版本中应被获取并转换到新版本的待转换构件状态信息;
所述构件间交互与通信信息,是指由构件运行平台中构件管理模块根据构件的合成、交互和通信机制,所分析得到的运行时构件依赖和交互的信息。由于本发明所提供的方法只关注软件系统动态演化时构件运行时状态的获取和转换,因此将此构件间交互与通信信息视为由外部提供。
所述构件状态信息,如果待演化构件当前并未处于运行态,则所需确定的构件状态信息完全位于组成该构件的类成员变量中,包括变量的类型和值;如果待演化构件处于运行态,则所需确定的构件状态信息包括组成该构件的类成员变量的类型和值,以及指向已打开文件、其他构件对象或外部函数库的引用。
所述待演化构件处于运行态,为一时间维度上的概念,是指在应用执行过程中,可判定的动态演化等价点,即应用系统受影响的部分能够到达某个一致状态,构件新旧版本可等价转换,在该动态演化等价点上,新构件版本能合理并安全地继续执行旧构件版本留下的任务。
所述已打开文件,是指在应用执行过程中,需访问的可操作文件。
所述其他构件对象,是指在应用执行过程中,待演化构件中的实例对象直接或间接引用到的构件实例对象。
所述外部函数库,是指在应用执行过程中,源代码不可直接访问,只能通过函数接口进行交互的预定义函数所在的位置。
所述确定当前待演化的构件旧版本中应被获取并转换到新版本的构件状态信息的方法,具体如下:
第一步,根据旧版本和新版本的逻辑表示模型,由状态管理器中的比较函数比较对应关系,识别在两个构件版本中有相应含义的类成员变量,并检测构件新版本中已知的重构,形成版本间相关性详细描述;
第二步,分析旧版本和新版本间相关性详细描述信息,推导构件新旧版本中变量、类、属性和操作之间的对应关系;
第三步,根据分析结果,确定两个构件版本中需要进行运行时状态信息提取和转换的成员变量和接口引用信息。
步骤三,依据步骤二中分析和确定所得到的结果,结合步骤一中所得到的构件外部接口的定义和实现方法信息,修改构件新版本的逻辑表示模型,增加接口方法,从旧版本中导出并保存构件旧版本的运行时状态信息;
步骤四,修改构件新版本的逻辑表示模型,结合步骤一中所得到的构件外部接口的定义和实现方法信息,以及步骤二中得到的待转换构件状态信息,增加接口方法,由构件新版本导入并转换所获取的状态信息;
所述由构件新版本导入并转换所获取的状态信息的方法,具体如下:
第一步,判断待转换构件状态信息,如果存在值需保持一致的成员变量,增加状态映射函数,由该函数读取并导入相应的类成员变量的变量值,并将该变量值映射到构件新版本中对应的类成员变量;
第二步,判断待转换构件状态信息,如果存在类型已发生改变的类成员变量,增加类型转换函数,由该函数读取并导入相应类成员变量的类型值,进行类型转换,并映射到构件新版本中对应的类成员变量;
第三步,判断待转换构件状态信息,如果存在方法调用和接口引用信息,需要保持指向已打开文件、其他构件对象或外部函数库的引用信息,增加引用重定向函数,由该函数读取并导入该引用信息,并传递给构件新版本中对应的接口,经由重定向操作,使构件新版本中的对应接口复制构件旧版本中原有的指向已打开文件、其他构件对象或外部函数库的引用。
步骤五,基于已修改的构件新版本逻辑表示模型,重新生成构件新版本的源代码,具体实现从旧构件版本导出、导入并转换状态信息到新构件版本的功能。
与现有技术相比,本发明具有以下优点和积极效果:(1)自动化特征:本发明实现了构件运行时状态的相关分析、确定、获取和转换步骤,所需要的人为干预步骤仅仅是需由程序员提供构件新旧版本的实现,具备运行时构件状态自动获取和转换的能力;(2)易用性和高效性:构件化软件系统的维护开发人员在构建动态演化支持系统时,只需简单增加方法的外部接口,就可直接使用本发明方法,高效地实现软件动态演化中构件运行时状态的获取和转换;(3)可扩展性:本发明适用于面向构件的编程范型,通过简单增加分布性和移动性特征,就可以推广扩展到分布式环境和移动计算系统。
附图说明
图1为本发明工作流程图;
图2为本发明确定构件状态信息的工作流程图;
图3为本发明构件状态信息导入和转换的工作流程图。
具体实施方式
下面结合附图给出本发明实施例的详细说明和具体实施方式:本实施例以本发明所述及技术方案为前提进行实施,给出详细的实施方式和过程,但本发明的保护范围不限于以下实施例。
本实施例涉及的构件旧版本(Component_v1)和构件新版本(Component_v2),都基于Java技术实现,每个构件的实现主要包含一些Java类(Java Class),也包含用于为终端用户提供某些功能所必须的其他资源,包括HTML文件、帮助文档、图标。因此,在运行时,构件实例即为对象的一个集合。每个构件都包含一个默认的代码构造解析器(Code Parser),用于辅助生成构件的逻辑表示元模型(Mata Model)。在软件运行中,每一个构件都对应着一个构件容器(Container),包含关于构件的各种信息,如构件标识、构件类型、所能提供的服务接口、交互信息、通信机制、状态管理,构件状态的获取和转换操作具体由构件容器中的状态管理器(State Manager)进行管理,构件状态比较和分析方法实现都包含于该状态管理器中。
如图1所示,本实施例包括以下步骤:
(1)基于Java元模型的表示方法,通过代码构造解析器的主方法codeParser()分别解析构件旧版本Component_v1和新版本Component_v2的实现源代码、构件规约以及成员类之间的业务逻辑。代码构造解析器解析得到分别与新旧版本构件内部结构逻辑表示相对应的Java元模型,Java元模型为有向图结构表示,Java元模型包含类、属性(包括变量属性、对象类型和返回类型)、操作(包括方法调用、接口引用)之间的交互和联系。另外,代码构造解析器还分别解析得到新旧版本的构件接口的定义和实现方法信息,构件接口的定义和实现方法信息包含构件作为一个整体实现要向外部用户提供显式调用接口时所必须满足的约束(Pre-conditions、Post-conditions)以及契约;
(2)如图2所示,通过状态管理器中的比较函数Compare()比较构件旧版本Component_v1和新版本Component_v2的逻辑表示的Java元模型之间的对应关系,识别两个构件版本中有相应含义的类实例变量,有相应含义的类实例变量是指联系类信息,为Component_v2中的类实例变量的名字和类型相同于Component_v1中的某个类实例变量,并检测新构件的重构信息,重构信息是指差别类信息,为新版本Component_v2中类、属性、操作之间的交互和联系发生的改变。最后,以XML文件形式,保存上述所得到的构件之间的对应关系和重构信息;
(3)如图2所示,对于步骤(2)所得到的XML文件进行相关性分析,通过DOM解析器解析该XML文件,得到构件旧版本Component_v1和新版本Component_v2中成员变量、类、属性和操作之间的对应关系,并建立对应关系表结构,该对应关系表结构显式指明在新版本Component_v2中的某个类实例变量的属性与旧版本Component_v1中的类实例变量完全相同,或是名字相同但变量类型发生了改变,或者该类实例变量已被删除,同时,该对应关系表结构还给出旧版本Component_v1中可能的方法调用和接口引用信息,并指明在新版本Component_v2是否有对应的引用。
(4)如图2所示,推导并分析步骤(3)中对应关系表结构所包含的语义信息,确定需进行状态信息提取和转换的待转换构件状态信息,旧版本Component_v1中包含的3类待转换构件状态信息,包括:
a)需保持一致的类实例变量,即与旧版本Component_v1中的类实例变量的属性完全相同的类实例变量,且其变量值在新版本Component_v2中需要保证运行时一致性;
b)类型已发生改变的实例变量,即旧版本Component_v1中的类实例变量在新版本Component_v2中有与其相对应的类实例变量,但新版本C中变量的类型已经发生了改变;
c)方法调用和接口引用信息,包括在旧版本Component_v1中指向已打开可操作文件的引用接口,对其他构件实例对象进行的直接或间接方法调用,以及对外部预定义函数库进行调用的函数接口。
所述方法调用和接口引用信息与软件系统的运行时相关,并不能完全通过静态推导,而是需要进行动态获取,由构件运行平台中的构件管理器根据旧版本Component_v1构件的合成、交互和通信机制,分析得到的构件运行时依赖和交互信息。
(5)根据在步骤(4)中所确定的待转换状态信息,结合步骤(1)中所得到的新版本Component_v2构件的接口定义和实现方法信息,修改新版本Component_v2的逻辑表示Java元模型,增加接口方法getState(),从旧版本Component_v1中导出所有类型的待转换状态信息,并分别进行保存。
(6)如图3所示,判断待转换构件状态信息,如果存在需保持一致的类实例变量,则在步骤(5)的基础上进一步修改新版本Component_v2的逻辑表示Java元模型,增加状态值映射函数valueTransfer(),由该函数读取通过接口方法getState()导出的旧版本Component_v1中需保持一致的实例变量的属性和变量值,并将在新版本Component_v2被初始化时将该变量值赋给新版本Component_v2中对应的同名类实例变量。
(7)如图3所示,判断待转换构件状态信息,如果存在类型已发生改变的实例变量,则在步骤(5)的基础上进一步修改新版本Component_v2的逻辑表示Java元模型,增加类型转换函数typeTransfer(),由该函数读取通过接口方法getState()导出的在新版本Component_v2中变量类型已发生改变的实例变量信息,进行类型转换,并将在新版本Component_v2被初始化时使旧版本Component_v1中的原有类型的变量属性转换成新的类型。类型转换函数typeTransfer被构造后可重用,并可进行递归调用,即先调用typeTransfer1,然后再调用typeTransfer2,据此形成新的类型转换函数typeTransfer’(typeTransfer1→typeTransfer2),可预定义常用的类型转换函数,并由用户在使用过程中定制。
(8)如图3所示,判断待转换构件状态信息,如果存在方法调用和接口引用信息,则在步骤(5)的基础上进一步修改新版本Component_v2的逻辑表示Java元模型,增加引用重定向函数refRedirect(),由该函数读取通过接口方法getState()导出的在旧版本Component_v1中所包含的运行时外部调用和引用信息,经由重定向操作,将在新版本Component_v2被初始化时使新版本Component_v2中的对应接口复制旧版本Component_v1中原有的指向已打开可操作文件的引用接口,对其他构件实例对象进行的直接或间接方法调用,以及对外部预定义函数库进行调用的函数接口。
(9)根据已修改的新版本Component_v2逻辑表示Java元模型,结合构件新版本Component_v2的原有代码实现,生成新的新版本Component_v2构件源代码,此时的新版本Component_v2构件已经具体实现从旧版本Component_v1中导出构件运行时状态信息,并进行导入和转换操作。将新的新版本Component_v2部署到构件运行时平台,并在合适的软件演化时机进行初始化,实现了构件运行时状态的获取和转换。
与现有技术相比,本实施例能够在软件构件有新版本实现时,仅由软件维护人员提供构件新版本和旧版本的Java实现,无需其他干预,本实施例所述方法就能实现运行时构件状态信息的获取和转换,可以省去在获取和转换构件状态信息时所需要的停止软件运行、静态获取状态信息、软件重启等所需要的停机时间并避免软件的运行时中断。同时,本实施例中由所述运行时构件状态获取和转换方法生成的构件运行时状态的导入、导出和转换方法实现,避免由维护人员手动判断状态信息并生成状态获取和转换方法所导致的时间消耗和可能造成的错误。通过增加分布协同和环境依赖特性,也实际上可用于实现分布和移动环境下的软件构件运行时状态获取和转换。
Claims (10)
1.一种软件动态演化中构件运行时状态的获取和转换方法,其特征在于,包括以下步骤:
步骤一,通过代码构造解析器解析构件新版本和旧版本的实现源代码、构件规约以及成员类之间的业务逻辑,分别建立构件内部结构的逻辑表示模型,并解析构件外部接口的定义和实现方法信息;
步骤二,通过状态管理器中的比较函数比较新版本和旧版本的逻辑表示模型,识别两个版本中相对应的成员变量和语法结构,返回版本间的相关性详细描述,结合构件间交互与通信信息,确定当前待演化的构件旧版本中应被获取并转换到新版本的待转换构件状态信息;
步骤三,依据步骤二中分析和确定所得到的结果,结合步骤一中所得到的构件外部接口的定义和实现方法信息,修改构件新版本的逻辑表示模型,增加接口方法,从旧版本中导出并保存构件旧版本的运行时状态信息;
步骤四,修改构件新版本的逻辑表示模型,结合步骤一中所得到的构件外部接口的定义和实现方法信息,以及步骤二中得到的待转换构件状态信息,增加接口方法,由构件新版本导入并转换所获取的状态信息;
步骤五,基于已修改的构件新版本逻辑表示模型,重新生成构件新版本的源代码,具体实现从旧构件版本导出、导入并转换状态信息到新构件版本的功能。
2.根据权利要求1所述的软件动态演化中构件运行时状态的获取和转换方法,其特征是,步骤二中,所述逻辑表示模型为有向图结构表示,包含类、属性、操作之间的交互和联系;
所述构件外部接口的定义和实现方法信息,是指构件作为一个整体实现要向外部用户提供显式调用接口时所必须满足的约束以及契约。
3.根据权利要求1所述的软件动态演化中构件运行时状态的获取和转换方法,其特征是,步骤二中,所述确定当前待演化的构件旧版本中应被获取并转换到新版本的构件状态信息的方法,具体如下:
第一步,根据旧版本和新版本的逻辑表示模型,由状态管理器中的比较函数比较对应关系,识别在两个构件版本中有相应含义的类成员变量,并检测构件新版本中已知的重构,形成版本间相关性详细描述;
第二步,分析旧版本和新版本间相关性详细描述信息,推导构件新旧版本中变量、类、属性和操作之间的对应关系;
第三步,根据分析结果,确定两个构件版本中需要进行运行时状态信息提取和转换的成员变量和接口引用信息。
4.根据权利要求1所述的软件动态演化中构件运行时状态的获取和转换方法,其特征是,步骤二中,所述构件间交互与通信信息,是指由构件运行平台中构件管理模块根据构件的合成、交互和通信机制,所分析得到的运行时构件依赖和交互的信息。
5.根据权利要求1所述的软件动态演化中构件运行时状态的获取和转换方法,其特征是,步骤二中,所述构件状态信息,如果待演化构件当前并未处于运行态,则所需确定的构件状态信息完全位于组成该构件的类成员变量中,包括变量的类型和值;如果待演化构件处于运行态,则所需确定的构件状态信息包括组成该构件的类成员变量的类型和值,以及指向已打开文件、其他构件对象或外部函数库的引用。
6.根据权利要求5所述的软件动态演化中构件运行时状态的获取和转换方法,其特征是,所述已打开文件,是指在应用执行过程中,需访问的可操作文件。
7.根据权利要求5所述的软件动态演化中构件运行时状态的获取和转换方法,其特征是,所述其他构件对象,是指在应用执行过程中,待演化构件中的实例对象直接或间接引用到的构件实例对象。
8.根据权利要求5所述的软件动态演化中构件运行时状态的获取和转换方法,其特征是,所述外部函数库,是指在应用执行过程中,源代码不可直接访问,只能通过函数接口进行交互的预定义函数所在的位置。
9.根据权利要求5所述的软件动态演化中构件运行时状态的获取和转换方法,其特征是,所述待演化构件处于运行态,为一时间维度上的概念,是指在应用执行过程中,可判定的动态演化等价点,即应用系统受影响的部分能够到达某个一致状态,构件新旧版本可等价转换,在该动态演化等价点上,新构件版本能合理并安全地继续执行旧构件版本留下的任务。
10.根据权利要求1所述的软件动态演化中构件运行时状态的获取和转换方法,其特征是,步骤四中,所述由构件新版本导入并转换所获取的状态信息的方法,具体如下:
第一步,判断待转换构件状态信息,如果存在值需保持一致的成员变量,增加状态映射函数,由该函数读取并导入相应的类成员变量的变量值,并将该变量值映射到构件新版本中对应的类成员变量;
第二步,判断待转换构件状态信息,如果存在类型已发生改变的类成员变量,增加类型转换函数,由该函数读取并导入相应类成员变量的类型值,进行类型转换,并映射到构件新版本中对应的类成员变量;
第三步,判断待转换构件状态信息,如果存在方法调用和接口引用信息,需要保持指向已打开文件、其他构件对象或外部函数库的引用信息,增加引用重定向函数,由该函数读取并导入该引用信息,并传递给构件新版本中对应的接口,经由重定向操作,使构件新版本中的对应接口复制构件旧版本中原有的指向已打开文件、其他构件对象或外部函数库的引用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101707683A CN100492290C (zh) | 2007-11-22 | 2007-11-22 | 软件动态演化中构件运行时状态的获取和转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101707683A CN100492290C (zh) | 2007-11-22 | 2007-11-22 | 软件动态演化中构件运行时状态的获取和转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101162428A true CN101162428A (zh) | 2008-04-16 |
CN100492290C CN100492290C (zh) | 2009-05-27 |
Family
ID=39297356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101707683A Expired - Fee Related CN100492290C (zh) | 2007-11-22 | 2007-11-22 | 软件动态演化中构件运行时状态的获取和转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100492290C (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655797A (zh) * | 2009-09-25 | 2010-02-24 | 深圳创维数字技术股份有限公司 | 含有描述信息的构件及函数库的构建方法 |
CN101794224A (zh) * | 2010-02-26 | 2010-08-04 | 中国人民解放军国防科学技术大学 | 一种基于性质规约模式的软件运行时性质监测方法 |
CN101963913A (zh) * | 2010-11-04 | 2011-02-02 | 南京大学 | 一种基于事务的构件在线演化方法 |
CN102023886A (zh) * | 2010-12-27 | 2011-04-20 | 北京像素软件科技股份有限公司 | 一种对软件中的数据进行资源差异处理的方法 |
CN102129404A (zh) * | 2010-01-14 | 2011-07-20 | 微软公司 | 用于代码分析的代码元素的选择性加载 |
CN102508667A (zh) * | 2011-11-11 | 2012-06-20 | 迈普通信技术股份有限公司 | 一种使用第三方的JavaScript库的方法和装置 |
CN101739297B (zh) * | 2010-01-21 | 2012-10-03 | 上海交通大学 | 普适服务动态更新中服务对象状态转移系统及其方法 |
CN102880493A (zh) * | 2012-09-25 | 2013-01-16 | 南京大学 | 一种构件间动态依赖关系的自动分析方法 |
CN103164325A (zh) * | 2011-12-09 | 2013-06-19 | 北京新媒传信科技有限公司 | 一种控制编码的方法和装置 |
CN104317556A (zh) * | 2014-10-22 | 2015-01-28 | 华为技术有限公司 | 一种流式应用升级方法、主控节点及流计算系统 |
WO2016151425A1 (en) * | 2015-03-20 | 2016-09-29 | International Business Machines Corporation | Automated identification of complex transformations and generation of subscriptions for data replication |
CN102129404B (zh) * | 2010-01-14 | 2016-12-14 | 微软技术许可有限责任公司 | 用于代码分析的代码元素的选择性加载方法和系统 |
CN106708547A (zh) * | 2015-11-12 | 2017-05-24 | 卓望数码技术(深圳)有限公司 | 一种服务插件管理方法和系统 |
CN107861725A (zh) * | 2017-11-22 | 2018-03-30 | 北京酷我科技有限公司 | 一种iOS数据反向自动解析策略 |
CN108804078A (zh) * | 2018-04-20 | 2018-11-13 | 杭州电子科技大学 | 一种基于模板的软件设计模式重构方法 |
CN112328256A (zh) * | 2020-11-19 | 2021-02-05 | 四川创智联恒科技有限公司 | 一种自动生成结构体解析器源代码的方法 |
CN114020323A (zh) * | 2022-01-04 | 2022-02-08 | 阿里云计算有限公司 | 模型处理方法、代码获得方法、装置以及电子设备 |
WO2022156056A1 (zh) * | 2021-01-19 | 2022-07-28 | 南京大学 | 基于程序源码切片重组的软件动态更新热补丁合成方法 |
-
2007
- 2007-11-22 CN CNB2007101707683A patent/CN100492290C/zh not_active Expired - Fee Related
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655797A (zh) * | 2009-09-25 | 2010-02-24 | 深圳创维数字技术股份有限公司 | 含有描述信息的构件及函数库的构建方法 |
CN102129404A (zh) * | 2010-01-14 | 2011-07-20 | 微软公司 | 用于代码分析的代码元素的选择性加载 |
US9710355B2 (en) | 2010-01-14 | 2017-07-18 | Microsoft Technology Licensing, Llc | Selective loading of code elements for code analysis |
CN102129404B (zh) * | 2010-01-14 | 2016-12-14 | 微软技术许可有限责任公司 | 用于代码分析的代码元素的选择性加载方法和系统 |
CN101739297B (zh) * | 2010-01-21 | 2012-10-03 | 上海交通大学 | 普适服务动态更新中服务对象状态转移系统及其方法 |
CN101794224A (zh) * | 2010-02-26 | 2010-08-04 | 中国人民解放军国防科学技术大学 | 一种基于性质规约模式的软件运行时性质监测方法 |
CN101794224B (zh) * | 2010-02-26 | 2013-11-13 | 中国人民解放军国防科学技术大学 | 一种基于性质规约模式的软件运行时性质监测方法 |
CN101963913A (zh) * | 2010-11-04 | 2011-02-02 | 南京大学 | 一种基于事务的构件在线演化方法 |
CN102023886A (zh) * | 2010-12-27 | 2011-04-20 | 北京像素软件科技股份有限公司 | 一种对软件中的数据进行资源差异处理的方法 |
CN102023886B (zh) * | 2010-12-27 | 2013-01-09 | 北京像素软件科技股份有限公司 | 一种对软件中的数据进行资源差异处理的方法 |
CN102508667A (zh) * | 2011-11-11 | 2012-06-20 | 迈普通信技术股份有限公司 | 一种使用第三方的JavaScript库的方法和装置 |
CN102508667B (zh) * | 2011-11-11 | 2014-06-18 | 迈普通信技术股份有限公司 | 一种使用第三方的JavaScript库的方法和装置 |
CN103164325B (zh) * | 2011-12-09 | 2016-04-06 | 北京新媒传信科技有限公司 | 一种控制编码的方法和装置 |
CN103164325A (zh) * | 2011-12-09 | 2013-06-19 | 北京新媒传信科技有限公司 | 一种控制编码的方法和装置 |
CN102880493B (zh) * | 2012-09-25 | 2015-04-08 | 南京大学 | 一种构件间动态依赖关系的自动分析方法 |
CN102880493A (zh) * | 2012-09-25 | 2013-01-16 | 南京大学 | 一种构件间动态依赖关系的自动分析方法 |
CN104317556A (zh) * | 2014-10-22 | 2015-01-28 | 华为技术有限公司 | 一种流式应用升级方法、主控节点及流计算系统 |
CN104317556B (zh) * | 2014-10-22 | 2018-03-16 | 华为技术有限公司 | 一种流式应用升级方法、主控节点及流计算系统 |
US10785272B2 (en) | 2014-10-22 | 2020-09-22 | Huawei Technologies Co., Ltd. | Streaming application upgrading method, master node, and stream computing system |
US10216819B2 (en) | 2015-03-20 | 2019-02-26 | International Business Machines Corporation | Automated identification of complex transformations and generation of subscriptions for data replication |
WO2016151425A1 (en) * | 2015-03-20 | 2016-09-29 | International Business Machines Corporation | Automated identification of complex transformations and generation of subscriptions for data replication |
CN107430594A (zh) * | 2015-03-20 | 2017-12-01 | 国际商业机器公司 | 复杂转换的自动标识和用于数据复制的订阅的生成 |
CN107430594B (zh) * | 2015-03-20 | 2021-06-25 | 国际商业机器公司 | 复杂转换的自动标识和用于数据复制的订阅的生成 |
US10210233B2 (en) | 2015-03-20 | 2019-02-19 | International Business Machines Corporation | Automated identification of complex transformations and generation of subscriptions for data replication |
CN106708547A (zh) * | 2015-11-12 | 2017-05-24 | 卓望数码技术(深圳)有限公司 | 一种服务插件管理方法和系统 |
CN107861725A (zh) * | 2017-11-22 | 2018-03-30 | 北京酷我科技有限公司 | 一种iOS数据反向自动解析策略 |
CN108804078A (zh) * | 2018-04-20 | 2018-11-13 | 杭州电子科技大学 | 一种基于模板的软件设计模式重构方法 |
CN112328256A (zh) * | 2020-11-19 | 2021-02-05 | 四川创智联恒科技有限公司 | 一种自动生成结构体解析器源代码的方法 |
CN112328256B (zh) * | 2020-11-19 | 2023-04-25 | 四川创智联恒科技有限公司 | 一种自动生成结构体解析器源代码的方法 |
WO2022156056A1 (zh) * | 2021-01-19 | 2022-07-28 | 南京大学 | 基于程序源码切片重组的软件动态更新热补丁合成方法 |
CN114020323A (zh) * | 2022-01-04 | 2022-02-08 | 阿里云计算有限公司 | 模型处理方法、代码获得方法、装置以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100492290C (zh) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100492290C (zh) | 软件动态演化中构件运行时状态的获取和转换方法 | |
US8959477B2 (en) | Scripting language for business applications | |
Ziadi et al. | Software product line engineering with the UML: Deriving products | |
US8813024B2 (en) | System and a method for cross-platform porting of business application and making them contextually-aware on target platforms | |
Seifzadeh et al. | A survey of dynamic software updating | |
Lee et al. | COMO: a UML-based component development methodology | |
US8495559B2 (en) | Extracting platform independent models from composite applications | |
Röttger et al. | Cqml+: Enhancements to cqml | |
US20150169319A1 (en) | Verification of backward compatibility of software components | |
US10114861B2 (en) | Expandable ad hoc domain specific query for system management | |
US20150220308A1 (en) | Model-based development | |
CN103164249A (zh) | 用于脚本语言编译器的扩展机制 | |
CN102542382A (zh) | 业务规则的管理方法和装置 | |
Mor et al. | Elastically ruling the cloud: Specifying application's behavior in federated clouds | |
CN101393528B (zh) | 软件动态更新中确定实例对象转换次序的方法及系统 | |
EP1936494B1 (en) | Method for runtime execution of one or more tasks defined in a workflow process language | |
CN112685020A (zh) | 动态创建服务接口的方法、装置、电子设备及存储介质 | |
US9836282B2 (en) | Separation of concerns between information technology services models | |
JPWO2011118003A1 (ja) | ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 | |
Rosenmüller et al. | Tailor-made data management for embedded systems: A case study on Berkeley DB | |
Bose | Component based development | |
US11275567B1 (en) | Making communication interfaces pluggable by using mechanisms comprising of exchange/broker for communication interfaces | |
CN113987337A (zh) | 基于组件化动态编排的搜索方法、系统、设备及存储介质 | |
US20100088671A1 (en) | Project scopes for configuration based computer application projects | |
US11803786B2 (en) | Enterprise integration platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090527 Termination date: 20121122 |