一种数据流传输服务的方法及系统与流程

文档序号:11180604阅读:548来源:国知局
一种数据流传输服务的方法及系统与流程

本发明属于电力自动化技术领域,涉及面向服务(soa)架构体系的信息交互等双方需要进行复杂数据交换的信息交互场合,具体为一种数据流传输服务的方法及系统。



背景技术:

随着计算机和网络技术的发展,电网的智能化水平和要求不断提升,传统的针对电力系统某些特定应用所设计的通信协议和信息交互机制已不能满足需要,需要不断的为这些协议做出非标准的扩充,导致系统不能互操作,采用面向服务(soa)架构体系的信息交互机制已经成为一个发展方向,为此我国发布了《电力系统简单服务接口规范》(dl/t1233)为这个发展奠定了基础,待发布的《电力系统通用服务协议》标准又为解决这个问题提出了解决方案,但《电力系统通用服务协议》没具体的通过数据流实现服务传输的解决方案。本发明在《电力系统通用服务协议》基础上对如何通过数据流实现服务传输的问题提出解决了方案。



技术实现要素:

本发明的目的在于提供一种解决了《通用服务协议》标准没有具体解决该标准中所提到通过数据流传输服务的问题的数据流传输服务的方法及系统。

为实现上述目的,本发明的技术方案是:一种数据流传输服务的方法,包括如下步骤,

s1、定义服务数据流的格式:sds类型+sds对应服务原语+sds参数;

s2、依据服务请求服务原语,将服务参数编码成服务数据流,即:首先,判断需形成的服务数据流类型;而后,获取与服务数据流类型相应的服务请求服务原语;再而,根据需形成的服务数据流类型对sds类型进行赋值;然后,将服务请求服务原语的服务名写入sds对应服务原语中;最后,依据服务请求服务原语中服务请求参数的类型和顺序,查询服务参数编码表,并依据所查到的编码方法,将相应的服务请求参数进行编码后写入sds参数中,形成服务数据流;

s3、接收端收到服务数据流,需将服务数据流解码,以获取服务参数,即:首先,解析服务数据流首字节,获取服务数据流的sds类型;而后,按string类型格式解析服务数据流,获取服务请求服务原语的服务名,进而获取服务请求服务原语;最后,依据sds类型、服务请求服务原语对服务数据流进行解析,获取相应的服务参数。

在本发明一实施例中,所述服务参数编码表包括基本参数类型编码表和组合参数类型编码表,其中,基本参数类型编码表由基本参数类型、该基本参数类型对应的编码方法以及占数据流的字节数构成;组合参数类型编码表由组合参数类型、该组合参数类型对应的编码方法以及占数据流的字节数构成。

在本发明一实施例中,所述sds类型的长度为一个字节;sds对应服务原语的长度可变,其格式为string类型;sds参数包含多段,段的个数由服务请求服务原语中参数的个数确定,各个段的格式由服务请求服务原语中各个参数的类型确定。

在本发明一实施例中,所述sds类型取值包括i、d、o,其中,i表示in参数,为客户端到服务端方向;o表示out参数,为服务端到客户端方向;d表示无in,out参数标识的数据块。

在本发明一实施例中,所述sds参数的段的个数,通过如下方式决定:

若sds类型取值为i时,sds参数的段的个数为服务请求服务原语中标识为in的参数的个数;

若sds类型取值为o时,sds参数的段的个数为服务请求服务原语中标识为out的参数的个数;

若sds类型取值为d时,sds参数的段的个数为服务请求服务原语中所有参数的个数。

在本发明一实施例中,所述步骤s2中,若客户端向服务端发服务请求时,即需形成服务请求数据流时,将服务参数编码成服务数据流的具体方式如下:

1)获取服务请求数据流相应的服务请求服务原语;

2)将sds类型赋值为i;

3)将服务请求服务原语的服务名,按string类型格式写入sds对应服务原语中;

4)查询服务参数编码表,依次将服务请求服务原语中标识为in的对应参数,写入sds参数中,直到所有标识为in的参数全部写入sds参数中。

在本发明一实施例中,所述步骤s2中,若服务端向客户端发服务响应时,即需形成服务响应数据流时,将服务参数编码成服务数据流的具体方式如下:

1)获取服务响应数据流相应的服务请求服务原语;

2)将sds类型赋值为o;

3)将服务请求服务原语的服务名,按string类型格式写入sds对应服务原语中;

4)查询服务参数编码表,依次将服务请求服务原语中标识为out的对应参数,写入sds参数中,直到所有标识为out的参数全部写入sds参数中。

在本发明一实施例中,所述步骤s2中,若需形成复杂数据传输使用时,将服务参数编码成服务数据流的具体方式如下:

1)获取服务响应数据流相应的服务请求服务原语;

2)将sds类型赋值为d;

3)将服务请求服务原语的服务名,按string类型格式写入sds对应服务原语中;

4)查询服务参数编码表,依次将服务请求服务原语中参数,写入sds参数中。

本发明还提供了一种数据流传输服务的系统,包括:

服务数据流定义单元,用于定义服务数据流的格式,服务数据流的格式:sds类型+sds对应服务原语+sds参数;

服务参数编码单元,依据服务请求服务原语以及服务数据流定义单元所定义的服务数据流格式,将服务参数编码成服务数据流,具体即:首先,判断需形成的服务数据流类型;而后,获取与服务数据流类型相应的服务请求服务原语;再而,根据需形成的服务数据流类型对sds类型进行赋值;然后,将服务请求服务原语的服务名写入sds对应服务原语中;最后,查询服务参数编码表,依据服务请求服务原语、sds类型将服务参数编码表中对应的参数写入sds参数中,形成服务数据流;

服务数据流解码单元,将服务数据流解码,以获取服务参数,具体即:首先,解析服务数据流首字节,获取服务数据流的sds类型;而后,按string类型格式解析服务数据流,获取服务请求服务原语的服务名,进而获取服务请求服务原语;最后,依据sds类型、服务请求服务原语对服务数据流进行解析,获取相应的服务参数。

在本发明一实施例中,所述sds类型的长度为一个字节;sds对应服务原语的长度可变,其格式为string类型;sds参数包含多段,段的个数由服务请求服务原语中参数的个数确定,各个段的格式由服务请求服务原语中各个参数的类型确定。

在本发明一实施例中,所述sds类型取值包括i、d、o,其中,i表示in参数,为客户端到服务端方向;o表示out参数,为服务端到客户端方向;d表示无in,out参数标识的数据块;所述sds参数的段的个数,通过如下方式决定:

若sds类型取值为i时,sds参数的段的个数为服务请求服务原语中标识为in的参数的个数;

若sds类型取值为o时,sds参数的段的个数为服务请求服务原语中标识为out的参数的个数;

若sds类型取值为d时,sds参数的段的个数为服务请求服务原语中所有参数的个数。

相较于现有技术,本发明具有以下有益效果:本发明为《电力系统通用服务协议》标准所描述的数据流交互方法发明了一种可具体实现方法,解决了该标准没有具体解决该标准中所提到通过数据流传输服务的问题;本发明还可解决需要进行多项复杂数据进行整体交互或表达问题。

附图说明

图1为本发明将服务描述原语到sds的转换方法示意图。

具体实施方式

下面结合附图,对本发明的技术方案进行具体说明。

如图1所示,本发明的一种用于传输服务的数据流形成方法,包括如下步骤,

s1、定义服务数据流的格式:sds类型+sds对应服务原语+sds参数,其中,sds类型的长度为一个字节;sds对应服务原语的长度可变,其格式为string类型;sds参数包含多段,段的个数由服务请求服务原语中参数的个数确定,各个段的格式由服务请求服务原语中各个参数的类型确定。

s2、依据服务请求服务原语,将服务参数编码成服务数据流,即:首先,判断需形成的服务数据流类型;而后,获取与服务数据流类型相应的服务请求服务原语(服务请求服务原语存储于服务管理中心,发送端、接收端均可通过服务管理中心调取相应的服务请求服务原语);再而,根据需形成的服务数据流类型对sds类型进行赋值;然后,将服务请求服务原语的服务名写入sds对应服务原语中;最后,依据服务请求服务原语中服务请求参数的类型和顺序,查询服务参数编码表,并依据所查到的编码方法,将相应的服务请求参数进行编码后写入sds参数中,形成服务数据流;

s3、接收端收到服务数据流,需将服务数据流解码,以获取服务参数,即:首先,解析服务数据流首字节,获取服务数据流的sds类型;而后,按string类型格式解析服务数据流,获取服务请求服务原语的服务名,进而获取服务请求服务原语;最后,依据sds类型、服务请求服务原语对服务数据流进行解析,获取相应的服务参数。

上述过程中,在通信双方采用预先约定传输类型和服务请求服务原语的情况下,数据流可以简化掉“sds类型+sds对应服务原语”部分,采用纯“sds参数”形式传输服务;即相当于认为“sds类型+sds对应服务原语”为已知;

