王凯1 刘卫东1 周毅1 陈冲2
(1.国网山东省电力公司信息通信公司 山东济南 250001;2.埃森哲(中国)有限公司 上海 200020)
摘要:随着公司信息化水平的快速提升,各业务条线的信息系统呈井喷式陆续上线,同时也带来了异构性系统集成难题。本文研究并开发了一种配置式的系统集成方案,综合多种集成技术,通过应用层配置来实现与多个异构系统进行集成,用于即时获取并推送时效资讯,进行业务系统间数据交换,实现被集成系统的本地化操作,提高业务一体化和自动化处理水平。
关键词:异构系统;定制化;集成
序言
随着公司提升信息化水平计划的稳步执行,各业务条线的信息系统呈井喷式陆续上线,有效提升了企业员工的工作效率和公司的信息化水平。
但是由于各业务条线的系统分布实施,因此架构不同,技术路线各异,没有形成公司整体层面的系统基础平台或总线平台,系统间数据流通闭塞,形成了严重的“信息孤岛”现象。
而对于新部署系统来说,已投入运行的业务系统就是重要的系统资源和数据来源,通过有效的集成,可以充分利用原系统的数据及业务功能,避免重复建设。
基于以上需求,我们开展了信息系统定制化集成技术研究,以期通过实现可配置的系统集成,实现对信息系统数据资源和业务资源的灵活高效集成。
技术研究背景
该研究针对某一新推行的信息系统展开,以期通过技术手段实现对现有的多个在运系统的集成,从而能够充分利用现有系统的数据资源和业务资源。
系统集成通常的解决思路是通过同各系统开发接口的方式实现,若集成规模较大,还需考虑引入数据总线等架构方案。但是通过调研了解到目前被集成的系统现状如下:
1)被集成系统系统架构不同、技术路线各异,但多数为Web系统,因此是构建于HTTP协议之上的;
2)部分系统由于管理、部署方式的限制,或由于系统过于老旧而导致的再次维护与开发能力的缺失,无法建立接口或适配器。
更进一步,为了保证系统的可扩展性和可配置性,需要满足以下需求:
1)系统架构上,当前系统的可配置集成功能,应独立为一个模块,为其他各模块提供与被集成系统进行数据交互的公共通道;
2)对于未来部署的系统,能够保证当前系统的运维团队即可完成系统集成,无需大量开发工作;
3)能够实现用户端对被接入数据或信息的选择性配置或订阅。
传统的系统集成方案有其广泛的适应性,但针对当前状况却存在如下不足:
1)集成成本较高,该成本包括接口开发和集成架构部署所带来的人力、时间和资金成本,这通常借助需要公司层面的信息化规划和部署;
2)前面介绍到的被集成系统不具备提供接口或适配器的能力,则传统集成方案通常不再适用。
综上考虑,需要综合采用多种集成手段,通过可配置的方式,针对被集成系统具体情况,以及集成需求,有效规避以上不足,甚至可以通过在应用层实现无耦合的系统间集成,无需与被集成系统的开发、实施或运维人员进行沟通。
技术总体方案
在当前系统中构建系统集成模块,该模块综合多种集成技术,通过应用层配置来实现与多种系统进行集成的方法。其重点在于“可配置”,系统内置多种集成方案,以及丰富的系统集成配置参数,运维人员甚至用户,可以通过在系统的前端页面上配置,实现与其他系统的集成,一方面极大减少了开发工作量,另一方面,能够为系统集成模块提供较高的可扩展性。
1)可配置集成技术的需求
① 可以满足多种系统集成需求,以适配采用不同技术路线的系统接入,此外,系统集成可以实现双向数据交换;
② 系统集成可以通过配置方式实现,无需或仅需少量系统开发即可实现系统数据资源的连接,配置包括后台配置和用户配置;
③ 为保证部分系统数据的时效性,须实现定时数据采集;
④ 须满足多并发性能要求。
2)总体设计思路
综合以上需求,总体设计思路如下:
① 对于系统集成模块来说,它是连接本系统外部与内部的“邮局”,负责根据数据流转需求建立系统连接,对来自不同系统的数据进行格式解析,转换为统一的数据结构,供系统内部模块使用;
② 系统外部的数据包括由用户配置的连接信息,以及同其他系统交互过程中的采集需求、录入数据;系统内部模块则采用统一的数据结构同系统集成模块交互;
本模块采用分层结构,由连接器、交互器、解析器构成,其各自功能如下:
① 连接器负责与所连接系统建立和保持连接,并维护连接池,供交互器使用;
② 交互器负责“沟通”工作,获取连接之后,同目标系统进行数据交换;
③ 解析器负责“翻译”工作,将交互器所获得的数据转换为统一的数据结构,供系统内部其他模块使用,或者将系统内部其他模块产生的数据转换为能够与目标系统进行交互的数据格式,交由交互器“告知”目标系统。
此外,通过多线程编程技术,维护线程池,供系统连接过程使用;对于时效性要求较强的系统数据信息的获取过程,开发启动例程,并配置至定时器中,实现定时数据采集。
技术实现细节
本节针对各技术点进行详细介绍。
1)连接器
连接器的任务是读取系统配置信息,然后根据配置信息同目标系统建立连接,对于需要进行身份认证的系统,通过为了保证性能需求,需要维持至少一个连接,所有的针对各目标系统的连接均维护在连接池中,供交互器使用。
目前连接器可支持的连接方式包括WebService连接、数据库连接、SAP ERP连接、HTTP应用层连接、Socket连接。
① WebService连接方式针对能够提供标准连接接口的系统,Socket连接针对目前客户使用的基于TCP/UDP协议的局域网即时通信软件。对于WebService和Socket连接方式,分别采用Apache CXF和Java标准库中的API来实现,标准技术实现方式,不做详述。
② HTTP应用层连接方式,理论上可用于所有的B/S系统连接,主要适用于页面信息采集,以及无法提供连接接口的系统连接方式。从目标系统来看,分为两种情况,一种是无身份认证的资讯类系统,一种是具有身份认证的业务类系统。
对于资讯类系统,主要应用侧重于信息采集,并推送给用户,实现信息订阅。这种情况,无需连接器维持连接池。
对于具有身份认证的业务类系统,首先使用用户配置的信息通过目标系统认证,获取认证信息,然后持认证信息进行后续的交互。因此,这种情况需要连接器在连接池中维护连接会话信息。连接过程如下:
图3 HTTP应用层连接流程图
如果过程在如下情况下启动:一是用户配置认证信息时进行检查,二是交互器从连接池获取连接信息时。
在进行系统连接时,
第一步,首先检查连接池中是否有可用连接,如果有,进行第二步,否则,进行第三步;
第二步,检查连接是否有效,若有效,则连接可用,否则,进行第三步;
第三步,读取用户配置的认证信息,通常为用户名和密码,针对目标系统的需要,选择加密方式进行表达加密;
第四步,进行系统认证,并判断是否通过认证,判断依据为用户配置的校验信息,如系统登录成功后确定会获取的HTTP响应数据,若未通过,则提醒用户检查配置的信息是否正确(在用户配置认证信息时),若通过系统认证,进行第五步;
第五步,保存认证通过后的会话信息(通常为cookie信息,一般包括sessionID,以及不同系统特有的标识键值对)至连接池,提供给交互器使用。
对于第二步,检查连接有效性有两种处理方案:一种是先使用连接信息向目标系统发送可预知结果的请求,观察返回结果是否正确,若不正确,通常表明连接信息已失效;第二种是对于每个连接信息同时保存会话失效时间,该失效时间视不同系统而定,当再次获取连接信息时,先检查是否已过失效时间,从而确定连接是否可用。两种方案分别有不同的优缺点,对于第一种来说,能够保证准确性,适用于对用户连接有限制的系统,如只允许一个用户同时允许有限个会话登录系统,后登录的会话会使已登录的会话失效,存在这种情况的系统采用第一种验证方案,缺点也显而易见,校验需要首先发送确认请求,会稍微增加连接时间;对于第二种来说,验证过程在本系统完成,且验证时间完全可以忽略,适合于能够掌握会话生效时间的目标系统。
对于HTTP应用层连接方式,配置内容包括登录地址、用户名、密码、登录成功标识信息。
③ 对于SAP ERP的连接,采用SAP Java Connector组件进行连接。通常情况下,频繁创建新的连接可能导致严重的性能问题,在Web应用程序中,如果每个session创建一个连接,那么在多并发的情况下,连接速度将难以保证。通过JCo中的ClientPool来创建连接池,重用已创建的连接。
配置信息包括SAP系统连接地址、客户端编号、系统编号、登录名、登录口令。
2)交互器
交互器负责在建立连接后,根据配置要求,同目标系统进行数据交换。
① 对于数据库的连接方式,通常采用JDBC,原因在于可配置的数据交换,对数据库读写操作的灵活性要求较高;对于个别的读写操作较为简单,且数据变动不大、性能要求较高的系统集成,采用Hibernate进行连接,并配置缓存,从而降低对目标数据库的压力。通过缓存的配置进行优化的方式主要侧重于二级缓存,并且采用只读(read-only)缓存的策略。
配置内容包括SQL查询语句,及返回数据的字段对应关系。例如,在表T1中查询C1和C2字段的内容,则配置SQL为“select C1,C2 from T1…”,并且配置返回字段C1和C2在系统内对应的键(key),返回值的数据结构为List<Map<String key,String value>>。
② 对于HTTP应用层连接方式,通过HttpClient进行基于请求与响应的交互。对于资讯类系统,直接进行请求与响应的处理即可;对于业务类系统,每次的请求均通过setCookie()方法设置连接器获取到的认证信息,并同时刷新该连接的失效时间。
配置内容包括请求地址、请求及响应的编码格式、请求的数据、响应数据处理的正则表达式以及表达式中截取信息的键值对、采集数据的发布时间、内容数量上限等。如获取用户OA系统中的待办数据,则配置能够返回待办数据的实际请求地址、编码格式及请求的body,通过测试获取响应数据,响应数据格式通常为html、xml或json格式。
③ 对于SAP连接方式,交互器通过调用SAP系统的RFC实现数据或操作交互。
配置内容包括RFC名称、输入参数(key-value形式)、返回数据(一律视为表,因此与数据库返回数据格式一致)。
3)解析器
解析器负责将交互器返回的结果转化为统一的数据格式,从而形成一个具有固定返回值的方法供系统内部其他模块调用,即对其他模块来说,系统集成模块提供统一的数据传输接口。
解析器主要用于对socket连接方式、HTTP应用层连接方式所得到的数据进行解析。以后者为例,其返回数据为html、xml或json等文本格式。对于html格式数据,视为具有一定规律的普通文本结构,配置正则表达式(用于截取待办标题、内容、链接、日期),截取到的内容,通过配置键值对的形式返回,每一条内容作为一个Map结构的数据(如“title:资讯标题”),则返回值的数据结构为List<Map<String key,String value>>;对于xml和json格式,本身非常规范,通过dom4j和gson进行解析,然后根据其数据结构加工为List<Map<String key,String value>>格式。
统一格式化后,获取到的数据信息就可以供系统内其他模块使用了。
技术应用效果
系统上线后,已经实现了对公司内部资讯类网站的24项主题模块内容的连接,用户勾选配置的系统连接操作项,即可完成资讯内容的“订阅”;对于业务系统等需要身份认证的系统,已经实现了与7套系统的连接,其中有1套系统实现了完整业务的同步。试运行期间这两种类型的系统连接数量仍在随着用户需求而不断增加。
该集成方式尚有进一步提升的空间,目前系统连接能够支持足够多种技术和架构,如果能够实现高性能的数据加载、缓存、存储和分析,可进一步实现跨系统的资源整合处理工作,如跨系统数据一致性检查、数据挖掘与分析、业务系统综合监控甚至流程重组等。
总结
本技术研究有效解决了在系统架构不同,技术路线各异,且多数系统不具备接口条件情况下的集成问题,其优点有如下几方面:
1)实现了系统可配置的集成,实现了系统集成过程中,本系统业务处理模块与目标系统的解耦,极大提高了系统集成的灵活性、可扩展性;
2)极大提高了开发效率,降低了开发成本;
3)降低了系统集成难度门槛,用户或运维人员即可完成多数系统的集成。
参考文献:
[1]罗伟其.信息系统综合集成的发展及其若干问题.小型微型计算机系统[J],V01.22,No.9,2001:1121-1125.
[2]王宁,陈滢,俞本权等.一个基于CORBA的异构数据源集成系统的设计[J].软件学报,2000,9(5),179-392.
[3]孟小峰.WEB信息集成技术研究.计算机应用与软件[J],V01.11,2003:32-36.
[4]王庆一,王继成等.多信息块WEB页面的信息抽取.计算机应用研究[J].2002(10):23-26.
[5]王宁,陈湾,俞本权等.一个基于CORBA的异构数据源集成系统的设计[J].软件学报,2000,9(5),179-392.
论文作者:王凯1,刘卫东1,周毅1,陈冲2
论文发表刊物:《电力设备》2015年3期
论文发表时间:2015/11/2
标签:系统论文; 数据论文; 信息论文; 系统集成论文; 模块论文; 方式论文; 用户论文; 《电力设备》2015年3期论文;