Predictive software license balancing

Information

  • Patent Grant
  • 8041642
  • Patent Number
    8,041,642
  • Date Filed
    Wednesday, July 10, 2002
    22 years ago
  • Date Issued
    Tuesday, October 18, 2011
    13 years ago
Abstract
A predictive software license balancing system for allocating a predetermined number of software licenses between two or more license servers located at different sites. Each license server compiles software license usage statistics and shares the usage statistics with the other license servers. Based in the compiled software license usage over time, the software license usage for each site is predicted and the available software licenses distributed accordingly, thus balancing the number of software licenses available at each site based on predicted software license usage.
Description
FIELD OF THE INVENTION

The invention relates to software licensing, and in particular to a system for controlling the number of users that concurrently use a licensed software file.


PROBLEM

It is a problem in the software field to prevent unauthorized users from accessing and using an application file while also providing a method to allow customers to purchase and concurrently use more than one copy. A number of software publishers license software files under a pricing model wherein a customer purchases the right to concurrently use a predetermined number of copies. Software files that are sold for concurrent use are often delivered with license management software installed on a license server, from which the customer requests software licenses. The licensing management software ensures that the customer does not use more licenses than they have purchased and are entitled to use. A problem arises when a customer attempts to share use of the application files at more than one site.


Effective management of multiple copies of application files and “floating licenses” presents a major dilemma for computer site administrators and software application publishers. The focus of control for managing multiple copies of an application file or application file software license is the physical location of the application file or the program disk. The details of controlling physical access and the degree of inconvenience vary, but in a world of hard disks, networks, file servers and electronic email, management based on controlled distribution is intrinsically impractical or even impossible. Without any practical tools, site administrators are forced to rely on a rather ill defined “reasonable effort” at software license compliance. Three solutions have commonly been used.


The first solution has been to run the license management software at only one site and require users at other sites to request a software license across a wide-area-network (WAN) as described in U.S. Pat. No. 5,742,757. There are disadvantages to this approach. Software license requests across a WAN can be slow, and if the WAN connection goes down, some sites may be unable to request software licenses. A solution to the problem is to break the software licenses into subsets and provide each site with its own license server, licensing management software and a set of software licenses. Using this solution, users at each site contact their local license server first. If the license server does not have a license available, the user is required to request a license from another server across the WAN. However, the user has no way of knowing which license server has a software license available. The problem is exasperated when additional sites are added, providing fewer software licenses at each site and additional sites to contact to request a software license.


A third solution, a licensing product named “KeyServer” from Sassafras Software of Hanover N.H., solves the previously discussed problems by providing a system that allows “ghost servers”. Customers purchase and use KeyServer to control the number of concurrent application users so that the business does not use more software licenses than the business has purchased and therefore has a right to use. Ghost servers are placed at each site and handle software license requests from clients at those sites. Ghost servers obtain software licenses from a central license server. If a ghost server can not contact the central license server, the ghost server acts as the central license server. While this solution offers a very reliable system, a problem arises with controlling licensing limits. When the central license server is not available to the ghost servers, each ghost server acts as the central license server, enabling each ghost server to allow access to the entire software license count at each and every site. Whether intentional or inadvertent, failure of the central license server provides a method for exceeding license limits.


For these reasons, a need exists for a system to track the number of software licenses used at each license server site, analyze software license usage at each site, and allocate a set of software licenses to each site based on the sites predictive software license usage.


SOLUTION

The predictive software license balancing system authorizes concurrent use of an application file at multiple sites. Initially, the plurality of software licenses are divided among the multiple sites. A license server located at each site accepts software application file usage requests from users at that particular site. If a software license is available when the request is received, the user is granted an authorization to access and use the corresponding application file. The multiple license servers are interconnected via a WAN or other network connection. As concurrent usage of an application are authorized at the multiple sites, the license servers record the application file usage statistics relating to the number of software licenses available and number of concurrent users authorized during a predetermined time period and exchange the usage statistics with the other license servers. Using the usage statistics from the multiple license servers, the percentage of application file concurrent usage at the multiple sites is calculated. Using the usage statistics gathered over a period of time, the application file concurrent usage for each site is predicted and software licenses distributed accordingly.


In the event communication between one license server and the other license servers temporarily fails, the disconnected license server would continue to operate based on the previous predictions. The other license servers would continue to rebalance software license distribution between the communicating license servers using previous predictions for the disconnected license server. When the connection is re-established, new usage statistics are shared and new predictions calculated and the software licenses are redistributed according to the predictions. Following a complete failure of a license server, connection with the other license servers is established and valid usage statistics retrieved from one of the other license servers.


