一种多数据源接入的方法及系统与流程

文档序号:11778398阅读:854来源:国知局
一种多数据源接入的方法及系统与流程

本发明涉及计算机网络技术领域,尤其涉及一种多数据源接入的方法及系统。



背景技术:

目前,有许多业务系统服务端需要接入多数据源的数据。例如在船舶航海领域,在船舶避免碰撞技术方面,20世纪末人们利用无线电技术开发出了船舶自动识别系统(automaticidentificationsystem,简称ais),尔后结合计算机网络和软件技术,在21世纪初出现了ais船舶监控系统,能将ais数据结合地理信息系统(geographicinformationsystem,简称gis)展示到网站页面或客户端,以便于人们跟踪监控船舶的实时动态。由于ais数据信息收集主要靠ais基站或卫星,对于遍布全球的船舶来说,可能需要汇集多家公司的数据才能得到尽可能全的数据覆盖,所以监控系统服务端的设计必须考虑可同时接入多家公司的ais数据。

由于每家数据公司提供ais数据源接入的方式不统一,常见的方式有:tcp(传输控制协议)、udp(用户数据报协议)、http(超文本传输协议)和webservice等,并且还可能使用不同传输内容的数据协议格式,如:原始ais报文、在原始ais报文基础上做了扩展的报文、二进制报文等等。这就要求系统在设计时要考虑对有差别的数据源能有很好的支持。

假设要接入三个数据源:数据源a、数据源b和数据源c,目前包括两种常见的多数据源接入方案。

参见图1,第一种方案包括:开发ais业务系统服务;在业务系统服务中创建数据源a的接入模块,用来接入数据源a的ais数据;在业务系统服务中创建数据源b的接入模块,用来接入数据源b的ais数据;在业务系统服务中创建数据源c的接入模块,用来接入数据源c的ais数据;这样业务系统就同时汇集了三种ais数据源的数据,然后对接入的ais协议数据进行解析和整合,来满足业务系统的各种使用场景。

参见图2,第二种方案考虑到基本扩展性,基于第一种方案并采用分层架构,包括:将数据接入功能独立出来,创建一个独立的服务,称之为数据接入服务;在接入服务中创建数据源a的接入模块,用来接入数据源a的ais数据;在接入服务中创建数据源b的接入模块,用来接入数据源b的ais数据;在接入服务中创建数据源c的接入模块,用来接入数据源c的ais数据;在数据接入服务中将三种数据源的数据进行解析和整合,并向上层提供数据接口;开发ais业务系统服务;在ais业务系统服务中创建ais数据接入模块,从数据接入服务接入ais数据,并参与业务逻辑;本方案因为采用分层设计,能支持多个业务系统服务。

但是在实际场景中,上述两种方案都存在很大的问题就是不够灵活,扩展性差。尽管第二种方案在第一种方案的基础上进行了改进,但还是不足以应对实际使用的要求。例如,当增加一个新的数据源d时,对于第一种方案必须修改已经部署好的业务服务,在其中增加新的数据源d接入模块。这样的结果是,不断增加原有业务系统服务的复杂性,同时当有其他业务系统也想接入这些ais数据时难以实现,十分不便;而第二种方案能同时接入多个业务系统,但是当接入的业务系统过多时,数据压力最终都会集中在一个数据接入服务上,难以分散,这就限制了系统的扩展,并增加了系统的不稳定性。

鉴于此,如何提供一种具备良好扩展性的多数据源接入的方法及系统,以避免现有技术中多数据源接入时不够灵活、扩展性差、难以实现以及系统不稳定的缺陷成为目前需要解决的技术问题。



技术实现要素:

为解决上述的技术问题,本发明提供一种多数据源接入的方法及系统,能够解决现有技术中多数据源接入时不够灵活、扩展性差、难以实现以及系统不稳定的问题。

第一方面,本发明提供一种多数据源接入的方法,包括:

设立一数据接入层,以及创建数据接入服务主程序;

根据预设的每一种类型数据源的接入方式和数据协议格式,创建预设的每一种类型数据源对应的动态链接库插件;

