Transaction Processing Facility
| 開発元 | IBM |
|---|---|
| 最新版 | V1.1 / 2004年10月 |
| プラットフォーム | z/Architecture(System z等) |
| 種別 | オペレーティングシステム |
| ライセンス | プロプライエタリ (IPLA) |
| 公式サイト | z/TPF |
Transaction Processing Facility(TPF)は、IBMのメインフレーム用の、大容量トランザクション処理に特化したオペレーティングシステム(OS)である。
高い信頼性を持ち、1秒間に最大数万件のトランザクションを処理できるため、世界の航空業界や金融業界で使われている。最新版はSystem z用のz/TPF V1.1であり、2008年3月には日本航空の航空券予約・発券システムでの採用が発表された。
なお同じSystem zで稼動するz/OSやz/VSEやz/VMなどのOSとは、別物である。
| IBMメインフレームOS の歴史 |
|---|
|
|
|
|
|
目次 |
[編集] 概要
SABREから発展し、1960年代中ごろIBMが欧米の主要な航空会社と共同で開発したAirlines Control Program (ACP)を起源とするオペレーティングシステムである(ACPは無料)。1979年、IBMが ACP の代替として TPF を有料の製品として登場させた。その名称は従来よりも適用範囲が広いことを示唆している。
現在のユーザーとしては、SABRE(予約システム)、Amadeus(予約システム)、ビザ(認証システム)、Holiday Inn(予約システム)、CBOE(オプション取引の注文システム)、シンガポール航空、KLMオランダ航空、カンタス航空、アムトラック、マリオット・インターナショナル、ニューヨーク市警察などがある。
TPFは、高速・大量・高スループットのトランザクション処理が可能で、大規模な広域ネットワークでのトランザクションを継続的に大量に処理する。大規模なTPFシステムで毎秒数万トランザクションを処理するのはたやすい。TPF は高信頼でもあり、いわゆる 24×7 の連続運用が可能である。TPFのユーザーがシステムとソフトウェアのアップグレードを行いつつ10年以上もオンライン処理を継続していることも珍しくない。IBM は類似のトランザクション処理システムとしてCICSやIMSを持っているが、それらとの違いは TPF の大容量/同時ユーザー接続数/高速応答時間などの優位性である。
TPF には PARS と呼ばれるアプリケーションがある。多くの航空会社は PARS または国際版の IPARS を座席予約システムに使用している。TPF は性能を重視したため 370アセンブリ言語で書かれており、アプリケーションもアセンブリ言語で書かれたものが多数存在する。しかし、最近のTPFはC言語を使うようになってきている。TPF 向けのプログラミング言語として SabreTalk というPL/Iの派生言語があった。TPF の主要コンポーネントは TPFDF と呼ばれる高性能データベースファシリティである。
TPFを採用しているサイトでは、トランザクション処理以外の用途で、他のIBMメインフレーム用オペレーティングシステム(z/OS や z/VM)も使っていることが多い。逆に z/OS 上で TPF から派生したトランザクション処理システム ALCS を動作させる場合もある。IBM のパーティショニング技術により、これらのOSは1つのメインフレーム上に共存できる。
TPF の System z(z/Architecture) 対応である z/TPF は2005年に登場した。64ビットに対応しており、GCCコンパイラを含むGNUツールが使用可能となっている。
[編集] オペレーティング環境
[編集] 密結合
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 はGUIを持たず、単純なCUIが使われる。従って、マウスもウィンドウもアイコンもない。
- TPF にはコンパイラ、アセンブラ、テキストエディタといったものもない。TPF向けアプリケーション開発はz/OS上などで行われる。z/TPF では Linux 上に開発環境がある。
- TPF にはオンラインマニュアル等もないので、紙のマニュアルを読まなければならない。TPF用のIBM製コマンド群は "Z" で始まる名前が付いている。従って、ユーザーは一般に "Z" 以外で始まる名前をコマンドにつける。
- TPF にはデバッグ機能がほとんどない。通常、z/VM 上でTPFを動作させることが多いので、VMの持つトレース機能が利用できる。
- TPF はトランザクションを含めたメッセージのやりとりを高速化するよう最適化されている。
- TPF は高速化のため、メモリ上にプログラム全体をロードして実行する方式であった。このためかつての TPF 用プログラムは4Kバイトに制限されていた。z/TPF ではC言語を使うようになったため、この制限はない(というよりも実際問題としてアセンブラ以外で4Kバイトにサイズを制限されてもほとんど何もできない)。
[編集] 外部リンク
- IBM - z/TPF(英文)
- IBM - TPF Information Center (英文)
- TPF User Group (TPFユーザーグループ)
- TPF Minds (WikiベースのTPFコミュニティ)
- Blackbeard (Alternative TPF Homepage)
- 日本IBM・プレスリリース 日本航空の航空券予約・発券システムをSystem zで更新(z/TPF V1.1 の世界初の採用事例)
|
||||||||||||||||||||