企業管理軟件平臺架構內幕揭祕(轉載)

企業管理軟件,由於進入門坎低,各行各業各層次企業都需要,做面向企業應用比做面向個人應用要賺錢多,好銷售,所以中國內地有相當大部分的程序員在從事着企業管理軟件的開發。

尤其是接項目的軟件公司,這類公司往往在中國當前軟件行業佔很多。3-4個或5-6個程序員,老闆拉來什麼項目就做什麼項目,進銷存、費用報銷、銷售管理、客服維修工單、請假考勤管理等等爲大部分單子內容。

有朋友留言:就10來萬的單子,就1-2個程序員,從調研到設計到開發到測試到打包到實施安裝到培訓到推動上線到支持,全活兒。哪來的精力再去開發平臺。再說了,都是10來萬的單子,開發平臺就大才小用了,什麼設計模式,什麼OO,什麼界面和代碼分離,什麼代碼重構,都扯淡,往界面拖控件,用ADO連數據庫,OK。費那精神幹嘛,把錢快速賺到纔是真理。

其實,你發現沒,你做的管理軟件(叫它MIS也行,你愛戴高帽就叫它ERP)有一些東西都挺相似。我有個專門給小企業做網站的哥們,5天一個網站。他手裏面從免費郵箱服務器、BBS論壇、流量統計軟件、網站新聞內容管理系統全從網上找好源代碼,各種圖標圖片素材庫,機器上裝好Dreamweaver、PhotoShop、Flash。小企業老闆來了,他把過去做的案例往出一拿,你挑吧。然後七湊八湊幾天完工。

這是不是平臺呢?

我們爲什麼需要平臺?我們需要什麼樣的平臺?平臺應該包括哪些東西?一個完備的平臺是怎樣的?

帶着這些問題,我們一一揭祕。

拿我哥們剛纔的例子剖析。我個人認爲那就是一個平臺。我們爲什麼需要平臺?就是爲了不每次都重新發明輪子,爲了能快速的完成代碼工作(可以多賺點錢或者可以多打會遊戲或者瞌睡或者可以多時間去泡MM)。

快速完成,是平臺的第一目標。但是快速三下五除二幹完了,去客戶那裏一跑,BUG百出,倒黴,還得熬夜修改,長期出差回不了家。修改代碼,痛苦,還不如推倒重新正式寫代碼。

看來,平臺的第二個目標必須是穩定。

既能快速開發,又能穩定,這是個好平臺了吧。

不,客戶個性化需求來了,發現真難改。按照普通簡單流程處理(增/刪/改/查列表/明細),確實平臺能給很大幫助,但是客戶一個性化,平臺就不靈了,個性化代碼怎麼都插不進去手。平臺自成一套圈子,外圍異常代碼根本插不進去(這是現在很多號稱平臺的產品都共有的最大弊病)。

好不容易遇到個好個性化定製的平臺,平臺性能不佳,老掛機,客戶的電話吼的真想把電話線拔掉,甚至幻想全公司電話和互聯網和自己的手機都壞了。

終於搞定以上的所有問題,給客戶安裝上,培訓好,推動上線,終於可以閃人了。回到自己的牀上,真舒服呀。

沒想到惡夢纔剛剛開始。客戶的電話來了:我發現報表不對呀,數對不上去,你看哪裏出問題了?

O,My God。我剛回來,你就...。 我又不能飛過去。好吧,好吧,你有QQ或PcAnyWhere嗎,我們來連一下,我給查一下數據庫。什麼?服務器不容許上網?那我怎麼辦?

看來需要一個排錯、可跟蹤、可輸出詳細日誌、可過濾日誌的東西,就像SQLSERVER的查詢跟蹤器一樣。

嗯,好不容易把問題搞定,修改完代碼,需要給客戶升級。

什麼,你們家沒有網管,都是兼職的,根本不會SQLSERVER,腳本怎麼執行,怎麼備份,不知道?

