CA2529634C - Cost minimization of services provided by multiple service providers - Google Patents

Cost minimization of services provided by multiple service providers Download PDF

Info

Publication number
CA2529634C
CA2529634C CA2529634A CA2529634A CA2529634C CA 2529634 C CA2529634 C CA 2529634C CA 2529634 A CA2529634 A CA 2529634A CA 2529634 A CA2529634 A CA 2529634A CA 2529634 C CA2529634 C CA 2529634C
Authority
CA
Canada
Prior art keywords
tier
rollup
sps
utilization
value
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.)
Expired - Fee Related
Application number
CA2529634A
Other languages
French (fr)
Other versions
CA2529634A1 (en
Inventor
Rahul G. Patel
Phillip C. Jacobs
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CA2529634A1 publication Critical patent/CA2529634A1/en
Application granted granted Critical
Publication of CA2529634C publication Critical patent/CA2529634C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1485Tariff-related aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0283Price estimation or determination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1442Charging, metering or billing arrangements for data wireline or wireless communications at network operator level
    • H04L12/145Charging, metering or billing arrangements for data wireline or wireless communications at network operator level trading network capacity or selecting route based on tariff
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/41Billing record details, i.e. parameters, identifiers, structure of call data record [CDR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/49Connection to several service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/80Rating or billing plans; Tariff determination aspects

Abstract

A technique for efficiently and accurately minimizing costs associated with services provided by a plurality of service providers (SPs) that bill for their services based on a tiered cost structure. Target tiers are generated based on the utilization of the SPs' services and the SPs' cost structures.
Utilization of the SPs' services is monitored. A momentary target utilization rate (MTUR) is generated for each SP based on the cumulated utilization of the SP's service and the SP's target tier. Utilization of the SPs' services is distributed based on the generated MTURs in a manner that minimizes cost. If the utilization of the SPs' services indicates the MTURs have been exceeded, new target tiers and MTURs are generated and utilization of the SPs' services is redistributed among the SPs in a manner that minimizes cost.

Description

COST MINIMIZATION OF SERVICES PROVIDED BY
MULTIPLE SERVICE PROVIDERS
BACKGROUND OF THE INVENTION
Field of the Invention The present invention relates to cost minimization and more particularly to cost minimization of services provided by multiple service providers.
Background Information A computer network is a geographically distributed collection of interconnected communication links and segments for transporting data between nodes, such as com-io puters. Many types of network segments are available, with the types ranging from lo-cal area networks (LANs) to wide area networks (WANs). LANs typically connect personal computers and workstations over dedicated, private communications links lo-cated in the same general physical location, such as a building or a campus.
WANs, on the other hand, typically connect large numbers of geographically dispersed nodes over is long-distance communications links, such as common carrier telephone lines.
The Internet is an example of a WAN that connects disparate networks throughout the world, providing global communication between nodes on various networks. The nodes typically communicate over the network by exchanging discrete frames or pack-ets of data according to predefined protocols, such as the Transmission Control Proto-ao col/Internet Protocol (TCP/11'). In this context, a protocol consists of a set of rules de-fining how the nodes interact with each other.
Computer networks may be further interconnected by an intermediate network node, such as a router, having a plurality of ports that may be coupled to the networks.
To interconnect geographically dispersed computer networks and/or provide Internet as connectivity, many organizations rely on the infrastructure and facilities of one or more Service Providers (SPs), such as an Internet service provider (ISP). ISPs typically own
-2-one or more backbone networks that are configured to provide high-speed connections to e. g., the Internet.
To enhance availability, some organizations (clients) subscribe to one or more ISPs. Here, a muter may be employed as a "gateway" that couples the client's network s to the ISPs' networks. If a particular ISP's network becomes unavailable, the router may be configured to automatically shift traffic (data) away from the unavailable ISP
network to an available ISP network. The router may also be configured to utilize the multiple ISP networks in a manner that enhances overall network performance.
For example, if a particular ISP connection becomes heavily used thereby potentially caus-io ing poor performance, a portion of the client's traffic may be redirected by the router from the heavily used connection to another less used ISP's connection in order to im-prove the overall network performance of the client's network. Moreover, the router may employ a "load- sharing" scheme where traffic handled by the router is distributed among the various ISP connections in a manner that avoids overloading any one ISP
is connection.
A client may enter into a service level agreement (SLA) with an ISP in order to establish a level of service provided by the ISP and a price the client pays for that service. ~ften different ISPs employ different pricing schemes for their services. For example, some ISPs charge clients on a flat-rate basis where each client pays a fixed ao fee per billing period regardless of how much of the ISP's service the client uses.
~ther ISPs may charge clients using a tiered pricing scheme that is dependent upon the amount of the service utilized by the client. In a typical tiered pricing arrangement, an ISP may i) take periodic measurements of egress and ingress traffic carried on the cli-ent's connection to the ISP's network and aggregate the measurements to generate a as "rollup value" for a rollup period, ii) generate one or more rollup values per billing pe-riod, iii) rank the rollup values for the billing period in a stack from the largest value to the smallest, iv) discard a percentage of the highest rollup values from the stack to ac-commodate bursting, v) apply the highest remaining rollup value in the stack to a tiered structure to determine a tier associated with the rollup value, and v) charge the client so based on a cost associated with the determined tier. A rollup value, as used herein, is
-3-an aggregate of measurements taken, e.g., of ingress and/or egress traffic, over a period of time, which is referred to herein as a rollup period.
Usually in a tiered pricing scheme, the egress and ingress traffic are measured separately and the measurements are then rolled up (aggregated) either separately or in a combined manner to the produce one or more rollup values. For example, rolling up measurements separately may involve combining (aggregating) the egress measure-ments to generate an egress rollup value and combining (aggregating) the ingress measurements to generate an ingress rollup value. In a combined arrangement, the egress and ingress measurements may be combined (aggregated) together to generate a io single combined rollup value.
The method employed to determine which rollup values are discarded often varies among ISPs. Methods typically employed include sum, separate, and combined discard calculation methods. The way the rollup numbers are generated and the num-ber of ranked stacks used often depends on the discard method. For example, the sum is discard method combines egress and ingress measurements to generate the rollup val-ues, which are then ordered on a single ranked stack. The combined and separate dis-card calculation methods generate separate egress and ingress rollup values that are then ordered on single and separate ranked stacks, respectively.
Fig. 1 illustrates these discard calculation methods for a rollup value discard zo percentage of 6% (rounded), a rollup period of one day, and a billing period of thirty days. Ranked stacks 110 and 120 illustrate the separate discard calculation method.
Here, egress and ingress measurements for a rollup period are aggregated separately to produce separate egress and ingress rollup values. The rollup values for a billing pe-riod are then used to generate an egress data ranked stack 110 and an ingress data as ranked stack 120. The percent of rollup values discarded is applied to each ranked stack to determine the rollup values that are discarded. In this example, thirty egress and thirty ingress rollup values are generated in the billing period and placed on the egress 110 and ingress 120 ranked stacks, respectively. The values in each stack are ordered from the largest value at the top of the stack to the smallest value at the bottom.
3o The two largest rollup values i.e., the values for days 12 and 22 for the egress stack 110 and days 15 and 18 for the ingress stack 120, are discarded (removed) from the top of _4_ each stack. The remaining highest rollup value in each stack, i.e., the rollup value for day 3 for the egress stack 110 and day 5 for the ingress stack 120, is then used to de-termine the amount the client is billed for the billing period.
Stack 130 illustrates the sum discard calculation method. According to this s method, each egress and ingress measurement for a rollup period are summed to pro-duce a single rollup value per rollup period. The rollup values for a billing period are then ranked on a single stack, the percentage of rollup values discarded is applied to the stack to determine the rollup values that are discarded, the rollup values are discarded, and the client is billed based on the remaining highest rollup value, as described above.
io Thus, for example, for stack 130, thirty summed rollup values are generated per billing period, the top two rollup values are discarded (i.e., the rollup values for days 12 and 15), and the client is billed based on the remaining highest rollup value in the stack (i.e., the rollup value for day 22).
Stack 140 illustrates the combined discard calculation method. Here, the .egress is and ingress measurements are rolled up into separate rollup values. The egress and in-gress rollup values for a billing period are then ranked on a single ranked stack, the percent of discarded rollup values is applied to the stack to determine the number of discarded rollup values, the discarded rollup values are discarded from the stack and the client is billed based on the remaining highest rollup value, as described above. Thus, ao for example, stack 140 contains sixty rollup values (i. e., thirty egress rollup values and thirty ingress rollup values), the top four rollup values are discarded (i.e., the egress rollup values for days 12 and 3, and the ingress rollup values for days 15 and 12), and the client is billed based on the remaining highest rollup value in the stack (i.e., the egress rollup value for day 7).
zs A client that subscribes to multiple SPs may want to maximize usage of the SPs' services while minimizing the cost associated with those services. In a data net-work arrangement, such as described above, this may involve continually i) monitoring access to the various SP networks, ii) determining which SP connection best suits utili-zation of the SPs services based on cost and iii) reconfiguring the network to distribute so utilization of the services in a manner that utilizes the least-costly SP
connections. De-pending on the network configuration, performing these actions may be costly and ar-duous to implement and consequently may not be sufficiently efficient and/or accurate to effect significant cost savings.
Moreover, the billing period for different SPs may not be synchronized. For example, the billing period for a first SP may be from the beginning of the month to the end of the month whereas the billing for a second SP may start at the middle of a month and end in the middle of the next month. This may act to further complicate trying to maximize usage while minimizing cost among a plurality of SPs.
SUMMARY OF THE INVENTION
The present invention relates to a technique for efficiently and accurately mini-io mizing costs associated with services provided by a plurality of service providers (SPs), wherein each SP charges for utilization of its service based on a tiered pricing structure.
The tiered pricing structure comprises one or more tiers, wherein each tier correlates to an amount of service provided by the SP and an associated cost.
According to the technique, measurement data that represents the utilization of is the SPs' services is collected. At the end of a rollup period, one or more rollup values are generated from the measurement data collected during a rollup period. For the first N/P + 1 rollup periods in a billing period where "N" is the number of discarded rollup values and "P" is the number of rollup values generated each rollup period, based upon the measurement data and the SPs' tiered cost structures, utilization of the SPs' services ao is distributed among the SPs by "walking up" the SPs' tiered cost structures and dis-tributing the utilization in a manner that minimizes the cost of the services provided by the SPs. At the end of a rollup period, the measured data is used to generate rollup val-ues, which are cumulated in a ranked stack.
For the remaining rollup periods in the billing period, for each SP, a target tier, as which represents a tier in the SP's tiered pricing structure, is generated based on the cumulated rollup values. Within a rollup period measurement data is collected that rep-resents the utilization of each SP's service. A momentary target utilization rate (MTLJR), which represents a cumulative utilization of a SP's services at a particular instance of time e.g., within the rollup period, is generated for each SP
based on, iyiter so alia, the target tier and the measurement data. The utilization of the SPs' services is distributed among the SPs based on the MTUR and tiered pricing structure of each SP
in a manner that minimizes the cost of the services provided by the SPs. If during the rollup period, the measurement data indicates the target tier has been exceeded, a new target tier is generated for the SP. At the end of a rollup period, the measurement data is used to generate a rollup value for the period, which is cumulated in the ranked stack.
In the illustrated embodiment, a customer network containing an intermediate node is coupled to a plurality of SPs. The intermediate node is configured with infor-mation relating to the method used by the SPs to bill for services provided to the cus-tomer network by the SPs. This information may include the type of measurement data io collected by each SP during a rollup period, the SP's measurement data sample period (time between measurement data collections), the SP's rollup period, the SP's billing period, the amount of rollup values discarded by the SP, the discard calculation method used by the SP and the SP's tiered cost structure.
The intermediate node contains a cost minimization process and a data collec-ts tor, the latter collecting measurement data that represents the customer network's utili-nation of the services provided by the various SPs. Illustratively, this measurement data includes egress and ingress octets transferred on connections that couple each SP
to the intermediate node. For the first N/P + 1 rollup periods where N is the number of discarded rollup values and P is the number of rollup values generated per rollup pe-ao riod, the data collector collects measurement data while the cost minimization process processes the measurement data, "walks up" the SPs' pricing tiers and distributes utili-zation of the SPs' services among the SPs based on the collected measurement data and the SPs' tiered pricing structure in a manner that minimizes the cost of the services provided by the SPs. At the end of each rollup period, one or more rollup values are zs generated from the measurement data and placed in one or more ranked stacks.
For the remaining rollup periods in the billing period, the cost minimization process generates target tiers based on the rollup values contained in the ranked stacks for each SP. The data collector collects measurement data, which represents the utili-zation of the SPs' services. The cost minimization process processes the measurement so data, generates a MTUR for each SP, and distributes utilization of the SPs' service among the SPs based on the MTURs of the SPs. Further, the cost minimization process determines if the measurement data indicates a SP's target tier has been exceeded. If so, the cost minimization process generates a new target tier for that SP.
Notably, the target tier and MTUR for each SP is generated independently based on the rollup period within the billing period it falls in and does not depend on the service utilization of the other SPs.
Advantageously, the present invention incorporates an efficient and accurate technique for minimizing cost associated with services provided by a plurality of SPs by being cognizant of the SPs' cost structures, actively monitoring utilization of the SPs' services, and distributing utilization among the SPs as necessary in a manner that io minimizes the cost of the services provided by the SPs. Moreover, the present inven-tion does not require that the billing periods between SPs be synchronized, as the target tier for each SP is determined independently.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and further advantages of the invention may be better understood by is referring to the following description in conjunction with the accompanying drawings in which like reference numbers indicate identical or functionally similar elements:
Fig. 1 is an illustration of various discard calculation methods;
Fig. 2 is a schematic block diagram of a computer network that may be advan-tageously used with the present invention;
ao Fig. 3 is a high-level partial schematic block diagram of an intermediate node that may be advantageously used with the present invention;
Fig. 4 is a flow diagram of a sequence of steps that may be used to generate a target tier in accordance with the inventive technique using either a sum or combined discard calculation method;
as Fig. 5 is a flow diagram of a sequence of steps that may be used to generate a target tier in accordance with the inventive technique using a separate discard calcula-tion method;
Fig. 6 is a flow chart of a sequence of steps that may be used to cost minimize connections between an intermediate node and a plurality of service providers fox a so billing period in accordance with the inventive technique;

