Service 服务组件架构&;声明性服务组件模型
根据, 服务组件体系结构(SCA)是一种用于组合遵循面向服务体系结构(SOA)原则的应用程序的软件技术。这是一种具有许多优点的开发模式,包括:Service 服务组件架构&;声明性服务组件模型,service,osgi,components,declaration,sca,Service,Osgi,Components,Declaration,Sca,根据, 服务组件体系结构(SCA)是一种用于组合遵循面向服务体系结构(SOA)原则的应用程序的软件技术。这是一种具有许多优点的开发模式,包括: 将业务逻辑与its的细节分离 服务实现 支持多种语言的服务,包括C++、java、 COBOL、PHP以及XML、BPEL和XSLT 与各种通信结构无缝协作的能力 包括单向、异步、调用返回和通知 “绑定”到旧组件或服务的能力,可访问 通常通过Web服务、EJB、JMS、JCA、RMI等技术, RPC、CORBA和其他 声明(业务逻辑之外)业务质量的能
- 将业务逻辑与its的细节分离 服务实现
- 与各种通信结构无缝协作的能力 包括单向、异步、调用返回和通知
- “绑定”到旧组件或服务的能力,可访问 通常通过Web服务、EJB、JMS、JCA、RMI等技术, RPC、CORBA和其他
- 声明(业务逻辑之外)业务质量的能力 服务要求,如安全性、事务和使用 可靠的消息传递
- 数据可以在服务数据对象中表示
支持多种语言的服务,包括C++、java、 COBOL、PHP以及XML、BPEL和XSLT
- 不同模块(组件)之间的松耦合
<?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组件是隔离的一样 DS和SCA是互补的。一个不能代替另一个。您可以使用DS构建OSGi服务。这些服务可以在OSGi框架中使用。SCA可用于描述跨多个节点的大型SOA设计。OSGi可以是SCA组件的实现类型。因此,当使用OSGi作为SCA的实现类型时,请使用DS for OSGi服务。DS和SCA是互补的。一个不能代替另一个。您可以使用DS构建OSGi服务。这些服务可以在OSGi框架中使用。SCA可用于描述跨多个节点的大型SOA设计。OSGi可以是SCA组件的实现类型。因此,当使用OSGi作为SCA的实现类型时,请使用DS for OSGi服务。DS和SCA是互补的。一个不能代替另一个。您可以使用DS构建OSGi服务。这些服务可以在OSGi框架中使用。SCA可用于描述跨多个节点的大型SOA设计。OSGi可以是SCA组件的实现类型。因此,当使用OSGi作为SCA的实现类型时,请使用DS for OSGi服务。DS和SCA是互补的。一个不能代替另一个。您可以使用DS构建OSGi服务。这些服务可以在OSGi框架中使用。SCA可用于描述跨多个节点的大型SOA设计。OSGi可以是SCA组件的实现类型。因此,当使用OSGi作为SCA的实现类型时,请使用DS for OSGi服务。我认为这两种模型都有不同的用途,尽管它们都是基于服务的。DS是OSGi框架的一部分,虽然可以使用远程服务,但DS主要局限于java/OSGi。有一些像ApacheWicket这样的框架为web环境中的声明性服务提供某种集成
DS是一个功能强大的java/OSGi框架。我所知道的大多数其他框架的主要区别之一是OSGi的动态方面。服务可以随时来来去去。与并发转换器服务相关(在您链接的示例中):在OSGi中,您可以在运行时退出实现,出于测试目的对其进行模拟等。OSGi捆绑包(主要是带有元信息的java项目)可以提供0…n服务组件)。大多数最佳实践是将服务定义与实现分离成不同的捆绑包(与您链接的示例不同)。简而言之:ds的隔离效果更好,异构性(支持不同的技术平台)不是ds的目标(当然,如果您付出一些努力,可以通过某种方式实现)。希望这能有所帮助。我认为这两种型号都有不同的用途,尽管它们都是基于服务的。DS是OSGi框架的一部分,虽然可以使用远程服务,但DS主要局限于java/OSGi。有一些像ApacheWicket这样的框架为web环境中的声明性服务提供某种集成 DS是一个功能强大的java/OSGi框架。我所知道的大多数其他框架的主要区别之一是OSGi的动态方面。服务可以随时来来去去。与并发转换器服务相关(在您链接的示例中):在OSGi中,您可以在运行时退出实现,出于测试目的对其进行模拟等。OSGi捆绑包(主要是带有元信息的java项目)可以提供0…n服务组件)。大多数最佳实践是将服务定义与实现分离成不同的捆绑包(与您链接的示例不同)。简而言之:ds的隔离效果更好,异构性(对不同技术平台的支持)不是ds的目标(当然可以通过某种方式实现)