The present invention relates to computer managed communication networks, such as the World Wide Web (Web), and particularly to updating of Web pages at client requesting Web Stations after the Web pages have been received at the client station.
The Web or Internet (used interchangeably herein) is the network of virtually all electronic communication for trade, financial, governmental and educational transactions, as well all personal electronic discourse.
The Internet or Web is a global network of a heterogeneous mix of computer technologies and operating systems. Objects are linked to other objects in the hierarchy through a variety of network server computers. These network servers are the key to network distribution, such as the distribution of Web pages and related documentation. In this connection, the term “documents” is used to describe data transmitted over the Web or other networks and is intended to include Web pages with displayable text, graphics and other images.
Web documents, i.e. pages, are conventionally implemented in HTML (XML) language, which is described in detail in the text entitled: Just Java, Peter van der Linden, published by Prentice Hall, particularly at Chapter 7, pp. 249-268, dealing with the handling of Web pages; and also in the text Mastering the Internet, G. H. Cady et al., published by Sybex Inc., Alameda, Calif., 1996, particularly at pp. 637-642, on HTML in the formation of Web pages.
In addition, aspects of this invention will involve Web browsers. A general and comprehensive description of browsers may be found in the above-mentioned Mastering the Internet text at pp. 291-313. More detailed browser descriptions may be found in the text: Internet: The Complete Reference, Millennium Edition, Margaret Levine Young, published Osborne/McGraw-Hill; 2nd edition (Jun. 6, 2002), Chapter 20, pp. 455-494, on the Microsoft Internet Explorer.
Web browsers generally use the common language, JavaScript for computer applications involving Web pages transmitted from their sources and received at the client side computer controlled display stations wherein users interface with the Web pages. Web browser programs involved in the present invention are responsive to the JavaScript code instructions embedded in the HTML forming the received Web pages. JavaScript is a conventional simple interpreted scripting language that enables Web page developers to embed simple Java-like programming instructions within the HTML text of Web pages. For further information with respect to the use of JavaScript within HTML text in Web pages, reference is made to the description in the text: Dynamic HTML in Action, Michele Petrovsky, published by Osborne/McGraw-Hill, Berkeley, Calif., 1998, particularly at pages 150-158 and 184-185. It is understood that many functions may be added to HTML coding supporting Web pages.
Developers of JavaScript for Web pages transmitted from Web page sources on the Web must continually upgrade most Web pages in order to make changes in what is offered to the users of the various Web pages. Such changes made in the JavaScript defining the Web page at the Web server side of the Web, i.e. the server supporting the Web source site from which Web pages are generated and transmitted. The present invention recognizes that it would be very advantageous to provide developers of Web pages who are making changes in a Web page to have changes in the code, e.g. to the JavaScript loaded into the browser supporting a previously transmitted Web page at a receiving display station without completely refreshing the Web page and, thus, losing the current status of the Web page.
The present invention enables the updating of Web pages already received at the Web client station with only the change data without the need to completely refresh the received Web page. The invention provides a method that comprises transmitting a Web page from a Web page source site to a requesting receiving display station, and then monitoring, at said Web page source site, whether the source Web page of transmitted Web page has been modified. Changes in the Web pages are recorded at the page source site. Polling is done at selected intervals, at said receiving display stations, to determine whether said source site monitoring indicates that, i.e. the Web page has been modified, subsequent to the transmitting. In response to a determination that the source Web page has been modified, the recorded data representing the modification is requested by said receiving station from said source site. This change data is used to modify the transmitted Web page at said receiving display station without completely refreshing or renewing, i.e. transmitting a new Web page. Preferably, a Web browser at the receiving Web station conducts the polling, the requesting of data representative of the modification and, as described above, the changing of the Web page to include the modification are carried out in a Web browser at the receiving station.
The monitoring to determine whether transmitted Web pages have been changed is carried out in a Web page source site server, and a pollable record of modified Web pages transmitted from the source site is maintained at the Web page source site where this record may be polled by the browsers of Web stations that received the Web pages being modified.
The present invention will be better understood and its numerous objects and advantages will become more apparent to those skilled in the art by reference to the following drawings, in conjunction with the accompanying specification, in which:
Referring to
The polling process 52 installed at station 57 under control of browser 51 is preferably deployed from server 58 in the same container as the earlier initial Web page and loaded at station 52 when this initial Web page was installed. The polling process polls the polling service 59 in server 58 to monitor when the Web page has been changed at its source 55. When the polling process 52 accesses the polling service 58, the current status of the monitored page file will be returned to browser 51 and the state of the page file will be updated.
For example code: JSON object
when queried by the poll process 52 will return this JSON object to receiving station browser 51. After returning this data to browser 51, the state of monitored files will be set to false.
The polling process deployed to the browser 51 from server 58 should also include a configuration file that sets the polling interval for the client receiving station 57 and specifies which JavaScript files should be monitored. The following is a configuration file written in JSON code:
With respect to
A central processing unit (CPU) 30, such as one of the microprocessors, e.g. from System p series available from International Business Machines Corporation (IBM), is provided and interconnected to various other components by system bus 12. An operating system 41 runs on CPU 30, provides control and is used to coordinate the function of the various components of
There is provided an implementation for the generation of Web pages at Web page source sites that have JavaScript code embedded in the HTML (XML) code describing the Web page, and for transmitting such pages via the Web to receiving requesting Web stations, step 61. Provision is made for monitoring, at a Web source site server, whether a Web page has been modified after transmission of the Web page to a requesting Web station, step 62. Provision is made, step 63, for enabling the browser at the receiving Web station to poll the monitoring implementation at the source to determine whether an already received Web page has been modified after its receipt at the Web station. As described hereinabove, this polling process may conveniently be deployed from the Web page source server in the same container as the received initial Web page and loaded in the browser at the station when this initial Web page was installed.
In response to a determination in step 63 that the already received Web page has been modified, provision is made for requesting, by the polling browser from the Web page source, the data representative of the modification, step 64. At this point, provision is made for changing the Web page at the receiving station to update the JavaScript defining the Web page with the modification without reloading the whole modified Web page, step 65.
The running of the process set up in
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, including firmware, resident software, micro-code, etc.; or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit”, “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable mediums having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (“RAM”), a Read Only Memory (“ROM”), an Erasable Programmable Read Only Memory (“EPROM” or Flash memory), an optical fiber, a portable compact disc read only memory (“CD-ROM”), an optical storage device, a magnetic storage device or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus or device.
A computer readable medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electromagnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate or transport a program for use by or in connection with an instruction execution system, apparatus or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including, but not limited to, wireless, wire line, optical fiber cable, RF, etc., or any suitable combination the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language, such as Java, Smalltalk, C++ and the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the later scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (“LAN”) or a wide area network (“WAN”), or the connection may be made to an external computer (for example, through the Internet, using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer or other programmable data processing apparatus to produce a machine, such that instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagram in the Figures illustrate the architecture, functionality and operations of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Although certain preferred embodiments have been shown and described, it will be understood that many changes and modifications may be made therein without departing from the scope and intent of the appended claims.