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

日期: 2010-01-18 作者:王洪伟 来源:TechTarget中国 英文

  一、组件类型

  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  >
    <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  
    name=”calculatorws”>
    
    <dbsdo:import.sdo  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文件中描述的元素转换为对应的模型对象,完成文件描述到内存中模型对象的建立。

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

模型对象继承关系图

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