soa雜感系列一:色解SCA(reference to qqgroup & articles on network)
米布(8101690) 23:08:08
大家有沒有想把 axis 嵌到自己產品中去的?
我有一個理想(24332715) 23:08:13
如果SCA構件分布式的部署在多個應用服務器上,那么在裝配中
我有一個理想(24332715) 23:08:24
SCA的服務結構
我有一個理想(24332715) 23:08:35
接口
我有一個理想(24332715) 23:08:43
使用WS定義
我有一個理想(24332715) 23:08:57
那么裝配出來的應用效率是不是很低
david(172171)
可以認為SCA的容器是一個bean
我有一個理想(24332715) 23:09:47
沒懂
david(172171)
sca容器宿主在Tomcat上,通過sca可以引用其它分布的應用
david(172171)
SCA宿主:啟動SCA裝配過程的系統(tǒng)
米布
我能否用 bpel 流程來引用SCA呢?
david(172171)
可以
david(172171)
這個問題在那個群里已經討論過了
我有一個理想(24332715) 23:12:23
通過宿主進行的引用?
david(172171)
對
david(172171)
http://blog.csdn.net/teamlet/archive/2007/03/22/1537510.aspx
我有一個理想(24332715) 23:12:37
謝謝
david(172171)
從這個圖中可以看出 SCA中的component和bpel的關系
david(172171)
sca的component/(composite: cuiyi add)對外提供粗粒度的接口,bpel通過implementation提供細粒度的實現(xiàn)
david(172171)
sca是bpel更高層次的抽象(bpel is implement technology, sca is a component, compent is interfaces, one for expose, another for reference,就是下面的棍/坑說啦,cuiyi add)。
我有一個理想(24332715) 23:14:38
bpel是SCA的服務實現(xiàn)
我有一個理想(24332715) 23:14:45
是一種
我有一個理想(24332715) 23:14:50
這么理解對嗎?
david(172171)
是的,是其中的一種
david(172171)
component只不過是sca裝配模型中最基本的組件單元,上面還有composite,domain
david(172171)
想用bpel調用sca是可以的,但是大才小用了
david(172171)
實現(xiàn)包括 , C++, PHP, Java Script, BPEL, SQL, XQuery, Composite,ruby
david(172171)
當然還有java
我有一個理想(24332715) 23:49:42
SCA Component 它有一個殼,殼上Service,Reference,property,殼里邊包含的東西連接著Service,Reference,property,殼里邊的東西就是這個Component的implementation(not exactly, cuiyi add),implementation可以是很多東西,java,c++等等什么都行,這么理解對不對。
兩塊田(7739638) 23:52:39
很對
我有一個理想(24332715) 23:56:40
殼上的Service就是指出來的棍(凹進去的坑,引用找服務,就像棍插坑,cuiyi add),Reference就是凹進去的坑(凸出來的棍),棍插坑,坑插棍,幾個連一起,還有坑還有棍這時候是合成組件(Composite),對不?
兩塊田(7739638) 23:57:14
說得有點色了~:)
我有一個理想(24332715) 23:57:23
哈哈
我有一個理想(24332715) 23:58:33
再整幾個只有棍的,還有只有坑的,把Composite的棍和坑插滿,就是系統(tǒng)域(Domain)
兩塊田(7739638) 00:11:24
兄弟研究棍和坑研究得挺深啊.
我有一個理想(24332715) 00:11:38
兩塊田(7739638) 00:12:02
重要的是可以插進去,插出來又可以用到別的坑里~:)
我有一個理想(24332715) 00:13:48
嗯
the following add by cuiyi, 系引用
開-閉”原則(Open-Closed Principle)是面向對象的可復用設計(Object Oriented Design或OOD)的基石。其他設計原則(里氏代換原則、依賴倒轉原則、合成/聚合復用原則、迪米特法則、接口隔離原則)是實現(xiàn)“開-閉”原則的手段和工具。
“開-閉”原則的定義
定義:一個軟件實體應當對擴展開放,對修改關閉。
( Software entities should be open for extension,but closed for modification)。
在設計一個軟件系統(tǒng)模塊的時候,應該使這個模塊可以在不被修改的前提下被擴展,或者說,可以在不必修改原來代碼的情況下改變這個模塊的行為。
滿足“開-閉”原則的系統(tǒng)的優(yōu)點
1)通過擴展已有的軟件系統(tǒng),可以提供新的行為,以滿足對軟件的新需求,使變化中的軟件系統(tǒng)有一定的適應性和靈活性。
2)已有的軟件模塊,特別是最重要的抽象層模塊不能再修改,這就使變化中的軟件系統(tǒng)有一定的穩(wěn)定性和延續(xù)性。
具有這樣兩個優(yōu)點的系統(tǒng)是一個在高層次上實現(xiàn)了復用的系統(tǒng),也是一個易于維護的系統(tǒng)。
“開-閉”原則的實現(xiàn)——抽象化
面向對象編程語言可以使用抽象的方法,為系統(tǒng)定義一個不再更改的抽象設計來作為系統(tǒng)的抽象層。這個抽象層覆蓋了所有未來可能擴展,因此在任何情況都不會改變。這樣使系統(tǒng)的抽象層保持不變,從而滿足了開閉原則的第二點:對修改關閉。
由于從抽象層導出的一個或多個具體類可以改變系統(tǒng)的行為,因為系統(tǒng)的設計對擴展是開放的,從而滿足了開閉原則的第一點:對擴展開放。
在SCA框架中,無論在commonj還是SPI;無論是composite還是component,都可以看到開閉原則的應用。
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 提供一個以與技術無關的方式定義接口、實現(xiàn)和引用的模型,從而使技術人員能夠將這些元素綁定到所選擇的某一技術的特定實現(xiàn)。
例如,我們可以用 Java 定義我們的接口,將我們的實現(xiàn)作為 BPEL 流程加以應用,或者將接口作為一個 WSDL 文檔,而且我們的實現(xiàn)可以是一個 Java™ 類。下圖 演示了如何在 IBM WebSphere Process Server 中使用 SCA。
圖. WebSphere Process Server 中的 SCA
○分離業(yè)務邏輯和技術實現(xiàn)邏輯
○業(yè)務過程由松散耦合、可重用的組件或服務組成
○組件或服務與平臺和實現(xiàn)無關
實際上呢,其就是對現(xiàn)有技術的再一次包裝,達到真正的屏蔽語言,我們來看看SOA規(guī)范理念,是如何達到屏蔽和包裝的:
SCA規(guī)范包括了Assemble Model和Client Model兩部分。
前者約定了如何將異種組件(Java類,BPEL,WebService)組裝并發(fā)布成SOA服務,這也是SCA最大的特點和最核心的概念;
后者則約定了如何在異種語言環(huán)境中調用SOA服務。
那么,通過這兩部分的規(guī)范,就可以完全解決了服務從服務端到客戶端的跨語言、跨實現(xiàn)技術的問題。
其即將推出的DAS規(guī)范,也無非是我們現(xiàn)有技術的再次包裝,理念圖如下:
這樣,客戶端看到的只是DataGraph中的DataObject就是我們說的SDO,而不再需要去關注或者操作所謂的JDBC等連接數(shù)據(jù)庫的、以及JCA等連接手段獲得的數(shù)據(jù)入口了。
于是我們看到了,SOA通過SCA、SDO對現(xiàn)有技術進行了再次包裝或者屏蔽,從而達到了一個 大一統(tǒng) 的局面,但是尚未知對于大多的開發(fā)者來說這是否是一個好的消息。
不過通過如下,我們發(fā)現(xiàn)并不是如此的悲觀:





posted on 2007-05-06 00:35 crazycy 閱讀(1249) 評論(2) 編輯 收藏 所屬分類: SOA、WebService、BPEL