`
freeway2000
  • 浏览: 25618 次
社区版块
存档分类
最新评论

SCA所涉及的几个基本概念

阅读更多

 

    一谈及服务化就不得不提到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框架还引入了软负载均衡,服务引用的自动识别更新等一系列的高级特性。

 

     服务化也是一种思想与方法学,通过这些思想与方法学去只指导我们如何去设计出健壮、可持续扩展的软件体系结构。

 
分享到:
评论
2 楼 freeway2000 2011-11-09  
lgstarzkhl 写道
你们SCA是自己构建还是用开源的?

你可以去看看tuscany或dubbo,我们是用的dubbo
1 楼 lgstarzkhl 2011-10-11  
你们SCA是自己构建还是用开源的?

相关推荐

    基于Tuscany SCA的分布式SCA应用的设计与实现.pdf

    根据所提供的文件内容,本文将详细阐述以下几个关键知识点: 1. Tuscany SCA框架 Tuscany SCA(Service Component Architecture)是由Apache软件基金会所提供的一个开源框架,用于实现服务组件架构。它支持SCA规范...

    SOA之SCA导航-Apache Tuscany篇

    在Apache Tuscany中,构建计算器应用通常涉及以下几个步骤: 1.1. 前言 这部分介绍构建计算器应用的基本概念和目的,帮助初学者理解SCA在实际应用中的工作方式。 1.2. 安装环境 首先,你需要设置好Java运行环境,...

    SCA_specification_version_2_2_2

    SCA 2.2.2版本规范包含以下几个主要部分: - **1.1 范围**:明确了SCA 2.2.2版本的目标和适用范围。 - **1.2 合规性**:规定了符合SCA规范所需的条件。 - **1.3 文档约定、术语和定义**: - **1.3.1 公约和术语**...

    基于SCA的ABB机器人自适应涂胶系统设计.pdf

    基于SCA的ABB机器人自适应涂胶系统设计涉及到的IT知识点主要包括以下几个方面: 1. 机器人技术在汽车制造行业的应用:随着自动化技术的发展,机器人已经成为提高汽车生产质量与效率的重要工具。文中指出,工业...

    Introducing SCA

    复合体的配置通常涉及以下几个方面: - 定义组件及其服务、引用和属性。 - 配置线缆来连接这些组件。 - 设置必要的策略来管理安全性、事务处理等。 #### 五、SCA应用示例 通过一个具体的SCA应用示例,我们可以更...

    opengl 三维代码图

    在三维编程中,我们通常会涉及到以下几个关键概念: 1. **坐标系统**:OpenGL使用右手坐标系,原点位于屏幕中心,Z轴正方向指向屏幕外,X轴和Y轴分别对应屏幕的水平和垂直方向。 2. **顶点和模型**:在OpenGL中,...

    SCA架构简述

    在SCA中,有以下几个关键概念: 1. **服务组件**:这是SCA的基本构建块,用于实现业务逻辑。服务组件可以通过WSDL接口供其他组件调用,同时也可以通过References调用其他组件。它们是独立的、可重用的功能单元。 2...

    SOA概念原理培训.pdf

    文档中提到的适配器、ESB(企业服务总线)、BPM(业务流程管理)和SOA治理是构建和实现SOA的几个关键组成部分。 适配器(Adapter)是SOA中用于解决系统间互操作性问题的一个重要概念。不同系统间通信通常会面临数据...

    sca-mentee-assignment2

    在这个作业中,学生可能需要涉及以下几个关键知识点: 1. **变量与数据类型**:JavaScript支持var、let和const三种声明变量的方式,以及基本数据类型(Number、String、Boolean、Null、Undefined、Symbol)和复杂...

    SCA-TASKS

    【标题】SCA-TASKS 是一个与ShecodeAFrica Cloud School相关的项目,它涵盖了学员在学习过程中完成的各种任务。这个项目的重点在于Java编程语言,因此我们可以预期它包含了一系列使用Java进行开发的练习和项目。 ...

    电信设备-一种软件通信体系结构的逻辑设备组件及其操作方法.zip

    在SCA中,LDC的操作方法涉及以下几个关键方面: 1. **组件模型**:SCA采用组件模型,每个组件都有明确的接口定义,允许组件间通过接口进行通信。LDC作为组件,同样具有输入和输出接口,与其他组件协同工作。 2. **...

    高级系统架构师软件架构设计考试卷模拟考试题.docx.docx

    题目给出了几个关于 SCA 的描述,其中不正确的是“SCA加强组件的接口与传输协议的关联,提高组件的内聚性”(选项B)。实际上,SCA 的设计目的是为了让服务组件之间保持松耦合,而不是通过加强接口与传输协议的关联...

    一些介绍人工智能研究领域的课件

    自20世纪50年代开始,机器学习的研究经历了几个阶段,包括神经模型和决策理论、符号概念获取以及知识强化和领域专用学习,再到后来的连接学习研究。每个阶段的研究焦点不同,主要在于学习系统中先验知识的数量和表示...

    WebSphere Process Server security overview

    设置 WebSphere Process Server 的安全性涉及以下几个关键步骤: - **身份验证**:选择适当的身份验证机制,并配置相应的后端存储库(如 LDAP)。 - **授权**:定义角色并将其分配给用户或组。此外,还需要配置基于...

    MATLAB实现鲸鱼群算法包括算法文档和算法注释

    在MATLAB中实现该算法,通常涉及以下几个关键步骤: 1. 初始化种群:随机生成一定数量的解决方案(个体),代表鲸鱼的位置,作为算法的初始种群。 2. 计算适应度值:对每个鲸鱼的位置,计算对应的适应度值,通常为...

    SMS PDU中文说明及编解码程序

    这个过程涉及以下几个步骤: - **编码**:首先,文本内容根据DCS进行编码。例如,对于7位GSM字符集,每个字符需要7位,然后填充到8位字节中。编码后的数据会加上校验位,通常是奇偶校验。 - **构建PDU**:将编码后...

    软件无线电综合软件无线电综合软件无线电综合7

    这个领域的综合研究涉及到多个关键知识点,包括但不限于以下几个方面: 1. **软件定义无线电(Software Defined Radio, SDR)**:SDR的核心概念是通过软件来实现传统由硬件完成的信号处理功能。这种技术允许无线电...

    ISSCC2021_Session_20V_HIGH PERFORMANCE VCOS.pdf

    文档内容涉及以下几个主要的知识点: 1. VCO的基本概念与重要性 压控振荡器(VCO)是相位锁定环(PLL)的关键组成部分,常用于各种电子系统中,如无线通信、数据通信、频率合成和时钟产生等。VCO可以将电压信号...

    行业分类-设备装置-一种软件服务实现方法、系统及Java平台.zip

    软件服务的实现往往包括以下几个步骤: 1. **需求分析**:明确服务的功能需求,定义服务接口和交互协议。 2. **设计**:根据需求设计服务的架构,选择合适的技术栈,如使用Java EE或Spring框架。 3. **开发**:编写...

Global site tag (gtag.js) - Google Analytics