zoukankan      html  css  js  c++  java
  • SCA简介及配置示例

      SCA(Service Component Architecture)是为实现 SOA 而产生的一种规范。它提供了一种编程模型,能够十分方便、快速地来构建 SOA 所需的系统和应用。
      
      SCA内部既融合了IOC的思想,同时又把面向对象的复用由代码复用上升到了业务模块组件复用,同时将服务接口,实现,部署,调用完全分离,通过配置的形式灵活的组装,绑定。从代码级的面向对象思想,到组件级的EJB概念,再到服务级的SOA理念,是一个开发复用的不断提升的过程,经历的经验教训正在给实践做出最好的指导。SOA提倡的就是更高级别的复用,服务的复用。
     
      SCA基于这样的理念:将业务功能作为一系列的服务而提供,并用这一系列的服务组装起来的解决方案来满足特定业务需求。
     
      SCA就是一个致力于为 服务构件 以及 连接各服务构件的访问方式 而包容各种广泛的技术模型。
     
      SCA的核心元素,SCA component(构件)和SCA composite(组合构件) 
     
    SCA Component

    Component是SCA组合件中业务功能的基础元素。其通过SCA Composite联合成完整的业务解决方案。   

    Component是实现的可配置实例。构件提供和消费服务。多个构件可以使用和配置为同一个实现,而每个构件又可以对实现有不同的配置。

    Component是实现的可配置实例。构件在xxx.composite文件中作为组合构件的子元素来声明。
    Component 元素的属性中,name(必须) – 构件的名字。在同一组合构件里的所有构件中名字必须唯一。
    component 元素有零个或一个implementation 子元素,该子元素指定构件所使用的实现。
    Component 元素有零个或多个service 子元素,用于配置构件的服务。
     
    SCA Composite
    SCA Composite被用于在逻辑分组中装配SCA元素。其在SCA 域中是组合的基本单元。Composite包含一系列的构件、 服务、 引用以及内连它们的连线,外加上用于配置构件的一系列属性。 
     
    SCA Domain
     
     
     
    以下SCA配置示例是摘自我的Tuscany Demo,帮助理解Composite、Component的概念。(Tuscany是实现了SCA标准的Apache项目。)
    示例1
    <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
               xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
               targetNamespace="http://sample"
               name="helloWorld-composite">
               
        <component name="HelloWorldComponent">
            <implementation.java class="edu.shao.tuscany.sample.service.impl.HelloWorld"/>
        </component>
        
    </composite>

    示例2

    <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
               xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
               targetNamespace="http://sample"
               name="helloSpring-composite">
    
        <component name="HelloSpring">
            <implementation.spring location="applicationContext-preprocess.xml"/>
            <service name="IHelloSpring" >
                <tuscany:binding.rest uri="http://localhost:8080/shao/HelloSpring">
                    <tuscany:wireFormat.json />
                </tuscany:binding.rest>
            </service>
        </component>
    
    </composite>

    示例3

      服务1

    <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
               xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
               targetNamespace="http://sample"
               name="addition-contribution">
               
        <component name="AdditionWS">
            <implementation.java class="edu.shao.tuscany.sample.service.impl.Addition"/>
            <service name="IAddition">
               <binding.ws uri="http://localhost:8080/Addition"/>
            </service>
        </component>
    
    </composite>

      服务2

    <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
               xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
               targetNamespace="http://sample"
               name="calculator-contribution">
               
        <component name="CalculatorComponent">
            <implementation.java class="edu.shao.tuscany.calculator.client.Calculator"/>
            <reference name="addition" >
                <binding.ws uri="http://localhost:8080/Addition"/>
            </reference>
        </component>
    
    </composite>
     
     
     
  • 相关阅读:
    导入旧版本Android项目时的“Unable to resolve target ‘android
    eclipse打开文件目录
    ireport常见问题
    【技术贴】解决127.0.0.1和http://localhost均被拦截跳转到另一个网页
    【技术贴】SqlServer2008 R2 安装失败提示出现以下错误 服务 MSSQLSERVERO
    【技术贴】解决xp下Microsoft.SqlServer.Management.PSProvider.dll
    websphere性能设置和日常维护
    【技术贴】解决支付宝充值信用卡还款跳转到网上银行报错Error 404
    jQuery制作Facebook Timeline时间轴
    借助rownum中求Oracle表中前三名(三甲:状元榜眼探花)的方法(总计三种方法,以讲述rownum的使用为主)
  • 原文地址:https://www.cnblogs.com/windlaughing/p/2997294.html
Copyright © 2011-2022 走看看