SCA中组件类型、元素类型及模型对象关系

 
   | |

导读:本文介绍了SCA中组件类型、元素类型及模型对象关系,笔者先分别介绍了各自的内容,又阐述了三者之间的关系。

关键词:SCA 组件类型 Component组件类型 Composite组件类型

 
正在加载数据...

  一、组件类型

  SCA中有两种组件类型,即Component组件类型(Component Type)和Composite组件类型(Composite Type),对应这两种组件类型,在模型对象中有两个组件类型的装载器:SystemComponentTypeLoader和SystemCompositeTypeLoader(请注意它们是组件类型装载器,而不是组件装载器) 。

  1、Component 类型装载器(Component Type Loader) 用来装载以.componentType为扩展名的文件。以.componentType为扩展名的文件描述了一个组件的实现是由哪些内容配置而成的。ComponentType包含了当前组件提供的服务、通过连线连接到外部的服务的组件引用以及组件可以被设置的属性等内容。

  2、组件和实现的关系通过Component Type表现出来,如图: 

组件和实现的关系通过Component Type表现出来

  3、一个典型的.componentType文件如下:

以下是引用片段:
<?xml version="1.0" encoding="ASCII"?>
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:
xsd="http://www.w3.org/2001/XMLSchema">
    <service name="HelloWorldService">
             <interface.java interface="helloworld.HelloWorldService"/>
    </service>
    <reference name="extService">
             <interface.java interface="helloworld.HelloWorldService"/>
     </reference>
</componentType>
 
  4、Composite类型装载器(Composite Type Loader) 是用来装载scdl文件。scdl是一个基于XML的服务组件描述文件。在scdl中包含许多sca定义的组件元素。Composite类型装载器解析scdl文件所描述的元素关系和属性,并生成对应的元素模型对象。

  5、一个典型的scdl文件如下:

以下是引用片段:
 
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance"
    name="calculatorws">
    
    <dbsdo:import.sdo xmlns:dbsdo="http://incubator.apache.org/tuscany/xmlns/databinding/sdo/1.0-incubator-M2" location="wsdl/calculator.wsdl" />
    <service name="CalculatorWebService">
        <interface.wsdl interface="http://calculator#wsdl.interface(Calculator)" 
wsdli:wsdlLocation="http://calculator wsdl/calculator.wsdl" />
        <binding.ws endpoint="http://calculator#wsdl.endpoint(CalculatorService/CalculatorServiceSOAP11port)"
 location="wsdl/calculator.wsdl" />
        <reference>CalculatorServiceComponent</reference>
    </service>
    <component name="CalculatorServiceComponent">
        <implementation.java class="calculator.CalculatorServiceImpl"/>
        <reference name="addService">AddServiceComponent</reference>
        <reference name="subtractService">SubtractServiceComponent</reference>
        <reference name="multiplyService">MultiplyServiceComponent</reference>
        <reference name="divideService">DivideServiceComponent</reference>
        <reference name="mathService">MathServiceComponent</reference>
    </component>
    <component name="AddServiceComponent">
        <implementation.java class="calculator.AddServiceImpl"/>
    </component>
    <component name="SubtractServiceComponent">
        <implementation.java class="calculator.SubtractServiceImpl"/>
    </component>
    <component name="MultiplyServiceComponent">
        <implementation.java class="calculator.MultiplyServiceImpl"/>
    </component>
    <component name="DivideServiceComponent">
        <implementation.java class="calculator.DivideServiceImpl"/>
    </component>
    
    <component name="MathServiceComponent">
        <implementation.java class="calculator.MathServiceImpl"/>
    </component>
</composite>

 
  二、元素类型

  SCA定义了很多的元素,这些元素在装配文件和组件定义文件中被详细的描述。在SCA启动过程中的载入(load)阶段,各个元素的描述被转化为相应模型对象。元素类型会在下面的图中给出。

  三、模型对象(ModelObject)

  模型对象ModelObject是一个接口,用来表现SCA系统中定义的任何一个组件类型和SCA元素在内存中的模型对象。

  载入过程(load)或者称为载入阶段所做的就是将scdl以及.componentType文件中描述的元素转换为对应的模型对象,完成文件描述到内存中模型对象的建立。

  四、模型对象继承关系图: 这个图有些大了,如果看不清需要单独打开一个窗口并放大。

模型对象继承关系图

原文出处:http://www.uml.org.cn/soa/200804104.asp
 
来源:UML软件工程组织    作者:王洪伟    
 
 
 
 
 

SCA

 
你想知道Java实施内服务、参照和属性是如何定义的吗?让我们使用支付的例子看看Java注释为Payment组件,如何被添加到Java类中来定义SCA服务……
 
SCA符合应用的每一个组件都是使用实施类型实施的。SCA技术参数定义了许多实施类型并且Tuscany项目也增加了一些。
 
服务组件架构(SCA)标准体系的愿景,起源于IBM和BEA的概念,对面向服务架构(SOA)来说具有编程标准的性质,这个说法来自于……
 
随着SCA/SCDL工具集的发展和时间的变化,很可能会改变。和微软的Frontpage一样,简化了基于HTML Web网站的开发过程,新厂商的产品……
 
SOA和Web服务已经成为主流,有些人认为它们现在实际上代表了部署新应用与合成服务。组件重用、开放标准和轻松装配合成服务……

热门技术手册排行

 

随着开源技术越来越成熟,一个稍有开发经验的人通过学习就可以用开源的产品和技术构建一套可用的系统。对于从事软件开发的人员,尤其是对Java或动态语言相关领域的人来说,“开源”也许是他们最喜爱的单词。但是,很多时候我们需要的不仅仅是一个可用的系统,而是希望这个系统开发更简易、性能更高和扩展性更好等。这确实是一个令人头痛的问题。本指南很多地方都是点到为止,要深入了解相关信息的读者请借助参考资料、网站等自行挖掘。

 

本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。

 

业务流程管理(business process management,bpm)不是一个新概念,甚至不是一个新名词。它是从相关的业务流程变革领域,如业务流程改进(bpi)、业务流程重组(bpr)、业务流程革新中发展起来的。流程管理技术也是从早期的工作流管理、eai、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。

 

TOAGF是一个架构框架,简而言之,TOGAF是一种协助发展,验收,运行,使用,和维护架构的工具。它是基于一个迭代(Iterative)的过程模型,支持最佳实践和一套可重用的现有架构资产。

 

云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。

 

Mashup是一个非常cool的新的应用程序种类。如果你想真正的了解它们,我们需要回过头来看看你现在的计算机,其实它就是一个非常好的帮助你理解mashup的模型。现在开源的操作系统无疑是非常好的apis的集合或应用程序编程接口,帮助开发者去构建其应用程序。计算机本身也是一个很好的为用户提供接口的例子,键盘和鼠标可以被理解为你通过计算机的接口而使用的不同的应用程序。本技术手册为读者提供了一些相关信息,如果需要深入了解mashup,读者可以借助其他参考资源。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录