Patents by Inventor Robert J. Kroeger
Robert J. Kroeger 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: 9165081Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for invoking execution of web based applications. In one aspect, a method includes receiving user input at a computing device, displaying a contact hovercard on a display of the computing device in response to the user input, the contact hovercard including first contact data and second contact data, the first contact data corresponding to a first web application and the second contact data corresponding to a second web application, the first web application and the second web application being executed on one or more servers, receiving user input selecting the first contact data, generating a user interface and accessing the first web application over a network in response to receiving the user input selecting the first contact data, and providing the first contact data as input to the first web application.Type: GrantFiled: January 4, 2011Date of Patent: October 20, 2015Assignee: Google Inc.Inventors: Alexander Nicolaou, Joanne L. McKinley, Robert J. Kroeger, Brett R. Lider, Istiaque Ahmed
-
Patent number: 9086914Abstract: A computing device has one or more processors and memory storing programs executed by the one or more processors. The computing device initializes a main application on a first thread. The main application has a first synchronous connection with a target application. After the main application performs one or more operations at the target application through the first synchronous connection, the computing device initializes an assistant process on a second thread. The assistant process has a second synchronous connection with the target application and an asynchronous connection with the main application. After receiving a request from the main application through the asynchronous connection, the assistant process performs one or more operations at the target application through the second synchronous connection.Type: GrantFiled: August 7, 2012Date of Patent: July 21, 2015Assignee: Google Inc.Inventors: Matthew J. Bolohan, Robert J. Kroeger, Aleksandr V. Kennberg
-
Patent number: 8745202Abstract: The methods track abnormal events on mobile client devices, such as web application crashes, and use that information to associate the abnormal events with device characteristics. A first method executes on mobile client devices. When a web application starts, the method looks for a crash indicator cookie in persistent memory. If the cookie does not exist, the method creates and stores it. If the cookie already exists, the method collects information about the client device, such as device type, browser type, and operating system, and sends the information to a web server. The web application deletes the cookie when the application terminates normally. A second method executes on a web server. This method receives information from client devices relating to abnormal events for web applications. The information includes device characteristics of each client device. This method stores the information and associates a pattern of abnormal events with device characteristics.Type: GrantFiled: April 3, 2009Date of Patent: June 3, 2014Assignee: Google Inc.Inventors: Derek J. Phillips, Robert J. Kroeger
-
Patent number: 8725793Abstract: A computer system operating a web application with offline capabilities, including a web browser, a local web application, a write queue maintained in the local memory and a persistent local database. When the web application needs to perform an operation on a data item, the web application issues a database request to determine if the data item is in the local database. If the data item is not in the local database, the web application issues the data request to the server system. If the data item is in the local database, the web application performs the operation on the data item stored in the database and writes the operation to the write queue along with the identifier of the data item. When a network connection exits between the client device and the server system, the web interface drains the write queue to the server system.Type: GrantFiled: April 3, 2009Date of Patent: May 13, 2014Assignee: Google Inc.Inventors: Robert J. Kroeger, Alexander Nicolaou, Pavel V. Kobyakov, Aleksandr V. Kennberg
-
Patent number: 8666954Abstract: A server system receives a first request for a data item from a web application on a client device, wherein the first request includes an identifier of the data item. In response to the first request, the server system calculates a first checksum of the data item and sends the data item and the first checksum to the web application, for storage in the local database. The server system receives a second request for the data item from the web application, calculates a second checksum of the data item and compares the first and second checksums. The server system, determines that the data item has been updated by comparing the first checksum to the second checksum; and in response to determining that the data item has been updated, the server system a reply to the web application a indicating that the data item has been updated.Type: GrantFiled: April 3, 2009Date of Patent: March 4, 2014Inventors: Robert J. Kroeger, Derek J. Phillips
-
Publication number: 20120303756Abstract: A computing device has one or more processors and memory storing programs executed by the one or more processors. The computing device initializes a main application on a first thread. The main application has a first synchronous connection with a target application. After the main application performs one or more operations at the target application through the first synchronous connection, the computing device initializes an assistant process on a second thread. The assistant process has a second synchronous connection with the target application and an asynchronous connection with the main application. After receiving a request from the main application through the asynchronous connection, the assistant process performs one or more operations at the target application through the second synchronous connection.Type: ApplicationFiled: August 7, 2012Publication date: November 29, 2012Applicant: Google Inc.Inventors: Matthew J. Bolohan, Robert J. Kroeger, Aleksandr V. Kennberg
-
Patent number: 8260876Abstract: A computing device has one or more processors and memory storing programs executed by the one or more processors. The computing device initializes a main application on a first thread. The main application has a first synchronous connection with a target application. After the main application performs one or more operations at the target application through the first synchronous connection, the computing device initializes an assistant process on a second thread. The assistant process has a second synchronous connection with the target application and an asynchronous connection with the main application. After receiving a request from the main application through the asynchronous connection, the assistant process performs one or more operations at the target application through the second synchronous connection.Type: GrantFiled: April 3, 2009Date of Patent: September 4, 2012Assignee: Google Inc.Inventors: Matthew J. Bolohan, Robert J. Kroeger, Aleksandr V. Kennberg
-
Publication number: 20120047442Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for invoking execution of web based applications. In one aspect, a method includes receiving user input at a computing device, displaying a contact hovercard on a display of the computing device in response to the user input, the contact hovercard including first contact data and second contact data, the first contact data corresponding to a first web application and the second contact data corresponding to a second web application, the first web application and the second web application being executed on one or more servers, receiving user input selecting the first contact data, generating a user interface and accessing the first web application over a network in response to receiving the user input selecting the first contact data, and providing the first contact data as input to the first web application.Type: ApplicationFiled: September 30, 2011Publication date: February 23, 2012Applicant: GOOGLE INC.Inventors: Alexander Nicolaou, Joanne L. McKinley, Robert J. Kroeger, Brett R. Lider, Istiaque Ahmed
-
Publication number: 20120047422Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for invoking execution of web based applications. In one aspect, a method includes receiving user input at a computing device, displaying a contact hovercard on a display of the computing device in response to the user input, the contact hovercard including first contact data and second contact data, the first contact data corresponding to a first web application and the second contact data corresponding to a second web application, the first web application and the second web application being executed on one or more servers, receiving user input selecting the first contact data, generating a user interface and accessing the first web application over a network in response to receiving the user input selecting the first contact data, and providing the first contact data as input to the first web application.Type: ApplicationFiled: January 4, 2011Publication date: February 23, 2012Applicant: GOOGLE INC.Inventors: Alexander Nicolaou, Joanne L. McKinley, Robert J. Kroeger, Brett R. Lider, Istiaque Ahmed
-
Patent number: 7929526Abstract: A system and method for sending a cache line of data in a single message is described. An instruction issued by a processor in a multiprocessor system includes an address of a message payload and an address of a destination. Each address is translated to a physical address and sent to a scalability interface associated with the processor and in communication with a system interconnect. Upon translation the payload of the instruction is written to the scalability interface and thereafter communicated to the destination. According to one embodiment, the translation of the payload address is accomplished by the processor while in another embodiment the translation occurs at the scalability interface.Type: GrantFiled: September 28, 2007Date of Patent: April 19, 2011Assignee: Oracle America, Inc.Inventors: Robert J. Kroeger, Brian W. O'Krafka, Pranay Koka
-
Patent number: 7895400Abstract: Multiprocessor systems conducting operations utilizing global shared memory must ensure that the memory is coherent. A hybrid system that combines hardware memory transactions with that of direct messaging provides memory coherence with minimal overhead requirement or bandwidth demands. Memory access transactions are intercepted and converted to direct messages which are then communicated to a target and/or remote node. Thereafter the message invokes a software handler which implements the cache coherence protocol. The handler uses additional messages to invalidate or fetch data in other caches, as well as to return data to the requesting processor. These additional messages are converted to appropriate hardware transactions by the destination system interface hardware.Type: GrantFiled: September 28, 2007Date of Patent: February 22, 2011Assignee: Oracle America, Inc.Inventors: Brian W. O'Krafka, Pranay Koka, Robert J. Kroeger
-
Patent number: 7823013Abstract: A method and system for detecting race conditions computing systems. A parallel computing system includes multiple processor cores is coupled to memory. An application with a code sequence in which parallelism to be exploited is executed on this system. Different processor cores may operate on a given memory line concurrently. Extra bits are associated with the memory data line and are used to indicate changes to corresponding subsections of data in the memory line. A memory controller may perform a comparison between check bits of a memory line to determine if more than one processor core modified the same section of data in a cache line and a race condition has occurred.Type: GrantFiled: March 13, 2007Date of Patent: October 26, 2010Assignee: Oracle America, Inc.Inventors: Brian W. O'Krafka, Roy S. Moore, Pranay Koka, Robert J. Kroeger
-
Publication number: 20100257229Abstract: A computing device has one or more processors and memory storing programs executed by the one or more processors. The computing device initializes a main application on a first thread. The main application has a first synchronous connection with a target application. After the main application performs one or more operations at the target application through the first synchronous connection, the computing device initializes an assistant process on a second thread. The assistant process has a second synchronous connection with the target application and an asynchronous connection with the main application. After receiving a request from the main application through the asynchronous connection, the assistant process performs one or more operations at the target application through the second synchronous connection.Type: ApplicationFiled: April 3, 2009Publication date: October 7, 2010Inventors: MATTHEW J. BOLOHAN, Robert J. Kroeger, Aleksandr V. Kennberg
-
Publication number: 20100257148Abstract: A server system receives a first request for a data item from a web application on a client device, wherein the first request includes an identifier of the data item. In response to the first request, the server system calculates a first checksum of the data item and sends the data item and the first checksum to the web application, for storage in the local database. The server system receives a second request for the data item from the web application, calculates a second checksum of the data item and compares the first and second checksums. The server system, determines that the data item has been updated by comparing the first checksum to the second checksum; and in response to determining that the data item has been updated, the server system a reply to the web application a indicating that the data item has been updated.Type: ApplicationFiled: April 3, 2009Publication date: October 7, 2010Inventors: ROBERT J. KROEGER, Derek J. Phillips
-
Publication number: 20100257255Abstract: The methods track abnormal events on mobile client devices, such as web application crashes, and use that information to associate the abnormal events with device characteristics. A first method executes on mobile client devices. When a web application starts, the method looks for a crash indicator cookie in persistent memory. If the cookie does not exist, the method creates and stores it. If the cookie already exists, the method collects information about the client device, such as device type, browser type, and operating system, and sends the information to a web server. The web application deletes the cookie when the application terminates normally. A second method executes on a web server. This method receives information from client devices relating to abnormal events for web applications. The information includes device characteristics of each client device. This method stores the information and associates a pattern of abnormal events with device characteristics.Type: ApplicationFiled: April 3, 2009Publication date: October 7, 2010Inventors: Derek J. Phillips, Robert J. Kroeger
-
Publication number: 20100257230Abstract: A computer system operating a web application with offline capabilities, including a web browser, a local web application, a write queue maintained in the local memory and a persistent local database. When the web application needs to perform an operation on a data item, the web application issues a database request to determine if the data item is in the local database. If the data item is not in the local database, the web application issues the data request to the server system. If the data item is in the local database, the web application performs the operation on the data item stored in the database and writes the operation to the write queue along with the identifier of the data item. When a network connection exits between the client device and the server system, the web interface drains the write queue to the server system.Type: ApplicationFiled: April 3, 2009Publication date: October 7, 2010Inventors: ROBERT J. KROEGER, Alexander Nicolaou, Pavel V. Kobyakov, Aleksandr V. Kennberg
-
Patent number: 7631171Abstract: One embodiment of the present invention provides a system that supports vector operations on a multi-threaded microprocessor. During operation, the system detects a vector instruction in a program. The system maps this vector instruction onto the thread contexts of the multi-threaded microprocessor. As part of the mapping process, the system splits the vector instruction across a set of threads that execute in parallel and generates a set of instructions for the set of threads. This mapping process allows the vector instruction to be executed efficiently across multiple threads.Type: GrantFiled: December 19, 2005Date of Patent: December 8, 2009Assignee: Sun Microsystems, Inc.Inventors: Jan L. Bonebakker, Robert J. Kroeger
-
Publication number: 20090086746Abstract: A system and method for sending a cache line of data in a single message is described. An instruction issued by a processor in a multiprocessor system includes an address of a message payload and an address of a destination. Each address is translated to a physical address and sent to a scalability interface associated with the processor and in communication with a system interconnect. Upon translation the payload of the instruction is written to the scalability interface and thereafter communicated to the destination. According to one embodiment, the translation of the payload address is accomplished by the processor while in another embodiment the translation occurs at the scalability interface.Type: ApplicationFiled: September 28, 2007Publication date: April 2, 2009Applicant: SUN MICROSYSTEMS, INC.Inventors: Robert J. Kroeger, Brian W. O'Krafka, Pranay Koka
-
Publication number: 20090089511Abstract: Multiprocessor systems conducting operations utilizing global shared memory must ensure that the memory is coherent. A hybrid system that combines hardware memory transactions with that of direct messaging provides memory coherence with minimal overhead requirement or bandwidth demands. Memory access transactions are intercepted and converted to direct messages which are then communicated to a target and/or remote node. Thereafter the message invokes a software handler which implements the cache coherence protocol. The handler uses additional messages to invalidate or fetch data in other caches, as well as to return data to the requesting processor. These additional messages are converted to appropriate hardware transactions by the destination system interface hardware.Type: ApplicationFiled: September 28, 2007Publication date: April 2, 2009Applicant: SUN MICROSYSTEMS INC.Inventors: Brian W. O'Krafka, Pranay Koka, Robert J. Kroeger