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: 9165081
    Abstract: 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: Grant
    Filed: January 4, 2011
    Date of Patent: October 20, 2015
    Assignee: Google Inc.
    Inventors: Alexander Nicolaou, Joanne L. McKinley, Robert J. Kroeger, Brett R. Lider, Istiaque Ahmed
  • Patent number: 9086914
    Abstract: 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: Grant
    Filed: August 7, 2012
    Date of Patent: July 21, 2015
    Assignee: Google Inc.
    Inventors: Matthew J. Bolohan, Robert J. Kroeger, Aleksandr V. Kennberg
  • Patent number: 8745202
    Abstract: 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: Grant
    Filed: April 3, 2009
    Date of Patent: June 3, 2014
    Assignee: Google Inc.
    Inventors: Derek J. Phillips, Robert J. Kroeger
  • Patent number: 8725793
    Abstract: 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: Grant
    Filed: April 3, 2009
    Date of Patent: May 13, 2014
    Assignee: Google Inc.
    Inventors: Robert J. Kroeger, Alexander Nicolaou, Pavel V. Kobyakov, Aleksandr V. Kennberg
  • Patent number: 8666954
    Abstract: 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: Grant
    Filed: April 3, 2009
    Date of Patent: March 4, 2014
    Inventors: Robert J. Kroeger, Derek J. Phillips
  • Publication number: 20120303756
    Abstract: 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: Application
    Filed: August 7, 2012
    Publication date: November 29, 2012
    Applicant: Google Inc.
    Inventors: Matthew J. Bolohan, Robert J. Kroeger, Aleksandr V. Kennberg
  • Patent number: 8260876
    Abstract: 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: Grant
    Filed: April 3, 2009
    Date of Patent: September 4, 2012
    Assignee: Google Inc.
    Inventors: Matthew J. Bolohan, Robert J. Kroeger, Aleksandr V. Kennberg
  • Publication number: 20120047422
    Abstract: 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: Application
    Filed: January 4, 2011
    Publication date: February 23, 2012
    Applicant: GOOGLE INC.
    Inventors: Alexander Nicolaou, Joanne L. McKinley, Robert J. Kroeger, Brett R. Lider, Istiaque Ahmed
  • Publication number: 20120047442
    Abstract: 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: Application
    Filed: September 30, 2011
    Publication date: February 23, 2012
    Applicant: GOOGLE INC.
    Inventors: Alexander Nicolaou, Joanne L. McKinley, Robert J. Kroeger, Brett R. Lider, Istiaque Ahmed
  • Patent number: 7929526
    Abstract: 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: Grant
    Filed: September 28, 2007
    Date of Patent: April 19, 2011
    Assignee: Oracle America, Inc.
    Inventors: Robert J. Kroeger, Brian W. O'Krafka, Pranay Koka
  • Patent number: 7895400
    Abstract: 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: Grant
    Filed: September 28, 2007
    Date of Patent: February 22, 2011
    Assignee: Oracle America, Inc.
    Inventors: Brian W. O'Krafka, Pranay Koka, Robert J. Kroeger
  • Patent number: 7823013
    Abstract: 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: Grant
    Filed: March 13, 2007
    Date of Patent: October 26, 2010
    Assignee: Oracle America, Inc.
    Inventors: Brian W. O'Krafka, Roy S. Moore, Pranay Koka, Robert J. Kroeger
  • Publication number: 20100257148
    Abstract: 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: Application
    Filed: April 3, 2009
    Publication date: October 7, 2010
    Inventors: ROBERT J. KROEGER, Derek J. Phillips
  • Publication number: 20100257230
    Abstract: 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: Application
    Filed: April 3, 2009
    Publication date: October 7, 2010
    Inventors: ROBERT J. KROEGER, Alexander Nicolaou, Pavel V. Kobyakov, Aleksandr V. Kennberg
  • Publication number: 20100257229
    Abstract: 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: Application
    Filed: April 3, 2009
    Publication date: October 7, 2010
    Inventors: MATTHEW J. BOLOHAN, Robert J. Kroeger, Aleksandr V. Kennberg
  • Publication number: 20100257255
    Abstract: 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: Application
    Filed: April 3, 2009
    Publication date: October 7, 2010
    Inventors: Derek J. Phillips, Robert J. Kroeger
  • Patent number: 7631171
    Abstract: 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: Grant
    Filed: December 19, 2005
    Date of Patent: December 8, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Jan L. Bonebakker, Robert J. Kroeger
  • Publication number: 20090086746
    Abstract: 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: Application
    Filed: September 28, 2007
    Publication date: April 2, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Robert J. Kroeger, Brian W. O'Krafka, Pranay Koka
  • Publication number: 20090089511
    Abstract: 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: Application
    Filed: September 28, 2007
    Publication date: April 2, 2009
    Applicant: SUN MICROSYSTEMS INC.
    Inventors: Brian W. O'Krafka, Pranay Koka, Robert J. Kroeger