[發明專利]用于構造基于組件的應用的可執行代碼的方法和系統有效
| 申請號: | 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.szxzyx.cn/pat/books/201010179551.0/2.html,轉載請聲明來源鉆瓜專利網。





