Posted on 2006-10-03 17:14
Dart 閱讀(1884)
評(píng)論(6) 編輯 收藏 所屬分類(lèi):
SCA
發(fā)個(gè)鬧騷
我們習(xí)慣把那些給企業(yè)單位做項(xiàng)目的公司稱(chēng)為集成商。
現(xiàn)在來(lái)看,很多集成商日子并不好過(guò),集成商由于競(jìng)爭(zhēng)激烈,拿到項(xiàng)目變得比以前困難了,再加上現(xiàn)在給企業(yè)和單位做項(xiàng)目越來(lái)越難,
一個(gè)項(xiàng)目的實(shí)際投入和最后的回報(bào)越來(lái)越接近相等,于是利潤(rùn)變得越來(lái)越少。
現(xiàn)在的項(xiàng)目開(kāi)發(fā)商的投入越來(lái)越大,比如一個(gè)金融行業(yè)的項(xiàng)目開(kāi)發(fā)商,從程序員到行業(yè)專(zhuān)家,各個(gè)層面的人才都要有;一個(gè)項(xiàng)目開(kāi)發(fā)過(guò)程基本就是從無(wú)到有,而以前的項(xiàng)目積累,真正能復(fù)用的部分很少,最多的就是拿上一個(gè)項(xiàng)目的需求分析,作為這個(gè)項(xiàng)目開(kāi)發(fā)的參考,將以前的代碼摘出來(lái),能用就用,不能用的也將就用。
為了獲得最大利潤(rùn),開(kāi)發(fā)商想盡了一切方法:比如加強(qiáng)對(duì)軟件開(kāi)發(fā)過(guò)程的管理,盡量?jī)?yōu)化開(kāi)發(fā)過(guò)程;構(gòu)建自己的重用庫(kù),盡量做到一勞永逸;壓縮開(kāi)發(fā)人員的成本支出(薪水下降),盡可能提供工作效率(加班),但是誰(shuí)有能想到,即使這么做了,還是難以應(yīng)付日趨增加的項(xiàng)目的開(kāi)發(fā)成本呢,再加上國(guó)內(nèi)軟件行業(yè)的不規(guī)范化,錢(qián)是越來(lái)越難掙了。
而我們這些處于低層的開(kāi)發(fā)人員是直接受害者:項(xiàng)目獎(jiǎng)金成為了美麗的傳說(shuō),按時(shí)發(fā)放工資已經(jīng)成為我們?cè)谕忻媲膀湴恋馁Y本,于是開(kāi)發(fā)人員紛紛以跳槽向公司提出抗議。領(lǐng)導(dǎo)們的日子更不好過(guò),面對(duì)人才流動(dòng)的加劇,項(xiàng)目周期不得不一拖再拖,最后也只能接受客戶壓價(jià)的決定,面對(duì)這種得不符失的情況,領(lǐng)導(dǎo)們開(kāi)始吶喊:拿什么奉賢給你,我的員工?能
發(fā)工資就不錯(cuò)了,還奢望項(xiàng)目獎(jiǎng)金呢。就這樣,惡性循環(huán)開(kāi)始了。
1.1 離職
這種現(xiàn)象我想并不是某一家公司是這樣的,應(yīng)該說(shuō)在很多公司都存在這種問(wèn)題。那為什么導(dǎo)致這種問(wèn)題的存在呢?競(jìng)爭(zhēng)激烈?客戶越來(lái)越難擺平?還是公司自身存在的諸多問(wèn)題呢?其實(shí),這些都不是問(wèn)題,每個(gè)行業(yè)都存在上述問(wèn)題,軟件企業(yè)需要做的并不是解決上述問(wèn)題,而是認(rèn)真思考如何去降低我們的開(kāi)發(fā)成本。
開(kāi)發(fā)
平臺(tái)/框架的誕生
就如同上面所說(shuō)的,多少年來(lái),我們?yōu)樵S多企業(yè),政府部門(mén),銀行等單位開(kāi)發(fā)了一套又一套的系統(tǒng),每套系統(tǒng)的開(kāi)發(fā)過(guò)程都如出一轍:需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,
Debug
,交付,然后緊接著就是不停地根據(jù)用戶的需求更改或者增加系統(tǒng)功能,假設(shè)在需求分析和設(shè)計(jì)階段,我們做得很好,能夠很容易地應(yīng)付用戶的需求變更,但是也不能做到應(yīng)變自如。
在這種前提下,近年來(lái),有很多公司開(kāi)發(fā)研發(fā)“框架平臺(tái)”類(lèi)產(chǎn)品,這一類(lèi)產(chǎn)品可以分到中間件的范疇,作為業(yè)務(wù)邏輯層的中間件存在,它的任務(wù)就是將一些已經(jīng)成型的技術(shù)和行業(yè)業(yè)務(wù)邏輯成了組件的形式,這些組件之間有著很強(qiáng)的交互性能,然后通過(guò)開(kāi)發(fā)工具將這些組件按照業(yè)務(wù)需要像搭積木一樣組合起來(lái),形成一套業(yè)務(wù)邏輯框架。這大大縮短了開(kāi)發(fā)時(shí)間。這一類(lèi)的產(chǎn)品目前不少,比如我以前所在公司的
ezONE
平臺(tái),普元的
EOS
平臺(tái),科諾的
KA
平臺(tái),還有東方通的
BOA
等。
而這些“平臺(tái)”真的能夠提高我們的開(kāi)發(fā)效率嗎?在一定程度上說(shuō)是可以的,但是這需要我們已經(jīng)擁有了大量現(xiàn)成的行業(yè)組件。
大量的可用組件,能夠讓開(kāi)發(fā)人員更少地去關(guān)注技術(shù)細(xì)節(jié),而把更多精力投入到對(duì)業(yè)務(wù)本身,讓我們的項(xiàng)目開(kāi)發(fā)不會(huì)由于技術(shù)細(xì)節(jié)而耗費(fèi)更多的時(shí)間。由于組件之間的可以動(dòng)態(tài)進(jìn)行配置,所以用戶的需求變更對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)只不過(guò)是替換一個(gè)新的組件,再改變一下組件之間的連接調(diào)用順序而已。
2.1 “就像搭積木一樣簡(jiǎn)單”
可惜的是,這些平臺(tái)都各自為戰(zhàn),并沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)。
SOA
和
SCA
SOA(面向服務(wù))并不是什么技術(shù)標(biāo)準(zhǔn),而是一種思想,它是方法論層面上的東西,就像當(dāng)年的
OOP
一樣,只是一種指導(dǎo)我們思考問(wèn)題的方法。
上面所提到的諸多平臺(tái)可以說(shuō)就是基于
SOA
思想的,但是大部分還是基于構(gòu)件或者組件的。它們把業(yè)務(wù)功能單元設(shè)計(jì)成了服務(wù)構(gòu)件,服務(wù)之間通過(guò)明確的接口定義進(jìn)行連接起來(lái),這些粗粒度,松偶合的服務(wù)能夠很容易地進(jìn)行整合。
但是
SOA
僅僅是一種思想,并沒(méi)有一個(gè)特定的技術(shù)規(guī)范或者標(biāo)準(zhǔn),各個(gè)廠商為了能夠盡快讓
SOA
“落地”,于是就由數(shù)家比較大的
IT
公司推出了一個(gè)基于
SOA
思想的
SCA
框架標(biāo)準(zhǔn)。
SCA
標(biāo)準(zhǔn)目前還在完善階段,它于
2005
年
11
月發(fā)布了
0.9
版本,目前版本已經(jīng)到了
0.96
。在
0.9
版本中,
SCA
標(biāo)準(zhǔn)就提出了
Java
實(shí)現(xiàn)以及
C++
實(shí)現(xiàn)標(biāo)準(zhǔn),而且在以后的版本中,會(huì)陸續(xù)加入其他的實(shí)現(xiàn)標(biāo)準(zhǔn),也就是說(shuō)
SCA
并不是只針對(duì)某一種語(yǔ)言的,不同語(yǔ)言或者環(huán)境之間通過(guò)開(kāi)放的,標(biāo)準(zhǔn)的技術(shù)來(lái)實(shí)現(xiàn)互操作,比如我們常見(jiàn)的WebService等
。
SCA
提出的這套基于
SOA
去構(gòu)建企業(yè)應(yīng)用的編程模型,它的基礎(chǔ)思想就將業(yè)務(wù)功能構(gòu)造成一系列的服務(wù),并且能夠很好地將這些服務(wù)組合起來(lái),達(dá)到解決業(yè)務(wù)需求的目的。在構(gòu)建這些應(yīng)用時(shí)所用到的服務(wù),不僅包含新建服務(wù),而且可以包括已有的業(yè)務(wù)應(yīng)用中的業(yè)務(wù)功能,也就是說(shuō),
SCA
提供了一套針對(duì)服務(wù)組合和服務(wù)創(chuàng)建的模型。
目前國(guó)內(nèi)的
普元
已經(jīng)加入到了OSOA組織,參與到了SCA/SDO的規(guī)范制定中,而且
中企動(dòng)力
和
方欣科技
也作為Supporter加入到OSOA中。
而在實(shí)際開(kāi)發(fā)中,很難說(shuō)真存在這種一勞永逸的開(kāi)發(fā)模式
可是隨著時(shí)間的推移,誰(shuí)能保證這些組件庫(kù)的功能還能夠滿足用戶的需要呢?退一步說(shuō),這些粗粒度的組件庫(kù)能夠承擔(dān)多年后的開(kāi)發(fā)任務(wù)嗎?而對(duì)這些組件庫(kù)的維護(hù)又怎么辦?
所有的一切我們只能拭目以待。
異想天開(kāi)
假如真的存在一個(gè)完善的,標(biāo)準(zhǔn)化的面向服務(wù)的框架平臺(tái),那我們以后的項(xiàng)目開(kāi)發(fā)可能會(huì)是另外一種模式。
首先,在完善的面向服務(wù)框架平下,很多服務(wù)提供商開(kāi)始誕生,這些提供商都是有多年行業(yè)經(jīng)驗(yàn)的開(kāi)發(fā)商演變而來(lái),他們將以前的項(xiàng)目積累作為服務(wù)發(fā)布出來(lái),根據(jù)業(yè)務(wù)不同,創(chuàng)建出不同的服務(wù),每個(gè)服務(wù)能夠完成一定的業(yè)務(wù)邏輯,但是需要進(jìn)行整合或者二次開(kāi)發(fā)。
然后在這種環(huán)境下,行業(yè)咨詢公司如同雨后春筍一般不斷涌現(xiàn),這些公司都是由行業(yè)內(nèi)部人士為核心的咨詢公司,他們將多年在行業(yè)內(nèi)部的經(jīng)驗(yàn)轉(zhuǎn)變成需求,提供給集成商。
而集成商還需要一些外包開(kāi)發(fā)商進(jìn)行支持(不是人才外包),外包開(kāi)發(fā)商具有很強(qiáng)的技術(shù)背景,擁有一批技術(shù)開(kāi)發(fā)能力很強(qiáng)的開(kāi)發(fā)人員,專(zhuān)門(mén)從事技術(shù)細(xì)節(jié)的實(shí)現(xiàn),能夠很好地解決較難的技術(shù)細(xì)節(jié)問(wèn)題。
一個(gè)項(xiàng)目的開(kāi)發(fā)過(guò)程變成了由企業(yè)提出需求,然后通過(guò)行業(yè)咨詢公司,作出更專(zhuān)業(yè)需求以及解決方案,跟著企業(yè)會(huì)根據(jù)咨詢公司提供的方案和建議,去采購(gòu)服務(wù)提供商的產(chǎn)品,然后將項(xiàng)目發(fā)給集成商,集成商再根據(jù)需要進(jìn)行服務(wù)的組裝集成,然后在外包公司的協(xié)助下完成項(xiàng)目。
以后的項(xiàng)目開(kāi)發(fā),不再是一家公司從頭做到尾了,開(kāi)發(fā)一個(gè)項(xiàng)目需要設(shè)計(jì)到各個(gè)領(lǐng)域?qū)I(yè)性比較強(qiáng)的公司,這樣一來(lái),開(kāi)發(fā)任務(wù)分?jǐn)偟搅烁鱾€(gè)公司頭上,項(xiàng)目開(kāi)發(fā)難度大大降低。
?
?
4.1 聯(lián)合起來(lái)
結(jié)束語(yǔ)
面向服務(wù)很有可能是以后的一種開(kāi)發(fā)趨勢(shì),各位開(kāi)發(fā)同仁們不妨做做技術(shù)前瞻,多關(guān)注一下SCA/SDO的發(fā)展趨勢(shì),為下一階段的工作做好準(zhǔn)備。
有小道消息稱(chēng),現(xiàn)在企業(yè)的CIO一聽(tīng)到“基于SOA”眼睛就放光……