技术开发 频道

SOA参考架构

  【IT168 文档】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的实现可以从一个小的项目来启动,在新的项目实施的时候,新的功能能够轻松的加到架构中,通过渐进的方式在企业范围内扩大集成的范围。

  SOA参考架构具有如此多的功能和优点,那么,中国国内的软件企业,又有谁具备了SOA参考架构,并具备了向客户提供SOA解决方案的能力呢?

  2007 年 6 月, Gartner 发布了全球应用基础软件报告。在此次报告中首次对提供 SOA 服务的各大软件公司进行了详细分析,并列出了全球有能力提供 SOA 解决方案的 19 家主要厂商。令业界为之瞩目的是,金蝶作为国内知名一家企业,和 IBM 、 BEA 、 Oracle 、微软等世界软件巨头一起入选。

图2 Global SOA Service Enterprise

  金蝶公司作为国内领先ERP厂商,一直在关注并积极推进SOA的产品应用,金蝶BOS就是这方面努力的成果。金蝶BOS采用了企业服务架构的架构思想,成为金蝶ERP满足适应性业务的平台基础。

图3 金蝶SOA产品解决方案

  金蝶BOS的SOA实现方案分为以下部分:

  1.SOA基础实现

  • 业务参考模型:基于企业动态建模原理,提供了企业建模的元语义,是金蝶SOA方案中对所有服务描述的基本语法。
  • 核心组件:包括对应用程序进行统一访问的信息门户;联接银行、税务公共服务的应用接口;对业务内容进行分级管控的组织架构管理;统一不同应用系统之间业务语义的主数据管理;基于ERP应用实践提供企业可开箱即用的标准业务流程与业务组件。

  2.SOA总线结构实现:

  • 消息总线:负责在传输层面提供各种手段,屏蔽网络连接、消息路由、打包传递等功能,实现不同物理机器、不同平台上运行的应用系统之间透明的、可靠的消息传递。
  • 数据总线:实现对所传递数据进行格式的识别和转换,并实现数据路由将数据按照集成方案的编排传递到指定的目标系统中。
  • 服务总线:Web Service和专业Adapter提供了各类应用系统和接口访问支持能力,通过在消息节点和消息代理上挂接Web Service或专业Adapter,形成真正意义上的ESB,并提供服务请求和响应的智能路由。

  3. SOA关键服务实现:

  • 在SOA基础实现的方案上,通过业务功能可以被发布和提升(Promote)为业务服务(Business Service);工作流程可以被发布和提升为复合服务(Composited Service),通过Promote的过程实现了金蝶SOA对SOA标准和规范的支持能力;业务服务可以被外部的SOA系统再次编排和组合,并且可以方便的接入到第三方供应商的SOA产品中。

  在逐级的实现SOA架构的基础上,金蝶SOA的还提供完整的SOA开发服务与SOA运营管理服务

  4.开发服务:提供从覆盖应用设计,业务组件建模,服务组件开发,服务的编排与流程建模完整的服务实现的开发环境。

  5.管理服务:实现了部署与系统监控、集成方案定义、数据转换定义、流程配置与监控的SOA运营管理体系。

0
相关文章