个人对SCA标准中Component,Composite等几个关键概念的理解

14 篇文章 1 订阅

 本文关注于SCA的几个基本概念:Component,Composite,Implemention,ComponentType,从规范、实现等不同的角度谈一下它们之间的区别。

也就是说,本文更多的是关注于它们之间的区别,至于它们每个是什么请参阅SCA集成规范。

Component 

 

由上图可以看到,Component是SCA中可以提供业务功能的最小单元,Implemention是Component提供服务的具体实现方式,可以是Java、C++、Bpel等等,没有Implemention那么Component就是个空壳,不能提供任何有价值的服务,没有任何意义。Service是当前Component所能提供的服务列表,Reference则是该组件多引用的其他组件的服务,Property起配置的作用。

Composite

 

从上图可以看到,Composite是由Component和Composite组成的,另外Composite也支持整体对外提供服务,或者引用其他组件,因此还包括了Service、Reference以及配置它们的Property,Wire是Composite中各个Component之间的关联关系,因此只有Composite中才会有Wire,Component中没有。

ComponentType

为什么把ComponentType单独拿出来呢,因为ComponentType容易让人混淆,带来理解上的困难,特对它给与了比较多的精力,为了大家能看明白,也为了清理下自己的思路,为了理解它不知道翻了多少遍Assembly规范以及Tuscany的源代码,呵呵,当然,现在的理解也不一定就是正确的,欢迎大家批评指正。

我们先来看下类图结构:

由此类图可以看到,Implemention和Composite都是ComponentType的子接口,ComponentType代表的其实是某种Implemention类型,比如Java、Bpel等等,比如Java的Implemention实现类如下:

BaseJavaImplementation是implementation.java的接口,其他还有implementation.bpel等等。

最后,对Service、Reference和Component、Composite等的关系结合类图做下介绍:

CompositeService和ComponentService正说明了可以提供服务的两种粒度,同理亦然,reference亦是如此:

而,Reference和Service有种共同的祖先:AbstractContract,如图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值