算我倒黴,電話我告訴你一步步操作。(長途電話費N多,老闆衝你發火,你低頭不語,心裏唸到這個豬頭)

什麼?升級了也不好用?那你肯定沒按我說的操作來。

什麼?有的機器好用,有的機器不好用?你肯定沒有把所有客戶端都升級了。

哦,看來需要一個自動升級的模塊。

挖咔咔,軟件賣的好好哦。咿呀咿呀咿。可是,可是...。居然有傢伙盜版使用我們的軟件,看來我不加密不行了。

加密,加KEY,加併發用戶數,加正版判別,加使用期過期。

嗯,終於天下太平了,抱得美人歸。

從以上來看,我們似乎並不是爲了平臺而平臺,爲了市場宣傳和銷售便利而做平臺噱頭。我們確實在多如牛毛的小項目的水深火熱戰火紛飛中,我們渴望有這些東西將我們快速解脫。如果我們是開發中大型系統的,我們的產品需要延續生命週期8-10年,需要部署給成千上萬的客戶,客戶需要管理幾億的關鍵數據,有幾千個客戶併發,我們更需要平臺。

所以,不管做小項目的,或者做大項目的,我們都需要平臺。

那我們需要什麼樣的平臺。其實上述的場景中已經把平臺的關鍵特性都說了一遍,現在我總結一下:

1可以幫助開發人員快速開發

2穩定

3可以個性化定製

4可以跟蹤日誌排錯

5可以自動升級

6軟件版權保護

爲了做到這些,國內軟件精英不知有多少人前赴後繼的的投入研究(甚至做OA的,做工作流的,也號稱做平臺)。讓我們歷數歷數,看看各自的特點和優缺點,以對照一下我們需要的特性,他們的平臺具備不?

大連雅奇,95年我就知道它了。當時好像是Foxbase版本的。可以生成菜單、界面代碼。其他的我現在忘了。不過去年CSDN還報道了一次大連雅奇

1報表打印,支持二維、交叉、套打、單據格式、多欄頭、導出HTML、PDF、EXCEL、DBF肯定是必須的。計算公式有沒有?變量有沒有?代碼調用API有沒有?嵌入圖表有沒有?小分組合計行不行?最底最右的總合計有沒有?支持不支持主從?支持不支持鏈接鑽取?

2圖表 當然支持折線、直方、餅圖。不知道EXCEL所能支持的圖表,它是否都能支持,而且像EXCEL一樣好看。漏斗圖有沒有,里程圖有沒有?做領導報表(可以起名爲管理駕駛艙或商業智能門戶)時非常需要。

3控件 可分組、可過濾、可定製查詢、可定製列視圖、可多排序、可導出、可預覽、可小計的Grid控件有沒有?可以權限管制行列數據,定製列視圖的參照錄入控件有沒有?日曆控件有沒有?財務憑證控件有沒有?

4企業內部即時通訊模塊、郵件收發模塊、預警提醒模塊有沒有呢?

其實,這是在企業應用中極爲常見的一些公共功能。有一部份朋友給我QQ留言,他說平臺架構就是:中間件+Hibernate(ORM框架)+structs (MVC框架)+spring(AOP框架)+JSF控件(UI框架)+Log4j(日誌框架)+JUnit(測試框架)+Ant(Build框架)+ JasperReports(報表框架)+JFreeChart(圖表框架)+osWorkFlow(工作流框架)。

我說對,這是平臺架構,但不是企業管理軟件的平臺架構。企業管理軟件的平臺架構需要更上一層,能方便開發人員快速穩定的開發和修改。

大連雅奇能一直存活到如今,從各方面看雖已跟不上未來,但目前很多小軟件公司和小企業還在進行着初步的信息化,所以還是有很多的市場空間的。(我看到華軍軟件裏有人發佈的所謂強大平臺,一下載一看,原來是一個數據庫維護軟件,讓人尷尬,但是還有大量的個人或2人工作室在不斷奮鬥製造着這類軟件,我已經看到了很多雷同的軟件了,也有市場?可能)。

