11 空間Webサービスの概要

この章では、Oracle Spatialでサポートされる空間Webサービスについて説明します。

ノート:

Oracle Cloud MarketplaceからOracle Spatial Webサービスをデプロイできます。このパッケージ・アプリケーションを使用すると、Oracle Cloud Infrastructure (OCI)上のApache Tomcat Webサーバー・インスタンスにデプロイされたOracle Spatial Webサービス(Web Feature Service (WFS)、Web Coverage Services (WCS)、Catalog Services for the Web (CSW)およびGeoRaster REST APIなど)をインストールできます。ただし、ジオコーディング、イエロー・ページ、ルーティングおよびOpenLSサービスは、サーバーレス・デプロイメントと専用デプロイメントの両方のOracle Autonomous Databaseでサポートされていないことに注意してください。

Webサービスを使用すると、Oracle Spatialアプリケーションの開発者は、Webを介してフィーチャ・データおよびメタデータをアプリケーション・ユーザーに提供できます。

ノート:

SpatialのWFSサポートまたはCSWサポートを使用している場合、および1つ以上のSYS.XMLTABLEINDEX索引を使用して索引付けされた以前のリリースのデータがある場合は、アップグレード前に関連する索引を削除し、アップグレード後に索引を再作成する必要があります。

詳細は、「アップグレード前およびアップグレード後に行う索引のメンテナンス(WFSおよびCSW)」を参照してください。

11.1 空間Webサービスの種類

Oracle Spatialで提供される様々な種類のWebサービスについて学習します。

  • ジオコーディング: ユーザーは、住所を空間位置(経度と緯度の座標)に関連付けることができます。ジオコーディングのサポートの詳細は、「住所データのジオコーディング」を参照してください。
  • イエロー・ページ: ユーザーは位置との関係に基づいて、名前別またはカテゴリ別にビジネス情報を検索できます。イエロー・ページのサポートの詳細は、「ビジネス・ディレクトリ(イエロー・ページ)のサポート」を参照してください。
  • ルーティング: 1つまたは複数のルートについて道路情報や案内を提供します。ルーティング・サポートの詳細は、「ルーティング・エンジン」を参照してください。
  • OpenLS: ジオコーディング、マッピング、ルーティングおよびイエロー・ページに対するOpen Location Services Initiative (OpenLS)仕様に基づいて、位置情報をベースにしたサービスを提供します。OpenLSのサポートの詳細は、「OpenLSのサポート」を参照してください。
  • Web Feature Services(WFS): ユーザーは、位置または非空間属性との関係に基づいて、フィーチャ(道路、川など)を検索できます。WFSバージョン1.1.0および1.0.0のサポートの詳細は、「Web Feature Service(WFS)のサポート」を参照してください。
  • Web Coverage Service (WCS): 科学的モデルへの入力としてのクライアント側レンダリング、および他のクライアントに有用な形式のカバレッジ・データへのアクセスを提供します。
  • Catalog Services for the Web (CSW): OpenGISコンソーシアム仕様のカタログ・サービスであるOracle Spatial実装を記述します。この仕様によると、カタログ・サービスは、データ、サービスおよび関連する情報オブジェクトについての記述情報(メタデータ)の集合をパブリッシュおよび検索する機能をサポートしています。CSWバージョン2.0.2のサポートの詳細は、「Catalog Services for the Web(CSW)のサポート」を参照してください。
  • Web Map Service (WMS): 空間データのレンダリングをサポートします。具体的には、WMS 1.1.1および1.3.0実装仕様がマップ視覚化コンポーネントに実装されています。詳細は、『Oracle Spatialマップ・ビジュアライゼーション開発者ガイド』マップ視覚化コンポーネントでのOGC WMSサポートを参照してください。
  • GeoRaster REST API: REST HTTP/SリクエストとJSONレスポンスを介した、Oracle Databaseに格納されているGeoRasterデータへのアクセスおよび管理をサポートします。詳細は、『Oracle Spatial GeoRaster開発者ガイド』GeoRaster REST APIを参照してください。

11.2 空間Webサービスのユーザーの種類

空間Webサービスの構成に関与する様々なユーザーについて学習します。