在本发明一实施例中,所述服务参数编码表包括基本参数类型编码表和组合参数类型编码表,其中,基本参数类型编码表由基本参数类型、该基本参数类型对应的编码方法以及占数据流的字节数构成;组合参数类型编码表由组合参数类型、该组合参数类型对应的编码方法以及占数据流的字节数构成;组合参数类型即不属于基本参数类型的参数类型(具体的表例可参见表2、表3,其中,表2即基本参数类型编码表,表3即组合参数类型编码表)。

所述sds类型取值包括i、d、o,其中,i表示in参数,为客户端到服务端方向;o表示out参数,为服务端到客户端方向;d表示无in,out参数标识的数据块;所述sds参数的段的个数,通过如下方式决定:

若sds类型取值为i时,sds参数的段的个数为服务请求服务原语中标识为in的参数的个数;

若sds类型取值为o时,sds参数的段的个数为服务请求服务原语中标识为out的参数的个数;

若sds类型取值为d时,sds参数的段的个数为服务请求服务原语中所有参数的个数。

所述步骤s2中,若客户端向服务端发服务请求时,即需形成服务请求数据流时,将服务参数编码成服务数据流的具体方式如下:

1)获取服务请求数据流相应的服务请求服务原语;

2)将sds类型赋值为i;

3)将服务请求服务原语的服务名,按string类型格式写入sds对应服务原语中;

4)依次将服务请求服务原语中标识为in的对应参数,写入sds参数中,直到所有标识为in的参数全部写入sds参数中。

所述步骤s2中,若服务端向客户端发服务响应时,即需形成服务响应数据流时,将服务参数编码成服务数据流的具体方式如下:

1)获取服务响应数据流相应的服务请求服务原语;

2)将sds类型赋值为o;

3)将服务请求服务原语的服务名,按string类型格式写入sds对应服务原语中;

4)依次将服务请求服务原语中标识为out的对应参数,写入sds参数中,直到所有标识为out的参数全部写入sds参数中。

所述步骤s2中,若需形成复杂数据传输使用时,将服务参数编码成服务数据流的具体方式如下:

1)获取服务响应数据流相应的服务请求服务原语;

2)将sds类型赋值为d;

3)将服务请求服务原语的服务名,按string类型格式写入sds对应服务原语中;

4)依次将服务请求服务原语中参数,写入sds参数中。

本发明还提供了一种数据流传输服务的系统,包括:

服务数据流定义单元,用于定义服务数据流的格式,服务数据流的格式:sds类型+sds对应服务原语+sds参数;

服务参数编码单元,依据服务请求服务原语以及服务数据流定义单元所定义的服务数据流格式,将服务参数编码成服务数据流,具体即:首先,判断需形成的服务数据流类型;而后,获取与服务数据流类型相应的服务请求服务原语;再而,根据需形成的服务数据流类型对sds类型进行赋值;然后,将服务请求服务原语的服务名写入sds对应服务原语中;最后,查询服务参数编码表,依据服务请求服务原语、sds类型将服务参数编码表中对应的参数写入sds参数中,形成服务数据流;

服务数据流解码单元,将服务数据流解码,以获取服务参数,具体即:首先,解析服务数据流首字节,获取服务数据流的sds类型;而后,按string类型格式解析服务数据流,获取服务请求服务原语的服务名;最后,依据sds类型赋值对服务数据流进行解析,获取相应的参数。

所述sds类型的长度为一个字节;sds对应服务原语的长度可变,其格式为string类型;sds参数包含多段,段的个数由服务请求服务原语中参数的个数确定,各个段的格式由服务请求服务原语中各个参数的类型确定。

所述sds类型取值包括i、d、o,其中,i表示in参数,为客户端到服务端方向;o表示out参数,为服务端到客户端方向;d表示无in,out参数标识的数据块;所述sds参数的段的个数,通过如下方式决定:

若sds类型取值为i时,sds参数的段的个数为服务请求服务原语中标识为in的参数的个数;

若sds类型取值为o时,sds参数的段的个数为服务请求服务原语中标识为out的参数的个数;

若sds类型取值为d时,sds参数的段的个数为服务请求服务原语中所有参数的个数。

以下对本发明的方案进行详细描述。

本发明提出了把dl/t1233(《电力系统简单服务接口规范》)(简称:s语言)描述的抽象服务接口原语,转换到数据流的方法。发明内容包括服务的数据流(servicedatastream,简称sds)格式和依据服务s语言原语,把参数编码形成sds的方法。解决了《电力系统通用服务协议》没有具体解决该标准中所提到通过数据流传输服务的问题。

1)服务数据流(sds)格式

sds格式如表1所示,具体说明如下:

(1)sds类型:s段,长度一个字节ascii码,含义如下:

a)s=“i”:表示in参数,为客户端到服务端方向;

