一种代理框架服务系统及方法与流程

文档序号:11843272阅读:153来源:国知局
一种代理框架服务系统及方法与流程

本发明涉及计算机技术领域,尤其涉及一种代理框架服务系统及方法。



背景技术:

现有的计算机应用系统中,经常需要利用一部分第三方提供的组件来实现某些业务功能,尤其是在一些需要与硬件交互的系统中,这种情况统更为常见。在类似这样的应用系统中,一个普遍的问题是,第三方提供的组件有可能是由一种老的技术来实现的,或者这些第三方提供的组件仅能运行在某一特定的平台或特定的运行时环境中。使得这些第三方提供的组件无法与整个应用系统兼容,从而造成整个第三方组件服务系统操作不便、部署困难。



技术实现要素:

针对现有的计算机应用系统利用第三方提供的组件时存在的上述问题,现提供一种旨在实现简单操作,且部署方便的代理框架服务系统及方法的。

具体技术方案如下:

一种代理框架服务系统,其中,

提供至少一个远程服务端,每个所述远程服务端中设置有用以执行预定功能的执行单元;

提供一通信单元;

提供一本地代理单元,用以根据当前运行的应用程序的请求,选择对应的所述执行单元于远程执行所述请求,并获取执行结果后返回给所述应用程序;

所述本地代理单元通过所述通信单元与所述远程服务端设置的所述执行单元连接。

优选的,该代理框架服务系统,其中,所述本地代理单元包括接 口模块,所述接口模块用以连接所述应用程序,所述接口模块包括:

配置信息获取组件,用以向所述应用程序提供系统配置信息;

指令执行组件,用以接收所述应用程序的请求,及与所述请求对应的执行参数,并向所述应用程序发送执行结果。

优选的,该代理框架服务系统,其中,所述本地代理单元包括:

管理模块,连接所述接口模块及所述通信单元,用以将所述接口模块获取的来自所述应用程序的请求及所述请求对应的执行参数通过所述通信单元发送至对应的所述执行单元,并将所述执行单元的执行结果发送至所述接口模块,以及提供所述执行单元与所述本地代理单元的连接状态至所述配置信息获取组件。

优选的,该代理框架服务系统,其中,所述通信单元包括:

转换组件,用以将所述本地代理单元发出的请求转换为所述远程服务端可接受的格式,发送至所述远程服务端;以及,将所述远程服务端产生的执行结果转换为所述本地代理单元可接受的格式,发送至所述本地代理单元;和/或

监测组件,用以监测所述本地代理单元与所述执行单元之间的连接状态;和/或

注册管理组件,用以接收所述执行单元的注册请求,并根据所述注册请求将对应的所述执行单元注册至所述本地代理单元。

优选的,该代理框架服务系统,其中,所述通信单元通过套接字通讯模式维持所述本地代理单元与所述执行单元之间的通信。

优选的,该代理框架服务系统,其中,所述执行单元包括:

至少一个功能组件,用以根据所述请求执行预定的功能,并产生相应的执行结果;

宿主模块,分别连接所述通信单元及所述功能组件,用以启动所述功能组件,将通过所述通信单元获取的所述请求转换为相应的所述功能组件可接受的指令,并控制所述功能组件根据对应的所述指令执行预定功能;以及,将所述功能组件的所述执行结果通过所述通信单元发送至所述本地代理单元。

优选的,该代理框架服务系统,其中,所述本地代理单元包括:

启动控制模块,通过所述通信单元连接对应的所述宿主模块,用以可控制地启动对应的所述宿主模块。

优选的,该代理框架服务系统,其中,所述宿主模块包括:

注册组件,连接所述通信单元,用以于所述宿主模块启动后向所述通信单元发送注册请求,以将所述宿主模块注册到所述本地代理单元。

优选的,该代理框架服务系统,其中,所述宿主模块包括:

状态监测组件,用以检测所述本地代理单元的工作状态,并于所述本地代理单元停止工作时使所述宿主模块退出运行。

优选的,该代理框架服务系统,其中,所述执行单元与所述本地代理单元工作于不同的操作系统下。

一种代理框架服务方法,其中,包括:

提供至少一个包括用于执行预定功能的执行单元的远程服务端;

提供一本地代理单元;

在所述本地代理单元与所述远程服务端中的所述执行单元之间实现远程连接;所述代理框架服务方法具体包括:

