こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
様々な面で時代の先を行っていた、メインフレーム用クライアント端末
IBMのメインフレームは、約60年間という長きにわたって進化を遂げきました。ひとつには、より広範な産業傾向に対する反応として起こったもので、特に、 「ミッドレンジ」コンピューターや、パーソナルコンピューターの登場、TCP/IPの大成功などが挙げられます。ですが、メインフレームは、より小型のシステムにずっと後で搭載されるような特長や機能性の提供を担ってきたわけで、今日であっても他の追従を許さない堅牢性・耐久性があり、信頼性の塊であることについては言うまでもありません。
この記事では、そんなメインフレームを操作するためのターミナル「IBM 3270」端末を見ていきます。このシステムは、単一のメインフレームコンピュータが、何千人ものユーザーの規模に応じてサービスを提供するうえで、主要な役割を果たしました。注意点として、このシステムについて話す際は、過去形を多く使用していますが、メインフレーム自体は今も立派に健在しており、事実、3270もTCP/IP上で実行されるプロトコルのひとつとして健在です。
大規模システム
IBM 3090 プロセッサー トレーニング用動画
日常的に皆さんが遭遇するコンピューターシステムの大半は大体似た構造を持っています。それがサーバーであれ、デスクトップであれ、モバイルデバイスであれ、似た設計によりつくられています。主な違いは、CPUのコア数や、RAMとディスクストレージの容量になります。これに加えて、おそらくグライフィックスプロセッサ (GPU) や、ストレージ コントローラーを除き、メインプロセッサーがその他すべての処理を担っています。
対照的に、大規模システムはメインフレームを中心に据え、巨大な階層構造を持っています。またひとつ以上の「メイン」CPUがありますが、それに加えて、I/O、通信、暗号化のような特殊タスクを扱う、専用プロセッサーも数多く搭載しています。メインフレームはこのように、できるだけCentral Processor Complex(CPC)が、最高のパフォーマンスを発揮できるよう構成されており、その一方で、ほかの大半の専用プロセッサーと、より広範囲の全体的なシステムにおいては、負荷軽減タスクを実行します。
こういったことが、カッコ良い名前のIBM 3270という、コンピューター端末ファミリーへとつながっていきます。大きなデータブロックをメインフレームへ転送することで、結果的に出入力割込みの数を減らすことが可能になりました。最近とは異なり、ウェブページはタブ付けされ、データはその各種のフィールドの中心に置かれて検証され、その後、最終的に送信を押すことで、ようやくデータがサーバーに送られます。今となっては当たり前に思えるかもしれませんが、長年、ミッドレンジ・コンピューターは、基本的に接続されたすべての端末の、一つ一つのキー操作に応答する必要がありました。
メインフレームは、非常に高い稼働率や、CPUにも提供されるホットスワップ能力、稼働中でもマイクロコード(ファームウェア)アップデートが可能など、無数の利点を持っています。同様に、汎用プラットフォームにも明らかに利点があり、中でも、さほどミッションクリティカルではないアプリケーションのコストは。注目するべき点です。さらに、近代のメインフレームがハイブリッド戦略を採用し、Linuxのワークロードをクラッシックメインフレームのワークロードと並行して実行しつつ、サイズもコストも縮小させているので、ここ数年は特に興味深いものとなっています。
いずれにせよ、この投稿の目的は、コンピューターアーキテクチャの詳細な比較を記述することではないので、ここで3270をより詳しく見ていきましょう。
データストリームとインターフェース
クライアント端末の大きな特長としては、データストリームが挙げられます。通常の非IBM端末は、単にキーボード操作を転送し、インバウンド文字をリアルタイムで表示するだけですが、3270端末やプリンターには、コマンドで管理されたバッファがあり、消去、書き込み、読み込み、コピーなどを可能にします。画面のそれぞれの場所にはアドレスがあり、そのコンテンツがメインフレームによって操作されますが、これが今度は、Enter、SysReq、Clearまたは、PFキーのどれかひとつが押されたときにのみはじめて割り込み、データが送信されます。したがって、プログラムが画面を更新したら、通信は完了し、ユーザーはフィールドと入力の間を自由に移動でき、リクエストされたときにのみ、これが送信されるのです。
IBM 3270 物理インターフェース フレーム (github.com/lowobservable)
一般的な端末で用いられる物理インターフェースはRS-232で、標準で指定されるものは、ケーブルが最長15m、速度が9,600 ビット/秒となっています。それに対し、3270端末は93オーム同軸接続で、コントローラーから最大3キロメートル先に配置可能、データリンクは2.3587 Mb/sで動作します。それに加えて、単一のケーブルを、複数の端末の接続に使用するためのマルチプレクサが利用でき、また、一部の新しいモデルの端末では、複数のセッションや、ファイル転送をサポートする機能も備えています。
最近では、イーサネットとTCP/IPが、長い間ほぼ無類の標準ネットワーク技術になっているので、どれを聞いても違和感を覚えるかもしれませんが、何十年間も競合する標準が存在していた時代があり、IBMだと3270とシステムネットワークアーキテクチャ(SNA)がその分野をリードしていました。他にはDigital Equipment Corporation社のDECnetなどがありました。
先に申し上げた通り、3270は今でも現役で健在しており、これはTelnet 3270(別名tn3270)のおかげといえます。tn3270とは、LinuxやWindowsのようなプラットフォームで実行される端末エミュレーションソフトウェアが、3270データストリームをTelnetプロトコルで受信できるようにするためのものです。多くのメインフレームアプリケーションがより近代的なデスクトップまたはウェブフロントエンドに移行したかもしれないにしても、今後も一般的に、システムとアプリケーションのプログラミングはtn3270端末セッションで行われていくでしょう。
表示装置
An IBM 3279、David Fischer CC BY-SA 3.0.
3270ディスプレイには様々なものが存在しており、それぞれに個別のモデル番号が付けられています。より安価にしたり、モノクロの代わりにカラーのディスプレイを採用したり、フロッピードライブの統合や、ファイル転送対応といった新たな機能をサポートしたりと、長年進化してきました。
3270ディスプレイの中での主な違いのひとつには、コントロールユニット端末(CUT)か、分散機能端末(DFT)といった点があります。前者では、データストリーミングがディスプレイコントローラーで終了されますが、後継機である後者では、ディスプレイ自体がほとんどのデータストリームを扱えるようになっています。DFTの利点には、ファイル転送および複数セッションのサポートが可能という点などが挙げられます。
PCの登場でもまた、ISA、MCA、PCIで製造された拡張ボードを搭載した 3270エミュレーションの導入が行われ、並行して、ノートパソコン用にはPCMCIAカードが搭載されました。
IBM 3179
完全な3270クライアント端末を見つけ出すのは今日では容易なことではなく、私は、この10年間程の期間に渡って探し続けてきました。とうとう、しまいには諦めて、アメリカから1台購入しました。どういうわけか、ここイギリスよりもアメリカの方がより普及しているようで、時にはロジックボード搭載のベースが見つかることもありますが、揃ったモニターとキーボード(両方ともIBMの専売品)は、探し出すのがさらに困難です。
モニターは、経年劣化による不具合により、おそらく数が減っていっているでしょうが、その一方でキーボードは、伝説的な制作品質とタイピング勝手の良さにより、ますます人気が高まっています。このことは、完全にオリジナルの端末セットアップを動かしたい私たちの様な、間違いなく少数派の人間にとってはもどかしいことですが、少なくとも埋立地行きにはなっていないのが救いです。
この投稿の一番上にあるクライアント端末の画像はIBM 3179で、これは1984年に発表され、14インチのCRT搭載、7色表示を誇っていました。発売当時、表示装置/プリンターアダプター経由か、IBM 3274のようなコントローラー経由で、直接メインフレームプロセッサーに接続することが可能でした。コントローラーは離れた場所にあることが多く、トークンリングやイーサネット、同期式シリアルのような電気通信回路「テレプロセッシング」アダプターといった機能を備えていました。
この端末はイギリスで使用されていたことが予想できるので、115V AC変圧器が必要とされ、 Block社の200VA単巻変圧器 (310-1156) を一緒に使うことにしました。
変圧器には、出力にアメリカ標準電源ソケットがついていたので、切り落としてC13ケーブルマウントIEC コネクター (295-8620) に交換しました。
もちろん、ここでやってはいけないことは、うっかり忘れてクライアント端末にイギリスの230Vac電源を供給することなので、警告ステッカー (776-0970) を電源ソケットのそばに貼りました。
Establishment Controller
クライアント端末にはコントローラーが必要です。運よくイギリスで、3174 Establishment Controllerを2個見つけることができました。これらはそれぞれ直接、最大8台の表示装置に接続でき、接続タイプには同期、非同期があり、イーサネット、トークンリングインターフェースが、1機以上のメインフレームにリモート接続するために提供されていました。「バス & タグ」というメインフレームへの直接(むしろ、チャンネル通信を行う、より特殊なプロセッサーを経由して)接続を可能にするパラレルインターフェースが搭載された、部分的に異なるモデルも生産されました。
3174は、実際それ自体が素晴らしいものであり、きわめてフレキシブルなプラットフォームで、表示装置が既定サービスとして接続されるように設定することもできれば、SNAに加えて、TCP/IPのサポートをするといったオプションの選択も可能です。また、これらの異なる世界間におけるゲートウェイとしての役割を果たし、クライアント端末をUNIXサーバーの様なASCIIホストに接続可能にする能力も持っています。他の機能としては、サービス品質を保証するための応答時間監視機能が挙げられます。
残念ながらイーサネット搭載の3174モデルは特に希少で、私が入手したモデルのひとつを使用可能な状態にするためには、シリアルポートか、トークンリングインターフェースから変換する必要があります。ということで、これは長期プロジェクトになりそうです。
モチベーション
IBM 4381 プロセッサー マルチチップ モジュール上に置かれたRaspberry Pi 1
この時点で、なぜ誰も完全に機能する3270クライアント端末を欲しがらないのか、そして、どのようにして実際に使用するのかについては、まだはっきりしなさそうです。前後関係を説明すると、2012年5月に、私の書いた投稿の中で、 Raspberry Piを使って実際にHerculesというソフトウェアを実行し、メインフレームをエミュレートする方法をお見せしました。今度は、純正のヴィンテージメインフレームのオペレーティングシステムを、どう実行するかということです。本物のメインフレーム端末を、この組み合わせで使用することはさらなる喜びであると言えるでしょう!
Open Establishment Controller
幸い、私の他にも同じような欲求を持つ人がいるようで、イーサネットインターフェースの3174を入手したことは、失敗でもなかったようです。GitHub ユーザーも情報を見つけられないといった窮地に立たされ、プロジェクト名をoec(これはOpen Establishment Controllerの略)としたプロジェクトを立ち上げ、Pythonで実装したものを、オープンハードウェアの同軸インターフェースと共に提供し、一緒に使用できるようにしました。 偶然このプロジェクトに出会えて、非常に嬉しく思いました。
初代のハードウェア設計では、今となっては時代遅れのNational Semiconductor社DP8340 IBM 3270プロトコル送信機と、DP8341受信機ICを、Arduino Mega 2560とともに使用します。最新のバージョンであるinterface2の設計では、これらのICをLattice iCE40 FPGAで置き換え、STM32マイクロコントローラーと一緒に使用します。1年以上前に私がこのプロジェクトについて知った時、なんとかNational Semiconductor社のICをアメリカのeBay出品者から入手することができたため、このバージョンを最初に組み立てようと思います。今後いつか、FPGA + STM32バージョンの組み立てにも挑戦してみるかもしれません。