項(xiàng)目管理系統(tǒng)的技術(shù)方案演化介紹
項(xiàng)目管理系統(tǒng)的技術(shù)方案演化介紹
對(duì)于傳統(tǒng)的項(xiàng)目管理業(yè)務(wù),很多公司采用了基于Java語言的J2EE架構(gòu)來開發(fā)應(yīng)用,這是由于在20多年之前,Java語言的很多面向?qū)ο筇匦耘c大量的開源類庫,可以降低很多項(xiàng)目管理業(yè)務(wù)開發(fā)和運(yùn)維的成本,當(dāng)時(shí)除了C/C++外,只有Java是個(gè)更好的開發(fā)語言,考慮到項(xiàng)目管理業(yè)務(wù)軟件的生命周期通常在數(shù)十年之上,因此現(xiàn)存的大量項(xiàng)目管理業(yè)務(wù)軟件很多都是基于Java開發(fā)的。
另外有一類項(xiàng)目管理業(yè)務(wù),它使用的人數(shù)很少,通常只需要總部的幾個(gè)到幾十個(gè)人使用,并不需要下發(fā)給下級(jí)公司更多人和用戶使用。比如像項(xiàng)目資金管理運(yùn)營系統(tǒng),這類系統(tǒng)業(yè)務(wù)邏輯與計(jì)算異常復(fù)雜,軟件產(chǎn)品的生命周期通常也是在幾十年以上,從一套技術(shù)架構(gòu)遷移到另外一套更先進(jìn)的技術(shù)架構(gòu)之下,通常也需要數(shù)十年時(shí)間。自從1998年微軟推出了Windows DNA架構(gòu),很多類似業(yè)務(wù)都采用了該架構(gòu)下的Visual Basic 6.0編程語言開發(fā)了項(xiàng)目管理軟件產(chǎn)品,業(yè)務(wù)人員可以很容易的編寫出業(yè)務(wù)邏輯與計(jì)算異常復(fù)雜的程序。相比較于Java及其架構(gòu),VB 6.0可以簡化復(fù)雜業(yè)務(wù)邏輯與計(jì)算場景的開發(fā)、調(diào)試與投產(chǎn)使用。但是基于這類技術(shù)開發(fā)出的產(chǎn)品通常在分布式環(huán)境下應(yīng)用不是太好,并發(fā)性能上會(huì)存在瓶頸,無法通過增加機(jī)器來簡單擴(kuò)展計(jì)算容量和支持更多的分布式用戶使用。
自2001年開始,微軟開始推出.NET平臺(tái)及與其配套的C#語言。在一開始的幾年時(shí)間里,由于開源類庫的缺乏、語言應(yīng)用場景的不足,發(fā)展初期不敵Java及J2EE架構(gòu)在管理軟件應(yīng)用系統(tǒng)的發(fā)展。但是,C#語言相比較于Java語言更年輕和更先進(jìn),同時(shí)在設(shè)計(jì)C#語言的時(shí)候,綜合考慮了Java語言的優(yōu)點(diǎn)和不足,在Java語言的基礎(chǔ)上做了進(jìn)一步的發(fā)展。經(jīng)過微軟十幾年的商業(yè)支持,配套技術(shù)、架構(gòu)、方案、平臺(tái)、開發(fā)環(huán)境也越來越成熟和專業(yè),也出現(xiàn)了大量開源類庫可以使用,一般J2EE有的技術(shù)方案,.NET平臺(tái)也有了同類開源類庫,同時(shí)C#語言和.NET平臺(tái)也有大量Java和J2EE沒有的語言特性與開源類庫?;贑#開發(fā)的軟件系統(tǒng)還可以更好地與C/C++開發(fā)的底層應(yīng)用更好地集成。同時(shí)微軟在研發(fā)C#語言和.NET平臺(tái)的過程中,也借鑒了其在Visual Basic 6.0與Windows DNA架構(gòu)上的成功經(jīng)驗(yàn)與不足。因此現(xiàn)在進(jìn)行應(yīng)用軟件包括項(xiàng)目管理信息系統(tǒng)技術(shù)選型的時(shí)候,基于C#的.NET平臺(tái)則是最佳選擇。基于Java的J2EE已經(jīng)不在是最好的選擇,Java語言除了在移動(dòng)開發(fā)上由Google Android發(fā)起的技術(shù)進(jìn)步以外,最近10年在項(xiàng)目管理信息系統(tǒng)領(lǐng)域基本上沒有什么大的進(jìn)步,已有的一些優(yōu)勢也已經(jīng)完全被C#及.NET平臺(tái)超越。只不過很多遺留系統(tǒng)在20年之前開始建設(shè)的時(shí)候因?yàn)檫x擇了Java及J2EE而不能短期之內(nèi)全部完成技術(shù)更新升級(jí)替代之外,新立項(xiàng)建設(shè)的項(xiàng)目管理類應(yīng)用軟件一般不會(huì)再選擇Java及J2EE。
雖然C#及.NET平臺(tái)也已經(jīng)支持Linux/Unix操作系統(tǒng)環(huán)境,但是畢竟它們的發(fā)展初期都是和Windows平臺(tái)綁定的,支持Linux/Unix操作系統(tǒng)環(huán)境也支持最近幾年的事情,從商業(yè)應(yīng)用角度來說,還需要一點(diǎn)時(shí)間去完善與成熟。因此,在對(duì)Windows License費(fèi)用不是太敏感的金融領(lǐng)域,使用Windows Server系列操作系統(tǒng)并在此之上使用C#與.NET平臺(tái)則是最具性價(jià)比與敏捷的解決方案。如果由于其它特殊原因非要在Linux/Unix環(huán)境下運(yùn)營生產(chǎn)環(huán)境的話,最佳實(shí)踐則是使用C#/.NET core/Windows Server研究、開發(fā)和運(yùn)營測試和模擬環(huán)境,使用敏捷方案從事創(chuàng)新型比較高的研發(fā)活動(dòng),系統(tǒng)穩(wěn)定版本并從技術(shù)和業(yè)務(wù)上驗(yàn)收通過之后,再以此版本為基礎(chǔ)移植到Linux下,基于.NET Core開發(fā)的基本上可以很容易一直到Linux平臺(tái)下,可能一些細(xì)節(jié)上需要調(diào)試和優(yōu)化處理。
項(xiàng)目管理平臺(tái)可通過策略編輯語言,可以只需要幾行代碼就可以計(jì)算復(fù)雜的公式分析計(jì)算指標(biāo),并且這些代碼不需要考慮計(jì)算機(jī)內(nèi)存管理、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)等復(fù)雜的編程技術(shù)要求,只需要使用基本的數(shù)學(xué)計(jì)算與統(tǒng)計(jì)調(diào)用即可以完成復(fù)雜的項(xiàng)目管理技術(shù)指標(biāo)分析與策略編寫。而如果直接使用C/C++/C#/Java來實(shí)現(xiàn)類似邏輯,代碼行數(shù)可能會(huì)翻10倍,同時(shí)還要考慮更多計(jì)算機(jī)技術(shù)的復(fù)雜細(xì)節(jié),增加了項(xiàng)目管理人員的技術(shù)要求。因此項(xiàng)目管理平臺(tái)對(duì)策略編輯語言的支持可以方便高級(jí)項(xiàng)目經(jīng)理自己編輯、編寫、優(yōu)化、組合復(fù)雜的自動(dòng)化管理策略,而不再全部依賴于計(jì)算機(jī)程序員。
項(xiàng)目管理平臺(tái)可以內(nèi)置的策略編輯語言綜合利用了項(xiàng)目時(shí)間序列數(shù)據(jù)的特性設(shè)計(jì)了內(nèi)存管理與算法優(yōu)化,支持常見的基礎(chǔ)數(shù)學(xué)計(jì)算、統(tǒng)計(jì)計(jì)算與邏輯判斷分支,比如:加減乘除、方差、均線等,可以簡單快速地針對(duì)曲線形態(tài)、趨勢和波動(dòng)性進(jìn)行編程。這樣內(nèi)置的策略編輯語言可以以低成本快速敏捷地滿足項(xiàng)目經(jīng)理80%的項(xiàng)目管理策略編寫需求,而剩下的20%策略編寫需求可能需要更底層語言的支持。
由于項(xiàng)目管理平臺(tái)本身是C#語言編寫的,同時(shí)C#也是世界上最強(qiáng)大的語言之一,項(xiàng)目管理平臺(tái)支持C#來編寫策略模型則提供了技術(shù)兜底解決方案,保證了項(xiàng)目管理平臺(tái)可以實(shí)現(xiàn)所有計(jì)算機(jī)能夠?qū)崿F(xiàn)的管理策略模型的編寫,同時(shí)C#語言也只世界上擁有開源類庫最多的語言之一(另一個(gè)是Java),基本上可以包羅萬象地實(shí)現(xiàn)其它所有語言能夠?qū)崿F(xiàn)的高級(jí)功能(底層硬件驅(qū)動(dòng)除外)。
由于項(xiàng)目管理平臺(tái)的商業(yè)智能BI支持需要考慮下一步向人工智能神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展,利用最新的機(jī)器學(xué)習(xí)成果來開發(fā)項(xiàng)目管理分析策略,因此支持Python語言也是需要考慮的一個(gè)需求,現(xiàn)有的大量人工智能機(jī)器學(xué)習(xí)開源算法庫是基于Python寫的,同時(shí)Python也有大量的數(shù)學(xué)開源庫。項(xiàng)目管理平臺(tái)與Python的集成有很多中方法,最簡單的松耦合集成直接將數(shù)據(jù)和參數(shù)以數(shù)組或文件的形式傳送給Python程序,并調(diào)用執(zhí)行Python程序,再將其計(jì)算結(jié)果以數(shù)組或文件的方式傳回給項(xiàng)目管理平臺(tái)。后續(xù)進(jìn)一步的集成可以在共用項(xiàng)目時(shí)間序列數(shù)據(jù)的基礎(chǔ)上緊耦合集成C#語言與Python,在單個(gè)函數(shù)調(diào)用上增加C#語言與Python的互相調(diào)用,因?yàn)榫o耦合集成需要考慮更多的不同語言之間的數(shù)據(jù)內(nèi)存交互、內(nèi)存管理、對(duì)象生命周期等技術(shù)細(xì)節(jié)問題,相對(duì)前者風(fēng)險(xiǎn)會(huì)更高一點(diǎn),需要后續(xù)根據(jù)幾個(gè)實(shí)際項(xiàng)目管理策略案例再深入研究和實(shí)現(xiàn)。
(0) Comments