Patents by Inventor Farookh Mohammed
Farookh Mohammed 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: 11776541Abstract: Techniques for synchronizing communication across devices are described. A system receives an input command corresponding to an announcement and sends data representing the announcement to devices of the system. The system receives responses from the devices and causes the device that originated the announcement to output content corresponding to the responses.Type: GrantFiled: May 20, 2020Date of Patent: October 3, 2023Assignee: Amazon Technologies, Inc.Inventors: Christo Frank Devaraj, Farookh Mohammed, James Alexander Stanton, Brandon Taylor, Peter Chin, Mahesh Rajagopalan
-
Patent number: 11024303Abstract: Techniques for communicating announcements across devices are described. A system performs speech processing on input audio data to determine a command to output an announcement. The system determines devices outputting indicators representing users are proximate thereto. The system generates output audio data corresponding to at least a portion of the input audio data corresponding to announcement content. The system sends the output audio data to the devices along with instructions to output audio corresponding to the output audio data.Type: GrantFiled: September 19, 2017Date of Patent: June 1, 2021Assignee: Amazon Technologies, Inc.Inventors: Christo Frank Devaraj, Farookh Mohammed, James Alexander Stanton, Brandon Taylor, Peter Chin, Mahesh Rajagopalan
-
Publication number: 20200357399Abstract: Techniques for synchronizing communication across devices are described. A system receives an input command corresponding to an announcement and sends data representing the announcement to devices of the system. The system receives responses from the devices and causes the device that originated the announcement to output content corresponding to the responses.Type: ApplicationFiled: May 20, 2020Publication date: November 12, 2020Inventors: Christo Frank Devaraj, Farookh Mohammed, James Alexander Stanton, Brandon Taylor, Peter Chin, Mahesh Rajagopalan
-
Patent number: 10706845Abstract: Techniques for synchronizing communication across devices are described. A system receives an input command corresponding to an announcement and sends data representing the announcement to devices of the system. The system receives responses from the devices and causes the device that originated the announcement to output content corresponding to the responses.Type: GrantFiled: September 19, 2017Date of Patent: July 7, 2020Assignee: Amazon Technologies, Inc.Inventors: Christo Frank Devaraj, Farookh Mohammed, James Alexander Stanton, Brandon Taylor, Peter Chin, Mahesh Rajagopalan
-
Patent number: 10341267Abstract: A computer system comprises computer storage holding a plurality of code modules, one or more processors and a communication system. The one or more processors are configured to execute the code modules and thereby implement the bots. The communication system comprises a message relay and an anonymized identifier generator. The message relay is configured to receive a message comprising an identifier of a user and an identifier of a target one of the bots. The anonymized identifier generator is configured to generate an anonymized identifier of the user unique to the target bot, by applying an anonymization function to the user identifier and the bot identifier in the message. The message relay is configured to transmit to the target bot a version of the message, which comprises the anonymized user identifier and does not include the user identifier, wherein the user identifier is not rendered accessible to the target bot.Type: GrantFiled: June 20, 2016Date of Patent: July 2, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Farookh Mohammed, Krishnan Ananthanarayanan, Alexey Pikin, Mieszko G. Matkowski, Andrey Belenko
-
Patent number: 10242023Abstract: A computer user may use a computing environment comprising a set of computers that respectively feature a web browser having a browser cache containing many types of data objects, including application resources and user-generated data files. However, the contents of a browser cache significantly contribute to the computing environment of a computer, and the computing environments presented by each computer may diverge, providing an inconsistent computing environment. Instead, the contents of browser caches of the computers comprising the computing environment may be synchronized across computers. Additionally, the browser cache may be synchronized with the other data objects of a computing environment (such as relevant portions of the filesystem); the synchronizing may be implemented as an out-of-browser process executing independently of the applications, and even when the browser is not executing; and the synchronization may be exposed through a programmatic access with which web applications may interact.Type: GrantFiled: August 18, 2014Date of Patent: March 26, 2019Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Dharma Shukla, Abhay Parasnis, Raymond Endres, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
-
Publication number: 20180176385Abstract: Systems, methods, and software technology for providing enhanced telephony experiences. In an implementation, a calling party may place a call to a called party. A communication service receives a call request from a client application associated with the calling party requesting that the call be initiated to the called party. The communication service responsively connects the calling party to the called party, but also associates a conversational bot with the call. During the call, the communication service identifies supplemental information associated with the called party to send to the client application by way of the conversational bot. The calling party may thus consume the supplemental information and engage with the conversational bot during the call.Type: ApplicationFiled: December 21, 2016Publication date: June 21, 2018Inventors: Amritansh Raghav, Ivo Manolov, Farookh Mohammed
-
Patent number: 9680964Abstract: An application executing in a virtual environment, such as a web browser, may be serviced by an application host, such as a webserver that maintains application resources or provides runtime services to the application. However, it may be difficult to configure the application to operate suitably when the application host is unavailable. Techniques for facilitating such operation include the storing of application resources in a computing environment (such as the local file system or a deployable mesh or cloud environment) while also initiating the application within the virtual environment in the context of the application host, which may reduce difficulties with isolation policies imposed by the virtual environment (e.g., cross-domain restrictions imposed by the web browser.) This configuration may promote the servicing of the application alongside other applications and data objects, e.g.Type: GrantFiled: March 11, 2009Date of Patent: June 13, 2017Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Dharma Shukla, Abhay Parasnis, Raymond Endres, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
-
Publication number: 20150046519Abstract: A computer user may use a computing environment comprising a set of computers that respectively feature a web browser having a browser cache containing many types of data objects, including application resources and user-generated data files. However, the contents of a browser cache significantly contribute to the computing environment of a computer, and the computing environments presented by each computer may diverge, providing an inconsistent computing environment. Instead, the contents of browser caches of the computers comprising the computing environment may be synchronized across computers. Additionally, the browser cache may be synchronized with the other data objects of a computing environment (such as relevant portions of the filesystem); the synchronizing may be implemented as an out-of-browser process executing independently of the applications, and even when the browser is not executing; and the synchronization may be exposed through a programmatic access with which web applications may interact.Type: ApplicationFiled: August 18, 2014Publication date: February 12, 2015Inventors: Dharma Shukla, Abhay Parasnis, Raymond Endres, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
-
Patent number: 8812451Abstract: A computer user may use a computing environment comprising a set of computers that respectively feature a web browser having a browser cache containing many types of data objects, including application resources and user-generated data files. However, the contents of a browser cache significantly contribute to the computing environment of a computer, and the computing environments presented by each computer may diverge, providing an inconsistent computing environment. Instead, the contents of browser caches of the computers comprising the computing environment may be synchronized across computers. Additionally, the browser cache may be synchronized with the other data objects of a computing environment (such as relevant portions of the filesystem); the synchronizing may be implemented as an out-of-browser process executing independently of the applications, and even when the browser is not executing; and the synchronization may be exposed through a programmatic access with which web applications may interact.Type: GrantFiled: March 11, 2009Date of Patent: August 19, 2014Assignee: Microsoft CorporationInventors: Dharma Shukla, Abhay Parasnis, Raymond Endres, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
-
Patent number: 8413139Abstract: Applications executing on computer systems may execute in a virtual environment, such as a web application executing in a web browser. An application may access the actual computing environment (such as the filesystem), but this accessing may be complicated; e.g., the computing environment may be deployed across many computers and devices, and may be synchronized for offline access via a local cache. A computing environment component may service the complex computing environment (e.g., by managing the cache and retrieving remotely stored data objects) and expose it as a well-organized set of data objects. A virtual environment interface (e.g., a web browser plug-in) may allow applications hosted in the virtual environment to access the computing environment through the computing environment component. Programmatic interfaces may also be implemented to permit such accessing via familiar programming languages and techniques, such as JavaScript libraries exposed to web applications in the web browser.Type: GrantFiled: March 11, 2009Date of Patent: April 2, 2013Assignee: Microsoft CorporationInventors: Dharma Shukla, Abhay Parasnis, Raymond Enders, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
-
Patent number: 8386424Abstract: A unified data access mechanism can provide transparent access to data that is either stored locally or remotely. Application programs can direct data requests and data modifications to this singular component without foreknowledge of where the data is stored. The unified data access mechanism can work in concert with a synchronization mechanism that can maintain data synchronization between local data and remote data. Requested or modified data can be identified as stored locally or remotely based on the namespace of the data. If the data is stored remotely, the user credentials associated with the user's process space within which the application program is executing can be utilized to identify, and then provide, relevant authentication information to the remote data store, should it be required.Type: GrantFiled: June 15, 2010Date of Patent: February 26, 2013Assignee: Microsoft CorporationInventors: Nitin Sharma, Todd Manion, Akash Jeevan Sagar, Nishant Gupta, Farookh Mohammed, Aditya G Bhandarkar, Karthik Raman, Ori Amiga
-
Patent number: 8321503Abstract: A back-end locator service can be utilized to identify a specific computing device, from among multiple computing devices in a domain, that is the most appropriate computing device to handle a particular type of request for data or other resources. The data or resources hosted by the domain can be divided among multiple computing devices. The domain can expose a network-based application program interface where successive requests by a client computing device become more specific as to the data or resources requested. Responses from the computing devices in the domain can, at some point in time, be informed by the back-end locator service and can comprise location-specific resource identifiers. The client computing device can utilize such location specific resource identifiers to direct further communications to the appropriate, specific computing device without having to incur redirection inefficiencies.Type: GrantFiled: June 24, 2010Date of Patent: November 27, 2012Assignee: Microsoft CorporationInventors: Raymond E. Endres, Nishant Gupta, Karthik Raman, Aditya G. Bhandarkar, Farookh Mohammed, Dharma Shukla
-
Publication number: 20110320522Abstract: A back-end locator service can be utilized to identify a specific computing device, from among multiple computing devices in a domain, that is the most appropriate computing device to handle a particular type of request for data or other resources. The data or resources hosted by the domain can be divided among multiple computing devices. The domain can expose a network-based application program interface where successive requests by a client computing device become more specific as to the data or resources requested. Responses from the computing devices in the domain can, at some point in time, be informed by the back-end locator service and can comprise location-specific resource identifiers. The client computing device can utilize such location specific resource identifiers to direct further communications to the appropriate, specific computing device without having to incur redirection inefficiencies.Type: ApplicationFiled: June 24, 2010Publication date: December 29, 2011Applicant: MICROSOFT CORPORATIONInventors: Raymond E. Endres, Nishant Gupta, Karthik Raman, Aditya G. Bhandarkar, Farookh Mohammed, Dharma Shukla
-
Publication number: 20110307442Abstract: A unified data access mechanism can provide transparent access to data that is either stored locally or remotely. Application programs can direct data requests and data modifications to this singular component without foreknowledge of where the data is stored. The unified data access mechanism can work in concert with a synchronization mechanism that can maintain data synchronization between local data and remote data. Requested or modified data can be identified as stored locally or remotely based on the namespace of the data. If the data is stored remotely, the user credentials associated with the user's process space within which the application program is executing can be utilized to identify, and then provide, relevant authentication information to the remote data store, should it be required.Type: ApplicationFiled: June 15, 2010Publication date: December 15, 2011Applicant: MICROSOFT CORPORATIONInventors: Nitin Sharma, Todd Manion, Akash Jeevan Sagar, Nishant Gupta, Farookh Mohammed, Aditya G. Bhandarkar, Karthik Raman, Ori Amiga
-
Publication number: 20100235321Abstract: A computer user may use a computing environment comprising a set of computers that respectively feature a web browser having a browser cache containing many types of data objects, including application resources and user-generated data files. However, the contents of a browser cache significantly contribute to the computing environment of a computer, and the computing environments presented by each computer may diverge, providing an inconsistent computing environment. Instead, the contents of browser caches of the computers comprising the computing environment may be synchronized across computers. Additionally, the browser cache may be synchronized with the other data objects of a computing environment (such as relevant portions of the filesystem); the synchronizing may be implemented as an out-of-browser process executing independently of the applications, and even when the browser is not executing; and the synchronization may be exposed through a programmatic access with which web applications may interact.Type: ApplicationFiled: March 11, 2009Publication date: September 16, 2010Applicant: Microsoft CorporationInventors: Dharma Shukla, Abhay Parasnis, Raymond Enders, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
-
Publication number: 20100235830Abstract: Applications executing on computer systems may execute in a virtual environment, such as a web application executing in a web browser. An application may access the actual computing environment (such as the filesystem), but this accessing may be complicated; e.g., the computing environment may be deployed across many computers and devices, and may be synchronized for offline access via a local cache. A computing environment component may service the complex computing environment (e.g., by managing the cache and retrieving remotely stored data objects) and expose it as a well-organized set of data objects. A virtual environment interface (e.g., a web browser plug-in) may allow applications hosted in the virtual environment to access the computing environment through the computing environment component. Programmatic interfaces may also be implemented to permit such accessing via familiar programming languages and techniques, such as JavaScript libraries exposed to web applications in the web browser.Type: ApplicationFiled: March 11, 2009Publication date: September 16, 2010Applicant: Microsoft CorporationInventors: Dharma Shukla, Abhay Parasnis, Raymond Enders, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
-
Publication number: 20100235829Abstract: An application executing in a virtual environment, such as a web browser, may be serviced by an application host, such as a webserver that maintains application resources or provides runtime services to the application. However, it may be difficult to configure the application to operate suitably when the application host is unavailable. Techniques for facilitating such operation include the storing of application resources in a computing environment (such as the local file system or a deployable mesh or cloud environment) while also initiating the application within the virtual environment in the context of the application host, which may reduce difficulties with isolation policies imposed by the virtual environment (e.g., cross-domain restrictions imposed by the web browser.) This configuration may promote the servicing of the application alongside other applications and data objects, e.g.Type: ApplicationFiled: March 11, 2009Publication date: September 16, 2010Applicant: Microsoft CorporationInventors: Dharma Shukla, Abhay Parasnis, Raymond Enders, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
-
Publication number: 20100138501Abstract: In a push environment having a communication path along which a service provides messages to a computing device via a gateway, an inactivity timeout value and a registration timeout value enable the computing device to detect failures in the communication path. An application executing on the computing device registers an application endpoint with the gateway. The application separately subscribes to the service to receive the messages. If there is inactivity in accordance with the inactivity timeout value, the application de-registers and re-registers with the gateway, and unsubscribes and re-subscribes with the service.Type: ApplicationFiled: December 3, 2008Publication date: June 3, 2010Applicant: Microsoft CorporationInventors: Nathaniel T. Clinton, Adam Sapek, Johannes Klein, Farookh Mohammed, Rashid Qureshi, Shai Herzog, Eric David Deily