天天看點

架構與開發語言 購OA産品最重要的兩個核心

OA軟體産品的技術架構與開發語言決定了其核心産品的拓展性和跨平台對接等諸多元素結構,最直接的結果是導緻産品的二次開發困難、插件組合對接實施困難、跨平台資料對接、維護成本高昂,而負責采購OA産品的技術官員對于技術和軟體架構細節又無從完全把握,下面一些關于OA技術架構與開發語言方面的知識介紹,也許能夠幫助大家解決一些問題。

  第一部分:OA軟體的開發語言

  OA軟體的開發語言很多,目前較為常見的有ASP/PHP/.Lotu Domino/.Net/JAVA 五種語言,五種語言各有特色,其最鮮明的就是——他們代表了“計算機語言發展使用簡史”。

  1. ASP語言

  ASP是微軟的初始WEB産品,在97年左右推向市場,是最初較早的WEB語言技術,很多小型簡單的網站都是用ASP語言開發的,由于是九十年代的産品,是以在計算機語言更新以後,其本身最大的一個問題就突顯了出來其可擴充性比較差,與現在的主流計算機語言.NET和JAVA對接都很困難,是以我們經常見到很多用ASP語言技術開發的小型網站在2003年以後面臨更新等問題時都令人頭疼,最後很多公司都采取了棄用之前的ASP語言結構的産品轉而使用最近的語言技術開發網站。

  使用ASP語言腳本技術開發的産品最令軟體工程師頭疼的是ASP技術與.NET平台對接基本不太可能(筆者過去就經曆過ASP網站改造成.NET網站的事情,那經曆簡直可以用“苦難”兩個字來形容)。由于ASP的語言久遠,是以現在在新開發的系統已經使用不多。今天市場上依然能夠看到的ASP語言開發的OA軟體多是在05年以前生産的産品的基礎上改善的。

  目前用ASP語言開發的産品有:金和标準版、賽飛OA等。

  2. PHP

  PHP語言與ASP基本上屬于同一時代的産品,但是成熟時間稍微比ASP要晚一點,PHP語言在開發上稍微比ASP複雜,其最大的優勢就是其版本就像LIUNX系統一樣是一個免費開放型的平台,開源代碼很容易就找到,這樣就解決了程式開發人員自己絞盡腦汁的去寫程式,由于是開源的,很多程式在網際網路上都可以找到,但是版權問題和安全性問題是一直困擾PHP技術的兩個難題。國内的通達OA一直有很多盜版,其實根源問題就是PHP的開源代碼性導緻的(大家可以參考通達官網)。

  和ASP一樣,在2000年左右,PHP成為了網站的主流開發工具,PHP與ASP相比的優勢就是跨平台性好些,但是如果面對大型結構的使用者群或者門戶網站,PHP又有一些力不從心。是以PHP技術也正在逐漸走下坡路。PHP語言目前仍有不少網站還在使用,但是主流的應用系統已經呈現正在放棄使用的趨勢,基本層面上正在淡出了開發工具的選型範圍。

  目前應用PHP技術的OA産品有:通達,新思創,泛微的eOffice。

  由于PHP的開源和ASP的易用性再加之其語言技術久遠,造成一種事實——現在很多高校和計算機語言職業教育訓練學校已經或者開始放棄了使用PHP和ASP教學,這也就決定了PHP語言技術正在淪為更新換代型的産品,對于使用者來說,就出現了未來的更新困難可能大的風險。

  作為行銷政策上的吸引點,很多采用PHP和ASP技術的OA軟體多用低價的政策沖擊市場,采用這兩項技術的OA軟體實際上更多的是應用于低端産品。

  3. Lotus Domino

  是IBM 在96年左右流行起來的OA開發工具,優點是開發速度比較快,基于Lotus的腳本進行開發,與Lotus 的郵件系統相整合,主要用來作工作流和内部郵件的傳遞,由于Louts采用專用的文檔資料庫系統,查詢和資料統計效率就比較低下,與關系型資料庫的整合很不好。是以Lotus Notes對于僅對單一的消息和工作流系統來說是不錯的架構,但如果想做較大規模的業務整合或者業務開發會是困難重重。

  使用Lotus Notes語言架構的OA産品最大的難點就是針對業務系統整合起來比較難。97年筆者曾經在北京見過IBM推廣過Louts系統,也許在國外懂louts語言的人很多,但是事實上在國内懂louts系統的人少之又少,這也就決定了louts在中國國内市場上一直都打不開局面的原因之一,由于懂louts語言的技術工程師較少,是以使用louts語言開發的軟體的産品面臨最大的困難是更新維護,物以稀為貴,louts系統工程師的支付成本也相對比較高昂。

  國内應用louts語言的OA産品:合強,開思

  以上三種語言技術在90年代的時候都曾經是WEB或者主流開發語言,但是随着計算機語言技術的不斷更新換代,這三種語言技術逐漸淡出人們開發OA軟體的視線,使用這三種語言的技術工程師人員數量也呈現出階梯數量級遞減,也許到了2020年,ASP,PHP語言技術的工程師将會成為全球“稀有語言動物”,也隻有到了那個時候做ASP,PHP語言的工程師拿的薪水會比主流工程師拿得多得多。

  4. .Net

  目前國内計算機語言的主流技術之一,有一個現象大家都可以看到——現在軟體公司的招聘廣告,從招聘廣告上我們看到現在更多的招聘對象都是JAVA和.net的技術工程師,從這個市場熱度不難看出——JAVA和.net在未來很長的一段時間裡将代表開發語言的主流。

  論證其是否是主流原因的方法很簡單,第一:是否有國際大廠商的支援。第二:可擴充性,可更新性,子產品化,面向對象等等優勢。産品開發出來的安全穩定性以及開發出來的可伸縮性。當然可擴充性和可更新性、子產品化這些都是沒有辦法可視化的,對于那些對OA語言感興趣的愛好者不防多看看計算機語言技術方面的書籍,其實每本書裡都有介紹JAVA和.net在擴充、更新、子產品化方面的均衡優勢。第三:還有一個最為簡單的驗證方法,就是可以問問你身邊搞過研發或者懂點計算機語言技術的朋友,他們都會給你一個明确的答案。

  .NET語言開發的軟體産品穩定性較高,産品可以子產品化是一個存在的事實優勢,但.NET具有很強的優勢的同時,也存在一定的劣勢,如跨平台、大資料并發。同時.Net與ASP對接時,就會導緻産品的安全性變低,.NET平台的安全性會随着ASP的安全漏洞安全為黑客或者不法分子利用進而破壞,這個也就一直困擾軟體技術工程師的一個最大的問題——.NET語言沒有辦法和ASP對接的最大一個因素之一。當然.NET如果不需要與ASP語言對接,那麼也不存在這樣的風險。

  目前國内基于.Net 的OA産品有:金和C6(高端版本);領航.

  5. JAVA

  JAVA是1995年由SUN公司引進到我們這個世界的革命性變成語言,今天我們記住SUN這一全球性大公司的原因就是因為SUN在網絡安全系統方面是最為優秀的提供商,JAVA的優秀在于與傳統的軟體比較就是:傳統的軟體往往與具體的視線環境有關,一旦環境有所變化就需要對軟體做一番改動,耗時費力,而JAVA編寫的軟體能在執行碼上相容,隻要伺服器提供JAVA解釋器,JAVA編寫的軟體就能在其上運作(更多解釋可以見清華大學出版社出版JAVA2實用教程(第二版),在這免費做做廣告o(∩_∩)o…)。

  JAVA比.Net相比,可以跨平台,具有非常強的擴充性;可以在LINUX,UNIX上部署。對于超大型的OA系統,這是至關重要的。Windwos平台想實作上千并發不太現實,這是一個絕對的事實。JAVA在擴充性和穩定性上(SUN在網絡安全方面的持續支援)的優越表現導緻銀行、稅務、公安、政府這樣基于有很高安全要求的公司或者機關在選擇軟體才産品的時候會首先選擇JAVA語言開發的軟體産品。

  目前國内基于JAVA的OA軟體:泛微的Ecology,;華天OA;用友緻遠。

  由于JAVA和.NET語言開發的産品穩定性和安全性比較高的衆所周之的原因,是以在OA軟體的應用中使用JAVA和.NET語言開發的OA軟體銷售的價格會比ASP和PHP開發的軟體價格通常要高,但是随着JAVA和.NET的語言技術的大規模使用,一旦JAVA和.NET開發的OA軟體進入中低端市場,PHP和ASP結構的OA軟體也将會面臨全面被取代的局面。

  目前國内OA行業中還有一種“功能為王”的聲音,這部分主要是依靠ASP、PHP語言技術為主導的商家,這部分商家通常會強調“功能為王”,主觀上來看這其實并不錯,但是如果站在長期的目标來看,功能為王并不貼切,現有的功能滿足并不等于未來的功能滿足,JAVA和.Net之是以成為主流,這一點是任何技術流派不能阻止的,越老越多的軟體工程師在學習使用這兩種計算機語言,他們當然知道選擇的原因。OA選型人員應該從更加長遠的角度選擇OA産品。找到最适合自己的OA軟體産品最為重要。

  第二部分:開發架構

  語言是開發軟體産品的基礎,但是軟體的另外一個特征也是非常重要的,那就是架構,事實上,搞軟體的開發的技術工程師都知道這樣一個事實——技術架構師的薪水非常高,這個在軟體開發行業裡面是不争的事實。

  開發工具的架構從基礎上決定了産品的先程序度,舉一個簡單的道理:“用不先進的底層研發出來先進的産品,是非常困難也是非常危險的。這就像我們蓋房子,房子的基礎架構是用鋼結構搭建的和用石頭和土搭建的當然不在同一個層次上,鋼結構的房屋可以在上面繼續蓋樓,而土石結構的房子一旦在其上面蓋樓就會面臨倒塌的危險,安全系數是非常低的,糾其原因就在于結構的穩定性和生命周期導緻的。

  所謂的開發架構就是軟體的基礎設計。

  OA選型人員在撰寫軟體産品需求的時候,是否考慮到了諸如需要實作實作跨資料庫;頁面和程式分離;是否提供與外界的程式接口(WEBSEVICE)等等核心要素問題,實踐出真知啊,從人們過去的種種購買行為分析的結果表明:“客戶在購買軟體産品的時候,更多的隻是關注眼前,而忽略了産品的外部接口,将來是否會發生跨資料對接等問題,看上去這些問題會離購買者很遠,其實那是一種錯誤的觀點,事實上是會時時發生,舉一個簡單的例子——由于在購買OA軟體的時候沒有考慮到會對接新的産品,是以買回來以後,企業的老闆想要對接個手機審批辦公系統,這個時候問題出現了,因為這可能會涉及到跨資料庫和外部程式接口對接接口沒辦法對接等等諸多問題,是以在選擇軟體産品的時候,更應該重點關注一下對方軟體的開發架構是什麼樣的,這裡面包含着所謂的MVC和SOA的要領,現在網際網路上有很多這方面的資料,而且大多都是第三方的,論述的較為公正,建議大家可以上網多搜一下。.

  作為一個産品,為适應不同客戶,肯定要适應不同的資料庫,通常情況下小型客戶采用MySQL;中型客戶采用SQL SERVER;大型客戶采用ORACLE,對不同的資料庫采用不同的代碼進行切換,開發的時候其實可能并不太麻煩,但是産品的不斷更新,最後導緻開發企業需要同時維護四五套版本,這樣的作業方式很難做到做到及時更新,把大量的時間浪費在了不必要的功能之上,作為企業的網管都不願意看到同一産品的多個版本需要同時維護的狀況發生,這對于網管來說無疑是一個最大的考驗和頭疼的事情。

  OA軟體的發展趨勢就是安全、穩定、易用、高效、拓展性,在未來OA産品在頁面與資料分離、MVC/SOA、跨資料庫平台操作上都是應用趨勢,在這方面華天OA和泛微的ECology具有一定優勢。

  實際上選擇OA軟體要從以下四方面綜合考慮其架構,也建議有OA需求的朋友可以多咨詢身邊懂技術的朋友和OA廠商,懂技術的朋友也可以給出不同的意見補充。

  穩定性;可維護性;可更新性;可繼承性綜合這四個方面進行考慮。

  寫在最後:

  購買OA産品也要考慮未來成本,OA辦公自動化軟體具有很強的粘着性,其生命周期需要使用5年甚至到10年,而軟體的架構好壞,直接決定了使用者購買的未來成本。

  我給出OA軟體的購買成本的基本算法如下,以供大家分享:

  成本=購買成本+教育訓練成本+二次開發成本+維護成本+更換成本(淘汰成本)

  建議大家在購買OA軟體産品的時候,重點要從開發語言和軟體架構上開始,不要貪圖便宜而忽略了OA軟體存在的最基礎的2個層面。也許隻有用者才會知道事實上便宜的産品最後支付的成本并不會“便宜”。當然,如果大家能夠買到語言和架構都比較合理,價格又适中的産品當然是最合适的。