CN110413333A - 基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置 - Google Patents

基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置 Download PDF

Info

Publication number
CN110413333A
CN110413333A CN201810401486.8A CN201810401486A CN110413333A CN 110413333 A CN110413333 A CN 110413333A CN 201810401486 A CN201810401486 A CN 201810401486A CN 110413333 A CN110413333 A CN 110413333A
Authority
CN
China
Prior art keywords
module
nodejs
powershell
edgejs
micro 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
Application number
CN201810401486.8A
Other languages
English (en)
Other versions
CN110413333B (zh
Inventor
范家星
汪丽萍
过晓春
朱强
蔡凯捷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201810401486.8A priority Critical patent/CN110413333B/zh
Publication of CN110413333A publication Critical patent/CN110413333A/zh
Application granted granted Critical
Publication of CN110413333B publication Critical patent/CN110413333B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote 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系统的微服务管理方法 和装置
技术领域
本发明涉及网络技术领域,特别涉及一种基于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模块则对所述poweshell模块进行实例化,并将实例化数据进行缓存,以供后续快速调用;若已经实例化,EdgeJS模块则将调用函数及参数信息发送给PowerShell模块;
PowerShell模块根据调用函数及参数信息加载调用函数,并将调用结果数据回传给EdgeJS模块;
EdgeJS模块将收到的所述调用结果数据再回传给NodeJS模块;
NodeJS模块再将所述调用结果数据返回给微服务客户端。
在第一方面的第一种可能的实现方式中,所述调用请求消息还包括客户端标识信息;在所述NodeJS模块根据所述调用请求消息对调用函数进行检测之前,还包括:
NodeJS模块根据客户端标识信息和NodeJS模块本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
在第一方面的第二种可能的实现方式中,在所述NodeJS模块根据所述调用请求消息对调用函数进行检测之后,还包括:
若所述调用函数不存在,则向微服务客户端返回调用错误信息。
在第一方面的第三种可能的实现方式中,还包括:
PowerShell模块基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
EdgeJS模块基于微服务客户端的功能需求变化对poweshell模块的实例化数据进行维护。
第二方面,本发明实施例提供一种基于NodeJS和PowerShell的Windows系统的微服务管理装置,包括:NodeJS模块、EdgeJS模块和PowerShell模块;
所述NodeJS模块用于接收微服务客户端发送的调用请求消息,所述调用请求消息包括调用函数及参数信息;
所述NodeJS模块还用于根据所述调用请求消息对调用函数进行检测;
若所述调用函数为Windows系统服务资源,所述NodeJS模块则还用于将所述调用请求消息转发给所述EdgeJS模块;
所述EdgeJS模块用于检查与调用函数对应的PowerShell模块是否已经实例化;
若未实例化,所述EdgeJS模块则还用于对所述poweshell模块进行实例化,并将实例化数据进行缓存;若已经实例化,所述EdgeJS模块则还用于将调用函数及参数信息发送给所述PowerShell模块;
所述PowerShell模块用于根据调用函数及参数信息加载调用函数,并将调用结果数据回传给所述EdgeJS模块;
所述EdgeJS模块还用于将收到的所述调用结果数据再回传给所述NodeJS模块;
所述NodeJS模块还用于再将所述调用结果数据返回给微服务客户端。
在第二方面的第一种可能的实现方式中,所述调用请求消息还包括客户端标识信息,在所述NodeJS模块用于根据所述调用请求消息对调用函数进行检测之前,所述NodeJS模块还用于根据客户端标识信息和NodeJS模块本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
在第二方面的第二种可能的实现方式中,在所述NodeJS模块用于根据所述调用请求消息对调用函数进行检测之后,若所述调用函数不存在,则所述NodeJS模块还用于向微服务客户端返回调用错误信息。
在第二方面的第三种可能的实现方式中,所述PowerShell模块还用于基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述EdgeJS模块还用于基于微服务客户端的功能需求变化对poweshell模块的实例化数据进行维护。
本发明实施例提供的技术方案,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模块则对poweshell模块进行实例化,并将实例化数据进行缓存,以供后续快速调用;若已经实例化,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模块基于微服务客户端的功能需求变化对poweshell模块的实例化数据进行维护。
系统可能缓存有大量的poweshell模块的实例化数据,当客户端的功能需求变化时,EdgeJS模块基于微服务客户端的功能需求变化对poweshell模块的实例化数据进行维护,清除废弃数据,提高了微服务功能交付的可维护性。
图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则还用于对poweshell模块进行实例化,并将实例化数据进行保存;若已经实例化,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还用于基于微服务客户端的功能需求变化对poweshell模块的实例化数据进行维护。
本实施例的装置,其实现原理和所要达到的技术效果上文中已有论述,在此不再赘述。
图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模块则对所述poweshell模块进行实例化,并将实例化数据进行缓存,以供后续快速调用;若已经实例化,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模块基于微服务客户端的功能需求变化对poweshell模块的实例化数据进行维护。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于NodeJS和PowerShell的Windows系统的微服务管理方法,其特征在于,应用于基于NodeJS和PowerShell的Windows系统的微服务管理装置,所述装置包括NodeJS模块、EdgeJS模块和PowerShell模块;
所述方法包括:
NodeJS模块接收微服务客户端发送的调用请求消息,所述调用请求消息包括调用函数及参数信息;
NodeJS模块根据所述调用请求消息对调用函数进行检测;
若所述调用函数为Windows系统服务资源,NodeJS模块则将所述调用请求消息转发给EdgeJS模块;
EdgeJS模块检查与调用函数对应的PowerShell模块是否已经实例化;
若未实例化,EdgeJS模块则对所述poweshell模块进行实例化,并将实例化数据进行缓存,以供后续快速调用;若已经实例化,EdgeJS模块则将调用函数及参数信息发送给PowerShell模块;
PowerShell模块根据调用函数及参数信息加载调用函数,并将调用结果数据回传给EdgeJS模块;
EdgeJS模块将收到的所述调用结果数据再回传给NodeJS模块;
NodeJS模块再将所述调用结果数据返回给微服务客户端。
2.如权利要求1所述的方法,其特征在于,所述调用请求消息还包括客户端标识信息;
在所述NodeJS模块根据所述调用请求消息对调用函数进行检测之前,还包括:
NodeJS模块根据客户端标识信息和NodeJS模块本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
3.如权利要求1所述的方法,其特征在于,在所述NodeJS模块根据所述调用请求消息对调用函数进行检测之后,还包括:
若所述调用函数不存在,则向微服务客户端返回调用错误信息。
4.如权利要求1所述的方法,其特征在于,还包括:
PowerShell模块基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
5.如权利要求1-4任一项所述的方法,其特征在于,还包括:
EdgeJS模块基于微服务客户端的功能需求变化对poweshell模块的实例化数据进行维护。
6.一种基于NodeJS和PowerShell的Windows系统的微服务管理装置,其特征在于,包括:NodeJS模块、EdgeJS模块和PowerShell模块;
所述NodeJS模块用于接收微服务客户端发送的调用请求消息,所述调用请求消息包括调用函数及参数信息;
所述NodeJS模块还用于根据所述调用请求消息对调用函数进行检测;
若所述调用函数为Windows系统服务资源,所述NodeJS模块则还用于将所述调用请求消息转发给所述EdgeJS模块;
所述EdgeJS模块用于检查与调用函数对应的PowerShell模块是否已经实例化;
若未实例化,所述EdgeJS模块则还用于对所述poweshell模块进行实例化,并将实例化数据进行缓存,以供后续快速调用;若已经实例化,所述EdgeJS模块则还用于将调用函数及参数信息发送给所述PowerShell模块;
所述PowerShell模块用于根据调用函数及参数信息加载调用函数,并将调用结果数据回传给所述EdgeJS模块;
所述EdgeJS模块还用于将收到的所述调用结果数据再回传给所述NodeJS模块;
所述NodeJS模块还用于再将所述调用结果数据返回给微服务客户端。
7.如权利要求6所述的装置,其特征在于,所述调用请求消息还包括客户端标识信息,在所述NodeJS模块用于根据所述调用请求消息对调用函数进行检测之前,所述NodeJS模块还用于根据客户端标识信息和NodeJS模块本地存储的访问权限表对客户端进行访问权限鉴定,若鉴权失败,则向客户端返回鉴权失败信息。
8.如权利要求6所述的装置,其特征在于,在所述NodeJS模块用于根据所述调用请求消息对调用函数进行检测之后,若所述调用函数不存在,则所述NodeJS模块还用于向微服务客户端返回调用错误信息。
9.如权利要求6所述的装置,其特征在于,所述PowerShell模块还用于基于微服务客户端的功能需求变化提供与微服务客户端的功能需求相对应的函数接口。
10.如权利要求6-9任一项所述的装置,其特征在于,所述EdgeJS模块还用于基于微服务客户端的功能需求变化对poweshell模块的实例化数据进行维护。
CN201810401486.8A 2018-04-28 2018-04-28 基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置 Expired - Fee Related CN110413333B (zh)

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 true CN110413333A (zh) 2019-11-05
CN110413333B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111341445A (zh) * 2020-02-05 2020-06-26 网宿科技股份有限公司 微服务调用链的健康检测方法和健康检测系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120096527A1 (en) * 2010-10-14 2012-04-19 Michael Pasternak Powershell cmdlets code generating tool for communicating to the web services
CN103092620A (zh) * 2013-01-18 2013-05-08 浙江吉利汽车研究院有限公司杭州分公司 一种Microsoft Exchange Server 2010 Web服务集成开发方法
US20150121061A1 (en) * 2013-10-28 2015-04-30 Citrix Systems, Inc. Systems and methods for managing a guest virtual machine executing within a virtualized environment
US20160034701A1 (en) * 2010-12-08 2016-02-04 Microsoft Technology Licensing, Llc Monetizing product features as part of enforcing license terms
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 亚马逊技术股份有限公司 请求处理技术
US20160124742A1 (en) * 2014-10-30 2016-05-05 Equinix, Inc. Microservice-based application development framework
US20160321038A1 (en) * 2015-04-28 2016-11-03 David Wei Ge Method of Adding Client Server Automation to Computer languages for Cloud Computing
US20170078452A1 (en) * 2014-05-07 2017-03-16 Optum, Inc. Web native bridge
CN106575222A (zh) * 2014-03-30 2017-04-19 动力应用程序公司 Node.js应用的监测
US20170171034A1 (en) * 2015-12-15 2017-06-15 Microsoft Technology Licensing, Llc Dynamic/on-demand packaging as part of deployment
CN107623729A (zh) * 2017-09-08 2018-01-23 华为技术有限公司 一种缓存方法、设备及缓存服务系统

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120096527A1 (en) * 2010-10-14 2012-04-19 Michael Pasternak Powershell cmdlets code generating tool for communicating to the web services
US20160034701A1 (en) * 2010-12-08 2016-02-04 Microsoft Technology Licensing, Llc Monetizing product features as part of enforcing license terms
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 亚马逊技术股份有限公司 请求处理技术
US20150121061A1 (en) * 2013-10-28 2015-04-30 Citrix Systems, Inc. Systems and methods for managing a guest virtual machine executing within a virtualized environment
CN106575222A (zh) * 2014-03-30 2017-04-19 动力应用程序公司 Node.js应用的监测
US20170078452A1 (en) * 2014-05-07 2017-03-16 Optum, Inc. Web native bridge
CN106464736A (zh) * 2014-10-30 2017-02-22 环球互连及数据中心公司 用于基于云的服务交换的实时配置和管理的互连平台
US20160124742A1 (en) * 2014-10-30 2016-05-05 Equinix, Inc. Microservice-based application development framework
US20160321038A1 (en) * 2015-04-28 2016-11-03 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
CN107623729A (zh) * 2017-09-08 2018-01-23 华为技术有限公司 一种缓存方法、设备及缓存服务系统

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
DFINKE: "Run PowerShell in node.js", 《HTTPS://GITHUB.COM/DFINKE/EDGE-POWERSHELL》 *
EXCEPTIONSHUB官网: "Execute Powershell script from Node.js", 《HTTPS://EXCEPTIONSHUB.COM/EXECUTE-POWERSHELL-SCRIPT-FROM-NODE-JS.HTML》 *
KIMMKING: "Edge实现NodeJS与.NET互操作(包括UI界面示例)", 《HTTPS://BLOG.CSDN.NET/KIMMKING/ARTICLE/DETAILS/42708049》 *
LEE576: "好厉害的库edge.js!实现C#与node.js互操作", 《HTTPS://BLOG.CSDN.NET/LEE576/ARTICLE/DETAILS/51028130》 *
TOMASZ JANCZUK: "Edge.js: .NET and Node.js in-process", 《HTTPS://GITEE.COM/HUOXD/EDGE》 *
YUSHULX: "使用Edge.js,在JavaScript中调用C# .Net", 《HTTPS://BLOG.CSDN.NET/YUSHULX/ARTICLE/DETAILS/40537331》 *
张善友: "Edge.js:让.NET和Node.js代码比翼齐飞", 《HTTPS://WWW.CNBLOGS.COM/SHANYOU/P/3325249.HTML》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111341445A (zh) * 2020-02-05 2020-06-26 网宿科技股份有限公司 微服务调用链的健康检测方法和健康检测系统
CN111341445B (zh) * 2020-02-05 2024-04-16 网宿科技股份有限公司 微服务调用链的健康检测方法和健康检测系统

Also Published As

Publication number Publication date
CN110413333B (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
CN110535831B (zh) 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质
US8606897B2 (en) Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network
CN104753817B (zh) 一种云计算消息队列服务本地模拟方法和系统
CN102480392B (zh) 性能测试装置及其工作方法
CN108039975A (zh) 容器集群管理系统及其应用方法
US20090300180A1 (en) Systems and methods for remote management of networked systems using secure modular platform
US20100153482A1 (en) Cloud-Based Automation of Resources
CN106301829A (zh) 一种网络业务扩容的方法和装置
US20130232470A1 (en) Launching an application stack on a cloud platform environment
CN113127192B (zh) 一种多个服务共享同一个gpu的方法、系统、设备及介质
CN106161399A (zh) 一种安全服务交付方法及系统
KR20130083726A (ko) 클라우드 시스템에서의 가상 머신 통합 모니터링 장치 및 방법
CN109639782A (zh) 消息发送平台、方法
Sahadevan et al. An offline online strategy for IoT using MQTT
CN108536484A (zh) 参数修改方法、装置、终端设备及存储介质
CN115118705A (zh) 一种基于微服务的工业边缘管控平台
del Castillo et al. Openstack federation in experimentation multi-cloud testbeds
JP6680028B2 (ja) 監視システム、監視方法および監視プログラム
Moreno‐Vozmediano et al. Elastic management of web server clusters on distributed virtual infrastructures
CN110413333A (zh) 基于NodeJS和PowerShell的Windows系统的微服务管理方法和装置
CN112799970A (zh) 测试数据处理方法、装置、电子设备及介质
CN103309722A (zh) 一种云计算系统及其应用访问方法
Stecca et al. An architecture for a mashup container in virtualized environments
US11394750B1 (en) System and method for generating network security policies in a distributed computation system utilizing containers
CN116954810A (zh) 容器应用实例的创建方法、系统、存储介质及程序产品

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220422