CN109151071B - Webpage file synchronization method and system - Google Patents
Webpage file synchronization method and system Download PDFInfo
- Publication number
- CN109151071B CN109151071B CN201811258186.5A CN201811258186A CN109151071B CN 109151071 B CN109151071 B CN 109151071B CN 201811258186 A CN201811258186 A CN 201811258186A CN 109151071 B CN109151071 B CN 109151071B
- Authority
- CN
- China
- Prior art keywords
- file
- characteristic value
- webpage
- web server
- webpage file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Abstract
The invention relates to a webpage file synchronization method and a system, wherein a probe is installed in a hot standby server, the probe captures the access condition of all webpage files, and only when the probe finds that the webpage files are accessed, the probe requests a main web server to synchronize or checks whether to synchronize the webpage files; a program is installed in the master web server for coordinating the probe's associated requests, and the master web server need not actively synchronize file changes to other hot standby servers immediately. The invention can improve the reliability and robustness of the synchronization of the webpage files.
Description
Technical Field
The invention relates to the field of software, in particular to a webpage file synchronization method and a webpage file synchronization system.
Background
Web page file synchronization refers to synchronizing a web page file from one server to another server. The common application of the technology is a multi-machine hot standby situation, and the purpose is to ensure that the contents of the web pages accessed by the public on any one server are completely consistent.
As shown in fig. 1, when a representative public requests to browse a web page, the request passes through a firewall of the representative to a load balancing device of the representative, and then the request is sent to one of web servers of the representative according to a certain algorithm. The fourth step represents a main web server, and an administrator generates the latest web page file on the server and then synchronizes the web page file to other hot standby servers (for example, # and # by using a web page file synchronization technology).
The existing webpage file synchronization technology generally comprises the following steps:
1. timing cycle polling technique: periodically and circularly scanning the main web server website directory represented by the fourth in the figure 1, and then synchronizing the files to other hot standby servers (for example, # and sixthly).
2. Event triggering technology: the website directory of the main web server represented by the fourth in fig. 1 is monitored through directory monitoring technologies (for example, readdirectorychangeexw technology in windows system and inotify technology in Linux system), any file change (for example, addition, deletion and change of a file or a folder) in the website directory can be sensed, and the file change is immediately synchronized to other hot standby servers (for example, # and # in the system).
3. File filtering driving technology: by loading the file filter driver in the operating system of the main web server represented by (r) in fig. 1, any file change (such as addition, deletion, and change of a file or a folder) can be sensed under the website directory, and the file change is immediately synchronized to other hot standby servers (such as (c) and (c)).
Common characteristics of the prior art can be seen: all actively synchronize the file change under the website directory of the main web server represented by the fourth in fig. 1 to other hot standby servers (for example, # and # above).
The disadvantages of the prior art are as follows: the existing technology for synchronizing the web page files actively synchronizes the file change under the website directory of the main web server represented by the r in fig. 1 to other hot standby servers (for example, # and #), when an administrator continuously publishes a large number of web pages for a long time (for example, batch update of 50 web page files per second, continuously continues for 1 hour), or performs complex operation update on the web page files under the website directory (for example, under the website directory, a.html is added, then a.html is moved to another subdirectory, news \ a.html, then the subdirectory of news is renamed to news2, then news2 is deleted, and finally a.html is added again), or the network state is poor (for example, the network frequently drops off and loses), then a situation of wrong transmission, missed transmission or lost file transmission may occur, and the result causes inconsistency between the web page files of other hot standby servers (for example, # and #), therefore, the reliability and robustness are poor.
Disclosure of Invention
In view of this, the present invention provides a method for synchronizing a web page file, which can improve the reliability and robustness of synchronizing the web page file.
The invention is realized by adopting the following scheme: a webpage file synchronization method specifically comprises the following steps:
installing a probe in the hot standby server, wherein the probe captures the access conditions of all webpage files (including the condition that the webpage does not exist), and only when the probe finds that the webpage files are accessed, the probe requests the main web server to synchronize or checks whether to synchronize the webpage files;
a program is installed in the master web server for coordinating the probe's associated requests, and the master web server need not actively synchronize file changes to other hot standby servers immediately.
Further, the implementation of the probe includes, but is not limited to, a middleware core embedded module or an operating system driver.
Further, the functions implemented by the program installed on the main web server include, but are not limited to: calculating the latest characteristic value of the local webpage file, comparing the two characteristic values, and synchronously sending the webpage file to the hot standby server requesting synchronization.
Further, the latest feature values of the local web page file include, but are not limited to, a path, a hash value, a file size, and a file time of the web page file.
Further, when the probe senses that a webpage file is accessed, if the file exists, calculating a characteristic value of the file, and then sending the obtained characteristic value to the main web server;
after receiving the characteristic value, the master web server performs the following operations: if no corresponding webpage file exists locally, a sender of the characteristic value is informed to take appropriate measures for the original webpage file; if the local corresponding webpage file exists, comparing the received characteristic value with the latest characteristic value of the local corresponding webpage file, and if the two characteristic values are the same, indicating that the two files are consistent and not doing any operation; if the two characteristic values are different, the local corresponding webpage file is synchronously sent to a sender of the characteristic value; and the sender of the characteristic value is a hot standby server for sending the characteristic value.
Preferably, the appropriate measures include, but are not limited to: delete, isolate, or disable access.
Further, when the probe senses that a webpage file is accessed, if the file does not exist, the probe immediately requests the main web server to synchronize the corresponding webpage file;
after receiving the request, the master web server performs the following operations: if the local site does not have the corresponding webpage file, no operation is performed; if the local has the corresponding webpage file, the webpage file is synchronously sent to the sender of the original request; wherein, the sender of the original request is the hot standby server sending the request.
The invention also provides a webpage synchronization system, which comprises a main web server, wherein a program is installed in the main web server and is used for matching with the related requests of probes installed on other hot standby servers, and the main web server does not need to actively synchronize the file change to other hot standby servers immediately;
when the main web server receives the characteristic values sent by other hot standby servers, the following operations are carried out: if the webpage file corresponding to the characteristic value does not exist locally, a sender of the characteristic value is informed to take appropriate measures for the original webpage file; if the local corresponding webpage file exists, comparing the received characteristic value with the latest characteristic value of the local corresponding webpage file, and if the two characteristic values are the same, indicating that the two files are consistent and not doing any operation; if the two characteristic values are different, the local corresponding webpage file is synchronously sent to a sender of the characteristic value; the sender of the characteristic value is a hot standby server which sends the characteristic value; such suitable measures include, but are not limited to: delete, quarantine, or disable access;
when the main web server receives the synchronous requests sent by other hot standby servers, the following operations are carried out: if the local does not have the webpage file corresponding to the request, no operation is performed; if the local has the corresponding webpage file, the webpage file is synchronously sent to the sender of the original request; wherein, the sender of the original request is the hot standby server sending the request.
The invention also provides a webpage synchronization system, which comprises more than one hot standby server, wherein each hot standby server is provided with a probe, the probe is used for capturing the access condition of all webpage files, and only when the probe finds that the webpage files are accessed, the main web server is requested to synchronize or whether the webpage files are synchronized is checked;
when the probe senses that a webpage file is accessed, if the file exists, calculating a characteristic value of the file, and then sending the obtained characteristic value to the main web server;
when the probe senses that a webpage file is accessed, if the file does not exist, the probe immediately requests the main web server to synchronize the corresponding webpage file.
Compared with the prior art, the invention has the following beneficial effects: the invention installs a probe (the realization mode of the probe includes but is not limited to a middleware core embedded module and an operating system driver) in the hot standby server, the probe captures the access condition of all web page files (including the condition that the web page files do not exist), only when the probe finds that the web page files are accessed, the main web server is requested to synchronize or check whether the web page files are synchronized, and a program is installed in the main web server for matching the relevant request of the probe, so the main web server does not need to actively synchronize the file change to other hot standby servers, thereby avoiding the condition that the web page files of the hot standby server are inconsistent with the main web server due to the fact that an administrator continuously releases a large number of web pages for a long time, or carries out complex operation updating on the web page files in a website directory, or the web page files of the hot standby server are mistakenly transmitted, missed or lost when the network state is poor, the reliability and the robustness are improved.
Drawings
Fig. 1 is a schematic diagram of the principle of the embodiment of the present invention.
Detailed Description
The invention is further explained below with reference to the drawings and the embodiments.
It should be noted that the following detailed description is exemplary and is intended to provide further explanation of the disclosure. Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs.
It is noted that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments according to the present application. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, and it should be understood that when the terms "comprises" and/or "comprising" are used in this specification, they specify the presence of stated features, steps, operations, devices, components, and/or combinations thereof, unless the context clearly indicates otherwise.
The embodiment provides a webpage file synchronization method, which specifically comprises the following steps:
installing a probe in the hot standby server, wherein the probe captures the access conditions of all webpage files (including the condition that the webpage does not exist), and only when the probe finds that the webpage files are accessed, the probe requests the main web server to synchronize or checks whether to synchronize the webpage files;
a program is installed in the master web server for coordinating the probe's associated requests, and the master web server need not actively synchronize file changes to other hot standby servers immediately.
In this embodiment, the implementation of the probe includes, but is not limited to, a middleware core embedded module or an operating system driver.
In this embodiment, the functions implemented by the program installed on the main web server include, but are not limited to: calculating the latest characteristic value of the local webpage file, comparing the two characteristic values, and synchronously sending the webpage file to the hot standby server requesting synchronization.
In this embodiment, the latest feature value of the local web page file includes, but is not limited to, a path, a hash value, a file size, and a file time of the web page file.
In this embodiment, when the probe senses that a webpage file is accessed, if the file exists, calculating a characteristic value of the file, and then sending the obtained characteristic value to the main web server;
after receiving the characteristic value, the master web server performs the following operations: if no corresponding webpage file exists locally, a sender of the characteristic value is informed to take appropriate measures for the original webpage file; if the local corresponding webpage file exists, comparing the received characteristic value with the latest characteristic value of the local corresponding webpage file, and if the two characteristic values are the same, indicating that the two files are consistent and not doing any operation; if the two characteristic values are different, the local corresponding webpage file is synchronously sent to a sender of the characteristic value; and the sender of the characteristic value is a hot standby server for sending the characteristic value.
Preferably, the appropriate measures include, but are not limited to: delete, isolate, or disable access.
In this embodiment, when the probe senses that a web page file is accessed, if the file does not exist, the probe immediately requests the main web server to synchronize the corresponding web page file;
after receiving the request, the master web server performs the following operations: if the local site does not have the corresponding webpage file, no operation is performed; if the local has the corresponding webpage file, the webpage file is synchronously sent to the sender of the original request; wherein, the sender of the original request is the hot standby server sending the request.
The embodiment also provides a webpage synchronization system, which comprises a main web server, wherein a program is installed in the main web server and is used for matching with related requests of probes installed on other hot standby servers, and the main web server does not need to actively synchronize file changes to the other hot standby servers immediately;
when the main web server receives the characteristic values sent by other hot standby servers, the following operations are carried out: if the webpage file corresponding to the characteristic value does not exist locally, a sender of the characteristic value is informed to take appropriate measures for the original webpage file; if the local corresponding webpage file exists, comparing the received characteristic value with the latest characteristic value of the local corresponding webpage file, and if the two characteristic values are the same, indicating that the two files are consistent and not doing any operation; if the two characteristic values are different, the local corresponding webpage file is synchronously sent to a sender of the characteristic value; the sender of the characteristic value is a hot standby server which sends the characteristic value; such suitable measures include, but are not limited to: delete, quarantine, or disable access;
when the main web server receives the synchronous requests sent by other hot standby servers, the following operations are carried out: if the local does not have the webpage file corresponding to the request, no operation is performed; if the local has the corresponding webpage file, the webpage file is synchronously sent to the sender of the original request; wherein, the sender of the original request is the hot standby server sending the request.
The embodiment also provides a webpage synchronization system, which comprises more than one hot standby server, wherein each hot standby server is provided with a probe, the probe is used for capturing the access condition of all webpage files, and only when the probe finds that the webpage files are accessed, the probe requests the main web server to synchronize or checks whether to synchronize the webpage files;
when the probe senses that a webpage file is accessed, if the file exists, calculating a characteristic value of the file, and then sending the obtained characteristic value to the main web server;
when the probe senses that a webpage file is accessed, if the file does not exist, the probe immediately requests the main web server to synchronize the corresponding webpage file.
Specifically, as shown in fig. 1, the implementation process of this embodiment specifically includes the following steps:
step S1: installing probes on other hot standby servers (such as the fifth and sixth servers in fig. 1), wherein the probes are used for sensing the access conditions of all webpage files on the servers (including webpage file loss, if the webpage file is lost, the page seen by a user is generally a prompt with an HTTP status code of 404), and the implementation modes of the probes include but are not limited to a middleware core embedded module and an operating system file filtering driver;
step S2: installing a program on a host web server (such as ((r) in fig. 1)) whose functions include, but are not limited to: calculating the latest characteristic values (including but not limited to the path, hash value, file size and file time of the file) of the local webpage file, comparing the two characteristic values, and synchronously sending the file to the hot standby server in step S1;
step S3: when the probe senses access to a web page file in step S1, if the file exists, a feature value of the file is calculated and then transmitted to the main web server in step S2. After receiving the characteristic value, the main web server: if no corresponding webpage file exists locally, notifying a sender of the original characteristic value (such as a fifth step or a sixth step in fig. 1) to take appropriate measures (including but not limited to deletion, isolation, access prohibition and the like) on the original webpage file; if the local corresponding webpage file exists, comparing the received characteristic value with the latest characteristic value of the local corresponding webpage file: if the two characteristic values are the same, the files on the two sides are consistent, and no operation is performed; if the characteristic values are different, the local corresponding webpage file is synchronously sent to a sender of the original characteristic value;
step S4: when the probe senses that a web page file is accessed in step S1, if the file does not exist, the probe immediately requests the master web server (e.g., (r) in fig. 1) to synchronize the corresponding web page file. After receiving the request, the master web server: if the local site does not have the corresponding webpage file, no operation is performed; if the local corresponding web page file exists, the web page file is synchronously sent to the sender of the original request (for example, # or # in fig. 1).
In this embodiment, the middleware is a type of software that can provide cooperation, intercommunication, and resource sharing for one or more applications, and can also provide related services for the applications, and the common software includes IIS, Apache, Tomcat, Ngnix, and the like. The middleware core embedded Module is a Module developed through a third-party development interface of the middleware (such as an ISAPI (application program interface) filter of IIS (inter-integrated services system), a Module of Apache (application server), and the like), and can capture all webpage requests and calculate the full path of webpage files (no matter whether the webpage files exist) corresponding to the webpage requests.
The above description is only a preferred embodiment of the present invention, and all equivalent changes and modifications made in accordance with the claims of the present invention should be covered by the present invention.
Claims (6)
1. A webpage file synchronization method is characterized in that:
installing a probe in the hot standby server, wherein the probe captures the access conditions of all the webpage files, and only when the probe finds that the webpage files are accessed, the probe requests the main web server to synchronize or checks whether to synchronize the webpage files;
installing a program in a main web server for matching a relevant request of the probe, wherein the main web server does not need to actively synchronize file change to other hot standby servers immediately;
when the probe senses that a webpage file is accessed, if the file exists, calculating a characteristic value of the file, and then sending the obtained characteristic value to the main web server;
after receiving the characteristic value, the master web server performs the following operations: if no corresponding webpage file exists locally, a sender of the characteristic value is informed to take appropriate measures for the original webpage file, and the appropriate measures comprise: delete, quarantine, or disable access; if the local corresponding webpage file exists, comparing the received characteristic value with the latest characteristic value of the local corresponding webpage file, and if the two characteristic values are the same, indicating that the two files are consistent and not doing any operation; if the two characteristic values are different, the local corresponding webpage file is synchronously sent to a sender of the characteristic value; and the sender of the characteristic value is a hot standby server for sending the characteristic value.
2. The method for synchronizing web page files according to claim 1, wherein: the implementation mode of the probe comprises a middleware core embedded module or an operating system driver.
3. The method for synchronizing web page files according to claim 1, wherein: the functions realized by the program installed on the main web server comprise: calculating the latest characteristic value of the local webpage file, comparing the two characteristic values, and synchronously sending the webpage file to the hot standby server requesting synchronization.
4. The method for synchronizing web page files according to claim 3, wherein: the latest feature values of the local web page file include a path, a hash value, a file size, and a file time of the web page file.
5. The method for synchronizing web page files according to claim 1, wherein: when the probe senses that a webpage file is accessed, if the file does not exist, immediately requesting the main web server to synchronize the corresponding webpage file;
after receiving the request, the master web server performs the following operations: if the local site does not have the corresponding webpage file, no operation is performed; if the local has the corresponding webpage file, the webpage file is synchronously sent to the sender of the original request; wherein, the sender of the original request is the hot standby server sending the request.
6. A web page synchronization system, characterized by: the system comprises a main web server, wherein a program is installed in the main web server and is used for matching related requests of probes installed on other hot standby servers, and the main web server does not need to actively synchronize file changes to the other hot standby servers;
when the main web server receives the characteristic values sent by other hot standby servers, the following operations are carried out: if the webpage file corresponding to the characteristic value does not exist locally, a sender of the characteristic value is informed to take appropriate measures for the original webpage file; if the local corresponding webpage file exists, comparing the received characteristic value with the latest characteristic value of the local corresponding webpage file, and if the two characteristic values are the same, indicating that the two files are consistent and not doing any operation; if the two characteristic values are different, the local corresponding webpage file is synchronously sent to a sender of the characteristic value; the sender of the characteristic value is a hot standby server which sends the characteristic value; the appropriate measures include: delete, quarantine, or disable access;
when the main web server receives the synchronous requests sent by other hot standby servers, the following operations are carried out: if the local does not have the webpage file corresponding to the request, no operation is performed; if the local has the corresponding webpage file, the webpage file is synchronously sent to the sender of the original request; wherein, the sender of the original request is the hot standby server sending the request.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811258186.5A CN109151071B (en) | 2018-10-26 | 2018-10-26 | Webpage file synchronization method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811258186.5A CN109151071B (en) | 2018-10-26 | 2018-10-26 | Webpage file synchronization method and system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109151071A CN109151071A (en) | 2019-01-04 |
CN109151071B true CN109151071B (en) | 2021-09-03 |
Family
ID=64810239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811258186.5A Active CN109151071B (en) | 2018-10-26 | 2018-10-26 | Webpage file synchronization method and system |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109151071B (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863050A (en) * | 2005-09-15 | 2006-11-15 | 上海华为技术有限公司 | Method of document synchronization between server and system thereof |
CN106325768A (en) * | 2016-08-19 | 2017-01-11 | 华中科技大学 | Dual storage system and method |
CN106941525A (en) * | 2017-03-14 | 2017-07-11 | 郑州云海信息技术有限公司 | A kind of method that data consistency is kept in distributed memory system |
CN107295032A (en) * | 2016-03-30 | 2017-10-24 | 阿里巴巴集团控股有限公司 | A kind of method and apparatus of the data syn-chronization of data center |
CN108170439A (en) * | 2016-12-07 | 2018-06-15 | 施耐德电子软件有限责任公司 | For managing the system and method for the machine images on multiple distributed servers |
-
2018
- 2018-10-26 CN CN201811258186.5A patent/CN109151071B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863050A (en) * | 2005-09-15 | 2006-11-15 | 上海华为技术有限公司 | Method of document synchronization between server and system thereof |
CN107295032A (en) * | 2016-03-30 | 2017-10-24 | 阿里巴巴集团控股有限公司 | A kind of method and apparatus of the data syn-chronization of data center |
CN106325768A (en) * | 2016-08-19 | 2017-01-11 | 华中科技大学 | Dual storage system and method |
CN108170439A (en) * | 2016-12-07 | 2018-06-15 | 施耐德电子软件有限责任公司 | For managing the system and method for the machine images on multiple distributed servers |
CN106941525A (en) * | 2017-03-14 | 2017-07-11 | 郑州云海信息技术有限公司 | A kind of method that data consistency is kept in distributed memory system |
Also Published As
Publication number | Publication date |
---|---|
CN109151071A (en) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9367296B2 (en) | Method and system for synchronizing application programs across devices | |
CN101650659B (en) | Device and method for automatically installing and saving Activex control in XPe operating system | |
CN109739810B (en) | File synchronization method, server, client and device with storage function | |
EP2806357A1 (en) | Method and communication device for updating a web application | |
CN108683718B (en) | Data increment synchronization method and device, electronic equipment and storage medium | |
KR101281825B1 (en) | Apparatus and method that enhance security using virtual interface in cloud system | |
WO2014166265A1 (en) | Method, terminal, cache server and system for updating webpage data | |
US8438561B2 (en) | Mediation apparatus, installation system, installation method, and installation program | |
US9596313B2 (en) | Method, terminal, cache server and system for updating webpage data | |
CN102176775A (en) | Intelligent configuration device and method | |
CN111400777B (en) | Network storage system, user authentication method, device and equipment | |
CN103592936A (en) | Method and device for automatic connection between automobile diagnostic device and VCI equipment | |
CN103164247B (en) | The method and device that system application is repaired automatically | |
CN103401907A (en) | Synchronous processing method and system for login information of application program | |
CN112100005A (en) | Redis copy set implementation method and device | |
JP2012243106A (en) | File management device and control program thereof | |
CN103455359A (en) | Method, device and system for patch installation | |
CN107888434B (en) | Network equipment configuration synchronization method and device | |
CN105262739A (en) | Security defense method, terminal, server, and system | |
US20160044137A1 (en) | Information processing terminal and control method therefor | |
CN109151071B (en) | Webpage file synchronization method and system | |
CN103761170B (en) | system file recovery method, device and system | |
CN103581262A (en) | Master-and-backup data synchronizing method, device and system | |
US11182153B2 (en) | Disabling a script based on indications of unsuccessful execution of the script | |
CN112235267A (en) | Method, web server, relay server, medium, and system for loading certificate |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |