US9882835B2 - Programming method and apparatus for core routing and switching system - Google Patents

Programming method and apparatus for core routing and switching system Download PDF

Info

Publication number
US9882835B2
US9882835B2 US14/887,283 US201514887283A US9882835B2 US 9882835 B2 US9882835 B2 US 9882835B2 US 201514887283 A US201514887283 A US 201514887283A US 9882835 B2 US9882835 B2 US 9882835B2
Authority
US
United States
Prior art keywords
routing
requirement
routing node
resource
switching system
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, expires
Application number
US14/887,283
Other versions
US20160112331A1 (en
Inventor
Ke Xu
Yuchao Zhang
Meng Shen
Youjian Zhao
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Assigned to TSINGHUA UNIVERSITY reassignment TSINGHUA UNIVERSITY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SHEN, Meng, XU, KE, ZHANG, Yuchao, ZHAO, Youjian
Publication of US20160112331A1 publication Critical patent/US20160112331A1/en
Application granted granted Critical
Publication of US9882835B2 publication Critical patent/US9882835B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time

Definitions

  • the present disclosure relates to an Internet field, and more particularly, to a programming method for a core routing and switching system and a programming apparatus for a core routing and switching system.
  • a routing and switching system is a hub for transferring data in the Internet.
  • a data exchange capacity and a speed rate of an interface are improved continually.
  • the Internet has shown a rapid development trend, therefore, a development of an open and extendible routing and switching system is imminent.
  • the performance of the routing and switching system is improved continuously and that an innovation of the Internet network service is supported by the routing and switching system. Therefore, in order to support new service, the function of the routing and switching system is required to be updated and upgraded frequently.
  • Embodiments of the present disclosure seek to solve at least one of the problems existing in the related art to at least some extent.
  • a first objective of the present disclosure is to provide a programming method for a core routing and switching system, which may improve a response speed of the core routing and switching system, optimize a user experience and support a reconfiguration of a route when the core routing and switching system is running.
  • a second objective of the present disclosure is to provide a programming apparatus for a core routing and switching system.
  • a third objective of the present disclosure is to provide a non-transitory computer-readable storage medium.
  • embodiments of a first aspect of the present disclosure provide a programming method for a core routing and switching system, including: obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system; judging whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user; judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement; searching for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement; calculating a plurality of migration overheads corresponding to the plurality of second routing node groups; selecting a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement.
  • the programming method for a core routing and switching system when the first requirement of the user is changed to the second requirement in the core routing and switching system, if resources in the first routing node group corresponding to the first requirement cannot meet the second requirement of the user, firstly, it is judged whether other routing nodes in the core routing and switching system have enough resources meeting the second requirement, and if there are other routing nodes with resources meeting the second requirement, the plurality of second routing node groups (i.e. groups including routing nodes in which resources meet the second requirement) are determined, and then a second routing node group corresponding to a smallest migration overhead may be selected from the plurality of second routing node groups, and then the route is changed.
  • This method may improve a response speed of the core routing and switching system, optimize a user experience and support a reconfiguration of a route when the core routing and switching system is running.
  • D′ j (d′ j,1 , d′ j,2 , . . . d′ j,t , . . .
  • d j,t represents a demand of the j th user for the t th type of resource in the first requirement
  • d′ j,t represents a demand of the j th user for the t th type of resource in the second requirement
  • judging whether a residual amount of the t th type of resource in a routing node corresponding to the demand of the j th user for the t th type of resource in the first requirement is greater than the demand d′ j,t of the j th user for the t th type of resource in the second requirement; if yes, judging that the resources in the first routing node group meet the second requirement; if no, judging that the resources in the first routing node group do not meet the second requirement.
  • searching for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system includes: determining routing nodes T with available resources; for each routing node with available resources, judging whether r k,t >d′ j,t ⁇ k ⁇ T,1 ⁇ t ⁇ M;
  • routing node with available resources as an available routing node such that routing nodes are obtained; permitting and combining the available routing nodes to obtain the plurality of second routing node groups.
  • a number of the plurality of second routing node groups is n 1 ⁇ n 2 ⁇ . . . ⁇ n M .
  • calculating a plurality of migration overheads corresponding to the plurality of second routing node groups includes: defining routing nodes in a second routing node group as P i , P i+1 , . . . , P i+k , . . .
  • embodiments of a second aspect of the present disclosure provide a programming apparatus for a core routing and switching system, including: an obtaining module, configured to obtain a number of routing nodes and a number of resource types in each routing node in the core routing and switching system; a first judging module, configured to judge whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user; a second judging module, configured to judge whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement; a searching module, configured to search for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement; a calculating module, configured to calculate a plurality of migration overheads corresponding to the plurality of second routing node groups; a selecting module, configured to select a second routing node group corresponding to
  • the programming apparatus for a core routing and switching system when the first requirement of the user is changed to the second requirement in the core routing and switching system, if resources in the first routing node group corresponding to the first requirement cannot meet the second requirement of the user, firstly, it is judged whether other routing nodes in the core routing and switching system have enough resources meeting the second requirement, and if there are other routing nodes with resources meeting the second requirement, the plurality of second routing node groups (i.e. groups including routing nodes in which resources meet the second requirement) are determined, and then a second routing node group corresponding to a smallest migration overhead may be selected from the plurality of second routing node groups, and then the route is changed.
  • This programming apparatus may improve a response speed of the core routing and switching system, optimize a user experience and support a reconfiguration of a route when the core routing and switching system is running.
  • i represents a i th routing node
  • t represents a t th type of resource
  • N represents the number of the routing nodes
  • M represents the number of the resource types
  • r i,t represents a residual amount of the t th type of resource in the i th routing node
  • T i ⁇ N represents the tuple
  • 1 ⁇ t ⁇ M 1 ⁇ t ⁇ M.
  • d j,t represents a demand of the j th user for the t th type of resource in the first requirement
  • d′ j,t represents a demand of the j th user for the t th type of resource in the second requirement
  • judging whether a residual amount of the t th type of resource in a routing node corresponding to the demand of the j th user for the t th type of resource in the first requirement is greater than the demand of the j th user for the t th type of resource in the second requirement if yes, judging that the resources in the first routing node group meet the second requirement; if no, judging that the resources in the first routing node group do not meet the second requirement.
  • the searching module is further configured to: determine routing nodes T with available resources; for each routing node with available resources, judge whether r k,t >d′ j,t ⁇ k ⁇ T,1 ⁇ t ⁇ M;
  • routing node with available resources as an available routing node such that available routing nodes are obtained; permit and combine the available routing nodes to obtain the plurality of second routing node groups.
  • a number of the plurality of second routing node groups is n 1 ⁇ n 2 ⁇ . . . ⁇ n M .
  • the calculating module is configured to calculate a plurality of migration overheads corresponding to the plurality of second routing node groups by steps of: defining routing nodes in a second routing node group as P i , P i+1 , . . . , P i+k , . . .
  • embodiments of a third aspect of the present disclosure provides a non-transitory computer-readable storage medium having stored therein instructions that, when executed by a processor of an apparatus, causes the apparatus to perform a programming method for a core routing and switching system according to the first aspect of embodiments of the present disclosure for running an application program.
  • embodiments of a fourth aspect of the present disclosure provide a programming apparatus for a core routing and switching system, including:
  • a memory for storing instructions executable by the processor
  • processor is configured to:
  • FIG. 1 is a flow chart showing a programming method for a core routing and switching system according to an embodiment of the present disclosure
  • FIG. 2 is a flow chart showing a programming method for a core routing and switching system according to another embodiment of the present disclosure
  • FIG. 3 is a schematic diagram illustrating a work environment for implementing a programming method for a core routing and switching system according to an embodiment of the present disclosure
  • FIG. 4 is a schematic diagram illustrating a communication overhead between each two routing nodes according to an embodiment of the present disclosure.
  • FIG. 5 is a block diagram illustrating a programming apparatus for a core routing and switching system according to an embodiment of the present disclosure.
  • first and second are used herein for purposes of description and are not intended to indicate or imply relative importance or significance.
  • the feature defined with “first” and “second” may comprise one or more this feature.
  • the term “a plurality of” means two or more than two, unless specified otherwise.
  • FIG. 1 is the flow chart showing a programming method for a core routing and switching system according to an embodiment of the present disclosure.
  • FIG. 2 is the flow chart showing a programming method for a core routing and switching system according to another embodiment of the present disclosure. Referring to FIG. 1 and FIG. 2 , the method for a core routing and switching system according to embodiments of the present disclosure includes following steps.
  • step S 101 a number of routing nodes and a number of resource types in each routing node in the core routing and switching system are obtained.
  • i a i th routing node
  • t a t th type of resource
  • r i,t a residual amount of the t th type of resource in the i th routing node
  • T i ⁇ N represents the tuple
  • 1 ⁇ t ⁇ M 1 ⁇ t ⁇ M.
  • a communication overhead P i,j between a routing node i and a routing node j is equal to a number of routing hops between these two routing nodes, and an internal communication overhead of each routing node may be negligible.
  • An overhead required to migrate a task from any one of the routing nodes to another routing node may be denoted as S ch .
  • step S 102 it is judged whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user.
  • step S 103 it means that a demand for each resource is changed when the first requirement of the user is changed. It is judged whether the first requirement is changed to the second requirement in this step, if yes, step S 103 is executed.
  • step S 103 it is judged whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement.
  • the first routing node group is located is denoted as ⁇ , where d j,t represents a demand of the j th user for a t th type of resource in the first requirement, d′ j,t represents a demand of the j th user for the t th type of resource in the second requirement, and then it is judged whether a residual amount of the t th type of resource in a routing node corresponding to the demand d j,t of the j th user for the t th type of resource in the first requirement is greater than the demand d′ j,t of the j th user for the t th type of resource in the second requirement, i.e. it is judged whether r i,t >d′ j,t ⁇ i ⁇ ,1 ⁇ t ⁇ M,
  • step S 104 is executed.
  • step S 104 a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system are searched for if the resources in the first routing node group do not meet the second requirement.
  • a routing node assemble including routing nodes with a type of resource meeting a demand for the type of resource in the second requirement is determined: if the t th type of resource in each routing node in a routing node assemble is greater than the demand for the t th type of resource in the second requirement, it is judged that each routing node in this routing node assemble meets the demand for the t th type of resource in the second requirement (i.e. each routing node in this routing node assemble may be one of the second routing node group and corresponds to the demand for the t th type of resource in the second requirement). And then the second routing node group including routing nodes with resources respectively meeting demands for all types of resources in the second requirement may be determined.
  • a number of the plurality of second routing node groups in the core routing and switching system is n 1 ⁇ n 2 ⁇ . . . ⁇ n M
  • the plurality of second routing node groups may be denoted as [ ⁇ 1 , ⁇ 2 , . . . , ⁇ t , . . . , ⁇ M ], ⁇ t ⁇ .
  • step S 105 a plurality of migration overheads corresponding to the plurality of second routing node groups are calculated.
  • routing nodes in a second routing node group are denoted as P i , P i+1 , . . . , P i+k , . . . P i+M , where 1 ⁇ i ⁇ N ⁇ M;
  • a second routing node group corresponding to a smallest migration overhead is selected from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement.
  • the second routing node group corresponding to the smallest migration overhead is selected from the plurality of second routing node groups as the server node for providing the service for the task corresponding to the second requirement.
  • the second routing node group corresponding to the smallest migration overhead provides service for the task, thus a service time may be reduced and the second requirement (i.e. the new requirement) of the user may be responded rapidly.
  • the programming method for a core routing and switching system is applied in a reconfigurable routing and switching system. If an original task of the user changes such that a demand for resources changes, routing nodes for providing a service for the task may be switched dynamically in real-time, thus reducing the delay time and accelerating the response speed.
  • a work environment for implementing this programming method for a core routing and switching system may be shown in FIG. 3 .
  • each routing node includes 3 kinds of resources: CPU resources, Memory resources and Link resources
  • T 1 (2,2,2)
  • T 2 (3,4,3)
  • T 3 (2,2,4)
  • T 4 (5,5,1)
  • difficulties in the core routing and switching system may be considered fully, and routing nodes meeting a requirement of the user may be found in the core routing and switching system quickly, and by calculating communication overheads between the routing nodes and switching overheads of switching routing nodes, a solution corresponding to the smallest migration overhead may be obtained. Therefore, a response speed of the core routing and switching system may be improved, a user experience may be optimized, and a smooth running of the core routing and switching system may be ensured.
  • the programming method for a core routing and switching system when the first requirement of the user is changed to the second requirement in the core routing and switching system, if resources in the first routing node group corresponding to the first requirement cannot meet the second requirement of the user, firstly, it is judged whether other routing nodes in the core routing and switching system have enough resources meeting the second requirement, and if there are other routing nodes with resources meeting the second requirement, the plurality of second routing node groups (i.e. groups including routing nodes in which resources meet the second requirement) are determined, and then a second routing node group corresponding to a smallest migration overhead may be selected from the plurality of second routing node groups, and then the route is changed.
  • This programming method may improve a response speed of the core routing and switching system, optimize a user experience and support reconfiguration of a route when the core routing and switching system is running.
  • a programming apparatus for a core routing and switching system according to embodiments of the present disclosure is provided.
  • FIG. 5 is the block diagram illustrating a programming apparatus for a core routing and switching system according to an embodiment of the present disclosure.
  • the programming apparatus 500 includes an obtaining module 510 , a first judging module 520 , a second judging module 530 , a searching module 540 , a calculating module 550 and a selecting module 560 .
  • the obtaining module 510 is configured to obtain a number of routing nodes and a number of resource types in each routing node in the core routing and switching system.
  • system parameters and a maintain list are determined by the obtaining module 510 .
  • the number of the routing nodes in the core routing and switching system is determined, for example, the number of the routing nodes in the core routing and switching system may be denoted as N
  • the number of the resource types in each routing node is determined, for example, the number of the resource types in each routing node may be denoted as M
  • the core routing and switching system maintains a plurality of tuples for the routing nodes in the core routing and switching system
  • each element of a tuple represents a residual amount of a type of resource in the routing node corresponding to the tuple and the tuple is denoted as formula (1)
  • T i ⁇ N ( r i,1 ,r i,2 , .
  • i a i th routing node
  • t a t th type of resource
  • r i,t a residual amount of the t th type of resource in the i th routing node
  • T i ⁇ N represents the tuple
  • 1 ⁇ t ⁇ M 1 ⁇ t ⁇ M.
  • a communication overhead P i,j between a routing node i and a routing node j is equal to a number of routing hops between these two routing nodes, and an internal communication overhead of each routing node may be negligible.
  • An overhead required to migrate a task from any one of the routing nodes to another routing node may be denoted as S ch .
  • the first judging module 520 is configured to judge whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user.
  • a demand for each resource is changed when the first requirement of the user is changed. It is judged whether the first requirement is changed to the second requirement in this step.
  • the second judging module 530 is configured to judge whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement.
  • the first routing node group is located is denoted as ⁇ , where d j,t represents a demand of the j th user for a t th type of resource in the first requirement, d′ j,t represents a demand of the j th user for the t th type of resource in the second requirement, and then
  • the first routing node group if yes, the resources in the first routing node group meet the second requirement, the first routing node group is maintained; if no, the resources in the first routing node group do not meet the second requirement.
  • the searching module 540 is configured to search for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement.
  • a routing node assemble including routing nodes with a type of resource meeting a demand for the type of resource in the second requirement is determined: if the t th type of resource in each routing node in a routing node assemble is greater than the demand for the t th type of resource in the second requirement, it is judged that each routing node in this routing node assemble meets the demand for the t th type of resource in the second requirement (i.e. each routing node in this routing node assemble may be one of the second routing node group and corresponds to the demand for the t th type of resource in the second requirement). And then the second routing node group including routing nodes with resources respectively meeting demands for all types of resources in the second requirement may be determined.
  • a number of the plurality of second routing node groups in the core routing and switching system is n 1 ⁇ n 2 ⁇ . . . ⁇ n M
  • the plurality of second routing node groups may be denoted as [ ⁇ 1 , ⁇ 2 , . . . , ⁇ t , . . . , ⁇ M ], ⁇ t ⁇ ,
  • the calculating module 550 is configured to calculate a plurality of migration overheads corresponding to the plurality of second routing node groups.
  • routing nodes in a second routing node group are denoted as P i , P i+1 , . . . , P i+k , . . . P i+M , where 1 ⁇ i ⁇ N ⁇ M;
  • the selecting module 560 is configured to select a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement.
  • the second routing node group corresponding to the smallest migration overhead is selected from the plurality of second routing node groups as a server node for providing the service for the task corresponding to the second requirement.
  • the second routing node group corresponding to the smallest migration overhead provides service for the task, thus a service time may be reduced and the second requirement (i.e. the new requirement) of the user may be responded rapidly.
  • the programming apparatus for a core routing and switching system when the first requirement of the user is changed to the second requirement in the core routing and switching system, if resources in the first routing node group corresponding to the first requirement cannot meet the second requirement of the user, firstly, it is judged whether other routing nodes in the core routing and switching system have enough resources meeting the second requirement, and if there are other routing nodes with resources meeting the second requirement, the plurality of second routing node groups (i.e. groups including routing nodes in which resources meet the second requirement) are determined, and then a second routing node group corresponding to a smallest migration overhead may be selected from the plurality of second routing node groups, and then the route is changed.
  • This programming apparatus may improve a response speed of the core routing and switching system, optimize a user experience and support a reconfiguration of a route when the core routing and switching system is running.
  • the non-transitory computer-readable storage medium having stored therein instructions that, when executed by a processor of a terminal, causes the terminal to perform a programming method for a core routing and switching system for running an application program, in which the programming method for a core routing and switching system is according to the above embodiments of the present disclosure.
  • Any process or method described in the flowing diagram or other means may be understood as a module, segment or portion including one or more executable instruction codes of the procedures configured to achieve a certain logic function or process, and the preferred embodiments of the present disclosure include other performances, in which the performance may be achieved in other orders instead of the order shown or discussed, such as in a almost simultaneous way or in an opposite order, which should be appreciated by those having ordinary skills in the art to which embodiments of the present disclosure belong.
  • the logic and/or procedures indicated in the flowing diagram or described in other means herein, such as a constant sequence table of the executable code for performing a logical function, may be implemented in any computer readable storage medium so as to be adopted by the code execution system, the device or the equipment (such a system based on the computer, a system including a processor or other systems fetching codes from the code execution system, the device and the equipment, and executing the codes) or to be combined with the code execution system, the device or the equipment to be used.
  • the computer readable storage medium may include any device including, storing, communicating, propagating or transmitting program so as to be used by the code execution system, the device and the equipment or to be combined with the code execution system, the device or the equipment to be used.
  • the computer readable medium includes specific examples (a non-exhaustive list): the connecting portion (electronic device) having one or more arrangements of wire, the portable computer disc cartridge (a magnetic device), the random access memory (RAM), the read only memory (ROM), the electrically programmable read only memory (EPROMM or the flash memory), the optical fiber device and the compact disk read only memory (CDROM).
  • the computer readable storage medium even may be papers or other proper medium printed with program, as the papers or the proper medium may be optically scanned, then edited, interpreted or treated in other ways if necessary to obtain the program electronically which may be stored in the computer memory.
  • each part of the present disclosure may be implemented by the hardware, software, firmware or the combination thereof.
  • the plurality of procedures or methods may be implemented by the software or hardware stored in the computer memory and executed by the proper code execution system.
  • any one of the following known technologies or the combination thereof may be used, such as discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits having appropriate logic gates, programmable gate arrays (PGA), field programmable gate arrays (FPGA).
  • each functional unit in the present disclosure may be integrated in one progressing module, or each functional unit exists as an independent unit, or two or more functional units may be integrated in one module.
  • the integrated module can be embodied in hardware, or software. If the integrated module is embodied in software and sold or used as an independent product, it can be stored in the computer readable storage medium.
  • the non-transitory computer-readable storage medium may be, but is not limited to, read-only memories, magnetic disks, or optical disks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Quality & Reliability (AREA)
  • Telephonic Communication Services (AREA)

Abstract

A programming method and a programming apparatus for a core routing and switching system are provided. The method includes: obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system; judging whether a first requirement for resources in the routing nodes is changed to a second requirement; judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed; searching for a plurality of second routing node groups with resources meeting the second requirement if the resources in the first routing node group do not meet the second requirement; calculating a plurality of migration overheads corresponding to the plurality of second routing node groups; selecting a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups.

Description

CROSS REFERENCE TO RELATED APPLICATION
This application claims priority to and benefits of Chinese Patent Application No. 201410564651.3, filed with State Intellectual Property Office on Oct. 21, 2014, the entire content of which is incorporated herein by reference.
FIELD
The present disclosure relates to an Internet field, and more particularly, to a programming method for a core routing and switching system and a programming apparatus for a core routing and switching system.
BACKGROUND
A routing and switching system is a hub for transferring data in the Internet. With a growth of the Internet scale, a data exchange capacity and a speed rate of an interface are improved continually. In the last decade, the Internet has shown a rapid development trend, therefore, a development of an open and extendible routing and switching system is imminent. In order to support the rapid development of the Internet, it is necessary that the performance of the routing and switching system is improved continuously and that an innovation of the Internet network service is supported by the routing and switching system. Therefore, in order to support new service, the function of the routing and switching system is required to be updated and upgraded frequently. However, in the related art, since the development of the routing and switching system is closed, and a third party cannot participate into the development, the update and upgrade of the function of the routing and switching system only relies on a vendor, such that a development cycle is long, a development cost is high, a flexibility is poor, and a development bottleneck is brought in the routing and switching system.
SUMMARY
Embodiments of the present disclosure seek to solve at least one of the problems existing in the related art to at least some extent.
Accordingly, a first objective of the present disclosure is to provide a programming method for a core routing and switching system, which may improve a response speed of the core routing and switching system, optimize a user experience and support a reconfiguration of a route when the core routing and switching system is running.
A second objective of the present disclosure is to provide a programming apparatus for a core routing and switching system.
A third objective of the present disclosure is to provide a non-transitory computer-readable storage medium.
In order to achieve above objectives, embodiments of a first aspect of the present disclosure provide a programming method for a core routing and switching system, including: obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system; judging whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user; judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement; searching for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement; calculating a plurality of migration overheads corresponding to the plurality of second routing node groups; selecting a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement.
With the programming method for a core routing and switching system according to embodiments of the present disclosure, when the first requirement of the user is changed to the second requirement in the core routing and switching system, if resources in the first routing node group corresponding to the first requirement cannot meet the second requirement of the user, firstly, it is judged whether other routing nodes in the core routing and switching system have enough resources meeting the second requirement, and if there are other routing nodes with resources meeting the second requirement, the plurality of second routing node groups (i.e. groups including routing nodes in which resources meet the second requirement) are determined, and then a second routing node group corresponding to a smallest migration overhead may be selected from the plurality of second routing node groups, and then the route is changed. This method may improve a response speed of the core routing and switching system, optimize a user experience and support a reconfiguration of a route when the core routing and switching system is running.
In some embodiments, obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system includes: maintaining by the core routing and switching system a plurality of tuples for the routing nodes in the core routing and switching system, wherein each element in a tuple represents a residual amount of a type of resource in a routing node corresponding to the tuple and the tuple is denoted as formula (1),
T iεN=(r i,1 ,r i,2 , . . . r i,t , . . . ,r i,M)  (1)
where i represents a ith routing node, t represents a tth type of resource, N represents the number of the routing nodes in the core routing and switching system, M represents the number of the resource types, ri,t represents a residual amount of the tth type of resource in the ith routing node, TiεN represents the tuple, and 1≦t≦M.
In some embodiments, judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement includes: determining the first routing node group corresponding to the first requirement; defining the first requirement of a jth user as Dj=(dj,1, dj,2, . . . dj,t, . . . , dj,M), the second requirement of the jth user as D′j=(d′j,1, d′j,2, . . . d′j,t, . . . , d′j,M) and the first routing node group as Γ, where dj,t represents a demand of the jth user for the tth type of resource in the first requirement, d′j,t represents a demand of the jth user for the tth type of resource in the second requirement; judging whether a residual amount of the tth type of resource in a routing node corresponding to the demand of the jth user for the tth type of resource in the first requirement is greater than the demand d′j,t of the jth user for the tth type of resource in the second requirement; if yes, judging that the resources in the first routing node group meet the second requirement; if no, judging that the resources in the first routing node group do not meet the second requirement.
In some embodiments, searching for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system includes: determining routing nodes T with available resources; for each routing node with available resources, judging whether rk,t>d′j,t∀kεT,1≦t≦M;
if yes, defining the routing node with available resources as an available routing node such that routing nodes are obtained; permitting and combining the available routing nodes to obtain the plurality of second routing node groups.
In some embodiments, if there are nt routing nodes with the tth type of resource meeting the demand d′j,t of the jth user for the tth type of resource in the second requirement, a number of the plurality of second routing node groups is
n 1 ×n 2 × . . . ×n M.
In some embodiments, calculating a plurality of migration overheads corresponding to the plurality of second routing node groups includes: defining routing nodes in a second routing node group as Pi, Pi+1, . . . , Pi+k, . . . Pi+M, where 1≦i≦N−M; calculating a migration overhead of the second routing node group according to formula (2),
S=S in +S out +S ch  (2),
where Sin represents a sum of internal communication overheads of the routing nodes in the second routing node group, Sout represents a sum of communication overheads between the routing nodes in the second routing node group, and Sch represents a sum of migration overheads of switching from routing nodes in the first routing node group respectively to the routing nodes in the second routing node group.
In order to achieve the above objectives, embodiments of a second aspect of the present disclosure provide a programming apparatus for a core routing and switching system, including: an obtaining module, configured to obtain a number of routing nodes and a number of resource types in each routing node in the core routing and switching system; a first judging module, configured to judge whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user; a second judging module, configured to judge whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement; a searching module, configured to search for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement; a calculating module, configured to calculate a plurality of migration overheads corresponding to the plurality of second routing node groups; a selecting module, configured to select a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement.
With the programming apparatus for a core routing and switching system according to embodiments of the present disclosure, when the first requirement of the user is changed to the second requirement in the core routing and switching system, if resources in the first routing node group corresponding to the first requirement cannot meet the second requirement of the user, firstly, it is judged whether other routing nodes in the core routing and switching system have enough resources meeting the second requirement, and if there are other routing nodes with resources meeting the second requirement, the plurality of second routing node groups (i.e. groups including routing nodes in which resources meet the second requirement) are determined, and then a second routing node group corresponding to a smallest migration overhead may be selected from the plurality of second routing node groups, and then the route is changed. This programming apparatus may improve a response speed of the core routing and switching system, optimize a user experience and support a reconfiguration of a route when the core routing and switching system is running.
In some embodiments, the obtaining module is configured to obtain a number of routing nodes and a number of resource types of each routing node in the core routing and switching system by a step of: maintaining a plurality of tuples for the routing nodes in the core routing and switching system, wherein each element in a tuple represents a residual amount of a type of resource in a routing node corresponding to the tuple and the tuple is denoted as formula (1),
T iεN=(r i,1 ,r i,2 , . . . r i,t , . . . ,r i,M)  (1)
where i represents a ith routing node, t represents a tth type of resource, N represents the number of the routing nodes, M represents the number of the resource types, ri,t represents a residual amount of the tth type of resource in the ith routing node, TiεN represents the tuple, and 1≦t≦M.
In some embodiments, the second judging module is configured to judge whether resources in a first routing node group corresponding to the first requirement meet the second requirement by steps of: determining the first routing node group corresponding to the first requirement; defining the first requirement of a jth user as Dj=(dj,1, dj,2, . . . dj,t, . . . , dj,M), the second requirement of the jth user as D′j=(d′j,1, d′j,2, . . . d′j,t, . . . , d′j,M) and the first routing node group as Γ, where dj,t represents a demand of the jth user for the tth type of resource in the first requirement, d′j,t represents a demand of the jth user for the tth type of resource in the second requirement; judging whether a residual amount of the tth type of resource in a routing node corresponding to the demand of the jth user for the tth type of resource in the first requirement is greater than the demand of the jth user for the tth type of resource in the second requirement; if yes, judging that the resources in the first routing node group meet the second requirement; if no, judging that the resources in the first routing node group do not meet the second requirement.
In some embodiments, the searching module is further configured to: determine routing nodes T with available resources; for each routing node with available resources, judge whether rk,t>d′j,t∀kεT,1≦t≦M;
if yes, define the routing node with available resources as an available routing node such that available routing nodes are obtained; permit and combine the available routing nodes to obtain the plurality of second routing node groups.
In some embodiments, if there are nt routing nodes with the tth type of resource meeting the demand d′j,t of the jth user for the tth type of resource in the second requirement, a number of the plurality of second routing node groups is
n 1 ×n 2 × . . . ×n M.
In some embodiments, the calculating module is configured to calculate a plurality of migration overheads corresponding to the plurality of second routing node groups by steps of: defining routing nodes in a second routing node group as Pi, Pi+1, . . . , Pi+k, . . . Pi+M, where 1≦i≦N−M; calculating a migration overhead of the second routing node group according to formula (2),
S=S in +S out +S ch  (2),
where Sin represents a sum of internal communication overheads of the routing nodes in the second routing node group, Sout represents a sum of communication overheads between the routing nodes in the second routing node group, and Sch represents a sum of migration overheads of switching from routing nodes in the first routing node group respectively to the routing nodes in the second routing node group.
In order to achieve the above objectives, embodiments of a third aspect of the present disclosure provides a non-transitory computer-readable storage medium having stored therein instructions that, when executed by a processor of an apparatus, causes the apparatus to perform a programming method for a core routing and switching system according to the first aspect of embodiments of the present disclosure for running an application program.
In order to achieve the above objectives, embodiments of a fourth aspect of the present disclosure provide a programming apparatus for a core routing and switching system, including:
a processor; and
a memory for storing instructions executable by the processor,
in which the processor is configured to:
    • obtain a number of routing nodes and a number of resource types in each routing node in the core routing and switching system;
    • judge whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user;
    • judge whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement;
    • search for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement;
    • calculate a plurality of migration overheads corresponding to the plurality of second routing node groups;
    • select a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement.
Additional aspects and advantages of embodiments of present disclosure will be given in part in the following descriptions, become apparent in part from the following descriptions, or be learned from the practice of the embodiments of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
These and other aspects and advantages of embodiments of the present disclosure will become apparent and more readily appreciated from the following descriptions made with reference to the accompanying drawings, in which:
FIG. 1 is a flow chart showing a programming method for a core routing and switching system according to an embodiment of the present disclosure;
FIG. 2 is a flow chart showing a programming method for a core routing and switching system according to another embodiment of the present disclosure;
FIG. 3 is a schematic diagram illustrating a work environment for implementing a programming method for a core routing and switching system according to an embodiment of the present disclosure;
FIG. 4 is a schematic diagram illustrating a communication overhead between each two routing nodes according to an embodiment of the present disclosure; and
FIG. 5 is a block diagram illustrating a programming apparatus for a core routing and switching system according to an embodiment of the present disclosure.
DETAILED DESCRIPTION
Reference will be made in detail to embodiments of the present disclosure. The embodiments described herein with reference to drawings are explanatory, illustrative, and used to generally understand the present disclosure. The embodiments shall not be construed to limit the present disclosure. The same or similar elements and the elements having same or similar functions are denoted by like reference numerals throughout the descriptions.
In addition, terms such as “first” and “second” are used herein for purposes of description and are not intended to indicate or imply relative importance or significance. Thus, the feature defined with “first” and “second” may comprise one or more this feature. In the description of the present disclosure, the term “a plurality of” means two or more than two, unless specified otherwise.
In the following, a programming method for a core routing and switching system and a programming apparatus for a core routing and switching system according to embodiments of the present disclosure will be described in detail with reference to drawings.
FIG. 1 is the flow chart showing a programming method for a core routing and switching system according to an embodiment of the present disclosure. FIG. 2 is the flow chart showing a programming method for a core routing and switching system according to another embodiment of the present disclosure. Referring to FIG. 1 and FIG. 2, the method for a core routing and switching system according to embodiments of the present disclosure includes following steps.
In step S101, a number of routing nodes and a number of resource types in each routing node in the core routing and switching system are obtained.
Referring to FIG. 2, system parameters and a maintain list are determined in this step. Specifically, firstly, the number of the routing nodes in the core routing and switching system is determined, for example, the number of the routing nodes in the core routing and switching system may be denoted as N, and the number of the resource types in each routing node is determined, for example, the number of the resource types in each routing node may be denoted as M, the core routing and switching system maintains a plurality of tuples for the routing nodes in the core routing and switching system, each element of a tuple represents a residual amount of a type of resource in the routing node corresponding to the tuple and the tuple is denoted as formula (1),
T iεN=(r i,1 ,r i,2 , . . . r i,t , . . . ,r i,M)  (1)
where i represents a ith routing node, t represents a tth type of resource, ri,t represents a residual amount of the tth type of resource in the ith routing node, TiεN represents the tuple, and 1≦t≦M.
In addition, a communication overhead Pi,j between a routing node i and a routing node j is equal to a number of routing hops between these two routing nodes, and an internal communication overhead of each routing node may be negligible. An overhead required to migrate a task from any one of the routing nodes to another routing node may be denoted as Sch.
In step S102, it is judged whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user.
Specifically, it means that a demand for each resource is changed when the first requirement of the user is changed. It is judged whether the first requirement is changed to the second requirement in this step, if yes, step S103 is executed.
In step S103, it is judged whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement.
More specifically, the first routing node group is determined firstly, and then the first requirement of a jth user is denoted as Dj=(dj,1, dj,2, . . . dj,t, . . . , dj,M), the second requirement of the jth user is denoted as D′j=(d′j,1, d′j,2, . . . d′j,t, . . . , d′j,M), the first routing node group is located is denoted as Γ, where dj,t represents a demand of the jth user for a tth type of resource in the first requirement, d′j,t represents a demand of the jth user for the tth type of resource in the second requirement, and then it is judged whether a residual amount of the tth type of resource in a routing node corresponding to the demand dj,t of the jth user for the tth type of resource in the first requirement is greater than the demand d′j,t of the jth user for the tth type of resource in the second requirement, i.e. it is judged whether ri,t>d′j,t∀iεΓ,1≦t≦M,
if yes, the resources in the first routing node group meet the second requirement, the first routing node group is maintained; if no, the resources in the first routing node group do not meet the second requirement, step S104 is executed.
In step S104, a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system are searched for if the resources in the first routing node group do not meet the second requirement.
Specifically, a routing node assemble including routing nodes with a type of resource meeting a demand for the type of resource in the second requirement is determined: if the tth type of resource in each routing node in a routing node assemble is greater than the demand for the tth type of resource in the second requirement, it is judged that each routing node in this routing node assemble meets the demand for the tth type of resource in the second requirement (i.e. each routing node in this routing node assemble may be one of the second routing node group and corresponds to the demand for the tth type of resource in the second requirement). And then the second routing node group including routing nodes with resources respectively meeting demands for all types of resources in the second requirement may be determined.
In some embodiments, if there are nt routing nodes with the tth type of resource meeting the demand d′j,t of the jth user for the tth type of resource in the second requirement, a number of the plurality of second routing node groups in the core routing and switching system is n1×n2× . . . ×nM, and the plurality of second routing node groups may be denoted as [Π1, Π2, . . . , Πt, . . . , ΠM],∀Πt≠Ø.
However, if no routing node group with resources meeting the second requirement is found, a packet corresponding to the second requirement is discarded and a message indicating the packet is unsuccessfully handled is sent to the user.
In step S105, a plurality of migration overheads corresponding to the plurality of second routing node groups are calculated.
Specifically, routing nodes in a second routing node group are denoted as Pi, Pi+1, . . . , Pi+k, . . . Pi+M, where 1≦i≦N−M; a migration overhead of the second routing node group is calculated according to formula (2),
S=S in +S out +S ch  (2),
where Sin represents a sum of internal communication overheads of routing nodes in the second routing node group, Sout represents a sum of communication overheads between the routing nodes in the second routing node group, and Sch represents a sum of migration overheads of switching from routing nodes in the first routing node group respectively to the routing nodes in the second routing node group.
In step S106, a second routing node group corresponding to a smallest migration overhead is selected from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement.
Specifically, the second routing node group corresponding to the smallest migration overhead is selected from the plurality of second routing node groups as the server node for providing the service for the task corresponding to the second requirement. When the task arrivals, the second routing node group corresponding to the smallest migration overhead provides service for the task, thus a service time may be reduced and the second requirement (i.e. the new requirement) of the user may be responded rapidly.
In some examples, the programming method for a core routing and switching system according to embodiments of the present disclosure is applied in a reconfigurable routing and switching system. If an original task of the user changes such that a demand for resources changes, routing nodes for providing a service for the task may be switched dynamically in real-time, thus reducing the delay time and accelerating the response speed. A work environment for implementing this programming method for a core routing and switching system may be shown in FIG. 3.
For example, as shown in FIG. 4, assuming that there are 4 routing nodes in the core routing and switching system, that each routing node includes 3 kinds of resources: CPU resources, Memory resources and Link resources, that each tuple corresponding to each routing node may be denoted as T1=(2,2,2), T2=(3,4,3), T3=(2,2,4) and T4=(5,5,1) and that an overhead of switching between the routing nodes may be denoted as w=1, the number of hops between each two routing nodes (i.e. the communication overhead between the each two routing nodes) may be shown in FIG. 4.
Assuming that the first requirement of the user is denoted as D=(2,3,4) and corresponds to routing nodes 1, 2, 3, and that the first requirement is changed to the second requirement which is denoted as D′=(5,3,4), resources in the first routing node group (i.e. routing nodes 1, 2, 3) are checked, and a conclusion that the residual amount of the CPU resource in routing node 1 is 2, which cannot meet the demand for the CPU resource (5) in the second requirement is obtained. And then a routing node assemble including routing nodes with a type of resource meeting a demand for the type of resource in the second requirement is searched in the core routing and switching system, for example, Π1={4} may be obtained, in other words, the CPU resource in routing mode 4 may meet the demand for the CPU resource in the second requirement, in view of the same reason Π2={2,4} and Π3={3} may be obtained. So the number of the plurality of second routing node groups with resources meeting the second requirement may be 1×2×1=2, i.e. the plurality of second routing node groups include: {routingnode4,routingnode2,routingnode3} and {routingnode4,routingnode4,routingnode3}.
Further, the migration overhead of the second routing node group {routingnode4, routingnode2, routingnode3} is calculated, in which Sout, =1+3=4, Sch=1 because that only one migration occurs (routing node 1 is switched to routing node 4), so the migration overhead of the second routing node group {routingnode4,routingnode2,routingnode3} may be 4+1=5.
Similarly, the migration overhead of the second routing node group {routingnode4, routingnode4, routingnode3} is calculated, in which Sout=2, Sch=2 because that two migrations occur ( routing nodes 1 and 2 are switched to routing node 4 respectively), so the migration overhead of the second routing node group {routingnode4, routingnode4, routingnode3} may be 2+2=4<5, so the second routing node group {routingnode4,routingnode4,routingnode3} may be defined as the server node for providing the service for the task. Therefore, the route is reconfigured to be routing node 4-routing node 3.
In summary, with the programming method for a core routing and switching system according to embodiments of the present disclosure, difficulties in the core routing and switching system may be considered fully, and routing nodes meeting a requirement of the user may be found in the core routing and switching system quickly, and by calculating communication overheads between the routing nodes and switching overheads of switching routing nodes, a solution corresponding to the smallest migration overhead may be obtained. Therefore, a response speed of the core routing and switching system may be improved, a user experience may be optimized, and a smooth running of the core routing and switching system may be ensured.
With the programming method for a core routing and switching system according to embodiments of the present disclosure, when the first requirement of the user is changed to the second requirement in the core routing and switching system, if resources in the first routing node group corresponding to the first requirement cannot meet the second requirement of the user, firstly, it is judged whether other routing nodes in the core routing and switching system have enough resources meeting the second requirement, and if there are other routing nodes with resources meeting the second requirement, the plurality of second routing node groups (i.e. groups including routing nodes in which resources meet the second requirement) are determined, and then a second routing node group corresponding to a smallest migration overhead may be selected from the plurality of second routing node groups, and then the route is changed. This programming method may improve a response speed of the core routing and switching system, optimize a user experience and support reconfiguration of a route when the core routing and switching system is running.
A programming apparatus for a core routing and switching system according to embodiments of the present disclosure is provided.
FIG. 5 is the block diagram illustrating a programming apparatus for a core routing and switching system according to an embodiment of the present disclosure. As shown in FIG. 5, the programming apparatus 500 includes an obtaining module 510, a first judging module 520, a second judging module 530, a searching module 540, a calculating module 550 and a selecting module 560.
Specifically, the obtaining module 510 is configured to obtain a number of routing nodes and a number of resource types in each routing node in the core routing and switching system. In other words, system parameters and a maintain list are determined by the obtaining module 510. Specifically, firstly, the number of the routing nodes in the core routing and switching system is determined, for example, the number of the routing nodes in the core routing and switching system may be denoted as N, and the number of the resource types in each routing node is determined, for example, the number of the resource types in each routing node may be denoted as M, the core routing and switching system maintains a plurality of tuples for the routing nodes in the core routing and switching system, each element of a tuple represents a residual amount of a type of resource in the routing node corresponding to the tuple and the tuple is denoted as formula (1),
T iεN=(r i,1 ,r i,2 , . . . r i,t , . . . ,r i,M)  (1)
where i represents a ith routing node, t represents a tth type of resource, ri,t represents a residual amount of the tth type of resource in the ith routing node, TiεN represents the tuple, and 1≦t≦M.
In addition, a communication overhead Pi,j between a routing node i and a routing node j is equal to a number of routing hops between these two routing nodes, and an internal communication overhead of each routing node may be negligible. An overhead required to migrate a task from any one of the routing nodes to another routing node may be denoted as Sch.
The first judging module 520 is configured to judge whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user.
Specifically, it means that a demand for each resource is changed when the first requirement of the user is changed. It is judged whether the first requirement is changed to the second requirement in this step.
The second judging module 530 is configured to judge whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement.
More specifically, the first routing node group is determined firstly, and then the first requirement of a jth user is denoted as Dj=(dj,1, dj,2, . . . dj,t, . . . , dj,M), the second requirement of the jth user is denoted as D′j=(d′j,1, d′j,2, . . . d′j,t, . . . , d′j,M), the first routing node group is located is denoted as Γ, where dj,t represents a demand of the jth user for a tth type of resource in the first requirement, d′j,t represents a demand of the jth user for the tth type of resource in the second requirement, and then
it is judged whether a residual amount of the tth type of resource in a routing node corresponding to the demand dj,t of the jth user for the tth type of resource in the first requirement is greater than the demand d′j,t of the jth user for the tth type of resource in the second requirement, i.e. it is judged whether ri,t>d′j,t ∀iεΓ,1≦t≦M,
if yes, the resources in the first routing node group meet the second requirement, the first routing node group is maintained; if no, the resources in the first routing node group do not meet the second requirement.
The searching module 540 is configured to search for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement.
Specifically, a routing node assemble including routing nodes with a type of resource meeting a demand for the type of resource in the second requirement is determined: if the tth type of resource in each routing node in a routing node assemble is greater than the demand for the tth type of resource in the second requirement, it is judged that each routing node in this routing node assemble meets the demand for the tth type of resource in the second requirement (i.e. each routing node in this routing node assemble may be one of the second routing node group and corresponds to the demand for the tth type of resource in the second requirement). And then the second routing node group including routing nodes with resources respectively meeting demands for all types of resources in the second requirement may be determined.
In some embodiments, if there are nt routing nodes with the tth type of resource meeting the demand d′j,t of the jth user for the tth type of resource in the second requirement, a number of the plurality of second routing node groups in the core routing and switching system is n1×n2× . . . ×nM, and the plurality of second routing node groups may be denoted as [Π1, Π2, . . . , Πt, . . . , ΠM],∀Πt≠Ø,
The calculating module 550 is configured to calculate a plurality of migration overheads corresponding to the plurality of second routing node groups.
Specifically, routing nodes in a second routing node group are denoted as Pi, Pi+1, . . . , Pi+k, . . . Pi+M, where 1≦i≦N−M; a migration overhead of the second routing node group is calculated according to formula (2),
S=S in +S out +S ch  (2),
where Sin represents a sum of internal communication overheads of routing nodes in the second routing node group, Sout represents a sum of communication overheads between the routing nodes in the second routing node group, and Sch represents a sum of migration overheads of switching from routing nodes in the first routing node group respectively to the routing nodes in the second routing node group.
The selecting module 560 is configured to select a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement.
Specifically, the second routing node group corresponding to the smallest migration overhead is selected from the plurality of second routing node groups as a server node for providing the service for the task corresponding to the second requirement. When the task arrivals, the second routing node group corresponding to the smallest migration overhead provides service for the task, thus a service time may be reduced and the second requirement (i.e. the new requirement) of the user may be responded rapidly.
Concerning the detailed description of a specific example of the programming apparatus 500, reference is made to embodiments corresponding to the programming method for a core routing and switching system, which are not elaborated herein again.
With the programming apparatus for a core routing and switching system according to embodiments of the present disclosure, when the first requirement of the user is changed to the second requirement in the core routing and switching system, if resources in the first routing node group corresponding to the first requirement cannot meet the second requirement of the user, firstly, it is judged whether other routing nodes in the core routing and switching system have enough resources meeting the second requirement, and if there are other routing nodes with resources meeting the second requirement, the plurality of second routing node groups (i.e. groups including routing nodes in which resources meet the second requirement) are determined, and then a second routing node group corresponding to a smallest migration overhead may be selected from the plurality of second routing node groups, and then the route is changed. This programming apparatus may improve a response speed of the core routing and switching system, optimize a user experience and support a reconfiguration of a route when the core routing and switching system is running.
In the following, a non-transitory computer-readable storage medium according to embodiments of the present disclosure will be described in detail.
In some embodiments, the non-transitory computer-readable storage medium having stored therein instructions that, when executed by a processor of a terminal, causes the terminal to perform a programming method for a core routing and switching system for running an application program, in which the programming method for a core routing and switching system is according to the above embodiments of the present disclosure.
Any process or method described in the flowing diagram or other means may be understood as a module, segment or portion including one or more executable instruction codes of the procedures configured to achieve a certain logic function or process, and the preferred embodiments of the present disclosure include other performances, in which the performance may be achieved in other orders instead of the order shown or discussed, such as in a almost simultaneous way or in an opposite order, which should be appreciated by those having ordinary skills in the art to which embodiments of the present disclosure belong.
The logic and/or procedures indicated in the flowing diagram or described in other means herein, such as a constant sequence table of the executable code for performing a logical function, may be implemented in any computer readable storage medium so as to be adopted by the code execution system, the device or the equipment (such a system based on the computer, a system including a processor or other systems fetching codes from the code execution system, the device and the equipment, and executing the codes) or to be combined with the code execution system, the device or the equipment to be used. With respect to the description of the present invention, “the computer readable storage medium” may include any device including, storing, communicating, propagating or transmitting program so as to be used by the code execution system, the device and the equipment or to be combined with the code execution system, the device or the equipment to be used. The computer readable medium includes specific examples (a non-exhaustive list): the connecting portion (electronic device) having one or more arrangements of wire, the portable computer disc cartridge (a magnetic device), the random access memory (RAM), the read only memory (ROM), the electrically programmable read only memory (EPROMM or the flash memory), the optical fiber device and the compact disk read only memory (CDROM). In addition, the computer readable storage medium even may be papers or other proper medium printed with program, as the papers or the proper medium may be optically scanned, then edited, interpreted or treated in other ways if necessary to obtain the program electronically which may be stored in the computer memory.
It should be understood that, each part of the present disclosure may be implemented by the hardware, software, firmware or the combination thereof. In the above embodiments of the present invention, the plurality of procedures or methods may be implemented by the software or hardware stored in the computer memory and executed by the proper code execution system. For example, if the plurality of procedures or methods is to be implemented by the hardware, like in another embodiment of the present invention, any one of the following known technologies or the combination thereof may be used, such as discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits having appropriate logic gates, programmable gate arrays (PGA), field programmable gate arrays (FPGA).
It can be understood by those having the ordinary skills in the related art that all or part of the steps in the method of the above embodiments can be implemented by instructing related hardware via programs, the program may be stored in a computer readable storage medium, and the program includes one step or combinations of the steps of the method when the program is executed.
In addition, each functional unit in the present disclosure may be integrated in one progressing module, or each functional unit exists as an independent unit, or two or more functional units may be integrated in one module. The integrated module can be embodied in hardware, or software. If the integrated module is embodied in software and sold or used as an independent product, it can be stored in the computer readable storage medium.
The non-transitory computer-readable storage medium may be, but is not limited to, read-only memories, magnetic disks, or optical disks.
Reference throughout this specification to “an embodiment,” “some embodiments,” “one embodiment”, “another example,” “an example,” “a specific example,” or “some examples,” means that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the present disclosure. Thus, the appearances of the phrases such as “in some embodiments,” “in one embodiment”, “in an embodiment”, “in another example,” “in an example,” “in a specific example,” or “in some examples,” in various places throughout this specification are not necessarily referring to the same embodiment or example of the present disclosure. Furthermore, the particular features, structures, materials, or characteristics may be combined in any suitable manner in one or more embodiments or examples.
Although explanatory embodiments have been shown and described, it would be appreciated by those skilled in the art that the above embodiments cannot be construed to limit the present disclosure, and changes, alternatives, and modifications can be made in the embodiments without departing from spirit, principles and scope of the present disclosure.

Claims (9)

What is claimed is:
1. A programming method for a core routing and switching system, comprising:
obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system;
judging whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user;
judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement;
searching for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement;
calculating a plurality of migration overheads corresponding to the plurality of second routing node groups;
selecting a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement;
wherein obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system comprises:
maintaining by the core routing and switching system a plurality of tuples for the routing nodes in the core routing and switching system, wherein each element in a tuple represents a residual amount of a type of resource in a routing node corresponding to the tuple and the tuple is denoted as formula (1),

T iεN=(r i,1 ,r i,2 , . . . r i,t , . . . ,r i,M)  (1)
 where i represents a ith routing node, t represents a tth type of resource, N represents the number of the routing nodes in the core routing and switching system, M represents the number of the resource types, ri,t represents a residual amount of the tth type of resource in the ith routing node, TiεN represents the tuple, and 1≦t≦M.
2. The programming method according to claim 1, wherein judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement comprises:
determining the first routing node group corresponding to the first requirement;
defining the first requirement of a jth user as Dj=(dj,1, dj,2, . . . dj,t, . . . , dj,M), the second requirement of the jth user as Dj′=(dj,1′, dj,2′, . . . dj,t′, . . . , dj,M′) and the first routing node group as Γ, where dj,t represents a demand of the jth user for the tth type of resource in the first requirement, dj,t′ represents a demand of the jth user for the tth type of resource in the second requirement;
judging whether a residual amount of the tth type of resource in a routing node corresponding to the demand dj,t of the jth user for the tth type of resource in the first requirement is greater than the demand dj,t′ of the jth user for the tth type of resource in the second requirement;
if yes, judging that the resources in the first routing node group meet the second requirement;
if no, judging that the resources in the first routing node group do not meet the second requirement.
3. The programming method according to claim 2, wherein if there are n, routing nodes with the tth type of resource meeting the demand dj,t′ of the jth user for the tth type of resource in the second requirement, a number of the plurality of second routing node groups is

n 1 ×n 2 × . . . ×n M.
4. The programming method according to claim 2, wherein calculating a plurality of migration overheads corresponding to the plurality of second routing node groups comprises:
defining routing nodes in a second routing node group as Pi, Pi+1, . . . , Pi+k, . . . Pi+M, where 1≦i≦N−M;
calculating a migration overhead of the second routing node group according to formula (2),

S=S in +S out +S ch  (2),
where Sin represents a sum of internal communication overheads of the routing nodes in the second routing node group, Sout represents a sum of communication overheads between the routing nodes in the second routing node group, and Sch represents a sum of migration overheads of switching from routing nodes in the first routing node group respectively to the routing nodes in the second routing node group.
5. A programming apparatus for a core routing and switching system, comprising:
an obtaining module, configured to obtain a number of routing nodes and a number of resource types in each routing node in the core routing and switching system;
a first judging module, configured to judge whether a first requirement of a user for resources in the routing nodes in the core routing and switching system is changed to a second requirement of the user;
a second judging module, configured to judge whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement;
a searching module, configured to search for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement;
a calculating module, configured to calculate a plurality of migration overheads corresponding to the plurality of second routing node groups;
a selecting module, configured to select a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement;
wherein the obtaining module is further configured to obtain a number of routing nodes and a number of resource types of each routing node in the core routing and switching system by a step of:
maintaining a plurality of tuples for the routing nodes in the core routing and switching system, wherein each element in a tuple represents a residual amount of a type of resource in a routing node corresponding to the tuple and the tuple is denoted as formula (1),

T iεN=(r i,1 ,r i,2 , . . . r i,t , . . . ,r i,M)  (1)
 where i represents a ith routing node, t represents a tth type of resource, N represents the number of the routing nodes, M represents the number of the resource types ri,t represents a residual amount of the tth type of resource in the ith routing node, TiεN represents the tuple, and 1≦t≦M.
6. The programming apparatus according to claim 5, wherein the second judging module is configured to judge whether resources in a first routing node group corresponding to the first requirement meet the second requirement by steps of:
determining the first routing node group corresponding to the first requirement;
defining the first requirement of a jth user as Dj=(dj,1, dj,2, . . . dj,t, . . . , dj,M), the second requirement of the jth user as Dj′=(dj,1′, dj,2′, . . . dj,t′, . . . , dj,M′) and the first routing node group as Γ, where dj,t represents a demand of the jth user for the tth type of resource in the first requirement, dj,t′ represents a demand of the jth user for the type of tth resource in the second requirement;
judging whether a residual amount of the tth type of resource in a routing node corresponding to the demand dj,t of the jth user for the tth type of resource in the first requirement is greater than the demand dj,t′ of the j user for the tth type of resource in the second requirement;
if yes, judging that the resources in the first routing node group meet the second requirement;
if no, judging that the resources in the first routing node group do not meet the second requirement.
7. The programming apparatus according to claim 6, wherein if there are nt routing nodes with the tth type of resource meeting the demand dj,t′ of the jth user for the tth type of resource in the second requirement, a number of the plurality of second routing node groups is

n 1 ×n 2 × . . . ×n M.
8. The programming apparatus according to claim 6, wherein the calculating module is configured to calculate a plurality of migration overheads corresponding to the plurality of second routing node groups by steps of:
defining routing nodes in a second routing node group as Pi, Pi+1, . . . , Pi+k, . . . , Pi+M, where 1≦i≦N−M;
calculating a migration overhead of the second routing node group according to formula (2),

S=S in +S out +S ch  (2),
 where Sin represents a sum of internal communication overheads of the routing nodes in the second routing node group, Sout represents a sum of communication overheads between the routing nodes in the second routing node group, and Sch represents a sum of migration overheads of switching from routing nodes in the first routing node group respectively to the routing nodes in the second routing node group.
9. A non-transitory computer-readable storage medium having stored therein instructions that, when executed by a processor of an apparatus, causes the apparatus to perform a programming method for a core routing and switching system, wherein the method comprises steps of:
obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system;
judging whether a first requirement of a user for resources in routing nodes in the core routing and switching system is changed to a second requirement of the user;
judging whether resources in a first routing node group corresponding to the first requirement meet the second requirement if the first requirement is changed to the second requirement;
searching for a plurality of second routing node groups with resources meeting the second requirement in the core routing and switching system if the resources in the first routing node group do not meet the second requirement;
calculating a plurality of migration overheads corresponding to the plurality of second routing node groups;
selecting a second routing node group corresponding to a smallest migration overhead from the plurality of second routing node groups as a server node for providing a service for a task corresponding to the second requirement;
wherein obtaining a number of routing nodes and a number of resource types in each routing node in the core routing and switching system comprises:
maintaining by the core routing and switching system a plurality of tuples for the routing nodes in the core routing and switching system, wherein each element in a tuple represents a residual amount of a type of resource in a routing node corresponding to the tuple and the tuple is denoted as formula (1),

T iεN=(r i,1 ,r i,2 , . . . r i,t , . . . ,r i,M)  (1)
 where i represents a ith routing node, t represents a tth type of resource, N represents the number of the routing nodes in the core routing and switching system, M represents the number of the resource types, ri,t represents a residual amount of the tth type of resource in the ith routing node, TiεN represents the tuple, and 1≦t≦M.
US14/887,283 2014-10-21 2015-10-19 Programming method and apparatus for core routing and switching system Active 2036-03-29 US9882835B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410564651.3 2014-10-21
CN201410564651 2014-10-21
CN201410564651.3A CN104320338B (en) 2014-10-21 2014-10-21 Core route switching system run mode restructural programmed method and system

Publications (2)

Publication Number Publication Date
US20160112331A1 US20160112331A1 (en) 2016-04-21
US9882835B2 true US9882835B2 (en) 2018-01-30

Family

ID=52375512

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/887,283 Active 2036-03-29 US9882835B2 (en) 2014-10-21 2015-10-19 Programming method and apparatus for core routing and switching system

Country Status (2)

Country Link
US (1) US9882835B2 (en)
CN (1) CN104320338B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112737874B (en) * 2020-12-23 2022-08-30 新华三技术有限公司 Packet loss statistics realization method and device for message

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100115095A1 (en) * 2008-10-31 2010-05-06 Xiaoyun Zhu Automatically managing resources among nodes
CN102055651A (en) 2009-10-30 2011-05-11 成都市华为赛门铁克科技有限公司 Task allocation method and device of distributed control plane of extensible router
CN102204187A (en) 2011-04-28 2011-09-28 华为技术有限公司 Method, correlative device and system for virtual network migration
US20120182046A1 (en) 2008-06-26 2012-07-19 Steven Teig Timing operations in an ic with configurable circuits

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120182046A1 (en) 2008-06-26 2012-07-19 Steven Teig Timing operations in an ic with configurable circuits
US20100115095A1 (en) * 2008-10-31 2010-05-06 Xiaoyun Zhu Automatically managing resources among nodes
CN102055651A (en) 2009-10-30 2011-05-11 成都市华为赛门铁克科技有限公司 Task allocation method and device of distributed control plane of extensible router
CN102204187A (en) 2011-04-28 2011-09-28 华为技术有限公司 Method, correlative device and system for virtual network migration

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
China Patent Office, Office action dated Jan. 18, 2017.
Li Dan, et al., "Data Center Network Research Progress and Trend", Chinese Journal of Computers, vol. 37 No. 2, Feb. 2014.
Zhang Xiao-Ping, et al., "Scalable Router", ISSN 1000-9825, CODEN RUXUEW, Journal of Software, vol. 19, No. 6, Jun. 2008, pp. 1452-1464.

Also Published As

Publication number Publication date
CN104320338A (en) 2015-01-28
CN104320338B (en) 2017-10-24
US20160112331A1 (en) 2016-04-21

Similar Documents

Publication Publication Date Title
US10693739B1 (en) Network design platform
EP3605323B1 (en) Method for generating network slice template and for applying network slice template, and apparatus
US10558483B2 (en) Optimal dynamic placement of virtual machines in geographically distributed cloud data centers
US9740534B2 (en) System for controlling resources, control pattern generation apparatus, control apparatus, method for controlling resources and program
US20170230308A1 (en) Cloud-based service resource provisioning based on network characteristics
US9535949B2 (en) Dynamic rules to optimize common information model queries
US9515882B2 (en) Managing imaging of computing devices
US10333725B2 (en) Overlay network with optimized packet flooding
US10776097B2 (en) Hierarchical spanning tree software patching with fragmentation support
CN108401492A (en) A kind of route selection method, device and server based on mixing resource
CN110601978B (en) Flow distribution control method and device
US11627169B2 (en) Network-based Media Processing (NBMP) workflow management through 5G Framework for Live Uplink Streaming (FLUS) control
CN111124299A (en) Data storage management method, device, equipment, system and storage medium
US20180129528A1 (en) Predicting transaction outcome based on artifacts in a transaction processing environment
CN114697256B (en) Dynamic network bandwidth allocation and management based on centralized controllers
Doan et al. SAP: Subchain-aware NFV service placement in mobile edge cloud
Shang et al. Online service function chain placement for cost-effectiveness and network congestion control
US11659053B2 (en) Operations control of network services
US9471389B2 (en) Dynamically tuning server placement
US11108854B2 (en) Peer-to-peer network for internet of things resource allocation operation
WO2018053838A1 (en) Load balancing method and related device
US9882835B2 (en) Programming method and apparatus for core routing and switching system
CN106933654B (en) Virtual machine starting method based on cache
US20230015908A1 (en) Virtual machine operation management in computing devices
KR102651239B1 (en) Method for communicating using virtualization scheme and electric device for performing the same

Legal Events

Date Code Title Description
AS Assignment

Owner name: TSINGHUA UNIVERSITY, CHINA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:XU, KE;ZHANG, YUCHAO;SHEN, MENG;AND OTHERS;REEL/FRAME:037404/0656

Effective date: 20151203

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 4