CN106201502B - Cross-host application program deployment method and device - Google Patents

Cross-host application program deployment method and device Download PDF

Info

Publication number
CN106201502B
CN106201502B CN201610525772.6A CN201610525772A CN106201502B CN 106201502 B CN106201502 B CN 106201502B CN 201610525772 A CN201610525772 A CN 201610525772A CN 106201502 B CN106201502 B CN 106201502B
Authority
CN
China
Prior art keywords
application program
data
host
program file
target host
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
Application number
CN201610525772.6A
Other languages
Chinese (zh)
Other versions
CN106201502A (en
Inventor
郝建明
张炼
牛瀚苑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unionpay Co Ltd
Original Assignee
China Unionpay Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201610525772.6A priority Critical patent/CN106201502B/en
Publication of CN106201502A publication Critical patent/CN106201502A/en
Application granted granted Critical
Publication of CN106201502B publication Critical patent/CN106201502B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The invention provides a method and a device for deploying a cross-host application program, which comprise the following steps: copying the application program file on the original host to a storage directory of a target host; acquiring fixed difference data determined after an original host and a target host are compared; modifying the application program file copied to the storage directory of the target host according to the fixed difference data; and copying the modified application program file to a deployment directory of the target host. Because the scheme only obtains the fixed difference data between the original host and the target host, the correctness does not need to be confirmed manually, the time consumption is short, and manual errors can not be caused; the application program file of the original host is copied to the target host, and the application program file in the target host is modified according to the fixed difference data, so that the running environment of the application program in the target host is the same as the running environment of the application program in the original host, the difference between the testing environment and the production environment can be eliminated, and the consistency of the testing environment and the production environment is ensured.

Description

cross-host application program deployment method and device
Technical Field
the present invention relates to the field of programming technologies, and in particular, to a method and an apparatus for deploying a cross-host application.
Background
in the daily operation and maintenance process of the data center, the performance of some application programs needs to be tested and evaluated, and at this time, some application programs need to be operated on two independent test environments and production environments respectively, but differences may exist between the test environments and the production environments, and the differences are not estimated by testers, or the testers do not find differences between the test environments and the production environments at all, so that the testers may determine that the performance of some application programs is not good according to the operation results. For the situation, the existing method only requires that the test environment is compared with the production environment before the test evaluation work begins each time, and the time of one hour or two hours is needed to confirm the correctness of the comparison result, so that the time consumption is long, and manual errors are brought; in addition, the difference between the test environment and the production environment cannot be eliminated only by comparing the test environment with the production environment, and the consistency between the test environment and the production environment cannot be ensured.
disclosure of Invention
The embodiment of the invention provides a cross-host application program deployment method, which can eliminate the difference between a test environment and a production environment and ensure the consistency of the test environment and the production environment without manually confirming the correctness of a comparison result between the test environment and the production environment. The method comprises the following steps:
copying the application program file on the original host to a storage directory of a target host;
Acquiring fixed difference data determined after an original host and a target host are compared;
Modifying the application program file copied to the storage directory of the target host according to the fixed difference data;
And copying the modified application program file to a deployment directory of the target host.
in one embodiment, before copying the modified application program file into the deployment directory of the target host, the method further includes:
And clearing redundant files stored in the deployment directory of the target host.
in an embodiment, the clearing the redundant file stored in the deployment directory of the target host specifically includes:
Clearing redundant files stored in a deployment directory of a target host according to a preset clearing rule;
or all redundant files stored in the deployment directory of the target host are cleared.
in one embodiment, further comprising:
presetting a modification blacklist, wherein the modification blacklist comprises non-modifiable data;
the modifying the application program file copied to the storage directory of the target host according to the fixed difference data specifically includes:
locking corresponding data in the application program file copied to the storage directory of the target host according to the non-modifiable data in the modified blacklist to obtain the application program file with the data locked;
And modifying the application program file after the data is locked according to the fixed difference data.
In one embodiment, the non-modifiable data in the modification blacklist is listed by a regular expression.
in one embodiment, further comprising:
presetting data which cannot be copied;
the modifying the application program file copied to the storage directory of the target host according to the fixed difference data specifically includes:
adding data which cannot be copied into the application program file copied to the storage directory of the target host;
and modifying the application program file added with the data which cannot be copied according to the fixed difference data.
the embodiment of the invention also provides a cross-host application program deployment device, which can eliminate the difference between the test environment and the production environment and ensure the consistency of the test environment and the production environment without manually confirming the correctness of the comparison result. The device includes:
The copying module is used for copying the application program file on the original host computer to the storage directory of the target host computer;
The acquisition module is used for acquiring fixed difference data determined after the original host and the target host are compared;
the modification module is used for modifying the application program file copied to the storage directory of the target host according to the fixed difference data;
the copying module is also used for copying the modified application program file to a deployment directory of the target host.
In one embodiment, further comprising:
And the clearing module is used for clearing the redundant files stored in the deployment directory of the target host.
in one embodiment, the purge module is specifically configured to:
clearing the redundant files stored in the deployment directory of the target host according to a preset clearing rule;
or all redundant files stored in the deployment directory of the target host are cleared.
in one embodiment, further comprising:
The device comprises a blacklist setting module, a modification blacklist setting module and a modification module, wherein the modification blacklist comprises non-modifiable data;
the modification module is specifically configured to:
locking corresponding data in the application program file copied to the storage directory of the target host according to the non-modifiable data in the modified blacklist to obtain the application program file with the data locked;
And modifying the application program file after the data is locked according to the fixed difference data.
in one embodiment, the non-modifiable data in the modification blacklist is listed by a regular expression.
in one embodiment, further comprising:
the data setting module is used for presetting data which cannot be copied;
the modification module is specifically configured to:
adding data which cannot be copied into the application program file copied to the storage directory of the target host;
and modifying the application program file added with the data which cannot be copied according to the fixed difference data.
In the embodiment of the invention, only the comparison result (fixed difference data) between the original host and the target host is obtained, and the correctness of the comparison result does not need to be confirmed manually, so that the time consumption is short and manual errors can not be caused; the application program file of the original host is copied to the target host, and the application program file in the target host is modified according to the fixed difference data, so that the running environment of the application program in the target host is the same as the running environment of the application program in the original host, the difference between the testing environment and the production environment can be eliminated, and the consistency of the testing environment and the production environment is ensured.
drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
FIG. 1 is a flowchart of a method for deploying a cross-host application according to an embodiment of the present invention;
FIG. 2 is one embodiment of the present invention;
fig. 3 is a schematic structural diagram of a device for deploying a cross-host application according to an embodiment of the present invention.
Detailed Description
the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
In an embodiment of the present invention, a method for deploying a cross-host application is provided, as shown in fig. 1, the method includes:
Step 101: copying the application program file on the original host to a storage directory of a target host;
Step 102: acquiring fixed difference data determined after an original host and a target host are compared;
step 103: modifying the application program file copied to the storage directory of the target host according to the fixed difference data;
Step 104: and copying the modified application program file to a deployment directory of the target host.
In the prior art, when some application programs are respectively run in two independent test environments and production environments, the performance of some application programs may be determined to be poor due to possible differences between the test environments and the production environments. To solve the above problems, the present invention introduces a synchronization mechanism and a fast win mechanism.
in specific implementation, the fixed difference data is obtained by classifying the result of the first difference comparison between the test environment (the original host or the standard environment) and the production environment (the target host or the target environment), and may also be obtained as non-fixed difference data. The different configurations and parameters between the test environment and the production environment form fixed difference data, the fixed difference data can directly modify an application program file running on a standard environment (so to speak, an original host) according to parameters of a target environment (so to speak, a target host), and the fixed difference data can be, for example, an IP address configured by the target host, a host name of the target host, other parameters, and the like, as shown in fig. 2. While the non-fixed difference data, such as the number of processes executed by the application, etc., must be consistently synchronized according to the standard environment (the primary host, as it were). The result of the first difference comparison may be a result after manual comparison, or a result obtained after comparison with some comparison tool, and is a comparison result without manually taking one or two hours to confirm correctness.
In specific implementation, the application program file on the original host is copied to the storage directory (or the installation directory) of the target host, and this step may be performed before or after the fixed difference data is acquired. That is, the steps 101 and 102 may be switched in order, that is, the fixed difference data may be obtained first, and then the application program file on the original host may be copied to the storage directory of the target host. Or, the application program file on the original host may be copied to the storage directory of the target host, and then the fixed difference data may be obtained.
in specific implementation, after the application program file on the original host is copied to the storage directory (installation directory) of the target host, the application program file copied to the storage directory of the target host needs to be modified according to the fixed difference data. Since the application file is copied directly to the target host, the non-fixed difference data will disappear. In practice, since some data in the application file may not be modified, before modification, it is first determined which data are not modified, and then the data are listed in detail or listed by Regular Expression (Regular Expression, often abbreviated in code as regex, regexp or RE, also called Regular Expression, a concept of computer science). After obtaining the modified blacklist, it is necessary to lock corresponding data in the application program file copied to the storage directory of the target host according to the non-modifiable data in the modified blacklist (that is, some data are protected, and the protected data cannot be edited and modified), obtain the application program file after data locking, and finally modify the application program file after data locking according to the fixed difference data, as shown in fig. 2.
In addition, since some data in the application program file may not be copied, before modification, it may also be determined which data is not copied according to needs, and then the data which is not copied is added to the application program file copied to the storage directory of the target host, and then the application program file after the data which is not copied is modified according to the fixed difference data. Or after modifying the application program file copied to the storage directory of the target host according to the fixed difference data, adding the data which cannot be copied, and realizing personalized operation. And finally copying the modified application program file added with the data which cannot be copied to the deployment directory of the target host, as shown in fig. 2.
In specific implementation, before copying to the deployment directory (or deployment environment) of the target host, the deployment directory of the target host needs to be checked to determine whether a redundant file exists in the deployment directory of the target host, if the redundant file does not exist, the modified application program file to which the data that cannot be copied is added can be directly copied to the deployment directory of the target host, and if the redundant file exists, the deployment environment needs to be cleaned, as shown in fig. 2. It is also necessary to determine which files can be cleared, which files cannot be cleared, or all files can be cleared when cleaning. When some files can be cleared and some files cannot be cleared, clearing rules are preset, and the redundant files stored in the deployment directory of the target host are cleared according to the preset clearing rules; when all files can be cleared, directly clearing the deployment directory of the target host.
Based on the same inventive concept, an embodiment of the present invention further provides a device for deploying a cross-host application, as described in the following embodiments. Since the principle of the problem solving of the cross-host application deployment apparatus is similar to that of the cross-host application deployment method, the implementation of the cross-host application deployment apparatus can be referred to the implementation of the cross-host application deployment method, and repeated details are not repeated. As used hereinafter, the term "unit" or "module" may be a combination of software and/or hardware that implements a predetermined function. Although the means described in the embodiments below are preferably implemented in software, an implementation in hardware, or a combination of software and hardware is also possible and contemplated.
fig. 3 is a block diagram of a module apparatus according to an embodiment of the present invention, as shown in fig. 3, including:
the copying module 301 is configured to copy an application program file on an original host to a storage directory of a target host;
an obtaining module 302, configured to obtain fixed difference data determined after comparing an original host with a target host;
A modification module 303, configured to modify, according to the fixed difference data, the application program file copied to the storage directory of the target host;
The copy module 301 is further configured to copy the modified application program file to the deployment directory of the target host.
this structure will be explained below.
in specific implementation, the device further comprises:
And a clearing module 304, configured to clear the redundant file stored in the deployment directory of the target host.
In particular implementation, the clearing module 304 is specifically configured to:
Clearing the redundant files stored in the deployment directory of the target host according to a preset clearing rule;
Or all redundant files stored in the deployment directory of the target host are cleared.
in specific implementation, the device further comprises:
a blacklist setting module 305, configured to preset a modified blacklist, where the modified blacklist includes non-modifiable data;
The modification module 303 is specifically configured to:
locking corresponding data in the application program file copied to the storage directory of the target host according to the non-modifiable data in the modified blacklist to obtain the application program file with the data locked;
and modifying the application program file after the data is locked according to the fixed difference data.
in specific implementation, the non-modifiable data in the modification blacklist is listed through a regular expression.
in specific implementation, the device further comprises:
a data setting module 306, configured to preset data that cannot be copied;
The modification module 303 is specifically configured to:
adding data which cannot be copied into the application program file copied to the storage directory of the target host;
and modifying the application program file added with the data which cannot be copied according to the fixed difference data.
practical tests show that the original comparison technology needs about 1-2 hours for manual confirmation, and manual errors are introduced in the process, so that unified measurement cannot be realized. By the tool, 45 seconds are needed for completing rapid deployment by actually testing a single application (taking a main machine of a collection and single connection machine as an example), and a plurality of main machines can be implemented in parallel. Meanwhile, the tool is convenient for platform integration and is convenient to add into an automatic test process.
In summary, the present invention provides a method for quickly deploying an application program across hosts based on fixed difference coverage, which can complete quick deployment and application replication from a standard environment to a target environment, and simultaneously includes the steps of copying an application file to a target host to cover a non-fixed difference and modifying the application file according to the fixed difference, so that manual intervention is not required, comparison time of environment difference can be shortened, time for manually modifying environment parameters and application parameters can be shortened, and environment recovery can be promoted to be automatically executed before a routine action is executed in a use environment. The invention also realizes the function of cleaning the redundant files in the target environment. In addition, the invention can flexibly configure and modify the blacklist, can avoid the files on the blacklist from being modified by mistake, and can ensure the manual control on the premise of automatic deployment. The invention also adds the function of personalized modification. The invention is mainly based on the idea of solving the problem of quick win, emphasizes the efficiency, and can greatly improve the execution efficiency of environment recovery and quick deployment in most of daily work through the tool.
the invention is used for daily optimization of the peripheral room of the China Unionpay Beijing information center, and is used for improving the application backup and reduction speed and improving the test working efficiency.
as will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described 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 flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams 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, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
these computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
the above description is only a preferred embodiment of the present invention, and is not intended to limit the present invention, and various modifications and changes may be made to the embodiment of the present invention by those skilled in the art. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (6)

1. a method for cross-host application deployment, comprising:
clearing redundant files stored in a deployment directory of a target host according to a preset clearing rule;
Or, all redundant files stored in the deployment directory of the target host are cleared;
copying the application program file on the original host to a storage directory of a target host;
acquiring fixed difference data determined after an original host and a target host are compared;
Presetting a modification blacklist, wherein the modification blacklist comprises non-modifiable data; locking corresponding data in the application program file copied to the storage directory of the target host according to the non-modifiable data in the modification blacklist to obtain the application program file with the data locked; modifying the application program file after the data is locked according to the fixed difference data;
And copying the modified application program file to a deployment directory of the target host.
2. the cross-host application deployment method of claim 1, wherein the non-modifiable data in the modification blacklist is listed by a regular expression.
3. the cross-host application deployment method of claim 1, further comprising:
presetting data which cannot be copied;
Adding data which cannot be copied into the application program file copied to the storage directory of the target host;
And modifying the application program file added with the data which cannot be copied according to the fixed difference data.
4. A device for deploying a cross-host application, comprising:
the clearing module is used for clearing the redundant files stored in the deployment directory of the target host according to a preset clearing rule; or, all redundant files stored in the deployment directory of the target host are cleared;
The copying module is used for copying the application program file on the original host computer to the storage directory of the target host computer;
The acquisition module is used for acquiring fixed difference data determined after the original host and the target host are compared;
The device comprises a blacklist setting module, a modification blacklist setting module and a modification module, wherein the modification blacklist comprises non-modifiable data;
The modification module is used for locking corresponding data in the application program file copied to the storage directory of the target host according to the non-modifiable data in the modification blacklist to obtain the application program file with the data locked; modifying the application program file after the data is locked according to the fixed difference data;
The copying module is also used for copying the modified application program file to a deployment directory of the target host.
5. the cross-host application deployment device of claim 4 wherein the non-modifiable data in the modification blacklist is listed by a regular expression.
6. the cross-host application deployment apparatus of claim 4, further comprising:
The data setting module is used for presetting data which cannot be copied;
and modifying the application program file added with the data which cannot be copied according to the fixed difference data.
CN201610525772.6A 2016-07-06 2016-07-06 Cross-host application program deployment method and device Active CN106201502B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610525772.6A CN106201502B (en) 2016-07-06 2016-07-06 Cross-host application program deployment method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610525772.6A CN106201502B (en) 2016-07-06 2016-07-06 Cross-host application program deployment method and device

Publications (2)

Publication Number Publication Date
CN106201502A CN106201502A (en) 2016-12-07
CN106201502B true CN106201502B (en) 2019-12-06

Family

ID=57465863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610525772.6A Active CN106201502B (en) 2016-07-06 2016-07-06 Cross-host application program deployment method and device

Country Status (1)

Country Link
CN (1) CN106201502B (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423084B (en) * 2017-04-24 2021-02-02 武汉斗鱼网络科技有限公司 Program modification method and device
CN107515782A (en) * 2017-07-26 2017-12-26 北京天云融创软件技术有限公司 Implementation method of the container across host migration under a kind of Docker environment
US20200034156A1 (en) * 2018-07-25 2020-01-30 Futurewei Technologies, Inc. Resource Optimization and Reuse in Resource Constrained Environment
CN109522024A (en) * 2018-10-23 2019-03-26 中国银行股份有限公司 A kind of environmental structure method, apparatus, storage medium and processor
EP3650968A1 (en) * 2018-11-07 2020-05-13 Siemens Aktiengesellschaft Production or machine tool and method for operating a production or machine tool and computer program for operating a production or machine tool
CN110851167B (en) * 2019-11-15 2022-06-10 腾讯科技(深圳)有限公司 Container environment updating method, device, equipment and storage medium
CN111221777B (en) * 2020-01-02 2024-01-30 中国银行股份有限公司 Data record matching method and device
CN113778460A (en) * 2021-09-08 2021-12-10 中国银行股份有限公司 Production environment deployment method and device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262366B2 (en) * 2007-09-21 2016-02-16 Microsoft Technology Licensing, Llc Software deployment in large-scale networked systems
CN102736946B (en) * 2011-04-11 2015-12-16 阿里巴巴集团控股有限公司 A kind of batch dispositions method of application node and device
CN102402446B (en) * 2011-11-22 2014-12-17 华为数字技术(成都)有限公司 Method and device for installing application software
CN104182257B (en) * 2011-11-22 2017-09-05 华为数字技术(成都)有限公司 The installation method of application software and the erecting device of application software
US20140359213A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Differencing disk improved deployment of virtual machines
CN103793259B (en) * 2013-09-30 2017-02-22 中国电子设备系统工程公司研究所 Virtual device generating and deploying method

Also Published As

Publication number Publication date
CN106201502A (en) 2016-12-07

Similar Documents

Publication Publication Date Title
CN106201502B (en) Cross-host application program deployment method and device
US9876695B2 (en) Generating production server load activity for a test server
JP6788178B2 (en) Setting support program, setting support method and setting support device
JP5609656B2 (en) Setting program, workflow creation method and workflow creation device
CN109032838B (en) Automatic verification method for consistency of backup and recovery data of virtual machine
CN105223889A (en) Method for automatically monitoring PMC RAID card log suitable for production line
CN103514023A (en) Method and system for off-line and automatically installing software of virtual machine
KR101949115B1 (en) Self-diagnosis and automatic diagnostic data collection of device driver detection errors
CN104216743A (en) Method and system for maintaining start completeness of configurable virtual machine
CN111190823A (en) UI automation test method, electronic device and computer readable storage medium
US20160266924A1 (en) Apparatus and method for identifying a virtual machine having changeable settings
US20210173750A1 (en) Methods to automatically correct and improve system recovery and replication processes
CN114168464A (en) Distributed fuzzy test method and system based on dynamic scheduling
CN106095680A (en) Verification disk out-of-order automatic test method applied to Linux
US20170124141A1 (en) Selective data synchronization to troubleshoot production environment failures
US11003538B2 (en) Automatically configuring boot order in recovery operations
CN110795105A (en) Automatic compiling and deploying method and system for power distribution automation master station system
CN112527325B (en) Deployment method and system applied to super fusion architecture
CN106909382B (en) Method and device for outputting different types of system starting information
US20180081930A1 (en) Maintaining storage profile consistency in a cluster having local and shared storage
KR20150124653A (en) System for monitoring and controling electric power system for process verification
CN110618884A (en) Fault monitoring method, virtualized network function module manager and storage medium
CN114443356A (en) Container cluster processing method and system
CN108959604B (en) Method, apparatus and computer readable storage medium for maintaining database cluster
US11036624B2 (en) Self healing software utilizing regression test fingerprints

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant