1. Field of the Invention
The present invention generally relates to data processing and more particularly to the selective enablement and disablement of hardware capacity on a computerized apparatus.
2. Description of the Related Art
The operation of a business is a dynamic undertaking. To increase profit margins, businesses continually seek out means of assessing and controlling costs. For example, one attractive alternative to outright purchases of assets is leasing. Leasing provides flexibility and, in some cases, tax advantages.
However, regardless of whether an asset is purchased or leased, some assets have periods of idleness, or decreased usage. During these periods, the assets are not productive, or not optimally productive, but still have associated costs which the business incurs. A particular asset that suffers from this problem is the computer.
Today's computers are powerful devices having significant capacity for functions such as processing and storage. Unfortunately, the cost of owning and operating computers can be significant for some businesses. In order to be effective, the computerized resources of a business must be sufficient to meet the current needs of the business, as well as projected needs due to growth. In addition, even assuming no growth, the resources must be capable of tolerating the business's inevitable peaks and valleys of day-to-day operations due to increased loads for seasonal, period end, or special promotions.
As a result, businesses are left in the position of having to invest in more computerized resources than are immediately needed in order to accommodate growth and operational peaks and valleys. In the event the growth exceeds the available computerized resources, the business must upgrade its resources, again allowing for projected growth. Thus, at any given time in its growth cycle, a business will have excess computer capacity allowing for growth as well as the peaks and valleys of short-term operations. This excess capacity translates into real cost for the business.
One solution that gives user's more flexibility is on-demand access to computerized resources. Various forms of on-demand resource access are available from International Business Machines, Inc. For example, one form of on-demand access is provided by International Business Machines, Inc. under the name “On/Off Capacity on Demand” (also referred to herein as On/Off CoD) on its line of eServer computers. Computerized resources are made available on demand in response to actual needs, rather than projected needs. In one aspect, the provision of such flexibility provides a cost efficient solution to accommodate peaks and valleys that occur in any business. Increased loads for seasonal, period end, or special promotions, for example, can be responded to quickly and efficiently. A customer pays for the capacity/resources that it needs, when it is needed. As a result, the cost of computerized resources substantially matches the computerized resources actually being used, and does not include a substantial premium for excess capacity not being used. Of course, in practice, providers may attach some form of a premium to the flexibility provided by on demand resource access. However, even with such a premium, many users will realize a savings.
In one embodiment, users are given access to additional capacity on systems by entering an enablement code provided by a provider, such as IBM, Inc. In one implementation, validation of the enablement code is then performed using enablement data stored on a smart chip onboard the systems. If the enablement code is validated, the user may then request the use of some quantity of resources (e.g., some number of processors). The user may be charged a fee for the usage (based on, for example, the quantity of resources used and the length of time the resources are used).
One problem with on-demand resource access is that once the on-demand feature has been enabled on a given system, additional capacity may be activated from the system console by any authorized operator, resulting in additional (and potentially significant) usage charges for the owner of the system. As a result the owner may want to disable the on-demand feature to prevent operators from incurring additional charges. In addition, the manufacturer/provider (e.g., IBM) may wish to disable the feature if the owner of the system has failed to pay for past usage. Disablement of the on-demand feature is also necessary when the system is sold, from one owner to another, until the new owner has a contract in place for its use.
Disablement could be accomplished by replacing the smart chip that stores the enablement data. However, the solution has significant drawbacks, including the delays inherent in ordering a replacement part, the expense of the part and installation, and customer inconvenience due to powering the system down for hardware replacement and subsequent re-booting (also referred to as initial program load or IPL).
Another alternative is to allow disablement via a screen option. However, this approach would allow any authorized user to disable the on-demand feature, either accidentally or maliciously, thereby potentially depriving the owner of vital server capacity in a critical time.
Therefore, there is a need for a method and system for disabling an on-demand feature on a computer system.
The present invention generally pertains to on-demand access to computerized resources.
One embodiment provides a computer readable storage medium containing a program which, when executed on a processor, performs an operation for validating a disablement code for disabling on-demand resources on a computerized apparatus. The operation may generally include receiving the disablement code comprising encrypted data and validating the disablement code. The validating itself may include generating a first key using system information unique to the computerized apparatus and sending the encrypted data to a secure storage element containing a second key. The secure storage element may be configured to decrypt the encrypted data, to produce decrypted data, using the second key. The validating may further include generating a random value, encrypting the random value using the first key to produce an encrypted random value and sending the encrypted random value to the secure storage element. The secure storage element may be configured to decrypt the encrypted random value, using the decrypted data as a decryption key, to produce a decrypted random value. The validating may further include receiving the decrypted random value from the secure storage element; and comparing the value to the decrypted random value.
Still another embodiment of the invention includes a computer readable storage medium containing a program which, when executed on a processor, performs an operation for validating a disablement code for disabling on-demand resources on a computerized apparatus. The operation may generally include receiving the disablement code comprising encrypted data and validating the disablement code. The validating itself may generally include generating a first key using system information unique to the computerized apparatus and sending the encrypted data to a secure storage element containing a second key. The secure storage element is configured to decrypt the encrypted data, to produce decrypted data, using the second key and further configured to encrypt a value using the decrypted data as an encryption key. The validating may further include receiving the encrypted value from the secure storage element and decrypting the encrypted value using the first key. The operation may further include disabling the on-demand resources if the validating is successful, thereby rendering the disabled on-demand resource unavailable for use by users of the computerized apparatus. Additionally, the disabled on-demand resource is a hardware resource of the computerized apparatus.
Still another embodiment of the invention includes a computerized apparatus having a plurality of resources at least one of which comprises an on-demand resource configured to be requested by a user once enabled and a processor configured to execute a capacity manager. The capacity manager may be configured to receive an enablement code for the on-demand resource, enable the on-demand resource, and receive a disablement code for the on-demand resource. The capacity manager may be further configured to validate the disablement code. For example, the capacity manager may validate the disablement code by performing the steps of generating a first key using system information unique to the computerized apparatus, decrypting the encrypted data using a second key to produce decrypted data, and encrypting a value, using the first key as an encryption key, to produce an encrypted value. The validating may further include decrypting the encrypted value, using the decrypted data as a decryption key, to produce a decrypted value and comparing the value to the decrypted value. The capacity manager may be further configured to disable the on-demand resource upon validating the disablement code, thereby rendering the disabled on-demand resource unavailable for use by users of the computerized apparatus, wherein the disabled on-demand resource is a hardware resource of the computerized apparatus.
So that the manner in which the above recited features, advantages and objects of the present invention are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
The present invention generally pertains to on-demand access to computerized resources (also referred to herein as On/Off Capacity on Demand, or On/Off CoD). Computerized resources are made available to users on demand. For example, on-demand resource access may be made available by inputting and validating an enablement code. The on-demand feature may subsequently be disabled by inputting and validating a disablement code.
It should be noted that while aspects of the invention are described in the context of a business, the invention provides advantages to any user, whether involved in a business or not.
One embodiment of the invention is implemented as a program product for use with a computer system. The program(s) of the program product defines functions of the embodiments (including the methods described herein) and can be contained on a variety of signal-bearing media. Illustrative signal-bearing media include, but are not limited to: (i) information permanently stored on non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive); (ii) alterable information stored on writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive); and (iii) information conveyed to a computer by a communications medium, such as through a computer or telephone network, including wireless communications. The latter embodiment specifically includes information downloaded from the Internet and other networks. Such signal-bearing media, when carrying computer-readable instructions that direct the functions of the present invention, represent embodiments of the present invention.
In general, the routines executed to implement the embodiments of the invention, may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions. The computer program of the present invention typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
Referring now to
The provider computer 102 and the customer computer 104 communicate through a network 106. Illustratively, the network 106 may be any medium through which information may be transferred such as, for example, a local area network (LAN) and a wide area network (WAN) or a telephone network. The network 106 is merely representative of one communications medium. Some aspects of the invention may be facilitated by other communication mediums such as, for example, the U.S. Postal Service. Still other aspects may be practiced in the absence of any communication medium between the provider 102 and the customer 104.
In a particular embodiment, the network 106 is the Internet. As such, the provider computer 102 may be configured with a hypertext transfer protocol (HTTP) server 108 capable of servicing requests from a browser program 110 residing on the customer computer 104. The HTTP server 108 and the browser program 110 provide convenient and well-known software components for establishing a network connection (e.g., a TCP/IP connection) via the network 106, and for receiving information from users on the computer systems 102, 104.
In one embodiment, the provider computer 102 is configured with an enablement code generator 112 and a disablement code generator 113. The code generators 112/113, in one embodiment, are algorithms capable of generating enablement codes 114 and disablement codes 115, respectively. The code generators 112/113 may be invoked by a request received from the customer computer 104 via the network 106. In response to a request, the code generators 112/113 generate their respective codes 114/115, which may be transmitted to the customer computer 104 via the same network connection. Alternatively, the codes 114/115 may be sent via a different network connection, e.g., a subsequent network connection or an altogether different network. In a particular embodiment, the codes 114/115 are transmitted electronically to a client electronic mail application (e.g., Lotus Notes® or Microsoft Outlook®; not shown) residing on the customer computer 104. Lotus Notes is a registered trademark of International Business Machines, Inc., and Microsoft Outlook is a registered trademark of Microsoft, Inc. In yet another alternative, the codes 114/115 are provided to the user (e.g., administrator) of the customer computer 104 via paper mail (i.e., the postal service) or facsimile, for example.
Regardless of the particular medium, the codes 114/115 are preferably unique and configured for use only on one particular machine (e.g., the customer computer 104). Uniqueness may be ensured, for example, using system information 131 of the customer computer 104, including a machine type code and serial number. Uniqueness may further be ensured by using a chip identifier (ID) 133 for a chip on board the customer computer 104. One such chip is represented in
Copies of the system information 117, chip IDs 119 and the unique keys 121 (including the unique key 134 shown resident on the smart chip 130) for each of the plurality of customer computers may be stored in a database 123 accessible by the provider computer 102. It is contemplated that, in one embodiment, the chip IDs 119 and the unique keys 121 are written to respective smart chips during the manufacturing of the systems in which the chips are installed. For security, the unique keys 121 are preferably known only to one entity (e.g., a service provider, which may or may not be the manufacture of the system) and, while capable of being used by the respective smart chips on which they are stored, cannot be read from the smart chips. Generation of the codes 114/115 using the information stored in the database 123 will be described in more detail below.
The codes 114/115 may be input to a capacity manager 120 via a user interface 118 (which may be displayable via the browser 110). Alternatively, the codes 114/115 are input directly by the provider computer 102 via a communication link (e.g., a network or modem connection). In still another embodiment, the codes 114/115 are input to the capacity manager 120 via an application or some other program or routine.
In one embodiment, the capacity manager 120 is at least a component of a Capacity on Demand function provided on machines from International Business Machines, Inc. One such machine is the eServer iSeries® computer. By way of illustration only, the capacity manager 120 and user interface 118 are shown as components of an operating system 122. Examples of the operating system 122 include an IBM OS/400® operating system, an AIX® operating system, a UNIX® operating system, a Microsoft Windows® operating system, and the like. However, the illustrated representation is merely one example of a particular software architecture, and not limiting of the invention. OS/400® and AIX®, are registered trademarks of International Business Machines, Inc., and Microsoft Windows® is a registered trademark of Microsoft, Inc.
In one embodiment, a code validation algorithm 124 is invoked to verify the input codes 114/115. Although a single code validation algorithm is shown, it is contemplated that separate validation algorithms may be employed for the enablement code 114 and disablement code 115. As noted above, the codes 114/115 are preferably specific to a particular machine. Accordingly, the validation algorithm 124 determines whether the code 114/115 is configured for the particular machine for which the capacity manager 120 has responsibility and controls resource access. In this regard, it is contemplated that the capacity manager 120 may have resource access responsibility for a plurality of computers (i.e., a network). More typically, however, the capacity manager 120 manages only the resources of the machine on which it resides. In this case, the validation algorithm 124 determines whether the codes 114/115 are configured for the particular machine on which the capacity manager 120 resides.
In one embodiment, the validation algorithm 124 accesses the validation data 132 stored in the smart chip 130 disposed on the capacity card 129. Embodiments of the validation process are described below.
If an enablement code 114 is validated, the capacity manager 120 then enables selected resources 128, e.g., according to data contained in the enablement code 114. In particular, a resource allocator 126 (a function of the capacity manager 120) is invoked to enable, or “unlock”, the selected resources. Enabling the resources 128 may be implemented by the provision of capacity-on-demand control hardware, illustratively in the form of the capacity-on-demand cards 129. Each card 129 may be specific to a particular on-demand resource, e.g., processors, memory, etc. Alternatively, a single card may be used to enable multiple resource types. In one aspect, the capacity-on-demand card 129 also includes at least one smart chip 130 used to store capacity-on-demand information in a secure (i.e., not accessible by the user) and nonvolatile manner. In one embodiment, the information stored in the capacity-on-demand cards 129 includes resource usage information and billing information (not shown). As such, the card 129 provides a master copy of such information that may be used to recover from a power failure situation or other catastrophic failure.
In one embodiment, “enabling” or “unlocking” resources by the resource allocator 126 operates to place the resources into service (i.e., to perform their designated functions such as processing or storing, depending upon the resource). In another embodiment, enabling the resources does not place the resources into service, but merely makes the resources available for request by a user. That is, enabling the resources unlocks the resources so that a user can assign them to a task, but does not automatically give control of the resources to the operating system(s) on the computer.
At any time after being enabled, resources may be disabled by inputting and verifying a disablement code 115. Embodiments of the verification process are described in more detail below.
Generally, the resources enabled according to the enablement code 114 and disabled according to the disablement code 115 may be any variety of resources in a computerized apparatus. Such computerized apparatuses include any type of computer, computer system or other programmable electronic device, including a client computer, a server computer, a portable computer, a personal digital assistant (PDA), an embedded controller, a PC-based server, a minicomputer, a midrange computer, a mainframe computer, and other computers adapted to support the methods, apparatus, and article of manufacture of the invention. A computer may include any electronic device having at least one processor, and may be a standalone device or part of a network. Suitable resources include, without limitations, memory size, storage size, a number of processing units, processor speed, etc.
Regarding generation of the codes 114/115, it is contemplated that an encrypted message-authentication-code (MAC) may be used. Accordingly, the disablement code generator 113 is configured with a MAC generation algorithm 125 and encryption algorithm 127. In one embodiment, the enablement code generator 112 employs the same algorithms in the generation of enablement codes. Alternatively, the enablement code generator 112 employs different algorithms.
Referring now to
Other data that may be included with the enablement code 114 (and hence also with the disablement code 115) is described in commonly owned U.S. patent application Ser. No. 10/406,652, entitled “METHOD TO PROVIDE ON-DEMAND RESOURCE ACCESS”, herein incorporated by reference in its entirety. However, it is understood that the foregoing illustrative inputs to the MAC generation algorithm 125 are merely illustrative of data that may be included with the enablement and disablement code 114/115. Persons skilled in the art will recognize other embodiments that include more or less data. It is also contemplated that, in one embodiment, an enablement code may not be needed because, for example, systems may be shipped to customers already enabled. As such, the enablement code 114 is being described only for purposes of illustrating one embodiment and is not limiting of the invention.
In any case, the output of the MAC generator algorithm 125 is the message authentication code (MAC) 202. The MAC 202 is then input to the encryption algorithm 127, which outputs an encrypted MAC 204. To encrypt the MAC 202, the encryption algorithm 127 uses a unique key 206 (accessed from the database 123 of unique keys 121, shown in
Although reference is made to creating and encrypting the message authentication code, the particular algorithms and input used to generate encrypted information is not limiting of the invention. Suitable examples of suitable technology that may be used include, without limitations, checksums, Digital Signature Standard (Federal Information Processing Standard 186-2), Elliptic Curve Crypto systems (ECC) and Data Encryption Standard-Message Authentication Code (DES-MAC) and any other technology, known or unknown.
The encrypted MAC 204 may then be used by the disablement code generator 113 to produce a disablement code 115. One embodiment of a disablement code 115 is shown in
In one embodiment, a checksum is calculated over the disablement code 115 to detect errors in subsequent transmission and keying.
Referring now to
Referring now to
The code validation algorithm 124 then sends to the smart chip 130 the encrypted MAC 204 that was included with the disablement code (step 506). Upon receipt, the smart chip 130 decrypts the MAC 204 using its unique key 134 (step 508), which is presumably the same key as was used to encrypt the MAC 204. This decryption yields a decrypted MAC, referred to herein as the smart chip MAC 514. If the keys are not the same, the decryption will be unsuccessful (step 510). An unsuccessful decryption may result in the sequence 414 returning an error (step 512) if parity checking is implemented and the parity is wrong. Alternatively, the validation software determines that the decryption was not successful by comparing or using the keys (i.e., the MAC 204 and the smart chip MAC 514) and determining that they are different. Persons skilled in the art will recognize other embodiments. In any case, if the keys are the same, the decryption is successful and yields the smart chip MAC 514, which will be the same as the MAC 202 generated by the MAC generator algorithm 125 in
To verify that both are using the same MAC, the code validation algorithm 124 and the smart chip 130 exchange encrypted data, each using its own copy of the MAC as encryption key. It is noted that any variety of exchanges is contemplated and the following is merely illustrative. In one embodiment, the exchange is initiated by the code validation algorithm 124, which generates a random value (step 513), encrypts the value using the validation MAC 504 as a key (step 515), and then sends the encrypted value to the smart chip 130 (step 516). Upon receipt, the smart chip 130 decrypts the random value using the smart chip MAC 514 as decryption key (step 518). The smart chip 130 then sends the decrypted random value to the code validation program 124 (step 520). Upon receipt, the code validation algorithm 124 compares the received decrypted random value to the original random value (step 522). If the values are the same (step 524), it is confirmed that the disablement code 115 has been input to the appropriate system, with respect to which the disablement code 115 is unique. If the values are the same, an indication of the success may be returned by the sequence 414 (step 528), and the code validation algorithm 124 disables the On/Off Capacity feature (steps 416 and 418 of
Accordingly, embodiments for disabling a capacity on-demand feature are provided. Unlike inferior disablement approaches, the present invention does not require powering down and subsequently powering up a system. Further, the disablement codes provide a convenient, non-intrusive means of disabling the on-demand feature since the disablement codes may be disseminated to customers via any variety of communication means. In addition, at least one embodiment of the disablement codes is completely compatible with existing enablement code technologies.
However, although embodiments of the invention may achieve advantages over other possible solutions, whether or not a particular advantage is achieved by a given embodiment is not limiting of the invention.
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
This application is a continuation of U.S. patent application Ser. No. 10/625,955, filed Jul. 24, 2003 now U.S. Pat. No. 7,493,488, which is herein incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5579222 | Bains et al. | Nov 1996 | A |
5604528 | Edwards et al. | Feb 1997 | A |
5717604 | Wiggins | Feb 1998 | A |
5745879 | Wyman | Apr 1998 | A |
5754879 | Johnston | May 1998 | A |
5949876 | Ginter et al. | Sep 1999 | A |
5953515 | Coteus et al. | Sep 1999 | A |
5956505 | Manduley | Sep 1999 | A |
6012032 | Donovan et al. | Jan 2000 | A |
6058423 | Factor | May 2000 | A |
6061504 | Tzelnic et al. | May 2000 | A |
6061732 | Korst et al. | May 2000 | A |
6081892 | Lomas | Jun 2000 | A |
6086618 | Al-Hilali et al. | Jul 2000 | A |
6125457 | Crisan et al. | Sep 2000 | A |
6134659 | Sprong et al. | Oct 2000 | A |
6161139 | Win et al. | Dec 2000 | A |
6230200 | Forecast et al. | May 2001 | B1 |
6243468 | Pearce et al. | Jun 2001 | B1 |
6301616 | Pal et al. | Oct 2001 | B1 |
6317828 | Nunn | Nov 2001 | B1 |
6374402 | Schmeidler et al. | Apr 2002 | B1 |
6385651 | Dancs et al. | May 2002 | B2 |
6389543 | Dawson et al. | May 2002 | B1 |
6460082 | Lumelsky et al. | Oct 2002 | B1 |
6463537 | Tello | Oct 2002 | B1 |
6578199 | Tsou et al. | Jun 2003 | B1 |
6625750 | Duso et al. | Sep 2003 | B1 |
6725379 | Dailey | Apr 2004 | B1 |
6754822 | Zhao | Jun 2004 | B1 |
6912512 | Miyazaki et al. | Jun 2005 | B2 |
6931640 | Asano et al. | Aug 2005 | B2 |
6970948 | Brown et al. | Nov 2005 | B2 |
6975204 | Silver | Dec 2005 | B1 |
6993654 | Seki et al. | Jan 2006 | B2 |
7013296 | Yemini et al. | Mar 2006 | B1 |
7017188 | Schmeidler et al. | Mar 2006 | B1 |
7020161 | Eberle et al. | Mar 2006 | B1 |
7020704 | Lipscomb et al. | Mar 2006 | B1 |
7032241 | Venkatachary et al. | Apr 2006 | B1 |
7039784 | Chen et al. | May 2006 | B1 |
7051366 | LaMacchia et al. | May 2006 | B1 |
7055040 | Klemba et al. | May 2006 | B2 |
7065504 | Sakuma et al. | Jun 2006 | B2 |
7073073 | Nonaka et al. | Jul 2006 | B1 |
7085967 | Elfering et al. | Aug 2006 | B2 |
7124098 | Hopson et al. | Oct 2006 | B2 |
7136800 | Vega | Nov 2006 | B1 |
7146496 | Circenis et al. | Dec 2006 | B2 |
7149311 | MacKenzie et al. | Dec 2006 | B2 |
7155735 | Ngo et al. | Dec 2006 | B1 |
7185086 | Bodapati et al. | Feb 2007 | B2 |
7231369 | Hirabayashi | Jun 2007 | B2 |
7269160 | Friedman et al. | Sep 2007 | B1 |
7322034 | Crawford, Jr. et al. | Jan 2008 | B2 |
7324450 | Oliver | Jan 2008 | B2 |
7447764 | Guillemin | Nov 2008 | B2 |
7493488 | Lewis et al. | Feb 2009 | B2 |
7818792 | Shamsaasef et al. | Oct 2010 | B2 |
20010025249 | Tokunaga | Sep 2001 | A1 |
20010044782 | Hughes et al. | Nov 2001 | A1 |
20020016842 | Eki | Feb 2002 | A1 |
20020023181 | Brown et al. | Feb 2002 | A1 |
20020095573 | O'Brien | Jul 2002 | A1 |
20020124168 | Mccown et al. | Sep 2002 | A1 |
20020149468 | Carrender et al. | Oct 2002 | A1 |
20020156824 | Armstrong et al. | Oct 2002 | A1 |
20020166117 | Abrams et al. | Nov 2002 | A1 |
20020169725 | Eng | Nov 2002 | A1 |
20020199182 | Whitehead | Dec 2002 | A1 |
20030018870 | Abboud et al. | Jan 2003 | A1 |
20030028653 | New et al. | Feb 2003 | A1 |
20030036918 | Pintsov | Feb 2003 | A1 |
20030040962 | Lewis | Feb 2003 | A1 |
20030093528 | Rolia | May 2003 | A1 |
20030135580 | Camble et al. | Jul 2003 | A1 |
20030149880 | Shamsaasef et al. | Aug 2003 | A1 |
20030172035 | Cronce et al. | Sep 2003 | A1 |
20030217011 | Peinado et al. | Nov 2003 | A1 |
20030226029 | Porter | Dec 2003 | A1 |
20040010544 | Slater et al. | Jan 2004 | A1 |
20040019789 | Buer | Jan 2004 | A1 |
20040024688 | Bi et al. | Feb 2004 | A1 |
20040054908 | Circenis et al. | Mar 2004 | A1 |
20040064268 | Gillenwater et al. | Apr 2004 | A1 |
20040073816 | Hansen | Apr 2004 | A1 |
20040078454 | Abrahams et al. | Apr 2004 | A1 |
20040088412 | John et al. | May 2004 | A1 |
20040103064 | Howard et al. | May 2004 | A1 |
20040107167 | Maari | Jun 2004 | A1 |
20040111308 | Yakov | Jun 2004 | A1 |
20040128507 | McKenney et al. | Jul 2004 | A1 |
20040148394 | Circenis et al. | Jul 2004 | A1 |
20040148511 | Circenis et al. | Jul 2004 | A1 |
20040163019 | Elfering et al. | Aug 2004 | A1 |
20040163135 | Giaccherini et al. | Aug 2004 | A1 |
20040165211 | Herrmann et al. | Aug 2004 | A1 |
20040199473 | Birkestrand et al. | Oct 2004 | A1 |
20040199632 | Romero et al. | Oct 2004 | A1 |
20040215569 | Agha et al. | Oct 2004 | A1 |
20040236852 | Birkestrand et al. | Nov 2004 | A1 |
20040255048 | Lev Ran et al. | Dec 2004 | A1 |
20040267944 | Britt | Dec 2004 | A1 |
20050010502 | Birkestrand et al. | Jan 2005 | A1 |
20050015343 | Nagai et al. | Jan 2005 | A1 |
20050044219 | Lewis et al. | Feb 2005 | A1 |
20050049973 | Read et al. | Mar 2005 | A1 |
20050066032 | Birkestrand et al. | Mar 2005 | A1 |
20050246705 | Etelson et al. | Nov 2005 | A1 |
20050268063 | Diao et al. | Dec 2005 | A1 |
20060100962 | Wooldridge et al. | May 2006 | A1 |
20060190615 | Panwar et al. | Aug 2006 | A1 |
20060294238 | Naik et al. | Dec 2006 | A1 |
Number | Date | Country |
---|---|---|
2002024192 | Jan 1990 | JP |
439031 | Jun 2007 | TW |
WO-0286698 | Oct 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20090119508 A1 | May 2009 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10625955 | Jul 2003 | US |
Child | 12350054 | US |