步骤S1,所述本地代理单元获取当前运行的应用程序的请求;

步骤S2,所述本地代理单元根据所述请求选择相应的所述执行单元,以在远程执行所述请求并形成相应的执行结果;

步骤S3,所述本地代理单元将远程获取的所述执行结果返回至所述应用程序,以供所述应用程序使用。

优选的,该代理框架服务方法,其中,所述本地代理单元通过相应的接口向所述应用程序提供系统配置信息;

所述步骤S1中,所述本地代理单元获取当前运行的所述应用程序的所述请求,以及与所述请求对应的执行参数。

优选的,该代理框架服务方法,其中,所述应用程序的请求及相应的所述执行参数通过设置于所述本地代理单元中的一管理模块发送至相应的所述执行单元;以及通过所述管理模块提供所述执行单元与所述本地代理单元之间的连接状态,以包括在所述系统配置信息中。

优选的,该代理框架服务方法,其中,所述本地代理单元通过所述通信单元发送的所述请求及相应的所述执行参数,被转换成所述远程服务端可接受的格式并被所述远程服务端接收;

所述远程服务端通过所述通信单元发送的所述执行结果,被转换成所述本地代理单元可接受的格式并被所述本地代理单元接收。

优选的,该代理框架服务方法,其中,当所述本地代理单元与所述远程服务端通过所述通信单元远程通信时:

监测所述本地代理单元与所述执行单元之间的连接状态;和/或

接收所述执行单元的注册请求,并根据所述注册请求将对应的所述执行单元注册至所述本地代理单元。

优选的,该代理框架服务方法,其中,于每个所述执行单元中设置相应的至少一个功能组件以及一宿主模块;

所述步骤S2中,所述执行单元接收所述请求,并选择相应的一个所述功能组件,以执行预定的功能并生成相应的所述执行结果;

采用所述宿主模块启动所述功能组件,并将所述请求转换成相应的所述功能组件可接受的指令,以所述指令控制所述功能组件执行预定的功能;以及

将所述执行结果通过所述通信单元发送至所述本地代理单元;

优选的,该代理框架服务方法,其中:

所述本地代理单元通过所述通信单元可控制地启动所述宿主模块;和/或

当所述宿主模块被启动时,所述宿主模块向所述通信单元发送注册请求,以将所述宿主模块注册到所述本地代理单元。

优选的,该代理框架服务方法,其中,采用所述宿主模块检测所述本地代理单元的工作状态,并于所述本地代理单元停止工作时控制所述宿主模块退出运行。

优选的,该代理框架服务方法,其中,所述执行单元与所述本地代理单元工作于不同的操作系统下。

上述技术方案的有益效果是:

1)提供一种代理框架服务系统,解决现有的计算机无法便捷地 利用跨平台的第三方组件处理事务的问题,且该代理框架服务系统部署方便、操作简单;

2)提供一种基于上述代理框架服务系统的服务方法,于代理框架服务系统上实现代理服务管理。

附图说明

图1是本发明的较佳的实施例中,一种代理框架服务系统的总体结构示意图;

图2-4是本发明的较佳的实施例中,代理框架服务系统的分部结构示意图;

图5是本发明的较佳的实施例中,一种代理框架服务方法的流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

本发明的较佳的实施例中,提供一种代理框架服务系统,其总体结构如图1所示,包括:

提供至少一个远程服务端1(图1中仅示出一个)。本发明的较佳的实施例中,每个远程服务端1中设置有用以执行预定功能的执行单元11。本发明的较佳的实施例中,于一个远程服务端1中可以设置一个对应的执行单元11。本发明的较佳的实施例中,可以设置多个远程服务端1,因此该系统中包括多个执行单元11,图1中仅示出一个。

提供一通信单元2;

提供一本地代理单元3。本发明的较佳的实施例中,本地代理单元3用以根据当前运行的应用程序的请求,选择对应的执行单元于远程执行请求,并获取执行结果后返回给应用程序。换言之,本发明的较佳的实施例中,本地代理单元3通过通信单元2与远程服务端1设置的执行单元11连接。

本发明的较佳的实施例中,具体地,如图2所示,上述本地代理单元3中包括:

接口模块31。本发明的较佳的实施例中,接口模块31用以连接应用程序。即接口模块31与当前运行的应用程序之间实现数据传输。

具体地,本发明的较佳的实施例中,仍然如图2所示,上述接口模块31中包括:

配置信息获取组件311。本发明的较佳的实施例中,配置信息获取组件311用于获取系统配置信息,并向当前运行的应用程序提供上述系统配置信息。本发明的一个较佳的实施例中,系统配置信息中可以包括本地代理单元3通过通信单元2与远程服务端1中相应的执行单元11之间的连接状态,和/或供当前运行的应用程序进行配置以适应本地代理单元应用平台的其他各项系统参数等。

指令执行组件312。本发明的较佳的实施例中,指令执行组件312用于接收应用程序的请求,及与请求对应的执行参数,并向应用程序发送执行结果。

本发明的较佳的实施例中,所谓执行参数,是指应用程序请求远程的执行单元执行相应请求对应的实际的执行内容。例如,执行单元中包括的第三方组件为绘制分子结构图的组件,而当前运行的应用程序需要根据给定的分子式绘制相应的分子结构图,因此应用程序可以发出请求以调用相应的执行单元中的第三方组件,则上述执行参数中可以包括绘制分子结构图所依据的分子式等数据。

本发明的较佳的实施例中,上述指令执行组件具有两个功能:一是根据应用程序提出的请求,向远程服务端1发送请求以及相应的执行参数;二是根据远程的相应的执行单元处理形成的执行结果,向应用程序返回该执行结果。

本发明的较佳的实施例中,具体地,仍然如图2所示,上述本地代理单元3中还包括:

管理模块32,连接接口模块31及通信单元2。本发明的较佳的实施例中,管理模块32用以将接口模块31获取的来自应用程序的请求及请求对应的执行参数通过通信单元2发送至对应的执行单元11, 并将执行单元11的执行结果发送至接口模块31,以及提供执行单元11与本地代理单元3的连接状态至上述配置信息获取组件311。

本发明的较佳的实施例中,具体地,如图3所示,上述通信单元2中包括:

转换组件21。本发明的较佳的实施例中,转换组件21用于将本地代理单元3发出的请求转换为远程服务端1可接受的格式,发送至远程服务端1;以及,将远程服务端1产生的执行结果转换为本地代理单元3可接受的格式,发送至本地代理单元。换言之,本发明的较佳的实施例中,转换组件21用于在本地代理单元3与远程服务端1之间实现数据格式的转换,以便于本地代理单元3和远程服务端1接收到的数据格式均可被解析和处理。

本发明的较佳的实施例中,上述通信单元2中还包括:

监测组件22。本发明的较佳的实施例中,上述监测组件22用于监测本地代理单元3与执行单元11之间的连接状态;

注册管理组件23。本发明的较佳的实施例中,注册管理组件23用于接收执行单元11的注册请求,并根据注册请求将对应的执行单元11注册至本地代理单元3。具体地,本发明的较佳的实施例中,上述注册管理组件23实际用于将成功与本地代理单元3连接的执行单元11的信息注册到本地代理单元3中,以将该连接状态信息加入到系统配置信息中,从而本地代理单元3可以通过向应用程序提供系统配置信息的方式告知应用程序此时可用的执行单元11及其相应的预设功能,以供应用程序参考。

本发明的较佳的实施例中,上述通信单元2通过套接字(Socket)通讯模式维持本地代理单元与执行单元之间的通信。

本发明的较佳的实施例中,如图4所示,上述执行单元11中包括:

至少一个功能组件111。本发明的较佳的实施例中,每个功能组件111用于根据请求执行预定的功能,并产生相应的执行结果。具体地,本发明的较佳的实施例中,执行单元11中实际起作用的是上述功能组件111,每个功能组件111适用于完成一项相应的功能。

宿主模块112,分别连接通信单元2及功能组件111。本发明的较佳的实施例中,上述宿主模块112用于启动功能组件111,并将通过通信单元2获取的请求转换为相应的功能组件111可接受的指令,并控制功能组件111根据对应的指令执行预定功能;以及,将功能组件111的执行结果通过通信单元发送至本地代理单元。具体地,本发明的较佳的实施例中,上述宿主模块112的作用在于对上述功能组件111进行控制,将请求转换成相应的指令,并根据指令控制相应的功能组件111处理相应的事务,并输出执行结果。

