一种C#接口数据交互管理系统的制作方法

文档序号:11154606阅读:296来源:国知局
一种C#接口数据交互管理系统的制造方法与工艺

本发明涉及接口管理技术领域,特别是涉及一种C#接口数据交互管理系统。



背景技术:

当前应用系统在进行系统对接、数据交互时,主要采用接口直接引用的方式,通过与应用系统上的接口唯一对应的代理类传输数据到第三方系统,其中,一个接口对应一个第三方系统。现有技术中,接口的代理类在应用系统中,并且接口的代理类中包含传输数据所必须的任务信息,所以在进行数据交互时,只能通过与接口所对应的代理类将数据传输给相应的第三方系统,当应用系统与多个第三方系统对接时,就需要有多个代理类来完成数据传输,因此现有技术中需要对多个接口及代理类进行分散管理。当应用系统需要在原来的基础上添加与其对接的第三方系统时,就需要对原系统的代码进行修改,以便生成与该新增的接口对应的代理类,实现与新增的第三方系统之间的数据传输。基于上述情况,现有技术中不易于对接口进行管理,使工作人员的工作繁琐、降低了工作效率。

因此,如何提供一种解决上述技术问题的C#接口数据交互管理系统成为本领域的技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种C#接口数据交互管理系统,在使用的过程中使接口管理变得更加方便,实现了接口代理类与应用系统的分离,降低了系统耦合性,提高了系统的可运维度和工作人员的工作效率。

为解决上述技术问题,本发明提供了一种C#接口数据交互管理系统,所述系统包括:

任务管理模块,用于对任务进行配置得到任务描述信息,所述任务描述信息包括第一任务关键字以及时间表达式;还用于对第三方系统预先发送的接口地址进行登记、并预先将应用系统中的与所述任务对应的第一任务实现类注入至任务调度模块中的IOC容器内;

所述任务调度模块,用于依据所述时间表达式确定并获取待发送任务,并依据所述待发送任务的第一任务关键字从所述IOC容器内获取所述待发送任务的第一任务实现类;并依据所述待发送任务的第一任务实现类从所述应用系统中获取并发送相应的第一任务数据;

任务执行模块,用于接收所述第一任务数据并将所述第一任务数据通过统一的代理类发送至与所述接口地址对应的第三方系统。

优选的,所述时间表达式为Cron时间表达式。

优选的,所述任务调度模块包括:

所述IOC容器,用于接收所述第一任务实现类;

生产线程,用于对所有任务进行轮询并依据所述时间表达式判断当前时间是否有需要发送的任务,如果有,则将所述任务放入待发送列表中,否则,重复判断;

获取线程,用于从所述待发送列表中确定并获取所述待发送任务,并依据所述待发送任务的第一任务关键字从所述IOC容器内获取所述待发送任务的第一任务实现类,并依据所述第一任务实现类从所述应用系统中获取并发送相应的第一任务数据至任务执行模块。

优选的,所述任务描述信息还包括用于当多个所述任务对应的发送时间均相同时确定发送顺序的优先级;

则从所述待发送列表中确定并获取所述待发送任务的过程为:

依据所述优先级从所述待发送列表中确定并获取所述待发送任务。

优选的,所述任务执行模块,还用于当成功发送所述第一任务数据后回写发送结果。

优选的,所述任务调度模块还包括探测线程,用于判断所述接口地址的状态是否正常,如果是,则触发所述获取线程进行所述第一任务数据的发送,否则,不触发。

优选的,所述探测线程,用于发送心跳包至与所述接口地址对应的第三方系统,并判断是否在预设时间内接受到所述第三方系统的返回结果,如果是,则确定所述接口地址的状态正常,否则,确定所述接口地址的状态异常。

优选的,所述任务执行模块包括:

判断线程,用于接收所述第一任务数据,且当所述第一任务数据正常时将所述第一任务数据发送出去;

发送线程,用于接收并通过所述统一的代理类发送所述第一任务数据至与所述接口地址对应的第三方系统,并当所述第一任务数据发送成功后发送回调指令;

回调线程,用于依据所述回调指令回写所述发送结果。

优选的,所述任务管理模块,还用于发送所述应用系统的被动接收接口地址至第三方系统、接收所述第三方系统发送的任务参数,所述任务参数包括第二任务关键字;

所述任务调度模块,还用于依据所述第二任务关键字从所述IOC容器中获取相应的第二任务实现类、并依据所述第二任务实现类从所述应用系统中获取并发送相应的第二任务数据;

