一种服务的调用方法和系统与流程

文档序号:11250647阅读:320来源:国知局
一种服务的调用方法和系统与流程

本发明涉及计算机技术领域,尤其涉及一种服务的调用方法和系统。



背景技术:

在一些系统的运行中,随着时间的推进,往往需要更新系统中的信息,例如网页需要更新其中的内容。

随着现在系统越来越庞大,数据越来越多,因此维护的成本越来越高。现有技术中,当系统需要更新时,大多数更新都需要重启网站,而重新编译及部署的成本很高,需要大量的时间和精力。

因此,如何更加简单的进行系统更新,提高更新效率,成为本领域亟需解决的问题。



技术实现要素:

本发明的目的是提供一种服务的调用方法和系统,以更加简单的进行系统更新,提高更新效率。

本发明的目的是通过以下技术方案来实现的:

一种服务的调用方法,包括:

s1、读取缓存,获取操作信息,根据该操作信息获取命令;

s2、根据该命令在内存中搜索包括该命令的命令信息;

s3、若在内存中未搜索到命令信息,则读取配置文件中的命令信息;

s4、根据命令信息执行该命令,并将执行结果转换为命令的返回类型,返回调用结果。

优选的,所述命令信息至少包括命令类型、命令体和返回类型。

优选的,若该命令信息为结构化查询语言,则步骤s4中包括执行该结构化查询语言,并将执行结果转换为命令的返回类型,返回调用结果。

优选的,若该命令信息为反射,则步骤s4中包括调用包括目标地址的程序。

优选的,若该命令信息中包括操作信息,则步骤s4中包括返回步骤s1,并依次进行其他步骤。

本发明公开一种服务的调用系统,包括:

第一读取模块,用于读取缓存,获取操作信息,根据该操作信息获取命令;

搜索模块,用于根据该命令在内存中搜索包括该命令的命令信息;

第二读取模块,用于若在内存中未搜索到命令信息,则读取配置文件中的命令信息;

调用模块,根据命令信息执行该命令,并将执行结果转换为命令的返回类型,返回调用结果。

优选的,所述命令信息至少包括命令类型、命令体和返回类型。

优选的,若该命令信息为结构化查询语言,则调用模块具体用于:执行该结构化查询语言,并将执行结果转换为命令的返回类型,返回调用结果。

优选的,若该命令信息为反射,则调用模块具体用于:调用包括目标地址的程序。

优选的,若该命令信息中包括操作信息,则调用模块具体用于:返回第一读取模块处理,并依次由其他模块进行处理。

本发明服务的调用方法由于包括s1、读取缓存,获取操作信息,根据该操作信息获取命令;s2、根据该命令在内存中搜索包括该命令的命令信息;s3、若在内存中未搜索到命令信息,则读取配置文件中的命令信息;s4、根据命令信息执行该命令,并将执行结果转换为命令的返回类型,返回调用结果。采用这种方式,在网站等系统需要更新时,可以直接读取缓存中的操作信息,根据操作信息获取命令,并在内存中搜索与命令对应的命令信息,或在配置文件读取到命令信息,从而根据该命令信息调用服务,从而完成网站等的更新,不需要将网站等停止运行后进行编译,只需要将需要更新的内容进行调用即可,只用编译新程序中部分的dll,并更新到客户端上再改变配置文件的路径,新服务就能替换掉原服务,从而更新无需重启系统,并且修改及部署系统更容易。

附图说明

图1是本发明实施例的一种服务的调用方法的流程图;

图2是本发明实施例的一种服务的调用系统的示意图。

具体实施方式

虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。各项操作的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

计算机设备包括用户设备与网络设备。其中,用户设备或客户端包括但不限于电脑、智能手机、pda等;网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算的由大量计算机或网络服务器构成的云。计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、vpn网络等。

在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制,使用这些术语仅仅是为了将一个单元与另一个单元进行区分。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

下面结合附图和较佳的实施例对本发明作进一步说明。

如图1所示,本实施例中公开一种服务的调用方法,包括:

s1、读取缓存,获取操作信息,根据该操作信息获取命令;

s2、根据该命令在内存中搜索包括该命令的命令信息;

s3、若在内存中未搜索到命令信息,则读取配置文件中的命令信息;

s4、根据命令信息执行该命令,并将执行结果转换为命令的返回类型,返回调用结果。

本发明实施例服务的调用方法由于包括s1、读取缓存,获取操作信息,根据该操作信息获取命令;s2、根据该命令在内存中搜索包括该命令的命令信息;s3、若在内存中未搜索到命令信息,则读取配置文件中的命令信息;s4、根据命令信息执行该命令,并将执行结果转换为命令的返回类型,返回调用结果。采用这种方式,在网站等系统需要更新时,可以直接读取缓存中的操作信息,根据操作信息获取命令,并在内存中搜索与命令对应的命令信息,或在配置文件读取到命令信息,从而根据该命令信息调用服务,从而完成网站等的更新,不需要将网站等停止运行后进行编译,只需要将需要更新的内容进行调用即可,只用编译新程序中部分的dll,并更新到客户端上再改变配置文件的路径,新服务就能替换掉原服务,从而更新无需重启系统,并且修改及部署系统更容易。

其中,结构化查询语言为sql,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

本发明实施例中的调用的服务包括例如更新的内容、或方法、或路径、地址等等,也可以理解为将面向客户端的服务调过来进行使用。本发明中,缓存、配置文件等可以根据需求自主修改,因此可以自由调用服务,例如更改调用的内容、地址等信息,从而更加方便系统的更新和维护。本实施例中,这些服务的调用可以是客户端进行的,例如客户端读取本地配置文件并将配置文件写入到本地缓存,客户端获取本地配置文件中指定的要调用的服务,然后客户端计算调用服务所对应的服务地址,然后客户端依据服务地址进行服务调用。其中,步骤中还可以包括检查本地配置文件是否更新,具体包括:从本地配置文件中读取远程配置文件更新地址url及预设的本地配置文件的更新周期;计算本次调用与上次调用的时间差是否大于所述更新周期,若大于,则进行下一步,否则,停止更新;启动异步线程下载所述更新地址url中指定的远程配置文件;比较远程配置文件的版本号与本地配置版本号是否一致,如果不一致,则更新本地配置文件。

根据其中一个示例,所述命令信息至少包括命令类型、命令体和返回类型。命令类型包括如调用的服务为直接转到其他地址,如预设的目标地址;或转到包括目标地址的程序中,运行程序,从而调用服务;命令体包括命令的内容等;返回类型为反馈调用服务的结果。

根据其中另一个示例,若该命令信息为结构化查询语言,则步骤s4中包括执行该结构化查询语言,并将执行结果转换为命令的返回类型,返回调用结果。当操行为sql(结构化查询语言)时,就可以直接执行sql,直接修改配置文件就能变更系统中的内容;

根据其中另一个示例,若该命令信息为反射,则步骤s4中包括调用包括目标地址的程序。这样就可以调用包括目标地址的地址,根据该地址找到目标地址,从而获取想要调用的服务。

根据其中另一个示例,若该命令信息中包括操作信息,则步骤s4中包括返回步骤s1,并依次进行其他步骤。这样可以根据操作信息继续操作,调用目标服务。具体的,继续从步骤s1、s2、s3、s4依次进行。

本实施例中,系统初始化流程中包括:读取配置文件,如果该节点为缓存则将数据缓存到内存里;

操作执行流程中包括:根据操作找到命令,其中多个操作可以指向同一个命令;

在内存中寻找该命令的信息,如果没有则去配置文件中读取命令信息其中命令信息包括命令类型、命令体、返回类型;

其中,如果该命令类型为sql(结构化查询语言)则直接执行该sql并将结果转换为命令的返回类型并返回结果;如果命令为反射,则调用该地址的服务,服务可包括方法、内容、路径或地址等等;如果目标服务调用了操作则跳到第一步步骤中,循环进行;将最终结果转换为命令的返回类型并返回结果。

本实施例中,具有以下优点:本实施例中命令实时读取,因此更新无需重启系统,可以方便系统的连续运行;操作可以调用相同命令,因此本实施例中方法复用性高,易于维护;操作可以是直接执行sql,所以直接修改配置文件就能变更所调用的服务,更新、修改等更加便捷;命令被缓存到内存中,节约了读取资源的消耗;信息是否缓存可以根据配置修改,缓存和非缓存的转换更灵活;更新方法、修改及部署系统更容易。本实施例中缓存具有可配置性;并且配置文件中加入操作和命令两个具有不同功能的指向性信息;且不同操作可以调用相同命令;命令类型除了反射还加入了sql,从而使调用服务和操作等更加便捷。

