ArcGIS REST Web サービスは、次の 2 つの明確な原理に基づいています。
ArcGIS Server で公開されるすべての GIS サービスはリソースと見なされ、http://<ホスト名>/arcgis/rest/<サービス名> などの URL を介してアクセスできます。この URL は、REST エンドポイントとも呼ばれます。
- それぞれのリソースには以下が含まれます。
- リソースを記述するプロパティ
- リソースに対して実行できる操作 (オプション)
- 子リソース (オプション)
操作とは、リソースの状態の転送を引き起こしたり、リソースを新規作成したりする、リソースに対するアクションです。子リソースとは、親リソースのコンテキスト内に存在し、親リソースのプロパティを継承するリソースです。子リソースは、独自のプロパティを備えることができ、子リソースに対して実行できる操作をサポートできます。リソースは、子リソースと操作について、URL でアクセスされるエンドポイントの階層を作成します。
ジオプロセシング REST サービス
ジオプロセシング サービスはリソースであり、URL を介してアクセスされます。ジオプロセシング サービスの URL 形式は、http://<サーバー名>/<インスタンス名>/rest/services/<サービス名>/GPServer(たとえば、http://myServer/ArcGIS/rest/services/BufferPoints/GPServer) です。ジオプロセシング サービスは、サービスの説明、タスク、実行タイプ、結果マップ サーバーなどのプロパティを備えています。ジオプロセシング サービス内で公開されるジオプロセシング タスクは、ジオプロセシング サービスの子リソースです。ジオプロセシング サービス自体は操作を備えていませんが、タスクは submitJob または execute の操作をサポートします。ジオプロセシング サービスのタスクは、実行タイプ プロパティおよび結果マップ サーバー プロパティを継承し、さらにタスクの説明やタスク パラメーターなどの追加プロパティを備えています。サービスおよびタスクのプロパティは、サービスの公開者が決定します。クライアントがこれを変更することはできません。
以下図に、ジオプロセシング REST のリソースの階層を示します。すべてのジオプロセシング タスクが、オレンジで示す、実行タイプ、レコードの最大数 (図のレコードの最大数)、結果マップ サーバーなどのジオプロセシング サービスのプロパティを継承していることに注目してください。
ジオプロセシング タスク
ジオプロセシング タスクは、ジオプロセシング サービスの子リソースです。ジオプロセシング サービスには、1 つ以上のタスクを含めることができます。ジオプロセシング タスクは、サーバーが管理するジオプロセシング ツールと見なすことができます。クライアントが適切な入力パラメーターの値を指定してリクエストを送信すると、サーバー上でツールが実行されます。ツールの実行が正常に完了すると、出力パラメーターの値がクライアントに返されます。ジオプロセシング タスクにアクセスするための URL は、http://<ジオプロセシング サービスの URL>/<タスク名>(たとえば、http://myserver/ArcGIS/rest/services/BufferPoints/GPServer/BufferPoints) です。
実行タイプ
ジオプロセシング タスクのジオプロセシング機能は単純に実行することができ、その場合、サーバー上での実行時間は数秒程度です。あるいは、高度な機能 (大きなデータセットの処理など) をサポートすることもでき、その場合、実行時間が長くなることがあります。したがって、REST API は、サーバー上でジオプロセシング タスクを実行するために、次の 2 つのオプションを提供しています。
- 同期: 同期タスクは、タスクを高速に実行する場合に適しています。同期タスクでは、クライアントはタスクの実行を要求するリクエストを送信し、タスクの結果はレスポンスとしてクライアントに送信されます。
- 非同期: 非同期タスクは、長時間のジョブに適しています。非同期タスクでは、サーバーはジョブ ID を返します。クライアントは、このジョブ ID をタスクの状態のポーリングに使用します。タスクの状態が完了である場合、結果がジョブの子リソースとして作成されています。クライアントは、ジョブ ID を使用して結果にアクセスできます。
結果マップ サーバー
結果マップ サーバーは、ジオプロセシングの結果を視覚化するジオプロセシング サービスを伴う、ダイナミック マップ サービスです。ジオプロセシング タスクの各ジオデータセット出力パラメーターは、レイヤーとしてマップ サービスに追加されます。レイヤーの視覚化は、公開時に定義したシンボルによって決まります。結果マップ サーバーがダイナミック マップ サービスであるため、クライアントは、マップ サービスまたはマップ サービス レイヤーを Web アプリケーションに追加することができます。クライアントは、マップ サービスでの個別属性、検索、およびマップのエクスポート、マップ サービス レイヤーでのクエリ、レンダラーの生成、およびフィーチャのアクセスなどの操作を実行することもできます。
レコードの最大数
レコードの最大数プロパティは、サービスが返す出力フィーチャまたは出力レコードの数を決定します。ジオプロセシング タスクによって作成された出力レコードまたは出力フィーチャの数がレコードの最大数を越えた場合、サービスはフィーチャまたはレコードを何も返しません。クライアントは、タスクが返すフィーチャ セットまたはレコード セットの転送制限超過プロパティを確認することによって、そのような状況を識別できます。出力パラメーターのレコードまたはフィーチャの数が、サービスで指定されているレコードの最大数を越えた場合、転送制限超過プロパティが true に設定されます。
Web ブラウザーでのサービス ページの表示
それぞれの ArcGIS Server には、URL でアクセスできる Services Directory があります。サーバー上の各サービスには、やはり URL でアクセスできる専用のサービス ページがあります。上記で説明したジオプロセシング REST サービスのプロパティは、Web ブラウザーを使用してサービス ページで確認することができます。サービス ページは、サービスの機能を理解するために、主に Web 開発者によって使用されます。Web 開発者以外のユーザーにも、サービス ページは役立ちます。サービスの公開時に行われる決定が、Web 開発者によるサービスおよびサービス内のタスクの使用にどう影響するかを、理解することができます。
ArcGIS for Desktop でジオプロセシング サービスが正常に公開されると、[カタログ] ウィンドウの ArcGIS Server 接続に新しいジオプロセシング サービスが追加されます。サービスのサービス ページを表示するには、サービスを右クリックして [サービス プロパティ] を選択します。これによって、[サービス エディター] が開きます。[サービス エディター] で、[ケーパビリティ] の下にある [ジオプロセシング] タブをクリックします。以下の図に示す [REST URL] の値は、サービス ページの URL です。
サービス ページを表示するには、REST URL をコピーして、ブラウザーのアドレス バーに貼り付けます。REST URL ページに示される情報は、ジオプロセシング サービスを公開したときに定義したプロパティに直接関係しています。以下の図に、公開時に [サービス エディター] で指定されたプロパティと、サービス ページに表示される対応するプロパティを示します。
なお、Web ブラウザーでは、サービスのジオプロセシング タスクは HTML リンク付きで示されます。それぞれのリンク先のタスク ページでは、タスクのプロパティおよびサポートされる操作についての情報を参照できます。