技术开发 频道

SOA能改变什么:以服务为中心的企业整合

业务逻辑服务
 
  整合已有应用 - 应用和信息访问服务。已有应用和信息是实现业务逻辑和业务数据的重要资产。通过集成已有的应用和信息将可以在已有企业系统上实现更多增值服务,所以集成已有应用和信息是企业集成中重要的一环。
 
  以服务为中心的企业集成通过应用和信息访问服务(Application and Information Access Service)来实现对已有应用和信息集成。它通过各种适配器技术将已有系统中的业务逻辑和业务数据包装成企业服务总线支持的协议和数据格式。通过企业服务总线,这些被包装起来的业务逻辑和数据就可以方便的参与上层的业务流程,从而已有应用系统的能力可以得以继续发挥。这里的已有应用包括遗留应用、预包装的应用和各种企业数据存储。在参考架构中,主要有两类访问服务:
 
  ·可接入服务(On-Ramp Service):通过各种消息通信模式(单向、请求/应答和轮询)将业务逻辑和业务数据包装成企业服务总线可以访问的功能。
  ·事件发现服务(Event Detect Service):提供事件通知服务将已有应用和数据中的变化通过事件框架发布到企业服务总线上。
 
  整合新开发的应用 - 业务应用服务。和已有应用和数据类似,新开发的应用也作为重要的业务逻辑成为企业集成的目标。以服务为中心的企业集成通过业务应用服务(Business Application Service)实现新应用集成。一方面业务应用服务帮助程序员开发可重用、可维护和灵活的业务逻辑组件,另一方面,它也提供运行时的集成提供对业务逻辑组件的自治管理。在参考架构中,有三类业务应用服务:
 
  ·组件服务(Component Service):为可重用的组件提供应用的运行时容器管理服务,如对象持久化、组件安全管理和事务管理等。
  ·核心服务(Core Service):提供运行时的服务,包括内存管理、对象实例化和对象池、性能管理和负载均衡、可用性管理等。
  ·接口服务(Interface Service):提供和其他企业系统集成的接口,如其他企业应用,数据库、消息系统和管理框架。
 
  整合客户和业务伙伴(B2C/B2B)-伙伴服务。以服务为中心的企业集成通过伙伴服务提供与企业外部的B2B的集成能力。因为业务伙伴系统的异构性,伙伴服务需要支持多种传输协议和数据格式。在参考架构中,提供如下服务:
 
  ·社区服务(Community Service):用于管理和企业贸易的业务伙伴,支持以交易中心(Trade Hub)为主的集中式管理和以伙伴为中心的自我管理。
  ·文档服务(Document Service):用于支持和业务伙伴交换的文档格式,以及交互的流程和状态管理,支持主流的RosettaNet、EDI和AS1/AS2等。
  ·协议服务(Protocol Service):为文档的交互提供传输层的支持,包括认证和路由等。
 
