CN109783226B - 可分散数据压力的分布式ats系统 - Google Patents
可分散数据压力的分布式ats系统 Download PDFInfo
- Publication number
- CN109783226B CN109783226B CN201811523692.2A CN201811523692A CN109783226B CN 109783226 B CN109783226 B CN 109783226B CN 201811523692 A CN201811523692 A CN 201811523692A CN 109783226 B CN109783226 B CN 109783226B
- Authority
- CN
- China
- Prior art keywords
- server
- data
- service logic
- load
- load balancing
- 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
Abstract
本发明提供一种可分散数据压力的分布式ATS系统,包括:至少一个全景数据服务器、多个业务逻辑服务器和一个负载均衡控制服务器;全景数据服务器存放线路动态全局数据并作为唯一的权威发布源;业务逻辑服务器保存线路动态全局数据的副本并时刻更新与全景数据服务器的线路动态全局数据保持一致,根据负载均衡控制服务器下发的配置处理不同业务逻辑,将处理结果发给下发的配置中分配的前台/车站分机;负载均衡控制服务器负责均衡整个ATS系统负载均衡,根据当前系统负载情况弹性调整并下发系统中各注册组件的配置,各注册组件根据下发的配置完成相应的功能及处理能力的配置。能使ATS系统的架构易于伸缩,合理分布数据流,均衡各部分的数据压力。
Description
技术领域
本发明实施例涉及轨道交通技术领域,尤其涉及一种可分散数据压力的分布式ATS系统。
背景技术
ATS(列车自动监控)系统作为一个产品,需要应对各地不同地铁线路的情况。各地的地铁线路规模不一致,比如说有些地方可能只有十个站左右,有些地方能够达到四十个站以上,这样的差距造成系统日常的整体计算量的巨大差距。另外,有些线路初期跑车可能比较少,后期跑车能够达到初期的二至三倍以上。这些场景下,如果使用相同的硬件配置可能由于硬件配置过高而造成巨大的资源浪费或由于硬件配置过低而造成系统过于繁忙。同时,原有系统的中心化使得应对规模较大线路时,在中心功能模块上遇到瓶颈,使系统扩展困难。
目前的ATS系统,整个数据流结构示意图如图1所示,应用服务器作为数据流的中心,系统的数据通过应用服务器进行交互,当系统规模增大到某一规模,应用服务器必然成为整个系统的瓶颈;当系统规模较小时,应用服务器的资源无法充分利用。同时,系统的实时运行数据分布于几个不同的位置:应用服务器,各个车站分机。这样就造成要花费较多的资源处理数据一致性的问题。在这种中心化的环境中,还有一个问题,数据有极大的概率无法一次到达目的地,同样的数据要多次传输,这样就人为的消耗了计算资源以及网络资源。
发明内容
针对现有技术存在的问题,本发明实施例提供一种可分散数据压力的分布式ATS系统。
本发明实施例提供一种可分散数据压力的分布式ATS系统,包括:至少一个全景数据服务器、多个业务逻辑服务器和一个负载均衡控制服务器;
每个全景数据服务器和业务逻辑服务器均与所述负载均衡控制服务器相连接,每个业务逻辑服务器与一个全景数据服务器相连接;
所述全景数据服务器,用于存放线路动态全局数据,并作为唯一的权威发布源;
所述业务逻辑服务器,用于保存全景数据服务器存放的线路动态全局数据的副本,并时刻更新与全景数据服务器存放的线路动态全局数据保持一致,业务逻辑服务器的线路动态全局数据只能读,不能修改;根据所述负载均衡控制服务器下发的配置,处理ATS的基于线路动态全局数据的不同业务逻辑,将处理完成的结果发送给所述负载均衡控制服务器下发的配置中分配的前台/车站分机;
所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,以使整个系统组成有机的整体,各注册组件根据下发的配置完成相应的功能及处理能力的配置,所述各注册组件包括全景数据服务器和业务逻辑服务器。
本发明实施例提供的可分散数据压力的分布式ATS系统,包括:至少一个全景数据服务器、多个业务逻辑服务器和一个负载均衡控制服务器;每个全景数据服务器和业务逻辑服务器均与所述负载均衡控制服务器相连接,每个业务逻辑服务器与一个全景数据服务器相连接;所述全景数据服务器,用于存放线路动态全局数据,并作为唯一的权威发布源;所述业务逻辑服务器,用于保存全景数据服务器存放的线路动态全局数据的副本,并时刻更新与全景数据服务器存放的线路动态全局数据保持一致,业务逻辑服务器的线路动态全局数据只能读,不能修改;根据所述负载均衡控制服务器下发的配置,处理ATS的基于线路动态全局数据的不同业务逻辑,将处理完成的结果发送给所述负载均衡控制服务器下发的配置中分配的前台/车站分机;所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,以使整个系统组成有机的整体,各注册组件根据下发的配置完成相应的功能及处理能力的配置,所述各注册组件包括全景数据服务器和业务逻辑服务器,由此,能够使得ATS系统的架构易于伸缩,合理分布数据流,均衡各部分的数据压力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的可分散数据压力的分布式ATS系统的数据流结构示意图;
图2为本发明一实施例提供的一种可分散数据压力的分布式ATS系统的数据流结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2示出了本发明一实施例提供的一种可分散数据压力的分布式ATS系统的数据流结构示意图,如图2所示,本实施例的可分散数据压力的分布式ATS系统,包括:至少一个全景数据服务器、多个业务逻辑服务器和一个负载均衡控制服务器;
每个全景数据服务器和业务逻辑服务器均与所述负载均衡控制服务器相连接,每个业务逻辑服务器与一个全景数据服务器相连接;
所述全景数据服务器,用于存放线路动态全局数据,并作为唯一的权威发布源;
所述业务逻辑服务器,用于保存全景数据服务器存放的线路动态全局数据的副本,并时刻更新与全景数据服务器存放的线路动态全局数据保持一致,业务逻辑服务器的线路动态全局数据只能读,不能修改;根据所述负载均衡控制服务器下发的配置,处理ATS的基于线路动态全局数据的不同业务逻辑,将处理完成的结果发送给所述负载均衡控制服务器下发的配置中分配的前台/车站分机;
所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,以使整个系统组成有机的整体,各注册组件根据下发的配置完成相应的功能及处理能力的配置,所述各注册组件包括全景数据服务器和业务逻辑服务器。
可以理解的是,业务逻辑服务器具体处理何种业务逻辑由负载均衡控制服务器进行分配,处理完成结果的数据流向也由负载均衡控制服务器进行分配。同时,也起到了分散网络压力的作用,在ATS系统中可以有多个前台,每个前台都需要时刻保持最新的线路动态全局数据,在业务逻辑服务器中会根据每个前台的功能,推送每个前台关心的功能数据的改变。有多个业务逻辑服务器,每个业务逻辑服务器负担的网络压力就会变小。
可以理解的是,为了合理的分布数据流,本实施例首先在整个系统中,定义了全景数据服务器,确立整个系统的权威的数据来源,解决了系统中数据一致性的问题,同时,全景数据服务器中的数据实时复制到业务逻辑服务器中,分散了数据中心。全景数据服务器中的数据是整个系统的实时运行数据,对实时运行数据写入的操作只能在全景数据服务器上进行,业务逻辑服务器只能对全景数据的副本进行读取,这样就同时兼顾了数据一致性与数据的处理速度。
本发明实施例提供的可分散数据压力的分布式ATS系统,与现有传统的ATS系统架构相比,去除了应用服务器增加了全景数据服务器、多个业务逻辑服务器和负载均衡控制服务器,能够使得ATS系统的架构易于伸缩,合理分布数据流(去中心化),均衡各部分的数据压力。
在具体应用中,所述线路动态全局数据,可以包括:
列车即时数据、线路地面设备即时数据(例如信号机状态,道岔状态等)、当日计划运行图即时数据、当日实际运行图即时数据和控制即时数据等。
可以理解的是,当所述线路动态全局数据中的任意即时数据发生改变时,第一时间改变需要到达全景数据服务器,同时,在全景数据服务器的业务逻辑处理单元,对改变的数据进行处理,处理完成的结果保存到线路动态全局数据。
在具体应用中,在ATS系统每个组件(所有的全景数据服务器、业务逻辑服务器,以及ATS系统中所有的设备)上线时,均向所述负载均衡控制服务器进行注册,由所述负载均衡控制服务器根据当前ATS系统的负载情况,分配注册组件的功能及数据流,达到负载均衡的目的。
所有的全景数据服务器与业务逻辑服务器在负载均衡控制服务器上进行注册,同时,系统中所有的设备要在负载均衡控制服务器进行注册,以确定使用某个功能时,提供服务的服务器。举个例子,车站分机需要实时的列车位置,在本实施例所述系统中是这样取得的。车站分机(可命名这台车站分机为车站分机A)启动时,向负载均衡控制服务器注册自己(注册信息包括自己的详细信息以及自己关心的数据种类),负载均衡控制服务器会维护一份实时的全景数据服务器与业务逻辑服务器的负载列表,根据系统当前的负载均衡策略,负载均衡控制服务器选定一台业务逻辑服务器(可命名这台业务逻辑服务器为逻辑业务服务器A)分配给车站分机A。同时,通知逻辑业务服务器A为车站分机A提供数据同步服务。这一过程完成后,当全景数据服务器中的线路动态全局数据中车站分机A关心的数据发生变化时,逻辑业务服务器A会为车站分机A推送变化数据。由于车站分机A关心的数据包含列车位置数据,当列车位置发生变化时,车站分机马上就收到了最新的列车位置。
进一步地,在上述实施例的基础上,所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,可以包括:
当一个全景数据服务器的数据写入压力大于预设压力阈值时,通过分拆数据的方式,将所述全景数据服务器的数据写入压力拆分到多个全景数据服务器中(直到增加到适应业务压力为止),使所有的数据在与拆分到的多个全景数据服务器中连接的业务逻辑服务器上整合为一个整体的线路动态全局数据的副本。这样就使得系统可以任意的伸与缩,形成系统的弹性。
例如,全景数据服务器有可能会出现由于一台服务器处理能力不够而增加一台全景数据服务器的状况,这时,我们就可以减少第一台全景数据服务器的功能配置项,并把减少的功能配置项加到新增的全景数据服务器中,这样,两台全景数据服务器各行其是,互为补充,完成了均衡负载的目的。
进一步地,在上述实施例的基础上,所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,可以包括:
当任一全景数据服务器出现故障时,将与所述全景数据服务器连接的一个业务逻辑服务器升级为新的全景数据服务器,同时,根据当前的负载分配策略,重新分配各业务逻辑服务器的负载。
这样,可以保证本实施例ATS系统的不间断运行。
进一步地,在上述实施例的基础上,所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,可以包括:
当有新的业务逻辑服务器加入ATS系统时,根据当前的负载分配策略,重新分配各业务逻辑服务器的负载。
进一步地,在上述实施例的基础上,所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,可以包括:
当有业务逻辑服务器退出ATS系统或者出现故障时,根据当前的负载分配策略,重新分配各业务逻辑服务器的负载。
具体地,在负载均衡控制服务器中,对于负载的分配可能有不同的分配方式,比如,所述负载分配策略可以包括:令与同一全景数据服务器连接的每个业务逻辑服务器处理相同的业务逻辑的功能;或者,令与同一全景数据服务器连接的每个业务逻辑服务器处理不同的业务逻辑的功能。本实施例中,可以将这些不同的负载分配策略作为负载均衡控制服务器的配置,启动时,使用什么样的负载分配策略配置,那么在均衡负载时,就用这种负载分配策略。
本发明实施例提供的可分散数据压力的分布式ATS系统,与现有传统的ATS系统架构相比,去除了应用服务器增加了全景数据服务器、多个业务逻辑服务器和负载均衡控制服务器,能够使得ATS系统的架构易于伸缩,合理分布数据流,均衡各部分的数据压力。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种可分散数据压力的分布式ATS系统,其特征在于,包括:至少一个全景数据服务器、多个业务逻辑服务器和一个负载均衡控制服务器;
每个全景数据服务器和业务逻辑服务器均与所述负载均衡控制服务器相连接,每个业务逻辑服务器与一个全景数据服务器相连接;
所述全景数据服务器,用于存放线路动态全局数据,并作为唯一的权威发布源;
所述业务逻辑服务器,用于保存全景数据服务器存放的线路动态全局数据的副本,并时刻更新与全景数据服务器存放的线路动态全局数据保持一致,业务逻辑服务器的线路动态全局数据只能读,不能修改;根据所述负载均衡控制服务器下发的配置,处理ATS的基于线路动态全局数据的不同业务逻辑,将处理完成的结果发送给所述负载均衡控制服务器下发的配置中分配的前台/车站分机;
所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,以使整个系统组成有机的整体,各注册组件根据下发的配置完成相应的功能及处理能力的配置,所述各注册组件包括全景数据服务器和业务逻辑服务器。
2.根据权利要求1所述的系统,其特征在于,所述线路动态全局数据,包括:
列车即时数据、线路地面设备即时数据、当日计划运行图即时数据、当日实际运行图即时数据和控制即时数据。
3.根据权利要求1所述的系统,其特征在于,在ATS系统每个组件上线时,均向所述负载均衡控制服务器进行注册,由所述负载均衡控制服务器根据当前ATS系统的负载情况,分配注册组件的功能及数据流。
4.根据权利要求1所述的系统,其特征在于,所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,包括:
当一个全景数据服务器的数据写入压力大于预设压力阈值时,通过分拆数据的方式,将所述全景数据服务器的数据写入压力拆分到多个全景数据服务器中,使所有的数据在与拆分到的多个全景数据服务器中连接的业务逻辑服务器上整合为一个整体的线路动态全局数据的副本。
5.根据权利要求1所述的系统,其特征在于,所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,包括:
当任一全景数据服务器出现故障时,将与所述全景数据服务器连接的一个业务逻辑服务器升级为新的全景数据服务器,同时,根据当前的负载分配策略,重新分配各业务逻辑服务器的负载。
6.根据权利要求1所述的系统,其特征在于,所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,包括:
当有新的业务逻辑服务器加入ATS系统时,根据当前的负载分配策略,重新分配各业务逻辑服务器的负载。
7.根据权利要求1所述的系统,其特征在于,所述负载均衡控制服务器,用于负责均衡整个ATS系统的负载均衡,根据当前ATS系统的负载情况,弹性调整并下发ATS系统中各注册组件的配置,包括:
当有业务逻辑服务器退出ATS系统或者出现故障时,根据当前的负载分配策略,重新分配各业务逻辑服务器的负载。
8.根据权利要求5-7中任一项所述的系统,其特征在于,所述负载分配策略,包括:
令与同一全景数据服务器连接的每个业务逻辑服务器处理相同的业务逻辑的功能。
9.根据权利要求5-7中任一项所述的系统,其特征在于,所述负载分配策略,包括:
令与同一全景数据服务器连接的每个业务逻辑服务器处理不同的业务逻辑的功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811523692.2A CN109783226B (zh) | 2018-12-13 | 2018-12-13 | 可分散数据压力的分布式ats系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811523692.2A CN109783226B (zh) | 2018-12-13 | 2018-12-13 | 可分散数据压力的分布式ats系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783226A CN109783226A (zh) | 2019-05-21 |
CN109783226B true CN109783226B (zh) | 2020-09-25 |
Family
ID=66495898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811523692.2A Active CN109783226B (zh) | 2018-12-13 | 2018-12-13 | 可分散数据压力的分布式ats系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783226B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923199A (zh) * | 2021-10-11 | 2022-01-11 | 交控科技股份有限公司 | 一种数据通信传输优化方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658449B1 (en) * | 2000-02-17 | 2003-12-02 | International Business Machines Corporation | Apparatus and method for periodic load balancing in a multiple run queue system |
CN102904949A (zh) * | 2012-10-08 | 2013-01-30 | 华中科技大学 | 一种基于副本的动态元数据集群系统 |
CN103368864A (zh) * | 2013-07-31 | 2013-10-23 | 北京华易互动科技有限公司 | 一种基于c/s架构的智能负载均衡方法 |
CN104767208A (zh) * | 2015-01-20 | 2015-07-08 | 国家电网公司 | 一种可远程控制的智能负荷平衡无功补偿装置 |
CN107508913A (zh) * | 2017-09-22 | 2017-12-22 | 交控科技股份有限公司 | 基于云计算的ats系统及处理方法 |
CN107968843A (zh) * | 2017-12-29 | 2018-04-27 | 中国铁路设计集团有限公司 | 一种新型城市轨道交通线网级综合云平台系统 |
-
2018
- 2018-12-13 CN CN201811523692.2A patent/CN109783226B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658449B1 (en) * | 2000-02-17 | 2003-12-02 | International Business Machines Corporation | Apparatus and method for periodic load balancing in a multiple run queue system |
CN102904949A (zh) * | 2012-10-08 | 2013-01-30 | 华中科技大学 | 一种基于副本的动态元数据集群系统 |
CN103368864A (zh) * | 2013-07-31 | 2013-10-23 | 北京华易互动科技有限公司 | 一种基于c/s架构的智能负载均衡方法 |
CN104767208A (zh) * | 2015-01-20 | 2015-07-08 | 国家电网公司 | 一种可远程控制的智能负荷平衡无功补偿装置 |
CN107508913A (zh) * | 2017-09-22 | 2017-12-22 | 交控科技股份有限公司 | 基于云计算的ats系统及处理方法 |
CN107968843A (zh) * | 2017-12-29 | 2018-04-27 | 中国铁路设计集团有限公司 | 一种新型城市轨道交通线网级综合云平台系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109783226A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9912538B2 (en) | Synchronization of configuration file of virtual application distribution chassis | |
CN109703605B (zh) | 一种基于微服务的ats系统 | |
CN110365502A (zh) | 一种服务升级管理的方法、装置及存储介质 | |
CN111953780A (zh) | 微服务灰度发布方法、装置、设备、系统及存储介质 | |
US8713125B2 (en) | Method and system for scaling usage of a social based application on an online social network | |
WO2016066199A1 (en) | Virtual content delivery network | |
CN106777311B (zh) | 航班舱位状态缓存方法和系统 | |
CN108062243A (zh) | 执行计划的生成方法、任务执行方法及装置 | |
CN109697120A (zh) | 用于应用迁移的方法、电子设备 | |
CN107015972A (zh) | 一种机房业务迁移方法、装置和系统 | |
US10338629B2 (en) | Optimizing neurosynaptic networks | |
CN109783226B (zh) | 可分散数据压力的分布式ats系统 | |
CN109672712A (zh) | 数据同步方法、装置、超级控制器、域控制器及存储介质 | |
CN111030983A (zh) | 基于分布式分发的数据处理方法、装置及相关设备 | |
CN104410531A (zh) | 冗余的系统架构方法 | |
CN108366110A (zh) | 一种网站数据交互系统及方法 | |
CN116777182A (zh) | 半导体晶圆制造执行任务派工方法 | |
US10915704B2 (en) | Intelligent reporting platform | |
CN106791932B (zh) | 分布式转码系统、方法及其装置 | |
US20200412619A1 (en) | Network System, Topology Management Method, and Program | |
CN109842497B (zh) | Dns服务器的配置更新的方法及装置、终端设备和配置更新系统 | |
CN108880896A (zh) | 一种基于大型机的程序灰度发布方法及装置 | |
CN108667726A (zh) | 交易系统和二级路由控制方法 | |
US11789973B2 (en) | Software-defined database replication links | |
CN104486447A (zh) | 基于Big-Cluster的大平台集群系统 |
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 |