CN105138342A - 一种服务开发方法和装置 - Google Patents
一种服务开发方法和装置 Download PDFInfo
- Publication number
- CN105138342A CN105138342A CN201510641959.8A CN201510641959A CN105138342A CN 105138342 A CN105138342 A CN 105138342A CN 201510641959 A CN201510641959 A CN 201510641959A CN 105138342 A CN105138342 A CN 105138342A
- Authority
- CN
- China
- Prior art keywords
- assembly
- service
- unit
- data
- specified services
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种服务开发方法和装置。方法包括:预设服务生成模板;所述服务生成模板中配置有执行服务注册逻辑的第一代码;当要生成一个指定服务时,调取所述服务生成模板,在所述服务生成模板中添加该指定服务的地址和执行该指定服务的业务逻辑的业务处理模块,生成指定服务;其中,将该指定服务发布到服务器上时,由该服务中的所述第一代码执行将该指定服务注册到所述服务器的逻辑,以使得服务器在接收到访问所述指定服务的地址的请求时,将该请求映射到该指定服务。该技术方案通过克服现有技术中使用编写代码过程中需要处理handle处理器的问题,简化了繁琐的开发过程,提供了一种简便、规范的服务开发方法,缩短了开发时间,降低了开发成本。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种服务开发方法和装置。
背景技术
页面开发、软件代码的编写往往可采用的语言是多样化的,其中,Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
但在实际当中,采用源生的Go语言开发应用服务时,除了要写一套完整的业务逻辑以外,还要产生一个handle处理器,注册handle处理器,再启动服务,过程非常繁琐,并且每开发一个服务时,都要重复完成上述过程。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的服务开发方法和装置。
依据本发明的一个方面,提供了一种服务开发方法,包括:预设服务生成模板;所述服务生成模板中配置有执行服务注册逻辑的第一代码;当要生成一个指定服务时,调取所述服务生成模板,在所述服务生成模板中添加该指定服务的地址和执行该指定服务的业务逻辑的业务处理模块,生成指定服务;其中,将该指定服务发布到服务器上时,由该服务中的所述第一代码执行将该指定服务注册到所述服务器的逻辑,以使得服务器在接收到访问所述指定服务的地址的请求时,将该请求映射到该指定服务。
可选地,所述服务生成模板中还配置有除服务地址和执行服务的业务逻辑的业务处理模块以外的所有其他代码。
可选地,该方法还包括:生成执行该指定服务的业务逻辑的业务处理模块的步骤,具体包括:预设包含多个组件的组件池,其中不同的组件完成不同的处理逻辑,且每个组件都具有接收数据的接口和发送数据的接口;根据所述指定服务的业务逻辑需求,从所述组件池中选择两个以上的组件;利用所述两个以上组件各自的接收数据的接口和发送数据的接口,将所述两个以上的组件依次串连,得到由所述两个以上组件组成的业务处理模块。
可选地,所述组件池中的每个组件符合如下约束规则:每个组件包括:事前处理单元、业务逻辑单元和事后处理单元;所述事前处理单元接收用户端的请求数据或者接收自身所在组件串连的上一级组件发送的数据,对接收到的数据进行准备处理后发送给业务逻辑单元;所述业务逻辑单元对事前处理单元发送的数据按照本组件的处理逻辑进行处理,判断是否有与自身所在组件串连的下一级的组件,是则将处理后的数据发送给下一级组件,否则将处理后的数据发送给事后处理单元;所述事后处理单元接收业务逻辑单元发送的数据或者接收自身所在组件串连的下一级组件发送的数据,对接收到数据进行收尾处理后发送给自身所在组件串连的上一级组件或者返回给所述用户端。
可选地,所述利用所述两个以上组件各自的接收数据的接口和发送数据的接口,将所述两个以上的组件依次串连,得到有所述两个以上组件组成的业务处理模块包括:将所述两个以上的组件依据业务处理需求进行排序;对于第一个组件,其事前处理单元接收用户端的请求,以及其事后处理单元将处理后的数据返回给用户端;对于每两个相邻的组件,上一级组件的业务逻辑单元的输出与下一级组件的事前处理单元对接,下一级组件的事后处理单元的输出与上一级组件的事后处理单元对接。
可选地,该方法进一步包括:提供组件扩展接口;通过所述组件扩展接口接收符合所述约束规则的组件,放入所述组件池中。
可选地,所述组件池中的每个组件符合的约束规则还包括:对于一个组件,其事前处理单元、业务逻辑单元和事后处理单元中任意两个的处理逻辑可以为空。
可选地,所述生成执行该指定服务的业务逻辑的业务处理模块的步骤进一步包括:对于由所述两个以上组件组成的业务处理模块,从串连的组件中拆除一个组件得到新的业务处理模块;或者,对于由所述两个以上组件组成的业务处理模块,在串连的组件中插入一个新组件得到新的业务处理模块。
依据本发明的另一方面,提供了一种服务开发装置,包括:模板存储单元,适于存储预设的服务生成模板;所述服务生成模板中配置有执行服务注册逻辑的第一代码;服务生成单元,适于当要生成一个指定服务时,调取所述服务生成模板,在所述服务生成模板中添加该指定服务的地址和执行该指定服务的业务逻辑的业务处理模块,生成指定服务;其中,将该指定服务发布到服务器上时,由该服务中的所述第一代码执行将该指定服务注册到所述服务器的逻辑,以使得服务器在接收到访问所述指定服务的地址的请求时,将该请求映射到该指定服务。
可选地,所述服务生成模板中还配置有除服务地址和执行服务的业务逻辑的业务处理模块以外的所有其他代码。
可选地,该装置还包括:组件池存储单元,适于存储预设的包含多个组件的组件池,其中不同的组件完成不同的处理逻辑,且每个组件都具有接收数据的接口和发送数据的接口;组件选择单元,适于根据所述指定服务的业务逻辑需求,从所述组件池中选择两个以上的组件;业务模块生成单元,适于利用所述两个以上组件各自的接收数据的接口和发送数据的接口,将所述两个以上的组件依次串连,得到由所述两个以上组件组成的业务处理模块。
可选地,所述组件池存储单元中的所述组件池中的每个组件符合如下约束规则:每个组件包括:事前处理单元、业务逻辑单元和事后处理单元;所述事前处理单元接收用户端的请求数据或者接收自身所在组件串连的上一级组件发送的数据,对接收到的数据进行准备处理后发送给业务逻辑单元;所述业务逻辑单元对事前处理单元发送的数据按照本组件的处理逻辑进行处理,判断是否有与自身所在组件串连的下一级的组件,是则将处理后的数据发送给下一级组件,否则将处理后的数据发送给事后处理单元;所述事后处理单元接收业务逻辑单元发送的数据或者接收自身所在组件串连的下一级组件发送的数据,对接收到数据进行收尾处理后发送给自身所在组件串连的上一级组件或者返回给所述用户端。
可选地,所述业务模块生成单元,适于将所述两个以上的组件依据业务处理需求进行排序;对于第一个组件,其事前处理单元接收用户端的请求,以及其事后处理单元将处理后的数据返回给用户端;对于每两个相邻的组件,上一级组件的业务逻辑单元的输出与下一级组件的事前处理单元对接,下一级组件的事后处理单元的输出与上一级组件的事后处理单元对接。
可选地,该装置进一步包括:组件扩展接口,适于接收符合所述约束规则的组件,放入所述组件池中。
可选地,所述组件池存储单元中的组件池中的每个组件符合的约束规则还包括:对于一个组件,其事前处理单元、业务逻辑单元和事后处理单元中任意两个的处理逻辑可以为空。
可选地,所述业务模块生成单元,进一步适于对于由所述两个以上组件组成的业务处理模块,从串连的组件中拆除一个组件得到新的业务处理模块;或者,对于由所述两个以上组件组成的业务处理模块,在串连的组件中插入一个新组件得到新的业务处理模块。
由上述可知,本发明的技术方案描述了基于预设的配置有执行服务注册逻辑的第一代码的服务生成模板,生成一个指定服务的服务开发方法和相应的装置,该方案通过克服现有技术中使用编写代码过程中需要处理handle处理器的问题,简化了繁琐的开发过程,提供了一种简便、规范的服务开发方法,只需要用户调取预设服务生成模板添加服务地址和业务处理模块,开发任务仅限于业务逻辑部分,缩短了开发时间,降低了开发成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种服务开发方法的流程图;
图2示出了若干个符合约束规则的组件串连示意图;
图3示出了根据本发明一个实施例的一种服务开发装置的结构示意图;以及
图4示出了根据本发明又一个实施例的一种服务开发装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种服务开发方法的流程图,如图1所示,该方法包括:
步骤S110,预设服务生成模板,服务生成模板中配置有执行服务注册逻辑的第一代码。
步骤S120,当要生成一个指定服务时,调取服务生成模板,在服务生成模板中添加该指定服务的地址和执行该指定服务的业务逻辑的业务处理模块,生成指定服务。
其中,将该指定服务发布到服务器上时,由该服务中的所述第一代码执行将该指定服务注册到所述服务器的逻辑,以使得服务器在接收到访问所述指定服务的地址的请求时,将该请求映射到该指定服务。
例如,下面列出了以Go语言编写的部分代码实现上述步骤的示例:
上述代码提供了“GetHello”和“GetWorld”的功能,具体业务逻辑实现体现在“returnc.Success(“Hello”)”和returnc.Error(“GetWorldhaserror”,1001,400)。在具体实施中,用户可根据所需服务替换上述代码中“github.com/xcodecraft/hera”为用户指定服务的地址,并将完成用户所需的执行该指定服务的业务逻辑的业务处理模块名适应性地替换上述代码中的各变量名如ApiREST、GetHello和GetWorld,并编写对应的业务逻辑。上述代码中
funcinit(){
hera.Newrouter().AddRouter(&ApiREST{})
}
部分是将该指定服务发布到服务器上时,执行将该指定服务注册到所述服务器的逻辑,以使得服务器在接收到访问所述指定服务的地址的请求时,将该请求映射到该指定服务。该注册过程可以是在服务器启动代码时自动进行,也可以根据服务特性要求服务开发方进行注册。由于服务生成模板中配置有执行服务注册逻辑的第一代码,该代码具有适配性,即使开发多个服务,也不需为每个开发的服务单独编写注册代码,克服了现有技术中的该问题。
可见,图1所示的方法通过克服现有技术中使用编写代码过程中需要处理handle处理器的问题,简化了繁琐的开发过程,提供了一种简便、规范的服务开发方法,只需要用户调取预设服务生成模板添加服务地址和业务处理模块,开发任务仅限于业务逻辑部分。因此开发者只需要把精力专注在实际的业务逻辑部分,而不需要被其他的边缘事务所缠绕,从而缩短了开发时间,降低了开发成本。
具体地,服务生成模板中还配置有除服务地址和执行服务的业务逻辑的业务处理模块以外的所有其他代码。阅读前述代码可以看出,除去用户根据需要添加或修改的服务地址、业务逻辑的业务处理模块等变量名称,还需要对上述变量进行声明,实现代码的基本逻辑。也即是说,本实施例为用户提供的服务生成模板,对于用户所需功能采用的业务处理模块是利用所述的所有其他代码进行套用而实现的。
在本发明的一个实施例中,图1所示的方法进一步包括:生成执行该指定服务的业务逻辑的业务处理模块的步骤,具体包括:预设包含多个组件的组件池,其中不同的组件完成不同的处理逻辑,且每个组件都具有接收数据的接口和发送数据的接口;根据指定服务的业务逻辑需求,从组件池中选择两个以上的组件;利用两个以上组件各自的接收数据的接口和发送数据的接口,将两个以上的组件依次串连,得到由两个以上组件组成的业务处理模块。
本实施例提供的方法,通过在预先设置的组件池中放入多个不同的组件,其中不同的组件可以完成不同的处理逻辑并具有接收数据的接口和发送数据的接口,从而使得用户可以根据自身需求从组件池中选择两个以上的组件,将其利用各自的接收数据的接口和发送数据的接口依次串连得到业务处理模块,该方法建立了规范性的组件池,使得放入组件池的组件具有相同的结构特点,可以为用户提供通过将完成所需功能的组件简单串连即可实现关联逻辑的业务模块,克服了现有技术中整合组件需要编写复杂的逻辑代码的问题,同时该组件池内的组件规范性强,适用广泛,具有兼容性好的有益效果。
具体地,组件池中的每个组件符合如下约束规则:每个组件包括:事前处理单元、业务逻辑单元和事后处理单元;事前处理单元接收用户端的请求数据或者接收自身所在组件串连的上一级组件发送的数据,对接收到的数据进行准备处理后发送给业务逻辑单元;业务逻辑单元对事前处理单元发送的数据按照本组件的处理逻辑进行处理,判断是否有与自身所在组件串连的下一级的组件,是则将处理后的数据发送给下一级组件,否则将处理后的数据发送给事后处理单元;事后处理单元接收业务逻辑单元发送的数据或者接收自身所在组件串连的下一级组件发送的数据,对接收到数据进行收尾处理后发送给自身所在组件串连的上一级组件或者返回给用户端。
更为具体地,上述方法中利用两个以上组件各自的接收数据的接口和发送数据的接口,将两个以上的组件依次串连,得到有两个以上组件组成的业务处理模块包括:将两个以上的组件依据业务处理需求进行排序;对于第一个组件,其事前处理单元接收用户端的请求,以及其事后处理单元将处理后的数据返回给用户端;对于每两个相邻的组件,上一级组件的业务逻辑单元的输出与下一级组件的事前处理单元对接,下一级组件的事后处理单元的输出与上一级组件的事后处理单元对接。
图2示出了若干个符合约束规则的组件串连示意图。如图2所示,如果根据用户的选择,需要选择组件池中的组件A、组件B和组件C,且这三个组件具有业务逻辑上的关联性,则以图中方式进行串连。其中用户所需的业务模块可能包含多个组件,图中为描述组件间的连接关系和逻辑关系只示出了上述组件。可以看出,三个组件中组件A位于最前端,首先由组件A的事前处理单元接收到数据。如果组件A位于业务模块的最前端,则接收到的为用户端的请求数据;否则接收组件A串连的上一级组件发送的数据。接收到该数据后,事前处理单元对其进行准备处理,例如在一种具体实施方式中,数据中包含名为request、response的参数变量,具体包含用户ID、用户账户余额、用户充值金额等信息,需要对其进行处理,其特点是不需要调用其他信息。事前处理单元对接收到的数据进行准备处理完成后发送给业务逻辑单元,由业务逻辑单元进行具体的功能实现,按照组件A的处理逻辑进行处理,例如更改用户账户余额的键值等。在功能实现后,业务逻辑单元判断是否有与组件A串连的下一级的组件,在此例中组件A串连下一级组件B,则将处理后的数据发送给组件B。类似地,组件B执行相应的操作。图中组件C为业务逻辑模块的最末端的组件,则组件C的业务逻辑单元将处理后的数据发送给组件C的事后处理单元,事后处理单元接收业务逻辑单元发送的数据对接收到数据进行收尾处理后发送给组件C串连的上一级组件B,组件B的事后处理单元接收到该数据进行收尾处理后发送给组件A,最终由业务逻辑模块中最前端的组件将最终数据返回给用户端。可以看出,接收数据的接口和发送数据的接口在事前处理单元和事后处理单元以上述形式进行了融合。
在本发明的一个实施例中,上述方法进一步包括:提供组件扩展接口;通过组件扩展接口接收符合约束规则的组件,放入组件池中。
由于本实施例中提供了组件拓展接口,可以由更多的开发人员开发实现不同业务功能,即包含不同业务逻辑的组件,通过上述实施例中描述的约束规则进行筛选,将符合约束规则的组件放入组件池中,既可以更好地满足用户的多种需求,也保证了组件的规范性和适用性。
在本发明的一个实施例中,上述方法中,对于一个组件,其事前处理单元、业务逻辑单元和事后处理单元中任意两个的处理逻辑可以为空。
例如,在具体实施中,业务处理模块用于日志分级的处理。日志包括debug、info、warn、error四个级别,特别地,该业务处理模块在记录日志时可以记录数据处理所消耗的时间,可以通过info日志进行记录。此时,完成记录请求耗时功能的组件可以被设置在业务处理模块的最前端,当接收到用户端的数据时,采用事前处理单元记录下时间,业务逻辑单元并不进行实际的处理,而事后处理单元在该业务处理模块的其他组件对数据处理完成后接收到其后一个组件传来的数据,再次记录下时间,通过上述记录时间的时间差即可得知本次数据处理的耗时,其中业务逻辑单元不需要设置处理逻辑。又例如,XSS(CrossSiteScripting,跨站脚本攻击)过滤组件的事前处理单元和事后处理单元中都不需要对数据进行准备处理或收尾处理,其中的处理逻辑也可以为空。类似地,在实际应用中可以对组件中各单元的处理逻辑进行相应的设置。
在本发明的一个实施例中,上述方法进一步包括:对于由两个以上组件组成的业务处理模块,从串连的组件中拆除一个组件得到新的业务处理模块;或者,对于由两个以上组件组成的业务处理模块,在串连的组件中插入一个新组件得到新的业务处理模块。
由于本发明的技术方案提供的各组件串连规则简单,对已由多个组件组成的业务处理模块,从串连的组件中拆除一个组件得到新的业务处理模块或在串连的组件中插入一个新组件得到新的业务处理模块的实现是非常容易的,扩展性很强。
图3示出了根据本发明一个实施例的一种服务开发装置的结构示意图,如图3所示,服务开发装置300包括:
模板存储单元310,适于存储预设的服务生成模板;服务生成模板中配置有执行服务注册逻辑的第一代码。
服务生成单元320,适于当要生成一个指定服务时,调取服务生成模板,在服务生成模板中添加该指定服务的地址和执行该指定服务的业务逻辑的业务处理模块,生成指定服务。
其中,将该指定服务发布到服务器上时,由该服务中的第一代码执行将该指定服务注册到服务器的逻辑,以使得服务器在接收到访问指定服务的地址的请求时,将该请求映射到该指定服务。该注册过程可以是在服务器启动代码时自动进行,也可以根据服务特性要求服务开发方进行注册。由于服务生成模板中配置有执行服务注册逻辑的第一代码,该代码具有适配性,即使开发多个服务,也不需为每个开发的服务单独编写注册代码,克服了现有技术中的该问题。
可见,图3所示的装置通过克服现有技术中使用编写代码过程中需要处理handle处理器的问题,简化了繁琐的开发过程,提供了一种简便、规范的服务开发方法,只需要用户调取预设服务生成模板添加服务地址和业务处理模块,开发任务仅限于业务逻辑部分,缩短了开发时间,降低了开发成本。
在本发明的一个实施例中,图3所示的装置中,服务生成模板中还配置有除服务地址和执行服务的业务逻辑的业务处理模块以外的所有其他代码。
图4示出了根据本发明又一个实施例的一种服务开发装置的结构示意图。如图4所示,服务开发装置400包括:
模板存储单元410,适于存储预设的服务生成模板;服务生成模板中配置有执行服务注册逻辑的第一代码。
服务生成单元420,适于当要生成一个指定服务时,调取服务生成模板,在服务生成模板中添加该指定服务的地址和执行该指定服务的业务逻辑的业务处理模块,生成指定服务.
组件池存储单元430,适于存储预设的包含多个组件的组件池,其中不同的组件完成不同的处理逻辑,且每个组件都具有接收数据的接口和发送数据的接口;
组件选择单元440,适于根据指定服务的业务逻辑需求,从组件池中选择两个以上的组件;
业务模块生成单元450,适于利用两个以上组件各自的接收数据的接口和发送数据的接口,将两个以上的组件依次串连,得到由两个以上组件组成的业务处理模块。
具体地,组件池存储单元430中的组件池中的每个组件符合如下约束规则:每个组件包括:事前处理单元、业务逻辑单元和事后处理单元;事前处理单元接收用户端的请求数据或者接收自身所在组件串连的上一级组件发送的数据,对接收到的数据进行准备处理后发送给业务逻辑单元;业务逻辑单元对事前处理单元发送的数据按照本组件的处理逻辑进行处理,判断是否有与自身所在组件串连的下一级的组件,是则将处理后的数据发送给下一级组件,否则将处理后的数据发送给事后处理单元;事后处理单元接收业务逻辑单元发送的数据或者接收自身所在组件串连的下一级组件发送的数据,对接收到数据进行收尾处理后发送给自身所在组件串连的上一级组件或者返回给用户端。
更为具体地,业务模块生成单元450,适于将两个以上的组件依据业务处理需求进行排序;对于第一个组件,其事前处理单元接收用户端的请求,以及其事后处理单元将处理后的数据返回给用户端;对于每两个相邻的组件,上一级组件的业务逻辑单元的输出与下一级组件的事前处理单元对接,下一级组件的事后处理单元的输出与上一级组件的事后处理单元对接。
在本发明的一个实施例中,上述装置进一步包括:组件扩展接口,适于接收符合约束规则的组件,放入组件池中。
在本发明的一个实施例中,上述装置中,组件池存储单元中的组件池中的每个组件符合的约束规则还包括:对于一个组件,其事前处理单元、业务逻辑单元和事后处理单元中任意两个的处理逻辑可以为空。
在本发明的一个实施例中,上述装置中,业务模块生成单元,进一步适于对于由两个以上组件组成的业务处理模块,从串连的组件中拆除一个组件得到新的业务处理模块;或者,对于由两个以上组件组成的业务处理模块,在串连的组件中插入一个新组件得到新的业务处理模块。
需要说明的是,上述各装置实施例与前文对应方法的各实施例具体实施方式相同,上文已详细说明,在此不再赘述。
综上所述,本发明的技术方案描述了基于预设的配置有执行服务注册逻辑的第一代码的服务生成模板,生成一个指定服务的服务开发方法和相应的装置,该方案通过克服现有技术中使用编写代码过程中需要处理handle处理器的问题,简化了繁琐的开发过程,提供了一种简便、规范的服务开发方法,只需要用户调取预设服务生成模板添加服务地址和业务处理模块,开发任务仅限于业务逻辑部分,缩短了开发时间,降低了开发成本。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的服务开发装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种服务开发方法,其中,该方法包括:
预设服务生成模板;所述服务生成模板中配置有执行服务注册逻辑的第一代码;
当要生成一个指定服务时,调取所述服务生成模板,在所述服务生成模板中添加该指定服务的地址和执行该指定服务的业务逻辑的业务处理模块,生成指定服务;
其中,将该指定服务发布到服务器上时,由该服务中的所述第一代码执行将该指定服务注册到所述服务器的逻辑,以使得服务器在接收到访问所述指定服务的地址的请求时,将该请求映射到该指定服务。
A2、如A1所述的方法,其中,
所述服务生成模板中还配置有除服务地址和执行服务的业务逻辑的业务处理模块以外的所有其他代码。
A3、如A1所述的方法,其中,该方法还包括:生成执行该指定服务的业务逻辑的业务处理模块的步骤,具体包括:
预设包含多个组件的组件池,其中不同的组件完成不同的处理逻辑,且每个组件都具有接收数据的接口和发送数据的接口;
根据所述指定服务的业务逻辑需求,从所述组件池中选择两个以上的组件;
利用所述两个以上组件各自的接收数据的接口和发送数据的接口,将所述两个以上的组件依次串连,得到由所述两个以上组件组成的业务处理模块。
A4、如A3所述的方法,其中,所述组件池中的每个组件符合如下约束规则:
每个组件包括:事前处理单元、业务逻辑单元和事后处理单元;
所述事前处理单元接收用户端的请求数据或者接收自身所在组件串连的上一级组件发送的数据,对接收到的数据进行准备处理后发送给业务逻辑单元;
所述业务逻辑单元对事前处理单元发送的数据按照本组件的处理逻辑进行处理,判断是否有与自身所在组件串连的下一级的组件,是则将处理后的数据发送给下一级组件,否则将处理后的数据发送给事后处理单元;
所述事后处理单元接收业务逻辑单元发送的数据或者接收自身所在组件串连的下一级组件发送的数据,对接收到数据进行收尾处理后发送给自身所在组件串连的上一级组件或者返回给所述用户端。
A5、如A4所述的方法,其中,所述利用所述两个以上组件各自的接收数据的接口和发送数据的接口,将所述两个以上的组件依次串连,得到有所述两个以上组件组成的业务处理模块包括:
将所述两个以上的组件依据业务处理需求进行排序;
对于第一个组件,其事前处理单元接收用户端的请求,以及其事后处理单元将处理后的数据返回给用户端;
对于每两个相邻的组件,上一级组件的业务逻辑单元的输出与下一级组件的事前处理单元对接,下一级组件的事后处理单元的输出与上一级组件的事后处理单元对接。
A6、如A4所述的方法,其中,该方法进一步包括:
提供组件扩展接口;
通过所述组件扩展接口接收符合所述约束规则的组件,放入所述组件池中。
A7、如A4所述的方法,其中,所述组件池中的每个组件符合的约束规则还包括:
对于一个组件,其事前处理单元、业务逻辑单元和事后处理单元中任意两个的处理逻辑可以为空。
A8、如A3所述的方法,其中,所述生成执行该指定服务的业务逻辑的业务处理模块的步骤进一步包括:
对于由所述两个以上组件组成的业务处理模块,从串连的组件中拆除一个组件得到新的业务处理模块;
或者,
对于由所述两个以上组件组成的业务处理模块,在串连的组件中插入一个新组件得到新的业务处理模块。
本发明还公开了B9、一种服务开发装置,其中,该装置包括:
模板存储单元,适于存储预设的服务生成模板;所述服务生成模板中配置有执行服务注册逻辑的第一代码;
服务生成单元,适于当要生成一个指定服务时,调取所述服务生成模板,在所述服务生成模板中添加该指定服务的地址和执行该指定服务的业务逻辑的业务处理模块,生成指定服务;
其中,将该指定服务发布到服务器上时,由该服务中的所述第一代码执行将该指定服务注册到所述服务器的逻辑,以使得服务器在接收到访问所述指定服务的地址的请求时,将该请求映射到该指定服务。
B10、如B9所述的装置,其中,
所述服务生成模板中还配置有除服务地址和执行服务的业务逻辑的业务处理模块以外的所有其他代码。
B11、如B9所述的装置,其中,该装置还包括:
组件池存储单元,适于存储预设的包含多个组件的组件池,其中不同的组件完成不同的处理逻辑,且每个组件都具有接收数据的接口和发送数据的接口;
组件选择单元,适于根据所述指定服务的业务逻辑需求,从所述组件池中选择两个以上的组件;
业务模块生成单元,适于利用所述两个以上组件各自的接收数据的接口和发送数据的接口,将所述两个以上的组件依次串连,得到由所述两个以上组件组成的业务处理模块。
B12、如B11所述的装置,其中,所述组件池存储单元中的所述组件池中的每个组件符合如下约束规则:
每个组件包括:事前处理单元、业务逻辑单元和事后处理单元;
所述事前处理单元接收用户端的请求数据或者接收自身所在组件串连的上一级组件发送的数据,对接收到的数据进行准备处理后发送给业务逻辑单元;
所述业务逻辑单元对事前处理单元发送的数据按照本组件的处理逻辑进行处理,判断是否有与自身所在组件串连的下一级的组件,是则将处理后的数据发送给下一级组件,否则将处理后的数据发送给事后处理单元;
所述事后处理单元接收业务逻辑单元发送的数据或者接收自身所在组件串连的下一级组件发送的数据,对接收到数据进行收尾处理后发送给自身所在组件串连的上一级组件或者返回给所述用户端。
B13、如B12所述的装置,其中,
所述业务模块生成单元,适于将所述两个以上的组件依据业务处理需求进行排序;对于第一个组件,其事前处理单元接收用户端的请求,以及其事后处理单元将处理后的数据返回给用户端;对于每两个相邻的组件,上一级组件的业务逻辑单元的输出与下一级组件的事前处理单元对接,下一级组件的事后处理单元的输出与上一级组件的事后处理单元对接。
B14、如B12所述的装置,其中,该装置进一步包括:
组件扩展接口,适于接收符合所述约束规则的组件,放入所述组件池中。
B15、如B12所述的装置,其中,所述组件池存储单元中的组件池中的每个组件符合的约束规则还包括:
对于一个组件,其事前处理单元、业务逻辑单元和事后处理单元中任意两个的处理逻辑可以为空。
B16、如B11所述的装置,其中,
所述业务模块生成单元,进一步适于对于由所述两个以上组件组成的业务处理模块,从串连的组件中拆除一个组件得到新的业务处理模块;或者,对于由所述两个以上组件组成的业务处理模块,在串连的组件中插入一个新组件得到新的业务处理模块。
Claims (10)
1.一种服务开发方法,其中,该方法包括:
预设服务生成模板;所述服务生成模板中配置有执行服务注册逻辑的第一代码;
当要生成一个指定服务时,调取所述服务生成模板,在所述服务生成模板中添加该指定服务的地址和执行该指定服务的业务逻辑的业务处理模块,生成指定服务;
其中,将该指定服务发布到服务器上时,由该服务中的所述第一代码执行将该指定服务注册到所述服务器的逻辑,以使得服务器在接收到访问所述指定服务的地址的请求时,将该请求映射到该指定服务。
2.如权利要求1所述的方法,其中,
所述服务生成模板中还配置有除服务地址和执行服务的业务逻辑的业务处理模块以外的所有其他代码。
3.如权利要求1所述的方法,其中,该方法还包括:生成执行该指定服务的业务逻辑的业务处理模块的步骤,具体包括:
预设包含多个组件的组件池,其中不同的组件完成不同的处理逻辑,且每个组件都具有接收数据的接口和发送数据的接口;
根据所述指定服务的业务逻辑需求,从所述组件池中选择两个以上的组件;
利用所述两个以上组件各自的接收数据的接口和发送数据的接口,将所述两个以上的组件依次串连,得到由所述两个以上组件组成的业务处理模块。
4.如权利要求3所述的方法,其中,所述组件池中的每个组件符合如下约束规则:
每个组件包括:事前处理单元、业务逻辑单元和事后处理单元;
所述事前处理单元接收用户端的请求数据或者接收自身所在组件串连的上一级组件发送的数据,对接收到的数据进行准备处理后发送给业务逻辑单元;
所述业务逻辑单元对事前处理单元发送的数据按照本组件的处理逻辑进行处理,判断是否有与自身所在组件串连的下一级的组件,是则将处理后的数据发送给下一级组件,否则将处理后的数据发送给事后处理单元;
所述事后处理单元接收业务逻辑单元发送的数据或者接收自身所在组件串连的下一级组件发送的数据,对接收到数据进行收尾处理后发送给自身所在组件串连的上一级组件或者返回给所述用户端。
5.如权利要求4所述的方法,其中,所述利用所述两个以上组件各自的接收数据的接口和发送数据的接口,将所述两个以上的组件依次串连,得到有所述两个以上组件组成的业务处理模块包括:
将所述两个以上的组件依据业务处理需求进行排序;
对于第一个组件,其事前处理单元接收用户端的请求,以及其事后处理单元将处理后的数据返回给用户端;
对于每两个相邻的组件,上一级组件的业务逻辑单元的输出与下一级组件的事前处理单元对接,下一级组件的事后处理单元的输出与上一级组件的事后处理单元对接。
6.一种服务开发装置,其中,该装置包括:
模板存储单元,适于存储预设的服务生成模板;所述服务生成模板中配置有执行服务注册逻辑的第一代码;
服务生成单元,适于当要生成一个指定服务时,调取所述服务生成模板,在所述服务生成模板中添加该指定服务的地址和执行该指定服务的业务逻辑的业务处理模块,生成指定服务;
其中,将该指定服务发布到服务器上时,由该服务中的所述第一代码执行将该指定服务注册到所述服务器的逻辑,以使得服务器在接收到访问所述指定服务的地址的请求时,将该请求映射到该指定服务。
7.如权利要求6所述的装置,其中,
所述服务生成模板中还配置有除服务地址和执行服务的业务逻辑的业务处理模块以外的所有其他代码。
8.如权利要求6所述的装置,其中,该装置还包括:
组件池存储单元,适于存储预设的包含多个组件的组件池,其中不同的组件完成不同的处理逻辑,且每个组件都具有接收数据的接口和发送数据的接口;
组件选择单元,适于根据所述指定服务的业务逻辑需求,从所述组件池中选择两个以上的组件;
业务模块生成单元,适于利用所述两个以上组件各自的接收数据的接口和发送数据的接口,将所述两个以上的组件依次串连,得到由所述两个以上组件组成的业务处理模块。
9.如权利要求8所述的装置,其中,所述组件池存储单元中的所述组件池中的每个组件符合如下约束规则:
每个组件包括:事前处理单元、业务逻辑单元和事后处理单元;
所述事前处理单元接收用户端的请求数据或者接收自身所在组件串连的上一级组件发送的数据,对接收到的数据进行准备处理后发送给业务逻辑单元;
所述业务逻辑单元对事前处理单元发送的数据按照本组件的处理逻辑进行处理,判断是否有与自身所在组件串连的下一级的组件,是则将处理后的数据发送给下一级组件,否则将处理后的数据发送给事后处理单元;
所述事后处理单元接收业务逻辑单元发送的数据或者接收自身所在组件串连的下一级组件发送的数据,对接收到数据进行收尾处理后发送给自身所在组件串连的上一级组件或者返回给所述用户端。
10.如权利要求9所述的装置,其中,
所述业务模块生成单元,适于将所述两个以上的组件依据业务处理需求进行排序;对于第一个组件,其事前处理单元接收用户端的请求,以及其事后处理单元将处理后的数据返回给用户端;对于每两个相邻的组件,上一级组件的业务逻辑单元的输出与下一级组件的事前处理单元对接,下一级组件的事后处理单元的输出与上一级组件的事后处理单元对接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510641959.8A CN105138342B (zh) | 2015-09-30 | 2015-09-30 | 一种服务开发方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510641959.8A CN105138342B (zh) | 2015-09-30 | 2015-09-30 | 一种服务开发方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105138342A true CN105138342A (zh) | 2015-12-09 |
CN105138342B CN105138342B (zh) | 2019-03-05 |
Family
ID=54723700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510641959.8A Active CN105138342B (zh) | 2015-09-30 | 2015-09-30 | 一种服务开发方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138342B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105847231A (zh) * | 2016-02-23 | 2016-08-10 | 乐视体育文化产业发展(北京)有限公司 | 服务发布方法、装置及系统 |
CN109905446A (zh) * | 2017-12-11 | 2019-06-18 | 财付通支付科技有限公司 | 一种业务处理方法、服务器和计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114226A (zh) * | 2007-08-28 | 2008-01-30 | 北京中企开源信息技术有限公司 | 一种基于模型组件的代码自动生成装置、系统及方法 |
CN102087597A (zh) * | 2011-02-14 | 2011-06-08 | 浪潮通信信息系统有限公司 | 一种基于j2ee和构件集的可视化开发平台 |
US20140223342A1 (en) * | 2005-05-13 | 2014-08-07 | Rockwell Automation Technologies, Inc. | Automatic user interface generation |
-
2015
- 2015-09-30 CN CN201510641959.8A patent/CN105138342B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140223342A1 (en) * | 2005-05-13 | 2014-08-07 | Rockwell Automation Technologies, Inc. | Automatic user interface generation |
CN101114226A (zh) * | 2007-08-28 | 2008-01-30 | 北京中企开源信息技术有限公司 | 一种基于模型组件的代码自动生成装置、系统及方法 |
CN102087597A (zh) * | 2011-02-14 | 2011-06-08 | 浪潮通信信息系统有限公司 | 一种基于j2ee和构件集的可视化开发平台 |
Non-Patent Citations (1)
Title |
---|
U013401219: "beego入门教程", 《HTTP://WWW.TH7.CN/PROGRAM/GO/201508/539038.SHTML》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105847231A (zh) * | 2016-02-23 | 2016-08-10 | 乐视体育文化产业发展(北京)有限公司 | 服务发布方法、装置及系统 |
CN109905446A (zh) * | 2017-12-11 | 2019-06-18 | 财付通支付科技有限公司 | 一种业务处理方法、服务器和计算机存储介质 |
CN109905446B (zh) * | 2017-12-11 | 2022-05-17 | 财付通支付科技有限公司 | 一种业务处理方法、服务器和计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105138342B (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
US10083394B1 (en) | Neural processing engine and architecture using the same | |
CN110634530B (zh) | 芯片的测试系统和测试方法 | |
CN109062617A (zh) | 一种支持多类型设备的平台的应用方法、移动终端 | |
US9760348B2 (en) | Verification of a dataflow representation of a program through static type-checking | |
CN105204917B (zh) | 在应用程序启动时加载配置文件的方法及装置 | |
CN105068855A (zh) | 一种编译安卓包开发文件的方法、服务器和系统 | |
CN102446100B (zh) | 用于数据类型的类型和长度抽象的系统和方法 | |
CN112765023A (zh) | 测试用例生成方法、装置 | |
CN105471968A (zh) | 一种数据交换方法、系统以及数据平台服务器 | |
CN103838626A (zh) | 一种处理串行任务的数据处理装置及方法 | |
US10387124B2 (en) | System and method for creating domain specific language | |
CN111427578B (zh) | 一种数据转换方法、装置及设备 | |
CN105045789A (zh) | 一种游戏服务器数据库缓存方法及系统 | |
CN110737631A (zh) | 一种基于Flink引擎的数据解析方法及装置 | |
CN111767217A (zh) | Js单元测试案例生成方法及装置 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN105138342A (zh) | 一种服务开发方法和装置 | |
CN109558121A (zh) | 接口驱动程序的开发方法、装置、设备及存储介质 | |
CN103559204A (zh) | 处理数据库操作请求的方法、设备和系统 | |
CN105278956A (zh) | 一种业务处理模块生成方法和装置 | |
CN111459810A (zh) | 构建应用程序的方法、编程设备和计算机可读存储介质 | |
CN105550050A (zh) | 硬件通信的方法及装置 | |
CN104899316A (zh) | 游戏数据的序列化与反序列化处理方法及装置 | |
CN114327941A (zh) | 一种服务提供方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220715 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |