oa軟件產(chǎn)品的技術(shù)架構(gòu)與開發(fā)語言決定了其核心產(chǎn)品的拓展性和跨平臺對接等諸多元素結(jié)構(gòu),最直接的結(jié)果是導(dǎo)致產(chǎn)品的二次開發(fā)困難、插件組合對接實(shí)施困難、跨平臺數(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要晚一點(diǎn),php語言在開發(fā)上稍微比asp復(fù)雜,其最大的優(yōu)勢就是其版本就像liunx系統(tǒng)一樣是一個免費(fèi)開放型的平臺,開源代碼很容易就找到,這樣就解決了程序開發(fā)人員自己絞盡腦汁的去寫程序,由于是開源的,很多程序在互聯(lián)網(wǎng)上都可以找到,但是版權(quán)問題和安全性問題是一直困擾php技術(shù)的兩個難題。國內(nèi)的通達(dá)oa一直有很多盜版,其實(shí)根源問題就是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),造成一種事實(shí)——現(xiàn)在很多高校和計算機(jī)語言職業(yè)培訓(xùn)學(xué)校已經(jīng)或者開始放棄了使用php和asp教學(xué),這也就決定了php語言技術(shù)正在淪為更新?lián)Q代型的產(chǎn)品,對于使用者來說,就出現(xiàn)了未來的升級困難可能大的風(fēng)險。
作為行銷策略上的吸引點(diǎn),很多采用php和asp技術(shù)的oa軟件多用低價的策略沖擊市場,采用這兩項技術(shù)的oa軟件實(shí)際上更多的是應(yīng)用于低端產(chǎn)品。
3. lotus domino
是ibm 在96年左右流行起來的oa開發(fā)工具,優(yōu)點(diǎn)是開發(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)品最大的難點(diǎn)就是針對業(yè)務(wù)系統(tǒng)整合起來比較難。97年筆者曾經(jīng)在北京見過ibm推廣過louts系統(tǒng),也許在國外懂louts語言的人很多,但是事實(shí)上在國內(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ù)方面的書籍,其實(shí)每本書里都有介紹java和.net在擴(kuò)展、升級、模塊化方面的均衡優(yōu)勢。第三:還有一個最為簡單的驗證方法,就是可以問問你身邊搞過研發(fā)或者懂點(diǎn)計算機(jī)語言技術(shù)的朋友,他們都會給你一個明確的答案。
.net語言開發(fā)的軟件產(chǎn)品穩(wěn)定性較高,產(chǎn)品可以模塊化是一個存在的事實(shí)優(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)境有所變化就需要對軟件做一番改動,耗時費(fèi)力,而java編寫的軟件能在執(zhí)行碼上兼容,只要服務(wù)器提供java解釋器,java編寫的軟件就能在其上運(yùn)行(更多解釋可以見清華大學(xué)出版社出版java2實(shí)用教程(第二版),在這免費(fèi)做做廣告o(∩_∩)o…)。
java比.net相比,可以跨平臺,具有非常強(qiáng)的擴(kuò)展性;可以在linux,unix上部署。對于超大型的oa系統(tǒng),這是至關(guān)重要的。windwos平臺想實(shí)現(xiàn)上千并發(fā)不太現(xiàn)實(shí),這是一個絕對的事實(shí)。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)“功能為王”,主觀上來看這其實(shí)并不錯,但是如果站在長期的目標(biāo)來看,功能為王并不貼切,現(xiàn)有的功能滿足并不等于未來的功能滿足,java和.net之所以成為主流,這一點(diǎn)是任何技術(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),事實(shí)上,搞軟件的開發(fā)的技術(shù)工程師都知道這樣一個事實(shí)——技術(shù)架構(gòu)師的薪水非常高,這個在軟件開發(fā)行業(yè)里面是不爭的事實(shí)。
開發(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)品需求的時候,是否考慮到了諸如需要實(shí)現(xiàn)實(shí)現(xiàn)跨數(shù)據(jù)庫;頁面和程序分離;是否提供與外界的程序接口(websevice)等等核心要素問題,實(shí)踐出真知啊,從人們過去的種種購買行為分析的結(jié)果表明:“客戶在購買軟件產(chǎn)品的時候,更多的只是關(guān)注眼前,而忽略了產(chǎn)品的外部接口,將來是否會發(fā)生跨數(shù)據(jù)對接等問題,看上去這些問題會離購買者很遠(yuǎn),其實(shí)那是一種錯誤的觀點(diǎn),事實(shí)上是會時時發(fā)生,舉一個簡單的例子——由于在購買oa軟件的時候沒有考慮到會對接新的產(chǎn)品,所以買回來以后,企業(yè)的老板想要對接個手機(jī)審批辦公系統(tǒng),這個時候問題出現(xiàn)了,因為這可能會涉及到跨數(shù)據(jù)庫和外部程序接口對接接口沒辦法對接等等諸多問題,所以在選擇軟件產(chǎn)品的時候,更應(yīng)該重點(diǎn)關(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ā)的時候其實(shí)可能并不太麻煩,但是產(chǎn)品的不斷升級,最后導(dǎo)致開發(fā)企業(yè)需要同時維護(hù)四五套版本,這樣的作業(yè)方式很難做到做到及時升級,把大量的時間浪費(fèi)在了不必要的功能之上,作為企業(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)勢。
實(shí)際上選擇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)品的時候,重點(diǎn)要從開發(fā)語言和軟件架構(gòu)上開始,不要貪圖便宜而忽略了oa軟件存在的最基礎(chǔ)的2個層面。也許只有用者才會知道事實(shí)上便宜的產(chǎn)品最后支付的成本并不會“便宜”。當(dāng)然,如果大家能夠買到語言和架構(gòu)都比較合理,價格又適中的產(chǎn)品當(dāng)然是最合適的。