JPH0798676A - 可変長入れ子構造のデータの編集方法 - Google Patents

可変長入れ子構造のデータの編集方法

Info

Publication number
JPH0798676A
JPH0798676A JP5243299A JP24329993A JPH0798676A JP H0798676 A JPH0798676 A JP H0798676A JP 5243299 A JP5243299 A JP 5243299A JP 24329993 A JP24329993 A JP 24329993A JP H0798676 A JPH0798676 A JP H0798676A
Authority
JP
Japan
Prior art keywords
data
length
value
tag
editing
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.)
Pending
Application number
JP5243299A
Other languages
English (en)
Inventor
Hiroshi Ishikawa
石川  浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP5243299A priority Critical patent/JPH0798676A/ja
Publication of JPH0798676A publication Critical patent/JPH0798676A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 可変長入れ子構造のプロトコルデータを容易
に編集すること。 【構成】 可変長入れ子構造のプロトコルデータを所定
の符号化規則の記述法に従って編集する場合、プロトコ
ルデータの最終位置から先頭に向かって「値」、「長
さ」、「タグ」の順序で各パラメタを編集する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プロトコルデータにお
ける可変長入れ子構造のデータの編集方法に関し、特に
プロトコルデータを最終位置から先頭に向かって各パラ
メタを編集することによって、不定長形式を用いずに、
可変長入れ子構造のデータを容易に編集する方法に関す
るものである。
【0002】
【従来の技術】従来、計算機間あるいは計算機と端末装
置間で送受されるプロトコルデータに関し、異機種ごと
に開発されたプロトコルでは、異機種計算機間の通信は
不可能であり、プロトコルの標準化が必要される。
【0003】そこで、コンピュータネットワークにおい
て、異機種計算機間における通信を可能とするために、
国際標準ネットワークアーキテクチャとして、OSI
(Open Systems Interconnection:開放型システム
間相互接続:規約番号ISO7498)がISO(Int
ernational Organization for Standardization:国
際標準化機構)によって提唱されている。
【0004】このOSIでは、異機種計算機間でデータ
通信を行う場合、処理データの送受に先立って、この処
理データを送受する手順を取り決めたプロトコルデータ
と呼ばれるデータの交換を行う。このプロトコルデータ
の符号化規則の1つにASN.1(Abstract Syntax
Notation.1:抽象構文記述法:規約番号ISO88
24/8825)がある。
【0005】このOSI環境下における情報処理システ
ムにおいて、プロトコルデータは前記ASN.1記述法
で記述されており、プロトコルデータを構成しているパ
ラメタが可変長入れ子構造となっている。
【0006】図7はASN.1記述法によるTLV型
(Tag, Length and Value)プロトコルデータの構造
図を示したものである。プロトコルデータ60は「1」
以上のパラメタで構成されている。
【0007】図7において、プロトコルデータ60は、
パラメタ61,62で構成され、さらにパラメタ61,
62は、「タグ」601、「長さ」602および「値」
603の3項目のパラメタ要素から構成されている。
【0008】「タグ」601はパラメタを識別するため
の識別子であり、「長さ」602はパラメタの「値」6
03のバイト数を示し、「値」603は当該パラメタの
パラメタ値である。
【0009】このパラメタには2つの型があり、「値」
603が構造を持たないものを「プリミティブ型」61
といい、「値」603がパラメタの構造を持っており、
入れ子状になっているものを「コンストラクト型」62
という。
【0010】以下、プロトコルデータ60の構造につい
て図7を用いて説明する。図7において、 (1)プロトコルデータ60は、「タグ」601、「長
さ」602および、「値」603の3項目のパラメタ要
素の並びで構成され、「プリミティブ型」61であれ
ば、「値」603は構造を持たず、「コンストラクト
型」62であれば、この「値」603がパラメタの構造
となっており、さらに前記3項目の並びに従ったパラメ
タが入れ子の形で入っている。
【0011】(2)「タグ」601、「長さ」602お
よび、「値」603それぞれのデータの長さは、全てそ
の長さが一定ではなく可変長である。
【0012】図8は、「タグ」601の構造と内容を説
明するための説明図である。
【0013】「タグ」601の先頭バイト70の第3ビ
ット701が当該パラメタの型を示している。第3ビッ
ト701が「0」ならば「プリミティブ型」61であ
り、「1」ならば「コンストラクト型」62である。
【0014】また、「タグ」601には2つの形式があ
り、「タグ」601の先頭バイト70の下位5ビット7
02によって示される。下位5ビット702が「111
11」以外ならば短形式、「11111」であれば長形
式である。
【0015】短形式ならば、「タグ」601のデータ長
は先頭バイト70のみの1バイトである。長形式ならば
先頭バイト70からの後続バイトで先頭ビットが「0」
の最初のバイトを含めたバイトまでが「タグ」601で
ある。本例の長形式では「タグ」601は先頭バイト7
0からバイト7mまでである。
【0016】図9は「長さ」602の構造と内容を説明
するための説明図である。
【0017】「長さ」602には2つの形式があり、
「長さ」602の先頭バイト80の先頭ビット801に
よって示される。先頭ビット801が「0」ならば短形
式であり、「1」であれば長形式である。
【0018】また、長形式の場合は、定長と不定長とが
あり、「長さ」602の先頭バイト80の下位7ビット
802によって示される。下位7ビット802が「00
00000」以外ならば定長であり、「000000
0」ならば不定長である。
【0019】短形式の場合、「長さ」602は先頭バイ
ト80のみの1バイトであり、下位7ビット802が当
該パラメタの「値」603のバイト数を示している。
【0020】長形式の場合、定長ならば下位7ビット8
02が継続するバイト81から8mまでのバイト数を示
し、先頭バイト80からバイト8mまでが「長さ」60
2である。
【0021】不定長ならば、「値」603のバイト数を
格納する部分は存在せず、先頭バイト80の次のバイト
からEOC(End Of Contents:「(0000)16」で示さ
れる)82までが「値」603である。
【0022】前記のように、プロトコルデータ60を編
集する場合、プロトコルデータ60のパラメタ要素であ
る「タグ」601、「長さ」602および「値」603
のそれぞれのデータ長が可変長入れ子構造であるため、
入れ子構造の深い最終のパラメタ要素のデータ長によっ
て入れ子構造の浅いパラメタ要素のデータ長が決定す
る。
【0023】このようなプロトコルデータ60の編集に
は、データ長を全て固定にしておくか、データ長が固定
部分については定長形式、可変部分については不定長形
式の表現する方法が考えられる。
【0024】しかし、不定長形式の場合は、EOC(E
nd Of Contents:「(0000)16」で示される)が「値」
603の途中にデータとして含まれていた場合、誤認識
されたり、また、不定長形式の構造解析には特別な処理
が必要であるため、不定長形式のデータを受信できない
接続先相手とは通信することができなくなる。
【0025】このため、種々のプロトコルデータ60の
編集方法が提案されている。例えば、特開平2−791
46号公報(発明の名称:転送構文解析・生成処理方
式)に開示されているように、プロトコルデータ60の
パラメタの入れ子の構造を解析し、各パラメタの上位パ
ラメタ、下位パラメタおよび同位パラメタを特定し、木
構造で表現して送信データ木構造表現テーブルに格納
し、「プリミティブ型」61のパラメタの「値」603
を送信プリミティブプールに格納し、送信プリミティブ
索引テーブルに各パラメタのパラメタ要素である「タ
グ」601、「長さ」602および「値」603が格納
されている送信プリミティブプールのアドレス(「コン
ストラクト型」62パラメタの場合はnu11値)を格
納し、これら2つのテーブルによってデータ構造とデー
タ内容とを別々に管理し、これらのデータに従って送信
プロトコルデータを編集する方法がある。
【0026】
【発明が解決しようとする課題】しかしながら、前記従
来技術は、データの構造と内容とをそれぞれ別のテーブ
ルに格納し、データの「長さ」の編集とデータの「値」
の編集とを別々に行っているために、2回の編集処理を
行う結果となり、処理が複雑になるうえ、性能も低下す
るという問題がある。
【0027】本発明の目的は、ASN.1記述法に従っ
たプロトコルデータを簡単な処理で、かつ高速に編集す
ることができる可変長入れ子構造のデータの編集方法を
提供することにある。
【0028】
【課題を解決するための手段】前記課題を解決するため
に、本発明は、プロトコルデータを所定の符号化規則の
記述法に従って編集するに際し、プロトコルデータの最
終位置から先頭に向かって「値」、「長さ」、「タグ」
の順序で編集することを特徴とする。
【0029】
【作用】前記手段によれば、プロトコルデータを入れ子
構造の深い最終パラメタ要素から入れ子構造の浅い先頭
パラメタ要素に向かって編集するので、1回の編集処理
で可変長入れ子構造のプロトコルデータを編集すること
ができる。
【0030】
【実施例】以下、本発明の一実施例を図面を用いて詳細
に説明する。なお、実施例を説明するための全図におい
て、同一機能を有するものは、同一符号を付け、その繰
り返しの説明は省略する。
【0031】図1は本発明を適用した情報処理システム
の一実施例を示すブロック図であり、この実施例の情報
処理システム10は、プロトコルデータ編集部11と、
通信制御部12とから構成されている。
【0032】プロトコルデータ編集部11は、本発明を
実現する部分であり、編集処理部13、取込処理部1
4、送信データバッファ15および入力データバッファ
16とから構成される。
【0033】取込処理部14は、ディスプレイ17や入
力データファイル18から入力データを取り込み、入力
データバッファ16に入力データを蓄積する。
【0034】また、編集処理部13は、入力データバッ
ファ16に蓄積された入力データをプロトコルデータ6
0に編集し、送信データバッファ15に蓄積する。
【0035】通信制御部12は相手側情報処理システム
20との間で、通信回線19を介して送信データバッフ
ァ15に蓄積されたプロトコルデータ60の送受信を制
御する。なお、図1には図示していないが、情報処理シ
ステム10内には、ユーザ業務を行う業務プログラム等
が内蔵されている。
【0036】図2は本実施例のプロトコルデータ60の
編集処理手順を示すフローチャートである。図2に従っ
て本実施例の編集処理手順を説明する。なお、フローチ
ャート中のバッファとは送信データバッファ15を示
す。
【0037】まず、取込処理部14は、ディスプレイ1
7や入力データファイル18から入力データを取り込
み、入力データバッファ16に蓄積する。そして、シス
テム設計者等の利用者によってプロトコルデータ60の
編集指示がディスプレイ17に接続されたキーボード等
から入力されると、プロトコルデータ編集部11が起動
し、プロトコルデータ60の編集処理を開始する。
【0038】まず、カレントポインタを送信データバッ
ファ15の最終に位置付ける(ステップ201)。カレ
ントポインタは、送信データバッファ15中のデータ出
力位置を示すものである。
【0039】次に、入力データバッファ16に蓄積され
たデータのうち最後の「値」から順次読み込み(ステッ
プ202)、入力データが「プリミティブ型」61か
「コンストラクト型」62かを判定する(ステップ20
3)。
【0040】判定の結果はプロトコルデータ60のパラ
メタ要素である「タグ」601の先頭バイト70の第3
ビット701に反映し、「タグ」601の編集時に付加
する。
【0041】これは図8に示したようにASN.1記述
法に従い、「プリミティブ型」61ならば第3ビット7
01を「0」とし、「コンストラクト型」62ならば
「1」とすることである。
【0042】「プリミティブ型」61であれば、カレン
トポインタを「値」603の「長さ」602分だけ先頭
に向かって戻すために「長さ」602分減算し(ステッ
プ204)、「値」603を送信データバッファ15に
出力する(ステップ205)。
【0043】「コンストラクト型」62であれば、
「値」603は存在しないのでステップ206まで処理
をスキップする。
【0044】次に、「値」603の「長さ」602が
「短形式」か「長形式」かを判定する(ステップ20
6)。「長さ」602が「128」より小さいならば
「短形式」であり、「128」以上ならば「長形式」で
ある。
【0045】「短形式」であれば、カレントポインタを
1バイト分先頭に向かって戻すために「1」減算し(ス
テップ207)、「長さ」602を送信データバッファ
15に出力する(ステップ208)。
【0046】「長形式」であれば、カレントポインタを
1バイトずつ先頭に向かって戻すために「1」減算し
(ステップ209)、「長形式」の「長さ」602を送
信データバッファ15に出力する(ステップ210)。
この処理を「長さ」602のバイト数分繰り返す(ステ
ップ211)。これは、「長形式」ならば「長さ」60
2の先頭バイト80の下位7ビット802が「値」60
3のバイト数を示す後続バイト数を示すので、カレント
ポインタを1バイトずつ先頭に向かって戻すために
「1」ずつ減算し、バイト8mからバイト81まで
「値」603のバイト数を送信データバッファ15に、
繰り返し出力するためである。
【0047】次に、「タグ」601が「短形式」か「長
形式」かを判定する(ステップ212)。判定の方法
は、「タグ」601のコードが31より小さいならば
「短形式」であり、「31」以上ならば「長形式」であ
る。
【0048】「短形式」であれば、カレントポインタを
1バイト分先頭に向かって戻すために「1」減算し(ス
テップ213)、「タグ」601を送信データバッファ
15に出力する(ステップ214)。
【0049】「長形式」であれば、カレントポインタを
1バイトずつ先頭に向かって戻すために「1」減算し
(ステップ215)、「長形式」の「タグ」601を送
信データバッファ15に出力する(ステップ216)。
この処理を「タグ」601のバイト数分繰り返す(ステ
ップ217)。図8に示したようにASN.1記述法に
従い、「タグ」601の先頭バイト70の下位5ビット
が「11111」であれば「長形式」であり、それ以外
は「短形式」である。ステップ215〜217の処理
は、「長形式」の場合に、カレントポインタを1バイト
ずつ先頭に向かって戻すために「1」ずつ減算し、バイ
ト7mからバイト71までを送信データバッファ15
に、繰り返し出力するためである。
【0050】プロトコルデータ60は、先頭パラメタが
後続パラメタを全て下位に従えているので、入力データ
の最終から順次読み込んで行くと、先頭の処理が終了し
た時点でプロトコルデータ60の1単位分の編集処理が
終了したことになる(ステップ218)。
【0051】以上の操作により、プロトコルデータが容
易に編集できることになる。
【0052】図3は、編集結果であるプロトコルデータ
60の原データ30を表した例である。図4は、図3の
プロトコルデータ60のデータ構造をわかりやすく表し
た例である。各行の先頭に「タグ」601、次に「長
さ」602、その次に「値」603を示している。入れ
子の深さがわかるようにインデント付けして表してあ
る。
【0053】図4から明らかなように、プロトコルデー
タ60のパラメタ要素である「タグ」601、「長さ」
602、「値」603のそれぞれのデータ長が可変長入
れ子構造であるため、入れ子構造の深い最終のパラメタ
要素のデータ長によって入れ子構造の浅いパラメタ要素
のデータが決定するので、プロトコルデータ60を編集
する場合、複雑な処理を必要とし、性能的にも低下する
ことになる。
【0054】図5は、本発明を適用してプロトコルデー
タ60を編集する例である。カレントポインタを送信デ
ータバッファ15の最終に位置付け、最終位置から先頭
に向かって「値」603、「長さ」602、「タグ」6
01の順序で編集することを示している。
【0055】ここで示されているプロトコルデータ60
は、図6の入力データバッファ16に〜で示すよう
にしてパラメタごとに区分されて格納された入力データ
に対応している。各パラメタの内容のうち、クラス16
1、型162、タグコード163から「タグ」601が
作成される。また、「値」のバイト数164から「長
さ」602が作成される。「値」のバイト数164は、
プリミティブパラメタの場合は数値が格納され、コンス
トラクタパラメタの場合は、プロトコルデータ編集時
に、パラメタ最終ポインタ−カレントポインタの値によ
り計算される。「値」ポインタ165は、プリミティブ
パラメタの場合にのみ存在する。
【0056】なお、ここでは入力データは「値」ポイン
タで示される値テーブルに格納されるようになってい
る。
【0057】このようにして入力データの格納の後、編
集指示が与えられたならば、上述のように、カレントポ
インタを送信データバッファ15の最終に位置付け、最
終位置から先頭に向かって「値」603、「長さ」60
2、「タグ」601の順序で編集する。
【0058】ここで、図5のlは「値」603の長さを
示している。
【0059】このように編集することによって、不定長
形式を用いずに、可変長入れ子構造のデータを、1回の
編集処理で簡単に編集することができる。そして、編集
処理が1回で済むことから処理速度も高速になり、性能
が向上する。
【0060】
【発明の効果】以上説明したように本発明によれば、可
変長入れ子構造のプロトコルデータを所定の符号化規則
の記述法に従って編集するに際して、プロトコルデータ
の最終位置から先頭に向かって「値」、「長さ」、「タ
グ」の順序で編集するようにしたので、不定長形式を用
いずに、可変長入れ子構造のデータを1回の編集処理で
簡単に編集することができる。そして、編集処理が1回
で済むことから処理速度も高速にすることができる。
【0061】この結果、計算機間あるいは計算機と端末
装置間の通信を行う場合、双方の情報処理システムにお
けるプロトコルデータの編集作業を効率良く行い、性能
を向上させることができるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例を示すシステム構成図であ
る。
【図2】実施例の編集処理手順を示すフローチャートで
ある。
【図3】プロトコルデータの原データを示す図である。
【図4】プロトコルデータの構造例を示す図である。
【図5】実施例によるプロトコルデータの編集例を示す
図である。
【図6】図5のプロトコルデータの編集前の構造を示す
図である。
【図7】ASN.1記述法によるプロトコルデータの構
造図である。
【図8】ASN.1記述法による「タグ」の説明図であ
る。
【図9】ASN.1記述法による「長さ」の説明図であ
る。
【符号の説明】
10…情報処理システム、11…プロトコルデータ編集
部、12…通信制御部、13…編集処理部、14…取込
処理部、15…送信データバッファ、16…入力データ
バッファ、17…ディスプレイ、18…入力データファ
イル、19…通信回線、20…相手側情報処理システ
ム、30…原データ、40…データ構造の例、50…編
集のデータ例、60…プロトコルデータ、61…プリミ
ティブ型のパラメタ、62…コンストラクト型のパラメ
タ、601…タグ、602…長さ、603…値、70…
「タグ」の先頭バイト、80…「長さ」の先頭バイト。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 計算機間あるいは計算機と端末装置間で
    送受されるプロトコルデータにおける可変長入れ子構造
    のデータの編集方法において、 前記プロトコルデータを所定の符号化規則の記述法に従
    って編集するに際し、前記プロトコルデータの最終位置
    から先頭に向かって「値」、「長さ」、「タグ」の順序
    で編集することを特徴とする可変長入れ子構造のデータ
    の編集方法。