所述任务执行模块,还用于接收所述第二任务数据并将所述第二任务数据返回至所述第三方系统。

优选的,所述任务参数为String类型的任务参数。

本发明提供了一种C#接口数据交互管理系统,该系统包括:任务管理模块,用于对任务进行配置得到任务描述信息,任务描述信息包括第一任务关键字以及时间表达式;还用于对第三方系统预先发送的接口地址进行登记、并预先将应用系统中的与任务对应的第一任务实现类注入至任务调度模块中的IOC容器内;任务调度模块,用于依据时间表达式确定并获取待发送任务,并依据待发送任务的第一任务关键字从IOC容器内获取待发送任务的第一任务实现类;并依据待发送任务的第一任务实现类从应用系统中获取并发送相应的第一任务数据;任务执行模块,用于接收第一任务数据并将第一任务数据通过统一的代理类发送至与接口地址对应的第三方系统。

本发明提供的接口数据交互管理系统实现了对应用系统与第三方系统的数据交互的接口进行统一管理,只需要一个统一的代理类,并且当应用系统需要在原来的基础上添加与其对接的第三方系统时,只需要通过任务管理模块对新增的第三方系统所提供的接口地址进行登记,且将对应的第一任务实现类预先注入IOC容器中即可。本发明所提供的接口数据交互管理系统在使用的过程中使接口管理变得更加方便,实现了接口代理类与应用系统的分离,降低了系统耦合性,提高了系统的可运维度和工作人员的工作效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种C#接口数据交互管理系统的结构示意图;

图2为本发明提供的另一种C#接口数据交互管理系统的结构示意图。

具体实施方式

本发明的核心是提供一种C#接口数据交互管理系统,在使用的过程中使接口管理变得更加方便,实现了接口代理类与应用系统的分离,降低了系统耦合性,提高了系统的可运维度和工作人员的工作效率。

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

请参照图1,图1为本发明提供的一种C#接口数据交互管理系统的结构示意图。

该系统包括:

任务管理模块1,用于对任务进行配置得到任务描述信息,任务描述信息包括第一任务关键字以及时间表达式;还用于对第三方系统预先发送的接口地址进行登记、并预先将应用系统中的与任务对应的第一任务实现类注入至任务调度模块中的IOC容器21内;

任务调度模块2,用于依据时间表达式确定并获取待发送任务,并依据待发送任务的第一任务关键字从IOC容器21内获取待发送任务的第一任务实现类;并依据待发送任务的第一任务实现类从应用系统中获取并发送相应的第一任务数据;

任务执行模块3,用于接收第一任务数据并将第一任务数据通过统一的代理类发送至与接口地址对应的第三方系统。

具体的,该接口数据交互管理系统的任务管理模块1,用于对系统中的任务进行管理。对任务进行配置得到任务描述信息,任务描述信息包括第一任务关键字以及时间表达式,其中,时间表达式是主动任务必须配置的信息;当执行主动任务时,需要第三方系统提供一个接收数据的WebService接口,定义格式为requestService(string args),并对第三方系统预先提供的与其自身对应的接口地址进行登记,并在启动任务发送之前预先将应用系统中的与该任务对应的第一任务实现类注入至任务调度模块2中的IOC容器21中,具体的,接口数据交互管理系统提供一个任务注入接口,该任务注入接口对应一个注入方法,当接口数据交互管理系统启动时会通过任务注入接口扫描第一任务实现类,并调用注入方法实现第一任务实现类的注入。

需要说明的是,每个接口继承并实现该接口,每个实现对应一个接口服务,接口实现后该管理系统对接口进行登记。

还需要说明的是,任务描述信息不仅限于上述三种信息,还可以包括其他信息,本发明在此不做特殊的限定,能实现本发明的目的即可。

具体的,任务调度模块2主要依据时间表达式确定并获取待发送任务,由于任务与其任务实现类是通过任务关键字建立联系的,所以获取待发送任务后再依据该待发送任务对应的第一任务关键字从IOC容器21中获取与该第一任务关键字对应的第一任务实现类,也即该待发送任务的第一任务实现类,根据第一任务实现类的路径信息反射得到最终的实例对象,然后调用实例对象的Excute()方法从应用系统中获取该任务对应的第一任务数据,并将第一任务数据发送至任务执行模块3。

任务执行模块3接收任务调度模块2发送的第一任务数据,并将该第一任务数据通过统一的代理类发送至与接口地址对应的第三方系统,以实现应用系统与第三方系统之间的数据交互。

