4. 接口参考模型与适配器架构
4.1. 设计理由和风险
适配器完成的功能是实现应用系统与EAI HUB之间的连接接口,主要包括数据与通讯两个层面。在适配器设计与选型方面,EAI技术提供的方案有多种形式,根据不同的情况作不同的选择。下面对常用的适配器类型进行分析。
基于数据库的接口与适配器
应用系统对外提供的接口是应用数据库,适配器通过对应用数据库的操作来实现EAI与应用间的交互。此类接口是应用系统可对外提供的最底层的接口类型,允许适配器直接访问应用的数据。针对此方式,尽管这也是常用方式之一,但其中有很多严重的不足。
使用数据作为应用的接口,意味着将数据的结构体设计暴露出来。当应用发生改变时,通常需要重新分析、甚至改变此数据接口。当应用系统的数据改变时,为了触发外部应用,通常需要使用基于应用数据库的外部触发器或使用低效的循环查询策略,这不是一个"干净"的解决方案,外部应用对维护数据的完整性也将负有责任,为此需要理解需要集成的应用系统的结构。总之,其结果将是一个难以维护的交错系统。
基于API的接口与适配器
应用软件,通常提供内置于软件库的API,作为与应用系统交互的接口。相对数据库接口而言,此类接口是一个更为"干净"的解决方案。其问题是相对某种平台,如操作系统、编程语言,此API库可能不存在,为解决此问题,需要开发底层的代码并进行长期的维护。同时当支撑其运行的产品进行升级时,通常需要对此API进行升级以保证其兼容。另外,基于API技术,当一用系统有事件发生时,一般难以提供自动通知功能,需要外部系统进行低效的循环查询。
基于组件的接口与适配器
基于J2EE与CORBA的分布式对象技术,使应用系统的接口有较好的可移植性。此类接口,可以屏蔽操作系统、编程语言的不同。此类接口属于紧耦合模式,属于发展中的技术,由于应用系统本身需要提供组件接口,在实际应用中限制了其应用。
基于消息队列的接口与适配器
应用系统对外交互的接口为消息队列,同时提供消息/数据传输的可靠性保障。业界领先的消息中间件同时提供同步、异步两种通讯方式。使用消息队列,消息系统可以管理很多通讯细节。此种接口方式为典型松耦合模式,是EAI技术普遍使用的方式之一,可以实现接口的重用能力。
4.2. 主流的的实现方式
分析各电信运营商EAI平台的建设情况,需要接入的业务应用系统,如:综合客服系统、资源管理系统、计费帐务系统,采用各自的应用服务器或交易中间件,具有不同的架构模式,对外提供不同的接口方式。在这种状况下,不利于整体系统的统一维护、后期升级改造,以及今后其他业务系统的接入。在此综合考虑以下几方面关键因素,EAI业界推荐采用基于消息队列的适配器,如下图所示。

说明:图中蓝色区域为重用体系,对应用连接提供统一接口。
采用基于消息的适配器比较其它方式有较为明显的优势,特别是对整体架构的规划与实施有较大的参考作用,随着系统承载平台的逐步完善,此架构会有更为显著的生命力与综合优势。下面简单对此进行陈述如下:
·提供统一的接口模式,最大程度地满足IT规划的总体要求,保障最大的ROI,在新系统构建之出至关重要。
·提供基于松耦合的接口方式,提高整个系统承载平台的可重用性,将系统的重用范围从流程扩展到接口层面。
·提高整体系统的可维护性,统一接口技术,并逐渐标准化,避免采用多种不同技术规范。一方面使承载平台维护人员专注在业界领先的标准技术上;另一方面便于系统的统一升级换代。
·基于消息队列的技术是一种成熟、稳定、开放的技术,开发维护简单、便利的技术手段,利于在实际项目中进行实施,降低项目的风险。
4.3. 对实现技术的要求
为实现此类统一架构,对消息中间件(队列)提出如下基本要求:
·支持多种操作系统。
·提供包括C、C++、Java、ActiveX等多种语言的API接口,从而实现与不同编程语言的应用系统连接。
·稳定可靠,保证数据传输一次而且只有一次。
·高性能。