汎用機時代のデータ通信 ~温故知新シリーズ2~

汎用機時代

ココネコネクトでサーバエンジニアをしているYです。 「温故知新シリーズ」第2弾として、改めて過去の技術を書いていきたいと思います。 今回は今もまだ使用されている、汎用機でのデータの扱いをまとめてみました。

クライアント・サーバシステム

クラサバと言われてました。
広義では今のwebサービスもブラウザとwebサーバーとでクライアント・サーバ関係が成り立っています。
ここでは専用のPCをクライアントと呼び、このPCを使用することでホストとの通信を行える様になっています。

処理の流れ

例えば自分が扱っていた損害保険のシステムだと以下の流れでデータが取り込まれます。

  1. 事故が発生
  2. 担当者が事故現場の情報を収集し、クライアントPCに入力
  3. 帰社してPCの情報をホストコンピューターに接続
  4. ホストがクライアントに入力されたデータを取り込み、DBに書き込む

クライアントプログラムのインストール

フロッピーディスク1による手作業でのコピーを行っていました。
クライアント200台とかキツかった。

バグとかで1日4回とかインストール作業があったことも。

(フロッピーディスク 3.5インチのものを主に使用。1.44MBの大容量を格納でき、今でも保存のアイコンに用いられていることもちらほら。ドクター中松が発明したという噂も。)

固定長データ

固定長データって何

別名「電文」と呼ばれてました。

余計なデータを送信しないように、以下のような厳密に定義された形でのデータ送信を行なっていました。

 

今でこそJSONやxml等が当たり前ですが、現在とは異なり、通信環境も悪く、保存するためのストレージも小さかったので、限りあるリソースを有効に使用するための当時の主流となっていました。

上記の画像をもとに、実際に送信していたデータとしては以下のような形になります。

100-10-001 やまだたろう          20220530163045

全角の文字の前と後には特殊な制御コードが入っており、これをシフトコードと呼んでいました。

大概使用する文字列よりも長く確保し、末尾にバッファとして数十〜数百バイトの予備枠を設けていました。これをFILLERと呼んでましたね。

文字コード

文字コードも異なっており、ASCIIではなく、EBCDIC(エビシディック)が主流でした。

前述の全角文字を表示するためのシフトコードは、EBCDICから文字コードが切り替わりますよ。という符号と考えてもらえるとわかりやすいかもしれません。

シフトコードの前側、上記の「やまだたろう」の前1バイトはシフトアウトと言います。
この文字を境に、EBCDICコードから切り替わるサインです。 逆に終わりはシフトインと言い、EBCDICコードに戻るサインです。

取り扱うデータ量増加に伴う地獄

上述の固定長データで恐ろしいのがデータの増加です。

  1. 新規項目の追加
    上記のFILLERを利用して、末尾に新しい項目を追加します。余裕です。
  2. 項目の分割
    以下の様に一つの項目の続きを後ろに追加するケースが結構多くありました。後から後から追加されるので、1、2、3とかになることもありました。
  3. 固定長データのレングス変更
    最悪のパターンです。
    予期しない問題が発生するケースが多かった記憶があります。
    当然テストは十分にしている(つもりな)んですけどね。

2000年問題

固定長データによる、送信データ量を抑えたことで発生した日本中が盛り上がった問題です。

原因としては、以下のように年号を西暦下2桁で保持していたことによるためでした。

1999年1月1日 ⇛ 990101

これにより、2000年になった瞬間に、1900年として取り扱われ、
プログラムの誤作動が発生し得ると話題になりました。

 

結果としては何も起きなかった印象でした。
多分ソートとかで一部の誤作動はあったとは思いますが、
ニュースになるくらい驚異となるような問題は無かったです。

メーカー独自のプロトコル

TCP/IPは当時からあったもののその概念を元にメーカー独自でプロトコルが作られていました。
そのため、メーカー間での通信のやり取り(IBMのホストコンピュータと富士通のDBとか)はできません。

そういった理由からか、これらのシステムからの乗り換えは完全にリプレースというケースが多かったです。

まだ一部のシステムは現役ということも、リプレースのコストとの兼ね合いかもしれません。

終わりに

故きを温ね新しきを知ることで、今一度初心に返り、楽しんでプログラミングできる一助になればと思います。

 


 

cocone connectでは一緒に働く仲間を募集中です。

ご興味のある方は、こちらのリンクからぜひご応募ください。

 

cocone connect株式会社 採用情報

https://recruit.jobcan.jp/coconeconnect

 

cocone connect株式会社 公式サイト

https://connect.cocone.co.jp/

 

また、ココネでも一緒に働く仲間を募集中です。

ご興味のある方は、ぜひこちらの採用特設サイトをご覧ください。

https://www.cocone.co.jp/recruit/contents/

Category

Tag

%d人のブロガーが「いいね」をつけました。