1. Field of the Invention
In general, the present invention provides a method, system and program product for identifying web page dependencies. Specifically, the present invention identifies web page dependencies, determines whether a client requesting a web page has the necessary dependencies, and provides a way to obtain any dependencies that are lacking.
2. Related Art
Over the years, the Internet has become an everyday part of our lives. Today many people use the Internet to perform both work-related and personal tasks. For example, not only can an individual use the Internet to communicate and collaborate with other workers, but the individual can also use the Internet to perform personal tasks such as shopping, bill paying, etc. Currently, users visit web pages via a hyperlink in a search engine result set, by directly typing a Uniform Resource Locator (URL) into a browser, selecting a bookmark or other hyperlink, etc. As the requested web page loads, dependencies are discovered. For example, the web page may embed a Macromedia Flash object or Java Applet within the page. As a result, third-party plugins are required to properly view this web page. In other words a dependency is formed. Examples of such dependencies include: (1) plugin software or ActiveX controls; (2) Operating System vendor and version; (3) Internet Browser vendor and version; (4) Internet Browser settings (e.g. JavaScript enabled, plugins enabled); etc.
The correct dependencies may exist on the requesting client, and the page may load seamlessly. However, the necessary dependencies may not be installed on the client computer or the correct version may not be installed. The result is an incomplete web page that often, but not always, notifies the user that the client lacks a dependent piece of software or setting. It is then up to the user to follow the suggested mechanism for retrieving the necessary component.
Unfortunately, existing retrieval mechanisms typically vary per vendor. Moreover, the presence of plugins and the like from multiple vendors may cause other problems. For example, a web page may include a Macromedia Flash object and a QuickTime streaming video clip. Thus, in order to properly view the page, the user must potentially visit two websites and perform two plugin installations or upgrades. Still yet, some plugins require that the computer or browser be restarted before they become available. Thus, if plugins are installed separately, the computer or browser may need to be restarted multiple times. Such problems can occur for any type of dependency.
In view of the foregoing, there exists a need for a method, system and program product for identifying web page dependencies. Specifically, a need exists for a system that can identify web page dependencies and determine whether a client has the needed dependencies. A further need exists for a system that graphically indicates dependencies for a requested web page, and whether the client has the dependencies.
In general, the present invention provides a method, system and program product for identifying web page dependencies. Specifically, under the present invention, any dependencies needed to properly view a web page are identified prior to rendering the web page on the client. Once any dependencies are identified, the client from which the web page was requested is analyzed to determine whether it has the needed dependencies. Thereafter, graphical dependency indicators that indicate the dependencies and whether they exist on the client can be displayed.
A first aspect of the present invention provides a method for identifying web page dependencies, comprising: identifying a set of dependencies corresponding to a web page prior to rendering the web page; determining whether a client from which the web page was requested has the set of dependencies; and graphically indicating the set of dependencies on the client and whether the client has the set of dependencies.
A second aspect of the present invention provides a system for identifying web page dependencies, comprising: a system for identifying a set of dependencies corresponding to a web page prior to rendering the web page; a system for determining whether a client from which the web page was requested has the set of dependencies; and a system for graphically indicating the set of dependencies on the client, and whether the client has the set of dependencies.
A third aspect of the present invention provides a program product stored on a recordable medium for identifying web page dependencies, which when executed, comprises: program code for identifying a set of dependencies corresponding to a web page prior to rendering the web page; program code for determining whether a client from which the web page was requested has the set of dependencies; and program code for graphically indicating the set of dependencies on the client, and whether the client has the set of dependencies.
A fourth aspect of the present invention provides a method for deploying an application for identifying web page dependencies, comprising: providing a computer infrastructure being operable to: identify a set of dependencies corresponding to a web page prior to rendering the web page; determine whether a client from which the web page was requested has the set of dependencies; and graphically indicate the set of dependencies on the client, and whether the client has the set of dependencies.
A fifth aspect of the present invention provides computer software embodied in a propagated signal for identifying web page dependencies, the computer software comprising instructions to cause a computer system to perform the following functions: identify a set of dependencies corresponding to a web page prior to rendering the web page; determine whether a client from which the web page was requested has the set of dependencies; and graphically indicate the set of dependencies on the client, and whether the client has the set of dependencies.
Therefore, the present invention provides a method, system and program product for identifying web page dependencies.
These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which:
The drawings are not necessarily to scale. The drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements.
As indicated above, the present invention provides a method, system and program product for identifying web page dependencies. Specifically, under the present invention, any dependencies needed to properly view a web page are identified prior to rendering the web page on the client. Once any dependencies are identified, the client from which the web page was requested is analyzed to determine whether it has the needed dependencies. Thereafter, graphical dependency indicators that indicate the dependencies and whether they exist on the client can be displayed. As used herein, the term “dependency” is intended to mean any type of hardware or software component that is needed in order for a web page to properly load, execute and/or be viewed. Examples include plugin software or ActiveX controls, Operating System vendor and/or version, Internet Browser vendor and/or version, Internet Browser settings (e.g. JavaScript enabled, plugins enabled) etc. In addition, the term “set” is intended to mean one or more.
Referring now to
In any event, server 12 and client 14 are intended to represent any type of computerized devices capable of carrying out the teachings of the present invention. For example, client 14 could be a desktop computer, a laptop computer, a workstation, a handheld device, etc. Moreover, as shown, server 12 and client 14 communicate over a network 18, which is intended to represent any type of network such as the Internet, a local area network (LAN), a wide area network (WAN), a virtual private network (VPN), etc. Regardless, communication between server 12 and client 14 could occur via a direct hardwired connection (e.g., serial port), or via an addressable connection that may utilize any combination of wireline and/or wireless transmission methods. Conventional network connectivity, such as Token Ring, Ethernet, WiFi or other conventional communications standards could be used. Still yet, connectivity could be provided by conventional IP-based protocol. In this instance, an Internet service provider could be used to establish interconnectivity.
As further shown, server 12 generally includes processing unit 20, memory 22, bus 24, input/output (I/O) interfaces 26, external devices/resources 28 and storage unit 30. Processing unit 20 may comprise a single processing unit, or be distributed across one or more processing units in one or more locations, e.g., on a client and server. Memory 22 may comprise any known type of data storage and/or transmission media, including magnetic media, optical media, random access memory (RAM), read-only memory (ROM), a data cache, a data object, etc. Moreover, similar to CPU 20, memory 22 may reside at a single physical location, comprising one or more types of data storage, or be distributed across a plurality of physical systems in various forms.
I/O interfaces 26 may comprise any system for exchanging information to/from an external source. External devices/resources 28 may comprise any known type of external device, including speakers, a CRT, LED screen, hand-held device, keyboard, mouse, voice recognition system, speech output system, printer, monitor/display, facsimile, pager, etc. Bus 24 provides a communication link between each of the components in server 12 and likewise may comprise any known type of transmission link, including electrical, optical, wireless, etc.
Storage unit 30 can be any system (e.g., a database, etc.) capable of providing storage for information under the present invention. Such information could include, among other things, an index of web page dependencies. As such, storage unit 30 could include one or more storage devices, such as a magnetic disk drive or an optical disk drive. In another embodiment, storage unit 30 includes data distributed across, for example, a local area network (LAN), wide area network (WAN) or a storage area network (SAN) (not shown). Although not shown, additional components, such as cache memory, communication systems, system software, etc., may be incorporated into server 12. Moreover, it should be clearly understood that client 14 will typically include computerized components similar to server 12. Such components have not been shown in
As indicated above, the functionality provided by the present invention can be provided in multiple ways. Specifically, the teachings of the present invention can be implemented via server side technology, client side technology, or by a combination thereof. For illustrative purposes, a first embodiment of the present invention will be described in conjunction with server side technology.
To this extent, as shown, memory 22 of server 12 includes search engine 31 and server dependency system 32, which itself includes indexing system 34, client analysis system 36 and graphics attachment system 38. Although shown as separate systems, search engine 31 and server dependency system 32 could be incorporated as a single system. For example, an existing search engine could incorporate server dependency system 32 to provide the functionality of the present invention. Regardless, indexing system 34 analyzes the web pages available through search engine 31 and indexes any dependencies thereof. Specifically, by using an indexing system similar to that used by web crawlers (e.g., Google) to index and surface available web pages, the web pages and their respective dependencies could be discovered. In a typical embodiment, indexing system 34 would crawl through the web, parse web pages and analyze the following:
(a) META tags—dependencies exposed by content provider. Specifically, content providers may include META tags within indexable web page markup that exposes dependencies. As known, META tags are informational tags inserted into the head portion of an HTML document. The information stored here is not seen by users visiting the particular web site. One of the main reasons that web page designers use META tags is to perhaps have better control over how their web site is described and searched when shown in a search engine's result set. For example the below code segment shows META tags that define what description to show and what additional keywords to index in additional to the text contained in the body of the document.
(b) HTML content—inclusion of rich content on a web page. Specifically, indexing system 34 could also discover links to rich content in HTML tags such as <APPLET>, <SCRIPT> and <OBJECT>.
While indexing a website, indexing system 34 could parse the content of each web page and follow discovered links to establish page relationships. Currently, Google uses this data to rank pages so that the pages referenced/linked most by other pages are ranked highest. Under the present invention, as indexing system 34 evaluates hyperlinks on a page, it can also go a step further and follow the link to evaluate dependencies on the subsequent page. Indexing system 34 can then aggregate this information and surface intelligent conclusions. For example, the search engine results might indicate that while Macromedia Flash is not needed on the immediate page (first level), a number of subsequent pages (second-level) require the Macromedia plugin to display correctly. Thus, the page has a “Level 2” dependency on Flash. User 16, understanding this ranking/priority system, can then make a decision on whether or not to take the time to install the necessary software. It might be that user 16 only envisions visiting the front page, thus eliminating any dependency. This could continue up to N levels. If user 16 is likely to encounter a dependency on Flash within three clicks into the website, the search engine could indicate a “Level 3” dependency on Flash.
In any event, assume that indexing system 34 has indexed the dependencies for available web pages. Such an index can be maintained, for example, in storage unit 30. Further assume that some time later, user 16 utilizes a web browser 39 on client 14 to request a certain web page or submit a search query. As is well known, the request or query will be received on server 12 by search engine 31. Under the present invention, prior to providing the results to user 16, indexing system 34 will access the index in storage unit 30 and identify any dependencies. If a single web page was requested, the dependencies for the single web page will be identified. Alternatively, if a search query was submitted, the dependencies for each of the search results (web pages) produced by the search engine 31 will be identified. Should a set of dependencies exist, client analysis system 36 can query or analyze client 14 to determine whether it has the needed set of dependencies. If client 14 is merely queried, internal analysis system 44 can perform the actual analysis of client 14 to determine whether it has the set of dependencies. Conversely, with sufficient access and security, client analysis system 36 can perform the analysis from server 12.
Assume in this example that user 16 submitted a search query via browser 39 and that a set of dependencies exist for one or more of the results. Graphics attachment system 38 will graphically indicate the dependencies for the results for user 16. In graphically indicating the dependencies, graphics attachment system 38 can include icons, plain text or any other graphical dependency indicator that corresponds to the set of dependencies in the search results rendered in browser 39. Such indicators can be depicted in a certain manner based on whether client 14 has the particular dependencies. Moreover, as will be further described below, the graphical dependency indicators could be displayed automatically for user 16, or they cold be displayed upon manual prompting by user 16 (e.g., upon the selection of an icon in a toolbar of browser 39).
For example, referring now to
Regardless, the use of icons 52A-B and 54A-B is shown in greater detail in
As can be seen from search results 60 of
For the dependencies that client 14 lacks, the present invention can provide a mechanism for providing/obtaining the same. In one embodiment, the graphical dependency indicators displayed to user 16 could contain live hyperlinks (as shown for icons 52B and 54B) to one or more appropriate web pages/sites where any missing dependencies could be obtained. For example, upon selecting icon 54B in search results 60, user 16 could access a web page/site for a vendor of the missing software application. In another embodiment, the hyperlinks could be to a central web page/site where any type of dependency could be obtained. Moreover, it should be understood that as indicated above, the graphical dependency indicators displayed to user with a web page or search results could indicate a level in which the dependency would be required. For example, icons 52A-B and 54A-B could be displayed with a number or value that indicates a level of the corresponding website in which the dependency would be needed.
Referring back to
Referring now to
It should be understood that if user 16 had submitted a search query instead of requesting a particular web page, dependency analysis system 42 would analyze the search results and identify any dependencies therefore. This could involve individually analyzing each web page identified in the search results as described above when a single web page is requested. Regardless, the present invention will still function to identify dependencies, determine whether such dependencies exist on the client, and graphically indicate the same.
It should be understood that in addition to dependencies and their availability on client 14, other information could be displayed for user 16, such as that listed below.
(a) web page richness gauge for a search engine result set. Evaluate and visually indicate a web page or web site's level of richness, e.g., display aggregate score based on number and size of images and plugin-dependent elements are incorporated.
(b) browser level/vendor/setting dependencies. Evaluate and visually indicate whether the page markup utilizes features not implemented by the client's current browser version or vendor.
(c) operating system level/vendor/setting dependencies. Evaluate and visually indicate any operating system dependencies. Certain rich HTML features only work on Windows systems.
(d) accessibility indication. Evaluate and visually indicate level of accessibility. This might be very useful for filtering out non-accessible web site.
(e) sound requirements. Evaluate and visually indicate whether page makes use of sound files that would require certain hardware, namely a sound card and speakers.
(f) latency-to-view. Evaluate calculated approximate time needed to gather and install all necessary dependencies. User 16 might decide based on this value whether or not to choose another entry in a search result set. This allows user 16 to make a decision about which web site to actually visit, given the availability of multiple web sites meeting search criteria. For example if user 16 sees that he/she needs QuickTime and Adobe Acrobat to visit Site A, he/she may be more inclined to visit the text-only version of the Site A or even to visit another web site for which he/she already has all the necessary dependencies to view the page.
Referring back to
It should be appreciated that the present invention could be offered as a business method on a subscription or fee basis. For example, server 12 and/or client 14 of
It should also be understood that the present invention can be realized in hardware, software, a propagated signal, or any combination thereof. Any kind of computer/server system(s)—or other apparatus adapted for carrying out the methods described herein—is suited. A typical combination of hardware and software could be a general purpose computer system with a computer program that, when loaded and executed, carries out the respective methods described herein. Alternatively, a specific use computer, containing specialized hardware for carrying out one or more of the functional tasks of the invention, could be utilized. The present invention can also be embedded in a computer program product or a propagated signal, which comprises all the respective features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods. Computer program, propagated signal, software program, program, or software, in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form.
The foregoing description of the preferred embodiments of this invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of this invention as defined by the accompanying claims.