空間Webサービス・アプリケーションを実装するユーザーは、次のいずれかです。

  • Webサービスのインフラストラクチャを設定する管理者。管理者は、データベース・ユーザーの作成、新規および既存のデータベース・ユーザーに対する権限とアクセス権の付与、複数のデータベース・ユーザーに影響するその他の操作などを行います。
    • Web Feature Serviceの場合、管理者はWFS管理コンソールを使用してフィーチャ表の登録、フィーチャ・タイプのパブリッシュを行います。

    • Catalog Service for the Webサービスの場合、管理者はCSW管理コンソールを使用してレコード・タイプをパブリッシュします。

    • Web Coverage Serviceの場合、管理者はWCS管理コンソールを使用してカバレッジをパブリッシュします。

    たとえば、管理者は、インフラストラクチャを設定して、道路や川などの空間フィーチャにアクセスできるようにします。

  • 空間データおよびメタデータを作成および管理するアプリケーション開発者。開発者は、空間データ表を作成し、空間索引を作成して、行をUSER_SDO_GEOM_METADATAビューに挿入し、空間のファンクションおよびプロシージャを使用してアプリケーション・ロジックを実装します。

    たとえば、アプリケーション開発者は、道路や川の表を作成し、アプリケーション・ロジックを実装することで、エンド・ユーザーが空間問合せ条件に基づいて道路や川を検索できるようにします。

  • KVP、POSTまたはSOAPプロトコルを使用したHTTPリクエストを介してサービスにアクセスするエンド・ユーザー

    たとえば、エンド・ユーザーは、特定の川から1マイル以内にあるすべての道路、またはその川を横断するすべての道路などの検索を行います。

管理者の立場から見ると、アプリケーション開発者もエンド・ユーザーもすべてユーザーです。これは、それぞれのニーズに合わせてデータベース・ユーザーを作成する必要があるためです。アプリケーション開発者は、空間表を作成および管理し、Oracle Spatialのファンクションおよびプロシージャを使用するための十分な権限を持つユーザーとして、データベースに接続します。エンド・ユーザーは、HTTPリクエストを介してデータベースにアクセスします。

SpatialのWebサービスに関する章は、エンド・ユーザー向けではなく、管理者およびアプリケーション開発者を対象としています。

11.3 空間Webサービスのデプロイと構成

このトピックでは、空間Webサービス、特にWFS、WCS、CSWおよびGeoRaster REST APIのデプロイと構成に適用される処理について説明します。

これらのサービスはJava Webアプリケーションとして実装され、WebLogic 12.1.3以上にデプロイして実行できます。必要なJavaのバージョンはJDK 8以上です。

ノート:

Oracle Databaseリリース23cでは、データベースのOJVMがJDK11をサポートしているため、Oracle Spatial Java APIはJDK 11を使用してコンパイルされます。ただし、APIは下位互換性のために引き続きJDK8でサポートされます。APIを使用する場合は、関連するすべてのJARファイルが、使用されているJDKバージョン(JDK 8またはJDK 11)と一致していることを確認してください。様々なJDKバージョンでサポートされているJDBCドライバの詳細は、Oracle JDBCドライバのRDBMSおよびJDKバージョンの互換性を参照してください。
  • WFS、WCSおよびCSWは、sdows.earファイルにパッケージされています。
  • GeoRaster REST APIは、sdows.earファイルにパッケージされています。
  • ジオコーダ・サービスは、geocoder.ear.zipファイルにパッケージされています。
  • ルーティング・エンジンは、routeserver.ear.zipファイルにパッケージされています。

これらのファイルは、Oracleインストールの$ORACLE_HOME/md/jlibディレクトリにあります。このトピック内の一般的な手順に加えて、使用する各空間Webサービスに関する個別の章を参照し、その他のデプロイおよび構成のタスクを確認してください。

任意のOracle Spatial Webサービスをデプロイするには、特定の順序で次のステップを実行します。

11.3.1 WebLogic Serverの準備

空間Webサービスは、JDK 8またはJDK 11をサポートする任意のOracle WebLogic Serverバージョンにデプロイできます。

ただし、Oracle WebLogic Serverバージョン14.1.1.0.0を使用することをお薦めします。

WebLogic環境を準備するには、次のステップを実行します。

  1. Oracle WebLogic Serverバージョン14.1.1.0.0をインストールします。
    インストール手順は、Oracle WebLogic Serverのインストールを参照してください。
  2. WebLogicドメインを作成および構成します。管理サーバーとノード・マネージャを作成することをお薦めします。
    詳細は、WebLogicドメインの作成と構成を参照してください。
  3. ノード・マネージャを起動し、さらにWebLogic Serverを起動します
  4. Oracle WebLogic Server管理コンソールで次のステップを実行します。
    1. マシンを作成および構成します。
    2. 管理対象サーバーを作成します。
    3. 管理対象サーバーの構成に関する「一般」タブで「マシン」名を構成します。
    4. 管理対象サーバーを起動します。

