SCA中组件类型、元素类型及其模型对象(ModelObject)的关系
来源:互联网 发布:js onclick 传参 编辑:程序博客网 时间:2024/05/16 05:29
一、组件类型
SCA中有两种组件类型,即Component 组件类型(Component Type)和Composite组件类型(Composite Type),对应这两种组件类型,在模型对象中有两个组件类型的装载器:SystemComponentTypeLoader和SystemCompositeTypeLoader(请注意它们是组件类型装载器,而不是组件装载器) 。
1、Component 类型装载器(Component Type Loader) 用来装载以.componentType为扩展名的文件。以.componentType为扩展名的文件描述了一个组件的实现是由哪些内容配置而成的。ComponentType包含了当前组件提供的服务、通过连线连接到外部的服务的组件引用以及组件可以被设置的属性等内容。
2、组件和实现的关系通过Component Type表现出来,如图:
3、一个典型的.componentType文件如下:
<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文件如下:
<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文件中描述的元素转换为对应的模型对象,完成文件描述到内存中模型对象的建立。
四、模型对象继承关系图: 这个图有些大了,如果看不清需要单独打开一个窗口并放大 :)
- SCA中组件类型、元素类型及其模型对象(ModelObject)的关系
- sca-core.xsd元素及类型分解
- Struts模型组件---模型的概念和类型
- CSS盒子模型-元素类型
- Django中ORM模型总结(二)[模型类的对应关系,模型类的属性,字段类型]
- JS中对象的类型
- 数组与Object的关系及其反射类型
- 数组与Object的关系及其反射类型
- 数组与Object的关系及其反射类型(浅试)
- 数组与Object的关系及其反射类型
- 数组与Object的关系及其反射类型
- Python常见的错误类型及其继承关系
- JavaScript中变量的类型及其比较
- JDBC中Sql类型和java类型的映射关系
- backbone中元素与对象的关系
- 获取IEnumerable中元素的类型
- reactJs中props对象的元素为Boolean类型时的显示问题
- [读书心得] .NET中 类型,对象,线程栈,托管堆在运行时的关系
- VHDL MINI-REFERENCE
- QoS拥塞控制 —— 公平性算法
- Oracle9i for SUN Solaris installation.
- AJAX的应用初步总结
- 什么是中间件
- SCA中组件类型、元素类型及其模型对象(ModelObject)的关系
- shader model 3
- 多核并发之所感
- 莫做迟孝之人,莫行假善之事
- SUN系统管理员常用命令
- 建立交叉编译器 for arm (binutils-2.17 gcc-3.4.6 glibc-2.3.6)
- 男人必须明白的21个道理
- 今天很郁闷
- 可变参数