Transaction Processing Facility

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。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。