一谈及服务化就不得不提到SCA(面向组件的架构),SCA是为基于SOA思想的系统而制定的开发、部署规范,象跨语言、分布式、以及服务的思想在SCA中都得以实现。SCA的实现有很多,目前Tuscany是完全遵照SCA规范的实现的。当然还有其他的一些实现。虽说实现不一样,但都殊途同归,服务化实施的思路也都是一样的。
下面就说一下SCA涉及到四个概念Component 、Composite、Node、Domain。
Component
是SCA中最基本的元素,是粒度最小的执行单元或者实现单元。
比如,一个收发email的业务,包含发送文本类型的邮件、发送html类型的邮件、发送带附件的邮件、发送会议邀请邮件、接收邮件、查看邮件、删除邮件这几个功能,我们可以把他看作是一个Email组件。
Component是可以组合与扩展的。一个Component可以依赖其他Component从而构造成新的组件,形成新的业务模式。比如,微博系统中的发送图文微博的组件就是由文字微博的组件,与上传图片的组件组合而成。
Component侧重在实现,一个 Component可以由各种语言或技术平台实现,可以是java、C、ruby、python….。如果你还是不太懂什么是组件,那么就把一个Spring Bean当做是一个组件吧(Spring Bean当中已经蕴含有一些组件的特性)!
Composite
是容纳Component的容器。也是对外服务的基本构成单元。如果说Component侧重在功能,Composite则更侧重在业务。
我们会发现超市的货架布局有一定的规律,不同类别的商品会在不同的区域的货架上叠放。如果我们将物品比作是Component,那么不同的区域就表示不同的Composite。Composite起到对Component进行分类的作用。相同的,有关联的尽量分到一个Composite中。结合一个例子,以sns中的 好友Component、分组Component为例。加好友必然涉及到好友的分组,查看分组的时候也要显示一个分组下有哪些好友。这两个Component都是有非常密切的关联关系。那么基于这一点我们可以将其归结为同一个Composite。有的人可能也会说User也和好友有关系,是否也应当归结为同一个Composite?就好比是大多数的商品都用到了塑料进行包装,那所有的分类都应该分为一类?这显然是不合理的。所以我们可以将User看作是各一个业务都会依赖的基础的服务,所以User可以抽取为一个独立的Composite。
Composite是对外服务的基本构成单元。必然要对外暴露服务(Service)和引用(Reference)外部的服务。协议可以是多样化的,有RMI、有JMS、有WebService…. Composite具备binding的特性,可以将一个Component绑定为不同类型的协议。另外,对于Composite的引用而言,对引用的Composite的内部实现细节是不可见的,仅仅暴露了composite提升(promote)出来的Service、Reference和Property。起到对细节的封装。
Node
用来描述部署的节点
比如在分布式系统中,有很多台服务器,这些服务器侧重的业务不同。比如有A、B、C三台服务器。A服务器提供邮件服务,B服务器提供User相关的服务,C服务器提供好友相关的服务,那么这种情况下,对于每一个服务器,都可以看做是一个node。每个node下面都有一个或者多个composite。
通常Node是以物理节点的方式体现,但有的场景也是采用的逻辑方式体现,比如在一个jvm内允许多个节点。
Domain
是管理Node的容器
在服务化全局中有其唯一的标识名称,包含Node的注册和管理工作。相同名称标识的Node注册在一同一Domain下面。在这个Domain层面上各SCA的概念上也会有较大的差异,并且实现差异化也是相当大的。比如有些SCA框架还引入了软负载均衡,服务引用的自动识别更新等一系列的高级特性。
服务化也是一种思想与方法学,通过这些思想与方法学去只指导我们如何去设计出健壮、可持续扩展的软件体系结构。
相关推荐
那么如何在JSP页面中来调用我们的HelloWorld服务组件呢?按照前面的介绍,我们需要通过StandaloneReference来调用。那么我们如何才能得到这个...这里涉及到SCA编程模式中很重要的一个概念,那就是ServiceManager。
SCA、SOA与OSGi概念浅析SCA、SOA与OSGi概念浅析
SCA算法实现,主要针对凸优化问题进行求解,可以在其他地方使用。
sca的源程序代码,原始代码能够较好的学习sca算法。
SCA编程模型入门 基础性文章
SCA编程模型入门.doc,WebSphere Integration Developer,WebSphere Integration Developer,SCA编程模型入门,SCA编程模型入门,SCA编程模型入门
正弦余弦算法(SCA)代码以及详解 。正弦余弦算法(SCA)是 Mirjalili于2016年提出的一种新型的群体智能优化算法,该算法结构简单、参数较少且易于实现,它的搜索过程主要受正弦和余弦函数的影响。
本文内容包括:概览1.1SCA的起源1.2SCA中的基本概念1.3同步调用和异步调用1.4SCA客户端的两种调用方式1.5SCA的第一个例子――HelloWorld1.6结束语本文将介绍SCA编程模型中的基本概念,并以一个简单的例子来说明它的...
术语缩写:SCA:...()基本组成元素和基本构建单位,也是我们具体实现业务逻辑的地方。SCA服务组件的主要接口规范是基于WSDL,部分服务组件也提供了Java接口。使用服务组件的客户端可以选择使用WSDL接口或Java接口
SCA_EJB会话bean绑定规范,SCA_Java EE集成规范,SCA_JAVA构件实现规范,SCA_JAVA通用注解和API规范,SCA_JCA绑定规范,SCA_JMS绑定规范,SCA_SCA策略框架,SCA_Spring构件实现规范,SCA_Web服务绑定规范,SCA_WS-...
SCA规范4.1版本草案
fortify 5.1 SCA rules 规则库
包括SCA SDO的例子 soa的介绍 Eclispe 开发SCA的实例等
一些关于SCA的基础概念,希望对大家的学习有帮助。
SOA-SCA-Assemblymodel
软件无线电体系结构规范。软件无线电开发设计者必备的资料!
SCA介绍,SOA的基础知识
MTK提取固件刷不进去必调设置sca文件,内含6573 6575的配置
datasheet_sca3300-d01.pdf