歡迎您光臨本站 註冊首頁

用GPL工具實現COBOL到Java自動移植

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

在Publicitas有限公司運作NACA項目期間,4百萬行的COBOL代碼被自動轉換(移植)成Java代碼。該公司宣布因此每年節約的現金有3百萬歐元之多,並決定以GPL許可協議發布該項目工具。

Didier Durand和Pierre-Jean Ditscheid上周在Jazoon09大會上做了一個有關於此的演講,這一講稿可以從這裡在線訪問。

Pierre描述了這一“代碼轉換編譯器”的架構:

  • 運用若干層cache來最大限度提升這一老應用程序新Java版本的性能。通過這些catch,轉換成Java代碼的事務處理和批處理比原先在大機上運行的Cobol程序性能更優。
  • 通過對所有程序可變結構(COBOL的COMMAREA)進行預分配來進一步提升性能,並且將運行過程中垃圾回收對系統的性能影響降至最低。
  • 採用Java強大的面向對象架構,使編譯器所做的所有控制效果最大化。例如,每個老COBOL程序變成了一個Java類,該類的存在性是在編譯時檢查的而非在運行時檢查。當應用程序如我們這個有4百萬行代碼、並且你想在一個像我們這樣的持續集成架構中追蹤每種類型錯誤時,這就非常有用了。
  • 與Eclipse IDE緊密集成,給開發者提供更高的開發效率:我們甚至開發了一個插件,以方便在Eclipse中調式並編輯老COBOL程序。
  • 老COBOL程序和新轉換的Java類之間逐行對應。普通開發者不會迷失:他們獲得的Java應用程序與原始COBOL版本的結構非常相似。
  • 對IBM JVM和SUN JVM都提供支持,以便進行存儲過程轉換。
  • 支持大機系統和Linux之間完全不同的字符集和編碼模式(EBCDIC)。支持數據排序的所有可能性。
  • 在Java里能夠完全管理多層級COBOL數據結構,不依賴於Java所使用的UTF編碼(每字元2位元組)。
  • 對應用程序的透明封裝框架(JVM、Apache Tomcat等等)
  • 等等……

Didier還強調了這個項目的關鍵方面:

  • 經濟動因是核心驅動力:從一個價值數百萬(瑞士法郎或歐元)的大機環境移植到極為便宜且靈活的基於Intel的伺服器(Linux)。可觀的成本節約(我們的案例是每年3百萬歐元)使得項目遠在其結束之前就可快速自我融資(auto-financing)。對於我們這樣的公司來說,開源的主要優點就是價格非常低廉。
  • 人們的技術遷移:我們認為我們的項目會獲得成功,因為我們很早就向人們說明了他們最終將會找到一個有意思的新工作。正是這一點推動他們全力以赴投入項目!
  • iso功能性是必備的:以這種方式遷移避免了對最終目標的成月討論。但最主要的是它允許100%的自動遷移,這是代碼轉換過程中的一個關鍵的質量因素。
  • 不要大改,而要採取很多可逆步驟:全部遷移包含有成千上萬新步驟,如果你試圖大躍進,則可能永遠也無法成功。朝著目標持續增長的過程是更好的方式。其好處是:當出現問題時,小步驟所產生的本地問題也更小。用這種方式,你的用戶更容易接受!我們的經驗就是如此……

該工具可從這裡下載,其發行物包括:

目前我們交付的工具(v1.0)是zip包形式:

  • Doc:一套解釋工具及類庫細節的文檔。你們對這一文檔、及其錯誤的有關反饋等等將有助於我們對其做出改進。
  • NacaTrans(GPL許可——大約83000行代碼及690個Java類):我們的代碼轉換器使我們可以100%自動把4百萬行用COBOL編寫的PUB 2000 應用程序代碼轉換成Java程序代碼。這完全建立在編譯器技術之上。NacaTrans分析初始COBOL程序的結構(假定100%正確),把它們變成中間的xml結構,然後產生最終Java代碼。所產生的Java代碼調用了大量函數並使用了運行時類庫NacaRT(該類庫以來於JLib)的許多類。這些新的Java源代碼經過非常仔細的設計:每行Cobol有意對應了一行Java。其目標是使代碼看起來盡量像原始的COBOL代碼,以便於原始開發者/掌握了原始Java程序結構的維護者進行維護。我們無法保證Cobol語法的所有變種都得到支持。但是我們的4百萬行代碼及在其他外部應用上的測試證明了當前NacaTrans的覆蓋面已經非常高了。我們希望你能把我們不支持的有效構造反饋回來,以幫助我們提高這一覆蓋面。
  • NacaRT和Jlib(LGPL許可——大約153000行代碼及890個Java類):這是兩個運行時類庫,為應用程序提供了所有運行時事務服務。它們模仿了類似IBM CICS的經典事務監視器的所有功能。同時,它們還支持所有COBOL構造(例如,擁有多種數據表現的COMMARÈA結構,特殊數據格式如COMP-X的管理等等。
  • NacaRTTest(GPL許可):這是一個測試套件,讓我們可以在一套參考COBOL構造上來測試代碼轉換器的對應輸出。這是我們校驗部分代碼轉換演算法的方式。對於NACA的新用戶來說,這裡是最佳起點:當其運行在你的底層架構上時,你會對你安裝的這個包相當有信心。

由於COBOL有50多年的遺留資產以及大約2500億行Cobol代碼,看起來類似的工具還有相當大的市場。

查看英文原文:COBOL to Java Automatic Migration with GPL'ed Tools(責任編輯:A6)



[火星人 ] 用GPL工具實現COBOL到Java自動移植已經有1391次圍觀

http://coctec.com/docs/enterprise/show-post-73143.html