统一论:3G手机、云计算、SaaS、业务开发平台、SOA、BPEL
我關注Google的代碼托管、Open API,我也關注sun會把MYSQL怎么樣云數據庫化,我也虛擬化技術多實例化獨立的數據庫,我也關注facebook的平臺插件應用架構,我也關注salesforce的在線開發語言和調試環境,我也關注javascript和XML組成的客戶端UI,落地為flex或sliverlight或其他什么Ext js或JQuery或YUI或Dojo之類。
?
從大型主機到個人電腦,從個人電腦到局域網,從局域網到wi-fi、筆記本電腦,甚至到如今的比筆記本更小更廉價的上網本,手機GPRS上網,手機WI-FI上網,手機上QQ/MSN,手機收發郵件,手機GPS地圖導航。
?
未來什么樣?
?
未來是每人手拿一部手機,可以隨時上網看新聞看天涯看博客、看小說、聊天、玩網絡游戲、搜索地圖、搜索餐館、搜索打折優惠活動、搜索好玩的好休閑的去處、隨時隨地上網淘寶當當紅孩子購物、拍照片隨時傳到自己的blog上可以第一時間分享給朋友們。
?
手機上網速度越來越快,屏幕內存也越來越大拍照也越來越清晰,手機的價格也越來越低,手機的上網費用也越來越低。除非我們是搞開發的,需要裝數據庫裝開發工具;除非我們是搞項目方案的,PPT/DOC/EXCLE/PROJECT熬夜制作幻燈演示,其實手機已經可以代替電腦了。電腦從大殼子PC到液晶屏電腦到筆記本電腦到上網本,越來越小,以后就是手機了。
?
人手一部可上網沖浪休閑娛樂簡單辦公的手機,這么個小終端,雖然可以擁有1G的擴展卡,越來越大內存越來越大的屏幕越來越快的CPU,但仍然手機、上網本、筆記本電腦、PC、服務器同時存在,就如同我們既買可以800萬像素拍照的山寨手機,我們仍然會專門買數碼相機。
?
既然PSP能聯網和世界上某個角落的人一起對戰,那么把數碼相機的照片在大海邊抓拍好,也可以直接直接發到網上個人空間或自己的朋友一起分享。
?
互聯網,不可避免的走入了手機為終端云計算為服務器的潮流,就如同PC和服務器的關系一樣?;ヂ摼W就是個虛擬的大計算機,連入互聯網的每個網站都是這個虛擬超級計算機的一個運算零件,每個網站的功能通過URL之間互相調用,每個應用都公布出自己的Open API,以便讓其他網站的應用進行調用,這就是SOA。
?
3G在中國的普及,會是5年,就如同中國1999年北京買手機還必須是北京戶口BP機還滿街,2002年移動和聯通的手機短信還不互通,2003年短信業務就爆發一樣,5年不到,尤其當年的手機還都在4000元以上。而如今,遍地手機,中國從工人到農民到中學生都接受了手機,所以中國的3G發展會更快。
?
而云計算,也是5年的時間,從如今的大混戰互相指責誰是偽云計算,誰是虛擬化技術,誰誰不安全了。這不重要。5年后,大量應用都在網上了,大量的數據也自然都隨著應用在網上了,提這些沒有啥意義,因為事實上就是那樣了,就是手機+云的模式了。云時代開始了,和局域網時代一樣頗具意義。
?
有Google這樣的云文件系統,有Mysql這樣的云關系型數據庫,有salesforce這樣的云應用開發,現在沒有一款開發工具和開發語言是原生在云上的,salesforce有這個潛質。javascript+XML+HTML成為UI表現的標配。AJAX利用HTTP的POST和GET打通了數據的上與下,其設計哲學比WebService,比SOA還更加開放與簡單。
?
我倒是不看好salesforce這樣的封閉應用業務開發平臺,這是10多年前的業務開發思路,但是我看到國內許多做SaaS和做業務開發平臺的,還在這條路上走,而且還有許多沒有做過業務平臺的公司都期望擁有一個這樣的平臺。其實,這些想法全都錯了。
?
正確的想法,應該是類似facebook這樣的插件平臺。大家也玩過國內的海內、校內、開心等等SNS網站,他們現在不斷的開放API,并且有大量的實用應用產生和休閑游戲學習軟件產生,大家可以選擇自己喜歡的應用去使用,這才是正確的SaaS平臺架構思路。阿里現在走的就是這條路。誰還在規定必須使用YUI,使用SOA,使用什么AOP框架,使用什么指定的持久化框架,使用什么樣的開發語言,必須要維護什么實體表,必須要維護字段列表,這樣的業務平臺架構早就落后了。
?
十多年,在企業信息化領域做架構的架構師們早就實踐、討論、思考了N多種方式,從代碼生成器到甚至自己開發一個IDE,到UI控件+組織結構權限+表單設計器+流程設計器+報表設計器,各種思路的應有盡有。有的可隨便換數據庫,有的可生成各種代碼的,JAVA的,.net的都可以生成代碼,開源的就有PHP+MYSQL的。但做到頭,大家評估了各種方案,都是各有利弊,沒有一個綜合出來一個稍能前進一些的業務平臺。其實,本身,這種思路就錯了。限制太多,倒是可以快速開發了,甚至是傻瓜配置就可以,但限制太多了,想下去的時候下不去。如果有IDE開發工具,可以寫代碼,可以UI設計,那豈不是要和Eclipse競爭。
?
說起要和Eclipse競爭,很多做業務平臺的都不約而同選擇了Eclipse平臺作為定制。因為Eclipse免費、開放源代碼、而且良好的插件體系,可以改造。如果過去沒有Eclipse,大家都要費好大力氣自己做一個IDE,要知道,做IDE,全世界打聽打聽有多難。
?
但是,很遺憾的說,盡管做了這么多,但方向確實是錯的。當年企業管理軟件的鼻祖SAP,當時是一窮二白呀,沒有辦法啊,只好自己從頭到尾從上到下都自己開發。畢竟,SAP面臨的客戶,都是UNIX、LINUX和WINDOWS都混用的主兒,各種遺留系統和IT資產都有,各種數據庫都有。所以SAP沒有辦法,為了只維護一套代碼,SAP必須自己開發自己標準的UI元素,開發適合各個平臺都能跑的代碼,而這個代碼想在各個平臺上跑,只能是虛擬機技術,唉,可憐這個做企業管理軟件的孩子啊,還得自己研究開發虛擬機,JAVA出世太晚啊。有了虛擬機,有了自己的開發語言,就需要有自己的開發IDE,SAP為了各種數據庫都能訪問,還得做自己的數據庫持久層,更得創造如今在.NET上才有的LINQ技術。累死累活的,SAP開發了這么一套平臺。沒有辦法啊,當時什么也沒有,只能自己干。
?
好容易開發出來了,基于這個平臺開發出了各行各業的應用模塊,然后不斷實施、支持、升級、增強,SAP R3終于在世界上闖出了一番名堂。
?
但很不幸,各種技術都出來了,而且還是免費開源。JAVA、ECLIPSE、中間件、JBOSS、Hibernate、FLEX。SAP大叫一聲不好,落后了。但沒有辦法,R3正是黃金收割期,耕耘了那么多年必須把這頭現金牛得擠出最后一滴奶啊。但是,R3由于應對各種EAI技術、WEB運行需求,被改造的龐大無比,從根基上來說就是無法轉型了,所以SAP看著ORACEL帶著JAVA寫的ORACLE管理軟件+ORACLE數據庫一路前進,自己只能靠R3來支撐。還必須說自己最成熟最穩定,成功案例最多業務最細致最實用,世界500強的業務都在SAP上運行。如果客戶想改,一是要價高(主要是R3多年累積,修改已經不太容易了,而且SAP人員確實薪水高),二是自己代表最先進的(??什么是最先進的?,F在有句話叫最國際化的就是最本土化的),世界500強都用了,你這個客戶現在還不是500強,就得向500強學習。
?
再說了,SAP自己也只是開發一個平臺,然后在平臺上開發一套標準的ERP應用,很多細致業務功能,各行各業的差異定制,并不是SAP在做。SAP不是一個人在戰斗。
?
SAP是把軟件銷售、軟件定制開發、軟件實施培訓、軟件服務支持都拆開了分給了合作伙伴。什么HP、EDS、IBM、德勤、埃森哲等等等等。SAP來個四六開,你六我四。如果沒有這些合作伙伴,有100個SAP也得累死還不賺錢。
?
是的,SAP是全世界企業管理軟件的鼻祖與老大。SAP走入現今這個模式,必然有它的歷史上的痛苦的各條路的嘗試經歷。這個盈利規模、這個利潤增長規模、這個業務收入增長速度,我們都看在了眼里。所以,想想我們這些還在以SAP為標桿者的我們。
?
還有一些公司開發一個平臺然后一家家的自己賣給最終客戶,還有一些公司開發一個平臺賣給其他的開發公司。還有一些公司自己本身有一套平臺但就是開發自己的行業應用。
?
有人希望平臺能夠不寫代碼,實施人員畫好業務流程圖畫好輸入表單樣式畫好報表格式,管理軟件就能跑起來。有人希望平臺能夠寫代碼。有人希望平臺能夠只寫JAVASCRIPT和SQL這些動態的東西,可以不用IDE不用編譯就能修改業務功能。有人說SAP的平臺很好,可以滿足快速低成本的定制化開發。但是,事實真的是這樣嗎?SAP有自己的開發語言,自己的IDE、自己的SQL語法,有自己的UI元素,有自己的業務實體設計器、表單設計器、報表設計器,即使現在用JAVA新開發了NETWAVER平臺,大量用了開源項目,但想扔開開發人員,找個懂業務的人培訓好了就自己畫流程圖做管理軟件去了,這都是白瞎的想法。
?
SAP真的最懂各行各業的業務管理嗎?還是那些SAP的合作伙伴最懂各行各業的業務管理?
?
SAP是個賣平臺的公司呢?還是個賣企業管理軟件的公司呢?但是,至少SAP人家自己還自己扎扎實實做一套ERP來做這個平臺的案例和樣本。我們國內一些小公司,自己做個簡單OA,就說自己的平臺從ERP到CRM到SCRM,什么都能開發。
?
什么都能,就意味著什么都不能。
?
還有一個值得大家注意的是:業務流程、工作流、程序流,是三個不同的事情?,F在還沒有一個統一的方法論把這三者統一看待在一起。但這三者其實是一件事物的不同側面,但如果想單一的用某個方法表現這件事物,會都有缺憾?,F在就缺乏這個統一的方法論,但是時候不到。就如同如果沒有前人的大量積累,是不可能出現《物種起源》、《牛頓力學》、《相對論》這三大體系的。這三個體系都在自己的專業內統一了大部分的分支理論,都能解釋。而現在在商業信息化方面,這個方法論還沒有。
?
雖然,各大巨頭,尤其SAP和IBM,一直在致力推動SOA、BPEL。希望世界上都有無法的小應用,然后用BPEL按照一定的流程順序調用接口執行。這是多么美好的組件世界,我們不正夢寐以求這種時代嗎?
?
但是,但是,人怕但是。BPEL,嚴格來說,是在程序流的這面上企圖描述業務流。但歸根到底,還偏向于程序流,是為了把SAO組件的接口串聯在一起。我過去對BPEL用XML來描述非常惱火,因為沒有UI工具,我看得頭大的很,難道讓我修改業務流程必須用UI界面嗎?我非常希望用JAVASCRIPT來整合調用接口,就如同Mashups一樣多簡單。我曾經和普元的朋友還一起爭論這個事情。但事后我也想了想,是啊,國際巨頭眾口難調,都各自都有各自的利益,如果出一個SCRIPT的腳本語言來串聯調用SOA組件,那么這個腳本語言就要討論N年了。君不見現在ActiveScirpt和微軟的Script大戰,瀏覽器不兼容的大戰,背后其實都是利益。為了避免又被討論N年,所以索性是XML,語義語法你自己拿XST/XTD/DOM自己擴展去。真正的四海一家解決之道。
?
聽過IBM和各大巨頭也正在研究這個統一的方法論,從BPM到BPEL到WORKFLOW,怎么統一起來成事務的三面性成為立體的。但這個方法論不可能如大家所愿比較早的出來。
?
SOA的大混戰才在概念層面剛剛打完仗,在客戶層面還沒有多少落實,投入了那么多怎么不要產出呢?所以,必須等這一代SOA賺的盆滿缽滿的時候,新一代的SOA才會推出。至少在7-10年之后。因為,這是一代企業管理軟件的最短生命周期。直到那個年頭后,新一代SOA推出后,巨頭們才會說:啊呀,過去我們所做的還不夠完美,大家走了很多彎路,現在我們終于找到一條更先進的路了。
?
但是,10年以后世界會有哪些新變化會出現什么新生事物,誰又能預料得到呢?誰想等10年后完美了才去做?他如果10年后不出來那豈不是黃瓜菜都涼了?
?
所以,能干點嗎就干點嗎。
?
總結:
1 在這篇文章中我說了5年后的3G手機和云計算時代會來臨。在這個環境下作些什么該有前途,大家好好想想。
2 仔細關注一下云開發平臺,Google的代碼托管、Google的Open API/AJAX/ATOM APP/REST/HTTP POST
3 我個人感覺現在的SaaS架構和業務平臺的方向就不對,建議關注一下facebook的架構,或者搜狐BLOG的架構
4 我個人感覺現在的SOA、BPEL缺乏統一的方法論,關于這個統一的方法論的思考,我會專門再給大家貼一篇文章。
?
《走出軟件作坊》網上訂購:
互動網:http://www.china-pub.com/508874
卓越網:http://www.amazon.cn/mn/detailApp?prodid=bkbk812538&ref=GS_TS&uid=168-8093432-0389064
當當網:http://product.dangdang.com/product.aspx?product_id=20435119
總結
以上是生活随笔為你收集整理的统一论:3G手机、云计算、SaaS、业务开发平台、SOA、BPEL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三千繁华,感情在日子里
- 下一篇: django全自动分库分表(横向)