監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 簽約案例 | 購買價格 | 在線試用 | 手機APP | 產(chǎn)品資料
X 關(guān)閉
重慶OA行業(yè)資訊

當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 重慶OA系統(tǒng) > 重慶OA行業(yè)資訊

Q & A:關(guān)于SOA理論與應(yīng)用的八大問題

申請免費試用、咨詢電話:400-8352-114

來源:泛普軟件

過去我曾經(jīng)對SOA的思想寫的挺明白,但估計文章太羅嗦,N多人沒看下去。所以我想單刀直白點

一、問:為什么要SOA?

答:因為SOA出現(xiàn)前,世界上有Corba組件模型、JAVA組件模型、COM+組件模型、.NET組件模型。其中,CORBA組件模型和JAVA組件模型屬于IBM為首那一類陣營(一伙的還有BEA、ORACLE、HP、SUN之類的),而COM+組件模型和.NET組件模型屬于微軟這獨個一家的,自古兩個陣營是表面同行、暗地互掐。

IBM當(dāng)然需要四海一家的解決之道。因為JAVA組件模型老受SUN的牽絆,而且江湖風(fēng)傳EJB已死。CORBA組件模型呢,一直沒有當(dāng)過老大主流流行過。其他兩個組件模型都在微軟封閉的圈子里,IBM就想在在這四大組件模型之上再加一層組件模型,這樣就天下大同了,這就是SCA。

有了SCA組件模型,各個異構(gòu)組件模型現(xiàn)在都被包裝成一樣的組件了,怎么數(shù)據(jù)傳遞?當(dāng)然就是SDO來幫忙。

二、問:聽說SOA主要優(yōu)勢是整合,但是我們既然有webService了,要SOA干嗎?

答:WebService是整合包裝統(tǒng)一成WebService協(xié)議族的很好的規(guī)范,但WebService又不是組件模型。有人問了,你管我是組件不是組件,我給你包裝一層webservice,咱們倆能調(diào)用就OK了。

這就涉及到咱們國家的計算機發(fā)展階段了。因為咱們國家的開發(fā)界,N多程序員還停留在雙擊一下按鈕,IDE自動給生成一個onclick事件,然后在里面寫東西。很多程序員根本沒有意識去主動寫函數(shù),程序里的函數(shù)都是IDE自動生成的事件處理函數(shù),并非程序員寫的自己的函數(shù)。連函數(shù)都沒有主動意識的,怎么會有主動意識去自己編寫類,自己編寫組件類,大多數(shù)程序員在使用系統(tǒng)提供的類庫,系統(tǒng)提供的可視化組件。所以,N多程序員就不明白為什么要有SOA組件模型了。

世界主流代碼開發(fā)都已經(jīng)是編寫組件類了,這是業(yè)界的發(fā)展需求,但我們國內(nèi)代碼開發(fā)水平和需求還沒有到這個層次,還在onclick。所以我們不理解。

如果我們也平時很自然的自己編寫組件類,那么我們現(xiàn)在很自然的希望有支持SOA的組件模型,因為這樣的組件模型,就可以很通暢的和過去的CORBA組件模型、JAVA組件模型、COM+組件模型、.NET組件模型交互了。如果我們現(xiàn)在還不用SOA組件模型,還在用四大組件模型,以后想異構(gòu)組件之間交互,還得再開發(fā)一層SCA。

三、問:那SOA就這么簡單?就是SCA+SDO?

答:目前國際SOA標(biāo)準(zhǔn)推出的就是這兩大標(biāo)準(zhǔn),SCA和組件SDO。和SOA關(guān)聯(lián)的還有兩個東西,一個是BPEL,一個是ESB。SCA是有了統(tǒng)一的組件,SDO是有了統(tǒng)一的組件數(shù)據(jù)交互,BPEL是讓組件之間串聯(lián)在一起,然后自動運行,就如同我們把一個個的鞭炮擰在一起,然后點燃捻子,鞭炮就全都自己串聯(lián)著爆炸了,BPEL就是干這個用的。而ESB呢,就如同各個組件,都需要在一個容器中執(zhí)行,號稱組件容器服務(wù)器,JBOSS最初的功能就是EJB組件的容器服務(wù)器。而ESB呢,當(dāng)然就是SOA組件的容器服務(wù)器了。

四、問:SOA就這么簡單嗎?我怎么看書看網(wǎng)站,說是讓業(yè)務(wù)人員和技術(shù)人員更好的結(jié)合,要用業(yè)務(wù)角度去看技術(shù),這個話不理解?

答:這是給SOA組件設(shè)計師一個設(shè)計指導(dǎo)。也就是說,當(dāng)你要設(shè)計一個SOA組件,你要暴露出什么功能,要多達粒度的,可能你這個組件類可以圍繞一個主題完成10個功能,但10個功能編寫實現(xiàn)比較復(fù)雜,你最后內(nèi)部寫代碼的時候?qū)懗闪撕瘮?shù)嵌套函數(shù),那么你內(nèi)部有許多函數(shù)了,你到底要暴露出哪些。咱們設(shè)計組件類的接口,往往不容易把握粒度的問題。就如同你如果剛剛一開始寫面向?qū)ο蟮拇a,很容易會濫用對象,設(shè)計的對象很多,如果還沒有過面向?qū)ο箝_發(fā)的程序員,你可能想像不出來為什么會有這種過度使用對象的現(xiàn)象。人就是這樣,用的爽了,就容易過度使用。所以什么粒度合適,給指導(dǎo)了,面向業(yè)務(wù)。從組件類的消費者角度來看,需要暴露出哪些功能。這就有了一方是功能消費調(diào)用者,一方是功能輸出產(chǎn)生者,那么這個功能輸出,用行話就是輸出的是服務(wù)。

五、問:SOA就這么簡單嗎?我看書看網(wǎng)站說,SOA可以使軟件靈活,我們現(xiàn)在就是軟件代碼越來越復(fù)雜,功能越來越多,客戶需求提出來,我們很難下手修改,修改起來費時間,而且還不知道這塊修改了會影響哪塊,讓軟件質(zhì)量無法穩(wěn)定,我們正需要SOA,但是SOA是怎么做到這點了,我不理解呀?

答:當(dāng)然COM+、EJB成為風(fēng)潮的時候,都說過這個話。你想啊,軟件都是一個個封裝密閉的組件,把組件連接起來,這當(dāng)然靈活了。你想想你現(xiàn)在,.NET給你提供了許多可視化組件,也提供了許多非可視化組件,人家就是用組件做成了,你現(xiàn)在開發(fā)起來,把組件拖拽下來,設(shè)置一下屬性,編程一下方法,你現(xiàn)在開發(fā)速度快多了吧,如果沒有這么多組件,你想你多累。這就是組件的好處與靈活性。SOA組件也是組件,只不過是包裝的更高一層的組件,是為了讓四大組件模型能統(tǒng)一順暢調(diào)用的,所以你把SOA組件當(dāng)成.net組件來看待就很明白了。

六、問:中國現(xiàn)在好多企業(yè)都還沒有信息化,即使一些很賺錢的行業(yè)或壟斷國企做了信息化,但都自己封閉起來,和其他企業(yè)之間老死不相往來,SOA在中國有用處嗎?

答:你用不用SOA組件模型,就如同你用不用.NET組件一樣,管整合什么事。你如果只想整合,webservice就可以了。用不用組件式開發(fā),是你自己的事情,如果你想讓你的程序變的靈活。你看.net里面那么多組件,給你的開發(fā)帶來了很多的輕松啊。

七、問:現(xiàn)在SOA成熟嗎?該到應(yīng)用的時候了嗎?