针对预设的每一种类型数据源,在所述数据接入层创建一个对应的数据接入服务,其中,对于预设的任意一种类型数据源:

在所述数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用该种类型数据源对应的动态链接库插件,接入该种类型数据源的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有该种类型数据源的业务服务,以使所述业务服务接入该种类型数据源的数据。

可选地,每个数据接入服务支持提供同一种类型数据源的数据的至少一个客户端;

和/或,

所述数据源中的不同种类型数据源为:不同接入方式相同数据协议格式、不同接入方式不同数据协议格式、或者相同接入方式不同数据协议格式。

可选地,在针对预设的每一种类型数据源,在所述数据接入层创建一个对应的数据接入服务之后,所述方法还包括:

对于与预设的每一种类型数据源的种类均不同的新种类型数据源,根据所述新种类型数据源的接入方式和数据协议格式,创建所述新种类型数据源对应的动态链接库插件;

在所述数据接入层创建一个对应所述新种类型数据源的数据接入服务,用于通过所述数据接入服务主程序调用所述新种类型数据源对应的动态链接库插件,接入所述新种类型数据源的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有所述新种类型数据源的业务服务,以使所述业务服务接入所述新种类型数据源的数据。

可选地,每一种类型数据源均为船舶自动识别系统ais数据源,每一种类型数据源的数据均为ais数据。

第二方面,本发明提供一种多数据源接入系统,利用上述方法创建而成,包括:

数据接入层,所述数据接入层包括:针对预设的每一种类型数据源所创建的一个对应的数据接入服务;

其中,在所述数据接入层中对应预设的任意一种类型数据源所创建的数据接入服务,用于通过预先创建的数据接入服务主程序调用该种类型数据源对应的动态链接库插件,接入该种类型数据源的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有该种类型数据源的业务服务,以使所述业务服务接入该种类型数据源的数据;

其中,所述该种类型数据源对应的动态链接库插件是根据该种类型数据源的接入方式和数据协议格式而预先创建的。

第三方面,本发明提供一种多数据源接入的方法,包括:

设立多级数据接入层,以及创建数据接入服务主程序;

根据预设的每一种类型数据源的接入方式和数据协议格式,创建预设的每一种类型数据源对应的动态链接库插件;

创建一个以数据接入服务为数据源的动态链接库插件;

针对预设的每一种类型数据源,在每一级数据接入层创建一个对应的数据接入服务,其中,对于预设的任意一种类型数据源:

在第一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用该种类型数据源对应的动态链接库插件,接入该种类型数据源的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应该种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应该种类型数据源所创建的数据接入服务接入该种类型数据源的数据;

在除了第一级和最后一级数据接入层之外的任意一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用所述以数据接入服务为数据源的动态链接库插件,接入其上一级数据接入层中对应该种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应该种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应该种类型数据源所创建的数据接入服务接入该种类型数据源的数据;

在最后一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用所述以数据接入服务为数据源的动态链接库插件,接入上一级数据接入层中对应该种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有该种类型数据源的业务服务,以使所述业务服务接入该种类型数据源的数据。

可选地,每个数据接入服务支持提供同一种类型数据源的数据的至少一个客户端;

和/或,

所述数据源中的不同种类型数据源为:不同接入方式相同数据协议格式、不同接入方式不同数据协议格式、或者相同接入方式不同数据协议格式。

可选地,在针对预设的每一种类型数据源,在每一级数据接入层创建一个对应的数据接入服务之后,所述方法还包括:

对于与预设的每一种类型数据源的种类均不同的新种类型数据源,根据所述新种类型数据源的接入方式和数据协议格式,创建所述新种类型数据源对应的动态链接库插件;

在每一级数据接入层创建一个对应所述新种类型数据源的数据接入服务,其中:

在第一级数据接入层中对应所述新种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用所述新种类型数据源对应的动态链接库插件,接入所述新种类型数据源的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应所述新种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应所述新种类型数据源所创建的数据接入服务接入所述新种类型数据源的数据;