因此,本发明的较佳的实施例中,本地的应用程序可以通过发出请求的方式请求远程的功能组件执行预设的功能,从而调用相应的功能组件以处理并返回相应的执行结果。

仍然以化学分子式为例。使用者想通过本地的应用程序,依照给定的化学分子式画出相应的分子结构图,但是画图的相关组件为第三方组件,且该第三方组件与本地的应用程序运行于不同的操作系统中。例如本地的应用程序运行于Windows操作系统中,而画分子结构图所需的第三方组件需要运行在Linux操作系统中。在这种情况下,可以采用本发明技术方案中所述的配置方式,将该第三方组件运行于远程的在Linux操作系统下工作的服务端中,采用本地代理单元3将应用程序的请求发送至相应的第三方组件(功能组件111),以请求相应的第三方组件执行预定功能并返回执行结果,可以解决现有技术中因第三方组件需要运行在与主操作系统不同的操作系统中而无法调用该第三方组件的问题。

进一步地,本发明的较佳的实施例中,仍然如图2所示,上述本地代理单元3还包括:

启动控制模块33,通过通信单元2连接对应的宿主模块112(图2中仅示出启动控制模块33与通信单元2连接的部分)。本发明的较佳的实施例中,上述启动控制模块33用于可控制地启动对应的宿主模块112。具体地,本发明的一个较佳的实施例中,提供一种启动上述宿主模块112的实现方法:本地代理单元3被启动,随后通过其中包括的启动控制模块31,通过通信单元2发送控制指令至相应连 接的执行单元11中的宿主模块112,以启动宿主模块112,从而启动该宿主模块112对应的功能组件111,通过注册管理组件23完成相应的功能组件111的注册过程。

本发明的较佳的实施例中,上述技术方案用于解决本地代理单元3异常关闭或者异常重启的情形。若不具有上述启动控制模块31,则当本地代理单元3异常关闭或者异常重启时,设置于远程的执行单元11中的相应的功能组件111并不会相应关闭或重启,则不会重新向本地代理单元3发送注册请求以完成注册,因此在相应的系统配置信息中也会缺失相关信息。因此在本地代理单元3中设置相应的启动控制模块31,以解决上述问题。换言之,在本地代理单元3中设置相应的启动控制模块31,可以将本地代理单元3的启动与关闭和远程的相应的功能组件111的启动与关闭进行同步,从而避免上述问题的发生。

本发明的较佳的实施例中,仍然如图4所示,上述宿主模块112中包括:

注册组件1121,连接通信单元2。本发明的较佳的实施例中,注册组件1121用以于宿主模块112启动后向通信单元2发送注册请求,以将宿主模块注册到本地代理单元3。本发明的较佳的实施例中,如上文中所述,当宿主模块112重新启动后,其主动向本地代理单元3请求注册,以完成相应的注册过程。

状态监测组件1122,用以检测本地代理单元的工作状态,并于本地代理单元停止工作时使宿主模块退出运行。

本发明的较佳的实施例中,上述状态监测组件1122起到的作用为:每隔预设的时间向本地代理单元3发送一次“PING”请求,以检查本地代理单元是否仍在工作,并在本地代理单元停止工作时(即“PING”请求失败)使宿主模块退出运行。这样可以避免“僵尸进程(Zombie Process)”的出现,即避免因与本地代理单元失去连接而无法获取请求的相应的宿主模块持续占用系统资源的情况发生。

本发明的较佳的实施例中,由于本地代理单元与远程服务端之间是远程连接的,因此可以将执行单元11与本地代理单元3设置为工 作于不同的操作系统下,从而解决跨平台使用第三方组件的问题。

综上所述,本发明技术方案中:

于远程服务端搭建包括第三方组件的执行单元,并通过本地代理单元获取当前运行的应用程序的请求以及相应的执行参数,通过通信单元转换成上述远程服务端可接受的数据格式的数据并发送至相应的执行单元;

随后远程服务端的执行单元中相应的功能组件接受请求对应的指令并执行相应的预定功能,以形成相应的执行结果,并通过通信单元转换成上述本地代理单元可接受的数据格式的数据并发送至本地代理单元。

最后本地代理单元将执行结果发送至当前运行的应用程序(即发出请求的应用程序),以供应用程序使用。

上述技术方案能够较好地解决现有技术中无法跨平台进行第三方组件调用的问题,且本发明技术方案中的系统操作简单,部署方便。

