Patents by Inventor Farookh P. Mohammed

Farookh P. 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).

  • Publication number: 20190334840
    Abstract: 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: Application
    Filed: May 15, 2019
    Publication date: October 31, 2019
    Inventors: Farookh P. Mohammed, Krishnan Ananthanarayanan, Alexey Pikin, Mieszko G. MatkowskI, Andrey Belenko
  • Publication number: 20170366478
    Abstract: 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: Application
    Filed: June 20, 2016
    Publication date: December 21, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Farookh P. Mohammed, Krishnan Ananthanarayanan, Alexey Pikin, Mieszko G. Matkowski, Andrey Belenko
  • Publication number: 20170366479
    Abstract: A computer system comprises computer storage holding at least one code module configured to implement a bot, and at least one processor configured to execute the code module. The computer system also comprises a communication system for effecting communication events between users of the communication system; a bot interface for exchanging messages between the communication system and the bot; and a dialogue manager. The communication system transmits, to the dialogue manager directly, content of a first message received at a processor of the communication system from a user of the communication system. The dialogue applies an intent recognition process to the content to generate at least one intent identifier, and transmits a second message comprising the intent identifier to the bot using the bot interface. The bot automatically generates a response using the intent identifier received in the second message, and transmits the generated response to at least the user.
    Type: Application
    Filed: June 20, 2016
    Publication date: December 21, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Mohammed Ladha, Farookh P. Mohammed, Konstantin Lutskiy, Alexey Pikin, Maxim Anatolyevich Silchev
  • Publication number: 20170289069
    Abstract: A communication system comprising a user terminal having a processor configured to execute a communication client installed at the terminal and a display. The communication client is configured to display contact identifiers on the display, each contact identifier being selectable to initiate a communication event with a network node addressed by the contact identifier. A first network node provides a first autonomous software agent (ASA) and is addressable by a first contact identifier displayed on the user terminal, the ASA configured to receive an intent conveyed by a user at the user terminal; an agent provisioning service component accessible by the first network node and enabling access to a plurality of servicing autonomous software agents (SASA), each capable of implementing an action. The first network node is configured to respond to the received intent and to select one of the SASAs to implement an action corresponding to the user intent.
    Type: Application
    Filed: December 29, 2016
    Publication date: October 5, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Graham C. Plumb, Benny Schlesinger, Lilian Dearith Rincon, Farookh P. Mohammed
  • Publication number: 20170289070
    Abstract: A user terminal comprising a processor comprising one or more processing devices configured to run a communication client to establish a communication event with nodes in a communication network; a display on which contact identifiers are displayed, each contact identifier being selectable to initiate a communication event with a node addressed by the contact identifier. A user interface enabling a user to engage in an interaction with the user terminal, including communicating via an established communication events with at least one other node in the communication network associated with a human user, whereby messages in the communication event are available to an autonomous software agent (ASA) to convey an intent conveyed in a dialogue between the user terminal and the human user at the at least one other node, and the processor is configured to receive and present to the user a response to the intent received from the ASA.
    Type: Application
    Filed: January 30, 2017
    Publication date: October 5, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Graham C. Plumb, Lilian Dearith Rincon, Farookh P. Mohammed
  • Publication number: 20170288943
    Abstract: A computer program product for providing context data to a servicing entity from a communication event conducted by a user terminal over a communications network the computer program product comprising an autonomous software agent stored on a computer readable storage medium, the autonomous software agent being configured when run to perform operations of receiving in a message conveyed in a communication event established between the software agent and the user terminal, a user intent and user context data; selecting a servicing entity located at a node of the communication network to perform an action corresponding to the intent; generating a message containing the context data; and transmitting the message containing the context data to the servicing entity.
    Type: Application
    Filed: December 23, 2016
    Publication date: October 5, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Graham C. Plumb, Lilian Dearith Rincon, Farookh P. Mohammed
  • Patent number: 7310802
    Abstract: A method for determining a load distribution for a plurality of servers is disclosed. A total user count during a predetermined interval of time is received from each server of a plurality of servers for all channel resources associated with each respective server of the plurality of servers. A present load distribution is determined for the predetermined interval of time for each respective server of the plurality of servers based on the total user count received from each server. A load gradient is determined for the predetermined interval of time from each server of the plurality of servers. A future load distribution is determined for each respective server based on the total user count for each server and each respective load gradient. Lastly, a load distribution for each respective channel resource is distributed among the plurality of servers based on the determined future load distribution for each respective channel resource.
    Type: Grant
    Filed: May 11, 2004
    Date of Patent: December 18, 2007
    Assignee: Microsoft Corporation
    Inventors: Nishant V. Dani, Farookh P. Mohammed
  • Publication number: 20040210636
    Abstract: A method for determining a load distribution for a plurality of servers is disclosed. A total user count during a predetermined interval of time is received from each server of a plurality of servers for all channel resources associated with each respective server of the plurality of servers. A present load distribution is determined for the predetermined interval of time for each respective server of the plurality of servers based on the total user count received from each server. A load gradient is determined for the predetermined interval of time from each server of the plurality of servers. A future load distribution is determined for each respective server based on the total user count for each server and each respective load gradient. Lastly, a load distribution for each respective channel resource is distributed among the plurality of servers based on the determined future load distribution for each respective channel resource.
    Type: Application
    Filed: May 11, 2004
    Publication date: October 21, 2004
    Applicant: Microsoft Corporation
    Inventors: Nishant V. Dani, Farookh P. Mohammed
  • Patent number: 6763372
    Abstract: A method for determining a load distribution for a plurality of servers is disclosed. A total user count during a predetermined interval of time is received from each server of a plurality of servers for all channel resources associated with each respective server of the plurality of servers. A present load distribution is determined for the predetermined interval of time for each respective server of the plurality of servers based on the total user count received from each server. A load gradient is determined for the predetermined interval of time from each server of the plurality of servers. A future load distribution is determined for each respective server based on the total user count for each server and each respective load gradient. Lastly, a load distribution for each respective channel resource is distributed among the plurality of servers based on the determined future load distribution for each respective channel resource.
    Type: Grant
    Filed: July 6, 2000
    Date of Patent: July 13, 2004
    Inventors: Nishant V. Dani, Farookh P. Mohammed
  • Patent number: 6675217
    Abstract: A technique for maintaining server cluster consistency is disclosed. When a front-end server of a plurality of servers detects that the front-end server has reconnected to a backend server or in the situation of a backend server failover, the front-end server sends resource ownership information to a backend server. The resource ownership information relates to ownership information for each respective resource owned by the front-end server. The back-end server verifies the ownership information for contention with static resources and dynamic resources owned by other servers and sends back verification information to the server. The backend maintains resource ownership information for all the servers in the cluster than sent resources for verification. Based on the received verification information, the server maintains ownership information at the server for each respective resource indicated in the verification information to be owned by the server.
    Type: Grant
    Filed: July 6, 2000
    Date of Patent: January 6, 2004
    Assignee: Microsoft Corporation
    Inventors: Nishant V. Dani, Farookh P. Mohammed
  • Patent number: 6675199
    Abstract: A failover algorithm implemented in software, without any failover-specific hardware, that allows servers in a cluster to determine whether a primary or secondary controller is active without requiring communication between the primary and secondary controllers. A server cluster includes several servers coupled to two servers, which are designated as a primary controller and a secondary controller. While the server cluster is operational, either the primary controller or the secondary controller will be actively controlling the cluster. Software running on the servers of the cluster, on the primary controller, and on the secondary controller, cooperates to ensure that each server will properly identify which controller is active at any particular time, including, but not limited to, upon starting up the server cluster, upon adding one or more servers to a cluster that is already operation, and upon failure of an active controller, a server, or a link between an active controller and a server.
    Type: Grant
    Filed: July 6, 2000
    Date of Patent: January 6, 2004
    Assignee: Microsoft
    Inventors: Farookh P. Mohammed, Nishant V. Dani