答:成熟不成熟,你得看支持SOA標(biāo)準(zhǔn)的開發(fā)工具成熟沒成熟,做SOA應(yīng)用就需要成熟的開發(fā)工具。有了能很順手的SOA組件開發(fā)工具,那就看看有沒有成熟的SOA組件容器服務(wù)器。如果這兩項都不錯了,就可以開發(fā)了。我們當(dāng)年開發(fā)COM+的時候,COM+不成熟,COM+開發(fā)工具不成熟,COM容器不成熟,造成線程死鎖、并發(fā)排隊、緩沖池崩潰、內(nèi)存泄露很多問題,搞的我們很是頭疼,最后找來開發(fā)工具廠商的人,找來微軟,才算弄清問題,原來一方面是微軟COM+有問題,一方面開發(fā)工具也有問題,白耽誤了我們許多時間。不過福兮禍兮,倒是讓我對組件模型、WINDOWS基礎(chǔ)核心技術(shù)思想倒是精進不少。

八、問:我看你有點誤導(dǎo)人?,F(xiàn)在企業(yè)級開發(fā),實際主流標(biāo)準(zhǔn)就兩個,一個是.NET,一個是JAVA。.NET本來就似乎支持WebService第一類的技術(shù),而JAVA是后來才加入WebService的,所以算不得原生結(jié)合。況且微軟自己自成一套體系,.NET組件模型也很好,我為什么要用SOA組件模型呢?

答:確實這里面也有些商業(yè)目的。雖然IBM現(xiàn)在是JAVA領(lǐng)域的領(lǐng)頭羊,也在JAVA上建立了一整套產(chǎn)品體系,投資頗大,但畢竟JAVA是出自SUN,所以SUN為了保護自己的利益當(dāng)然要不讓IBM自己主導(dǎo)的很爽了,所以JAVA要推出一項特性,往往時間很慢,而且總需要兼顧各方利益,所以大家都看到,近幾年出來的JAVA新特性標(biāo)準(zhǔn)都不盡人意,就是各方利益拉鋸的產(chǎn)物,誰也不得罪,就形成了中庸的東西。IBM早就想甩開SUN了,但IBM在JAVA上也投資巨大,如果另起爐灶也不太可能,所以想到這個移花接木的方法,把JAVA架空。出了一個SOA模型,各種語言都可以實現(xiàn),不僅僅限于JAVA平臺上,在SOA的統(tǒng)一架構(gòu)技術(shù)至上,就沒有JAVA痕跡了,那就輪到IBM大顯身手了,所以O(shè)SOA組織,SUN是很靠后才參加的。因為SUN知道,不參加會被甩的更遠(yuǎn),現(xiàn)在參加,還能撈點殘余。反正最終的命運是要被掃走。

SUN的JAVA被IBM正在一步步邊緣化,當(dāng)然投入過深,想抽出來也不容易,但IBM有這個財力也有這個耐心。IBM不斷宣稱開源,ECLIPSE,IBM支持了很多,讓大家在開源世界接納了IBM,而且IBM近幾年一直在推動web2.0,也就是輕巧化的開發(fā)。企業(yè)級開發(fā),大家一想就頭疼,都是大框架大平臺很復(fù)雜,IBM也知道顧客煩了,現(xiàn)在全世界的IT巨頭都在宣稱簡化IT。呵呵,這些家伙,把東西搞復(fù)雜故意建造競爭壁壘的是他們,現(xiàn)在簡化IT的還是他們,正反都能賣。

而大家要注意到,OSOA推出了SOA標(biāo)準(zhǔn)后,推出了三種實現(xiàn),一種是JAVA,一種是C/C++,另一種是什么呢?大家猜一猜。

對,它就是PHP。(暢享網(wǎng))

發(fā)布:2007-04-27 16:17    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:

泛普重慶OA行業(yè)資訊其他應(yīng)用

重慶OA軟件 重慶OA新聞動態(tài) 重慶OA信息化 重慶OA客戶 重慶OA快博 重慶OA行業(yè)資訊 重慶軟件開發(fā)公司 重慶網(wǎng)站建設(shè)公司 重慶物業(yè)管理軟件 重慶餐飲管理軟件 重慶倉庫管理系統(tǒng) 重慶門禁系統(tǒng) 重慶微信營銷 重慶ERP 重慶監(jiān)控公司 重慶金融行業(yè)軟件 重慶B2B、B2C商城系統(tǒng)開發(fā) 重慶建筑施工項目管理系統(tǒng)開發(fā)