![]() METHOD IMPLEMENTED BY A COMPUTING DEVICE
专利摘要:
method implemented by a computing device and computer-readable storage medium. activation pattern management techniques are described. in one or more implementations, network traffic (204) received by a network interface device (112) from a computing device (102) is monitored and a traffic pattern (202) is recognized in the network traffic (204 ) monitored. an application computing device (102) is identified that corresponds to the recognized traffic pattern (202) and responsive to this identification, at least a portion of the identified application is activated. 公开号:BR112014005354B1 申请号:R112014005354-5 申请日:2011-10-10 公开日:2021-07-13 发明作者:David G. Thaler;Kamalavasan Srinivasan;Andrew J. Ritz;Srinivas Raghu Gatta;Osman N. Ertugay;Poornananda R. Gaddehosur;Dmitry A. Anipko 申请人:Microsoft Technology Licensing, Llc; IPC主号:
专利说明:
FUNDAMENTALS [0001] Users have access to an ever-increasing variety of computing devices that can be configured for network use. For example, users can interact with a desktop computer with a desktop computer, a mobile phone, a tablet computer, and so on to interact over wired or wireless networks. [0002] The conventional techniques that were employed to access these networks, however, were often inefficient and therefore could consume a significant amount of resources, including power, processing, and network resources. Consequently, these conventional techniques could limit the functionality available to a user of the device. SUMMARY [0003] Activation pattern management techniques are described. In one or more implementations, network traffic received by a network interface device from a computing device is monitored and a traffic pattern is recognized in the monitored network traffic. An application of the computing device is identified that matches the recognized traffic pattern and responsive to this identification, at least a portion of the identified application is activated. [0004] In one or more implementations, the traffic pattern is recorded as corresponding to an application configured to run on the computing device. Responsive to traffic pattern recognition in network traffic while the application is in a suspended state, a transition of at least a portion of the application is triggered from the suspended state to an active state. [0005] In one or more implementations, one or more computer-readable storage media comprises instructions stored therein that, responsive to execution by a computing device, cause the computing device to implement an operating system configured to support a technique to activate at least a portion of a suspended application in response to identifying an incoming packet received through a network interface device of the computing device. [0006] An operating system management of network interface devices is also described. In one or more implementations, a determination is made by an operating system that the network traffic associated with one or more applications of the computing device has completed. Responsive to the determination, a network interface device is transitioned to a mode to reduce the power consumption of the network interface device by the operating system. [0007] In one or more implementations, a network interface device is made available to one or more computing device applications by an operating system when the network interface device is in a high power mode. The network interface device is made unavailable to the one or more applications of the computing device by the operating system when the network interface device is in a low power mode. [0008] In one or more implementations, one or more computer-readable storage media comprises instructions stored therein that, responsive to execution by a computing device, cause the computing device to implement an operating system configured to support a technique of restricted access by one or more applications from the computing device to a network interface device that is placed in a mode to reduce power consumption, the network interface device configured to wake from the mode in response to receiving a notification input. [0009] Keeping alive management techniques are also described. In one or more implementations, a keep alive interval is calculated by a computing device operating system. The keep alive interval is used to maintain one or more notification channels between one or more applications on the computing device and a network. [0010] In one or more implementations, a determination is made for each of a plurality of applications executable on the computing device of one or more specified server timeout intervals to maintain a notification channel with a respective endpoint through a network. A keep alive interval is calculated from one or more server timeout intervals for each of the plurality of applications. The keep alive interval is used to enable a network interface device as specified to keep notification channels. [0011] In one or more implementations, one or more computer readable storage media comprises computer executable instructions which, responsive to execution by a computing device cause the computing device to implement an operating system configured to utilize a range of keep alive to keep notification channels between a plurality of applications that are executable on the computing device and one or more respective endpoints across a network, the keep alive interval calculated based on one or more timeout intervals of network of one or more intermediary network devices and one or more server timeouts of respective endpoints with which the one or more applications communicate over the network. [0012] This Summary is provided to introduce a selection of concepts in a simplified form which are further described below in the Detailed Description. This Summary is not intended to identify the key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS [0013] The detailed description is described with reference to the accompanying figures. In figures, the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and figures may indicate similar or identical items. [0014] FIGURE 1 is an illustration of an environment in an exemplary implementation that is operable to employ a network intermediary module to manage the network communication of one or more applications of a computing device. [0015] FIGURE 2 is an illustration of a system in an exemplary implementation showing the network intermediary module of FIGURE 1 in greater detail as employing an activation pattern manager module. [0016] FIGURE 3 is a flowchart that presents a procedure in an exemplary implementation in which recognition of a traffic pattern is used to transition at least a portion of an application from a suspended state to an active state. [0017] FIGURE 4 is a flowchart that presents another procedure in an exemplary implementation in which the recognition of a traffic pattern is used to activate at least part of an application. [0018] FIGURE 5 is an illustration of a system in an exemplary implementation showing the network intermediary module of FIGURE 1 in greater detail as employing a network device manager module. [0019] FIGURE 6 is an illustration of another system in an exemplary implementation that shows an exemplary operation of a network device manager module. [0020] FIGURE 7 presents an exemplary implementation that shows a silent transition from network interface device. [0021] FIGURE 8 presents an exemplary implementation that shows a network interface device active transition. [0022] FIGURE 9 presents an exemplary implementation that shows a system sleep transition. [0023] FIGURE 10 presents an exemplary implementation that shows a transition from restarting system. [0024] FIGURE 11 is a flowchart that presents a procedure in an exemplary implementation in which a determination is made that network traffic has completed and a network interface device is transitioned to a low power mode by an operating system. [0025] FIGURE 12 is a flowchart that presents a procedure in an exemplary implementation in which a network interface device is made unavailable to applications during a low-power mode. [0026] FIGURE 13 is an illustration of a system in an exemplary implementation showing the network intermediary module of FIGURE 1 in greater detail as employing a keep alive manager module. [0027] FIGURE 14 is an illustration of a system in an exemplary implementation showing an exemplary implementation of calculating and adjusting a keep alive interval of FIGURE 13. [0028] FIGURE 15 presents a procedure in an exemplary implementation in which a keep alive interval is calculated and used to keep one or more notification channels. [0029] FIGURE 16 presents a procedure in an exemplary implementation in which a keep alive interval is calculated for keep alive communications in batch applications. [0030] FIGURES 17 and 18 present systems that show examples of implementation of a network connectivity intermediary of FIGURE 1. [0031] FIGURE 19 illustrates an exemplary system including the computing device as described with reference to FIGURE 1. [0032] FIGURE 20 illustrates various components of an exemplary device that may be implemented as any type of computing device as described with reference to FIGURES 1, 2, 5-10, 13,14, and 17-19 for implementing the modalities of the techniques herein described. DETAILED DESCRIPTION OF THE OVERVIEW [0033] Networked applications typically involve an ability to maintain a connection that has operated for a long time in order to stay "up to date". However, under conventional techniques this can come at the cost of keeping a network interface device (eg, a network interface card) connected to ensure reachability, which can adversely affect a computing device's resource utilization. For example, conventional techniques allowed the applications and services of a computing device unimpeded access to a network interface device. With this, an operating system typically was not aware at any given point in time whether the network interface device was being used by an application. This can prevent the device from going into a low power mode until an idle is detected, which can take thirty seconds and thus can have a significant impact on a power supply, eg battery life. [0034] Consequently, techniques are described herein in which an operating system component called a network intermediary module can be used to coordinate the use of the computing device's network interface devices. For example, the network interface device may employ an activation pattern manager module to determine which computing device applications, if any, should be activated in response to receiving network traffic. The activation pattern manager module, for example, can detect whether a pre-registered pattern is present in network traffic, and if so, activate a corresponding application. In this way, the activation pattern manager module can allow applications that leverage network connections to a fully suspended state, yet still provide an "always on / always connected" user experience. A further discussion of the activation pattern manager module can be found in relation to FIGURES 2-4. [0035] In another example, the network intermediary module may incorporate the functionality of a network device manager module. The network device manager module can be used to cause the network interface device to enter a low power mode when the module determines that network traffic involving computing device applications has completed, for example, monitoring the returns. Thus, the network device manager module 126 of the operating system can be positioned as an intermediary between the network interface device and the applications. As an intermediary, the operating system can be aware of network activity and therefore can deterministically tell whether the network interface device can go into a low power mode, for example, a network silent mode. A further discussion of the network device manager module can be found in relation to FIGURES 5-12. [0036] In a further example, the network intermediary module can incorporate a functionality of a keep alive manager module. The keep alive manager module can be used to "keep alive" network connections (eg notification channels) while applications are in a suspended state, and thus can decrease the resource utilization associated with the applications. Also, the keep alive manager module can be used to allow the network interface device to go into a low power mode and "wake up" to maintain network connections and thus can decrease the resource usage associated with the device itself. of network interface. A variety of other functionality can also be incorporated by the keep alive manager module, such as dynamically determining a keep alive interval, a further discussion of which can be found in connection with FIGURES 13-18. [0037] In the following discussion, an exemplary environment is first described that can employ the techniques described herein. Exemplary sections are then used to describe the exemplary functionality of the activation pattern manager module, the network device manager module, and the keep alive manager module. An exemplary implementation is then described which can incorporate the functionality of the sections described above. It should be readily apparent that the techniques described herein are not limited to performance in the exemplary environment and the exemplary environment is not limited to performing the exemplary techniques. EXEMPLARY ENVIRONMENT [0038] FIGURE 1 is an illustration of an environment 100 in an exemplary implementation that is operable to employ the network intermediary techniques described herein. Environment 100 illustrated includes a computing device 102 that includes a processing system 104 (e.g., one or more processors, functional blocks), a memory 106, a power source 108, a display device 110, and one or more network interface devices 112 configured to provide network connections (e.g. notification channels) through network 114. In the following discussion the entities depicted may be indicative of one or more entities and thus reference may be made interchangeably to unique forms or plurals of entities, for example, network interface device 112, network interface devices 112, and so on. [0039] The computing device 102 may be configured in a variety of modes. For example, computing device 102 may be configured as a computer that is capable of communicating over network 114, such as a desktop computer, a mobile station, an entertainment device, a decoder communicatively coupled to a display device, a cordless phone, a game console, and so on. Thus, computing device 102 can range from a full-resource device with substantial memory and processor resources (e.g. personal computers, game consoles) to a low-resource device with limited memory and/or processing resources (e.g. , traditional decoders, handheld game consoles). Furthermore, although a single computing device 102 is shown, computing device 102 may be representative of a plurality of different devices, such as multiple servers used by a business to perform operations (e.g., a server farm) , a combination of remote control and decoder, an image capture device and a game console, and so on. [0040] Although network 114 is illustrated as the Internet, the network can take on a wide variety of configurations. For example, network 114 may include a wide area network (WAN), a local area network (LAN), or an intranet and thus network interface device 112 may be configured to access these networks through a connection with thread. Network 114 may also be configured for access using wireless techniques, such as a wireless wide area network (WWAN), a wireless local area network (WLAN), a cellular network (e.g., a 3G network). , 4G, LTE), and so on. The network interface device 112 can be representative of physical devices as well as virtual network devices, such as those used to support a virtual private network, tunneling, and so on. Thus, although a single network 114 is shown, network 114 may be representative of a plurality of networks. The computing device 102 is further illustrated as including an operating system 116. The operating system 116 is configured to abstract the underlying functionality of the computing device 102 to the applications 118, 120 that are executable in the computing device 102. For example, operating system 116 may abstract a functionality of processing system 104, memory 106, power supply 108 (e.g., a battery or wired connection), and/or display device 110 from computing device 102 of so that applications 118, 120 can be written without knowing "how" this underlying functionality is implemented. Applications 118, 120, for example, may provide data to operating system 116 to be rendered and displayed by display device 112 without understanding how this rendering may be performed. [0042] Likewise, the operating system 116 can also abstract a network connection functionality for applications 118, 120 through the use of a network intermediary module 122. The network intermediary module 122 is representative of the functionality for manage the use of the network interface device 112 by the applications 118, 120 as well as the operation of the network interface device 112 itself. [0043] As previously described the network intermediary module 122 can incorporate a variety of different functionalities to perform this management. For example, the network intermediary module 112 may incorporate an activation pattern manager module 124 that is configured to activate one or more of the applications 118, 120 upon identification of a specific traffic pattern. The specific traffic pattern, for example, can be pre-registered by the application and so when the pattern is recognized, the activation pattern manager module 124 can activate the corresponding one of the applications 118, 120 as opposed to conventional techniques in which a whole of the computing device 102 was activated, including each of applications 118, 120. A further discussion of activation pattern manager module 124 can be found in connection with FIGURES 2-4. [0044] The network intermediary module 122 is also illustrated as including a network device manager module 126. As previously mentioned, this module is representative of the functionality to manage the operation of the network interface device 112 as well as the availability of the device. of the network interface device 112 to the applications 118, 120 of the computing device 102. This may include causing the network interface device 112 to enter a mode to reduce power consumption when the network device manager module 126 determines that network traffic involving applications 118, 120 has completed. [0045] In addition, the network device manager module126 can make the network interface device 112 unavailable to applications 118, 120 for periods of time in this mode so that applications 118, 120 do not necessarily activate the network interface device. network 112. In this way, the network device manager module 126 can "black hole" the communications for applications 118, 120 for the network interface device. A further discussion of network device manager module 126 can be found in relation to its corresponding section in the following discussion beginning with respect to FIGURES 5-12. [0046] The network intermediary module 122 is further illustrated as including a keep alive manager module 128. The keep alive manager module 128 is representative of the functionality that can be used to maintain network connections, even for the 118 applications, 120 in a suspended state. The keep alive manager module 128, for example, may communicate with one or more servers of a network service to maintain a network connection between the service and the computing device 102 over network 114. The keep alive manager module 128 may also include functionality to dynamically determine an interval at which this activity should occur and thus may additionally conserve resources of computing device 102. A further discussion of the keep alive manager module 128 can be found in relation to its corresponding section in the discussion next starting with respect to FIGURES 13-18. [0047] Although the network intermediary module 122 and its activation pattern manager module 124, network device manager module 126, and corresponding keep alive manager module 128 are illustrated as part of the operating system 116, it should be readily apparent that this functionality can be implemented by a variety of different entities. Examples of such entities include standalone applications, third-party plugins, and so on. [0048] Generally, any of the functions described here can be implemented using software, firmware, hardware (eg, fixed logic circuit), or a combination of these implementations. The terms "module", "functionality", and "logic" as used herein generally represent software, firmware, hardware, or a combination thereof. In the case of a software implementation, the module, functionality, or logic represents program code that performs specified tasks when executed on a processor (eg, CPU or CPUs). Program code may be stored on one or more computer-readable memory devices. The characteristics of the network intermediary techniques described below are platform independent, meaning that the techniques can be implemented on a variety of commercial computing platforms that have a variety of processors. [0049] For example, computing device 102 may also include an entity (eg, software) that causes computing device hardware 102 to perform operations, eg, processors, functional blocks, and so on. For example, computing device 102 can include a computer-readable medium that can be configured to hold instructions that cause the computing device, and more specifically, the hardware of computing device 102, to perform operations. Thus, the instructions work to configure the hardware to perform operations and thus result in the hardware being transformed to perform functions. Instructions may be provided by the computer-readable medium to computing device 102 through a variety of different configurations. [0050] One such configuration of a computer-readable medium is a medium that contains a signal and is thus configured to transmit instructions (e.g., as a carrier wave) to the computing device hardware, such as over a network. The computer-readable medium may also be configured as a computer-readable storage medium and thus is not a signal-containing medium. Examples of a computer-readable storage medium include random access memory (RAM), read-only memory (ROM), optical disk, flash memory, hard disk memory, and other memory devices that can utilize magnetic, optical, and other techniques for storing instructions and other data. ACTIVATION PATTERN MANAGER MODULE [0051] FIGURE 2 is an illustration of a system 200 in an exemplary implementation showing an exemplary operation of an activation pattern manager module 124 of the network intermediary module 122 of FIGURE 1. As previously described, conventional techniques involved performing actively processes for an application to be achievable. With this, applications involving the use of network connections that have been operating for a relatively long time could send and receive data at any time, which could have a direct impact on the resources of the computing device 102, such as battery life. . [0052] In this example, the operating system 116 may employ the network intermediary module 122 to support an "always on/always on" user experience. In this example, the experiment is supported through the use of activation pattern manager module 124 which can be used to activate specific applications that are involved in a network communication. [0053] Activation pattern manager module 124, for example, can allow applications 118, 120 to record traffic patterns 202 that are indicative of specific applications 118, 120. For example, application 118 can register a traffic pattern 202 that is different from a registered traffic pattern for application 120. Accordingly, activation pattern manager module 124 can monitor network traffic 204 for traffic patterns 202 and activate the corresponding applications 118, 120. [0054] An application developer, for example, can arrange a contract with the network intermediary module 122 of the operating system 116 to indicate certain events and a return that must be executed for each of these events. The network intermediary module 122 can then "pipeline" a specific data pattern received by the network interface device 112 through the network 114 as corresponding to one or more of the applications 118, 120 that have registered for the traffic pattern 202. [0055] Consequently, the deactivation pattern manager module 124 of the network intermediary module 122 can interrupt the operating system on receipt of an incoming packet described in a traffic pattern for the application 118. operation 116 can wake application 118 from a suspended state at the registered return entry point and indicate the packet to application 118. Thus, activation pattern manager module 124 can support a technique for triggering a suspended application on a packet coming in from a pre-authorized remote endpoint. Furthermore, this allows the operating system 116 to channel a pattern even if the physical network interface device 112 does not support ingress packet filtering, thereby allowing the operating system 116 to filter the ingress packets. [0056] The applications 118, 120 can also be configured to increase the resource utilization efficiency of the computing device 102. For example, the application 118 can be vectored to form different parts that can be executed separately. An illustrated example of this application 118 includes vectoring network functionality 206 as separate from other functionality 208 of application 118, such as functionality involved in generating a user interface for application 118. [0057] Thus, continuing with the previous example, the network intermediary module 122 can activate the network functionality 126 of the application 11, so as to indicate a packet that matches the specified traffic patterns 202 and perform a specific return code application without rehydrating the code of application 118 involved in generating the user interface of application 118. Therefore, application 118 may be configured to respond to network traffic 204 from a remote server in a resource-efficient mode for data packets, a keep alive started at a remote endpoint, and so on. A variety of other examples of application 118 vectorization are also contemplated, such as separating application 118 event handlers. [0058] Activation pattern manager module 124 may also support techniques to coalesce data for communication to applications 118, 120, which may also be indicated by traffic patterns 202. Activation pattern manager module 124, for example, can receive data through a variety of different notification channels over network 114 at network interface device 112. Rather than communicating this data to applications 118, 120 "immediately", activation pattern manager module 124 can coalesce this data for communication to applications 118, 120 at a defined interval. [0059] Thus, the resources of the computing device 102 used in running the applications 118, 120 can be used together to additionally conserve when and how these resources are used. For example, instead of receiving data for application 118, activating application 118, and communicating the packet to activation 118 and then repeating this for a received packet for application 120, these packets can be cached and then transferred. . [0060] In one or more implementations, activation pattern manager module 124 may also leverage knowledge of user logins. For example, activation pattern manager module 124 can use traffic patterns 202 for a user who is actively registered on computing device 102, but not for other users, can use patterns for a user who has been more recently registered, and so on. Naturally other implementations are also contemplated, such as implementations in which the defaults are used for each user that is registered, being active or not. [0061] Thus, an operating system has been described that can be configured to support a technique to activate at least a portion of a suspended application in response to the identification of an incoming packet received through a network interface device of the computing device . A further discussion of these techniques can be found in relation to the following procedures and exemplary implementation. [0062] FIGURE 3 presents a procedure 300 in an exemplary implementation in which recognition of a traffic pattern is used to transition at least a portion of an application from a suspended state to an active state. Aspects of the procedure may be implemented in hardware, firmware, software, or a combination thereof. Procedures are shown as a set of blocks that specify the operations performed by one or more devices and are not necessarily limited to the orders shown to perform the operations by the respective blocks. In portions of the following discussion, reference will be made to environment 100 of FIGURE 1 and system 200 of FIGURE 2. [0063] A traffic pattern is recorded as corresponding to an application configured to run on the computing device (block 302). Traffic pattern 202, for example, can be registered by application 118 during installation of application 118, by interacting with an API of an activation pattern manager module 124, and so on. In addition, traffic pattern 202 can be used to describe a variety of different characteristics of network traffic 204, such as identifying specific packets, callbacks, identifying specific remote endpoints, and so on. [0064] Responsive to recognizing the traffic pattern in network traffic while the application is in a suspended state, at least a portion of the application is transitioned from the suspended state to an active state (block 304). Application 118 can be placed in a suspended state due to a variety of different factors. For example, operating system 116 may be configured to place application 118 into a suspended state when focus is moved to another application. Focus can be moved by minimizing an application UI, movement of the UI (eg window) from a background in a desktop UI, a navigation away from the application UI in an immersive environment , and so on. Thus, operating system 116 can conserve the resources of computing device 102 by suspending the execution of applications that are not directly available for user interaction. [0065] As previously described, activation pattern manager module 124 can recognize traffic patterns 202 from network traffic 204 and transition at least a portion of an application 118 (e.g., network functionality 206 but no other functionality 208 ) to an active state to process the identified network traffic 204. Thus, activation pattern manager module 124 can transition a specific application 118 to which network traffic 204 belongs and even a specific portion of application 118. Another example of using activation pattern manager module 124 can be found regarding to the following figure. [0066] FIGURE 4 presents a procedure 400 in an exemplary implementation in which the recognition of a traffic pattern is used to activate at least a part of an application. Aspects of the procedure may be implemented in hardware, firmware, software, or a combination thereof. Procedures are shown as a set of blocks that specify the operations performed by one or more devices and are not necessarily limited to the orders shown to perform the operations by the respective blocks. In portions of the following discussion, reference will be made to environment 100 of FIGURE 1 and system 200 of FIGURE 2. [0067] Network traffic received by a network interface device from a computing device is monitored (block 402). Computing device 102 can receive network traffic from a network interface device 112, which can be configured as a physical device, implemented as a virtual device to support a VPN and tunneling, and so on. [0068] The traffic pattern is recognized in the re-monitored traffic (block 404). As before, a variety of different traffic patterns can be recognized, such as packets, sending entities, and so on. From this traffic pattern, an application of the computing device is identified that matches the recognized traffic pattern (block 406). For example, one or more applications may pre-register with activation pattern manager module 124 to receive specific network traffic. Responsive to this identification, at least a portion of the identified application is activated (block 408), such as network functionality 206, an entire application 118, and so on. A further discussion of the exemplary operation of activation pattern manager module 124 can be found regarding the exemplary implementation. NETWORK DEVICE MANAGER MODULE [0069] FIGURE 5 is an illustration of a system 500 in an exemplary implementation showing an exemplary operation of a network device manager module 126 of the network intermediary module 122 of FIGURE 1. As previously described, the intermediary module of The network 122 and consequently the network device manager module 126 of the operating system 116 may be positioned as an intermediary between the network interface device 112 and the applications 118, 120. As an intermediary, the operating system 116 may have knowledge of the network activity and therefore can deterministically tell whether the network interface device can go into a low power mode, for example a network silent mode. [0070] For example, the network device manager module 126 can be used to cause the network interface device 112 to enter a low power mode when the module determines that network traffic 502 involving device applications for example, by monitoring the returns and determining when the last of the returns completed. Thus, network traffic 502 involves egress traffic from applications 118, 120 in this example. [0071] In response, the network device manager module 126 may cause the network interface device 112 to transition from a high energy mode 504 to a low energy mode 502. As the names denote, these modes are distinguished by an amount of energy consumed by the network interface device 112 while in modes. In one example, high energy mode 504 is configured to allow transmission and reception of data by network interface device 112. In this example, low energy mode 506 is configured so that the transmission functionality of the device is 112 network interface is temporarily disabled and thus has a reduced power consumption. Thus, as outbound activity is suppressed and thus only activation patterns are fixed, it means that traffic that can impact the system is limited to packets which match the activation pattern, or when the system computes a time to start the output activity as the activity of keeping alive. A variety of other examples are also contemplated. [0072] In this way, the network device manager module 126 can proactively determine when the use of the network interface device 112 is no longer desired for outgoing traffic and react accordingly in opposition to prior techniques that relied on period detection of inactivity that could be as long as thirty seconds. Thus, knowledge of the network traffic 502 generated by positioning the operating system 116 as an intermediary can be used to conserve the resources of the computing device 102. [0073] The network device manager module 126 may also support techniques to extend and/or maintain the low power module 506 to the network interface device 112 for a desired period of time. As previously described, conventional techniques allowed unhindered access from applications 118, 120 to network interface device 112, which could have an adverse effect on resources of computing device 102. Consequently, the positioning of the network device manager module 126 as an intermediary between the applications 118, 120 and the network interface device 112 can be used to manage the high energy and low energy modes 504, 506. [0074] For example, the network device manager module126 can support "black hole" techniques to restrict access by applications 118, 120 to the network interface device 112 while in low power mode 506. This can be performed in a variety of ways. of ways, such as making the network interface device 112 unavailable, blocking packet communication from the application 118, 120 to the network interface device 112, providing an error code back to the applications 118, 120 during the process of low power 506, indicating a dropped packet event, and so on. Therefore, the network device manager module 126 can limit the ability of applications 118, 120 to activate the network interface device 112 from low power mode 506 to high power mode 504, thereby conserving device resources. of computing 102. [0075] The network device manager module 126 may also support techniques for managing the use of a plurality of different network interface devices 112 by managing which of the network interface devices 112 can be accessed at a given point in time. For example, computing device 102 may be configured as a mobile communication device (eg, cordless telephone) and include a network interface device 112 configured to communicate over Wi-Fi and cellular networks (eg, 3G , 4G, LTE). [0076] In an instance where the network interface device 112 to the Wi-Fi is in a high power mode, the network device manager module 126 can cause the network interface device 112 to the network. phone between a low power mode. Also, applications that attempt to interact with the cellular network can instead be routed to the Wi-Fi network. In this way, the network device manager module 126 can prevent applications 118, 120 from communicating with the cellular interface device. "wrong" network 112 and thereby conserve the resources of computing device 102 by not activating this device. [0077] The network device manager module 126 may also be configured to maintain connectivity while in a low power mode. For example, applications 118, 120 and/or operating system services 116 may wish to maintain Layer 2 connectivity to maintain a connection to an access point. This may involve periodically waking up from low power mode 506 at defined intervals to communicate with the access point. Likewise, Layer 3 connectivity can also be maintained using similar techniques to maintain an IP address communicating with an HTTP server, such as by an instance in which the server is configured to reset the address at defined intervals. Additional discussion of maintaining network connectivity can be found in the "Keep Alive" section in the following discussion. [0078] FIGURE 6 is an illustration of another system 600 in an exemplary implementation showing an exemplary operation of the network device manager module 126. This system 600 is an exemplary implementation of an architecture that can be employed for assisted system management operating time 116 of the network interface device 112. [0079] The network device manager module 126 is implemented in this example as a logic component that resides in ndis.sys 602 and is responsible for controlling the power modes for the network interface device 112. The network device manager module 126 may be configured to expose the per-adapter Active NID state (for example, NIC active state) to support granular power control over network interface devices 112. [0080] The NID Active state can be implemented using a reference counter. When the counter reaches zero, the network device manager module 126 can transition the network interface device 112 to a low power state. When the counter is incremented from zero to one, the NDIS 602 can bring the network interface device 112 into a high power state, that is, a "working" power state. [0081] As illustrated, the operating system components116 can be used to increment and/or decrement the reference counter, for example, sending private IOCTLs to NDIS 602 for a variety of purposes. In one or more implementations, a WCM 604 that is in communication with a Power Dependency Coordinator (PDC) 606 is a single component that is allowed to keep the NID reference Active for a "long" time, for example, an entire duration of the Active Network period. Each of the other components is allowed to take the Active NID reference for the duration of a single operation, for example, an IP address renewal. [0082] The WCM 604 can be configured to listen for the silent network input/output events generated by the PDC 606 and translate them to active NIC states according to the interface selection logic. The WCM 604 may take a reference upon adapter arrival to prevent the NIDS 602 from de-energizing the network interface device 112. [0083] WWAN 608 can use the Active NIC reference to allow selecting a specific media functionality, for example, a location scanning function requested by a location sensing service. The WLAN 610 can use the Active NIC reference to select specific media operations, for example, vendor specific functions controlled by an IHV-provided service. The DHCP client 612 can be used to renew an IP address during a network silent mode and thus can keep the NIC Active reference during this operation to ensure the availability of the network interface device 112. TCP/IP 614 can use the Active NIC reference counter to keep network interface device 112 at D0 during this operation to reset IPv6 616 stateless address autoconfiguration during network silent mode. The NDIS 602 can use a temporary Active NIC reference (eg 3 seconds) during adapter initialization and when reaching the wake up signal generated by network interface device 112. Therefore, if none of the other components want to use the device of the network interface device 112 upon expiration of the timeout, the network device manager module 126 may transition the network interface device 112 to a low power state. [0084] FIGURE 7 presents an exemplary implementation 700 that shows a network interface device silent transition. The 700 implementation includes the NDIS 602 of FIGURE 6 as well as a power manager 702 and a miniport/bus 704. The NDIS 602 performs this power transition operation when the NID Active reference counter becomes zero. During NID silent transition, NDIS 602 may report network interface device 112 as idle to power manager 702 and wait for an acknowledgment before requesting a Dx IRP for the device. [0085] FIGURE 8 presents an exemplary implementation 800 that shows a network interface device active transition. Implementation 800 includes the NDIS 602 of FIGURE 6 as well as a power manager 702 and a miniport/bus 704 of FIGURE 7. In the illustrated example, the NDIS 602 performs this power transition operation when the NID Active reference counter goes from zero to one. The NDIS 602 can request a device active state from power manager 702 and wait for "Power Required Return". From this return, NDIS 602 requests D0 IRP for the device. Upon completion of the D0 IRP, the NDIS 602 waits for an "Active Condition Return" before communicating the updated power state to the miniport/bus unit 704. [0086] FIGURE 9 presents an exemplary implementation 900 that shows a system sleep transition. The 900 implementation also includes the NDIS 602 of FIGURE 6 as well as a power manager 702 and a miniport/bus 704 of FIGURE 7. During system sleep transition NDIS 602 suspends power structure management by power manager 702 to the device and wait for confirmation before requesting a Dx IRP. [0087] FIGURE 10 presents an exemplary implementation1000 that shows a transition from restarting system. Implementation 1000 also includes the NDIS 602 of FIGURE 6 as well as a power manager 702 and a miniport/bus 704 of FIGURE 7. During the system reset transition, the NDIS 602 requests a D0 IRP for the network interface device 112 and causes power structure operations to be restarted by power manager 702 upon completion of D0 IRP. [0088] FIGURE 11 presents a procedure 1100 in an exemplary implementation in which a determination is made that network traffic has completed and a network interface device is transitioned to a low power mode by an operating system. Aspects of the procedure may be implemented in hardware, firmware, software, or a combination thereof. Procedures are shown as a set of blocks that specify the operations performed by one or more devices and are not necessarily limited to the orders shown to perform the operations by the respective blocks. In portions of the following discussion, reference will be made to the environment of FIGURE 1 and the exemplary systems and implementations of FIGURES 5-10. [0089] A determination is made by an operating system that the network traffic associated with one or more computing device applications has completed (block 1102). This determination can be made in a variety of ways. For example, the network device manager module 126 can monitor the inbound and outbound traffic involving applications 118, 120 and the network interface device 112. The network device manager module 126 can thus determine when responses have been provided. for requests, for example, returns were completed. In this way, the network device manager module 126 can determine when each of the operations has completed without waiting for a prescribed "idle" period. [0090] Responsive to the determination, a network interface device is transitioned to a mode to reduce the power consumption of the network interface device by the operating system (block 1104). Continuing from the previous example, the network device manager module 126 can determine that the network traffic 502 has completed, and therefore causes the network interface device 112 to enter a mode to reduce power consumption, for example, a low power mode 506. [0091] The network device manager module 126 can also provide a variety of functionalities for use in conjunction with this mode. For example, the network device manager module 126 can cause the network interface device 112 to maintain connectivity to a wireless access point, by the operating system, while in the mode to reduce power consumption (block 1106) . Thus, in this example, the network interface device 112 can maintain a layer two connection as described above. In another example, the network device manager module 126 can cause the network interface device 112 to maintain an Internet Protocol (IP) address, by the operating system, while in the mode to reduce power consumption (block 1108). Therefore, in this example, network interface device 112 may maintain a layer three connection to reset the IP address of network interface device 112. A variety of other examples are also contemplated. [0092] The network interface device may also be configured to activate upon receipt of a pre-registered notification (block 1110). For example, although network interface device 112 is placed in a low power mode 506, network interface device 112 may be configured to receive communications, for example, incoming packets. These notifications can be pre-recorded so that specific notifications cause the network interface device 112 to activate in a network silent mode and communicate with the operating system 116, such as to indicate a specific endpoint that caused the communication. . A variety of other types of prerecords are also contemplated, such as a specific 4-set variable pattern contained in the data as described in relation to the exemplary implementation. [0093] FIGURE 12 presents a procedure 1200 in an exemplary implementation in which a network interface device is made unavailable to applications during a low power mode. Aspects of the procedure may be implemented in hardware, firmware, software, or a combination thereof. Procedures are shown as a set of blocks that specify the operations performed by one or more devices and are not necessarily limited to the orders shown to perform the operations by the respective blocks. In portions of the following discussion, reference will be made to the environment of FIGURE 1 and the exemplary systems and implementations of FIGURES 5-10. [0094] A network interface device is made available to one or more applications of a computing device by an operating system when the network interface device is in a high power mode (block 1202). Network interface device 112, for example, may expose network interface 112 as available for communication using network 114 to send and receive data. [0095] The network interface device is made unavailable to one or more applications of a computing device by an operating system when the network interface device is in a low power mode (block 1204). The network device manager module 126, for example, may impose a network silent mode to reduce power consumption, such as in response to a determination that the network traffic involved by applications 118, 120 has completed. This silent mode can have a set amount of time, and it can be exited in response to an event, and so on. This unavailability may include using the "black hole" techniques described above so that applications 118, 120 are not allowed to "wake up" network interface device 112 during this time. [0096] Another network interface device is made available to the one or more applications while the network interface device 112 is made unavailable (block 1206). As described above, computing device 102 may include a plurality of network interface devices. Consequently, the network device manager module 126 can manage which of the devices are placed into high or low power modes to conserve computing device resources so as to make a single of the network interface devices 112 available for a connection. of Internet. [0097] The network device manager module 126, for example, can employ routing techniques to prevent an inadvertent activation of a "wrong" network interface device 112. Continuing with the previous example, data received from the one or more applications that are specified for communication using the network interface device that is made unavailable is routed to the other network interface device (block 1208). This can be used, for example, to route data destined by an application 118 for communication using a cellular network interface device that is inactive to be automatically routed to an active network interface device, such as a Wi device. -Fi. [0098] Thus, the operating system may be configured to support a technique to restrict access by one or more applications of the computing device to a network interface device that is placed in a mode to reduce power consumption. Further, the network interface device is configured to wake up in response to receiving a notification, such as a push notification from a specific endpoint. Additional discussion of maintaining network connections can be found in relation to the following section. KEEP ALIVE MANAGER MODULE [0099] FIGURE 13 is an illustration of a system 1300 in an exemplary implementation showing the exemplary operation of a keep alive manager module 128 of the network intermediary module 122 of FIGURE 1. The keep alive manager module 128 is representative of functionality of the network intermediary module 122 to maintain notification channels over a network 114. For example, the keep alive manager module 128 can be used to calculate a keep alive interval 1302 which defines an interval between the intermediary network communications which is sufficient to maintain an open notification channel between applications 118, 120 and an endpoint 1306, e.g. a server of a network service. Thus the keep alive interval 1302 can be calculated to describe a communication frequency for maintaining the communication state over the network 114. For example, through one or more notification channels. [00100] The network intermediary module 112 can manage a variety of different notification channels. Application 118, for example, may be configured to support email communication and therefore interact with an email service endpoint. Application 118 may also be configured to support instant messaging and therefore may communicate with another endpoint (e.g., an instant messaging server). Thus, a single application 118 can support a plurality of notification channels. In addition, applications 118, 120 can also communicate with the same endpoint using different notification channels. Thus, the keep alive manager module 128 can address a variety of different notification channels that involve communication over the network 114. [00101] In addition, the keep alive manager module 128 can calculate the keep alive interval 1302 in a variety of modes. In such an implementation, the keep alive interval 1302 can be calculated based on the server timeout interval of an endpoint 1306 with which the application 118 must communicate, for example, via a notification channel. For example, the server timeout interval can be determined by the keep alive manager module 128 based on a known timeout specified by an application that is configured to interact with endpoint 1306. [00102] Application 118, for example, can be configured to interact with a specific endpoint, such as a social networking service. This application can therefore be coded with "knowledge" of the server timeout interval of this timeout so that application 118 can be configured to maintain a notification channel with that endpoint, e.g. that a communication be sent to maintain state with endpoint 1306. Therefore, in this example, the keep alive manager module 128 can determine this interval from the application itself 118. Other examples are also contemplated, such as determining the time interval of server wait of endpoint 1306 a priori, can be based on the monitored interaction between the computing device and endpoint 1306 (for example, detecting failures and resetting), and so on. [00103] In another such implementation, the keep alive interval 1302 can be calculated using a network timeout interval to address the intermediate devices 1308 of the network 114. For example, a network connection between the network interface device 112 and endpoint 1306 may involve a variety of intermediate devices 1308, such as a network address translation device, a proxy, firewall, wireless access point, and so on. The network timeout interval can be determined by the keep alive 128 manager module in a variety of modes. [00104] For example, the keep alive manager module 128 may connect through network 114 and the corresponding intermediate devices 1308 with an endpoint that has a "known" or "known to be long" server timeout interval, such as as a testing device making available by such determination. The keep alive manager module 128 can then monitor a connection to this known endpoint to determine when the intermediate devices 1308 have reached the "timeout" and therefore determine the network timeout interval of the intermediate devices 1308. This network timeout interval can be saved by keep alive manager module 128 for use in calculating keep alive interval 1302. For example, this network timeout interval can be saved as specific to a specific network through the which network interface device 112 accesses network 114. [00105] In one or more implementations, the keep alive interval 1302 can be calculated based on the endpoint server timeout range 1306, the network timeout range of the intermediate devices 1308, and even both the breaks. The keep alive interval 1302, for example, can be calculated by the keep alive manager module 128 to efficiently utilize the resources of the computing device 102 in maintaining the notification channels. For example, the keep alive manager module 128 can determine that the network timeout interval is 15 seconds and the server timeout interval is 20 seconds. Therefore, the keep alive manager module 128 can activate the network interface device 112 at fifteen second intervals to communicate with the endpoint 1306 and thus keep the endpoint 1306 and the intermediate devices 1308 active. Thus, in this case the keep alive manager module 128 can avoid activating the network interface device 112 at intervals of either fifteen or twenty seconds but allow both devices to maintain state. [00106] Thus, a single network timeout value can be calculated and a minimum of these values (eg a baseline floor) to compute a coalesced time that describes when concurrent "keep alive" are sent. Thus, the network timeout interval can apply to the plurality of server connections. [00107] Additionally, one or more implementations may resolve the network connection to be lost. Networks can be inconsistent so connections can be lost from time to time. When this occurs, the persistent connection to a server can be cut off. Thus, these implementations can employ an ability to automatically detect when the network is available again. For example, on a Wi-Fi network this can be done in hardware or firmware in an efficient way via a "network list download", via an operating system itself, and so on. Thus, an operating system can notify its class of applications of the presence of the network through a callback routine, and these applications can then re-establish a connection, for example, a long-lived connection to the push notification server. Therefore, a coalesced notification can be performed to allow the plurality of resource applications to re-establish connections, which can be used to optimize the utilization of local computing resources as well as to optimize the utilization of the network interface device path. [00108] Techniques can also be used by the keep alive manager module 128 to address the applications 118, 120. For example, the keep alive manager module 128 can be configured to batch the communications to be sent by the applications 118, 120 to keep the notification channels. Thus, before the keep alive interval 132 can be configured for resource efficient use of computing device 102, e.g., a power source 108. [00109] For example, keep alive manager module 128 can determine that application 118 is configured to initiate a "keep alive" communication at ten second intervals and application 120 is configured to initiate a "keep alive" communication at eight-second intervals. Therefore, the keep alive manager module 128 can activate the network interface device 112 at intervals of eight seconds for both applications 118, 120 to perform communications. In this way, the keep alive manager module 128 can coalesce the "keep alive" initiated by the application 118, 120 to the notification channels to the various endpoints 1306 to save energy and other resources. Thus, the keep alive manager module 128 can base the keep alive interval 1302 on a variety of factors and may also adjust the keep alive interval 1302, a further discussion of which can be found in relation to the following figure. [00110] FIGURE 14 is an illustration of a system 1400 in an exemplary implementation showing an exemplary implementation for calculating and adjusting a keep alive interval of FIGURE 13. As previously described, maintenance and a notification channel through reporting devices Intermediate network can be an issue for applications 118, 120 accessing a network 114. Traditional techniques involved a value inserted into the code that defined an interval to send/receive packets to preserve state. However, techniques are described here in which a dynamic keep alive interval is calculated, for example, using a test connection to a given remote destination, by examining applications 118, 120 on the computing device 102 itself, by using network and server timeout intervals, and so on. [00111] System 1400 of FIGURE 14 illustrates an example of setting a keep alive interval 1302 of FIGURE 13. In this example, an initial calculated keep alive interval is set at an initial stage as T = T(max) (block 1402 ). Reference points are then tested that are lower than the current T (Block 1404). This may involve counting W(min) with T(min) where W represents the reconnection time between counts (block 1406). This would also involve aggressive tuning in which T is incremented by V and capped at T(max) (block 1408), where V represents an increment of aggressive tuning. The 1400 system may also involve fine tuning in which the value is incremented by V/Y, where Y represents the aggressively incrementing 1/Y. These values can be leveraged to determine a steady state in which T - the detected value and T(LKG) is the absolute time. In the diagram, Z represents a number of retries performed, which can be adjusted to resolve network errors, and X represents a number of successful keep alive (KAs). A further discussion of the operation of the keep alive manager module 128 can be found in relation to the following procedures. [00112] FIGURE 15 presents a procedure 1500 in an exemplary implementation in which a keep alive interval is calculated and used to keep one or more notification channels. Aspects of the procedure may be implemented in hardware, firmware, software, or a combination thereof. Procedures are shown as a set of blocks that specify the operations performed by one or more devices and are not necessarily limited to the orders shown to perform the operations by the respective blocks. In portions of the following discussion, reference will be made to the environment of FIGURE 1 and the exemplary systems and implementations of FIGURES 13-14. [00113] A keep alive interval is calculated by an operating system of a computing device (block 1502). As described with respect to FIGURES 13 and 14, the keep alive interval can be calculated in a variety of ways such as based on a network timeout interval, server timeout interval, based on communication schedule of keep alive for a plurality of applications 118, 120, and so on. [00114] The keep alive interval is used to maintain one or more notification channels between one or more applications of the computing device and a network (block 1504). The keep alive manager module 128, for example, can monitor network communication to send and receive data through notification channels. If one or more of the notification channels reaches a keep-alive interval without involving a network communication 1304, the keep-alive manager module 128 can keep the channel by communicating with a respective endpoint 1306. [00115] The keep alive interval can also be adjusted based on the monitored use of the keep alive interval by the operating system (block 1506). For example, the keep alive manager module 128 may determine that a notification channel has ceased to function due to reaching a network or service timeout interval. The keep alive manager module 128 can then adjust the keep alive interval 1302 "down", (for example, decreasing an amount of time defined by the interval) to an amount of time that is less than the amount of time observed in the which channel performed the timeout. Of course, other examples are also contemplated, such as increasing the keep alive interval 1302 as described in relation to FIGURE 14. [00116] FIGURE 16 presents a procedure 1600 in an exemplary implementation in which a keep alive interval is calculated to batch the keep alive communications from the applications. Aspects of the procedure may be implemented in hardware, firmware, software, or a combination thereof. Procedures are shown as a set of blocks that specify the operations performed by one or more devices and are not necessarily limited to the orders shown to perform the operations by the respective blocks. In portions of the following discussion, reference will be made to the environment of FIGURE 1 and the exemplary systems and implementations of FIGURES 13-14. [00117] A determination is made for each of a plurality of executable applications on a computing device of one or more specified server timeout intervals to maintain a notification channel with a respective endpoint across a network (block 1602). The keep alive manager module 128, for example, can examine applications 118, 120 to maintain notification channels with respective endpoints. [00118] A keep alive interval is calculated from the one or more server timeout intervals for each of the plurality of applications (block 1604). As described with respect to FIGURE 13, the keep alive manager module 128 can determine a keep alive interval 1302 based on resource utilization efficiency for the different server timeout intervals. The keep alive interval can then be used to activate an interface device as specified to keep the notification channels (block 1606). For example, keep alive manager module 128 may determine that network communication 1304 has not occurred for any of the communication channels while network interface device 112 is in a low power mode. Accordingly, keep alive manager module 128 can enable network interface device 112 to communicate with respective endpoints 1306 in keep alive interval 1302 to efficiently utilize the resources of computing device 102. A variety of other examples is also is contemplated as described above and as further described in relation to the following implementation example. EXAMPLE OF IMPLEMENTATION [00119] FIGURES 17 and 18 show systems 1700, 1800 showing examples of implementation of the network connectivity intermediary 122 of FIGURE 1. As previously described in relation to FIGURE 1, the support of a system state called "connected standby " on system-on-chip based devices can provide an opportunity to enable an "Always On, Always On" (AOAC) user experience. For example, an application can be suspended when not "in focus", eg not in the foreground. As a result, a network 114 and network interface devices 112 can go into a "network silent mode" (netqm). In this mode, the operating system 116 can prevent packets going out of the device, while ensuring that L2 connectivity and L3 identity is maintained. An indication of a component referred to as a Power Dependency Coordinator (PDC) to exit silent mode. Upon completion of tasks involving network connections 114, the network intermediary module 122 can cause the network interface device 112 to again enter a network silent mode and remain in this state until the PDC indicates an event. exit. [00120] An overview of a 1700 system incorporating this design is shown in FIGURE 17. The figure shows a chat application (eg configured for chat over network 114) that includes a lightweight chat stub 1704 which is configured to handle the connections and other bookkeeping for the 1702 chat application. The 1702 chat application also includes a relatively "heavy" 1706 chat UI portion of the 1702 application separate from the lightweight connection stub represented by the 1704 chat stub. This is one of a variety of techniques that can be used for the 1702 application's vector functionality. [00121] A 1708 process lifetime manager is also illustrated as representing a functionality to manage a 1702 application lifecycle. In other words, when application 1702 is tasked out of user focus (eg moved to the background), the 1708 PLM can terminate the 1706 chat UI process and suspend the 1704 chat stub in memory. [00122] The 1700 system can leverage a core broker infrastructure that includes a mechanism to rehydrate the 1704 chat stub when an interesting event occurs for the 1702 application as previously described. In this way, the resources of the computing device can be conserved, for example, a CPU of computing device 102 can go into a silent mode and remain in this mode until an incoming message triggers a wake up, the kernel intermediaries wake up the system. for a periodic activity, and so on. [00123] network connectivity intermediary (NCB) 1710 (which may or may not correspond to the network intermediary module 122 of FIGURE 1) can employ a variety of functionality, which is represented as an activation pattern manager 1712 and a keep alive manager 1714. Activation pattern manager (WPM) 1712 is configured to ensure that the 1702 application can "rehydrate" upon a network event, for example, activate upon detection of a specific pattern. [00124] 1714 keep alive manager is configured to ensure that a notification channel is maintained for the 1702 application, for example, for reachability of a cloud service for incoming push notifications. For example, application 1702 may register a work item with the BI 1802 of FIGURE 18 thereby indicating to operating system 116 that application 1702 is interested in a keep-alive activity. The operating system 116 can then determine an appropriate coalesced keep alive interval to activate applications 1702 that have logged a return to indicate that outgoing packet activity is allowed for a predefined amount of time, for example, for a few seconds. The BI 1802 can "sandbox" work items in terms of CPU and memory resources. This allows application 1702 to perform a periodic "keep alive" to a respective endpoint (eg, a "cloud" service) to maintain reachability. This can also be used to limit an application's ability to use resources inefficiently due to an overabundance of "keep alive". [00125] Operating system, in conjunction with a notification service (eg a Windows Notification Service) can be used to determine a dynamic keep alive interval as previously described. The dynamic keep alive interval, for example, can be implemented as an "exponential setback" which doubles an amount of time defined by the interval starting conservatively at a four-minute interval and incrementing to a value where the connection is still held. The notification service can use a test connection for this purpose to determine the dynamic range. In one or more implementations, the keep alive manager 1714 does not distinguish between the state of the application or system to be connected standby or Active / ON, although other implementations are contemplated. [00126] 1712 Activation Pattern Manager is representative of a functionality to set an appropriate activation pattern for a network interface device, such as a 1716 Network Interface Card (NIC) P 1712 Activation Pattern Manager can cause the 1716 NIC to go into a "Wake up or LAN" mode when entering network silent mode. The 1716 NIC, for example, can transition to a D3 mode in which the 1716 NIC is configured to accept and deliver an incoming packet if it matches a set of activation patterns. If so, this could cause the 1716 NIC to transition to an active state. Activation patterns can be derived from a variety of sources, such as "<SrcAddr, DstAddr, SrcPort, DstPort, TransportProtocol>" for each connection enabled by activation. In one or more implementations, the NIC 1716 passes the incoming packet that caused the activation to the protocol stack (as opposed to dropping/dropping it) as the loss of such a packet can impact real-time responsiveness to applications that support features such as VoIP. [00127] An API Runtime surface can also be exposed to applications that are configured to make use of the keep alive and remote activation functionality provided by operating system 116. This library can be used to allow applications to run a variety of functions including: Indicate the creation of notification channels (eg BeginSetup); Indicate the completion of notification channels configuration (eg EndSetup); Adjust the desired keep alive interval in minutes (eg ServerKeepAliventervalTime) ;Register Background Task handlers for keep alive events and remote wake up events;Indicate to system that keep alive interval was not sufficient (eg DecreaseKeepAlivelnterval). [00128] As a notification system can be implemented as an inbox component that is continuously running, a work item code to be executed for keep alive events can be activated by an Activation Proxy method. The activation proxy can be hidden within a runtime library and activated through a private API. An NCB service check can be used to verify a process integrity level. The proxy creates WNF events and listens to a WNF channel for WNF event messages. The background task handler for the notification service can be invoked by the proxy when the BI (as a result of the NCB / TCPIP.sys service calling BiSignalEvent) publishes a WNF event message. [00129] A runtime API library can use LRPC to communicate with the NCB subservice (Ncbsvc.dll) hosted within the IP Helper service to provide a keep alive time for an NCB and receive event names for the keep alive and activation events. The runtime API can then call the broker infrastructure APIs to associate application-provided returns with the events provided by the broker infrastructure. [00130] System 1800 of FIGURE 18 includes a register of NCB1804, which is configured to isolate the actual communication interfaces used by an NCB 1806 service to talk to the rest of the operating system 116. For example, the RPC used by Runtime APIs can be isolated in the NBC Registry. The registry can open an RPC server endpoint and listen for applications. Applications can use the runtime library described above to connect to this RPC endpoint. [00131] Similarly, the actual 1802 BI API access can be hidden within the 1804 NCB register as illustrated. This allows the keep alive manager 1714 to be isolated from architectural changes. The 1804 NCB registry can call the 1802 BI APIs to create the "keep alive" and "activate" events. The other part of the NCB 1804 record may involve communicating with an 1808 WPM. [00132] The 1810 keep alive provider interface is configured to allow a WNS to register as a keep alive interval provider, and can use LRPC to communicate with the WNS. WNS can provide keep alive interval estimates using the returns recorded by the keep alive 1810 provider interface. [00133] The Keep Alive 1810 provider interface can cache the estimates on a per network basis (NLM ID) in an 1812 NLM cache library. This NLM cache can be accessed through a library which may be common between the Keep Alive provider interface and a DA site manager. [00134] keep alive manager 1714 may be configured to request a keep alive interval estimate from a keep alive provider. A timer (which can be coalesced) can be created using a "SetThreadPoolTimer" API. The time can be set as the minimum of T_WNS and T_APP - the keep alive interval requested by the application. [00135] When the keep alive timer expires, keep alive manager 1714 can signal a keep alive event by calling NCB register 1804. NCB register 1804 can then call the BI APIs 1802 to trigger work items to be programmed. [00136] An application may provide the NCB with a suggestion that the interval provided was too long. This can be used in conjunction with the application ID and notification channel ID to re-cache on a per-network basis using the NLM cache library 1812 previously described. [00137] A model for identifying notification channels can be based on a "Start/Done" model which delineates a process width time span during which each TCP connection is established by a process (except loopback ) is treated as a notification channel by the NCB. A Start/Done time span, however, has a single set of parameters, collectively referred to as a "Context", which applies to each of the connections created during that span. It should be noted that a one-to-one relationship between NCContext and a TCP connection is typically found. However, the Start/Done model does not guarantee this relationship, so this project can operate under an assumption that there may be multiple TCP connections that correspond to a single NCContext amplitude. This breadth can be identified by a set of variables that includes a process ID, an opaque NCContext ID created and used by the registry, and an opaque notification channel ID (passed to BI during event signaling, with this being significant for the app), and an intermediate remote activation event. [00138] NCB record 1804 can be set to indicate the Start(PID, NCContextID, AppNCID, BrokeredEvent) and Done() (eg setting and clearing an NCContext) for WPM. Registering NCB 1804 can also ensure that the actual application process PID remains intact (eg, not recycled) during the Start/Done time span. NCB record 1804 can achieve this using an RPC API that takes a reference in the client process. [00139] NCB can indicate Start and Done for WPM 1808 through NSI 1814. WPM can expose an INET NSI object (which may be similar to a port reservation NSI object) for this purpose. The NCB can use NSI tuning commands to set the active NCContext (eg Start) and clear the active NCContext (eg Done). In one or more implementations, there is a single NCContext active for a given process at a given point in time. [00140] TCP connections established by a given process can inherit the active NCContext (if any) for that process. Once an NCContext is inherited, it can remain attached to the inherited TCP connection. If the NCB sets a new active NCContext for a process (for example, after deleting the previous active), new connections might inherit the new NCContext, and connections that inherited the previous NCContext might remain unaffected. An inherited NCContext (by one or more TCP connections) can be erased by the NCB 1806 service also using NSI 1814. If an NCContext is erased, WPM 1808 may stop signaling the associated remote wake broker event (but the default activation device remains intact until the connection is closed). [00141] As WPM 1808 can track some state by process (for example, active and inherited NCContexts) that is controlled by the NCB 1806 service, it can rely on the NCB 1806 service to appropriately clear the state (NCContexts) as per the applications leave. However, it is possible that the service process of NCB 1806 may malfunction / exit abnormally. In order to perform a proper wipe, the WPM 1808 can receive an NCB service process output indication by the NCB by creating a TCP socket (not bound or connected) and setting a private option on the socket to mark it as the socket of NCB control. Because the object manager properly closes handles (which include sockets) when a process exits, closing the socket handle causes the TCP endpoint close routine to be invoked. TCP can then clear each of the NCContexts when closing the NCB control socket. [00142] As previously described, activation pattern manager (WPM) 1808 which can be implemented in a TCP module in tcpip.sys) can be configured to keep track of NCContexts. TCP can maintain a table of processes and the associated NCContext(s) set by the NCB 1806 service. In one or more implementations, there is either one or zero "active" NCContext(s) for a given process and there can be one or more "inherited" NCContexts for a given process. TCP can be configured to allow a single system account under which the NCB service operates to set / clear NCContexts [00143] In one or more implementations, an NCContext has a reference account for being "active" and a reference account for each inherited connection. That is, the NCContext can be cleared when it is neither active nor inherited by connections. [00144] When a connection inherits an NCContext, the WPM 1808 can set an activation pattern composed of 4 sets of variables from a connection to the network interface device through NSI 1814 methods for setting activation pattern if the NIC support activation patterns. WPM 1808 can track whether an activation pattern has not been successfully set for a given connection for each active NCContext. Before the active NCContext is cleared by the NCB service during the "Done" call, The 1806 NCB service can issue a obtained NSI for this NCContext to query its activation pattern fixing status and return the information to the application (by example, if the system was unable to set an activation pattern for a connection associated with that NCContext). [00145] For each TCP connection which has inherited an NCContext with a brokered remote wake event, TCP can signal the brokered remote wake event whenever a data indication (eg, call completion or reception) is made by TCP over that connection due to incoming data. Since TCP signals the remote wake-up event, it can disable (eg, disarm) smoke additional signaling in that NCContext until the remote wake-up event is reset by the NCB 1806 service. The NCB 1806 service resets the event Remote wakeup after the application's remote wakeup callback returns control back to the NCB routine which invoked the callback. [00146] The handling of SIO_ADDRESS_LIST_SORT ioctl in NL can also be changed to be aware if the Ioctl is being issued by a process while there is an active NCContext for this process, and if so, the classification logic can pronounce addresses on native interfaces to tunnel interfaces. [00147] WPM 1808 may also maintain a timer to track the remaining valid lifetimes for IPv6 addresses formed using an IPv6 subnet prefix advertised by a router. As the router advertisements may have been dropped by the NICs in a low power state capable of activation, the IPv6 prefix timeout can be reset through an explicit router request before the timeout elapses, otherwise the L3 identity may not be reliably preserved in some cases. The WPM 1808 can use the NDIS API to take an "active NIC reference" about the network interface over which the router request can happen in order to ensure that the NIC "stays up" (eg, do not go to D3 due to not having any active NIC references maintained by anyone on the system). EXEMPLARY SYSTEM AND DEVICE [00148] FIGURE 19 illustrates an exemplary system 900 that includes computing device 102 as described with reference to FIGURE 1. The exemplary 1900 system allows ubiquitous environments for an uninterrupted user experience when running applications on a personal computer (PC) , television device, and/or a mobile device. Services and applications perform substantially similar in all three environments for a common user experience when transitioning from one device to the next while using an application, playing a video game, watching a video, and so on. [00149] In the exemplary 1900 system, multiple devices are interconnected through a central computing device. The central computing device can be local to multiple devices or can be located remotely from multiple devices. In one embodiment, the central computing device can be a cloud of one or more server computers that are connected to multiple devices through a network, the Internet, or other data communication connection. In one embodiment, this interconnect architecture allows functionality to be provided across multiple devices to provide a common, uninterrupted experience for a user across multiple devices. Each of the multiple devices can have different physical requirements and capabilities, and the core computing device uses a platform to enable it to deliver an experience for the device that is both modeled to the device and still common to all devices. In one modality, a class of target devices is created and experiences are modeled for the generic class of devices. A class of devices can be defined by physical characteristics, types of use, or other common characteristics of the devices. [00150] In various implementations, computing device 102 may assume a variety of different configurations, such as for computer 1902, mobile 1904, and television 1906 uses. Each of these configurations includes devices that may have generally different constructions and capabilities, and thus computing device 102 may be configured according to one or more of the different device classes. For example, computing device 102 can be implemented as computer class 1902 of a device that includes a personal computer, a desktop computer, a multi-screen computer, a laptop computer, a netbook, and so on. [00151] Computing device 102 can also be implemented as mobile device class 1904 which includes mobile devices such as a mobile phone, a portable music player, a portable gaming device, a tablet computer, a multiple computer screens, and so on. Computing device 102 can also be implemented as television device class 1906 devices that have one are connected to generally larger screens in casual viewing environments. These devices include televisions, decoders, game consoles, and so on. The techniques described herein can be supported by these various configurations of computing device 102 and are not limited to specific examples of the techniques described herein. This is illustrated by the inclusion of utilization of the network intermediary module 122, the activation pattern manager module 124, the network device manager module 126, and the keep alive manager module 128 in the computing device 102. Toda or part of this functionality may also be delivered "over the cloud" as described below. [00152] The 1908 cloud includes and/or is representative of a 1910 platform for 1912 content services. The 1910 platform abstracts the underlying hardware functionality (eg servers) and software resources of the 1908 cloud. The 1912 content services may include applications and/or other data that can be used while computer processing is performed on servers that are remote from computing device 102. Content services 1912 may be provided as a service over the Internet and/or over a network subscriber network, such as a cellular or Wi-Fi network. [00153] The 1910 platform can abstract features and functions to connect the computing device 102 with other computing devices. The 1910 platform can also serve to abstract resource scaling to provide a level of scale corresponding to the demand found for the 1912 content services that are implemented through the 1910 platform. of the functionality described herein can be distributed across the entire 1900 system. For example, the functionality can be implemented in part on computing device 102 as well as across platform 1910 which abstracts the functionality of cloud 1908. [00154] FIGURE 20 illustrates various components of an exemplary device 2000 that may be implemented with any type of computing device as described with reference to FIGURES 1 and 19 to implement embodiments of the techniques described herein. Device 2000 includes communication devices 2002 that enable wired and/or wireless communication of device 2004 data (eg, data received, data being received, data scheduled for transmission, data packets of data, etc. .). Device 2004 data or other device content may include device configuration settings, media content stored on the device, and/or information associated with a user of the device. Media content stored on Device 2000 can include any type of audio, video, and/or image data. Device 2000 includes one or more data inputs 2006 through which any type of data, media content, and/or inputs may be received, such as user selectable inputs, messages, music, television media content, media content. recorded video, and any other type of audio, video, and/or image data received from any content and/or data source. [00155] Device 2000 also includes communication interfaces 2008 that can be implemented as any one or more of a serial and/or parallel interface, a wireless interface, any type of network interface, a modem, and any other type of communication interface. The 2008 communication interfaces provide a connection and/or communication links between device 2000 and a communication network through which other electronic, computing and communication devices communicate data with device 2000. [00156] Device 2000 includes one or more 2010 processors (e.g., any of microprocessors, controllers, and the like) which process various computer-executable instructions to control the operation of device 2000 and to implement embodiments of the techniques described herein. Alternatively or in addition, device 2000 can be implemented with any one or combination of hardware, firmware, or fixed logic circuitry that is implemented in connection with the processing and control circuits which are generally identified in 2012. Although not shown, device 2000 may include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that uses any of a variety of bus architectures. [00157] Device 2000 also includes computer-readable media 2014, such as one or more memory components, examples of which include random access memory (RAM), non-volatile memory (eg, any one or more than one memory only (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device can be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable compact disk (CD), any type of digital versatile disk (DVD), and the like. Device 2000 may also include a mass storage media device 2016. [00158] Computer readable media 2014 provides data storage mechanisms to store the 2004 device data, as well as various 2018 device applications and any other types of information and/or data relating to operational aspects of the 2000 device. , a 2020 operating system can be maintained as a computer application with the 2014 computer-readable media and run on 2010 processors. The 2018 device applications can include a device manager (e.g., a control application, a software, a signal processing and control module, code that is native to a specific device, a hardware abstraction layer for a specific device, etc.). The 2018 device applications also include any system components or modules to implement the modalities of the techniques described herein. In this example, device applications 2018 include an interface application 2022 and an input/output module 2024 which are shown as software modules and/or computer applications. The 2024 input/output module is representative of software that is used to interface with a device configured to capture inputs, such as a touch screen, trackpad, camera, microphone, and so on. Alternatively or in addition, the interface application 2022 and the input/output module 2024 can be implemented as hardware, software, firmware, or any combination thereof. In addition, the input/output module 2024 can be configured to support multiple input devices, such as separate devices to capture visual and audio inputs, respectively. [00159] Device 2000 also includes a 2026 audio and/or video input-output system that provides audio data to a 2028 audio system and/or provides video data to a 2030 display system. The 2028 audio system and/or display system 2030 can include any device that processes, displays, and/or otherwise renders audio, video, and image data. Video signals and audio signals can be communicated from device 200 to an audio device and/or a display device to an RF (radio frequency) connection, S-video connection, composite video connection, connection of component video, DVI (digital video interface), analog audio connection, or other similar communication connection. In one embodiment, audio system 2028 and/or display system 2030 are implemented as external components of device 2000. Alternatively, audio system 2028 and/or display system 2030 are implemented as integrated components of exemplary device 2000. . CONCLUSION [00160] Although the invention has been described in specific language for structural features and/or methodological acts, it should be understood that the invention defined in the appended claims is not necessarily limited to the specific characteristics or acts described. Rather, specific features and acts are described as exemplary ways to implement the claimed invention.
权利要求:
Claims (10) [0001] 1. Method implemented by a computing device (102) characterized in that it comprises the steps: monitoring (402) the network traffic (204) received by a network interface device (112) of the computing device (102) , network traffic being received over a variety of different notification channels; recognizing (404) a traffic pattern (202) in the monitored network traffic; identifying (406) an application of the computing device (102) that corresponds to the recognized traffic pattern (202); responsive to identification, merge the data received through the variety of different notification channels and activate (408) of at least a portion of the identified application at a defined interval to communicate the merged data to the application. [0002] 2. Method according to claim 1, characterized in that the recognition (404) is performed by comparing the network traffic (204) with the traffic pattern (202) that was pre-registered by the identified application. [0003] 3. Method according to claim 1, characterized in that identification (406) is performed by examining a computing device network stack (102) to determine which of a plurality of computing device applications ( 102) must be enabled for the traffic pattern (202). [0004] 4. Method according to claim 1, characterized in that the activation (408) includes activating the portion of the identified application that corresponds to the network functionality (206) of the identified application and not activating another portion of the identified application that does not corresponds to the network functionality (206) of the identified application. [0005] 5. Method according to claim 4, characterized in that the other portion involves the generation of a user interface of the identified application. [0006] 6. Method according to claim 1, characterized in that the network interface device (112) is implemented at least partially by the computing device (102) as a virtual device. [0007] 7. Method according to claim 1, characterized in that monitoring (402), recognition (404) and identification (406) are performed while the identified application is in a suspended state. [0008] 8. Method according to claim 7, characterized in that the identified application is placed in the suspended state in response to the removal of focus from a user interface of the identified application. [0009] 9. Method according to claim 8, characterized in that the focus is removed due to the minimization of the user interface, the removal of the user interface from a background of a desktop user interface or the receipt of input that indicate an interaction with a user interface of another application. [0010] 10. Method according to claim 1, characterized by the fact that monitoring (402), recognition (404), identification (406) and activation (408) are performed through the execution of an operating system ( 116) in the computing device (102).
类似技术:
公开号 | 公开日 | 专利标题 BR112014005354B1|2021-07-13|METHOD IMPLEMENTED BY A COMPUTING DEVICE US9736050B2|2017-08-15|Keep alive management US9939876B2|2018-04-10|Operating system management of network interface devices TWI487322B|2015-06-01|Method and system for managing network power policy and configuration of data center bridging US9712647B2|2017-07-18|Optimization of computing resources through monitoring and manipulating availabilty WO2021022926A1|2021-02-11|Network-based control method for power consumption of applications, terminal and storage medium EP3161672B1|2020-08-19|Retrieval of a command from a management server
同族专利:
公开号 | 公开日 EP2754001A1|2014-07-16| CA2986723A1|2013-03-14| US9596153B2|2017-03-14| CA2986723C|2019-09-17| EP2754001B1|2018-02-14| JP6385276B2|2018-09-05| WO2013036255A1|2013-03-14| US20160226727A1|2016-08-04| AU2011376302B2|2017-03-30| KR101928602B1|2018-12-12| CN107749797A|2018-03-02| EP2754001A4|2015-04-29| RU2014108876A|2015-09-20| US9294379B2|2016-03-22| US20130067060A1|2013-03-14| MX342074B|2016-09-13| RU2595968C2|2016-08-27| US9049660B2|2015-06-02| BR112014005354A2|2017-03-28| CA2847175C|2020-07-07| CN107749797B|2021-01-01| CA2847175A1|2013-03-14| US20150215185A1|2015-07-30| CN103051463A|2013-04-17| AU2017201532A1|2017-03-23| KR20140074291A|2014-06-17| AU2017201532B2|2018-02-01| MX2014002798A|2014-04-10| AU2011376302A1|2014-03-20| JP2014526731A|2014-10-06|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 US4635187A|1983-12-19|1987-01-06|At&T Bell Laboratories|Control for a multiprocessing system program process| US5699511A|1995-10-10|1997-12-16|International Business Machines Corporation|System and method for dynamically varying low level file system operation timeout parameters in network systems of variable bandwidth| US6212175B1|1997-04-22|2001-04-03|Telxon Corporation|Method to sustain TCP connection| US6938040B2|1998-04-28|2005-08-30|International Business Machines Corporation|Pattern matching in communications network where first memory stores set of patterns, and second memory stores mask data identifying patterns in the first memory| US6904519B2|1998-06-12|2005-06-07|Microsoft Corporation|Method and computer program product for offloading processing tasks from software to hardware| US6640268B1|1998-08-28|2003-10-28|Intel Corporation|Dynamic polling mechanism for wireless devices| JP2000235433A|1999-02-16|2000-08-29|Toshiba Corp|Portable telephone communication controller| US7103806B1|1999-06-04|2006-09-05|Microsoft Corporation|System for performing context-sensitive decisions about ideal communication modalities considering information about channel reliability| US7213063B2|2000-01-18|2007-05-01|Lucent Technologies Inc.|Method, apparatus and system for maintaining connections between computers using connection-oriented protocols| US6976071B1|2000-05-03|2005-12-13|Nortel Networks Limited|Detecting if a secure link is alive| US7562147B1|2000-10-02|2009-07-14|Microsoft Corporation|Bi-directional HTTP-based reliable messaging protocol and system utilizing same| KR100439723B1|2001-11-06|2004-07-12|삼성전자주식회사|Portable Computer| US7047428B2|2002-01-03|2006-05-16|Broadcom Corporation|Method and apparatus for performing wake on LAN power management| KR100459126B1|2002-01-09|2004-12-03|엘지전자 주식회사|method for controlling the session maintenance in the communication network| US6943667B1|2002-02-25|2005-09-13|Palm, Inc.|Method for waking a device in response to a wireless network activity| US7564810B2|2002-05-08|2009-07-21|Microsoft Corporation|Method and system for managing power consumption of a network interface module in a wireless computing device| DE10225578A1|2002-06-10|2003-12-18|Philips Intellectual Property|Activating application-executing device in motor vehicle using controller area network bus, by supplying voltage to protocol controller unit if there is incoming message on bus| US7152111B2|2002-08-15|2006-12-19|Digi International Inc.|Method and apparatus for a client connection manager| US7120688B1|2002-09-03|2006-10-10|Bellsouth Intellectual Property Corp.|Systems and methods for an infrastructure centralized heartbeat| US7274929B1|2002-12-16|2007-09-25|Banginwar Rajesh P|Power management within a wireless communication system| US7340615B2|2003-01-31|2008-03-04|Microsoft Corporation|Method and apparatus for managing power in network interface modules| US7676580B2|2003-03-27|2010-03-09|Microsoft Corporation|Message delivery with configurable assurances and features between two endpoints| JP3882917B2|2003-04-03|2007-02-21|日本アイ・ビー・エム株式会社|Information processing system, information processing apparatus, and program| JP2004362020A|2003-06-02|2004-12-24|Fujitsu Ltd|Terminal device with selection function of communication media in consideration of traffic pattern| US7447918B2|2003-08-19|2008-11-04|Intel Corporation|Method, apparatus and system for enabling a new data processing device operating state| US7512679B2|2003-08-29|2009-03-31|International Business Machines Corporation|Apparatus and method to select a captain from a plurality of control nodes| JP4222205B2|2003-12-25|2009-02-12|株式会社デンソー|Solenoid spool valve| US20050198257A1|2003-12-29|2005-09-08|Gupta Ajay G.|Power conservation in wireless devices| US7426569B2|2004-02-25|2008-09-16|Research In Motion Limited|System and method for maintaining a network connection| US20050239518A1|2004-04-21|2005-10-27|D Agostino Anthony|Systems and methods that provide enhanced state machine power management| DE602005022437D1|2004-06-02|2010-09-02|Nokia Corp|ROAMING PROCEDURES BETWEEN NETWORKS| US7584274B2|2004-06-15|2009-09-01|International Business Machines Corporation|Coordinating use of independent external resources within requesting grid environments| US7675916B2|2004-07-12|2010-03-09|At&T Intellectual Property I, L.P.|Systems and methods for dynamically adjusting QoS parameters| JP4196004B2|2004-07-12|2008-12-17|パナソニック株式会社|Multimedia information receiving method, program for realizing the same, and multimedia information receiving apparatus| JP4634456B2|2004-09-09|2011-02-23|アバイアインコーポレーテッド|Method and system for security of network traffic| JP4275610B2|2004-11-30|2009-06-10|京セラ株式会社|Mobile phone terminal, key notification method, and computer program therefor| US7899921B2|2004-12-08|2011-03-01|Microsoft Corporation|Verifying and maintaining connection liveliness in a reliable messaging for web services environment| US7496059B2|2004-12-09|2009-02-24|Itt Manufacturing Enterprises, Inc.|Energy-efficient medium access control protocol and system for sensor networks| US7460556B2|2005-02-17|2008-12-02|International Business Machines Corporation|Autonomic adjustment of connection keep-alives| US7631202B2|2005-03-29|2009-12-08|Microsoft Corporation|Power management of wireless local area network interface devices| US20060252449A1|2005-04-26|2006-11-09|Sridhar Ramesh|Methods and apparatus to provide adaptive power save delivery modes in wireless local area networks | US7668100B2|2005-06-28|2010-02-23|Avaya Inc.|Efficient load balancing and heartbeat mechanism for telecommunication endpoints| US7809386B2|2005-06-29|2010-10-05|Nokia Corporation|Local network proxy for a remotely connected mobile device operating in reduced power mode| US7440781B2|2005-10-07|2008-10-21|Symbol Technologies, Inc.|System and method for power conservation in a wireless device| US20070112954A1|2005-11-15|2007-05-17|Yahoo! Inc.|Efficiently detecting abnormal client termination| JP4622835B2|2005-12-07|2011-02-02|株式会社日立製作所|Virtual computer system and network communication method thereof| AT426283T|2005-12-15|2009-04-15|Nokia Corp|METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR MAINTAINING IMAGE ALLOCATIONS| GB0526029D0|2005-12-21|2006-02-01|Nokia Corp|Managing connections in a wireless communications network| JP4898225B2|2006-01-06|2012-03-14|キヤノン株式会社|Application device and method for restoring power of application device| US7624181B2|2006-02-24|2009-11-24|Cisco Technology, Inc.|Techniques for authenticating a subscriber for an access network using DHCP| JP4405472B2|2006-02-27|2010-01-27|株式会社東芝|Communication system and server device and terminal device thereof| US7523197B2|2006-03-09|2009-04-21|International Business Machines Corporation|Method for IP address discovery in rapidly changing network environment| US7693146B2|2006-03-10|2010-04-06|Cisco Technology, Inc.|Method and system for filtering traffic from unauthorized sources in a multicast network| US20070233815A1|2006-03-30|2007-10-04|Inventec Corporation|Initialization picture displaying method| US7779451B2|2006-03-30|2010-08-17|Intel Corporation|Securing wakeup network events| US20070233855A1|2006-04-03|2007-10-04|International Business Machines Corporation|Adaptible keepalive for enterprise extenders| US7792526B2|2006-05-15|2010-09-07|Research In Motion Limited|Adjustment of background scanning interval based on network usage| US8565715B2|2006-05-19|2013-10-22|Alcatel Lucent|Mobile-initiated location measurement| US7729357B2|2006-06-20|2010-06-01|General Instrument Corporation|Method and apparatus for enabling a network device to asynchronously access a set top box in a way that conserves network bandwidth| US7729273B2|2006-06-20|2010-06-01|General Instrument Corporation|Method and apparatus for conserving bandwidth between a network device and a remote device| US7672264B2|2006-06-21|2010-03-02|International Business Machines Corporation|Method of pausing keep-alive messages and roaming for virtual private networks on handheld devices to save battery power| US8260372B2|2006-06-30|2012-09-04|Nokia Corporation|Traffic monitoring for regulating states of a terminal| JP2008046940A|2006-08-18|2008-02-28|Hitachi Ltd|Information processing apparatus| US8849961B2|2006-09-06|2014-09-30|Nokia Corporation|Mobile network optimized method for keeping an application IP connection always on| US8194636B1|2006-10-05|2012-06-05|Dust Networks, Inc.|Adaptive timing synchronization for mesh networks| JP2008107914A|2006-10-23|2008-05-08|Denso Corp|Microcomputer, program and electronic control device for vehicle| US8220049B2|2006-12-28|2012-07-10|Intel Corporation|Hardware-based detection and containment of an infected host computing device| US7779282B2|2006-12-29|2010-08-17|Intel Corporation|Maintaining network connectivity while operating in low power mode| US7768939B1|2007-01-02|2010-08-03|Juniper Networks, Inc.|Network proxy with asymmetric connection connectivity| US20080165796A1|2007-01-05|2008-07-10|International Business Machines Corporation|Method for a heartbeat algorithm for a dynamically changing network environment| US7881318B2|2007-02-28|2011-02-01|Microsoft Corporation|Out-of-band keep-alive mechanism for clients associated with network address translation systems| US7693084B2|2007-02-28|2010-04-06|Microsoft Corporation|Concurrent connection testing for computation of NAT timeout period| US8023432B2|2007-03-12|2011-09-20|Microsoft Corporation|Cost reduction of NAT connection state keep-alive| US20080240140A1|2007-03-29|2008-10-02|Microsoft Corporation|Network interface with receive classification| US20080239988A1|2007-03-29|2008-10-02|Henry Ptasinski|Method and System For Network Infrastructure Offload Traffic Filtering| US20080295173A1|2007-05-21|2008-11-27|Tsvetomir Iliev Tsvetanov|Pattern-based network defense mechanism| US7843915B2|2007-08-01|2010-11-30|International Business Machines Corporation|Packet filtering by applying filter rules to a packet bytestream| US7957335B2|2007-08-23|2011-06-07|Cisco Technology, Inc.|Dynamic power usage management based on historical traffic pattern data for network devices| US8050207B2|2007-08-31|2011-11-01|Hewlett-Packard Development Company, L.P.|Power saving techniques based on coverage conditions| US8086886B2|2007-08-31|2011-12-27|Silicon Image, Inc.|Group power management of network devices| JP5008138B2|2007-11-12|2012-08-22|株式会社リコー|Information processing apparatus, information processing method, program, and recording medium| JP5444639B2|2007-11-20|2014-03-19|パナソニック株式会社|Server device and distributed server system| US8024431B2|2007-12-21|2011-09-20|Domingo Enterprises, Llc|System and method for identifying transient friends| US20090205038A1|2008-02-08|2009-08-13|Microsoft Corporation|Enabling Wake on LAN Behind NATs and Firewalls| US20090210519A1|2008-02-18|2009-08-20|Microsoft Corporation|Efficient and transparent remote wakeup| US7936708B2|2008-02-26|2011-05-03|Intel Corporation|Device, system, and method of wireless network selection and handover| US20090240794A1|2008-03-20|2009-09-24|Huaiyu Liu|Techniques utilizing a layer-2 proxy for energy-efficient service discovery and connectivity in networks| US20090271517A1|2008-04-25|2009-10-29|Webmessenger, Inc.|Method and apparatus for wireless device reconnection handling| US8009648B2|2008-05-08|2011-08-30|Harris Corporation|Mobile ad hoc network with isosynchronous communications and related methods| US8045865B2|2008-06-12|2011-10-25|Xerox Corporation|Automatic optimization of HFSI warning thresholds based on actual service interval statistics| US8072912B2|2008-06-25|2011-12-06|Intel Corporation|Techniques for management of shared resources in wireless multi-communication devices| CN102090115A|2008-07-11|2011-06-08|马维尔国际贸易有限公司|Power save mode for access points| US8510577B2|2008-07-28|2013-08-13|Microsoft Corporation|Reducing power consumption by offloading applications| US20100039971A1|2008-08-15|2010-02-18|Hong Kong Applied Science and Technology Research Institute, Co.|Power Management Method and Communication System| US8064362B2|2008-08-21|2011-11-22|Cisco Technology, Inc.|Wide area network optimization proxy routing protocol| US20100058082A1|2008-08-27|2010-03-04|Lenovo Ple., Ltd.|Maintaining network link during suspend state| US9521625B2|2008-09-15|2016-12-13|Apple Inc.|Electronic devices for receiving pushed data| US8036115B2|2008-09-17|2011-10-11|Intel Corporation|Synchronization of multiple incoming network communication streams| US20100332212A1|2008-09-19|2010-12-30|Ori Finkelman|Method and apparatus for sleep and wake of computer devices| US20100074108A1|2008-09-25|2010-03-25|Alcatel-Lucent|Virtual partitioned policy space| US20100106874A1|2008-10-28|2010-04-29|Charles Dominguez|Packet Filter Optimization For Network Interfaces| CN101751361B|2008-12-16|2012-10-10|联想有限公司|Switchover method for controlling data transmission interface in mobile terminal and terminal equipment| US8498229B2|2008-12-30|2013-07-30|Intel Corporation|Reduced power state network processing| US9104406B2|2009-01-07|2015-08-11|Microsoft Technology Licensing, Llc|Network presence offloads to network interface| US8331274B2|2009-01-12|2012-12-11|Broadcom Corporation|Waking up a VoIP terminal device from a power-saving state| US7978630B2|2009-04-30|2011-07-12|Sony Ericsson Mobile Communications Ab|Method and system of maintaining a connection in a network communication system| US8375134B2|2009-06-08|2013-02-12|Microsoft Corporation|Determining an efficient keep-alive interval for a network connection| US8065419B2|2009-06-23|2011-11-22|Core Wireless Licensing S.A.R.L.|Method and apparatus for a keep alive probe service| US8422365B2|2009-09-21|2013-04-16|Cisco Technology, Inc.|Energy efficient scaling of network appliance service performance| US20110102157A1|2009-11-05|2011-05-05|Nokia Corporation|Wake-Up For Wireless Devices Based On Requested Data| AU2010320843B2|2009-11-23|2014-07-10|Blackberry Limited|Method and apparatus for state/mode transitioning| US8155625B2|2009-12-22|2012-04-10|Motorola Mobility, Inc.|Methods and apparatus for conserving energy used by a mobile device| US9009297B2|2010-01-15|2015-04-14|Apple Inc.|Method and apparatus for idling a network connection| JP4970560B2|2010-01-23|2012-07-11|レノボ・シンガポール・プライベート・リミテッド|Computers that reduce power consumption while maintaining certain functions| CN102014148A|2010-08-19|2011-04-13|上海酷吧信息技术有限公司|Method for automatically recommending friend of same region in instant communication of mobile phone| US8635630B2|2010-10-25|2014-01-21|Microsoft Corporation|Application lifetime management| US8326985B2|2010-11-01|2012-12-04|Seven Networks, Inc.|Distributed management of keep-alive message signaling for mobile network resource conservation and optimization| WO2012060995A2|2010-11-01|2012-05-10|Michael Luna|Distributed caching in a wireless network of content delivered for a mobile application over a long-held request| US8843153B2|2010-11-01|2014-09-23|Seven Networks, Inc.|Mobile traffic categorization and policy for network use optimization while preserving user experience| KR20120070385A|2010-12-21|2012-06-29|삼성전자주식회사|Apparatus and method for controling mobile network for energy efficient| US9465427B2|2011-06-30|2016-10-11|International Business Machines Corporation|Software-centric power management by indirectly determining that user is not actively using computer program running on computing device| US8239698B2|2011-07-01|2012-08-07|Intel Corporation|System and method for maintaining connectivity to remote application servers| US8566625B2|2011-07-01|2013-10-22|Intel Corporation|System and method for determining transmitting frequency to maintain remote application server connectivity| US8917742B2|2011-07-13|2014-12-23|Microsoft Corporation|Mechanism to save system power using packet filtering by network interface| US9049660B2|2011-09-09|2015-06-02|Microsoft Technology Licensing, Llc|Wake pattern management| US8806250B2|2011-09-09|2014-08-12|Microsoft Corporation|Operating system management of network interface devices| US8892710B2|2011-09-09|2014-11-18|Microsoft Corporation|Keep alive management| US8621494B2|2011-09-12|2013-12-31|Microsoft Corporation|Managing processes within suspend states and execution states| US9787463B2|2011-10-14|2017-10-10|Maxlinear, Inc.|Method and system for server-side message handling in a low-power wide area network| US8307234B2|2012-01-14|2012-11-06|Intel Corporation|Maintaining connectivity during low power operation| KR20130087853A|2012-01-30|2013-08-07|삼성전자주식회사|Power control system and method for operating the same| US9277500B1|2012-09-10|2016-03-01|Amazon Technologies, Inc.|Power efficient wireless connectivity| US9037887B2|2012-09-26|2015-05-19|Intel Corporation|Energy-efficient application content update and sleep mode determination|US8806250B2|2011-09-09|2014-08-12|Microsoft Corporation|Operating system management of network interface devices| US8892710B2|2011-09-09|2014-11-18|Microsoft Corporation|Keep alive management| US9049660B2|2011-09-09|2015-06-02|Microsoft Technology Licensing, Llc|Wake pattern management| EP2807595A4|2012-01-26|2016-02-24|Hewlett Packard Development Co|Control access based on network status| US10075519B2|2013-01-10|2018-09-11|Telefonaktiebolaget Lm Ericsson |Connection mechanism for energy-efficient peer-to-peer networks| US9491067B2|2013-04-09|2016-11-08|Cisco Technology, Inc.|Timeout for identifying network device presence| US9491032B2|2013-05-29|2016-11-08|Microsoft Technology Licensing, Llc|Pattern coalescing for remote wake-enabled applications| CN108400946B|2013-06-11|2019-09-17|杭州硕文软件有限公司|It is a kind of for reducing the method, apparatus, system and medium of Internet traffic| CN104469901B|2013-09-17|2018-09-07|华为终端(东莞)有限公司|The method and device of data processing| US9473506B1|2013-10-15|2016-10-18|Progress Software Corporation|Secure file transfer and notification server| US9531678B1|2013-10-15|2016-12-27|Progress Software Corporation|On-premises data access and firewall tunneling| KR101840245B1|2013-11-28|2018-03-20|후아웨이 디바이스컴퍼니 리미티드|A method for transmitting a heartbeat message and a mobile terminal| US20160073347A1|2014-09-10|2016-03-10|Microsoft Corporation|Device Proximity Detection Implemented In Hardware| TWI577154B|2014-10-31|2017-04-01|宏碁股份有限公司|Method for keeping remote connection, electronic device and sever| JP6455106B2|2014-12-01|2019-01-23|富士ゼロックス株式会社|Information processing apparatus and program| JP6511786B2|2014-12-03|2019-05-15|富士ゼロックス株式会社|INFORMATION PROCESSING APPARATUS AND PROGRAM| US10932192B2|2016-01-12|2021-02-23|Qualcomm Incorporated|EMTC power saving modeenhancements for service outage| DE102016103928A1|2016-03-04|2017-09-07|Eaton Electrical Ip Gmbh & Co. Kg|Bus arrangement and method for operating a bus arrangement| US9793919B1|2016-12-08|2017-10-17|Advanced Micro Devices, Inc.|Compression of frequent data values across narrow links| CN111066374A|2017-07-18|2020-04-24|惠普发展公司,有限责任合伙企业|Device management| US10616182B1|2017-11-30|2020-04-07|Progress Software Corporation|Data access and firewall tunneling using a custom socket factory| KR20210001740A|2019-06-28|2021-01-06|삼성전자주식회사|Display apparatus and operating method of the same dsiplay apparatus|
法律状态:
2018-02-06| B25A| Requested transfer of rights approved|Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US) | 2018-12-26| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]| 2019-10-08| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]| 2021-05-11| B09A| Decision: intention to grant [chapter 9.1 patent gazette]| 2021-07-13| B16A| Patent or certificate of addition of invention granted|Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 10/10/2011, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 US13/229,388|US9049660B2|2011-09-09|2011-09-09|Wake pattern management| US13/229,388|2011-09-09| PCT/US2011/055655|WO2013036255A1|2011-09-09|2011-10-10|Wake pattern management| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|