b)s=“o”:表示out参数,为服务端到客户端方向;

c)s=“d”:表示无in,out参数标识的数据块;

d)s还可为其它值,以留扩展使用。

(2)sds对应服务原语:servicename段,可变长度,其格式同string类型参数;

(3)sds参数:par-1到par-n段,段的个数和每个段的格式,取决于相应的s语言描述的参数个数和类型:

a)s=i时,参数段的个数为服务描述中标识为in的参数个数;

b)s=o时,参数段的个数为服务描述中标识为out的参数个数;

c)s=d时,参数段的个数为服务描述中所有参数的个数;

2)依据服务描述原语,把服务参数编码形成sds的方法

(图1)为依据服务描述原语形成sds的转换方法示意图,方法如下:

a、当客户端向服务端发服务请求时需形成服务请求数据流,编码方法如下:

(1)获取相应的服务请求服务原语;

(2)把数据流类型s赋予(数据流头字节)为“i”(图1中①);

(3)把服务请求原语的服务名,按(表2)string类型格式编入数据流(图1中②);

(4)依次把服务原语中标识为in的对应参数,依照(表2)和(表3)的编码格式编入数据流,直到所有标识为in的参数全部编入数据流(图1中③);

上述(1)-(3)形成的数据流即为服务请求数据流。

b、当服务端向客户端发服务响应时需形成服务响应数据流,编码方法如下:

(1)获取相应的服务请求服务原语;

(2)把数据流类型s赋予(数据流头字节)为“o”(图1中④);

(3)把服务请求原语的服务名,按(表2)string类型格式编入数据流(图1中⑤);

(4)依次把服务原语中标识为out的对应参数,依照(表2)和(表3)的编码格式编入数据流,直到所有标识为out的参数全部编入数据流(图1中⑥);

上述(1)-(3)形成的数据流即为服务响应数据流。

c、当数据流作为复杂数据传输使用时,编码方法类似,只是数据流类型为“d”,编码时不判断in或out标识(通常原语中无in,和out)。

3)依据服务描述原语,对sds解码,获取参数的方法

接收端收到数据流后,从数据流获取参数的解码过程如下:

(1)解析数据流首字节,获得数据流类型;

(2)按string类型格式解析数据流,获取服务原语名;

(3)获取相应的服务请求服务原语;

(4)依据数据流类型,按照服务原语中相应的标识(“i”对应in参数,“o”对应out参数)参数类型和顺序对数据流进行解析,获取相应的参数。

4)参数段的数据格式

参数段的数据格式也就是每个参数的编码格式,以编码库方式进行描述。编码库包含所有s描述的服务参数的编码方法,从类型上分为基本参数类型和特殊(组合)参数类型。

a)基本参数类型

需支持的基本参数类型、对应的编码方法以及占数据流的字节数如(表2)(参考gsp基本数据类型定义,可根据需要扩充):

b)特殊(组合)参数类型

支持的特殊(组合)参数类型、对应的编码方法以及占数据流的字节数如(表3)(可根据需要扩充):

5)s语言的扩充

s语言(dlt1233只能描述简单参数描述,无法满足描述特殊(组合)参数类型的需要,扩充如下:

1、用in表示服务请求输入参数(客户端到服务端方向的参数);

2、用out表示服务响应返回参数(服务端到客户端方向的参数);

3、增加特殊参数类型;

4、结构数据类型;

5、增加数组及结构数组参数。

示例1:带特殊参数类型的服务原语

<getsubstationchiedscdfile(//服务名

instring:iedname,//ied名称

outstring:filename,//文件名

outfiledata:filedate,//ied的scd文件内容,特殊参数类型

)"获取变化ied的scd文件"/>

示例2:带扩充结构数组的服务原语

<getsubstationiedlist(//服务名

instring:substationname,//变电站名称

outint16:iednumber,//ied数量

outstructiedlist{string:iedname,string:ieddesc}[],//ied清单,结构数组

)"获取ied清单"/>

示例3:作为复杂数据表达使用的原语

<authpara(//身份认证参数

stringidentity,//身份标识

int8usigntype,//签名类型

timecurrenttime,//当前时间

stringsignvalue,//签名值

)"认证参数"/>。

本发明的技术方案具体应用如下:

(1)结合《通用服务协议》实现面向服务架构下的应用服务传输;

(2)用于加密和安全认证,通过sds,把多项数据或参数,编码成一个数据流,以实现一次性对多项数据进行加密和数字签名;

(3)作为一种信息帧格式,嵌入已有应用通信协议,以实现传输协议规定外的数据传输,如把sds嵌入dl/t634.5104、dl/t476通信协议。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1