[发明专利]用于构造基于组件的应用的可执行代码的方法和系统有效
申请号: | 201010179551.0 | 申请日: | 2010-05-17 |
公开(公告)号: | CN101887365A | 公开(公告)日: | 2010-11-17 |
发明(设计)人: | 亨里克·安德雷德;布格拉·格迪克;侯锐;王华勇;吴坤龙 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 周少杰 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 构造 基于 组件 应用 可执行 代码 方法 系统 | ||
技术领域
本发明一般涉及基于组件的(component-based)代码生成,并且更具体地涉及用于构造基于组件的应用的增量(incremental)方法。
背景技术
基于组件的应用是使用多个互连的功能组件或操作器(operator)建立(build)的应用。在该环境中,组件是小块代码,其执行如数据转换、过滤、注释、分类、解复用和划分的一般操作。两个组件可以通过流相互作用,所述流携带潜在无限量的数据。组件可能根据指定序列以预定方式对数据操作以产生一些输出。
典型地,这些组件的每一个根据涉及代码生成和代码编译的两步处理建立。代码生成步骤包括从应用的陈述性描述生成可执行代码。具体地,假定特定类型的组件,代码生成涉及调用对应于该类型的代码生成器,并且为其提供用于组件的合适的配置参数。代码生成器然后为组件生成通用编程语言(例如,C或C++编程语言)的专用代码。代码编译步骤包括将专用代码编译为可在目标平台(例如,基于因特尔x86指令组架构的计算机)上执行的对象代码。通用建立工具典型地用于协调生成和/或编译步骤。这种建立工具的一些示例是“make”、“gnumake”、“nmake”、“jam”和“ant”工具。
在一些情况下,包含基于组件的应用的陈述性描述的文件可以改变。结果,与应用相关联的一些组件可以改变,使用于那些组件的代码的重新生成成为必要。依赖于时间戳数据来确定代码是否已经改变的传统建立工具不但重新生成所有组件的代码,而且还完全重新编译重新生成的代码。因此,甚至为实际上还没有改变(例如,还没有改变它们处理数据的方式)的组件也重新生成和重新编译代码,仅仅因为它们的时间戳比对象代码的更新。
发明内容
用于为基于组件的应用构造可执行代码的方法的一个实施例包括:接收编译用于基于组件的应用的源代码的请求,其中请求识别源代码,并且其中源代码包括多个源代码组件,源代码组件的每一个实现应用的不同组件;以及执行用于每个源代码组件的一系列步骤,其中所述一系列步骤包括:为源代码组件导出导出的签名;检索对应于用于源代码组件的可执行代码的当前可用实例的存储的签名;比较导出的签名和存储的签名;当导出的签名不匹配存储的签名时,将源代码组件编译为可执行代码;以及当导出的签名匹配存储的签名时,从库中获得用于源代码组件的可执行代码。
附图说明
参照实施例可以进行本发明的更具体描述,使得可以详细理解本发明的上述特征的方式,一些实施例在附图中图示。然而,要注意附图仅图示本发明的典型实施例,因此不认为限制其范围,由于本发明可以允许其它等效的实施例。
图1是图示可以适于从本发明受益的第一示例性基于组件的应用的框图;
图2是图示根据本发明的编译器的一个实施例的框图;
图3是图示根据本发明的用于生成基于组件的应用的代码的方法的一个实施例的流程图;
图4是图示可以适于从本发明受益的第二示例性基于组件的应用的框图;以及
图5是使用通用计算设备实现的代码生成方法的高级框图。
具体实施方式
在一个实施例中,本发明是用于增量地构造基于组件的应用的方法和装置。本发明的实施例采用基于元数据的签名技术,以避免不必要地重新生成和重新编译可执行组件代码。具体地,元数据用于描述定义应用的每个组件的配置。签名从该用于每个组件的元数据计算,并且与为组件生成的可执行代码相关联地保持在代码库中。在代码生成时,搜索代码库,并且如果在那里发现存储的代码对应于要为其生成新的代码的组件,则检索对应于存储的代码的签名。如果存储的代码的签名不同于为新的代码计算的签名,则根据新的代码重新生成用于该组件的代码。如果签名没有不同,则不重新生成用于该组件的代码。
图1是图示可以适于从本发明受益的第一示例性基于组件的应用100的框图。具体地,示例性基于组件的应用100是流处理应用;然而,要理解本发明基本上可以用在任何类型的基于组件的应用开发架构中,并且不限于流处理应用。
应用100包括通过流相互连接的多个组件或“操作器”1021-102n(下文中统称为“操作器102”)。操作器102配置为对进入流数据104进行操作,并且将操作的结果输出(也可以以流的形式)到数据库106。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010179551.0/2.html,转载请声明来源钻瓜专利网。