SOA概念已经为大多数用户和企业所熟知,同时也有众多企业开始实践SOA,在项目实施过程中不断完善SOA的技术和实施方法。长风联盟内的用户、软件企业和科研院所,在SOA技术研究、产品研发和项目实施过程中,形成若干SOA工作组,共同研究、交流SOA相关技术和规范标准,同时也形成了一些实际的SOA支撑产品和项目实施经验。
本文以联盟SOA参考架构工作组(SOA-RA-TF,由东方通、计算所、华迪、同方、有生博大、神州数码等组成)在SOA技术标准研究、SOA参考架构规范制定、SOA技术支撑产品研发,以及研究成果在实际的SOA项目中的应用经验为基础,对SOA项目实施过程需要注意的关键问题做一些总结和介绍,力图通过本文能够与各方面的SOA实践者,为SOA的应用和推广,相互交流经验,共同发展。
SOA项目实施的过程和特点
SOA项目如同其他IT项目一样,也有类似的实施过程。
SOA项目实施过程
从表面的几个过程看SOA项目的实施没有什么特别的地方,能够体现SOA特点的是在项目实施过程中的每一个具体环节中,如规划阶段对标准的考虑,分析阶段对业务的详细描述和定义,设计阶段技术架构(包括逻辑架构和物理架构)的定义,实现阶段更多依赖于定义而不是编码,以及运维阶段对服务运行情况的重点关注。
下面介绍实施过程中的主要关键点。
规划阶段
在这一阶段有许多重要的事情需要做,这将决定SOA项目实施的成败。
首先是需要确定目标,对于系统的功能目标应该是明确的,除此之外我们需要重点关注的是为什么要采用SOA思想,是为了达到什么目的。在这时我们需要了解SOA能够给我们带来什么,我们希望得到什么,这两者是否匹配;也需要了解SOA适合什么,不适合什么,我们建设项目与SOA适合是否适配。如果这些匹配一致我们就可以放心进行下一步骤了,否则就得考虑是否一定要采用SOA,是否采用其他的思想和技术架构也足以解决问题。
在此我们再看一下SOA特点:
强调业务服务的复用
支持业务灵活重构
强调松耦合
强调标准的采用
我们也需要了解SOA不适合的地方:
开发简单单个应用时,不要使用SOA
构建高吞吐量应用或实时应用是,不要使用SOA
如果网络速度慢,网络不可靠时,不要使用SOA
当服务接口不确定时(即业务服务功能本身不稳定时),不要使用SOA
当安全性极为重要时,暂时不要考虑SOA
业务处理有严格的事务完整性要求时,建议暂时不用SOA
其次需要考虑系统的规模,建议第一个SOA项目不要选择太大,需要限定项目的大小,保证在不长的时间内可以顺利实施完毕,确保项目的成功。通过项目经验的积累,为后续SOA项目开创一个良好的局面和环境。SOA本身特点支持项目的递进式实现,可以采用不断滚动改进的方式实施项目。
接着是考虑标准问题,这里的标准包含两方面:业务标准和技术标准。标准的确定是过程中一直需要考虑的问题,在分析和设计阶段都需要对标准加以考虑,并最终确定项目需要采用和制定的标准。
业务标准可以规范服务、流程和数据;技术标准可以帮助确定技术架构,确定采用的技术,可以确保服务/组件的复用、组装和运行维护。
最后是组建团队,要实施好SOA项目,需要确保合理的团队成员。首先领导的参与是项目成功的保证,SOA项目一般会涉及多个部门,或企业之间的协作,没有领导的参与和重视,这类项目成功的可能性会非常的低。
业务人员参与也是一个重要因素,SOA中强调的服务是业务的服务,而不是技术实现的服务。业务服务的定义、分类,业务流程的确定,业务数据的分析等,如果没有业务人员参与,这些工作基本上是无法开展的。在现阶段让业务人员直接参与设计和实现还不是特别的现实,但随着SOA技术和产品的成熟,业务人员一直参与到设计,甚至实现阶段也是可能的,只有这样才能更好保证SOA项目实施的成功,才能更好体现SOA的价值。
分析阶段
分析阶段主要进行业务的分析和梳理,包括:业务服务定义,业务流程定义、业务数据分析和组织架构。在这一阶段需要确定SOA项目中需要实现哪些业务,业务如何复用,业务如何串接在一起完成一个工作流程,在执行业务和业务流程过程中需要使用哪些数据,以及这些数据的关系。
业务定义时需要考虑下列因素
谁拥有业务服务
谁需要使用业务服务,如何进行授权管理
业务的基本标识信息
业务服务的功能描述
业务服务的使用约束条件
业务服务使用到的数据信息
业务服务的质量特性,如可靠性、安全性和事务性等
业务服务的服务等级信息,如服务响应时间,可提供服务时间,是否收费等
业务服务的生命周期
业务服务运行时需要关注的信息
组织架构分析时需要考虑下列因素
实际的组织架构
组织架构中有哪些角色
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
如何避免云计算与SOA冲突