本发明专利技术属于软件工程设计领域,具体涉及一种函数即服务实现方法、未知类型函数调用方法及系统。通过在一个模板子类中封装了未知的类型定义,再通过已知类型的基类调用到未知类型的子类,相当于将未知类型函数封装为已知类型基类对应的类型,在不对未知类型函数进行定义的基础上,借用已定义基类的类型,生成未知类型函数的封装定义,解决了未知类型无法保存和被调用的问题,由此即可在C++语言实现的服务程序体系下实现函数即服务,从而提高后续功能函数的调用效率,并提高软件应用的可扩展性;并且可以用于编译生成到执行程序或者库中,需要功能扩充时,直接通过本发明专利技术的方案调用功能函数,即可提供相应的功能服务,实现更高效更简单的功能扩展。
【技术实现步骤摘要】
本专利技术属于软件工程设计领域,具体涉及一种函数即服务实现方法、未知类型函数调用方法及系统。
技术介绍
1、现有技术中的函数服务程序运行在物理机上,通常以c++语言实现;目前在c++技术栈中实现服务功能,常规实现方法需要实现包括端口监听、链路保活、身份认证、权限鉴定、数据传输加密等一系列功能,对人员素质要求较高,服务软件的测试和集成较为复杂。而函数即服务是指当需要一个新的服务,即需要调用扩充功能时,只需要创建函数,该函数提交并被加载运行后,就能够提供服务;目前主流的函数即服务是一种云计算形式,依托微服务框架实现,能够调用扩充功能的典型方式是注册、回调机制,如图1和图2所示,由此可见,函数即服务能够提高调用效率,简化服务软件的测试和集成流程,并提高软件应用的可扩展性。
2、但是,在以c++语言实现的服务程序方面,由于c++语言的强类型机制,即调用对象必须为已知类型的函数,则不能定义出一个未知类型的指针,无法用常规的方式保存一个未知定义的函数类型,因此无法支持“未来”定义的数据类型,难以实现对应的函数即服务效果,导致函数即服务难以应用至现有的服务程序所运行的物理机上,使得c++技术栈中实现服务功能的调用效率较低,软件应用的可扩展性较差。
技术实现思路
1、本专利技术的目的在于提供一种函数即服务实现方法、未知类型函数调用方法及系统,用于解决函数即服务难以应用至现有的基于c++语言实现的服务程序所运行的物理机上,导致实现服务功能的调用效率较低且软件应用的可扩展性较差的问题。p>2、为了实现上述目的,本专利技术提供了一种函数即服务实现方法,步骤如下:
3、1)定义函数调用所需的基础内容,所述定义函数调用所需的基础内容包括已知类型的基类;
4、2)定义用于匹配未知类型函数的模板子类,将需要调用的未知类型函数封装在所述模板子类中,并将定义的所述已知类型的基类调用到定义的模板子类,生成与该基类对应且封装有需要调用的未知类型函数的模板子类;
5、3)未知类型函数需要注册时,实例化步骤2)中生成的与所述已知类型的基类对应且封装有需要调用的未知类型函数的模板子类,以实现对需要调用的未知类型函数的注册。
6、上述技术方案的有益效果为:通过在一个模板子类中封装了未知的类型定义,再通过已知类型的基类调用到未知类型的子类,相当于将未知类型函数封装为一个已知类型的基类对应的类型,在不对未知类型函数进行定义的基础上,借用已定义基类的类型,生成未知类型函数的封装定义,因此能够解决未知类型无法保存和被调用的问题,由此即可在c++语言实现的服务程序体系下实现函数即服务,从而提高后续功能函数的调用效率,简化服务软件的测试和集成流程,并提高软件应用的可扩展性。
7、进一步地,所述函数调用所需的基础内容还包括用于保存注册结果的列表,用于记录已注册的函数,以在后续需要调用时能够找到被调用函数。
8、本专利技术还提供了一种函数即服务系统,包括处理器,所述处理器用于如下步骤:
9、1)定义函数调用所需的基础内容,所述定义函数调用所需的基础内容包括已知类型的基类;
10、2)定义用于匹配未知类型函数的模板子类,将需要调用的未知类型函数封装在所述模板子类中,并将定义的所述已知类型的基类调用到定义的模板子类,生成与该基类对应且封装有需要调用的未知类型函数的模板子类;
11、3)未知类型函数需要注册时,实例化步骤2)中生成的与所述已知类型的基类对应且封装有需要调用的未知类型函数的模板子类,以实现对需要调用的未知类型函数的注册。
12、上述技术方案的有益效果为:通过在一个模板子类中封装了未知的类型定义,再通过已知类型的基类调用到未知类型的子类,相当于将未知类型函数封装为一个已知类型的基类对应的类型,在不对未知类型函数进行定义的基础上,借用已定义基类的类型,生成未知类型函数的封装定义,因此能够解决未知类型无法保存和被调用的问题,由此即可在c++语言实现的服务程序体系下实现函数即服务,从而提高后续功能函数的调用效率,简化服务软件的测试和集成流程,并提高软件应用的可扩展性。
13、进一步地,所述函数调用所需的基础内容还包括用于保存注册结果的列表。
14、本专利技术还提供了一种未知类型函数调用方法,步骤如下:
15、1)定义函数调用所需的基础内容,所述定义函数调用所需的基础内容包括已知类型的基类以及函数调用对应的回调函数;
16、2)定义用于匹配未知类型函数的模板子类,将需要调用的未知类型函数封装在所述模板子类中,并将定义的所述已知类型的基类调用到定义的模板子类,生成与该基类对应且封装有需要调用的未知类型函数的模板子类;
17、3)定义注册函数,当未知类型函数需要注册时,实例化步骤2)中生成的与所述已知类型的基类对应且封装有需要调用的未知类型函数的模板子类,以实现对需要调用的未知类型函数的注册;并根据所述已知类型的基类以及函数调用对应的回调函数,调用对应的模板子类,以实现对需要调用的未知类型函数的调用。
18、上述技术方案的有益效果为:通过在一个模板子类中封装了未知的类型定义,再通过已知类型的基类调用到未知类型的子类,相当于将未知类型函数封装为一个已知类型的基类对应的类型,在不对未知类型函数进行定义的基础上,借用已定义基类的类型,生成未知类型函数的封装定义,因此能够解决未知类型无法保存和被调用的问题,由此即可在c++语言实现的服务程序体系下实现函数即服务,从而提高后续功能函数的调用效率,简化服务软件的测试和集成流程,并提高软件应用的可扩展性。
19、进一步地,所述函数调用所需的基础内容还包括用于保存注册结果的列表。
20、本专利技术还提供了一种未知类型函数调用系统,包括处理器,所述处理器用于如下步骤:
21、1)定义函数调用所需的基础内容,所述定义函数调用所需的基础内容包括已知类型的基类以及函数调用对应的回调函数;
22、2)定义用于匹配未知类型函数的模板子类,将需要调用的未知类型函数封装在所述模板子类中,并将定义的所述已知类型的基类调用到定义的模板子类,生成与该基类对应且封装有需要调用的未知类型函数的模板子类;
23、3)定义注册函数,当未知类型函数需要注册时,实例化步骤2)中生成的与所述已知类型的基类对应且封装有需要调用的未知类型函数的模板子类,以实现对需要调用的未知类型函数的注册;并根据所述已知类型的基类以及函数调用对应的回调函数,调用对应的模板子类,以实现对需要调用的未知类型函数的调用。
24、上述技术方案的有益效果为:通过在一个模板子类中封装了未知的类型定义,再通过已知类型的基类调用到未知类型的子类,相当于将未知类型函数封装为一个已知类型的基类对应的类型,在不对未知类型函数进行定义的基础上,借用已定义基类的类型,生成未知类型函数的封装定义,因此能够解决未知类型无法保存和被调用的问题,由此即可在c++语言实现的服本文档来自技高网
...
【技术保护点】
1.一种函数即服务实现方法,其特征在于,步骤如下:
2.根据权利要求1所述的函数即服务实现方法,其特征在于,所述函数调用所需的基础内容还包括用于保存注册结果的列表,用于记录已注册的函数,以在后续需要调用时能够找到被调用函数。
3.一种函数即服务系统,其特征在于,包括处理器,所述处理器用于如下步骤:
4.根据权利要求3所述的函数即服务系统,其特征在于,所述函数调用所需的基础内容还包括用于保存注册结果的列表。
5.一种未知类型函数调用方法,其特征在于,步骤如下:
6.根据权利要求5所述的未知类型函数调用方法,其特征在于,所述函数调用所需的基础内容还包括用于保存注册结果的列表。
7.一种未知类型函数调用系统,其特征在于,包括处理器,所述处理器用于如下步骤:
8.根据权利要求7所述的未知类型函数调用系统,其特征在于,所述函数调用所需的基础内容还包括用于保存注册结果的列表,用于记录已注册的函数,以在后续需要调用时能够找到被调用函数。
【技术特征摘要】
1.一种函数即服务实现方法,其特征在于,步骤如下:
2.根据权利要求1所述的函数即服务实现方法,其特征在于,所述函数调用所需的基础内容还包括用于保存注册结果的列表,用于记录已注册的函数,以在后续需要调用时能够找到被调用函数。
3.一种函数即服务系统,其特征在于,包括处理器,所述处理器用于如下步骤:
4.根据权利要求3所述的函数即服务系统,其特征在于,所述函数调用所需的基础内容还包括用于保存注册结果的列表。
5...
【专利技术属性】
技术研发人员:黄浩然,杨迎春,杨克南,邓建慎,王博,张航,李世通,王鹍鹏,王少鹏,丁博,丁亮,刘洪星,肖寰宇,贾亚楠,吴可可,刘科成,朱朝磊,霍智超,陈鹏鹏,张延辉,贺博,张向前,周山虎,方韬,卢政宇,李文,刘珂祯,安珂,李哲,
申请(专利权)人:许继集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。