在SCAV1.0装配规范中,相对较为独立的组件只有三个,粒度由小到大分别是Component、Composite和Domain,其他Service、Reference、Property、Wire等都是辅助性的元素。这些辅助性的元素做为三个独立的组件中的组成部分,为组件与外部数据传输、对外提供服务和引用外部资源提供途径,将各个组件的组成粒度更大的上层组件。三个不同的组件,分别对应系统的三个不同层面:Component组件对应实现层,Composite组件对应架构层,Domain对应业务层。后面将会用三篇文章的篇幅分别说明三个组件和三个层面直接的关系以及使用。
一、组件介绍
1、Component 简介
Component是SCA规范中最基本的元素,是粒度最小的执行单元或者实现单元。
为了方面后面的描述和图解,将Component图示作了一些简化。如图:
2、Composite简介
Composite组件是SCA规范中最基本的单元,是部署的最基本单位。其他组件要以Composite组件的组成形式通过Composite组件表现出来。对于Composite组件会在下一篇文章–Composite与架构中详细说明。
同样,简化Composite组件的图示。如图:
3、Component组件和Composite组件之间的关系
Component组件是Composite组件的重要组成部分。Composite组件可以包含0个以及0个以上的Component组件。如Composite组件图示中表示的,包含了2个Component组件。可以假设为,Composite组件是一个可以任意扩展端口的集线器(通常叫Hub),Component组件就是集线器的端口。
集线器和RJ45接头
Composite组件和Component组件
二、Component组件与实现
下面详细说说Component组件与实现。
SCA允许在很宽的implementation types(实现类型)中选择任何一种实现,例如象Java、BPEL或者C++等都是implementation types(实现类型),每一种类型都描述一个明确的实现技术。这些技术不仅可以是一种语言,象Java,还可以是特殊的框架或者运行环境,象Java技术中的Spring框架和J2EE技术中的EJB环境。
目前,SCA提供了Spring、EJB、JavaScript、Groovy、Ruby、BPEL等的实现技术,可以将已有的程序实现加入到SCA系统中,为SCA提供具体的功能实现。也可以根据实际需要,通过SCA提供的扩展机制,将新的技术增加到SCA系统中。
Component组件的Implement联接到一个某种技术的具体实现,这些实现通过Component组件联接到SCA系统中。每个Component组件仅对应一个实现。如图:
图中以.ComponentType为扩展名的文件是SCA提供的机制,对Component的实现提供可扩展的、可配置的实现机制。每个Component组件的细节,包括service、reference和property通过.ComponentType配置实现。
经过Component组件的封装,形成一个格式一致、描述规范、统一的Component组件实现层。Component组件为Composite组件提供了服务—功能实现,分离了具体技术实现和Composite组件层,也将业务层、架构层与实现层分开。
三、Component组件和实现机制带来的益处:
1、实现层和架构业务层分离,使实现层不必受架构层和业务层的限制和影响,专注与实现。开发人员只需关注实现,架构设计和业务人员也只需关心各自的层面的事情。
2、每一个Component组件实现一个功能,实现的功能职责清晰,目标明确。每一个实现将精力集中在目标功能上,只做与它相关的事情。
3、清晰的责任和明确的目的,使代码量变得很少。几百k甚至几十k的代码量就可以完成功能的实现。
4、代码量的减少,增加了可测试性和可调试性。编码、测试和维护都变得相对简单,提高了开发效率和代码质量。
5、Component组件的实现粒度非常的小,可以提供很小的独立的接口,提高可复用的程度。
6、Component组件的实例通过XML格式文件的描述进行装配,以依赖注入模式的松散的耦合方式实现对具体实现的注入。
7、通过Component组件的配置和依赖注入模式可以非常容易的扩展和替换具体实现。
8、可以用不同的语言和技术实现相同的功能,充分发挥已有资源的作用,人近其才,物近其用,节省投资。
这里主要讲了一些Component和实现机制的内容,SCA在架构层所对应的Composite组件提供了什么呢?
原文链接:http://gocom.primeton.com/blog12877_18807.htm
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
如何透过业务和技术看SOA的发展
随着SOA发展的深入,各种SOA相关技术标准也随之发展和完善。面对庞大而复杂的SOA相关技术标准,我们如何来有选择的使用它们呢?
-
SOA架构下补偿模型驱动的安全苛求软件开发
随着我国高速铁路的快速发展,传统的计算机联锁软件开发方法在灵活性、可维护性、安全性以及开发效率上都显露出不足,怎样才能弥补这一不足呢?
-
浅谈基于SOA架构的服务集成技术研究
在近几年软件行业的发展中,面向服务架构(SOA)成为了当下的热门话题。那么对于SOA架构的服务集成你又了解多少?
-
揭秘WebSphere Process Server中SCA组件的事务实现机制
SCA作为一种新的编程模型,自然也需要提供完整的事务支持。所幸的是WPS本身是基于WebSphere Application Server的,所以底层天然就具有了强大的事务处理能力。