METHOD AND SYSTEM FOR TRANSMITTING DATA APPEARING ON A
COMPUTER SCREEN
BACKGROUND OF THE INVENTION
The present invention relates to a method and system for transmitting data appearing on a computer screen.
Some prior systems for transmitting data to computer screens make use of video satellite conferencing or remote projection systems. Other tools allow users to share application, graphics one-to-one, or presentations uploaded in advance. Attempts to use the Internet for the transmission of video data for real-time conferencing are more cumbersome and require the user to download the application each time.
There is no Internet or intranet based tool to share screen data in real time with one or more viewers, which is as small, simple, easy to install and use and which can tunnel through most corporate firewalls and does not require any additional Java security privileges. In addition, the present invention allows for scalability limited only by the physical number of relay servers used.
SUMMARY OF THE INVENTION
It is therefore an object of the present invention to overcome the disadvantages of the prior art systems and
to provide a simple and efficient method and system for transmitting data appearing on a computer screen over the Internet or an intranet .
The present invention utilizes a projector application which is a simple, yet feature-rich Windows C++ (MFC) application, which enables any Internet or intranet connected computer to share any portion of or its entire screen over the Internet or intranet with one or more computers and/or Internet or intranet browsing appliances, also connected to the Internet or intranet, in real time in a simple and elegant fashion. The application allows one to share a snapshot, slide show, or any other data visible on the host computer screen with this tool, and it requires only that the host computer use an operating system that supports windows, such as the Windows operating system 95, 98, NT and Windows 2000 and any popular Java 1.0 or higher enabled web browser. The viewing participants need only support a Java 1.0 or higher enabled web browser to view the data. Thus, a viewing participant can have either a fully operational computer or a web appliance that is only capable of browsing the Internet or an intranet.
The projector application takes a user specified portion of the screen (e.g. the full screen, portion of a screen, or selected application window) , at a user specified interval, and transmits data over the Internet or the intranet to a relay server which then broadcasts the data to one or more participants having a browser which has downloaded a viewer applet. The projector connects to the relay server which broadcasts screen data to all conference participants who are also connected to the relay server through their web browser. This is preferably accomplished at a website controlled by the server. Where there are no firewall issues, the projector can also transmit data directly to the viewer, making the relay server an optional component .
In the embodiment where the relay server is eliminated, it is most desirable to carry this out where there is only one host and one participant. The conference can involve a host with a plurality of participants, however, without the relay server the host must service each connection and image manipulation. This will result in slower data transmissions.
The projector relay server is hosted on one or more of the service provider's systems which are commonly accessible to the host and participants. The log-in, security and scalability components of the relay server are built with DCOM.
The projector viewer applet is a Java 1.0 applet that will run in any Java 1.0 or higher enabled browser.
In accordance with the invention, in order to create a conference, a host first registers on the website and downloads and installs the projector application. The host then informs conference participants of a conference time and date and what the conference identification number will be.
The host then runs the projector application and logs in to start the conference. In accordance with the invention, the host can also start a telephone conference using the audio conferencing method and system described in the copending application serial no. 09/528 ,549, filed on March 20, 2000 and assigned to the same assignee, the disclosure of which is hereby incorporated herein by reference .
The host then selects a portion of his or her screen, a window or the entire screen or display of the computer and clicks a send button on the projector panel to start broadcasting.
In order to connect to a conference, each participant gets the conference time and date and conference identification number from the host and thereafter logs in to the conference at the website via a web browser. The viewer applet will automatically be downloaded as a safe Java applet to the participant's desktop and the conference participant will see the conference host's screen.
Prior art systems required special software, plug- ins or other installations on the client computer in order to function. The projector application according to the present invention requires only that participants log onto a website and and, with a single mouse click, run the viewer applet (and optionally the projector application if the viewer would like to also transmit data) . Prior art systems required special configurations to tunnel through corporate firewalls. Users who can connect their browser to the website can broadcast their screen using the projector
application or participate in a data conference using the viewer without firewall issues.
The projector application is able to send data through firewalls because both the host panel and the viewer applet open connections to the relay server in the same manner that a web browser might connect to a web server. For performance reasons, the projector application and viewer panels first attempt to connect to the server using raw socket connections. If raw socket connections are blocked by a firewall, projector switches automatically to use HTTP connections, which are slower, but are allowed through firewalls. Projector makes this determination without any intervention from the user.
The projector application and viewer applet are very small and simple and easy to use. The projector application is strictly an Internet or intranet tool which solves the speed, ease and firewall issues.
The method and system according to the present invention is also able to broadcast in real time or close to real time because only that portion of the visual image that is different from the image initially broadcast is relayed by the relay server to the viewer participants. This speeds
up the transmission and reception and allows for more efficient operation of the system, especially where bandwidth might otherwise be an issue.
In accordance with the invention, the conference host chooses to broadcast either his or her whole screen, a defined portion of the screen or an individual application window and clicks "send" on a projector tool on the host screen or display. The projector captures the image chosen by the host, stores the image and broadcasts it to the relay server from where it is broadcast to the downloaded viewers on the conference participants' displays or screens. The host then makes changes to the screen and clicks "send" again and the projector application compares the new real time image with the stored image and places the changes in a queue. Only the changes are then broadcast.
These and other features of the present invention will become more apparent from the following detailed description of the invention, taken with the attached drawings, wherein:
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a block diagram of the system for carrying out the method of the present invention;
Fig. 1A is a schematic of the relay server network of Fig. 1;
Fig. 2 is a schematic drawing of the projector application according to the present invention;
Fig. 3 is a flowchart of one embodiment of the method according to the present invention; and
Figs. 4-10 are screen shots of pages and screens seen at various stages of the method set forth in Fig. 3.
DETAILED DESCRIPTION OF THE INVENTION
Fig. 1 shows a system for carrying out a method for transmitting data appearing on a computer screen to one or more video conferencing participants.
As shown therein, one or more computers 1A-1N are connected to the Internet, as are Internet appliances 2A-2N having browsing capability. Computers and browsers 1, 2 are connected to the Internet 3 or to an intranet via modem, cable, DSL or any conventional Internet or intranet connection.
Also connected to the Internet 3 or an intranet is the relay server network 4 which maintains the website and carries out the functions of the system and method according to the present invention. The projector relay server network is hosted on one or more of the service provider's systems which are commonly accessible to the host and participant. As shown in Fig. 1A, it comprises multiple servers 44A-44N and more servers can be added to increase performance and scalability. The log-in, security and scalability components of the relay server network are built with DCOM. Each relay server can be a TCP/IP server or an HTTP server, wherein all of the video information is contained in HTTP messages. Each relay server can be constructed from a conventional multiprocessor server, such as a Dell 6350 or 8350 server.
The relay server network 4 maintains a website within the web server 41 that is capable of downloading a projector application which is a Windows C++ application to computers 1A-1N. In order to run the projector application, projector logs in to web server 41, which validates the log in with the database 42 and then contacts the data conference manager 43 to choose the next available
relay server 44A-44N. The data conference is then created on the chosen relay server. After log-in, projector broadcasts images to the selected relay server. The computers 1A-1N must be Windows capable operating computers, such as those running Windows operating system 95, 98, NT or 2000 and any popular Java 1.0 or higher enabled web browser, such as Netscape Navigator or Microsoft Internet Explorer.
Browser appliances 2A-2N need only be capable of running a web browser that is enabled to operate Java 1.0 or higher. Using a browser appliance 2A-2N, a participant logs into the web server 41, and after validation by database 42, if the conference has been created, the data conference manager 43 reroutes the browser appliance to the selected relay server. The server downloads the viewer applet to the participant browser, which begins receiving broadcasts through the viewer applet when the conference starts.
The projector application has a number of functional elements shown in Fig. 2. (Alternatively, the host could obtain the projector application from such venues as a shareware website or a computer disk.) The projector application includes a main module 10 which is the main command center and has all of the menu pointers for the
application. It interacts with the other modules 20-80, as will be explained.
One of the modules is the sender module 20 which sends image data in the form of IP packets to the Internet 3 or an intranet. The capture screen module 30 captures the portion of the screen selected by the host, i.e., a particular section of the screen, a particular window of the screen or the entire screen. The capture screen module 30 also is responsive to the selection of a manual mode or an automatic mode for sending image changes. In manual mode, the current image is sent only when the host actuates an onscreen button or presses a particular keyboard combination. In automatic mode, the current image is sent on a regular interval basis, for example, every half second, so that the changes in the screen are almost in real time. The manual mode acts like a still camera, where the auto mode acts like a video camera.
The capture screen module stores the last image sent, captures the image chosen by the host, i.e., the manual image selected by the host or the image on the screen every half second, and compares the new real time image with an image previously sent and stored in the module. The
changes to the image are placed in a queue and only the changes are then broadcast to the server 4. Every n/bytes of data (for example, every 100,000 bytes), the entire image is resent in order to accommodate new participants who have just logged into the conference.
The status module 40 reads data from the server to determine the identity of the participants who are connected in a particular conference. This status module then displays this information to the host on the host's screen or display.
The user interface module 50 controls the host screen which has a projector panel, the participant information and other information for the host of the conference .
The main module can also have a preview module 60 which opens the viewer applet and shows the host what the host is sending to the participants. A chat module 70 is controllable by the host and, like instant messaging applications that are currently available, enables the host to communicate with the participants in a running chat while the video display is being shared. The host has the ability to allow any participant to participate in the chat and to
mute one or more of the participants, depending on the purpose of the conference .
The host console module 80 allows the host to also control an audio conference in accordance with the method and system described in copending application serial no. 09/528,549, filed on March 20, 2000, and assigned to the same assignee as the present application. That disclosure is hereby incorporated herein by reference.
Fig. 3 illustrates a method for starting a conference and downloading, installing and using the projector according to the present invention. The conference host on computer 1A logs into the website in step 101 (hereinafter the eYak website) , wherein the user is shown the screen of Fig. 4. From there, if the host has a conference account in Step 102, the projector application is made available to the user in step 104 (if the user does not already have the projector application) . If the user does not have a conference account, the user is directed to register in step 103 and is shown the page of Fig. 5. The user then downloads the projector application in step 104 by entering the conference ID and PIN received on registration in step 105, as shown in Fig. 6.
After registering, the website sends the e-mail set forth below as Example 1 confirming the personal conference ID number, the PIN number and the conference phone number which enables the user to both carry out audio and data conferencing as described hereinabove. Also received by the user is an e-mail shown in Example 2 below with the instructions needed to send to participants who will be involved in the conference with the host. The e- mail indicates the information needed to join a conference. Example 1
From: AlphaSupport@eyak.com [mailto:AlphaSupport@eyak.com]
Sent: Tuesday, March 14, 2000 3:50 PM
To: jsmith@xyz.com
Cc: AlphaSupport@eyak.com
Subject: eYak Member Confirmation
Thank you for signing up with eYak. Your account is active, and you can begin making free conference calls at any time. This e-mail contains all the information you need to make calls. Please save it for future reference. Your personal conference ID is XXXXXXXXXXXX . Your PIN is XXXXX .
The eYak conference phone number is 617-XXX-XXXX. Making a conference call is easy: At any time, day our night, you and the other conference participants just call the eYak conference phone number (617-XXX-XXXX) and enter your personal conference ID (XXXXXXXXXXXX) . As the conference host, you will also have to enter your PIN (XXXXX) . The call won't begin until you, the host, join in, and the conference call ends when you hang up. It's that simple, and it's free. Your only cost is the regular phone charge of calling the eYak phone number. If you want to share visuals with the conference participants, download the eYak Projector software. eYak Projector is easy to use. You just enter your conference ID
and PIN, and start broadcasting whatever you see on your computer. The conference participants can view the images you send out by joining the conference on the eYak Home Page .
There are a number of other conference options. You can protect the conference with a password. (In this case, give the password to the participants before you place the call.) You can also mute calls, place a call in lecture mode (where only you, the host, can talk), and allow the participants to keep talking even after you hang up. There are other options, too. At any time during a conference call, press ** for a complete list of options.
Thank you again for signing up with eYak. If you have any questions, please don't hesitate to contact us at Alphasupport@eyak. com or 617-XXX-XXXX.
Example 2
From: AlphaSupport@eyak.com [mailto:AlphaSupport@eyak.com]
Sent: Tuesday, March 14, 2000 3:50 PM
To:jsmith@eyak.com
Cc: AlphaSupport@eyak.com
Subject: How to join a Conference
Here's an e-mail with eYak calling instructions that you can send to your coworkers and friends who will be in conference calls with you. It explains everything they need to know to participate in a conference call.
John Smith has signed up with eYak, the free nationwide audioconferencing service. With eYak you can talk to several people as easily and cheaply as you talk to one person. To join John Smith's conference call, just call 617-XXX- XXXX, and enter John Smith's conference ID, which is XXXXXXXXXXXX . That's all there is to it.
If you have any questions, please don't hesitate to contact Alphasupport@eyak . com, or by calling 617-XXX-XXXX and pressing * .
The user can then sign up for an eYak conference by accessing the website and entering the conference
identification or ID and the personal identification number or PIN number for the conference. After registering and creating the ID and PIN numbers in step 103 from the page in Figs. 5 and 6, the host may download the projector in step 104. Upon entering the conference ID and PIN numbers in step 105, the user is connected with the web server in step 106, and the ID and PIN numbers are verified in step 107. If they are incorrect, the user is directed back to step 104. If the numbers are verified in step 107, then the projector will download and install in step 108. After registration in step 103, if the user wants to begin a conference immediately and already has projector, the server creates the data conference and responds with the IP location in step 109. After the server creates the conference, the projector panel launches in step 110, in the form of a moveable graphic display on the screen, as portrayed in Fig. 7. The projector panel display also includes various tools, such as an arrow tool. The host can click on the arrow and drag it onto the image being transmitted.. The arrow then gets transmitted to the viewer, allowing the host to graphically point to the selected information.
It should be noted that if the user has previously logged on and hosted conferences, the user can go from step 102 to step 104 directly and thereafter to steps 105-110 without step 103 being used.
The participants in the conference on, for example, computer IB, get the time, date and conference identification from the host via e-mail at step 111, as shown in the example above, or can receive the information through other means such as instant message or telephone call. The participants log into the conference by accessing the website at step 101 as shown in Fig. 4 and signing up in step 112 at the screen as shown in Fig. 8. This connects the participant's computer to the relay server at step 106 to confirm the ID at step 113, and if confirmed, the server redirects the participant's computer to the appropriate conference location at step 109. The viewer applet, which is a Java applet, is automatically downloaded by the browser of the participant to the participant's desktop at step 114 and the conference participant will see the data from the host's screen that the host has chosen to transmit. An example of the host screen for a conference is shown in Fig. 9, and an example of the participant's screen is shown in
Fig. 10. In this example, the entire host's screen is projected to the viewer's screen.
While the present invention has been described with regard to the preferred embodiment thereof, it is understood that other embodiments of the present invention can be utilized as part of the method and system of the present invention.
For example, the system is able to have simultaneous conferences, so that one computer can be both the host of one conference and the participant of the other conference. In this manner, the host can project his or her screen to the other participants, and at least one participant can project changes on his or her screen back to the host who is acting as a viewer for that conference. In this instance, the host would have two windows on the screen, one corresponding to the projector image that is being relayed to participants and the other corresponding to the viewer image of one of the participants who is also acting as a host .
Alternatively, a conference can have a plurality of hosts, wherein each host has the projector application
running. In this case, the viewers will receive images in difference windows from each host.
The participant can have a viewer running on his or her screen, as well as a window directed to chat, and further, a window directed to conference information. The viewer, by this method, can interact with the host.
Additionally, while the invention has been described as utilizing the server of the website for relaying the image information from the host to the participants, once they have downloaded the projector and viewer the host can send the image directly to the participants and participants can receive the image. This is particularly useful in an embodiment where there is a single host and a single participant. In those situations where there are multiple participants, the peer to peer configuration will be slower necessitating the use of the server.
The system can display PowerPoint slides from the host computer or can illustrate real time changes to a display. Where the viewer has the capability of chat and/or telephone conferencing, the viewer would then have an interactive capability with the host.
It is understood that the embodiments described hereinabove are merely illustrative and are not intended to limit the scope of the invention. It is realized that various changes, alterations, rearrangements and modifications can be made by those skilled in the art without substantially departing from the spirit and scope of the present invention.
The attached appendix lists the program files for the projector application, the server components and the Java applet.