26 PGXプログラミング・ガイド
非同期Java APIを介して、すべてのPGX機能を使用できます。各非同期メソッドには同等の同期メソッドがあり、これはサーバーがレスポンスを生成するまでコール元のスレッドをブロックします。
これらのAPIは、次のいずれかまたは任意の組合せを実行できます。 
                  
               - PGX上の複雑な非ブロッキングJavaアプリケーション
- JShellによって実行される単純な順次Javaスクリプト
- JShellでのShellPerforming対話型グラフ分析
PGX APIのレイヤー
PGX APIは、いくつかの異なるJavaインタフェースで構成されます。次の表に示すように、各インタフェースは、PGXの抽象化の個別レイヤーを提供します。
表26-1 PGX APIインタフェース
| インタフェース | 説明 | 
|---|---|
| ServerInstance | ServerInstanceクラスは、PGXサーバー・インスタンスへのアクセスをカプセル化し、セッションの作成、PGXエンジンの起動と停止、エンジン・ステータスの監視およびその他の管理タスクに使用できます。インスタンスがリモート・インスタンスを指す場合、管理機能へのアクセスには、デフォルトでHTTPレベルにおける特別な認可が必要です。 | 
| PgxSession | PgxSessionは、インスタンスに現在接続しているアクティブなユーザーを表します。各セッションは、グラフの読取り、インメモリー・データ構造の作成、分析結果とカスタム・アルゴリズムの保持に使用できる独自のワークスペースをサーバー側で取得します。PgxSessionクラスには、新しい一時データ(現時点ではコレクション)を作成するための様々なメソッドが用意されています。セッションのアイドル時間が長すぎる場合、PGXエンジンは自動的にそれを破棄して、リソースが浪費されないようにします。 | 
| PgxGraph | PgxGraphは、PGXサーバーによって管理されるグラフ・データへのクライアント側ハンドルを表します。グラフには、タイプVertexPropertyまたはEdgeProperty(あるいはその両方)の任意の量のプロパティを含めることができます。ノート:PGXでは現在、パーティション化されていないグラフのみがサポートされています。つまり、それぞれの頂点/エッジは、他のすべての頂点/エッジと同じ名前およびタイプの同じプロパティを持ちます。 PgxGraphクラスには、新しい一時データ(マップおよびコレクションを含む)を作成するための様々なメソッドに加えて、無向化、ソート、フィルタリングなどのグラフ変更操作が用意されています。 | 
| Analyst | AnalystAPIには、PGXが提供するすべての組込みアルゴリズムが含まれています。Analystオブジェクトは、アルゴリズムの呼出し中に作成したすべての一時データをトラッキングして、分析結果を保持します。Analystが破棄されると、それが作成したすべての結果がサーバー側で自動的に解放されます。 | 
| CompiledProgram | CompiledProgramクラス(PGXアルゴリズムAPI)は、ランタイムコンパイルされたカスタム・アルゴリズムをカプセル化し、PgxGraphやVertexPropertyなどのPGXデータ・オブジェクトを引数として使用して、それらのアルゴリズムを呼び出すことができるようにします。 | 
詳細は、Javadocのoracle.pgx.apiパッケージを参照してください。
                  
- グラフ・サーバー(PGX) APIの設計
 このガイドでは、グラフ・サーバー(PGX) APIの設計に焦点を当てます。
- グラフ・サーバー(PGX)のデータ型およびコレクション
 このガイドでは、グラフ・サーバー(PGX)でサポートされているデータ型およびコレクションのリストを提供します。
- グラフ・サーバー(PGX)での非同期リクエストの処理
 このガイドでは、PGX APIでサポートされている非同期メソッドについて詳しく説明します。
- グラフ・クライアント・セッション
 グラフ・サーバー(PGX)は、複数の同時クライアントが存在する可能性があると想定し、各クライアントは共有PGXサーバーにリクエストを個別に送信します。
- グラフ変更とサブグラフ
 このガイドでは、グラフ・インスタンスを変更するためにグラフ・サーバー(PGX)で提供されるいくつかのメソッドについて説明します。
- Graph BuilderとGraph Change Set
- 一時データの管理
 このガイドでは、一時プロパティおよびコレクションを処理する方法について説明します。
- グラフのバージョニング
 このガイドでは、グラフ・スナップショットを操作するための様々な方法について説明します。
- ラベルとプロパティ
 PGQL問合せを実行することにより、グラフのプロパティおよびラベル値に対して様々な操作を実行できます。
- フィルタ式
 このガイドでは、フィルタ式の使用について説明します。
- 実行環境を使用した高度なタスク・スケジューリング
 このガイドでは、エンタープライズ・スケジューラの高度なスケジューリング機能を使用する方法を示します。
- 管理API
 このガイドでは、グラフ・サーバー(PGX)管理APIを使用して、セッション、グラフ、タスク、メモリーおよびスレッド・プールを含め、サーバーの状態を検査する方法を示します。
- PgxFrameの表形式データ構造
親トピック: グラフ・サーバー(PGX)上級ユーザー・ガイド