11.3.2 WebLogic Serverへの空間Webサービスのデプロイ

この項では、sdows.earファイルに含まれるサービス(WFS、WCS、CSW、GeoRaster REST APIなど)をデプロイする方法について説明します。

その他のWebサービスについては、それぞれの章の手順に従ってください。

また、WCSまたはGeoRaster REST APIを構成する場合は、sdows.earファイルのデプロイ前にGDALを設定する必要があることに注意してください。WFSまたはCSWにのみ関心がある場合は、「GDALの設定」の項をスキップできます。

WebLogic Serverにsdows.earファイルをデプロイするには、次のステップを実行します。

  1. 構成ファイルおよびログ・ファイルを格納するフォルダを作成します。
  2. 前のステップで作成したフォルダを指す環境変数SDOWS_HOMEを作成します。
  3. <WLS_HOME>/wlserver/common/deployable-libraries/jax-rs-2.0.warをライブラリとしてOracle WebLogic Serverにデプロイします。詳細は、エンタープライズ・アプリケーションのインストールを参照してください。
  4. オプションで、WCSまたはGeoRaster REST APIをデプロイする場合にのみ、GDALを設定します(「GDALの設定」を参照)。
  5. WebLogicデータ・ソースを追加します(「WebLogicデータ・ソースの追加」を参照)。
  6. オプションで、GeoRaster REST APIをデプロイする場合は、必要な環境変数とOracle Walletを設定します。
  7. sdows.earをアプリケーションとしてデプロイします(エンタープライズ・アプリケーションのインストールを参照)。

空間Webサービスに必要なステップを完了したら、「デプロイ」ページでアプリケーションがActive状態であることを確認します。Prepared状態の場合、「起動」をクリックしてアプリケーションを起動します。手順は、デプロイされたエンタープライズ・アプリケーションの起動と停止を参照してください。

11.3.2.1 GDALの設定

Oracleインストールには、GDAL (GeoSpatial Data Abstraction Library)が含まれています。

$ORACLE_HOME/md/gdalには2つのGDAL zipファイルがあり、1つはLinux 64オペレーティング・システム用、もう1つはWindows 64オペレーティング・システム用です。

GDAL zipファイル内のREADME.txtファイルには、GDALを設定する手順が含まれています。

GDALが設定されている端末からサーバーを起動するか、WebLogicドメインのbinフォルダにあるWebLogic ServerのsetDomainEnvスクリプトからgdal_setupスクリプトを起動して、実行中のOracle WebLogic ServerでGDALが使用可能であることを確認します。

11.3.2.2 WebLogicデータ・ソースの追加

JDBCデータ・ソースをWebLogicドメインに追加して、WebLogic Serverでデータベース接続を構成できます。

JDBC汎用データ・ソースの作成の手順に従って、汎用データ・ソースを作成できます。

ただし、データ・ソースの構成時に値を選択する際には、次の点を考慮する必要があります。

  1. JDBCデータ・ソース名には、文字A-Za-z0-9のみを含める必要があります。この値は、サービスURLの一部になります。
  2. JNDI名の形式はJDBC/<name>である必要があります。<name>はJDBCデータ・ソース名と同じです。
11.3.2.3 GeoRaster REST APIの設定

GeoRaster REST APIの設定について学習します。

