SOA系统须满足三个条件:数据、界面和业务逻辑分离;能把接口开放出来并容易被调用;能进一步将面向技术的组件包装成面向业务的服务。
SOA产品行业模板的借鉴
SOA的战略意义目前已得到业内广泛认可,在企业应用集成领域有着重要的意义。成熟的SOA产品针对不同的行业应用已经有了基本的服务建模,可作为重要参照。Oracle、IBM、SAP和微软等软件巨头从本世纪初开始陆续为SOA投入了大量资源,目前已经形成比较完善的解决方案。
通过SOA促进IT和业务的融合过程包括四个逻辑层次:底层是SOA基础和IT基础架构,其上是行业框架,再上一层是行业解决方案,最上层则是策略性商业推动力。Oracle、IBM、SAP和微软等都已经建立了电信行业的应用架构,这些框架建于最新的行业标准之上,可为企业提供多种设计和部署SOA 的方法。通过运用这些框架,企业能够充分利用带有BPM(业务流程管理)的流程模板创建最佳实践,满足自身的业务需求。
明确服务设计内容
服务设计的目标是为业务流程建立一种与定义侯选服务一致的方法。服务是其接口采用SCA(服务组件体系结构)和SDO(服务数据对象)等一致认可的格式发布的服务操作的逻辑分组。服务设计需与部署到其中的SOA基础架构相兼容,尤其要确保服务应避免不必要的耦合。因此服务设计需遵循基于面向服务的设计原则。
根据服务建模结果和统一的服务设计标准,服务设计需要完成各类服务的接口定义API(参考TMF的OSS/J等)。服务设计的流程包括SOA准备、设计以实体为核心的业务服务、设计应用服务、设计以任务为核心的业务服务、设计面向服务业务流程五个阶段(表1)。
表一:服务内容设计表
API定义除了业务接口,还需要考虑一些基础接口,用来提供监控、安全、审计等服务。
已有应用的服务化改造及部署
在服务建模和设计完成后,需要进行现有应用的服务化改造工作,主要需完成相应软件开发、测试和部署工作。具体应用服务化改造需考虑如下因素。
1.根据服务建模和设计进行服务实现,并对已有服务进行管制;
2.推荐采用MDD(模型驱动开发)的开发方法,重点关注模型的设计而不是手工编码;
3.测试SOA的服务,特别是对SOA架构和服务有效性选择的测试;
4.部署关注性能和服务的QoS;
5.项目实施建议采用RUP(统一开发过程)的迭代方法降低风险,一般推荐迭代2轮。
改造工作的重点是结合系统现状和改造需求,合理安排众多服务的改造计划,以保证IT系统向SOA演进的整体进度。
IT系统的SOA实施策略
从目前电信运营商的情况来看,各运营商都尚未大规模实施SOA,但是已经有一些系统具有了SOA的特征。如流程管理的功能及WebService接口标准的运用等,这些在一定程度上对SOA的推行有积极意义。
业界对于SOA实施的启动推进方式主要有两种,即流程驱动主导和功能驱动主导(图4)。
图4 SOA实施启动推进方式
由功能驱动主导的SOA实施启动推进方式对需求分析的要求非常高,因此在SOA实施的初期阶段一般都会采用流程驱动主导的方式。
考虑到任何IT技术转变都存在一定的风险,为了控制风险,在SOA实施时推荐采用先试点后推广的方式。试点宜采用流程驱动为主导的服务建模和设计方式:选择1到2个具有典型性的流程做试点,只从功能系统中封装流程牵涉到的服务,服务按流程所需来进行建模和设计。
在流程选择、梳理、服务定义之前或者进行的同时,需要进行SOA基础平台和相关基础服务的建设。
在试点取得成功、得到用户认可之后,可以考虑在整个业务应用领域实施。整体的SOA实施需要流程驱动和功能驱动相结合的服务建模和设计方式。
流程驱动和功能驱动相结合的服务建模和设计方式可以结合两种方式的优点。流程分析可以兑现业务需求,功能分析可以充分考虑到现有的系统能力。
试点时,SOA基础平台(包括企业服务总线和服务管理等)已经建设完善,在整体实施阶段只需要考虑容量问题。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
谁知道阿里云河南服务中心是干什么的?
一直接到阿里云服务中心的电话,说是阿里云的授权中心,主要提供阿里云的区域服务的?请问其他地方也有阿里云的服务中 […]
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。