服務組件架構(SCA)是用於撰寫遵循面向服務的架構(SOA)的原則應用的軟件技術。它是一款具有許多優點,包括髮展模式:從 服務實現的細節業務邏輯的
分離。
支持服務的語言包括C衆多++,Java和 COBOL和PHP以及XML,BPEL和XSLT
與各種通信無縫工作的能力,構建 包括單向,異步,回撥和通知。
的能力, 「綁定」,以傳統的組件或服務,訪問 通常由技術,如Web服務,EJB,JMS,JCA,RMI, RPC,CORBA等。
聲明(業務邏輯的外部)的能力的 服務要求,例如安全性,事務和可靠消息傳遞的使用 質量
數據可以在服務數據來表示對象
我想補充,
- 不同模塊之間的鬆耦合s(組件)。
我確實使用SCA技術實現了一個簡單的軟件,在Tuscany Tutorial的幫助下,我可以看到SCA異構性的強大功能及其平臺獨立性。
今天,我正在看另一個模型,似乎有點相關。它是Declarative Services Component Model (DS),它是一種簡化創建發佈和/或引用OSGi服務的組件的組件模型。在DS中,通過將XML組件聲明文件添加到捆綁軟件資源中,OSGI捆綁包似乎被封裝爲組件。 XML文件通常包含對bundle服務和引用的聲明,對SCA組合文件有一些類似。下面是此類文件的一個例子:
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="it.eng.test.ds.consumer">
<implementation class="it.eng.test.ds.consumer.Consumer"/>
<reference bind="bindHappy" cardinality="0..1" interface="it.eng.test.ds.happy.IHappy" name="IHappy" policy="dynamic" unbind="unbindHappy"/>
<reference bind="bindSad" cardinality="0..1" interface="it.eng.test.ds.sad.ISad" name="ISad" policy="dynamic" unbind="unbindSad"/>
</scr:component>
我的問題是:有沒有任何SCA和DS之間的關係的? DS能否實現SCA異質性及其組件隔離?例如,DS可以提供服務或引用/從不同的平臺,如SCA組件? DS組件是否可以獨立(隔離),即SCA組件是隔離的?
謝謝,但是如果我將它們用作SCA組件的實現,我可以保留OSGI捆綁包的活力嗎?換句話說,我能在運行時加載和卸載SCA組件(它是作爲OSGI包實現的)嗎? –