本发明专利技术公开提供一种基于运行时上下文的出站式服务实现方法,包括:计算节点向控制端发起连接;控制端进行身份验证后,维持所述连接作为主连接,并创建进程上下文;控制端通判断计算节点现有功能模块中是否有未更新的功能模块;若有未更新功能模块控制端通过主连接对未更新的功能模块相应的服务函数进行更新;计算节点加载功能模块;控制端通过主连接与计算节点进行会话连接,并通过会话连接指示计算节点进行数据计算和结果回传。本发明专利技术还提供一种基于运行时上下文的出站式服务实现系统。
【技术实现步骤摘要】
一种基于运行时上下文的出站式服务实现方法及系统
本专利技术涉及计算机应用领域,尤其涉及一种基于运行时上下文的出站式服务方法及系统。
技术介绍
在出站式服务架构中,由控制端指令计算节点执行数据服务,一种典型的通信模型的主要过程如下:将分布式服务程序分别部署在每个计算节点中,分布式服务程序中包含必要的服务过程;计算节点回连控制端,控制端进行必要的身份验证后,维持此连接作为主连接;控制端通过主连接分化出新会话连接,并通过会话连接指示计算节点进行数据计算和结果回传。在这种模型中,需要解决两个问题:一、计算节点服务升级:当计算节点需要更新服务时,传统的做法是通过升级程序或手动将计算节点的服务程序更新,重启计算节点服务程序,再次回连。升级过程不够灵活。二、计算节点和控制端的资源管理问题:当计算服务所处的会话异常结束,例如网络断开时,需要处理资源释放问题。专利申请号为CN201210521645的文献披露了一种基于BOOST的出站式RFI/RMI服务实现方法及通信系统,其使用远程对象作为会话资源管理器,使用会话式契约(RMI服务)来管理资源,在这种模式下,每种服务会话需要独立定义会话对象及契约接口,当基于会话的服务种类增多时,会增大控制端和计算节点的耦合度。
技术实现思路
为解决上述问题,本专利技术采用的一个技术方案是:提供一种基于运行时上下文的出站式服务实现系统,包括控制端以及与控制端通信连接的至少一个计算节点,所述计算节点包括主连接发起模块、功能模块加载模块、计算模块,所述控制端包括验证模块、主连接模块、查询模块、判断模块、更新模块、会话模块;所述主连接发起模块用于向控制端发起连接;所述验证模块用于对发起连接的计算节点进行身份验证;所述主连接模块用于当验证模块对计算节点身份验证通过后,维持所述连接作为主连接,并创建进程上下文,进程上下文中包含服务函数表,服务函数表中注册有功能模块对应的服务函数;所述查询模块用于通过主连接查询计算节点现有功能模块的类别和版本号;所述判断模块用于根据所述类别和版本号判断计算节点现有功能模块中是否有未更新的功能模块,并当判定没有未更新的功能模块时,通知计算节点加载功能模块;所述更新模块用于当判断模块判定有未更新的功能模块时,通过主连接对未更新的功能模块相应的服务函数进行更新,然后通知计算节点加载功能模块;所述功能模块加载模块用于加载功能模块;所述会话模块用于通过主连接与计算节点进行会话连接;所述计算模块用于根据会话连接的指示进行数据计算并将结果回传。本专利技术采用的另一个技术方案是:提供一种基于运行时上下文的出站式服务实现方法,包括:S101、计算节点向控制端发起连接;S102、控制端对发起连接的计算节点进行身份验证后,维持所述连接作为主连接,并创建进程上下文,进程上下文中包含服务函数表,服务函数表中注册有功能模块对应的服务函数;S103、控制端通过主连接查询计算节点现有功能模块的类别和版本号,并根据所述类别和版本号判断计算节点现有功能模块中是否有未更新的功能模块,若是,进入步骤S104,若否,进入步骤S105;S104、控制端通过主连接对未更新的功能模块相应的服务函数进行更新;S105、计算节点加载功能模块,然后进入步骤S106;S106、控制端通过主连接与计算节点进行会话连接,并通过会话连接指示计算节点进行数据计算和结果回传。本专利技术的种基于运行时上下文的出站式服务实现方法及系统,基于RFI服务模型,使用进程运行时上下文实现服务功能模块的自动更新,使更新过程自动化,并在大部分场合下不需要重启服务程序,提高了升级维护的效率;使用线程上下文管理会话资源,省去了会话对象的定义及对象接口契约设计,提高了开发效率并降低通信双方的耦合度。事实上,在其他很多应用场合,恰当使用运行时上下文可以降低程序耦合度,例如实现进程级的单例、增强的线程局部存储等。附图说明图1是本专利技术一实施方式中一种基于运行时上下文的出站式服务实现系统的系统架构图;图2是计算节点的结构框图;图3是控制端的结构框图;图4是计算模块的功能模块图;图5是上下文类定义的示意图;图6是上下文载体的类定义图;图7是本专利技术一实施方式中一种基于运行时上下文的出站式服务实现方法的执行流程图。主要元件符号说明基于运行时上下文的出站式服务实现系统100;控制端10;计算节点20;主连接发起模块21;功能模块加载模块22;计算模块23;验证模块11;主连接模块12;查询模块13;判断模块14;更新模块15;会话模块16;线程创建子模块231;绑定子模块232;线程退出子模块233。具体实施方式为详细说明本专利技术的
技术实现思路
、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。请参阅图1,是本专利技术一实施方式中一种基于运行时上下文的出站式服务实现系统的系统架构图。该基于运行时上下文的出站式服务实现系统100包括控制端10以及与控制端通信连接的至少一个计算节点20。请一并参阅图2、图3,图2是计算节点的结构框图,图3是控制端的结构框图。所述计算节点20包括主连接发起模块21、功能模块加载模块22、计算模块23。所述控制端10包括验证模块11、主连接模块12、查询模块13、判断模块14、更新模块15、会话模块16。所述主连接发起模块21用于向控制端10发起连接。所述验证模块11用于对发起连接的计算节点20进行身份验证。所述主连接模块12用于当验证模块11对计算节点20身份验证通过后,维持所述连接作为主连接,并创建进程上下文,进程上下文中包含服务函数表,服务函数表中注册有功能模块对应的服务函数。其中,在RFI调用模型基础上,本专利技术将服务集合分类整合到不同的功能模块中,每个模块具有版本号、类别信息。在模块的入口处注册服务函数至服务函数表中,服务函数表保存了每一个服务函数的ID和对应的服务函数,其定义如下:Map<FunctionKey,FunctionAgent>所述服务函数表设置在进程上下文中,所以整个进程都可以访问。所述查询模块13用于通过主连接查询计算节点20现有功能模块的类别和版本号。所述判断模块14用于根据所述类别和版本号判断计算节点20现有功能模块中是否有未更新的功能模块,并当判定没有未更新的功能模块时,通知计算节点20加载功能模块。所述更新模块15用于当判断模块判定有未更新的功能模块时,通过主连接对未更新的功能模块相应的服务函数进行更新,然后通知计算节点20加载功能模块。具体地,新的服务函数将替换旧的服务代理函数,在以后的会话将自动使用新服务函数,不必重新启动计算节点服务程序。更新服务过程本身也是一个会话服务,为了避免更新服务与其他会话请求造成访问冲突,更新服务过程必须由主连接完成。所述功能模块加载模块22用于加载功能模块。所述会话模块16用于通过主连接与计算节点20进行会话连接。所述计算模块23用于根据会话连接的指示进行数据计算并将结果回传。请参阅图4,是计算模块的功能模块图。所述计算模块23具体包括线程创建子模块231、绑定子模块232、线程退出子模块233。线程创建子模块231用于当计算节点20接收到控制端10发起的会话服务后,与控制端建立会话连接,并创建与会话连接惟一对应的线程上下文。绑定子模块232用于当计算节点20接收本文档来自技高网...
【技术保护点】
一种基于运行时上下文的出站式服务实现系统,其特征在于,包括控制端以及与控制端通信连接的至少一个计算节点,所述计算节点包括主连接发起模块、功能模块加载模块、计算模块,所述控制端包括验证模块、主连接模块、查询模块、判断模块、更新模块、会话模块;所述主连接发起模块用于向控制端发起连接;所述验证模块用于对发起连接的计算节点进行身份验证;所述主连接模块用于当验证模块对计算节点身份验证通过后,维持所述连接作为主连接,并创建进程上下文,进程上下文中包含服务函数表,服务函数表中注册有功能模块对应的服务函数;所述查询模块用于通过主连接查询计算节点现有功能模块的类别和版本号;所述判断模块用于根据所述类别和版本号判断计算节点现有功能模块中是否有未更新的功能模块,并当判定没有未更新的功能模块时,通知计算节点加载功能模块;所述更新模块用于当判断模块判定有未更新的功能模块时,通过主连接对未更新的功能模块相应的服务函数进行更新,然后通知计算节点加载功能模块;所述功能模块加载模块用于加载功能模块;所述会话模块用于通过主连接与计算节点进行会话连接;所述计算模块用于根据会话连接的指示进行数据计算并将结果回传。
【技术特征摘要】
1.一种基于运行时上下文的出站式服务实现系统,其特征在于,包括控制端以及与控制端通信连接的至少一个计算节点,所述计算节点包括主连接发起模块、功能模块加载模块、计算模块,所述控制端包括验证模块、主连接模块、查询模块、判断模块、更新模块、会话模块;所述主连接发起模块用于向控制端发起连接;所述验证模块用于对发起连接的计算节点进行身份验证;所述主连接模块用于当验证模块对计算节点身份验证通过后,维持所述连接作为主连接,并创建进程上下文,进程上下文中包含服务函数表,服务函数表中注册有功能模块对应的服务函数;所述查询模块用于通过主连接查询计算节点现有功能模块的类别和版本号;所述判断模块用于根据所述类别和版本号判断计算节点现有功能模块中是否有未更新的功能模块,并当判定没有未更新的功能模块时,通知计算节点加载功能模块;所述更新模块用于当判断模块判定有未更新的功能模块时,通过主连接对未更新的功能模块相应的服务函数进行更新,然后通知计算节点加载功能模块;所述功能模块加载模块用于加载功能模块;所述会话模块用于通过主连接与计算节点进行会话连接;所述计算模块用于根据会话连接的指示进行数据计算并将结果回传。2.根据权利要求1所述的一种基于运行时上下文的出站式服务实现系统,其特征在于,所述计算模块具体包括:线程创建子模块,用于当计算节点接收到控制端发起的会话服务后,与控制端建立会话连接,并创建与会话连接惟一对应的线程上下文;绑定子模块,用于当计算节点接收到控制端发送的打开文件指令后,将文件句柄与线程上下文绑定,并返回文件句柄ID至控制端;线程退出子模块,用于当计算节点侦测到会话结束条件满足时,退出线...
【专利技术属性】
技术研发人员:侯绍东,刘丽丽,
申请(专利权)人:厦门市美亚柏科信息股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。