根据本发明其中一个实施例,如图2所示,本实施例中公开一种服务的调用系统,包括:

第一读取模块201,用于读取缓存,获取操作信息,根据该操作信息获取命令;

搜索模块202,用于根据该命令在内存中搜索包括该命令的命令信息;

第二读取模块203,用于若在内存中未搜索到命令信息,则读取配置文件中的命令信息;

调用模块204,根据命令信息执行该命令,并将执行结果转换为命令的返回类型,返回调用结果。

采用这种方式,在网站等系统需要更新时,可以直接读取缓存中的操作信息,根据操作信息获取命令,并在内存中搜索与命令对应的命令信息,或在配置文件读取到命令信息,从而根据该命令信息调用服务,从而完成网站等的更新,不需要将网站等停止运行后进行编译,只需要将需要更新的内容进行调用即可,只用编译新程序中部分的dll,并更新到客户端上再改变配置文件的路径,新服务就能替换掉原服务,从而更新无需重启系统,并且修改及部署系统更容易。

其中,结构化查询语言为sql,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

本发明中的调用的服务包括例如更新的内容、或方法、或路径、地址等等,也可以理解为将面向客户端的服务调过来进行使用。本发明中,缓存、配置文件等可以根据需求自主修改,因此可以自由调用服务,例如更改调用的内容、地址等信息,从而更加方便系统的更新和维护。

根据其中一个示例,所述命令信息至少包括命令类型、命令体和返回类型。命令类型包括如调用的服务为直接转到其他地址,如预设的目标地址;或转到包括目标地址的程序中,运行程序,从而调用服务;命令体包括命令的内容等;返回类型为反馈调用服务的结果。

根据其中另一个示例,若该命令信息为结构化查询语言,则调用模块具体用于:执行该结构化查询语言,并将执行结果转换为命令的返回类型,返回调用结果。当操行为sql(结构化查询语言)时,就可以直接执行sql,直接修改配置文件就能变更系统中的内容;

根据其中另一个示例,若该命令信息为反射,则调用模块具体用于:调用包括目标地址的程序。这样就可以调用包括目标地址的地址,根据该地址找到目标地址,从而获取想要调用的服务。

根据其中另一个示例,若该命令信息中包括操作信息,则调用模块具体用于:返回第一读取模块处理,并依次由其他模块进行处理。这样可以根据操作信息继续操作,调用目标服务。具体的,继续从第一读取模块、搜索模块、第二读取模块、调用模块依次进行。

本实施例中,系统初始化流程中包括:读取配置文件,如果该节点为缓存则将数据缓存到内存里;

操作执行流程中包括:根据操作找到命令,其中多个操作可以指向同一个命令;

在内存中寻找该命令的信息,如果没有则去配置文件中读取命令信息其中命令信息包括命令类型、命令体、返回类型;

其中,如果该命令类型为sql(结构化查询语言)则直接执行该sql并将结果转换为命令的返回类型并返回结果;如果命令为反射,则调用该地址的服务,服务可包括方法、内容、路径或地址等等;如果目标服务调用了操作则跳到第一步步骤中,循环进行;将最终结果转换为命令的返回类型并返回结果。

本实施例中,具有以下优点:本实施例中命令实时读取,因此更新无需重启系统,可以方便系统的连续运行;操作可以调用相同命令,因此本实施例中方法复用性高,易于维护;操作可以是直接执行sql,所以直接修改配置文件就能变更所调用的服务,更新、修改等更加便捷;命令被缓存到内存中,节约了读取资源的消耗;信息是否缓存可以根据配置修改,缓存和非缓存的转换更灵活;更新方法、修改及部署系统更容易。本实施例中缓存具有可配置性;并且配置文件中加入操作和命令两个具有不同功能的指向性信息;且不同操作可以调用相同命令;命令类型除了反射还加入了sql,从而使调用服务和操作等更加便捷。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

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