SOA(Software-Oriented Architecture),即面向服务的架构,最初由全球最具权威的IT研究与顾问咨询公司Gartner于1996年提出,但由于当时的技术水平和市场环境尚不具备真正实施SOA的条件,SOA并未引起人们的真正关注,因此在接下来相当长一段时间内归于沉寂。进入21世纪之后,Internet风起云涌,越来越多的企业将业务转移到互联网领域,带动了电子商务的蓬勃发展。为了能够将公司业务打包成独立的、具有强大伸缩性的可跨越Internet访问的服务,人们提出了Web服务的概念,这是SOA实践的真正发端。
SOA提供了一种构建IT组织的标准和方法,通过建立可组合、可重用的服务体系来减少IT业务冗余,并加快项目开发的进程。SOA 允许一个企业高效地平衡现有的资源和财产,这种体系能够使得IT 部门效率更高、开发周期更短、项目分发更快,在帮助IT技术和业务整合方面有着深远的意义,它可以:
缩小业务和技术的鸿沟——以业务为中心
SOA改变了以往以技术为中心的信息系统建设模式,使得IT 技术重新回到业务支撑的角色。IT技术的目标是为业务、应用服务,而不是IT技术本身的发展。业务人员可以像组装硬件一样从业务角度即时构造应用,从而缩小业务和技术的鸿沟。
软件资源的共享与重用
SOA提供了一种把原有的组件按一定的标准封装为具有文档形式接口描述的服务,从而使服务的使用者和服务之间是一种松耦合关系。这样,一方面可以把遗留系统封装为服务加以复用,提高了投资回报率;另一方面,可以直接调用外部服务提供商提供的服务从而起到复用的作用。
应用的随需扩展——灵活性和敏捷性
SOA的松耦合特性给应用带来了极大的灵活性。服务使用者和服务提供者在保持接口契约一致性的情况下,可以独立演化。基于SOA 的应用可以看成是一组服务以及服务之间松散耦合的集合。因此,一方面新的服务可以很容易地加入这个松散集合,另一方面也可以根据业务需求重新编排集合内的服务,以生成新的复合服务。因此基于SOA的应用具有易于改变、易于扩展的特点,从而支持了业务的快速反应和敏捷性。
总之,面向服务架构(SOA)试图将网络上需要共享的各种资源统一以服务的形式进行封装和接入,让它们在物理上保持分布自治的同时实现以“虚拟信息中心”为基础的逻辑上的一体化管理,以透明的方式进行资源的优化选取、按需中介和有效访问,并能够支持用户主动参与应用配置。
随着SOA发展的深入,各种SOA相关技术标准也随之发展和完善。SOA的优点和特点,已经为大多数厂家和用户所熟知,如松耦合、业务敏捷性、基于开放式标准等,那么如何构建企业或组织的SOA应用呢? SOA 参考架构 (Reference Architecture)将是一个非常好的起点,它可以为用户带来如下好处:
可作为SOA开发实施的蓝图,提供SOA的总体规划建设参考
改善SOA实践,提高SOA实施的成功概率
SOA参考架构各个组成部分定位清晰,松散耦合,便于项目管理
促进SOA参与角色及各方认识一致,推进标准化
促进 IT 与业务的紧密配合
协助企业向重用、团队协作和资源共享的文化迁移
SOA 参考架构 (Reference Architecture)及相关技术,主要应用在企业应用集成领域,它能够以服务的方式共享和复用企业现有应用资产,保护用户IT投资,并能够以服务的方式构建新的业务流程,对组织中的业务流程进行灵活的重构和优化,增强业务的敏捷性。通过SOA参考架构,可以为企业架构提供一种指导和参考,使得新的需求能够更快的得到响应。
图1 SOA 参考架构
如图1所示,SOA参考架构描述了企业范围内SOA项目所需要的关键能力。
开发服务(Development Services)用于实现新开发的组件以及重用基础架构的能力。
业务创新优化服务(Business Innovation & Optimization Services)用于从IT和业务两个层面来监控和管理运行情况。
管理服务(Management Services)包括对服务、应用和资源的管理和保护能力,如通过负载均衡来有效的分配系统计算资源。
SOA解决方案中的很多服务都是由已有应用系统提供的,接入服务(Access Services)提供访问已有应用或遗留系统的能力,同时提供已有应用、打包应用程序与ESB之间的桥接能力,将已有系统中的功能和信息转化为服务。
业务应用服务(Business App Services)指那些通过新的计算平台JavaEE来实现的新应用,它们所实现的功能和信息也都转化为服务提供出来。
在业务流程需要与外部的合作伙伴、供应商交互的情况下,伙伴服务(Partner Services)提供文档、协议以及伙伴管理的能力,比如说,可以提供企业边界处不同安全级别差异的转换。
信息服务(Information Services)是那些跟信息(而不是活动)有关系的服务,比如将多个系统中异构的数据,聚合、转换为业务需要的统一整齐的业务数据对象来访问。信息服务通过联合、复制和转换来解决基于不同实现方式的不同数据源之间的数据共享难题。
流程服务(Process Services)是指把多个服务聚合成为一个服务流程对应业务过程的服务,这种复合服务通常是长时间运行的过程。流程服务提供服务控制能力,将多个服务串起来实现一个业务流程。
交互服务(Interaction Service)一方面将人的活动,通过人机交互以服务的方式出现在整个业务过程中,作为流程服务)中的一部分;另一方面将IT的功能和数据传递给最终用户,并满足用户特定的使用习惯。
在SOA参考架构中,企业服务总线(ESB Enterprise Services Bus)处于非常重要的位置,它提供服务的中介,解耦服务请求者和服务提供者,是SOA参考架构中的核心。 ESB是过去消息中间件的发展,采用了”总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放标准为基础来支持应用之间在消息、事件和服务级别上的动态互联互通。需要注意的是,ESB是一种架构模式,不能简单地等同于特定的技术或产品,但实现ESB确实需要各种产品在运行时和工具方面的支持。
SOA参考架构是一个完整的企业架构,可以覆盖整个企业范围内集成的需求。参考架构中的服务通过模块化的方式进行集成,因此SOA的实现可以从一个小的项目来启动,在新的项目实施的时候,新的功能能够轻松的加到架构中,通过渐进的方式在企业范围内扩大集成的范围。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
如何避免云计算与SOA冲突