服务组件架构(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包实现的)吗? –