米布(8101690) 23:08:08
大家有沒有想把 axis 嵌到自己產(chǎn)品中去的?
我有一個(gè)理想(24332715) 23:08:13
如果SCA構(gòu)件分布式的部署在多個(gè)應(yīng)用服務(wù)器上,那么在裝配中
我有一個(gè)理想(24332715) 23:08:24
SCA的服務(wù)結(jié)構(gòu)
我有一個(gè)理想(24332715) 23:08:35
接口
我有一個(gè)理想(24332715) 23:08:43
使用WS定義
我有一個(gè)理想(24332715) 23:08:57
那么裝配出來的應(yīng)用效率是不是很低
david(172171) 23:09:12
可以認(rèn)為SCA的容器是一個(gè)bean
我有一個(gè)理想(24332715) 23:09:47
沒懂
david(172171) 23:10:52
sca容器宿主在Tomcat上,通過sca可以引用其它分布的應(yīng)用
david(172171) 23:11:40
SCA宿主:啟動(dòng)SCA裝配過程的系統(tǒng)
米布
(8101690) 23:11:24
我能否用 bpel 流程來引用SCA呢?
david(172171) 23:11:42
可以
david(172171) 23:12:02
這個(gè)問題在那個(gè)群里已經(jīng)討論過了
我有一個(gè)理想(24332715) 23:12:23
通過宿主進(jìn)行的引用?
david(172171) 23:12:28
對
david(172171) 23:12:30
http://blog.csdn.net/teamlet/archive/2007/03/22/1537510.aspx
我有一個(gè)理想(24332715) 23:12:37
謝謝
david(172171) 23:12:56
從這個(gè)圖中可以看出 SCA中的component和bpel的關(guān)系
david(172171) 23:13:52
sca的component/(composite: cuiyi add)對外提供粗粒度的接口,bpel通過implementation提供細(xì)粒度的實(shí)現(xiàn)
david(172171) 23:14:09
sca是bpel更高層次的抽象(bpel is implement technology, sca is a component, compent is interfaces, one for expose, another for reference,就是下面的棍/坑說啦,cuiyi add)。
我有一個(gè)理想(24332715) 23:14:38
bpel是SCA的服務(wù)實(shí)現(xiàn)
我有一個(gè)理想(24332715) 23:14:45
是一種
我有一個(gè)理想(24332715) 23:14:50
這么理解對嗎?
david(172171) 23:15:10
是的,是其中的一種
david(172171) 23:14:57
component只不過是sca裝配模型中最基本的組件單元,上面還有composite,domain
david(172171) 23:15:36
想用bpel調(diào)用sca是可以的,但是大才小用了
david(172171) 23:16:45
實(shí)現(xiàn)包括 , C++, PHP, Java Script, BPEL, SQL, XQuery, Composite,ruby
david(172171) 23:17:12
當(dāng)然還有java
我有一個(gè)理想(24332715) 23:49:42
SCA Component 它有一個(gè)殼,殼上Service,Reference,property,殼里邊包含的東西連接著Service,Reference,property,殼里邊的東西就是這個(gè)Component的implementation(not exactly, cuiyi add),implementation可以是很多東西,java,c++等等什么都行,這么理解對不對。
兩塊田(7739638) 23:52:39
很對
我有一個(gè)理想(24332715) 23:56:40
殼上的Service就是指出來的棍(凹進(jìn)去的坑,引用找服務(wù),就像棍插坑,cuiyi add),Reference就是凹進(jìn)去的坑(凸出來的棍),棍插坑,坑插棍,幾個(gè)連一起,還有坑還有棍這時(shí)候是合成組件(Composite),對不?
兩塊田(7739638) 23:57:14
說得有點(diǎn)色了~:)
我有一個(gè)理想(24332715) 23:57:23
哈哈
我有一個(gè)理想(24332715) 23:58:33
再整幾個(gè)只有棍的,還有只有坑的,把Composite的棍和坑插滿,就是系統(tǒng)域(Domain)
兩塊田(7739638) 00:11:24
兄弟研究棍和坑研究得挺深啊.
我有一個(gè)理想(24332715) 00:11:38
兩塊田(7739638) 00:12:02
重要的是可以插進(jìn)去,插出來又可以用到別的坑里~:)
我有一個(gè)理想(24332715) 00:13:48
嗯
the following add by cuiyi, 系引用



