Patents by Inventor Sanjib Saha
Sanjib Saha has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 9128180Abstract: Techniques and tools for reducing power consumption of computing devices (e.g., mobile devices such as mobile phones and tablet computers) that perform position tracking operations are described. In described examples, a low-power processor calculates (e.g., in real time) position information (e.g., GPS position fixes) based on information received from a positioning system (e.g., GPS) and stores the position information for later use in a buffer associated with the low-power processor (e.g., in storage on the low-power processor). Described examples allow position information to be calculated in real time and stored while the device is in a low-power state, and can be used with location-based applications that do not require position information to be delivered to the application in real time.Type: GrantFiled: March 16, 2012Date of Patent: September 8, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Sanjib Saha, Gang Zhao, Ashish Gadre
-
Publication number: 20150141037Abstract: Systems and methods disclosed herein may include tracking one or more geo-fences using a GNSS hardware processor within a computing device. The tracking may use at least one GNSS signal. State changes of the one or more geo-fences during the tracking may be saved in a shared state database. The shared state database may be shared between the GNSS hardware processor and an application processor within the computing device. Upon detecting a deterioration of the at least one GNSS signal, tracking the one or more geo-fences may be switched from using the GNSS hardware processor to using the application processor. After the switching, an initial state of each of the one or more geo-fences may be set by using states currently stored in the shared state database prior to the switching.Type: ApplicationFiled: November 21, 2013Publication date: May 21, 2015Applicant: Microsoft CorporationInventors: Sanjib Saha, Fernando Gonzalez, Shaun Hedrick, Parmjeet Singh, Ashish Gadre, Frank Gorgenyi, Mark Inderhees, Janet Schneider, Stuart Harper
-
Publication number: 20140370909Abstract: Various different areas of interest are identified, these areas being geographic areas that are also referred to as geo-fences. Whether a computing device is in a geo-fence can be determined based on the location of the geo-fence and the location of the computing device. The location of a computing device can be determined using various different location determination techniques, such as wireless networking triangulation, cellular positioning, Global Navigation Satellite System positioning, network address positioning, and so forth. Various power saving techniques are implemented to determine which techniques are used and when such techniques are used to reduce power consumption in the computing device.Type: ApplicationFiled: June 14, 2013Publication date: December 18, 2014Inventors: Lanny D. Natucci, JR., Janet L. Schneider, Mark A. Inderhees, Robert R. Dufalo, Jonathan M. Kay, Cristina del Amo Casado, Sanjib Saha, Fernando Gonzalez, Priyanka B. Vegesna
-
Publication number: 20140370911Abstract: A device location is determined, and the location of an area of interest that is a geographic area referred to as a geo-fence is identified. Multiple geo-fences can be identified by the device, and different geo-fences can be associated with different programs on the device. An operating system of the device implements multiple different periods of operation for the device, including a conservation period during which certain programs are not typically scheduled to run, and an execution period during which such programs are typically scheduled to run. A system identifies geo-fence events, which occur when the device enters or exits the geo-fence. The system maintains a record of the geo-fence events for each of multiple geo-fences, and provides to a program selected ones of those geo-fence events at a time when the program is scheduled to run on the device during an execution period of the operating system.Type: ApplicationFiled: June 14, 2013Publication date: December 18, 2014Inventors: Frank Gorgenyi, Daniel Estrada Alva, Fernando Gonzalez, Sanjib Saha
-
Publication number: 20140370910Abstract: The location of a computing device is determined, and the location of an area of interest that is a geographic area referred to as a geo-fence is identified. The accuracy of the determined location of the computing device has an associated uncertainty, so the exact position of the computing device cannot typically be pinpointed. In light of this, the uncertainty associated with the determined location is evaluated relative to the size of the geo-fence in order to determine whether the computing device is inside the geo-fence or outside the geo-fence. Based on this determination, various actions can be taken if the user is entering the geo-fence, exiting the geo-fence, remaining in the geo-fence for at least a threshold amount of time, and so forth.Type: ApplicationFiled: June 14, 2013Publication date: December 18, 2014Inventors: Lanny D. Natucci, JR., Janet L. Schneider, Mark A. Inderhees, Frank Gorgenyi, Stuart J. Harper, Cristina del Amo Casado, Fernando Gonzalez, Sanjib Saha, Shaun C. Hedrick
-
Patent number: 8825377Abstract: A source device can navigate towards a moving destination target device, such as when two mobile phones are moving towards each other. The source device can receive an initial position of the target and a route to the target. As the source device and target device simultaneously move, the route can be updated. For example, if a distance of movement exceeds a threshold (e.g., 1 mile) the route can be updated. In another embodiment, a target device can switch between position tracking devices so as to provide less accurate position information, but save power, or provide high accuracy position information at the cost of higher power consumption. Generally, the switching between position tracking devices and the frequency at which the route to the destination point can be based on the distance apart between the source device and target device.Type: GrantFiled: October 19, 2012Date of Patent: September 2, 2014Assignee: Microsoft CorporationInventors: David Michael Callaghan, Sergey Karamov, Sanjib Saha
-
Patent number: 8755397Abstract: Embodiments are directed to promptly reestablishing communication between nodes in a dynamic computer network and dynamically maintaining an address list in an unstable network. A computer system sends a message to other message queuing nodes in a network, where each node in the message queuing network includes a corresponding persistent unique global identifier. The computer system maintains a list of unique global identifiers and the current network addresses of those network nodes from which the message queuing node has received a message or to which the message queuing node has sent a message. The computer system goes offline for a period of time and upon coming back online, sends an announcement message to each node maintained in the list indicating that the message queuing node is ready for communication in the message queuing network, where each message includes the destination node's globally unique identifier and the node's current network address.Type: GrantFiled: February 8, 2012Date of Patent: June 17, 2014Assignee: Microsoft CorporationInventors: Sanjib Saha, Affan Arshad Dar, Xin Chen, Manohar Bangalore Puttaswamaiah
-
Publication number: 20140114564Abstract: A source device can navigate towards a moving destination target device, such as when two mobile phones are moving towards each other. The source device can receive an initial position of the target and a route to the target. As the source device and target device simultaneously move, the route can be updated. For example, if a distance of movement exceeds a threshold (e.g., 1 mile) the route can be updated. In another embodiment, a target device can switch between position tracking devices so as to provide less accurate position information, but save power, or provide high accuracy position information at the cost of higher power consumption. Generally, the switching between position tracking devices and the frequency at which the route to the destination point can be based on the distance apart between the source device and target device.Type: ApplicationFiled: October 19, 2012Publication date: April 24, 2014Applicant: Microsoft CorporationInventors: David Michael Callaghan, Sergey Karamov, Sanjib Saha
-
Patent number: 8606843Abstract: An XLANG/s compiler detects convoy scenarios during compilation and generates runtime directives to correctly correlate incoming messages with business process instances. A convoy scenario, present in event driven processes, is defined by a correlation set initialized during a receive operation which is provided to a subsequent receive operation. The compiler detects those convoy scenarios by analyzing the control and dataflow of a XLANG/s program. Three convoy patterns are distinguished: (1) activation convoys, (2) uniform sequential convoys, and (3) non-uniform sequential convoys. XLANG/s allows declarative descriptions of convoy scenarios without requiring an understanding of the low-level details supporting their correct execution. Convoy scenarios are processed by statically analyzing a written workflow application to deduce the nature and type of convoy scenarios used by the application. Information is extracted at compile time to support the runtime infrastructure.Type: GrantFiled: March 25, 2008Date of Patent: December 10, 2013Assignee: Microsoft CorporationInventors: Bimal Mehta, Johannes Klein, Lee Graber, Paul Maybee, Sriram Balasubramanian, Sanjib Saha, Satish R. Thatte, Paul F. Ringseth
-
Publication number: 20130244686Abstract: Techniques and tools for reducing power consumption of computing devices (e.g., mobile devices such as mobile phones and tablet computers) that perform position tracking operations are described. In described examples, a low-power processor calculates (e.g., in real time) position information (e.g., GPS position fixes) based on information received from a positioning system (e.g., GPS) and stores the position information for later use in a buffer associated with the low-power processor (e.g., in storage on the low-power processor). Described examples allow position information to be calculated in real time and stored while the device is in a low-power state, and can be used with location-based applications that do not require position information to be delivered to the application in real time.Type: ApplicationFiled: March 16, 2012Publication date: September 19, 2013Applicant: Microsoft CorporationInventors: Sanjib Saha, Gang Zhao, Ashish Gadre
-
Patent number: 8516498Abstract: A system and method of processing a message in an asynchronous architecture is provided. In the method, a determination is made that a response to a message sent by an instance of software code is to be received, where the response indicates whether the message succeeded or failed. Another determination is made as to whether the response has been received. If the response has not been received, the instance of the software code is stored in memory, thereby suspending the instance. The response is received, the instance resumed and the response is processed.Type: GrantFiled: October 31, 2003Date of Patent: August 20, 2013Assignee: Microsoft CorporationInventors: Bimal Mehta, Paul Maybee, Lee Graber, Alexander Dadjomov, Jean-Emile Elien, Eldar Azerovich Musayev, Johannes Klein, Sanjib Saha, Kevin Bowen Smith
-
Patent number: 8443379Abstract: A queue management system may store a queue of messages in a main queue. When a message is processed by an application, the message may be moved to a subqueue. In the subqueue, the message may be locked from other applications. After processing the message, the application may delete the message from the subqueue and complete the action required. If the application fails to respond in a timely manner, the message may be moved from the subqueue to the main queue and released for another application to service the message. If the application responds after the time out period, a fault may occur when the application attempts to delete the message from the subqueue. Such an arrangement allows a “peek and lock” functionality to be implemented using a subqueue.Type: GrantFiled: June 18, 2008Date of Patent: May 14, 2013Assignee: Microsoft CorporationInventors: Affan Arshad Dar, Sanjib Saha
-
Publication number: 20120134370Abstract: Embodiments are directed to promptly reestablishing communication between nodes in a dynamic computer network and dynamically maintaining an address list in an unstable network. A computer system sends a message to other message queuing nodes in a network, where each node in the message queuing network includes a corresponding persistent unique global identifier. The computer system maintains a list of unique global identifiers and the current network addresses of those network nodes from which the message queuing node has received a message or to which the message queuing node has sent a message. The computer system goes offline for a period of time and upon coming back online, sends an announcement message to each node maintained in the list indicating that the message queuing node is ready for communication in the message queuing network, where each message includes the destination node's globally unique identifier and the node's current network address.Type: ApplicationFiled: February 8, 2012Publication date: May 31, 2012Applicant: Microsoft CorporationInventors: Sanjib Saha, Affan Arshad Dar, Xin Chen, Manohar Bangalore Puttaswamaiah
-
Patent number: 8150994Abstract: Systems and methods for controlling the work load on a distributed system comprising a plurality of stages are provided. The capacity of a present stage is monitored, using either various resources of the present stage or rates of work completion and work receipt of the present stage. Information indicating the capacity of a succeeding stage are obtained and communicated to the present stage. The monitored capacity information of the present stage and the communicated information of the succeeding stage, either alone or in combination, are used to determine if a throttling action is necessary to control the load of work at the present stage. A provided throttling technique inserts an appropriate delay before the present stage to allow the present stage to process an amount of work without saturating the capacity of the present stage. This technique is applied at each stage of the distributed system to control the work load of the overall system by controlling the work load at each stage.Type: GrantFiled: June 3, 2005Date of Patent: April 3, 2012Assignee: Microsoft CorporationInventors: Wayne A. Clark, Lee B. Graber, Kartik Paramasivam, Siddhartha Roy, Sanjib Saha, Sumitra Sujanani
-
Patent number: 8135025Abstract: Embodiments are directed to promptly reestablishing communication between nodes in a dynamic computer network and dynamically maintaining an address list in an unstable network. A computer system sends a message to other message queuing nodes in a network, where each node in the message queuing network includes a corresponding persistent unique global identifier. The computer system maintains a list of unique global identifiers and the current network addresses of those network nodes from which the message queuing node has received a message or to which the message queuing node has sent a message. The computer system goes offline for a period of time and upon coming back online, sends an announcement message to each node maintained in the list indicating that the message queuing node is ready for communication in the message queuing network, where each message includes the destination node's globally unique identifier and the node's current network address.Type: GrantFiled: June 3, 2009Date of Patent: March 13, 2012Assignee: Microsoft CorporationInventors: Sanjib Saha, Affan Arshad Dar, Xin Chen, Manohar Bangalore Puttaswamaiah
-
Patent number: 8028085Abstract: Systems and methods for reducing the latency incurred during the publication of a message in a message publication system are provided. In a message publication system wherein the publishing component and the receiving component are located within the same processing space, several of the latency components that are usually unavoidably incurred may be eliminated. In such a system, the messaging queue is not used as a medium between the two components but is instead used as a secondary back-up storage. This results in the elimination of one latency component as the message is directly published from the publishing component to the receiving component. Further time reductions or optimizations occur when the durability, or reliability, of the message publication is not a concern and the messaging queue can be completely disregarded. Yet another optimization occurs when the identity of the subscriber is known in advance by the publisher.Type: GrantFiled: June 3, 2005Date of Patent: September 27, 2011Assignee: Microsoft CorporationInventors: Jean-Emile Elien, Lee B. Graber, Sanjib Saha
-
Patent number: 8028007Abstract: Large messages in the form of hierarchically structured documents are processed in a streaming fashion using the ultimate consumer read requests as the driving force for the processing. The messages are partitioned into fixed length segments. The segments are processed in pipeline fashion. This processing chain includes simulating random access of hierarchical documents using stream transformations, mapping streams to a transport's native capabilities, composing streams into chains and using pipeline processing on the chains, staging fragments into a database and routing messages when complete messages have been formed, and providing tools to allow the end user to inspect partial messages.Type: GrantFiled: February 6, 2006Date of Patent: September 27, 2011Assignee: Microsoft CorporationInventors: Yossi Levanoni, Wei-Lun Lo, Sanjib Saha, Paul Maybee, Bimal Mehta, Lee Graber, Anandhi Somasekaran, Akash Sagar, Balinder Malhi, Allen Zhang, Siunie Sutjahjo
-
Patent number: 8010608Abstract: The subject invention provides a system and/or a method that facilitates enhancing an adapter utilizing a locking mechanism between a receive location and a process. An interface component can receive a message related to a receive location that is an endpoint. A lock component binds the receive location to the process such that the process exclusively receives the messages from the endpoint at a single instance in real time. Moreover, the lock component can provide a replacement/switching technique, wherein a process that participates in a locking relationship can be switched with another process based at least in part upon the health of the process.Type: GrantFiled: June 7, 2005Date of Patent: August 30, 2011Assignee: Microsoft CorporationInventors: Kartik Paramasivam, Sanjib Saha, Jean-Emile Elien
-
Publication number: 20100309928Abstract: Embodiments are directed to promptly reestablishing communication between nodes in a dynamic computer network and dynamically maintaining an address list in an unstable network. A computer system sends a message to other message queuing nodes in a network, where each node in the message queuing network includes a corresponding persistent unique global identifier. The computer system maintains a list of unique global identifiers and the current network addresses of those network nodes from which the message queuing node has received a message or to which the message queuing node has sent a message. The computer system goes offline for a period of time and upon coming back online, sends an announcement message to each node maintained in the list indicating that the message queuing node is ready for communication in the message queuing network, where each message includes the destination node's globally unique identifier and the node's current network address.Type: ApplicationFiled: June 3, 2009Publication date: December 9, 2010Applicant: MICROSOFT CORPORATIONInventors: Sanjib Saha, Affan Arshad Dar, Xin Chen, Manohar Bangalore Puttaswamaiah
-
Patent number: 7783742Abstract: Methods for providing dynamic process recovery that supports recovery of event driven services. The present invention addresses situations where a service-hosting process fails as well as all of the services which were running in that process. To recover from this scenario, the present invention restarts the services from a last known good state. The present invention also provides for situations where a process is shut down in a controlled manner, but the services running within it are still able to drive. Here again, the services are restarted in a secondary process. The recovery modal described here, therefore, advantageously addresses a problem in the design of a distributed event-driven environment.Type: GrantFiled: June 2, 2005Date of Patent: August 24, 2010Assignee: Microsoft CorporationInventors: Sanjib Saha, Sumitra Sujanani, Lee B. Graber