CN109769010B - 基于SDK访问CloudStack服务器的方法、装置、设备及存储介质 - Google Patents

基于SDK访问CloudStack服务器的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN109769010B
CN109769010B CN201811475994.7A CN201811475994A CN109769010B CN 109769010 B CN109769010 B CN 109769010B CN 201811475994 A CN201811475994 A CN 201811475994A CN 109769010 B CN109769010 B CN 109769010B
Authority
CN
China
Prior art keywords
cloudstack
cloudstock
sdk
access request
server
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.)
Active
Application number
CN201811475994.7A
Other languages
English (en)
Other versions
CN109769010A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201811475994.7A priority Critical patent/CN109769010B/zh
Publication of CN109769010A publication Critical patent/CN109769010A/zh
Application granted granted Critical
Publication of CN109769010B publication Critical patent/CN109769010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本申请实施例属于云技术领域,涉及一种基于SDK访问CloudStack服务器的方法,包括将多种CloudStack API封装在一个SDK中;根据应用场景生成相应的CloudStack访问请求,其中,一种CloudStack API包括一个或者多个应用场景的处理方式;通过相应的CloudStack API发送CloudStack访问请求;获取CloudStack访问请求的响应结果。SDK对指定功能的实现是完全隐藏的,只需要调用CloudStack API及其对应的处理方式,传进去特定的值即可实现制定好的功能,快速处理生成相应的CloudStack访问请求并通过相应的CloudStac API访问、获取CloudStack服务器的响应,提高访问速度以及用户体验。本申请还提供一种基于SDK访问CloudStack服务器的装置、计算机设备及存储介质。本申请便于管理、维护及移植终端设备程序,提高访问安全性,也使操作和对接更加方便,提高用户体验。

Description

基于SDK访问CloudStack服务器的方法、装置、设备及存储 介质
技术领域
本申请涉及云技术领域,尤其涉及一种基于SDK访问CloudStack服务器的方法、装置、计算机设备及存储介质。
背景技术
CloudStack是一个开源的具有高可用性及扩展性的云计算平台,其可以通过组织和协调用户的虚拟化资源,构建一个和谐的环境。CloudStack具有许多强大的功能,可以让用户构建一个安全的多租户云计算环境。使用CloudStack作为基础,数据中心操作者可以快速方便的通过现存基础架构创建云服务。CloudStack可以让用户快速和方便地在现有的架构上建立自己的云服务,同时帮助用户更好地协调服务器、存储、网络资源,从而构建一个IaaS平台。而CloudStack用户可以充分利用云计算提供更高的效率,无限的规模和更快地部署新服务和系统的最终用户。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
CloudStack API是CloudStack服务器提供外界访问CloudStack的接口。目前,CloudStack服务器提供的CloudStack API有300多个。不同的系统或者平台根据其需求开发多种CloudStack API类型,并开发相应API接口对应的调用功能,以便访问CloudStack。如此,每个平台或者系统各自开发其所需要的CloudStack API的话,就容易造成重复开发。并且CloudStack API的开发难度大、成本高。另外,当CloudStack的接口提供的API接口发生变化时,需要用到变化接口的平台都需要对应作出调整,开发工作量和开发成本进一步增大,重复性操作高,用户体验低。
发明内容
本申请实施例的目的在于提出一种基于SDK访问CloudStack服务器的方法、装置、计算机设备及存储介质,将多种CloudStack API以及对应的处理方式封装在SDK中,用户访问时不用担心平台缺乏相应的CloudStack API或者由于CloudStack API发生变化而不能访问CloudStack服务器。
为了解决上述技术问题,本申请实施例提供一种基于SDK访问CloudStack服务器的方法,采用了如下所述的技术方案:
一种基于SDK访问CloudStack服务器的方法,包括下述步骤:
将多种CloudStack API封装在一个SDK中;
根据应用场景生成相应的CloudStack访问请求,其中,一种CloudStack API包括一个或者多个应用场景的处理方式;
通过相应的CloudStack API发送所述CloudStack访问请求;
获取所述CloudStack访问请求的响应结果。
进一步地,所述根据应用场景生成相应的CloudStack访问请求,包括:
接收服务请求,所述服务请求包括针对所述应用场景所生成的请求指令;
根据所述请求指令解析所述服务请求,调用对应对的服务请求的处理方式;
生成对应的CloudStack访问请求。
进一步地,所述将多种CloudStack API封装在一个SDK中,包括:
当所述应用场景有所改变时,所述CloudStack API对应修改处理方式。
进一步地,在所述通过相应的CloudStack API发送所述CloudStack访问请求的步骤之前还包括:
对所述CloudStack访问请求进行签名并加密。
进一步地,所述对所述CloudStack访问请求进行签名并加密的步骤包括以下步骤:
获取CloudStack访问请求的所有参数,并将所有参数进行小写;
按字母顺序对参数进行排序,形成命令字符串;
将排序好的命令字符串和用户的私钥混合,并使用HMAC SHA-1哈希算法进行编码,生成签名摘要。
进一步地,所述获取所述CloudStack访问请求的响应结果,包括:
获取CloudStack反馈的响应结果;
判断所述响应结果是否异常:
若是,分析异常原因并将所述异常原因封装进所述响应结果中,否则直接封装所述响应结果。
进一步地,,所述CloudStack访问请求包括CloudStack访问地址、签名和command参数;在所述通过相应的CloudStack API发送所述CloudStack访问请求的步骤之前,还包括:
根据所述command参数调用相应的CloudStack API。
为了解决上述技术问题,本申请实施例还提供一种基于SDK访问CloudStack服务器的装置,采用了如下所述的技术方案:
一种基于SDK访问CloudStack服务器的装置,应用上述所述的基于SDK访问CloudStack服务器的方法,包括
请求生成模块,用于根据应用场景生成相应的CloudStack访问请求;
请求发送模块,用于通过相应的CloudStack API发送所述CloudStack访问请求;
请求响应模块,用于响应所述CloudStack访问请求。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述所述的基于SDK访问CloudStack服务器的方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的基于SDK访问CloudStack服务器的方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例提供一种基于SDK访问CloudStack服务器的方法、装置、计算机设备以及计算机可读存储介质。所述方法应用SDK工具包,包括:根据应用场景生成相应的CloudStack访问请求;通过相应的CloudStack API发送所述CloudStack访问请求;响应所述CloudStack访问请求。其中,SDK封装多种CloudStack API及其对应的处理方式,对指定功能的实现是完全隐藏的,只需要调用CloudStack API及其对应的处理方式,传进去特定的值即可实现制定好的功能,快速处理生成相应的CloudStack访问请求并通过相应的CloudStac API访问、获取CloudStack服务器的响应,提高访问速度以及用户体验。
另外,当终端设备101、102、103中增设其他应用场景时,其对应CloudStack API和处理方式也封装在SDK中,SDK调用相应的处理方式就会生成相应的CloudStack访问请求。或者,当CloudStack服务器105提供的CloudStack API将发生变动时,只需改动SDK中对应改动CloudStack API的处理方式或者方法,各个平台不必再各自对应修改。本申请有效降低用户的开发成本和开发难度。通过所述SDK也便于管理、维护及移植终端设备程序,提高访问安全性,也使操作和对接更加方便,提高用户体验。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2根据本申请的基于SDK访问CloudStack服务器的方法的一个实施例的流程图;
图3是本申请的应用系统的示例图;
图4是本申请的基于SDK访问CloudStack服务器的方法的又一个实施方式的流程图;
图5是图4所示方法的一个具体实施例的流程图;
图6是图4所示方法的另一个具体实施例的流程图;
图7是本申请的基于SDK访问CloudStack服务器的装置的结构示意图;
图8是图7所示请求生成模块一种具体实施方式的结构示意图;
图9根据本申请的计算机设备的一个实施例的结构示意图。
附图标记:
100 系统架构 101、102、103 终端设备
104 网络 105 CloudStack服务器
701 请求生成模块 702 请求发送模块
703 请求响应模块 7021 接收子模块
7022 处理子模块 7023 生成子模块
9 计算机设备 91 存储器
92 处理器 93 网络接口
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例提供一种基于SDK访问CloudStack服务器的方法,SDK中封装了多种用于访问CloudStack服务器的CloudStack API,根据应用场景,SDK生成相应的CloudStack访问请求并自动调用相应的CloudStack API发送至CloudStack服务器中。本申请实施例还提供相应的基于SDK访问CloudStack服务器的装置,以及相关的计算机设备和计算机程序。以下分别进行详细说明。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和CloudStack服务器105。终端设备101、102、103中部署有SDK,SDK中封装所有CloudStack API及对应所有CloudStack API的调用功能。网络104用以在终端设备101、102、103和CloudStack服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与CloudStack服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。当终端设备101、102、103与所述CloudStack服务器105交互时,终端设备101、102、103上所部署的SDK根据不同的应用场景,发送不同的服务请求以及接收相应的响应消息。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
CloudStack服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于SDK访问CloudStack服务器105的方法一般由终端设备101、102、103执行,相应地,基于SDK访问CloudStack的装置一般设置于终端设备101、102、103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的基于SDK访问CloudStack的方法的一个实施例的流程图。所述的基于SDK访问CloudStack服务器105的方法,包括以下步骤:
S201:将多种CloudStack API封装在一个SDK中。
在本实施例中,基于SDK访问CloudStack服务器105的方法运行于其上的电子设备(例如图1所示的终端设备)可以通过有线连接方式或者无线连接方式连接CloudStack服务器105,向CloudStack服务器105发送访问请求或者接收响应的信息以及其他消息。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
请参阅图3,图中示出了一种应用本申请所提供的基于SDK访问CloudStack服务器105的方法的应用场景。图中,一个终端设备101、102、103包括“云管理系统”、“业务系统”和“运维系统”以及其他系统或平台,每一种系统/平台中包含多种应用场景,每一种应用场景都是通过SDK访问CloudStack服务器105的,CloudStack服务器105对应的响应结果也通过SDK反馈至相应的平台中以响应所述应用场景。
具体地,根据终端设备101、102、103中的应用场景的需求,SDK中至少包括对应图中“云管理系统”、“业务系统”和“运维系统”等平台或者系统访问所述CloudStack服务器105所需要的CloudStack API,即SDK中封装多种针对不同的应用场景的CloudStack API,以将相应的服务请求或者其他访问请求通过对应的CloudStack API发送至CloudStack服务器105。更具体地,当SDK中接收到终端设备101、102、103中发送的服务请求或者其他类型的访问请求时,SDK根据所对应的应用场景所请求的服务调用相应的处理方式,将传进去特定的值快速做出相应处理即可实现提供商制定好的功能,生成相应场景的请求服务的CloudStack访问请求,并发送至CloudStack服务器105中。
进一步地,当所述终端设备101、102、103中新增加应用平台,所述终端设备101、102、103依然可以通过所述SDK快速获取相应的处理方式,生成相应的CloudStack访问请求并调用其需要的CloudStack API,将所述CloudStack访问请求发送至所述CloudStack服务器105。或者当所述终端设备101、102、103所包含的应用平台的应用场景有所改变时,所述SDK也及时作出相应的调整,修改所述CloudStack API的处理方式,例如参数处理、配置管理等。所述终端设备101、102、103中的平台依然能通过所述SDK快速访问所述CloudStack服务器105。
S202:根据应用场景生成相应的CloudStack访问请求。
现有技术在CloudStack服务器时,系统中必须有相应场景的CloudS tack API,否则不能访问或者开发之后才能访问,用户操作复杂,对接繁琐,用户体验低。而本申请应用的SDK中封装多种CloudStack API,针对不同的应用场景,生成并发送不同的服务请求传递不同的值,即使新增加平台,增加新的应用场景,也能快速通过所述SDK通过同步/异步操作调用相应的处理方式,快速生成相应的CloudStack访问请求,提高访问速度。
另外,当终端设备101、102、103中增设其他应用场景时,其对应CloudStack API和处理方式也封装在SDK中,SDK调用相应的处理方式就会生成相应的CloudStack访问请求。或者,当CloudStack服务器105提供的CloudStack API将发生变动时,只需改动SDK中对应改动CloudStack API的处理方式或者方法,各个平台不必再各自对应修改。本申请有效降低用户的开发成本和开发难度。通过所述SDK也便于管理、维护及移植终端设备程序,提高访问安全性,也使操作和对接更加方便,提高用户体验。
S203:通过相应的CloudStack API发送CloudStack访问请求;
在本实施例中,S202将S201生成的CloudStack访问请求通过所述服务请求或者访问请求所对应的CloudStack API发送至CloudStack服务器105中。
具体地,请再参阅图3,SDK针对“云管理系统”、“业务系统”和“运维系统”等平台或者系统发送的服务请求或者访问请求进行相应的处理,并调用各请求所对应的CloudStackAPI,将各个平台或者系统的服务请求或者其他访问请求通过相应的CloudStack API发送至CloudStack服务器105中。
更具体地,所述云管理系统”、“业务系统”和“运维系统”等平台或者系统所需要的CloudStack API有可能是重复的,当两个不同的平台都需要通过同一个CloudStack API发送服务请求或者其他访问请求时,所述SDK中设有线程管理器,将各系统或者平台的请求进行排队,待资源满足后再将所述平台或者系统响应的CloudStack访问请求发送至CloudStack服务器105中。
S204:响应CloudStack访问请求。
在本实施例中,CloudStack服务器105接收CloudStack访问请求,并根据CloudStack访问请求进行数据处理,反馈响应结果,所述响应结果发送至SDK中,再由所述SDK发送到所请求的平台或者系统中。
具体地,请在参阅图3,CloudStack服务器105针对“云管理系统”、“业务系统”和“运维系统”等平台或者系统发送的服务请求或者访问请求做出的响应结果反馈至所述SDK中,所述SDK再分发至各个系统或者平台中。
在本申请实施例中,用户可直接调用所述SDK中的相应的处理方式以及CloudStack API,可进行同步/异步操作,快速访问CloudStack服务器并响应,访问速度快,与CloudStack服务器对接简单,且访问安全性高,用户体验高。
进一步地,SDK中将所有访问CloudStack的访问方式封装,包括参数处理、异常处理、同步/异步操作处理和签名处理。当CloudStack提供的API接口有改动时,只需改动SDK中对应改动API的处理方式即可,各个平台不必再各自对应修改,进一步增强用户体验。
请参阅图4,在本申请的另一个实施例中,示出了根据本申请的基于SDK访问CloudStack的方法的另一个实施例的流程图。所述的基于SDK访问CloudStack服务器105的方法,包括以下步骤:
S401:接收服务请求,服务请求包括针对应用场景所生成的请求信息。
在本申请实施例中,终端设备101、102、103针对不同的应用场景,向SDK发送不同的服务请求,所述服务请求中包括针对应用场景所生成的请求指令,所述请求指令是SDK获取终端设备101、102、103的请求目的并完成交互的主要数据信息。
具体地,所述请求信息包括验证信息和请求指令,所述验证信息包括用户的账户信息和验证信息。所述请求指令是针对所述应用场景的操作指令或者控制指令,其包含所述请求的服务类型。
进一步地,所述SDK提供一个统一的访问入口,用于统一接收终端设备101、102、103所发送的服务请求或者访问请求。
S402:根据请求信息解析服务请求,调用对应服务请求的处理方式。
在本申请实施例中,所述SDK提供一个统一的访问入口,用于统一接收终端设备101、102、103中各个系统或者平台发送的针对各种应用场景提出的服务请求。所述SDK根据所述请求信息解析所述终端设备101、102、103中各个系统或者平台的访问目的,通过所述服务类型调用所述服务请求所对应的处理方式,解决所述终端设备101、102、103就其服务请求所要访问CloudStack服务器105所要处理的数据问题,形成CloudStack访问请求指令。
进一步地,所述SDK根据所述服务类型对不同的服务请求或者访问请求作出不同的处理方式。具体地,所述处理方式包括对应所述服务请求所要处理的参数类型、参数个数和请求类型,用来准确描述正在获取的资源、服务器或者客户端的行为,定义了请求事务中的具体操作参数。更具体地,每一种服务请求或者访问请求对应形成的所述CloudStack访问请求指令设有对应的数据包格式。每一个CloudStack访问请求指令都应当包括以下数据:
CloudStack访问地址,即CloudStack服务器105的网络地址,是CloudStack访问请求的目的地址。
Command参数,针对不同的服务请求或者访问请求,Command参数的类型和个数均不同。
进一步地,根据所述服务请求确定所述终端设备101、102、103的请求类型,根据所述请求类型确定所述CloudStack访问请求的请求头,如可接受的响应内容类型用Accept协议头;表示HTTP协议中需要认证资源的认证信息用Authorization;表示客户端要求服务器做出特定的行为,用Expect协议头等等。
更进一步地,所述SDK还用于处理生成CloudStack访问请求的其他数据内容,例如消息头(用来准确描述正在获取的资源、服务器或者客户端的行为,其包含一些具有特殊含义的键值对)、请求资源路径、参数及值放在哪里等等。
S403:生成对应的CloudStack访问请求。
在本申请实施例中,S402将CloudStack访问地址、Command参数等封装在一个数据包中,接着所述SDK将所述数据包封装生成所述CloudStack访问请求。
S404:通过相应的CloudStack API发送CloudStack访问请求。
在本申请实施例中,SDK将所述终端设备101、102、103中的各个平台或者系统发送的服务请求或者访问请求进行相应的处理,并调用各请求所对应的CloudStack API,将各个平台或者系统的服务请求或者其他访问请求通过相应的CloudStack API发送至CloudStack服务器105中。
具体地,所述终端设备101、102、103中的各个平台或者系统所需要的CloudStackAPI有可能是重复的,当两个不同的平台都需要通过同一个CloudStack API发送服务请求或者其他访问请求时,所述SDK中设有线程管理器,将各系统或者平台的请求进行排队,待资源满足后再将所述平台或者系统响应的CloudStack访问请求发送至CloudStack服务器105中。
S405:响应CloudStack访问请求。
在本申请实施例中,CloudStack服务器105接收CloudStack访问请求,并根据CloudStack访问请求进行数据处理,反馈响应结果,所述响应结果发送至SDK中,再由所述SDK发送到所请求的平台或者系统中。
在本实施例的一些可选的实现方式中,在步骤402处理生成所述CloudStack访问请求所需要的数据之后,步骤403对应服务请求的CloudStack访问请求之前,上述电子设备还可以执行以下步骤:
S406:对CloudStack访问请求进行签名并加密。
在本申请实施例中,使用用户的私钥和HMAC SHA-1哈希算法生成数字签名,用于证实CloudStack访问请求确实是由终端设备101、102、103的用户签发的,以保证CloudStack访问请求在传输过程中不被篡改,从而保证终端设备101、102、103与CloudStack服务器105之间信息传输过程的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份的确定性,提高通信安全性。而且当数字签名用于存储数据或程序时,可以用来验证数据或程序的完整性。
具体地,HMAC进程将用户的密钥与CloudStack访问请求的数据混合,使用哈希函数对混合结果进行哈希计算,将所得哈希值与该密钥混合,然后再次应用哈希函数验证所述终端设备101、102、103是否是所述CloudStack服务器105的合法用户。其中,所述终端设备101、102、103计算原始数据的哈希值,并将原始数据和哈希值放在所述CloudStack访问请求中同时传送。所述CloudStack服务器105重新计算所述CloudStack访问请求消息的哈希值,并检查计算所得的HMAC是否与传送的HMAC匹配。由于更改消息和重新生成正确的哈希值需要密钥,所以对数据或哈希值的任何更改都会导致不匹配。因此,如果原始的哈希值与计算得出的哈希值相匹配,则消息通过身份验证。
进一步地,所述HMAC SHA-1哈希算法接受任何大小的密钥,并产生长度为160位的哈希序列,即其输出的哈希值长度为160位。
在本申请实施例中,除CloudStack访问地址和所述Command参数外,所述CloudStack访问请求还包括对所述CloudStack访问请求指令的签名,以保证所述终端设备101、102、103与所述CloudStack服务器105之间通信的安全性。
请参阅图5,图中示出了S406对CloudStack访问请求进行签名并加密的过程:
S501:获取CloudStack访问请求的所有参数,并将所有参数进行小写。
在本申请实施例中,所述CloudStack访问请求的所有参数即为要加密的消息。
在本申请实施例中,所述参数以键值对的形式进行存储的,其中键包含了验证规则作用的数据库字段名,而值则包含了所有施加于该字段的约束规则,以解决大量不同的分布计算问题。
S502:按字母顺序对参数进行排序,形成命令字符串。
在S501中,所获取的CloudStack访问请求的参数是序列化的,即是根据参数处理的类型和个数进行排序的,容易被篡改数据。
在本申请实施例中,通过对所有的键值对(参数值)重新排序所形成的命令字符串打乱了消息内容的顺序,可以有效地防止数据在传输的过程中被截取和篡改,维护了数据的完整性、可靠性和安全性。
进一步地,所述命令字符串为任意长度的字符串,HMAC SHA-1哈希算法接受任意长度的输入。
S503:将排序好的命令字符串和用户的私钥混合,并使用HMAC SHA-1哈希算法进行编码,生成签名摘要。
所述命令字符串即为上述要加密的消息,所述终端设备101、102、103计算所述命令字符串和私钥的哈希值,并将该哈希值与所述CloudStack访问请求一起发送给CloudStack服务器105。CloudStack服务器105重新计算所接CloudStack访问请求的哈希值,通过匹配两个哈希值验证身份证明。
进一步地,所述用户的私钥也是任意长度的。HMAC SHA-1哈希算法对所述命令字符串和哈希值进行64位编码或者URL编码,使其成为不可读的一段代码。然后通过加密算法达到保护数据不被非法人窃取、阅读的目的。
在本申请实施例中,所述数字签名使用但不不限于HMAC SHA-1哈希算法,HMACSHA-1哈希算法保证终端设备101、102、103与CloudStack服务器105之间信息传输过程的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份的确定性,提高通信安全性。本申请也可使用DES(Data Encryption Algorithm,数据加密算法)加密算法、AES(Advanced Encryption Standard,高级加密标准)加密算法、RSA(Rivest ShamirAdlemen,一种因特网加密和认证体系)加密算法、MD5(Message Digest 5,消息摘要5)加密算法等等。
在一些可选的实现方式中,如果上述步骤403为生成对应的CloudStack访问请求,则在步骤404通过相应的CloudStack API发送CloudStack访问请求之前,上述电子设备可以执行以下步骤:
S407:根据command参数调用相应的CloudStack API。
在本申请实施例中,所述SDK根据所述Command参数的类型和个数,匹配所述SDK中的CloudStack API,将所述CloudStack访问请求分发到所述CloudStack API中,通过所述CloudStack API将所述CloudStack访问请求发送到CloudStack服务器105中。
请继续参阅图6,图中示出了S405响应CloudStack访问请求的过程:
S601:获取CloudStack反馈的响应结果。
在本申请实施例中,所述CloudStack服务器105根据请求命令中的command参数响应不同的内容。具体地,所述CloudStack服务器105对每一种command参数都对应设置一种响应处理类。例如:对应部署虚拟机,所述CloudStack服务器105对应设置一个部署虚拟机的响应类。当其接收到相关请求时,直接调用该响应类即可获取响应的内容。
进一步地,所述CloudStack服务器105响应的结果反馈至所述SDK中,再通过所述SDK再返回至终端设备101、102、103相应的平台或者系统中。
S602:判断所述响应结果是否异常,若是,执行步骤S603,否则执行步骤S604。
在本申请实施例中,所述CloudStack服务器反馈的响应结果发送至所述SDK中,由所述SDK接收并统一封装和处理。其中,所述响应结果包括响应内容和异常信息。当所述CloudStack服务器操作成功时,所述响应结果为正常的响应内容,所述SDK直接执行步骤S604。操作失败时,所述响应结果为异常信息,报出异常,所述SDK执行步骤S603。
S603:分析异常原因。
在本申请实施例中,所述SDK中设有CloudStackReqException类,其定义了两种异常:一种是技术异常,如网络异常,发送请求失败等。此类异常一般发生在客户端中,由SDK直接处理。例如,当CloudStack访问请求超过预设的期限,SDK就会获取客户端中的网络情况,反馈网络异常结果。或者客户端中没有相应的物理设备支持时,反馈客户端请求失败的结果。另外一种是业务异常,包括CloudStack服务器处理为失败的原因,错误码等。如没有权限或者权限不足,资源不足等。该类异常一般是根据CloudStack服务器所反馈信息提取异常信息分析的,SDK中针对不同类型的业务异常设置不同的处理方式。例如,当CloudStack服务器访问量过大时,获取并分析CloudStack服务器反馈的异常信息,将服务器超过承载量超过的异常原因和异常结果一起封装。
进一步地,SDK对应每一种异常设置一个异常代码,所述SDK将异常代码和异常信息封装进响应结果中。
S604:封装响应结果。
在本申请实施例中,统一封装后响应结果返回给终端设备101、102、103相应的平台或者系统中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图7,作为对上述图2所示方法的实现,本申请提供了一种基于SDK访问CloudStack服务器的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本实施例所述的基于SDK访问CloudStack服务器的装置700包括:请求生成模块701、请求发送模块702以及请求响应模块703。其中:
请求生成模块701用于根据应用场景生成相应的CloudStack访问请求。
请求发送模块702用于通过相应的CloudStack API发送所述CloudStack访问请求。
请求响应模块703用于响应所述CloudStack访问请求。
在本实施例中,所述SDK部署在终端设备中,其封装多种多种用于访问CloudStack服务器的CloudStack API以及处理方式,并提供统一的访问入口,用于接收终端设备的平台或者系统根据不同应用场景发送的服务请求或者访问请求。
进一步地,所述请求生成模块701根据不同的服务请求或者访问请求作出不同的处理方式,生成相应所述应用场景的CloudStack访问请求,所述请求发送模块702通过相应的CloudStack API将该CloudStack访问请求发送至CloudStack服务器。
更进一步地,所述请求响应模块703接收并封装处理所述CloudStack服务器反馈的响应结果,并再通过所述访问入口将所述响应结果反馈至所述终端设备的相应平台或者系统中。
本申请通过SDK中封装多种CloudStack API,且便于管理,用户可直接调用所述SDK中的CloudStack API。另外,当终端设备101、102、103中增设其他应用场景时,其对应CloudStack API和处理方式也封装在SDK中,SDK调用相应的处理方式就会生成相应的CloudStack访问请求。或者,当CloudStack服务器105提供的CloudStack API将发生变动时,只需改动SDK中对应改动CloudStack API的处理方式或者方法,各个平台不必再各自对应修改。本申请有效降低用户的开发成本和开发难度。通过所述SDK也便于管理、维护及移植终端设备程序,提高访问安全性,也使操作和对接更加方便,提高用户体验。
在本实施例的一些可选的实现方式中,上述请求发送模块702进一步用于:对CloudStack访问请求进行签名并加密。
在本申请实施例中,通过使用用户的私钥和HMAC SHA-1哈希算法生成数字签名,证实CloudStack访问请求确实是由终端设备101、102、103的用户签发的,以保证CloudStack访问请求在传输过程中不被篡改,从而保证终端设备101、102、103与CloudStack服务器105之间信息传输过程的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份的确定性,提高通信安全性。而且当数字签名用于存储数据或程序时,可以用来验证数据或程序的完整性。
请参阅图8,为请求生成模块701一种具体实施方式的结构示意图,请求生成模块701包括接收子模块7021、处理子模块7022以及生成子模块7023。其中,
接收子模块7021用于接收服务请求,服务请求包括针对应用场景所生成的请求信息。
处理子模块7022用于根据请求指令解析服务请求,调用对应对的服务请求的处理方式。
生成子模块7023用于生成对应的CloudStack访问请求。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图9,图9为本实施例计算机设备基本结构框图。
所述计算机设备9包括通过系统总线相互通信连接存储器91、处理器92、网络接口93。需要指出的是,图中仅示出了具有组件91-93的计算机设备9,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器91至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器91可以是所述计算机设备9的内部存储单元,例如该计算机设备9的硬盘或内存。在另一些实施例中,所述存储器91也可以是所述计算机设备9的外部存储设备,例如该计算机设备9上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器91还可以既包括所述计算机设备9的内部存储单元也包括其外部存储设备。本实施例中,所述存储器91通常用于存储安装于所述计算机设备9的操作系统和各类应用软件,例如基于SDK访问CloudStack服务器方法的程序代码等。此外,所述存储器91还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器92在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器92通常用于控制所述计算机设备9的总体操作。本实施例中,所述处理器92用于运行所述存储器91中存储的程序代码或者处理数据,例如运行所述基于SDK访问CloudStack服务器方法的程序代码。
所述网络接口93可包括无线网络接口或有线网络接口,该网络接口93通常用于在所述计算机设备9与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有基于SDK访问CloudStack服务器程序,所述基于SDK访问CloudStack服务器程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于SDK访问CloudStack服务器方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种基于SDK访问CloudStack服务器的方法,所述方法应用于终端设备,其特征在于,包括下述步骤:
将多种CloudStack API封装在一个SDK中;
根据应用场景生成相应的CloudStack访问请求,其中,一种CloudStack API包括一个或者多个应用场景的处理方式;
通过相应的CloudStack API发送所述CloudStack访问请求;
获取所述CloudStack访问请求的响应结果。
2.根据权利要求1所述的基于SDK访问CloudStack服务器的方法,其特征在于,所述根据应用场景生成相应的CloudStack访问请求,包括:
接收服务请求,所述服务请求包括针对所述应用场景所生成的请求指令;
根据所述请求指令解析所述服务请求,调用对应的服务请求的处理方式;
生成对应的CloudStack访问请求。
3.根据权利要求1所述的基于SDK访问CloudStack服务器的方法,其特征在于,所述将多种CloudStack API封装在一个SDK中,包括:
当所述应用场景有所改变时,所述CloudStack API对应修改处理方式。
4.根据权利要求1所述的基于SDK访问CloudStack服务器的方法,其特征在于,在所述通过相应的CloudStack API发送所述CloudStack访问请求的步骤之前还包括:
对所述CloudStack访问请求进行签名并加密。
5.根据权利要求4所述基于SDK访问CloudStack服务器的方法,其特征在于,所述对所述CloudStack访问请求进行签名并加密的步骤包括以下步骤:
获取CloudStack访问请求的所有参数,并将所有参数进行小写;
按字母顺序对参数进行排序,形成命令字符串;
将排序好的命令字符串和用户的私钥混合,并使用HMAC SHA-1哈希算法进行编码,生成签名摘要。
6.根据权利要求1所述的基于SDK访问CloudStack服务器的方法,其特征在于,所述获取所述CloudStack访问请求的响应结果,包括:
获取CloudStack服务器反馈的响应结果;
判断所述响应结果是否异常:
若是,分析异常原因并将所述异常原因封装进所述响应结果中,否则直接封装所述响应结果。
7.根据权利要求1-6任一项所述的基于SDK访问CloudStack服务器的方法,其特征在于,所述CloudStack访问请求包括CloudStack访问地址、签名和command参数;在所述通过相应的CloudStack API发送所述CloudStack访问请求的步骤之前,还包括:
根据所述command参数调用相应的CloudStack API。
8.一种基于SDK访问CloudStack服务器的装置,SDK中封装多种用于访问CloudStack服务器的CloudStack API,所述装置置于终端设备中,其特征在于,所述装置包括
请求生成模块,用于根据应用场景生成相应的CloudStack访问请求,其中,一种CloudStack API包括一个或者多个应用场景的处理方式;
请求发送模块,用于通过相应的CloudStack API发送所述CloudStack访问请求;
请求响应模块,用于获取所述CloudStack访问请求的响应结果。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的基于SDK访问CloudStack服务器的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的基于SDK访问CloudStack服务器的方法的步骤。
CN201811475994.7A 2018-12-04 2018-12-04 基于SDK访问CloudStack服务器的方法、装置、设备及存储介质 Active CN109769010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811475994.7A CN109769010B (zh) 2018-12-04 2018-12-04 基于SDK访问CloudStack服务器的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811475994.7A CN109769010B (zh) 2018-12-04 2018-12-04 基于SDK访问CloudStack服务器的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN109769010A CN109769010A (zh) 2019-05-17
CN109769010B true CN109769010B (zh) 2021-11-30

