CN110413333B - 基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置 - Google Patents
基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置 Download PDFInfo
- Publication number
- CN110413333B CN110413333B CN201810401486.8A CN201810401486A CN110413333B CN 110413333 B CN110413333 B CN 110413333B CN 201810401486 A CN201810401486 A CN 201810401486A CN 110413333 B CN110413333 B CN 110413333B
- Authority
- CN
- China
- Prior art keywords
- module
- calling
- nodejs
- powershell
- edgejs
- 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.)
- Expired - Fee Related
Links
- 238000007726 management method Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000008859 change Effects 0.000 claims description 16
- 230000006870 function Effects 0.000 description 96
- 238000005516 engineering process Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置,装置包括NodeJS模块、EdgeJS模块和PowerShell模块。方法包括:NodeJS模块接收微服务客户端发送的调用请求消息,并根据调用请求消息对调用函数进行检测;若调用函数为Windows系统服务资源,则将调用请求消息转发给EdgeJS模块;EdgeJS模块检查与调用函数对应的PowerShell模块是否已经实例化;若未实例化,则对poweshell模块进行实例化,并将实例化数据进行缓存;若已经实例化,则将调用函数及参数信息发送给PowerShell模块;PowerShell模块根据调用函数及参数信息加载调用函数,并将调用结果数据通过EdgeJS模块和NodeJS模块返回给微服务客户端,完成Windows系统的微服务管理。本发明的方法和装置有效提高了微服务功能交付的高效性、可靠性、可扩展性及可维护性。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置。
背景技术
微服务用于服务一个或者一组相对较小且独立的功能单元,是用户可以感知的最小功能集。微服务架构是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。
微服务是目前比较流行的后台架构方式,在企业级信息管理方案中广泛应用。使用微服务围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。微服务架构大多基于UNIX/LINUX平台或者使用跨平台技术进行开发,而单独作用于Windows系统和主机的不多,尤其是在Windows桌面服务领域。NodeJS是一个JavaScript运行平台,通过使用NodeJS跨平台方案,结合Windows系统提供的PowerShell平台接口,可以使开发人员以现有的技术积累完成对Windows系统的微服务化管理。
现有技术的基于NodeJS和PowerShell的Windows系统的微服务管理方法,在NodeJS通过PowerShell调用Windows系统服务资源时,每次调用都需要重新实例化,导致调用响应缓慢,通过微服务交付的功能可靠性不足,用户体验差。
发明内容
本发明的实施例提供一种基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置,用以解决在NodeJS通过PowerShell调用Windows系统服务资源时,调用响应缓慢,通过微服务交付的功能可靠性不足,用户体验差的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种基于NodeJS和PowerShell的Windows系统的微服务管理方法,应用于基于NodeJS和PowerShell的Windows系统的微服务管理装置,所述装置包括NodeJS模块、EdgeJS模块和PowerShell模块;
所述方法包括:
NodeJS模块接收微服务客户端发送的调用请求消息,所述调用请求消息包括调用函数及参数信息;
NodeJS模块根据所述调用请求消息对调用函数进行检测;
若所述调用函数为Windows系统服务资源,NodeJS模块则将所述调用请求消息转发给EdgeJS模块;
EdgeJS模块检查与调用函数对应的PowerShell模块是否已经实例化;
若未实例化,EdgeJS模块则对所述Powershell模块进行实例化,并将实例化数据进行缓存,以供后续快速调用;若已经实例化,EdgeJS模块则将调用函数及参数信息发送给PowerShell模块;
PowerShell模块根据调用函数及参数信息加载调用函数,并将调用结果数据回传给EdgeJS模块;
EdgeJS模块将收到的所述调用结果数据再回传给NodeJS模块;
NodeJS模块再将所述调用结果数据返回给微服务客户端。
在第一方面的第一种可能的实现方式中,所述调用请求消息还包括客户端标识信息;在所述NodeJS模块根据所述调用请求消息对调用函数进行检测之前,还包括:
NodeJS模块根据客户端标识信息和NodeJS模块本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
在第一方面的第二种可能的实现方式中,在所述NodeJS模块根据所述调用请求消息对调用函数进行检测之后,还包括:
若所述调用函数不存在,则向微服务客户端返回调用错误信息。
在第一方面的第三种可能的实现方式中,还包括:
PowerShell模块基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
EdgeJS模块基于微服务客户端的功能需求变化对Powershell模块的实例化数据进行维护。
第二方面,本发明实施例提供一种基于NodeJS和PowerShell的Windows系统的微服务管理装置,包括:NodeJS模块、EdgeJS模块和PowerShell模块;
所述NodeJS模块用于接收微服务客户端发送的调用请求消息,所述调用请求消息包括调用函数及参数信息;
所述NodeJS模块还用于根据所述调用请求消息对调用函数进行检测;
若所述调用函数为Windows系统服务资源,所述NodeJS模块则还用于将所述调用请求消息转发给所述EdgeJS模块;
所述EdgeJS模块用于检查与调用函数对应的PowerShell模块是否已经实例化;
若未实例化,所述EdgeJS模块则还用于对所述Powershell模块进行实例化,并将实例化数据进行缓存;若已经实例化,所述EdgeJS模块则还用于将调用函数及参数信息发送给所述PowerShell模块;
所述PowerShell模块用于根据调用函数及参数信息加载调用函数,并将调用结果数据回传给所述EdgeJS模块;
所述EdgeJS模块还用于将收到的所述调用结果数据再回传给所述NodeJS模块;
所述NodeJS模块还用于再将所述调用结果数据返回给微服务客户端。
在第二方面的第一种可能的实现方式中,所述调用请求消息还包括客户端标识信息,在所述NodeJS模块用于根据所述调用请求消息对调用函数进行检测之前,所述NodeJS模块还用于根据客户端标识信息和NodeJS模块本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
在第二方面的第二种可能的实现方式中,在所述NodeJS模块用于根据所述调用请求消息对调用函数进行检测之后,若所述调用函数不存在,则所述NodeJS模块还用于向微服务客户端返回调用错误信息。
在第二方面的第三种可能的实现方式中,所述PowerShell模块还用于基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述EdgeJS模块还用于基于微服务客户端的功能需求变化对Powershell模块的实例化数据进行维护。
本发明实施例提供的技术方案,NodeJS模块在接收到微服务客户端发送的调用请求消息后,首先根据调用请求消息对调用函数进行检测,若调用函数为Windows系统服务资源,则将调用请求消息转发给EdgeJS模块,EdgeJS模块检查与调用函数对应的PowerShell模块是否已经实例化,若未实例化,则对PowerShell模块进行实例化,并将实例化数据进行缓存,若已经实例化,则将调用函数及参数信息发送给PowerShell模块,PowerShell模块根据调用函数及参数信息加载调用函数,并将调用结果数据通过EdgeJS模块和NodeJS模块返回给微服务客户端,完成Windows系统的微服务管理。本发明实施例提供的技术方案,通过改进的EdgeJS调用方法,预先对PowerShell模块实例化,并保存实例化数据,以供使用NodeJS平台的微服务客户端通过EdgeJS模块调用Windows服务资源,不必每次调用都重新实例化,重新加载模块和文件,不但能够解决NodeJS通过PowerShell调用Windows系统服务资源时,调用响应缓慢,通过微服务交付的功能可靠性不足,用户体验差的问题,而且能够有效提高微服务功能交付的高效性、可靠性、可扩展性及可维护性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于NodeJS和PowerShell的Windows系统的微服务管理方法实施例的流程图;
图2为本发明的一个应用实施例的流程图;
图3为本发明装置实施例的结构示意图;
图4为本发明另一个实施例提供的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的方法主要是基于NodeJS结合PowerShell管理Windows系统主机的改进方案,使用EdgeJS在NodeJS平台调用PowerShell接口的基础上,改进EdgeJS的调用方法,预先实例化PowerShell模块,而不是在每次调用时进行初始化,以提高微服务的调用性能。本发明实施例的方法应用于基于NodeJS和PowerShell的Windows系统的微服务管理装置,装置包括NodeJS模块、EdgeJS模块和PowerShell模块。图1为本发明基于NodeJS和PowerShell的Windows系统的微服务管理方法实施例的流程图,如图1所示,本实施例的方法可以包括以下内容。
S101、NodeJS模块接收微服务客户端发送的调用请求消息,调用请求消息包括调用函数及参数信息。
微服务架构通常是基于UNIX/LINUX平台或者使用跨平台技术进行开发,NodeJS是一个JavaScript运行平台。微服务客户端和NodeJS模块可以运行在不同的节点设备上,也可以是运行在相同的节点设备上。虽然许多应用程序只能用Node.js编写,不过有些情况下又需要综合Node.js和.NET两者的优点。
S102、NodeJS模块根据调用请求消息对调用函数进行检测。
S103、若调用函数为Windows系统服务资源,NodeJS模块则将调用请求消息转发给EdgeJS模块。
本实施例中,Windows系统的服务资源是指可以通过PowerShell模块调用的Windows系统的服务/功能,例如,网络功能设置,文件获取等。EdgeJS是一种在进程内实现NodeJS与.NET互操作的桥接技术,可以在NodeJS里使用.NET代码和库,也可以在.NET程序里使用NodeJS的代码。通过EdgeJS模块,可以在一个进程中同时运行Node.js和.NET代码。Edge.js目前需要.NET Framework环境,因此只能运行在Windows系统上。
S104、EdgeJS模块检查与调用函数对应的PowerShell模块是否已经实例化。
Edge.js支持在Node.js程序中运行任何CLR语言的代码。Linux系统中的输入和输出通常是文本格式,各进程间易于合作,要求各个程序提供一定强度的文本解析能力。但Windows系统中,PowerShell中很多输入输出通常不是普通的文本,而是一个个对象,PowerShell中的所有的类都继承自Object(对象),且支持GetType()函数。.NETFramework中包含有异常强大的库,而Windows系统为了保证二进制层面上跨语言的兼容性,很多库都是用COM封装的,PowerShell可以直接调用这些库。
S105、若未实例化,EdgeJS模块则对Powershell模块进行实例化,并将实例化数据进行缓存,以供后续快速调用;若已经实例化,EdgeJS模块则将调用函数及参数信息发送给PowerShell模块。
在具体应用中,为了提高微服务的调用性能,可以预先实例化PowerShell模块,而不是在每次调用时才进行初始化。在微服务中维护好已经实例化的Powershell相关资源,预先加载相应模块和文件,并避免反复创建,可以大幅提升调用性能,从而提升微服务的性能。
S106、PowerShell模块根据调用函数及参数信息加载调用函数,并将调用结果数据回传给EdgeJS模块。
S107、EdgeJS模块将收到的调用结果数据再回传给NodeJS模块。
虽然Edge.js仅仅允许在Node.js和.NET之间传递一个参数,但是这个参数可能是个复杂类型的。当从Node.js请求.NET代码的时候,Edge.js可以封送所有标准的JavaScript类型:从基类型到对象和数组。当从.NET向Node.js传递数据的时候,Edge.js不但可以封送所有的基本CLR类型,而且还可以处理CLR对象实例、列表、集合和字典类型。
S108、NodeJS模块再将调用结果数据返回给微服务客户端,完成Windows系统的微服务管理。
本实施例的技术方案,基于EdgeJS在NodeJS和.NET之间互操作的桥梁作用,预先实例化PowerShell模块,将实例化数据进行缓存,而不是在每次调用时进行初始化,解决了在NodeJS通过PowerShell调用Windows系统服务资源时,调用响应缓慢,通过微服务交付的功能可靠性不足,用户体验差的问题,有效提高了微服务功能交付的高效性、可靠性、可扩展性及可维护性。
如上所述的方法,优选地,调用请求消息还包括客户端标识信息,在NodeJS模块根据调用请求消息对调用函数进行检测之前,还包括:NodeJS模块根据客户端标识信息和NodeJS模块本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
NodeJS模块根据存储的微服务路由功能表,验证调用客户端身份信息,并判断调用客户端权限,如果权限不足,则返回鉴权失败信息给调用客户端。
如上所述的方法,其中,在NodeJS模块根据调用请求消息对调用函数进行检测之后,还包括:若调用函数不存在,则向微服务客户端返回调用错误信息。
对调用函数进行检测包括检测调用参数的数量、类型及限制条件,检测失败,则返回参数错误信息。
NodeJS模块根据调用请求消息对调用函数进行检测,若调用函数不存在,则向微服务客户端返回调用错误信息。
如上所述的方法,优选地,还包括:
PowerShell模块基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
在具体应用中,PowerShell模块可以基于项目功能需求提供满足功能的函数接口以供管理任务调用,当客户端的功能需求变化时,PowerShell模块同样可以提供满足功能的函数接口以供管理任务调用,提高了微服务功能交付的可扩展性。
如上所述的方法,优选地,还包括:
EdgeJS模块基于微服务客户端的功能需求变化对Powershell模块的实例化数据进行维护。
系统可能缓存有大量的Powershell模块的实例化数据,当客户端的功能需求变化时,EdgeJS模块基于微服务客户端的功能需求变化对Powershell模块的实例化数据进行维护,清除废弃数据,提高了微服务功能交付的可维护性。
图2为本发明的一个应用实施例的流程图,如图2所示,本实施例是通过NodeJS结合PowerShell模块在Windows系统上创建虚拟机,本实施例的方法可以包括以下内容。
S201、将微服务调用请求发送至NodeJS微服务路由器,验证调用者身份信息,并判断调用者权限,是否为系统主机管理员,如果权限不足,则返回鉴权失败信息给调用者;否则,将对应调用路由至对应接口。
S202、NodeJS调用接口根据调用名称,将调用转发至调用函数。
在具体应用中,通常将NodeJS调用组件接口化,NodeJS调用组件可以调用PowerShell模块中的功能函数,以满足管理Windows主机的需要。对NodeJS调用组件的接口化,包括提供一致的调用接口和特定的数据格式。
S203、调用函数检测,检测调用参数的数量、类型及限制条件,检测失败,则返回参数错误信息;否则,将调用请求转发给NodeJS调用模块。
S204、EdgeJS检查对应的PowerShell模块是否实例化,如果没有实例化,则先加载动态库和PowerShell模块,并进行实例化,并将实例化数据保存在调用入口;如果已经实例化,则直接依据保持在调用入口的实例化数据,传入调用函数。
EdgeJS模块对PowerShell功能模块的预加载,并保存调用会话。EdgeJS模块是NodeJS调用PowerShell功能模块的桥梁,通过EdgeJS模块的转发作用,NodeJS代码中的调用可以转发到PowerShell解释器中,以解析调用代码,获得数据输出并传递给NodeJS的调用者,从而微服务实现对Windows主机的管理。
S205、调用函数获取参数,在Windows系统里面进行调用后,开始虚拟主机的创建,建立当前环境快照,根据参数要求创建虚拟机,创建完成之后,记录创建的主机信息,并回传给EdgeJS模块。
S206、EdgeJS模块接受函数调用结果,并将调用结果数据回传给NodeJS调用接口。
S207、NodeJS调用接口将调用结果数据返回给微服务调用者。
本实施例的技术方案,与现有技术相比,本实施例有以下优点:缩短微服务的响应时间,提高可靠性;减少系统占用资源,为主要进程提供更多的CPU时间和内存;缩短项目开发周期,使用已有的技术积累完成项目需求;增强代码可维护性,支持在线编译,调试和运行;提高代码的可重用率,松耦合的设计也可以运用到其它服务节点。
图3为本发明装置实施例的结构示意图,如图3所示,本实施例的装置可以包括:包括:NodeJS模块301、EdgeJS模块302和PowerShell模块303。其中,NodeJS模块301用于接收微服务客户端发送的调用请求消息,调用请求消息包括调用函数及参数信息和客户端标识信息;NodeJS模块301还用于根据调用请求消息对调用函数进行检测;若调用函数为Windows系统服务资源,NodeJS模块301则还用于将调用请求消息转发给EdgeJS模块302;EdgeJS模块302用于检查与调用函数对应的PowerShell模块303是否已经实例化;若未实例化,EdgeJS模块302则还用于对Powershell模块进行实例化,并将实例化数据进行保存;若已经实例化,EdgeJS模块302则还用于将调用函数及参数信息发送给PowerShell模块303;PowerShell模块303用于根据调用函数及参数信息加载调用函数,并将调用结果数据回传给EdgeJS模块302;EdgeJS模块302还用于将收到的调用结果数据再回传给NodeJS模块301;NodeJS模块301还用于再将调用结果数据返回给微服务客户端,完成Windows系统的微服务管理。
本实施例的装置可以用于执行图1所示方法实施例的方法,其实现原理和所要达到的技术效果类似,在此不再赘述。
如上所述的装置中,其中,在所述NodeJS模块301用于根据所述调用请求消息对调用函数进行检测之前,所述NodeJS模块301还用于根据客户端标识信息和NodeJS模块301本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
如上所述的装置中,其中,在所述NodeJS模块301用于根据所述调用请求消息对调用函数进行检测之后,若所述调用函数不存在,则所述NodeJS模块301还用于向微服务客户端返回调用错误信息。
优选地,如上所述的装置,所述PowerShell模块303还用于基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
优选地,如上所述的装置,所述EdgeJS模块302还用于基于微服务客户端的功能需求变化对Powershell模块的实例化数据进行维护。
本实施例的装置,其实现原理和所要达到的技术效果上文中已有论述,在此不再赘述。
图4为本发明另一个实施例提供的装置的结构示意图,如图4所示,该装置包括至少一个处理器401(例如CPU),存储器403,和至少一个通信总线404,用于实现装置之间的连接通信。处理器401用于执行存储器403中存储的可执行模块,例如计算机程序。存储器403可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
在一些实施方式中,存储器403存储了程序405,程序405可以被处理器401执行,这个程序包括执行一种基于NodeJS和PowerShell的Windows系统的微服务管理方法,该方法包括:
NodeJS模块接收微服务客户端发送的调用请求消息,所述调用请求消息包括调用函数及参数信息;
NodeJS模块根据所述调用请求消息对调用函数进行检测;
若所述调用函数为Windows系统服务资源,NodeJS模块则将所述调用请求消息转发给EdgeJS模块;
EdgeJS模块检查与调用函数对应的PowerShell模块是否已经实例化;
若未实例化,EdgeJS模块则对所述Powershell模块进行实例化,并将实例化数据进行缓存,以供后续快速调用;若已经实例化,EdgeJS模块则将调用函数及参数信息发送给PowerShell模块;
PowerShell模块根据调用函数及参数信息加载调用函数,并将调用结果数据回传给EdgeJS模块;
EdgeJS模块将收到的所述调用结果数据再回传给NodeJS模块;
NodeJS模块再将所述调用结果数据返回给微服务客户端,完成Windows系统的微服务管理。
上述执行基于NodeJS和PowerShell的Windows系统的微服务管理方法的程序,优选地,所述调用请求消息还包括客户端标识信息;在所述NodeJS模块根据所述调用请求消息对调用函数进行检测之前,还包括:
NodeJS模块根据客户端标识信息和NodeJS模块本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
上述执行基于NodeJS和PowerShell的Windows系统的微服务管理方法的程序,优选地,在所述NodeJS模块根据所述调用请求消息对调用函数进行检测之后,还包括:
若所述调用函数不存在,则向微服务客户端返回调用错误信息。
上述执行基于NodeJS和PowerShell的Windows系统的微服务管理方法的程序,优选地,还包括:
PowerShell模块基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
上述执行基于NodeJS和PowerShell的Windows系统的微服务管理方法的程序,优选地,还包括:
EdgeJS模块基于微服务客户端的功能需求变化对Powershell模块的实例化数据进行维护。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于NodeJS和PowerShell的Windows系统的微服务管理方法,其特征在于,应用于基于NodeJS和PowerShell的Windows系统的微服务管理装置,所述装置包括NodeJS模块、EdgeJS模块和PowerShell模块;
所述方法包括:
NodeJS模块接收微服务客户端发送的调用请求消息,所述调用请求消息包括调用函数及参数信息;
NodeJS模块根据所述调用请求消息对调用函数进行检测;
若所述调用函数为Windows系统服务资源,NodeJS模块则将所述调用请求消息转发给EdgeJS模块;
EdgeJS模块检查与调用函数对应的PowerShell模块是否已经实例化;
若未实例化,EdgeJS模块则对所述Powershell模块进行实例化,并将实例化数据进行缓存,以供后续快速调用;若已经实例化,EdgeJS模块则将调用函数及参数信息发送给PowerShell模块;
PowerShell模块根据调用函数及参数信息加载调用函数,并将调用结果数据回传给EdgeJS模块;
EdgeJS模块将收到的所述调用结果数据再回传给NodeJS模块;
NodeJS模块再将所述调用结果数据返回给微服务客户端。
2.如权利要求1所述的方法,其特征在于,所述调用请求消息还包括客户端标识信息;
在所述NodeJS模块根据所述调用请求消息对调用函数进行检测之前,还包括:
NodeJS模块根据客户端标识信息和NodeJS模块本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
3.如权利要求1所述的方法,其特征在于,在所述NodeJS模块根据所述调用请求消息对调用函数进行检测之后,还包括:
若所述调用函数不存在,则向微服务客户端返回调用错误信息。
4.如权利要求1所述的方法,其特征在于,还包括:
PowerShell模块基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
5.如权利要求1-4任一项所述的方法,其特征在于,还包括:
EdgeJS模块基于微服务客户端的功能需求变化对Powershell模块的实例化数据进行维护。
6.一种基于NodeJS和PowerShell的Windows系统的微服务管理装置,其特征在于,包括:NodeJS模块、EdgeJS模块和PowerShell模块;
所述NodeJS模块用于接收微服务客户端发送的调用请求消息,所述调用请求消息包括调用函数及参数信息;
所述NodeJS模块还用于根据所述调用请求消息对调用函数进行检测;
若所述调用函数为Windows系统服务资源,所述NodeJS模块则还用于将所述调用请求消息转发给所述EdgeJS模块;
所述EdgeJS模块用于检查与调用函数对应的PowerShell模块是否已经实例化;
若未实例化,所述EdgeJS模块则还用于对所述Powershell模块进行实例化,并将实例化数据进行缓存,以供后续快速调用;若已经实例化,所述EdgeJS模块则还用于将调用函数及参数信息发送给所述PowerShell模块;
所述PowerShell模块用于根据调用函数及参数信息加载调用函数,并将调用结果数据回传给所述EdgeJS模块;
所述EdgeJS模块还用于将收到的所述调用结果数据再回传给所述NodeJS模块;
所述NodeJS模块还用于再将所述调用结果数据返回给微服务客户端。
7.如权利要求6所述的装置,其特征在于,所述调用请求消息还包括客户端标识信息,在所述NodeJS模块用于根据所述调用请求消息对调用函数进行检测之前,所述NodeJS模块还用于根据客户端标识信息和NodeJS模块本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
8.如权利要求6所述的装置,其特征在于,在所述NodeJS模块用于根据所述调用请求消息对调用函数进行检测之后,若所述调用函数不存在,则所述NodeJS模块还用于向微服务客户端返回调用错误信息。
9.如权利要求6所述的装置,其特征在于,所述PowerShell模块还用于基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
10.如权利要求6-9任一项所述的装置,其特征在于,所述EdgeJS模块还用于基于微服务客户端的功能需求变化对Powershell模块的实例化数据进行维护。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810401486.8A CN110413333B (zh) | 2018-04-28 | 2018-04-28 | 基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810401486.8A CN110413333B (zh) | 2018-04-28 | 2018-04-28 | 基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413333A CN110413333A (zh) | 2019-11-05 |
CN110413333B true CN110413333B (zh) | 2022-04-22 |
Family
ID=68357067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810401486.8A Expired - Fee Related CN110413333B (zh) | 2018-04-28 | 2018-04-28 | 基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413333B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111341445B (zh) * | 2020-02-05 | 2024-04-16 | 网宿科技股份有限公司 | 微服务调用链的健康检测方法和健康检测系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092620A (zh) * | 2013-01-18 | 2013-05-08 | 浙江吉利汽车研究院有限公司杭州分公司 | 一种Microsoft Exchange Server 2010 Web服务集成开发方法 |
US9286093B1 (en) * | 2013-05-10 | 2016-03-15 | Ca, Inc. | Setting up network adaptors in a virtual machine |
CN105556475A (zh) * | 2013-08-12 | 2016-05-04 | 亚马逊技术股份有限公司 | 请求处理技术 |
CN106464736A (zh) * | 2014-10-30 | 2017-02-22 | 环球互连及数据中心公司 | 用于基于云的服务交换的实时配置和管理的互连平台 |
CN106575222A (zh) * | 2014-03-30 | 2017-04-19 | 动力应用程序公司 | Node.js应用的监测 |
CN107623729A (zh) * | 2017-09-08 | 2018-01-23 | 华为技术有限公司 | 一种缓存方法、设备及缓存服务系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694956B2 (en) * | 2010-10-14 | 2014-04-08 | Red Hat Israel, Ltd. | PowerShell cmdlets code generating tool for communicating to the web services |
US20120150685A1 (en) * | 2010-12-08 | 2012-06-14 | Microsoft Corporation | Monetizing product features as part of enforcing license terms |
US9065854B2 (en) * | 2013-10-28 | 2015-06-23 | Citrix Systems, Inc. | Systems and methods for managing a guest virtual machine executing within a virtualized environment |
US20170078452A1 (en) * | 2014-05-07 | 2017-03-16 | Optum, Inc. | Web native bridge |
US9729677B2 (en) * | 2015-04-28 | 2017-08-08 | David Wei Ge | Method of adding client server automation to computer languages for cloud computing |
US20170171034A1 (en) * | 2015-12-15 | 2017-06-15 | Microsoft Technology Licensing, Llc | Dynamic/on-demand packaging as part of deployment |
-
2018
- 2018-04-28 CN CN201810401486.8A patent/CN110413333B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092620A (zh) * | 2013-01-18 | 2013-05-08 | 浙江吉利汽车研究院有限公司杭州分公司 | 一种Microsoft Exchange Server 2010 Web服务集成开发方法 |
US9286093B1 (en) * | 2013-05-10 | 2016-03-15 | Ca, Inc. | Setting up network adaptors in a virtual machine |
CN105556475A (zh) * | 2013-08-12 | 2016-05-04 | 亚马逊技术股份有限公司 | 请求处理技术 |
CN106575222A (zh) * | 2014-03-30 | 2017-04-19 | 动力应用程序公司 | Node.js应用的监测 |
CN106464736A (zh) * | 2014-10-30 | 2017-02-22 | 环球互连及数据中心公司 | 用于基于云的服务交换的实时配置和管理的互连平台 |
CN107623729A (zh) * | 2017-09-08 | 2018-01-23 | 华为技术有限公司 | 一种缓存方法、设备及缓存服务系统 |
Non-Patent Citations (7)
Title |
---|
Edge.js: .NET and Node.js in-process;Tomasz Janczuk;《https://gitee.com/huoxd/edge》;20130504;第1-28页 * |
Edge.js:让.NET和Node.js代码比翼齐飞;张善友;《https://www.cnblogs.com/shanyou/p/3325249.html》;20130916;第1-3页 * |
Edge实现NodeJS与.NET互操作(包括UI界面示例);kimmking;《https://blog.csdn.net/kimmking/article/details/42708049》;20150114;第1-5页 * |
Execute Powershell script from Node.js;exceptionshub官网;《https://exceptionshub.com/execute-powershell-script-from-node-js.html》;20171120;第1-2页 * |
Run PowerShell in node.js;dfinke;《https://github.com/dfinke/edge-powershell》;20130402;第1-4页 * |
使用Edge.js,在JavaScript中调用C# .Net;yushulx;《https://blog.csdn.net/yushulx/article/details/40537331》;20141028;第1-3页 * |
好厉害的库edge.js!实现C#与node.js互操作;lee576;《https://blog.csdn.net/lee576/article/details/51028130》;20160331;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110413333A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590072B (zh) | 一种应用开发和测试的方法和装置 | |
US11716264B2 (en) | In situ triggered function as a service within a service mesh | |
CN115328663B (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
US20210389970A1 (en) | Vnf lifecycle management method and apparatus | |
EP3313023A1 (en) | Life cycle management method and apparatus | |
CN111221618B (zh) | 一种容器化虚拟网络功能的部署方法和装置 | |
CN113127192B (zh) | 一种多个服务共享同一个gpu的方法、系统、设备及介质 | |
CN107025135B (zh) | Docker容器内应用进程管理方法、装置和介质 | |
CN112783570B (zh) | 基于服务网格的应用迁移方法、系统和介质 | |
US11099915B2 (en) | Optimizing startup time for event-driven functions | |
CN114281263B (zh) | 容器集群管理系统的存储资源处理方法、系统和设备 | |
CN110531984B (zh) | 代码编译方法、装置、系统、计算机设备和存储介质 | |
CN109347716B (zh) | 消费者vnf的实例化方法及装置 | |
CN114615340B (zh) | 一种请求处理方法、装置、计算机设备和存储装置 | |
US11531526B1 (en) | Creating portable serverless applications | |
CN113760543A (zh) | 资源管理方法、装置、电子设备及计算机可读存储介质 | |
KR20230069088A (ko) | 컨테이너 클러스터 관리 방법 및 그 시스템 | |
WO2019117767A1 (en) | Method, function manager and arrangement for handling function calls | |
CN109347661B (zh) | 消费者vnf的实例化方法及装置 | |
CN110413333B (zh) | 基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置 | |
CN112698930B (zh) | 一种获取服务器标识的方法、装置、设备及介质 | |
CN114546648A (zh) | 任务处理方法及任务处理平台 | |
CN109343935A (zh) | 消费者vnf的实例化方法及装置 | |
CN115865718A (zh) | 基于Yaml模板的服务编排管控方法及装置 | |
US11513833B1 (en) | Event listener interface for container-based execution of serverless functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220422 |
|
CF01 | Termination of patent right due to non-payment of annual fee |