09.ネットワーク
SNA(Systems Network Architecture )ネットワーク
初期のネットワークシステムにおいてはコンピュータ同様にハードウェアもソフトウェアも個々のシステム毎に設計・開発されていました。IBM社は複雑化する通信処理システムを容易に構築し効率的に運用するために、この分野にもシステムとしての構成や機能に統一した基準を当てはめました。これがSNAです。MSPではFNA、VOS3ではHNAと呼ばれ細かな実装点には違いがありますが、基本的にはSNAと互換があります。
SNAでは通信手順としてのプロトコルだけでなく、ネットワークシステムがどのような要素で構成され、それぞれがどのような役割を果たすかと言ったことまでも含めて体系化されています。SNAではネットワーク内の通信(データリンク層)のプロトコルには主にSDLCが使われます。SDLCはIBM社が開発したもので、後にISO(国際標準化機構)によってHDLCとして標準化されました。FNAやVOS3で使う場合はHDLCになります。
LU(Logical Unit)- 論理ユニット
エンドユーザーにネットワークサービスを提供する拠点で、ネットワーク構成の中で末端に位置するエンドノード。これの実装品が端末装置です。(現在では端末エミュレーター)いくつかのタイプに分かれ、SNAの元に自由なデータ通信ができるLU0、ディスプレイ端末であるLU2、プリンターであるLU1またはLU3があります。LU1,2,3は3270データストリーム(MSPではF6680、VOS3ではT560/20データストリーム)と呼ばれる規定のプロトコルで制御されます。
PU(Physical Unit)- 物理ユニット
ノード内の物理的な装置。やはりいくつかのタイプに分かれ、ホストに従属するLU(0?3)を管理するPU2、ピアツーピア・ネットワークに接続するPU2.1、通信制御装置(CCU,CCP)であるPU4、ホストコンピュータであるPU5があります。
SSCP(System Services Control Point)
ネットワーク資源の制御と管理、サービスの提供を行います。メインフレーム自身と考えてよいでしょう。1つのSSCP配下に存在するPUおよびLUの全体の構成をドメインと呼びます。
VTAM(Virtual Telecommunications Access Method)
VTAMはSNAにおけるネットワーク制御と管理およびサービスを提供するSSCPの機能を実装したものです。VTAMはSNAにおけるSSCPとして動作しアプリケーション・プログラムにはネットワークにアクセスするためのAPIを提供します。またVTAMは自らのドメインに繋がっているノードだけでなく、他のドメインともネットワークで接続することができます。複数のドメインで構成されたシステムをクロスドメインまたはマルチドメインと呼びます。
過去のVTAMではMVS,MSP,VOS3間で相互にクロスドメインを構築することも可能でしたが、現在ではVTAM同士の接続には互換がありません。またVOS3においてはVTAMもサポートこそされていますが、現在では拡張HNAに対応したXNFと言う独自のネットワーク制御プログラムが主に使われます。XNFとVTAMには互換性はありません。
VTAMは主にオンライン・リアルタイム・システムを構築するためのソフトウェアであるIMSやCICS、対話型サービスを提供するTSOなどがネットワーク上に接続されている数多くの端末とのトランザクション・データの送受信を行うために使用されます。APIはアクセス法として公開されていますからユーザープログラムでも独自のオンライン・システムを構築することができます。しかしながらオンラインプログラムは複雑な処理を必要とし比較的高度なプログラミング技術が要求されることも多く、今日では直接利用されることは少なくなりました。
VTAMはMVS上で動作するプログラムですが、通信回線そのものや、そこに接続されている数多くの端末(実際には端末制御装置)をハード的に監視し制御するわけではありません。MVSにチャネルで接続された、CCUとかCCPと呼ばれる通信制御装置側で行われます。CCUはそれ自体がネットワーク制御専用のコンピュータで、そこで動くソフトウェアがNCP(Network Control Program)です。
NCPはMVS側で定義された各種のネットワーク資源情報に基づきMVSで生成され、VTAMによってCCUへローディングされます。
富士通ではCCPがさらに発展したSUREシステムと言う独立したネットワークコンピュータシステムも使われます。CCPではネットワークがメインフレーム側に繋がると言うイメージですが、SUREの場合はSUREで構築されたネットワークシステムにMSPが参加すると言うイメージになります。SUREではFNA以外のさまざまネットワークもサポートされ、VTAMによるFNAネットワークはその中の1部を構成する形態になります。
IBMではハードウェアとしてのCCU(通信制御装置、例えばIBM3745)を、z/Linux上でソフトウェアによりエミュレーションする、 「Communication Controller for Linux on zSeries」と言う製品を提供しています。
3270に代表される端末機が、とっくにソフトウェア・エミュレーションに変わったように、メインフレーム側でも今後はSNAネットワークの構築は、ハードウェア主体の方法からソフトウェア・エミュレーションへと変わっていくのでしょう。
VTAM(SNA)によるネットワークの基本は、主ノードであるメインフレーム(MVS)に、従属ノードであるディスプレイ端末(LU)やプリンター装置を繋ぎ、主ノードの主導権の下で各端末が動作するというものです。メインフレームによる多くのオンライン・リアルタイム・システムは、そのように構築されていました。
しかしながら分散型コンピューティングと言う考え方が一般的になってきたとき、従来の主ノード対従属ノードでは対応できなくなってきました。そこでLU6.2と呼ばれる対等な通信処理を行うためのエンドノードが追加されました。これを実装するプロトコルとプログラミング・インタフェースのセットがAPPC(Advanced Program to Program Communication)でAPPCを利用するノード間を、対等に接続するための機能がAPPN(Advanced Peer-to-Peer Networking)です。APPCとAPPNでMVS間のアプリケーション・プログラム同士だけでなく他のシステムでもプログラム間通信が可能です。(と言っても同じIBM内だけに限られますが…)
なおLU6.2相当の考え方はMSP,VOS3ではありません。両OSでは直接通信処理を行うプログラムがユーザー自らによって作成されることは少なく、必要であればMSPにおけるInterstage製品群やISV製品も含めた多くのミドルウェア製品等を利用することで対応されています。
TCP/IPネットワーク
SNA(FNA,HNA)による独自のネットワークを構築してきたメインフレームですが、現在ではTCP/IPも標準で実装され幅広く使われています。FTPによるファイル転送、TELNET(TN3270)によるオンライン端末の接続も一般的になりました。メインフレームにおけるTCP/IPのプロトコル・スタックは、リンク層以下はLAN用の通信制御装置*1によって行われ、ネットワーク層以上がMVS内のソフトウェアによって行われます。
*1 MVSではLCS(LAN Channel Station)、OSA(Open System Adapter)、MSPではLANC(LAN Controller)、SURE、VOS3ではLIC(LAN Interface Controller)、ILA(Inter LAN Adapter)が使用される。
MVSではCommunications ServerのIP機能によって制御され、IPおよびTCP/UDPプロトコル制御、FTPやTELNETなどのアプリケーションまでも含めて提供されます。(VTAMは同じくCommunications ServerのSNA機能とされているがプログラムはTCPIP,VTAMとしてそれぞれ別のアドレス空間で起動する)MSPではVTAM-G TISP、VOS3ではXNF/TCPが提供されています。いずれもアプリケーション層であるFTPやTELNETまで含まれますが、TISPではFTPサーバーの利用はDTSと言う別製品を必要とします。
TCP/IPに関してはVTAMと異なりAPIも含めMVS,MSP,VOS3の3つには全く互換はありません。もちろんプロトコルは同じですからSNAと異なり相互に接続することは可能です。ただしネットワーク・ソフトウェアとしての実装方法は全く異なっています。特にAPIの互換性は皆無です。
MVSのTCP/IPのAPIは非常にわかりやすく、UNIXのバークレーソケット(BSDソケット)に準拠しています。非ブロッキングI/Oに関しても同様ですが、MVS独自のWAIT/POSTや非同期割込み出口などもサポートされ柔軟で効率の良いプログラミングが可能です。IPv6やRAWソケットなどもサポートされます。そのため他のプラットフォームでのTCP/IPプログラミングの経験があれば、その知識や技法をダイレクトに生かすことができます。
一方TISPはC言語であればSOCKET準拠の関数が利用できますが、COBOLやアセンブラー用のAPIとVOS3のXNF/TCPは全く独自のAPIを持ちます。
また日本特有のことですが、メインフレームでTCP/IPを使う場合の大きな問題の1つが文字コードの違いです。同じMVS同士、MSP同士、VOS3同士であれば問題はありませんが、メインフレームでも異なるメーカー同士や、WindowsやUNIXなど異なるプラットフォーム間との接続では、データ転送時の文字コードは異なります。したがってこのことをよく理解した上でデータの交換を行う必要があります。(FTPのテキスト転送ではメインフレーム側でコード変換を行うのが一般的です)
TCP/IPに関してはIBM社のサイトからわかりやすい解説書が提供されています。特にMVSに特化したものではなく一般的に利用できますから、改めてTCP/IPとはなんだ?と言ったレベルから知りたい方にもお薦めできます。
日本語Redbooksその他:TCP/IP チュートリアルおよび技術解説書(GG88-4005-00)
2 Responses to “09.ネットワーク”
Comment from arteceed
Time 2012年2月1日 at 08:34
記事そのものへの質問や意見ではないようなので、併設の掲示板「メインフレーム情報交換・助け合いQ/Aボード」に書き込むことをおすすめします。
Comment from msp
Time 2012年2月1日 at 05:21
突然ですいません。
現在業務で、mspを使用しているのですが、GTFトレース後の
センスコードを読むツールを作ろうか悩んでます。
もしそういったツールがあるなら教えて欲しいです。
あとvbaを使用して作る場合には、どういった形でつくればいいか
何かフォーマット的なものがあれば教えて下さい。