講完最老的大連雅奇,在企業管理軟件平臺界,最有名的就數思維加速(現在改名起步)。起步從1999年開始起步,技術一直跟的很緊,做的也非常深入,我個人認爲,起步是做企業管理軟件平臺最優秀的一個。

1 起步加入了工作流,非常適應時代

2加入了集團企業多組織結構,非常適應時代

3起步有數據庫建模工具,有版本管理工具,有部署工具,報表、圖表自不用說。居然還有甘特圖和日曆,還有即時通訊工具

4起步擁有自己研發的代碼開發IDE。這是國內沒有的。老宋爲了解決常規平臺自我封閉無法定製的詬病下了很大的氣力,讓簡單開發和個性定製融合。

5能支持JAVA中間件,也能支持COM+,能WEB,也能C/S。這也是國內沒有的。

IDE,既是起步的殺手功能,也是起步的軟肋(想起一句古龍的話:敵人的優點也就是他的缺點)。IDE這個東西,世界有三巨頭:Eclipse、visual studio、Borland。大家都是幹軟件的,大部分都是選擇這三類IDE,對這三類IDE很是習慣。但是現在要捨棄三巨頭,用了起步的平臺,就需要用起步的IDE,而且IDE還沒有三巨頭做的好(要想做好,談何容易。君不見Eclipse有IBM巨資推動,visual studio更是微軟的一個重要產品線,投入大量人力。如果起步也要做,那豈不是平臺、IDE、工作流都要並進?要知道,這三塊中的每一塊,都是需要單獨一個公司,而且是相當實力的公司才能做好)。

於是,上海普元學乖了。IDE,我們就用Eclipse。

當然,還是老三套:控件+工作流+報表。

普元的平臺框架有組織結構管理(不知道是否支持區域管理組織和集團管理組織?)、部署工具、權限管理(這個非常重要,不知道能不能管理到業務實體的每一個操作和數據行列可訪問性?)、業務字典管理(這個沒必要單提出來吧?運行參數的配置纔是最重要的)。不過普元具備了日誌、異常、定製任務。更難能可貴的是,普元還提出了Cache機制(這個在企業管理軟件領域中其實挺難。它不像咱們的通常論壇網站,如天涯,也併發量大需要Cache,但是天涯也僅僅是看,而企業管理軟件主要是頻繁讀寫和業務計算處理,這怎麼Cache,我也需要學習學習,過去一直主要依賴數據庫設計和代碼寫法和功能設計來保證性能)。

普元做JAVA,金富瑞就做.NET。

三大件繼續拿上來:控件+工作流+報表。

但很可貴的是,金富瑞提出了虛擬組織這一說法。這個確實老遇到。還有就是權限管理,從菜單到數據到列到行到按鈕,控制的挺細,不過細就是多,多就會漏洞多,看來金富瑞需要深刻去思考一下數據庫架構的設計。

這些都是專注做平臺的。

但是,那些主要做管理軟件的公司,也有自己的平臺。甚至自己的平臺還賣。如浪潮樓上(不過山東人的樸實與粗糙,盡在軟件中)。

自己用的平臺,東軟也有,但沒有對外宣傳,也不賣。偷偷自己用,做了N多醫保、稅務局之類的項目。(我曾經剖析的時候,發掘設計的思想和金蝶K3的平臺特別相似)

用友、金蝶這兩大企業管理軟件公司當然也有自己的平臺。用友有U8平臺和NC平臺,金蝶有K3和EAS平臺。不過,明顯的是,金蝶的平臺架構思路比用友高一級。從業務實體自省到權限控制到日誌到二次開發,金蝶頗有套路,思路清晰抽象高度。而用友的平臺,似乎還看業務是業務,看菜單是菜單。

