CN105320500B - 在云端环境中为应用程序编程接口封装功能的方法 - Google Patents
在云端环境中为应用程序编程接口封装功能的方法 Download PDFInfo
- Publication number
- CN105320500B CN105320500B CN201410257928.8A CN201410257928A CN105320500B CN 105320500 B CN105320500 B CN 105320500B CN 201410257928 A CN201410257928 A CN 201410257928A CN 105320500 B CN105320500 B CN 105320500B
- Authority
- CN
- China
- Prior art keywords
- function
- application programming
- programming interface
- driver
- environment
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种在云端环境中为应用程序编程接口封装功能的方法,该方法包含步骤:A.提供由一驱动程序所支持的一应用程序编程接口;B.如果在一计算节点环境中,该应用程序编程接口可使用于一服务设备,则继承该应用程序编程接口为一新类别;C.为该服务设备扩充延伸功能至该驱动程序;及D.重新封装该驱动程序以符合该继承的应用程序编程接口。
Description
技术领域
本发明涉及一种为应用程序编程接口封装功能的方法,特别是关于一种在云端环境中为应用程序编程接口封装功能的方法。
背景技术
云端计算是一种基于计算机科技应用的观念并发展成一种跨网络的交换的态样。名词"云"意味着网络,云端计算是网络通讯与多台计算机的计算工作的结合,经由因特网的联结,获得由远程主机所提供的服务。云端计算首先由亚马逊公司提出,因为网络购物平台,谷歌与微软也相继提出。
云端计算是一种新的分布式计算的应用。一个请求(可能是一种大型运算处理程序)会自动地分割成数个较小的子程序,这些子程序经由网络,送到由包括数个服务器的一个大系统来处理。在搜寻、运作及分析后,该系统发出对该需求的回复给使用者。经由这种科技,网络服务提供者能处理上百万甚至上千万的信息,以于数秒内达成网络服务,其服务表现不逊于一台超级计算机。
云端计算也是一种分享的IT架构,如同一台大型的虚拟服务器。许多计算机系统链接成一个大的资源库,用来提供IT服务。因为云端计算利用虚拟资源,它不被远程或近端的计算机硬件所限制。云端计算对储存容量有强大的需求,因此,这将推动对磁盘阵列的需求。
依照由云端计算所支持的不同服务及该服务所提供的对象,许多云端环境能被界定。例如私有云、公共云、小区云及混合云都在网络上能搜寻得到。虽然该些"云"的操作系统、容量、服务对象与资源不尽相同,有一种趋势是某些云能借整合,以提供更广的服务或分享它们的资源。现今,达成上述目标的开源项目或软件便于取得,Openstack(一个旨在为公共及私有云的建设与管理提供软件的开源项目)即为一例。
随着开源云端计算平台对所有云的开发,存在许多硬件的问题需要克服,例如硬件对云的兼容性就是一例。对于一个计算节点环境,它通常提供一设备(例如,硬盘及其用于Windows平台的设备驱动程序)共享的应用程序编程接口。每一设备供货商需要建置支持该应用程序编程接口的设备驱动程序,以提供其设备的服务。然而,如果该设备驱动程序需要延伸服务及/或计算节点环境转变(如,Windows平台升级到新的版本),每一个供货商就会增加许多工作量来改写该设备驱动程序。上述问题只发生在一单一的平台(操作系统)上,如果这问题关系到另一个云,就比较复杂而难解决了。
同时,有许多电器设备是"智能型"的,这意味着该电器设备以前是单机作业,但现今可以借由一中央处理单元驱动并连接到网络,以便于远程遥控。举例来说,云端印刷机就是一个例子。可能的情况下,家电设备,诸如电冰箱,亦能由云端的使用者所操控。用于该中央处理单元或与电器设备连接的计算节点的兼容性应用程序编程接口,应提供于每个相关的云端环境。但应用在云端的新增电器设备,可能需要新的应用程序编程接口,或者利用现有功能相似的应用程序编程接口来修改成可用的应用程序编程接口。这遇到了上述相似的问题。
虽然云端计算能提供方便及强效的服务,云端环境中相关的硬件的兼容性却是在云端间互联运作前,头一个遇到的问题。因此希望有一种方法,对于云端环境中的服务设备,能为应用程序编程接口封装必要的功能,以解决上述困扰。
发明内容
如上所述,应用程序编程接口可能无法支持所有连接到特定计算节点环境中的计算节点的服务设备。因此,对于云端环境中的服务设备,需要一种用来为应用程序编程接口封装必要的功能的方法。
因此,依照本发明的一种态样,提供一种在云端环境中为应用程序编程接口封装功能的方法,该方法包含步骤:A.提供由一驱动程序所支持的一应用程序编程接口;B.如果在一计算节点环境中,该应用程序编程接口可使用于一服务设备,则继承该应用程序编程接口为一新类别;C.为该服务设备扩充延伸功能至该驱动程序;及D.重新封装该驱动程序以符合该继承的应用程序编程接口。
其中,该方法在步骤B与步骤C之间进一步包含以下步骤:B1.提供一功能集,该功能集包含能使用于该服务设备的功能;B2.比较该驱动程序的功能与该功能集的功能;及B3.取该功能集中的至少一功能为该延伸功能,该至少一功能不包括于该驱动程序中。
较佳的情况是,该方法在步骤C与步骤D之间进一步包含一步骤:C1.收集该驱动程序中不包括于该功能集的至少一功能至该功能集。
依照本发明,当该应用程序编程接口能运行该服务设备且兼容于该计算节点环境时,该应用程序编程接口是可使用的。该云端环境由开源软件或私有软件而建置,而该服务设备为一储存设备或一接口设备。
此处,该储存设备为可重复录写光驱、只读记忆光驱、硬盘、固态硬盘、内存模块、磁带机或其他任何可储存数据的设备。该接口设备为印刷机、音响设备、视频设备、监视器、监视摄影机、家电设备或其他任何可脱机(网络)工作的设备。该计算节点环境能更新其操作系统至一新的版本,该应用程序编程接口兼容于该操作系统的最新版本。而该计算节点环境包含一计算节点,该计算节点为一服务器或个人计算机。
借由应用本发明,来自许多供货商的驱动程序能被转化至一特定的驱动程序中并封装于一应用程序编程接口,尤其适用于开源云端环境,比如Openstack所提供的环境。因而,由使用新的驱动程序(继承的应用程序编程接口),能对开源云端环境中的计算结点(如Nova计算机结点)提供管理服务。这也是对于云端环境中的服务设备,需要用来为应用程序编程接口封装必要的功能的方法。
附图说明
图1显示一云端环境的基础设备;
图2为本发明一实施例的在云端环境中为应用程序编程接口封装功能的一流程图;
图3为本发明另一实施例的在云端环境中为应用程序编程接口封装功能的一流程图;
图4为本发明又一实施例的在云端环境中为应用程序编程接口封装功能的一流程图;
图5为本发明一实施例的5个硬盘对一计算节点的存取示意图。
附图标记说明:100-应用服务器;200-储存服务器;205-对接站模块;210-硬盘;220-硬盘;230-硬盘;240-硬盘;250-硬盘。
具体实施方式
本发明将借由参照下列的实施例而更具体地描述。
请参阅图1。在云端环境中,存在许多计算节点,每一计算节点可具有一种特定的功能。举例而言,一应用服务器100可存取整个云端系统中所有的计算节点(未显示所有的计算节点),包含了一储存服务器200。在该云端环境中,每一计算节点可具有相同或不同的操作系统。即便某些计算节点应用相同的操作系统,可能也存在着版本上的差异。连接到计算节点的服务设备,可能会遇到更新不同操作版本的驱动程序到相关的应用程序编程接口的问题。新的服务设备的装设或旧服务设备的更新又可能是另一种不同的情景了。
在一实施例中,储存服务器200管理5个硬盘210、220、230、240与250。实施时,储存服务器200可以是一台个人计算机,装设了服务器操作系统,它可以脱机进行其它的工作。硬盘210、220、230、240与250是磁盘阵列,每个硬盘有一个储存管理模块(未绘示),依照经由储存服务器200的应用程序编程接口,来自驱动程序的命令,管理运作。其中一个需要送修而以一个新的替换,硬盘210表示为该新硬盘,是一个不同品牌的硬盘,提供与其它硬盘相同的功能但是驱动程序不同。当该硬盘210设置好并连接到储存服务器200时,它并不兼容于储存服务器200,某些功能无法执行。依照本发明,这问题现在可以获得解决。请参阅图2,流程如下所述。首先,在储存服务器200内的一对接站模块205取得由一驱动程序所支持的提供的应用程序编程接口(S11)并测试是否在一计算节点环境中,该应用程序编程接口可使用于硬盘210。此处,对接站模块205可以是一实体模块或装设于储存服务器200中的软件。较佳的情况是该对接站模块205是软件定义的(software-defined)。计算节点环境包含操作系统当时的版本。当应用程序编程接口能运行该硬盘210且兼容于计算节点环境时,应用程序编程接口是可使用的。如果测试结果是对的,对接站模块205将继承该应用程序编程接口为一新类别(S12),这里定义它做一继承的应用程序编程接口,以便于之后说明。
接着,储存服务器200将尝试校验是否有某些硬盘210的驱动程序的延伸功能。揭露于本实施例中的计算节点环境是在一开源软件,Openstack,下操作。因此,基于管理不同储存用途,所有的硬盘供货商提供他们硬盘的磁盘区驱动程序到Openstack的区块储存模块(Cinder module)中。通常,磁盘区驱动程序仅支持有限的功能,比如创造(create)、删除(delete)、指定(assign)、取消指定(unassign)及容积(volume),这些在应用程序编程接口中的基本功能可以被留下来使用。对于某些其它功能,如显示基本数据、设定数据、在指定池中建立容积、存取这些数据等等,可能没有包含于应用程序编程接口的功能中。然而,这些功能对硬盘210的驱动程序而言是可采用的。因此,对接站模块205将为硬盘220、230、240与250,扩充这些功能为延伸功能到驱动程序中(S13),以重新封装该驱动程序方式,来符合继承的应用程序编程接口(S14)。
需要强调的是云端环境能由开源软件或私有软件所建置,因此,使用的软件不仅限定于Openstack,其他合适的开源或私有软件,甚至一个既有的平台也可以考虑使用。由本实施例可以清楚的知道该计算节点(储存服务器200)是负责存取硬盘的。事实上,该计算节点可以是一个服务器,用来管理数个其它设备,比如其它的储存设备或接口设备(服务设备)。举例而言,一台服务器能被用来控制数个可重复录写光驱,以读写数据。它可以是储存设备,不局限于硬盘与可重复录写光驱,还包括了只读记忆光驱、固态硬盘、内存模块、磁带机或其他任何可储存数据的设备。相似地,一计算节点也可被用来管理某些其他设备,如具有特定功能且能脱机(网络)作业的接口设备。一个较佳的例子是遥控监视摄影机。每一个识别的客户端经由一云端系统,可以观看由数个安置的监视摄影机所提供的实时视频。该遥控监视摄影机也能不在开放环境(连接网络)下作业。然而,当一监视摄影机需要在监视系统中进行更换,如同上方描述的实施例中同样的需求产生了。对于这些设备,依照以上所提相同的程序,额外的功能能够加到相关的应用程序编程接口中。值得注意的是实施时,接口设备可以是印刷机、音响设备、视频设备、监视器或家电设备。特别是,对家电设备而言,因为许多家电设备已经智能化,且能经由网络而控制,它可以被视为一独立的计算节点,或者经由其它计算节点连接到云端。本发明对此仍然适用。
另一个重点是该计算节点环境被允许并且能更新其操作系统至一新的版本,应用程序编程接口应兼容于该操作系统的最新版本。如果所有计算节点环境(操作系统)同时更换,对接站模块205会认为所有的设备(包括5个硬盘)被替换掉了,而尝试为所有新设备与操作系统,依照上述流程,重新封装现有应用程序编程接口,除非在新的计算节点环境下应用程序编程接口不可使用于这些设备。
在另一实施例中,当对接站模块205具有一不同功能(ID记录)是所有硬盘驱动程序都不支持的,本发明提供以下步骤用于封装该ID记录功能到应用程序编程接口中。请参阅图3。首先,对接站模块205取得由一驱动程序所支持的提供的应用程序编程接口(S21)并测试是否在一计算节点环境中,该应用程序编程接口可使用于硬盘210、220、230、240及250。这步骤用来测试是否现有应用程序编程接口可堪应用。如果测试结果是可以的,对接站模块205将继承该应用程序编程接口为一新类别(S22),它就变成一继承的应用程序编程接口。接着,对接站模块205提供含有多个功能(并非仅包含该ID记录功能)的一功能集,给硬盘210、220、230、240及250使用(S23),并比较该驱动程序的功能与功能集的功能(S24)。对接站模块205取功能集中,不包括于该驱动程序中的ID记录功能,为上述的延伸功能(如果有其他不包括于驱动程序中的功能,这些功能也会被选取)(S25)。相似地,对接站模块205将为这5个硬盘,扩充延伸功能到驱动程序中(S26),以重新封装该驱动程序方式,来符合继承的应用程序编程接口(S27)。
在另一实施例中,当对接站模块205找到硬盘240与250的驱动程序具有2个功能是现有应用程序编程接口不支持的,并且也是对接站模块205所没有的,本发明提供以下的步骤用于封装功能到应用程序编程接口中。
请参照图4。首先,对接站模块205取得由一驱动程序所支持的现有的应用程序编程接口(S31)并测试是否在一计算节点环境中,该应用程序编程接口可使用于硬盘210、220、230、240及250。如果测试结果是对的,对接站模块205将继承该应用程序编程接口为一新类别(S32),它就变成一继承的应用程序编程接口。接着,对接站模块205收集至少一该驱动程序不包括于该功能集的功能(S33),这意味着对对接站模块205而言,取得任何硬盘(服务设备)可能需要的功能是可选择的。相似地,对接站模块205将为硬盘210、220与230,扩充延伸功能到驱动程序中(S34)以重新封装该驱动程序方式,来符合继承的应用程序编程接口(S35)。
请见图5。对借由对接站模块205的协助,而能延伸额外功能的3个硬盘210、220与230来说,它们能直接使用原本驱动程序不支持的功能到储存服务器200的计算节点环境(以虚线显示)中,而2个硬盘240与250经由继承的应用程序编程接口,仍能正常运作这些功能。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,作些许的更动与润饰,都落入本发明的保护范围内。
Claims (11)
1.一种在云端环境中为应用程序编程接口封装功能的方法,其特征在于,包含步骤:
A.一应用程序编程接口提供给一对接站模块,以测试该应用程序编程接口是否在一计算节点环境中,该应用程序编程接口可使用于一服务设备,其中该应用程序编程接口由一驱动程序所支持;
B.如果在一计算节点环境中,该应用程序编程接口可使用于该服务设备,则该对接站模块继承该应用程序编程接口为一新类别;
C.为该服务设备扩充延伸功能至该驱动程序;及
D.重新封装该驱动程序以符合继承的该应用程序编程接口。
2.如权利要求1所述的方法,其特征在于,在步骤B与步骤C之间进一步包含以下步骤:
B1.提供一功能集,该功能集包含能使用于该服务设备的功能;
B2.比较该驱动程序的功能与该功能集的功能;及
B3.取该功能集中的至少一功能为延伸功能,该至少一功能不包括于该驱动程序中。
3.如权利要求2所述的方法,其特征在于,在步骤B与步骤C之间进一步包含一步骤:
B4.收集该驱动程序中不包括于该功能集的至少一功能至该功能集。
4.如权利要求1所述的方法,其中当该应用程序编程接口能运行该服务设备且兼容于该计算节点环境时,该应用程序编程接口是可用的。
5.如权利要求1所述的方法,其中该云端环境由开源软件或私有软件建置。
6.如权利要求1所述的方法,其中该服务设备为一储存设备或一接口设备。
7.如权利要求6所述的方法,其中该储存设备为可重复录写光驱、只读记忆光驱、硬盘、内存模块或磁带机。
8.如权利要求6所述的方法,其中该接口设备为印刷机、音响设备、视频设备、监视器、监视摄影机或家电设备。
9.如权利要求1所述的方法,其中该计算节点环境能更新其操作系统至一新的版本,该应用程序编程接口兼容于该操作系统的最新版本。
10.如权利要求1所述的方法,其中该计算节点环境包含一计算节点。
11.如权利要求10所述的方法,其中该计算节点为一服务器或个人计算机。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410257928.8A CN105320500B (zh) | 2014-06-11 | 2014-06-11 | 在云端环境中为应用程序编程接口封装功能的方法 |
HK16108995.0A HK1221034A1 (zh) | 2014-06-11 | 2016-07-27 | 在雲端環境中爲應用程序編程接口封裝功能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410257928.8A CN105320500B (zh) | 2014-06-11 | 2014-06-11 | 在云端环境中为应用程序编程接口封装功能的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105320500A CN105320500A (zh) | 2016-02-10 |
CN105320500B true CN105320500B (zh) | 2018-08-03 |
Family
ID=55247936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410257928.8A Active CN105320500B (zh) | 2014-06-11 | 2014-06-11 | 在云端环境中为应用程序编程接口封装功能的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105320500B (zh) |
HK (1) | HK1221034A1 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1417680A (zh) * | 2002-12-30 | 2003-05-14 | 北京北大方正电子有限公司 | 一种外挂式影像捕捉设备功能扩充方法 |
CN1782996A (zh) * | 2004-11-23 | 2006-06-07 | 微软公司 | 辅助显示器的可扩展体系结构 |
CN1838060A (zh) * | 2005-03-25 | 2006-09-27 | 富士施乐株式会社 | 功能转换装置和功能转换方法 |
-
2014
- 2014-06-11 CN CN201410257928.8A patent/CN105320500B/zh active Active
-
2016
- 2016-07-27 HK HK16108995.0A patent/HK1221034A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1417680A (zh) * | 2002-12-30 | 2003-05-14 | 北京北大方正电子有限公司 | 一种外挂式影像捕捉设备功能扩充方法 |
CN1782996A (zh) * | 2004-11-23 | 2006-06-07 | 微软公司 | 辅助显示器的可扩展体系结构 |
CN1838060A (zh) * | 2005-03-25 | 2006-09-27 | 富士施乐株式会社 | 功能转换装置和功能转换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105320500A (zh) | 2016-02-10 |
HK1221034A1 (zh) | 2017-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111505938B (zh) | 具有能源优化构建器和类属数据模型设计器的建筑物自动化系统 | |
CN108537543A (zh) | 区块链数据的并行处理方法、装置、设备和存储介质 | |
CN102880532B (zh) | 以云端技术为基础的测试系统与方法 | |
US9274834B2 (en) | Remote service for executing resource allocation analyses for computer network facilities | |
CN104185967B (zh) | 管理服务器云中的按需扩容 | |
CN107122321A (zh) | 硬件修复方法、硬件修复系统以及计算机可读取存储装置 | |
TWI714856B (zh) | 基於物聯網的資料獲取系統、方法及可讀存儲介質 | |
CN105324760A (zh) | 预配置和预启动计算资源 | |
CN105492997B (zh) | 优化服务器/机架系统的启动时的峰值功耗 | |
TW202046161A (zh) | 透過擴增實境與可用傳感器資料對資料中心進行定位與導航之系統及方法 | |
CN104981770A (zh) | 资源的注释 | |
CN102752294B (zh) | 基于设备能力的多终端数据同步方法和系统 | |
US20210174189A1 (en) | Optimization Framework for Real-Time Rendering of Media Using Machine Learning Techniques | |
CN109684038B (zh) | Docker服务容器日志的处理方法、装置和电子设备 | |
TW200839508A (en) | System and method for dynamic generation of environmental operational models | |
CN103118073A (zh) | 一种云环境下虚拟机数据持久化存储系统和方法 | |
CN105812423B (zh) | 一种云系统配置方法、服务器及装置 | |
CN102710740A (zh) | 使用设备功能的设备标识 | |
CN105453039A (zh) | 用于在高输入/输出负载环境中即时恢复虚拟机的系统和方法 | |
CN112735041A (zh) | 共享产品的借用方法、装置、设备及存储介质 | |
US20200167183A1 (en) | Electronic apparatus and control method thereof | |
CN104219175A (zh) | 数据交换与服务调用系统及方法 | |
US8856785B2 (en) | Predicting and generating a quantity of image clones | |
US11216211B1 (en) | Emulated block storage for devices | |
CN105320500B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1221034 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |