——軟件業大規模敏捷定製時代的到來
一、軟件業呼喚大規模敏捷定製時代的到來
19世紀發生在製造業的各國的工業革命,通過標準化的生產形成社會化的分工,促使製造業從手工作坊走向了社會化大生產的時代;社會化大生產極大的豐富了商品的供應,降低了成本,由此帶來了人類文明的一次飛躍!
隨着全社會生產水平的提升,標準化的通用型產品越來越無法滿足個性化需求,人們期望能快速便捷的得到“符合自己品味”的商品,正是需求的變革要求製造業由大規模標準化生產轉向大規模敏捷定製。所謂大規模敏捷定製,是強調快速敏捷的滿足客戶個性化的需求,同時保持大規模生產的低成本的優勢。
信息技術和生產技術的高速發展爲實現大規模敏捷定製提供了可能性。於是在20世紀後期,製造業實現了由大規模標準化生產走向大規模敏捷定製的飛躍。最典型的案例當屬:DELL模式,DELL公司充分利用信息技術實現了大規模敏捷定製,從而一舉奠定了全球PC霸主的地位!
互聯網時代的到來,軟件業也必須向製造業一樣,實現大規模的敏捷定製。基於互聯網的應用必然會給軟件業帶來深刻影響!縱觀人類工業化的進程,我們注意到,一個社會化的網絡及在此之上的面向全社會的應用,必然對社會進步產生全面推動,並帶來一個新的巨大產業。例如,交通網的形成和個人交通工具的發展,加快了人員流動,併產生了汽車工業;電力網的形成和家用電器的發展加快了能源傳遞,併產生了家電工業;通信網的形成和個人通信技術的發展,加快了信息交換,並形成了電信業。今天全球互聯網的形成和網絡化軟件技術的發展促進了通信與計算的融合,人類需要隨時隨地的處理大量的信息。軟件業必然面臨巨大的機遇和挑戰:1)人類期望隨時隨地的獲得便捷的資源,由此而產生的對於計算的需求量、效率要求極大增加, 軟件業必須以更高的效率生產出更多的更高質量的軟件產品;2)人類期望軟件滿足個性化需求,並適應未來商業環境及IT技術的變遷的變遷。以最低的開發及部署成本實現敏捷的信息化方案!總之,人類期望軟件如同製造業一樣,實現大規模的敏捷定製!
二、脆弱的軟件體系無法實現變革的夢想
具有諷刺意味的是,信息技術協助製造業實現了由大規模標準化生產走向大規模敏捷定製的飛躍。作爲信息技術產業的主體的軟件業卻仍然停留在前工業時代!軟件傳統的生產方式強調以過程爲中心設計的功能模塊,經過需求、分析、設計、編碼、測試、系統部署等完成軟件的開發和部署。
圖表 1傳統軟件的生產流程圖
數據來源:互聯網實驗室
研究表明:“一個軟件的60%-70%的功能是可以被複用的。”然而由於受制於技術因素,軟件的大規模複用尚未實現,“不斷的重複發明輪子!”這正是對當前軟件生產現狀的最恰當的描述!因爲無法大規模複用,軟件必須從編碼做起, 導致現有的軟件體系非常脆弱:集中體現在兩個方面:
1) 僵化的軟件結構無法適應變化
從代碼級做起的軟件,強調功能實現,天生具有龐大、僵化無法適應變化的缺點。以企業級應用解決方案爲例,傳統的應用軟件產品往往由以下兩種典型的交付模式:
l 以標準化的軟件交付客戶
編碼式的軟件開發和服務的成本很高,應用軟件軟件廠商爲了降低開發和服務成本,通常會大肆宣揚自己的產品包含“行業最佳業務實踐”,並以“管理專家”的身份對客戶的管理模式強行變革,以適應這種標準化的“行業最佳業務實踐”。然而每個企業所處的競爭環境千差萬別,企業的戰略、核心競爭力亦有所不同,企業只有保持自己鮮明的個性,並對環境的變化保持高度的柔性,隨時調整管理策略,纔是生存和發展的關鍵。試問那裏有這種“放之四海而皆準”的管理真理能解決所有企業的任何時刻問題?所謂的行業最佳實踐是在一定程度上以抹煞企業特徵和不適應未來發展需要爲代價而實現的。
l 爲客戶從代碼級開發定製的軟件系統
定製開發的軟件系統在一定程度上滿足了客戶管理個性化的需求,但卻很難適應未來商業環境和IT技術變化。當今的商業環境瞬息萬變,IT技術一日千里,傳統應用系統體系結構以模塊化爲主體,實現客戶需求,其擴充和複用的能力都較差,對模塊進行應用重組的困難很大。定製的系統往往能滿足客戶在某個時點的需求,卻無法適應未來的變化。
編碼式的軟件,無論是採取何種方式,都無法真正實現“敏捷定製” !
2)落後的生產方式帶來的低效率和低質量
無法複用的結果導致了軟件的生產必須從代碼級做起,不進行有效的分工,而這恰恰類似於傳統行業在19世紀的作坊式的手工單件生產!然而軟件發展到今天已經變的異常複雜,航天飛機有4000萬行代碼、空間站是10億行代碼。如此複雜的軟件需要從代碼級做起,生產效率如何提高?又如何保證軟件的高質量?
由此可見:傳統的編碼式的軟件體系無法實現軟件大規模敏捷定製的夢想!有沒有新的軟件體系可以實現大規模敏捷定製?
答案是:有!
那就是面向構件的技術所帶來的新的軟件體系!
三、面向構件的軟件體系承載夢想
現有的軟件體系之所以無法實現大規模敏捷定製,是因爲沒有實現軟件複用。軟件複用被認爲是解決軟件體系問題的有效途徑,面向構件的技術自誕生起,就因承載着軟件業實現軟件複用的夢想而備受關注。在過去幾十年雖然主流的開發思想幾經沿革,軟件業對面向構件技術的追求從未間斷!然而由於由於技術水平限制,軟件的複用仍停留在函數複用或者類複用的階段,無法實現整個軟件體系的徹底變革!
互聯時代構件技術得以突飛猛進的發展,實現整個軟件體系的變革成爲可能。面向構件的軟件體系,將帶給軟件行業震撼性革命。這個新的體系包括兩個方面的內容:面向構件的軟件結構體系和麪向構件的軟件生產體系。新的體系在這兩個方面掀起變革。
1)靈活的構件集成的軟件結構
l 應用系統的基本單位,“信息原子”——構件
應用軟件將會劃分成爲 “不可再分”的部件——構件,構件將成爲組成應用系統的基本單元,同時構件也是軟件複用的基本單元。構件具有高集成性和低偶合的特點,因此構件組合而成的應用系統將會更加有機靈活。
l 軟件將以嚴謹的邏輯空間的形式存在
構件是未來組成應用系統的基本元素,由於軟件可以以構件化的形式得以存儲和複用,構件可以進行有機的組合,軟件將因此而產生由構件組合而成的具有嚴謹的分層級的邏輯空間形式的存在形態。
圖表 2 新的企業級應用軟件結構體系
2)組裝式的協同生產帶來生產效率革命性提升
面向構件的軟件生產的主要流程分爲:需求分析及領域分析、框架的設計及選擇、構件選擇、裝配集成、測試和系統部署等幾個步驟。
圖表3 面向構件的軟件生產流程
數據來源:互聯網實驗室
l 需求分析和領域分析
領域分析活動不同於通常對特定系統進行的需求分析,它是對特定應用領域中已有的系統、預期的需求變化和技術演化進行分析,目的是標識出整個領域中通用的框架。以實現軟件在框架層次的複用。要評估領域分析的必要性和可行性。在適當的時機進行領域分析或者採用現有的分析成果。
l 框架設計及選擇
一個框架是一個可重用的設計,它規定了應用的體系結構,闡明瞭整個設計、協作構件之間的依賴關係、責任分配和控制流程,表現爲一組抽象類以及其實例之間的協作方法。
l 構件的選擇及測試
從構件庫構件提取或從構件市場獲取構件,也可能要重新開發一些新構件,這些擴展或新開發的構件,必須在構造應用工具上進行測試,保證構件功能及接口規範的實現。這一步比傳統的單元測試要快和容易。
l 裝配和集成
構件的裝配和集成是把構件裝配成模塊或打成包,在模塊或包中都可以有自已的定製描述符。
l 系統測試
按照前期的設計要求對經構件集成的系統進行測試,此階段相對於傳統的軟件開發過程將會大大簡化。
l 應用系統的部署
應用系統開發只關注應用邏輯和數據定義,從而使整個應用系統的完成變得簡單。完成應用邏輯和數據定義編程工作後,對應用服務器及客戶按標準的XML文件配置和部署, 完成了整個應用系統的部署。
由此可見,面向構件的軟件生產通過構件集成的方式實現了軟件的有效複用,避免從代碼級做起的重複開發帶的低效率和低質量。
面向構件的生產具有以下特點:
l 標準化
構件之間的集成是建立在構件的開發都基於一定的標準之上的,共同的生產標準是構件化生產的一大特點。
l 知識複用
知識通過構件的形式得以儲存複用,降低了重複勞動量!
分工協同
複雜的軟件系統可以通過組合構件的方式實現,並行的方式將提高開發效率。通過社會化的分工協同,將使軟件產業的生產效率得以革命性提升!
l 高效率
標準化、知識複用、分工都帶來了軟件生產效率的革命性提升!
l 高質量
構件經過反覆測試,保證了高的質量,由構件集成的應用系統具有高的質量和穩定性。
組裝式的協同生產將帶來軟件生產效率、質量的革命性提升!
總結:人類計算無處不在的理想對軟件業提出了“大規模敏捷定製”的要求,舊的軟件體系岌岌可危。面向構件的新的軟件體系,實現了靈活的構件集成的軟件結構和高效的組裝式的協同生產,新的軟件體系必然爲軟件業帶來大規模敏捷定製的時代!
四、新體系的領導者推動夢想實現
正如微軟帶來了桌面式應用的時代,BEA成爲分佈式計算時代的英雄一樣,面向構件的軟件體系的建立,需要一些具有高瞻遠矚的專業廠商推動產業革命。國外的一些大型廠商如:IBM、Wakesoft、M7等公司都推出了相應的產品,值得慶幸的是中國的優秀的企業正站在同國外巨頭相同的起跑線上,其中的典型代表是:普元
上海普元的代表產品是:普元EOS使用構件化、可視化的技術提供了面向構件的互聯網應用基礎平臺,致力於爲面向構件的應用軟件體系提供基礎運行、開發、維護的平臺。實現應用軟件的大規模敏捷定製。
2003年4月6日,在上海市科委主持下進行了“EOS構件集成平臺”的專家鑑定會,與會專家聽取了項目組的研究報告、技術報告,觀看了系統演示,經過認真討論,一致認爲: EOS構件集成平臺採用了XML、構件及其複用、J2EE等先進技術路線和基於自動機的構件集成思想,整體技術達到當前國際先進水平。
在上海土地局的項目招標中,在系統選型過程中,上海市土地局和上海市互聯網經濟諮詢中心聯合進行了嚴格的招投標和系統原型驗證過程。最終,普元以其領先的技術一舉擊敗BEA等國際巨頭,在競爭中拔得了頭籌。2004年1月8日,基於普元EOS開發的“上海市土地交易系統”的正式開通,該項目被評爲電子政務的“樣板工程”。
普元的成功說明了在面向構件的體系時代初露曙光的時候,中國的軟件業已經站在了和國際廠商站在了同一起跑線上,中國企業大有機會,讓我們攜手打造面向構件的軟件體系,迎接軟件的大規模定製時代的到來。