If connection to the other license servers were not reestablished within a time period, the disconnected license server may consider the failure to be permanent. Following a permanent failure, the license server would revert to a default set of software licenses available for authorizing concurrent application file usage at that particular site. In this embodiment, the other connected license servers may rebalance the software licenses based on the default set of software licenses available for the disconnected license server.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates a block diagram of a multi-site organization using the present predictive software license balancing system;



FIG. 2 is a flow diagram of software license balancing using the present predictive software license balancing system;



FIG. 3 is an operational flow diagram of the present predictive software license balancing system;



FIG. 4 is an operations flow diagram of the present predictive software license balancing system; and



FIG. 5 is another operations flow diagram of the present predictive software license balancing system.





DETAILED DESCRIPTION

The predictive software license balancing system summarized above and defined by the enumerated claims may be better understood by referring to the following detailed description, which should be read in conjunction with the accompanying drawings. This detailed description of the preferred embodiment is not intended to limit the enumerated claims, but to serve as a particular example thereof. In addition, the phraseology and terminology employed herein is for the purpose of description, and not of limitation.


A number of software providers license software files under a pricing model wherein a customer purchases the right to concurrently use a predetermined number of copies of an application file, referred to as “floating licenses”. Software files that are sold with “floating licenses” are often delivered with license management software installed on a license server, from which users request software licenses. The licensing management software ensures that the customer does not use more licenses than they have purchased and are entitled to use.


Predictive Software License System Configuration—FIG. 1:


The present predictive software license balancing system is configured to operate between two or more sites. Referring to the block diagram in FIG. 1, a set of software licenses is shared amongst three sites 110, 120 and 130. Each site includes a license server, 112, 122, and 132, for controlling application file authorization at the particular site. License servers 112, 122, and 132 are linked together via a communication channel 140 such as a wide area network (WAN) for sharing application file usage statistics.


In the example illustrated in FIG. 1, eight licensed copies of the application file are available for concurrent usage by users at three sites 110, 120 and 130. Initially the software licenses are divided into subsets and distributed among the three sites 110, 120 and 130. Each license server 112, 122 and 132 receives application file usage requests from users at the particular site, if a software license is available, the user is granted an authorization to access and use the corresponding application file.


Software License Balancing—FIGS. 1 and 2:


Referring to the flow diagram in FIG. 2, the license server, such as license server 112, records application file usage statistics in step 220 for site 110 for a period of time. The application file usage statistics complied in step 220 by each license server 112, 122 and 132 are distributed to the other license servers in step 230 where they are stored in memory for use in calculating the percentage of concurrent application file usage of each license server. Using the shared application file usage statistics from step 230, the percentage of concurrent application file users for each site is calculated in step 240 by processing devices within each license server. Each server is performing the same calculations using the same statistics, therefore each license server will calculate the same percentage of concurrent application file users. Each license server records the results for future use and makes available a corresponding number of application files in step 260 which will be authorized as application file usage requests are received. Compilation of application file usage statistics by the processing device at each site over a predetermined period of time provides the statistics required for predicting future application file usage in step 250. Once application file usage predictions are calculated in step 250, the number of application files available for use at each site are recalculated in step 260 according to the predictions, thus balancing the software license distribution.


For example, if sites 110 and 130 authorize three concurrent users to access and use the application file between the hours of 8 am and 5 pm, sites 110 and 130 each use approximately forty-percent of the available software licenses. Site 120 application file usage during the same time period is one in this example. Therefore the eight software licenses are initially distributed in step 210 with a subset of three software licenses distributed to each site 110 and 130 and the remaining two software licenses are distributed to site 120. In step 270, the license server at each site manages authorization of concurrent usage for that particular site.


Providing a method for compiling and sharing application file usage statistics between the multiple license servers reduces the time required to request a software license from a central license server and balances the number of software licenses available at each particular site. By balancing the number of software licenses available at each license server based on predicted application file usage reduces the need to transfer software licenses between license servers, thus saving time. A multi-site organization using the present predictive software licensing balancing system reduces the WAN traffic required by prior art license distribution systems to request and transfer software licenses. Instead, WAN bandwidth is required only for sharing application file usage statistics and the application file usage statistics can be schedule for distribution during optimal times.


Operational Characteristics—FIGS. 1, 2 and 3:


Referring to the block diagram in FIG. 1 in conjunction with the operational flow diagram in FIG. 3, site 110 received software application file usage requests in step 310 from three users, 114, 115 and 116. As license server 112 receives a license request from a user, the processor within the license server 112 checks the number of software licenses available for site 110 that were recorded in memory. Since three software licenses are available, user 114 is first granted authorization to use the application file. The processor records the number of software licenses granted along with the number of software licenses available. When users 115 and 116 request a software license, the processor checks both the number of software licenses available and the number of software users authorized. If software licenses are available, the license server authorizes the users in step 324 to access and concurrently use the application files in step 326. Likewise, license server 122 authorizes usage in step 324 to user 124 while license server 132 authorized concurrent usage of the application file in step 324 to the first three users requesting software licenses in step 310, users 134, 135 and 136 in this example. License server 122 has one software license available while license servers 112 and 132 have granted all available software licenses.


When license server 132 receives an application file usage request in step 310 from user 137, license server 132 determines in step 320 whether a software license is available. If a software license is not available in step 320, license server 132 sends a software license request to an alternative license server, such as license server 122, in step 330. License server 122 has authorized one user and has one software license available. The request for a software license is granted by license server 122 to requesting license server 132 in step 342. Each license server updates the number of software licenses available at the two sites. License server 122 now has one software license available and one software license granted. If a subsequent user requests usage of the application file, server 122 would have to deny the request unless another license server such as license server 112 or 132 have a software license available. Likewise, license server 132 updates records to show four software licenses available. In step 137, license server 132 authorizes concurrent use to user 137 allowing user 137 to access and use the application file in step 346.


In the event that there is not a software license available at the three sites 110, 120 and 130, the application file usage requester, user 137 in this example, is queued for authorization to concurrently use the application file when a software license is available from any one of the three sites 110, 120 or 130. In this example, license server requested a software license from license servers 112 and 122. The requests were denied since license servers 112 and 122 have granted concurrent use of the software licenses available for their particular site. The request remains active at each license server 112, 122 and 132 until a user terminates use of an application file, at which time the request from license server 132 is granted.


Referring to FIG. 2, the application file usage for each site is compiled by the site license server in step 220 and shared with the other license servers in step 230. Using previously collected software application file usage statistics from each site in conjunction with the new application file usage statistics, future application file usage is predicted in step 250. The software licenses are redistributed accordingly in step 260, thus balancing the number of software licenses available at each site. The multiple site license servers continue to share application file usage statistics, predict future application file usage requirements for each site and to redistribute the software licenses accordingly.


Predictions may also be based on usage statistics by time-of-day or day of the week. For example, license servers on opposite coasts or in different countries may share software licenses and use the software licenses at different times, thus providing more software licenses available at each site without the purchase of additional software licenses. Software applications are licenses for 24-hour use although many businesses only use the application files during an eight or ten hour day. Sharing the software licenses with a site using the application file during opposite hours saves the cost associated with purchasing twice as many software licenses.


Failure Mode—FIGS. 1 and 4-5:


Failure of the communication channel in step 400 between one license server and the other license servers does not prevent each license server from managing the authorization of concurrent application file usage at that particular site in step 410. Instead, the disconnected license server continues to manage application file usage requests in step 410 based on the stored predictive license balancing. Likewise, the other two license servers manage concurrent usage in step 410 at their particular site based on previously calculated application file usage predictions. However, the connected license servers continue to collect and share application file usage statistics in steps 420 and 430. Using the new application file usage statistics combined with the previously recorded application file usage statistics for the disconnected license server, the connected license servers predict future application file usage statistics in step 440 and redistribute software licenses accordingly, taking into account the number of concurrent users predicted for the disconnected license server. Meanwhile, the disconnected license server continues to collect application file usage statistics. In step 450 when the connection is restored, the application file usage statistics are shared in step 460 with the other license servers and new application file usage predictions calculated and each license server continues to manage software licenses at their particular site in step 470


Referring to the operational flow diagram of FIG. 5, application file usage statistics and predictions are temporarily saved in memory in step 500. They are not permanently saved on the license server to eliminate the susceptibility of tampering with the statistics or predictions. Therefore, complete failure of a license server in step 510 results in stored application file usage statistics and predictions being lost. When the failed license server reinitializes, connection with the other license servers is established in step 520. If usage statistics are available in step 550, the previously failed license server retrieves the usage statistics and previously calculated predictions in step 540 and operation between the multi-site license servers proceeds as usual in step 580. However, if the previously failed license server is unable to reestablish connection with the other license servers in step 520, all is not lost. Instead, the previously failed license server reverts back to the default software license subset in step 540. Thus, regardless of the status of reconnection with the other license servers, the previously failed license server manages the default subset of software licenses in step 542 until connection is reestablished. Unlike prior art software license management systems, providing a method for license servers that are not able to communicate with other license servers to continue to manage a default subset of software licenses prevents more than one site from granting the concurrent usage of the total number of software licenses. It also provides a method for each site to continue managing application file usage requests at each corresponding site.


If application file usage statistics are not available in step 550 from another license server after the communication channel is restored in step 520, the previously failed license server manages the default software license subset in step 560 and collects and shares updated application file usage statistics in step 562.


A catastrophic failure of all of the license servers simultaneously would result in each license server initializing with the default subset of software licenses. Each license server would collect and share new application file usage statistics as previously discussed. In an alternative embodiment, the usage statistics are periodically sent to an alternative remote storage device. In this embodiment, if all of the license servers fail simultaneously, the first license server reinitialized recovers the previously saved usage statistics from the remote storage device. As the other license servers reinitialize, the other license servers recover usage statistics from the first license server and operation presumes.


As to alternative embodiments, those skilled in the art will appreciate that the present predictive software license balancing system can be configured with an alternative number of sites, license servers and available software licenses. It is also anticipated that the multi-site license servers receive and process software application file usage requests for more than one application file type and that the usage statistics and predictions for each application file type are calculated and distributed independent of the other application file types. Likewise, a single file may contain an application that supports a number of different features that may be individually turned on or off with licenses. Therefore the term application file has been illustrated and described as an example of usage of the present predictive software license balancing system and not as a limitation of usage.


While the present predictive software license balancing system has been illustrated and discussed for use in a multi site situation, usage is not intended to be limited to businesses having multiple sites. The present predictive software license balancing system may be utilized with license servers connected within a Local Area Network (LAN) or a software licensing system having multiple software servers at one or more sites wherein each of the multiple license servers is treated as being a separate site.


It is apparent that there has been described, a predictive software license balancing system that fully satisfies the objects, aims, and advantages set forth above. While the predictive software license balancing system has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications, and/or variations can be devised by those skilled in the art in light of the foregoing description. Accordingly, this description is intended to embrace all such alternatives, modifications and variations as fall within the spirit and scope of the appended claims.

Claims
  • 1. A software license distribution system comprising: a plurality of software licenses associated with a plurality of application files, wherein each software license authorizes usage of one of the application files, wherein the plurality of software licenses are shared among users at two or more sites;a communication channel interconnecting the two or more sites;at least two sites, each site comprising: a license server, wherein each site has a predetermined number of the software licenses for using a set of application files by a set of users located at the site, the license server comprising: a memory;a processor in communication with the memory, the processor operable to: autonomously generate a software license usage statistic indicative of a number of users concurrently using the application files during a predetermined time period at the site;send, through the communication channel, the software license usage statistic to at at least one other license server at least one other site;receive, through the communication channel, at least one other software license usage statistic from the at least one other license server at at the at least one other site;autonomously calculate a predicted software license usage at the site based on the generated software license usage statistic;autonomously calculate at least one other predicted software license usage at the at least one other site based on the at least one other received software license usage statistic from the at least one other site;autonomously authorize usage of the first set of application files at the site, wherein the first set of application files corresponds in number to the predicted software license usage at the site; andin response to receiving a software usage request in excess of the first predicted software license usage, obtain at least one additional software license from the at least one other site.
  • 2. The software license distribution system of claim 1 further comprising: a second memory operable to store the software license usage statistic and the predicted software license usage for the at least two license servers; andan interconnecting interface operable to interconnect each of the license servers to the second memory for exchanging the software license usage statistics and the predicted software license usage between the license servers.
  • 3. The software license distribution system of claim 2 wherein one of the license servers is operable to: respond to reinitialization of at least one other license server by retrieving the software license usage statistics and the predicted software license usage from the second memory; andtransmit the retrieved software license usage statistics and the predicted software license usage to a reinitialized license server.
  • 4. The software license distribution system of claim 1 wherein the license server is further operable to: monitor for a failure of the communication channel;in response to the failure of the communication channel, save the predicted software license usage in the memory; andauthorize the usage of the set of application files based on the saved predicted software license usage.
  • 5. The software license distribution system of claim 4 wherein the license server is further operable to, in response to reestablishment of the communication channel, receive at a new software file usage statistic from the at least one other license server.
  • 6. The software license distribution system of claim 1 wherein the license server further comprises: a subset of the plurality of software licenses; andwherein the license server is responsive to initialization for managing the subset of the plurality of software licenses.
  • 7. The software license distribution system of claim 6, wherein license server is further operable to save the subset of plurality of software licenses in the memory for use when the license server is initialized.
  • 8. The software license distribution system of claim 6 wherein the license server is further operable to: periodically generate an updated predicted software license usage; andin response to generating the updated predicted software license usage, grant one or more application file usage requests up to the number of software licenses corresponding to the updated predicted software license usage.
  • 9. A distributed system for managing a plurality of software licenses used at more than one site, the system comprising; a plurality of application files;a plurality of software licenses, wherein each application file corresponds to a software license;two or more license servers interconnected by a communication channel, each license server including a processor, wherein each license server is located at one of at least two or more sites, each license server operable to: autonomously distribute a subset of the plurality of software licenses to a user at the site;autonomously receive a usage request from the user located at the site;autonomously process the usage request,autonomously calculate an application file usage statistic,autonomously generate, from the application file usage statistic, a predicted use data indicative of future application file usage for each of the two or more license servers; andautonomously redistribute the plurality of software licenses among the two or more license servers based on the predicted use data for each of the two or more license servers.
  • 10. The distributed system of claim 9, wherein each license server further comprises: a memory operable to save the software usage statistic and the predicted use data; andwherein each license server is further operable to: in response to a failure of the communication channel, save the predicted use data in the memory; and authorize usage based on the saved predicted use data.
  • 11. The distributed system of claim 10 wherein two or more license servers are operable to, in response to reestablishment of the failed communication channel, exchange new application file usage statistics.
  • 12. The distributed system of claim 9 wherein the two or more license servers are further operable to: update the predicted use data for each of the two or more license servers; andautonomously redistribute the plurality of software licenses between the two or more license servers based on the updated predicted use data; andrespond to new usage requests based on the updated predicted use data for the two or more license servers.
  • 13. A method for software license distribution, the method comprising: distributing, by a license server at a first site, a default subset of software licenses associated with a default subset of a plurality of application files, wherein the plurality of application files are shared among two or more sites and the default subset is shared among one or more users at the first site, wherein the license server comprises a processor and memory, wherein distributing the default subset of software licenses comprises: receiving, by the license server, a usage request for one software license included in the default subset of the software licenses;authorizing, by the license server, a usage of a software license if a number of usage requests already authorized is less than a number of software licenses in the default subset of software licenses;recording, by the license server, a number of usage requests authorized;autonomously balancing, by the license server, a number of software licenses between the first site and one or more other sites, wherein balancing comprises:autonomously calculating, by the license server, a first application file usage statistic;sending, by the license server, the first application file usage statistic to at least one other license server;receiving, by the license server, a second application file usage statistic from at least one other license server;autonomously predicting a first future application file usage, for the first site, based on the first application file usage statistic;autonomously predicting, by the license server, a second future application file usage, for at least one other site, based on the second application file usage statistic; andredistributing, by the license server, the plurality of application files between the at least two license servers based on the first future application file usage and the second future application file usage.
  • 14. The method of claim 13 wherein distributing the default subset of software licenses further comprises: if a number of usage requests already authorized is more than a number of software licenses in the default subset of software licenses, requesting a software license from at least one other site; andreceiving a transfer of the software license from the at least one other site to the first site,authorizing the usage request based on receiving the transfer of the software license, andadjusting a number of software licenses available at the first site by summing the number of software licenses in the default subset of software licenses with a number of transferred software licenses.
  • 15. The method of claim 13 further comprising: if a number of usage requests already authorized is more than a number of software licenses in the default subset of software licenses, queuing one or more usage requests; andin response to a transfer of a software license, authorizing a queued usage request.
  • 16. The method of claim 13 further comprising: determining a failure of a communication channel between the first site and at least one other site;in response to the failure, authorizing usage requests only for the default subset of software licenses.
  • 17. The method of claim 13 wherein the license server and at least one other license server at at least one other site is connected to a storage device, wherein the method further comprises: storing the second application file usage statistic and the second future software license usage on the storage device;in response to reinitialization of at least one other license server at least one other site, retrieving the second application file usage statistic and the second future application file usage from the storage device; anddistributing the plurality of application files based on the retrieved second future software license usage.
US Referenced Citations (260)
Number Name Date Kind
4288659 Atalla Sep 1981 A
4405829 Rivest et al. Sep 1983 A
4780821 Crossley Oct 1988 A
4811393 Hazard Mar 1989 A
4888800 Marshall et al. Dec 1989 A
4937863 Robert et al. Jun 1990 A
5005122 Griffin et al. Apr 1991 A
5023907 Johnson et al. Jun 1991 A
5157663 Major et al. Oct 1992 A
5179591 Hardy et al. Jan 1993 A
5204897 Wyman Apr 1993 A
5206903 Kohler et al. Apr 1993 A
5230020 Hardy et al. Jul 1993 A
5260999 Wyman Nov 1993 A
5307481 Shimazaki et al. Apr 1994 A
5329570 Glassmacher et al. Jul 1994 A
5341427 Hardy et al. Aug 1994 A
5347580 Molva et al. Sep 1994 A
5386369 Christiano Jan 1995 A
5390297 Barber et al. Feb 1995 A
5408649 Beshears et al. Apr 1995 A
5448639 Arazi Sep 1995 A
5553143 Ross et al. Sep 1996 A
5563946 Cooper et al. Oct 1996 A
5579222 Bains et al. Nov 1996 A
5629980 Stefik et al. May 1997 A
5646992 Subler et al. Jul 1997 A
5671412 Christiano Sep 1997 A
5673315 Wolf Sep 1997 A
5699431 Van Oorschot et al. Dec 1997 A
5708709 Rose Jan 1998 A
5717604 Wiggins Feb 1998 A
5724428 Rivest Mar 1998 A
5742757 Hamadani et al. Apr 1998 A
5745569 Moskowitz et al. Apr 1998 A
5745576 Abraham et al. Apr 1998 A
5745879 Wyman Apr 1998 A
5754761 Willsey May 1998 A
5758068 Brandt et al. May 1998 A
5758069 Olsen May 1998 A
5790074 Rangedahl et al. Aug 1998 A
5790664 Coley et al. Aug 1998 A
5796941 Lita Aug 1998 A
5828747 Fisher et al. Oct 1998 A
5835600 Rivest Nov 1998 A
5864620 Pettitt Jan 1999 A
5905793 Flockhart et al. May 1999 A
5905860 Olsen et al. May 1999 A
5935243 Hasebe et al. Aug 1999 A
5940504 Griswold Aug 1999 A
5956505 Manduley Sep 1999 A
5956716 Kenner et al. Sep 1999 A
5960085 de la Huerga Sep 1999 A
5978565 Ohran et al. Nov 1999 A
5982873 Flockhart et al. Nov 1999 A
5995625 Sudia et al. Nov 1999 A
6006016 Faigon et al. Dec 1999 A
6009401 Horstmann Dec 1999 A
6011973 Valentine et al. Jan 2000 A
6023763 Grumstrup et al. Feb 2000 A
6023766 Yamamura Feb 2000 A
6047242 Benson Apr 2000 A
6067621 Yu et al. May 2000 A
6108703 Leighton et al. Aug 2000 A
6128389 Chan et al. Oct 2000 A
6134660 Boneh et al. Oct 2000 A
6148415 Kobayashi et al. Nov 2000 A
6163607 Bogart et al. Dec 2000 A
6173053 Bogart et al. Jan 2001 B1
6178511 Cohen et al. Jan 2001 B1
6189146 Misra et al. Feb 2001 B1
6192122 Flockhart et al. Feb 2001 B1
6212635 Reardon Apr 2001 B1
6219652 Carter et al. Apr 2001 B1
6223291 Puhl et al. Apr 2001 B1
6246871 Ala-Laurila Jun 2001 B1
6314565 Kenner et al. Nov 2001 B1
6343280 Clark Jan 2002 B2
6360320 Ishiguro et al. Mar 2002 B1
6381747 Wonfor et al. Apr 2002 B1
6414595 Scrandis et al. Jul 2002 B1
6421726 Kenner et al. Jul 2002 B1
6442708 Dierauer et al. Aug 2002 B1
6463534 Geiger et al. Oct 2002 B1
6498791 Pickett et al. Dec 2002 B2
6502079 Ball et al. Dec 2002 B1
6513117 Tarpenning et al. Jan 2003 B2
6513121 Serkowski Jan 2003 B1
6539481 Takahashi et al. Mar 2003 B1
6557105 Tardo et al. Apr 2003 B1
6574612 Baratti et al. Jun 2003 B1
6584454 Hummel, Jr. et al. Jun 2003 B1
6615347 de Silva et al. Sep 2003 B1
6640305 Kocher et al. Oct 2003 B2
6654888 Cooper et al. Nov 2003 B1
6675208 Rai et al. Jan 2004 B1
6697945 Ishiguro et al. Feb 2004 B2
6760324 Scott et al. Jul 2004 B1
6765492 Harris Jul 2004 B2
6769063 Kanda et al. Jul 2004 B1
6772133 Kambayashi et al. Aug 2004 B1
6775782 Buros et al. Aug 2004 B1
6778820 Tendler Aug 2004 B2
6785726 Freeman et al. Aug 2004 B1
6795941 Nickels Sep 2004 B2
6816842 Singh et al. Nov 2004 B1
6826606 Freeman et al. Nov 2004 B2
6842896 Redding et al. Jan 2005 B1
6850958 Wakabayashi Feb 2005 B2
6854010 Christian et al. Feb 2005 B1
6868403 Wiser et al. Mar 2005 B1
6876984 Tadayon et al. Apr 2005 B2
6883095 Sandhu et al. Apr 2005 B2
6889212 Wang et al. May 2005 B1
6901386 Dedrick et al. May 2005 B1
6904523 Bialick et al. Jun 2005 B2
6920567 Doherty et al. Jul 2005 B1
6928166 Yoshizawa Aug 2005 B2
6928558 Allahwerdi et al. Aug 2005 B1
6934463 Ishiguro et al. Aug 2005 B2
6934848 King et al. Aug 2005 B1
6941283 Kambayashi et al. Sep 2005 B2
6957344 Goldshlag et al. Oct 2005 B1
6959291 Armstrong et al. Oct 2005 B1
6961858 Fransdonk Nov 2005 B2
6968384 Redding et al. Nov 2005 B1
6973444 Blinn et al. Dec 2005 B1
6976164 King et al. Dec 2005 B1
6981222 Rush et al. Dec 2005 B2
6993664 Padole et al. Jan 2006 B2
7032113 Pendlebury Apr 2006 B2
7035918 Redding et al. Apr 2006 B1
7065214 Ishiguro et al. Jun 2006 B2
7073063 Peinado Jul 2006 B2
7080402 Bates et al. Jul 2006 B2
7085382 Terao et al. Aug 2006 B2
7096469 Kubala et al. Aug 2006 B1
7100044 Watanabe et al. Aug 2006 B2
7100200 Pope et al. Aug 2006 B2
7124304 Bel et al. Oct 2006 B2
7127442 Mazza et al. Oct 2006 B2
7139737 Takahashi et al. Nov 2006 B2
7143409 Herrero Nov 2006 B2
7146340 Musson Dec 2006 B1
7149806 Perkins et al. Dec 2006 B2
7152245 Dublish et al. Dec 2006 B2
7171662 Misra et al. Jan 2007 B1
7185195 Hug et al. Feb 2007 B2
7197321 Erskine et al. Mar 2007 B2
7206936 Aull et al. Apr 2007 B2
7216363 Serkowski et al. May 2007 B2
7225333 Peinado et al. May 2007 B2
7228426 Sinha et al. Jun 2007 B2
7228567 Serkowski et al. Jun 2007 B2
7260557 Chavez Aug 2007 B2
7272500 Walker Sep 2007 B1
7278164 Raiz et al. Oct 2007 B2
7283519 Girard Oct 2007 B2
7302703 Burns Nov 2007 B2
7308717 Koved et al. Dec 2007 B2
7310734 Boate et al. Dec 2007 B2
7313828 Holopainen Dec 2007 B2
7318236 DeMello et al. Jan 2008 B2
7336791 Ishiguro Feb 2008 B2
7353388 Gilman Apr 2008 B1
7356692 Bialick et al. Apr 2008 B2
7373657 Walker May 2008 B2
7382881 Uusitalo et al. Jun 2008 B2
7383205 Peinado et al. Jun 2008 B1
7415729 Ukeda et al. Aug 2008 B2
7545931 Dillaway Jun 2009 B2
7549172 Tokutani et al. Jun 2009 B2
7552166 Chack Jun 2009 B2
7681245 Walker et al. Mar 2010 B2
20010001268 Menon et al. May 2001 A1
20010034846 Beery Oct 2001 A1
20020013722 Kanaga Jan 2002 A1
20020017977 Wall Feb 2002 A1
20020038422 Suwamoto et al. Mar 2002 A1
20020052939 Lee May 2002 A1
20020083003 Halliday et al. Jun 2002 A1
20020087892 Hideyo Jul 2002 A1
20020107809 Biddle et al. Aug 2002 A1
20020112186 Ford et al. Aug 2002 A1
20020116340 Hellberg et al. Aug 2002 A1
20020138441 Lopatic Sep 2002 A1
20020154777 Candelore Oct 2002 A1
20020169625 Yang et al. Nov 2002 A1
20020169725 Eng Nov 2002 A1
20020188656 Patton et al. Dec 2002 A1
20020188704 Gold Dec 2002 A1
20030013411 Uchiyama Jan 2003 A1
20030018491 Nakahara et al. Jan 2003 A1
20030018582 Yaacovi Jan 2003 A1
20030023564 Padhye et al. Jan 2003 A1
20030055749 Carmody et al. Mar 2003 A1
20030084306 Abburi et al. May 2003 A1
20030095542 Chang et al. May 2003 A1
20030144959 Makita Jul 2003 A1
20030149670 Cronce Aug 2003 A1
20030149874 Balfanz et al. Aug 2003 A1
20030156719 Cronce Aug 2003 A1
20030159033 Ishiguro Aug 2003 A1
20030159070 Mayer et al. Aug 2003 A1
20030163428 Schneck et al. Aug 2003 A1
20030172035 Cronce et al. Sep 2003 A1
20030177393 Ishiguro Sep 2003 A1
20030191936 Kawatsura et al. Oct 2003 A1
20030208449 Diao Nov 2003 A1
20030233547 Gaston et al. Dec 2003 A1
20040003269 Waxman et al. Jan 2004 A1
20040010469 Lenard et al. Jan 2004 A1
20040044629 Walker et al. Mar 2004 A1
20040044630 Walker et al. Mar 2004 A1
20040047354 Slater et al. Mar 2004 A1
20040054930 Walker et al. Mar 2004 A1
20040073517 Zunke et al. Apr 2004 A1
20040078339 Goringe et al. Apr 2004 A1
20040088541 Messerges et al. May 2004 A1
20040103011 Hatano et al. May 2004 A1
20040103324 Band May 2004 A1
20040127196 Dabbish et al. Jul 2004 A1
20040128395 Miyazaki Jul 2004 A1
20040128551 Walker et al. Jul 2004 A1
20040133794 Kocher et al. Jul 2004 A1
20040162998 Tuomi et al. Aug 2004 A1
20040181696 Walker Sep 2004 A1
20040249763 Vardi Dec 2004 A1
20040260589 Varadarajan et al. Dec 2004 A1
20040268120 Mirtal et al. Dec 2004 A1
20050005098 Michaelis et al. Jan 2005 A1
20050038753 Yen et al. Feb 2005 A1
20050076204 Thornton et al. Apr 2005 A1
20050086174 Eng Apr 2005 A1
20050091507 Lee et al. Apr 2005 A1
20050144437 Ransom et al. Jun 2005 A1
20050154877 Trench Jul 2005 A1
20050198510 Robert et al. Sep 2005 A1
20050202830 Sudit Sep 2005 A1
20050229004 Callaghan Oct 2005 A1
20050246098 Bergstrom et al. Nov 2005 A1
20050289072 Sabharwal Dec 2005 A1
20060021068 Xu et al. Jan 2006 A1
20060026105 Endoh Feb 2006 A1
20060036554 Schrock et al. Feb 2006 A1
20060036894 Bauer et al. Feb 2006 A1
20060064582 Teal et al. Mar 2006 A1
20060089912 Spagna et al. Apr 2006 A1
20060178953 Aggarwal et al. Aug 2006 A1
20060242083 Chavez Oct 2006 A1
20060294010 Kim et al. Dec 2006 A1
20070033419 Kocher et al. Feb 2007 A1
20070094710 Walker et al. Apr 2007 A1
20070107067 Fountian May 2007 A1
20070219917 Liu et al. Sep 2007 A1
20080052295 Walker et al. Feb 2008 A1
20080082449 Wilkinson et al. Apr 2008 A1
20080141242 Shapiro Jun 2008 A1
20080189131 Chavez Aug 2008 A1
20100049725 Walker et al. Feb 2010 A1
Foreign Referenced Citations (3)
Number Date Country
1071253 Jan 2001 EP
1562378 Aug 2005 EP
2006085481 Mar 2006 JP
Related Publications (1)
Number Date Country
20040010440 A1 Jan 2004 US