本发明的较佳的实施例中,基于上文中所述的代理框架服务系统,提供一种代理框架服务方法。

本发明的较佳的实施例中,于该服务方法中,预先提供至少一个包括用于执行预定功能的执行单元的远程服务端;

预先提供一本地代理单元;

以及在本地代理单元与远程服务端中的执行单元之间实现远程连接。

本发明的较佳的实施例中,如图5所示,上述代理框架服务方法具体包括:

步骤S1,本地代理单元获取当前运行的应用程序的请求;

本发明的较佳的实施例中,本地代理单元通过相应的接口向应用程序提供系统配置信息。本发明的一个较佳的实施例中,上述接口可以为一种软件开发工具包接口(Software Development Kit,SDK),用于提供给应用程序以及应用程序开放人员相应的系统配置数据,以便于应用程序能够成功与本地代理单元连接并进行工作。

本发明的较佳的实施例中,上述步骤S1中,本地代理单元获取 当前运行的应用程序的请求,以及与请求对应的执行参数。本发明的较佳的实施例中,所谓执行参数,如上文中所述,可以为应用程序请求执行的具体的内容。

本发明的较佳的实施例中,上述应用程序的请求及相应的执行参数通过设置于本地代理单元中的一管理模块发送至相应的执行单元;以及通过管理模块提供执行单元与本地代理单元之间的连接状态,以包括在系统配置信息中。

步骤S2,本地代理单元根据请求选择相应的执行单元,以在远程执行请求并形成相应的执行结果;

本发明的较佳的实施例中,在本地代理单元与远程的执行单元之间进行通信的实现方法可以包括:本地代理单元通过通信单元发送的请求及相应的执行参数,被转换成远程服务端可接受的格式并被远程服务端接收;远程服务端通过通信单元发送的执行结果,被转换成本地代理单元可接受的格式并被本地代理单元接收。

换言之,本发明的较佳的实施例中,通信单元的作用在于,将本地代理单元与远程服务端之间进行通信的数据分别转换成接收方能够识别的数据格式,从而解决不同平台不同系统之间数据通信格式不匹配的问题。

本发明的较佳的实施例中,当本地代理单元与远程服务端通过通信单元远程通信时,通信单元监测本地代理单元与执行单元之间的连接状态,并将连接状态设置在系统配置信息中,以供应用程序调用;

和/或

通信单元接收执行单元的注册请求,并根据注册请求将对应的执行单元注册至本地代理单元,以供本地代理单元通知应用程序当前可用的执行单元。

本发明的较佳的实施例中,于每个执行单元中设置相应的至少一个功能组件以及一宿主模块;

则本发明的较佳的实施例中,上述步骤S2中,执行单元接收请求,并选择相应的一个功能组件,以执行预定的功能并生成相应的执行结果;

采用宿主模块启动功能组件,并将请求转换成相应的功能组件可接受的指令,以指令控制功能组件执行预定的功能;以及

将执行结果通过通信单元发送至本地代理单元。

步骤S3,本地代理单元将远程获取的执行结果返回至应用程序,以供应用程序使用。

本发明的较佳的实施例中,上述本地代理单元通过通信单元可控制地启动宿主模块;和/或

当宿主模块被启动时,宿主模块向通信单元发送注册请求,以将宿主模块注册到本地代理单元。

相应地,本发明的较佳的实施例中,采用宿主模块检测本地代理单元的工作状态,并于本地代理单元停止工作时控制宿主模块退出运行。

具体地,本发明的较佳的实施例中,如上文中所述,若不采用宿主模块进行重新启动和/或注册的控制,则当本地代理单元被关闭或者被重新启动时,远程的执行单元无法同步地关闭和/或重新启动,也就无法于本地代理单元被重新启动时重新进行注册,则在本地代理单元被重新启动后,其中包括的系统配置信息中就不包括在本地代理单元被重新启动前已经处于启动状态的执行单元,因此当前运行的应用程序也无法得知此时有哪些执行单元可用。基于对上述问题的考虑,本发明技术方案中,采用宿主模块实现本地代理单元与远程的执行单元之间启动和关闭的同步性,从而保证执行单元能够第一时间向本地代理单元进行注册。

本发明的较佳的实施例中,如上文所述,执行单元与本地代理单元工作于不同的操作系统下。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

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