CN110968600B - Organization system of real-time equation supporting high-speed time sequence library - Google Patents
Organization system of real-time equation supporting high-speed time sequence library Download PDFInfo
- Publication number
- CN110968600B CN110968600B CN201911141230.9A CN201911141230A CN110968600B CN 110968600 B CN110968600 B CN 110968600B CN 201911141230 A CN201911141230 A CN 201911141230A CN 110968600 B CN110968600 B CN 110968600B
- Authority
- CN
- China
- Prior art keywords
- time
- real
- data
- equation
- module
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The invention discloses an organization system supporting real-time equations of a high-speed time sequence database, which comprises a common time sequence database, a data acquisition unit and a real-time data processing unit, wherein the common time sequence database is used for storing real-time equations of the high-speed time sequence database; the real-time data processing unit consists of a real-time data service and an equation service; the real-time data service provides a data subscription interface, and a subscriber is notified when new data arrives; the real-time data service is also used for providing a data query interface and returning a corresponding real-time data list according to the measuring point name list; according to the invention, the real-time equation function is added to the time sequence database, so that the support for real-time calculation can be increased on the basis of the time sequence database, the data processing capacity is enhanced, and the use scene and the application range of the time sequence database are enlarged; meanwhile, the buffer module is used, interaction with the time sequence database is reduced, and overall performance is improved.
Description
Technical Field
The invention belongs to the field of real-time equations, relates to a real-time equation supporting a high-speed time sequence library, and in particular relates to an organization system of the real-time equation supporting the high-speed time sequence library.
Background
The time series database is called a time series database, and is used for storing time series data. Time series data, also called time series data, is data that varies with time, most commonly data generated by various types of sensors. The time sequence data is characterized by high frequency and large data volume. With the large-scale application of the Internet of things, various time sequence databases are continuously emerging.
The following drawbacks exist: the current time sequence database basically meets the requirements of time sequence data storage and query, but has insufficient processing capacity on the data, especially has the function with high requirement on real-time performance, such as the calculation function of not supporting real-time data.
The real-time data calculation refers to specific calculation of one data or a group of data when time sequence data arrives, such as integrating the data of a certain measuring point or summing the data of a group of data. The specific calculation is represented using a segment of script called a real-time equation.
In order to solve the above-mentioned drawbacks, a solution is now provided.
Disclosure of Invention
The invention aims to provide an organization system of real-time equations supporting a high-speed time sequence library.
The aim of the invention can be achieved by the following technical scheme:
an organization system supporting real-time equations of a high-speed time sequence database comprises a common time sequence database, a data acquisition unit and a real-time data processing unit; the real-time data processing unit consists of a real-time data service and an equation service;
the real-time data service provides a data subscription interface, and a subscriber is notified when new data arrives; the real-time data service is also used for providing a data query interface and returning a corresponding real-time data list according to the measuring point name list;
the equation service provides an interface for receiving the test, addition, start, stop, inquiry and deletion requests of the real-time equation of the client; the equation service comprises a cache module, a checking module and an executing module;
the checking module is used for checking legal information of the calculation script, and the caching module is used for prefetching and caching historical data required by calculation;
the execution module is used for being responsible for executing the script; the execution mode comprises notification triggering and timer triggering; before execution, whether to prefetch data or not is optionally determined and sent to the cache module, which is specifically as follows: executing the calculation of a large amount of historical archive data, prefetching the data and sending the data to a cache module to reduce the I/O number so as to improve the performance, otherwise, not executing the prefetching of the data and sending the data to the cache module; the calculation of a large amount of historical archive data specifically means that the calculated amount of the historical archive data exceeds a preset value;
the checking module, the cache module and the executing module are all designed by thread pools.
Further, the real-time equation comprises a main body and additional information, wherein the main body of the real-time equation is a section of script language code, and the additional information comprises trigger mode configuration;
the real-Time equation is built with several built-in functions, including Value, time and Sum.
Further, the triggering mode of the real-time equation comprises real-time data triggering and time triggering, wherein the real-time data triggering comprises single data triggering and multiple data triggering, and the single data triggering is used in default, and when the single data triggering is used, a triggered measuring point is required to be designated; the real-time equation is added with a set of specifications;
further, the real-time equation attaches a specification in the set of specifications, specifically a limitation of the sum-to-sum number.
Further, checking the legal information of the computing script specifically includes checking whether the computing script contains a measurement point, whether there are non-existent measurement points, whether the script syntax is met, whether the script is met with specifications, whether the script contains a dead loop, whether the script may belong to a time-consuming operation, and whether a loop trigger is initiated.
Further, when the execution module lacks data in execution, the execution module requests data from a real-time data service or a time sequence database; the useful historical data is sent to a caching module for caching; the execution module is also used for sending the execution result to a real-time data service or a time sequence database for storage according to configuration; the execution module embodied as an equation includes two modes:
(1) A real-time calculation mode triggered by real-time data or a timer;
(2) A history recalculation mode that performs calculation of an equation on history data within a specific time range;
configuration at the time of starting a real-time equation determines an execution mode; the calculation result of the real-time calculation mode is sent to the real-time data service (possibly triggering the execution of other equations), and the calculation result of the historical recalculation mode is sent to the time sequence database for storage.
Further, the organization method of the system for the real-time equation is as follows:
s1: the data reported by the data acquisition unit is firstly sent to a real-time data service for caching;
s2: each piece of data corresponds to a unique measuring point, and the measuring point is a label point;
s3: testing the real-time equation;
firstly, the test result is sent to a test module, and after being tested by the test module, the test result is sent to an execution module, and after the execution result is obtained, the test result is returned to a caller;
s4: then adding a real-time equation;
firstly, detecting whether the equation exists, if not, sending the equation to a checking module, and adding the equation by the checking module; the related information is subjected to persistence;
s5: starting a real-time equation;
s51: the processing flow is determined according to different triggering modes, and the method is specifically expressed as follows:
when the triggering mode is real-time data triggering, subscribing corresponding measuring points to the real-time data service, and loading scripts and the like into the execution module; triggering an execution module to execute when the subscription notification arrives;
when the triggering mode is timer triggering, the timer in the execution module directly informs the execution script;
s52: the starting state is persistent;
s6: stopping the real-time equation; canceling the corresponding data subscription or timer, and notifying an execution module to stop the real-time equation; the stop state is persistent;
s7: inquiring a real-time equation; inquiring related information from the persistent storage, and returning to the client;
s8: deleting the real-time equation; stopping the corresponding equation if the corresponding equation is in execution; and deleting the corresponding information in the persistent storage.
The invention has the beneficial effects that:
according to the invention, the real-time equation function is added to the time sequence database, so that the support for real-time calculation can be increased on the basis of the time sequence database, the data processing capacity is enhanced, and the use scene and the application range of the time sequence database are enlarged; meanwhile, the buffer module is used, interaction with the time sequence database is reduced, and overall performance is improved.
Drawings
The present invention is further described below with reference to the accompanying drawings for the convenience of understanding by those skilled in the art.
Fig. 1 is a system block diagram of the present invention.
Detailed Description
As shown in FIG. 1, an organization system supporting real-time equations of a high-speed time sequence database comprises a common time sequence database, a data acquisition unit and a real-time data processing unit; the real-time data processing unit consists of a real-time data service and an equation service;
the real-time data service provides a data subscription interface, and a subscriber is notified when new data arrives; the real-time data service is also used for providing a data query interface and returning a corresponding real-time data list according to the measuring point name list;
the equation service provides an interface and receives requests of testing, adding, starting, stopping, inquiring, deleting and the like of the real-time equation of the client; the equation service comprises a cache module, a checking module and an executing module;
the checking module is used for checking legal information of the calculation script, and the caching module is used for prefetching and caching historical data required by calculation;
the execution module is used for being responsible for executing the script; the execution mode comprises notification triggering and timer triggering; before execution, whether to prefetch data or not is optionally determined and sent to the cache module, which is specifically as follows: executing the calculation of a large amount of historical archive data, prefetching the data and sending the data to a cache module to reduce the I/O number so as to improve the performance, otherwise, not executing the prefetching of the data and sending the data to the cache module; the calculation of a large amount of historical archive data specifically means that the calculated amount of the historical archive data exceeds a preset value;
the checking module, the cache module and the execution module are designed by thread pools so as to fully utilize multiple cores and improve the execution performance.
The real-time equation comprises a main body and additional information, wherein the main body of the real-time equation is a section of script language code, and the additional information comprises trigger mode configuration and the like; the real-Time equation is internally provided with a plurality of built-in functions, wherein the built-in functions comprise Value evaluation, time stamp of Time measurement points, sum of a group of measurement point values, built-in functions such as Integral integration, yearOnYear comparison, linkRelative ratio and the like; these functions can improve performance and reduce difficulty in writing equations;
the triggering mode of the real-time equation comprises real-time data triggering and time triggering, wherein the real-time data triggering comprises single data triggering and multiple data triggering, and under the default, the single data triggering is used, and when the single data triggering is used, a triggered measuring point needs to be designated, namely a label point; the real-time equation is added with a set of specifications, namely constraints, such as the limitation of adding a plurality of numbers in summation, and the like;
checking the legal information of the calculation script specifically includes checking whether the calculation script contains a measuring point, whether there is a non-existing measuring point, whether the script grammar is met, whether the script contains a dead loop, whether the calculation script possibly belongs to time-consuming operation, whether loop triggering is caused, and the like.
The cache module is used for prefetching and caching historical data required by calculation so as to reduce network interaction and improve performance; when the execution module lacks data in execution, the execution module requests data from a real-time data service or a time sequence database; the useful historical data is sent to a caching module for caching; the execution module is also used for sending the execution result to a real-time data service or a time sequence database for storage according to configuration; the execution module of the equation comprises the following two modes:
(1) A real-time calculation mode triggered by real-time data or a timer;
(2) A history recalculation mode that performs calculation of an equation on history data within a specific time range;
configuration at the time of starting a real-time equation determines an execution mode; sending the calculation result of the real-time calculation mode to the real-time data service, and possibly triggering the execution of other equations; and sending the calculation result of the historical recalculation mode into a time sequence database for storage.
The organization method of the system for the real-time equation is as follows:
s1: the data reported by the data acquisition unit is firstly sent to a real-time data service for caching;
s2: each piece of data corresponds to a unique measuring point, and the measuring point is a label point;
s3: testing the real-time equation;
firstly, the test result is sent to a test module, and after being tested by the test module, the test result is sent to an execution module, and after the execution result is obtained, the test result is returned to a caller;
s4: then adding a real-time equation;
firstly, detecting whether the equation exists, if not, sending the equation to a checking module, and adding the equation by the checking module; the related information is subjected to persistence;
s5: starting a real-time equation;
s51: the processing flow is determined according to different triggering modes, and the method is specifically expressed as follows:
when the triggering mode is real-time data triggering, subscribing corresponding measuring points to the real-time data service, and loading scripts and the like into the execution module; triggering an execution module to execute when the subscription notification arrives;
when the triggering mode is timer triggering, the timer in the execution module directly informs the execution script;
s52: the starting state is persistent;
s6: stopping the real-time equation; canceling the corresponding data subscription or timer, and notifying an execution module to stop the real-time equation; the stop state is persistent;
s7: inquiring a real-time equation; inquiring related information from the persistent storage, and returning to the client;
s8: deleting the real-time equation; stopping the corresponding equation if the corresponding equation is in execution; and deleting the corresponding information in the persistent storage.
The invention adds the real-time equation function in the time sequence database, which increases the support of real-time calculation on the basis of the time sequence database, enhances the data processing capability and enlarges the application range and the application range of the time sequence database; meanwhile, the buffer module is used, interaction with the time sequence database is reduced, and overall performance is improved.
The foregoing is merely illustrative of the structures of this invention and various modifications, additions and substitutions for those skilled in the art can be made to the described embodiments without departing from the scope of the invention or from the scope of the invention as defined in the accompanying claims.
Claims (7)
1. The organization system supporting the real-time equation of the high-speed time sequence library is characterized by comprising a common time sequence database, a data acquisition unit and a real-time data processing unit; the real-time data processing unit consists of a real-time data service and an equation service;
the real-time data service provides a data subscription interface, and a subscriber is notified when new data arrives; the real-time data service is also used for providing a data query interface and returning a corresponding real-time data list according to the measuring point name list;
the equation service provides an interface for receiving the test, addition, start, stop, inquiry and deletion requests of the real-time equation of the client; the equation service comprises a cache module, a checking module and an executing module;
the checking module is used for checking legal information of the calculation script, and the caching module is used for prefetching and caching historical data required by calculation;
the execution module is used for being responsible for executing the script; the execution mode comprises notification triggering and timer triggering; before execution, whether to prefetch data or not is optionally determined and sent to the cache module, which is specifically as follows: executing the calculation of a large amount of historical archive data, prefetching the data and sending the data to a cache module to reduce the I/O number so as to improve the performance, otherwise, not executing the prefetching of the data and sending the data to the cache module; the calculation of a large amount of historical archive data specifically means that the calculated amount of the historical archive data exceeds a preset value;
the checking module, the cache module and the executing module are all designed by thread pools.
2. The organizing system of real-time equations supporting a high-speed time base according to claim 1, wherein said real-time equations comprise a body and additional information, the body of the real-time equations being a piece of script language code, the additional information comprising trigger mode configuration;
the real-Time equation is built with several built-in functions, including Value, time and Sum.
3. The organizing system of real-time equations supporting a high-speed time base according to claim 1, wherein the triggering mode of the real-time equations comprises real-time data triggering and time triggering, the real-time data triggering comprises single data triggering and multiple data triggering, the single data triggering is used by default, and triggered measuring points need to be specified when the single data triggering is used; the real-time equation is supplemented with a set of specifications.
4. An organizational system according to claim 3, wherein the real-time equations are added with a specification in a set of specifications, in particular a limitation of the sum-plus-number.
5. The system of claim 1, wherein checking legal information of the computation script comprises checking whether the computation script contains points, whether there are non-existent points, whether the script syntax is met, whether the script is met with specifications, whether the script contains dead loops, whether the script is likely to be time-consuming and whether loop triggers are initiated.
6. The organizational system of real-time equations supporting a high-speed sequential library according to claim 1, wherein said execution module requests data from a real-time data service or sequential database in the absence of data in execution; the useful historical data is sent to a caching module for caching; the execution module is also used for sending the execution result to a real-time data service or a time sequence database for storage according to configuration; the execution module embodied as an equation includes two modes:
(1) A real-time calculation mode triggered by real-time data or a timer;
(2) A history recalculation mode that performs calculation of an equation on history data within a specific time range;
configuration at the time of starting a real-time equation determines an execution mode; and sending the calculation result of the real-time calculation mode to the real-time data service, and sending the calculation result of the historical recalculation mode to the time sequence database for storage.
7. The system for organizing real-time equations supporting a high-speed time base according to claim 1, wherein the system organizes the real-time equations by:
s1: the data reported by the data acquisition unit is firstly sent to a real-time data service for caching;
s2: each piece of data corresponds to a unique measuring point, and the measuring point is a label point;
s3: testing the real-time equation;
firstly, the test result is sent to a test module, and after being tested by the test module, the test result is sent to an execution module, and after the execution result is obtained, the test result is returned to a caller;
s4: then adding a real-time equation;
firstly, detecting whether the equation exists, if not, sending the equation to a checking module, and adding the equation by the checking module; the related information is subjected to persistence;
s5: starting a real-time equation;
s51: the processing flow is determined according to different triggering modes, and the method is specifically expressed as follows:
when the triggering mode is real-time data triggering, subscribing corresponding measuring points to the real-time data service, and loading scripts and the like into the execution module; triggering an execution module to execute when the subscription notification arrives;
when the triggering mode is timer triggering, the timer in the execution module directly informs the execution script;
s52: the starting state is persistent;
s6: stopping the real-time equation; canceling the corresponding data subscription or timer, and notifying an execution module to stop the real-time equation; the stop state is persistent;
s7: inquiring a real-time equation; inquiring related information from the persistent storage, and returning to the client;
s8: deleting the real-time equation; stopping the corresponding equation if the corresponding equation is in execution; and deleting the corresponding information in the persistent storage.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911141230.9A CN110968600B (en) | 2019-11-20 | 2019-11-20 | Organization system of real-time equation supporting high-speed time sequence library |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911141230.9A CN110968600B (en) | 2019-11-20 | 2019-11-20 | Organization system of real-time equation supporting high-speed time sequence library |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN110968600A CN110968600A (en) | 2020-04-07 |
| CN110968600B true CN110968600B (en) | 2023-06-30 |
Family
ID=70030960
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201911141230.9A Active CN110968600B (en) | 2019-11-20 | 2019-11-20 | Organization system of real-time equation supporting high-speed time sequence library |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN110968600B (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112163015B (en) * | 2020-09-22 | 2023-09-22 | 南京信息职业技术学院 | Real-time monitoring method, device and system for time sequence data of Internet of things |
| CN114579408A (en) * | 2022-05-05 | 2022-06-03 | 西安热工研究院有限公司 | A real-time database real-time equation analysis system and method |
| CN115277723B (en) * | 2022-07-19 | 2024-06-18 | 国能信控互联技术有限公司 | Breakpoint-resume transmission method and system based on buffer events in edge acquisition history module |
| CN115599770B (en) * | 2022-10-25 | 2023-07-28 | 北京力控元通科技有限公司 | Data computing script system |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008036464A2 (en) * | 2006-07-26 | 2008-03-27 | Newsilike Media Group, Inc. | Syndication-based application connectors |
| CN110209651A (en) * | 2019-05-16 | 2019-09-06 | 南京华盾电力信息安全测评有限公司 | Time series database system based on MongoDB |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150301875A1 (en) * | 2014-04-22 | 2015-10-22 | Andreas Harnesk | Persisting and managing application messages |
-
2019
- 2019-11-20 CN CN201911141230.9A patent/CN110968600B/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008036464A2 (en) * | 2006-07-26 | 2008-03-27 | Newsilike Media Group, Inc. | Syndication-based application connectors |
| CN110209651A (en) * | 2019-05-16 | 2019-09-06 | 南京华盾电力信息安全测评有限公司 | Time series database system based on MongoDB |
Non-Patent Citations (1)
| Title |
|---|
| 王昊 ; 李龙 ; 黄冬朋 ; 郑磊落 ; 李德文 ; .工业监控软件分布式服务框架的设计与实现.仪器仪表标准化与计量.2015,(06),全文. * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN110968600A (en) | 2020-04-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110968600B (en) | Organization system of real-time equation supporting high-speed time sequence library | |
| CN105302840B (en) | A kind of buffer memory management method and equipment | |
| CN107783985B (en) | Distributed database query method, device and management system | |
| US7634459B1 (en) | Apparatus, method and computer-code for detecting changes in database-statement execution paths | |
| US9703810B2 (en) | Managing record location lookup caching in a relational database | |
| CN109783512A (en) | Data processing method, device, computer equipment and storage medium | |
| US11119742B2 (en) | Cache efficient reading of result values in a column store database | |
| US20140280280A1 (en) | Estimating error propagation for database optimizers | |
| CN105354193A (en) | Caching method, query method, caching apparatus and query apparatus for database data | |
| CN106201839A (en) | The information loading method of a kind of business object and device | |
| CN110807145A (en) | Query engine acquisition method, device and computer-readable storage medium | |
| EP3058481A1 (en) | Acceleration based on cached flows | |
| CN110347706A (en) | For handling method, Database Systems and the computer readable storage medium of inquiry | |
| US10133805B2 (en) | System and method for analyzing sequential data access efficiency | |
| US11567938B1 (en) | Intelligent query plan cache size management | |
| US20140095508A1 (en) | Efficient selection of queries matching a record using a cache | |
| CN110321392A (en) | Data base management system based on sensor monitor data file | |
| CN115617762A (en) | File storage method and equipment | |
| CN109344164B (en) | Data storage method and device | |
| CN113656437B (en) | Model construction method for predicting execution cost stability of reference | |
| CN111209308B (en) | Method and device for optimizing distributed cache | |
| US10997175B2 (en) | Method for predicate evaluation in relational database systems | |
| CN109947828B (en) | Method and device for processing report data | |
| CN110727666A (en) | Cache assembly, method, equipment and storage medium for industrial internet platform | |
| CN112100247A (en) | Method and system for querying data by using ElasticSearch |
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 |