The World Wide Web (abbreviated as www) and commonly known as the Web, is a system of interlinked hypertext documents accessed via the Internet. Standards for the operation of the World Wide Web are published by the World Wide Web Consortium.
Users access documents held on Web servers using a client application known as a Web browser which retrieves, using hypertext transfer protocol (HTTP), documents written in hypertext mark-up language (HTML) and then displays them. The displayed document is usually described as a Web page, and may contain text, images, videos and other multimedia, as well as computer programs which run in isolation in the Web browser to perform functions such as updating the displayed Web page with live data. Well known Web browsers used on personal computers include Microsoft Internet Explorer, Mozilla Firefox, Google Chrome and Apple's Safari. Web browsers are also embedded into many other electronic devices including smartphones and tablets. Well known Web page programming languages that run in the Web browser include JavaScript and jQuery.
Users access Web pages through a character string known as a Uniform Resource Locator (URL). Each page on the Web has a unique URL to identify and access it. URLs may be typed in by the user, stored as bookmarks, or embedded into other applications, documents or Web pages when they are known as hyperlinks. A hyperlink may be visible as the full URL, or may be referenced by another visible object, such as informative text, or a graphic. Moving the computer mouse pointer over a hyperlink, or its associated text or graphic, and clicking the mouse button causes the Web browser to “navigate” to the requested page, by retrieving the hypertext document (identified by the URL) from the appropriate Web server, and replacing the currently displayed page with the newly retrieved one.
Users operate Web browsers by navigating to a first Web page, either by typing in its URL, or more often automatically via a saved URL when the browser application is started. Thereafter, operation of the browser is primarily via hyperlinks, until the user decides to specify a new starting point, when they may type in a new URL or navigate to a saved one.
In some instances, users will find it desirable to retain the current page, rather than having it overwritten by the new page, and for this purpose Web browsers typically provide for opening an additional page within the same browser application, or to start another browser application instance on which the page is then displayed. Where multiple pages are opened in a single browser instance, each is placed on a different “tab” with only one tab usually visible at any given time, but providing easy means to instantly switch between them without re-loading the displayed page. For example, the Microsoft Internet Explorer Web browser allows the user to “right-click” on a hyperlink which displays a context menu with “Open in a new tab” and “Open in a new window” options.
Web browsers also have the ability to save metadata, manually or automatically, such as the user's “favorite” pages, bookmarks, a history of retrieved pages, or usernames and passwords that may be required to access some Web pages.
In addition, Web servers can cause the browser application to store a small amount of data, known as a “cookie” on the user's machine. This data persists on the user's machine (unless the user intentionally deletes it) and is available to the Web server whenever the user retrieves documents from that server in the future. Web servers use cookies to identify users, for example to prevent them from having to repeatedly enter login credentials, and to “remember” other details of that user's past activity. The cookies for a given Web server are stored in the same place on the user's machine, and thus all browser instances (and tabs within a browser instance) will access the same cookies for any given site. This is beneficial to the user as, for example, if the user's logged in status is stored in a cookie, the user need not be forced to authenticate again if they open pages in new tabs or browser instances.
Other than in the limited cases described above, Web browsers (and tabs within a browser instance) operate in complete isolation, with the user operating on only one at any given time.
User actions carried out in one browser or tab have no effect on the operation of any other browser or tab.
For the purposes of this document, the screen area on which Web pages are displayed will be termed a “target”. Each Web browser instance will have at least one target, and may have many, each accessed through a different tab. As noted above, only one tab is usually visible at any given time.
In addition, it should be noted that Web pages have the ability to be split into one or more segments each known as a “frame”. Each frame can display a different hypertext document, and thus each can be considered a target.
Web browsers typically provide a methodology for their functionality to be extended by a “browser extension” (also known as a “plug-in”, “add-on” or “browser helper object”). Browser extensions can be developed by third parties and are frequently used to provide specialist toolbars, easy access to search engines, and other similar functions.
Historically, users typically had a single computer screen on which they operated at any given time, although there were notable exceptions, such as in financial dealing rooms where users often had multiple computers and screens each showing different information. More recently, having dual screens on a single computer has become commonplace, and with the advent of smartphones and tablet computers, users often have multiple devices, each with one or more Web browsers. All of these Web browsers operate in isolation.
The present invention provides a method and apparatus for targets, Web browser applications and displayed user generated pages, to inter-operate, either under the direction of the user, or as determined by a given Web site. A simple example would be clicking a hyperlink in one target (the “source target”) which causes the navigation to occur on an entirely different target (the “destination target”). The destination target could be within a frame, on another tab, in the same or another browser instance on the same computer or device, or on a different computer or device in the same, or an entirely different physical location.
A method according to the invention, relates to operating a plurality of web browser applications in communication with each other, each of the web browser applications displaying at least one computer generated target web page. The method features communicating, between a communication source which can include either or both of a first target web page and its first web browser application, to one or more other of said target web pages, and causing an action on the first target web page to affect the occurrence of web page navigation at at least one of the other target web pages.
The method can further feature communicating directly or indirectly between one of the other target web pages and the browser application hosting the first target web page. The method further can communicate directly or indirectly between ones of the target web pages.
In one exemplary embodiment, the user defines a “target set” identifying the available destination targets on which navigation can occur. In this embodiment, the target set is managed centrally, such that each Web target (or the Web browser hosting it) can be aware of the existence of other targets in the target set, and their availability.
When navigation on another target is to occur, the source target (or the Web browser hosting it) sends a navigation request to the destination target (or the Web browser hosting it) using one of a number of possible methods. The destination target (or Web browser) then carries out the navigation request.
The destination target can be determined manually by the user of the source target, or programmatically at the Web server which generates the hypertext document (Web page) displayed on the source target, by code embedded into the hypertext document (Web page) displayed on the source target, by browser extension code on the Web browser hosting the source target, or by any combination of these.
Optionally, the user can elect to create a new destination target, either as a tab in an existing Web browser instance, or by launching a new Web browser instance on a given device.
The invention need not be limited to causing navigation to occur on a single destination target; it could occur on any selection of targets in the set, including the source target.
In addition, the invention can be used to repeat the last navigation to occur on the source target, such that the currently displayed hypertext document (Web page) on the source target is navigated to and displayed on the destination target(s).
Optionally, the above techniques can be combined, for example to create a new set of tabs as destination targets, each of which repeats the last navigation to occur on a corresponding set of source tabs.
Optionally, also, a user, and targets on his/her devices, can be members of more than one target set. An apparatus and method are provided for the user to select which target set, and hence which destination targets, is operational at any given time. Where multiple users “share” a target set, any user is allowed to determine when they wish to be open to accepting navigation requests from another user's device.
The invention has a broad variety of use cases, examples of which will be given hereinafter, but it will be appreciated that there are many more such cases which can be created.
Consider a user working on his or her office PC, researching information on the Web. The user wants to continue the research on their home PC, or while travelling using their laptop, smartphone or tablet. Without the invention, the user has to re-type the URL of each tab on their Web browser(s) into corresponding tabs on the new device, or perform a cumbersome “cut and paste” sequence via email or instant messaging. Both methods are time consuming and error prone. In accordance with an exemplary embodiment of the invention, the user can issue a simple “one-click” command which replicates all the currently displayed Web pages on one device to another device of their choice.
A similar situation frequently occurs when two users are engaged in live communication, such as a telephone call. User A has browsed to a given Web page on their device, and wants User B to view the same page on his/her device. Without the invention, user A has to read the URL to user B, or “cut and paste” it into an email or chat session, which user B then retrieves to “cut and paste” into their own application. With the invention the two users can be members of the same target set, and replicate pages on each other's devices with a “oneclick” command. The users can set up a target set for communication between them, and only allow the set to be “active” when they are in live communication with one another.
Consider a classroom environment (physical or virtual) in which students each have their own device. The invention allows the teacher to immediately guide students to any given Web page (or set of pages) either for information, or to define a starting point from which the students then navigate. Without the invention, the teacher is limited to solutions which mimic the teacher's screen display on the student's machine, and which do not allow students to continue navigation themselves.
Consider a monitoring situation, such as a network operations center, where multiple secondary displays (typically attached to different computers) are located adjacent to one or more primary displays. Operators typically view alerts on a central (primary) display, and use secondary displays, or completely separate computers, to investigate them, thereby leaving the central (primary) display(s) to show further alerts. Without the invention, precious time is lost, and potential errors made while the investigating user locates the source of the alert. With the invention, a user can simply click a hyperlink on the central (primary) display which immediately navigates to the source of the alert on the required secondary, or separate computer.
Consider an application that needs to present a large amount of information simultaneously to one or more users. Current high definition screen display resolution is typically 1920 by 1080 pixels, and while higher resolution display screens exist, they require more advanced graphics cards to drive them, and are considerably more expensive. Using the invention, applications can seamlessly operate across multiple screen displays inexpensively and with ease.
Other objects and features of the invention will be apparent from the drawings in which:
Referring to
The user has defined a centrally managed target set, preferably by creating a user account on a Web server intended for the purpose (the “target set server”). The user logs-in to the target set server account from each device he or she wishes to have targets in the target set, and creates an entry for each target.
Referring to
The target set server creates a unique identifier for each target, which the Web browser stores on the local device, preferably in the form of a cookie. Where there is more than one target on a given device, a separate cookie is stored for each, in such a way that each target is uniquely identifiable.
The target set server also maintains connection information for each connected target, such that it can communicate with that target. Each entry in table 1B provides a connection ID identifying the communication channel established between the target set server and the Web browser instance on which the target is running.
A given Web browser or target can now communicate, or otherwise interrogate, the target set server to establish the names and identities of other targets in the set. It simply passes its unique identifier to the target set server, which uses the unique identifier to establish which set the target is a member of, and returns a list of names and identifiers for other targets in the set. If unique identifiers are allocated randomly by the target set server, and are of sufficient length, it will be unfeasible for any unauthorized third party to guess them. It will be appreciated that additional security procedures and mechanisms could be provided, but they will not be discussed further here.
With knowledge of the full target set, each target can now present options to the user, or programmatically determine which target should be used for each navigation request.
Referring to
Referring to
If the user elects to open the hyperlink on one of the listed targets, then a message is sent, directly or indirectly, to the target (or the Web browser hosting the target) to cause the navigation to occur.
There are a wide variety of methods of sending, receiving and acting upon the message, several of which will now be discussed.
If the Web browsers are directly connected, for example on the same local area network (LAN), then they may communicate directly using a variety of standard network protocols. In such cases, the connection ID in table 1B could be replaced by the address of the device running the relevant Web browser.
Preferably, the devices will be connected through a wide area network, such as the Internet. However, in the majority of cases, client devices will be behind a firewall employing network address translation (NAT) for security purposes, and thereby preventing direct communication between client devices.
In one variant of the invention, the target set server is used to facilitate such communication since it has connections established with each target device and can thus enable in direct communications between the web browsers.
The message is received by the Web browser hosting the intended target (either by a browser extension, or by adding the functionality to the browser itself), or by program code in the hypertext document (Web page) currently displayed in the target on device 2F. In either case, the receiving program code then causes the target to navigate to the requested URL with a normal request to the standard Web server 4F, which replies with the requested hypertext document 9F. Optionally, the target set server 3F can acknowledge that the request 7F was successfully sent by sending an acknowledgment message 10F back to the source target 1F.
Optionally, messages 6F and 7F could include flags to indicate if navigation should occur in the current target, or in a new target, either as a new tab or in a new Browser instance. If so, options could also be provided to automatically add the new target to the target set. When the user first adds a target to the target set, they could also be provided with an option to force navigation requests from another target to always occur in a new target, ensuring no current hypertext document (Web page) is overwritten.
Referring to
Note that with the toolbar, the usual context menu options “Open”, “Open in a new tab” and “Open in a new window” can be applied to the selected destination target by including an appropriate flag in the message sent to destination target.
A variety of additional functions can be provided to the user in a toolbar or elsewhere, for example a single “Copy All” button could cause the Web page displayed on each tab of the current Web browser to be navigated to on a set of new tabs on the destination's Web browser. When the button is clicked, the Web browser cycles through each current tab, sending a navigation request for each to the currently selected target. In each case, the requested URL will be the current address of the displayed page, rather than a hyperlink contained within it.
In an alternate variant of the invention, the destination target can be determined without requiring any modification or extension of the source Web browser. This is possible where a Web based application wants to provide the capabilities of the invention, by including program code in one or more of the hypertext documents (Web pages) generated by that application. For example, in
In a further variant of the invention, the destination target is determined by the URLs associated with each hyperlink in the hypertext document (Web page), without requiring any modification or extension of the source Web browser, or any program code in the hypertext document. In
Referring now to the illustrative operational flow diagrams of
A selected button or drop-down request is tested at 10 to determine if either has been selected to request opening in a different target. If it has not been requested, the process continues normally at 12. Otherwise, it continues to “A” in
Referring to
If, on the other hand, the message is from a clicked hyperlink, the target parameters are stripped, at 26, from the specified URL and the source and destination members are checked, at 28, to see if they are from the same target set. If they are not, the system passes to element 30 where an appropriate message is sent indicating that the requested activity is forbidden. On the other hand, if the source and destination members are in the same target set, then a navigation request is sent at 32 and, optionally, the system can wait for a response at 34. In parallel with this activity, the system also begins a thread wherein the navigation request from 32 is received at 38 of the destination target process, and a response is optionally sent back to the target set server at 40. Once received at the target set server 34, the appropriate response is sent at 30 to the source target process 27. Thereafter, the destination target process navigates, at 42, to the requested page.
Other embodiments of the invention will be apparent to one of skill in the field and are within the scope of the following claims.
This application claims priority from U.S. provisional application Ser. No. 61/863,333, filed on Aug. 7, 2013, which is incorporated herein, in its entirety, by reference
Number | Date | Country | |
---|---|---|---|
61863333 | Aug 2013 | US |