控制服务
 
  数据整合-信息服务。企业数据的分布性和异构性是应用系统方便访问企业数据和在企业数据之上提供增值服务的主要障碍。数据集成和聚合技术在这种背景下诞生,用于提供对分布式数据和异构数据的透明访问。
 
  以服务为中心的企业集成通过信息服务提供集成数据的能力,目前主要包括如下集中信息服务:
 
  ·联邦服务(Federation Service):联邦服务提供将各种类型的数据聚合的能力,它既支持关系型数据,也支持象XML数据、文本数据和内容数据等非关系型数据。同时,所有的数据仍然在自己本身的方式管理。
  ·复制服务(Replication Service):复制服务提供远程数据的本地访问能力,它通过自动的实时复制和数据转换,在本地维护一个数据源的副本。本地数据和数据源在技术实现上可以是独立的。
  ·转换服务(Transformation Service):转换服务用于数据源格式到目标格式的转换,可以是批量的,或者是基于记录的。
  ·搜索服务(Search Service):提供对企业数据的查询和检索服务,既支持数据库等结构化数据,也支持象PDF等非结构化数据。
 
  流程整合- 流程服务。企业部门内部的IT系统通过将业务活动自动化来提高业务活动的效率。但是这些部门的业务活动并不是独立的,而是和其他部门的活动彼此关联的。勿容置疑,将彼此关联的业务活动组成自动化流程可以进一步提高业务活动的效率。业务流程集成正是在这一背景下诞生的。
 
  以服务为中心的企业集成通过流程服务来完成业务流程集成。在业务流程集成中,粒度的业务逻辑被组合成业务流程。流程服务提供自动执行这些业务流程的能力。在参考架构中,流程服务包括如下内容:
 
  ·编排服务(Choreography Service):编排服务通过预定义的流程逻辑控制流程中业务活动的执行,并帮助业务流程从错误中恢复。
  ·事务服务(Transaction Service):事务服务用于保证流程执行中的事务特性(ACID)。对于短流程,通常采用传统的两阶段提交技术,对于长流程,一般采用补偿的方法。
  ·人工服务(Staff Service):人工服务用于将人工的活动集成到流程中,一方面它通过关联的交互服务使得人工可以参与到流程执行中,另一方面它需要管理由于人工参与带来的管理任务如:任务分派,授权和监管等。
 
  用户访问整合 - 交互服务。将适当的信息,在适当的时间,传递给适当的人是一直是信息技术追求的目标。用户访问集成是实现这一目标的重要一环,它负责将信息系统中的信息传递给客户,不管它在那里,它以什么样的设备接入。
 
  以服务为中心的企业集成通过交互服务来实现用户访问集成。参考架构中的交互服务包括如下类型:
 
  ·交付服务(Delivery Service):交付服务提供运行时的交互框架,它通过各种技术支持同样的交互逻辑可以在多种方式(图形界面、语音和普及计算消息)和设备(桌面、PDA、无线终端等)上运行,比如通过页面聚合和标签翻译使得同一个Portlet可以在桌面浏览器和PDA浏览器上展现。
  ·体验服务(Experience Service):通过用户为中心的服务增强用户体验, 其中的技术包括:个性化、协作、单点登录等。
  ·资源服务(Resource Service):提供运行时交互组件的管理,如安全配置、界面皮肤等。
 
开发支持
 
  企业集成涉及面很广,不仅需要开发新的应用并使其成为可以被用于企业集成的功能组件,而且需要将被包装的已有的应用和数据用于集成;不仅有企业内部的集成,而且需要和企业外部的系统集成;不仅有交互集成和数据集成,还有功能和应用集成。考虑到这其中的每部分在技术上都会涉及到各种平台和中间件,企业集成的技术复杂性是普通应用开发不可比拟的。这种技术复杂性需要更强有力的开发工具支持。企业集成的开发工具需要有标准的工具框架,这些工具能够以即插即用方式支持来自多家厂商的开发工具。同时,企业集成的开发工具需要支持整个软件开发周期,以提高开发过程中各种角色的生产力。
 
  在以服务为中心的企业集成中,除了需要支持整个软件开发周期和标准的工具框架以外,开发服务需要提供和服务开发相关的技术:
 
  ·用于支持以服务为中心的企业集成方法学和建模,如SODA和IBM的SOMA(Service Oriented Modeling and Architecture)
  ·用于服务为中心的编程模型,如WSDL, BPEL4WS,SCA和SDO等
 
  开发环境和工具中为不同开发者的角色提供的功能被称为开发服务。根据开发过程中开发者角色和职责的不同,有如下四类服务:
 
  ·建模服务(Model Service):用于构建可视化的业务流程模型
  ·设计服务(Design Service):根据业务模型,进一步分解为服务组件;设计服务用于设计和开发这些服务组件
  ·实现服务(Implementation Serivice):用于将设计和开发的服务组件部署到生产环境中
  ·测试服务(Test Service):支持服务组件的单元测试和系统的集成测试
 
业务创新和优化
 
  一方面,以服务为中心的企业集成通过各种集成提高信息流转速度,从而提高生产效率。另一方面,以服务为中心的企业集成也为业务创新和优化提供了支持平台-业务创新和优化服务。
 
  业务创新和优化服务以业务性能管理(BPM)技术为核心提供业务事件发布、收集和关键业务指标监控能力。具体而言,业务创新和优化服务由以下服务组成:
 
  ·公共事件框架服务(Common Event Infrastructure Service):通过一个公共事件框架提供IT和业务事件的激发、存储和分类等。
  ·采集服务(Collection Service):通过基于策略的过滤和相关性分析检测感兴趣的服务。
  ·监控服务(Monitoring Service):通过事件与监控上下文间的映射,计算和管理业务流程的关键性能指标(KPI) 。
 
  业务创新和优化服务与开发服务是紧密相关联的。在建模阶段被确定的业务流程的关键性能指标被转为特别的事件标志被构建到业务流程中,建模过程中的业务流程也被转换为用于监控服务的监控上下文。在业务流程执行过程中,这些事件标志激发的事件被公共事件框架服务截获,经过采集服务的过滤被传递给监控服务用于计算关键性能指标。关键性能指标作为重要的数据被用于重构或优化业务流程。这种迭代的方法使得业务流程处于不断的优化中。
 
管理支持
 
  为业务流程和服务提供安全、高效和健康的运行环境也是以服务为中心的企业集成重要的部分,它由IT服务管理来完成。IT服务管理包括如下两部分:
 
  ·安全和目录服务(Security and Directory Service):企业范围的用户、认证和授权管理,如单点登录(SSO);
  ·系统管理和虚拟化服务(System Management and Virtualization Service):用于管理服务器,存储、网络和其他IT资源。
 
  IT服务管理中相当一部分服务是面向软硬件管理的,而另外一部分服务,特别是安全和目录服务,以及操作系统和中间件管理,会通过企业服务总线和其他服务集成在一起,用于实现业务流程和服务的非功能性需求,如性能、可用性和安全性等。
 
SOI中技术标准和IBM产品支持
 
下面的表格列出乐SOI架构元素中的技术标准,和IBM的产品如何支持这些架构元素。
(SOI架构元素中的技术标准以及支持架构元素的IBM的产品)
 
SOI 实践
 
  企业集成首先是一个战略性的活动,在我们的经验中,有很多的企业将重点放在集成技术上,这导致了很多失败的案例。作为一个战略性的活动,企业集成首先要从全局出发,制定整个企业集成的策略。这种策略包括业务目标,集成路线图,技术规范,和对开发管理提出的新要求。
 
  企业集成的目的是为了整合 IT 资源,形成一个灵活的 IT 基础设施,来满足业务随需应变的要求。所以要充分考虑业务面的压力和痛点,未来发展和转型对 IT 带来的新需求,以确定集成的战略目标。在环境发生变化时,要随业务面的调整作必要的修改。在我们的观察中,企业 IT 组织往往由于缺乏高级业务管理人员的参与,而无法制定与业务对齐的集成战略,失去企业集成赖以成功的最重要的基础。
 
  在制定集成的战略目标后,要根据目标的优先级,考察当前 IT 环境,确定集成远景,分析差距,定义集成路线图。考察当前可得到的技术、产品、相关技能和服务的可获得状况,定义高层技术规范,包括集成方法、参考架构、技术和产品的选择标准、所遵循的业界标准等等。然后结合人力、物力和资金的投入情况,导出项目群。在我们的观察中,很多企业为了应付业务需求,匆忙上马,缺乏统一规划,导致企业 IT 架构越来越混乱,不能适应业务的变化而日渐被动。
 
  由于集成是一个企业范围内的活动,一个集成项目往往影响若干个部门,其结果也由多个部门所共享使用,所以需要企业级的协调机制。这要求企业调整其已有的 IT 管理(IT Governance)机制,要有一个角色来协调集成项目,并被授权,利用 IT 开发管理的过程,保证相应集成规范得到执行。
 
  另外值得注意的是关于成熟度的考虑,不同企业有不同的成熟度,包括业务本身、IT 系统、IT 组织自身在技能和管理方面,它们的成熟度,对企业集成的成功与否,也都有很大的影响。对成熟度的考察,会帮助我们制定更稳健、实际的集成策略。
 
  服务建模(Service Modeling)是 SOI 活动中至关重要的活动。它包括如何找到和确定服务,如何处理服务的粒度,如何通过服务体现和实现业务目标,如何详细说明服务,如何确定服务与已有系统的关系等。在我们的实践中,这对很多 IT 组织机构都是一个难题,可以考虑一些专业公司的培训,如 IBM SOA 设计中心基于丰富的实践所提供的各种服务。
 
结束语
 
  以服务为中心的企业集成方法是对以往企业集成技术的继承与发展。它基于关注点分离、松散耦合等源自非常好的实践的架构原则,继承了EAI,消息总线,流程集成,数据集成等优秀技术,结合以服务为中心(Service Orientation)的先进思想,正在给企业集成领域带来巨大的变化。随着SOI及相关技术的逐渐成熟,SOI正在成为企业集成的新方向。本文的姊妹篇"以服务为中心的企业整合-案例分析",将用一个实际案例来说明基于 IBM 产品的实际 SOI 应用,帮助读者感性地理解 SOI。
0
相关文章