Family

ID=66451149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811475994.7A Active CN109769010B (zh) 2018-12-04 2018-12-04 基于SDK访问CloudStack服务器的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109769010B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111092883B (zh) * 2019-12-16 2022-08-19 重庆锐云科技有限公司 用户访问记录自动生成方法、装置、网络设备及存储介质
CN111611025A (zh) * 2020-05-20 2020-09-01 浩云科技股份有限公司 设备接入方法和装置
CN111917751B (zh) * 2020-07-24 2022-02-11 郑州信大捷安信息技术股份有限公司 一种基于通信模组安全模块的多用户访问系统和方法
CN115460282B (zh) * 2022-07-29 2024-07-05 天翼云科技有限公司 多服务sdk的远程访问方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484221A (zh) * 2014-12-30 2015-04-01 北京天云融创软件技术有限公司 CloudStack接管vCenter已有集群的方法
CN105359486A (zh) * 2013-05-03 2016-02-24 思杰系统有限公司 使用代理安全访问资源
CN105379223A (zh) * 2013-05-20 2016-03-02 思杰系统有限公司 用于移动应用管理的对移动应用的身份的验证
CN107483509A (zh) * 2017-10-09 2017-12-15 武汉斗鱼网络科技有限公司 一种身份验证方法、服务器及可读存储介质
CN108512666A (zh) * 2018-04-08 2018-09-07 苏州犀牛网络科技有限公司 Api请求的加密方法、数据交互方法及系统
CN108881184A (zh) * 2018-05-30 2018-11-23 努比亚技术有限公司 访问请求处理方法、终端、服务器及计算机可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US9769085B2 (en) * 2012-05-04 2017-09-19 Citrix Systems, Inc. Systems and methods for adaptive application provisioning

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105359486A (zh) * 2013-05-03 2016-02-24 思杰系统有限公司 使用代理安全访问资源
CN105379223A (zh) * 2013-05-20 2016-03-02 思杰系统有限公司 用于移动应用管理的对移动应用的身份的验证
CN104484221A (zh) * 2014-12-30 2015-04-01 北京天云融创软件技术有限公司 CloudStack接管vCenter已有集群的方法
CN107483509A (zh) * 2017-10-09 2017-12-15 武汉斗鱼网络科技有限公司 一种身份验证方法、服务器及可读存储介质
CN108512666A (zh) * 2018-04-08 2018-09-07 苏州犀牛网络科技有限公司 Api请求的加密方法、数据交互方法及系统
CN108881184A (zh) * 2018-05-30 2018-11-23 努比亚技术有限公司 访问请求处理方法、终端、服务器及计算机可读存储介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Managed security service distribution model;Gery Ducatel;《IEEE》;20161219;全文 *
企业私有云计算基础架构研究与设计;丘群业;《中国优秀硕士学位论文全文数据库信息科技辑》;20130131;全文 *
异构私有云管平台通用适配器的研究与实现;王一盟;《智能计算机与应用》;20180626(第03期);全文 *
虚拟化平台cloudstack(1)——介绍;skyme;《https://www.cnblogs.com/skyme/archive/2013/06/06/3118852.html》;20130606;全文 *
面向云平台的协同卷回恢复关键技术研究;黄友富;《中国优秀硕士学位论文全文数据库信息科技辑》;20150228;全文 *

