ジオプロセシング サービスには 1 つ以上のタスクが含まれます。実際には、タスクはジオプロセシング ツールと同じで、パラメーターを受け取って結果を返します。タスクは、サーバーで処理されて結果を返すルーチンを表すための Web ベースの API (JavaScript、SilverLight、Flex など) で使用される用語です。ジオプロセシング サービスとツールボックス、およびタスクとツールの間に実際には何も違いはありません。サービスとツールボックス、タスクとツールの間に違いがあるのは ArcGIS for Server の他のクライアント (Web ブラウザーをはじめとするインターネットベースのソフトウェアなど) のみです。
ArcGIS Server への接続
最初の手順は、ArcGIS Server への接続です。接続にはカタログ ウィンドウを使用します。
- ArcGIS Server には、[GIS Servers] ノードから接続することができます。
- 接続は任意のフォルダーに作成することができます。フォルダーを右クリックしてから [新規作成] > [ArcGIS Server 接続] の順にクリックします。
ジオプロセシング サービスの URL の取得
ArcGIS Server に接続するときには URL と、多くの場合はユーザー名とパスワードが必要です。サービスの URL はいくつかの方法で取得できます。
- ArcGIS Server が組織によってホストされている場合は、URL がユーザーに通知されています。
- URL を取得します。
- arcgis.com でジオプロセシング サービスを検索して、実行したいタスクを含むサービスを探します。サービスをホストしているサーバーの URL は、次の手順で取得できます。
- arcgis.com のサービスの説明には [ArcGIS Web API REST 接続] というエントリがあり、ここに URL が含まれています。この URL は、REST を使用してサービスに接続する際に使用します。ArcGIS for Desktop でサーバーに接続する場合は、SOAP URL が必要です。
- SOAP URL は、REST URL を基にして取得できます。たとえば、REST URL が次の場合を考えます。
http://sampleserver.esri.com/arcgis/rest/services/SupplyDemandService/gpserver
これに対応する、サーバー接続を作成するための SOAP URL は次のようになります。
http://sampleserver.esri.com/arcgis/services
(SOAP URL では、サービス名の rest と gpserver が削除されます)。
- SOAP URL を使用して、サーバーへのユーザー接続を作成します。接続を作成したら、カタログ ツリーでサーバー カタログを参照し、ジオプロセシング サービスとタスクを検索します。
ジオプロセシング タスクの実行
ジオプロセシング サービスのタスクは、他のツールとまったく同様に、ツール ダイアログ ボックス、ModelBuilder、またはスクリプトで実行します。唯一の違いは、ツールをフォアグラウンドで実行する場合です。一部のタスクはサーバーから結果が返されるのを待機しますが、待機しないタスクもあります。これらのタスクはサーバーにタスクを送信し、必要に応じてサーバーに結果を問い合わせます。サーバーに送信されたタスクのステータスの確認には [結果] ウィンドウを使用します。詳細については、後述の「同期タスクと非同期タスク」をご参照ください。
タスクの結果の操作
ジオプロセシング サービスの結果は、[結果] ウィンドウの [現在のセッション] に追加されます。結果の出力データ タイプがファイルまたはラスター データセットである場合、出力はローカルのテンポラリ ディレクトリに保存されます。その他のデータ タイプ (フィーチャクラスなど) の場合、結果は現在のセッションに書き込まれ、出力データセットの名前とステータスが表示されます。ステータスには、次の 5 つの値があります。
- <なし>
ツールはまだサーバーで実行中であり、出力が書き込まれていません。または、タスクが正常に実行されなかったため、結果が返されていません。この状態は、非同期ツールのみに適用されます。詳細については、後述の「同期タスクと非同期タスク」をご参照ください。
- <ローカルのテンポラリ フォルダー内のデータ>
ツールの実行は完了しており、出力データはコンピューターのメモリまたはシステムのテンポラリ ディレクトリのどちらかにあります。データを参照する ArcMap レイヤーがある限り、そのデータは削除されません。データを保存したい場合には、このテンポラリ フォルダーから既知の場所にデータをコピーする必要があります。簡単な方法としては、[コピー (Copy)] ツールを使用し、このツールの入力フィーチャのパラメーターに結果からデータセットをドラッグします。出力を右クリックして [ロケーションをコピー] をクリックすることもできます。これにより、フィーチャクラスのパスがクリップボードにコピーされるので、[コピー (Copy)] ツールの入力フィーチャのパラメーターのようなテキスト指定が可能な任意の場所に貼り付けることができます。
- <サーバー上のデータ>
データはサーバー上にあります。このステータスは、データを ArcMap、ArcGlobe、または ArcScene に描画する結果のマップ サービスがあることも意味します。この結果のマップは、サーバーでツールの実行が終了すると、自動的に [コンテンツ] ウィンドウに追加されます。この結果のマップ サービスを [コンテンツ] ウィンドウに追加する必要がある場合は、結果ツールを右クリックして [サーバー レイヤーの追加] をクリックします。
結果ツールを右クリックして [データの取得] をクリックする方法もあります。この場合は、データがサーバーからコンピューターにコピーされます。コピーした後、状態は、<ローカルのテンポラリ フォルダー内のデータ>、<転送制限外のデータ>、<使用できないデータ> のいずれかになります。
- <転送制限外のデータ>
転送するフィーチャの最大数を超過したため、[データの取得] アクションですべてのデータをサーバーからコンピューターに転送することができませんでした。大きなデータセットをコピーすると、他の GIS サービスを実行するサーバーの能力が低下し、ネットワークが停滞します。そのため、サービスの作成者は、サーバーからクライアント コンピューターにコピーできるフィーチャの最大数を指定しています。この制限を超過するデータをコピーする必要がある場合は、サービスの作成者またはサーバー管理者に連絡して、データを取得するための他の方法を検討する必要があります。
- <利用不可のデータ>
[データの取得] アクションでサーバー上にデータが見つかりませんでした。最も可能性が高い原因は、タスクの結果が古いものだとサーバー管理者が判断し、サーバー上の領域を解放するためにデータを削除してしまった場合です。
環境設定の無視
ジオプロセシング サービスは、実行に影響する環境設定をサーバーで明示的に設定します。現在のセッション内で設定した ArcGIS for Desktop のローカル環境設定は、サービスが使用する環境設定に影響しません。
サーバー タスクのカスタム ツールボックスへのコピー
ジオプロセシング サービスからカスタム ツールボックス (ユーザーが作成したツールボックス) には、タスクをコピーできません。
サーバー ツール実行完了前のアプリケーションの終了
非同期ツール (以下を参照) を指定した後は、操作中のアプリケーションを終了することができます。たとえば、ArcMap の操作中に、実行を開始し、マップ ドキュメントを保存し、ArcMap を終了することができます。後でこのドキュメントを開くと、ArcMap からサーバーにクエリが送信され、結果のステータスが確認され、[結果] ウィンドウの結果が更新されます。実行を開始してから ArcMap (または ArcGlobe や ArcScene) を終了するこの方法を使用する場合は、結果を保存して、後で確認するために、必ずマップ ドキュメントを保存してください。
同期タスクと非同期タスク
ジオプロセシング サービスとそのタスクは、同期と非同期のどちらかになります。同期とは、タスクがサーバー上で実行されている間はコンピューターが待機状態になることを意味します。非同期とは、ツールの実行が完了するのをコンピューターが待機する必要はなく、他のタスクを処理できることを意味します。
タスクを同期または非同期のどちらで実行するかを決定するのはサービスの公開者です。同期ツールとして公開するタスクは、迅速に実行され、出力データセットが小さいものだけにする必要があります。
サーバー ツールが同期であるか、非同期であるかを判断する方法は 2 つあります。
- ArcGIS for Server に対する管理権限がある場合は、カタログ ウィンドウでサーバーを参照し、ジオプロセシング サービスを右クリックしてから [サービス プロパティ] をクリックします。ツールの実行タイプが [パラメーター] タブに表示されます。
- ツールを実行し、書き出されるメッセージを確認します。非同期サービスを実行した場合、最初に書き出されるメッセージは [サーバー メッセージ] です。このタイプのジオプロセシング サービスは、ArcMap で常にバックグラウンド処理として実行されます。同期ツールは [実行中] と表示して開始されます。次に示す 2 つの結果は、非同期と同期で実行されています (GIS サーバー管理者による設定)。
ArcMap 内で非同期ツールを実行し、ツールの結果のマップへの追加を有効にしている場合、レイヤーはマップに追加されますが、表示されません (オンの状態)。これは、いつツールの実行が終了し、描画する出力が作成されるのかが ArcMap にはわからないためです。
非同期ツールの実行が終了しても、自動的には通知されません。非同期ツールの進行状況は、[結果] ウィンドウで確認することができます。ツールの実行中は、結果の隣に砂時計が表示されます。結果を右クリックして [キャンセル] をクリックすると、実行をキャンセルすることができます。タスクが完了すると、[完了] を示すメッセージが表示され、結果のタスク名の横にツールのアイコンが表示されます。