Abstract: Systems and methods of the present disclosure facilitate dynamic breadcrumb navigation to help a user revisit webpages efficiently. Conventional methods of hard coding breadcrumb information may not address dynamics involved during navigation in a large web application. Also client side breadcrumb methods pose security threats. In the present disclosure, breadcrumbs are implemented at the server end. An optimal configuration file is generated at the server end that facilitates efficient navigation. An on-click event may along with loading of the requested webpage perform one or more actions prior to or post handling of server calls. Cyclic navigation is eliminated. Each session of a user may have breadcrumbs stored independently. Breadcrumbs at the same level may be replaced. Breadcrumb trails may have multiple entry points.
Claims:1. A dynamic server-end processor implemented method, the method comprising:
(a) receiving a user action to navigate to at least one Uniform Resource Locator (URL) associated with a webpage;
(b) in response to information in a pre-defined configuration file, dynamically generating a breadcrumb trail including navigation information in hierarchical order of navigation to the at least one URL, when displaying the webpage associated thereof at a client end;
(c) storing breadcrumbs associated with the at least one URL for each session associated with the user;
(d) updating the breadcrumb trail based on the hierarchical order of navigation; and
(e) displaying the updated breadcrumb trail on the at least one URL.
2. The dynamic server-end processor implemented method of claim 1, wherein, the at least one URL is pre-identified in the pre-defined configuration file for inclusion in the breadcrumb trail.
3. The dynamic server-end processor implemented method of claim 1, wherein updating the breadcrumb trail comprises checking for cyclic navigation and eliminating duplicate breadcrumbs.
4. The dynamic server-end processor implemented method of claim 1, wherein the breadcrumb trail associated with the at least one URL includes multiple entry points.
5. The dynamic server-end processor implemented method of claim 1, wherein in step (b), displaying the webpage at a client end comprises receiving at the client end:
the at least one URL associated with the webpage to be displayed;
form data to be passed along with server calls for loading the webpage;
one or more functions configured to be executed prior to executing the server calls for loading the webpage, the one or more functions being part of code associated with the webpage to be displayed; and
the one or more functions configured to be executed post executing the server calls for loading the webpage,
for loading the webpage in response to an on-click event in the displayed breadcrumb trail.
6. The dynamic server-end processor implemented method of claim 1, wherein text pertaining to breadcrumbs and the associated URL and form data are stored as key-value pairs on the server.
7. A server system comprising:
one or more data storage devices (102) operatively coupled to one or more hardware processors (104) and configured to store instructions configured for execution by the one or more hardware processors to:
(a) receive a user action to navigate to at least one Uniform Resource Locator (URL) associated with a webpage;
(b) in response to information in a pre-defined configuration file, dynamically generate a breadcrumb trail including navigation information in hierarchical order of navigation to the at least one URL, when displaying the webpage associated thereof at a client end;
(c) store breadcrumbs associated with the at least one URL for each session associated with the user;
(d) update the breadcrumb trail based on the hierarchical order of navigation; and
(e) display the updated breadcrumb trail on the at least one URL.
8. The server system of claim 7, wherein the one more of the at least one URL are pre-identified in the pre-defined configuration file for inclusion in the breadcrumb trail.
9. The server system of claim 7, wherein the one or more hardware processors are further configured to update the breadcrumb trail by checking for cyclic navigation and eliminating duplicate breadcrumbs.
10. The server system of claim 7, wherein the breadcrumb trail associated with the at least one URL includes multiple entry points.
11. The server system of claim 7, wherein the one or more hardware processors are further configured to display the webpage at a client end by receiving at the client end:
the at least one URL associated with the webpage to be displayed;
form data to be passed along with server calls for loading the webpage;
one or more functions configured to be executed prior to executing the server calls for loading the webpage, the one or more functions being part of code associated with the webpage to be displayed; and
the one or more functions configured to be executed post executing the server calls for loading the webpage,
for loading the webpage in response to an on-click event in the displayed breadcrumb trail.
12. The server system of claim 7, wherein text pertaining to breadcrumbs and the associated URL and form data are stored as key-value pairs on the server.
, Description:FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENT RULES, 2003
COMPLETE SPECIFICATION
(See Section 10 and Rule 13)
Title of invention:
DYNAMIC BREADCRUMB NAVIGATION
Applicant:
Tata Consultancy Services Limited
A company Incorporated in India under the Companies Act, 1956
Having address:
Nirmal Building, 9th floor,
Nariman point, Mumbai 400021,
Maharashtra, India
The following specification particularly describes the embodiments and the manner in which it is to be performed.
TECHNICAL FIELD
[001] The embodiments herein generally relate to navigation within a web application, and more particularly to systems and methods for facilitating dynamic breadcrumb navigation.
BACKGROUND
[002] With evolving information technology and enterprise applications, efficient multitenant web applications demand seamless navigation. Paths traversed by a user when navigating a web application needs to be remembered to enable the user to revisit any webpage in a website efficiently. There may be multiple paths that a user may traverse to reach a particular webpage and there may also be multiple entry points to reach a destination webpage. Conventional methods for breadcrumb navigation provide a solution by hard coding the paths traversed. This may be tedious in complex and large web applications having innumerable traversable paths. Such solutions involve static content and reduce efficiency of navigation. Again, client side breadcrumb solutions may have their own challenges with regards to security.
SUMMARY
[003] Embodiments of the present disclosure present technological improvements as solutions to one or more of the above-mentioned technical problems recognized by the inventors in conventional systems.
[004] In an aspect, there is provided a dynamic server-end processor implemented method, the method comprising: (a) receiving a user action to navigate to at least one Uniform Resource Locator (URL) associated with a webpage; (b) in response to information in a pre-defined configuration file, dynamically generating a breadcrumb trail including navigation information in hierarchical order of navigation to the at least one URL, when displaying the webpage associated thereof at a client end; (c) storing breadcrumbs associated with the at least one URL for each session associated with the user; (d) updating the breadcrumb trail based on the hierarchical order of navigation; and (e) displaying the updated breadcrumb trail on the at least one URL.
[005] In another aspect, there is provided a server system comprising: one or more data storage devices operatively coupled to the one or more processors and configured to store instructions configured for execution by the one or more processors to: (a) receive a user action to navigate to at least one Uniform Resource Locator (URL) associated with a webpage; (b) in response to information in a pre-defined configuration file, dynamically generate a breadcrumb trail including navigation information in hierarchical order of navigation to the at least one URL, when displaying the webpage associated thereof at a client end; (c) store breadcrumbs associated with the at least one URL for each session associated with the user; (d) update the breadcrumb trail based on the hierarchical order of navigation; and (e) display the updated breadcrumb trail on the at least one URL.
[006] In yet another aspect, there is provided a computer program product comprising a non-transitory computer readable medium having a computer readable program embodied therein, wherein the computer readable program, when executed on a computing device, causes the computing device to: (a) receive a user action to navigate to at least one Uniform Resource Locator (URL) associated with a webpage; (b) in response to information in a pre-defined configuration file, dynamically generate a breadcrumb trail including navigation information in hierarchical order of navigation to the at least one URL, when displaying the webpage associated thereof at a client end; (c) store breadcrumbs associated with the at least one URL for each session associated with the user; (d) update the breadcrumb trail based on the hierarchical order of navigation; and (e) display the updated breadcrumb trail on the at least one URL.
[007] In an embodiment of the present disclosure, the one or more hardware processors are further configured to update the breadcrumb trail by checking for cyclic navigation and eliminating duplicate breadcrumbs.
[008] In an embodiment of the present disclosure, the one or more hardware processors are further configured to display the webpage at a client end by receiving at the client end: the at least one URL associated with the webpage to be displayed; form data to be passed along with server calls for loading the webpage; one or more functions configured to be executed prior to executing the server calls for loading the webpage, the one or more functions being part of code associated with the webpage to be displayed; and the one or more functions configured to be executed post executing the server calls for loading the webpage, for loading the webpage in response to an on-click event in the displayed breadcrumb trail.
[009] In accordance with the present disclosure, the one more of the at least one URL are pre-identified in the pre-defined configuration file for inclusion in the breadcrumb trail.
[010] In accordance with the present disclosure, the breadcrumb trail associated with the at least one URL includes multiple entry points.
[011] In accordance with the present disclosure, text pertaining to breadcrumbs and the associated URL and form data are stored as key-value pairs on the server.
[012] It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the embodiments of the present disclosure, as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
[013] The embodiments herein will be better understood from the following detailed description with reference to the drawings, in which:
[014] FIG.1 illustrates an exemplary block diagram of a system to provide dynamic breadcrumb navigation, in accordance with an embodiment of the present disclosure; and
[015] FIG.2 illustrates an exemplary flow diagram of a method to provide dynamic breadcrumb navigation, in accordance with an embodiment of the present disclosure.
[016] It should be appreciated by those skilled in the art that any block diagram herein represent conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computing device or processor, whether or not such computing device or processor is explicitly shown.
DETAILED DESCRIPTION
[017] The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein may be practiced and to further enable those of skill in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.
[018] The words "comprising," "having," "containing," and "including," and other forms thereof, are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items.
[019] It must also be noted that as used herein and in the appended claims, the singular forms "a," "an," and "the" include plural references unless the context clearly dictates otherwise. Although any systems and methods similar or equivalent to those described herein can be used in the practice or testing of embodiments of the present disclosure, the preferred, systems and methods are now described.
[020] Some embodiments of this disclosure, illustrating all its features, will now be discussed in detail. The disclosed embodiments are merely exemplary of the disclosure, which may be embodied in various forms.
[021] Before setting forth the detailed explanation, it is noted that all of the discussion below, regardless of the particular implementation being described, is exemplary in nature, rather than limiting.
[022] Systems and methods of the present disclosure aim to provide dynamic breadcrumb navigation that is implemented at the server end. Specifically, the present disclosure enables a breadcrumb navigation framework in multi-tenant applications using environments such as Java 2 Platform Enterprise Edition (J2EE). More specifically, the systems and methods of the present disclosure provide seamless navigation throughout any web application; a path to reach a page / webpage can be dynamically generated based on any of the possible paths traversed by a user in the web application by a breadcrumb trail and enables the user to revisit any page in his path from beginning of the traversal. For instance, a path to reach Page 3 may be many as follows:
Home Page > Page1 > Page 3 or
Home Page > Page 3 or
Home Page > Page1 > Page5 > Page 4 > Page 3.
The systems and methods of the present disclosure also handle the Back Link / Cancel Link in a webpage, particularly when browser enabled Back button is disabled.
[023] Referring now to the drawings, and more particularly to FIGS. 1 and 2, where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments and these embodiments are described in the context of the following exemplary system and method.
[024] FIG.1 illustrates an exemplary block diagram of a system 100 for dynamic breadcrumb navigation, in accordance with an embodiment of the present disclosure. In an embodiment, the system 100 includes one or more processors 104, communication interface device(s) or input/output (I/O) interface(s) 106, and one or more data storage devices or memory 102 operatively coupled to the one or more processors 104. The one or more processors 104 that are hardware processors can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, graphics controllers, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor(s) is configured to fetch and execute computer-readable instructions stored in the memory. In an embodiment, the system 100 can be implemented in a variety of computing systems, such as workstations, mainframe computers, servers, and the like.
[025] The I/O interface device(s) 106 can include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like and can facilitate multiple communications within a wide variety of networks N/W and protocol types, including wired networks, for example, LAN, cable, etc., and wireless networks, such as WLAN, cellular, or satellite. In an embodiment, the I/O interface device(s) can include one or more ports for connecting a number of devices to one another or to another server.
[026] The memory 102 may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. In an embodiment, one or more modules (not shown) of the system 100 can be stored in the memory 102.
[027] FIG.2 illustrates an exemplary flow diagram of a method 200 for dynamic breadcrumb navigation implemented at the server-end, in accordance with an embodiment of the present disclosure. In an embodiment, the system 100 comprises one or more data storage devices or memory 102 operatively coupled to the one or more processors 104 and is configured to store instructions configured for execution of steps of the method 200 by the one or more processors 104.
[028] In accordance with the present disclosure, a configuration file for breadcrumbs is pre-defined at the server end. In an embodiment, the configuration file holds Uniform Resource Locator (URL) centric configurations such as breadcrumb display name, information pertaining to the breadcrumb being the beginning of a breadcrumb trail (entry point) or otherwise, list of breadcrumbs that may be replaced, any function/script to execute in response to an on-click event in the displayed breadcrumb trail, and the like. It is pertinent to note that in a web application having innumerable web pages, the configuration file may be pre-defined to include selective web pages enabled for breadcrumb trails based on business requirement or ease of navigation. Some URLs may not require breadcrumbs, when web applications use Asynchronous JavaScript and XML (AJAX). Various possible configurations that may be effected in the configuration file may be understood from embodiments described herein after.
[029] In an embodiment, at step 202, the one or more processors 104 are configured to receive a user action to navigate to at least one Uniform Resource Locator (URL) associated with a webpage. For ease of explanation the one or more processors handling step 202 may be referred to as a breadcrumb manager. In an embodiment, the breadcrumb manager firstly checks if the URL is identified in the pre-defined configuration file. After confirming that the requested URL is identified in the pre-defined configuration file, the breadcrumb manager may capture and store user session information. In the context of the present disclosure, application layer protocol may be Hypertext Transfer Protocol (HTTP) / HTTP Secure (HTTPS). However, it may be noted that any application layer protocol that can store session information may be implemented.
[030] In an embodiment, at step 204, one or more processors 104 are configured to dynamically generate a breadcrumb trail including navigation information in hierarchical order of navigation to the at least one URL, when displaying the webpage associated thereof at a client end. For ease of explanation the one or more processors handling step 204 may be referred to as a breadcrumb writer that is responsible for handling on-click events in response to information in the pre-defined configuration file.
[031] In an embodiment, at step 206, the breadcrumb manager is configured to store breadcrumbs associated with the at least one URL for each session associated with the user. In an embodiment, the breadcrumb manager may store the user session information including the text pertaining to breadcrumbs and the associated URL and form data that are stored as key-value pairs on the server. For instance, for an exemplary breadcrumb trail, Supplier > PO > Invoice, a session variable may be the breadcrumb trail string “Supplier > PO > Invoice”; another session variable may include key1-value1 pair for the first breadcrumb, wherein key1 is the string “Supplier” and value 1 is the associated URL and form data to be submitted with the URL for the webpage related to “Supplier”. Likewise, another session variable for the second breadcrumb in the exemplary breadcrumb train may include key2-value2 pair, wherein key2 is the string “PO” and value2 is the associated URL and form data to be submitted with the URL for the webpage related to “PO”.
[032] In an embodiment, a snapshot of form data is received at the server end. Form data may be submitted in multiple ways depending on number of non-mandatory fields that were submitted along with the mandatory fields when the URL was parsed. In accordance with the present disclosure, the form data that is received when loading a webpage for the first time is saved on the server (as a key-value pair in a hash map).
For instance, if a user traverses path PageA > B > D > E
For PageB > D
URL: loadProfile.do
FORM DATA: empId= 1234
Display Fields may be -
First Name:
Last Name:
A -> B -> C -> D -> E
But for PageC -> D
URL: loadProfile.do
FORM DATA: empId= 1234
displayExtraInfo = true
Display Fields may be -
First Name:
Last Name:
Mobile #:
Address:
[033] In an embodiment, at step 208, the breadcrumb writer may update the breadcrumb trail based on the hierarchical order of navigation. When updating the breadcrumb trail, the breadcrumb writer checks for cyclic navigation and eliminates duplicate breadcrumbs. For instance, if a user traverses a path Page1 > Page2 > Page1, the breadcrumb trail to Page2 may be Page1 > Page2.
[034] In an embodiment, at step 210, the breadcrumb writer may display the breadcrumbs based on the details set by the breadcrumb manager and display. For instance, “login page” may have the string “login” as the key and the URL and form data for the login page as value, set by the breadcrumb manager in the configuration file, based on which the breadcrumb writer may display the “login page” upon receiving an on-click event.
[035] In an embodiment, for loading the webpage in response to an on-click event in the displayed breadcrumb trail, the following information may be received at the client end: the URL associated with the webpage to be displayed; form data to be passed along with server calls for loading the webpage; one or more functions configured to be executed prior to executing the server calls for loading the webpage, the one or more functions being part of code associated with the webpage to be displayed; and the one or more functions configured to be executed post executing the server calls for loading the webpage. In a normal scenario, on-click event of a breadcrumb triggers a server call to load the desired webpage in the navigation path. But in some instances, it may be required to execute some functions such as Java Script operations prior to triggering the server call, like hiding a
| # | Name | Date |
|---|---|---|
| 1 | 201621027905-IntimationOfGrant13-12-2023.pdf | 2023-12-13 |
| 1 | Form 3 [16-08-2016(online)].pdf | 2016-08-16 |
| 2 | 201621027905-PatentCertificate13-12-2023.pdf | 2023-12-13 |
| 2 | Form 20 [16-08-2016(online)].jpg | 2016-08-16 |
| 3 | Form 18 [16-08-2016(online)].pdf_73.pdf | 2016-08-16 |
| 3 | 201621027905-CLAIMS [27-08-2020(online)].pdf | 2020-08-27 |
| 4 | Form 18 [16-08-2016(online)].pdf | 2016-08-16 |
| 4 | 201621027905-COMPLETE SPECIFICATION [27-08-2020(online)].pdf | 2020-08-27 |
| 5 | Drawing [16-08-2016(online)].pdf | 2016-08-16 |
| 5 | 201621027905-FER_SER_REPLY [27-08-2020(online)].pdf | 2020-08-27 |
| 6 | Description(Complete) [16-08-2016(online)].pdf | 2016-08-16 |
| 6 | 201621027905-OTHERS [27-08-2020(online)].pdf | 2020-08-27 |
| 7 | Other Patent Document [23-08-2016(online)].pdf | 2016-08-23 |
| 7 | 201621027905-FER.pdf | 2020-02-27 |
| 8 | Form 26 [20-09-2016(online)].pdf | 2016-09-20 |
| 8 | 201621027905-Correspondence-260816.pdf | 2018-08-11 |
| 9 | 201621027905-Correspondence-260916.pdf | 2018-08-11 |
| 9 | ABSTRACT1.JPG | 2018-08-11 |
| 10 | 201621027905-Form 1-260816.pdf | 2018-08-11 |
| 10 | 201621027905-Power of Attorney-260916.pdf | 2018-08-11 |
| 11 | 201621027905-Form 1-260816.pdf | 2018-08-11 |
| 11 | 201621027905-Power of Attorney-260916.pdf | 2018-08-11 |
| 12 | 201621027905-Correspondence-260916.pdf | 2018-08-11 |
| 12 | ABSTRACT1.JPG | 2018-08-11 |
| 13 | 201621027905-Correspondence-260816.pdf | 2018-08-11 |
| 13 | Form 26 [20-09-2016(online)].pdf | 2016-09-20 |
| 14 | 201621027905-FER.pdf | 2020-02-27 |
| 14 | Other Patent Document [23-08-2016(online)].pdf | 2016-08-23 |
| 15 | 201621027905-OTHERS [27-08-2020(online)].pdf | 2020-08-27 |
| 15 | Description(Complete) [16-08-2016(online)].pdf | 2016-08-16 |
| 16 | 201621027905-FER_SER_REPLY [27-08-2020(online)].pdf | 2020-08-27 |
| 16 | Drawing [16-08-2016(online)].pdf | 2016-08-16 |
| 17 | 201621027905-COMPLETE SPECIFICATION [27-08-2020(online)].pdf | 2020-08-27 |
| 17 | Form 18 [16-08-2016(online)].pdf | 2016-08-16 |
| 18 | Form 18 [16-08-2016(online)].pdf_73.pdf | 2016-08-16 |
| 18 | 201621027905-CLAIMS [27-08-2020(online)].pdf | 2020-08-27 |
| 19 | Form 20 [16-08-2016(online)].jpg | 2016-08-16 |
| 19 | 201621027905-PatentCertificate13-12-2023.pdf | 2023-12-13 |
| 20 | Form 3 [16-08-2016(online)].pdf | 2016-08-16 |
| 20 | 201621027905-IntimationOfGrant13-12-2023.pdf | 2023-12-13 |
| 1 | SS57201621027905_20-02-2020.pdf |