2010-05-13 42 views
3

此問題涉及遷移項目。目前,遺留應用程序在ColdFusion中,我們希望將其遷移到Spring Framework。應用程序遷移期間要記住的事項:ColdFusion到Spring

所以我的主要問題是:

  1. 什麼是要牢記,同時考慮遷移項目的事情?
  2. 在考慮從ColdFusion遷移到Spring Framework時,我需要記住哪些具體的東西?
  3. ColdFusion如何與Spring框架結合起來?
  4. 在開始從ColdFusion到Spring的移植項目之前,您會推薦哪些資源來讓自己熟悉?

我知道有些人可能會認爲這是非常開放式的問題,但是這是我第一次遷移的項目,我從未有過遷移項目的經驗,什麼尋找在這裏一些有益的指導。

+0

讓我知道如果這個問題需要一些更新...這可能使這更有價值。 – Rachel 2010-05-13 22:05:38

+0

爲什麼遷移到第一個地方?如何升級到CF9並使用現代CF MVC框架將過時代碼重構爲CFC? – Henry 2010-05-13 22:09:29

+0

遷移是一項需求,因此需要完成遷移。 – Rachel 2010-05-13 22:13:33

回答

6

移民項目充滿危險。

的第一個危險是,「這是昂貴和痛苦的。讓我們重建 這一切從頭開始,並實施任何新的想法或功能 任何營銷/管理/程序員使用結構化方法 等等等等...... 「這條道路通向滅亡,因爲

1)其工作的一個開放式的量,

2)沒有人真正知道什麼舊系統確實(看到的規格最近還好嗎?),因此你會最終重新發現舊系統在新系統上線後的狀況,對組織的能力做出巨大的痛苦和損害新的軟件。通常實際上,新系統從來沒有趕上舊系統,所以重寫會死亡。

做這種遷移的正確方法是:堅持只留下功能,並轉換現有系統。沒有新的好東西,功能,方法。

這種堅持有其自身的麻煩:組織在遷移發生的窗口期間經常必須爲了生存的原因做出一些更改 。

爲了處理這個問題,您確實需要一個自動遷移工具,以便「無功能更改」規則僅在實際轉換過程中適用,因此越短越好。對於遷移工具的開發人員來說,花一些時間來構建它並徹底測試轉換工具是可行的;同時,該組織可以通過其常規方法來增強遺留系統。當遷移工具準備就緒時....拖動觸發器,轉換代碼,修補問題並測試結果系統的有效性。

系統遷移後,您可以考慮徹底重組或重新塑造,並知道基本功能仍然健全。

無論您選擇什麼樣的自動遷移工具,您都需要注意它生成的代碼在新環境中可以維護。許多轉換器真正實現了一對一的轉換,所得到的代碼最終被遺留在新的條形碼中,或者在幼稚的COBOL到Java轉換後被笑稱爲「JOBOL」。轉換工具必須精通它如何映射語言結構。(您可能想閱讀關於PL/1 To Java Conversion的SO討論)。

你最大的麻煩很可能是「測試」。目前的系統有完整的功能測試,對吧?呃,你有沒有什麼功能測試?您將如何驗證新系統是否實現了舊系統正確執行的操作?

這裏的正確答案是構造就其輸入輸出行爲而言測試遺留系統,並將這些測試應用於遺留系統和遷移遺留系統。這是很多工作,沒有人願意這樣做,更不用說爲此付費了。這是遷移失敗的第二種方式。

發生的最後一件事情是,管理層悲慘地欠缺和承擔了做這項工作所需的工作。通常與開發團隊的談判是這樣的:

Mgr: How long to do this? 
Team: Two years...? 
Mgr: BZZZT! Wrong answer, try again... 
Team: One year? 
Mgr: BZZT! .. 
Team: (Gulping) 6 months? 
Mgr: OK, get started. 

你注意到這裏的工作沒有實際的討論。

在6個月結束時,指尖將開始。經理:「我問過你們,你們說6個月......」

你正在艱難地騎。仔細準備。堅持讓人們真正列出所有問題,並且他們產生可信的估計。如果你第一次進行移民,你沒有好的基礎來做出這樣的估計;如果它是該組織的第一次,它沒有任何基礎來判斷是否有任何估計是正確的。

(全面披露:我有偏見我一直樓宇自動化遷移工具,22年檢查出B2 migration。)

5

多少是取決於你的CFML應用程序的現有結構。雖然有一個可用於CFML的框架能夠與Spring的IoC部分相當接近,但我懷疑您正在考慮從非結構化CFML應用程序遷移到Spring Web,而不僅僅是IoC部分 - 而且您正在考慮從一種語言到另一種語言:CFML到Java。

所以現實情況是:這不是一個遷移項目,而是一個徹底的改寫。

我知道你說過「遷移是一項要求」(原文如此),但我認爲你需要更多地解釋這是什麼推動的,所以人們可以提供比「你瘋了,不要做!」 - 因爲在您提供的信息很少的情況下,沒有人能夠提供有用的答案。

對於這種遷移的機制,IF你有一個使用ColdSpring一個結構良好,MVC CFML應用程序,你可以計件逐件遷移模式,Java和使用Spring IoC的,而不是ColdSpring對於bean管理(你希望Spring成爲ColdSpring的父bean工廠,這樣你的CFML代碼的其餘部分仍然可以訪問新遷移的bean)。一旦將所有模型(和數據訪問層)遷移到Java/Spring後,您就可以將所有的.cfm視圖頁面轉換爲.jsp視圖頁面,並重寫所有的CFML控制器/監聽器(取決於哪個CFML框架正在使用)到Spring Web處理程序。

這很可能是一個巨大的項目 - 這是假設一個結構良好的MVC框架驅動的CFML應用程序,它已經在使用ColdSpring來管理模型。

我敢打賭,你開始的是一個非結構化的混亂(這就是爲什麼有一個指令遷移),在這種情況下,你的大型項目變得更加龐大。

相關問題