This invention relates to modifying process navigation. In particular, this invention pertains to simplifying the modification of a process flow implemented by computer software.
Web sites, which are a collection of web pages, have become a significant, if not vital, way for businesses to advertise and otherwise communicate and interact with the public. Because of their importance, businesses often invest enormous amounts of money in developing web sites with detailed and rich content. A user from the public often views such content by navigating through a sequence of web pages on the web site, typically by selecting a “link” on one web page that advances the user to another web page. On some web pages, the user may be automatically advanced to another web page, such as when one web page has been removed, and the user is forwarded to a new web page that has taken its place.
Conventionally, these “links,” automatic advancing, and other web site navigation techniques are “hard-coded” into the web pages that contain them. For example, a conventional link defined in HTML may appear as, “<LINK HREF=“nextpage.html”>”. In this example, if the link is selected, it will advance the user to the “nextpage.html” web page. If an administrator of the web site wants to change all links to “nextpage.html” to “differentpage.html”, then the administrator must manually change every web page in which such a link appears. The same manual editing is also required for the other conventional navigation techniques.
Because web sites often include hundreds, if not thousands of web pages, even changing a single web page in a sequence of web pages from, for example, “nextpage.html” to “differentpage.html”, can be an enormous undertaking that is time consuming, expensive, and error-prone. Further, because web sites are often continually updated with new information and new web pages, the burdensome task of manually correcting each web page to refer to the new information and/or web pages can become perpetual.
Accordingly, a need in the art exists for a simple and efficient way to modify a sequence of web pages in a web site.
These problems are addressed and a technical solution achieved in the art by a system and method for modifying process navigation. In one embodiment of the invention, the process is one or more sequences of web pages that may be displayed to a user of a web site. According to one aspect of the invention, an order of presentation of a set of data, which may be a web page, is defined in a repository so that any changes that need to be made to the order may be made in the one logical location, instead of having to make the change in multiple locations. The repository, therefore, acts as a navigation repository that stores, in one logical location, the navigation information needed to advance from one set of data to another. In contrast, the conventional techniques store such navigation information across all sets of data, or web pages, for example. Consequently, the complexity associated with changes to the order of presentation of the sets of data is greatly reduced. The order of presentation of the sets of data is referred to herein as the “navigation flow.”
According to one embodiment of the invention, the repository is one or more XML files that define and store the navigation flow. For each set of data, the XML file(s) specify which set of data precedes the current set of data in the navigation flow, which set of data follows the current set of data in the navigation flow, and whether the navigation flow should automatically advance to the next set of data.
According to one embodiment of the invention, employees of a company define the navigation flow, which may be converted into an activity diagram that is used to generate the navigation flow stored in the repository.
A more complete understanding of this invention may be obtained from a consideration of this specification taken in conjunction with the drawings, in which:
It is to be understood that these figures are for purposes of illustrating the concepts of the invention and are not to scale.
A flow chart illustrating a development cycle according to an embodiment of the invention will be described with reference to
Next at step 102, the requirements are documented as a process flow, which may be an activity diagram, known in the art. In other words, a process flow may be created that illustrates all possible sequences in which sets of data may be displayed, i.e., the navigation flow. Examples of sets of data include, but are not limited to, web pages, stand alone applications and Wizard based applications such as dialog boxes used when configuring an application such as Microsoft Outlook. At step 103, a navigation flow is generated automatically, manually, or a combination of both, from the process flow created at step 102 and is stored in a navigation repository. The navigation repository describes and stores the navigation flow, and may, for example, be one or more XML files. Although the navigation repository is described as an XML file in one embodiment of the invention, one skilled in the art will appreciate that any manner of storing and representing a process flow may be used.
The repository serves as a navigational intelligence tool for determining which set of data should be currently presented. In the case of a web site, as shown at step 204, the repository is accessed to determine which web page should be presented to a user based upon the user's current web page and the action the user has taken.
A computer system according to an exemplary embodiment of the present invention will now be described with reference to
Client computer 201 can be a desktop computer, or any other type of computer such as a laptop, hand-held device, or any device capable of processing data. In the exemplary embodiment, client computer 201 belongs to a user browsing through a company's website. Although shown separate from application server 205, one skilled in the art will appreciate that the XML configuration file 206 and the content database 207 may be located within application server 205 on a computer-readable memory, or within another computer communicatively connected to application server 205. In addition, one skilled in the art will appreciate that the XML configuration file 206 or the content database 207 may be implemented as a single database or a data storage system comprising multiple databases and/or data storage devices. Further, any method of communication known in the art between computers may be used between client computer 201, web server 203, application server 205, and any other computer containing XML configuration file 206 and content database 207. Communication links 202 and 204 need not be a hardwired network, and may be wireless, or a combination of both.
With reference to
The content and structure of the XML configuration file 206 according to an embodiment of the invention will now be described in detail with reference to
In
Turning now to
The combination of “forwardID” and “forwardSubID”, collectively, a “second information element,” identifies the next web page that should be displayed to the user. For example, if forwardID=1 and forwardSubID=0, the web page identified by stepID=1, subID=0 will be the next web page displayed to the user. “backID” and “backSubID”, collectively, a “third information element,” work similarly. If backID=0 and backSubID=0, then the web page identified by stepID=0, subID=0 will be displayed to the user if they backtrack in the navigation process. A forwardID of negative one is determined to mean that there is no next web page to display to the user. Similarly, a backID of negative one means that there is no web page to go back to, which is common if the user is at a “home page,” known in the art. If no forwardSubID or backSubID are specified, they are presumed to be equal to zero.
Additional identifiers are “linkID” and “linkSubID”, which automatically advance the user to the web page at stepID=linkID, stepSubID=linkSubID. For instance, if the XML file 206 specifies LinkID=1, linkSubID=0, the user is automatically advanced to the web page at stepID=1, stepSubID=0 If no linkSubID is specified, it is presumed to be equal to zero.
An additional identifier is “display ID” which shows any information for a particular step at any screen. Thus, the same screen at different step levels can have different information displayed on it. The display ID allows the ability to debug when using identical or similar sets of data by indicating where in the navigation flow the user is. Because the display ID is used to identify the same or similar sets of data being presented at different times, it may also be used to customize messages or indicators depending on when the set of data is used.
Yet another identifier is “returnBack” which may have a value of true or false. This identifier may be used to override the “forwardID” of a set of data in order to direct the user back to a previous set of data. For example, if a user is viewing a first web page and selects a “Next” button on the web page, the “forwardID” may direct the user to a second web page. While on the second web page, the user may again select a “Next” button, where the “forward ID” of the second web page may direct the user to a third web page. Now, if the third web page has a “linkID” that directs the user back to the first web page, and a “returnBack” of True, the user may be automatically transferred to the first page. If the user now selects the “next” button on the first page, the user will be sent back to the third web page instead of going to the second web page as the “forwardID” instructs.
The example XML configuration file in
The content displayed to the user at the web page described at line 409, is “ContactSearchResults.jsp” 412. ForwardID=2 410 and ForwardsubID=0 411 indicates that when the user attempts to advance to the next web page, the user will be advanced to the web page identified by stepID=2, subID=0, as shown at 413. BackId=0 indicates that the user can go backwards on the web page identified by stepID=0, subID=0, which is the initial page described at 402.
The remaining web pages described in
Although the example set forth in
Additionally, if a change to the navigation flow described in the XML file 206 is needed, all that need be changed is the appropriate “forwardID”, “forwardSubID”, “backID”, “backSubID”, “linkID”, and “linkSubID” identifiers in the XML file 206. For example if, in the example of
When a user is on a first web page and selects a ‘submit’ button or some other object to advance to a next web page, it is first determined at step 501 what web page the user is currently at and what the next page for the user should be. The system accesses a “DefaultHelperPathMediator” method at 502 which then passes the request to a Marker method 504 as seen by the request “getCurrentPosition( )” at step 503. Marker 504 returns a token 505 which tells the system what web page the user is currently on. At step 506, “validateAndDetermineToken”, the system confirms that the token 505 accurately describes the user's current web page. This step is important in ensuring that the user has not selected the “Back” button on their browser, thereby potentially misleading the marker method 504 as to what web page the user is currently viewing. At steps 507 through 511, based upon the current web page that the user is viewing, the HelperStep method 512 and HelperStepHolder method 513 respectively return to the DefaultHelperPathMediator method 502 the correct stepID and subID, respectively, of the next web page to be displayed to the user. The steps 507-511 utilize the “forwardID” and “forwardSubID” identifiers or the “backID” and “backSubID” identifiers in the XML file 206, to return such information. If no forwardID or forwardSubID identifiers are specified for the current web page, then the DefaultHelperPathMediator method 502 checks to see if the current web page is supposed to jump to another page at the “examineLinkingandReturn” step 514. The DefaultHelperPathMediator method 502 performs this task by checking for a linkID and/or linkSubID identifier in the XML file 206 for the current page. At step 515, the next page is compiled and returned to the web server 203.
After the process of
Marker 708 represents an exemplary class used to implement the Marker method 502. Finally, XmlReaderFactory 709 is an abstraction to allow the XML Reader to parse out the XML file at the start of the application. XmlReaderFactory 709 is used to read the XML configuration file 206 and then to create the various HelperStep and holder objects needed to navigate.
It is to be understood that the exemplary embodiments are merely illustrative of the present invention and that many variations of the above-described embodiments can be devised by one skilled in the art without departing from the scope of the invention. It is therefore intended that all such variations be included within the scope of the following claims and their equivalents.