在除了第一级和最后一级数据接入层之外的任意一级数据接入层中对应所述新种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用所述以数据接入服务为数据源的动态链接库插件,接入其上一级数据接入层中对应所述新种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应所述新种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应所述新种类型数据源所创建的数据接入服务接入所述新种类型数据源的数据;

在最后一级数据接入层中对应所述新种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用所述以数据接入服务为数据源的动态链接库插件,接入上一级数据接入层中对应所述新种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有所述新种类型数据源的业务服务,以使所述业务服务接入所述新种类型数据源的数据。

可选地,每一种类型数据源均为船舶自动识别系统ais数据源,每一种类型数据源的数据均为ais数据。

第四方面,本发明提供一种多数据源接入系统,利用上述方法创建而成,包括:

多级数据接入层,其中每一级数据接入层包括:针对预设的每一种类型数据源所创建的一个对应的数据接入服务;

其中,对于预设的任意一种类型数据源:

在第一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过预先创建的数据接入服务主程序调用该种类型数据源对应的动态链接库插件,接入该种类型数据源的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应该种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应该种类型数据源所创建的数据接入服务接入该种类型数据源的数据;

在除了第一级和最后一级数据接入层之外的任意一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过预先创建的数据接入服务主程序调用预先创建的以数据接入服务为数据源的动态链接库插件,接入其上一级数据接入层中对应该种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应该种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应该种类型数据源所创建的数据接入服务接入该种类型数据源的数据;

在最后一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过预先创建的数据接入服务主程序调用预先创建的以数据接入服务为数据源的动态链接库插件,接入上一级数据接入层中对应该种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有该种类型数据源的业务服务,以使所述业务服务接入该种类型数据源的数据;

其中,所述该种类型数据源对应的动态链接库插件是根据该种类型数据源的接入方式和数据协议格式而预先创建的。

由上述技术方案可知,本发明的多数据源接入的方法及系统,通过设立数据接入层,创建数据接入服务主程序,根据预设的每一种类型数据源的接入方式和数据协议格式,创建预设的每一种类型数据源对应的动态链接库插件,针对预设的每一种类型数据源,在数据接入层创建一个对应的数据接入服务,其中,对于预设的任意一种类型数据源:在数据接入层中对应该种类型数据源创建的数据接入服务,用于通过数据接入服务主程序调用该种类型数据源对应的动态链接库插件,接入该种类型数据源数据进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有该种类型数据源的业务服务,使其接入该种类型数据源的数据,由此,能够解决现有技术中多数据源接入时不够灵活、扩展性差、难以实现以及系统不稳定的问题,具备良好的扩展性,接入灵活,实现简单且系统稳定。

附图说明

图1为现有技术中的一种多数据源接入系统的结构示意图;

图2为现有技术中的另一种分层架构的多数据源接入系统的结构示意图;

图3为本发明一实施例提供的多数据源接入的方法的流程示意图;

图4为本发明一实施例提供的多数据源接入系统的结构示意图;

图5为本发明一实施例提供的利用dll插件的数据接入服务的示意图;

图6为本发明另一实施例提供的多数据源接入的方法的流程示意图;

图7为本发明另一实施例提供的多数据源接入系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。

图3示出了本发明一实施例提供的多数据源接入的方法的流程示意图,如图3所示,本实施例的多数据源接入的方法如下所述。

101、设立一数据接入层,以及创建数据接入服务主程序。

102、根据预设的每一种类型数据源的接入方式和数据协议格式,创建预设的每一种类型数据源对应的动态链接库(dll)插件。

可以理解的是,本实施例可以采用任何可以创建dll插件的语言进行开发,例如可以优先采用c++语言,因其完善的面向对象特性,灵活的指针,高性能以及可创建动态链接库等特性。

在具体应用中,所述数据源中的不同种类型数据源可以为:不同接入方式相同数据协议格式、不同接入方式不同数据协议格式、或者相同接入方式不同数据协议格式。

需说明的是,所述数据源的接入方式可以包括:tcp(传输控制协议)、udp(用户数据报协议)、http(超文本传输协议)和webservice等方式,本实施例并不对其进行限制,所述数据源的接入方式也可以为其他接口协议。

需说明的是,本实施例所述数据源可能根据不同传输内容使用不能的数据协议格式,本实施例并不对其进行限制,可以参考具体实际情况。

在具体应用中,可以将本实施例所述方法应用在船舶航海领域,此时所述数据源可以为船舶自动识别系统(automaticidentificationsystem,简称ais)数据源,每一种类型数据源的数据均为ais数据。举例来说,所述ais数据可以使用原始ais报文、在原始ais报文基础上做了扩展的报文、二进制报文等数据协议格式。

103、针对预设的每一种类型数据源,在所述数据接入层创建一个对应的数据接入服务,其中,对于预设的任意一种类型数据源:

在所述数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用该种类型数据源对应的动态链接库插件,接入该种类型数据源的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有该种类型数据源的业务服务,以使所述业务服务接入该种类型数据源的数据。

在具体应用中,本实施例的每个数据接入服务可以支持至少一个业务服务客户端,也可以理解为本实施例的每个数据接入服务可以支持多个业务服务客户端。

可以理解的是,为预设的每一种类型数据源在所述数据接入层创建一个对应的数据接入服务的好处为:不同数据源模块之间耦合性小,一旦某个接入模块出现问题不会影响另一个数据源的接入,稳定可靠;另外还方便新增或撤除数据源,伸缩灵活。

本实施例采用了动态链接库(dll)插件形式,可参考图5,针对每一种类型数据源特有的处理逻辑(即不同的接入方式和数据协议格式)封装到动态链接库插件中,其他逻辑如:数据解析后缓存、接受上层请求并向上层发送数据等都放在数据接入服务主程序中。这样针对不同数据源的接入只需要创建或复用其对应的dll插件就可以。

在具体应用中,在上述步骤103之后,本实施例所述方法还可以包括图中未示出的步骤104-105:

104、对于与预设的每一种类型数据源的种类均不同的新种类型数据源,根据所述新种类型数据源的接入方式和数据协议格式,创建所述新种类型数据源对应的动态链接库插件。

105、在所述数据接入层创建一个对应所述新种类型数据源的数据接入服务,用于通过所述数据接入服务主程序调用所述新种类型数据源对应的动态链接库插件,接入所述新种类型数据源的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有所述新种类型数据源的业务服务,以使所述业务服务接入所述新种类型数据源的数据。

可以理解的是,在本实施例中,所有设立的数据接入服务主程序都是相同的版本,因此不需要重复开发,本实施例的数据接入服务主程序只需要开发一个,把重复工作量全部压缩在了dll插件中。

下面以一具体实例来对本实施例所述方法进行说明。例如,数据源a是以tcp服务端的形式提供标准ais报文数据,本实施例就针对该数据源a创建一个tcp客户端插件,对标准ais报文进行解析,然后把解析后的数据交给数据接入服务主程序做进一步处理。若有另一数据源b同样是以tcp服务端的形式提供标准ais报文数据,本实施例只需将数据接入服务主程序和tcp客户端插件拷贝一份就可以接入该数据源b。如果又有另一种类的数据源c是通过udp方式推送的标准ais报文,本实施例只需要再开发一个udp模式插件,在其中添加解析标准ais报文逻辑,最后使用数据接入服务主程序搭配该插件即可搭建一个新的数据接入服务。依此模式,如果能复用插件的就复用插件,不能复用的创建新的插件,本实施例只需要开发一个数据接入服务主程序,通过调用各种类型数据源插件便能组建成一个扩展性强,伸缩灵活的ais数据源接入层。

在业务系统服务层,业务服务遵循数据接入层的统一协议进行开发,从数据接入层接入ais数据。一个业务服务可以根据自己的需要从多个数据接入服务接入ais数据,并做成可动态配置模式,即,可以动态发现配置中新增的数据源或撤除的数据源,并做相应的变动处理。这样业务系统便可以实现在线增减数据源,并且还不会影响当前数据源数据流的持续性。因为每个数据接入服务支持多个业务服务客户端,所以数据接入层能支持多个业务系统服务,同样为整个系统的扩展提供了一个灵活的架构平台。

本实施例的多数据源接入的方法,通过设立数据接入层,创建数据接入服务主程序,根据预设的每一种类型数据源的接入方式和数据协议格式,创建预设的每一种类型数据源对应的动态链接库插件,针对预设的每一种类型数据源,在数据接入层创建一个对应的数据接入服务,其中,对于预设的任意一种类型数据源:在数据接入层中对应该种类型数据源创建的数据接入服务,用于通过数据接入服务主程序调用该种类型数据源对应的动态链接库插件,接入该种类型数据源数据进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有该种类型数据源的业务服务,使其接入该种类型数据源的数据,由此,能够解决现有技术中多数据源接入时不够灵活、扩展性差、难以实现以及系统不稳定的问题,具备良好的扩展性,横向扩展性强:当需要扩充新的数据源接时,非常方便,且对现有系统影响小;接入灵活性好:业务系统可以根据自己的需要随意选择一个或多个数据接入服务,一个数据接入服务可支持一个或多个业务系统服务;实现简单,开发代价最小:系统动态链接库(dll)插件模式,将通用逻辑和特别逻辑进行切分,可以将开发工作控制在最小范围;系统稳定。

参考图4,本发明实施例提供了一种多数据源接入系统的结构示意图,本实施例的多数据源接入系统,利用图3所示实施例所述方法创建而成,包括:

数据接入层,所述数据接入层包括:针对预设的每一种类型数据源所创建的一个对应的数据接入服务;

其中,在所述数据接入层中对应预设的任意一种类型数据源所创建的数据接入服务,用于通过预先创建的数据接入服务主程序调用该种类型数据源对应的动态链接库插件,接入该种类型数据源的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有该种类型数据源的业务服务,以使所述预先动态配置有该种类型数据源的业务服务接入该种类型数据源的数据;

其中,所述该种类型数据源对应的动态链接库插件是根据该种类型数据源的接入方式和数据协议格式而预先创建的。

本实施例的多数据源接入系统,利用图3所示实施例所述方法创建而成,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本实施例的多数据源接入系统,能够解决现有技术中多数据源接入时不够灵活、扩展性差、难以实现以及系统不稳定的问题,具备良好的扩展性,横向扩展性强:当需要扩充新的数据源接时,非常方便,且对现有系统影响小;接入灵活性好:业务系统可以根据自己的需要随意选择一个或多个数据接入服务,一个数据接入服务可支持一个或多个业务系统服务;实现简单,开发代价最小:系统动态链接库(dll)插件模式,将通用逻辑和特别逻辑进行切分,可以将开发工作控制在最小范围;系统稳定。

由于图3所示实施例的数据接入层中的每个数据接入服务可以支持至少一个业务服务客户端,当连接在同一个数据接入服务上的业务服务不断增多时,该数据接入服务资源压力会同步上升,因此,在图3所示实施例所述方法的基础上,图6示出了本发明另一实施例提供的多数据源接入的方法的流程示意图,如图6所示,本实施例的多数据源接入的方法如下所述。

201、设立多级数据接入层,以及创建数据接入服务主程序。

202、根据预设的每一种类型数据源的接入方式和数据协议格式,创建预设的每一种类型数据源对应的动态链接库(dll)插件。

可以理解的是,本实施例可以采用任何可以创建dll插件的语言进行开发,例如可以优先采用c++语言,因其完善的面向对象特性,灵活的指针,高性能以及可创建动态链接库等特性。

在具体应用中,所述数据源中的不同种类型数据源可以为:不同接入方式相同数据协议格式、不同接入方式不同数据协议格式、或者相同接入方式不同数据协议格式。

需说明的是,所述数据源的接入方式可以包括:tcp(传输控制协议)、udp(用户数据报协议)、http(超文本传输协议)和webservice等方式,本实施例并不对其进行限制,所述数据源的接入方式也可以为其他接口协议。

需说明的是,本实施例所述数据源可能根据不同传输内容使用不能的数据协议格式,本实施例并不对其进行限制,可以参考具体实际情况。

在具体应用中,可以将本实施例所述方法应用在船舶航海领域,此时所述数据源可以为船舶自动识别系统(automaticidentificationsystem,简称ais)数据源,每一种类型数据源的数据均为ais数据。举例来说,所述ais数据可以使用原始ais报文、在原始ais报文基础上做了扩展的报文、二进制报文等数据协议格式。

203、创建一个以数据接入服务为数据源的动态链接库插件。

204、针对预设的每一种类型数据源,在每一级数据接入层创建一个对应的数据接入服务,其中,对于预设的任意一种类型数据源:

在第一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用该种类型数据源对应的动态链接库插件,接入该种类型数据源的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应该种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应该种类型数据源所创建的数据接入服务接入该种类型数据源的数据;

在除了第一级和最后一级数据接入层之外的任意一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用所述以数据接入服务为数据源的动态链接库插件,接入其上一级数据接入层中对应该种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应该种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应该种类型数据源所创建的数据接入服务接入该种类型数据源的数据;

在最后一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用所述以数据接入服务为数据源的动态链接库插件,接入上一级数据接入层中对应该种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有该种类型数据源的业务服务,以使所述业务服务接入该种类型数据源的数据。

在具体应用中,本实施例的每个数据接入服务可以支持至少一个业务服务客户端,也可以理解为本实施例的每个数据接入服务可以支持多个业务服务客户端。

可以理解的是,为预设的每一种类型数据源在多级数据接入层创建一个对应的数据接入服务的好处为:不同数据源模块之间耦合性小,一旦某个接入模块出现问题不会影响另一个数据源的接入,稳定可靠;另外还方便新增或撤除数据源,伸缩灵活。

可以理解的是,本实施例在第二级以及后续扩展的各级数据接入层中,所有扩展创建的数据接入服务都是使用的同一种以数据接入服务为数据源的动态链接库插件,即对数据源a的数据接入服务扩展第二级和对数据源b的数据接入服务扩展第二级,所使用的插件版本都是完全相同,因为所有数据接入服务对外提供的都是统一的接口协议。

本实施例采用了动态链接库(dll)插件形式,可参考图5,针对每一种类型数据源特有的处理逻辑(即不同的接入方式和数据协议格式)封装到动态链接库插件中,其他逻辑如:数据解析后缓存、接受上层请求并向上层发送数据等都放在数据接入服务主程序中。这样针对不同数据源的接入只需要创建或复用其对应的dll插件就可以。

本实施例的多数据源接入的方法,在数据接入服务中通过数据接入服务主程序调用dll插件模式,可针对特别的数据源创建对应的插件,也可以创建一个以数据接入服务为数据源的插件,这样就可以在第一级数据接入层上扩展出第二级数据接入层,业务服务可以从第一级数据接入层接入数据也可以从第二级数据接入层接入数据,两者并无差别。同样,第二级数据接入层也可以再继续向上扩展第三级数据接入层、第四级数据接入层……,这样便可以根据整个系统的压力状况来扩展数据接入层,能够达到分散业务系统压力的目的。

在具体应用中,在上述步骤204之后,本实施例所述方法还可以包括图中未示出的步骤205-206:

205、对于与预设的每一种类型数据源的种类均不同的新种类型数据源,根据所述新种类型数据源的接入方式和数据协议格式,创建所述新种类型数据源对应的动态链接库插件。

206、在每一级数据接入层创建一个对应所述新种类型数据源的数据接入服务,其中:

在第一级数据接入层中对应所述新种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用所述新种类型数据源对应的动态链接库插件,接入所述新种类型数据源的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应所述新种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应所述新种类型数据源所创建的数据接入服务接入所述新种类型数据源的数据;

在除了第一级和最后一级数据接入层之外的任意一级数据接入层中对应所述新种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用所述以数据接入服务为数据源的动态链接库插件,接入其上一级数据接入层中对应所述新种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应所述新种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应所述新种类型数据源所创建的数据接入服务接入所述新种类型数据源的数据;