本发明提供了一种C#接口数据交互管理系统,该系统包括:任务管理模块,用于对任务进行配置得到任务描述信息,任务描述信息包括第一任务关键字以及时间表达式;还用于对第三方系统预先发送的接口地址进行登记、并预先将应用系统中的与任务对应的第一任务实现类注入至任务调度模块中的IOC容器内;任务调度模块,用于依据时间表达式确定并获取待发送任务,并依据待发送任务的第一任务关键字从IOC容器内获取待发送任务的第一任务实现类;并依据待发送任务的第一任务实现类从应用系统中获取并发送相应的第一任务数据;任务执行模块,用于接收第一任务数据并将第一任务数据通过统一的代理类发送至与接口地址对应的第三方系统。

本发明提供的接口数据交互管理系统实现了对应用系统与第三方系统的数据交互的接口进行统一管理,只需要一个统一的代理类,并且当应用系统需要在原来的基础上添加与其对接的第三方系统时,只需要通过任务管理模块对新增的第三方系统所提供的接口地址进行登记,且将对应的第一任务实现类预先注入IOC容器中即可。本发明所提供的接口数据交互管理系统在使用的过程中使接口管理变得更加方便,实现了接口代理类与应用系统的分离,降低了系统耦合性,提高了系统的可运维度和工作人员的工作效率。

请参照图2,图2为本发明提供的另一种C#接口数据交互管理系统的结构示意图,在上述实施例的基础上:

作为优选的,时间表达式为Cron时间表达式。

当然,时间表达式的具体形式不仅限于Cron时间表达式,还可以是其他形式的时间表达式,本发明在此不做特殊的限定,能实现本发明的目的即可。

作为优选的,任务调度模块2包括:

IOC容器21,用于接收第一任务实现类;

生产线程22,用于对所有任务进行轮询并依据时间表达式判断当前时间是否有需要发送的任务,如果有,则将任务放入待发送列表中,否则,重复判断;

获取线程23,用于从待发送列表中确定并获取待发送任务,并依据待发送任务的第一任务关键字从IOC容器21内获取待发送任务的第一任务实现类,并依据第一任务实现类从应用系统中获取并发送相应的第一任务数据至任务执行模块3。

作为优选的,任务描述信息还包括用于当多个任务对应的发送时间均相同时确定发送顺序的优先级;

则从待发送列表中确定并获取待发送任务的过程为:

依据优先级从待发送列表中确定并获取待发送任务。

具体的,生产线程22依据时间表达式对系统内所有的任务进行轮询,并将当前时间需要发送的任务放入待发送列表;获取线程23从待发送列表中确定并获取待发送任务,需要说明的是,当有多个任务所对应的发送时间都相同时,则按照任务的优先级确定并获取待发送任务,即优先级高的先发送,优先级低的后发送;当获取线程23获取待发送任务后,依据该待发送任务对应的第一任务关键字从任务调度模块2的IOC容器21中获取该待发送任务对应的第一任务实现类,然后再依据该第一任务实现类即可从应用系统中获取该任务对应的第一任务数据,根据第一任务实现类的路径信息反射得到最终的实例对象,然后调用该实例对象的Excute()方法从应用系统中获取该任务对应的第一任务数据,并将第一任务数据发送至任务执行模块3。

作为优选的,任务执行模块3,还用于当成功发送第一任务数据后回写发送结果。

需要说明的是,任务执行模块3接收获取线程23发送的第一任务数据后,将该第一任务数据通过统一的代理类发送至与接口地址对应的第三方系统,当第一任务数据发送成功后回写发送结果,以便工作人员及时了解发送情况。

作为优选的,任务调度模块2还包括探测线程24,用于判断接口地址的状态是否正常,如果是,则触发获取线程23进行第一任务数据的发送,否则,不触发。

需要说明的是,为了及时了解接口地址的状态,以确保应用系统与第三方系统之间的数据交互的正常进行,还可以通过任务调度模块2的探测线程24对接口地址的状态进行判断,只有当接口地址的状态正常时才触发获取线程23使其将第一任务数据的发送至任务执行模块3,这样可以提高数据发送成功的概率。

作为优选的,探测线程24,用于发送心跳包至与接口地址对应的第三方系统,并判断是否在预设时间内接受到第三方系统的返回结果,如果是,则确定接口地址的状态正常,否则,确定接口地址的状态异常。

具体的,探测线程24可以通过发送心跳包至第三方系统来判断第三方系统对应的接口地址的状态是否正常,具体判断方法为:当探测线程24在预设时间内接收到第三方系统返回的返回结果时即可确定第三方系统能接受到所传输的信息,也就是该第三方系统所对应的接口地址的状态正常;当探测线程24没有在预设时间内接受到第三方系统返回的返回结果时即可确定第三方系统不能接受到所传输的信息,也就是该第三方系统所对应的接口地址的状态异常。

需要说明的是,探测线程24还可以通过其他方式来判断该第三方系统所对应的接口地址的状态是否正常,其具体判断方式本发明在此不做特殊的限定,能实现本发明的目的即可。

还需要说明的是,预设时间的具体数值可以根据实际情况确定。

作为优选的,任务执行模块3包括:

判断线程31,用于接收第一任务数据,且当第一任务数据正常时将第一任务数据发送出去;

发送线程32,用于接收并通过统一的代理类发送第一任务数据至与接口地址对应的第三方系统,并当第一任务数据发送成功后发送回调指令;

回调线程33,用于依据回调指令回写发送结果。

具体的,任务执行模块3中的判断线程31接收获取线程23发送的第一任务数据,并判断该第一任务数据是否正常,当该第一任务数据正常时将其发送至发送线程32,当该第一任务数据不正常时则不发送,该过程提高了发送数据的准确率;

发送线程32接收判断线程31发送的第一任务数据后将该第一任务数据通过统一的代理类发送至第三方系统,当第一任务数据发送成功后生成并发送回调指令至回调线程33,回调线程33依据接收到的回调指令回写发送结果;当然,在第一任务数据发送失败时也可以生成相应的回调指令,并将任务发送失败对应的回调指令发送至回调线程33,回调线程33接收该回调指令后回写相应的发送结果,以便工作人员更加及时准确的了解第一任务数据的发送情况。

作为优选的,任务管理模块1,还用于发送应用系统的被动接收接口地址至第三方系统、接收第三方系统发送的任务参数,任务参数包括第二任务关键字;

任务调度模块2,还用于依据第二任务关键字从IOC容器21中获取相应的第二任务实现类、并依据第二任务实现类从应用系统中获取并发送相应的第二任务数据;

任务执行模块3,还用于接收第二任务数据并将第二任务数据返回至第三方系统。

需要说明的是,当系统运行时创建两个WCF通道分别用于主动和被动任务,所以该数据交互管理系统不仅适用于对任务的主动发送,还适用于对任务的被动接收。

当对任务进行被动接收时任务管理模块1需要向第三方系统发送应用系统的被动接收接口地址;当第三方系统接收到该应用系统的用于被动接收的接口地址后,第三方系统通过该接口地址向任务管理模块1发送相应任务的任务参数,该任务参数主要包括第二任务关键字;任务管理模块1接收第二任务关键字后,任务调度模块2依据该第二任务关键字从任务调度模块2的IOC容器21中获取相应的第二任务实现类,再依据该第二任务实现类的路径信息反射成实例对象(如果已经反射过不需要再次反射,保证系统中接口实现的实例对象只存在一个),然后调用该实例对象的Excute()方法从应用系统中获取相应的第二任务数据,并将该第二任务数据发送至任务执行模块3,任务执行模块3接收第二任务数据后将其通过原路经返回至第三方系统。

当然,上述任务参数不仅限于包括第二任务关键字,还可以包括其他参数信息,本发明在此不做特殊的限定,能实现本发明的目的即可。

需要说明的是,对任务的主动发送和被动接收可共用接口实现实例对象。

作为优选的,任务参数为String类型的任务参数。

具体的,本申请中的任务参数为String类型,并以xml格式定义。

当然,任务参数的类型不仅限于String类型,还可以为其他类型,本发明在此不做特殊的限定,能实现本发明的目的即可。

需要说明的是,对于多个第三方系统与应用系统进行对接时采用分发机制,即在WCF透明通道内配置多个第三方系统的接口地址,同时在透明通道内包含一个第三方系统接口的统一代理类,每个第三方系统按统一代理类的要求条件实现接口int requestService(string args);当主动发送任务进行数据传输时,先从配置文件内获取所有第三方地址,然后以接口地址为参数实例化第三方系统接口代理,调用requestService(string args)方法传输数据并获取返回结果。

该数据交互接口管理系统部署安装独立,不依赖、不影响应用系统的运行;并且接口分为主动发送和被动接收两种方式,两者可随意切换;添加和管理接口可动态配置,不影响软件正常运行,可以动态装载和卸载。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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