一種從hp-ux平臺(tái)至k-ux平臺(tái)的c/c++應(yīng)用遷移工具的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)信息技術(shù)領(lǐng)域,具體地說是一種實(shí)用性強(qiáng)、從HP-UX平臺(tái)至K-UX平臺(tái)的C/C++應(yīng)用迀移工具。
【背景技術(shù)】
[0002]高端服務(wù)器承載著行業(yè)的核心應(yīng)用,廣泛應(yīng)用在金融、電信、能源、交通等關(guān)鍵應(yīng)用領(lǐng)域,其運(yùn)行直接關(guān)系到社會(huì)、經(jīng)濟(jì)的正常運(yùn)轉(zhuǎn)。長期以來,由于缺乏高端服務(wù)器設(shè)計(jì)和制造能力,我國高端服務(wù)器市場一直為國外廠商把持,其中IBM長期占據(jù)50%以上的國內(nèi)市場。在科技部“十一五”863計(jì)劃的支持下,相關(guān)部門、科研單位積極配合,浪潮已成功研制了 32路高端容錯(cuò)計(jì)算機(jī)系統(tǒng),可用度達(dá)到99.999%,系統(tǒng)聯(lián)機(jī)事務(wù)處理能力達(dá)到世界先進(jìn)水平。為提高信息化建設(shè)重大裝備的自主可控性,越來越多的信息系統(tǒng)傾向于使用自主產(chǎn)品。因此,在未來較長的一段時(shí)間內(nèi),國內(nèi)的IT系統(tǒng)建設(shè)面臨著國產(chǎn)化的變革,具體的信息系統(tǒng)建設(shè)與實(shí)施層面,體現(xiàn)為越來越多的跨平臺(tái)迀移工作,其中大量的迀移是從IBM HP-UX平臺(tái)至浪潮K-UX平臺(tái)。
[0003]C/C++源代碼是構(gòu)建基礎(chǔ)軟件的基石,例如數(shù)據(jù)庫軟件、交易中間件、消息中間件、系統(tǒng)工具均基于c/c++語言開發(fā)。且在金融、電信、高性能計(jì)算等領(lǐng)域的核心應(yīng)用軟件也大量使用C/C++語言開發(fā)。由于異構(gòu)服務(wù)器平臺(tái)的CPU指令集差異、操作系統(tǒng)差異以及編譯器差異,使得異構(gòu)服務(wù)器平臺(tái)C/C++源代碼移植技術(shù)難度高,工作量大。如何降低移植難度,減少工作量,是進(jìn)行異構(gòu)服務(wù)器平臺(tái)下C/C++源代碼移植需要解決的關(guān)鍵問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種實(shí)用性強(qiáng)、從HP-UX平臺(tái)至K-UX平臺(tái)的C/C++應(yīng)用迀移工具。
[0005]一種從HP-UX平臺(tái)至K-UX平臺(tái)的C/C++應(yīng)用迀移工具,該工具的結(jié)構(gòu)包括:
迀移工具軟件架構(gòu),該架構(gòu)基于JAVA語言實(shí)現(xiàn),所述架構(gòu)包括交互模塊、均與交互模塊相連接的操作系統(tǒng)差異識(shí)別模塊、編譯器差異識(shí)別模塊和修改建議模塊,操作系統(tǒng)差異識(shí)別模塊、編譯器差異識(shí)別模塊均連接上述修改建議模塊;其中:
所述交互模塊用于人機(jī)交互,把手動(dòng)設(shè)定的信息發(fā)送至操作系統(tǒng)差異識(shí)別模塊、編譯器差異識(shí)別模塊,接收操作系統(tǒng)差異識(shí)別模塊、編譯器差異識(shí)別模塊發(fā)送來的實(shí)時(shí)掃描信息并顯示界面上,交互模塊接收修改建議模塊發(fā)送的失配源代碼、失配源代碼位置以及修改建議信息,并將其顯示在界面上,同時(shí)允許用戶在界面上針對(duì)每項(xiàng)失配的修改建議進(jìn)行確認(rèn)和對(duì)每項(xiàng)失配進(jìn)行手動(dòng)修改,經(jīng)用戶確認(rèn)后將確認(rèn)信息與修改信息發(fā)送至修改建議模塊;
操作系統(tǒng)差異識(shí)別模塊接收交互模塊發(fā)送的手動(dòng)設(shè)定信息,根據(jù)手動(dòng)設(shè)定信息及HP-UX與K-UX操作系統(tǒng)差異規(guī)則,掃描程序源代碼與makefile文件,識(shí)別程序源代碼與makefile文件中因源平臺(tái)與目標(biāo)平臺(tái)的操作系統(tǒng)差異造成的失配,生成自動(dòng)修改建議,并將所有的失配信息及修改建議發(fā)送至修改建議模塊,同時(shí),操作系統(tǒng)差異識(shí)別模塊會(huì)將掃描狀態(tài)實(shí)時(shí)發(fā)送至交互模塊供交互模塊實(shí)時(shí)顯示;
編譯器差異識(shí)別模塊接收交互模塊發(fā)送的手動(dòng)設(shè)定信息,根據(jù)手動(dòng)設(shè)定信息及HP-UXC編譯器與K-UX C編譯器差異規(guī)則,掃描程序源代碼與makefile文件,識(shí)別程序源代碼與makefile文件中因源平臺(tái)與目標(biāo)平臺(tái)的編譯器差異造成的失配,生成自動(dòng)修改建議,并將所有的失配信息及修改建議發(fā)送至修改建議模塊,同時(shí),編譯器差異識(shí)別模塊會(huì)將掃描狀態(tài)實(shí)時(shí)發(fā)送至交互模塊供交互模塊實(shí)時(shí)顯示;
修改建議模塊接收操作系統(tǒng)差異識(shí)別模塊與編譯器差異識(shí)別模塊發(fā)送的失配信息及自動(dòng)修改建議后,將失配源代碼、失配源代碼位置以及修改建議整理成表格輸出至交互模塊,并在收到交互發(fā)送的確認(rèn)信息與手動(dòng)修改信息后,使這些修改結(jié)果在程序源代碼和makefile文件中生效,并保存新的源代碼和makefile文件。
[0006]所述交互模塊第以輸入/輸出端口與操作系統(tǒng)差異識(shí)別模塊第一輸入/輸出端口連接,交互模塊第二輸入/輸出端口與編譯器差異識(shí)別模塊第一輸入/輸出端口連接,交互模塊第三輸入/輸出端口與修改建議模塊第三輸入/輸出端口連接,操作系統(tǒng)差異識(shí)別模塊第二輸入/輸出端口與修改建議模塊第一輸入/輸出端口連接,編譯器差異識(shí)別模塊第二輸入/輸出端口與修改建議模塊第二輸入/輸出端口連接。
[0007]所述操作系統(tǒng)差異識(shí)別模塊、編譯器差異識(shí)別模塊均生成相應(yīng)規(guī)則,其具體規(guī)則為:
HP-UX與K-UX操作系統(tǒng)差異規(guī)則,包括進(jìn)程處理規(guī)則、文件操作規(guī)則、指針操作規(guī)則,其是操作系統(tǒng)差異識(shí)別模塊掃描程序源代碼與makefile文件時(shí),識(shí)別由HP-UX平臺(tái)與K-UX平臺(tái)的操作系統(tǒng)差異造成的代碼失配的判定標(biāo)準(zhǔn),以及提供失配代碼修改建議的依據(jù);HP-UX C編譯器與K-UX C編譯器差異規(guī)則,該規(guī)則是編譯器差異識(shí)別模塊掃描程序源代碼與makefile文件時(shí),識(shí)別由HP-UX平臺(tái)與K-UX平臺(tái)的編譯器差異造成的代碼失配的判定標(biāo)準(zhǔn),以及提供失配代碼修改建議的依據(jù)。
[0008]所述HP-UX與K-UX操作系統(tǒng)差異規(guī)則中,進(jìn)程處理規(guī)則用于識(shí)別因HP-UX平臺(tái)與K-UX平臺(tái)進(jìn)程處理差異導(dǎo)致運(yùn)行結(jié)果錯(cuò)誤的失配源代碼,同時(shí)操作系統(tǒng)差異識(shí)別模塊根據(jù)進(jìn)程處理規(guī)則生成進(jìn)程處理失配源代碼修改建議;文件操作規(guī)則用于識(shí)別因HP-UX平臺(tái)與K-UX平臺(tái)文件操作差異導(dǎo)致運(yùn)行結(jié)果錯(cuò)誤的失配源代碼,同時(shí)操作系統(tǒng)差異識(shí)別模塊可根據(jù)文件操作規(guī)則生成文件操作失配源代碼修改建議;指針操作規(guī)則用于識(shí)別因HP-UX平臺(tái)與K-UX平臺(tái)指針操作差異導(dǎo)致運(yùn)行結(jié)果錯(cuò)誤的失配源代碼,同時(shí)操作系統(tǒng)差異識(shí)別模塊根據(jù)指針操作規(guī)則生成指針操作失配源代碼修改建議。
[0009]本發(fā)明的一種從HP-UX平臺(tái)至K-UX平臺(tái)的C/C++應(yīng)用迀移工具,具有以下優(yōu)點(diǎn): 該發(fā)明的一種從HP-UX平臺(tái)至K-UX平臺(tái)的C/C++應(yīng)用迀移工具根據(jù)C/C++源代碼在不同CPU指令集、操作系統(tǒng)以及編譯器環(huán)境下的不同的處理方式,歸納一套規(guī)則,能夠識(shí)別因平臺(tái)差異造成的源代碼、makefile文件與操作系統(tǒng)、編譯器的失配,提出修改建議,最終輸出掃描結(jié)果,掃描結(jié)果中體現(xiàn)所有識(shí)別到的源代碼失配及失配修改建議,同時(shí)可在掃描結(jié)果中作出手動(dòng)修改,手動(dòng)修改結(jié)果可在源代碼與makefile文件中生效,大大降低C/C++程序迀移工作量,提高應(yīng)用程序迀移工作的效率,降低迀移難度;實(shí)用性強(qiáng),易于推廣。
【附圖說明】
[0010]附圖1為本發(fā)明的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0011]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
[0012]本發(fā)明提出一種從HP-UX平臺(tái)至K-UX平臺(tái)的C/C++應(yīng)用迀移工具,可跨平臺(tái)安裝,通過掃描源代碼與makefile文件,根據(jù)建立的HP-UX平臺(tái)與K-UX平臺(tái)操作系統(tǒng)差異規(guī)則、編譯器差異規(guī)則,識(shí)別源代碼、makefile文件與操作系統(tǒng)、編譯器的失配,提出修改建議,最終輸出掃描結(jié)果,掃描結(jié)果中體現(xiàn)所有識(shí)別到的源代碼失配及失配修改建議,同時(shí)可在掃描結(jié)果中作出手動(dòng)修改,手動(dòng)修改結(jié)果可在源代碼與makefile文件中生效。如附圖1所示,該工具的結(jié)構(gòu)包括:
迀移工具軟件架構(gòu),該架構(gòu)基于JAVA語言實(shí)現(xiàn),所述架構(gòu)包括交互模塊、均與交互模塊相連接的操作系統(tǒng)差異識(shí)別模塊、編譯器差異識(shí)別模塊和修改建議模塊,操作系統(tǒng)差異識(shí)別模塊、編譯器差異識(shí)別模塊均連接上述修改建議模塊;其中:
所述交互模塊用于人機(jī)交互,把手動(dòng)設(shè)定的信息發(fā)送至操作系統(tǒng)差異識(shí)別模塊、編譯器差異識(shí)別模塊,接收操作系統(tǒng)差異識(shí)別模塊、編譯器差異識(shí)別模塊發(fā)送來的實(shí)時(shí)掃描信息并顯示界面上,交互模塊接收修改建議模塊發(fā)送的失配源代碼、失配源代碼位置以及修改建議信息,并將其顯示在界面上,同時(shí)允許用戶在界面上針對(duì)每項(xiàng)失配的修改建議進(jìn)行確認(rèn)和對(duì)每項(xiàng)失配進(jìn)行手動(dòng)修改,經(jīng)用戶確認(rèn)后將確認(rèn)信息與修改信息發(fā)送至修改建議模塊;
操作系統(tǒng)差異識(shí)別模塊接收交互模塊發(fā)送的手動(dòng)設(shè)定信息,根據(jù)手動(dòng)設(shè)定信息及HP-UX與K-UX操作系統(tǒng)差異規(guī)則,掃描程序源代碼與makefile文件,識(shí)別程序源代碼與makefile文件中因源平臺(tái)與目標(biāo)平臺(tái)的操作系統(tǒng)差異造成的失配,生成自動(dòng)修改建議,并將所有的失配信息及修改建議發(fā)送至修改建議模塊,同時(shí),操作系統(tǒng)差異識(shí)別模塊會(huì)將掃描狀態(tài)實(shí)時(shí)發(fā)送至交互模塊供交互模塊實(shí)時(shí)顯示;
編譯器差異識(shí)別模塊接收交互模塊發(fā)送的手動(dòng)設(shè)定信息,根據(jù)手動(dòng)設(shè)定信息及HP-UXC編譯器與K-UX C編譯器差異規(guī)則,掃描程序源代碼與makefile文件,識(shí)別程序源代碼與makefile文件中因源平臺(tái)與目標(biāo)平臺(tái)的編譯器差異造成的失配,生成自動(dòng)修改建議,并將所有的失配信息及修改建議發(fā)送至修改建議模塊,同時(shí),編譯器差異識(shí)別模塊會(huì)將掃描狀態(tài)實(shí)時(shí)發(fā)送至交互模塊供交互模塊實(shí)時(shí)顯示;
修改建議模塊接收操作系統(tǒng)差異識(shí)別模塊與編譯器差異識(shí)別模塊發(fā)送的失配信息及自動(dòng)修改建議后,將失配源代碼、失配源代碼位置以及修改建議整理成表格輸出至交互模塊,并在收到交互發(fā)送的確認(rèn)信息與手動(dòng)修改信息后,使這些修改結(jié)果在程序源代碼和makefile文件中生效,并保存新的源代碼和makefile文件。
[0013]所述交互模塊第以輸入/輸出端口與操作系統(tǒng)差異識(shí)別模塊第一輸入/輸出端口連接,交互模塊第二輸入/輸出端口與編譯器差異識(shí)別模塊第一輸入/輸出端口連接,交互模塊第三輸入/輸出端口與修改建議模塊第三輸入/輸出端口連接,操作系統(tǒng)差異識(shí)別模塊第二輸入/輸出端口與修改建議模塊第一輸入/輸出端口連接,編譯器差異識(shí)別模塊第二輸入/輸出端口與修