基于ESB的能力开放平台设计与实现
2018-09-20苏卫
苏卫*
(勘探数据库室 中国石化胜利油田分公司物探研究院,山东东营,257022)
引言
随着“两化”融合的不断推进,目前胜利油田信息化建设迈入了“从离散到集成、从局部到整体、从简单向深入”的阶段,“集成、协作、共享、优化”成为新的方向和主题。应用系统间的业务协作联动、信息交换以及基于数据中心的数据服务与共享等需要驱动着大量点对点接口产生,也暴露出了接口关系复杂难维护、数据格式多样难复用、接口分布分散难监控、接口产消耦合难优化等问题。
针对油田众多业务系统间服务接口关系复杂,开发和维护代价高昂的问题,胜利油田设计并实现了基于ESB的能应开放平台,实现各类服务(公共服务/业务服务)的接入和集中管理,并开放给各业务系统进行使用。
1 ESB和能应开放平台
上图是ESB企业服务总线和互联网Open API能应开放平台的一个简单对比。对于在企业内部的服务集成和管控,由于需要面对企业内复杂的业务系统间集成和遗留系统适配,因此使用较多的仍然是 ESB企业服务总线。而对于互联网应用,更多考虑的是轻量和高性能,已经开发和接入的效率,当前使用较多的是类似 Open API方式下的能应开放平台。
对于能应开放平台,目前有比较明确的定义,具体如下:Open API即开放API,也称开放平台。所谓的开放API(Open API)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(Application Programming Interface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的 API,所开放的API就被称作Open API(开放API)。就现在互联网上 Open API的形态来看,主要分成两种:标准REST和类REST(也可以叫做RPC形态)。
对于是否构成一个能应开放平台,有两个重点,其一是服务的提供以HTTP rest服务为主,其二是平台本身是提供和暴露服务能应,而不消费服务。因此即使是在企业内部,如有ESB平台本身能够实现为仅暴露和提供服务,同时采用轻量的 Rest服务接入,那么也可以认为是能应开放平台。
2 企业内部的需求
目前油田使用的大量服务中,大部分服务是使用了Web Service的方式进行服务发布。但是随着滑动开发的普及,新开发的一些服务也开始使用RESTful API(JSON)over HTTP的服务进行发布。
对于企业内部的服务,往往由于服务接口对需求规范要求严格,往往有会采用SOAP Web Service方式来实现完整的服务契约设计。即服务接口本身就对服务的调用规范进行了强约束。而对于开放平台往往采用 http协议,传输的对象也是大的Json串,对于Json串格式的定义往往只有通过文档约定。这两种方式各有优缺点,具体的选择使用关键还是看使用的场景。
企业内部只是提供和暴露服务,供其它业务系统消费,这种场景往往出现在主数据和共享数据服务能应提供,因此对于共享数据往往是适合构建能应开放平台的。而对于企业内部端到端流程引起的横向业务系统接口,这类横向集成接口本身复用度不高,更多是为了业务系统,即使这类服务接入也很难真正高复用和共享。
3 基于ESB的能应开放中心实现
(1)形成了服务组合与编排技术。
针对勘探开发领域中大量业务服务标准不统一、难以复用的现状,研究基于油田业务的服务编排技术,实现勘探开发业务服务的共享复用和资产增值。研究服务拦截器技术,实现多种服务协议的标准化;研究原子服务的嵌套与组合,实现原子服务的再利用。
(2)实现了安全、可定制、高并发的服务接入与管理。
针对勘探开发领域中大量业务服务分散部署、缺乏管控的现状,研究服务接入与计量技术,实现勘探开发业务服务的统一管理。研究高性能负荷代理技术和SEDA阶段事件驱动技术,实现高并发、大吞吐情况下的高效、稳定的服务管理。
(3)建立了服务计量管控中心与配套机制。
对应用服务日志进行异步地采集、合并、分析、处理,从而实现对服务的高性能监控,通过此项技术可以处理监控每天上亿次的服务访问。实现了各类服务接口运行状态的实时监控和预警。服务管控中心可以实时监控原始服务的状态、ESB运行状态以及应用程序使用服务状态,并提供了最近一年的历史数据进行查询。
(4)设计并编制了企业服务总线的总体实施方案
实施方案界定了服务接口的接入范围,服务接口的接入原则,接入的相关技术标准、管理规范和各类流程,实现了服务接口的开发、注册、接入、应用、升级到注销全周期管理。
4 有束语
本文形成了服务接入和管理、服务计量管控等关键技术,建成了胜利油田企业级服务管控中心,对于缩短软件开发周期、提升软件开发质量、降低软件开发成本、增强信息服务能应、促进信息应用专业化水平等方面具有重要的经济意义。该项目目前已经应用于油田数据中心深化应用平台(SASP),并为油田在建的勘探开发集成服务云平台(i-Sasp)提供专业应用支持。服务的共享和复用有利于改应传统建设模式,减少重复投资、重复建设,将大大提高开发、测试等环节的效率,预期节约应用开发成本约28%。