[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

US20110219124A1 - System and method for two way communication and controlling content in a web browser - Google Patents

System and method for two way communication and controlling content in a web browser Download PDF

Info

Publication number
US20110219124A1
US20110219124A1 US13/041,313 US201113041313A US2011219124A1 US 20110219124 A1 US20110219124 A1 US 20110219124A1 US 201113041313 A US201113041313 A US 201113041313A US 2011219124 A1 US2011219124 A1 US 2011219124A1
Authority
US
United States
Prior art keywords
application
host device
browser
endpoint device
executing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US13/041,313
Other versions
US8019878B1 (en
Inventor
Christopher Allen
Trevor Burton
Andrew Zupko
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infrared5 Inc
Original Assignee
Brass Monkey Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brass Monkey Inc filed Critical Brass Monkey Inc
Priority to US13/041,313 priority Critical patent/US8019878B1/en
Assigned to Brass Monkey, Inc. reassignment Brass Monkey, Inc. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BURTON, TREVOR, ALLEN, CHRISTOPHER, ZUPKO, ANDREW
Publication of US20110219124A1 publication Critical patent/US20110219124A1/en
Application granted granted Critical
Publication of US8019878B1 publication Critical patent/US8019878B1/en
Assigned to INFRARED5, INC. reassignment INFRARED5, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: Brass Monkey, Inc.
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Definitions

  • This invention relates generally to the field of communication over a network, and more particularly, to communicating over a network to control content displayed in browser application running within a web browser, and establishing two-way communication between the browser application and a remote application.
  • Network communication is no longer limited to PCs and laptops.
  • Mobile phones and smart phones can typically connect not only to mobile telephone networks, but also Wi-fi networks, Bluetooth® networks, USB networks, etc.
  • Other devices which historically were not able to connect to computer networks, are entering the market already configured to access the internet. Televisions, DVD players, and even home appliances have network and internet capability.
  • Smart phones such as the iPhone® device, Android® phones, or Blackberry® phones can download and run a broad array of different applications, from games and movie players to productivity and work tools.
  • Browser applications are attractive to developers because they can be relatively easy to develop and deploy. Browser applications also provide dynamic and customizable content for display within a web browser.
  • a browser application developer could create, for example, a video game or media presentation application that can run within a web browser.
  • Browser applications such as FLASH® applications, UnityTM applications, JavaScript® applications, and the like, can be downloaded and run by a web browser without the need to install the application directly onto a local computer. Rather, a user can run a browser application simply by directing his or her browser to a URL that provides a browser application. The web browser will then load and execute the browser application directly, downloading it just as if the user were viewing a static web page.
  • the system and method includes apparatuses and operations for receiving, by an address registration server, a communication from a host device including a public network address of the host device, and a communication from an endpoint device including a public network address and a private network address of the endpoint device.
  • the system and method also may determine, whether the host device and the endpoint device are connected to a single local network based on the public network addresses of the host device and a public address of the endpoint device, and whether the host device and the endpoint device are each executing a compatible application.
  • the system and method may also facilitate a network connection between the endpoint device and the host device over the local network by providing the private network address of the endpoint device to the host device if it is determined that the endpoint device and the host device are connected to the local network and each executing a compatible application.
  • the communication from the host device and the communication from the endpoint device each include an application ID configured to identify an application running on the endpoint device, the host device, or both.
  • the determination regarding whether the endpoint device and the host device are each executing the compatible application may be based upon a comparison of the application ID received from the host device and the application ID received from the endpoint device.
  • the host device may execute a browser application within a web browser, and the endpoint device may executing an application configured to control content in the browser application. Determining whether the endpoint device and the host device are each executing the compatible application may be based upon whether the browser application and the application configured to control content in a browser application are compatible applications.
  • the browser application may be, for example, game application and the application configured to control the content may be a game controller application.
  • the system and method may also modify a security policy of the web browser to allow communication between the browser application and the application configured to control content in the browser application.
  • FIG. 1 is a block diagram of an exemplary computer network architecture suitable for operation of the present invention
  • FIG. 2 is a block diagram of a computer processing device
  • FIG. 3 is a flowchart depicting a method for use in connection with the present invention.
  • FIG. 4 is a block diagram illustrating some of the operations of the present invention.
  • the present invention may provide a system and method for connecting devices over a network. More particularly, the present invention may be used to connect and facilitate communication between a browser application running within a web browser and an application executing on an endpoint device.
  • Web browsers often employ security schemes, sometimes referred to as sandbox security, to ensure that browser applications cannot cause harm to a local machine. These security schemes may restrict a browser application from using local machine resources, such as the hard drive of the computer computer, I/O, or networking capabilities.
  • devices on a network can discover other devices on the network by broadcasting their presence on the network, and monitoring broadcasts from other devices.
  • a browser application for example a FLASH application
  • the security mechanisms of the web browser may prevent the browser application from discovering or communicating with other device connected to the network, even if those other devices are running applications that could otherwise communicate or interact with the browser application.
  • the present invention provides a system and architecture 10 for controlling content within a web browser.
  • the system may include host device 12 , which may execute browser application 14 within web browser 16 .
  • FIG. 1 shows host device 12 as a desktop computer, however host device 12 is not limited to desktop computers.
  • host device 12 may be a laptop computer, server computer, game console, mobile device, smart phone, internet television, home appliance, network- and processor-enabled remote control toy, internet enabled billboard, medical display device, iPad®, or any other device capable of running browser application 14 within web browser 16 .
  • FIG. 1 also shows endpoint devices 18 , 20 .
  • Endpoint device 18 may execute application 22 , which may be an application configured to communicate with browser application 14 .
  • Endpoint device may typically be a network-enabled wireless handheld device, such as a PDA or smart phone, and application 22 is typically a mobile application.
  • endpoint device may also be any type of device capable of running application 22 and connecting to private network 24 , such as a laptop or desktop computer, a gaming console, a game controller, etc.
  • Endpoint device 20 may be another endpoint device within system 10 .
  • Endpoint device 20 is depicted here merely to show that other devices may be included within system 10 and connected to private network 24 .
  • endpoint device 20 may execute an application such as application 20 , may execute other applications capable of communicating with browser application 14 , or may execute applications capable of communicating with other browser applications, for example.
  • Private network 18 can typically be a local are network (LAN), but may also be other types of networks, including but not limited to, a wired LAN, one or more LAN segments, a wireless LAN, a wide area network, a Bluetooth® network, a USB network, etc. Accordingly, connections 26 , 28 may be wired or wireless connections and may employ any appropriate communication technologies and protocols to enable communication between the devices.
  • LAN local are network
  • connections 26 , 28 may be wired or wireless connections and may employ any appropriate communication technologies and protocols to enable communication between the devices.
  • Private network 24 may also comprise multiple networks coupled together, multiple LAN segments, etc.
  • this disclosure will describe private network 24 as a wired/wireless Ethernet LAN, typical of internet enabled households and businesses. Wired/wireless routers, such as those provided by Linksys® and other companies, can provide such a network.
  • Wired/wireless routers such as those provided by Linksys® and other companies, can provide such a network.
  • the inventions herein may operate within various different types of network topologies.
  • Public network 30 may be any type of LAN or WAN.
  • public network 30 may represent a public network such as the internet.
  • Network interface device 32 may provide a bridge between private network 24 and public network 30 , and also may provide a security barrier between private network 24 and the internet, such as a firewall. Typical examples of network interface device 32 are cable modems, DSL modems, T1 connections, and the like. Devices connected to public network 30 (i.e. the internet) typically cannot penetrate the security barrier of network interface device 32 to discover or communicate with devices on private network 32 . However, in an embodiment, network interface device 32 may allow devices on private network 24 to access public network 30 so that they can browse the internet, download applications, and communicate with devices on the internet. Network interface device 32 may be a single network interface device, or may be multiple network interface devices that provide multiple access points between private network 24 and the internet.
  • Devices connected to private network 24 may receive a private network address, while devices connected to public network 30 may receive public network addresses.
  • a private network address is an address specific to private network 24 .
  • Devices that receive a private network address from private network 24 can typically communicate freely with other devices on private network 24 .
  • devices on public network 30 typically cannot discover or communicate with devices on private network 24 having private network addresses because of the security mechanisms in network interface device 32 .
  • a typical example is a home or business LAN, where devices on the LAN can communicate with each other, and can access the internet, but devices on the internet cannot discover or initiate communications with the devices on the LAN.
  • network interface device 32 Since network interface device 32 is connected to public network 30 , network interface device may receive a public network address.
  • a public network address is an address that can be accessed by devices on public network 30 and/or private network 24 . Since, in this example, public network 30 represents the internet, the public network address received by network interface device is a public internet address, which can be accessed by other devices on the internet. The opposite may also be true.
  • devices on public network 30 can “see” network interface device 32 and its public network address, but they cannot “see” devices on private network 24 .
  • Devices on private network 24 can not only “see” the other devices on private network 24 and access them using their private network addresses, they can also “see” devices on public network 30 and access them using their public network addresses.
  • FIG. 1 also shows server 34 , which is executing address registration process 36 .
  • Server 34 can be any type of computing device or group of devices capable of executing address registration process 36 .
  • server 34 is a server computer, an internet server, a group of servers, a cluster of servers, or any configuration of server computers.
  • System 10 shows a typical configuration for the inventions described herein. However, system 10 is not the only architecture within which the inventions described herein can operation. One skilled in the art will recognize that various system architectures can support the systems, methods, and apparatuses described herein. Also, although not shown, any of the applications and processes may be run by any computing device within system 10 , or by any computing device capable or running the applications and processes. For example, host device 12 may execute address registration process 36 and/or application 22 ; endpoint devices 18 , 20 may execute web browser 16 , browser application 14 , and or address registration process 36 ; and server 34 may execute web browser 16 , browser application 14 , and/or application 22 .
  • browser application 14 since browser application 14 is running within the security scheme of web browser 16 , browser application 14 may not be able to discover or communicate with application 22 , and application 22 may not be able to discover or communicate with browser application 14 .
  • FIG. 2 shows a block diagram of a typical processing architecture, which may execute software applications and processes.
  • Computer processing device 200 is coupled to display 202 for graphical output.
  • Processor 204 is a computer processor capable of executing software. Typical examples are computer processors (such as Intel® or AMD® processors), ASICs, microprocessors, and the like.
  • Processor 204 is coupled to memory 206 , which is typically a volatile RAM memory for storing instructions and data while processor 204 executes.
  • Processor 204 is also coupled to storage device 208 , which is a non-volatile storage medium, such as a hard drive, FLASH drive, tape drive, DVDROM, or similar device.
  • Program 210 is a computer program containing instructions and/or data, and is stored on storage device 208 .
  • processor 204 may load some or all of the instructions and/or data of program 210 into memory 206 for execution.
  • Program 210 can be any computer program or process including, but not limited to web browser 16 , browser application 14 , address registration process 36 , application 22 , or any other computer application or process.
  • Program 210 may include various instructions and subroutines, which, when loaded into memory 206 and executed by processor 204 cause processor 204 to perform various operations, some or all of which may effectuate the methods associated with the present inventions.
  • computer processing device 200 typically includes various forms of input and output.
  • the I/O may include network adapters, USB adapters, Bluetooth radios, mice, keyboards, touchpads, displays, touch screens, LEDs, vibration devices, speakers, microphones, sensors, or any other input or output device for use with computer processing device 200 .
  • FIG. 3 shows a flowchart diagram that depicts a process for controlling content within a web browser.
  • the process may be implemented as software executing on one or more devices.
  • the process may run on host device 12 , endpoint devices 18 , 20 , server 34 , or any combination thereof.
  • the process may also be implemented on any other capable device or in any appropriate architecture.
  • the content control process may operate to control content within a web browser.
  • the process may facilitate connectivity and communication between browser application 14 and application 22 , and allow application 22 to control web browser content displayed by browser application 14 .
  • browser application 14 is a video game downloaded by a user.
  • the video game runs as a browser application (e.g. a FLASH application) within web browser 16 , and is subject to the security restrictions of the web browser.
  • application 22 running on endpoint device 18 is a game controller application downloaded by the user.
  • the controller application acts as a game controller and allows the user to control and/or play the FLASH game.
  • the user may wish to connect the game controller application to the video game so he or she can play.
  • the controller application and the video game may not be able to discover and communicate with each other.
  • server 34 may receive 302 a communication from application 22 , which is running on endpoint device 18 .
  • application 22 may send the communication in order to register its addresses with server 34 .
  • the communication may include the private network address of endpoint device 18 (i.e. the private network address within private network 24 ), and may also include the public address of endpoint device 18 .
  • network interface device 32 is the bridge between private network 24 and public network 30 , the public and private network addresses of endpoint device 18 may match, at least in part, the public network address of network interface device 32 .
  • the communication may also contain an application ID.
  • Application 22 may have an application ID that it sends to server 34 along with the public and private network addresses.
  • Browser application 14 (running within browser 16 on host device 12 ) may also send a communication to server 34 .
  • the communication from browser application 14 may serve to register browser application 14 with address registration process 36 .
  • the communication may contain the public network address of host device 12 , and may also contain an application ID that uniquely identifies browser application 14 .
  • the public network address of host device 12 may match, in whole or in part, the public network address of network interface device 32 , since network interface 32 provides the interface between host device 12 and public network 30 .
  • the communication from browser application 14 and/or from application 22 also contains other information, such as the private network address of host device 12 , other information about host device 12 , application data, user data, or any other type of information.
  • FIG. 4 shows a an example of the communications between endpoint device 18 , host device 12 , and server 34 .
  • communication 402 includes the public and private network addresses of endpoint device 18 , and an application ID of application 22 .
  • communication 404 contains the public network address of host device 12 and the application ID of browser application 14 . The opposite may also be true.
  • Server 34 may receive communications from other endpoint devices and host devices (not shown).
  • server 34 is an internet server that receives communications (include network addresses and application IDs) from devices connected to various private networks throughout cyberspace.
  • Server 34 may record and catalog the information it receives from these various devices in, for example, a database or other data store.
  • server 34 may determine 304 whether endpoint device 18 and host device 12 are connected to the same local network based upon the public network addresses within the communications.
  • the public network address is typically associated with a public-facing device connected to the local network. In FIG. 1 , that device is network interface device 32 . Therefore, in this example, when server 34 receives communication 402 from endpoint device 18 , the public network address may indicate that endpoint device 18 is connected to private network 24 since the communication is being routed through network interface device 32 .
  • the public network address in communication 404 from host device 12 may indicate that host device 12 is connected to private network 24 and that communication 404 is being routed through network interface device 32 .
  • server 34 can determine which devices are connected to the same private networks.
  • the public network addresses may match, in whole or in part, or may otherwise be related. For example, server 34 may determine that two devices are connected to the same private network if the public network addresses of the two devices match. In another example, server 34 may determine that two devices are connected to the same private network if the public network addresses of the two devices have the same subnet address.
  • Server 34 may also contain a lookup table or other device that provides information about which public network addresses are associated with various private networks. By utilizing the lookup table or other mechanism, server 34 may determine whether received public network addresses indicate that devices are connected to the same private network.
  • System 10 may also facilitate a network connection between browser application 14 and application 22 by providing 308 the private network address of endpoint device 18 to browser application 14 .
  • browser application 14 and application 22 may not be able to connect or communicate with each other if the security of web browser 16 prevents such communication.
  • the security of web browser 16 may prevent browser application 14 and from broadcasting its presence on private network 24 .
  • the security of web browser 16 security may prevent browser application 14 from receiving broadcasts from application 22 .
  • browser application 14 may be able to communicate directly with application 22 if browser application 14 knows the private network address of endpoint device 18 .
  • the system may be able to modify the security policy of web browser 16 to allow communication between browser application 14 and application 22 .
  • address registration process 36 and/or server 34 will provide the private network address of endpoint device 18 to browser application 14 only if application 22 and browser application 14 are compatible applications. For example, if address registration process 36 determines 310 that browser application 14 is a game application and application 22 is a controller application for that game, then address registration process 36 may determine that application 22 and browser application 14 are compatible applications and send the private network address of endpoint device 18 to browser application 14 , so that browser application 14 and application 22 can communicate with each other. However, if browser application 14 and application 22 are not compatible, then address registration process may not send the private network address to browser application 14 . For example, if browser application 14 is a video game, but application 22 is an application for drawing pictures, then they are likely not compatible. In this case, there may be no need to send the private network address of endpoint device 18 to browser application 14 in order to initiate communication between browser application 14 and application 22 .
  • Address registration process 36 may determine 310 whether applications are compatible in various ways. In one embodiment, address registration process 36 may compare the application IDs received from application 22 and browser application 14 . If the application IDs indicate the applications are compatible, address registration process may provide 308 the private network address of endpoint device 18 to browser application 14 . The application IDs may indicate the applications are compatible if the application IDs match, for example. In other embodiments, the application IDs may indicate compatibility if they are associated in some other way. For example, address registration process 36 may have a lookup table or hash table of application IDs that links compatible application IDs.
  • the application IDs may be any unique identifier and may include information such as a code representing the application and/or its version number, the name of the application, etc. The opposite may also be true.
  • address registration process 36 may provide 308 the private network address to browser application 14 in various ways.
  • browser application 14 may periodically poll address registration process 36 and ask for the address.
  • address registration process 36 may send browser application 14 a list of the private network addresses of all endpoint devices that are running compatible applications and connected to private network 24 .
  • address registration process 36 may send the private network address of an endpoint device to browser application 14 whenever an endpoint device running a compatible application and connected to private network 24 registers with address registration process 36 .
  • address registration process 36 may periodically broadcast lists of private network addresses, which can be retrieved by browser application 14 whenever appropriate. Other schemes of providing 308 the private network addresses to browser application 14 may also be employed.
  • the system may modify 312 the security policy of web browser 16 to allow for the communication.
  • endpoint device 18 may send 314 a policy file to host device 12 .
  • endpoint device 18 may send 314 policy file 406 to host device 12 by serving the policy file through a web server.
  • Endpoint device 18 may execute a web server application, which may be incorporated into application 22 , or may be a standalone or off-the-shelf web server application.
  • Typical off-the-shelf web server applications include the Apache® web server, Microsoft IISC® web server, etc.
  • endpoint device 20 or server 34 may also execute the web server application and send 314 the policy file 406 to host device 12 .
  • browser application 14 may access the web server executing on endpoint device 18 and download policy file 406 .
  • Policy files are typically known in the art.
  • policy file 406 may contain a new security policy for web browser 16 or changes to the security policy of web browser 16 that allow for communication between browser application 12 and application 22 .
  • browser application 14 may apply the policy file to the security policy of web browser 16 to allow for such communication.
  • the security policy of web browser 16 may be modified 312 through an HTML5 handshake.
  • HTML5 handshakes are also typically known in the art.
  • application 22 and browser application 14 may perform the HTML5 handshake in order to modify the security profile of web browser 16 and allow communication between browser application 14 and application 22 .
  • browser application 14 and application 22 may initiate one way communication, two way communication, or both.
  • browser application 14 may send data and/or instructions to application 22 , and vice versa.
  • the data and/or instructions may be any type of data or instructions for communication between two applications.
  • the data and/or instructions may include loss tolerant data (such as an audio or video stream), loss sensitive data (such as command or control data), etc.
  • the data and instructions may flow from application 22 to browser application 14 , from browser application 14 to application 22 , or both.
  • the data may include game data.
  • web browser 14 may send data to application 22 that lets application 22 know what kind of game data and instructions are expected by browser application 14 . In this way, browser application 14 and/or application 22 can customize the type of data sent back and forth.
  • the following example shows one embodiment of the present invention.
  • a video game application is used to illustrate the operation of the present invention.
  • a fictional Player wants to play a video game within a web browser and use his smart phone as a game controller to control the game.
  • Host device 12 is already connected to private network 24 , so Player opens web browser 16 and directs it to a web site that hosts his selected video game.
  • the video game in this example is a FLASH browser application.
  • web browser 16 downloads the game application, it begins to execute the game within web browser 16 .
  • web browser 16 has a security policy that restricts the game from discovering other devices connected to private network 24 , or from broadcasting its presence over private network 24 . Therefore, certain operations may be needed before Player's smart phone can be used as a game controller.
  • the game Once the game loads, it sends a message and registers its presence with server 34 .
  • the message includes the public network address of host device 12 and the application ID of the game.
  • the application ID lets server 34 know which game is running, and the public network address lets server 34 know that host device 12 is connected to private network 24
  • Player picks up his smart phone (i.e. endpoint device 18 ) and downloads a game controller application for the game (i.e. application 22 ) from the internet.
  • Player's smart phone is also connected to private network 24 and has received its own private network address.
  • server 34 contains the public and private network addresses of the smart phone, and the application ID of the game controller application.
  • the application ID lets server 34 know which game controller application is running, and the public network address lets server 34 know that the smart phone is connected to private network 24 .
  • server 34 may make a determination, based on the public network addresses and application IDs it received, that the game controller and game applications are compatible and that host device 12 and the smart phone are connected to the same local network. If server 34 makes such a determination, it may provide the private network address of the smart phone to the game application to facilitate communication between the game and the game controller applications.
  • the game application and/or the game controller application may then modify the security policy of the web browser in order to allow network communication between the applications.
  • the smart phone, or another device may provide a policy file or initiate an HTML5 handshake to modify the security profile of web browser 16 .
  • the game application and game controller application may then establish network communication with each other by, for example, opening one or more socket connections. Once the applications connect over the network, Player can use the game controller application running on his smart phone to control and play the game running within the web browser.
  • the game controller and the game applications may then send data, including game control data, video data, audio data, button press data, accelerometer data, etc., back and forth between the game controller application and the game application.
  • Browser application 14 may be a browser application executing within web browser 16 , which may be executing on host device 12 .
  • Browser application 14 sends a communication with the public network address of host device 12 to server 34 .
  • Application 22 may be an application for communicating with and controlling content displayed by browser application 14 , and may be executing on endpoint device 18 . Application 22 may send a communication to server 34 with the public and private network addresses of endpoint device 18 .
  • Server 34 may determine that application 22 and browser application 14 are compatible applications executing on devices connected to the same local network. If so, server 34 may send the private network address of endpoint 18 to browser application 14 to facilitate connectivity between the two.
  • Browser application 14 and application 22 may then communicate with each other over private network 24 , and may modify the security policy of web browser 16 to allow for two-way communication between browser application 14 and application 22 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A system and method for connected devices over a network includes: receiving, by an address registration server, a communication from a host device and a communication from an endpoint device; determining whether the host device and the endpoint device are connected to a single local network and whether the host device and the endpoint device are each executing a compatible application; and facilitating a network connection between the endpoint device and the host device over the local network by providing a private network address of the endpoint device to the host device.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application claims priority to and benefit of Provisional Patent Application Ser. No. 61/311,102, filed on Mar. 5, 2010, and to Provisional Patent Application Ser. No. 61/421,977, filed on Dec. 10, 2010. Both applications 61/311,102 and 61/421,977 are incorporated herein by reference in their entirety.
  • TECHNICAL FIELD
  • This invention relates generally to the field of communication over a network, and more particularly, to communicating over a network to control content displayed in browser application running within a web browser, and establishing two-way communication between the browser application and a remote application.
  • BACKGROUND
  • With the rise of mobile computing, more and more devices are able to connect to computer networks. Network communication is no longer limited to PCs and laptops. Mobile phones and smart phones can typically connect not only to mobile telephone networks, but also Wi-fi networks, Bluetooth® networks, USB networks, etc. Other devices, which historically were not able to connect to computer networks, are entering the market already configured to access the internet. Televisions, DVD players, and even home appliances have network and internet capability.
  • Mobile applications have also become increasingly popular. Smart phones, such as the iPhone® device, Android® phones, or Blackberry® phones can download and run a broad array of different applications, from games and movie players to productivity and work tools.
  • Browser applications are attractive to developers because they can be relatively easy to develop and deploy. Browser applications also provide dynamic and customizable content for display within a web browser. A browser application developer could create, for example, a video game or media presentation application that can run within a web browser.
  • Browser applications, such as FLASH® applications, Unity™ applications, JavaScript® applications, and the like, can be downloaded and run by a web browser without the need to install the application directly onto a local computer. Rather, a user can run a browser application simply by directing his or her browser to a URL that provides a browser application. The web browser will then load and execute the browser application directly, downloading it just as if the user were viewing a static web page.
  • However, browser applications are typically subject to security restrictions. Web browsers often employ a security scheme, sometimes called sandbox security, that restricts browser applications from accessing resources on the local machine. For example, web browsers will often prevent browser applications from accessing files on the local hard drive, operating system resources, etc. Web browsers may also prevent browser applications from communicating over a network, such as a local or wide area network connected to the local machine.
  • Unfortunately, because of a the security mechanisms of a web browser, it may be difficult for a mobile device or mobile application to connect to and communicate with a browser application running within a web browser.
  • BRIEF SUMMARY OF THE INVENTION
  • The system and method includes apparatuses and operations for receiving, by an address registration server, a communication from a host device including a public network address of the host device, and a communication from an endpoint device including a public network address and a private network address of the endpoint device. The system and method also may determine, whether the host device and the endpoint device are connected to a single local network based on the public network addresses of the host device and a public address of the endpoint device, and whether the host device and the endpoint device are each executing a compatible application. The system and method may also facilitate a network connection between the endpoint device and the host device over the local network by providing the private network address of the endpoint device to the host device if it is determined that the endpoint device and the host device are connected to the local network and each executing a compatible application.
  • In various embodiments, the communication from the host device and the communication from the endpoint device each include an application ID configured to identify an application running on the endpoint device, the host device, or both. The determination regarding whether the endpoint device and the host device are each executing the compatible application may be based upon a comparison of the application ID received from the host device and the application ID received from the endpoint device.
  • In embodiments, the host device may execute a browser application within a web browser, and the endpoint device may executing an application configured to control content in the browser application. Determining whether the endpoint device and the host device are each executing the compatible application may be based upon whether the browser application and the application configured to control content in a browser application are compatible applications. The browser application may be, for example, game application and the application configured to control the content may be a game controller application.
  • The system and method may also modify a security policy of the web browser to allow communication between the browser application and the application configured to control content in the browser application.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of an exemplary computer network architecture suitable for operation of the present invention;
  • FIG. 2 is a block diagram of a computer processing device;
  • FIG. 3 is a flowchart depicting a method for use in connection with the present invention; and
  • FIG. 4 is a block diagram illustrating some of the operations of the present invention.
  • DETAILED DESCRIPTION OF THE EMBODIMENTS
  • The present invention may provide a system and method for connecting devices over a network. More particularly, the present invention may be used to connect and facilitate communication between a browser application running within a web browser and an application executing on an endpoint device.
  • Web browsers often employ security schemes, sometimes referred to as sandbox security, to ensure that browser applications cannot cause harm to a local machine. These security schemes may restrict a browser application from using local machine resources, such as the hard drive of the computer computer, I/O, or networking capabilities.
  • Typically, devices on a network can discover other devices on the network by broadcasting their presence on the network, and monitoring broadcasts from other devices. However, if a browser application, for example a FLASH application, is running within a web browser on a machine connected to a network, the security mechanisms of the web browser may prevent the browser application from discovering or communicating with other device connected to the network, even if those other devices are running applications that could otherwise communicate or interact with the browser application.
  • System Architecture
  • Referring now to FIG. 1, in an embodiment, the present invention provides a system and architecture 10 for controlling content within a web browser. The system may include host device 12, which may execute browser application 14 within web browser 16.
  • FIG. 1 shows host device 12 as a desktop computer, however host device 12 is not limited to desktop computers. For example, host device 12 may be a laptop computer, server computer, game console, mobile device, smart phone, internet television, home appliance, network- and processor-enabled remote control toy, internet enabled billboard, medical display device, iPad®, or any other device capable of running browser application 14 within web browser 16.
  • FIG. 1 also shows endpoint devices 18, 20. Endpoint device 18 may execute application 22, which may be an application configured to communicate with browser application 14. Endpoint device may typically be a network-enabled wireless handheld device, such as a PDA or smart phone, and application 22 is typically a mobile application. However, endpoint device may also be any type of device capable of running application 22 and connecting to private network 24, such as a laptop or desktop computer, a gaming console, a game controller, etc.
  • Endpoint device 20 may be another endpoint device within system 10. Endpoint device 20 is depicted here merely to show that other devices may be included within system 10 and connected to private network 24. Although not shown, endpoint device 20 may execute an application such as application 20, may execute other applications capable of communicating with browser application 14, or may execute applications capable of communicating with other browser applications, for example.
  • Host device 12 and endpoint devices 18, 20 may be connected to private network 18. Private network 18 can typically be a local are network (LAN), but may also be other types of networks, including but not limited to, a wired LAN, one or more LAN segments, a wireless LAN, a wide area network, a Bluetooth® network, a USB network, etc. Accordingly, connections 26, 28 may be wired or wireless connections and may employ any appropriate communication technologies and protocols to enable communication between the devices.
  • Private network 24 may also comprise multiple networks coupled together, multiple LAN segments, etc. For the sake of simplicity, this disclosure will describe private network 24 as a wired/wireless Ethernet LAN, typical of internet enabled households and businesses. Wired/wireless routers, such as those provided by Linksys® and other companies, can provide such a network. However, one skilled in the art will recognize that the inventions herein may operate within various different types of network topologies.
  • Private network 24 is shown as separated from public network 30 by network interface device 32. Public network 30 may be any type of LAN or WAN. In this example, public network 30 may represent a public network such as the internet.
  • Network interface device 32 may provide a bridge between private network 24 and public network 30, and also may provide a security barrier between private network 24 and the internet, such as a firewall. Typical examples of network interface device 32 are cable modems, DSL modems, T1 connections, and the like. Devices connected to public network 30 (i.e. the internet) typically cannot penetrate the security barrier of network interface device 32 to discover or communicate with devices on private network 32. However, in an embodiment, network interface device 32 may allow devices on private network 24 to access public network 30 so that they can browse the internet, download applications, and communicate with devices on the internet. Network interface device 32 may be a single network interface device, or may be multiple network interface devices that provide multiple access points between private network 24 and the internet.
  • Devices connected to private network 24 may receive a private network address, while devices connected to public network 30 may receive public network addresses. A private network address is an address specific to private network 24. Devices that receive a private network address from private network 24 can typically communicate freely with other devices on private network 24. However, devices on public network 30 typically cannot discover or communicate with devices on private network 24 having private network addresses because of the security mechanisms in network interface device 32. A typical example is a home or business LAN, where devices on the LAN can communicate with each other, and can access the internet, but devices on the internet cannot discover or initiate communications with the devices on the LAN.
  • Since network interface device 32 is connected to public network 30, network interface device may receive a public network address. A public network address is an address that can be accessed by devices on public network 30 and/or private network 24. Since, in this example, public network 30 represents the internet, the public network address received by network interface device is a public internet address, which can be accessed by other devices on the internet. The opposite may also be true.
  • In other words, devices on public network 30 (i.e. internet devices) can “see” network interface device 32 and its public network address, but they cannot “see” devices on private network 24. Devices on private network 24 can not only “see” the other devices on private network 24 and access them using their private network addresses, they can also “see” devices on public network 30 and access them using their public network addresses.
  • FIG. 1 also shows server 34, which is executing address registration process 36. Server 34 can be any type of computing device or group of devices capable of executing address registration process 36. Typically, server 34 is a server computer, an internet server, a group of servers, a cluster of servers, or any configuration of server computers.
  • System 10 shows a typical configuration for the inventions described herein. However, system 10 is not the only architecture within which the inventions described herein can operation. One skilled in the art will recognize that various system architectures can support the systems, methods, and apparatuses described herein. Also, although not shown, any of the applications and processes may be run by any computing device within system 10, or by any computing device capable or running the applications and processes. For example, host device 12 may execute address registration process 36 and/or application 22; endpoint devices 18, 20 may execute web browser 16, browser application 14, and or address registration process 36; and server 34 may execute web browser 16, browser application 14, and/or application 22.
  • As discussed, since browser application 14 is running within the security scheme of web browser 16, browser application 14 may not be able to discover or communicate with application 22, and application 22 may not be able to discover or communicate with browser application 14.
  • Computer Processing Device
  • The present inventions may be implemented as hardware, software, or a combination of hardware and software. FIG. 2 shows a block diagram of a typical processing architecture, which may execute software applications and processes. Computer processing device 200 is coupled to display 202 for graphical output. Processor 204 is a computer processor capable of executing software. Typical examples are computer processors (such as Intel® or AMD® processors), ASICs, microprocessors, and the like. Processor 204 is coupled to memory 206, which is typically a volatile RAM memory for storing instructions and data while processor 204 executes. Processor 204 is also coupled to storage device 208, which is a non-volatile storage medium, such as a hard drive, FLASH drive, tape drive, DVDROM, or similar device. Program 210 is a computer program containing instructions and/or data, and is stored on storage device 208. In a typical scenario, processor 204 may load some or all of the instructions and/or data of program 210 into memory 206 for execution. Program 210 can be any computer program or process including, but not limited to web browser 16, browser application 14, address registration process 36, application 22, or any other computer application or process.
  • Program 210 may include various instructions and subroutines, which, when loaded into memory 206 and executed by processor 204 cause processor 204 to perform various operations, some or all of which may effectuate the methods associated with the present inventions.
  • Although not shown, computer processing device 200 typically includes various forms of input and output. The I/O may include network adapters, USB adapters, Bluetooth radios, mice, keyboards, touchpads, displays, touch screens, LEDs, vibration devices, speakers, microphones, sensors, or any other input or output device for use with computer processing device 200.
  • Content Control Process
  • FIG. 3 shows a flowchart diagram that depicts a process for controlling content within a web browser. The process may be implemented as software executing on one or more devices. For example, the process may run on host device 12, endpoint devices 18, 20, server 34, or any combination thereof. The process may also be implemented on any other capable device or in any appropriate architecture.
  • In an embodiment, the content control process may operate to control content within a web browser. In a specific embodiment, the process may facilitate connectivity and communication between browser application 14 and application 22, and allow application 22 to control web browser content displayed by browser application 14. In one example, browser application 14 is a video game downloaded by a user. The video game runs as a browser application (e.g. a FLASH application) within web browser 16, and is subject to the security restrictions of the web browser. In the same example, application 22 running on endpoint device 18 is a game controller application downloaded by the user. The controller application acts as a game controller and allows the user to control and/or play the FLASH game. The user may wish to connect the game controller application to the video game so he or she can play. However, since the video game is executing within the security mechanisms of web browser 16, the controller application and the video game may not be able to discover and communicate with each other.
  • In order for the applications to communicate, server 34 (and/or address registration process 36) may receive 302 a communication from application 22, which is running on endpoint device 18. In one embodiment, application 22 may send the communication in order to register its addresses with server 34. Accordingly, the communication may include the private network address of endpoint device 18 (i.e. the private network address within private network 24), and may also include the public address of endpoint device 18. In this example, since network interface device 32 is the bridge between private network 24 and public network 30, the public and private network addresses of endpoint device 18 may match, at least in part, the public network address of network interface device 32.
  • In some cases, the communication may also contain an application ID. Application 22 may have an application ID that it sends to server 34 along with the public and private network addresses.
  • Browser application 14 (running within browser 16 on host device 12) may also send a communication to server 34. Similarly, the communication from browser application 14 may serve to register browser application 14 with address registration process 36. The communication may contain the public network address of host device 12, and may also contain an application ID that uniquely identifies browser application 14. In this case, as discussed above, the public network address of host device 12 may match, in whole or in part, the public network address of network interface device 32, since network interface 32 provides the interface between host device 12 and public network 30. In some embodiments, the communication from browser application 14 and/or from application 22 also contains other information, such as the private network address of host device 12, other information about host device 12, application data, user data, or any other type of information.
  • FIG. 4 shows a an example of the communications between endpoint device 18, host device 12, and server 34. As shown, communication 402 includes the public and private network addresses of endpoint device 18, and an application ID of application 22. Similarly, communication 404 contains the public network address of host device 12 and the application ID of browser application 14. The opposite may also be true.
  • Server 34 may receive communications from other endpoint devices and host devices (not shown). In one embodiment, server 34 is an internet server that receives communications (include network addresses and application IDs) from devices connected to various private networks throughout cyberspace. Server 34 may record and catalog the information it receives from these various devices in, for example, a database or other data store.
  • Upon receipt of the communications, server 34 may determine 304 whether endpoint device 18 and host device 12 are connected to the same local network based upon the public network addresses within the communications. As described above, the public network address is typically associated with a public-facing device connected to the local network. In FIG. 1, that device is network interface device 32. Therefore, in this example, when server 34 receives communication 402 from endpoint device 18, the public network address may indicate that endpoint device 18 is connected to private network 24 since the communication is being routed through network interface device 32. Similarly, the public network address in communication 404 from host device 12 may indicate that host device 12 is connected to private network 24 and that communication 404 is being routed through network interface device 32.
  • By comparing the public network address of various devices in this way, server 34 can determine which devices are connected to the same private networks. The public network addresses may match, in whole or in part, or may otherwise be related. For example, server 34 may determine that two devices are connected to the same private network if the public network addresses of the two devices match. In another example, server 34 may determine that two devices are connected to the same private network if the public network addresses of the two devices have the same subnet address. Server 34 may also contain a lookup table or other device that provides information about which public network addresses are associated with various private networks. By utilizing the lookup table or other mechanism, server 34 may determine whether received public network addresses indicate that devices are connected to the same private network.
  • System 10 may also facilitate a network connection between browser application 14 and application 22 by providing 308 the private network address of endpoint device 18 to browser application 14. As discussed above, browser application 14 and application 22 may not be able to connect or communicate with each other if the security of web browser 16 prevents such communication. For example, the security of web browser 16 may prevent browser application 14 and from broadcasting its presence on private network 24. Similarly, the security of web browser 16 security may prevent browser application 14 from receiving broadcasts from application 22.
  • However, browser application 14 may be able to communicate directly with application 22 if browser application 14 knows the private network address of endpoint device 18. By providing the private network address of endpoint device 18 to browser application 14, the system may be able to modify the security policy of web browser 16 to allow communication between browser application 14 and application 22.
  • In some embodiments, address registration process 36 and/or server 34 will provide the private network address of endpoint device 18 to browser application 14 only if application 22 and browser application 14 are compatible applications. For example, if address registration process 36 determines 310 that browser application 14 is a game application and application 22 is a controller application for that game, then address registration process 36 may determine that application 22 and browser application 14 are compatible applications and send the private network address of endpoint device 18 to browser application 14, so that browser application 14 and application 22 can communicate with each other. However, if browser application 14 and application 22 are not compatible, then address registration process may not send the private network address to browser application 14. For example, if browser application 14 is a video game, but application 22 is an application for drawing pictures, then they are likely not compatible. In this case, there may be no need to send the private network address of endpoint device 18 to browser application 14 in order to initiate communication between browser application 14 and application 22.
  • Address registration process 36 may determine 310 whether applications are compatible in various ways. In one embodiment, address registration process 36 may compare the application IDs received from application 22 and browser application 14. If the application IDs indicate the applications are compatible, address registration process may provide 308 the private network address of endpoint device 18 to browser application 14. The application IDs may indicate the applications are compatible if the application IDs match, for example. In other embodiments, the application IDs may indicate compatibility if they are associated in some other way. For example, address registration process 36 may have a lookup table or hash table of application IDs that links compatible application IDs.
  • The application IDs may be any unique identifier and may include information such as a code representing the application and/or its version number, the name of the application, etc. The opposite may also be true.
  • In some embodiments, address registration process 36 may provide 308 the private network address to browser application 14 in various ways. In one embodiment, browser application 14 may periodically poll address registration process 36 and ask for the address. Upon receipt of the request, address registration process 36 may send browser application 14 a list of the private network addresses of all endpoint devices that are running compatible applications and connected to private network 24. In another embodiment, address registration process 36 may send the private network address of an endpoint device to browser application 14 whenever an endpoint device running a compatible application and connected to private network 24 registers with address registration process 36. In yet another embodiment, address registration process 36 may periodically broadcast lists of private network addresses, which can be retrieved by browser application 14 whenever appropriate. Other schemes of providing 308 the private network addresses to browser application 14 may also be employed.
  • If the security of web browser 16 prevents communication between browser application 14 and application 22, then the system may modify 312 the security policy of web browser 16 to allow for the communication. For example, endpoint device 18 may send 314 a policy file to host device 12.
  • Referring to FIGS. 3 and 4, in one embodiment, endpoint device 18 may send 314 policy file 406 to host device 12 by serving the policy file through a web server. Endpoint device 18 may execute a web server application, which may be incorporated into application 22, or may be a standalone or off-the-shelf web server application. Typical off-the-shelf web server applications include the Apache® web server, Microsoft IISC® web server, etc. One skilled in the art will recognize that other devices, such as endpoint device 20 or server 34, may also execute the web server application and send 314 the policy file 406 to host device 12.
  • Upon receipt of the private network address of endpoint device 18, browser application 14 may access the web server executing on endpoint device 18 and download policy file 406. Policy files are typically known in the art. In this example, policy file 406 may contain a new security policy for web browser 16 or changes to the security policy of web browser 16 that allow for communication between browser application 12 and application 22. When browser application 14 receives policy file 406, it may apply the policy file to the security policy of web browser 16 to allow for such communication.
  • In another embodiment, the security policy of web browser 16 may be modified 312 through an HTML5 handshake. HTML5 handshakes are also typically known in the art. In this case, application 22 and browser application 14 may perform the HTML5 handshake in order to modify the security profile of web browser 16 and allow communication between browser application 14 and application 22.
  • Once browser application 14 and application 22 establish network communication, they may initiate one way communication, two way communication, or both. For example, browser application 14 may send data and/or instructions to application 22, and vice versa. The data and/or instructions may be any type of data or instructions for communication between two applications. For example, the data and/or instructions may include loss tolerant data (such as an audio or video stream), loss sensitive data (such as command or control data), etc. The data and instructions may flow from application 22 to browser application 14, from browser application 14 to application 22, or both. In some embodiments, the data may include game data. For example, if web browser application 14 is a game and application 22 is a game controller application, web browser 14 may send data to application 22 that lets application 22 know what kind of game data and instructions are expected by browser application 14. In this way, browser application 14 and/or application 22 can customize the type of data sent back and forth.
  • Although the descriptions above provide examples with a single endpoint device, a single host device, and a single server, one skilled in the art will recognize that any combination employing single or multiple devices are possible. Any combination of single or multiple endpoint devices, single or multiple host devices, and/or single or multiple address registration server devices may fall within the scope of the invention. For example, multiple endpoint devices may connect to a single host device, a single endpoint device may connect to a single host device, single or multiple host and/or endpoint devices may communicate with single or multiple address registration server devices, etc. Other combinations are also within the scope of the invention.
  • Gaming Example
  • The following example shows one embodiment of the present invention. A video game application is used to illustrate the operation of the present invention.
  • In this example, a fictional Player wants to play a video game within a web browser and use his smart phone as a game controller to control the game. Host device 12 is already connected to private network 24, so Player opens web browser 16 and directs it to a web site that hosts his selected video game. The video game in this example is a FLASH browser application. When web browser 16 downloads the game application, it begins to execute the game within web browser 16. However, web browser 16 has a security policy that restricts the game from discovering other devices connected to private network 24, or from broadcasting its presence over private network 24. Therefore, certain operations may be needed before Player's smart phone can be used as a game controller.
  • Once the game loads, it sends a message and registers its presence with server 34. The message includes the public network address of host device 12 and the application ID of the game. The application ID lets server 34 know which game is running, and the public network address lets server 34 know that host device 12 is connected to private network 24
  • Next, Player picks up his smart phone (i.e. endpoint device 18) and downloads a game controller application for the game (i.e. application 22) from the internet. Player's smart phone is also connected to private network 24 and has received its own private network address. When Player loads the game controller application, it sends a communication to server 34 that contains the public and private network addresses of the smart phone, and the application ID of the game controller application. The application ID lets server 34 know which game controller application is running, and the public network address lets server 34 know that the smart phone is connected to private network 24.
  • After it receives the communications, server 34 may make a determination, based on the public network addresses and application IDs it received, that the game controller and game applications are compatible and that host device 12 and the smart phone are connected to the same local network. If server 34 makes such a determination, it may provide the private network address of the smart phone to the game application to facilitate communication between the game and the game controller applications.
  • If needed, the game application and/or the game controller application may then modify the security policy of the web browser in order to allow network communication between the applications. For example, the smart phone, or another device, may provide a policy file or initiate an HTML5 handshake to modify the security profile of web browser 16.
  • The game application and game controller application may then establish network communication with each other by, for example, opening one or more socket connections. Once the applications connect over the network, Player can use the game controller application running on his smart phone to control and play the game running within the web browser. The game controller and the game applications may then send data, including game control data, video data, audio data, button press data, accelerometer data, etc., back and forth between the game controller application and the game application.
  • Operation of the System and Method
  • The following example illustrates the operation of some embodiments of the present invention. Browser application 14 may be a browser application executing within web browser 16, which may be executing on host device 12. Browser application 14 sends a communication with the public network address of host device 12 to server 34.
  • Application 22 may be an application for communicating with and controlling content displayed by browser application 14, and may be executing on endpoint device 18. Application 22 may send a communication to server 34 with the public and private network addresses of endpoint device 18.
  • Server 34 may determine that application 22 and browser application 14 are compatible applications executing on devices connected to the same local network. If so, server 34 may send the private network address of endpoint 18 to browser application 14 to facilitate connectivity between the two.
  • Browser application 14 and application 22 may then communicate with each other over private network 24, and may modify the security policy of web browser 16 to allow for two-way communication between browser application 14 and application 22.
  • The present disclosure makes reference to various block diagrams and flowcharts. One skilled in the art will recognize that the order and configuration of components in the block diagrams and steps in the flowcharts are not limitations and are provided for illustration only. Various appropriate configurations of components and devices, and various orders and sequences of operation may fall within the scope of the claims.
  • While the invention has been described in connection with the specific embodiments thereof, it will be understood that it is capable of further modification. Furthermore, this application is intended to cover any variations, uses, or adaptations of the invention, including such departures from the present disclosure as come within known or customary practice in the art to which the invention pertains.

Claims (18)

1. A method of connecting devices on a network comprising:
receiving, by an address registration server, a communication from a host device including a public network address of the host device, and a communication from an endpoint device including a public network address and a private network address of the endpoint device;
determining, by the address registration server, whether the host device and the endpoint device are connected to a single local area network based on the public network addresses of the host device and a public address of the endpoint device, and whether the host device and the endpoint device are each executing a compatible application; and
facilitating a network connection between the endpoint device and the host device over the local area network by providing the private network address of the endpoint device to the host device if it is determined that the endpoint device and the host device are connected to the local area network and each executing a compatible application.
2. A method as set forth in claim 1, wherein, in the step of receiving, the communication from the endpoint device and the host device includes an application ID configured to identify an application running on the endpoint device, the host device, or both.
3. A method as set forth in claim 2, wherein the step of determining includes comparing the application ID received from the host device to the application ID received from the endpoint device.
4. A method as set forth in claim 1, further comprising:
executing, by the host device, a browser application within a web browser; and
executing, by the endpoint device, an application configured to control content in the browser application.
5. A method as set forth in claim 4, wherein executing the browser application includes executing one of:
a flash application
a unity application;
a web script; and
an HTML5 application.
6. A method set forth in claim 4, wherein the step of determining includes determining whether the browser application and the application configured to control content in the browser application are compatible applications.
7. A method as set forth in claim 4, wherein:
executing the browser application includes executing a game application; and
executing the application includes executing a game controller application.
8. A method as set forth in claim 4, further comprising modifying a security policy of the web browser to allow communication between the browser application and the application configured to control content in the browser application.
9. A method as set forth in claim 8, wherein the step of modifying includes one of:
sending, to the host device, a policy file configured to allow the application executing on the endpoint device to access the browser application through security mechanisms of the web browser; and
executing, by the host device and the endpoint device, an HTML5 policy handshake.
10. A system for connecting devices on a network comprising:
an endpoint device having a private network address and a public network address;
a host device having a public network address; and
an address registration server configured to facilitate a network connection between the endpoint device and the host device over a single local area network by providing the private network address of the endpoint device to the host device if it is determined that the endpoint device and the host device are each connected to the single local area network and each executing a compatible application.
11. A system as set forth in claim 10, wherein the host device and the endpoint each communicate an application ID configured to identify an application running on the endpoint device, the host device, or both.
12. A system as set forth in claim 11, wherein the address registration server is further configured to determine whether the endpoint device and the host device are each executing the compatible application based upon a comparison of the application ID received from the host device and the application ID received from the endpoint device.
13. A system as set forth in claim 10, wherein the host device is further configured to execute a browser application within a web browser.
14. A system as set forth in claim 13, wherein the endpoint device is further configured to execute an application designed to control content in the browser application.
15. A system as set forth in claim 13 wherein the browser application includes one of:
a flash application
a unity application;
a web script; and
an HTML5 application.
16. A system as set forth in claim 13 wherein the host device is further configured to execute a game application within the web browser and the endpoint device is further configured to execute a game controller application for controlling content within the game application.
17. A system as set forth in claim 14 wherein the host device and the endpoint device are configured to modify a security policy of the web browser to allow communication between the browser application and the application configured to control content in the browser application.
18. A method as set forth in claim 17 wherein the host device and the endpoint device are further configure to modify the security policy by performing operations including one of:
sending a policy file from the endpoint device to the host device, the policy file configured to allow the application executing on the endpoint device to access the browser application through security mechanisms of the web browser; and
executing an HTML5 policy handshake.
US13/041,313 2010-03-05 2011-03-04 System and method for two way communication and controlling content in a web browser Active US8019878B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/041,313 US8019878B1 (en) 2010-03-05 2011-03-04 System and method for two way communication and controlling content in a web browser

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31110210P 2010-03-05 2010-03-05
US42197710P 2010-12-10 2010-12-10
US13/041,313 US8019878B1 (en) 2010-03-05 2011-03-04 System and method for two way communication and controlling content in a web browser

Publications (2)

Publication Number Publication Date
US20110219124A1 true US20110219124A1 (en) 2011-09-08
US8019878B1 US8019878B1 (en) 2011-09-13

Family

ID=44532226

Family Applications (5)

Application Number Title Priority Date Filing Date
US13/041,319 Active US8024469B1 (en) 2010-03-05 2011-03-04 System and method for connecting network sockets between applications
US13/041,313 Active US8019878B1 (en) 2010-03-05 2011-03-04 System and method for two way communication and controlling content in a web browser
US13/042,257 Active US8019867B1 (en) 2010-03-05 2011-03-07 System and method for two way communication and controlling a remote apparatus
US13/041,951 Expired - Fee Related US8171145B2 (en) 2010-03-05 2011-03-07 System and method for two way communication and controlling content in a game
US13/042,286 Expired - Fee Related US8166181B2 (en) 2010-03-05 2011-03-07 System and method for two way communication and controlling content on a display screen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/041,319 Active US8024469B1 (en) 2010-03-05 2011-03-04 System and method for connecting network sockets between applications

Family Applications After (3)

Application Number Title Priority Date Filing Date
US13/042,257 Active US8019867B1 (en) 2010-03-05 2011-03-07 System and method for two way communication and controlling a remote apparatus
US13/041,951 Expired - Fee Related US8171145B2 (en) 2010-03-05 2011-03-07 System and method for two way communication and controlling content in a game
US13/042,286 Expired - Fee Related US8166181B2 (en) 2010-03-05 2011-03-07 System and method for two way communication and controlling content on a display screen

Country Status (7)

Country Link
US (5) US8024469B1 (en)
EP (1) EP2542982A4 (en)
JP (1) JP5730914B2 (en)
KR (1) KR20130018708A (en)
AU (1) AU2011222509C1 (en)
CA (1) CA2792038A1 (en)
WO (5) WO2011109777A1 (en)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719898B1 (en) 2012-10-15 2014-05-06 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US8769063B2 (en) 2011-10-11 2014-07-01 Citrix Systems, Inc. Policy-based application management
US8799994B2 (en) 2011-10-11 2014-08-05 Citrix Systems, Inc. Policy-based application management
US8806570B2 (en) 2011-10-11 2014-08-12 Citrix Systems, Inc. Policy-based application management
US8813179B1 (en) 2013-03-29 2014-08-19 Citrix Systems, Inc. Providing mobile device management functionalities
US8850050B1 (en) * 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing a managed browser
US8849978B1 (en) 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing an enterprise application store
US8850049B1 (en) 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing mobile device management functionalities for a managed browser
US8869235B2 (en) 2011-10-11 2014-10-21 Citrix Systems, Inc. Secure mobile browser for protecting enterprise data
US8910239B2 (en) 2012-10-15 2014-12-09 Citrix Systems, Inc. Providing virtualized private network tunnels
US8910264B2 (en) 2013-03-29 2014-12-09 Citrix Systems, Inc. Providing mobile device management functionalities
US8914845B2 (en) 2012-10-15 2014-12-16 Citrix Systems, Inc. Providing virtualized private network tunnels
US8959579B2 (en) 2012-10-16 2015-02-17 Citrix Systems, Inc. Controlling mobile device access to secure data
US9053340B2 (en) 2012-10-12 2015-06-09 Citrix Systems, Inc. Enterprise application store for an orchestration framework for connected devices
US9215225B2 (en) 2013-03-29 2015-12-15 Citrix Systems, Inc. Mobile device locking with context
US9280377B2 (en) 2013-03-29 2016-03-08 Citrix Systems, Inc. Application with multiple operation modes
US9516022B2 (en) 2012-10-14 2016-12-06 Getgo, Inc. Automated meeting room
US9606774B2 (en) 2012-10-16 2017-03-28 Citrix Systems, Inc. Wrapping an application with field-programmable business logic
US9971585B2 (en) 2012-10-16 2018-05-15 Citrix Systems, Inc. Wrapping unmanaged applications on a mobile device
US9985850B2 (en) 2013-03-29 2018-05-29 Citrix Systems, Inc. Providing mobile device management functionalities
US10284627B2 (en) 2013-03-29 2019-05-07 Citrix Systems, Inc. Data management for an application with multiple operation modes
US10908896B2 (en) 2012-10-16 2021-02-02 Citrix Systems, Inc. Application wrapping for application management framework

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2580239C (en) 2004-09-21 2016-04-26 Timeplay Entertainment Corporation System, method and handheld controller for multi-player gaming
US8266551B2 (en) * 2010-06-10 2012-09-11 Nokia Corporation Method and apparatus for binding user interface elements and granular reflective processing
US9160693B2 (en) 2010-09-27 2015-10-13 Blackberry Limited Method, apparatus and system for accessing applications and content across a plurality of computers
EP3826236A1 (en) 2011-02-01 2021-05-26 Timeplay Inc. Systems and methods for interactive experiences and controllers therefor
US20130055114A1 (en) * 2011-08-25 2013-02-28 Eitan Lev Enhanced and Extended Browsing Via Companion Mobile Device
WO2013097896A1 (en) 2011-12-28 2013-07-04 Nokia Corporation Application switcher
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices
US9015809B2 (en) * 2012-02-20 2015-04-21 Blackberry Limited Establishing connectivity between an enterprise security perimeter of a device and an enterprise
WO2013126507A1 (en) * 2012-02-21 2013-08-29 Brass Monkey, Inc. Mobile embedded servers systems and methods related thereto
EP2648390B1 (en) * 2012-04-04 2017-03-08 Siemens Healthcare GmbH Remote management of a diagnostic imaging device by means of remote desktop connections
US9022870B2 (en) 2012-05-02 2015-05-05 Aquimo, Llc Web-based game platform with mobile device motion sensor input
KR101971623B1 (en) 2012-05-10 2019-04-23 삼성전자주식회사 Method for contents and user's interactions among multiple devices
US20130303288A1 (en) * 2012-05-11 2013-11-14 Sony Corporation Method and apparatus for providing content to a user device
US9183398B2 (en) * 2012-09-20 2015-11-10 Qualcomm Incorporated Content-driven screen polarization with application sessions
US9360852B2 (en) 2013-06-19 2016-06-07 Billy R. Masten Wireless network machine control or a hydraulic system
JP6525967B2 (en) 2013-12-06 2019-06-05 株式会社スクウェア・エニックス・ホールディングス PROGRAM, RECORDING MEDIUM, INFORMATION PROCESSING DEVICE, AND CONTROL METHOD
US9485177B2 (en) * 2014-05-30 2016-11-01 Apple Inc. Client applications communicating via a user tunnel
US9680918B2 (en) * 2014-06-30 2017-06-13 Fortinet, Inc. Socket application program interface (API) for efficient data transactions
CN104811760A (en) * 2015-04-08 2015-07-29 深圳市鱼丸互动科技有限公司 Multi-screen interaction method and system
US10567518B2 (en) * 2015-06-26 2020-02-18 Western Digital Technologies, Inc. Automatic discovery and onboarding of electronic devices
US20170011595A1 (en) * 2015-07-10 2017-01-12 M-Biz Global Solutions Gmbh Online challenge game method, online challenge game system and method for calculating advertisement costs
JP6554350B2 (en) * 2015-07-14 2019-07-31 株式会社Phone Appli Service system
US10148516B2 (en) * 2015-07-28 2018-12-04 Dell Products L.P. Inter-networking device link provisioning system
US9992238B2 (en) 2015-11-11 2018-06-05 International Business Machines Corporation Proxy based data transfer utilizing direct memory access
US10456672B2 (en) * 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
US10999331B1 (en) 2016-07-06 2021-05-04 Google Llc Reverse discovery and pairing of client devices to a media device
US11794094B2 (en) 2016-10-17 2023-10-24 Aquimo Inc. Method and system for using sensors of a control device for control of a game
KR20180076619A (en) * 2016-12-28 2018-07-06 에스케이테크엑스 주식회사 Apparatus and method for recommendation of entity in smart page
CN106740115A (en) * 2017-01-22 2017-05-31 斑马信息科技有限公司 Automobile instrument and middle control interactive system and method
CN110678239B (en) 2017-10-10 2024-02-09 谷歌有限责任公司 Distributed sample-based game profiling with game metadata and metrics and game API platform supporting third party content
US11140207B2 (en) 2017-12-21 2021-10-05 Google Llc Network impairment simulation framework for verification of real time interactive media streaming systems
EP3700640B1 (en) 2018-03-22 2021-05-26 Google LLC Methods and systems for rendering and encoding content for online interactive gaming sessions
FR3079380A1 (en) * 2018-03-26 2019-09-27 Orange SECURITY MANAGEMENT OF A LOCAL COMMUNICATION NETWORK INCLUDING AT LEAST ONE COMMUNICABLE OBJECT.
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
EP3740292A2 (en) 2018-04-02 2020-11-25 Google LLC Input device for an electronic system
EP4345731A1 (en) 2018-04-10 2024-04-03 Google LLC Memory management in gaming rendering
CN112204529A (en) 2018-11-16 2021-01-08 谷歌有限责任公司 Shadow tracing for real-time interactive simulation of complex system analysis
CN109739505B (en) * 2019-01-08 2019-11-29 网易(杭州)网络有限公司 A kind for the treatment of method and apparatus of user interface
US11159420B2 (en) * 2019-04-17 2021-10-26 Cloudflare, Inc. Method and apparatus of automatic route optimization in a private virtual network for client devices of a local network
CN111158632B (en) * 2020-01-07 2022-02-25 山东超越数控电子股份有限公司 Method for networking general audio interface under ARM processor
WO2022060989A1 (en) 2020-09-18 2022-03-24 Infrared5, Inc. Live streaming architecture with server-side stream mixing
DE102022106007A1 (en) 2022-03-15 2023-09-21 Sebastian Pfeiffer Entertainment system

Citations (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010032265A1 (en) * 2000-04-13 2001-10-18 Nec Corporation. Method of communication control and system thereof
US20020091831A1 (en) * 2000-11-10 2002-07-11 Michael Johnson Internet modem streaming socket method
US20020151327A1 (en) * 2000-12-22 2002-10-17 David Levitt Program selector and guide system and method
US20030001883A1 (en) * 2000-07-21 2003-01-02 Samsung Electronics Co., Ltd. Architecture for home network on world wide web with private-public IP address/URL mapping
US20030046374A1 (en) * 2001-08-31 2003-03-06 Sony Corporation. Bidirectional remote communication VIA browser plug-in
US6678246B1 (en) * 1999-07-07 2004-01-13 Nortel Networks Limited Processing data packets
US20040205245A1 (en) * 2003-03-28 2004-10-14 Jean-Francois Le Pennec Data transmission system with a mechanism enabling any application to run transparently over a network address translation device
US20050003824A1 (en) * 2001-11-30 2005-01-06 Siris Vasilios A Method of resource control in a wireless network
US20050015584A1 (en) * 2002-09-27 2005-01-20 Hideaki Takechi Server device and communication system connected to the internet
US20050138460A1 (en) * 2003-11-19 2005-06-23 International Business Machines Corporation Error recovery in a client/server application using two independent sockets for communication
US20050261815A1 (en) * 2004-05-20 2005-11-24 Cowelchuk Glenn A System for customizing settings and sounds for vehicle
US20050267935A1 (en) * 1999-06-11 2005-12-01 Microsoft Corporation Data driven remote device control model with general programming interface-to-network messaging adaptor
US20060039356A1 (en) * 2004-07-23 2006-02-23 Citrix Systems, Inc. Systems and methods for facilitating a peer to peer route via a gateway
US20060067936A1 (en) * 2004-09-24 2006-03-30 Jacqueline Benson IL-23p40 specific immunoglobulin derived proteins, compositions, epitopes, methods and uses
US20060117107A1 (en) * 2001-07-12 2006-06-01 Yahoo! Inc. Method and system for enabling a script on a first computer to exchange data with a script on a second computer over a network
US20060152752A1 (en) * 2002-08-23 2006-07-13 Tdk Corporation Log-in method for a client server system, a computer program, and a recording medium
US7143137B2 (en) * 2002-06-13 2006-11-28 Nvidia Corporation Method and apparatus for security protocol and address translation integration
US20060291434A1 (en) * 1999-06-11 2006-12-28 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking
US20070058642A1 (en) * 2003-09-30 2007-03-15 Koinkljke Philips Electronics N.V. Client requested external address mapping
US20070088851A1 (en) * 2005-10-17 2007-04-19 Zohar Levkovitz Device, system and method of wireless delivery of targeted advertisements
US20070088852A1 (en) * 2005-10-17 2007-04-19 Zohar Levkovitz Device, system and method of presentation of advertisements on a wireless device
US20070100514A1 (en) * 2005-11-02 2007-05-03 Park Tai S Remote control of conveyance and appliance functions
US20070198144A1 (en) * 2005-10-21 2007-08-23 Norris William R Networked multi-role robotic vehicle
US7292588B2 (en) * 2001-05-01 2007-11-06 Milley Milton E Wireless network computing
US20080167732A1 (en) * 1999-10-29 2008-07-10 Sean Slavin Method and system for remote control of a local system
US20080183307A1 (en) * 2007-01-26 2008-07-31 Autani Corporation Upgradeable Automation Devices, Systems, Architectures, and Methods
US20080229095A1 (en) * 2002-06-25 2008-09-18 Ramesh Kalimuthu Method and apparatus for dynamically securing voice and other delay-sensitive network traffic
US20080261686A1 (en) * 2007-04-19 2008-10-23 James Carlton Bedingfield Systems, methods and computer products for IPTV network game control
US20080291916A1 (en) * 2007-05-22 2008-11-27 Bo Xiong Systems and methods for dynamic quality of service
US20080312782A1 (en) * 2007-06-15 2008-12-18 Gene Berdichevsky Electric vehicle communication interface
US7493383B1 (en) * 2006-12-29 2009-02-17 F5 Networks, Inc. TCP-over-TCP using multiple TCP streams
US20090055749A1 (en) * 2007-07-29 2009-02-26 Palm, Inc. Application management framework for web applications
US20090062014A1 (en) * 2007-08-20 2009-03-05 Gift Timothy R System and method for communicating game parameters utilizing separate protocols
US20090060452A1 (en) * 2007-09-04 2009-03-05 Apple Inc. Display of Video Subtitles
US20090135765A1 (en) * 2000-12-22 2009-05-28 Lewis Allan D Wireless router system and method
US20090153289A1 (en) * 2007-12-12 2009-06-18 Eric James Hope Handheld electronic devices with bimodal remote control functionality
US20090199275A1 (en) * 2008-02-06 2009-08-06 David Brock Web-browser based three-dimensional media aggregation social networking application
US20090199259A1 (en) * 2001-02-02 2009-08-06 Rachad Alao Service gateway for interactive television
US20090248542A1 (en) * 2008-03-25 2009-10-01 Houvener Robert C Systems and methods for facilitating creative content discovery, sale and investment
US20090300137A1 (en) * 2008-05-29 2009-12-03 Research In Motion Limited Method, system and devices for communicating between an internet browser and an electronic device
US20090319644A1 (en) * 2008-06-19 2009-12-24 Symbol Technologies, Inc. Methods and apparatus for automatically configuring computing devices for wireless network connections
US20100023338A1 (en) * 2008-07-24 2010-01-28 At&T Intellectual Property I, L.P. System and method of targeted advertisement
US7664096B2 (en) * 2003-06-25 2010-02-16 At&T Intellectual Property I, Lp Remote location VOIP roaming behind firewalls
US7706401B2 (en) * 2004-08-13 2010-04-27 Verizon Business Global Llc Method and system for providing interdomain traversal in support of packetized voice transmissions
US20100184422A1 (en) * 2009-01-22 2010-07-22 Yahoo! Inc. Web-hosted framework for mobile applications
US7797417B2 (en) * 2000-10-02 2010-09-14 Samsung Electronics Co., Ltd. Method for providing service in IP-based network system
US7818788B2 (en) * 2006-02-14 2010-10-19 Microsoft Corporation Web application security frame
US20100267448A1 (en) * 2004-09-21 2010-10-21 Timeplay Ip Inc. System, method and handheld controller for multi-player gaming
US7828654B2 (en) * 2001-04-10 2010-11-09 Carter Sr Russell O Location based gaming system
US20100299436A1 (en) * 2009-05-20 2010-11-25 Shafiqul Khalid Methods and Systems for Using External Display Devices With a Mobile Computing Device
US20110009193A1 (en) * 2009-07-10 2011-01-13 Valve Corporation Player biofeedback for dynamically controlling a video game state
US7890957B2 (en) * 2006-09-08 2011-02-15 Easyonme, Inc. Remote management of an electronic presence

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US8062134B2 (en) * 1996-11-14 2011-11-22 Bally Gaming, Inc. Browser manager for a networked gaming system and method
US6115040A (en) * 1997-09-26 2000-09-05 Mci Communications Corporation Graphical user interface for Web enabled applications
US6468160B2 (en) * 1999-04-08 2002-10-22 Nintendo Of America, Inc. Security system for video game system with hard disk drive and internet access capability
US9235955B2 (en) * 2000-12-22 2016-01-12 Bally Gaming, Inc. Universal game monitoring unit and system
US6684062B1 (en) * 2000-10-25 2004-01-27 Eleven Engineering Incorporated Wireless game control system
US7515718B2 (en) * 2000-12-07 2009-04-07 Igt Secured virtual network in a gaming environment
US7730401B2 (en) 2001-05-16 2010-06-01 Synaptics Incorporated Touch screen with user interface enhancement
WO2003021798A2 (en) * 2001-09-04 2003-03-13 Soft2B Llc Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization
US8708828B2 (en) * 2001-09-28 2014-04-29 Igt Pluggable modular gaming modifiers and configuration templates for gaming environments
EP1335535A1 (en) 2002-01-31 2003-08-13 BRITISH TELECOMMUNICATIONS public limited company Network service selection
US7818480B2 (en) 2002-08-29 2010-10-19 Raritan Americas, Inc. Wireless management of remote devices
US7455590B2 (en) * 2003-05-09 2008-11-25 Microsoft Corporation Sending messages in response to events occurring on a gaming service
US20040266529A1 (en) * 2003-06-30 2004-12-30 Sony Computer Entertainment America Inc. Methods and systems for remote execution of game content and presentation on a wireless portable device
US7464272B2 (en) * 2003-09-25 2008-12-09 Microsoft Corporation Server control of peer to peer communications
TW200605574A (en) * 2004-02-17 2006-02-01 Ginganet Corp Address resolution apparatus, address resolution method and telecommunication system thereof
US8157635B2 (en) * 2004-05-07 2012-04-17 Scientific Games Holdings Limited Method and apparatus for providing player incentives
US8888600B2 (en) * 2004-08-25 2014-11-18 Igt Emulation methods and devices for a gaming machine
US20060063590A1 (en) * 2004-09-21 2006-03-23 Paul Abassi Mechanism to control game usage on user devices
US20060083187A1 (en) * 2004-10-18 2006-04-20 Mobile (R&D) Ltd. Pairing system and method for wirelessly connecting communication devices
US7966485B2 (en) * 2004-12-01 2011-06-21 Igt Universal operating system to hardware platform interface for gaming machines
US20060149811A1 (en) * 2004-12-31 2006-07-06 Sony Ericsson Mobile Communications Ab Method for remotely controlling media devices via a communication network
US20060288343A1 (en) * 2005-06-20 2006-12-21 Kim Pallister Methods and apparatus to enable remote-user-interface-capable managed runtime environments
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features
US8278107B2 (en) * 2005-09-13 2012-10-02 Trustees Of Dartmouth College Compositions and methods for regulating RNA translation via CD154 CA-dinucleotide repeat
JP5037004B2 (en) * 2005-11-28 2012-09-26 パナソニック株式会社 Terminal equipment and communication system
US7796982B2 (en) * 2005-12-07 2010-09-14 Tor Anumana, Inc. Wireless controller device
US20070184903A1 (en) * 2006-02-08 2007-08-09 Derek Liu Network-based game system capable of serving massive number of game players
US8914018B2 (en) * 2006-04-03 2014-12-16 Keysight Technologies, Inc. System and method for measuring user behavior and use of mobile equipment
US20070293319A1 (en) * 2006-06-20 2007-12-20 Microsoft Corporation Transfer of Features Between Gaming Devices
US7946918B2 (en) * 2006-09-11 2011-05-24 Apple Inc. Allowing media and gaming environments to effectively interact and/or affect each other
US20090156303A1 (en) * 2006-11-10 2009-06-18 Igt Bonusing Architectures in a Gaming Environment
FR2912523B1 (en) * 2007-02-09 2009-07-10 Liard Xavier METHOD FOR SIMULATING THE OPERATION OF A DEVICE HAVING AN ARCHITECTURE AND A PROCESSOR DETERMINED USING ANOTHER DEVICE CONNECTED TO A COMPUTER NETWORK
US7873578B2 (en) * 2007-03-30 2011-01-18 Microsoft Corporation Buy once play anywhere
US8460109B2 (en) * 2007-04-24 2013-06-11 Igt Gaming community management and personalization
US20080287182A1 (en) * 2007-05-14 2008-11-20 Konami Gaming, Incorporated Gaming machine and gaming system
US9317110B2 (en) * 2007-05-29 2016-04-19 Cfph, Llc Game with hand motion control
US8285740B2 (en) * 2007-06-06 2012-10-09 Igt Database queries within a gaming machine
US20090005138A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation User Creatable Machines
US20090036216A1 (en) * 2007-07-30 2009-02-05 Trey Ratcliff Video game for interactive engagement between multiple on-line participants in competition over internet websites
WO2009055717A1 (en) 2007-10-24 2009-04-30 Jonathan Peter Deutsch Various methods and apparatuses for a central station to allocate virtual ip addresses
US20100172287A1 (en) * 2007-10-25 2010-07-08 Krieter Marcus Temporal network server connected devices with off-line ad hoc update and interaction capability
US20090128504A1 (en) * 2007-11-16 2009-05-21 Garey Alexander Smith Touch screen peripheral device
US20090172172A1 (en) * 2007-12-21 2009-07-02 Erik Lambert Graham Systems and methods for enabling peer-to-peer communication among visitors to a common website
JP2009169868A (en) * 2008-01-18 2009-07-30 Ntt Docomo Inc Storage area access device and method for accessing storage area
US9298747B2 (en) * 2008-03-20 2016-03-29 Microsoft Technology Licensing, Llc Deployable, consistent, and extensible computing environment platform
US8856268B2 (en) * 2008-04-22 2014-10-07 Microsoft Corporation Sharing of console and web-based games and gaming profiles
US20090291760A1 (en) * 2008-05-22 2009-11-26 Bennett Hepburn Video Gaming Controller Bay for Mobile Devices
US8406748B2 (en) * 2009-01-28 2013-03-26 Headwater Partners I Llc Adaptive ambient services
US8200795B2 (en) * 2008-06-05 2012-06-12 Sony Computer Entertainment Inc. Mobile phone game interface
US8727878B2 (en) * 2008-07-18 2014-05-20 Disney Enterprises, Inc. Video game controller
GB2463121A (en) * 2008-09-09 2010-03-10 Skype Ltd Communications system with game playing facility
JP2012507091A (en) 2008-10-27 2012-03-22 ソーシャル・ゲーミング・ネットワーク Device, method and system for interactive proximity display tether
AU2010208332B2 (en) 2009-01-29 2014-04-17 Wms Gaming, Inc. Configuring and controlling wagering game compatibility
WO2010093831A1 (en) 2009-02-11 2010-08-19 Social Gaming Network Apparatuses, methods and systems for an interactive proximity display tether with remote co-play
JP5430982B2 (en) * 2009-03-18 2014-03-05 任天堂株式会社 GAME PROGRAM, GAME DEVICE, AND GAME CONTROL METHOD
GB0905559D0 (en) 2009-03-31 2009-05-13 British Telecomm Addressing scheme
US9056249B2 (en) * 2009-04-01 2015-06-16 Activision Publishing, Inc. Device and method for a streaming video game
US8740701B2 (en) * 2009-06-15 2014-06-03 Wms Gaming, Inc. Controlling wagering game system audio
US9749387B2 (en) * 2009-08-13 2017-08-29 Sap Se Transparently stateful execution of stateless applications
US8313377B2 (en) * 2009-10-14 2012-11-20 Sony Computer Entertainment America Llc Playing browser based games with alternative controls and interfaces
US20110112895A1 (en) * 2009-11-10 2011-05-12 Sony Ericsson Mobile Communications Ab Proximal game sharing
MX2012008023A (en) * 2010-01-07 2013-01-28 Divx Llc Real time flash based user interface for media playback device.

Patent Citations (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060291434A1 (en) * 1999-06-11 2006-12-28 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking
US20050267935A1 (en) * 1999-06-11 2005-12-01 Microsoft Corporation Data driven remote device control model with general programming interface-to-network messaging adaptor
US6678246B1 (en) * 1999-07-07 2004-01-13 Nortel Networks Limited Processing data packets
US20080167732A1 (en) * 1999-10-29 2008-07-10 Sean Slavin Method and system for remote control of a local system
US20010032265A1 (en) * 2000-04-13 2001-10-18 Nec Corporation. Method of communication control and system thereof
US7349967B2 (en) * 2000-07-21 2008-03-25 Samsung Electronics Co., Ltd. Architecture for home network on world wide web with private-public IP address/URL mapping
US20030001883A1 (en) * 2000-07-21 2003-01-02 Samsung Electronics Co., Ltd. Architecture for home network on world wide web with private-public IP address/URL mapping
US7797417B2 (en) * 2000-10-02 2010-09-14 Samsung Electronics Co., Ltd. Method for providing service in IP-based network system
US20020091831A1 (en) * 2000-11-10 2002-07-11 Michael Johnson Internet modem streaming socket method
US20090135765A1 (en) * 2000-12-22 2009-05-28 Lewis Allan D Wireless router system and method
US20020151327A1 (en) * 2000-12-22 2002-10-17 David Levitt Program selector and guide system and method
US20090199259A1 (en) * 2001-02-02 2009-08-06 Rachad Alao Service gateway for interactive television
US7828654B2 (en) * 2001-04-10 2010-11-09 Carter Sr Russell O Location based gaming system
US7292588B2 (en) * 2001-05-01 2007-11-06 Milley Milton E Wireless network computing
US20060117107A1 (en) * 2001-07-12 2006-06-01 Yahoo! Inc. Method and system for enabling a script on a first computer to exchange data with a script on a second computer over a network
US20030046374A1 (en) * 2001-08-31 2003-03-06 Sony Corporation. Bidirectional remote communication VIA browser plug-in
US20050003824A1 (en) * 2001-11-30 2005-01-06 Siris Vasilios A Method of resource control in a wireless network
US7143137B2 (en) * 2002-06-13 2006-11-28 Nvidia Corporation Method and apparatus for security protocol and address translation integration
US20080229095A1 (en) * 2002-06-25 2008-09-18 Ramesh Kalimuthu Method and apparatus for dynamically securing voice and other delay-sensitive network traffic
US20060152752A1 (en) * 2002-08-23 2006-07-13 Tdk Corporation Log-in method for a client server system, a computer program, and a recording medium
US20050015584A1 (en) * 2002-09-27 2005-01-20 Hideaki Takechi Server device and communication system connected to the internet
US20040205245A1 (en) * 2003-03-28 2004-10-14 Jean-Francois Le Pennec Data transmission system with a mechanism enabling any application to run transparently over a network address translation device
US7664096B2 (en) * 2003-06-25 2010-02-16 At&T Intellectual Property I, Lp Remote location VOIP roaming behind firewalls
US20070058642A1 (en) * 2003-09-30 2007-03-15 Koinkljke Philips Electronics N.V. Client requested external address mapping
US20050138460A1 (en) * 2003-11-19 2005-06-23 International Business Machines Corporation Error recovery in a client/server application using two independent sockets for communication
US20050261815A1 (en) * 2004-05-20 2005-11-24 Cowelchuk Glenn A System for customizing settings and sounds for vehicle
US20060039356A1 (en) * 2004-07-23 2006-02-23 Citrix Systems, Inc. Systems and methods for facilitating a peer to peer route via a gateway
US7706401B2 (en) * 2004-08-13 2010-04-27 Verizon Business Global Llc Method and system for providing interdomain traversal in support of packetized voice transmissions
US20100267448A1 (en) * 2004-09-21 2010-10-21 Timeplay Ip Inc. System, method and handheld controller for multi-player gaming
US20060067936A1 (en) * 2004-09-24 2006-03-30 Jacqueline Benson IL-23p40 specific immunoglobulin derived proteins, compositions, epitopes, methods and uses
US20070088852A1 (en) * 2005-10-17 2007-04-19 Zohar Levkovitz Device, system and method of presentation of advertisements on a wireless device
US20070088851A1 (en) * 2005-10-17 2007-04-19 Zohar Levkovitz Device, system and method of wireless delivery of targeted advertisements
US20070198144A1 (en) * 2005-10-21 2007-08-23 Norris William R Networked multi-role robotic vehicle
US20070100514A1 (en) * 2005-11-02 2007-05-03 Park Tai S Remote control of conveyance and appliance functions
US7818788B2 (en) * 2006-02-14 2010-10-19 Microsoft Corporation Web application security frame
US7890957B2 (en) * 2006-09-08 2011-02-15 Easyonme, Inc. Remote management of an electronic presence
US7493383B1 (en) * 2006-12-29 2009-02-17 F5 Networks, Inc. TCP-over-TCP using multiple TCP streams
US20080183307A1 (en) * 2007-01-26 2008-07-31 Autani Corporation Upgradeable Automation Devices, Systems, Architectures, and Methods
US20080261686A1 (en) * 2007-04-19 2008-10-23 James Carlton Bedingfield Systems, methods and computer products for IPTV network game control
US20080291916A1 (en) * 2007-05-22 2008-11-27 Bo Xiong Systems and methods for dynamic quality of service
US20080312782A1 (en) * 2007-06-15 2008-12-18 Gene Berdichevsky Electric vehicle communication interface
US20090055749A1 (en) * 2007-07-29 2009-02-26 Palm, Inc. Application management framework for web applications
US20090062014A1 (en) * 2007-08-20 2009-03-05 Gift Timothy R System and method for communicating game parameters utilizing separate protocols
US20090060452A1 (en) * 2007-09-04 2009-03-05 Apple Inc. Display of Video Subtitles
US20090153289A1 (en) * 2007-12-12 2009-06-18 Eric James Hope Handheld electronic devices with bimodal remote control functionality
US20090199275A1 (en) * 2008-02-06 2009-08-06 David Brock Web-browser based three-dimensional media aggregation social networking application
US20090248542A1 (en) * 2008-03-25 2009-10-01 Houvener Robert C Systems and methods for facilitating creative content discovery, sale and investment
US7865573B2 (en) * 2008-05-29 2011-01-04 Research In Motion Limited Method, system and devices for communicating between an internet browser and an electronic device
US20090300137A1 (en) * 2008-05-29 2009-12-03 Research In Motion Limited Method, system and devices for communicating between an internet browser and an electronic device
US20090319644A1 (en) * 2008-06-19 2009-12-24 Symbol Technologies, Inc. Methods and apparatus for automatically configuring computing devices for wireless network connections
US20100023338A1 (en) * 2008-07-24 2010-01-28 At&T Intellectual Property I, L.P. System and method of targeted advertisement
US20100184422A1 (en) * 2009-01-22 2010-07-22 Yahoo! Inc. Web-hosted framework for mobile applications
US20100299436A1 (en) * 2009-05-20 2010-11-25 Shafiqul Khalid Methods and Systems for Using External Display Devices With a Mobile Computing Device
US20110009193A1 (en) * 2009-07-10 2011-01-13 Valve Corporation Player biofeedback for dynamically controlling a video game state

Cited By (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8886925B2 (en) 2011-10-11 2014-11-11 Citrix Systems, Inc. Protecting enterprise data through policy-based encryption of message attachments
US9043480B2 (en) 2011-10-11 2015-05-26 Citrix Systems, Inc. Policy-based application management
US8799994B2 (en) 2011-10-11 2014-08-05 Citrix Systems, Inc. Policy-based application management
US8806570B2 (en) 2011-10-11 2014-08-12 Citrix Systems, Inc. Policy-based application management
US11134104B2 (en) 2011-10-11 2021-09-28 Citrix Systems, Inc. Secure execution of enterprise applications on mobile devices
US10469534B2 (en) 2011-10-11 2019-11-05 Citrix Systems, Inc. Secure execution of enterprise applications on mobile devices
US10402546B1 (en) 2011-10-11 2019-09-03 Citrix Systems, Inc. Secure execution of enterprise applications on mobile devices
US10063595B1 (en) 2011-10-11 2018-08-28 Citrix Systems, Inc. Secure execution of enterprise applications on mobile devices
US10044757B2 (en) 2011-10-11 2018-08-07 Citrix Systems, Inc. Secure execution of enterprise applications on mobile devices
US8881229B2 (en) 2011-10-11 2014-11-04 Citrix Systems, Inc. Policy-based application management
US9529996B2 (en) 2011-10-11 2016-12-27 Citrix Systems, Inc. Controlling mobile device access to enterprise resources
US8869235B2 (en) 2011-10-11 2014-10-21 Citrix Systems, Inc. Secure mobile browser for protecting enterprise data
US9111105B2 (en) 2011-10-11 2015-08-18 Citrix Systems, Inc. Policy-based application management
US8769063B2 (en) 2011-10-11 2014-07-01 Citrix Systems, Inc. Policy-based application management
US9378359B2 (en) 2011-10-11 2016-06-28 Citrix Systems, Inc. Gateway for controlling mobile device access to enterprise resources
US9521147B2 (en) 2011-10-11 2016-12-13 Citrix Systems, Inc. Policy based application management
US9143529B2 (en) 2011-10-11 2015-09-22 Citrix Systems, Inc. Modifying pre-existing mobile applications to implement enterprise security policies
US9143530B2 (en) 2011-10-11 2015-09-22 Citrix Systems, Inc. Secure container for protecting enterprise data on a mobile device
US9137262B2 (en) 2011-10-11 2015-09-15 Citrix Systems, Inc. Providing secure mobile device access to enterprise resources using application tunnels
US9286471B2 (en) 2011-10-11 2016-03-15 Citrix Systems, Inc. Rules based detection and correction of problems on mobile devices of enterprise users
US9213850B2 (en) 2011-10-11 2015-12-15 Citrix Systems, Inc. Policy-based application management
US9183380B2 (en) 2011-10-11 2015-11-10 Citrix Systems, Inc. Secure execution of enterprise applications on mobile devices
US9189645B2 (en) 2012-10-12 2015-11-17 Citrix Systems, Inc. Sharing content across applications and devices having multiple operation modes in an orchestration framework for connected devices
US9386120B2 (en) 2012-10-12 2016-07-05 Citrix Systems, Inc. Single sign-on access in an orchestration framework for connected devices
US9392077B2 (en) 2012-10-12 2016-07-12 Citrix Systems, Inc. Coordinating a computing activity across applications and devices having multiple operation modes in an orchestration framework for connected devices
US9053340B2 (en) 2012-10-12 2015-06-09 Citrix Systems, Inc. Enterprise application store for an orchestration framework for connected devices
US9854063B2 (en) 2012-10-12 2017-12-26 Citrix Systems, Inc. Enterprise application store for an orchestration framework for connected devices
US9516022B2 (en) 2012-10-14 2016-12-06 Getgo, Inc. Automated meeting room
US9654508B2 (en) 2012-10-15 2017-05-16 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US8904477B2 (en) 2012-10-15 2014-12-02 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US8887230B2 (en) 2012-10-15 2014-11-11 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US9521117B2 (en) 2012-10-15 2016-12-13 Citrix Systems, Inc. Providing virtualized private network tunnels
US9467474B2 (en) 2012-10-15 2016-10-11 Citrix Systems, Inc. Conjuring and providing profiles that manage execution of mobile applications
US8931078B2 (en) 2012-10-15 2015-01-06 Citrix Systems, Inc. Providing virtualized private network tunnels
US8914845B2 (en) 2012-10-15 2014-12-16 Citrix Systems, Inc. Providing virtualized private network tunnels
US9973489B2 (en) 2012-10-15 2018-05-15 Citrix Systems, Inc. Providing virtualized private network tunnels
US8719898B1 (en) 2012-10-15 2014-05-06 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US8910239B2 (en) 2012-10-15 2014-12-09 Citrix Systems, Inc. Providing virtualized private network tunnels
US9858428B2 (en) 2012-10-16 2018-01-02 Citrix Systems, Inc. Controlling mobile device access to secure data
US9971585B2 (en) 2012-10-16 2018-05-15 Citrix Systems, Inc. Wrapping unmanaged applications on a mobile device
US9606774B2 (en) 2012-10-16 2017-03-28 Citrix Systems, Inc. Wrapping an application with field-programmable business logic
US10545748B2 (en) 2012-10-16 2020-01-28 Citrix Systems, Inc. Wrapping unmanaged applications on a mobile device
US9602474B2 (en) 2012-10-16 2017-03-21 Citrix Systems, Inc. Controlling mobile device access to secure data
US8959579B2 (en) 2012-10-16 2015-02-17 Citrix Systems, Inc. Controlling mobile device access to secure data
US10908896B2 (en) 2012-10-16 2021-02-02 Citrix Systems, Inc. Application wrapping for application management framework
US9355223B2 (en) * 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
US8910264B2 (en) 2013-03-29 2014-12-09 Citrix Systems, Inc. Providing mobile device management functionalities
US9413736B2 (en) 2013-03-29 2016-08-09 Citrix Systems, Inc. Providing an enterprise application store
US8881228B2 (en) 2013-03-29 2014-11-04 Citrix Systems, Inc. Providing a managed browser
US8893221B2 (en) 2013-03-29 2014-11-18 Citrix Systems, Inc. Providing a managed browser
US20140297756A1 (en) * 2013-03-29 2014-10-02 Citrix Systems, Inc. Providing a managed browser
US8898732B2 (en) 2013-03-29 2014-11-25 Citrix Systems, Inc. Providing a managed browser
US9369449B2 (en) 2013-03-29 2016-06-14 Citrix Systems, Inc. Providing an enterprise application store
US9112853B2 (en) 2013-03-29 2015-08-18 Citrix Systems, Inc. Providing a managed browser
US8849979B1 (en) 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing mobile device management functionalities
US9280377B2 (en) 2013-03-29 2016-03-08 Citrix Systems, Inc. Application with multiple operation modes
US9948657B2 (en) 2013-03-29 2018-04-17 Citrix Systems, Inc. Providing an enterprise application store
US9215225B2 (en) 2013-03-29 2015-12-15 Citrix Systems, Inc. Mobile device locking with context
US9455886B2 (en) 2013-03-29 2016-09-27 Citrix Systems, Inc. Providing mobile device management functionalities
US9985850B2 (en) 2013-03-29 2018-05-29 Citrix Systems, Inc. Providing mobile device management functionalities
US8850010B1 (en) 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing a managed browser
US8850049B1 (en) 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing mobile device management functionalities for a managed browser
US10097584B2 (en) 2013-03-29 2018-10-09 Citrix Systems, Inc. Providing a managed browser
US10284627B2 (en) 2013-03-29 2019-05-07 Citrix Systems, Inc. Data management for an application with multiple operation modes
US8849978B1 (en) 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing an enterprise application store
US8850050B1 (en) * 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing a managed browser
US10476885B2 (en) 2013-03-29 2019-11-12 Citrix Systems, Inc. Application with multiple operation modes
US9158895B2 (en) 2013-03-29 2015-10-13 Citrix Systems, Inc. Providing a managed browser
US10701082B2 (en) 2013-03-29 2020-06-30 Citrix Systems, Inc. Application with multiple operation modes
US8996709B2 (en) 2013-03-29 2015-03-31 Citrix Systems, Inc. Providing a managed browser
US10965734B2 (en) 2013-03-29 2021-03-30 Citrix Systems, Inc. Data management for an application with multiple operation modes
US8813179B1 (en) 2013-03-29 2014-08-19 Citrix Systems, Inc. Providing mobile device management functionalities

Also Published As

Publication number Publication date
WO2011109822A1 (en) 2011-09-09
WO2011109824A1 (en) 2011-09-09
US8171145B2 (en) 2012-05-01
US8024469B1 (en) 2011-09-20
WO2011109829A2 (en) 2011-09-09
JP5730914B2 (en) 2015-06-10
AU2011222509C1 (en) 2015-05-28
WO2011109829A3 (en) 2014-06-05
JP2013521584A (en) 2013-06-10
EP2542982A4 (en) 2016-10-26
US8166181B2 (en) 2012-04-24
US20110219062A1 (en) 2011-09-08
US20110219129A1 (en) 2011-09-08
AU2011222509A1 (en) 2012-09-27
KR20130018708A (en) 2013-02-25
AU2011222509B2 (en) 2015-01-22
WO2011109778A1 (en) 2011-09-09
US8019878B1 (en) 2011-09-13
US20110219131A1 (en) 2011-09-08
US20110219130A1 (en) 2011-09-08
CA2792038A1 (en) 2011-09-09
WO2011109777A1 (en) 2011-09-09
EP2542982A1 (en) 2013-01-09
US8019867B1 (en) 2011-09-13

Similar Documents

Publication Publication Date Title
US8019878B1 (en) System and method for two way communication and controlling content in a web browser
US11336511B2 (en) Managing network connected devices
US9231904B2 (en) Deploying and managing networked devices
US9712486B2 (en) Techniques for the deployment and management of network connected devices
RU2383921C2 (en) Simple and dynamic configuration of network devices
KR102124510B1 (en) Methods for downloading an app and executing an app
US20200127891A9 (en) Managing network connected devices
US20080130639A1 (en) Software update via peer-to-peer networks
US20140195582A1 (en) System and method for providing an inter-application communication framework
US20230061291A1 (en) Whitelist-authenticated image and interactive service
US12149406B2 (en) Managing network connected devices
KR20130100971A (en) Method and system for providing security for universal plug and play operations in a home network environment based on ownership rights

Legal Events

Date Code Title Description
AS Assignment

Owner name: BRASS MONKEY, INC., MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ALLEN, CHRISTOPHER;BURTON, TREVOR;ZUPKO, ANDREW;SIGNING DATES FROM 20110419 TO 20110512;REEL/FRAME:026418/0148

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: INFRARED5, INC., MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BRASS MONKEY, INC.;REEL/FRAME:036778/0292

Effective date: 20151012

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2552); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

FEPP Fee payment procedure

Free format text: 11.5 YR SURCHARGE- LATE PMT W/IN 6 MO, SMALL ENTITY (ORIGINAL EVENT CODE: M2556); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2553); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 12