在最后一级数据接入层中对应所述新种类型数据源所创建的数据接入服务,用于通过所述数据接入服务主程序调用所述以数据接入服务为数据源的动态链接库插件,接入上一级数据接入层中对应所述新种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有所述新种类型数据源的业务服务,以使所述业务服务接入所述新种类型数据源的数据。

可以理解的是,在业务系统服务层,业务服务遵循数据接入层的统一协议进行开发,从数据接入层接入ais数据。一个业务服务可以根据自己的需要从多个数据接入服务接入ais数据,并做成可动态配置模式,即,可以动态发现配置中新增的数据源或撤除的数据源,并做相应的变动处理。这样业务系统便可以实现在线增减数据源,并且还不会影响当前数据源数据流的持续性。因为每个数据接入服务支持多个业务服务客户端,所以每级数据接入层都能支持多个业务系统服务,同样为整个系统的扩展提供了一个灵活的架构平台。

本实施例的多数据源接入的方法,通过设立数据接入层,在图1所示实施例的基础上扩展为分层架构,能够解决现有技术中多数据源接入时不够灵活、扩展性差、难以实现以及系统不稳定的问题,具备良好的扩展性,横向扩展性强:当需要扩充新的数据源接时,非常方便,且对现有系统影响小;纵向扩展性强:当业务层压力增大时,可纵向延伸出多级数据接入层扩展,分散业务系统压力;接入灵活性好:业务系统可以根据自己的需要随意选择一个或多个数据接入服务,一个数据接入服务可支持一个或多个业务系统服务;实现简单,开发代价最小:系统动态链接库(dll)插件模式,将通用逻辑和特别逻辑进行切分,可以将开发工作控制在最小范围;系统稳定。

参考图7,本发明实施例提供了一种多数据源接入系统的结构示意图,本实施例的多数据源接入系统,利用图6所示实施例所述方法创建而成,包括:

多级数据接入层,其中每一级数据接入层包括:针对预设的每一种类型数据源所创建的一个对应的数据接入服务;

其中,对于预设的任意一种类型数据源:

在第一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过预先创建的数据接入服务主程序调用该种类型数据源对应的动态链接库插件,接入该种类型数据源的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应该种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应该种类型数据源所创建的数据接入服务接入该种类型数据源的数据;

在除了第一级和最后一级数据接入层之外的任意一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过预先创建的数据接入服务主程序调用预先创建的以数据接入服务为数据源的动态链接库插件,接入其上一级数据接入层中对应该种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给下一级数据接入层中对应该种类型数据源所创建的数据接入服务,以使该下一级数据接入层中对应该种类型数据源所创建的数据接入服务接入该种类型数据源的数据;

在最后一级数据接入层中对应该种类型数据源所创建的数据接入服务,用于通过预先创建的数据接入服务主程序调用预先创建的以数据接入服务为数据源的动态链接库插件,接入上一级数据接入层中对应该种类型数据源所创建的数据接入服务所发送的数据并进行解析,将解析后的数据发送给上层业务系统服务中预先动态配置有该种类型数据源的业务服务,以使所述业务服务接入该种类型数据源的数据;

其中,所述该种类型数据源对应的动态链接库插件是根据该种类型数据源的接入方式和数据协议格式而预先创建的。

本实施例的多数据源接入系统,利用图6所示实施例所述方法创建而成,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本实施例的多数据源接入系统,能够解决现有技术中多数据源接入时不够灵活、扩展性差、难以实现以及系统不稳定的问题,具备良好的扩展性,横向扩展性强:当需要扩充新的数据源接时,非常方便,且对现有系统影响小;纵向扩展性强:当业务层压力增大时,可纵向延伸出多级数据接入层扩展,分散业务系统压力;接入灵活性好:业务系统可以根据自己的需要随意选择一个或多个数据接入服务,一个数据接入服务可支持一个或多个业务系统服务;实现简单,开发代价最小:系统动态链接库(dll)插件模式,将通用逻辑和特别逻辑进行切分,可以将开发工作控制在最小范围;系统稳定。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置/系统。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置/系统的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1