好久,也没想出来合适的标题。这个题目似乎有点"标题党",但也是我想表达的意思:SCA不是技术问题,就象有位网友给我留言说的那样,SCA一点技术含量也没有!是的,SCA是提供业务组件化的组件模型,是面向业务的。目标是创建一个新的层 ,以便在IT基础设施的商业逻辑上把应用和中间件分开。
下面从三个方面,从SOA/SCA是什么,SOA/SCA不是什么加以说明:
1、SOA的一个中心思想就是使得企业应用摆脱面向技术的解决方案的束缚,轻松应对企业商业服务变化、发展的需要。SOA是面向服务的,解决的是业务领域的问题,而不是技术领域的问题。
2、SCA是SOA具体实现的一个标准,不是技术框架。
3、SCA的目标是创建一个新的层 ,以便在IT基础设施的商业逻辑上把应用和中间件分开。
一、SOA的问题域——SOA新解
SOA(Service-Oriented Architecture)被广泛的翻译为“面向服务的架构”,或者面向服务的体系结构。SOA包含了三个方面的含义:面向、服务和架构(体系结构)。面向就是有针对性的或者专注于某个方面的意思,理解起来不会产生歧义。那么什么是服务?什么是架构(体系结构)呢?
1)服务:“面向服务的架构”中服务是用来修饰架构的,限定了架构的范围,确定架构的形式。服务是面向服务的体系结构中的核心词,“服务”的使用非常广泛。对于不同的人有不同的理解,那么在SOA这里S“是什么服务”?
请想象以下几个场景:
l 在酒店:服务员为顾客提供点菜、上菜服务,厨师为顾客提供烹调食物的服务,调酒师为顾客提供酒类调制服务,歌手为顾客提供娱乐服务。这些服务都是酒店对顾客提供的餐饮、娱乐休闲等方面的服务。
l 在银行:引导员为顾客提供向导服务,收银员和出纳为顾客提供存取款服务。ATM设备为顾客提供查询帐单,打印账单,购买充值卡等服务。这些都是银行为顾客提供的金融方面的服务。
上面的场景中的酒店、银行都是以企业作为商业服务提供的主体,对服务对象提供本行业内的服务。
对于IT行业的软件企业,对客户(服务对象)提供的也是以企业为主体的服务。企业在领域产业链中位置的不同,提供的服务类型也是不同的。对应这些不同类型的服务可以把企业大致划分为:软件服务提供商和软件开发商。
软件开发商为最终用户和软件服务提供商提供可用的软件产品;软件服务提供商使用这些软件产品为用户提供业务领域的解决方案服务。而SOA是软件企业对外提供服务的时所采用的一个企业级的架构。SOA的主要目标是实现业务组件化,并提高组件化业务的重复使用能力,有效地管理及重复使用企业的服务和数据。在SOA化的过程中统一组织目标和方向,达到方法与目标的一致。
2)架构(体系结构):是从整体到部分的最高层次的划分。架构是一套构建系统的准则。通过这套准则,可以把一个复杂的系统划分为一套更简单的子系统的集合,这些子系统之间应该保持相互独立,并与整个系统保持一致。而且每一个子系统还可以继续细分下去,从而构成一个复杂的企业级架构。同时,这个架构是面向业务的,即企业向目标商业领域提供的业务服务。比如:ERP厂商提供ERP的产品服务如果是面向石油化工领域,那么提供的服务就是面向石油化工领域业务的;如果面向电信领域,那么提供的就是电信领域的业务服务。这个架构(体系结构)为同一个ERP厂商向不同领域提供不同服务提供了一个模型。利用SOA面向业务的特点,可以对业务作准确定义、清晰描述,明确业务边界和职责。使业务组件高内聚低耦合,达到业务级别的大粒度的复用。
SOA通过重复利用现有业务组件逻辑,主要解决几个问题:
1) 业务不灵活:企业不能依赖IT的基础结构来快速满足业务需求的变化,缺乏有效的应对市场需求变化的能力;
2)开发效率不高:相同的业务不断重复开发;在相似的业务中无法利用企业已有资源;系统体系设计层次低,只能做到代码层次的复用。这些都会导致企业软件开发成本过高,投入资金无法回收。
二、SOA/SCA解决的是哪个领域,哪个层面的问题?
三、SCA的的几个层次
1、SCA规范的层次
SCA是一个规范,针对于SCA使用的不同,可以分为几个层面:
事件
|
角色
|
提供业务需求
|
用户
|
使用SCA规范开发业务组件
|
软件服务提供商
|
提供遵循SCA规范的容器实现
|
SCA容器实现厂商
|
提供SCA规范的底层构件实现
|
构件库、SCA底层功能的实现厂商
|
做SCA那个层面的事件就决定了企业的角色和定位。
2、SCA业务层次分解
在SCA中每个业务组件包含若干个不同的层面,不同的层面对应不同的角色和任务。
所处的角度
|
SCA
|
业务主管和业务分析人员
|
一组服务,它们构成 IT 资产(功能),可用于构建解决方案并向客户和合作伙伴公开这些解决方案。
|
企业架构师
|
一组体系结构原理和模式,用于处理解决方案的总体特征:模块性、封装、松散耦合、关注事项分离、重用、可组合性,等等。
|
项目经理
|
一种支持大规模并行开发的开发方法。
|
测试人员和质量保证工程师
|
一种模块化从而简化总体系统测试的方法。
|
软件开发人员
|
一种包括诸如 Web 服务等标准、工具和技术的编程模型。
|
这个层次为SCA的实施提供了过程参考。SCA中每个业务组件包含若干个不同的层面,可以使用不同的方法实现,并借助一些工具来辅助实施。比如,在业务主管和业务分析人员的角度可以使用UML来做业务的分析。架构师可以使用Spring、OSGi等技术框架和设计模式实现架构层的结构。
SCA的目标是创建一个新的层,以便在IT基础设施的商业逻辑上把业务和实现分开。它能够简化面向业务需要环境下的应用开发过程,使系统更加关注业务逻辑。通过业务组件提供业务逻辑,SCA实现提供了强有力的组合能力,可以将嵌入SCA环境的实现充分组合复用。但是一旦涉及如何实现具体的逻辑,就要进入SCA业务层面之下了。
如果SCA业务分解层次与软件工程开发过程瀑布开发模型的几个阶段比较,大致对应关系如下:
软件工程过程
|
SCA 对应层次
|
需求获取和需求分析
|
业务主管和业务分析人员:
一组服务,它们构成 IT 资产(功能),可用于构建解决方案并向客户和合作伙伴公开这些解决方案。
|
需求分析和概要设计
|
企业架构师:
一组体系结构原理和模式,用于处理解决方案的总体特征:模块性、封装、松散耦合、关注事项分离、重用、可组合性,等等。
|
详细设计和项目组织
|
项目经理:
一种支持大规模并行开发的开发方法。
|
测试
|
测试人员和质量保证工程师:
一种模块化从而简化总体系统测试的方法。
|
编码
|
软件开发人员:
一种包括诸如 Web 服务等标准、工具和技术的编程模型。
|
实施SCA可以借鉴软件开发过程,对每个层次进行组织。
四、与SCA相关的应用案例
<待续>
分享到:
相关推荐
标题与描述均提到了"SOA-SCA-Assemblymodel",这指向了服务导向架构(Service-Oriented Architecture,SOA)中的一个关键组成部分——服务组件架构(Service Component Architecture,SCA)。SCA是一种规范,它定义...
随着技术的发展,企业和开发者们更加关注如何将SOA的概念应用于实际开发中。因此,SCA/SDO应运而生,旨在提供一套标准化的技术框架,以帮助开发者更轻松地构建SOA应用。 2005年,IBM、BEA、IONA、Oracle、SAP等多家...
3. **提高集成能力**:SOA支持异构系统间的集成,可以连接不同平台、技术栈的应用程序,实现数据和功能的共享。 4. **优化资源分配**:通过集中管理服务,可以根据业务需求动态调整资源分配,提高效率。 ### SOA...
在给出的部分内容中,列出了多个公司和技术人员作为技术联系人,这表明SCA规范是由多家大型科技公司合作制定的,包括SAP、IBM、Oracle等,体现了技术标准制定过程中的跨企业协作精神。此外,版权信息明确了SCA规范的...
该文档明确了SCA版本1.0的具体实现细节,并提到了一些关键的技术联系人,包括来自IBM、BEA Systems、Oracle等公司的专家。此外,还包含了版权和许可协议的相关说明。 **1. 技术细节** - **SCA服务构件架构**:描述...
**SOA标准与SCA架构详解** 服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的方式,它强调将业务功能分解为独立的服务,这些服务可以通过网络进行交互,实现松耦合和重用。SOA...
### SCA与SOA编程模型:精简J2EE开发体验 #### SCA与SOA编程模型概述 在探讨SCA(Service Component Architecture)及其如何简化...总之,SCA是实现SOA的重要技术之一,它为企业级应用的开发和集成提供了强大的支持。
SCA(Service Component Architecture,服务组件架构)是实现SOA的一种标准,它提供了一种统一的方式来定义、组合和管理服务。Apache Tuscany是Apache软件基金会开发的一个开源实现SCA的项目,它提供了一个全面的SOA...
nLength = strlen(pSrc->SCA); // SMSC地址字符串的长度 buf[0] = (char)((nLength & 1) == 0 ? nLength : nLength + 1) / 2 + 1; // SMSC地址信息长度 buf[1] = 0x91; // 固定: 用国际格式号码 nDstLength = ...
SCA的核心目标是让开发者能够专注于业务逻辑,而不是技术实现细节,通过服务组件的方式实现应用的解耦和模块化。它允许使用不同编程语言实现组件,并提供关键的基础设施支持,如安全性、事务处理和可靠的调用。 **...
SCA规范中文版,包含Java-SDO-Spec-v2.1.0-FINAL.pdf,SCA_AssemblyModel_V100中文版.pdf,SCA_JavaAnnotationsAndAPIs中文版.pdfSCA_JavaComponentImplementation_V100中文版.pdf 4个文件
作者从SOA技术一线的经验出发,深入剖析SOA核心技术铁三角——SCA、SDO和BPEL的理念。之后沿此三个主要技术方向做贴地飞行式以应用为核心的全方位介绍,力求深入、敏捷、贴近实际;使读者在读完本书之后对SOA的核心...
### 解析SOA架构与相关技术 #### 面向服务架构(SOA)概述 ...同时,SOA与其他相关技术(如BPM、SCA/SDO、SaaS、ESB等)的结合,进一步增强了其在实际应用中的价值,为构建更加高效、灵活的IT系统奠定了坚实的基础。
SCA则是SOA的具体技术实现,它提供了定义、组合、部署和管理服务的标准化方法,使得不同技术栈的服务可以无缝集成。 **Spring与SCA的结合** Spring作为Java领域内广泛使用的轻量级框架,因其强大的依赖注入...
SCA(Service Component Architecture,服务组件架构)与SDO(Service Data Object,服务数据对象)是面向服务架构(SOA,Service-Oriented Architecture)中的关键组成部分,它们为构建、管理和部署分布式应用程序...
Eclipse 3.4.1 (Ganymede SR1) 版本后,其SOA/SCA开发工具包STP的发布变为只提供站点更新方式,而不在提供原来的stp-all-in-one打包,但经过实际测试,截至链接: http://download.eclipse.org/stp/downloads/ 到...
### Eclipse SOA Tools Project:SOA应用的Eclipse工具集 Eclipse SOA Tools Project的目标是为SOA应用和系统提供基于Eclipse的工具,以SCA作为解决方案构建模型。它针对包括Tuscany在内的各种系统,如SCA运行时...
【SOA:超越IT技术的商业价值】 SOA(Service-Oriented Architecture,面向服务的架构)被微软的John DeVadoss强调不仅是一项信息技术,更是一种创造商业价值的方法。SOA的核心在于提供灵活且可复用的服务,这些...
的Web服务,而是新兴的SOA技术标准——服务组件架构(Service Component Architecture, SCA)、 服务数据对象(Service Data Object,SDO)和业务流程执行语言(Business Process Execution Language, BPEL)。这...