講了這麼多,幾乎主流的平臺廠商我都數了個遍,當然從事各細分行業管理軟件的公司也都有自己的平臺,只不過那類平臺和本行業業務又結合的特別緊密,開發自己行業軟件特別快速穩定易用,但不具有普遍意義。

我把我在上一篇文章中寫的企業管理軟件平臺架構內容再貼到最後,以使大家好總覽:

1登陸用戶口令驗證、license許可驗證、盜版驗證、過期失效驗證、版本差異驗證

2主控臺 用戶功能樹 管理主控臺

3表單設計器、業務實體設計器、工作流設計器、報表設計器、功能菜單設計器、多語言設計器、多皮膚設計器、查詢過濾定製器

4UI框架:Grid/Toob bar/Tree/TabSheet/Menubar/參照錄入組件/Edit/Button/Combo之類

5單實體輸入框架、主從List/Detail輸入框架

6運行配置參數設置、單號計數器、業務預警設置

7異常框架、業務實體權限框架、業務實體存儲引擎、業務實體查詢引擎

8報表:套打、單據報表、普通二維查詢統計報表、交叉報表、圖表

9工作流引擎、消息引擎、自動任務引擎

10企業組織結構設計工具、權限分配工具、數據導入導出工具、數據備份恢復工具、升級更新工具、錯誤診斷跟蹤工具、性能監測工具、日誌查看工具

11OFFICE集成、BO集成、通信集成、郵件集成、短信集成、IM集成、搜索集成、電子商務集成、企業門戶集成等等一切外圍集成






後補記:

剛纔看到有朋友留言,說到單據如何變化、單據字段如何變化、報表如何變化、數據庫如何變化、業務流程如何變化。

剛纔一看圖,確實是忘了寫單據設計器了。這個在各個平臺上都有。不過現在單據設計器的主流都是在eclipse中做調整,然後再部署。

有了單據設計器,單據變化、單據字段變化就都能適應。

報表有報表設計器來適應。

數據庫有業務實體設計器來適應。

業務流程有工作流來適應。如果是很特殊的業務流程變化,需要編寫代碼。一個完全不編寫代碼就靠配置實現企業業務的平臺是不存在的,除非業務很簡單。

其實筆者原意也不是對國內平臺上逐個品頭論足。目的只是希望給大家普及平臺架構,並且介紹國內主流的一些平臺廠商。筆者也在近10年中搭建過兩代產品線的平臺架構,管理數據都在幾億條,涉及用戶數也在幾萬,所以希望給沒有架構思路的朋友們一些經驗分享而已。

大家如果想了解企業管理軟件平臺的更細節的架構和原理,可以去起步、金富瑞、浪潮樓上、普元、金蝶、用友的網站上去看他們詳細的技術架構白皮書。看看他們是如何真實的實現一個企業管理軟件業務平臺。

更深層次的如何實現,架構的每個細節難點和實現思路,我想,應該不是我這篇博文能夠承擔的。

另外,看到留言說業務平臺是爲了適應企業變化無常的需求
其實這是個誤區。業務平臺並不能適應企業變化無常的需求,業務平臺只是把公共的部分提取了出來,而變化無常的需求是由開發語言來完成的。如果一個業務平臺無法容易的融入開發IDE編寫的代碼,這個業務平臺基本不能用,只能算是一個簡單的玩具,做些簡單的增刪改和確認的工作而已。

有些平臺,爲了滿足個性化特殊處理,內嵌了很複雜的業務邏輯語句,甚至也和起步一樣做了IDE,即使走到這一步,也不如程序員用IDE編寫代碼方便。

我們做平臺,不是爲了不用IDE,不用寫代碼,不是爲了實施人員或業務人員拿去自己定義功能去吧,程序員沒有用了,程序員只要維護好平臺就OK了。這種認識是錯誤的。SAP作爲全球最大的企業管理軟件廠商也無法做到。


  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章