一种基于osgi的通用数据转换引擎系统的制作方法

文档序号:6525963阅读:225来源:国知局
一种基于osgi的通用数据转换引擎系统的制作方法
【专利摘要】本发明公开了一种基于OSGI的通用数据转换引擎系统,以解决现有的系统集成技术存在的通用性不够的问题。该系统包括:Jave基础平台模块,OSGI基础框架模块,对外接口模块,以及多个服务功能模块;所述多个服务功能模块包括:数据转换线程管理模块,数据转换服务模块,和数据模板管理模块;其中,所述数据转换服务模块,用于通过输入接口收到数据包后,在独立的数据转换线程中加载数据匹配和识别引擎,由所述据匹配和识别引擎在数据转换线程中解析所述数据包,加载对应的数据转换模板,对所述数据包进行相应的格式转换,输出格式转换后得到的数据至输出接口。
【专利说明】一种基于OSGI的通用数据转换引擎系统
【技术领域】
[0001]本发明涉及计算机【技术领域】,具体涉及一种基于OSGI的通用数据转换引擎系统。【背景技术】
[0002]随着计算机和软件技术的发展,系统之间的集成和数据交互变得越来越频繁,为了解决这个问题,业界已经提出了很多解决方案,但是每一种方案都只能解决部分问题,例如,有的方案只解决了业务领域的集成,有的方案只解决了数据上的集成(通过数据库访问),有的方案例如基于SOA的技术只解决了功能上的集成。根据系统设计的原则,需要功能内聚和接口外延,所以,不同系统的集成更多的是体现在数据上的相互调用和访问,通常,在数据集成上存在如下难以解决的问题:
集成的系统多,需要根据实际情况定制开发各种功能,定制各种数据结构去适应被集成的系统;系统之间在数据层面相互嵌入,不能很好的解耦,不能体现系统的独立性和内聚性;在系统集成的过程中,针对每个系统每种数据都要定制开发功能、接口和数据结构,耗费大量的资源,成本高昂,同时为系统带来大量的风险和不稳定因素;S0A是近年提出的集成总线,但是SOA架构是一个大而全的平台,功能太过庞大,不够轻量级,为系统部署带来不便。
[0003]综上,现有的系统集成技术的通用性不够。

【发明内容】

[0004]本发明实施例提供一种基于0SGI(0penService Gateway Initiative,面向 Java的动态模型系统)的通用数据转换引擎系统,以解决现有的系统集成技术存在的通用性不够的问题。
[0005]一种基于OSGI的通用数据转换引擎系统,包括:
Jave基础平台模块,由Jave语言开发而成,作为系统底层;
OSGI基础框架模块,部署于所述Jave基础平台模块之上,用于作为动态服务管理平台,注册和管理多个服务功能模块;
对外接口模块,用于提供通用的、规范的输入和输出接口,所提供的输入或输出接口方式在数据转换模板中进行配置。
[0006]其中,所述多个服务功能模块包括:数据转换线程管理模块,数据转换服务模块,和数据模板管理模块;
所述数据模板管理模块,用于提供至少一个数据转换模板;
所述数据转换线程管理模块,用于创建和管理数据转换线程;
所述数据转换服务模块,用于通过输入接口收到数据包后,在独立的数据转换线程中加载数据匹配和识别引擎,由所述据匹配和识别引擎在数据转换线程中解析所述数据包,加载对应的数据转换模板,对所述数据包进行相应的格式转换,输出格式转换后得到的数据至输出接口。[0007]由上可见,本发明实施例中,提供了一种基于OSGI基础框架、采用java语言开发的数据转换引擎系统,能够以类库的形态提供给开发人员和运行环境,使用者按照自己的数据格式以及输入输出格式进行数据转换模板的配置,启动数据匹配和识别引擎,即可实现系统集成过程中的数据转换;该系统采用中间件组件的方式实现,在逻辑上提供了一层独立于系统集成双方的单独逻辑层,实现了轻量级数据转换,且可实现动态扩展,满足了数据转换的通用性,解决了现有的系统集成技术存在的通用性不够的问题。
【专利附图】

