发明内容
本发明的一个目的在于克服现有技术的缺陷,提供一种可以根据现有的云计算资源进行灵活的资源调度的方法和系统,从而解决现有技术中资源类型的重新调配,避免云计算资源订阅较多,且存在的资源负荷不均匀以及资源闲置的问题,使得企业对于云计算资源利用更加充分。
根据本发明的一个方面,本发明首先公开了一种云计算环境下资源的调度方法,包括:
节点接收资源请求主机发起的第一资源分配请求;
根据第一资源分配请求的类型判断节点用于调度第一资源分配请求时,返回包含已分配资源的请求路径;
在通过所述请求路径执行资源的调用时,节点将资源的请求映射至包含第一资源和第二资源的资源池,其中,第一资源的类型和第一资源分配请求的资源类型一致,第二资源的类型为第一资源分配请求的资源类型的替代类型;
节点对第一资源进行直接存取或者调用,通过转换器对第二资源进行存取或调用,所述转换器将对第一资源的类型的请求转换为第二资源的请求。
根据本发明的一个实施例,所述第一资源分配请求包括云计算资源的地域、云计算资源的提供商、请求云计算资源的类型、需求额度、资源规格和回调地址。
根据本发明的一个实施例,根据云计算资源的提供商、请求云计算资源的类型、需求额度和资源规格获取第一业务处理器,根据资源规则配置第一业务处理器的驱动程序,第一业务处理器通过驱动程序访问第一资源,根据第一业务处理器的驱动程序获取关联的第二业务处理器,根据第一业务处理器和第二业务处理器构建资源池。
如在存取文件时,通过提供的第一业务处理器可以实现文件的存取,通过第二业务处理器时,需要借助于协议进行不同于原始请求资源类型的存取。
根据本发明的一个实施例,根据云计算资源的地域和请求云计算资源的类型选择第一业务处理器。
根据本发明的一个实施例,将包含已分配资源的请求路径发送至回调地址。
根据本发明的一个实施例,节点根据第一资源和第二资源的额度确定待资源分配的存储位置,并使得第一资源和第二资源消耗的额度比不大于第一资源和第二资源的可用额度比。
根据本发明的一个实施例,所述请求云计算资源的类型为对象存储、二进制对象存储、图像资源和文档存储。
根据本发明的一个实施例,根据第一资源分配请求的类型判断节点用于调度第一资源分配请求包括:
判断节点上是否存在和第一资源分配请求的云计算资源类型和资源规格一致或等效的资源;
如果不存在,则当前节点不用于调度第一资源分配请求;
如果存在,当前节点用于调度第一资源分配请求。
根据本发明的一个实施例,对保存于第一资源和第二资源的标识符引用次数进行计数,执行计划任务,基于引用计数,将第一资源内引用次数最低的资源移动至第二资源内,将第二资源内引用次数最高的资源移动至第一资源内。
根据本发明的另外一个方面,本发明还公开了一种云计算环境下资源的调度系统,包括:
资源分配接收单元,用于接收资源请求主机发起的第一资源分配请求;
资源分配调度单元,用于根据第一资源分配请求的类型判断节点是否用于调度第一资源分配请求;
资源分配单元,用于返回包含回调地址的请求路径;
在通过所述请求路径执行资源的调用时,资源分配单元将资源的请求映射至包含第一资源和第二资源的资源池,其中,第一资源的类型和第一资源分配请求的资源类型一致,第二资源的类型为第一资源分配请求的资源类型的替代类型;
节点通过第一资源进行直接存取或者调用,通过转换器对第二资源进行存取或调用,所述转换器将对第一资源的类型的请求转换为第二资源的请求。
本发明具有如下的有益效果:
1.可以灵活的根据现有的资源以及现有的资源类型获取可分配的资源,从而使得资源分配考虑速度和资源特性,充分利用现有的资源;
2.在存在资源调度的需求时,根据资源的调度需求进行资源的分配;依据资源的类型进行分配,并且分配是基于实际需求的资源类型,且至少分配实际需求的资源类型的替代资源,从而使得资源负载利用了现有的资源,而并不是单纯的依赖于实际的云计算资源类型;
3.通过提供第一分配资源提供了满足基础要求的云计算资源,通过第二资源,提供了满足扩展需求的云计算资源,通过提供替代的资源访问方式,提供了对于现有资源的重复利用率,降低了订阅成本以及变动配置引起的业务暂停;
4.实现了对于资源的替代,例如针对文档既可以通过文档数据库进行,也可以通过文件存储的方式进行。
5.可以根据云计算资源的提供商、需求额度和资源规格提供替代资源。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
在进行详细的对方案的说明之前,对本发明所涉及的部分概念进行概要的说明。
以较为简易的文件存储为例,提供若干种云上的解决方案为例进行说明。
对象存储OSS提供海量、安全、低成本、高可靠的云存储服务,其具有与平台无关的RESTful API接口,因此可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
OSS通过API提供返回请求者拥有的所有存储空间、创建Bucket、删除Bucket、上传Object、获取Object、拷贝Object、以追加写的方式上传Object、删除单个Object、删除多个Object、只返回某个Object的meta信息,不返回文件内容。
云硬盘CBS是一种高可用、高可靠、低成本和可定制化的块存储设备,可以作为云服务器的独立可扩展硬盘使用,为云服务器实例提供存储设备。云硬盘提供数据块级别的持久性存储,具有高可用、高可靠和高性能的特点。云硬盘虽然运营商不提供API直接访问的方式,但是可以通过SMB协议的方式进行访问,以提供和OSS类似的方法。
MySQL云数据库提供了基于云的数据库服务。BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。在使用JDBC存储blob时,可以通过在Statement内建立一个SerialBlob的方式或者直接使用setBytes()来实现对于二进制对象的保存。
如上涉及了三类不同的资源,但是很显然,尽管不同的服务商对于同一类型的服务提供不同的接口,但是通过观察其主要的接口特征,可以设置一些共有的参数可以来提供近似的服务。
为了实现本发明的技术方案,我们首先进行了如下的尝试,即使用不同服务商的对象存储来实现相同的功能,以及使用不同的云资源来实现相同的功能。
对对象存储进行分析,其涉及对象的存取调用均包括公共请求头,而这部分请求和调用需要独立撰写为各个云服务商自有的业务逻辑,而对于其中的上传Object、获取Object、拷贝Object、以追加写的方式上传Object、删除单个Object、删除多个Object则大同小异。
因此,我们参考了File的方式设计了一个业务的处理器MixFile,定义了如下的操作:
public long getCreateTime();
public void write(byte[]bytes);
public byte[] get(int length);
public byte[] get(int offset,int length);
public void copy(String dest);
public void append(byte[]tar);
public void delete();
public Map metaData();
上文是以java语言编写的伪代码,涉及public、long、byte、void标识公开、长整型、比特、方法等原有含义,各行的方法提供了抽象的获取创建时间、写入、获取从0开始的指定长度的二进制序列、获取从指定偏移位置的二进制序列、复制到指定URI(私有协议)、追加写二进制、删除、获取二进制信息。
则对应于对象存储,其实现的功能可以如下等效替代,即:
上传Object相当于MixFile的write;
获取Object相当于MixFile的get;
以追加写的方式上传Object相当于MixFile的append;
删除单个Object相当于MixFile的delete();
返回某个Object的meta信息相当于metaData();
诸如此类不再赘述。
对于云硬盘,其通过SMB挂载时,通过JCIFS,其可以提供较易的访问方式,其提供的接口请参考http://jcifs.org/src/docs/api/。
对于Mysql数据库,对于文件的读取使用对PreparedStatement或者Statement的包装,并借助于事务来实现对于资源的保存。例如上传文件,实际上可以保存在一个表内的BLOB的列内,则创建一个存储资源的过程可以包括:新建一个空白行,获取空白行的标识idt,向标识为idt的空白行写入数据,标记资源为存储完成。
即除底层的账户信息、资源地址以及API外,大多数的资源存储可以被抽象化,基于对现有资源的访问实践的改进,提出了本发明的方法。
请参考图1和图2,本发明提供的一种云计算环境下资源的调度方法,包括:
节点接收资源请求主机发起的第一资源分配请求;
根据第一资源分配请求的类型判断节点用于调度第一资源分配请求时,响应于第一资源分配请求,返回包含已分配资源的请求路径;
在通过所述请求路径执行资源的调用时,节点将资源的请求映射至包含第一资源和第二资源的资源池,其中,第一资源的类型和第一资源分配请求的资源类型一致,第二资源的类型为第一资源分配请求的资源类型的替代类型;
节点对第一资源进行直接存取或者调用,通过转换器对第二资源进行存取或调用,所述转换器将对第一资源的类型的请求转换为第二资源的请求。
所述的节点为调度服务器,其典型的可以为API接口服务器,在约定开发规范的情况下,可以设置一个服务器用于处理多种类型的资源请求,并通过请求内POST的数据来对请求进行区分。
所述的第一资源分配请求优先以POST的格式被请求,为了避免恶意资源分配的请求,可以为请求的实体配置验证参数。
所述的第一资源分配请求中应当包含符合开发规范的资源类型,例如使用KV来指示键值,File来指示文件,并在“ResourceType”内指明。
使用上述的方式可以灵活的根据现有的资源以及现有的资源类型获取可分配的资源,从而使得资源分配考虑速度和资源特性,充分利用现有的资源;
进一步的,在存在资源调度的需求时,根据资源的调度需求进行资源的分配;对资源的分配依据资源的类型进行分配,并且分配是基于实际需求的资源类型,且至少分配实际需求的资源类型的替代资源,从而使得资源负载利用了现有的资源,而并不是单纯的依赖于实际的云计算资源类型;
更进一步的,通过提供第一分配资源提供了满足基础要求的云计算资源,通过第二资源,提供了满足扩展需求的云计算资源,通过提供替代的资源访问方式,提供了对于现有资源的重复利用率,降低了订阅成本以及变动配置引起的业务暂停。例如,预期保存方式为对象存储OSS时,通过提供的云原生API提供存储;否则通过一个中间件进行存储。
上述的方式适用于订阅多种云计算资源的情形,通过进行上述资源的调配,从而获得对和第一类型资源具有近似属性的二次资源,从而提供对于现有资源的重复利用,进一步在降低资源占用的同时提供服务。
提供的转换器可以通过路径转换的形式提供服务,从而使得对于特定云资源的调用实现服务化的提供,例如对于文件的保存时,可以通过提供多个服务进行,此服务可以为直接保存到云硬盘,或者是保存到对象桶,或者是保存到归档存储,或是保存到内容分发网络内。
提供的转换器类型可根据第一类型资源或者第二资源类型进行转换,或者选定终点的类型进行转换,即节点中针对不同的资源构建不同的业务处理器,并配置默认的云资源访问参数,通过重载或者具体语言实现业务处理器实际的业务方法来访问特定的资源。例如,通过保存到SMB协议访问的云硬盘来替代数据库保存的方式提高响应速度。
为了简化配置实现较高的负载,根据第一资源分配请求的类型判断节点用于调度第一资源分配请求时,可以在第一资源分配请求中根据请求的资源类型计算出一个校验码,节点服务器根据此校验码来判断是否为调度所需资源。
例如,针对地域,可以设置一个常量的数组,如0x0到0x10可以标识16个地域的信息;可以根据请求地域的标识和节点所包含的地域标识的按位与&操作产生的数值是否大于0,判断是否满足地域;近似的,如果0x0到0x10可以标识16类不同的文件,则可以根据请求的资源标识和节点所包含的资源表示的按位与&结果来判断是否满足资源类型的需求。如果进一步拓展资源类型的级别,例如使用三组0x0-0xf来表示不同的资源,则使用一个32整数即可以实现常见的资源组合。
进一步的,通过XML、固化的参数或者Restful端口配置云资源的具体参数,当使用的资源为对象存储时,使用的业务处理器所需要的实际参数包括:
{AuthorizationString:"",HostName:"",SecretKey:"",Bucket:""},
其中,AuthorizationString为鉴权字符串,HostName为宿主机的名称,SecretKey为密钥字符串,Bucket为存储桶的名称,上述的一些字段可以为固化的值,也可以是节点侧根据业务调用而从路径获取,通过此方式可以在保障安全性的同时提供对于资源的访问,避免硬编码时泄露云账户的安全信息。
在执行对象的存储时,可以返回对象的tag和校验码VerifyCode,其中前者为在对象存储内的值,后者为在业务处理器内的校验码,在使用和本地一致校验的方式时,可以确定对象是否被对象存储正确存储。
在进行存储时,一个待存储对象可以包括标识符和二进制内容,根据其二进制内容可以获取其校验码,在未进行存储时,对象的标识符为空,在被存储到服务器后,该对象持有和节点返回的tag一致的标识符。
进一步的,当时用的资源为文件存储时,以SMB形式访问为例,使用的业务处理器实际的参数包括:
{AuthorizationString:"",HostName:""},
AuthorizationString为鉴权字符串,具体包括用户名和密码,HostName为宿主机的名称即SMB磁盘的地址,可以通过SMB的API在目标宿主机上写入对应的文件。
基于以上描述可以获取,在针对每一存储的对象设置对应的读写器时,可以借助于将相应的文件转换为中间对象存储,来实现在不同类型云计算资源的存储。
根据本发明的一个实施例,所述第一资源分配请求包括云计算资源的地域、云计算资源的提供商、请求云计算资源的类型、需求额度、资源规格和回调地址。
所述云计算资源的地域用于确定对于资源请求方具有较快相应的服务器,由于在执行资源的分配时,同一云计算提供商在多个地域的资源具备较好的响应的速度以及同一区域内的不同资源具有较快的内网传输速度,因而在存在不同云计算资源的提供商时,优先考虑同一云计算资源的提供商,其次考虑云计算资源的地域;
进一步的,请求云计算资源的类型包括文件存储、对象储存或二进制文件存储。
本发明的一个创新点即实现对于资源的替代,例如针对文档既可以通过文档数据库进行,也可以通过文件存储的方式进行,也可以通过云硬盘的方式进行,也可以通过在数据库内保存二进制对象的形式进行,从而可以实现资源的重复利用;
在请求信息提供云计算资源的类型时,即可以根据类型提供相应的替代方法以及资源地址;
例如:
文件对应的第一存储方案为云硬盘,第二存储方案为对象存储、文档数据库存储和关系数据库存储;
包含多个键值的配置信息的第一存储方案为键值型数据库,第二存储方案为对象存储、关系型数据库。
上述的方式为提供涉及较为基础的云计算资源的请求和分配,对于非底层的应用,例如是针对一个应用进行的,通过对其进行资源进行分解,也可以实现同样的资源的替代。
在进行资源替代时,通过转换器可以实现对于替代资源的读取,实现从第一资源到第二资源的转换。
上述的方案的改进在使用同一业务提供商时,相应的云计算资源的提供商可以被设置为空值。
在使用不同的业务提供商时,可以考虑延时的因素,但是如果考虑存储的内容包含了延时获取,例如即时存入和延时5分钟方可获取的冷档存储,则可以进一步的考虑业务类型的差异,进一步的配置所使用的令牌。
根据本发明的一个实施例,根据云计算资源的提供商、请求云计算资源的类型、需求额度和资源规格获取第一业务处理器,根据资源规则配置第一业务处理器的驱动程序,第一业务处理器通过驱动程序访问第一资源,根据第一业务处理器的驱动程序获取关联的第二业务处理器,根据第一业务处理器和第二业务处理器构建资源池。
如在存取文件时,通过资源请求的参数使用SMB确定了第一业务处理器。以及使用JCIFS访问云硬盘,通过第一业务处理器的驱动可以实现云硬盘文件的存取,通过第二业务处理器时,需要借助于协议进行不同于原始请求资源类型的存取,即服务器更改请求的参数和回调地址类型至Mysql数据库服务器,并通过返回Blob作为响应;此处选择第二业务处理器时,基于第一业务处理器的驱动程序选择,这里第一业务处理的驱动程序为对JCIFS的封装,其通过实现接口的形式来提供实际的服务;第二业务处理器为具有和第一业务处理器一致的接口,并通过是否实现共有的接口来判断第一业务处理器和第二业务处理器是否具有关联。这里使用了接口而并非是通过继承的方式来实现业务逻辑为避免出现预期外的云资源调用,即每个接口的行为应当和具体业务处理器一致对应,在实际进行时,为了避免通过反射构建实例时访问了不安全的代码,我们通过驱动程序的名称进行业务处理器的选择,即构建一个图或者字典,图或字典的键为驱动程序的名称,图或字典的值为一个列表,列表的成员为业务处理器。例如,对于保存二进制文件,可使用MySQL、文件、对象桶,那么对应于Map中键值为mysql的键,其包括如对象存储驱动、文件存储驱动,即在第一业务处理器被默认的配置为mysql的驱动程序时,通过查询图或字典来确定第二业务处理器。应当意识到,此处仅仅是示例性质的,如通过Restful接口也可以查询对应于一个驱动程序的其他业务处理器(输入第一业务处理器类型,由服务器返回第二业务处理器的类型),或者通过关联图(输入第一业务处理器类型,通过设置边的属性来确定下一个连接点)来确定,或者在预配置的文件中(例如在XML中对每个业务处理器进行单独的配置,即在一个元素下设置对应于一个业务处理器的其他可选业务处理器)可以确定,相应的形式可以根据需要灵活选择。
关联的第二业务处理器和第一业务处理器具有一致的请求云计算资源的规格。
在本发明的一个实施例中,假设指定的第一提供商的名称为ISP1,请求的云计算资源的类型为二进制存储、地域为目标地Dest1、需求额度为3Mb、资源规则为File,回调地址为http://server:port/ModuleName,
则一个处理此资源的过程可能包括,应用服务器向节点服务器发起请求,节点服务器首先获取云计算资源的类型,获得其为二进制存储和File类型的数据,根据此可以将其匹配到一个业务处理器中,在此记为第一业务处理器,对应于第一资源;
可以基于节点上注册的业务处理器进行近似业务处理器的选择,例如根据云计算资源的资源规则和云计算资源的提供商组合进行筛选,或者根据云计算资源的地域、请求云计算资源的类型和需求额度进行筛选,通过对第一资源分配请求内的信息进行组合筛选,以获取具有不同目的的云计算资源调度策略。
上述业务处理器的选择过程中,资源规则可以为预制或者设置映射以确定。
应当明白,对于回调地址的使用应当在应用服务器端执行,而避免在用户终端UE侧执行,以避免安全信息的泄露以及用户体验的降低。
例如,请求具有如下的实体:
{IPS:"IPS1",DataType:"BLOB",DesRegion:"ProvinceName1",Data-Length:10254154,GenericType:"File",CallBack:"http://server:port/ModuleName?ProjectName=p"},
其实际请求内容为云计算资源的提供商为"IPS1",数据类型为大二禁制对象"BLOB",目标地域为"ProvinceName1",数据长度为10254154,资源规格为"File",回调地址为"http://server:port/ModuleName?ProjectName=p",
对第一业务处理器的选择过程可能为,获取所有云计算资源的提供商为"IPS1",数据类型为大二禁制对象"BLOB"和资源规格为"File"的业务处理器作为第一业务处理器,此阶段可能获取多个业务处理器作为第一业务处理器,之后基于第一业务处理器进行筛选,如载入所有的业务处理器,将其和第一业务处理器进行比对,选择具有可通过转换器进行云计算资源操作的业务处理器作为第二业务处理器,对应第二资源,并基于此进行后续的资源请求的转换和实际的分配调用。此处的比对可以通过类的反射实现,或者比对第一业务处理器和第二业务处理器是否具有共同的方法名称来比对,或者基于前文列出的基于驱动程序而选择。
在本发明中,通过业务处理器(对第一业务处理器所涉及的第一资源直接进行存储和调用,对第二业务处理器进行转换后调用和存取)进行节点到资源池实际云资源的存取或调用。
根据本发明的一个实施例,根据云计算资源的地域和请求云计算资源的类型选择第一业务处理器。
在同一地域内,通信速度和云计算资源的提供商的来源影响较小时,可以不考虑云计算资源提供商的差异,均将其作为第一业务处理器。
例如,对于同一地域,同时存在两个不同的存储资源时,对节点服务器而言,同一地域的内网带宽显然满足需求,但是对于其他服务商的存储资源,假设不考虑带宽,或者流量消耗在接受的范围内,则将其作为第一业务处理器可以满足成本和功能的需求。
进一步的,可以根据云计算资源的提供商、需求额度和资源规格选择第二业务处理器,从而提供替代的第二资源。
进一步的,可以在筛选第一业务处理器和第二业务处理器时排除临期或者到期时间在预设值之内的云计算资源,例如到期时间6月内的资源不被选择。
在本发明的一个实施例中,将包含已分配资源的请求路径发送至回调地址。
在将已分配资源的请求路径发送至回调地址后,资源分配的发起方可以获取用于保存资源的地址,此地址可以用一令牌和标识符进行组合标识,以确保资源发起方在指定的时间内进行资源的调用。
在本发明的一个实施例中,节点根据第一资源和第二资源的额度确定待资源分配的存储位置,并使得第一资源和第二资源消耗的额度比不大于第一资源和第二资源的可用额度比。
本发明中,第一业务处理器和第二业务处理器均持有资源订阅,此处的资源订阅可以为资源的实际数额,或者函数可以被调用的次数,对于部分后付费的资源,其限额可以设置为已有资源的百分比,例如总是以5%的配额进行增长,如已经使用的空间为100TB时,可以将5TB作为其可以用资源额度。
可以根据第一业务处理器所持有的订阅资源进行统计,获取可用的第一资源总数,根据第二业务处理器所持有的订阅资源进行统计,获取可用的第二资源配额,将其进行比对以获取资源分配的比例,从而使资源请求按照现有的比例进行分配。
根据本发明的一个实施例,所述请求云计算资源的类型为对象存储、二进制对象存储、图像资源和文档存储。
通过此方式可以实现对于文件类型、普通二进制对象和对象的存储。
在本发明的一个实施例中,根据第一资源分配请求的类型判断节点用于调度第一资源分配请求包括:
判断节点上是否存在和第一资源分配请求的云计算资源类型和资源规格一致或等效的资源;
如果不存在,则当前节点不用于调度第一资源分配请求;
如果存在,当前节点用于调度第一资源分配请求。
在当前节点不用于节点调度时,资源分配的请求方可以根据此捕获异常或者错误代码error-code,并进一步采取其他的云资源的请求。
根据本发明的一个实施例,对保存于第一资源和第二资源的标识符引用次数进行计数,执行计划任务,基于引用计数,将第一资源内引用次数最低的资源移动至第二资源内,将第二资源内引用次数最高的资源移动至第一资源内。
通过此方式可以实现对于第一资源和第二资源的动态资源更新,并使得常用的资源总是以预期的形式提供。
在本发明的一个实施例中,一种云计算环境下资源的调度方法,包括:
资源分配接收单元,用于接收资源请求主机发起的第一资源分配请求;
资源分配调度单元,用于根据第一资源分配请求的类型判断节点是否用于调度第一资源分配请求;
资源分配单元,响应于第一资源分配请求,返回包含回调地址的请求路径;
在通过所述请求路径执行资源的调用时,资源分配单元将资源的请求映射至包含第一资源和第二资源的资源池,其中,第一资源的类型和第一资源分配请求的资源类型一致,第二资源的类型为第一资源分配请求的资源类型的替代类型;
节点通过第一资源进行直接存取或者调用,通过转换器对第二资源进行存取或调用,所述转换器将对第一资源的类型的请求转换为第二资源的请求。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。