Method and apparatus for implementing a sleep proxy for services on a network
Claim Score by NHIP
Abstract
One embodiment of the present invention provides a system for implementing a sleep proxy. The system starts by receiving a request at the sleep proxy for information pertaining to a service provided by a device. In response to this request, the system determines if the device is a member of a list of devices for which the sleep proxy takes action. If so, the system determines if the sleep proxy can answer the request. If so, the sleep proxy sends a response to the request on behalf of the device. In a variation on this embodiment, if the system cannot answer the request on behalf of the device, the system sends a wakeup packet to the device, wherein the wakeup packet causes the device to exit a power-saving mode so that the device can respond to the request directly.

Term
Term ended
Projected expiry passed 30 September 2023, 3 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
27 claims: 3 independent, 24 dependent
- 1Broadest claimClaim Score 88, very broad(NHIP)A method for implementing a sleep proxy, comprising:receiving a request at the sleep proxy for information pertaining to a service provided by a device;determining if the device is a device for which the sleep proxy answers;if so, determining if the request is a request for which the sleep proxy can answer;and if so, sending a response to the request on behalf of the device.
- 10A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for implementing a sleep proxy, the method comprising:receiving a request at the sleep proxy for information pertaining to a service provided by a device;determining if the device is a device for which the sleep proxy answers;if so, determining if the request is a request for which the sleep proxy can answer;and if so, sending a response to the request on behalf of the device.
- 19An apparatus that implements a sleep proxy, comprising:a receiving mechanism configured to receive a request at the sleep proxy for information pertaining to a service provided by a device;a determination mechanism configured to determine if the device is a device for which the sleep proxy answers;wherein the determination mechanism is additionally configured to determine if the request is a request which the sleep proxy can answer;and a response mechanism configured to send a response to the request on behalf of the device if the device is a device which the sleep proxy answers for and the request is a request which the sleep proxy can answer.
Independent claims3
32 paragraphs in 5 sections, as filed
RELATED APPLICATION
0001The present patent is a continuation of pending U.S. patent application Ser. No. 11/581,866, filed on 16 Oct. 2006, (Attorney Docket No. APL-P3152-C2), which is itself a continuation of U.S. Pat. No. 7,246,225 (application Ser. No. 11/483,750, filed on 10 Jul. 2006) (Attorney Docket No. APL-P3152-C1), which itself is a continuation of U.S. Pat. No. 7,107,442 (application Ser. No. 10/676,573, filed on 30 Sep. 2003) (Attorney Docket No. APL-P3152), which claims priority to U.S. Provisional Patent Application No. 60/496,842, filed on 20 Aug. 2003 (Attorney Docket No. APL-P3152PSP). The present application claims priority under 35 U.S.C. § 120 to the above-listed U.S. patent Applications and under 35 U.S.C. § 119 to the above-listed U.S. Provisional Patent Application.
BACKGROUND
00021. Field of the Invention
0003The present invention relates to computer networks. More specifically, the present invention relates to a method and an apparatus for implementing a sleep proxy for services on a network.
00042. Related Art
0005In recent years, a large number of devices, such as printers, have been brought to the marketplace bearing various logos indicating that the device meets some sort of energy saving standard. At the same time, an increasing number of these devices are being attached to computer networks to allow workgroups to utilize their services. In order for these devices to be able to perform their services on the network, they need to be able to respond to requests on the network. However, many of these devices enter a power-saving mode when they have not been used for a specified amount of time. In order to restore the device to a normal operating mode, a packet can be sent to the device that contains a specific bit sequence that will “wake up” the device. This packet is commonly referred to as a “magic packet” or “wakeup packet” and the technology as a whole is referred to as “wake-on-LAN.”
0006Power-saving modes can become a problem because the device typically will not respond to a request when it is in power-saving mode, and clients typically do not know the bit sequence of the magic packet that will cause the device to turn on. Hence, if the device is in a power-saving mode, it will not answer a request for a service provided by the device on the network, and therefore will appear offline to clients on the network.
0007In many cases, the user must manually walk over to the device and press a button to wake it up, or they simply may not be able to use the device at all. Moreover, a user may not even know of the existence or availability of a device if it is in power-saving mode. When devices are in power-saving mode, they do not broadcast their services on the network, and therefore may not show up in a list of available services. This is especially true if the device has been in power-saving mode for an extended period of time.
0008Hence, what is needed is a method and an apparatus for allowing the device to enter into a power-saving mode while still maintaining visibility and availability on the network.
SUMMARY
0009One embodiment of the present invention provides a system for implementing a sleep proxy. The system starts by receiving a request at the sleep proxy for information pertaining to a service provided by a device. In response to this request, the system determines if the device is a member of a list of devices for which the sleep proxy takes action. If so, the system determines if the sleep proxy can answer the request. If so, the sleep proxy sends a response to the request on behalf of the device.
0010In a variation on this embodiment, if the system cannot answer the request on behalf of the device, the system sends a wakeup packet to the device, wherein the wakeup packet causes the device to exit a power-saving mode so that the device can respond to the request directly.
0011In a variation on this embodiment, prior to receiving the request, the system receives a registration from the device, wherein the registration contains sufficient information to allow the sleep proxy to generate a wakeup packet that causes the device to wake up, and the list of requests for which the sleep proxy can answer. The system then adds the device to the list of devices for which the sleep proxy answers.
0012In a further variation, the registration additionally contains a lease expiration time, wherein upon reaching the lease expiration time, the sleep proxy cancels the device registration.
0013In yet a further variation, an internal timer in the device wakes up the device so that the device can renew its registration with the sleep proxy before the registration expires.
0014In a variation on this embodiment, the system receives a notification from the device that the device is entering a power-saving state. In response to this notification, the system configures the sleep proxy to answer for the device.
0015In a variation on this embodiment, the system receives a notification from the device that the device has exited a power-saving state. In response to this notification, the system configures the sleep proxy not to answer for the device.
0016In a variation on this embodiment, for fault-tolerance purposes, the system contains a second sleep proxy that mirrors the functionality of the sleep proxy.
0017In a further variation, the system waits a random period of time before answering for the device. This allows for duplicate answer suppression for multiple sleep proxies.
BRIEF DESCRIPTION OF THE FIGURES
0018<figref idref="DRAWINGS">FIG. 1</figref> illustrates a computer network in accordance with an embodiment of the present invention.
0019<figref idref="DRAWINGS">FIG. 2</figref> presents a flowchart illustrating the process of a sleep proxy in accordance with an embodiment of the present invention.
DETAILED DESCRIPTION
0020The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
0021The data structures and code described in this detailed description are typically stored on a computer readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. This includes, but is not limited to, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs) and DVDs (digital versatile discs or digital video discs), and computer instruction signals embodied in a transmission medium (with or without a carrier wave upon which the signals are modulated). For example, the transmission medium may include a communications network, such as the Internet.
0000Computer Network
0022<figref idref="DRAWINGS">FIG. 1</figref> illustrates a computer network <b>100</b> in accordance with an embodiment of the present invention. Network <b>100</b> can generally include any type of wire or wireless communication channel capable of coupling together computing nodes. This includes, but is not limited to, a local area network, a wide area network, or a combination of networks. In one embodiment of the present invention, network <b>100</b> includes the Internet.
0023Network <b>100</b> includes computer systems <b>102</b> and <b>104</b>, printers <b>106</b> and <b>106</b>, and sleep proxy <b>110</b>. Computer systems <b>102</b> and <b>104</b> can generally include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a personal organizer, a device controller, and a computational engine within an appliance.
0024In one embodiment of the present invention, the devices on network <b>100</b> adhere to a plug-and-play protocol, such as Apple Computer, Inc.'s Rendezvous technology. During operation, printers <b>106</b> and <b>108</b> self-configure to network <b>100</b> and advertise their services via broadcast messages to all nodes on network <b>100</b>.
0025Sleep Proxy <b>110</b> can be included in any type of device on network <b>100</b>. Preferably, sleep proxy <b>110</b> should be a device that is always connected to the network and is always in a full-power state. Some exemplary locations for sleep proxy <b>110</b> are within hubs, switches, and wireless access points, since such devices are usually always connected and always in a full-power state.
0000Sleep Proxy
0026<figref idref="DRAWINGS">FIG. 2</figref> presents a flowchart illustrating the operation of a sleep proxy <b>110</b> in accordance with an embodiment of the present invention. The system starts when sleep proxy <b>110</b> receives a registration request from a device on network <b>100</b>, such as printer <b>108</b> (step <b>202</b>). For example, printer <b>108</b> can send sleep proxy <b>110</b> a registration request specifying information pertaining to services that it provides, as well as which of that information that sleep proxy <b>110</b> should answer for. In particular, information that sleep proxy <b>110</b> might answer for printer <b>108</b> can include host name, host address, port number, current status, and types of services available. All of these examples are situations where a client, such as computer system <b>102</b>, is requesting information only and is not requesting the device to perform an action besides providing the basic information. By answering for printer <b>108</b>, sleep proxy <b>110</b> allows printer <b>108</b> to continue to be listed as an available resource on the network while allowing printer <b>108</b> to stay in a power-saving state. Printer <b>108</b> also sends sleep proxy <b>110</b> sufficient information to allow it to generate the magic packet that brings printer <b>108</b> out of a power-saving state. Note that this last step of sending sufficient information to allow the sleep proxy to generate the magic packet can be performed as printer <b>108</b> enters a power-saving state, described below.
0027Next, sleep proxy <b>110</b> receives a notification that printer <b>108</b> is entering a power-saving state (step <b>204</b>). Note that this step may not be necessary as sleep proxy <b>110</b> can be configured to answer for printer <b>108</b> if it does not detect an immediate answer from printer <b>108</b>. Upon receiving a request for information pertaining to a service provided by a device on network <b>100</b> (step <b>206</b>), sleep proxy <b>110</b> determines if this is a request it can answer for the device (step <b>208</b>). If so, sleep proxy <b>110</b> responds to the request as if it was the device that it is answering for (step <b>210</b>). If not, sleep proxy <b>110</b> sends the magic packet to the device to bring the device out of a power-saving state (step <b>212</b>). In this instance, it is not necessary for sleep proxy <b>110</b> to answer for the device because the requester, in accordance with customary network protocol design will retry the request several times before giving up. Sleep proxy <b>110</b> can also be configured to buffer the request for the device and to pass the request on to the device once the device has returned to a full power state. Upon exiting the power-saving mode, the device broadcasts a message to sleep proxy <b>110</b> on network <b>100</b> instructing sleep proxy <b>110</b> to cease answering for the device.
0028In some cases, it is beneficial for more than one sleep proxy to be operating on the same network to provide fault-tolerance. If sleep proxy <b>110</b> answers for printer <b>106</b>, then a secondary sleep proxy will ignore the request. In cases where both sleep proxy <b>110</b> and a secondary sleep proxy answer for printer <b>106</b>, the answer from the second sleep proxy can either be ignored, or can simply cause other devices on network <b>100</b> to update their local caches a second time. In one embodiment of the present invention, the sleep proxy waits for a random amount of time before answering a request in order to lessen the possibility of a duplicate answer.
0029In an example for this embodiment, multiple sleep proxies exist on a network, each having a registration for a specific printer that is in sleep mode. When a request for information pertaining to a service provided by that printer comes over the network, and the request is of the type that the sleep proxies are required to answer for the printer, each sleep proxy initiates a response to the request by waiting a random amount of time. At the point in time when the first sleep proxy broadcasts a reply to the request on the network, all remaining sleep proxies on the network will receive the response to the request and cancel their own pending response, thus saving network bandwidth.
0030The foregoing descriptions of embodiments of the present invention have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.
Contents5
4 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2012117404A1 | Cited by | United States of America | Pre-grant |
| US11076189B2 | Cited by | United States of America | Applicant |
| US11057408B2 | Cited by | United States of America | Applicant |
| US10116676B2 | Cited by | United States of America | Applicant |
| US9582062B2 | Cited by | United States of America | Search report |
| US2014146832A1 | Cited by | United States of America | Pre-grant |
| US11012749B2 | Cited by | United States of America | Applicant |
| US10044598B2 | Cited by | United States of America | Search report |
| US2012331323A1 | Cited by | United States of America | Pre-grant |
| US10313755B2 | Cited by | United States of America | Applicant |
| US9596190B2 | Cited by | United States of America | Search report |
| US11659224B2 | Cited by | United States of America | Applicant |
| EP3669726A1 | Cited by | European Patent Office (EPO) | Applicant |
| US11606380B2 | Cited by | United States of America | Applicant |
| US11109090B2 | Cited by | United States of America | Applicant |
| US11493978B2 | Cited by | United States of America | Applicant |
| US9021285B2 | Cited by | United States of America | Search report |
| US2016072729A1 | Cited by | United States of America | Pre-grant |
| WO2011159985A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US8966063B2 | Cited by | United States of America | Search report |
| US10666546B2 | Cited by | United States of America | Search report |
| US10250932B2 | Cited by | United States of America | Applicant |
| US2018331939A1 | Cited by | United States of America | Search report |
| US8626893B2 | Cited by | United States of America | Applicant |
| US10517040B2 | Cited by | United States of America | Applicant |
| US2002083172A1 | Cites | United States of America | Pre-grant |
| US2005235360A1 | Cites | United States of America | Pre-grant |
| US4661902A | Cites | United States of America | Pre-grant |
| US4689786A | Cites | United States of America | Pre-grant |
| US5150646A | Cites | United States of America | Pre-grant |
| US5282270A | Cites | United States of America | Pre-grant |
| US5388213A | Cites | United States of America | Pre-grant |
| US5745699A | Cites | United States of America | Pre-grant |
| US5835719A | Cites | United States of America | Pre-grant |
| US5884322A | Cites | United States of America | Pre-grant |
| US5915119A | Cites | United States of America | Pre-grant |
| US6101608A | Cites | United States of America | Pre-grant |
| US6366957B1 | Cites | United States of America | Pre-grant |
| US6445678B1 | Cites | United States of America | Pre-grant |
| US6694360B1 | Cites | United States of America | Pre-grant |
| US6754844B1 | Cites | United States of America | Pre-grant |
| US6990515B2 | Cites | United States of America | Pre-grant |
| US6993670B2 | Cites | United States of America | Pre-grant |
| US7107442B2 | Cites | United States of America | Pre-grant |
| US7246225B2 | Cites | United States of America | Pre-grant |
| US7330986B2 | Cites | United States of America | Pre-grant |
24 members in 9 offices
Priority claims18
| Document | Office | Kind | Date |
|---|---|---|---|
| 49684203 | United States of America | P | |
| 49684203 | United States of America | P | |
| 67657303 | United States of America | A | |
| 67657303 | United States of America | A | |
| 48375006 | United States of America | A | |
| 48375006 | United States of America | A | |
| 58186606 | United States of America | A | |
| 58186606 | United States of America | A | |
| 95901507 | United States of America | A | |
| 10676573 | – | – | – |
| 11483750 | – | – | – |
| 11581866 | – | – | – |
| 60496842 | – | – | – |
| US20030496842P | – | – | – |
| US20030676573 | – | – | – |
| US20060483750 | – | – | – |
| US20060581866 | – | – | – |
| US20070959015 | – | – | – |
Members24
| Document | Office | Kind | |
|---|---|---|---|
| US2005044430A1 | United States of America | A1 | |
| AU2004302447A1 | Australia | A1 | |
| CA2530715A1 | Canada | A1 | |
| WO2005020505A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP1656763A1 | European Patent Office (EPO) | A1 | |
| HK1085068A1 | Hong Kong, China | A1 | |
| CN1823495A | China | A | |
| US7107442B2 | United States of America | B2 | |
| US2006253720A1 | United States of America | A1 | |
| US2007038877A1 | United States of America | A1 | |
| US7246225B2 | United States of America | B2 | |
| EP1656763B1 | European Patent Office (EPO) | B1 | |
| AT381169T | Austria | T | |
| ATE381169T1 | Austria | T1 | |
| DE602004010677D1 | Germany | D1 | |
| US7330986B2 | United States of America | B2 | |
| AU2004302447B2 | Australia | B2 | |
| US2008098241A1 | United States of America | A1 | |
| DE602004010677T2 | Germany | T2 | |
| CN100459504C | China | C | |
| CA2530715C | Canada | C | |
| US7757108B2 | United States of America | B2 | |
| US2010235668A1 | United States of America | A1 | |
| US8364987B2 | United States of America | B2 |
38 transactions on the USPTO file
Allowed after 3 non-final rejections.
- Non-final rejections
- 3
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Examiner's AmendmentMEX.A | MEX.A | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Paralegal or electronic terminal disclaimer approvedP574 | P574 | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Terminal Disclaimer FiledDIST | DIST | |
| Response after Non-Final ActionA... | A... | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Sent to Classification ContractorPGPC | PGPC | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
5 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP |
Numbers
- Publication
- 20080098241
- Publication, DOCDB
- 2008098241
- Publication, EPODOC
- US2008098241
- Application
- 11959015
- Application, DOCDB
- 95901507
- Application, EPODOC
- US20070959015
Titles
- English
- METHOD AND APPARATUS FOR IMPLEMENTING A SLEEP PROXY FOR SERVICES ON A NETWORK
Patent term adjustment
- Applicant delay
- −3 days
- Net adjustment
- 0 days
Classification
- CPC, 10
- G06F1/3209
- G06F1/3215
- G06F1/3284
- H04L12/12
- H04L67/288
- Y02D10/00
- Y02D30/00
- Y02D30/50
- H04L67/59
- H04L67/56
- IPC, 3
- G06F1 26
- G06F1 32
- H04L12 12
- USPC, 1
- 713300000