開-閉”原則(Open-Closed Principle)是面向?qū)ο蟮目蓮?fù)用設(shè)計(jì)(Object Oriented Design或OOD)的基石。其他設(shè)計(jì)原則(里氏代換原則、依賴倒轉(zhuǎn)原則、合成/聚合復(fù)用原則、迪米特法則、接口隔離原則)是實(shí)現(xiàn)“開-閉”原則的手段和工具。
“開-閉”原則的定義
定義:一個(gè)軟件實(shí)體應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉。
( Software entities should be open for extension,but closed for modification)。
在設(shè)計(jì)一個(gè)軟件系統(tǒng)模塊的時(shí)候,應(yīng)該使這個(gè)模塊可以在不被修改的前提下被擴(kuò)展,或者說,可以在不必修改原來代碼的情況下改變這個(gè)模塊的行為。
滿足“開-閉”原則的系統(tǒng)的優(yōu)點(diǎn)
1)通過擴(kuò)展已有的軟件系統(tǒng),可以提供新的行為,以滿足對軟件的新需求,使變化中的軟件系統(tǒng)有一定的適應(yīng)性和靈活性。
2)已有的軟件模塊,特別是最重要的抽象層模塊不能再修改,這就使變化中的軟件系統(tǒng)有一定的穩(wěn)定性和延續(xù)性。
具有這樣兩個(gè)優(yōu)點(diǎn)的系統(tǒng)是一個(gè)在高層次上實(shí)現(xiàn)了復(fù)用的系統(tǒng),也是一個(gè)易于維護(hù)的系統(tǒng)。
“開-閉”原則的實(shí)現(xiàn)——抽象化
面向?qū)ο缶幊陶Z言可以使用抽象的方法,為系統(tǒng)定義一個(gè)不再更改的抽象設(shè)計(jì)來作為系統(tǒng)的抽象層。這個(gè)抽象層覆蓋了所有未來可能擴(kuò)展,因此在任何情況都不會(huì)改變。這樣使系統(tǒng)的抽象層保持不變,從而滿足了開閉原則的第二點(diǎn):對修改關(guān)閉。
由于從抽象層導(dǎo)出的一個(gè)或多個(gè)具體類可以改變系統(tǒng)的行為,因?yàn)橄到y(tǒng)的設(shè)計(jì)對擴(kuò)展是開放的,從而滿足了開閉原則的第一點(diǎn):對擴(kuò)展開放。
在SCA框架中,無論在commonj還是SPI;無論是composite還是component,都可以看到開閉原則的應(yīng)用。
remark by cuiyi
I feel Component in SCA just a restriction according to DP, so exposed as interface or web service description language (XML), just made DP a restriction to developers, meanwile, the systems developed on it can be more extensice and integratable; 即:
SCA 提供一個(gè)以與技術(shù)無關(guān)的方式定義接口、實(shí)現(xiàn)和引用的模型,從而使技術(shù)人員能夠?qū)⑦@些元素綁定到所選擇的某一技術(shù)的特定實(shí)現(xiàn)。
例如,我們可以用 Java 定義我們的接口,將我們的實(shí)現(xiàn)作為 BPEL 流程加以應(yīng)用,或者將接口作為一個(gè) WSDL 文檔,而且我們的實(shí)現(xiàn)可以是一個(gè) Java™ 類。下圖 演示了如何在 IBM WebSphere Process Server 中使用 SCA。
圖. WebSphere Process Server 中的 SCA

SCA的目的是使用戶在構(gòu)建企業(yè)應(yīng)用時(shí)有一個(gè)不再直接面對具體的技術(shù)細(xì)節(jié)的層次,而是通過服務(wù)組件的方式來構(gòu)建應(yīng)用。這種方式也使得客戶的企業(yè)應(yīng)用具有良好的分層架構(gòu),能夠很好的分離應(yīng)用的業(yè)務(wù)邏輯和IT邏輯,不但易于應(yīng)用的構(gòu)建,也易于應(yīng)用的更改和部署。
○分離業(yè)務(wù)邏輯和技術(shù)實(shí)現(xiàn)邏輯
○業(yè)務(wù)過程由松散耦合、可重用的組件或服務(wù)組成
○組件或服務(wù)與平臺和實(shí)現(xiàn)無關(guān)
實(shí)際上呢,其就是對現(xiàn)有技術(shù)的再一次包裝,達(dá)到真正的屏蔽語言,我們來看看SOA規(guī)范理念,是如何達(dá)到屏蔽和包裝的:

SCA規(guī)范包括了Assemble Model和Client Model兩部分。
前者約定了如何將異種組件(Java類,BPEL,WebService)組裝并發(fā)布成SOA服務(wù),這也是SCA
最大的特點(diǎn)和最核心的概念;
后者則約定了如何在異種語言環(huán)境中調(diào)用SOA服務(wù)。
那么,通過這兩部分的規(guī)范,就可以完全解決了服務(wù)從服務(wù)端到客戶端的跨語言、跨實(shí)現(xiàn)技術(shù)的問題。
其即將推出的DAS規(guī)范,也無非是我們現(xiàn)有技術(shù)的再次包裝,理念圖如下:

這樣,客戶端看到的只是DataGraph中的DataObject就是我們說的SDO,而不再需要去關(guān)注或者操作所謂的JDBC等連接數(shù)據(jù)庫的、以及JCA等連接手段獲得的數(shù)據(jù)入口了。
于是我們看到了,SOA通過SCA、SDO對現(xiàn)有技術(shù)進(jìn)行了再次包裝或者屏蔽,從而達(dá)到了一個(gè) 大一統(tǒng) 的局面,但是尚未知對于大多的開發(fā)者來說這是否是一個(gè)好的消息。
不過通過如下,我們發(fā)現(xiàn)并不是如此的悲觀:

goCom SCA規(guī)范綜述
實(shí)施SOA不意味著要推翻既有的架構(gòu),比如MVC,而是要在現(xiàn)有架構(gòu)上做更大的架構(gòu)。

傳統(tǒng)的MVC對于單個(gè)應(yīng)用來說非常成熟,這是實(shí)踐中證明的。對于大多數(shù)獨(dú)立的應(yīng)用和系統(tǒng)來說MVC很勝任。然而,當(dāng)企業(yè)中的應(yīng)用規(guī)模不斷擴(kuò)大,從幾個(gè)到幾十個(gè)甚至上百個(gè)的時(shí)候,靠若干MVC架構(gòu)的不斷疊加能夠構(gòu)造出一個(gè)適合企業(yè)級的架構(gòu)么?所以才出現(xiàn)了Portal這樣的新技術(shù)來迎接這樣的挑戰(zhàn),但是Portal的關(guān)注點(diǎn)更靠近與展現(xiàn)端,在底端通訊方面不能給出更好的答案。所謂架構(gòu)是要一套整體解決方案,這樣的架構(gòu)所要解決的問題簡而言之就是兩個(gè)特點(diǎn):數(shù)目或規(guī)模大、異構(gòu)應(yīng)用交互。