_g_ Figs. 7A-B are a table that illustrates generating target tiers in accordance with the inventive technique using the sum calculation method;
Figs. 8A-B are a table that illustrates generating target tiers in accordance with the inventive technique using the combined calculation method;
Figs. 9A-C are a table that illustrates generating target tiers in accordance with the inventive technique using the separate calculation method; and Fig. 10 is a schematic block diagram of a computer network wherein aspects of the inventive technique are distributed among a plurality of network nodes.
io DETAILED DESCRIPTION OF AN ILLUSTRATIVE
EMBODIMENT
Fig. 2 is a schematic block diagram of a computer network that may be advan-tageously used with the present invention. Computer network 200 comprises a cus-tomes network 220 coupled to a wide-area network (WAIF, such as the Internet 280, is via a plurality of service providers (SPs) 270 to create a network of internetworked nodes. Specifically, the customer network 220 comprises one or more end nodes 210, coupled to an intermediate node 300, such as customer edge (CE) intermediate node 300, via a local-area network (LAN) connection 240. Intermediate node 300 is coupled via one or more WAN links 230 to each service provider 270 that, in turn, is coupled to zo the Internet 280 via links 240. Each service provider network 270 may contain one or more network nodes (not shown), such as aggregation routers, that are interconnected via various communication links to form a data network that enables customer network 220 to access the Internet 280. The internetworked nodes may contain computer sys-terns that enable the nodes to intercommunicate by exchanging data packets according as to a predefined set of protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP) Fig. 3 is a high-level partial schematic block diagram of intermediate node 300, which illustratively is a routes. An example of a routes that may be advantageously used with the present invention is the Cisco 7200 Series Internet Routes available from so Cisco Systems Incorporated, San Jose, CA. Operation of routes 300 will be described with respect to IP routing, although the router 300 may be configured for other applica-tions, such as encryption.
Router 300 comprises a plurality of interconnected components including a forwarding engine 390, various memories, queuing logic 310, selector 350, service s processor 360, and network interface cards (line cards) 340. A clock module 370 syn-chronously controls operations of various components contained in router 300, al-though it should be noted that arrayed elements of the forwarding engine 390 (de-scribed below) may be operatively configured to function asynchronously. In the illus-trative embodiment, the clock module 370 generates clock signals at a frequency of, io e.g., 200 megahertz (i.e., 5 nanosecond clock cycles), and globally distributes them via clock lines to the various components of the router 300.
A buffer and queuing unit (BQU) 310 is connected to a packet memory 320 for storing packets and a queue memory 330 for storing network-layer and link-layer head-ers of the packets on data structures, such as linked lists, organized as queues (not is shown). The BQU 310 further comprises data interface circuitry for interconnecting the forwarding engine 390 and service processor 360 with the line cards 340 via a se-lector circuit 350 having an arbiter 355. The line cards 340 may comprise, e.g., Asyn-chronous Transfer Mode (ATM), Frame Relay (FR) and Gigabit Ethernet (GE) ports, each of which includes conventional interface circuitry that may incorporate the signal, ao electrical and mechanical characteristics, and interchange circuits, needed to interface the cards with the physical media and protocols running over that media.
The forwarding engine 390 may comprise a symmetric multiprocessor system having a plurality of processing elements (not shown). Each processing element illus-tratively includes a pipelined processor that contains, inter alia, a plurality of arithmetic as logic units (ALUs) and a register file having a plurality of general purpose registers that store intermediate result information processed by the ALUs. The processing elements may be arrayed into multiple rows and columns, and further configured as a multi-dimensioned systolic array. Illustratively, the processing elements are arrayed as four
(4) rows and eight (8) columns in a 4x8 arrayed configuration that is embedded be-so tween an input buffer (not shown) and an output buffer (not shown).
However, it should be noted that other arrangements, such as an 8x8-arrayed configuration, may be advantageously used with the present invention.
The processing elements of each row are configured as stages of a "pipeline"
that sequentially execute operations on transient data (e.g., packet headers) loaded by s the input buffer, whereas the processing elements of each column operate in parallel to perform substantially the same operation on the transient data, but with a shifted phase.
Each phase comprises a predetermined period of cycles, e.g., 128 cycles.
Sequencing circuitry of the input buffer controls the processing elements of each pipeline by en-suring that each element completes processing of current transient data before loading io new transient data into the pipeline at a new phase. In general, a new phase of proc-essing is started, i.e., a context switch is performed, when the elements finish process-ing their current transient data (current context) and new incoming transient data (new context) is completely received by the input buffer.
The forwarding engine 390 is coupled to an external memory 380 a portion of is which is partitioned into a plurality of "column" memories wherein each column mem-ory is coupled to a particular column of processing elements. Memory 380 is prefera-bly organized as one or more banks and is implemented using fast-cycle-random-access-memory (FCRAM~ devices, although other devices, such as reduced-latency-dynamic-random-access-memory (RLDRAM) devices, could be used. The external 2o memory 380 stores non-transient data, such as a forwarding database, organized as a series of data structures for use in processing the transient data.
The service processor 360 comprises a conventional central processing unit (CPU) 362 coupled to a processor memory 363. The CPU 362 is a processor that con-tains conventional logic that enables the CPU 362 to access memory 363 and execute as and manipulate data contained therein. The processor memory 363 is a computer read-able medium containing e.g., high-speed random-access memory (RAM) memory de-vices, such as dynamic-random-access-memory (DRAM) devices. Memory 363 further contains an operating system 367 and various data structures. The operating system 367 comprises computer executable instructions (code) that functionally organize the so service processor 360 to enable performance of various functions, including functions that incorporate aspects of the inventive technique. It should be noted that one skilled in the art would realize that other computer readable media, such as a disk drive or one or more flash memory devices, may be used to store computer executable instructions that implement the inventive technique described herein.
Functions performed by the operating system 367 include, inter alia, execution s of conventional routing protocols, such as the Open Shortest-Path First (OSPF) proto-col and the Border Gateway Protocol (BGP). The routing protocols generally comprise topological information exchanges between intermediate nodes to determine preferred paths through the network based on, e.g., destination IP addresses. These protocols provide information used by the service processor 360 to create and maintain various io forwarding databases (not shown) contained in external memory 380. The databases are used by the forwarding engine 390 to perform, e.g., layer-2 (L2) and layer-3 (L3) forwarding operations. When processing a packet's header in accordance with IP
routing, for example, engine 390 determines where to send the packet by indexing into a forwarding database contained in memory 380 using an IP address contained in the is header. Execution of the forwarding operations may result in destination media access control (MAC) address of the packet's header being rewritten by the forwarding engine 390 to identify an output port associated with the packet.
The present invention relates to a technique for efficiently and accurately mini-mizing costs associated with services provided by a plurality of service providers (SPs), ao wherein each SP charges for utilization of its service based on a tiered pricing structure.
The tiered pricing structure comprises one or more tiers, wherein each tier correlates to an amount of service provided by the SP and an associated cost.
According to the technique, measurement data that represents the utilization of the SPs' services is collected. At the end of a rollup period, one or more rollup values as are generated from the measurement data collected during a rollup period.
For the first N/P + 1 rollup periods in a billing period where "N" is the number of discarded rollup values and "P" is the number of rollup values generated each rollup period, based upon the measurement data and the SPs' tiered cost structures, utilization of the SPs' services is distributed among the SPs by "walking up" the SPs' tiered cost structures and dis-co tributing the utilization in a manner that minimizes the cost of the services provided by the SPs. At the end of a rollup period, the measured data is used to generate rollup val-ues, which are cumulated in a ranked stack.
For the remaining rollup periods in the billing period, for each SP, a target tier, which represents a tier in the SP's tiered pricing structure, is generated based on the s cumulated rollup values. Within a rollup period measurement data is collected that rep-resents the utilization of each SP's service. A momentary target utilization rate (MTUR), which represents a cumulative utilization of a SP's services at a particular instance of time e.g., within the rollup period, is generated for each SP
based on, hater alia, the target tier and the measurement data. The utilization of the SPs' services is io distributed among the SPs based on the MTUR and tiered pricing structure of each SP
in a manner that minimizes the cost of the services provided by the SPs. If during the rollup period, the measurement data indicates the target tier has been exceeded, a new target tier is generated for the SP. At the end of a rollup period, the measurement data is used to generate a rollup value for the period, which is cumulated in the ranked stack.
is Operating system 367 comprises code organized as e.g., software processes that operate under the control of the operating system 367 and enable service processor 360 to monitor utilization of the SPs' 270 services and perform cost minimization of the services provided by the SPs 270 in accordance with the inventive technique.
Illustra-tively, these processes include a data collector process 368 and a cost minimization ao process 369. The data collector 368 comprises code configured to collect information (data) associated with the customer network's 220 utilization of the SPs' services illus-tratively in a manner that is similar to the information collected by the individual SPs 270. This data may represent data utilized by each SP to determine an amount billed by the SP for a billing period. Illustratively, the data collected includes the number of in-ns grass and egress octets transferred on the links 230 between intermediate node 300 and the SPs 270. The cost minimization process 369 contains code that processes the col-lected data and configures node 300 to distribute utilization of the SPs' services in a manner that minimizes the cost of the services provided by the SPs.
Measurement data 364 is a data structure that illustratively holds data collected so by the data collector 368. The cost minimization process 369 generates rollup values from this data and places these rollup values in the rollup data 365, which is a data structure configured to hold these values. Illustratively, the rollup values comprise an aggregation of the measurement data collected by the data collector 368 for a rollup period.
The ranked stack data 366 contains one or more ranked stacks of rollup values s (not shown) organized as one or more ordered sets. An ordered set as used herein is a set "M" of values wherein the value M(k) is greater than or equal to the value M(k + 1).
It should be noted that sets ordered in a different manner, such as a set "M"
wherein M(k) is less than or equal to M(k + 1), may take advantage of the inventive technique.
For each SP 270, the number of ranked stacks (sets) generated depends on the discard io calculation method used by the SP. For example, separate ranked stacks are generated for the egress and ingress rollup values for the separate discard calculation method, whereas for the sum and combined methods, a single stack is generated.
Assume, for example, SP 270a (Fig. 2) bills for its service based on the tiered pricing structure illustrated in table 1.
is Table 1 Tier Percent Utilization Cost (rounded) 1 0 to 20 $12,000 2 21 to 40 $14,000 3 41 to 60 $16,000 4 61 to 80 $20,000 81 to 100 $26,000 Likewise, assume SP 270b bills for its service based on the tiered pricing structure il-lustrated in table 2.
Table 2 Tier Percent Utilization Cost (rounded) 1 0 to 45 $13,000 2 46 to 52 $17,200 3 53 to 58 $18,900 4 59 to 65 $20,500 66 to 77 $24,000 6 78 to 90 $26,600 7 91 to 100 $27,900 Further, assume each SP 270 bills for at least the first tier regardless of whether the any service is utilized, each SP 270 discards 6% (rounded) of the rollup values generated for each billing period and the number of rollup periods per billing period is 30.
Moreover, assume for the sum discard calculation method one rollup value is generated per rollup period comprising the sum of the egress and ingress measurements for the rollup period. In addition, for the combined and separate discard calculation methods, assume two rollup values are generated per rollup period which includes an egress rollup value that comprises the sum of the egress measurements for the rollup period io and an ingress rollup value that comprises the sum of the ingress measurements for the rollup period.
Fig. 4 is a flow diagram of a sequence of steps that may be used to generate a target tier for a rollup period in accordance with the inventive technique where the SP
uses either the sum or combined discard calculation method. As used herein, "N" is the is number of rollup values discarded by a SP in a billing period and "P" is the number of rollup values generated in a rollup period.
The sequence begins at Step 405 and proceeds to Step 410 where a check is per-formed to determine if the rollup period is in the "middle range" of rollup periods. Il-lustratively, the middle range of rollup periods include the periods that fall within the ao range of the "N/P + 2" rollup period to the "T - N/P" rollup period, inclusive, wherein "T" is the total number of rollup periods per billing period. If the rollup period is in the middle range of rollup periods, the sequence proceeds to Step 420, where the target tiers for the middle range of rollup periods are generated. Where M(k) is the "k-th"
highest rollup value in the set M rollup values generated so far in the billing period, the target tier generated is the tier in the SP's cost structure that is associated with the M(N
s + 1) rollup value. For example, assume SP 270a uses the sum discard calculation method, N is equal to 2 and the rollup values for the first four rollup periods are 21, 15, 48 and 35 indicating 21%, 15%, 48% and 35% utilization, respectively. Set M is repre-sented as {48, 35, 21, 15} and the M(N+ 1) rollup value is 21. The tier in SP
270a's pricing structure associated with this value is 2; thus, the target tier generated is 2. The io sequence then ends at Step 495.
At Step 430 the target tier is generated for the last N/P rollup periods.
Specifi-cally, if the pricing structure tier associated with the M((N + 1) - J) rollup value, where "J" is the number of rollup values yet to be generated, matches the pricing structure tier associated with M(N + 1) rollup value, the generated target tier is a "maximum" tier is (described below). Otherwise, the generated target tier is the tier associated with the M(N + 1) rollup value. For example, assume, as above, that SP 270a uses the sum dis-card calculation method, N is equal to 2, the set M is represented as {65, 62, 48, 35, 30, 30, 26, 21, 15, ... ~ and there is one more rollup value to be generated for the billing period. Since the pricing structure tier associated with M((N + 1) - J) rollup value, i.e., ao 4, is not equal to the pricing structure tier associated with M(N + 1) rollup value, i.e., 3, the generated target tier is the tier associated with the M(N + 1) rollup value which is tier 3. At Step 495 the sequence ends.
Illustratively, a target tier that is a "maximum" tier relates to a tier that ensures a maximum safe capacity limit for the service and leaves sufficient "headroom"
to avoid as bursting beyond the service's full capacity. For example, if the data link 230 (Fig. 2) coupling node 300 with SP 270a is a 155 Megabits-per-second (Mps) link, to ensure 20% headroom to accommodate bursting the maximum target tier would be the tier as-sociated with up to 80% utilization of the link which is tier 4.
Fig. 5 is a flow diagram of a sequence of steps that may be used to generate a so target tier for a rollup period in accordance with the inventive technique where the SP
uses the separate discard calculation method. As noted above, for the separate discard calculation method, separate egress and ingress rollup values are generated from the egress and ingress measurement data, respectively, that is collected by the data collec-tor 368. These rollup values are ordered in separate egress and ingress ranked stacks (sets), respectively, contained in the ranked stack data 366. The separate egress and ingress ranked stacks (ordered sets) are represented herein by the set notation as M' for s the egress ranked stack (egress ordered set) and M" for the ingress ranked stack (in-gress ordered set).
The sequence begins at Step SOS and proceeds to Step 510 where a check is per-formed to determine if the rollup period is in the middle range of rollup periods (de-scribed above). If so, the sequence proceeds to Step 520 where the target tiers for the io middle range of rollup periods are generated. Specifically for each SP 270, the cost minimization process 369 determines if the SP's 270 pricing structure tier associated with M'(N + 1) rollup value is greater than the SP's 270 pricing structure tier associ-ated with M"(N + 1) rollup value. If so, the cost minimization process 369 generates a target tier that is a tier in the SP's 270 tier pricing structure associated with the M'(N +
is 1) rollup value in the egress ordered set. Otherwise, the generated target tier is the tier in the SP's 270 tier pricing structure associated with the M"(N + 1) rollup value in the ingress ordered set. For example, for SP 270x, assume the M'(N + 1) rollup value indi-cates 64% utilization and the M"(N + 1) rollup value indicates 42% utilization of SP
270a's services. The pricing structure tier associated with the M'(N + 1) rollup value is ao 4 which is greater than the pricing structure tier associated with the M"(N
+ 1) rollup value which is 3; thus, the generated target tier is 4. The sequence then ends at Step 595.
At Steps 530 and 540, the egress and ingress target tiers are generated, respec tively, for the last N/P rollup periods. Specifically, at Step 530, the cost minimization zs process 369 determines if the SP's 270 pricing structure tier associated with M'((N + 1) - J') rollup value matches the SP's 270 pricing structure tier associated with M'(N + 1) rollup value, where "J"' is the remaining number of egress rollup values to be gener-ated. If so, process 369 generates a target tier that is a maximum tier in a manner that is described above. Otherwise, process 369 determines if the SP's 270 pricing structure so tier associated with M'((N + 1) - J') rollup value is greater than the SP's 270 pricing structure tier associated with M"(N + 1) rollup value and if so, generates a target tier that is larger of the tiers in the SP's 270 pricing structure associated with the M'(N + 1) and M"(N + 1) values. Otherwise, process 369 generates a target tier that is a maxi-mum tier.
At Step 540, the cost minimization process 369 determines if the SP's 270 pricing structure tier associated with M"((N + 1) - J") rollup value matches the SP's s 270 pricing structure tier associated with M"(N + 1) rollup value, where "J"" is the remaining number of ingress rollup values to be generated. If so, process 369 generates a target tier that is a maximum tier. Otherwise, process 369 determines if the SP's 270 pricing structure tier associated with M"((N + 1) - J") rollup value is greater than the SP's 270 pricing structure tier associated with M'(N + 1) rollup value and if so, gener-io ates a target tier that is the larger of the tiers in the SP's 270 tier pricing structure asso-ciated with the M'(N + 1) and M"(N + 1) values. Otherwise, process 369 generates a target tier that is a maximum tier. The sequence ends at Step 595.
Illustratively, in accordance with the inventive technique, a SP's 270 target tier is generated at the beginning of a rollup period. Within a SP's 270 rollup period, a is momentary target utilization rate (MTUR) is generated. The MTUR indicates the cu-mulative utilization of a SP's 270 services at a particular time within the rollup period.
Illustratively, the MTUR is represented as a percentage of the total available services that have been utilized within the rollup period. As will be described below, the MTUR is used to determine if a SP's 270 target tier has been exceeded. If so, a new ao target tier is generated and the utilization of the SP's 270 services is redistributed among the SPs 270 based on each SP's 270 MTUR and the target tier.
Illustratively, the MTUR. for a data link coupled to a SP 270 is calculated using the following formula:
MTUR = TMCT + ((TMU * LC * TSI) - CTM)/(LC * (TS - TSI)) clipped at a as MUC
wherein:
MTUR is the momentary target utilization rate expressed as a percentage of utilization of services expressed as a percentage;
CTM is the cumulative traffic for a rollup period measured in Mega-so bytes (Mb);

TS is the total number of seconds in a rollup period;
TSI is the number of seconds into the rollup period;
TMU is the target tier maximum utilization expressed as a percentage;
LC is the data-link capacity in Megabytes-per-second (Mps); and s MUC is a maximum usable capacity in percentage of overall capacity associated with the "maximum" tier (described above) expressed as a percentage.
For example, assume the TMU is 60%, the CTM is 2.16 x 1012, TS is 8.64 x 104, TSI = 4.32 x 104, LC is 1 x 10g Mps and MUC is 80%. The MTUR is 70%.
Thus, io at this point in time in the rollup period, utilization may reach 70%
without having to increase the target tier to the next pricing structure tier.
As noted above, the result generated by the formula is clipped at the MUC.
This means that the MTUR is the lesser of the MUC and the result generated by the formula.
is Fig. 6 is a flow chart of a sequence of steps that may be used to cost minimize connections between node 300 and the SPs 270 for a billing period (cycle) in accor-dance with the inventive technique. The sequence begins at Step 605 and proceeds to Step 610 where node 300 is configured with information associated with the services provided by the SPs 270. This information may include information used by each SP
20 270 to bill for services provided by the SP, such as the type of data measured during each rollup period (e.g., egresslingress octets transferred between the customer's net-work 220 and the SP 270), the sampling period or measurement interval (e.g., 5 min-utes), the rollup period (e.g., 24 hours), the billing period (e.g., 30 days), discard amount (e.g., 6% rounded), the discard calculation method (e.g., summed, combined, 2s separate), and the SP's tier pricing structure. Other information may include the billing start date and the time zone difference between the time zone ofthe intermediate node 300 and the time zone of the SP 270.
At Step 615, the cost minimization process 369 initialises the measurement 364 and rollup 365 data. At Step 620, for the first N/P + 1 rollup periods the cost minimi-so zation process 369 distributes utilization of the SPs services among the SPs by "walk-ing up" the pricing tiers and distributing utilization in a manner that minimizes the cost of the services provided by the SPs. "Walking up" the pricing tiers involves distribut-ing utilization of the SPs' services among the SPs in a manner that minimizes the cost for the SPs' services as indicated in the SPs' tiered pricing structures. As noted above, s since both SPs 270 charge for the first tier, process 369 illustratively distributes utiliza-tion of the SPs' services between both SPs evenly. When the aggregate utilization of SP 270a's services reaches 20%, node 300 shifts (distributes) the utilization of the SPs' services from SP 270a to SP 270b until the aggregate utilization of SP 270b's service reaches 45%. Likewise, when the aggregate utilization of SP 270b's services exceeds io 45%, node 300 shifts the utilization of the SPs' services from SP 270b to SP 270a, since tier 2 and 3 for SP 270a are lower in cost than tier 2 for SP 270b. When the utili-zation of SP 270a's services exceeds tiers 2 and 3, node 300 shifts the utilization of the SPs' services from SP 270a to SP 270b and so on.
At Step 625, the cost minimization process 369 generates a target tier for each is SP 270. Specifically, the cost minimization process 369 generates a target tier for each SP 270 using the method described in Fig. 4 (if the SP 270 uses the summed or com-bined discard calculation method) or the method described in Fig. 5 (if the SP
270 uses the separate discard calculation method).
At Step 630, the data collector 36~ collects measurement data in a manner as ao described above and the cost minimization process 369 processes the collected data in-cluding generating a MTUR for each SP, in a manner as described above. Using the generated MTUR and target tier for each of the SPs 270 process 369 distributes utiliza-tion of the SPs' 270 services among the SPs 270 in a manner that maximizes the utili-zation of each SPs 270 services and minimizes the cost of the services provided by the as SPs 270. For example, assume the MTUR for a first SP 270 indicates that a large per-centage of the SP's 270 services available within its target tier have been used early in its rollup period. In response to this condition, process 369 may distribute utilization of the first SP's 270 services to a second SP 270 whose MTUR indicates a lower usage of its services within its rollup period and the cost associated with its target tier is lower so than the cost associated with the next highest tier after the first SP's 270 target tier.
Notably, using the MTUR in this manner enables the utilization of services to be better distributed among the SPs 270 and obviates having a particular SP 270 increase its tar-get tier when lower cost services may be available from another SP 270.
At Step 640, for each SP 270 the cost minimization process 369 determines if the SP's 270 measurement data cumulated for a rollup period indicates the SP's s target tier has been exceeded. If so, the sequence proceeds to Step 645 where a new target tier is generated for the SP 270. Illustratively, the new target tier generated is the next tier in the SP's tiered pricing structure. Alternatively, the new target tier may be generated in a manner as described in Figs. 4 and S above.
At Step 650, the cost minimization process 369 determines if the rollup period io for a given SP 270 has ended. If not, the sequence returns to Step 630.
Otherwise, the sequence proceeds to Step 655 where process 369 generates one or more rollup values from the measurement data collected during the rollup period and places the rollup val ues in one or more ordered sets contained in the rollup data 365. For example, if the SP
270 uses the separate discard calculation method, process 369 generates separate rollup is values for the egress and ingress data, as described above. These rollup values are then placed in the egress and ingress ranked stacks contained in the ranked stack data 366, respectively. At Step 660, the cost minimization process 369 determines if the billing period has ended. If not, the sequence returns to Step 620; otherwise the sequence ends at Step 695.
zo Figs. 7A-B, ~A-B and 9A-C are exemplary tables that illustrate a way target tier values may be generated in accordance with the inventive technique for the summed, combined, and separate discard calculation methods, respectively. The "sustained tier"
indicated in the tables relates to the tier used for billing purposes for the billing period.
In the following descriptions of Figs. 7, 8 and 9, assume for purposes of illus-zs tration that a SP's target tier associated with a rollup value is the same as the rollup value. Referring to Figs. 7A-B, illustratively, the rollup period is one day with one rollup value generated per period. The total number of rollup periods in a billing period is 30 and the percent of rollup values discarded is 5% (rounded); thus the number of rollup values discarded, i.e., N, is 2. For the first N + 1 rollup periods, i.e., rollup peri-so ods 1 through 3 inclusive, the rule that is applied is the "walk up the tiers" rule, i.e., Step 620 (Fig. 6).

From the N + 2 rollup period through the T-N rollup period, i.e., periods 4 through 28 inclusive, the target tier is determined using the "M(N + 1)" rule, i.e., Step 420 (Fig. 4). For example, at rollup period 10, the rollup value for the measured egress utilization is 6, the rollup value for the measured ingress utilization is 4, and the sum s total rollup value is 10. Since this is the first highest measurement encountered so far, it is placed in the M(1) position of the ranked stack. The previous first highest value, i.e., 9, is moved to the M(2) position and the previous second highest value, i.e., 8 is moved to the M(3) position, i.e., the M(N + 1) position. In accordance with the rule at Step 420, the target tier is set to the tier associated with the value 8 which is this case is io tier 8.
After the T - N rollup period to the end of the billing period, i. e., rollup periods 29 and 30, the target tier is generated using the rule associated with Step 430. For ex-ample, at the beginning of rollup period 29, J is 2 and the rollup value at M((N + 1) - J) is 11 (i.e., the highest value). Since this SP's tier associated with the rollup value for is M((N + 1) - J), i.e., 11, does not match the tier associated with the rollup value 'at M(N
+ 1), i.e., 10, the target tier generated for period 29 is 10, i.e., the tier associated with the M(N + 1). Likewise, at the beginning of rollup period 30, J is 1 and the tier associ-ated with the rollup value for M((N + 1) - J) is 10. Since this tier matches the tier asso-ciated with the rollup value at M(N + 1), i.e., 10, the generated target tier is a maximum ao tier.
The table in Figs. 8A-B is similar to the table illustrated in Fig. 7A-B
except that the egress and ingress rollup values are maintained as separate rollup values rather than a single summed rollup value.
Referring to Figs. 9A-C, for the first N + 1, rollup periods the rule that is ap-as plied is the "walk up the tiers" rule, i.e., Step 620. For the middle rollup periods, i.e., rollup period 3 through 28 inclusive, the rule at Step 520 is applied and ingress and egress generated target tiers are the tiers associated with the larger of the SP's pricing structure tier associated with the M'(N + 1) or M"(N + 1) rollup values. For example, at the beginning of rollup period 5, the tier associated with the M'(N + 1) rollup value so is 3 and the tier associated with the M"(N + 1) rollup value is 2. Since 3 is greater than 2, the generated target tier is 3.

For the remaining rollup periods, i.e., periods 29 and 30, the target tier is gener-ated using the rules associated with Steps 530 through 540. For example, at the begin-ning of rollup period 30, for the egress target value the rule associated with Step 530 is applied. Since the tier associated with the rollup value at M'(N + 1) - J), i.e., 6, s matches the tier associated with the rollup value at M'(N + 1), the generated target tier is a maximum tier.
The above-described illustrated embodiment of the invention describes the data collector and cost minimization aspects of the invention as performed in a single inter-mediate node; however, this is not intended to be a limitation of the invention. Rather io in other embodiments, these and other aspects of the invention are distributed among a plurality of nodes.
For example, Fig. 10 is a schematic block diagram of a computer network 1000 wherein aspects of the inventive technique are distributed among a plurality of network nodes. The network 1000 comprises a control node 1020 coupled to a plurality of bor-es der nodes 1060 which, in turn, are coupled to a plurality of SPs 1080. The border nodes 1060 are network nodes, such as border routers, that are configured to, inter alia, perform various functions in accordance with the inventive technique that are associ-ated with e.g., the data collector process 368 described above. These functions may include collecting information similar to the information collected by the data collector zo process 368, in a manner as described above. The control node 1040 is a node, such as a computer system or intermediate node, coupled to the border nodes 1060.
Control node 1040 is configured to perform, irate alia, various functions in accordance with the inventive technique that are associated with, e.g., the cost minimization process 369 described above. These functions may include gathering information collected by the as border nodes 1060, processing the information and reconfiguring the border nodes 1060 in a manner that minimizes costs, as described above.
It should be further noted, that in the above-described embodiment of the in-vention, only one SP 270 is coupled on a link 230 to the customer network 220 via a single link; however, this too is not intended to be a limitation of the invention. An in-3o termediate node that is coupled to more than one SP via a single link may take advan-tage of the inventive technique provided measurement data is acquired and processed for each SP in a manner as described above.

The foregoing description has been directed to specific embodiments of this in-vention. It will be apparent that other variations and modifications may be made to the described embodiments, with the attainment of some or all of their advantages.
There-fore, it is an object of the appended claims to cover all such variations and modifica-tions as come within the true spirit and scope of the invention.
What is claimed is:

Claims (20)

1.~A method for minimizing costs associated with services provided by a plurality of service providers (SPs) wherein each SP charges for utilization of its service based on a tiered pricing structure comprising one or more tiers and wherein each tier corre-lates to an amount of service provided by the SP and a cost, the method comprising the steps of:
generating a target tier for each SP based on a utilization of the SP's service wherein the target tier represents a tier contained in the SP's tiered pricing structure;
generating a momentary target utilization rate (MTUR) for each SP based on the generated target tier for the SP and utilization of the SP's service wherein the MTUR
represents a cumulative utilization of a SP's service at a particular instance of time; and distributing utilization of the SPs' services among the SPs based on the MTUR
and tiered pricing structure of each SP in a manner that minimizes the cost of the serv-ices provided by the SPs.
2. ~A method as defined in claim 1 comprising the step of:
collecting measurement data that represents the utilization of the SPs' services.
3.~A method as defined in claim 2 wherein the data is collected over a billing pe-riod and wherein the billing period comprises one or more rollup periods.
4. ~A method as defined in claim 3 comprising the step of:
generating one or more rollup values from measurement data collected during a rollup period.
5. ~A method as defined in claim 4 wherein each of the SPs' services is associated with a discard calculation method that determines a number of rollup values that are discarded from the billing period.
6. ~A method as defined in claim 4 comprising the step of:

-25-~

for the first N/P + 1 rollup periods in the billing period, distributing demand among the SPs in a manner that minimizes the cost of the services provided by the SPs as indicated by the SPs' tiered pricing structures and the measurement data, wherein N
is a number of discarded rollup values in the billing period and P is a number of rollup values generated per rollup period.
7. ~A method as defined in claim 4 comprising the step of:
placing the one or more rollup values in an ordered set (M).
8. ~A method as defined in claim 7 comprising the step of generating a target tier that is a tier in an SP's cost structure associated with a M(N + 1) value in the ordered set, wherein N is a number of discarded rollup values in the billing period.
9. ~A method as defined in claim 8 comprising the steps of:
determining if a tier in the SP's tiered pricing structure associated with a M(N +
1) - J) value in the ordered set matches a tier in the SP's tiered pricing structure associ-ated with the M(N + 1) value in the ordered set, wherein J is a number of rollup values to be generated in the billing period; and if so, generating a target tier that is a maximum tier.
10. ~A method as defined in claim 3 comprising the steps of:
collecting first measurement data that represent a first utilization of an SP's service;
generating a first rollup value from the first measurement data;
placing the first rollup value in a first ordered set (M');
collecting second measurement data that represent a second utilization of the SP's service;
generating a second rollup value from the second measurement data; and placing the second rollup value in a second ordered set (M").
11. ~A method as defined in claim 10 wherein the first measurement data is a count of egress octets transferred over a data link coupled to the SP and the second measure-ment data is a count of ingress octets transferred over the data link.
12. ~A method as defined in claim 10 comprising the steps of:
determining if a tier in the SP's tiered pricing structure associated with a M'(N
+ 1) value in the first ordered set is greater than a tier in the SP's tiered pricing structure associated with a M"(N + 1) value in the second ordered set, wherein N is a number of discarded rollup values;
if so, generating a target tier that is the tier in the SP's tiered pricing structure associated with the M'(N + 1) value in the first ordered set; and otherwise, generating a target tier that is the tier in the SP's tiered pricing structure associated with the M"(N + 1) value in the second ordered set.
13. ~A method as defined in claim 10 comprising the steps of:~~
determining if a tier in the SP's tiered pricing structure associated with a M'((N
+ 1) - J) value in the first ordered set matches a tier in the SP's tiered pricing structure associated with a M'(N + 1) value in the first order set, wherein N is a number of dis-~
carded rollup values and J is a number of rollup values yet to be collected in the billing period;
if so, generating a target tier that is a maximum tier;~
determining if the tier in the SP's tiered pricing structure associated with the M'((N + 1) - J) value in the first ordered set is greater than a tier in the SP's tiered pricing structure associated with a M"(N + 1) value in the second ordered set;
and if so, generating a target tier that is the tier in the SP's pricing structure associ-ated with the larger of the tiers in the SP's tiered pricing structure associated with the M'(N + 1) and M"(N + 1) values, otherwise, generating a target tier that is a maximum tier.
14. ~A method as defined in claim 10 comprising the steps of:
determining if a tier in the SP's tiered pricing structure associated with a M"((N
+ 1) - J) value in the second ordered set matches a tier in the SP's tiered pricing struc-ture associated with a M"(N + 1) value in the second order set, wherein N is a number of discarded rollup values and J is a number of rollup values yet to be collected in the billing period;
if so, generating a target tier that is a maximum tier;
determining if the tier in the SP's tiered pricing structure associated with the M"((N + 1) - J) value in the second ordered set is greater than a tier in the SP's tiered pricing structure associated with a M'(N + 1) value in the first ordered set;
and if so, generating a target tier that is the tier in the SP's pricing structure associ-ated with the larger of the tiers in the SP's tiered pricing structure associated with of the M'(N + 1) and M"(N + 1) values, otherwise, generating a value that is a maximum tier.
15. ~A system comprising:
connections coupled to a plurality of service providers (SPs) and configured to enable access to services provided by the SPs wherein each SP charges for utilization of its service based on a tiered pricing structure comprising one or more tiers and wherein each tier correlates to an amount of service provided by the SP and a cost;
means for generating a target tier for each SP based on a utilization of the SP's service wherein the target tier represents a tier contained in the SP's tiered pricing structure;
means for generating a momentary target utilization rate (MTUR) for each SP
based on the generated target tier for the SP and utilization of the SP's service wherein the MTUR represents a cumulative utilization of the SP's services at a particular in-stance of time; and means for distributing utilization of the SPs' services among the SPs based on the MTUR and tiered pricing structure of each SP in a manner that minimizes the cost of the services provided by the SPs.
16. ~An intermediate node comprising:
one or more connections coupled to a plurality of service providers (SPs) and configured to enable access to services provided by the SPs wherein each SP
charges for utilization of its service based on a tiered pricing structure comprising one or more tiers and wherein each tier correlates to an amount of service provided by the SP and a cost; and a processor configured to:
monitor utilization of the SPs' services, generate a target tier for each SP based on a utilization of the SP's serv-ice wherein the target tier represents a tier contained in the SP's tiered pricing structure, generate a momentary target utilization rate (MTUR) for each SP based on the generated target tier for the SP and the utilization of the SP's service wherein the MTUR represents a cumulative utilization of the SP's service at a particular instance of time and distribute utilization of the SPs' services among the SPs based on the MTUR and tiered pricing structure of each SP in a manner that minimizes the cost of the services provided by the SPs.
17. ~An intermediate node as defined in claim 16 wherein the processor is config-ured to collect measurement data that represents the utilization of the SPs' services.
18. ~An intermediate node as defined in claim 17 wherein the data is collected over a billing period and wherein the billing period comprises one or more rollup periods.
19. ~An intermediate node as defined in claim 18 wherein the processor is config-ured to generate one or more rollup values from the measurement data collected during a rollup period.
20. ~A computer readable medium containing computer executable instructions for execution in a processor for performing the steps of generating a target tier for each SP in a plurality of SPs based on a utilization of an SP's service wherein the target tier represents a tier contained in the SP's tiered pricing structure;
generating a momentary target utilization rate (MTUR) for each SP in the plu-rality of SPs based on the generated target tier for the SP and the utilization of the SP's service wherein the MTUR represents a cumulative utilization of the SP's services at a particular instance of time; and~
distributing utilization of the SPs' services among the SPs in the plurality of SPs based on the MTUR and tiered pricing structure of each SP in a manner that minimizes the cost of the services provided by the SPs.
CA2529634A 2003-07-31 2004-07-20 Cost minimization of services provided by multiple service providers Expired - Fee Related CA2529634C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/631,682 2003-07-31
US10/631,682 US7257560B2 (en) 2003-07-31 2003-07-31 Cost minimization of services provided by multiple service providers
PCT/US2004/023328 WO2005013049A2 (en) 2003-07-31 2004-07-20 Cost minimization of services by multiple providers

Publications (2)

Publication Number Publication Date
CA2529634A1 CA2529634A1 (en) 2005-02-10
CA2529634C true CA2529634C (en) 2010-09-07

Family

ID=34104167

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2529634A Expired - Fee Related CA2529634C (en) 2003-07-31 2004-07-20 Cost minimization of services provided by multiple service providers

Country Status (6)

Country Link
US (2) US7257560B2 (en)
EP (1) EP1654615A4 (en)
CN (1) CN101019150A (en)
AU (1) AU2004262270A1 (en)
CA (1) CA2529634C (en)
WO (1) WO2005013049A2 (en)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070055582A1 (en) 1996-11-12 2007-03-08 Hahn-Carlson Dean W Transaction processing with core and distributor processor implementations
US8392285B2 (en) 1996-11-12 2013-03-05 Syncada Llc Multi-supplier transaction and payment programmed processing approach with at least one supplier
US8396811B1 (en) 1999-02-26 2013-03-12 Syncada Llc Validation approach for auditing a vendor-based transaction
US20080172314A1 (en) 1996-11-12 2008-07-17 Hahn-Carlson Dean W Financial institution-based transaction processing system and approach
EP1508111A4 (en) * 2002-05-10 2006-06-07 Us Bancorp Automated transaction processing system and approach
US8165969B2 (en) * 2003-07-31 2012-04-24 Cisco Technology, Inc. Route optimization of services provided by one or more service providers for combined links
US20050112530A1 (en) * 2003-11-25 2005-05-26 International Business Machines Corporation Computer-implemented method, system and program product for performing branched rollup for shared learning competencies in a learning environment
US8126999B2 (en) 2004-02-06 2012-02-28 Microsoft Corporation Network DNA
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US8489720B1 (en) * 2004-03-31 2013-07-16 Blue Coat Systems, Inc. Cost-aware, bandwidth management systems adaptive to network conditions
US8762238B2 (en) 2004-06-09 2014-06-24 Syncada Llc Recurring transaction processing system and approach
EP1782255A4 (en) 2004-06-09 2009-04-29 Us Bancorp Licensing Inc Transaction processing with core and distributor processor implementations
EP1782256A4 (en) 2004-06-09 2009-05-06 Us Bancorp Licensing Inc Order-resource fulfillment and management system and approach
US7593366B2 (en) * 2004-12-30 2009-09-22 Intel Corporation Wireless network facilitator and monitor
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US20070043672A1 (en) * 2005-08-16 2007-02-22 Bea Systems, Inc. Per unit basis software licensing model
US7626941B1 (en) * 2005-12-30 2009-12-01 At&T Corp. Method and apparatus for analyzing proposed service features in a communication network
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7536493B2 (en) * 2006-04-12 2009-05-19 International Business Machines Corporation Method and apparatus for identifying a service processor with current setting information
US8712884B2 (en) 2006-10-06 2014-04-29 Syncada Llc Transaction finance processing system and approach
US20080270751A1 (en) * 2007-04-27 2008-10-30 Technology Properties Limited System and method for processing data in a pipeline of computers
US8751337B2 (en) 2008-01-25 2014-06-10 Syncada Llc Inventory-based payment processing system and approach
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US8687621B2 (en) * 2009-06-04 2014-04-01 Cisco Technology, Inc. Dynamically right-sizing prefixes for network and application performance
US8862714B2 (en) * 2010-03-15 2014-10-14 Electronics And Telecommunications Research Institute Apparatus and method for virtualizing of network device
US20120158561A1 (en) * 2010-12-17 2012-06-21 The Bank Of New York Mellon, A New York Banking Corporation System and method for real estate investment management and analysis
US9277482B2 (en) 2011-11-10 2016-03-01 Cisco Technology, Inc. Adaptive reoptimization rate for unstable network topologies
EP3090510A4 (en) 2013-12-31 2017-11-29 Bandwidthx Inc. Systems and methods for allocating alternative network access resources
US20150339691A1 (en) * 2014-05-23 2015-11-26 Moose Loop Holdings, LLC Systems and Methods for Adjusting Prices for a Service
US10045211B2 (en) 2015-09-29 2018-08-07 Bandwidthx Inc. Authentication and authorization of mobile devices for usage of access points in an alternative network

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US599565A (en) * 1898-02-22 kintner
US4878245A (en) * 1986-01-29 1989-10-31 Bradley Graham C Control and metering system for pay television over a cable network
CA2123068C (en) * 1994-05-06 1998-04-14 Thomas A. Gray Adaptive method for allocating calls
US6167389A (en) * 1996-12-23 2000-12-26 Comverge Technologies, Inc. Method and apparatus using distributed intelligence for applying real time pricing and time of use rates in wide area network including a headend and subscriber
US6240462B1 (en) 1997-10-14 2001-05-29 At&T System for providing enhanced grade of service for connections over a large network
US5999565A (en) * 1997-10-15 1999-12-07 Cisco Technology, Inc. Data communication using a modifiable number of XDSL modems
US6546017B1 (en) * 1999-03-05 2003-04-08 Cisco Technology, Inc. Technique for supporting tiers of traffic priority levels in a packet-switched network
US6505244B1 (en) * 1999-06-29 2003-01-07 Cisco Technology Inc. Policy engine which supports application specific plug-ins for enforcing policies in a feedback-based, adaptive data network
US6584502B1 (en) * 1999-06-29 2003-06-24 Cisco Technology, Inc. Technique for providing automatic event notification of changing network conditions to network elements in an adaptive, feedback-based data network
US6577597B1 (en) * 1999-06-29 2003-06-10 Cisco Technology, Inc. Dynamic adjustment of network elements using a feedback-based adaptive technique
US20020049617A1 (en) * 1999-12-30 2002-04-25 Choicelinx Corporation System and method for facilitating selection of benefits
US20010034677A1 (en) * 2000-02-25 2001-10-25 Jay Farhat Method and system to normalize transaction data pertaining to accesses to a service provided via a plurality of service providers
DE10109677A1 (en) * 2000-03-01 2001-09-06 Ge Med Sys Global Tech Co Llc Method for ascertaining a price for goods and services with customer evaluation taken into consideration, involves changing one or more price features to provide a customer-adapted series
FI112148B (en) * 2000-07-24 2003-10-31 Stonesoft Oyj Procedure for checking data transfer
ATE261872T1 (en) * 2000-09-15 2004-04-15 Nestle Sa FOOD REFILL CONTAINER AND DEVICE FOR HOUSING SUCH A CONTAINER
US20020198850A1 (en) 2001-06-26 2002-12-26 International Business Machines Corporation System and method for dynamic price determination in differentiated services computer networks
US6895441B1 (en) 2001-07-30 2005-05-17 Atrica Ireland Ltd. Path rerouting mechanism utilizing multiple link bandwidth allocations
EP1508111A4 (en) * 2002-05-10 2006-06-07 Us Bancorp Automated transaction processing system and approach
US8165969B2 (en) 2003-07-31 2012-04-24 Cisco Technology, Inc. Route optimization of services provided by one or more service providers for combined links

Also Published As

Publication number Publication date
US20050027548A1 (en) 2005-02-03
CN101019150A (en) 2007-08-15
US7920479B2 (en) 2011-04-05
WO2005013049A3 (en) 2007-04-12
AU2004262270A1 (en) 2005-02-10
WO2005013049A2 (en) 2005-02-10
EP1654615A4 (en) 2012-12-26
US20080015914A1 (en) 2008-01-17
US7257560B2 (en) 2007-08-14
CA2529634A1 (en) 2005-02-10
EP1654615A2 (en) 2006-05-10

Similar Documents

Publication Publication Date Title
CA2529634C (en) Cost minimization of services provided by multiple service providers
US8165969B2 (en) Route optimization of services provided by one or more service providers for combined links
US11509582B2 (en) System and method for managing bandwidth usage rates in a packet-switched network
EP1583281B1 (en) High-speed traffic measurement and analysis methodologies and protocols
CN105493450B (en) The method and system of service exception in dynamic detection network
Feldmann et al. Deriving traffic demands for operational IP networks: Methodology and experience
US7536455B2 (en) Optimal combination of sampled measurements
CN100490419C (en) Information packet conmunication method and information packet communication device
US7185103B1 (en) Rate-controlled transmission of traffic flow information
CN1875585B (en) Dynamic unknown L2 flooding control with MAC limits
US20080043636A1 (en) Apparatus for size-dependent sampling for managing a data network
WO2015101952A1 (en) Accurate measurement of distributed counters
CN105745870A (en) Removing lead filter from serial multiple-stage filter used to detect large flows in order to purge flows for prolonged operation
KR101537835B1 (en) Technique for regulating link traffic
US7739159B1 (en) Aggregation of user usage data for accounting systems in dynamically configured networks
Chang et al. Leisure: A framework for load-balanced network-wide traffic measurement
EP3975513A1 (en) Accelerated network traffic sampling using an accelerated line card
CN110162969A (en) A kind of analysis method and device of flow
CN113709053B (en) Flow definition-based flow dividing method and device
EP1332583B1 (en) Traffic flow optimisation system
JP2004165996A (en) Ip router, method for totalizing point to point traffic on ip network, and ip network system
CA2615998A1 (en) Optimal combination of sampled measurements
Németh et al. Traffic splitting algorithms in multipath networks: Is the present practice good enough?

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20180720