OA軟件產(chǎn)品的技術(shù)架構(gòu)與開發(fā)語言決定了其核心產(chǎn)品的拓展性和跨平臺對接等諸多元素結(jié)構(gòu),最直接的結(jié)果是導(dǎo)致產(chǎn)品的二次開發(fā)困難、插件組合對接實施困難、跨平臺數(shù)據(jù)對接、維護(hù)成本高昂,而負(fù)責(zé)采購OA產(chǎn)品的技術(shù)官員對于技術(shù)和軟件框架細(xì)節(jié)又無從完全把握,下面一些關(guān)于OA技術(shù)架構(gòu)與開發(fā)語言方面的知識介紹,也許能夠幫助大家解決一些問題。
第一部分:OA軟件的開發(fā)語言
OA軟件的開發(fā)語言很多,目前較為常見的有ASP/PHP/.Lotu Domino/.Net/JAVA 五種語言,五種語言各有特色,其最鮮明的就是——他們代表了“計算機(jī)語言發(fā)展使用簡史”。
1. ASP語言
ASP是微軟的初始WEB產(chǎn)品,在97年左右推向市場,是最初較早的WEB語言技術(shù),很多小型簡單的網(wǎng)站都是用ASP語言開發(fā)的,由于是九十年代的產(chǎn)品,所以在計算機(jī)語言升級以后,其本身最大的一個問題就突顯了出來其可擴(kuò)展性比較差,與現(xiàn)在的主流計算機(jī)語言.NET和JAVA對接都很困難,所以我們經(jīng)常見到很多用ASP語言技術(shù)開發(fā)的小型網(wǎng)站在2003年以后面臨升級等問題時都令人頭疼,最后很多公司都采取了棄用之前的ASP語言結(jié)構(gòu)的產(chǎn)品轉(zhuǎn)而使用最近的語言技術(shù)開發(fā)網(wǎng)站。
使用ASP語言腳本技術(shù)開發(fā)的產(chǎn)品最令軟體工程師頭疼的是ASP技術(shù)與.NET平臺對接基本不太可能(筆者過去就經(jīng)歷過ASP網(wǎng)站改造成.NET網(wǎng)站的事情,那經(jīng)歷簡直可以用“苦難”兩個字來形容)。由于ASP的語言久遠(yuǎn),所以現(xiàn)在在新開發(fā)的系統(tǒng)已經(jīng)使用不多。今天市場上依然能夠看到的ASP語言開發(fā)的OA軟件多是在05年以前生產(chǎn)的產(chǎn)品的基礎(chǔ)上改善的。
目前用ASP語言開發(fā)的產(chǎn)品有:金和標(biāo)準(zhǔn)版、賽飛OA等。
2. PHP
PHP語言與ASP基本上屬于同一時代的產(chǎn)品,但是成熟時間稍微比ASP要晚一點,PHP語言在開發(fā)上稍微比ASP復(fù)雜,其最大的優(yōu)勢就是其版本就像LIUNX系統(tǒng)一樣是一個免費開放型的平臺,開源代碼很容易就找到,這樣就解決了程序開發(fā)人員自己絞盡腦汁的去寫程序,由于是開源的,很多程序在互聯(lián)網(wǎng)上都可以找到,但是版權(quán)問題和安全性問題是一直困擾PHP技術(shù)的兩個難題。國內(nèi)的通達(dá)OA一直有很多盜版,其實根源問題就是PHP的開源代碼性導(dǎo)致的(大家可以參考通達(dá)官網(wǎng))。
和ASP一樣,在2000年左右,PHP成為了網(wǎng)站的主流開發(fā)工具,PHP與ASP相比的優(yōu)勢就是跨平臺性好些,但是如果面對大型結(jié)構(gòu)的用戶群或者門戶網(wǎng)站,PHP又有一些力不從心。所以PHP技術(shù)也正在逐漸走下坡路。PHP語言目前仍有不少網(wǎng)站還在使用,但是主流的應(yīng)用系統(tǒng)已經(jīng)呈現(xiàn)正在放棄使用的趨勢,基本層面上正在淡出了開發(fā)工具的選型范圍。
目前應(yīng)用PHP技術(shù)的OA產(chǎn)品有:通達(dá),新思創(chuàng),泛微的eOffice。
由于PHP的開源和ASP的易用性再加之其語言技術(shù)久遠(yuǎn),造成一種事實——現(xiàn)在很多高校和計算機(jī)語言職業(yè)培訓(xùn)學(xué)校已經(jīng)或者開始放棄了使用PHP和ASP教學(xué),這也就決定了PHP語言技術(shù)正在淪為更新?lián)Q代型的產(chǎn)品,對于使用者來說,就出現(xiàn)了未來的升級困難可能大的風(fēng)險。
作為行銷策略上的吸引點,很多采用PHP和ASP技術(shù)的OA軟件多用低價的策略沖擊市場,采用這兩項技術(shù)的OA軟件實際上更多的是應(yīng)用于低端產(chǎn)品。
3. Lotus Domino
是IBM在96年左右流行起來的OA開發(fā)工具,優(yōu)點是開發(fā)速度比較快,基于Lotus的腳本進(jìn)行開發(fā),與Lotus 的郵件系統(tǒng)相整合,主要用來作工作流和內(nèi)部郵件的傳遞,由于Louts采用專用的文檔數(shù)據(jù)庫系統(tǒng),查詢和數(shù)據(jù)統(tǒng)計效率就比較低下,與關(guān)系型數(shù)據(jù)庫的整合很不好。所以Lotus Notes對于僅對單一的消息和工作流系統(tǒng)來說是不錯的架構(gòu),但如果想做較大規(guī)模的業(yè)務(wù)整合或者業(yè)務(wù)開發(fā)會是困難重重。
使用Lotus Notes語言架構(gòu)的OA產(chǎn)品最大的難點就是針對業(yè)務(wù)系統(tǒng)整合起來比較難。97年筆者曾經(jīng)在北京見過IBM推廣過Louts系統(tǒng),也許在國外懂louts語言的人很多,但是事實上在國內(nèi)懂louts系統(tǒng)的人少之又少,這也就決定了louts在中國國內(nèi)市場上一直都打不開局面的原因之一,由于懂louts語言的技術(shù)工程師較少,所以使用louts語言開發(fā)的軟件的產(chǎn)品面臨最大的困難是升級維護(hù),物以稀為貴,louts系統(tǒng)工程師的支付成本也相對比較高昂。
國內(nèi)應(yīng)用louts語言的OA產(chǎn)品:合強(qiáng),開思
以上三種語言技術(shù)在90年代的時候都曾經(jīng)是WEB或者主流開發(fā)語言,但是隨著計算機(jī)語言技術(shù)的不斷升級換代,這三種語言技術(shù)逐漸淡出人們開發(fā)OA軟件的視線,使用這三種語言的技術(shù)工程師人員數(shù)量也呈現(xiàn)出階梯數(shù)量級遞減,也許到了2020年,ASP,PHP語言技術(shù)的工程師將會成為全球“稀有語言動物”,也只有到了那個時候做ASP,PHP語言的工程師拿的薪水會比主流工程師拿得多得多。
4. .Net
目前國內(nèi)計算機(jī)語言的主流技術(shù)之一,有一個現(xiàn)象大家都可以看到——現(xiàn)在軟件公司的招聘廣告,從招聘廣告上我們看到現(xiàn)在更多的招聘對象都是JAVA和.net的技術(shù)工程師,從這個市場熱度不難看出——JAVA和.net在未來很長的一段時間里將代表開發(fā)語言的主流。
論證其是否是主流原因的方法很簡單,第一:是否有國際大廠商的支持。第二:可擴(kuò)展性,可升級性,模塊化,面向?qū)ο蟮鹊葍?yōu)勢。產(chǎn)品開發(fā)出來的安全穩(wěn)定性以及開發(fā)出來的可伸縮性。當(dāng)然可擴(kuò)展性和可升級性、模塊化這些都是沒有辦法可視化的,對于那些對OA語言感興趣的愛好者不防多看看計算機(jī)語言技術(shù)方面的書籍,其實每本書里都有介紹JAVA和.net在擴(kuò)展、升級、模塊化方面的均衡優(yōu)勢。第三:還有一個最為簡單的驗證方法,就是可以問問你身邊搞過研發(fā)或者懂點計算機(jī)語言技術(shù)的朋友,他們都會給你一個明確的答案。
.NET語言開發(fā)的軟件產(chǎn)品穩(wěn)定性較高,產(chǎn)品可以模塊化是一個存在的事實優(yōu)勢,但.NET具有很強(qiáng)的優(yōu)勢的同時,也存在一定的劣勢,如跨平臺、大數(shù)據(jù)并發(fā)。同時.Net與ASP對接時,就會導(dǎo)致產(chǎn)品的安全性變低,.NET平臺的安全性會隨著ASP的安全漏洞安全為黑客或者不法分子利用進(jìn)而破壞,這個也就一直困擾軟件技術(shù)工程師的一個最大的問題——.NET語言沒有辦法和ASP對接的最大一個因素之一。當(dāng)然.NET如果不需要與ASP語言對接,那么也不存在這樣的風(fēng)險。
目前國內(nèi)基于.Net 的OA產(chǎn)品有:金和C6(高端版本);領(lǐng)航.
5. JAVA
JAVA是1995年由SUN公司引進(jìn)到我們這個世界的革命性變成語言,今天我們記住SUN這一全球性大公司的原因就是因為SUN在網(wǎng)絡(luò)安全系統(tǒng)方面是最為優(yōu)秀的提供商,JAVA的優(yōu)秀在于與傳統(tǒng)的軟件比較就是:傳統(tǒng)的軟件往往與具體的視線環(huán)境有關(guān),一旦環(huán)境有所變化就需要對軟件做一番改動,耗時費力,而JAVA編寫的軟件能在執(zhí)行碼上兼容,只要服務(wù)器提供JAVA解釋器,JAVA編寫的軟件就能在其上運行(更多解釋可以見清華大學(xué)出版社出版JAVA2實用教程(第二版),在這免費做做廣告o(∩_∩)o…)。
JAVA比.Net相比,可以跨平臺,具有非常強(qiáng)的擴(kuò)展性;可以在LINUX,UNIX上部署。對于超大型的OA系統(tǒng),這是至關(guān)重要的。Windwos平臺想實現(xiàn)上千并發(fā)不太現(xiàn)實,這是一個絕對的事實。JAVA在擴(kuò)展性和穩(wěn)定性上(SUN在網(wǎng)絡(luò)安全方面的持續(xù)支持)的優(yōu)越表現(xiàn)導(dǎo)致銀行、稅務(wù)、公安、政府這樣基于有很高安全要求的公司或者單位在選擇軟件才產(chǎn)品的時候會首先選擇JAVA語言開發(fā)的軟件產(chǎn)品。
目前國內(nèi)基于JAVA的OA軟件:泛微的Ecology,;華天OA;用友致遠(yuǎn)。
由于JAVA和.NET語言開發(fā)的產(chǎn)品穩(wěn)定性和安全性比較高的眾所周之的原因,所以在OA軟件的應(yīng)用中使用JAVA和.NET語言開發(fā)的OA軟件銷售的價格會比ASP和PHP開發(fā)的軟件價格通常要高,但是隨著JAVA和.NET的語言技術(shù)的大規(guī)模使用,一旦JAVA和.NET開發(fā)的OA軟件進(jìn)入中低端市場,PHP和ASP結(jié)構(gòu)的OA軟件也將會面臨全面被取代的局面。
目前國內(nèi)OA行業(yè)中還有一種“功能為王”的聲音,這部分主要是依靠ASP、PHP語言技術(shù)為主導(dǎo)的商家,這部分商家通常會強(qiáng)調(diào)“功能為王”,主觀上來看這其實并不錯,但是如果站在長期的目標(biāo)來看,功能為王并不貼切,現(xiàn)有的功能滿足并不等于未來的功能滿足,JAVA和.Net之所以成為主流,這一點是任何技術(shù)流派不能阻止的,越老越多的軟件工程師在學(xué)習(xí)使用這兩種計算機(jī)語言,他們當(dāng)然知道選擇的原因。OA選型人員應(yīng)該從更加長遠(yuǎn)的角度選擇OA產(chǎn)品。找到最適合自己的OA軟件產(chǎn)品最為重要。
第二部分:開發(fā)架構(gòu)
語言是開發(fā)軟件產(chǎn)品的基礎(chǔ),但是軟件的另外一個特征也是非常重要的,那就是架構(gòu),事實上,搞軟件的開發(fā)的技術(shù)工程師都知道這樣一個事實——技術(shù)架構(gòu)師的薪水非常高,這個在軟件開發(fā)行業(yè)里面是不爭的事實。
開發(fā)工具的架構(gòu)從基礎(chǔ)上決定了產(chǎn)品的先進(jìn)程度,舉一個簡單的道理:“用不先進(jìn)的底層研發(fā)出來先進(jìn)的產(chǎn)品,是非常困難也是非常危險的。這就像我們蓋房子,房子的基礎(chǔ)架構(gòu)是用鋼結(jié)構(gòu)搭建的和用石頭和土搭建的當(dāng)然不在同一個層次上,鋼結(jié)構(gòu)的房屋可以在上面繼續(xù)蓋樓,而土石結(jié)構(gòu)的房子一旦在其上面蓋樓就會面臨倒塌的危險,安全系數(shù)是非常低的,糾其原因就在于結(jié)構(gòu)的穩(wěn)定性和生命周期導(dǎo)致的。
所謂的開發(fā)架構(gòu)就是軟件的基礎(chǔ)設(shè)計。
OA選型人員在撰寫軟件產(chǎn)品需求的時候,是否考慮到了諸如需要實現(xiàn)實現(xiàn)跨數(shù)據(jù)庫;頁面和程序分離;是否提供與外界的程序接口(WEBSEVICE)等等核心要素問題,實踐出真知啊,從人們過去的種種購買行為分析的結(jié)果表明:“客戶在購買軟件產(chǎn)品的時候,更多的只是關(guān)注眼前,而忽略了產(chǎn)品的外部接口,將來是否會發(fā)生跨數(shù)據(jù)對接等問題,看上去這些問題會離購買者很遠(yuǎn),其實那是一種錯誤的觀點,事實上是會時時發(fā)生,舉一個簡單的例子——由于在購買OA軟件的時候沒有考慮到會對接新的產(chǎn)品,所以買回來以后,企業(yè)的老板想要對接個手機(jī)審批辦公系統(tǒng),這個時候問題出現(xiàn)了,因為這可能會涉及到跨數(shù)據(jù)庫和外部程序接口對接接口沒辦法對接等等諸多問題,所以在選擇軟件產(chǎn)品的時候,更應(yīng)該重點關(guān)注一下對方軟件的開發(fā)架構(gòu)是什么樣的,這里面包含著所謂的MVC和SOA的要領(lǐng),現(xiàn)在互聯(lián)網(wǎng)上有很多這方面的資料,而且大多都是第三方的,論述的較為公正,建議大家可以上網(wǎng)多搜一下。.
作為一個產(chǎn)品,為適應(yīng)不同客戶,肯定要適應(yīng)不同的數(shù)據(jù)庫,通常情況下小型客戶采用MySQL;中型客戶采用SQL SERVER;大型客戶采用ORACLE,對不同的數(shù)據(jù)庫采用不同的代碼進(jìn)行切換,開發(fā)的時候其實可能并不太麻煩,但是產(chǎn)品的不斷升級,最后導(dǎo)致開發(fā)企業(yè)需要同時維護(hù)四五套版本,這樣的作業(yè)方式很難做到做到及時升級,把大量的時間浪費在了不必要的功能之上,作為企業(yè)的網(wǎng)管都不愿意看到同一產(chǎn)品的多個版本需要同時維護(hù)的狀況發(fā)生,這對于網(wǎng)管來說無疑是一個最大的考驗和頭疼的事情。
OA軟件的發(fā)展趨勢就是安全、穩(wěn)定、易用、高效、拓展性,在未來OA產(chǎn)品在頁面與數(shù)據(jù)分離、MVC/SOA、跨數(shù)據(jù)庫平臺操作上都是應(yīng)用趨勢,在這方面華天OA和泛微的ECology具有一定優(yōu)勢。
實際上選擇OA軟件要從以下四方面綜合考慮其架構(gòu),也建議有OA需求的朋友可以多咨詢身邊懂技術(shù)的朋友和OA廠商,懂技術(shù)的朋友也可以給出不同的意見補(bǔ)充。
穩(wěn)定性;可維護(hù)性;可升級性;可繼承性綜合這四個方面進(jìn)行考慮。
寫在最后:
購買OA產(chǎn)品也要考慮未來成本,OA辦公自動化軟件具有很強(qiáng)的粘著性,其生命周期需要使用5年甚至到10年,而軟件的架構(gòu)好壞,直接決定了使用者購買的未來成本。
我給出OA軟件的購買成本的基本算法如下,以供大家分享:
成本=購買成本+培訓(xùn)成本+二次開發(fā)成本+維護(hù)成本+更換成本(淘汰成本)
建議大家在購買OA軟件產(chǎn)品的時候,重點要從開發(fā)語言和軟件架構(gòu)上開始,不要貪圖便宜而忽略了OA軟件存在的最基礎(chǔ)的2個層面。也許只有用者才會知道事實上便宜的產(chǎn)品最后支付的成本并不會“便宜”。當(dāng)然,如果大家能夠買到語言和架構(gòu)都比較合理,價格又適中的產(chǎn)品當(dāng)然是最合適的。
中關(guān)村在線原文地址:http://news.zol.com.cn/101/1016959.html