WebLogic ServerでGeoRaster REST APIを設定するには、次のステップを実行します。

  1. Oracle Walletを構成し、WebLogicデータ・ソース接続を追加します。
    1. mkstoreツールを使用して、Oracle Walletを新規作成します。
      手順については、外部パスワード・ストアの作成方法を参照してください。
    2. TNS別名を使用して資格証明および接続文字列をOracle Walletに格納します。
      Oracle WalletにTNS別名を追加する手順は、DB接続文字列のかわりにTNS別名を使用を参照してください。

      必要な数のデータベース接続をOracle Walletに追加します。

    3. Oracle WalletおよびJNDI名でjdbc/<alias>の形式で定義されている別名をJDBCデータ・ソース名として使用して、WebLogicデータ・ソースを追加します。ここで、<alias>はOracle Walletで定義された別名です。
      Oracle Walletを使用してWebLogicデータ・ソースを定義する手順は、ウォレットを使用するWebLogic Serverデータ・ソースの定義を参照してください。
    4. Oracle Walletファイルを含むzipファイルを作成し、圧縮されたOracle Walletファイルを指す環境変数GEOR_WALLET_FILEを追加します。
      GEOR_WALLET_FILEが以前に設定されている端末からサーバーを起動するか、WebLogicドメインのbinフォルダにあるWebLogic ServerのsetDomainEnvスクリプトに環境変数定義を追加して、WebLogic ServerでGEOR_WALLET_FILE環境変数が使用可能であることを確認します。
  2. オプションで、ラスターのインポート/エクスポート用一時格納場所のフォルダを設定します。

    このオプションのステップは、REST APIを使用してラスター・ファイルをインポートおよびエクスポートする場合にのみ必要です。

    1. GEOR_IMPORT_EXPORT_FOLDERという環境変数を追加します。この値は、インポートおよびエクスポート機能の一時格納場所として使用されるフォルダを指します。
    2. GEOR_IMPORT_EXPORT_FOLDERが以前に設定されている端末からサーバーを起動するか、WebLogicドメインのbinフォルダにあるWebLogic ServerのsetDomainEnvスクリプトに環境変数定義を追加して、WebLogic ServerでGEOR_IMPORT_EXPORT_FOLDER環境変数が使用可能であることを確認します。

11.3.3 各空間Webサービスの構成

使用する各空間Webサービスは個別に構成する必要があります。

ご使用の環境でサポートするWebサービスに応じて、特定のタスクを実行する必要があります。権限を作成し、データベース・ユーザーに付与する必要がある場合があります。WebLogic Serverで、特別なデータ(ジオコーディング用など)のダウンロードおよびロード、構成ファイルの変更、またはデータ・ソースの作成が必要な場合もあります。

11.3.3.1 空間Webサービスの管理コンソール

Oracle Spatialは、WFS、WCSおよびCSW Webサービス・エンジンを構成するのに役立つWebアプリケーションを提供します。

次の図は、Oracle Spatial Webサービス管理コンソールのユーザー・インタフェースを示しています。

図11-1 空間Webサービスの管理コンソール

図11-1の説明が続く
「図11-1 空間Webサービスの管理コンソール」の説明

管理コンソールのユーザー・インタフェースは次のページで構成されています。

  • フィーチャのパブリッシュ: 各サービスについて含まれるデータを追加および削除します。
  • テスト: 各サービスのリクエストおよびレスポンスをテストします。
  • ログ: 診断用のログ・ファイルのコンテンツを表示およびダウンロードします。
  • サービス構成: 各サービスを構成します。

ブラウザで管理コンソールを起動するには、次のURLを使用します。

http://<system-name>:<port>/oraclespatial/

前の図に示すように、アプリケーションにログインするには、認証用に「ユーザー名」および「パスワード」資格証明を指定するか、ゲストとしてサービスをテスト・リンクをクリックしてテスト・ページを開くことができます。テスト・ページでは、使用可能なすべてのサービス操作リクエストを表示して、OGCリクエストを作成できます。テスト・ページを除く他のすべてのページで認証が必要であることに注意してください。

ページの右上にあるユーザー・メニューを使用して、「ログイン」または「ログアウト」を実行できます。すべてのユーザーは、管理コンソールがデプロイされているOracle WebLogic Serverで構成されます。

「サービス」メニューservices_menuは、ページの左上にあります。

「サービス」メニュー・オプションは次のとおりです。

  • Web Feature Service
  • Web Coverage Service
  • Catalog Service for the Web

いずれかのサービス・オプションをクリックすると、選択したサービスで使用可能なすべてのタブがメイン・ページに表示されます。

選択したサービスのページの右上にある「データソース」ドロップダウンから、構成済データ・ソースを選択します。選択したデータ・ソースはいつでも変更できます。WebLogic Serverで複数のデータ・ソースを構成して、異なるスキーマまたはデータベースのデータにアクセスできます。

「サービス構成」タブでは、GetCapabilitiesレスポンスに示されるロギング・レベルなどのサービス・パラメータやサービス・プロバイダ情報を変更できます。

「テスト」タブでは、様々な操作に対して単純なリクエストを作成できます。パラメータを編集、追加または変更し、HTTP POST/XMLリクエストとして送信できます。レスポンスも表示されます。

「ログ」タブには、問題を診断するためのログ・ファイルの内容が表示されます。zipファイルに圧縮されたログをダウンロードし、後で問題の診断に使用できます。