Also Published As

Publication number Publication date
CN109769010A (zh) 2019-05-17

Similar Documents

Publication Publication Date Title
CN109769010B (zh) 基于SDK访问CloudStack服务器的方法、装置、设备及存储介质
WO2022095518A1 (zh) 接口自动化测试方法、装置、计算机设备及存储介质
CN111414640B (zh) 秘钥访问控制方法和装置
CN112632573B (zh) 智能合约执行方法、装置、系统、存储介质及电子设备
EP4350556A1 (en) Information verification method and apparatus
CN107196907A (zh) 一种安卓so文件的保护方法及装置
WO2020119037A1 (zh) 一种身份验证配置方法、装置及计算机可读存储介质
CN113434882A (zh) 应用程序的通讯保护方法、装置、计算机设备及存储介质
CN114500054A (zh) 服务访问方法、服务访问装置、电子设备以及存储介质
US20240323023A1 (en) Sample alignment method and apparatus, device, and storage medium
CN115085934A (zh) 基于区块链和组合密钥的合同管理方法及相关设备
CN113630412B (zh) 资源下载方法、资源下载装置、电子设备以及存储介质
CN113572763B (zh) 数据处理方法、装置、电子设备及存储介质
CN117632099A (zh) 基于应用程序接口的多语言调用方法、装置、设备及介质
CN110650014B (zh) 一种基于hessian协议的签名认证方法、系统、设备及存储介质
CN110414269B (zh) 应用安装包的处理方法、相关装置、存储介质及系统
CN109995821A (zh) 文件上传的方法及系统、客户端、服务器、对象存储系统
CN116112172B (zh) Android客户端gRPC接口安全校验的方法和装置
CN114428661A (zh) 一种镜像管理方法及装置
CN109995534B (zh) 一种对应用程序进行安全认证的方法和装置
CN115883078A (zh) 文件加密方法、文件解密方法、装置、设备及存储介质
CN113360172A (zh) 应用部署方法、装置、计算机设备及存储介质
CN114117388A (zh) 设备注册方法、设备注册装置、电子设备以及存储介质
CN109688158B (zh) 金融执行链认证方法、电子装置及存储介质
CN118300832B (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