好久,也没想出来合适的标题。这个题目似乎有点"标题党",但也是我想表达的意思: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 关注 技术 的人 走开 | 来源:互联网 | 责任编辑:系统管理员 | 最后编辑:2012年01月06日 18时31分41秒