SCA概念与应用实践(7.SCA装配模型--7.1 compoent)
来源:互联网 发布:nginx ipv6only 编辑:程序博客网 时间:2024/05/12 11:44
7. SCA装配模型
7.1. Component
这个对应规范SCA Assembly Model V1.00(http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications) 的1.3节
7.1.1. Component
Compoent是SCA中基本的元素。每一个composite都是有一个或多个component构成。Application对应的是最上层的composite。对于简单的application,component就是一个java类,相互间的调用通过暴露出来的java interface。就像上面的例子。复杂一点,各个component可能运行在不同的机器上,那么就需要其他交流机制(例如jms,或rmi)来进行相互调用。
选中一个component,查看它的properties。
图7_1_1
Component包含的属性
Name,这个是必须的。
Autowire,表示component的reference是否自动连接到service上
Requires,0…n个policy intents,这个和policy set 后面介绍
PolicySet,0…n个policy Set
Constraining Type,强制类型名字,我们可以预先定义一些强制类型,强制类型中包含一些service,reference,和intent。那么使用这个强制类型的component,就要实现所有强制类型中的service,reference等。
打开Restaurant2.composite,就可以看到component的定义,他是composite的子元素。
<?xml version="1.0" encoding="UTF-8"?>
<sca:composite xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" name="Restaurant2" targetNamespace="http://eclipse.org/Restaurant2/src/Restaurant2">
<sca:component name="RestaurantServiceComponent">
<sca:implementation.java class="restaurant2.lib.RestaurantServiceImpl"/>
<sca:service name="RestaurantService">
<sca:interface.java interface="restaurant2.api.RestaurantService"/>
</sca:service>
<sca:reference name="menuService"/>
<sca:reference name="billService"/>
</sca:component>
…
</sca:composite>
Component RestaurantServiceComponent只有一个属性name,包含service和reference子元素。还有一个子元素就是 implementation,8节说这个implementation。
7.1.2. Service
可以从diagram上查看service的properties
图7_1_2
Name:是必须的
PolicySets,
Reqiures,一系列policy intents。作用在service上的intents包括(1)requires里定义的,(2)implementation里给service定义的
打开Restaurant2.composite查看service的定义:
<sca:service name="BillService">
<sca:interface.java interface="restaurant2.api.BillService"/>
</sca:service>
Service里包含0..n个interface,interface里描述这个service所提供的操作。在这个interface里定义的方法,一定要在comonent的implementation里实现。
比如BillServiceComponent定义了一个service BillService,BillService里定义了interface restaurant2.api.BillService, 在这个interface里,定义了一个方法
public interface BillService {
double getBill(double menuPrice);
}
那么在BillServiceComponent的实现类restaurant2.lib.BillServiceImpl里,就要实现这个方法。外部调用这个service的getBill的时候,实际调用的BillServiceImpl里的实现。9节会详细说interface。
7.1.3. Reference
可以从diagram上查看reference的properties,下面这个是RestaurantServiceComponent上的refernece(menuService)的属性
图7_1_3
Name: 必填
Autowire:说明该reference是否自动连线。在autowire节说明。
Policy Sets:policy set后面介绍
Requires: intents
Multiplicity:定义该reference能连接到service的wire的数目,
1..1 –只能有一个wire
0..1 –能有0个或1个wire
1..n –能有1个或多个wire
0..n -能有0个或多个wire
Target:一个或多个目标service的URI的列表,依赖于multiplicty的设置。每个值都指向component的service。用此值说明该reference连接到哪些service。
wiredByImpl:默认”false”。 定义是否动态地wire。如果设置为“true”,这个reference的目标service由实现代码在运行时设置。如果设置为”true”,该reference不需要显示的wire。
Reference可以有0个或1个interface。 也可以有0个或多个binding。Reference节详细说明。
- SCA概念与应用实践(7.SCA装配模型--7.1 compoent)
- SCA概念与应用实践(7.SCA装配模型--7.1 compoent)
- SCA概念与应用实践(7.SCA装配模型--7.2 实现 implementation)
- SCA概念与应用实践(7.SCA装配模型--7.3 接口 interface)
- SCA概念与应用实践(7.SCA装配模型--7.4 composite)
- SCA概念与应用实践(7.SCA装配模型--7.5属性 property)
- SCA概念与应用实践(7.SCA装配模型--7.6服务service & 7.7引用reference)
- SCA概念与应用实践(7.SCA装配模型--7.8连线 wire)
- SCA概念与应用实践(7.SCA装配模型--7.2 实现 implementation)
- SCA概念与应用实践(6. SCA装配图的解释)
- SCA概念与应用实践(6. SCA装配图的解释)
- SCA概念与应用实践(2. SCA基本概念)
- SCA概念与应用实践(3. SCA实现介绍)
- SCA概念与应用实践(2. SCA基本概念)
- SCA概念与应用实践(3. SCA实现介绍)
- SCA概念与应用实践(1. 介绍和内容)
- SCA概念与应用实践(4.环境安装和设置)
- SCA概念与应用实践(5. 一个例子演示)
- 屏蔽input显示输入历史记录的方法
- 程序占用的内存分配
- PPTP------点到点隧道协议
- 2011台北国际电脑展: 总结:移动设备,笔记本和平板电脑
- 如何在网页图片上面叠加透明的文字层
- SCA概念与应用实践(7.SCA装配模型--7.1 compoent)
- 粘包与分包
- 博客链接
- JAVA Iterator 的用法
- Android 中的 Service 全面总结
- raid0,raid1,raid10,raid5,raid50,raid6,raid60的功能总结简述(转老金)
- pdf2swf process阻塞问题
- dos详解
- [ZZ]chrome源码学习之启动流程简介