系统接口规范以及常见的接口技术概述和比较
一、基本要求: 为了保证系统的完整性和健壮性,系统接口应满足下列基本要求: 1、接口应实现对外部系统的接入提供企业级的支持,在系统的高并发和大容量的基础上提供安全可靠的接入; 2、提供完善的信息安全机制,以实现对信息的全面保护,保证系统的正常运行,应防止大量访问,以及大量占用资源的情况发生,保证系统的健壮性; 3、提供有效的系统的可监控机制,使得接口的运行情况可监控,便于及时发现错误及排除故障; 4、保证在充分利用系统资源的前提下,实现系统平滑的移植和扩展,同时在系统并发增加时提供系统资源的动态扩展,以保证系统的稳定性; 5、在进行扩容、新业务扩展时,应能提供快速、方便和准确的实现方式。二、接口通讯方式: 接口基本采用了同步请求/应答方式、异步请求/应答方式、会话方式、广播通知方式、事件订阅方式、可靠消息传输方式、文件传输等通讯方式: 1、同步请求/应答方式:客户端向服务器端发送服务请求,客户端阻塞等待服务器端返回处理结果; 2、异步请求/应答方式:客户端向服务器端发送服务请求,与同步方式不同的是,在此方式下,服务器端处理请求时,客户端继续运行;当服务器端处理结束时返回处理结果; 3、会话方式:客户端与服务器端建立连接后,可以多次发送或接收数据,同时存储信息的上下文关系; 4、广播通知方式:由服务器端主动向客户端以单个或批量方式发出未经客户端请求的广播或通知消息,客户端可在适当的时候检查是否收到消息并定义收到消息后所采取的动作; 5、事件订阅方式:客户端可事先向服务器端订阅自定义的事件,当这些事件发生时,服务器端通知客户端事件发生,客户端可采取相应处理。事件订阅方式使客户端拥有了个性化的事件触发功能,极大方便了客户端及时响应所订阅的事件; 6、文件传输:客户端和服务器端通过文件的方式来传输消息,并采取相应处理; 7、可靠消息传输:在接口通讯中,基于消息的传输处理方式,除了可采用以上几种通讯方式外,还可采用可靠消息传输方式,即通过存储队列方式,客户端和服务器端来传输消息,采取相应处理。三、接口安全要求: 为了保证系统的安全运行,各种接口方式都应该保证其接入的安全性。 接口的安全是系统安全的一个重要组成部分。保证接口的自身安全,通过接口实现技术上的安全控制,做到对安全事件的“可知、可控、可预测”,是实现系统安全的一个重要基础。 根据接口连接特点与业务特色,制定专门的安全技术实施策略,保证接口的数据传输和数据处理的安全性。 系统应在接入点的网络边界实施接口安全控制。 接口的安全控制在逻辑上包括:安全评估、访问控制、入侵检测、口令认证、安全审计、防恶意代码、加密等内容。四、传输控制要求: 传输控制利用高速数据通道技术实现把前端的大数据量并发请求分发到后端,从而保证应用系统在大量客户端同时请求服务时,能够保持快速、稳定的工作状态。 系统应采用传输控制手段降低接口网络负担,提高接口吞吐能力,保证系统的整体处理能力。具体手段包括负载均衡、伸缩性与动态配置管理、网络调度等功能: 1、负载均衡:为了确保接口服务吞吐量最大,接口应自动地在系统中完成动态负载均衡调度; 2、伸缩性与动态配置管理:由系统自动伸缩管理方式或动态配置管理方式实现队列管理、存取资源管理,以及接口应用的恢复处理等; 3、网络调度:在双方接口之间设置多个网络通道,实现接口的多数据通道和容错性,保证当有一网络通道通讯失败时,进行自动的切换,实现接口连接的自动恢复。五、接口技术: 5.1 J2EE/EJB 5.1.1. 技术描述 Enterprise JavaBean (EJB) 是可重用的、可移植的 J2EE 组件。EJB 包括三种主要类型:会话 bean、实体 bean和消息驱动的bean。会话bean执行独立的、解除耦合的任务,譬如检查客户的信用记录。实体bean是一个复杂的业务实体,它代表数据库中存在的业务对象。消息驱动的bean用于接收异步JMS 消息。
图 5.1.1 J2EE/EJB 描述 EJB 由封装业务逻辑的方法组成,众多远程和本地客户端可以调用这些方法。另外,EJB 在容器里运行,这样开发人员只要关注bean里面的业务逻辑,不必担心复杂、容易出错的问题,譬如事务支持、安全性和远程对象访问、高速缓存和并发等。在EJB规范中,这些特性和功能由EJB容器负责实现。 容器和服务提供者实现了EJB的基础构造,这些基础构造处理了EJB的分布式、事务管理、安全性等内容。EJB规范定义了基础构造和Java API的为了适应各种情况的要求,而没有指定具体实现的技术、平台、协议。 EJB的上层的分布式应用程序是基于对象组件模型的,低层的事务服务用了API技术。EJB技术简化了用JAVA语言编写的企业应用系统的开发、配置和执行。 5.1.2. 技术特点 优点:基于规范的平台,不受限于特定的操作系统或硬件平台;基于组件体系结构,简化了复杂组件的开发;提供对事务安全性以及持续性的支持;支持多种中间件技术。 缺点:与特定于某个操作系统或平台的实现技术相比,性能还有待进一步提高,且资源占用量较大。 5.2 Web Service 5.2.1. 技术描述 Web Service是一种自包含、模块化的应用,是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使Web Service能与其它兼容的组件进行互操作。可以在网络上(一般是Internet)上被描述、发布、定位和调用。 Web Service体系主要由以下三部分组成:传输协议、服务描述和服务发现,由一系列标准组成,主要有:XML(可扩展的标记语言)、SOAP(简单对象访问协议)等。
图 5.2.1 Web Service描述 上图显示了Web Service(中央)、客户端软件应用程序(左侧)及其使用的资源(包括数据库、其它Web Service等)(右侧)之间的关系。Web Service通过使用标准协议(如 HTTP)交换XML消息来与客户端和各种资源进行通信。在Web Server上部署Web Service后,由Web Server负责将传入的XML消息路由到Web Service。Web Service 将导出 WSDL 文件,以描述其接口,其它开发人员可以使用此文件来编写访问此Web Service的组件。 5.2.2. 技术特点 Web Service使用标准技术,应用程序资源在各网络上均可用。因为Web Service基于HTTP 、XML和SOAP等标准协议,所以即使以不同的语言编写并且在不同的操作系统上运行,它们也可以进行通信。因此,Web Service适用于网络上不同系统的分布式应用。 优点:适用于网络上不同系统的分布式应用、标准性好、扩展性好、耦合度低;内容由标准文本组成,任何平台和程序语言都可以使用;格式的转换基本不受限制,可以满足不同应用系统的需求。 缺点:当XML内容较大时,解释程序的执行效率较低,一般不适合用于实现大批量数据交互的接口。 5.2 交易中间件 5.3.1. 技术描述 交易中间件是专门针对联机交易处理系统而设计的。联机交易处理系统需要处理大量并发进程,涉及到操作系统、文件系统、编程语言、数据通讯、数据库系统、系统管理、应用软件等多个环节,采用交易中间件技术可以简化操作。 交易中间件是一组程序模块,用以减少开发联机交易处理系统所需的编程量。X/OPEN组织专门定义了分布式交易处理的标准及参考模型,把一个联机交易系统划分成资源管理(RM)、交易管理(TM)和应用(AP)三部分,并定义了应用程序、交易管理器、多个资源管理器是如何协同工作的。资源管理器是指数据库和文件系统,交易管理器可归入交易中间件。 5.3.2. 技术特点 优点:开放的体系结构,满足大用户量与实时性的要求,提供交易的完整性、控制并发、交易路由和均衡负载的管理。 缺点:处理大数据量交易效率不高。 5.4. 消息中间件 5.4.1. 技术描述 基于消息中间件的接口机制主要通过消息传递来完成系统之间的协作和通信。 通过消息中间件把应用扩展到不同的操作系统和不同的网络环境。通过使用可靠的消息队列,提供支持消息传递所需的目录、安全和管理服务。当一个事件发生时,消息中间件通知服务方应该进行何种操作。其核心安装在需要进行消息传递的系统上,在它们之间建立逻辑通道,由消息中间件实现消息发送。消息中间件可以支持同步方式和异步方式,实际上是一种点到点的机制,因而可以很好的适用于面向对象的编程方式。 消息中间件可以保证消息包传输过程的正确、可靠和及时。 消息中间件提供以下基本功能:消息队列、触发器、信息传递、数据格式翻译、安全性控制、数据广播、错误恢复、资源定位、消息及请求的优先级设定、扩展的调试功能等。 5.4.2. 技术特点 消息中间件能够在任何时刻将消息进行传送或者存储转发,不会占用大量的网络带宽,可以跟踪事务,并且通过将事务存储到磁盘上实现网络故障时系统的恢复。 优点:为不同的企业应用系统提供了跨多平台的消息传输;除支持同步传输模式外,还支持异步传输,有助于在应用间可靠地进行消息传输。 缺点:与其它中间件技术一样,存在高流量的性能瓶颈问题。 5.5. SOCKET 5.5.1. 技术描述 Socket(套接字)用于描述IP地址和端口。应用程序通过Socket向网络发出请求或应答网络请求。 Socket使用客户/服务器模式,服务端有一个进程(或多个进程)在指定的端口等待客户来连接,服务程序等待客户的连接信息,一旦连接上之后,就可以按设计的数据交换方法和格式进行数据传输。客户端在需要的时刻发出向服务端的连接请求,然后发送服务申请消息包,服务端向客户端返回业务接口服务处理结果消息包。 5.5.2. 技术特点 此类接口不需要其它软件支持,只要接口双方做好相关约定(包括IP地址、端口号、包的格式)即可;包的格式没有统一标准,可以随意定义。 优点:实现简单、性能高。 缺点:标准性差、扩展性差。 5.6. CORBA 5.6.1. 技术描述 CORBA即公共对象请求代理体系结构,是一个具有互操作性和可移植性的分布式面向对象的应用标准。 CORBA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层是ORB(对象请求代理),规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软总线”;在 ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务, 同时ORB也负责寻找适于完成这一工作的对象,并在服务器对象完成后返回结果;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。 客户将需要完成的工作交给ORB,由ORB决定由哪一个对象实例完成这个请求,然后激活这个对象,将完成请求所需要的参数传送给这个激活的对象。除了客户传送参数的接口外,客户不需要了解其它任何信息,不必关心服务器对象的与服务无关的接口信息,这就大大简化了客户程序的工作。ORB需要提供在不同机器间应用程序间的通信,数据转换,并提供多对象系统的无缝连接。 5.6.2. 技术特点 CORBA具有模型完整,独立于系统平台和开发语言,被支持程度广泛的特点。 优点:以一种中间件的方式为不同编程语言提供协同工作的可能;对操作系统没有特殊的要求和依赖;与主流的体系架构(如J2EE)关系密切。当需要集成的两个企业应用软件互为异构,由不同的编程语言实现时(如Java与C++),CORBA可以实现两种语言的协同工作。 缺点:庞大而复杂,并且技术和标准的更新相对较慢;性能与具体业务实现有关。 5.7. 文件 5.7.1. 技术描述 文件接口定义了服务端与客户端文件存放路径、文件名命名规则和文件格式,并开放相应的读/写操作权限。 接口的通讯过程包括三种: 同一主机内可以共享一个路径; 服务器端向客户端开放路径,客户端定时查看此路径下是否有新的文件,可以采用FTP等方式取走服务端开放的路径下的文件; 客户端向服务器端开放路径,由服务端将文件写入,客户端定时查看此路径下是否有新的文件。 网络传输方式应支持对通信机的IP地址、帐户、口令、存取目录的验证。 接口应支持以下主流网络协议:FTP、FTAM等。 数据传输应支持: 实时、高效和安全可靠地传送批量数据; 断点续传功能; 数据压缩传输; 传输过程中的差错控制。 5.7.2. 技术特点 优点:文件接口不需要其它软件支持,只要接口双方约定好路径、格式、处理方式即可,实现简单、传输批量数据效率较高。 缺点:格式没有统一标准,标准性差;需要开放文件系统权限,安全性差。 5.8. 过程调用和共享数据表 5.8.1. 技术描述 过程调用和共享数据表技术实现了服务端向客户端开放可直接调用的过程和可直接进行读写操作的共享数据表,客户端直接调用服务端过程和对共享数据表进行读写操作。 接口支持各种数据库连接方式,如Login、DB Link等。 接口的通讯过程包括两种: 客户端直接调用服务端开放的过程或对服务端开放的共享数据表进行增、删、改和查询操作,完成业务处理; 客户端向开放的共享数据表中写入服务请求数据,服务端定时扫描共享数据表并作出响应,根据服务请求数据中的接口服务类型代码,进行不同的业务逻辑处理,然后向共享数据表中写入处理结果数据;客户端定时扫描共享数据表,根据处理结果数据并作出响应,进行业务后续处理。 5.8.2. 技术特点 此类接口不需要其它软件支持,只要接口双方做好相关约定即可;但接口没有统一标准,而且需要开放数据库权限,安全性差。 优点:实现简单、传输批量数据效率较高。 缺点:标准性差、适用场合有限、安全性差。六、接口技术比较 接口技术 主要优点 主要缺点 对接口类型适用程度 同步 异步 批量 频繁 J2EE/EJB 开放标准 跨平台 提供事务、 安全性的支持 性能一般 资源占用多 ★★★ ★★★ ★★ ★★★ Web Service 标准性好 扩展性好 耦合度低 性能一般 ★★★ ★★ ★ ★★ 交易中间件 开放的体系结构 提供事务、 安全性的支持 提供队列的管理 支持并发管理 大数据量交易 效率不高 ★★★ ★★★ ★ ★★★ 消息中间件 开放的体系结构 满足大用户量与实时性的要求 支持并发管理 大数据量交易 效率不高 ★★ ★★★ ★★★ ★★ SOCKET 实现简单 性能高 标准性差 扩展性差 ★★ ★★ ★★ ★★ CORBA 开放标准 跨语言 跨平台 开发复杂 产品成熟度低 性能一般 ★★★ ★★ ★★ ★★★ 文件 实现简单 传输批量数据 效率较高 标准性差 安全性差 ★ ★★ ★★★ ★ 过程调用 和共享表 实现简单 传输批量数据 效率较高 标准性差 安全性差 适用场合有限 ★ ★★ ★★★ ★★