JP2996296B2 - メッセージ復号化装置及び有限状態機械生成装置 - Google Patents
メッセージ復号化装置及び有限状態機械生成装置Info
- Publication number
- JP2996296B2 JP2996296B2 JP9041837A JP4183797A JP2996296B2 JP 2996296 B2 JP2996296 B2 JP 2996296B2 JP 9041837 A JP9041837 A JP 9041837A JP 4183797 A JP4183797 A JP 4183797A JP 2996296 B2 JP2996296 B2 JP 2996296B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- state machine
- finite state
- state
- tag
- 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.)
- Expired - Fee Related
Links
Landscapes
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Description
置に関し、特に、抽象構文記法(Abstract S
yntax Notation 1、以下ASN.1と
呼ぶ)によって定義されたメッセージを基本符号化規則
(Basic Encoding Rule、以下BE
Rと呼ぶ)及び他の符号化規則に従って符号化したメッ
セージ(符号化メッセージ)を復号化する際に用いられ
るメッセージ復号化装置に関する。
は、異機種間通信においてネットワークに依存しない形
で符号化されているメッセージを復号化する際用いられ
ており、このメッセージ復号化装置は、例えば、メッセ
ージ処理システム、ファイル転送システム又はネットワ
ーク管理の分野において広く用いられている。符号化及
び復号化の手順については、国際標準化機構(Inte
rnational Organization fo
r Standardization、以下ISOと呼
ぶ)によって定められた標準に基づいており、このた
め、メッセージ復号化装置の適用範囲は非常に広範なも
のとなっている。
てがソフトウェアによって実装されており、ハードウェ
アによって復号化を行なうものは皆無である。ハードウ
ェアによる復号化の試みとして、1993年4月、コン
ピューター・コミュニケーションズ、第16巻、第4
号、229頁−240頁、米国(Computer C
ommunications,Vol.16,No.
4,pp.229−240,April,1993)に
記載されたVASN1が知られている。このVASN1
は符号化・復号化両方の機能を備えているが、復号化に
ついては単にメッセージのタグ、長さ、及び値フィール
ドの分割を行なうにとどまっており、さらに完全なハー
ドウェアによる実装ではなく、機能の一部は中央処理演
算装置(Central Processing Un
it、以下CPUと呼ぶ)上で動作するソフトウェアと
して実装されている。
例を図面を参照して説明する。
2に示す。また、ASN.1記述の例を図13及び図1
4に示す。図13及び図14に示す記述はプレゼンテー
ション層のプロトコルデータユニット(Protoco
l Data Unit、以下PDUと呼ぶ)及び遠隔
操作サービス(Remote OperationSe
rvice、以下ROSと呼ぶ)プロトコルのPDUを
定義するものである。図13及び図14の記述に従って
定義されたPDUの一例を図15に示す。図15は、U
ser−dataというPDUを定義している各要素の
具体的な値を示しており、例えば、presentat
ion−contextidentifierは“3”
という値を持っており、operation−valu
eはlocalValueで“3”という値を持ってい
るということを意味している。図13及び図14に示す
記述に従って定義されたPDUを符号化したメッセージ
とこのメッセージを従来のメッセージ復号化装置に入力
した場合の復号化結果を図16に示す。
号化装置10は、メッセージ入力部1001、メッセー
ジ分割部1002、及びメッセージ出力部1003を備
えており、メッセージ入力部1001は、符号化された
メッセージを受信して、メッセージ分割部1002へ渡
す。メッセージ分割部1002は、符号化されたメッセ
ージをタグ、長さ、及び値フィールドに分割する。メッ
セージ出力部1003は、このようにして復号化された
メッセージをメッセージ分割部1003から受け取り、
メッセージ復号化装置の利用者1004(CPU上のソ
フトウェア1005)に渡す。
ける復号化処理は、符号化されたメッセージをタグ、長
さ、及び値フィールドに分割することであり、ASN.
1の記述の各要素と復号化結果の値との対応付け(例え
ば、図13及び図14におけるROIVapduのin
vokeIDとINTEGER型の値を対応付けるこ
と)はメッセージ復号化装置の利用者1004が行なう
必要がある。
ージはメッセージ分割部1002によって、タグ、長
さ、及び値フィールドに分割される。図16において、
T、L、Vを付したフィールドはそれぞれタグフィール
ド、長さフィールド、及び値フィールドである。
ージの第1オクテットの上位から3ビット目を調べ、こ
れが“1”であれば、メッセージが構造型(値フィール
ド中に再びタグ、長さ、及び値フィールドが含まれてい
る)と判断し、“0”であれば、メッセージが単純型
(値フィールドは値そのものを表す)と判断する。構造
型であると判断した場合には、タグ及び長さフィールド
を出力した後、再び、次入力オクテットの上位から3ビ
ット目を調べ構造型であるかどうかを判定し、構造型で
ある場合は再帰的に分割処理を適用する。
ルドを出力し、次入力オクテットの上位から3ビット目
を調べる。図16の場合、第1オクテットは‘61’
(2進表記では‘01100001’)であり、上位か
ら3ビット目は“1”となっているので、タグフィール
ド‘61’、長さフィールド‘1B’を出力する。次オ
クテットは‘30’(2進表記では‘0011000
0’)であり、上位から3ビット目は“1”となってい
るので、タグフィールド‘30’、長さフィールド‘1
9’を出力する。さらに、次オクテットは‘02’(2
進表記では‘00000010’)であり、上位から3
ビット目は“0”となっているので、タグフィールド
‘02’、長さフィールド‘01’、値フィールド‘0
3’を出力する。このようにして、以下のオクテットに
ついても同様に処理を続けてゆく。
4は、メッセージ復号化装置10の復号化結果をそのま
まの形で利用することはできず、このため、メッセージ
復号化装置10の利用者1004の内部には、ASN.
1コンパイラを用いてASN.1記述から生成されたソ
フトウェア1005が含まれている。ソフトウェア10
05は、ASN.1記述の各要素とメッセージ復号化装
置10の復号結果を対応付ける機能を有しており、図1
3及び図14に示す記述から生成されたソフトウェアの
場合、図15のPDUを復号化した結果(タグ、長さ、
及び値フィールドに分割されたメッセージ)を受け取る
と、presentation−context−id
entifier,invokeID,operati
on−valueにそれぞれ値‘03’、値‘05’、
及び値‘03’を対応付ける。
セージ復号化装置では、復号化の際に、単に、符号化さ
れたメッセージをタグ、長さ、及び値の3つのフィール
ドに分割するという単純な復号化を行なうのみであり、
メッセージを定義している構文記述を意識した上での復
号化が行なえない。ここで、メッセージを定義している
構文記述を意識した復号化とは、復号化の結果として単
に分割されたフィールドを出力するのではなく、構文記
述によって定義されているメッセージの各要素に対して
それぞれ対応する値を出力するものである。
メッセージを定義している構文記述を意識した復号化が
行なえず、この結果、このような処理はメッセージ復号
化装置の利用者が行なわなければならず、利用者側のオ
ーバヘッドが増大するという問題点がある。
は、構文記述によって定義されたあらゆるメッセージを
処理することを目的としているため、構文を意識した復
号化を行なうためには、あらゆる構文によって定義され
たメッセージの復号化処理のための情報を装置内に保持
する必要がある。従って、従来のメッセージ復号化装置
において、メッセージを定義している構文記述を意識し
た復号化を行なうためには、復号化装置の規模が非常に
大きくなってしまう。つまり、装置の規模が非常に大き
なものとなり、実現が困難となるという問題点がある。
化を行なうためのデータ構造を生成するASN.1コン
パイラは、ソフトウェアによるメッセージの符号化・復
号化を前提としており、構文解析木を生成した後、これ
をソフトウェアのデータ構造(C言語における構造体の
定義)に変換するようになっている関係上、ハードウェ
アによる復号化を行なうことを考えると、C言語の構造
体の定義をハードウェアとして直接利用することは不可
能であり、ASN.1記述をハードウェアに向いた形態
に変換する必要がある。つまり、ハードウェアによる復
号化を行なうためにはASN.1コンパイラの技術をそ
のまま応用することができない。
る構文記述を意識した復号化機能を有しかつ規模の小さ
なメッセージ復号化装置を提供することにある。
化装置では、対象となるメッセージを定義しているAS
N.1記述から生成した有限状態機械を用いてメッセー
ジを定義している構文記述を意識した復号化を小さな規
模で行える。
化装置は、符号化メッセージを受信してメッセージ復号
化処理部へ渡すメッセージ入力部を備えており、メッセ
ージ復号化処理部はASN.1記述から生成した有限状
態機械を備えている。そして、メッセージ復号化処理部
は有限状態機械を利用して構文記述を意識した復号化を
行う。復号化されたメッセージはメッセージ出力部によ
ってメッセージ復号化装置の利用者に渡される。
置によって生成される。有限状態機械生成装置は、例え
ば、ASN.1記述を受けてこの記述に対応する構文解
析木を生成する構文解析木生成部と、前記構文解析木に
応じて有限状態機械を生成する有限状態機械生成部とを
備えている。
したことによって装置の規模を小さくすることができる
ばかりでなく、メッセージを定義している構文記述を意
識した復号化を行なうことができる。さらに、有限状態
機械生成装置によって、任意のASN.1記述を有限状
態機械に変換することができ、この結果、さまざまなメ
ッセージの定義に対して柔軟に対応することが可能とな
る。
て説明する。
置の第1の例を示すブロック図であり、メッセージ復号
化装置1は、メッセージ入力部101、メッセージ復号
化処理部102、及びメッセージ出力部103を備えて
おり、メッセージ入力部101は、符号化されたメッセ
ージを受信し、メッセージ復号化処理部102に渡す。
ここで、メッセージはASN.1におけるBERに従っ
て符号化されている。メッセージ復号化処理部102
は、有限状態機械105を内部に含み、有限状態機械1
05を用いてASN.1記述を意識した復号化を行なう
機能を有している。メッセージ出力部103は、メッセ
ージ復号化処理部102から復号化の結果を受け取り、
これを復号化装置の利用者104(CPU上で動作する
ソフトウェア)に渡す。
メッセージが到着すると、メッセージ入力部101がこ
れを受信する。そして、受信されたメッセージはメッセ
ージ復号化処理部102に渡される。符号化されたメッ
セージを受け取ったメッセージ復号化処理部102は、
有限状態機械105を利用してメッセージを定義してい
る構文記述を意識した復号化を行なう。
メッセージがどのように復号化されるかを説明するため
に、復号化の対象とするメッセージを定義するASN.
1記述の例として図2に示す記述を考える。この記述
は、PDUはapdu又はbpduのいずれかによって
構成され、apduはINTEGER型の値の系列によ
って構成され、bpduはINTEGER型及びOCT
ET STRING型の値の系列から構成されるという
ことを意味する。
を行なうための有限状態機械105の状態遷移図を示し
ている。図5において、囲みの部分はそれぞれ状態を表
し、囲み中の数字は状態番号である。また、321から
328までの数字を付した矢印は状態遷移の番号を表し
ている。数字を付していない矢印は、この有限状態機械
が初期状態311にあることを示している。
る。以下の動作説明において、タグ‘A1’と記述した
場合は、そのタグの内容が‘A1’(16進表記)であ
ることを意味する。
1にあり、apduを示すタグ‘A1’又はbpduを
示すタグ‘A2’が到着するのを待っている。タグ‘A
1’が到着した場合は、矢印321により状態312に
遷移する。また、タグ‘A2’が到着した場合は、矢印
325により状態314に遷移する。初期状態311に
おいては、いずれの遷移を行なう場合でも遷移を行なう
前に長さフィールドを調べ、このフィールドの値を残り
メッセージ長として保存する。
型を示すタグ‘30’が到着するのを待っている。状態
312においてタグ‘30’が到着した場合は、保存し
ていた残りメッセージ長から状態312において入力さ
れたオクテット数(タグフィールドのオクテット数と長
さフィールドのオクテット数の和)を減じ、矢印322
により状態313に遷移する。
タグ‘02’が到着するのを待っている。状態313に
おいてタグ‘02’が到着した場合は、INTEGER
型の値を出力し、保存していた残りメッセージ長から状
態313において入力されたオクテット数(タグフィー
ルドのオクテット数、長さフィールドのオクテット数及
びINTEGER型の値のオクテット数の三者の和)を
減ずる。残りメッセージ長が0になった場合は、矢印3
24により状態311に戻る。残りメッセージ長が0で
ない場合は矢印323により状態313に留まる。
すタグ‘30’が到着するのを待っている。状態314
においてタグ‘30’が到着した場合は、保存していた
残りメッセージ長から状態314において入力されたオ
クテット数(タグフィールドのオクテット数と長さフィ
ールドのオクテット数の和)を減じ、矢印326により
状態315に遷移する。
タグ‘02’が到着するのを待っている。状態315に
おいて、タグ‘02’が到着した場合はINTEGER
型の値を出力し、保存していた残りメッセージ長から状
態315において入力されたオクテット数(タグフィー
ルドのオクテット数、長さフィールドのオクテット数お
よびINTEGER型の値のオクテット数の三者の和)
を減じ、矢印327により状態316に遷移する。
G型を示すタグ‘04’が到着するのを待っている。状
態316においてタグ‘04’が到着した場合はOCT
ETSTRING型の値を出力し、保存していた残りメ
ッセージ長から状態316において入力されたオクテッ
ト数(タグフィールドのオクテット数、長さフィールド
のオクテット数、及びOCTET STRING型の値
のオクテット数の三者の和)を減じ、矢印328により
状態311に戻る。
2はINTEGER型の値を要素とする系列又はINT
EGER型の値及びOCTET STRING型の値を
要素とする系列を出力する。
号化処理部102の出力を受け取り、メッセージ復号化
装置の利用者104にとって利用しやすい形態にして、
メッセージ復号化装置の利用者104に渡す。
械生成装置について説明する。
成装置の例を示すブロック図であり、有限状態機械生成
装置は構文解析木生成部201及び有限状態機械生成部
202を備えている。
として、例えば、ASN.1記述を入力として受け取
り、ASN.1コンパイラ技術を応用して構文解析を行
ない、構文解析木を生成する。有限状態機械生成部20
2は、生成された構文解析木を入力として受け取り、こ
の構文解析木を変換して、ASN.1記述を意識した復
号化を行なうための有限状態機械を生成する。
の第2の例について説明する。
の記述を再び用いて、第2の例で用いられる有限状態機
械生成装置の機能を説明する。図3も参照して、図2の
記述を構文解析木生成部201に入力すると、構文解析
木生成部201は構文記述の解析を行ない、構文解析木
という中間表現に変換する。ここで、図2の記述から得
られる構文解析木を図4に示す。構文解析木の各ノード
はASN.1記述の要素名又は型名となっており、図4
の意味するところは以下の通りである。
要素のうち1つが選択されるデータ型)であり、apd
u又はbpduのいずれかが選択される。apduはS
EQUENCO OF型(同一のデータ型を要素とする
系列であるデータ型)であり、その要素はINTEGE
R型(整数)である。また、bpduはSEQUENC
E型(複数のデータ型を要素とする系列であるデータ
型)であり、その要素はid及びnameである。さら
に、idはINTEGER型であり、nameはOCT
ET STRING型(オクテット列)である。
02に入力すると、有限状態機械生成部202は構文解
析木のすべてのノードを解析し、構文解析木のうちAS
N.1記述の型に対応するノードを有限状態機械の状態
に変換し、有限状態機械を生成する。この変換を行なう
際、構文解析木中にCHOICEというノードがある場
合は、その直接の子供にあたるノードを示すタグすべて
を待つ状態を生成して、入力されるタグによってそれぞ
れ異なる遷移を生成する。
木の一部分に対しては、図6(b)に示すような有限状
態機械の一部分を生成する。図6(b)に示す状態51
においては、Aを示すタグ又はBを示すタグ又はCを示
すタグを待っており、Aを示すタグが到着した場合は矢
印52、Bを示すタグが到着した場合は矢印53、Cを
示すタグが到着した場合は矢印54に従ってそれぞれ遷
移を行なう。また、構文解析木中にIMPLICIT指
定されたノードがある場合には、このノードの直接の子
供ノードがIMPLICIT指定されたノードのデータ
型を表すノードになっているが、これに対応する状態の
生成及びこの状態への遷移の生成を行なわない。例え
ば、図7(a)に示すような構文解析木の一部分(枠で
囲まれたノードはIMPLICIT指定されていること
を示す)に対しては、図7(b)に示すような有限状態
機械の一部分を生成する。図7(b)において、破線で
示す状態62及び矢印63は構文解析木のノードAがI
MPLICIT指定されているために生成されなかった
部分である。
定されたノードがある場合は、OPTIONAL指定の
要素が存在する場合と存在しない場合それぞれに対応す
るための状態遷移を生成する。例えば、図8(a)に示
すような構文解析木の一部分(点線の枠で囲まれたノー
ドはOPTIONAL指定されていることを示す)に対
しては、図8(b)に示すような有限状態機械の一部分
を生成する。図8(b)において、状態72はAを示す
タグ又はBを示すタグを待つが、これはAがOPTIO
NAL指定されているのでA,Bどちらも到着する可能
性があるためである。もしAを示すタグが到着した場合
は、次にBを示すタグが到着するので矢印76によりB
を示すタグを待つ状態73へ遷移する。Bを示すタグが
到着した場合は、次にINTEGERを示すタグが到着
するので、矢印77により状態74へ遷移する。
いる要素が存在した場合及び存在しない場合の2通りの
遷移を生成する。図4の構文解析木より得られる有限状
態機械を図5に示す。
を用いてASN.1記述から生成された有限状態機械を
用いて、メッセージを定義している構文記述を意識した
復号化を行なう。
セージがBERに従って符号化されている場合(符号化
されたメッセージがタグ、長さおよび値の3つのフィー
ルドから構成されている場合)についてのみ説明を行な
っているが、有限状態機械生成部を変更することによっ
て、メッセージがヘッダフィールド及び値フィールドと
いう2つのフィールドから構成されているメッセージの
復号化装置を構成することが可能である。
互接続(Open SystemsInterconn
ection、以下OSI)として標準化されプレゼン
テーション層のPDUからROSプロトコルのPDUを
経由して、共通管理情報プロトコル(Common M
anagement Information Pro
tocol、以下CMIP)の起動識別子(invok
eID)、操作の種類(operation−valu
e)、及び操作の引数(argument)を取得する
場合の動作について説明する(なお、以下この動作を動
作(1)と呼ぶことにする)。
1、図10、図11、図13、及び図14を用いて説明
する。図10において、囲み中の数字及び矢印に付され
た数字は図5と同様に、それぞれ状態番号、状態遷移の
番号を示す。
レゼンテーション層のPDU及びROSプロトコルのP
DUを定義するASN.1記述である。この記述の意味
するところを以下に示す。
ING型であるsimply−encoded−dat
a又はFully−encoded−data型である
filly−encoded−dataのいずれかによ
って構成される。Fully−encoded−dat
a型は、PDV−list型の値を要素とする系列によ
って構成される。PDV−list型は、OBJECT
IDENTIFIER型であり必ずしも存在しなくて
もよい要素であるtransfer−syntax−n
ame、INTEGER型であるpresentati
on−context−identifier、及びA
NY型であるsingle−ASN1−type又はO
CTET STRING型であるoctet−alig
ned又はBIT STRING型であるarbitr
aryのいずれかによって構成されるpresenta
tion−data−valuesによって構成され
る。ROSプロトコルのPDUであるROSEapdu
sは、前述のsingle−ASN1−typeに格納
される。
型であるroiv−apdu又はRORSapdu型で
あるrors−apdu又はROERapdu型である
roer−apdu又はRORJapdu型であるro
rj−apduのいずれかによって構成される。ROI
Vapdu型は、InvokeIDType型であるi
nvokeID、InvokeIDType型であり必
ずしも存在しなくてもよい要素であるlinked−I
D、OPERATION型であるoperation、
及びANY型であるargumentを要素とする系列
によって構成される。RORSapdu型は、Invo
keIDType型であるinvokeID、OPER
ATION型であるoperation−value、
及びANY型であるresultを要素とする系列であ
るresultを要素とする系列によって構成される。
resultは必ずしも存在しなくてもよい要素であ
る。ROERapdu型は、InvokeIDType
型であるinvokeID、ERROR型であるerr
or−value、及びANY型であるparamet
erを要素とする系列によって構成される。RORJa
pduは、InvokeIDType型であるinvo
keIDType又はNULL型であるnullのいず
れかによって構成されるinvokeID及びGene
ralProblem型であるgeneralProb
lem又はInvokeProblem型であるinv
okeProblem又はReturnResultP
roblem型であるreturnResultPro
blem及びReturnError−Problem
型であるreturnErrorProblemのいず
れかによって構成されるproblemによって構成さ
れる。InvokeIDType型、OPERATIO
N型、ERROR型、GeneralProblem
型、InvokeProblem型、ReturnRe
sultProblem型、及びReturnErro
rProblem型はいずれもINTEGER型であ
る。
10に示す状態遷移図によって表される有限状態機械1
05を利用してメッセージの復号化処理を行なう。以
下、復号化を行なっているときに有限状態機械105が
どのように状態遷移を行なうかを説明する。なお、以下
の動作説明において、タグ‘A1’と記述した場合は、
そのタグの内容が‘A1’(16進表記)であることを
意味する。
01にあり、fully−encoded−dataを
示すタグ‘61’が到着するのを待っている。ここで、
simply−encoded−dataを無視してい
るのはROSプロトコルのPDUがsimply−en
coded−data中に格納されていることはないか
らである。状態4101においてタグ‘61’が到着し
た場合は、矢印4201により状態4102に遷移す
る。初期状態4101においては、遷移を行なう前に長
さフィールドを調べ、このフィールドの値を残りメッセ
ージ長として保存する。
示すタグ‘30’が到着するのを待っている。状態41
02において、タグ‘30’が到着した場合は、保存し
ていた残りメッセージ長から状態4102において入力
されたオクテット数(タグフィールドのオクテット数と
長さフィールドのオクテット数の和)を減じ、矢印42
02により状態4103遷移する。
NTIFIER型を示すタグ‘06’又はINTEGE
R型を示すタグ‘02’が到着するのを待っている。状
態4103において、タグ‘06’が到着した場合は、
OBJECTIDENTIFIER型の値を出力し、保
存していた残りメッセージ長から状態4103において
入力されたオクテット数(タグフィールドのオクテット
数、長さフィールドのオクテット数、及びOBJECT
IDENTIFIER型の値のオクテット数の三者の
和)を減じ、矢印4203により状態4104遷移す
る。また、状態4103において、タグ‘02’が到着
した場合は、INTEGER型の値を出力し、保存して
いた残りメッセージ長から状態4103において入力さ
れたオクテット数(タグフィールドのオクテット数、長
さフィールドのオクテット数、及びINTEGER型の
値のオクテット数の三者の和)を減じ、矢印4204に
より状態4105遷移する。
すタグ‘02’が到着するのを待っている。状態410
4において、タグ‘02’が到着した場合は、INTE
GER型の値を出力し、保存していた残りメッセージ長
から状態4104において入力されたオクテット数(タ
グフィールドのオクテット数、長さフィールドのオクテ
ット数、及びINTEGER型の値のオクテット数の三
者の和)を減じ、矢印4205により状態4105遷移
する。
示すタグ‘A0’が到着するのを待っている。状態41
05において、タグ‘A0’が到着した場合は、保存し
ていた残りメッセージ長から状態4105において入力
されたオクテット数(タグフィールドのオクテット数と
長さフィールドのオクテット数の和)を減じ、矢印42
06により状態4106遷移する。
示すタグ‘A1’又はrors−apduを示すタグ
‘A2’又はroer−apduを示すタグ‘A3’又
はrorj−apduを示すタグ‘A4’が到着するの
を待っている。状態4106において、タグ‘A1’が
到着した場合は、矢印4207により状態4107に遷
移する。状態4106において、タグ‘A2’が到着し
た場合は、矢印4214により状態4111に遷移す
る。状態4106において、タグ‘A3’が到着した場
合は、矢印4220により状態4115に遷移する。状
態4106において、タグ‘A4’が到着した場合は、
矢印4225により状態4118に遷移する。いずれの
遷移を行なう場合でも、遷移を行なう前に、保存してい
た残りメッセージ長から状態4106において入力され
たオクテット数(タグフィールドのオクテット数と長さ
フィールドのオクテット数の和)を減ずる。
すタグ‘02’が到着するのを待っている。状態410
7において、タグ‘02’が到着した場合は、invo
keIDの値としてINTEGER型の値を出力し、保
存していた残りメッセージ長から状態4107において
入力されたオクテット数(タグフィールドのオクテット
数、長さフィールドのオクテット数、及びINTEGE
R型の値のオクテット数の三者の和)を減じ、矢印42
08により状態4108に遷移する。
inked−ID)を示すタグ‘80’又はINTEG
ER型(OPERATION)を示すタグ‘02’が到
着するのを待っている。状態4108において、タグ
‘80’が到着した場合は、linked−IDの値と
してINTEGER型の値を出力し、矢印4209によ
り状態4109に遷移する。状態4108においてタグ
‘02’が到着した場合は、OPERATIONの値と
してINTEGER型の値を出力し、矢印4210によ
り状態4110に遷移する。いずれの遷移を行なう場合
でも、遷移を行なう前に、保存していた残りメッセージ
長から状態4108において入力されたオクテット数
(タグフィールドのオクテット数、長さフィールドのオ
クテット数、及びINTEGER型の値のオクテット数
の三者の和)を減ずる。
PERATION)を示すタグ‘02’が到着するのを
待っている。状態4109においてタグ‘02’が到着
した場合は、OPERATIONの値としてINTEG
ER型の値を出力し、保存していた残りメッセージ長か
ら状態4109において入力されたオクテット数(タグ
フィールドのオクテット数、長さフィールドのオクテッ
ト数、及びINTEGER型の値のオクテット数の三者
の和)を減ずる。残りメッセージ長が“0”でない場合
は矢印4211により状態4110に遷移する。残りメ
ッセージ長が“0”になり、ANY型のデータが存在し
ないとわかった場合は、矢印4212により状態410
1に戻る。
着するのを待っている。状態4110において、ANY
型のデータが到着した場合は、データを出力し、保存し
ていた残りメッセージ長を“0”にクリアして、矢印4
213により状態4101に戻る。
すタグ‘02’が到着するのを待っている。状態411
1において、タグ‘02’が到着した場合は、invo
keIDの値としてINTEGER型の値を出力し、保
存していた残りメッセージ長から状態4111において
入力されたオクテット数(タグフィールドのオクテット
数、長さフィールドのオクテット数、及びINTEGE
R型の値のオクテット数の三者の和)を減ずる。残りメ
ッセージ長が0でない場合は矢印4216により状態4
112に遷移する。残りメッセージ長が0になり以降の
データが存在しないとわかった場合は、矢印4215に
より状態4101に戻る。
示すタグ‘30’が到着するのを待っている。状態41
12においてタグ‘30’が到着した場合は、保存して
いた残りメッセージ長から状態4112において入力さ
れたオクテット数(タグフィールドのオクテット数と長
さフィールドのオクテット数の和)を減じ、矢印421
7により状態4113に遷移する。
すタグ‘02’が到着するのを待っている。状態411
3において、タグ‘02’が到着した場合は、oper
ation−valueの値としてINTEGER型の
値を出力し、保存していた残りメッセージ長から状態4
113において入力されたオクテット数(タグフィール
ドのオクテット数、長さフィールドのオクテット数、及
びINTEGER型の値のオクテット数の三者の和)を
減じ、矢印4218により状態4114に遷移する。
着するのを待っている。状態4114においてANY型
のデータが到着した場合は、データを出力し、保存して
いた残りメッセージ長を0にクリアして、矢印4219
により状態4101に戻る。
すタグ‘02’が到着するのを待っている。状態411
5において、タグ‘02’が到着した場合は、invo
keIDの値としてINTEGER型の値を出力し、保
存していた残りメッセージ長から状態4115において
入力されたオクテット数(タグフィールドのオクテット
数、長さフィールドのオクテット数、及びINTEGE
R型の値のオクテット数の三者の和)を減じ、矢印42
21により状態4116に遷移する。
すタグ‘02’が到着するのを待っている。状態411
6において、タグ‘02’が到着した場合は、erro
r−valueの値としてINTEGER型の値を出力
し、保存していた残りメッセージ長から状態4116に
おいて入力されたオクテット数(タグフィールドのオク
テット数、長さフィールドのオクテット数、及びINT
EGER型の値のオクテット数の三者の和)を減ずる。
残りメッセージ長が“0”でない場合は、矢印4222
により状態4117に遷移する。残りメッセージ長が
“0”になり、ANY型のデータが存在しないことがわ
かった場合は、矢印4223により状態4101に戻
る。
着するのを待っている。状態4117においてANY型
のデータが到着した場合は、データを出力し、保存して
いた残りメッセージ長を“0”にクリアして、矢印42
24により状態4101に戻る。
すタグ‘02’またはNULL型を示すタグ‘05’が
到着するのを待っている。状態4118において、タグ
‘02’が到着した場合は、invokeIDの値とし
てINTEGER型の値を出力し、保存していた残りメ
ッセージ長から状態4118において入力されたオクテ
ット数(タグフィールドのオクテット数、長さフィール
ドのオクテット数、及びINTEGER型の値のオクテ
ット数の三者の和)を減ずる。また、状態4118にお
いてタグ‘05’が到着した場合は、invokeID
の値としてNULLを出力し、保存していた残りメッセ
ージ長から状態4118において入力されたオクテット
数の和(タグフィールドのオクテット数、長さフィール
ドのオクテット数、及びNULL型の値のオクテット数
の三者の和)を減ずる。いずれの場合にも矢印4226
により状態4119に遷移する。
blemを示すタグ‘A0’又はinvokeProb
lemを示すタグ‘A1’又はreturnResul
tProblemを示すタグ‘A2’又はreturn
ErrorProblemを示すタグ‘A3’を待って
いる。状態4119において、前述のいずれかのタグが
到着した場合は、problemの値としてINTEG
ER型の値を出力し、保存していた残りメッセージ長を
“0”にクリアして、矢印4227により状態4101
に戻る。
はINTEGER型のもの及びANY型のものがある。
てメッセージの復号化を行なった例である。
ジからinvokeID、operation−val
ue、及びargumentというROIVapduの
各要素に対応する値を出力している。ここで、invo
keID及びoperation−valueはINT
EGER型、argumentはANY型のデータとな
っている。
成装置について図3、図9、図10、図13、及び図1
4を用いて説明する。
生成部201に入力すると、構文解析木生成部201は
構文記述の解析を行ない、図9に示す構文解析木を生成
する。図9において枠で囲まれたノードはIMPLIC
IT指定されている(符号化の際に該当ノードを示すタ
グは符号化を行なうが当該ノードのデータ型を示すタグ
の符号化は行なわない)ことを示す。破線の枠で囲まれ
たノードはOPTIONAL指定されている(当該ノー
ドが必ずしも存在しなくてもよい要素である)ことを示
している。
2に入力すると、有限状態機械生成部202は構文解析
木のすべてのノードを解析し、図10に示す抽象構文記
述を意識した復号化を行なうための有限状態機械を生成
する。この際、構文解析木中にCHOICEというノー
ドがあれば、その子供にあたるノードを示すタグすべて
を待つ状態を生成し(図10中の状態4106に相
当)、入力されるタグによってそれぞれ異なる遷移を生
成する(図10中の矢印4207、矢印4214、矢印
4220および矢印4225に相当)。
場合は、当該ノードの直接の子供ノードが該当ノードの
データ型を表すノードになっているが、これに対応する
状態の生成を行なわない(図10では、状態4106と
状態4107の間にSEQUENCE型を示すタグ‘3
0’を待つ状態の生成を抑止している)。ノードがOP
TIONAL指定されている場合は、OPTIONAL
指定の要素が存在する場合と存在しない場合それぞれに
対応するための状態遷移を生成する(図10の状態41
08から矢印4209と矢印4210という2つの遷移
が生成されている)。
を行なう対象とする構文を限定したことに加え、構文を
限定したことによって単なるフィールド分割のための回
路の規模を縮小することができる。このため、メッセー
ジ復号化装置の規模を小さく抑えることができ、装置の
コストを低減することが可能となる。
記述から有限状態機械生成装置を利用して生成した有限
状態機械をメッセージ復号化処理部に埋め込み、この有
限状態機械を復号化処理に利用するようにしたから、構
文を意識した復号化を行うことが可能である。この結
果、メッセージ復号化装置の利用者は、メッセージ復号
化装置の出力結果を従来より小さなオーバヘッドで利用
することができる。
コンパイラ技術を応用して自動変換した有限状態機械を
メッセージ復号化処理部に埋め込んでいるから、対象と
する構文の復号化処理を行なうのに最適となっており、
対象とする抽象構文が変化した場合にも、当該構文をA
SN.1コンパイラ技術を応用して自動変換することが
可能であり、さまざまな構文記述に対して柔軟に対応す
ることができる。
すブロック図である。
有限状態機械生成装置の一例を示すブロック図である。
である。
機械の状態遷移を示す図である。
機械の状態との対応を示す図である。
状態機械の状態との対応を示す図である。
状態機械の状態との対応を示す図である。
図である。
態機械の状態遷移を示す図である。
示す図である。
ロック図である。
び遠隔操作サービスプロトコルのプロトコルデータユニ
ットを定義する抽象構文記述を示す図である。
プロトコル及び遠隔操作サービスプロトコルのプロトコ
ルデータユニットを定義する抽象構文記述を示す図であ
る。
ロトコルデータユニットの一例を示す図である。
果の一例を示す図である。
Claims (5)
- 【請求項1】 抽象構文記法における基本符号化規則に
応じて符号化メッセージを受信するメッセージ入力部
と、符号化メッセージ内において抽象構文記述の各要素
を識別するために用いられるタグフィールドの内容に応
じて状態遷移を行ない前記抽象構文記述中の単純型要素
に対応する値を取り出す機能を有する有限状態機械を用
いて前記符号化メッセージの復号化を行ない復号化メッ
セージを生成するメッセージ復号化処理部と、該復号化
メッセージをメッセージ復号化装置利用者に渡すメッセ
ージ出力部とを備えるメッセージ復号化装置とともに用
いられ抽象構文記述を入力として該抽象構文記述に対応
する構文解析木を生成する構文解析木生成部と、前記構
文解析木に応じて前記有限状態機械を生成する有限状態
機械生成部とを有することを特徴とする有限状態機械生
成装置。 - 【請求項2】 請求項1に記載された有限状態機械生成
装置において、前記有限状態機械生成部は、前記構文解
析木中のチョイス(CHOICE)ノードを処理する場
合において、該チョイスノードの直接の子供ノードを示
すタグすべてを待つ状態を持ち、該状態からは該タグの
各々の入力に応じて該タグにより示される前記子供ノー
ドへの状態遷移を持つ有限状態機械を生成することを特
徴とする有限状態機械生成装置。 - 【請求項3】 請求項1又は2に記載された有限状態機
械生成装置において、前記有限状態機械生成部は、前記
構文解析木中のインプリスト(IMPLICIT)指定
されたノードを処理する場合において、該インプリスト
指定されたノード自身を示すタグを待つ状態を持つが、
該インプリスト指定されたノードの直接の子供ノードを
示すタグを待つ状態を持たない有限状態機械を生成する
ことを特徴とする有限状態機械生成装置。 - 【請求項4】 請求項1乃至3のいずれかに記載された
有限状態機械生成装置において、前記有限状態機械生成
部は、前記構文解析木中のオプショナル(OPTION
AL)指定されたノードを処理する場合において、該オ
プショナル指定されている抽象構文記述の要素に対応す
る入力が存在する際の遷移および前記オプショナル指定
されている抽象構文記述の要素に対応する入力が存在し
ない際の遷移の両方を持つ有限状態機械を生成すること
を特徴とする有限状態機械生成装置。 - 【請求項5】 抽象構文記法における基本符号化規則に
応じて符号化メッセージを受信するメッセージ入力部
と、符号化メッセージ内において抽象構文記述の各要素
を識別するために用いられるタグフィールドの内容に従
って状態遷移を行ない前記抽象構文記述中の単純型要素
に対応する値を取り出す機能を有する有限状態機械を用
いて前記符号化メッセージの復号化を行ない復号化メッ
セージを生成するメッセージ復号化処理部と、該復号化
メッセージをメッセージ復号化装置利用者に渡すメッセ
ージ出力部とを備え、前記有限状態機械は請求項1に記
載された有限状態機械生成装置で生成され、前記符号化
メッセージはヘッダフィールド及び値フィールドを備え
ていることを特徴とするメッセージ復号化装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9041837A JP2996296B2 (ja) | 1997-02-26 | 1997-02-26 | メッセージ復号化装置及び有限状態機械生成装置 |
US09/030,860 US6081212A (en) | 1997-02-26 | 1998-02-26 | Decoder using a finite state machine in decoding an abstract syntax notation-message and an encoder for carrying out encoding operation at a high speed |
AU56340/98A AU743193B2 (en) | 1997-02-26 | 1998-02-26 | Decoder using a finite state machine in decoding an abstract syntex notation-message and an encoder for carrying out encoding operation at a high speed |
EP98103370A EP0862302A3 (en) | 1997-02-26 | 1998-02-26 | Decorder using a finite state machine in decoding an abstract syntax notation-message and an encoder for carrying out encoding operation at a high speed |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9041837A JP2996296B2 (ja) | 1997-02-26 | 1997-02-26 | メッセージ復号化装置及び有限状態機械生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10240652A JPH10240652A (ja) | 1998-09-11 |
JP2996296B2 true JP2996296B2 (ja) | 1999-12-27 |
Family
ID=12619383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9041837A Expired - Fee Related JP2996296B2 (ja) | 1997-02-26 | 1997-02-26 | メッセージ復号化装置及び有限状態機械生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2996296B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4741313B2 (ja) * | 2005-08-02 | 2011-08-03 | 株式会社日立製作所 | プログラム生成装置、プログラム生成方法及びコンパイラ |
JP5325921B2 (ja) | 2011-03-28 | 2013-10-23 | 株式会社東芝 | デコーダコンパイラ、プログラムおよび通信機器 |
JP5325920B2 (ja) | 2011-03-28 | 2013-10-23 | 株式会社東芝 | エンコーダコンパイラ、プログラムおよび通信機器 |
JP5166565B2 (ja) | 2011-03-28 | 2013-03-21 | 株式会社東芝 | Exiエンコーダおよびプログラム |
-
1997
- 1997-02-26 JP JP9041837A patent/JP2996296B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10240652A (ja) | 1998-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9185082B2 (en) | Method and apparatus for adaptive application message payload content transformation in a network infrastructure element | |
US6564265B2 (en) | Apparatus for encoding and decoding data according to a protocol specification | |
US7327756B2 (en) | System and method of communicating data | |
JP4299492B2 (ja) | CONTENTBASEDROUTINGネットワークでのXML(extensiblemarkuplanguage)文書の効率的な処理 | |
US7934252B2 (en) | Filtering technique for processing security measures in web service messages | |
US20080212611A1 (en) | Parsing messages with multiple data formats | |
US6483812B1 (en) | Token ring network topology discovery and display | |
US6665674B1 (en) | Framework for open directory operation extensibility | |
US6359886B1 (en) | Method and apparatus for filtering and routing communications frames | |
US5418963A (en) | Protocol encoding/decoding device capable of easily inputting/referring to a desired data value | |
JPH1011347A (ja) | ハードウェアリソース管理モジュール共通化方式 | |
WO2006014766A2 (en) | Method and apparatus for converting network management protocol to markup language | |
US7401326B1 (en) | Compiling protocol analysis code using protocol database | |
JP2996296B2 (ja) | メッセージ復号化装置及び有限状態機械生成装置 | |
US8260906B1 (en) | System and method for heuristic determination of network protocols | |
WO2024174447A1 (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
EP0862302A2 (en) | Decorder using a finite state machine in decoding an abstract syntax notation-message and an encoder for carrying out encoding operation at a high speed | |
JP4429173B2 (ja) | デジタル通信データに基づいてアクションをトリガーする方法及びコンピュータ・システム | |
CN114629970A (zh) | 一种tcp/ip流量还原方法 | |
CN117093533B (zh) | 基于ubus框架实现多CPU架构的通信方法及装置 | |
US6823361B2 (en) | Computationally efficient, platform-independent data transfer protocol | |
US20030095310A1 (en) | Optical communication apparatus and method | |
van Ween | An architecture for an OSI-protocol (layer 6) | |
CN116088853A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CA1218466A (en) | End user data stream syntax |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19990929 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071029 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081029 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091029 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091029 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101029 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |