用于自组织网络的方法和设备
对于相关申请的交叉引用
本发明要求在2013年4月2日提交的、题目为“用于自组织网络的方法和设备”的美国临时申请61/807,418的优先权,其通过引用被并入在此以用于各种目的。
技术领域
自组织网络(Self Organizing Network,SON)指的是自动化关键网络配置和优化函数的技术。这些技术经常实现特定的SON“用例(use cases)”。可以在下一代移动网络(NGMN)联盟出版物“NGMN informative List of SON Use Cases”和第三代合作伙伴计划(3GPP)出版物36.902“Configuring and self-optimizing network(SON)use cases andsolutions”中找到SON用例的示例。然而,可以指定除了在这些出版物中的那些SON用例之外的其他的SON用例。
背景技术
在通信网络中,SON系统实现SON用例以配置和优化通信网络的性能。通常,SON系统实现指定的一组SON用例,并且要求来自SON系统提供者(provider)的更新以实现另外的SON用例。网络的操作者(operator)因此依赖于SON系统的提供者来实现新的SON用例。在一些情况下,操作者可以具有他们想要在网络中实现的他们自己的SON用例。然而,如果SON系统供应者未在SON系统产品中实现这些用例,则操作者可能永不看到这些用例被实现。
发明内容
本发明的实施例提供了一种SON系统,其允许操作者或其他第三方开发和实现用于另外的SON用例的逻辑,并且在诸如无线通信网络的通信网络中部署和测试这个逻辑,而不依赖于SON系统提供者。在本文中描述的方法和设备允许在通信网络中部署、管理和配置已知的SON用例及可以被识别的其他用例。
一种用于在通信网络中运行自组织网络(SON)模块的方法的一个实施例包括:提供用于SON框架的开放应用编程接口(Application Programming Interface,API);并且,执行所述SON模块,其中,所述SON模块使用所述API来访问所述SON框架的功能(functionality)。
在一个实施例中,所述方法还包括通过用户接口(user interface)向所述SON框架内加载(load)所述SON模块。所述SON模块可以被除SON系统提供者之外的开发者建立,并且被除所述SON系统提供者之外的操作者加载到所述SON框架内。
在一个实施例中,所述SON模块被实现为状态机。所述方法可以还包括:启动所述状态机;等待事件触发;并且,当所述事件触发发生时,执行所述状态机的主函数(primaryfunction),并且退出所述SON模块。所述方法可以还包括:启动所述状态机;等待事件触发;并且,当所述事件触发发生时,执行所述状态机的主函数,并且将所述状态机返回到等待事件触发的状态。
在一个实施例中,所述方法还包括:在所述API中提供配置接口(configurationinterface);接受用户通过所述配置接口输入的配置参数;并且,当执行所述SON模块时通过所述SON框架来检索所述配置参数。所述配置参数可以包括参数名称、参数描述、参数类型、参数默认值和参数范围的一个或多个。
在一个实施例中,所述方法还包括从所述SON模块向所述SON框架发送关于要监控的外部事件的信息;并且,通过所述SON框架来监控所述外部事件。当所述SON框架检测到外部事件时,可以向所述SON模块发送所述外部事件信息。所述事件可以是关键性能指标(KeyPerformance Indicator,KPI)可用事件、警报事件、配置改变事件或由外部系统对网络作出的改变。
在一个实施例中,所述方法还包括:使用所述API来访问网络运营支撑系统(Operations Support System,OSS)信息。
在一个实施例中,所述SON模块使用所述API来在所述SON系统的用户接口上显示信息。
在一个实施例中,所述SON模块具有优先级,并且所述SON框架使用所述优先级来确定是否执行所述SON模块。
在一个实施例中,所述方法还包括:通过所述SON模块启动子SON模块。所述SON框架可以允许所述SON模块启动所述子SON模块,但是不允许所述子SON模块启动第二子SON模块。
在一个实施例中,所述方法还包括:通过所述API来向所述SON模块提供所述SON系统的射频(Radio Frequency,RF)预测引擎,所述RF预测引擎提供一个或多个网络参数的改变的影响的预测。
在一个实施例中,所述方法还包括:通过所述API来向所述SON模块提供所述SON系统的地理位置函数,所述地理位置函数提供一个或多个网络装置的位置。
用于在通信网络中自动化函数的自组织网络(SON)系统的一个实施例包括至少一个包括SON框架的计算机系统,其中,所述至少一个计算机系统被配置为执行上面列出的所述方法实施例的一个或多个。
一种非临时性(non-transitory)计算机可读介质的一个实施例包括用于在通信网络中运行自组织网络(SON)模块的计算机可执行指令,所述指令当被执行时执行上面列出的所述方法实施例的一个或多个。
附图说明
图1图示了包括SON系统的无线通信网络。
图2图示了根据本公开的一个实施例的SON系统。
图3是根据一个实施例的用于将SON模块导入SON系统内的进程(process)的流程图。
图4是示出根据一个实施例的SON模块的强制框架可调用函数的表格。
图5是示出根据一个实施例的SON模块的选用框架可调用函数的表格。
图6a-6c是根据一个实施例的与SON模块相关的状态图。
图7是示出根据一个实施例的与应用编程接口(API)相关联的常数值的表格。
图8是根据一个实施例的与SON模块可配置参数数据相关联的进程的流程图。
图9是根据一个实施例的与向SON模块传送事件信息相关联的进程的流程图。
图10是根据一个实施例的启动子SON模块的进程的流程图。
图11是根据一个实施例的根据优先级向SON模块分配资源的进程的流程图。
图12图示了根据一个实施例的计算机系统。
具体实施方式
在下面的详细说明中,参考形成说明书的一部分的附图。在详细说明、附图和权利要求中描述的示例实施例不意味着是限制性的。可以利用其他实施例,并且可以进行其他改变,而不偏离在此提供的主题的精神或范围。可以明白,可以在大量不同的配置中布置、替代、组合、分离和设计在此总体描述并且在附图中图示的本公开的方面。
可以以多种方式来实现本发明,所述方式包括:进程;设备;系统;物质构成;在计算机可读存储介质上包含的计算机程序产品;以及/或者,处理器,诸如被配置为执行在存储器上存储的和/或由存储器提供的指令的处理器,所述存储器耦接到处理器。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另外说明,诸如被描述为被配置为执行任务的处理器或存储器的组件可以被实现为一般组件或特定组件,所述一般组件被暂时配置为在给定的时间执行任务,所述特定组件被制造来执行任务。如在此使用,术语“处理器”指的是被配置为处理数据的一个或多个装置、电路和/或处理核心,处理数据包括通过执行计算机程序指令来处理数据。
下面连同图示本发明的原理的附图一起提供实施例的详细说明。与这样的实施例相关地描述本发明,但是本发明不限于任何实施例。本发明的范围仅被权利要求限制,并且本发明涵盖多种替代、修改和等同物。在下面的说明中给出了多个具体细节,以便提供本发明的彻底理解。这些细节被提供来用于示例的目的,并且可以在没有这些具体细节的一些或全部的情况下根据权利要求实施本发明。为了清楚的目的,未详细描述在与本发明相关的技术领域中已知的技术材料,使得不会无必要地混淆本发明。
图1示出在无线通信网络100中部署的SON系统110的示例。SON系统110包括至少一个计算机系统,并且SON系统110连接到无线通信网络100的组件,无线通信网络100包括第一和第二无线网络控制器(Radio Network Controller,RNC)120a和120b。
第一RNC 120a和第二RNC 120b分别连接到第一至第五基站122a-122e与第六和第七无线基站122f和122g。在一个实施例中,RNC 120a-120b的一个或多个被整合到无线基站内。在一个实施例中,无线基站122a-122g的每个包括RNC。
无线基站122a-122g的每个可以是NodeB、eNodeB、Home eNodeB(HeNB)等。无线基站122a-122g可以用于宏小区(macrocell)、微小区(microcell)、微微小区(picocell)和毫微微小区(femtocell),并且可以使用长期演进(Long Term Evolution,LTETM)、通用移动通信系统(Universal Mobile Telecommunications System,UMTSTM)、全球移动通信系统(Global System for Mobile communications,GSMTM)、码分多址(Code DivisionMultiple Access,CDMA)、WiMaxTM或其他类似的无线通信技术中的一个或多个。
无线基站122a-122g无线地连接到第一至第六用户设备(UE)124a至124f。UE124a-124f可以是膝上型计算机、平板计算机、台式计算机、无线热点装置、无线调制解调器、蜂窝电话、寻呼机、手持游戏单元、电子书籍装置、个人音乐播放器、MiFiTM装置、视频记录器、无线使能汽车系统(wireless-enabled automotive system)等的任何组合。
SON系统110与可以在无线通信网络100中找到的多个其他系统对接。SON系统110从这些其他系统读取数据和/或向这些其他系统写入数据。所述其他系统包括网络运营支撑系统(Operations Support System,OSS)130、规划工具(planning tool)134、警报管理系统138、配置管理系统140、地理位置系统144和天线控制系统148。
在SON系统110和OSS 130之间传送的数据可以包括诸如小区(cell)、NodeB、eNodeB、RNC、移动管理实体(Mobility Management Entity,MME)、网关(gateway)、UE等的无线网络元素(network element)的配置管理(Configuration Management,CM)参数的一个或多个;从网络元素收集的性能监控(Performance Monitoring,PM)数据,以及从网络元素收集的事件数据(例如,第三层信令消息(layer 3messaging))。在一个实施例中,SON系统使用OSS 130来访问警报管理系统138、配置管理系统140、地理位置系统144和天线控制系统148中的一个或多个,并且使用OSS 130与警报管理系统138、配置管理系统140、地理位置系统144和天线控制系统148中的一个或多个通信。
在SON系统110和规划工具134之间传送的数据可以包括系统配置信息,诸如小区的位置、基站的位置、天线的指向等。在SON系统110和警报管理系统138之间传送的数据可以包括由网络元素产生并且被SON系统100从警报管理系统138读取的警报和由SON系统110产生并且被写入到警报管理系统138的警报。
由SON系统110从地理位置系统144读取的数据可以包括由无线通信网络服务的移动装置的位置的估计。在SON系统110和天线控制系统148之间传送的数据可以包括天线电子倾角(electrical tilt)、方位角(azimuth)和波束宽度设置,以及关于其极限的信息,例如,天线的最小和最大方位角或天线可以支持的波束宽度的指示。在SON系统110和配置管理系统140之间传送的数据可以包括配置管理参数。配置管理参数的示例包括基站发射功率、切换阈值、小区邻居列表等。
SON系统也可以与诸如RNC 120a-120b、无线基站122a-122g和未在图1中示出的其他装置(如路由器、交换器、存储装置等)的网络元素直接对接。
图2示出根据一个实施例的SON系统200的方框图,适合于用作在图1的无线通信网络100中的SON系统110。使用SON系统200,第三方,即,除了SON系统的提供者的方可以开发和实现SON功能,并且在通信网络中部署这个功能。
SON系统200包括SON框架220和第一至第三SON模块210a至210c。SON框架220与外部通信网络系统280对接;提供用于配置和管理SON系统200的接口、资源和函数(例如,用户账户配置、SON模块优先级等);并且,管理SON模块210a至210c的操作。
SON框架220包括SON模块管理器230、SON系统配置管理器234、用户接口238、数据库242、应用编程接口(API)246、射频(RF)预测引擎250、配置管理系统254、地理位置系统258、日历/定时器262和调试器/沙箱270。
数据库242包含用于SON系统200的操作的信息。用户接口238用于管理和配置SON系统200。RF预测引擎250可以用于预测改变网络参数(例如,天线倾角、RF发射功率和/或切换参数)的影响,使得在在网络中改变这些参数之前可以确定对于它们的最佳改变。例如,RF预测引擎250可以根据一个或多个网络参数值来预测在基站的覆盖区域(coveragefootprint)方面的改变。
配置管理系统254记录由SON系统200向网络施加的参数改变,并且可以能够在随后的时间取消这些改变。地理位置系统258确定网络中的装置,特别是移动装置的位置。日历/定时器产生定时事件,其可以被发送到SON模块210a至210c的一个或多个或者允许在特定日期和时间启动和停止SON模块210a至210c的一个或多个。
SON模块210a至210c包含实现特定SON用例的逻辑。SON模块210a至210c可以被实现为软件代码,所述软件代码动态地链接到SON框架220或被SON框架220实例化。可以将SON模块210a至210c写入可以在运行时间调用的、独立于诸如等的编程语言的平台中。可以以源代码格式或二进制格式来提供SON模块210a至210c。
SON模块210a至210c经由API 246来与SON框架220交互。经由API246,SON模块210a至210c可以利用由SON框架220提供的功能,包括下述部分中的一个或多个:从外部系统读取数据;向外部系统写入数据;接收事件信息(例如,来自警报管理系统的警报事件);显示SON操作的结果(例如,在图形用户接口(GUI)上显示);检索由用户指定的SON参数;启动SON进程,等等。在一个实施例中,API 246包括多个API。
由SON框架220提供的API 246可以是开放API,即,提供足够的功能、稳定性和文档编制(documentation)的API,使得除了SON系统200的提供者之外的方可以在没有提供者的辅助或允许的情况下建立和使用SON模块。例如,除了SON系统提供者之外的开发者可以开发使用由API 246提供的功能的SON模块,并且网络操作者可以通过SON框架220向SON系统200内加载该SON模块,其全部是在没有SON系统提供者的辅助、允许或知晓的情况下。
API 246可以以下述方式来抽象到外部系统的接口:例如,当已经写入SON模块210a来为第一OSS提供SON功能时,SON模块210a可以为其他OSS提供相同的功能,而不要求对于SON模块210a的改变。在这种情况下,API 246隐藏从SON模块210a至210c读取和向其写入的数据的细节。
SON框架220也允许向SON系统增加或从SON系统去除SON模块210a至210c。以这种方式,可以在任何时间向系统内引入新的SON模块。这包括由SON系统200的提供者或制造者开发的SON模块、由SON系统200在其中运行的网络的操作者开发的SON模块、由开发SON功能但是不提供商用SON产品所需的SON框架220的其他组件的其他第三方开发的SON模块,以及它们的组合。
SON框架220可以可选择地为SON模块210a至210c的开发提供支持。然而,也可以使用不是SON框架220的一部分的现成的软件开发工具来开发SON模块。这样的软件开发工具的示例包括:集成开发环境(IDE),例如,EclipseTM、Visula和IDLE IDE;以及,文本编辑器,例如,Vim,和Notepad++编辑器。在开发期间,可以在SON框架220之外进行SON模块210a至210c的初始测试。存储的数据可以用于验证SON模块功能。
SON框架220可以通过调试器/沙箱270为SON模块210a至210c的调试提供支持。调试器/沙箱270可以包括SON模块I/O行为的自动记录和其中SON模块可以执行但是被阻止改变一些或全部网络参数的沙箱环境。当在沙箱环境中运行SON模块时,对于网络元素的写入可以被SON框架220截取和记录。
调试器/沙箱270可以提供调试能力,例如,故障诱捕(fault trapping)、故障注入(fault injection)、单步执行(single-step execution)、代码和数据断点(code anddata breakpoints)、数据观察点(data watchpoints)、数据访问模式记录和分析(dataaccess pattern logging and analysis)、代码反汇编(code disassembly)、代码反编译(code decompiling)、静态代码分析(static code analysis)、代码执行轨迹生成(codeexecution trace generation)、轨迹驱动的动态代码分析(trace-driven dynamic codeanalysis)等等。
调试器/沙箱270可以提供沙箱环境,沙箱环境限制SON模块所具有的对于系统资源的访问。例如,可以防止在沙箱环境中执行的SON模块(“沙箱化的SON模块”)读取和/或写入诸如硬盘驱动器、闪存存储器装置等的一个或多个存储装置。在另一个示例中,可以防止沙箱化的SON模块访问任何I/O装置,或者可以限制沙箱化的SON模块仅访问可用I/O装置的子集。
在一个实施例中,由调试器/沙箱270施加的限制可以基于SON模块的广告的功能。例如,沙箱化的SON模块可以包括SON模块使用的I/O装置的清单,并且调试器/沙箱270可以将沙箱化的SON模块限制到仅使用那些I/O装置且可以在沙箱化的SON模块试图访问其他任何I/O装置时报告错误。而且,用户可以在沙箱化的SON模块可以访问的或者特定的沙箱化的SON模块可以访问的资源上施加另外的限制。
在一个实施例中,调试器/沙箱270运行以防止沙箱化的SON模块决定沙箱化的SON模块在沙箱中运行,以便防止诸如可能包括恶意软件的SON模块的SON模块与其在沙箱化环境之外的行为相比较在沙箱环境中不同地作为。为此,调试器/沙箱270可以仿真或模拟SON系统200的部分或SON系统200在其中运行的无线通信系统的部分。例如,调试器/沙箱270可以包括基站仿真器(base station emulator),其以特定无线基站的方式来接受或响应于命令。在一个实施例中,这样的沙箱仿真模块是可以被加载到SON框架220内的插件。用于装置或系统的沙箱仿真模块可以被所述装置或系统的制造者或提供者提供。
在一个实施例中,SON系统200或无线通信系统的仿真使能组件(emulationenabled component)包括仿真能力,并且调试器/沙箱270将来自沙箱化的SON模块的命令转换为对于仿真使能组件的仿真命令,并且将来自仿真使能组件的仿真响应转换为对于沙箱化的SON模块的响应。例如,天线定位系统可以包括仿真能力,其在接收到仿真的天线定位命令时,以仿真的成功/状态响应来响应。调试器/沙箱270可以将来自沙箱化的SON模块的天线定位命令转换为对于天线定位系统的仿真的天线定位命令,并且可以将来自天线定位系统的仿真的成功/状态响应转换为对于沙箱化的SON模块的成功/状态响应,并且沙箱化的SON模块将如同它实际上控制天线定位系统那样执行。
SON框架220可以允许SON模块210a至210c在开环模式(open-loop mode)或闭环模式(closed-loop mode)下执行。在SON模块的操作的开环模式中,SON框架220不允许向网络推送参数配置改变。SON框架220可以当SON模块希望向网络推送参数配置改变时提示用户。这向用户提供了下述机会:查看由SON模块提出的改变,并且确定这些改变对于网络的影响。如果用户确定改变可接受,则用户可以向SON框架220指示可以向网络推送改变。在操作的闭环模式中,SON模块在没有用户查看改变的情况下自动地向网络推送参数配置改变。
为了简化SON模块210a至210c的开发,可以使得开发者可使用模块模板。模块模板可以包括用于所有用户实现的函数的函数模板、用于实现用户可配置的参数的模板、用于读取由SON模块210a至210c使用的关键性能指标(KPI)的模板等。这样的模板可以允许经由“填充空白(fill in the blanks)”方式的用户框架函数的快速和容易开发。SON框架220也可以允许例如SON模块210c调用已经向SON系统200添加的SON模块210a和/或210b,进一步减少了SON模块开发工作。
SON框架220提供用于管理在SON系统内的SON模块210a至210c的功能。这包括用于向SON系统200内加载(导入)和从SON系统200去除SON模块210a至210c的功能。该功能可以包括用户接口,用于允许用户选择向SON系统200内加载或从SON系统200去除哪些模块。在一个实施例中,SON框架在模块被导入到框架内时确定关于SON模块的信息。
图3是根据一个实施例的用于导入SON模块的进程的流程图。在S304,用户经由用户接口来启动SON模块的导入。SON框架可以被配置为仅允许具有适当权限的用户(例如,具有管理员或模块管理器权限的用户)向SON系统内导入SON模块。
在一个实施例中,可以允许用户将SON模块加载到用于开发、测试和调试的调试器/沙箱环境内,但是不允许其将SON模块加载到SON框架的操作部分内。在一个实施例中,SON框架包括用于SON模块的候选队列(candidate queue),可以允许用户将SON模块加载到该候选队列内而不是SON系统的操作部分内。在一个实施例中,具有适当权限的用户可以能够将SON模块从调试器/沙箱环境和/或候选队列释放到SON系统的操作部分内,由此启动SON模块导入进程。
在一个实施例中,可以仅允许用户加载授权的SON模块。可以使用加密签名(cryptographic signature)、SON模块的标识符与授权的SON模块标识符的列表的比较或者使用SON模块的标识符的到本地或远程数据库的查询来确定SON模块是否是授权的。标识符可以包括SON模块的内容的校验和(checksum)、散列值(hash)或密文散列值(cryptograph hash)。
在S308,将SON模块复制到在SON框架中的数据库,并且/或者存储在由SON框架使用的文件系统中。在一个实施例中,当所导入的SON模块已经作为不同的版本存在于数据库或文件系统中时,将SON模块的先前加载的版本备份(backed up)而不是被SON模块的新的版本重写(overwritten),并且SON框架提供了将SON模块返回到先前加载的版本的能力。SON框架也可以确定在SON模块的新的和先前加载的版本之间的差别,包括在SON模块的广告的功能、由SON模块监控的事件和由SON模块使用的网络资源上的差别。
在S312,检索关于所导入的SON模块的信息。可以通过调用由SON模块的作者编码的特定函数而检索所述信息,或者可以将所述信息提供为与SON模块相关联的元数据(meta-data),例如,清单(manifest)。在导入进程期间从SON模块提取的信息的类型的示例包括要调用的主函数的名称、模块将使用的KPI、要触发的模块的事件等。
在S316,SON模块的导入完成。在一个实施例中,向指定的用户、管理员或SON系统的操作者发送SON模块的导入的通知。在一个实施例中,可以向SON模块的提供者通知模块已经被导入到SON系统内。
SON模块可以包含可以被SON框架调用的软件函数。这些函数允许SON框架管理SON模块,并且当SON框架已经检测到特定事件时通知SON模块。
可以要求这些函数的一些被所有的SON模块实现。这些函数的一些可以是可选择的,并且仅被一些SON模块实现。如果可选择的函数没有被实现,则SON框架可以假定SON模块对于与该函数相关联的参数没有数据要返回。在这种情况下,SON框架可以使用用于如果实现了函数则将返回的数据的默认设置。在其他的方法中,通过由SON模块实现的所需函数或通过每当调用未实现的可选择函数时被调用的例外(exception)或默认机制(faultmechanism),可以在与SON模块相关联的清单中指示可选择的函数是否被SON模块实现。
当将模块导入到SON框架内时,可以通过SON框架来调用SON模块的许多框架可调用的函数。以这种方式,SON框架可以检索关于SON模块的信息。该信息可以允许SON框架向用户显示关于SON模块的信息,并且以受控的方式来开始和停止SON模块的执行。
当外部事件发生——例如,从网络检索新的KPI、从警报管理系统接收到新的警报等——时,可以调用SON模块的其他框架可调用的函数。
图4是根据一个实施例的强制SON框架可调用函数的表格。图5是根据一个实施例的可选择的框架可调用函数的表格。图4和5的表格也示出了SON框架何时可以调用这些函数。
在启动SON模块的进程之前或作为启动SON模块的进程的一部分,启动模块的用户可以指定用于由SON模块使用的配置参数的值。SON框架提供了SON模块配置接口,用户可以通过其来设置用于由SON模块使用的配置参数的值。
在图8中被示出为进程800的一个实施例中,SON框架API在S804提供参数数据接口,通过其,在S808,SON框架可以接收用于SON模块的参数名、参数描述、参数类型、默认值和参数范围。该信息被统称为用于SON模块的可配置参数数据。当将SON模块导入到SON框架内时或当启动SON模块时,SON框架可以在S812检索可配置的参数数据。
可以指定的参数类型可以包括整数、浮点值、串、文件(其可以使得当启动模块时显示文件选择对话框)、值的列表、日期/时间等。默认参数值可以在SON模块中被指定,并且作为可配置参数信息的一部分被传送到SON框架。
在一个实施例中,使用诸如可扩展标记语言(XML)或JavaScript对象符号(JSON)的标记语言(markup language)来传送可配置的参数数据。该可配置的参数数据也可以根据由诸如XML模式或JSON模式的模式语言(schema language)定义的一个或多个模式来传送。
在一个实施例中,可以将SON模块实现的状态机。在图6A中示出了实现SON模块的状态机600。在图6A中所示的状态是模块启动状态S604、等待触发状态S608、执行ScriptMain状态S612和模块退出状态S616,其分别对应于第一至第四状态。
在模块启动状态S604,已经启动了SON模块。SON模块的内部数据被初始化。在等待触发状态S608,SON模块等待外部事件触发。在执行ScriptMain状态S612,SON模块使用对图4中所示的ScriptMain函数的调用来执行其主进程。在模块退出状态S616,SON模块已经退出,并且SON框架可以执行清理操作(clean-up operation)。
将状态转换记住地编码有状态的SON模块(Stateful SON Module)。可以通过SON框架来管理在状态之间的转换。
有状态的SON模块允许再发的(recurring)和非再发的(non-recurring)SON模块的实现。非再发的SON模块被设计来接受用户输入参数,并且执行一次通过的执行。这样的SON模块可以被用户触发或被日历触发。在图6A中所示的状态图中,所有的SON模块自动触发SON模块执行启动。这允许非再发的的SON模块立即前进到ScriptMain函数,并且运行到完成。
可以被实现为非再发的SON模块的SON模块的一个示例是用于向由用户选择的一个或多个基站推送参数的SON模块。非再发的SON模块的另一个示例是从网络基站读取信息、将该信息与用户输入(例如,预期或目标值的文件)相比较并且标注它找到的差异的审计SON模块(audit SON Module)。
在图6B中示出了在非再发的SON模块中的状态转换流程。状态机600从模块启动状态S604进行到等待触发状态S608,并且然后到执行ScriptMain状态S612。当ScriptMain函数退出或SON框架停止SON模块时,状态机600进入模块退出状态S604。
再发的的SON模块被设计来在SON模块经由SON框架接收到的外部触发/事件(例如,新的KPI数据的到达、由定时器产生的周期事件等)发生时执行。如图9中示出为进程900,SON模块在S904向SON框架通知SON模块被设计来被通知哪些事件,即,SON模块感兴趣的事件。在S908,SON框架监控感兴趣的事件。在S912,SON框架每当感兴趣的事件发生时调用主SON模块函数(例如,ScriptMain)。SON模块基于所接收的事件和与所接收的事件相关联的数据来采取适当的行为,所述数据包括可以由SON框架在调用主SON模块函数时提供的数据。
再发的SON模块可以被设计来无限期地(indefinitely)运行。再发的SON模块的示例包括小区中断补偿SON模块(cell outage compensation SON Module)、持续负载平衡SON模块(ongoing load balancing SON Module)和绿色网络SON模块(green network SONModule)。
在图6C中示出了在再发的的SON模块中的状态转换流程。状态机600从模块启动状态S604进行到等待触发状态S608,并且然后到执行ScriptMain状态S612。在执行ScriptMain状态S612中,SON框架执行SON模块的ScriptMain函数。
ScriptMain函数可以执行初始化行为(initialization action)。当ScriptMain函数完成执行时,状态机600进行到等待触发状态S608。当SON模块感兴趣的事件发生时,状态机600进行到执行ScriptMain状态S612。
上面的等待触发状态S608并且然后到执行ScriptMain状态S612之间的转换的循环可以无限期地进行,直到结束该循环的错误或事件发生。例如,当SON模块确定不再必要、不再适当或未正确地起作用时,SON模块可以调用ExitScript函数。在另一个示例中,SON框架可以确定SON模块不再必要、不再适当或未正确地起作用,并且可以停止所述SON模块。
在一个实施例中,SON模块的执行的时间限制由SON模块或SON框架确定,并且当达到或超过该时间限制时,SON模块调用ExitScript函数,或者SON框架停止SON模块。例如,对于SON模块的许可可以指定可以执行SON模块的多个小时中的一个或多个的时间限制和其后可以不执行SON模块的日期,并且SON模块或SON框架或两者执行该时间限制。该时间限制可以被包括在伴随SON模块的清单中、被并入到SON模块的可执行代码内或被SON系统的用户或管理员手动地配置。
当SON模块调用ExitScript函数或SON框架停止SON模块时,状态机600进行到模块退出状态S616。
SON框架可以允许当前运行的模块建立和启动另外的模块。从框架用户接口启动的SON模块被称为父模块。由当前运行的SON模块启动的SON模块被称为子模块。
在一个实施例中,子模块的SON模块状态流程图与父SON模块的相同。子SON模块可以用于监控SON事件,并且管理在那个事件期间对于网络的改变。子SON模块的使用的示例包括监控基站中断并且一旦基站返回在线则恢复网络参数的子SON模块和监控基站负载不平衡并且一旦负载不平衡事件已经过去则恢复网络参数的子SON模块。
在图10中被示出为进程1000的实施例中,SON框架可以仅仅允许父SON模块启动子SON模块,并且不允许子SON模块启动另外的子SON模块。在S1004,SON框架从SON模块接收启动子SON模块的请求。在S1008,SON框架确定是否发出请求的SON模块本身是子SON模块。当SON模块不是子SON模块时,在S1010,启动子SON模块。当该SON模块是子SON模块时,在S1020,不启动子SON模块,并且可以向SON模块提供错误指示。
在一个实施例中,可以根据启动父SON模块的用户、父SON模块的来源或作者或与父SON模块相关联的数字证书来授予用于启动子SON模块的权限。在一个实施例中,管理员向单独的父SON模块授予启动子SON模块的权限。
在一个实施例中,SON框架将每个SON模块在其自身的独立的计算进程空间(computing process space)中运行。包括子SON模块的每个SON模块可以具有其自身的存储器空间,并且被限制直接读取在这个空间之外的存储器或向这个空间之外的存储器写入。可以在包括独立计算进程空间、虚拟存储装置和虚拟输入/输出(I/O)装置的一个或多个的虚拟机中运行SON模块。
向模块提供独立的存储器空间将SON模块对于其他SON模块进行保护,并且当多个SON模块运行时允许SON框架通过在不同的处理器或不同的服务器上执行每个SON模块来利用多核服务器平台或多服务器平台。这导致SON系统的性能的提高。
如在图11的进程1100中所示,可以通过设置每个SON模块的进程优先级来实现SON模块优先化。SON模块优先化可以用于确定计算资源的分配(例如,处理器执行时间和/或物理存储器分配)、事件处理的排序和网络资源的所有权。每个SON模块可以包括多个优先级,每个优先级与不同的排序方案、资源或资源的集合相关联。
在S1104,SON框架接收来自或对于SON模块的对于资源的请求。在S1108,SON框架评估相关联的SON模块是否具有关于要被分配资源的适当优先级,例如比另一个SON模块高的优先级和/或比当前最小优先级更大的优先级。当优先级适当时,在S1120,向SON模块分配资源。当优先级不适当时,在S1110,不向SON模块分配资源。
SON框架可以管理用于SON模块的进程的创建和结束。这通过去除了对于SON模块开发者处理线程安全编程问题等的需要,使得SON模块的实现变得容易。
SON框架事件管理器检测何时外部事件发生,并且向相关的SON模块发送关于所检测的事件的信息。框架事件管理器可以处理的事件的示例包括新的KPI可用事件、新的警报事件、新的定时器或日历事件和配置改变事件。SON框架可以监控由外部系统对网络进行的配置改变,并且自动通知请求这样的改变的通知的SON模块。
在一个实施例中,可以通过经由API传送的常数值来识别事件。在图7中示出了这样的常数的示例。
当SON模块被用户选择执行时,SON框架可以允许用户配置控制SON模块的操作的数据。用户配置的数据的类型可以包括用户可配置参数、SON模块将对其执行SON进程的目标、哪些新的目标应当被加到用于SON模块的目标的列表和何时应当执行SON模块。
在无线通信网络中,SON模块对于其执行SON进程的目标可以是网元(例如,由单个UMTS或LTE操作者定义的单元)、网络基站、无线电网络控制器或用于SON进程的其他适当的目标。可以配置SON模块使得SON框架自动地向用于SON模块的目标的列表增加新的目标,诸如在地理区域中出现的新的目标、与现有的目标处于共同位置的新的目标、被与现有目标相同的网络元素管理和控制的新的目标、通过指定的通信信道(诸如通过ISP连接到网络的新的HeNB)连接到无线网络的新的目标等。
可以配置SON模块以立即或在后来的时间和/或日期执行。也可以配置SON模块在一个或多个选择的时段期间执行,例如,立即开始并且具有预定结束时间的时段、在每日期间的预定时段、每星期的预定时段和在每个日历季度或财政季度期间的预定时段等。
用户可以配置经由SON框架提供的用户接口来控制SON模块的操作的数据。在一个实施例中,用户接口仅在指定的装置上可用。在一个实施例中,可以使用虚拟专用网(VPN)或其他安全的通信信道来从远离无线网络的位置访问用户接口。
在SON模块中的错误可能使得向网络元素写入不需要的数据,这在网络中可能引起问题。另外,用户可能有意或无意地尝试向网络内引入流氓或改变了的SON模块,以引起对网络的损害。因为这些和其他原因,SON框架可以提供安全特征,所述安全特征限制SON模块可以对于通信网络具有的影响。
因此,SON框架可以仅允许SON模块经由SON框架API访问OSS参数和其他网络元素参数,可以支持经由API施加的网络改变的‘取消’,并且可以对SON模块可用的外部功能施加限制,所述外部功能否则可以经由导入函数被使得可用。
例如,如果在Python脚本语言中实现了SON模块,则SON框架可以仅允许SON模块导入‘安全的’标准模块(即,不能被SON模块使用来使得在SON系统上执行任意代码的标准模块,例如,copy、re、math、json、sys等),并且不允许‘不安全的’标准模块(即,能被SON模块使用来使得在SON系统上执行任意代码的标准模块,例如,os、shutil、urllib、smptlib等)的导入。
SON框架可以限制SON模块相对于其可以运行的网络元素(例如,单元(cell))的最大数量,即,SON模块可以监控和/或控制的网络元素的数量。对于每个用户或对于每个SON模块,网络元素的该最大数量可以被配置为不同的值。
SON框架可以限制用户可以同时运行的SON模块的最大数量。该SON模块的最大数量可以被配置为对于每个用户为不同值。
SON框架可以仅允许导入具有可接受的数字签名的SON模块。可以向框架提供证书,所述证书包含可以用于验证数字签名的公共密钥或其他密钥。SON框架也可以在只有SON模块具有可接受的数字签名时才允许SON模块访问所选择的网络资源或元素。
在一个实施例中,SON框架可以要求需要访问所选择的网络资源或元素的SON模块具有第一数字签名和第二数字签名,所述第一数字签名允许SON模块被导入,所述第二数字签名允许SON模块访问所选择的网络资源或元素。第一数字签名和第二数字签名可以源自不同的签名者。例如,第一数字签名可以被SON模块的供应者提供,并且第二数字签名可以被所选择的网络资源或元素的一个或多个的一个或多个所有者和/或操作者提供。
SON框架可以利用由主操作系统提供的其他安全特征来向SON系统提供补充的安全性,包括用户账户控制、文件系统加密和可信平台模块等。
SON框架也可以提供用于自动地记录在SON系统中发生的事件的功能。SON模块也可以向被SON框架自动记录的SON框架发送信息。这些记录可以随后被用户经由用户接口检索。
SON框架也可以记录由SON模块向网络元素写入的参数。这也可以允许这些改变的回滚。可以通过将参数恢复到在SON模块被启动之前的值或通过将参数恢复到在前一个时间和日期的值来实现回滚。
当SON框架包含可以产生网元的覆盖的预测的RF预测引擎时,该RF预测引擎可以用于在施加参数改变之前预测网络覆盖。
SON框架可以提供API,SON模块经由API可以与RF预测引擎交互。这允许SON模块预测对于天线倾角、RF导频功率(RF pilot power)等进行改变的影响。以这种方式,SON模块可以确定可配置的参数的最佳设置。
RF预测引擎可以包含来自被操作者用来规划RF网络元素(例如,无线基站)的布置的RF规划工具的组件。
SON模块可以指示RF预测引擎运行分析,并且通过API来返回分析的结果。SON模块可以经由适当的SON框架API函数来向用户显示分析的结果。
SON框架可以提供这样的功能,通过所述功能,SON模块可以‘锁定’诸如无线网元、扇区(sector)或基站的网络元素,使得防止其他SON模块对它们作出改变。该功能可以被这样的模块使用,所述模块是在对其期望防止其他模块重写参数改变的一个部分或网络中的单元作出参数改变的模块。锁定可以适用于整个网络元素或仅网络元素的所选择的函数或参数。
在此,将网络元素锁定和解锁指的是仅SON框架锁定。这与由OSS执行的将网络元素锁定或解锁不同,由OSS执行的将网络元素锁定或解锁指的是不允许或允许网络元素提供服务。
如果SON框架支持SON模块的优先化,则该框架可以允许较高优先级的SON模块从较低优先级的SON模块获取锁定。当较高优先级的SON模块释放该锁定时,SON框架可以将该锁定返回到较低优先级SON模块,或者将锁定的网络元素返回到解锁状态。在一个实施例中,SON框架当第一SON模块对于第二SON模块丢失锁定时通知第一SON模块,并且,第一SON模块当被如此通知时可以清理或回滚它在它具有锁定的时间内执行的操作。
SON框架也可以提供SON函数库,SON函数库由可以在多个SON模块中使用的SON特定函数组成。这样的函数的示例是与计算天线波束宽度、指向角、站点间的距离等相关的函数。
SON框架可以支持用于SON系统的用户的用户账户。每个用户账户可以具有可以被SON系统的管理员配置相关联的用户权限。
可以配置的用户权限的类型的示例包括与导入SON模块相关的权限、与执行SON模块相关的权限(例如,用户是否可以或不可以执行任何SON模块或SON模块的子集)、与用户可以选择为SON模块的目标的网络元素的数量相关的权限(例如,不超过100个单元可以被用户选择为目标)和与用户可以同时执行或在给定的时段期间执行的SON模块的最大数量相关的权限(例如,用户可以仅同时执行至多5个SON模块)。
SON框架可以提供SON模块状态信息接口,其使得用户能够确定SON模块的当前执行状态。所述状态可以包括关于模块的执行的完成百分比、对于由每个模块产生的记录的访问、用于每个模块的目标(例如,小区、基站)的图形地图视图的细节、关于由每个模块采取的SON行为的细节等。
SON框架可以包含这样的机制,通过所述机制,SON模块可以向SON系统的用户提供SON事件已经发生的警报。这些警报采取下述部分中的一个或多个的形式:通过电子邮件、文本消息、即时消息或其他这样的消息传递机制的通知、使用录音或语音合成器创建并且通过电话传递的可听消息、向外部警报管理系统发送的通知以及向图形用户接口发送的通知。SON事件可以是在中断状态下的小区的检测和采取行为来继续在中断的区域中提供覆盖。
当用户接收到通知时,用户可能能够经由SON框架用户接口来查看关于事件的另外的信息。在一个实施例中,SON框架向用户提供地图,所述地图示出了在已经被事件影响的在网络中的小区。例如,如果已经检测到小区中断,则在用户接口上的地图可以示出其中已经发生中断的小区以及相邻的小区的哪些将它们的参数调整以补偿。
SON框架可以经由用于SON模块的API来提供机制,用于向SON框架发送SON框架可以显示的任意信息。所发送的信息可以包括小区的列表和如果用户从地图选择小区之一则SON框架应当采取的行为。可以通过点击在地图上的小区图标来选择小区。行为可以包括在由SON模块发送的信息中以指定的颜色来加亮所选择的小区和其他小区。
SON框架可以在用户接口上保留空间,以便显示SON警告,而不管用户接口上在显示什么其他信息。SON框架也可以过滤SON警告,使得它们被发送到SON系统的预定的用户或用户组。例如,可以仅向下述用户的一个或多个发送警告:启动SON模块的用户、已经被指定来接收关于特定小区的警告的用户和已经被指定来接收关于在地理区域中的小区的警告的用户。
SON框架也可以根据警告的时间或当前时间来确定向何处发送警告,例如通过向被安排在岗的人或在当前时间可处理警告的人发送警告。如果产生SON警告的条件在最后发送SON警告后持续预定时间,或者如果SON框架未接收到SON警告的确认,则SON框架也可以重发SON警告,或者向不同的装置或人发送警告。
SON框架包含用户接口,用户通过用户接口可以与SON系统交互。SON框架也提供了API,SON模块经由API可以确定在用户接口上显示什么信息和/或信息的类型。
用户接口可以采取几种形式的一个或多个,诸如在与SON系统进行通信的外部计算机上安装的单独应用、在外部计算机的浏览器中运行的网络应用和用户经由远程登录或经由连接到SON系统的终端访问的SON系统计算机之一上运行的应用。
用户接口可以呈现关于多个软件限定的视图或标签的信息。SON框架管理向每个用户显示的信息。在SON系统上向每个用户提供了账户。可以向用户提供用户名和密码,并且用户可能需要登录到SON系统内,以访问用户接口。在一个实施例中,用户可能需要证明预定物理装置(例如,智能卡、ID卡、安全令牌或诸如运行安全密钥生成器的智能电话的计算装置)的拥有,以便登录。证明拥有可以包括输入由物理装置生成的密钥、将该装置插入到输入/输出端口内或在扫描器上或通过扫描器来刷物理装置等。
用户接口可以提供SON模块状态接口/视图,其使得用户能够查看每个运行的SON模块的状态。所述状态视图可以包括由SON模块产生的记录。所述记录可以包含由SON框架捕获的信息以及由SON模块经由SON框架API调用明确地记录的信息。所述状态视图也可以包含地图视图,地图视图示出了模块目标(例如,小区和基站)的位置。所述状态视图也可以示出用户在SON模块启动时向模块可配置参数指定的值。
用户接口可以包含SON模块启动接口,其使得用户能够选择SON模块,配置SON模块和启动SON模块。用户接口可以允许配置SON可配置参数以及选择用于SON模块的目标。
当用于SON模块的目标是小区时,可以通过下述方式来选择目标小区:在地图视图上点击小区图标,向文本框内键入小区的名称,选择预定义小区的簇,或者通过选择小区的其他方法。用户接口可以提供一种机制,用于通过一个或多个用户指定的特性来过滤小区(例如,在特定的一组载波频率上运行的小区或特定技术类型的小区),使得仅被过滤过的小区可用于选择。可以使用类似的接口来选择其他种类的网络元素作为目标。
用户接口可以允许查看实现SON模块的软件代码的一些或全部。用户可以检查软件代码以更好地明白SON模块的行为。
用户接口可以提供地图视图,其允许用户浏览在网络中的小区的位置。从这个视图,用户可能能够选择一个或多个小区来作为小区的簇。用户接口可以提供簇定义接口,其允许用户定义和命名小区的簇,使得该簇可以被用户在稍后的时间根据名称选择。
用户接口可以提供网络元素配置接口,用户通过其可以查看和编辑网络元素的可配置参数。
用户接口可以向用户提供用于网络元素的历史性能数据和关键性能指标。该数据可以被SON系统和/或SON框架自动收集,并且可以被呈现为时间系列图或以表格格式被呈现。用户接口可以提供剪贴板函数,其使得用户能够复制这样的数据,使得可以粘贴到在用户的计算机上运行的其他应用内。
用户接口可以提供用户账户管理接口,用于配置用户账户信息,包括新的用户账户的创建、账户用户权限和密码的设置以及用户账户的去除。
用户接口可以提供网络拓扑管理接口(network topology managementinterface),用于配置在SON系统内存储的网络拓扑。所述拓扑可以存储关于可以被SON系统作为目标的网络元素的信息。
可以通过从文件或数据库读取关于网络的信息来确定所述网络拓扑,所述文件或数据库例如是可以是OSS或网络规划工具的一部分的那些。所述网络拓扑可以包括诸如每个网络元素的位置的信息和与每个网络元素相关的其他信息。所述拓扑信息可以被存储在SON系统数据库中。
本公开的实施例可以在计算机系统中实现,并且/或者使用在非临时性计算机可读介质上存储的计算机编程指令被实施。图12图示了计算机系统1220,其包括处理器1221、总线1222、存储器1223和用户接口输入装置1226、用户接口输出装置1227、存储器1228和耦接到网络1230的网络接口1229。处理器1221可以是中央处理单元(CPU)或半导体装置,其执行在存储器1223和/或存储器1228中存储的处理指令。
存储器1223和存储器1228可以包括各种形式的易失性和非易失性存储介质,例如,存储器1223可以包括ROM 1224和RAM 1225,并且存储器1228可以包括硬盘驱动器(harddisk drive,HDD)、固态驱动器(solid-state drive,SSD)、CD-ROM和DVD-ROM等。存储器1223和/或存储器1228可以包括其上存储的计算机可执行指令。
因此,本公开的一个实施例可以被实现为计算机实现的方法或其上存储了计算机可执行指令的非临时性计算机可读介质。在一个实施例中,当被处理器执行时,计算机可读指令可以执行根据本公开的至少一个方面的方法。
可以以多种形式来实现本公开的广泛的教导。因此,虽然本公开包括特定示例,但是不应当如此限制本公开的真实范围,因为其他修改在研究了附图、说明书和所附的权利要求后将变得显然。