CN108540313B - 一种基于类型标识符的北向接口采集电路结构的方法 - Google Patents
一种基于类型标识符的北向接口采集电路结构的方法 Download PDFInfo
- Publication number
- CN108540313B CN108540313B CN201810234423.8A CN201810234423A CN108540313B CN 108540313 B CN108540313 B CN 108540313B CN 201810234423 A CN201810234423 A CN 201810234423A CN 108540313 B CN108540313 B CN 108540313B
- Authority
- CN
- China
- Prior art keywords
- circuit structure
- circuit
- ems
- northbound interface
- binary stream
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于类型标识符的北向接口采集电路结构的方法,包括以下步骤:将运营商的电路结构序列化为第一二进制流,并填入电路结构的类型对应的标识符后,再序列化为第二二进制流;北向接口采集所述第二二进制流,并反序列化获得所述标识符和所述第一二进制流;解析所述标识符获得电路结构的类型,根据电路结构的类型对应的转换函数,将所述第一二进制流转换为北向接口内部应用的统一电路模型;根据运营商的标准,将所述统一电路模型转换为对应格式输出给运营商。本发明,通过引入电路结构的类型对应的标识符GUID,北向接口采集和缓存电路时集电路结构时不再关注具体电路结构的类型,从而简化了采集电路结构的处理逻辑,提高了效率。
Description
技术领域
本发明涉及通信系统管理技术领域,具体涉及一种基于类型标识符的北向接口采集电路结构的方法。
背景技术
对于通信行业,在业务需求和技术发展的双重驱动下,促使传输网从 40G网络向100G网络演进,新网络的建设以及传统网络的升级改造,促使通信行业加快了重新设计新的网络组织架构和技术架构,为进一步提高传输网的灵活调度能力、业务适应能力和安全可靠性,进而提升全网的集约化运营能力提供了契机。
目前,传输网的运营维护主要是集团、省和地(市)三级体系,运营维护主要通过人工方式进行,一方面业务的响应时间较长难以满足客户快速开通业务及网络故障或拥塞时,业务快速恢复的需要,另一方面由于维护人员的操作水平参差不齐以及不规范的操作,对后期维护带来较大的影响。
集约化管理能够大大提高系统的整体效率,进而提高企业的效益。于是,目前各大运营商对传送网也提出了集约化管理的需求。
如图1所示的北向接口组网图中,运营商的EMS通过北向接口同时管理着OTN、Packet业务等多类型电路。随着传送网的电路规模扩大、类型增多,北向接口的业务采集效率和多标准兼容性成为制约集约化管理的性能瓶颈,主要体现在:
(1)由于网络管理系统管理的电路数量和电路结构类型不断提升,电路处理逻辑越来越复杂,导致了北向接口采集时间较长;
(2)传送网设备从单一功能演进到核心层、汇聚层并存,导致北向接口对电路结构的批量处理能力因模型差异而劣化。
(3)众多的不同运营商(厂家)制定了不同的规范,由此,北向接口在输出电路结构时需要遵循不同的标准,影响了北向接口的通用性。
由此可见,需要对现有北向接口的处理流程和方法进行改进,以提高北向接口采集EMS的电路结构的效率,增强基础模块的通用性。
发明内容
本发明所要解决的技术问题是现有的北向接口采集电路结构时间长、通用性差的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种基于类型标识符的北向接口采集电路结构的方法,用于通信网管理系统NMS基于北向接口对EMS的电路结构进行采集,该方法包括以下步骤:
将运营商的电路结构序列化为第一二进制流,并填入电路结构的类型对应的标识符后,再序列化为第二二进制流;
北向接口采集所述第二二进制流;
反序列化所述第二二进制流,获得所述标识符和所述第一二进制流;
解析所述标识符获得电路结构的类型,根据电路结构的类型对应的转换函数,将所述第一二进制流转换为北向接口内部应用的统一电路模型;
根据运营商的标准,将所述统一电路模型转换为对应格式输出给运营商。
在上述方法中,序列化为第二二进制流的具体步骤包括:
定义一个统一的、不区分电路结构的类型的数据结构CircuitEms,该数据结构CircuitEms包含2部分:
将运营商的电路结构序列化为第一二进制流的SeriCircuitInfo和电路结构的类型对应的GUID;
首先序列化运营商的电路结构为第一二进制流,并填入CircuitEms中的SeriCircuitInfo中;
然后将电路结构的类型对应的GUID填入CircuitEms中的GUID;
最后将CircuitEms序列化为第二二进制流SeriCircuitEms,并存储至缓存队列EMS-DATA-QUEUE中。
在上述方法中,北向接口采用多线程并发从EMS采集序列化后的电路结构,即所述第二二进制流。
在上述方法中,北向接口的适配层采用多线程并发从所述缓存队列 EMS-DATA-QUEUE中读取数据。
在上述方法中,北向接口的信息模型层维护所述统一电路模型,所述统一电路模型不依赖于电路结构的类型、输出标准。
在上述方法中,北向接口的视图层根据运营商的标准,对所述统一电路模型转换后输出至运营商,并添加GUID作为电路结构的类型标识符。
在上述方法中,北向接口通过远程过程调用采集SeriCircuitEms,并存放到缓存队列EMS-DATA-QUEUE中。
在上述方法中,北向接口的适配层从缓存队列EMS-DATA-QUEUE中取出所述第二二进制流SeriCircuitEms;
反序列化所述第二二进制流SeriCircuitEms为数据结构CircuitEms,并解析获得电路结构的类型符GUID;
根据类型符GUID,反序列化数据结构CircuitEms中的SeriCircuitInfo,得到电路结构的类型;
北向接口调用对应的电路结构的类型的转换函数,将所述第一二进制流转换为所述统一电路模型UniNbiCircuitInfo。
在上述方法中,北向接口通过对视图层功能的调整应对不同标准的切换。
在上述方法中,北向接口对EMS电路结构的采集和适配均并发运行。
与现有技术相比,本发明提供的基于类型标识符的北向接口采集电路结构的方法,通过引入电路结构的类型对应的标识符GUID,北向接口采集和缓存电路结构时不再关注具体电路结构的类型,从而简化了采集电路结构的处理逻辑,缩短了北向接口采集电路结构的时间,大大提高了北向接口采集EMS电路结构数据的效率。
另外,北向接口对于EMS电路结构的采集、序列化,以及北向接口的适配层从队列中读取数据均采用了并发运行的方式,进一步提高了数据采集的效率。
并且,利用北向接口切换视图的方式,可以方便地切换不同的运营商,从而兼容不同运营商的标准,具用很强的通用性。
通过以上方式,突破了集约化管理的性能瓶颈,使得传送网集约化管理的实现越来越变得可行和可操作,对于实现传送网的集约化管理,提高灵活调度能力、业务适应能力和安全可靠性具有非常大的促进作用。
附图说明
图1为北向接口的组网示意图;
图2为本发明提供的方法的流程图;
图3为本发明中不区分电路结构的类型的数据结构CircuitEms示意图;
图4为本发明中具体实施例2的工作过程示意图。
具体实施方式
本发明提供了一种基于类型标识符的北向接口采集电路结构的方法,用于通信网管理系统NMS基于北向接口对EMS((Element Management System,网元管理系统)的电路结构进行采集。
北向接口是为用户(运营商)接入和管理网络而定义的接口,使用北向接口定义和开发应用层中的网络管理应用程序,这样才能通过这些应用程序接入和管理网络,通常这种应用都是以简单、易用且直观的界面形式呈现给操作者,操作者通过界面点击或配置发送命令,而系统内部则使用北向接口将这些命令发送给数据处理层。数据处理层中驻留有时刻运行着的北向接口处理进程,此进程接收到应用层发送来的命令后,将控制命令转发给下一层据管理层,以便继续执行。而接收到的如果是请求报文,则将来自数据管理层的数据按北向接口规定的格式封装后返回给应用层。
本发明提供的基于类型标识符的北向接口采集电路结构的方法,北向接口采集EMS的电路结构时,不同类型的电路结构可以在统一流程中处理,简化了采集电路结构的处理逻辑,并且可以简易方便地切换不同运营商的标准,增强了北向接口产品基础模块的通用性。下面结合说明书附图和具体实施方式对本发明做出详细说明。
本发明的实现原理是:
北向接口在采集和缓存EMS的电路结构时,将EMS的电路结构作为净荷数据序列化为二进制流(二进制数据流),并在该二进制流的外部增加用于标识电路结构的类型的全局唯一标识符GUID,由此不再区分电路结构的类型,不同类型的电路结构均在统一流程中进行处理,从而简化了采集电路结构的处理逻辑。
为此,如图2所示,本发明提供的基于类型标识符的北向接口采集电路结构的方法,其基本技术方案的实现主要包括以下步骤:
步骤110:将运营商的电路结构序列化为第一二进制流,并填入电路结构的类型对应的标识符后,再序列化为第二二进制流;
步骤120:北向接口采集上述第二二进制流;
步骤130:北向接口反序列化上述第二二进制流,获得上述标识符和上述第一二进制流;
步骤140:解析获得的上述标识符获得电路结构的类型,根据电路结构的类型对应的转换函数,将获得的上述第一二进制流转换为用于北向接口内部应用的统一电路模型;
步骤150:根据运营商的标准,将上述统一电路模型转换为对应格式输出给运营商,供运营商使用。
其中,一个运营商根据其实际业务可以有多个电路结构,同时也可以有多个运营商,为此,本发明在实际应用中,可将多个运营商的多个电路结构序列化为多个第一二进制流,并分别填入电路结构的类型对应的标识符后,再序列化为多个第二二进制流。
另外,北向接口的信息模型层维护上述统一电路模型,统一电路模型的结构UniNbiCircuitInfo不依赖于电路结构的类型和输出标准,该统一电路模型的结构UniNbiCircuitInfo包含表1所示的如下信息:
表1 UniNbiCircuitInfo结构
为了对本发明的技术方案和实现方式做出更清楚地说明,以下介绍实现本发明技术方案的几个优选的具体实施例。显然,以下所描述的具体实施例仅为本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具体实施例1。
本发明具体实施例1以L2VPN电路为例进行说明,具体实施例1技术方案实现的主要步骤包括:
第一步:
定义一个统一的、不区分电路结构的类型的数据结构CircuitEms,如图3所示,该数据结构CircuitEms包含两部分:
第1部分:将运营商的电路结构序列化为第一二进制流的SeriCircuitInfo;
第2部分:电路结构的类型对应的GUID。
第二步:
EMS向北向接口提供电路结构L2vpnEms(电路结构数据)时,执行以下操作:
首先,EMS将运营商的电路结构L2vpnEms作为净荷数据序列化为第一二进制流SeriCircuitInfo,并填入CircuitEms中的SeriCircuitInfo中。
然后,将电路结构的类型对应的GUID填入CircuitEms中的GUID,如图3所示。由于GUID位于第一二进制流SeriCircuitInfo的外部,因此北向接口在获取该GUID时将不再依赖于电路结构。
最后,将CircuitEms序列化为第二二进制流SeriCircuitEms,并存储至北向接口的缓存队列EMS-DATA-QUEUE中。
第三步:
首先,北向接口的适配层从缓存队列EMS-DATA-QUEUE中取出第二二进制流SeriCircuitEms;
然后,北向接口反序列化第二二进制流SeriCircuitEms为数据结构CircuitEms,并通过解析数据结构CircuitEms获得电路结构的类型符GUID;
接下来,再根据类型符GUID,反序列化CircuitEms中的SeriCircuitInfo,得到对应的电路结构的类型,本实施例中得到的电路结构的类型为L2VPN;
第四步:
北向接口调用对应的电路结构的类型L2VPN的转换函数,将获得的第一二进制流转换为统一电路模型UniNbiCircuitInfo。
第五步:
根据运营商的标准,对统一电路模型UniNbiCircuitInfo进行转换,然后输出给运营商,并添加GUID作为电路结构的类型标识符,供运营商使用。
为了进一步提高本发明的效率,在以上具体实施例1的基础上,北向接口可以采用多线程并发从EMS采集序列化后的电路结构,或者北向接口的适配层采用多线程并发从缓存队列EMS-DATA-QUEUE中读取数据,或者采集电路结构和读取数据同时采用多线程并发进行。下面以同时采用多线程并发进行介绍本发明的具体实施例2。
具体实施例2。
本具体实施例是对具体实施例1的优化,其中相同的步骤和处理方式将不再详细说明。
如图4所示,北向接口采用多线程并发从EMS采集序列化后的电路结构(第二二进制流SeriCircuitEms),采集后不区分电路结构的类型都存储在缓存队列EMS-DATA-QUEUE中。
北向接口的适配层采用多线程并发从缓存队列EMS-DATA-QUEUE中读取数据(第二二进制流SeriCircuitEms),并通过GUID辨识电路结构的类型,将电路结构反序列化为对应的电路结构,并调用对应的转换接口将该电路结构转换为北向接口的统一电路模型。
电路结构的采集和适配转换为北向接口的统一电路模型,其方法与具体实施例1相同,在此不再赘述。
本发明提供的方案,可以方便地切换不同运营商的标准,增强了北向接口产品基础模块的通用性,从而形成本发明的具体实施例3。
具体实施例3。
具体实施例3是对步骤150的进一步细化,包括以下步骤:
北向接口定义了一个统一的、信息完备的电路模型,该电路模型对应的数据结构为各运营商标准所需信息的并集。
针对每个运营商标准,北向接口都构建有一个独立的视图功能层模块,每个视图层对应一个运行的实例,切换不同运营商的标准时只需对相关的视图层实例进行启停操作。例如,对运营商标准1,北向服务的视图功能层模块1负责将统一电路模型转换为运营商标准1要求的数据。对运营商标准2,北向服务的视图功能层模块2负责将统一电路模型转换为运营商标准 1要求的数据。因此北向服务可能存在多个视图功能层模块。
适配新的运营商标准时,北向接口只需要新增对应的视图功能层模块,即可实现产品各模块间的松耦合。
以上具体实施例是以L2VPN电路为例进行说明,其他电路结构,如OCH、ODUk等,处理方式相同,不再重复描述。
通过以上的介绍,本发明提供的方法,具有以下明显的优势:
(1)通过在步骤110中引入电路结构的类型对应的标识符GUID,使得步骤120采集电路结构时不再关注具体电路结构的类型,电路结构转换逻辑后移至步骤140,简化了采集电路结构的处理逻辑。
(2)步骤120采集电路结构和步骤130、140将电路结构适配转换为用于北向接口内部应用的统一电路模型实现了并发运行,并且内部处理流程也采用并发,全流程的采集效率更高,消除了北向接口与厂商网管数据交互的效率瓶颈。
(3)北向接口维护了一个不依赖于输出标准的统一电路模型,步骤150 使用统一电路模型为运营商提供定制化数据,北向接口面对不同输出标准时只需要对视图层功能作出调整,不再变更步骤110和步骤140的流程,增强了北向接口产品基础模块的通用性。
本发明并不局限于上述最佳实施方式,任何人应该得知在本发明的启示下做出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。
Claims (9)
1.一种基于类型标识符的北向接口采集电路结构的方法,其特征在于,包括以下步骤:
将运营商的电路结构序列化为第一二进制流,并填入电路结构的类型对应的标识符后,再序列化为第二二进制流;
北向接口采集所述第二二进制流;
反序列化所述第二二进制流,获得所述标识符和所述第一二进制流;
解析所述标识符获得电路结构的类型,根据电路结构的类型对应的转换函数,将所述第一二进制流转换为北向接口内部应用的统一电路模型;
根据运营商的标准,将所述统一电路模型转换为对应格式输出给运营商;
序列化为第二二进制流的具体步骤包括:
定义一个统一的、不区分电路结构的类型的数据结构CircuitEms,该数据结构CircuitEms包含2部分:
将运营商的电路结构序列化为第一二进制流的SeriCircuitInfo和电路结构的类型对应的GUID;
首先序列化运营商的电路结构为第一二进制流,并填入CircuitEms中的SeriCircuitInfo中;
然后将电路结构的类型对应的GUID填入CircuitEms中的GUID;
最后将CircuitEms序列化为第二二进制流SeriCircuitEms,并存储至缓存队列EMS-DATA-QUEUE中。
2.根据权利要求1所述的方法,其特征在于,北向接口采用多线程并发从EMS采集序列化后的电路结构,即所述第二二进制流。
3.根据权利要求1所述的方法,北向接口的适配层采用多线程并发从所述缓存队列EMS-DATA-QUEUE中读取数据。
4.根据权利要求1所述的方法,其特征在于,北向接口的信息模型层维护所述统一电路模型,所述统一电路模型不依赖于电路结构的类型、输出标准。
5.根据权利要求1所述的方法,其特征在于,北向接口的视图层根据运营商的标准,对所述统一电路模型转换后输出至运营商,并添加GUID作为电路结构的类型标识符。
6.根据权利要求1所述的方法,其特征在于,北向接口通过远程过程调用采集SeriCircuitEms,并存放到缓存队列EMS-DATA-QUEUE中。
7.根据权利要求1所述的方法,其特征在于,北向接口的适配层从缓存队列EMS-DATA-QUEUE中取出所述第二二进制流SeriCircuitEms;
反序列化所述第二二进制流SeriCircuitEms为数据结构CircuitEms,并解析获得电路结构的类型符GUID;
根据类型符GUID,反序列化数据结构CircuitEms中的SeriCircuitInfo,得到电路结构的类型;
北向接口调用对应的电路结构的类型的转换函数,将所述第一二进制流转换为所述统一电路模型UniNbiCircuitInfo。
8.根据权利要求1所述的方法,其特征在于,北向接口通过对视图层功能的调整应对不同标准的切换。
9.根据权利要求1所述的方法,其特征在于,北向接口对EMS电路结构的采集和适配均并发运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810234423.8A CN108540313B (zh) | 2018-03-21 | 2018-03-21 | 一种基于类型标识符的北向接口采集电路结构的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810234423.8A CN108540313B (zh) | 2018-03-21 | 2018-03-21 | 一种基于类型标识符的北向接口采集电路结构的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108540313A CN108540313A (zh) | 2018-09-14 |
CN108540313B true CN108540313B (zh) | 2020-12-29 |
Family
ID=63485028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810234423.8A Active CN108540313B (zh) | 2018-03-21 | 2018-03-21 | 一种基于类型标识符的北向接口采集电路结构的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108540313B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513522B (zh) * | 2022-01-04 | 2023-05-16 | 武汉烽火技术服务有限公司 | 一种北向接口资源导出系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043380A (zh) * | 2007-04-20 | 2007-09-26 | 北京航空航天大学 | 虚拟机网络拓扑信息的处理方法及装置 |
CN105450359A (zh) * | 2015-10-14 | 2016-03-30 | 深圳市网通电子商务有限公司 | 自定义二进制结构化协议数据的发送和接收方法 |
CN106095698A (zh) * | 2016-06-03 | 2016-11-09 | 合网络技术(北京)有限公司 | 面向对象的缓存写入、读取方法及装置 |
KR20170139870A (ko) * | 2016-06-10 | 2017-12-20 | 주식회사 엘지유플러스 | Mpls-tp 기반 네트워크의 이종 벤더망 연동시 서비스 id를 이용한 회선 설정 방법 및 시스템 |
-
2018
- 2018-03-21 CN CN201810234423.8A patent/CN108540313B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043380A (zh) * | 2007-04-20 | 2007-09-26 | 北京航空航天大学 | 虚拟机网络拓扑信息的处理方法及装置 |
CN105450359A (zh) * | 2015-10-14 | 2016-03-30 | 深圳市网通电子商务有限公司 | 自定义二进制结构化协议数据的发送和接收方法 |
CN106095698A (zh) * | 2016-06-03 | 2016-11-09 | 合网络技术(北京)有限公司 | 面向对象的缓存写入、读取方法及装置 |
KR20170139870A (ko) * | 2016-06-10 | 2017-12-20 | 주식회사 엘지유플러스 | Mpls-tp 기반 네트워크의 이종 벤더망 연동시 서비스 id를 이용한 회선 설정 방법 및 시스템 |
Non-Patent Citations (1)
Title |
---|
网管系统中SOAP北向接口的设计与实现;刘晓妮;《中国优秀硕士学位论文全文数据库(电子期刊) 信息科技辑》;20120315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108540313A (zh) | 2018-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103905281B (zh) | 可互换实现网络控制器与网络终端功能的fc‑ae‑1553总线节点卡 | |
CN109450759B (zh) | 一种fc-ae-1553总线控制节点设备的系统 | |
CN109194679B (zh) | 一种基于SpaceFibre接口的多协议接口数据采集装置和采集方法 | |
WO2017012453A1 (zh) | 用于数据传输的方法和设备 | |
CN108737912B (zh) | 报文互通方法、potn互通模块及potn系统 | |
CN106385390A (zh) | 一种基于fpga实现万兆以太网电口传输的方法及系统 | |
CN210867769U (zh) | 一种多功能总线桥接器 | |
CN103533310A (zh) | 基于光纤网络的高清数字视频监控装置及监控方法 | |
CN108540313B (zh) | 一种基于类型标识符的北向接口采集电路结构的方法 | |
CN1112018C (zh) | 异步传输模式接口模块 | |
CN102025421A (zh) | 千兆宽带隔离的pdh光端机 | |
CN100479432C (zh) | 一种报文编辑电路及方法 | |
CN109413094A (zh) | 基于hs-adix网络的航天数据传输系统 | |
CN206922798U (zh) | 一种多协议转换器、数据发送设备及通信系统 | |
CN104125224A (zh) | 一种异构网络多链路并行移动通信传输系统及方法 | |
CN1881845B (zh) | 实现多路多种数据业务汇聚传送的装置及其方法 | |
CN101800777A (zh) | 开放式网络数据采集方法、装置及基于该装置的监测系统 | |
CN114448493A (zh) | 一种卫星一体化数据交互系统 | |
CN116156012B (zh) | 通用的异构物联网设备标准化接入和数据解析系统与方法 | |
CN109656622A (zh) | 一种实现通信设备自动化测试中网络测试仪的封装方法 | |
CN206004845U (zh) | 应急广播音频编转码器 | |
CN110676818B (zh) | 一种基于星型网络拓扑的就地化母线保护方法与系统 | |
CN100421392C (zh) | 实现sdh逻辑测试的系统及其方法 | |
CN203645769U (zh) | 基于光纤网络的高清数字视频监控装置 | |
CN201937592U (zh) | 新型千兆宽带隔离的pdh光端机 |
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 |