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: 9128180
    Abstract: 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: Grant
    Filed: March 16, 2012
    Date of Patent: September 8, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sanjib Saha, Gang Zhao, Ashish Gadre
  • Publication number: 20150141037
    Abstract: 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: Application
    Filed: November 21, 2013
    Publication date: May 21, 2015
    Applicant: Microsoft Corporation
    Inventors: Sanjib Saha, Fernando Gonzalez, Shaun Hedrick, Parmjeet Singh, Ashish Gadre, Frank Gorgenyi, Mark Inderhees, Janet Schneider, Stuart Harper
  • Publication number: 20140370909
    Abstract: 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: Application
    Filed: June 14, 2013
    Publication date: December 18, 2014
    Inventors: 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: 20140370911
    Abstract: 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: Application
    Filed: June 14, 2013
    Publication date: December 18, 2014
    Inventors: Frank Gorgenyi, Daniel Estrada Alva, Fernando Gonzalez, Sanjib Saha
  • Publication number: 20140370910
    Abstract: 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: Application
    Filed: June 14, 2013
    Publication date: December 18, 2014
    Inventors: 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: 8825377
    Abstract: 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: Grant
    Filed: October 19, 2012
    Date of Patent: September 2, 2014
    Assignee: Microsoft Corporation
    Inventors: David Michael Callaghan, Sergey Karamov, Sanjib Saha
  • Patent number: 8755397
    Abstract: 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: Grant
    Filed: February 8, 2012
    Date of Patent: June 17, 2014
    Assignee: Microsoft Corporation
    Inventors: Sanjib Saha, Affan Arshad Dar, Xin Chen, Manohar Bangalore Puttaswamaiah
  • Publication number: 20140114564
    Abstract: 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: Application
    Filed: October 19, 2012
    Publication date: April 24, 2014
    Applicant: Microsoft Corporation
    Inventors: David Michael Callaghan, Sergey Karamov, Sanjib Saha
  • Patent number: 8606843
    Abstract: 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: Grant
    Filed: March 25, 2008
    Date of Patent: December 10, 2013
    Assignee: Microsoft Corporation
    Inventors: Bimal Mehta, Johannes Klein, Lee Graber, Paul Maybee, Sriram Balasubramanian, Sanjib Saha, Satish R. Thatte, Paul F. Ringseth
  • Publication number: 20130244686
    Abstract: 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: Application
    Filed: March 16, 2012
    Publication date: September 19, 2013
    Applicant: Microsoft Corporation
    Inventors: Sanjib Saha, Gang Zhao, Ashish Gadre
  • Patent number: 8516498
    Abstract: 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: Grant
    Filed: October 31, 2003
    Date of Patent: August 20, 2013
    Assignee: Microsoft Corporation
    Inventors: Bimal Mehta, Paul Maybee, Lee Graber, Alexander Dadjomov, Jean-Emile Elien, Eldar Azerovich Musayev, Johannes Klein, Sanjib Saha, Kevin Bowen Smith
  • Patent number: 8443379
    Abstract: 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: Grant
    Filed: June 18, 2008
    Date of Patent: May 14, 2013
    Assignee: Microsoft Corporation
    Inventors: Affan Arshad Dar, Sanjib Saha
  • Publication number: 20120134370
    Abstract: 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: Application
    Filed: February 8, 2012
    Publication date: May 31, 2012
    Applicant: Microsoft Corporation
    Inventors: Sanjib Saha, Affan Arshad Dar, Xin Chen, Manohar Bangalore Puttaswamaiah
  • Patent number: 8150994
    Abstract: 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: Grant
    Filed: June 3, 2005
    Date of Patent: April 3, 2012
    Assignee: Microsoft Corporation
    Inventors: Wayne A. Clark, Lee B. Graber, Kartik Paramasivam, Siddhartha Roy, Sanjib Saha, Sumitra Sujanani
  • Patent number: 8135025
    Abstract: 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: Grant
    Filed: June 3, 2009
    Date of Patent: March 13, 2012
    Assignee: Microsoft Corporation
    Inventors: Sanjib Saha, Affan Arshad Dar, Xin Chen, Manohar Bangalore Puttaswamaiah
  • Patent number: 8028085
    Abstract: 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: Grant
    Filed: June 3, 2005
    Date of Patent: September 27, 2011
    Assignee: Microsoft Corporation
    Inventors: Jean-Emile Elien, Lee B. Graber, Sanjib Saha
  • Patent number: 8028007
    Abstract: 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: Grant
    Filed: February 6, 2006
    Date of Patent: September 27, 2011
    Assignee: Microsoft Corporation
    Inventors: 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: 8010608
    Abstract: 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: Grant
    Filed: June 7, 2005
    Date of Patent: August 30, 2011
    Assignee: Microsoft Corporation
    Inventors: Kartik Paramasivam, Sanjib Saha, Jean-Emile Elien
  • Publication number: 20100309928
    Abstract: 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: Application
    Filed: June 3, 2009
    Publication date: December 9, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Sanjib Saha, Affan Arshad Dar, Xin Chen, Manohar Bangalore Puttaswamaiah
  • Patent number: 7783742
    Abstract: 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: Grant
    Filed: June 2, 2005
    Date of Patent: August 24, 2010
    Assignee: Microsoft Corporation
    Inventors: Sanjib Saha, Sumitra Sujanani, Lee B. Graber