【附图说明】
[0008]图1是本发明实施例提供的基于OSGI的通用数据转换引擎系统的示意图;
图2是数据转换服务模块进行数据转换的流程图;
图3是数据转换过程中的数据转换线程状态图;
图4是数据转换引擎系统与集成系统的架构示意图。
【具体实施方式】
[0009]本发明实施例提供一种基于OSGI的通用数据转换引擎系统,以解决现有的系统集成技术存在的通用性不够的问题。以下结合附图进行详细说明。
[0010]针对不同系统集成中对数据转换的要求,本发明提出了在OSGI的基础框架上,采用java语言开发的一套基于数据模板的,轻量级的,可动态扩展的数据转换引擎系统,以类库的形态提供给开发人员和运行环境,从而达到系统集成过程中的数据转换的目的。
[0011]本发明实施例提供的通用数据转换引擎系统,是一种基于OSGI框架下的java类库,使用者只需要按照自己的数据格式以及输入输出格式进行数据模板的配置,便可以实现数据模板要求的自动数据转换,整个转换过程均为透明处理,同时多线程的数据处理保证了转换模块的效率。
[0012]请参考图1,本发明实施例提供一种基于OSGI的通用数据转换引擎系统,该系统包括:
Jave基础平台模块,由Jave语言开发而成,作为系统底层;
OSGI基础框架模块,部署于所述Jave基础平台模块之上,用于作为动态服务管理平台,注册和管理多个服务功能模块;
对外接口模块,用于提供通用的、规范的输入和输出接口,所提供的输入或输出接口方式在数据转换模板中进行配置。
[0013]其中,所述多个服务功能模块包括:数据转换线程管理模块,数据转换服务模块,和数据模板管理模块;
所述数据模板管理模块,用于提供至少一个数据转换模板;
所述数据转换线程管理模块,用于创建和管理数据转换线程;
所述数据转换服务模块,用于通过输入接口收到数据包后,在独立的数据转换线程中加载数据匹配和识别引擎,由所述据匹配和识别引擎在数据转换线程中解析所述数据包,加载对应的数据转换模板,对所述数据包进行相应的格式转换,输出格式转换后得到的数据至输出接口。
[0014]在本发明一些实施例中: 所述数据转换服务模块,还用于根据数据转换模板对数据包进行反序列化,生成数据转换引擎能够识别的数据对象。
[0015]所述数据转换服务模块,还用于从反序列化生成的数据对象中,通过反射获取数据对象实例,提供给逻辑运算回调函数进行数据的逻辑运算。
[0016]所述数据转换模板是数据转换过程中的依据,提供在xml, json, txt, asc,javabean数据格式之间进行相互转换的功能。
[0017]所述对外接口模块提供的输出接口包括tcp连接接口,webservice接口以及rmi接口。
[0018]下面,进一步详细论述:
1.系统框架
如图1所示,本发明实施例系统从逻辑上分为4个层次:底层是Jave基础平台模块,建立在java的基础上,采用java作为开发语言。在java的上层是OSGI基础框架模块,作为动态服务管理识别平台,提供数据转换中个各种服务的生命周期管理和动态部署集成,同时为该系统提供安全认证等基础服务功能。OSGI基础框架模块上注册和管理多个服务功能模块,这些功能模块采用OSGI的规范作为服务嵌入到OSGI基础框架模块中,以供在数据转换的时候随时调用。最上层是对外接口模块,采用了标准的接口调用和接口封装功能,对外调用和提供多种标准的数据通信接口,如webservice、http通信等。
[0019]其中,多个服务功能模块包括:数据转换线程管理模块,数据转换服务模块,和数据模板管理模块等。
[0020]2.数据转换服务模块
如图2所示,数据转换服务是注册到OSGI基础框架中的核心服务模块,其功能是负责数据转换。当系统通过通信接口接收到数据以后,即通过数据转换线程管理模块启动独立的数据转换线程,在数据转换线程中加载数据匹配和识别引擎,实现数据转换服务。数据转换服务首先解析当前输入数据,对输入数据进行分析和特诊解析,同时进行数据缓存。然后通过数据模板管理模块加载数据转换模板,根据数据转换模板的定义,当前数据转换需求是从什么格式到什么格式的转换,同时解析模板中的数据字段,通过对输入数据的反序列化后数据对象和模板对象的参数比对,然后启动转换服务,进行数据格式的相应转换,转换以后,根据数据转换模板的要求,以特定的格式输出到输出接口或者是作为参数,传入回调函数进行逻辑运算,然后再把结果输出到输出接口,完成数据转换功能。
[0021]3.数据转换线程管理模块
如图3所示,每一次数据转换,均在一个独立的线程中进行,该线程称为数据转换线程,其生命周期从接收到数据开始直到数据输出到输出接口,线程的生命周期由线程池进行管理,当线程激活以后,数据转换线程管理模块通过线程池为该线程打上标签,注入session,跟踪线程在执行过程中的每一个任务,记录转换过程。当数据转换线程在数据转换过程中需要进行线程间的数据共享的时候,线程的防死锁处理等一系列动作都有线程池负责处理。当转换完成后,把线程交还线程池,供下一次数据转换调用。
[0022]4.数据模板管理模块
如图4所示,模板文件(即数据转换模板)是预先定义好的数据转换规约,以xml文件的格式存在。当数据转换功能启用之前,系统会首先加载和分析当前转换的模板文件,模板文件的解析采用Dom进行解析,因为模板文件不会太大,所以,优先考虑其灵活性。在解析数据转换模板的基础上,形成数据转换引擎系统自己定义的可识别的转换映射关系,该映射关系缓存在系统中,作为转换过程中的依据。
[0023]5.对外接口模块
如图4所示,本发明实施例的数据转换引擎系统是作为系统集成中的一个透明的中间逻辑层存在,在两个或多个系统之间起着桥梁作用,所以为多个系统提供通用的、规范的业务输入和输出接口是本发明的一个重要组成部分,在本发明中提供了业界常用的接口进行适配,需要的接口方式也可以通过数据转换模板进行配置,使用方可以通过反射的方式获取特定的接口函数,或者通过特定的ip和端口进行连接获取自己想要的转换结果数据。
[0024]本发明实施例系统可以作为java类库嵌入到任何以系统中使用,也可以作为轻量级总线单独部署在独立的服务器上使用。
[0025]以上,本发明实施例提供的基于OSGI的通用数据转换引擎系统,具有有以下特
点 ?
1、采用OSGI作为服务管理平台。
[0026]利用OSGI的动态服务管理功能,把数据转换引擎系统的多种功能采用OSGI标准的服务进行注册,每一种服务提供一个boundle,把这些服务的管理交给OSGI平台,包括服务的生命周期和安全等。
[0027]2、多线程处理技术。
[0028]数据转换过程中,为每一个转换任务都分配一个独立的线程,在线程的整个生命周期中,线程池负责动态管理,在线程启动和结束的时候打上时间戳,管理线程的状态,分配ID和会话session。
[0029]3、序列化和反序列化。
[0030]在数据转换的过程中,通过对入口数据结构的反序列化和对出口数据的序列化,来满足对数据处理和使用方的要求。对不同的通信方式接收到的数据采用不同的处理方式。当通过socket传输的字节数据的时候,根据数据模板对字节流进行反序列化,生成转换引擎能够识别的数据对象,如json、xml以及javabean等,把生成的对象按照要求交给逻辑运算回调函数。
[0031]4、反射技术。
[0032]在数据转换过程中,根据数据转换模板中要求的对象类型,从反序列化生成的对象中,通过反射获取数据对象实例,获取对象实例中所有的数据以及参数,然后提供给逻辑运算回调函数供使用人员进行数据的逻辑运算。反射技术在此为获取数据转换过程中的数据对象提供了有力的技术支撑,让数据转换引擎从设计上变得更加灵活和通用。
[0033]5、Xml 和 json 解析技术。
[0034]Xml和json是数据传输过程中常用的两种格式,两种格式之间的转换以及xml和json向javabean的转换是本发明数据转换引擎系统的重要内容,xml到javabean的双向转换采用JAXB进行。Xml和json的双向转换借助json-lib实现。
[0035]6、本发明系统可以应用于以下场景:
以JAVAEE作为开发平台的系统之间进行数据集成;以JAVAEE作为开发平台的系统之间进行接口调用实现集成;作为轻量级的企业总线;以及系统内部实现不同模块之间的数据交互。
[0036]由上可见,本发明实施例系统具有以下性能:
1、数据传输接口的通用性
满足各种通信接口,如socket连接,webservice,文件式数据交换等。
[0037]2、提供数据逻辑处理接口
在数据转换的过程中,常常需要对数据进行一定的运算和处理,然后集中或者分散输出。
[0038]3、数据转换和处理性能
作为轻量级的数据转换引擎,考虑了转换性能。
[0039]综上所述,本发明实施例提供了一种基于OSGI的通用数据转换引擎系统,该系统基于OSGI基础框架、采用java语言开发,能够以类库的形态提供给开发人员和运行环境,使用者按照自己的数据格式以及输入输出格式进行数据转换模板的配置,启动数据匹配和识别引擎,即可实现系统集成过程中的数据转换;该系统采用中间件组件的方式实现,在逻辑上提供了一层独立于系统集成双方的单独逻辑层,实现了轻量级数据转换,且可实现动态扩展,满足了数据转换的通用性,解决了现有的系统集成技术存在的通用性不够的问题。
[0040]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤可以通过硬件来完成,也可以通过程序指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机读取存储器、磁盘或光盘等。
[0041]以上对本发明实施例所提供的一种基于OSGI的通用数据转换引擎系统进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
【权利要求】
1.一种基于OSGI的通用数据转换引擎系统,其特征在于,包括: Jave基础平台模块,由Jave语言开发而成,作为系统底层; OSGI基础框架模块,部署于所述Jave基础平台模块之上,用于作为动态服务管理平台,注册和管理多个服务功能模块; 对外接口模块,用于提供通用的、规范的输入和输出接口,所提供的输入或输出接口方式在数据转换模板中进行配置; 其中,所述多个服务功能模块包括:数据转换线程管理模块,数据转换服务模块,和数据模板管理模块; 所述数据模板管理模块,用于提供至少一个数据转换模板; 所述数据转换线程管理模块,用于创建和管理数据转换线程; 所述数据转换服务模块,用于通过输入接口收到数据包后,在独立的数据转换线程中加载数据匹配和识别引擎,由所述据匹配和识别引擎在数据转换线程中解析所述数据包,加载对应的数据转换模板,对所述数据包进行相应的格式转换,输出格式转换后得到的数据至输出接口。
2.根据权利要求1所述的系统,其特征在于,所述数据转换服务模块,还用于将格式转换后得到的数据输出给逻辑运算回调函数进行逻辑运算,将逻辑运算后得到的数据输出至输出接口。
3.根据权利要求1所述的系统,其特征在于,所述数据转换线程管理模块,具体用于为激活的数据转换线程打上标签,注入session,跟踪该激活的数据转换线程在执行过程的任务,在所有任务完成后,将该激活的数据转换线程交还线程池。
4.根据权利要求1所述的系统,其特征在于,所述数据转换模板是预先定义好的数据转换规约,以xml文件的格式存在。
5.根据权利要求1所述的系统,其特征在于,所述数据模板管理模块,还用于在解析数据转换模板的基础上,形成数据转换引擎可识别的转换映射关系,将该转换映射关系缓存在系统中,作为数据转换过程中的依据。
6.根据权利要求1所述的系统,其特征在于,所述数据转换引擎作为系统集成中的一个透明的中间逻辑层存在。
7.根据权利要求1所述的系统,其特征在于,所述数据转换服务模块,还用于根据数据转换模板对数据包进行反序列化,生成数据转换引擎能够识别的数据对象。
8.根据权利要求7所述的系统,其特征在于,所述数据转换服务模块,还用于从反序列化生成的数据对象中,通过反射获取数据对象实例,提供给逻辑运算回调函数进行数据的逻辑运算。
9.根据权利要求7所述的系统,其特征在于,所述数据转换模板是数据转换过程中的依据,提供在xml, json, txt, asc, javabean数据格式之间进行相互转换的功能。
10.根据权利要求7所述的系统,其特征在于,所述对外接口模块提供的输出接口包括tcp连接接口,webservice接口以及rmi接口。
【文档编号】G06F9/44GK103699386SQ201310735039
【公开日】2014年4月2日 申请日期:2013年12月27日 优先权日:2013年12月27日
【发明者】蒋渊, 郭伟, 李海军 申请人:云南电网公司玉溪供电局
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1