Complex World Wide Web (“WWW” or “Web”) sites are often created with the assistance of a content management system (“CMS”). Through the use of a CMS, a content-rich Web site can be built, deployed and maintained. Additionally, some content management systems allow computer users to create and add content to a Web site without understanding the underlying technical details of the site. A content approval workflow can also be implemented by a CMS to ensure that content is approved by authorized individuals prior to being made publicly available on the Web site.
One shortcoming of current CMS systems involves their inability to schedule the availability of future versions of a Web page. In particular, it is often necessary to schedule Web pages to come online at some future time. For example, it may be desirable to schedule a Web page describing new products to come online on the precise date and at the precise time a product announcement is released. Moreover, it may be desirable to schedule any number of future versions of the same Web page to come online at arbitrary times in the future. This allows content creators to build future versions of a Web page well in advance of their deployment date.
Some current content management systems allow two versions of a Web page to exist, the current version of the page and a checkout-out version of the page for editing. When the checkout-out version of the Web page is checked into the CMS, the current version of the page will be replaced. However, the newly checked-in version of the Web page will not be available until its deployment date. This can cause requests for the page to go unfulfilled, leading to user confusion and potentially the loss of business.
It is with respect to these considerations and others that the various embodiments of the present invention have been made.
In accordance with the present invention, the above and other problems are solved by a method, computer-readable medium, and apparatus for scheduling the availability of different versions of a network resource, such as a Web page. Through the embodiments of the invention, a separate workflow may be created within a CMS for different versions of the same Web page. A schedule may also be created and utilized that allows any number of future versions of a Web page to be made available at any future time.
According to one aspect of the invention, a method is provided for allowing scheduled access to a network resource, such as a Web page. According to the method, a request is received for a network resource. In response to the request, a version of the network resource to return in response to the request is identified based upon a schedule. The identified version of the network resource is then returned in response to the request. According to other aspects of the invention, the network resource may be identified by a uniform resource locator (“URL”) and the request for the network resource may comprise a request received at the URL. Moreover, the schedule may be associated with the URL and may identify a date on which the various versions of the network resource should be made available.
According to other aspects of the invention, a computer-readable medium is provided that has computer-executable instructions stored thereon. When executed by a computer, the computer-executable instructions cause the computer to assign a URL to a scheduled URL object (“SUO”). When a request is received at the URL assigned to the SUO, a schedule associated with the SUO is identified. Based on the schedule, a version of the network resource to be provided in response to a request to access the URL may be identified. The version of the network resource to be provided may then be returned in response to the request received at the URL.
According to other aspects of the invention, a server-side redirect to the location of the identified version of the network resource may be performed. This allows the version of the network resource to be returned without affecting the URL seen by the user requesting the network resource. Once the redirect has been performed, the network resource may be rendered and returned to the user in response to the request to access the URL.
The invention may be implemented as a computer process, a computing apparatus, or as an article of manufacture such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
These and various other features, as well as advantages, which characterize the present invention, will be apparent from a reading of the following detailed description and a review of the associated drawings.
Referring now to the drawings, in which like numerals represent like elements, various aspects of the present invention will be described. In particular,
Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Referring now to
The client computer 2 comprises a general purpose desktop or laptop computer capable of executing one or more application programs. In particular, according to the various embodiments of the invention, the computer 2 is operative to execute an operating system 4, a Web browser application program 6, and other application programs 8. As known to those skilled in the art, the Web browser application program 6 allows a user of the client computer 2 to request, view, and interact with network resources available through the network 10. In particular, a user of the client computer 2 may utilize the Web browser 6 to request content 18 from the Web server computer 12. The content 18 may comprise any type of network resource available via the network 10, such as a Web page, text page, image, executable program, or any other type of data file.
When a request for content 18 is received at the Web server computer 12 it is processed by the Web server application program 14. As known to those skilled in the art, a Web server application program is operative to receive and respond to requests for data accessible to the Web server computer 14. As shown in
As shown in
As will be described in greater detail below, the CMS 22 supports independent workflows for any number of versions of the content 18. For instance, different versions of the content 18 may be created that exist simultaneously. Each of the different versions of the content 18 may utilize a different approval workflow within the CMS 22. Moreover, a deployment schedule may be specified for each of the versions that specifies the date and time at which the version should be made available by the Web server computer 12. As will be described in greater detail below, the schedule is utilized by the Web server computer 12 to determine which version of the content 18 to utilize when responding to a request for the content. Additional details regarding the configuration and operation of the computers 2, 12, and 20 will be provided below with respect to
Referring now to
The mass storage device 38 is connected to the CPU 24 through a mass storage controller (not shown) connected to the bus 26. The mass storage device 38 and its associated computer-readable media provide non-volatile storage for the computer 2. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the computer 2.
By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 2.
According to various embodiments of the invention, the computer 2 may operate in a networked environment using logical connections to remote computers through a network 10, such as the Internet. The computer 2 may connect to the network 10 through a network interface unit 28 connected to the bus 26. It should be appreciated that the network interface unit 28 may also be utilized to connect to other types of networks and remote computer systems. The computer 2 may also include an input/output controller 30 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown in
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 38 and RAM 34 of the computer 2, including an operating system 4 suitable for controlling the operation of a networked computer, such as the WINDOWS XP operating system from MICROSOFT CORPORATION of Redmond, Wash. The mass storage device 38 and RAM 34 may also store one or more program modules. In particular, the mass storage device 38 and the RAM 36 may store a Web browser application program, such as the INTERNET EXPLORER Web browser application program from MICROSOFT CORPORATION. The mass storage device 28 and RAM 34 may also store one or more other application programs 8, such as the MICROSOFT OFFICE productivity suite from MICROSOFT CORPORATION. The Web browser 6 and application programs 8 may be utilized to create, deploy, and maintain a Web site through the CMS program 22. The Web browser 6 may also be utilized to view and interact with the contents of a Web site.
It should be appreciated that the server computers 12 and 20 may include many of the conventional computing components illustrated in
Referring now to
As shown in
Turning now to
The HTTP handler 50 determines if the URL is associated with a SUO. If the URL is associated with a SUO, the HTTP handler 50 routes the URL request to a schedule resolver 48. The schedule resolver 48 locates the schedules 46A-46N for deployment of the versions 44A-44N of the network resource associated with the requested URL. Based on the dates and times contained within the schedules 46A-46N and the current date and time, the schedule resolver 48 determines the proper version 44A-44N of the network resource to be returned. It should be appreciated that although the schedules 46A-46N are illustrated in
Once the proper version of the network resource to be returned has been identified, the schedule resolver 48 performs a client-side redirect to the appropriate version of the network resource. Alternatively, the URL may be rewritten to point to the location of the version of the network resource to be returned. The redirected or rewritten URL is then returned to the Web server application program 14. The Web server application program 14 then retrieves the proper version of the network resource, renders the resource, and returns the results to the Web browser application program 6 in the form of a reply to the original URL request. It should be appreciated that by performing a server-side redirect or rewriting the URL, the user of the client computer 2 only sees the original URL they provided. They do not see the URL of the actual version of the network resource that is returned.
Referring now to
The routine 500 begins at operation 502, where a user defines the scheduled URL objects for a URL. The definition includes associating a URL with a particular SUO. The routine 500 then continues to operation 502, where a schedule is defined for each version of a network resource associated with a SUO. For instance, when a user is creating a new version of a network resource using the CMS 22, the user may specify a date and time for deployment of the new version. When the version is checked in, the date and time information and a pointer to the new version are added to the SUO.
From operation 504, the routine 500 continues to operation 506, where a URL request is received by the Web server application program 14. At operation 508, a determination is made as to whether the requested URL is associated with an SUO. A list of URLs and their associated SUOs may be maintained by the Web server application program 14 and the HTTP handler 50 to assist in making this determination. If the requested URL is not associated with an SUO, the routine 500 branches to operation 510, where the request is processed and responded to in a normal fashion. The routine 500 then returns from operation 510 to operation 506, where additional requests are processed in a similar fashion.
If, at operation 508, it is determined that the requested URL is associated with an SUO, the routine 500 continues to operation 512. At operation 512, the schedule resolver 48 is called with the requested URL to determine the proper version of the network resource that should be returned in response to the URL request. Additional details regarding the operation of the schedule resolver 48 in this regard are provided below with respect to
From operation 512, the routine 500 continues to operation 514, where the URL of the version to be returned in response to the URL request is received from the schedule resolver 48. The Web server application program 14 then retrieves and renders the version of the network resource located at the URL returned by the schedule resolver at operation 516. At operation 518, the Web server application program 14 returns the rendered page to the requestor at operation 518. The routine 500 then returns from operation 518 to operation 506, where additional requests are processed in a similar fashion.
Turning now to
From operation 606, the routine 600 continues to operation 608, where the URL is rewritten to correspond to the version of the network resource to be returned. Alternatively, a server-side redirect may be performed to the version of the network resource to be returned. This operation is performed so that the URL visible in the Web browser application program 6 is not modified. From operation 608, the routine 600 continues to operation 610 where the rewritten or redirected URL is returned to the Web server application program 14. The routine 600 then continues to operation 612, where it returns to operation 514, described above with respect to
Based on the foregoing, it should be appreciated that the various embodiments of the invention include a method, system, apparatus, and computer-readable medium for scheduling the availability of different versions of a network resource. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.