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: 20190334840Abstract: 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: ApplicationFiled: May 15, 2019Publication date: October 31, 2019Inventors: Farookh P. Mohammed, Krishnan Ananthanarayanan, Alexey Pikin, Mieszko G. MatkowskI, Andrey Belenko
-
Publication number: 20170366478Abstract: 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: ApplicationFiled: June 20, 2016Publication date: December 21, 2017Applicant: Microsoft Technology Licensing, LLCInventors: Farookh P. Mohammed, Krishnan Ananthanarayanan, Alexey Pikin, Mieszko G. Matkowski, Andrey Belenko
-
Publication number: 20170366479Abstract: 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: ApplicationFiled: June 20, 2016Publication date: December 21, 2017Applicant: Microsoft Technology Licensing, LLCInventors: Mohammed Ladha, Farookh P. Mohammed, Konstantin Lutskiy, Alexey Pikin, Maxim Anatolyevich Silchev
-
Publication number: 20170289069Abstract: 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: ApplicationFiled: December 29, 2016Publication date: October 5, 2017Applicant: Microsoft Technology Licensing, LLCInventors: Graham C. Plumb, Benny Schlesinger, Lilian Dearith Rincon, Farookh P. Mohammed
-
Publication number: 20170289070Abstract: 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: ApplicationFiled: January 30, 2017Publication date: October 5, 2017Applicant: Microsoft Technology Licensing, LLCInventors: Graham C. Plumb, Lilian Dearith Rincon, Farookh P. Mohammed
-
Publication number: 20170288943Abstract: 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: ApplicationFiled: December 23, 2016Publication date: October 5, 2017Applicant: Microsoft Technology Licensing, LLCInventors: Graham C. Plumb, Lilian Dearith Rincon, Farookh P. Mohammed
-
Patent number: 7310802Abstract: 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: GrantFiled: May 11, 2004Date of Patent: December 18, 2007Assignee: Microsoft CorporationInventors: Nishant V. Dani, Farookh P. Mohammed
-
Publication number: 20040210636Abstract: 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: ApplicationFiled: May 11, 2004Publication date: October 21, 2004Applicant: Microsoft CorporationInventors: Nishant V. Dani, Farookh P. Mohammed
-
Patent number: 6763372Abstract: 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: GrantFiled: July 6, 2000Date of Patent: July 13, 2004Inventors: Nishant V. Dani, Farookh P. Mohammed
-
Patent number: 6675199Abstract: 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: GrantFiled: July 6, 2000Date of Patent: January 6, 2004Assignee: MicrosoftInventors: Farookh P. Mohammed, Nishant V. Dani
-
Patent number: 6675217Abstract: 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: GrantFiled: July 6, 2000Date of Patent: January 6, 2004Assignee: Microsoft CorporationInventors: Nishant V. Dani, Farookh P. Mohammed