JP5243299A 1993-09-29 1993-09-29 可変長入れ子構造のデータの編集方法 Pending JPH0798676A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5243299A JPH0798676A (ja) 1993-09-29 1993-09-29 可変長入れ子構造のデータの編集方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5243299A JPH0798676A (ja) 1993-09-29 1993-09-29 可変長入れ子構造のデータの編集方法

Publications (1)

Publication Number Publication Date
JPH0798676A true JPH0798676A (ja) 1995-04-11

Family

ID=17101775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5243299A Pending JPH0798676A (ja) 1993-09-29 1993-09-29 可変長入れ子構造のデータの編集方法

Country Status (1)

Country Link
JP (1) JPH0798676A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081212A (en) * 1997-02-26 2000-06-27 Nec Corporation 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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081212A (en) * 1997-02-26 2000-06-27 Nec Corporation 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

Similar Documents

Publication Publication Date Title
US5459827A (en) Layout method for structured documents
JP3272014B2 (ja) 階層構造データ処理情報を含むデータ処理辞書を作成する方法及び装置
CN109981599B (zh) 一种通讯数据流的通用数据解析平台及方法
JP2003030030A (ja) データ処理方法及びその手法を用いたエンコーダ、デコーダ並びにxmlパーサ
CN108762743A (zh) 一种数据表操作代码生成方法及装置
CN111741019A (zh) 一种基于字段描述的通信协议解析方法和系统
CN111835646B (zh) 一种基于Vue的模块化路由管理方法及权限控制方法
US20040103374A1 (en) Function extension type browser, browser component, program and recording medium
JPH0798676A (ja) 可変長入れ子構造のデータの編集方法
CN106776689A (zh) 一种主机信息查询方法、装置和主机
JP4821287B2 (ja) 構造化文書の符号化方法、符号化装置、符号化プログラム、復号装置及び符号化された構造化文書のデータ構造
EP0327058A2 (en) Protocol data unit encoding/decoding system
JPH1049408A (ja) データスキーマ変換方法及び装置
JP5206675B2 (ja) 構造化文書変換装置
CN117614799B (zh) 一种基于模型分层映射的传感器协议适配方法及装置
US7447787B2 (en) Protocol executing system and protocol PDU common data structure converting method for processing protocol PDUS
JP2833612B2 (ja) サービスプリミティブ生成システム
JPH07271696A (ja) プロトコルデータの解析表示方法
JPH0736803A (ja) 可変長かつ入れ子構造のデータの解析・表示方法
CN118034673B (zh) 一种物联网设备模型可视化编辑生成和动态解析系统
CN112069775B (zh) 数据的转换方法及装置、存储介质、电子装置
JP2003345798A (ja) 翻訳制御方法,翻訳制御装置およびその処理プログラム
JP2633121B2 (ja) データ解析処理方式
JPH0646099A (ja) プロトコル符号化/復号化装置
JPH11237979A (ja) 要求仕様モデル・他形式モデル変換装置及び方法