CN1525714A - 一种asn.1协议处理器 - Google Patents
一种asn.1协议处理器 Download PDFInfo
- Publication number
- CN1525714A CN1525714A CNA031053505A CN03105350A CN1525714A CN 1525714 A CN1525714 A CN 1525714A CN A031053505 A CNA031053505 A CN A031053505A CN 03105350 A CN03105350 A CN 03105350A CN 1525714 A CN1525714 A CN 1525714A
- Authority
- CN
- China
- Prior art keywords
- protocol
- data
- asn
- server end
- client
- 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.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种ASN.1协议处理器,用于在客户端和服务器端之间进行协议交互和协议数据与字节流数据的转换,其包含:固化了ASN.1协议的协议数据描述模块,和固化了协议处理流程编码的协议处理流程模块;协议数据描述模块存储用扩展标记语言(XML)描述的ASN.1协议描述信息,以及存储根据该描述信息设置的协议处理流程所需要的ASN.1协议数据;协议处理流程模块根据协议数据描述模块中的信息,按照固化的协议处理流程进行协议交互和协议转换。本发明的ASN.1协议处理器的应用,能够大幅度降低应用开发的难度与工作量和系统维护的工作量。
Description
技术领域
本发明涉及一种ASN.1协议处理技术,特别涉及一种ASN.1协议处理器。
背景技术
ASN.1协议是一种抽象文法标记规范,用以定义异构系统,例如Windows与UNIX系统之间的数据交互。ASN.1协议在电信领域应用广泛,主要用于客户/服务器结构中进行通信,其过程包括:
1、建立客户端与服务器端的连接;
2、进行协议交互处理及协议编解码;
3、关闭连接。
上述过程通常由客户端的一个软件模块——ASN.1协议处理器来实现。其中步骤2协议交互过程包含数据发送和数据接收,在发送前需要对ASN.1协议数据进行编码操作,接收后需要对服务器端字节流数据进行解码操作,实现较为复杂。
目前,在采用ASN.1协议作为通信协议的多数网管/应用系统开发中,ASN.1协议处理器的处理方法是:对每条协议都使用Java进行协议交互处理及完成编解码工作,将ASN.1协议数据与字节流数据互相进行数据转换,实现对ASN.1数据的应用级编解码。Java语言是一种跨平台的编程语言,它使得代码可移植。其协议交互的基本过程参见图1,图1为现有技术ASN.1协议处理器示意图。
参见图1所示,现有技术ASN.1协议处理器100,仅由一个协议交互处理及编/解码程序101构成,所有处理过程都由它来完成。首先,由ASN.1协议处理器100建立客户端与服务器端之间的连接;然后,客户端应用系统向ASN.1协议处理器100提交ASN.1请求;ASN.1协议处理器100中的协议交互处理及编/解码程序101,使用Java将该条协议编码为服务器端能够接收的字节流数据后,将转换为字节流数据的ASN.1请求发送给服务器端的应用系统;服务器端的应用系统接收该请求后,向ASN.1协议处理器100发送ASN.1响应;协议交互处理及编/解码程序101,使用Java将该响应信息解码为ASN.1协议数据后,将处理过的ASN.1响应发送给客户端的应用系统;客户端的应用系统接收ASN.1响应,完成协议交互;最后,ASN.1协议处理器100关闭客户端与服务器端之间的这个连接。
由于现有的技术是对每条协议都在应用程序中使用Java进行协议交互处理及编解码工作,来实现对ASN.1数据的应用级编解码,使得一些大、中型软件系统的程序代码达到万行代码级,造成了巨大的开发和维护的工作量,对应用开发人员的知识和技能结构需求高。同时,由于所有功能都由一个程序来完成,对程序的准确性要求非常高,有微小的错误很难调试,又增加了调试和维护的工作量。
近年来兴起的XML技术(eXtensible Markup Language,扩展标记语言)是Web上表示结构化信息的一种标准文本格式,可以将不同数据格式的数据都转换成XML格式,通过XML的桥梁作用,在异构系统之间实现数据移植。
XML技术目前还没有应用到ASN.1通信协议的处理中。
发明内容
有鉴于此,本发明的目的在于提供一种ASN.1协议处理器,降低网管应用协议处理应用开发的难度和工作量。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种ASN.1协议处理器,用于在客户端和服务器端之间进行协议交互和协议数据与字节流数据的转换,该协议处理器包含:固化了ASN.1协议的协议数据描述模块,和固化了协议处理流程编码的协议处理流程模块;
其中,协议数据描述模块存储用扩展标记语言(XML)描述的ASN.1协议描述信息,以及存储在进行协议交互前,根据该描述信息设置的协议处理流程所需要的ASN.1协议数据;
协议处理流程模块根据客户端的ASN.1请求,从协议数据描述模块中取出相应的ASN.1协议描述信息,并根据该描述信息将客户端的ASN.1请求编码为服务器端能够接收的字节流数据发送给服务器端;或将从服务器端接收的字节流数据解码为ASN.1协议数据返回给客户端。
所述的协议处理流程模块可以进一步包含:固化了协议交互过程的协议处理流程层、固化了编解码过程的编解码器层和连接层;
协议处理流程层接收客户端发出的ASN.1请求,从协议数据描述模块中取出相应的ASN.1协议描述信息,发送给编解码器层;编解码器层根据该描述信息将客户端的ASN.1请求编码为服务器端能够接收的字节流数据,回送协议处理流程层;协议处理流程层将该字节流数据经过连接层发送给服务器端;
或协议处理流程层将经过连接层从服务器端接收的字节流数据,发送给编解码器层;编解码器层将该字节流数据解码为ASN.1协议数据回送给协议处理流程层;协议处理流程层将该ASN.1协议数据返回给客户端;
且连接层由协议处理流程层控制,建立客户端与服务器端的连接,并在一次协议交互完成后保持客户端与服务器端的连接,当需要进行下一次协议交互时,直接使用保持的连接进行通信。
所述的协议处理流程层可以进一步包含:固化了查询数据过程的简单查询流程单元,和固化了订阅数据过程的数据订阅流程单元;所述的协议数据描述模块,进一步包含:服务器端信息,和需要进入上述哪个流程单元的描述信息;
所述的简单查询流程单元,可用于在客户端查询服务器端数据时,控制客户端向服务器端发出一次查询请求,并接收一次服务器端返回的查询数据;
所述的数据订阅流程单元,可用于在客户端订阅服务器端数据时,控制客户端向服务器端发出一次订阅请求,并接收多次由服务器端返回的所有订阅数据。
所述的连接层可以进一步包含:连接池单元和连接池管理器;连接池管理器控制连接池单元,建立和保持客户端与服务器端的连接。
所述的协议数据描述模块可以进一步包含:每条ASN.1协议的名称、命令码、消息类型、请求数据类型、响应数据类型的描述信息。
由上述的技术方案可见,本发明的这种ASN.1协议处理器,降低了应用开发的难度与工作量。当协议设计发生变动时,协议处理部分的修改只需修改描述文件,而无需修改编码。大大降低了系统日后的维护工作量。同时,降低了应用系统的规模。
附图说明
图1为现有技术ASN.1协议处理器示意图;
图2为本发明使用的ASN.1协议处理器的一个较佳实施例示意图;
图3为图2所示实施例的协议数据描述模块的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
本发明的ASN.1协议处理器,将协议处理流程编码固化为协议处理流程模块,同时将协议处理过程中变化最为频繁的数据模块从处理流程中剥离,以XML描述文件的方式对ASN.1协议数据建立协议数据描述模块,自动实现ASN.1数据发送和接收。
将ASN.1协议交互过程进行抽象,并将其软件编码一般是java程序编码固化为协议处理流程模块,包含两类协议处理流程模块:简单查询流程模块和数据订阅(有时称为实时数据服务)流程模块。另外,将编解码过程固化为编解码器,由上述流程模块进行调用,使得编解码规则也可以很容易的替换和重用。将协议处理过程进行固化,使得具体协议发生变化时,处理过程不变。
同时,使用XML语言对ASN.1协议数据和服务器信息以及由哪个流程进行处理等信息进行描述,建立协议数据描述模块。其中,ASN.1协议数据包含了所有ASN.1协议的名称、命令码、消息类型、请求数据类型和响应数据类型等描述信息。这个协议数据描述模块中的数据内容在系统开始运行时进行设置,当具体协议发生变化时,只需在系统开始运行时进行设置或修改即可,不需要改变处理过程。
这样,本发明的ASN.1协议处理器参见图2。图2为本发明使用的ASN.1协议处理器的一个较佳实施例示意图,如图2所示,本发明的协议处理器200包含固化了ASN.1协议的协议数据描述模块201,和固化了协议处理流程编码的协议流程模块202。
其中,协议数据描述模块201的结构参见图3,图3为图2所示实施例的协议数据描述模块的结构示意图。协议数据描述模块201中的协议定义301包含多个协议簇定义302;协议簇定义302包含服务器定义303和所有协议定义306;服务器定义303包含服务器名304和流程单元号码305;所有协议定义306中的一条协议定义307包含唯一标识协议的协议名308、协议命令码309、消息类型310、请求数据类型311、和响应数据312等信息。其中的消息类型310是预定义消息类型指定协议的发送方式,一般不做修改,其他定义可以根据具体协议的内容来定义。其中的数据内容在系统开始运行时进行设置。图中320表示其后的定义不只一个,可以为多个。
协议流程模块202包含固化了协议交互过程的协议处理流程层203、连接层204、和固化了编解码过程的编解码器层205。
协议处理流程层203接收客户端发出的ASN.1请求,从协议数据描述模块201中取出相应的ASN.1协议描述信息,发送给编解码器层205;编解码器层205根据该描述信息将客户端的ASN.1请求编码为服务器端能够接收的字节流数据,回送协议处理流程层203;协议处理流程层203将该字节流数据经过连接层204发送给服务器端;
或协议处理流程层203将经过连接层204从服务器端接收的字节流数据,发送给编解码器层205;编解码器层205将该字节流数据解码为ASN.1协议数据回送给协议处理流程层203;协议处理流程层203将该ASN.1协议数据返回给客户端;
另外,协议处理流程层203还可以包含固化了查询数据过程的简单查询流程单元,和固化了订阅数据过程的数据订阅流程单元(图2中没有示出)。
简单查询流程单元用于在客户端查询服务器端数据时,控制客户端向服务器端发出一次查询请求,并接收一次服务器端返回的查询数据,数据查询过程的特点是一去一回。典型应用场合是查询某个用户的信息,查询帐单等等。
数据订阅流程单元用于在客户端订阅服务器端数据时,控制客户端向服务器端发出一次订阅请求,并接收多次服务器端返回的所有订阅数据。数据订阅过程是:客户端发一次请求将自身注册到服务器端,以后服务器端直接将订阅的数据发回给注册的客户端。这种交互的典型特点是一去多回。典型应用是实时的告警,服务器端一旦收到告警信息,会将每次的告警消息发送给所有注册的客户端。
连接层204还包含连接池单元207和连接池管理器206,通过协议处理流程层203与连接池管理器206进行通信,由连接池管理器206控制连接池单元207建立客户端与服务器端的连接,并在一次协议交互完成后保持客户端与服务器端的连接,当需要进行下一次协议交互时,直接用保持的连接进行通信。
由上述的实施例可见,本发明的这种ASN.1协议处理器,降低了应用开发的难度与工作量。当协议设计发生变动时,协议处理部分的修改只需修改描述文件,而无需修改编码。大大降低了系统日后的维护工作量。同时,应用系统的规模也得以一定程度的降低。而且,因为屏蔽了协议交互流程实现细节,降低了应用开发人员的知识和技能结构需求,从而降低了人员的培训成本。
Claims (5)
1、一种ASN.1协议处理器,用于在客户端和服务器端之间进行协议交互和协议数据与字节流数据的转换,其特征在于,该协议处理器包含:固化了ASN.1协议的协议数据描述模块,和固化了协议处理流程编码的协议处理流程模块;
其中,协议数据描述模块存储用扩展标记语言(XML)描述的ASN.1协议描述信息,以及存储在进行协议交互前,根据该描述信息设置的协议处理流程所需要的ASN.1协议数据;
协议处理流程模块根据客户端的ASN.1请求,从协议数据描述模块中取出相应的ASN.1协议描述信息,并根据该描述信息将客户端的ASN.1请求编码为服务器端能够接收的字节流数据发送给服务器端;或将从服务器端接收的字节流数据解码为ASN.1协议数据返回给客户端。
2、如权利要求1所述的协议处理器,其特征在于,所述的协议处理流程模块进一步包含:固化了协议交互过程的协议处理流程层、固化了编解码过程的编解码器层和连接层;
协议处理流程层接收客户端发出的ASN.1请求,从协议数据描述模块中取出相应的ASN.1协议描述信息,发送给编解码器层;编解码器层根据该描述信息将客户端的ASN.1请求编码为服务器端能够接收的字节流数据,回送协议处理流程层;协议处理流程层将该字节流数据经过连接层发送给服务器端;
或协议处理流程层将经过连接层从服务器端接收的字节流数据,发送给编解码器层;编解码器层将该字节流数据解码为ASN.1协议数据回送给协议处理流程层;协议处理流程层将该ASN.1协议数据返回给客户端;
且连接层由协议处理流程层控制,建立客户端与服务器端的连接,并在一次协议交互完成后保持客户端与服务器端的连接,当需要进行下一次协议交互时,直接使用保持的连接进行通信。
3、如权利要求2所述的协议处理器,其特征在于,所述的协议处理流程层进一步包含:固化了查询数据过程的简单查询流程单元,和固化了订阅数据过程的数据订阅流程单元;所述的协议数据描述模块,进一步包含:服务器端信息,和需要进入上述哪个流程单元的描述信息;
所述的简单查询流程单元,用于在客户端查询服务器端数据时,控制客户端向服务器端发出一次查询请求,并接收一次服务器端返回的查询数据;
所述的数据订阅流程单元,用于在客户端订阅服务器端数据时,控制客户端向服务器端发出一次订阅请求,并接收多次由服务器端返回的所有订阅数据。
4、如权利要求2所述的处理方法,其特征在于,所述的连接层进一步包含:连接池单元和连接池管理器;连接池管理器控制连接池单元,建立和保持客户端与服务器端的连接。
5、如权利要求1或3所述的协议处理器,其特征在于,所述的协议数据描述模块进一步包含:每条ASN.1协议的名称、命令码、消息类型、请求数据类型、响应数据类型的描述信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031053505A CN100464546C (zh) | 2003-02-25 | 2003-02-25 | 一种asn.1协议处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031053505A CN100464546C (zh) | 2003-02-25 | 2003-02-25 | 一种asn.1协议处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1525714A true CN1525714A (zh) | 2004-09-01 |
CN100464546C CN100464546C (zh) | 2009-02-25 |
Family
ID=34282621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031053505A Expired - Fee Related CN100464546C (zh) | 2003-02-25 | 2003-02-25 | 一种asn.1协议处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100464546C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100393077C (zh) * | 2004-12-06 | 2008-06-04 | 中兴通讯股份有限公司 | 一种板间信令消息的压缩方法 |
CN100466652C (zh) * | 2004-09-24 | 2009-03-04 | 华为技术有限公司 | 一种对消息的编解码方法 |
CN1783881B (zh) * | 2004-12-03 | 2010-06-16 | 微软公司 | 绑定结构化数据协议至提供字节流协议的机制 |
CN1972276B (zh) * | 2006-11-26 | 2010-08-11 | 华为技术有限公司 | 一种协议访问管理方法和系统 |
CN101827105A (zh) * | 2010-05-03 | 2010-09-08 | 北京大学 | 一种协议处理器设计的优化方法 |
CN101834848A (zh) * | 2010-03-29 | 2010-09-15 | 北京航空航天大学 | 一种使用xml描述协议的方法及其建立的协议解析系统 |
CN101854231A (zh) * | 2010-05-27 | 2010-10-06 | 武汉虹信通信技术有限责任公司 | 基于协议模型的协议编解码方法 |
CN101222365B (zh) * | 2008-01-23 | 2010-12-08 | 中兴通讯股份有限公司 | 一种类c结构接口报文处理方法 |
CN102262560A (zh) * | 2010-05-27 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种远程服务的调用方法、装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100605812B1 (ko) * | 1998-12-30 | 2006-11-30 | 삼성전자주식회사 | 전송장치의 데이터 통신 채널 처리장치와 프로토콜 스택 구성및 운용방법 |
US6883164B2 (en) * | 2000-12-15 | 2005-04-19 | International Business Machines Corporation | Strategy for dynamically modeling ASN.1 data to an object model |
-
2003
- 2003-02-25 CN CNB031053505A patent/CN100464546C/zh not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100466652C (zh) * | 2004-09-24 | 2009-03-04 | 华为技术有限公司 | 一种对消息的编解码方法 |
CN1783881B (zh) * | 2004-12-03 | 2010-06-16 | 微软公司 | 绑定结构化数据协议至提供字节流协议的机制 |
CN100393077C (zh) * | 2004-12-06 | 2008-06-04 | 中兴通讯股份有限公司 | 一种板间信令消息的压缩方法 |
CN1972276B (zh) * | 2006-11-26 | 2010-08-11 | 华为技术有限公司 | 一种协议访问管理方法和系统 |
CN101222365B (zh) * | 2008-01-23 | 2010-12-08 | 中兴通讯股份有限公司 | 一种类c结构接口报文处理方法 |
CN101834848A (zh) * | 2010-03-29 | 2010-09-15 | 北京航空航天大学 | 一种使用xml描述协议的方法及其建立的协议解析系统 |
CN101834848B (zh) * | 2010-03-29 | 2013-04-24 | 北京航空航天大学 | 一种使用xml描述协议的方法及其建立的协议解析系统 |
CN101827105A (zh) * | 2010-05-03 | 2010-09-08 | 北京大学 | 一种协议处理器设计的优化方法 |
CN101827105B (zh) * | 2010-05-03 | 2013-02-06 | 北京大学 | 一种协议处理器设计的优化方法 |
CN101854231A (zh) * | 2010-05-27 | 2010-10-06 | 武汉虹信通信技术有限责任公司 | 基于协议模型的协议编解码方法 |
CN102262560A (zh) * | 2010-05-27 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种远程服务的调用方法、装置及系统 |
CN102262560B (zh) * | 2010-05-27 | 2016-12-28 | 阿里巴巴集团控股有限公司 | 一种远程服务的调用方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100464546C (zh) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1298151C (zh) | 用于获取网格中的状态信息的方法和设备 | |
CN102594833B (zh) | 一种通信协议适配方法和系统 | |
CN1819576A (zh) | 在客户机和服务器之间分配应用任务的方法以及应用服务系统 | |
CN1306430C (zh) | 基于构件的用户自定义事件方法 | |
US7418708B2 (en) | JMS integration into an application server | |
US20060167980A1 (en) | Interface for external system management | |
CN1567301A (zh) | 访问数据库的方法及装置 | |
CN1525714A (zh) | 一种asn.1协议处理器 | |
CN1933462A (zh) | 中间件和使用该中间件实现业务逻辑的方法 | |
CN1359065A (zh) | 将抽象句法表示法1数据模型化成对象模型的方法及系统 | |
US20070204054A1 (en) | ASN.1 protocol processor and method for ASN.1 protocol processing | |
CN1728700A (zh) | 基于struts框架的web电信网管系统及其方法 | |
CN101021786A (zh) | 一种调用通用构件的方法 | |
CN100397397C (zh) | 基于关系数据库的xml数据存储与访问方法 | |
CN111813395A (zh) | 基于xml格式的通讯协议信息描述通用模型及其设计方法 | |
CA2255133A1 (en) | Method and apparatus for efficient representation of variable length identifiers in a distributed object system | |
CN1801145A (zh) | 一种提高应用系统访问数据库效率的方法 | |
CN1434942A (zh) | 使设备驱动可跨操作系统平台移植的抽象设备驱动模型 | |
CN111552839B (zh) | 一种基于xml模板的对象转换方法 | |
CN100341270C (zh) | 基于消息的分布式平台的客户端反映任务进度的方法 | |
CN115630614B (zh) | 数据传输方法、装置、电子设备与介质 | |
CN1567829A (zh) | 通用数据文件转换方法 | |
CN1317868C (zh) | 一种基于类模板管理器的通讯报文处理设备和方法 | |
CN1466051A (zh) | 实现不同系统之间数据交互的方法 | |
CN1896954A (zh) | 用于复杂多业务的动态编译器的构件化实现 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090225 Termination date: 20160225 |