Transaction Processing Facility (TPF) について
Transaction Processing Facility(TPF)は、
IBMが開発した
メインフレーム用の
オペレーティングシステム(OS)で、特に大規模な
トランザクション処理に特化しています。その起源は、
1960年代に
IBMが主要な航空会社と共同で開発した Airlines Control Program(ACP)に遡ります。
1979年、
IBMはACPの後継としてTPFを有料製品として発表しました。TPFは高い信頼性と高速な処理能力を持ち、1秒間に数万件のトランザクションを処理することが可能です。そのため、
航空路管制や座席予約システム(CRS)など、航空業界での利用が目立ちますが、金融業界でも広く採用されています。
最新版は、
System z用のz/TPF V1.1であり、同じ
System z上で稼働するz/OS、z/VSE、z/VMなどのOSとは異なる独自のOSです。
TPFの歴史と発展
TPFのルーツは、SABREという予約システムにあります。
1960年代中頃に、
IBMが欧米の主要な航空会社と共同で開発したACPがその前身です。ACPは当初無料で提供されていましたが、
1979年に
IBMはACPを置き換える形で、より適用範囲の広いTPFを有料でリリースしました。
TPFのユーザーには、SABRE、Holiday Inn、
シンガポール航空、
KLMオランダ航空、
カンタス航空、
アムトラック、
マリオット・インターナショナル、
日本航空などが含まれます。また、
Visa(認証システム)、CBOE(
オプション取引の注文システム)、
ニューヨーク市警察といった、航空業界以外でも利用されています。TPFは高速、大容量、高スループットな
トランザクション処理に特化しており、広域ネットワークでの大量
トランザクション処理を継続的に行うことができます。
TPFの特徴
TPFは、24時間365日の連続運用が可能な高信頼性を備えています。システムのアップグレードを行いながら、10年以上オンライン処理を継続することも珍しくありません。
IBMは類似の
トランザクション処理システムとしてCICSや
IMSも提供していますが、TPFはより大容量で、同時ユーザー接続数や応答速度において優位性があります。
TPFには、航空会社の座席予約システムとしてよく知られるPARSというアプリケーションがあります。多くの航空会社はPARSまたは国際版のIPARSを予約システムに使用しています。TPFは性能を重視したため、当初は370
アセンブリ言語で書かれていましたが、近年では
C言語も利用されるようになっています。また、TPF向けの
プログラミング言語としてSabreTalkという
PL/I|PL_Iの派生言語も存在します。TPFの主要コンポーネントは、TPFDFと呼ばれる高性能データベースファシリティです。
TPFを採用しているシステムでは、
トランザクション処理以外の目的で、z/OSやz/VMなどの他の
IBMメインフレーム用OSも利用されることが一般的です。また、z/OS上でTPFから派生した
トランザクション処理システムALCSを動作させる場合もあります。
IBMのパーティショニング技術により、これらのOSは同一の
メインフレーム上で共存できます。
z/TPFは2005年に登場し、
64ビットに対応しました。また、GCCコンパイラを含むGNUツールが利用可能となり、開発環境がより柔軟になりました。
TPFのオペレーティング環境
TPFはマルチプロセッサ環境で動作可能です。TPFのプログラムはリエントラントであるため、複数のプロセッサ環境でも問題なく動作します。起動時にはメインCPUが決定され、プログラムはAPIによって使用するCPUを指定できます。z/TPFでは、CPUを指定せずに起動されたアプリケーションは、負荷バランスを考慮して処理されます。
TPFアーキテクチャでは、各CPUがメモリを共有しますが、各CPUに固有の4Kバイトの領域が存在します。アプリケーションがCPU固有のメモリ領域を必要とする場合、各CPUに同サイズの領域を割り当てるように設計します。TPFでは、この方式でCPU毎にユニークなグローバル変数をサポートしています。これらの領域へのアクセスは、ベースアドレスにCPU番号を加算することで行われます。
TPFは複数台の
メインフレームを共通のデータベースに接続したシステムでも動作可能です。TPFのデータベースは、最大32台の
メインフレームで共有可能です。最も単純な疎結合システムは、2台の
メインフレームを1台のDASD(Direct Access Storage Device)に結合した構成です。この場合、制御プログラムは各
メインフレームに置かれ、どの
メインフレームからも同じデータベースにアクセス可能です。
疎結合システムでのアクセスをシリアライズするため、レコードロックという手法が用いられます。これは、あるレコードを保持しているプロセッサがある場合、他のプロセッサがそのレコードを保持しようとした際に、それらを待たせてプロセッサ間で通信を行う方式です。密結合システムでは、レコードロックの状態を共有メモリに書き込めばよいですが、疎結合システムでは、DASD制御装置での追加処理が必要です。歴史的には、この機能はRPQ(個別対応)として扱われていたため、RPQに対応していないDASDでは、Coupling Facilityという別のレコードロック方式が使われることがあります。
TPFのその他の特徴
TPFはGUIを持たず、単純なCUI(Character User Interface)が利用されます。そのため、マウスやウィンドウ、アイコンは存在しません。また、TPFにはコンパイラ、アセンブラ、テキストエディタといった開発ツールも含まれていません。TPF向けアプリケーション開発は、z/OS上などで行われます。z/TPFでは、
Linux上に開発環境が提供されています。
TPFにはオンラインマニュアルもないため、紙のマニュアルを参照する必要があります。TPF用の
IBM製コマンドは、一般的に「Z」で始まる名前が付けられています。したがって、ユーザーは「Z」以外で始まる名前をコマンドに付けることが一般的です。
TPFにはデバッグ機能がほとんどありません。通常、z/VM上でTPFを動作させることが多いため、VMの持つトレース機能を利用してデバッグを行います。
TPFは、トランザクションを含むメッセージのやり取りを高速化するように最適化されています。また、高速化のために、メモリ上にプログラム全体をロードして実行する方式が採用されていました。そのため、かつてのTPF用プログラムは4Kバイトに制限されていましたが、z/TPFでは
C言語が利用可能になったため、この制限はなくなりました。
近年の動向
IBMのオープン化戦略により、航空業界以外ではTPFからの移行が進んでいます。例えば、
JTBでは基幹システムであるTRIPSを2009年に
System pへ移行しました。
参照
z/TPF(英文)
TPF User Group
Blackbeard (Alternative TPF Homepage)
日本IBM・プレスリリース
日本航空の航空券予約・発券システムを
System zで更新(z/TPF V1.1 の世界初の採用事例)
* 斎藤謙一郎「航空分野における情報通信システム技術―4 航空予約システムとその動向」『電気学会誌』第123巻第6号、電気学会、2003年、349-353頁、doi:10.1541/ieejjournal.123.349、
ISSN 13405551。