|Publication number||US7933955 B2|
|Application number||US 11/456,613|
|Publication date||Apr 26, 2011|
|Filing date||Jul 11, 2006|
|Priority date||Jul 11, 2006|
|Also published as||US20080016155, US20110173256, WO2008008806A2, WO2008008806A3|
|Publication number||11456613, 456613, US 7933955 B2, US 7933955B2, US-B2-7933955, US7933955 B2, US7933955B2|
|Original Assignee||Igor Khalatian|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (14), Non-Patent Citations (23), Referenced by (25), Classifications (14), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The invention relates generally to screen sharing between computing systems connected to a network. More specifically, the invention relates to screen sharing that does not require the computing systems to deliberately download and install software in order to participate.
Portions of the disclosure of this patent document contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or of the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Screen sharing between computing devices has a myriad of practical applications. For one, screen sharing enables remote technical support. Another practical use is collaboration between a host and a viewer. A host can give a presentation to one or more remote viewers, perform demonstrations, review documents, and share images.
Numerous implementations of screen sharing presently exist. One well-known implementation is virtual network computing (VNC). VNC is a screen sharing system that enables a user to view and interact with another computer remotely over the Internet. VNC has two components: a server component and a client (i.e., viewer) component. User interface commands pass from the viewer computer to the remote computer, which sends back screen updates.
Like many screen-sharing implementations, however, setting up a VNC screen sharing system requires downloading and installing special software at one or both of the client and remote computer systems. Use of such client software can require changing the computer system's configuration or setting viewing preferences. Moreover, many standard and personal firewalls often block ports commonly used by some screen sharing systems, requiring an administrator to configure the firewalls explicitly to allow traffic on these ports. Still other screen-sharing systems are operating system dependent (e.g., MAC OS, Windows) and, therefore, are unable to gain widespread adoption.
In one aspect, the invention features a method for sharing an image on a display screen of a computing system. A region on a web page displayed in a browser window on the display screen of the computing system is activated with an input device in order to host a screen-sharing session. In response to launching the screen-sharing session, program code is received automatically over a network. The program code is automatically executed by a browser upon receiving the program code. The execution of the program code captures an image on the display screen of the computing system.
In another aspect, the invention features a method for viewing at a local computing system an image on a display screen of a remote computing system. A region on a web page displayed in a browser window on a display screen of the local computing system is activated with an input device in order to a join a screen-sharing session. In response to activating the region on the web page, program code is received automatically over a network. The program code is executed automatically upon receipt by a browser to generate an HTTP request for image data. Image data corresponding to the display screen of the remote computing system are received in response to the request. The image data corresponding to the display screen of the remote computing system are displayed on the display screen of the local computing system.
In still another aspect, the invention features a method of conducting a screen-sharing session during which a user of a guest computing system can view an image displayed on a display screen of a host computing system. A first web page with embedded program code is sent to the host computing system, the program code capturing image data corresponding to the image displayed on the display screen of the host computing system. A second web page with embedded program code is sent to the guest computing system for generating a request for image data. From the host computing system are received image data representing a screen image of the host computing system. A request is received from the guest computing system for image data. Image data received from the host computing system are sent to the guest computing system in response to the request received from the guest computing system.
In yet another aspect, the invention features a screen-sharing system comprising a guest computing system and a host computing system coupled to a server system over a network. The guest computing system automatically executes program code embedded in a web page received from the server system. The program code sends a request to the server system for image data corresponding to an image on a display screen of the host computing system. The host computing system automatically executes program code embedded in a web page received from the server system. This program code captures image data from the display screen of the host computing system and sends the captured image data to the server system. The server system sends captured image data received from the host computing system to the guest computing system in response to the request from the guest computing system.
In still yet another aspect, the invention features a method for enabling screen-sharing functionality on a computing system. The method comprises pasting hypertext markup language (HTML) code into a web page accessed by the computing system through a Web browser. The HTML code produces a region on the web page, which, when activated, launches a screen-sharing session.
The above and further advantages of this invention may be better understood by referring to the following description in conjunction with the accompanying drawings, in which like numerals indicate like structural elements and features in various figures. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
Web-based screen-sharing systems constructed in accordance with the invention employ standard browser technology to share the screen image of a host computing system with one or more guest computing systems in near real-time. Because browser technology has become widespread, most any web-enabled computing system can participate in the screen sharing of the present invention. Participating computing systems do not need to deliberately download and install special software in order to become capable of screen sharing. Rather, such computing systems can engage in screen sharing using readily available standard browser plug-ins, executing universally accepted HTML code, and communicating in accordance with the universally adopted HTTP (HyperText Transport Protocol). Further, the screen sharing is operating system independent. Thus, in this sense, the screen sharing of the present invention is universal.
In brief overview, a guest computing system (a viewer) and a host computing system (a screen sharer) are coupled to a server system over a network. The host computing system and guest computing systems each communicates with the server system through their web browser. Upon visiting the server system, the host computing system automatically downloads and executes an applet that includes screen-capture program code-screen sharing in accordance with the invention works with the screen of the host computing system as an image. Currently available software (e.g., JAVA version 1.3 and higher) includes program code for capturing the pixel data of the host screen image. Upon automatically executing this host applet, the host computing system sends the captured image data to the server. Broadband Internet access through, e.g., cable and DSL (Digital Subscriber Line), provide sufficient bandwidth for transporting the image data.
During an established screen-sharing session, the browser of the guest computing system also downloads an applet from the server. This guest applet continuously sends requests for image data to the server. In response, the server supplies image data received from the host. The guest computing system repaints its display screen with the received image data, thus reproducing the image of the host screen at the guest computing system.
Each computing system 12, 14 includes a display screen 21 and a processor 22 in communication with system memory 24 over a signal bus 26. Exemplary implementations of the computing systems 12, 14 include, but are not limited to, personal computers (PC), Macintosh computers, workstations, laptop computers, kiosks, hand-held devices, such as a personal digital assistant (PDA), cellular phones, navigation and global positioning systems, and network terminals.
The system memory 24 includes non-volatile computer storage media, such as read-only memory (ROM) 28, and volatile computer storage media, such as random-access memory (RAM) 30. Typically stored in the ROM 28 is a basic input/output system (BIOS), which contains program code for controlling basic operations of the computing systems 12, 14 including start-up of the computing device and initialization of hardware. Stored within the RAM 30 are program code and data. Program code includes, but is not limited to, application programs 32, program modules 34 (e.g., browser plug-ins), and an operating system 36 (e.g., Windows 95, Windows 98, Windows NT 4.0, Windows XP, Windows 2000, Linux, and Macintosh).
Application programs 28 on the computing systems 12, 14 include browser software. The browser software can be any commercially available Web browser, e.g., Microsoft INTERNET EXPLORER®, Mozilla FIREFOX®, NETSCAPE®, and SAFARI®. Currently, most computing devices already have an installed browser when purchased from a manufacturer and deployed in the business, enterprise, or home. When the browser of a computing system visits a Web site with an embedded applet, the computing system automatically downloads the applet from the Web server and automatically executes it. Execution of the applet may require the support of various browser plug-ins 34 (e.g., JAVA, ACTIVEX).
In one embodiment, the browser of each computing system 12, 14 is a JAVA-enabled browser with an interpreter, e.g., a JAVA virtual machine, for interpreting JAVA bytecode (i.e., applets, scripts) and applications. Most commercially available Web browsers have the JAVA bytecode interpreter built into the Web browser. Because they are translated into an intermediate processor-independent bytecode supported by Java Virtual Machine, JAVA applets are operating system independent. In other embodiments, the browser of the guest computing system 14, the browser of the host computing system 12, or browsers of both computing systems 12, 14 are ACTIVEX-enabled, which execute downloaded ActiveX controls. In general, the principles of the invention apply to any browser capable of running applets or controls that perform screen capture.
Other application programs 28 can include, but are not limited to, an electronic mail client program, an instant messaging, and office applications, such as spreadsheet, word processor, and slide presentation software. Each application program 28 can be a proprietary or commercially available program and can run in conjunction with screen-sharing.
Typically, the signal bus 26 connects the processor 22 to various other components of the computing system 12, 14 including, for example, a user-input interface, a memory interface, a peripheral interface, a video interface, a local network interface, and a wide-area network interface (not shown). The display screen 21 connects to the signal bus 26 through the video interface. Exemplary implementations of the signal bus include, but are not limited to, a Peripheral Component Interconnect (PCI) bus, an Industry Standard Architecture (ISA) bus, an Enhanced Industry Standard Architecture (EISA) bus, and a Video Electronics Standards Association (VESA) bus. Over a wire or wireless link, the user-input interface is in communication with one or more user-input devices, e.g., a keyboard, a mouse, trackball, touch-pad, touch-screen, microphone, joystick, by which a user can enter information and commands into the computing system 12, 14. Each computing system 12, 14 can reside behind a firewall 20-1, 20-2, such as ZoneAlarm™, a MICROSOFT XP® built-in, or Norton Security™ firewalls, or external firewalls to isolate the computing system from the network 18.
Embodiments of the network 18 include, but are not limited to, local-area networks (LAN), metro-area networks (MAN), and wide-area networks (WAN), such as the Internet or World Wide Web. Each computing system 12, 14 can connect to the server 16 over the network 18 through one of a variety of connections, such as standard telephone lines, digital subscriber line (DSL), asynchronous DSL, LAN or WAN links (e.g., T1, T3), broadband connections (Frame Relay, ATM), and wireless connections (e.g., 802.11(a), 802.11(b), 802.11(g)).
In one embodiment, the server 16 is a Web server and includes a server engine. The server engine receives HTTP requests to access web pages identified by URLs and provides the appropriate web page to the requesting computing system 12, 14. The server engine can also send an identifier to each computing system 12, 14 when that computing system first communicates with the server 16. In subsequent communications with the server 16, each computing system 12, 14 includes its identifier so that the server 16 can identify the source.
In general, the server 16 orchestrates the screen-sharing session between the host and guest computing systems 12, 14. The server 16 establishes a first HTTP connection 40 with the host 12 and a second HTTP connection 42 with the guest 14. By the first connection 40, the server 16 continuously receives image (i.e., pixel) data corresponding to the screen image of the host 12. Over the second connection 42, the server 16 continuously receives requests for image data from the guest 14 and responds with image data received from the host 12. In effect, the server 16 is the hub of a connection 44 established between the host system 12 and the guest system 14 for purposes of screen sharing.
At step 104, the user of the guest 14 launches the browser software and visits a specific website hosted by the server 16. The browser can have a graphical screen-sharing button (e.g., within a toolbar) that, when pressed, sends an HTTP request to the server 16 to visit the specific website. Within the guest browser, a web page presents the guest with various options including an option to join a presentation. When the guest 14 chooses to join the presentation, the guest browser displays another web page having a field within which the guest 14 enters (step 106) the session code and, optionally, additional data, such as a Guest name (used, e.g., in Web Conferencing) and a special operator password (used, e.g., in customer-support situations).
When the session code is valid, the guest 14 receives, from the server 16, a web page with embedded program code (e.g., a JAVA applet), and automatically and continuously executes (step 108) this program code. Execution of the program code causes the guest 14 to establish a connection with server 16 and to send (step 110) an HTTP request regularly to the server 16 requesting pixel-level data corresponding to the screen image of the host screen. By convention, HTTP requests and responses transported over this connection are addressed to well-known port number 80 or to port 443 for secure https connections. Accordingly, for there to be any browser-to-Web server interaction over the network 18, port 80 needs to be open in the firewall 20-2. Consequently, screen-sharing traffic is able to pass through the firewall 20-2 unblocked.
In response to the HTTP request, the guest 14 receives (step 112) image data and screen coordinates from the server 16. The image data received can correspond to a portion of the display screen of the host computing system 12 or to the display screen in its entirety. The guest computing system 14 uses the screen coordinates to repaint (step 114) its display screen with the image data obtained from the server 16. Accordingly, the user of the guest computing system 14 sees the screen image of the host computing system 12.
Until the screen sharing session is terminated, the guest computing system 14 continuously sends (step 116) requests to the server, receives image data from the server, and repaints its display screen accordingly. In one embodiment, the guest 14 sends another request for image data to the server 16 as soon as the guest 14 repaints its display screen. That is, the guest 14 continuously issues requests as quickly as it is able. In another embodiment, the guest 14 sends a request periodically at a predetermined frequency (e.g., is). Any changes to the screen of the host 12 appear real-time in the browser window of the guest 14.
Advantageously, the user of the guest computing system 14 does not deliberately download and install software at the guest computing system 14 in order to participate in screen sharing. In contrast, the guest computing system 14 receives and executes the applet automatically in response to visiting the server web page, without the user of the guest 14 being aware of any downloaded applet.
The screen-sharing web page can display various options, including an option to host a screen-sharing session. When the user chooses (step 206) the option to host a screen-sharing session, the host 12 receives a session code (which appears in a new web page presented to the host 12). In one embodiment, the host 12 receives the session code only if authorized to host screen-sharing sessions, as described below.
When the host 12 is establishing a screen-sharing session with the server 16 for a first time, a security certificate appears (step 207) at the host 12 (i.e., before the host 12 sees the session code). The user of the host 12 accepts the certificate to establish a secure connection with the server 16. In general, a security certificate appears for each new screen-sharing session, although the user of the host 12 can elect always to trust certificates from the server 16 so that subsequent screen-sharing sessions do not prompt a reappearance of the security certificate.
At step 208, the user of the host computing system 12 distributes the session code to the guest. (For multiple guests, the user of the host 12 distributes the same session code to each guest). Exemplary methods for distributing the session code are described above. It is to be understood that the distribution of the session code does not need to occur at this particular point in the process 200: the host 12 can begin sending image data to the server 16, as described below, before the session code is given to any guests.
At step 210, the host 12 receives and executes program code from the server 16 (e.g., a JAVA applet embedded in the new downloaded web page that displays the session code). The program code includes a screen-capture method for capturing a pixel-level snapshot of the screen of the host 12. In one embodiment, the screen-capture method employs a JAVA version 1.3 method called createScreenCapture( ). An input parameter to the JAVA createScreenCapture method is a rectangle that defines the screen boundaries within which pixels are to be captured. Thus, the createScreenCapture method can be used to capture a specific area of the screen or of a specific visual object. The createScreenCapture method returns a pixel buffer containing the image (i.e., pixel data).
In general, the size of captured pixel buffer can be large. For example, for a 32-bit color screen with a resolution of 1280×1024, the size of a pixel buffer is at least 5,242,880 bytes (32*1280*1024). Transmitting this amount of data with sufficient frequency to achieve an animated screen image at the guest 14 may be unfeasible in networks where the bandwidth is insufficient to support the pixel data traffic.
Rather than send the entire screen image upon each execution of the screen-capture method, in one embodiment, the host 12 determines (step 212) which sub-image of the screen image has changed since the last transmission of the pixel buffer and sends that sub-image to the server 16. To make this determination, the host 12 runs program code (downloaded to the host 12 with the screen-capture code or as a result of executing the screen-capture code) that isolates the area of change to a rectangular sub-image, as described in more detail below.
The host 12 compresses (step 214) the changed rectangular sub-image into a file, using either a JPEG (Joint Photographic Experts Group) or PNG (Portable Network Graphics) codec, and transmits (step 216) the compressed rectangle sub-image with its rectangle coordinates (x, y, height, and width) to the server 16. Depending on the contents of the screen image, the host 12 automatically and dynamically chooses the particular compression type. For example, JPG compression is preferred for high quality images and photographs, whereas PNG compression is preferred for the graphical applications, websites, etc. The connection between the host 12 and the server 16 transports HTTP requests and responses addressed to well-known port number 80 or to port 443 for secure https connections. Again, screen-sharing traffic is able to pass unblocked through any firewall 20-1 (
The host computing system 12 continuously (step 218) determines screen image changes, compresses the image data, and sends the compressed image data to the server 16 until the screen-sharing session is terminated. In one embodiment, the host 12 starts determining screen image changes as soon as it transmits the compressed image data. That is, the host 12 continuously determines changes to the screen, compresses the changes, and forwards the changes to the server 16 as quickly as it is able. In another embodiment, the host 12 determines changes periodically at a predetermined frequency (e.g., is). After the host 12 starts sharing its screen, the screen continues to be shared provided the browser window remains open, although the browser window need not be the topmost window nor be maximized.
At step 302, the server 16 receives an HTTP request from the host 12 for hosting a screen-sharing session. From the HTTP request, the server 16 is able to determine its originator (e.g., the HTTP request includes an identifier sent to the host 12 by the server 16 during a previous interaction between the two systems 12, 16). In a database of registered hosts, the server 16 determines (step 304) whether the originator of the HTTP request (here, the host 12) is authorized to host screen-sharing sessions. If the host 12 is not among the list of registered hosts, the server 16 can reject the connection or offer to register the host.
If the host 12 is a registered user, the server 16 produces (step 306) a session code (e.g., randomly generated) and sends the session code to the host 12, for display on the host screen. The server 16 also sends the screen-capture program code, described above, to the host 12. The server 16 determines (step 310) when a guest connects or is already connected to this session. Alternatively, the server 16 determines that the screen-sharing session terminates (step 312), because, e.g., the host 12 cancels the session.
At step 314, the server 16 receives an HTTP request from the guest 14 for joining a screen-sharing session and presents a web page with a field for receiving a session code. The server 16 verifies (step 316) a session code submitted by the user of the guest 14. If the session code corresponds to a session code given to the host 12, the server 16 sends (step 318) an applet to the guest 14. In addition, the server 16 uses the session code to link the guest 14 to the host 12. For example, the server 16 can maintain a table for tracking screen-sharing sessions and generate (step 320) a new entry in the table representing the screen-sharing session between the guest 14 and the host 12. The session code can be used as an index to the table entry. In addition, the session code can operate within the table to link multiple guests to a single host (in those instances when multiple guests are participating in a screen-sharing session).
During the screen-sharing session, the server 16 receives (step 322) screen image data from the host 12. The server 16 stores (step 324) screen image data updates received from the host 12 in a buffer. While communicating with the host 12, the server 16 is also communicating with the guest 14. At step 326, the server 16 receives a request from the guest 14 for screen image data.
In general, the server 16 forwards (step 328) image data received from the host 12 to the guest 14. More specifically, the server 16 makes a determination as to which image data to send. To illustrate, the server 16 can track the last update to the host screen image that the server 16 sent to the guest 12. When the server 16 receives a subsequent request for image data from the guest 14, the server 16 identifies which image updates it has received from the host 12 since sending the last update to the guest 14. If more than one screen image update has since arrived from the host 12, instead of sending the next update in the series of unsent updates, the server 16 analyzes the unsent updates to determine if any one of them can be bypassed of if certain updates could be efficiently combined.
As an oversimplified illustration, consider for example that the last screen image update sent to the guest is number 100, and that subsequent updates numbered 101 through 120 arrive at the server from the host. When the next request arrives from the guest 14, the server 16 does not merely send the screen image update number 101. Rather, the server 16 analyzes the newly arrived screen image updates (here, 101 through 120) to determine if any of the later screen image updates encompasses one or more of the previous updates.
For example, screen image update number 120 may be a full screen update sent by the host 12 to establish image synchronization with the guest 14. Consequently, it is enough for the server 16 to send screen image update number 120 to the guest 14, because the other updates 101 through 119 are no longer needed (being subsumed by the full screen update). On a lesser scale, one of the later screen image updates may relate to a sub-image that fully encompasses the sub-image of an earlier screen image update. The server 16 can also combine non-overlapping screen image updates.
By discarding subsumed screen image updates and combining updates wherever appropriate, the server 16 avoids needless expenditure of bandwidth. This mechanism is particularly useful when the host uploads screen image updates at a faster rate than the guest downloads updated screen image data, or, in general, when the speed of the host 12 and multiple guests differ substantially.
If, instead, this capture is a subsequent occurrence, the image contents in the buffer, b, for each grid are compared (step 414) with the image content in the buffer, bp. A process for determining differences is described below in connection with
Various techniques can be used to find the sub-image that encompasses the pixel changes. For example, a first technique compares sub-images in grids one at a time, like squares in a chessboard, to determine whether that sub-image has changed.
A second technique executes similarly to the first technique, except that the second techniques divides the screen image into grids by dividing the image into four sections, as shown in
The HTML code produces a screen-sharing graphical button that appears whenever a user of a computing system visits the web page with the HTML code. Activating the graphical button (e.g., with one mouse click) launches a screen-sharing session. This embodiment of the HTML code does not authenticate the host at the server 16. Accordingly, anyone can host a screen-sharing session by visiting the web page and pressing the graphical screen-sharing button. This universality becomes particularly useful in customer support applications. In such customer support applications, an operator (i.e., an individual who is providing the customer support) may be required to provide an “operator's password” in order to see the screen (i.e., become a guest of the screen-sharing session).
As an illustrated example, most business enterprises maintain a web site that hosts one or more web pages that are accessible to their current and prospective customers. Any given enterprise can copy the screen-sharing HTML code into its “contact us” or “help” web page. A visitor of that web page sees the graphical screen-sharing button.
In one embodiment, activating the screen-sharing button invokes a pop-up window with a session code that the visitor can share with a guest (presumably, the host of the “contact us” web page). Instead of invoking a pop-up window, in another embodiment activation of the screen-sharing button switches the user to another host web page with the session code. The visitor shares this session code with an operator associated with the host. After the operator (turned guest) connects with the session code, the visitor (turned host) is sharing its screen. Before being allowed to view the screen, the operator is asked to provide a password to ensure that only an authorized operator, i.e., an authorized representative of the enterprise, provides the customer support. The screen sharing between the visitor-host and operator-guest can be used to supplement a telephone conversation between the parties. Alternatively, the visitor-host and operator-guest can engage in a chat session or exchange emails while screen sharing.
It is to be understood that such one-click screen-sharing can be added as a feature to web pages in a variety of forms, e.g., as a graphical button in a toolbar, as a menu item, as an icon on a search engine. Application programs, such as instant messaging and office applications, can be adapted to provide one-click screen sharing.
Aspects of the present invention may be implemented, in whole or in part, as one or more computer-readable software programs embodied on or in one or more articles of manufacture. The article of manufacture can be, for example, any one or combination of a floppy disk, a hard disk, hard-disk drive, a CD-ROM, a DVD-ROM, a flash memory card, an EEPROM, an EPROM, a PROM, a RAM, a ROM, or a magnetic tape. In general, any standard or proprietary, programming or interpretive language can be used to produce the computer-readable software programs. Examples of such languages include C, C++, Pascal, JAVA, BASIC, Visual Basic, and Visual C++. The software programs may be stored on or in one or more articles of manufacture as source code, object code, interpretive code, or executable code.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5838906 *||Oct 17, 1994||Nov 17, 1998||The Regents Of The University Of California||Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document|
|US5884014 *||May 23, 1996||Mar 16, 1999||Xerox Corporation||Fontless structured document image representations for efficient rendering|
|US5960411||Sep 12, 1997||Sep 28, 1999||Amazon.Com, Inc.||Method and system for placing a purchase order via a communications network|
|US6331855 *||Apr 28, 1999||Dec 18, 2001||Expertcity.Com, Inc.||Method and apparatus for providing remote access, control of remote systems and updating of display information|
|US6460081 *||May 19, 1999||Oct 1, 2002||Qwest Communications International Inc.||System and method for controlling data access|
|US20020038346 *||Aug 10, 2001||Mar 28, 2002||Frank Morrison||Method for screen image sharing|
|US20030085923||Dec 11, 2002||May 8, 2003||Chen Tsung-Yen ( Eric )||Method and apparatus for conducting a collaboration session in which screen displays are commonly shared with participants|
|US20030093464 *||Nov 14, 2001||May 15, 2003||James Clough||Browser based multiple file upload|
|US20040075619||Jun 27, 2003||Apr 22, 2004||Hansen James R.||Screen sharing|
|US20040080504 *||Jun 19, 2003||Apr 29, 2004||Pixion, Inc.||Real-time, multi-point, multi-speed, multi-stream scalable computer network communications system|
|US20040253991||Feb 26, 2004||Dec 16, 2004||Takafumi Azuma||Display-screen-sharing system, display-screen-sharing method, transmission-side terminal, reception-side terminal, and recording medium|
|US20050235014||Apr 15, 2004||Oct 20, 2005||Citrix Systems, Inc.||Methods and apparatus for sharing graphical screen data in a bandwidth-adaptive manner|
|US20050246634||May 3, 2004||Nov 3, 2005||Andrew Ortwein||Synchronized sharing of a dynamically updated image|
|US20060031779||May 26, 2005||Feb 9, 2006||Citrix Systems, Inc.||Selectively sharing screen data|
|1||"Bold Software Partners with LiveLOOK to Enhance BoldCCM Product Suites"; web page; www.prweb.com/releases/BoldSoftware/LiveLOOK/prweb2536784.htm; date web page visited: Nov. 17, 2009; 2 pages.|
|2||*||"Bosco's Screen Share: Web Screen Sharing." Hutchings Software: Mar. 5, 2005. .|
|3||"Instant Screen Sharing with no download . . . "; web page; showscreen.com/screen-sharing-partners; date web page visited: Jan. 3, 2010; 3 pages.|
|4||"Instant Service Adds LiveLOOK's CoBrowsing Capabilities to Chat Solution"; web page; www.instantservice.com/news/20071106.html; date web page visited: Nov. 17, 2009; 2 pages.|
|5||*||"Java applet screenshot." USENET thread: Aug. 12, 2004. .|
|6||"LiveLOOK is a leading provider of real-time . . . "; web page; www.livelook.com/about-us.asp; date web page visited: Jan. 7, 2010; 2 pages.|
|7||"nGenera CIP Partners with LiveLOOK"; web page; www.reuters.com/article/pressRelease/idUS120651+14-Apr-2009+BW20090414; date web page visited: Nov. 17, 2009; 3 pages.|
|8||*||"PictureTalk FAQs." Pixion, Inc.: Mar. 5, 2005. .|
|9||"Press Release"; Web 2.0; Jun. 21, 2007; 1 page.|
|10||"Screen-Sharing: One-Click Solution . . . "; web page: www.masternewmedia.org; date web page visited: Jan. 6, 2010; 14 pages.|
|11||"Simple, single-purpose screen sharing"; web page article; www.infoworld.com/print/25674; published on InfoWorld; by Jon Udell; date web page visited: Jan. 3, 2010; 2 pages.|
|12||*||"TightVNC Java Viewer version 1.2.9 Readme." TightVNC project: Aug. 10, 2003. .|
|13||"WebsiteAlive Chooses LiveLook to Offer . . . "; web page; websitealive.com/articles-press/websitealive-chooses-livelook; date web page visited: Jan. 3, 2010; 2 pages.|
|14||*||"Bosco's Screen Share: Web Screen Sharing." Hutchings Software: Mar. 5, 2005. <http://web.archive.org/web/20050305232959/www.componentx.com/ScreenShare/web.php>.|
|15||"Instant Screen Sharing with no download . . . "; web page; showscreen.com/screen—sharing—partners; date web page visited: Jan. 3, 2010; 3 pages.|
|16||*||"Java applet screenshot." USENET thread: Aug. 12, 2004. <http://www.velocityreviews.com/forums/t136047-java-applet-screenshot.html>.|
|17||"LiveLOOK is a leading provider of real-time . . . "; web page; www.livelook.com/about—us.asp; date web page visited: Jan. 7, 2010; 2 pages.|
|18||*||"PictureTalk FAQs." Pixion, Inc.: Mar. 5, 2005. <http://web.archive.org/web/20050305010259/www.pixion.com/supportFaq.html>.|
|19||*||"TightVNC Java Viewer version 1.2.9 Readme." TightVNC project: Aug. 10, 2003. <http://web.archive.org/web/20030810163821/tightvnc.com/doc/java/README.txt>.|
|20||Free Web Conferencing and Always-On Collaboration; www.vyew.com; Jul. 25, 2006.|
|21||News Release; New Jersey Economic Development Authority; Nov. 2008; 2 pages.|
|22||*||Siden, Larry. "Signed Applet Tutorial." Archived by the Internet Archive on May 13, 2006: <http://web.archive.org/web/20060513070748/http://www-personal.umich.edu/~Isiden/tutorials/signed-applet/signed-applet.html>. pp. 1-5.|
|23||*||Siden, Larry. "Signed Applet Tutorial." Archived by the Internet Archive on May 13, 2006: <http://web.archive.org/web/20060513070748/http://www-personal.umich.edu/˜Isiden/tutorials/signed-applet/signed-applet.html>. pp. 1-5.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8224970 *||Oct 13, 2008||Jul 17, 2012||Sony Corporation||Web-screen sharing system, web-screen sharing terminals, and sharing program thereof|
|US8271618||Jun 6, 2012||Sep 18, 2012||Zoom International S.R.O.||System and method for zero-footprint screen capture|
|US8754827||Sep 21, 2010||Jun 17, 2014||Skype||Updating an image|
|US8876609 *||Jan 21, 2010||Nov 4, 2014||Samsung Electronics Co., Ltd.||Method of executing video game in mobile terminal and system for performing the same|
|US9215266 *||Jan 26, 2012||Dec 15, 2015||Zoom International S.R.O.||System and method for zero-footprint screen capture|
|US9256691 *||Jul 10, 2012||Feb 9, 2016||Recursive Labs, Inc.||Systems and methods for enabling Internet co-browsing experience for multiple users|
|US9275764 *||Jul 25, 2011||Mar 1, 2016||Mitsubishi Heavy Industries, Ltd.||Operation monitoring apparatus of nuclear power plant|
|US9436429||Jun 11, 2014||Sep 6, 2016||Skype||Updating an image|
|US9489659 *||Apr 2, 2012||Nov 8, 2016||Cisco Technology, Inc.||Progressive sharing during a collaboration session|
|US9535651||Dec 16, 2010||Jan 3, 2017||Oracle International Corporation||Co-browsing systems and methods|
|US9690368||Dec 30, 2011||Jun 27, 2017||Adidas Ag||Customization based on physiological data|
|US9746997 *||Oct 20, 2014||Aug 29, 2017||Microsoft Technology Licensing, Llc||Share timeline of calendar|
|US9811304 *||Mar 30, 2011||Nov 7, 2017||Open Invention Network, Llc||Method and apparatus of capturing a screen image of a remotely managed machine|
|US20080034037 *||Aug 4, 2006||Feb 7, 2008||Jean-Pierre Ciudad||Sharing Graphical User Interface Output In Chat Environment|
|US20080034038 *||Aug 4, 2006||Feb 7, 2008||Jean-Pierre Ciudad||Sharing Application Output In Chat Environment|
|US20090119602 *||Oct 13, 2008||May 7, 2009||Sony Corporation||Web-screen sharing system, web-screen sharing terminals, and sharing program thereof|
|US20100190549 *||Jan 21, 2010||Jul 29, 2010||Samsung Electronics Co., Ltd.||Method of executing video game in mobile terminal and system for performing the same|
|US20110119719 *||Nov 13, 2009||May 19, 2011||Echostar Technologies L.L.C.||Mosaic Application for Generating Output Utilizing Content from Multiple Television Receivers|
|US20120005301 *||Sep 21, 2010||Jan 5, 2012||Skype Limited||Sharing an image|
|US20120254381 *||Mar 30, 2011||Oct 4, 2012||Kaseya International Limited||Method and apparatus of capturing a screen image of a remotely managed machine|
|US20130110666 *||Oct 28, 2011||May 2, 2013||Adidas Ag||Interactive retail system|
|US20130129030 *||Jul 25, 2011||May 23, 2013||Mitsubishi Heavy Industries, Ltd.||Operation monitoring apparatus of nuclear power plant|
|US20130198336 *||Jan 26, 2012||Aug 1, 2013||Michal Kridlo||System and method for zero-footprint screen capture|
|US20150372829 *||Oct 20, 2014||Dec 24, 2015||Microsoft Corporation||Share timeline of calendar|
|WO2016139289A1||Mar 3, 2016||Sep 9, 2016||Unify Gmbh & Co. Kg||Communication system and method of using the same|
|U.S. Classification||709/205, 709/224, 709/203, 709/219|
|Cooperative Classification||H04L67/24, H04L67/36, G06F2203/0383, G06F3/038, G06F17/30873|
|European Classification||G06F3/038, G06F17/30W3, H04L29/08N35, H04L29/08N23|
|Jan 26, 2011||AS||Assignment|
Owner name: NJEDA, NEW JERSEY
Free format text: SECURITY INTEREST;ASSIGNOR:LIVELOOK, INC.;REEL/FRAME:025749/0162
Effective date: 20080925
|Sep 25, 2014||FPAY||Fee payment|
Year of fee payment: 4
|Oct 23, 2014||AS||Assignment|
Owner name: ORACLE INTERNATIONAL CORPORATION, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LIVELOOK, INC.;REEL/FRAME:034019/0863
Effective date: 20141010
|Dec 4, 2014||AS||Assignment|
Owner name: LIVELOOK, INC., NEW JERSEY
Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:NJEDA;REEL/FRAME:034376/0198
Effective date: 20140708