InterSystems $ZF コールアウト・インタフェース
このドキュメントで取り上げる内容の詳細なリストは、"目次" を参照してください。
InterSystems $ZF コールアウト・インタフェースは、外部システム呼び出しと関数呼び出しを InterSystems IRIS に統合するいくつかの方法を提供する ObjectScript 関数セットです。
-
$ZF(-100) 関数は、コマンド行インタフェースから行うのと同じように、オペレーティング・システム・コマンドを呼び出し、外部プログラムを実行する簡単な方法を提供します。
-
他の $ZF 関数は、ObjectScript アプリケーションが頻繁に使用する C 関数にアクセスできるようにするさまざまなオプション (後述) を提供します。
$ZF コールアウト・インタフェースは元来、ObjectScript アプリケーションから C 関数ライブラリにアクセスできるようにするために設計された比較的古いインターシステムズのテクノロジです。Java、.NET、Python、Node.js などの外部言語に埋め込み言語からアクセスする場合は、InterSystems 外部サーバにより、もっと簡単で強力な方法が提供されています。
$ZF コールアウト・インタフェースは、簡単な OS コマンド行呼び出しの作成から、数百もの関数にアクセスできるようにする関数ライブラリの作成まで、さまざまな目的で使用できます。以下のオプションを使用できます。
外部プログラムを起動する呼び出しを含む、オペレーティング・システムの呼び出しへのアクセス
-
$ZF(-100) を使用したプログラムまたはシステム・コマンドの実行
コマンド行インタフェースから行うのと同じように、システム・コマンドを呼び出し、外部プログラムを実行します。この簡単な関数は、コールアウト・ライブラリを記述する必要がありません。
コールアウト・ライブラリのアクセス。コールアウト・ライブラリは、$ZF コールアウト・インタフェースへのフックを含む、ユーザが記述する共有ライブラリ (DLL または SO ファイル) であり、多様な $ZF 関数が実行時にロードして、その関数を呼び出すことができるようにします。コールアウト・ライブラリは通常 C 言語で記述されますが、互換性のある呼び出し規則を持つ言語も使用できます (“互換性のある言語とコンパイラ” を参照)。各 $ZF 関数は、主に、ライブラリの識別方法とメモリへのロード方法が異なります。
-
$ZF() を使用した iriszf コールアウト・ライブラリへのアクセス
iriszf と呼ばれる特別な共有メモリを作成します。このライブラリが利用可能な場合、事前にライブラリをロードしたり、ライブラリ名を指定したりしなくても、その関数にアクセスできます。
-
ライブラリをロードして、ライブラリ・ファイル・パスと関数名を指定することによって関数を呼び出します。使用は簡単ですが、仮想メモリ内で使用できるのは一度に 1 つのライブラリのみです。その他のインタフェースとは異なり、ライブラリ関数を呼び出す前に初期化を行う必要がありません。
-
$ZF(-5) を使用したシステム ID によるライブラリへのアクセス
一度に複数のライブラリを効率的に維持し、アクセスするために使用できるインタフェースを作成します。同時に複数のライブラリをロードでき、それぞれに必要な処理オーバーヘッドは、$ZF(-3) よりはるかに小さくて済みます。
-
ユーザ・インデックスによるライブラリへのアクセスでの $ZF(-6) の使用
コールアウト・ライブラリの大規模なセットを処理するための最も効率的なインタフェースを作成します。ライブラリには、グローバルに定義されたインデックス・テーブルを介してアクセスします。インデックスは、InterSystems IRIS のインスタンス内のすべてのプロセスで利用でき、同時に複数のライブラリをメモリに配置できます。
$ZF 関数の概要については “$ZF インタフェースの概要”、すべての $ZF 関数の説明、使用情報、および詳細や例へのリンクは “InterSystems コールアウトのクイック・リファレンス” も参照してください。