2016年1月12日火曜日

メインフレームにおけるデータストリーム概要その1~フィールド編

こんにちは、綱島です。




端末エミュレーターの担当をしていると、切っても切れないものがデータストリームです。
皆さんは、ここのブログを表示するために、ブラウザを使って表示していますよね。
ブラウザとWebサーバーとの関係が、端末エミュレーターとメインフレームに相当し、ブラウザにブログの内容を表示するための言葉として、HTMLを使用しますが、これに相当するのが、データーストリームになります。

ただ、HTMLのように標準化されてはおらず、メインフレームメーカーによって異なっているという点です。
IBMなら3270データストリームなどや、富士通なら6680データストリームといった感じです。
しかも、同じメーカーで複数種類のデーターストリームがありますので、実際は、IBM3270データストリームとメーカー名も前につけるのが一般的です。
ちなみに、データストリームの名称が3270や6680なのかというと、端末装置の型番からきているようです。

データストリームの種類が違っても基本的な考え方はほぼ同じですので、まずは考え方から説明していきます。

一般的な、端末画面は24行80桁で構成されています。データストリームは、この端末画面上に表示するテキストや色などの情報や文字の入力可否など端末自体をコントロールする情報などがあります。
また、双方向通信ですので、メインフレームから送られてくる情報をアウトバウンドデータ、端末からメインフレームへ送る情報をインバウンドデータといい、どちらもデータストリームに従った内容となります。

データストリームを理解するうえで、基本となるのが"フィールド"です。フィールドとは、画面上のここからここまで下線を引きますとか、ここからここまで文字が入力できますとか、画面のフォーマットを定義する仕組みのようなものです。

このフィールドの定義は、ここからここまでとか、ここからこの長さでといった定義ではなく、フィールドの開始しかありません(一部のデータストリームでは、長さを持っていますが、ここでは割愛します)。フィールドの開始から次のフィールルドの開始まで、そのフィールドは続いているのです。
フィールドの開始は、文字の色などを指定する属性が指定されたら、それ以降はその属性に従ったフィールドということになります。

図示すると端末画面のフィールドイメージは、図1.のようになります。


たとえば、図1.のフィールド2の直前にある属性が、文字が入力可能な属性であれば、フィールド2は入力フィールドということになります。フィールドは次のフィールドが現れるまで連続しますので、フィールド2の入力フィールドは1行目の途中から2行目の途中までになります。

なお、属性によって、文字が入力できるかどうか決まります。文字が入力できるフィールドを入力フィールドまたは非保護フィールドといい、文字が入力できないフィールドを保護フィールドといいます。

また、画面上1桁分占有します(属性が画面上占有しないデーターストリームもありますが、まれなのでここでは割愛します)。しかし、見た目はスペースと同じですので、属性とスペースの区別はつきません。

これで、端末の画面上はフィールで埋め尽くされていることがお分かりかと思います。
もし、属性が画面上一つしかない場合でも、図2.のように属性からフィールドが始まり、属性の前までのフィールドになります。


ちなみに、属性が一つもない画面も存在します。属性がない画面ですので、文字は表示できますが、色や罫線を指定することはできません。また、入力できる場所なのかできない場所なのかの区別もできませんので、全画面入力できる画面となります。このような画面を不定様式画面といいます。

さて、画面はフィールドに埋め尽くされているといいましたが、実際の画面を見る限り、整然としていると思います。
簡単に5行しかない画面で説明するとと、図3.のような配置をしていて、見やすいように配置します。

図3.をフィールドに分解すると図4.のようになり、属性の数=フィールド数ですので、フィールドは9個あることになります。


図中のフィールド2、4、6、9は、画面上では見えません。その前のフィールドの終わりという意味が強い属性の置き方になります。特に、画面上の「番号を入力」と書かれている後の罫線で囲まれたフィールドは、番号を入力するための入力フィールドとします。もし、フィールド9の属性がなければ、「○○会社メインメニュー」の前まで文字が入力できて罫線が書かれてしまいます。そのため、フィールド9は、保護フィールドにしてここに配置する必要があるわけです。

画面上の配置は、右上から順番に文字やスペースで埋めてしまってもいいわけですが、それでは無駄なスペースなどをメインフレームから送らなければなりません。このようなことがないように、画面上の位置を指定して文字や属性を配置できる仕組みがあります。
この仕組みについては、次回に説明したいと思います。

0 件のコメント:

コメントを投稿