本文是一个由3部分内容组成的系列文章,在前2部分,介绍了两个企业ESB解决方案的设计案例,这两个案例分别来自于交通运输行业和制造行业,我们针对不同行业的业务和应用特点设计了不同的ESB解决方案。第3部分内容我们将向您介绍ESB项目实施的一些方法论和经验。
前言
一个实际ESB项目实施的成败,不仅要求我们把产品用熟用好,即熟悉ESB产品的配置、开发及优化操作,还需要制定正确的、量体裁衣式的解决方案,并且需要借助科学的项目实施方法论,从需求分析、方案设计、产品开发、测试、上线运行等各个方面进行全面的考虑。本系列文章将分为三部分,第1部分和第2部分将结合两个不同行业的案例来介绍两个具有鲜明行业特点的ESB解决方案,第3部分则将针对ESB项目的实施过程给出一些建议。
航空公司ESB案例解析
通过企业服务总线、接口适配器、服务注册管理等整合技术,实现将企业内部现有的各应用系统之间的信息共享,提高企业内部应用系统的数据共享和交换效率,提升企业在市场上的综合竞争力和客户服务质量,是所有企业的一个典型需求。本文将以航空公司的案例为基础,说明采用IBM ESB相关产品整合航空公司电子商务、常旅客、航班动态、呼叫中心等系统的解决方案。
航空公司ESB的需求举例
与其他行业一样,在民航业,国际和国内的主要航空公司内部也分布着众多已建和在建的用以支撑业务运行的IT系统,这些系统之间缺乏对信息共享性、系统兼容性和接口标准规范的统一考虑,造成系统之间的连接比较困难,应用和数据无法得到全面共享,系统间“蜘蛛网状”的连接普遍存在。随着新系统的不断建设,在业务与流程方面的整合将会因系统和业务领域间的信息沟通障碍而面临越来越多的困难,对航空公司的整体发展战略带来制约。
下面我们就来列举几个民航业的现状,以此说明对企业进行业务整合的必要性。
现状一:业务系统间数据共享需求强烈
总体来看,航空公司的IT分为商务、航务、机务和管控四大体系,其中商务体系中包括定座系统、电子客票销售系统、离港系统、电子商务系统、常旅客系统、大客户系统、呼叫中心系统、运价收益管理系统、地面服务系统等。在这个庞大的体系结构中,存在着巨大的系统间数据集成和共享的需求。主要存在以下三类信息的共享:
航班数据共享:
航班数据包括航班计划、航班动态、飞机参数等数据,是保障航空公司正常运营的最基本信息,而航空公司内部通常都会有超过10个的系统需要获取航班数据,其中包括:电子商务系统、呼叫中心系统、常旅客系统、地服系统、联盟成员系统等。目前,航班数据的源数据系统(一般来自航空公司运控AOC系统)与其他业务系统之间的数据交换和共享都是通过点对点单独开发接口的形式实现的,比如通过数据库视图的紧耦合的方式实现,这在增加各个系统接口复杂性的同时也增加了系统开发的周期和费用,而且各业务系统无法从统一的渠道获取航班数据,造成了各业务系统之间数据不一致,如下图所示:
图1. 航空公司航班数据共享
客户主数据共享:
根据不同的直销、分销渠道以及不同的客户属性,航空公司的客户信息通常被分散地存储在多个不同的客户服务系统中,其中包括常旅客系统、大客户系统、电子商务系统等,这些现有系统或多或少地通过点到点的星型结构的接口方式进行了一些互连,在一定程度上实现了客户数据共享,但是仍普遍存在连接混乱、各系统间数据更新频率不一致、各系统内同一旅客基本信息不统一等问题,借鉴其他行业在客户主数据管理方面的发展趋势和最佳实践,因此航空公司需要对客户主数据进行统一存储和一致性管理,这就需要完成呼叫中心、电子商务、大客户、常旅客等系统与客户主数据系统之间的集成,希望通过ESB技术实现上述系统间数据的实时同步,如下图所示:
图2. 航空公司客户数据共享
客票销售和客户服务信息共享:
在航空公司的直销渠道中,电子商务与呼叫中心是非常重要的两大直销渠道,各自拥有独立的业务支持系统,以这两个系统为例,国内各个航空公司拥有的电子商务与呼叫中心这两个应用系统之间后台基本没有任何数据共享,在业务和应用上完全独立,如下图:
图3. 呼叫中心和电子商务系统渠道分离
而实际上这两个系统之间存在着非常多的来自业务的数据共享需求。例如:当客户在互连网上完成了全部订座功能,希望能够在呼叫中心完成改期升舱、退票退款等操作;而如果客户在呼叫中心渠道上完成了全部订座功能,或者在呼叫中心完成改期升舱、退票、退款操作后,也希望能够在互连网上进行状态查询,如下图所示:
图4. 呼叫中心和电子商务系统间数据共享
因此这两个系统希望共享客票销售数据、客票服务数据(对于升舱、改期、退票、退款、订单追踪、邮寄行程单等客票服务流程的相关数据)以及销售业绩管理等进行共享,从而实现航空公司的两大直销渠道之间在销售与服务流程上的统一和客户体验的统一,增加客户满意度和客户服务水平。
现状二:缺乏技术先进的、统一的、标准的IT集成架构
在以往各个系统的建设当中,都是采用传统的点对点的联接方式,导致了一个复杂的网状结构,其弊端在于系统接口众多,系统间造成密切的耦合性,某一个系统接口的修改导致其他所有系统的修改;系统没有扩展性,每新增一个系统就需要开发该系统和其他相关所有系统的接口;系统的后期维护成本过高。没有建立起统一的数据交换平台和数据交换标准。各系统之间根据自己的需要获取数据,存在着格式上、内容上、或者统计口径上的差异。
以航空公司电子商务系统为例,电子商务系统与周边业务系统的集成需求如下:
表1. 航空公司电子商务与外围系统集成举例
上表中,我们粗略列举了航空公司电子商务系统与其各主要相关系统间交换的业务数据内容,以及通讯协议和数据格式,我们可以看出其复杂性,如果没有一个统一的集成平台的支撑,那么数据格式转换、通讯适配器的开发、传输可靠性保证等问题都需要依赖于自主开发,其风险是不言而喻的。
航空公司商务体系ESB整合方案
总体方案概述
SOA(面向服务的架构)是当今国外各大航空公司率先考虑的方法论并成为提升下一代提升航空运输服务的能力引擎,它使IT部门可以搭建灵活的可配置体系以支持随需应变的航空业务。鉴于航空公司商务体系建设中存在的这些问题,以及业界的最佳实践,我们提出采用ESB整合航空公司的商务体系,其总体架构如下图所示:
图5. 航空公司商务体系集成架构
总体系统架构主要由展现层、核心应用层和SOA核心能力层组成,其中通过门户实现统一用户接入,该模块主要包含用户帐户信息管理和存储、用户登录身份认证和访问请求负载均衡等部分。核心应用层包括电子商务系统、呼叫中心系统、常旅客系统、大客户系统等商务体系中的所有重要的业务系统。SOA核心能力层由企业服务总线、服务管理和注册库以及组合服务运行引擎三部分组成。其中,企业服务总线(ESB)是SOA核心能力层的一个中心组件,它负责接入各种服务资源,通过采用统一服务接口使得各种服务或应用与服务之间可以相互方便访问,以星形结构替代了原来各服务之间的点对点结构,极大地优化了系统连接架构,降低了系统集成的复杂度。企业服务总线下方连入的各个应用系统是航空公司内部的各个业务系统,而右边是要连接的一些外部系统。组合服务运行引擎通常运行在标准的流程引擎之上,例如BPEL流程引擎,不是本文的重点,在此就不再赘述了。
ESB的组件及产品映射模型
ESB组件模型及产品映射模型如图6:
图6. 航空公司ESB组件模型
其中包括ESB组件、服务注册和管理组件以及ESB的监控和管理组件3部分组成。
ESB组件:
实现消息传递、服务路由、格式转换、交易完整性保证、数据解析和处理、安全传输、应用适配、协议转换等功能,可以由WebSphere Message Broker实现。
服务注册和管理:
为ESB提供服务管理容器,借助科学的方法论,对航空公司的业务需求进行分析,对其商务体系的业务流程进行梳理,建立起航空公司商务体系的服务目录和服务库,对这些服务以及服务的元数据进行定义和存储,以便进行服务的查找、发布、注册和管理。该组件可以由WebSphere Service Registry and Repository(WSRR)来实现,将所暴露的服务注册在WSRR中,便于其他系统发现和调用。
ESB监控和管理:
ESB是应用集成的枢纽,各个应用之间的信息和服务共享都将通过ESB来进行,因此,ESB平台本身的监控和管理的重要性是不言而喻的。全面、及时的服务监控功能除了能够辅助快捷的故障诊断,还能够提供完整的服务质量评估报告,以衡量现有的应用系统效率,并为优化、升级提供指导。服务监控需要包括服务、操作等级别的调用/失败次数、响应时间等信息,并且在超过设定值的情况下能够报警。该组件由Tivoli Omegamon XE for Messaging实现,Tivoli Omegamon XE for Messaging能够实现对IBM WebSphere Message Broker以及底层MQ的资源的自动发现并进行自动监控,帮助管理员及时发现故障和故障隐患。
组件交互模型
以前面描述的电子商务系统和呼叫中心之间的订单交互为例,其组件交互模型如下:
图7. 航空公司ESB组件交互模型
该模型描述了客户在呼叫中心预定了机票(产生订单),然后通过电子商务(B2C)系统修改订单时通过ESB实现系统间订单交互的场景。
ESB的接口设计
图8. 航空公司ESB接口设计
在上图中,我们给出了某航空公司的一个示例。在这个例子中,我们看到其电子商务系统、航班信息发布系统、客户主数据系统都是采用Web Service/实时/XML接口;呼叫中心采用socket/实时/文本、WebService/实时/XML接口;常旅客系统采用FTP/批量/文本、WebService/实时/XML的接口;大客户系统采用Database的接口形式。
基于接口的数据格式的不同,与ESB相关的系统可以分为以下两类:
基于XML报文的应用系统:基于XML报文交互是比较理想的方式,是目前业界较为推荐的标准方式。需要说明的是,尽管都采用XML标准,由于各个系统的需求的差别已经建设周期的不同,不同的应用系统采用的XML消息很难完全兼容。这需要由ESB实现相应的转换。
基于专有报文/自定义报文的应用系统:基于专有报文的应用系统,如国内的定座系统,可以先保留现有的报文格式,由ESB实现现有格式与其他报文格式以及XML格式之间的转换。随着未来条件的成熟,这些系统逐步过度到通过XML实现与ESB以及其他应用系统的集成。
基于接口的通讯协议的不同,与ESB相关的系统可以分为以下四类:
基于Web Services的系统:基于Web Services的系统,例如目前的呼叫中心和电子商务系统都可以提供这种方式,可以使用SOAP/HTTP(S)与ESB实现整合。
基于FTP/Socket的应用系统:需要通过FTP交换数据的系统,如FFP系统等,ESB可以直接支持FTP的方式。ESB缺省提供文件适配器,其中就可以支持本地文件和远程文件通过FTP方式的读写。
基于数据库的应用系统:基于数据库的系统,如大客户系统、数据仓库系统,可以通过JDBC适配器与ESB集成。
基于传统应用连接的系统:对于这类系统可以通过定制的Adapter与ESB以及其他应用实现整合,该Adapter可以以Java实现。另一方面,也可以通过XML/MQ实现与ESB的集成,这时,这些传统应用系统将调整为面向消息的方式。使用MQ作为一个通用的Adapter与ESB以及其他应用实现整合,消息的格式可以逐步由现有的专有报文转变为基于XML标准的报文。
ESB的物理部署
整个ESB方案的物理部署配置举例如下:
图9. 航空公司ESB物理部署示例
建议采用两个节点同时安装WebSphere Message Broker和WSRR。其中将WebSphere Message Broker配置为Cluster,将WSRR配置为HA的方式,采用一台PC Server或PC机作为监控管理服务器,安装Tivoli Omegamon for Messaging,实现对Message Broker的监控。未来需要流程集成时,可以采用两个节点安装WebSphere Process Server组成Cluster。
小结
本文从业务角度列举了航空公司商务体系建设中对ESB的典型需求举例,并介绍了航空公司ESB的总体方案、组件模型、接口设计、物理部署以及涉及到的IBM软件产品,介绍了如何利用ESB将呼叫中心、电子商务、常旅客、大客户、航班动态发布平台等应用系统进行高效整合,达到航班信息、旅客信息、客票销售信息等主要业务数据的共享,从而提升航空公司的客户服务水平。
关于作者
娄丽军,IBM软件部软件架构技术支持,曾参与交通运输、电信等行业多个SOA软件项目的设计和实施。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
总线技术究竟该不该用?
曾几何时企业服务总线(ESB)被视为企业IT的核心。今天,不仅ESB受到了比被废弃还要糟糕的攻击,若干开发趋势似乎对更简单的消息总线也发起了质疑。
-
架构安全模型开发方式探索
维护一个强大的安全模型,以及相关合规和管控的需求越来越重要,特别是在如今黑客和入侵几乎每天都会发生的情况下。
-
锐易特依托大数据升级核心产品
锐易特的核心产品企业服务总线(RES ESB)V6.0版本的成功发布,为我们重新审视国产中间件的信息整合之路,提供了宝贵机会。公司负责人介绍了产品升级后的性能及企业发展策略。
-
从ESB到微服务:如何演变?
从web开发人员的角度看,大量的微服务部署到轻量级的Karaf 容器中,这就符合了ESB的定义。