一种实现配置任务调度的方法和设备的制作方法

文档序号:7665945阅读:119来源:国知局

专利名称::一种实现配置任务调度的方法和设备的制作方法
技术领域
:本发明涉及对设备进行配置的
技术领域
,特别是涉及一种实现配置任务调度的方法和设备。
背景技术
:网络管理设备不但可以用于对网络中各种设备如路由器、交换机、存储设备、安全设备等进行普通的管理和维护,还可以用于对上述这些设备的配置,比如服务质量(QoS,QualityofService)、访问控制列表(ACL,AccessControlList)、多协议标签交换虚拟私有网络(MPLSVPN,MultiplyProtocolLabelSwitchVirtualPrivateNetwork)酉己置等。网络管理设备在实现对网络设备的配置时,一般利用不同的业务组件分别单独地实现配置任务,各个业务组件的配置任务没有进行统一管理或调度。比如网络管理设备中可以包括QoS业务组件、ACL组件、MPLSVPN业务组件等。其中,QoS业务组件负责对网络设备进行QoS的配置,ACL组件负责对网络设备进行ACL配置,MPLSVPN组件负责对网络设备进行MPLSVPN的配置。上述实现配置的各个业务组件之间的关系可以如图1所示。假设网络管理设备包括QoS业务组件、ACL业务组件、MPLSVPN业务组件,它们可以分别独立地对网络设备进行配置。在实际应用中,各个业务组件可以采用远程登录(Telnet)协议或简单网络管理协议(SNMP,SimpleNetworkManageProtocol)等方式与网络设备进行交互以完成配置任务。但不管采用哪种协议与网络设备进行交互,由于各个业务组件是独立实现配置的,多个业务组件可能同时对同一个网络设备进行配置,网络设备的负载过大,效率降低,导致配置任务失败。比如业务组件采用Telnet协议与某网络设备进行交互实现配置,如果多个业务组件同时登录该网络设备,登录的个数超出该网络i殳备^见定的远程登录虚拟终端连接(telnetvty,telnetvirtualtypeterminal)个数,则将导致配置任务失败。
发明内容有鉴于此,本发明的主要目的在于提供一种实现配置任务调度的方法,可以对配置任务进行统一调度,避免网络设备的负载过大而造成配置任务失败。为了达到上述目的,本发明提出的技术方案为一种实现配置任务调度的方法,该方法包括产生配置任务,所述配置任务设备信息,所述设备信息包括配置参数;根据记录的设备状态信息判断需配置的网络设备是否处于可配置状态,如果是,则将需配置的网络设备的状态记录为不可配置状态,根据所述配置参数对需配置的网络设备进行配置,并在结束配置时将需配置的网络设备的状态记录为可配置状态;否则,重新返回到判断需配置的网络设备是否处于可配置状态的步骤。上述方案中,所述配置任务还包括任务信息,所述任务信息包括任务调度时间;所述产生配置任务和判断需配置的网络设备是否处于可配置状态之间,该方法进一步包括确定到达所述任务调度时间。上述方案中,所述设备信息中的配置参数是编码为二进制串的配置参数,所述设备信息中还包括二进制串的长度;所述根据配置参数对需配置的网络设备进行配置的方法为根据设备信息中二进制串的长度将对应的二进制串进行解码,获得配置参数,再根据获得的配置参数对需配置的网络设备进行配置。上述方案中,所述在根据设备信息中二进制串的长度将对应的二进制串进行解码之前,该方法进一步包括根据探测方法判断需配置的网络设备是否正常,如果正常,则继续执行根据设备信息中二进制串的长度将对应的二进制串进行解码的步骤。上述方案中,所述确定到达任务调度时间的方法为将任务调度时间设置为调度定时器的超时时间,启动调度定时器,在调度定时器到达超时时间时确定到达任务调度时间。上述方案中,所述任务信息包括任务调度类型;如果任务调度类型为一次性调度类型,则在结束配置时,该方法进一步包括删除所述配置任务;如果任务调度类型为周期性调度类型,则在结束配置时,该方法进一步包括重新启动调度定时器。上述方案中,在判断出需配置的网络设备处于不可配置状态时,该方法进一步包括根据预先设置的等待超时时间启动等待定时器,在等待定时器到达等待超时时间时,再执行重新返回到判断需配置的网络设备是否处于可配置状态的步骤。上述方案中,在根据配置参数对需配置的网络设备进行配置时,该方法进一步包括根据预先设置的执行超时时间设置并启动执行定时器,如果在执行定时器到达执行超时时间之前接收到返回的配置执行结果,则停止执行定时器,再继续执行将需配置的网络设备的状态记录为可配置状态的步骤;如果在执行定时器到达执行超时时间未接收到返回的配置执行结果,则强制结束配置,再继续执行将需配置的网络设备的状态记录为可配置状态的步骤。本发明还提出一种实现配置任务调度的设备,可以对配置任务进行统一调度,避免网络设备的负载过大而造成配置任务失败。针对上述目的,本发明的技术方案为一种实现配置任务调度的设备,该设备包括一个或一个以上的任务请求模块、任务调度模块以及一个或一个以上的任务执行模块;其中,任务请求模块,用于产生配置任务,将产生的配置任务发送给任务调度模块,所述配置任务包括设备信息,所述设备信息包括配置参数;任务调度模块,用于接收来自任务请求模块的配置任务,根据记录的设备状态信息判断需配置的网络设备是否处于可配置状态,如果是,则将设备信息发送给对应的任务执行模块;否则,重新判断需配置的网络设备是否处于可配置状态;还用于在任务执行模块结束配置时将需配置的网络设备的状态记录为可配置状态;任务执行模块,用于接收来自任务调度模块的设备信息,根据设备信息中的配置参数对需配置的网络设备进行配置。上述方案中,所述配置任务还包括任务信息,所述任务信息包括任务调度时间;所述任务调度模块进一步用于确定到达所述任务调度时间。上述方案中,所述任务执行模块包括收发模块,用于收发任务调度模块、任务执行模块和需配置的网络设备之间交互的信息;配置模块,用于根据收发模块接收到的设备信息中配置参数对需配置的网络设备进行配置。上述方案中,所述设备信息中的配置参数是编码为二进制串的配置参数,所述设备信息中还包括二进制串的长度;所述任务执行模块进一步包括解码模块,用于根据设备信息中二进制串的长度将对应的二进制串进行解码,获得配置参数,并将获得的配置参数传送给配置模块。上述方案中,所述任务执行模块进一步包括探测模块,用于根据探测方法判断需配置的网络设备是否正常,如果正常,则将接收到的设备信息传送给解码模块。上述方案中,所述任务调度模块包括收发模块,用于接收来自任务请求模块的配置任务,将配置任务记录在存储模块中,将配置任务中的调度时间发送给调度定时器;在接收到判别模块的通知时,将存储模块中配置任务的设备信息发送给任务执行模块;在任务执行模块结束配置时将存储模块中需配置的网络设备的状态记录为可配置状态;调度定时器,用于根据收发模块发来的任务调度时间设置调度定时器的超时时间并开始进行计时,在到达超时时间时,触发判别模块的执行;判别模块,用于根据存储模块保存的设备状态信息判断需配置的网络设备当前是否可用于配置,如果是,则通知收发模块向任务执行模块发送设备信息;否则,重新根据存储模块保存的设备状态信息判断需配置的网络设备当前是否可用于配置;存储模块,用于保存配置任务和设备状态信息。上述方案中,所述任务信息包括任务调度类型;所述任务调度模块进一步包括调度类型控制模块,用于从收发模块接收任务调度类型,如果判断出任务调度类型为一次性调度类型,则在结束配置时,删除存储模块相应的配置任务;如果判断出任务调度类型为周期性调度类型,则在结束配置时,重新启动调度定时器。上述方案中,所述判别模块在判断出需配置的网络设备处于不可配置状态时进一步用于触发等待定时器,并接收等待定时器返回的通知;所述任务调度模块进一步包括等待定时器,用于根据预先设置的等待超时时间进行计时,在到达等待超时时间时通知判别模块。上述方案中,所述任务调度模块进一步包括执行定时器,用于在收发模块将设备信息发送给任务执行模块时启动,根据预先设置的执行超时时间进行计时,并在到达执行超时时间时将存储模块中需配置的网络设备的状态记录为可配置状态;所述收发模块进一步用于将配置任务中的设备信息发送给任务执行模块时启动执行定时器,并在接收到返回的配置执行结果时通知执行定时器停止计时。本发明还提出一种用以实现配置任务调度的网络管理设备,其包括硬件平务调度软件。综上所述,本发明提出的提供一种实现配置任务调度的方法和设备,可以对配置任务进行统一调度,每一个需配置的网络设备在任何时候最多只实施一个配置任务,从而避免同时实施多个配置任务而导致配置失败,也有效地避免系统性能下降的情况。图l是现有技术实现任务配置时各个业务组件与网络设备关系示意图2是本发明实现配置任务的方法流程图3是本发明实施例应用场景示意图4是本发明实施例中配置任务数据结构示意图5是本发明方法实施例的流程图6是本发明实现配置任务调度的设备结构示意图7是任务执行模块的内部结构示意图8是任务调度模块的内部结构示意图。具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。为了避免对同一个网络设备同时实施多个配置任务,本发明提出一种配置任务的调度方法,其基本思想是将产生的配置任务进行统一的调度,只有在确定需配置的网络设备处于可配置状态的情况下,才利用配置任务的配置参数对其进行配置。这样,由于同一个网络设备在同一个时刻最多只有一个配置任务,从而可以保证配置任务的成功,也可以避免系统性能的下降。图2是本发明实现配置任务调度的方法流程图。如图2所示,本发明可以包括以下步骤步骤201:产生配置任务,所述配置任务包括设备信息,所述设备信息包括配置参数。本步骤中,可以根据用户的输入信息来产生配置,也可以由事先保存的信息并在某个事件触发自动产生配置任务。实际应用中,配置任务还可以包括任务信息。这里的任务信息表示与统一管理和调度配置任务相关的信息,可以包括任务类型、任务调度时间、任务调度类型、任务执行模式、任务执行结果、任务执行状态等。其中,任务类型表示需要对网络设备实施哪种类型的配置,比如QoS配置、ACL配置等;任务调度时间表示开始实施配置任务的时间;任务调度类型表示任务是一次性调度类型,还是周期性调度类型;任务执行模式表示在同一个任务中需要对多个网络设备进行配置的情况下,对各个网络设备实现配置的方式,比如串行执行模式或并行执行模式;任务执行结果表示某个配置任务的实施结果,如成功或失败;任务执行状态表示某个配置任务的实施状态,如正在执行、执行结束等。本发明的任务信息并不限于上述所列举的表示方式,可以由应用本发明方案的用户根据实际情况自行确定。比如如果只能对网络设备进行某一种类型的配置,比如只能进行QoS配置,那么任务信息中可以不包括任务类型;如果只需要实施一次性配置任务,则任务信息中可以不包括任务调度类型;如果规定只能采用串行的方式在同一个任务中对多个网络设备进行配置,那么任务信息中可以不包括任务执行模式;由于任务执行结果和任务执行状态都应该由具体实施调度的部件生成和管理,就无需产生配置任务的部件或者称请求配置任务的部件来产生,即任务信息中可以不包括任务执行结果和任务执行状态。但不管产生的任务信息可以包括哪些内容,但至少应该包括任务调度时间,以明确配置发生的时间点。这里所述的设备信息可以包括配置参数、设备IP地址、设备状态信息、设备配置结果等。其中,配置参数表示对网络设备需要配置的内容,以QoS配置为例,配置参数可以包括端口号、流量带宽等,或者,以ACL配置为例,配置参数就可以包括接口号、ACL号等;设备IP地址表示需要配置的网络设备的IP地址,以明确需要对哪个网络设备进行配置;设备状态信息表示设备IP地址所对应的网络设备配置的状态,如正在配置、配置完毕等;设备配置结果表示设备IP地址所对应的网络设备配置的结果,如成功、失败等。本发明的设备信息并不限于上述列举的表示方式,也可以由应用本发明方案的用户自行确定。比如如果所针对的只有一个网络设备,那么设备信息就可以不包括设备IP地址;由于设备配置结果和设备状态信息都应该由具体实施配置的部件生成和管理,就无需产生配置任务的部件来产生,即设备信息中可以不包括设备配置结果和设备状态信息。但不管设备信息可以包括哪些内容,但至少应该包括配置参数,以明确需要对某个网络设备进行何种配置。另外,为了统一对不同种类的配置任务进行调度,还可以规定通用的、统一的配置任务格式,以便于识别和调度。通用的配置任务格式可以由应用本发明方案的用户自行确定,只要产生配置任务的部件可以产生统一格式的配置任务,实施任务调度的部件和执行配置的部件可以识别即可,其具体格式可以按照下述较佳实施例中的例子来表示,此处不再赘述。实际应用中,如果配置任务中包括任务信息,所述任务信息包括任务调度时间,那么,在步骤201和步骤202之间,还可以进一步包括步骤X:确定到达所述任务调度时间。确定到达任务调度时间的方法可以为将任务调度对间设置为调度定时器的超时时间,启动调度定时器,在调度定时器到达超时时间时确定到达任务调度时间。当然,如果配置任务不包括任务调度时间,是需要立即执行的配置任务,也可以不包括步骤X。另外,实际应用中,任务信息还可以包括任务调度类型。如果任务调度类型为一次性调度类型,则在后续步骤203结束配置时,该方法进一步包括删除所述配置任务,即该配置任务仅仅执行一次。如果任务调度类型为周期性调度类型,则在后续步骤203结束配置时,该方法进一步包括重新启动调度定时器,即重新执行步骤X~步骤205。步骤202:根据记录的设备状态信息判断需配置的网络设备是否处于可配置状态,如果是,则执行步骤203;否则,执行步骤202。这里所述的设备状态信息就是需配置的网络设备当前所处的状态,可以由实施调度的部件来生成和管理。比如配置任务X需要对网络设备A进行配置,在实施配置过程中时,就可以将网络设备A的设备状态信息记录为"正在配置"。此时,如果配置任务Y也需要对网络设备A进行配置,但由于网络设备A处于"正在配置"的状态,可以确定其处于不可配置状态,应该继续执行步骤202。相反,如果经过一段时间之后,配置任务X已经完成对网络设备A的配置,可以将网络设备A的设备状态信息记录为"配置完毕"。那么,当配置任务Y判断出网络设备A处于"配置完毕"的状态,就可以确定其处于可配置状态,进而执行步骤203。本步骤在判断出需配置的网络设备是否处于不可配置状态时,将立即重复执行步骤202。实际应用中,在判断出需配置的网络设备是否处于不可配置状态时,也可以不立即重复执行步骤202,而是等待一段预先设置的时间段之后,才重复执行步骤202。其方法可以具体为根据预先设置的等待超时时间启动等待定时器,在等待定时器到达等待超时时间时,再执行步骤202。步骤203:将需配置的网络设备的状态记录为不可配置状态。为了防止在对某个网络设备进行配置时,有其它配置任务也需要对该网络设备进行配置,所以,本步骤在真正实施对该网络设备进行配置之前,先将该网络设备的状态记录为不可配置状态。这样,其它配置任务需要对该网络设备进行配置时,如果查询到该网络设备的状态为不可配置状态,就将延迟配置,等待其变为可配置状态才开始进行配置。步骤204:根据所述配置参数对需配置的网络设备进行配置。步骤205:在结束配置时将需配置的网络设备的状态记录为可配置状态。为了其它配置任务可以继续对某个需配置的网络设备进行配置,在该需配置的网络设备结束配置时,本步骤还需要将这个需配置的网络设备的状态记录为可配置状态。实际应用中,如果对某个需配置的网络设备进行了配置,不管配置的结果如何,该网络设备一般都可以返回配置执行结果,根据这个返回的配置执行结果就可以确定配置结束,从而可以将需配置的网络设备的状态记录为可配置状态。但如果发生意外,需配置的网络设备没有返回任何的执行结果,则可能妨害其它配置任务的执行。为了防止这种情况的发生,可以设置一个执行超时时间,在到达执行超时时间时,强制结束配置,并将需配置的网络设备的状态记录为可配置状态。上述的具体的方法可以为在执行步骤204之前,先根据预先设置的执行超时时间设置并启动执行定时器,再执行步骤204。此后,如果在执行定时器到达执行超时时间之前接收到返回的配置执行结果,则停止执行定时器,再继续执行步骤205。如果在执行定时器到达执行超时时间未接收到返回的配置执行结果,则强制结束配置,再继续执行步骤205。另外,如果配置任务中有针对多个需配置网络设备的设备信息,任务信息中还可以包括任务执行模式。如果任务执行模式为串行执行模式,那么在针对某个需配置的网络设备进行配置后,还可以继续针对同一任务中另外一个需配置的网络设备进行配置。比如配置任务中有3个设备信息,第一个设备信息为针对网络设备A的设备信息,第二个设备信息为针对网络设备B的设备信息,第三个设备信息为针对网络设备C的设备信息。在这种情况下,可以先利用第一个设备信息执行步骤202~步骤205,再利用第二个设备信息执行步骤202~步骤205,然后利用第三个设备信息执行步骤202~步骤205。由于多个需配置的网络设备是逐一进行配置的,所以又可以称为串行执行一莫式。相应地,如果分别利用三个设备信息同时独立执行步骤202~步骤205,则可以成为并行执行模式。实际应用中,任务信息中包括哪些内容,设备信息中包括哪些内容可以由应用本发明方案的用户根据实际情况任意选择,此处不再——列举。为了更好地说明本发明方案,下面用一个较佳实施例进行详细描述。本实施例中,假设应用场景如图3所示,包括三个产生任务配置的部件,本实施例中也可称为三个任务请求模块。这三个任务请求模块可以分别用于请求QoS配置、ACL配置和MPLSVPN配置;包括一个实施任务调度的部件,本实施例可称为任务调度模块;还包括对应的三个执行配置的部件,即用于QoS配置的任务执行模块、用于ACL配置的任务执行模块和用于MPLSVPN配置的任务执行模块。这些任务执行模块可以按照Telnet协议或SNMP协议与网络设备交互来实现配置;包括四个网络设备,第一个网络设备的IP地址为10.153.128.131,第二个网络设备的IP地址为10.153.128.132,第三个网络设备的IP地址为10.153.128.86,第四个网络设备的IP地址为10.153.128.87。本实施例中,假设用于请求ACL配置的任务请求模块产生了配置任务,需要对第一个网络设备、第二个网络设备和第三个网络设备进行ACL配置。配置任务中的任务信息包括任务类型、任务调度时间、任务调度类型、任务执行模式、任务执行结果、任务执行状态。其中,任务类型假设为ACL配置,任务调度时间假设为2007年11月1日的12点30分00秒,任务调度类型为一次性调度类型,任务执行模式为串行执行模式,任务执行结果和任务执行状态均为空值。配置任务中有三个分别针对三个网络设备的设备信息,每一个设备信息都包括配置参数、设备IP地址、设备状态信息、设备配置结果。其中,第一个设备信息的设备IP地址为10.153.128.131,第二个设备信息的设备IP地址为10.153.128.132;第三个设备信息的设备IP地址为10.153.128.86,三个设备信息的所有设备状态信息和设备配置结果均为空值。本实施例中,为了将各个任务请求模块产生的配置任务格式统一起来,可以规定配置参数为经过编码的二进制串,并利用二进制的长度指定。按照上述的规定,本实施例产生的配置任务的格式可以如图4所示。当然,实际应用中,配置任务的格式还可以采用其它方式,只要便于任务调度模块和任务执行模块识别即可,此处不再赘述。图5是本实施例实现任务调度的方法流程图。如图5所示,本实施例包括步骤501:产生配置任务。本步骤可以由任务请求模块来产生的配置任务,其结构参见图4。其中,任务信息可以具体参见以下描述AsnJobEntry::=SEQUENCE{iJobTypeINTEGER,iExecTypeINTEGER,iTimerDayINTEGER,strTimerTimeOCTETSTRING,iExecModeINTEGER,iStatusINTEGER,iResultINTEGER,其中,"AsnJobEntry"表示任务信息;"iJobType"表示任务类型,其值为"INTEGER,,类型,比如"l"表示QoS配置,"2"表示ACL配置,"3"表示MPLSVPN配置等;"iExecType"表示任务调度类型,其值为"INTEGER"类型,比如"0"表示一次性调度类型,"l"表示周期性调度类型等;"iTimerDay"和"strTimerTime"都表示调度时间,其值可以为"OCTETSTRING"。比如,调度类型为一次性调度类型时,则可以利用"iTimerDay"和"strTimerTime"指定具体的年、月、日、时、分、秒等信息。当然,也可以直接用其中一个字段指定全部必须的时间。又比如,如果调度类型为周期性调度类型时,则可以利用"iTimerDay"指定每个月中的几号或者每周的周几等信息,并同时利用"strTimerTime,,指定时、分、秒等信息。另外,"iExecMode"表示任务执行模式,其值为"INTEGER,,类型,比如"l"表示串行执行模式,"2"表示"并行执行模式";"iStatus,,表示任务执行状态,其值为空;"iResult,,表示任务执行结果,其值为空。设备信息可以具体参见以下描述AsnJobDevEntry::=SEQUENCE{oDevParasOCTETSTRING,iDevParasLenINTEGER,strDevIPOCTETSTRING,iStatusINTEGER,iResultCodeINTEGER,其中,"AsnJobDevEntry"表示设备信息;"oDevParas"表示配置参数,为二进制串;"iDevParasLen,,表示二进制串的长度;"strDevIP"表示需配置网络设备的设备IP地址,为"OCTETSTRING"类型;"iStatus"表示设备状态信息,其值为空;"iResultCode"表示设备配置结果,其值为空。当任务请求模块产生一个包含一个或一个以上设备信息的配置任务时,具体可以采用如下描述方式AsnJobDataSEQUENCE{joblnfoAsnJobEntry,devlnfoSEQUENCEOFAsnJobDevEntry其中,"joblnfo,,为任务信息,其类型就是上述的"AsnJobEntry";"devlnfo"为一个或一个以上设备信息,每一个设备信息的类型就是上述的"AsnJobDevEntry",并且按照顺序进行排列。步骤502:将配置任务中的任务调度时间设置为调度定时器的超时时间,启动调度定时器,在调度定时器到达超时时间时确定到达任务调度时间。本步骤可以由任务调度模块实现,也就是说,任务调度模块接收到配置任务后,并不立即执行配置任务,而是等待任务调度时间的到来。为了更好地维护和管理配置任务,当任务调度模块接收到某个配置任务时,可以记录该配置任务,记录的格式可以如表一所示<table><row><column>任务ID号</column><column>任务信息</column><column>设备信息(针对第一个网络设备)</column><column>设备信息(针对第二个网络)</column><column>设备信息(针对第三个网络设备)</column></row><row><column>-</column><column>-</column><column>-</column><column>-</column><column>-</column></row><table>表一在表一中,记录了任务信息和三个设备信息,任务信息的详细情况可以如表二所示<table><row><column>任务类型</column><column>任务调度时间</column><column>任务调度类型</column><column>任务执行模式</column><column>任务执行结果</column><column>任务执行状态</column></row><row><column>-</column><column>-</column><column>-</column><column>-</column><column>-</column></row><table>表二其中,由于产生的配置任务中"任务执行结果"、"任务执行状态"的值为空,也可以在任务调度模块在记录配置任务时产生,即配置任务中可以不包括"任务执行结果"和"任务执行状态"。另外,表一中的各个设备信息的格式可以如表三所示<table><row><column>配置参数(二进制串)</column><column>二进制串的长度</column><column>设备IP地址</column><column>设备状态信息</column><column>设备配置结果</column></row><row><column>-</column><column>-</column><column>-</column><column>-</column><column>-</column></row><table>表三同样,由于产生的配置任务中"设备状态信息"、"设备配置结果"的值为空,也可以由任务调度模块在记录配置任务时产生,即配置任务中可以不包括"设备状态信息"和"设备配置结果"。本实施例中,假设"任务执行结果"有三种,包括"未知"、"成功"和"失败";"任务执行状态,,有三种,包括"等待中"、"正在执行"、"执行结束"。同样,假设"设备配置结果,,有三种,包括"未知"、"成功"和"失败";"设备状态信息"有三种,包括"等待中"、"正在配置"、"配置完毕"。实际应用中,当任务调度模块记录在准备调度的配置任务后,还可以将"任务执行结果"初始化为"未知",将"任务执行状态"初始化为"等待中",将"设备配置结果"初始化为"未知",将"设备状态信息"初始化为"等待中"。步骤503:根据记录的设备状态信息判断需配置的网络设备是否处于可配置状态,如果是,则执行步骤504;否则,执行步骤508。由于本实施例将每一个配置任务记录在表一-表三中单独进行维护,每一个配置任务都有针对需配置网络设备的设备状态信息,那么,在任务调度模块查询某个需配置的网络设备是否处于可配置状态时,就需要查询其它所有配置任务中的该网络设备的设备状态信息。比如其它某个配置任务中也有关于对本实施例中第一个网络设备的配置,并且该网络设备的设备状态信息为"正在配置",那么,任务调度模块在执行本步骤时将判断出网络设备是处于不可配置的状态。相反,如果该网络设备的设备状态信息为"配置完毕",那么,任务调度模块在执行本步骤时将判断出网络设备是处于可配置的状态。当然,实际应用中,也可以不在每一个配置任务中设置单独的设备状态信息,而为所有配置任务设置一个共同的设备状态信息,任务调度模块每次查询这个唯一的设备状态信息就可以判断是否可以进行配置。步骤504:根据探测方法判断需配置的网络设备是否正常,并在判断出正常的情况下,继续执行步骤505。实际应用中,为了保证配置的成功,还可以在进行配置之前利用探测方法判断需配置的网络设备是否正常,并在确保正常的情况,才开始真正对该网络设备进行配置。这里所述的探测方法可以利用ping命令来实现,即判断设备是否存在、设备是否可以正常通信等等。至于如何利用探测方法来判断则属于现有技术,此处不再赘述。当然,如果判断出需配置的网络设备不正常,则可以采取相应的措施。比如任务执行模块将需配置的网络设备是否正常的消息同步响应给任务调度模块后,如果当前配置任务中只针对该网络设备进行配置,则任务调度模块可以结束整个配置任务,继续调度其它的配置。如果当前配置任务中还有针对其它网络设备的配置,则任务调度模块可以结束这个不正常的网络设备的配置,转而对其它网络设备进行配置。步骤505:将需配置的网络设备的状态记录为不可配置状态。本实施例中,为了避免同时对一个网络设备实施多个配置任务,任务调度模块在确定对网络设备执行配置时,可以将当前配置任务中需配置网络设备的设备状态信息记录为"正在配置"。这样,当执行其它配置任务时,其它配置任务就无法对本步骤中的网络设备进行配置。由于本实施例采用串行执行模式,本步骤中所述的需配置的网络设备就是指第一个网络设备,设备信息也都相应是针对第一个网络设备的设备信息。另外,本实施例还可以将当前配置任务中的任务执行状态记录为"正在执行",以实时记录配置任务的执行状态。步骤506:根据设备信息中二进制串的长度将对应的二进制串进行解码,获得配置参数,再根据获得的配置参数对需配置的网络设备进行配置。本实施例中,任务调度模块可以将针对第一个网络设备的设备信息发送给任务执行模块,由任务执行模块根据设备信息去配置网络设备。由于设备信息中配置参数是事先编码为二进制串的,还需要由任务执行模块将二进制串进行解码,以此获得配置参数。实际应用中,各个任务请求模块都可以先将配置参数组织为Asn.l结构,再利用简单定长编码方法、结构化定长编码方法或结构化非定长编码方法等进行编码,获得二进制串。这样,如果在各个功能模块要求传输的配置任务的结构必须相同的场景下,就可以将不同格式的Asn.l统一组织为本实施例中这种通用的配置任务格式,以便于更好地实现统一调度。相应地,任务执行模块就可以利用相应的解码方法来解码,从而获得配置参数。本步骤中,任务执行模块可以利用Telnet协议或SNMP协议与需配置的网络设备进行交互来实现配置。当然,任务执行模块可能还需要利用需配置网络设备的设备IP地址到系统中已有的数据库中的查询配置该网络设备必要的信息,如访问参数等。至于具体如何在网络设备上实现参数配置可以与现有技术相同,此处不再赘述。步骤507:在结束配置时将需配置的网络设备的状态记录为可配置状态。本实施例,如果任务执行模块执行完配置,网络设备一般都会返回执行结果,如成功或失败,从而可以知道配置是否结束。比如如果采用Telnet协议交互,任务执行模块可以通过回显命令确定执行结果是成功还是失败;如果采用SNMP协议交互,任务执行模块可以通过返回的SNMP报文确定执行结果是成功还是失败。这样,只要任务执行模块得到配置执行结果,就可以采用广播或其它方式返回给任务调度模块,由任务调度模块更新相应的设备状态信息,将当前配置任务中第一个网络设备的设备状态信息记录为"配置完毕",将记录为可配置状态。实际应用中,为了防止网络设备发生异常,在步骤506任务执行模块开始对需配置的网络设备进行配置时,任务调度模块还可以根据预先设置的执行超时时间设置并启动执行定时器,如果在执行定时器到达执行超时时间之前接收到返回的配置执行结果,则停止执行定时器,再继续执行步骤507;如果在执行定时器到达执行超时时间未接收到返回的配置执行结果,则强制结束配置,再继续执行步骤507。步骤508:根据预先设置的等待超时时间启动等待定时器,在等待定时器到达等待超时时间时,再返回到步骤503。本步骤是在步骤503判断出需配置的网络设备处于不可配置状态时执行的。也就是说,如果需配置的网络设备处于不可配置状态,就可以通过步骤508等待一段时间,再重新判断该网络设备的状态。如果在步骤508等待的时间内,该网络设备的状态已经变为可配置状态,就可以执行步骤504;如果该网络设备仍然为不可配置状态,则还需要重新执行步骤508,继续等待,知道该网络设备的状态变为可配置状态为止。上述步骤501~步骤507是本实施例针对第一个网络设备进行配置的流程。本实施例中,由于配置任务需要对三个网络设备进行配置,并且采用串行配置模式,那么,在配置完第一个网络设备之后,还可以继续执行步骤503~步骤507,以实现对第二个网络设备的配置。同样,配置完第二个网络设备之后,还可以继续执行步骤503~步骤507,以实现对第三个网络设备的配置。本实施例实现对三个网络设备的配置之后,由于任务调度类型为一次性调度类型,则可以在最后一个网络设备配置结束时,从任务调度模块中删除配置任务。当然,实际应用中,如果任务调度类型为周期性调度类型,则可以在最后一个网络设备配置结束时,不删除配置任务,而是重新启动步骤502中的调度定时器,并在调度定时器超时时,重新执行步骤503~步骤507。本实施例中,当完成所有网络设备的配置之后,任务调度模块还可以将该配置任务的任务执行状态记录为"执行结束",根据各个网络设备的执行结果将配置任务的任务执行结果记录为"成功"或"失败",还可以进一步将配置任务地执行结果采用广播或其它方式返回给任务请求模块。针对上述方法,本发明还提出一种实现配置任务调度的设备,该设备可以为网络管理设备,可以包括硬件平台以及运行该硬件平台上用以使得所述网络管理设备执行上述各种方法的配置任务调度软件。实现配置任务调度的设备的内部结构示意图可以如图6所示。在图6中,实现配置任务调度的设备包括一个或一个以上的任务请求模块601、任务调度模块602、一个或一个以上的任务执行模块603。其中,任务请求模块601,用于产生配置任务,将产生的配置任务发送给任务调度模块602,所述配置任务包括设备信息,所述设备信息包括配置参数。任务调度模块602,用于接收来自任务请求模块601的配置任务,根据记录的设备状态信息判断需配置的网络设备是否处于可配置状态,如果是,则将设备信息发送给对应的任务执行模块603;否则,重新判断需配置的网络设备是否处于可配置状态;还用于在任务执行模块603结束配置时将需配置的网络设备的状态记录为可配置状态。任务执行模块603,用于接收来自任务调度模块602的设备信息,根据设备信息中的配置参数对需配置的网络设备进行配置。实际应用中,配置任务还包括任务信息,所述任务信息包括任务调度时间。在这种情况下,任务调度模块602还可以进一步用于确定到达所述任务调度时间。实际应用中,任务执行模块603的内部结构示意图可以如图7所示。在图7中,任务执行模块603可以包括收发模块6031,用于收发任务调度模块602、任务执行模块603和需配置的网络设备之间交互的信息。探测模块6032,用于根据探测方法判断需配置的网络设备是否正常,如果正常,则将收发模块6031接收到的设备信息传送给解码模块6033。解码模块6033,用于根据设备信息中二进制串的长度将对应的二进制串进行解码,获得配置参数,并将获得的配置参数传送给配置模块6033。配置模块6034,用于根据接收到的设备信息中配置参数对需配置的网络设备进行配置。实际应用中,如果可以保证需配置的网络设备始终可以正常通信,就不必对其进行探测,即可以省略探测模块6032。如果配置任务中的配置参数没有编码为二进制串的格式,也不必对其进行解码,即可以省略解码模块6033。实际应用中,任务调度模块602的内部结构示意图可以如图8所示。在如8中,任务调度模块602可以包括收发模块6021,用于接收来自任务请求模块601的配置任务,将配置任务记录在存储模块6024中,将配置任务中的调度时间发送给调度定时器6022;在接收到判别模块6023的通知时,将存储模块6024中配置任务的设备信息发送给任务执行模块603;在任务执行模块603结束配置时将存储模块6024中需配置的网络设备的状态记录为可配置状态。调度定时器6022,用于根据收发模块6021发来的任务调度时间设置调度定时器的超时时间并开始进行计时,在到达超时时间时,触发判别模块6023的执行。判别模块6023,用于根据存储模块6024保存的设备状态信息判断需配置的网络设备当前是否处于可用于配置状态,如果是,则通知收发模块6021向任务执行模块603发送设备信息;否则,重新根据存储模块6024保存的设备状态信息判断需配置的网络设备当前是否可用于配置。存储模块6024,用于保存配置任务和设备状态信息。实际应用中,如果任务信息包括任务调度类型,那么,任务调度模块602还可以进一步包括调度类型控制模块6025,用于从收发模块6021接收任务调度类型,如果判断出任务调度类型为一次性调度类型,则在结束配置时,删除存储模块6024相应的配置任务;如果判断出任务调度类型为周期性调度类型,则在结束配置时,重新启动调度定时器6022。实际应用中,在判别模块6023判断出需配置的网络设备当前不可用于配置,还可以先等待一段时间后再继续判断。也就是说,任务调度模块602还可以进一步包括等待定时器6026,用于根据预先设置的等待超时时间进行计时,在到达等待超时时间时通知判别模块6023。相应地,判别模块6023在判断出需配置的网络设备处于不可配置状态时进一步用于触发等待定时器6026,并接收等待定时器6026返回的通知。为了防止网络设备出现异常情况,在执行配置后没有向任务执行模块603返回执行结果,以至于延误任务调度模块602调度其它配置任务,任务调度模块602还可以进一步包括执行定时器6027,用于在收发模块6021将设备信息发送给任务执行模块603时启动,根据预先设置的执行超时时间进行计时,并在到达执行超时时间时将存储模块6024中需配置的网络设备的状态记录为可配置状态。相应地,收发模块6021进一步用于将配置任务中的设备信息发送给任务执行模块603时启动执行定时器6027,并在接收到返回的执行结果时通知执行定时器停止计时。本发明实施例的各个功能模块只是从逻辑上进行划分的,可以利用真正的硬件逻辑模块实现,也可以利用软件逻辑模块实现。比如如果采用软件来实现的话,任务请求模块601和任务执行模块603可以为同一个业务组件,也可以为不同的业务组件,即可以为创建的同一个或不同的进程。任务调度模块则可以由一个独立的进程来实现。应用本发明实施例方案,由于所有的配置任务都可以统一进行调度,在确认需配置的网络设备处于可配置状态时才开始进行配置,所以,每一个需配置的网络设备在任何时候最多只实施一个配置任务,从而避免同时实施多个配置任务而导致配置失败,也有效地避免系统性能下降的情况。综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一种实现配置任务调度的方法,其特征在于,该方法包括产生配置任务,所述配置任务设备信息,所述设备信息包括配置参数;根据记录的设备状态信息判断需配置的网络设备是否处于可配置状态,如果是,则将需配置的网络设备的状态记录为不可配置状态,根据所述配置参数对需配置的网络设备进行配置,并在结束配置时将需配置的网络设备的状态记录为可配置状态;否则,重新返回到判断需配置的网络设备是否处于可配置状态的步骤。2、根据权利要求1所述的方法,其特征在于,所述配置任务还包括任务信息,所述任务信息包括任务调度时间;所述产生配置任务和判断需配置的网络设备是否处于可配置状态之间,该方法进一步包括确定到达所述任务调度时间。3、根据权利要求2所述的方法,其特征在于,所述设备信息中的配置参数是编码为二进制串的配置参数,所述设备信息中还包括二进制串的长度;所述根据配置参数对需配置的网络设备进行配置的方法为根据设备信息中二进制串的长度将对应的二进制串进行解码,获得配置参数,再根据获得的配置参数对需配置的网络设备进行配置。4、根据权利要求3所述的方法,其特征在于,所述在根据设备信息中二进制串的长度将对应的二进制串进行解码之前,该方法进一步包括根据探测方法判断需配置的网络设备是否正常,如果正常,则继续执行根据设备信息中二进制串的长度将对应的二进制串进行解码的步骤。5、根据权利要求2至4任一项所述的方法,其特征在于,所述确定到达任务调度时间的方法为将任务调度时间设置为调度定时器的超时时间,启动调度定时器,在调度定时器到达超时时间时确定到达任务调度时间。6、根据权利要求5所述的方法,其特征在于,所述任务信息包括任务调度类型;如果任务调度类型为一次性调度类型,则在结束配置时,该方法进一步包括删除所述配置任务;如果任务调度类型为周期性调度类型,则在结束配置时,该方法进一步包括重新启动调度定时器。7、根据权利要求1至4任一项所迷的方法,其特征在于,在判断出需配置的网络设备处于不可配置状态时,该方法进一步包括根据预先设置的等待超时时间启动等待定时器,在等待定时器到达等待超时时间时,再执行重新返回到判断需配置的网络设备是否处于可配置状态的步骤。8、根据权利要求1至4任一项所述的方法,其特征在于,在根据配置参数对需配置的网络设备进行配置时,该方法进一步包括根据预先设置的执行超时时间设置并启动执行定时器,如果在执行定时器到达执行超时时间之前接收到返回的配置执行结果,则停止执行定时器,再继续执行将需配置的网络设备的状态记录为可配置状态的步骤;如果在执行定时器到达执行超时时间未接收到返回的配置执行结果,则强制结束配置,再继续执行将需配置的网络设备的状态记录为可配置状态的步骤。9、一种实现配置任务调度的设备,其特征在于,该设备包括一个或一个以上的任务请求模块、任务调度模块以及一个或一个以上的任务执行模块;其中,任务请求模块,用于产生配置任务,将产生的配置任务发送给任务调度模块,所述配置任务包括设备信息,所述设备信息包括配置参数;任务调度模块,用于接收来自任务请求模块的配置任务,根据记录的设备状态信息判断需配置的网络设备是否处于可配置状态,如果是,则将设备信息发送给对应的任务执行模块;否则,重新判断需配置的网络设备是否处于可配置状态;还用于在任务执行模块结束配置时将需配置的网络设备的状态记录为可配置状态;任务执行模块,用于接收来自任务调度模块的设备信息,根据设备信息中的配置参数对需配置的网络设备进行配置。10、根据权利要求9所述的设备,其特征在于,所述配置任务还包括任务信息,所述任务信息包括任务调度时间;所述任务调度模块进一步用于确定到达所述任务调度时间。11、根据权利要求IO所述的设备,其特征在于,所述任务执行模块包括收发模块,用于收发任务调度模块、任务执行模块和需配置的网络设备之间交互的信息;配置模块,用于根据收发模块接收到的设备信息中配置参数对需配置的网络设备进行配置。12、根据权利要求11所述的设备,其特征在于,所述设备信息中的配置参数是编码为二进制串的配置参数,所述设备信息中还包括二进制串的长度;所述任务执行模块进一步包括解码模块,用于根据设备信息中二进制串的长度将对应的二进制串进行解码,获得配置参数,并将获得的配置参数传送给配置模块。13、根据权利要求12所述的设备,其特征在于,所述任务执行模块进一步包括探测模块,用于根据探测方法判断需配置的网络设备是否正常,如果正常,则将接收到的设^i言息传送给解码模块。14、根据权利要求IO所述的设备,其特征在于,所述任务调度模块包括收发模块,用于接收来自任务请求模块的配置任务,将配置任务记录在存储模块中,将配置任务中的调度时间发送给调度定时器;在接收到判别模块的通知时,将存储模块中配置任务的设备信息发送给任务执行模块;在任务执行模块结束配置时将存储模块中需配置的网络设备的状态记录为可配置状态;调度定时器,用于根据收发模块发来的任务调度时间设置调度定时器的超时时间并开始进行计时,在到达超时时间时,触发判别模块的执行;判别模块,用于根据存储模块保存的设备状态信息判断需配置的网络设备当前是否可用于配置,如果是,则通知收发模块向任务执行模块发送设备信息;否则,重新根据存储模块保存的设备状态信息判断需配置的网络设备当前是否可用于配置;存储模块,用于保存配置任务和设备状态信息。15、根据权利要求14所述的设备,其特征在于,所述任务信息包括任务调度类型;所述任务调度模块进一步包括调度类型控制模块,用于从收发模块接收任务调度类型,如果判断出任务调度类型为一次性调度类型,则在结束配置时,删除存储模块相应的配置任务;如果判断出任务调度类型为周期性调度类型,则在结束配置时,重新启动调度定时器。16、根据权利要求14所述的设备,其特征在于,所述判别模块在判断出需配置的网络设备处于不可配置状态时进一步用于触发等待定时器,并接收等待定时器返回的通知;所述任务调度模块进一步包括等待定时器,用于根据预先设置的等待超时时间进行计时,在到达等待超时时间时通知判别模块。17、根据权利要求14所述的设备,其特征在于,所述任务调度模块进一步包括执行定时器,用于在收发模块将设备信息发送给任务执行模块时启动,根据预先设置的执行超时时间进行计时,并在到达执行超时时间时将存储模块中需配置的网络设备的状态记录为可配置状态;所述收发模块进一步用于将配置任务中的设备信息发送给任务执行模块时启动执行定时器,并在接收到返回的配置执行结果时通知执行定时器停止计时。18、一种用以实现配置任务调度的网络管理设备,其包括硬件平台以及运行该硬件平台上用以使得所述网络管理设备执行如权利要求1-8所述方法的配置任务调度软件。全文摘要本发明提供一种实现配置任务调度的方法和设备,产生配置任务,根据设备状态信息判断需配置的网络设备是否处于可配置状态,如果是,则将需配置的网络设备的状态记录为不可配置状态,根据所述配置参数对需配置的网络设备进行配置,并在结束配置时将需配置的网络设备的状态记录为可配置状态;否则,重新返回到判断需配置的网络设备是否处于可配置状态的步骤。应用本发明方案,由于可以对配置任务进行统一调度,每一个需配置的网络设备在任何时候最多只实施一个配置任务,从而避免同时实施多个配置任务而导致配置失败,也有效地避免系统性能下降的情况。文档编号H04L12/24GK101207522SQ20071017981公开日2008年6月25日申请日期2007年12月18日优先权日2007年12月18日发明者张学明申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1