Agmodel
ホーム
日本語
 
   

MetSOAP

MetSOAPとは

SOAP (Simple Object Access Protocol) はMicrosoft社やIBM社などが中心となって策定した、XML-Web Serviceにアクセスするための標準規約です。MetSOAP は SOAPベースのWeb Serviceであり、これを利用することによりソフトウエア開発者は各自の得意なプログラミング言語を用いて様々なオンライン気象データへアクセスすることができます。 このページでは MetSOAP がどのように動くのかを説明するとともに、いくつかのサンプルアプリケーションを提供します。

VBandDelphiClients

MetSOAPからデータを取得するには、一般的に4つのことをする必要があります(以下、pseudocodeを例にします):

  1. MetSOAP web serviceの情報を使って SOAP Toolkit を初期化します。
    SOAPToolkit.init("http://www.agmodel.net/MetBroker/MetSOAP/MetSOAP.wsdl")
  2. 欲しいデータを特定するための MetSOAP リクエストオブジェクトを生成します。
    request = CreateObject("MetSOAP.StationMetRequest")
    request.sourceID = "amedas"
    request.stationID = "40341"
    request.resolution = 1       {hourly data}
    request.elements =   [0,1,2] {air temperature, rain, and wind}
    request.interval = CreateObject (TimeInterval("2002/10/1","2002/10/31"))
    ...
  3. リクエストを引数にリモートメソッドを呼び出し、結果を取得します。
    StationDataSet result = SOAPToolkit.getStationData(request)
  4. 結果オブジェクトから必要なデータを取り出します。
    ElementData[] elementArray = result.ElementData
    {This array has one element for each met element}
    
    For elementIndex = 0 To UpperBound(elementArray)
        DataStore[] thisElementsData = elementArray(elementIndex).Data
        {This array has elements for each element component
         eg wind speed and wind direction,
         or soil temperatures at 10cm, 50cm, and 1m,
         or daily air temperature max, min and mean}
       
        For elementDataStoresIndex = 0 To UpperBound(thisElementsData)
            Float[] storeContentsArray = thisElement.Data(elementDataStoresIndex).Contents
            {This array contains individual met readings for an element (eg max temperatures)
             There is one reading for each resolution step (eg each hour or each day)}
    
            For storeContentsIndex = 1 To UpperBound(storeContents)
                dataItem = storeContents(storeContentsIndex)
            End
        End
    End

APIドキュメントを含めたMetSOAPについての詳しい情報はこちらから

接続確認

ここをクリックすることにより、MetSOAP の利用が可能かどうか確認することができます。

サンプルクライアント

これらのサンプルクライアントは、一般的なプログラミング言語を用いてMetSOAPにアクセスする方法の例です。

  • Microsoft SOAP Toolkit-based
    Microsoft SOAP Toolkit ベースの4つのサンプルクライアントを動かすにはMicrosoft SOAP Toolkit と MetSOAP.DLL が必要です。
    Step 1 - SOAP Toolkit と MetSOAP.DLL のインストール
    SOAP Toolkit と MetSOAP.DLL をインストールするには、こちらの指示に従ってください。
    Excel スプレッドシート
    このスプレッドシートは世界中のデータベースから直接気象データを取り出すことができます。 インストール方法
    VBScript
    1. MetSoapClient.vbs を任意のディレクトリに保存し、実行します。
    Visual Basic 6
    1. このファイルを任意のディレクトリに解凍します。
    2. そのディレクトリでMetSoapVBClient を実行します。
    ASP
    1. IIS をセットアップします。(すでにセットアップされている場合は不要)
    2. MetSoapClientVBS.asp を C:\inetpub\wwwroot または IISのウエブページ保存用ディレクトリに保存します。
    3. ウエブ・ブラウザーで http://localhost/MetSoapClientVBS.asp を開きます。
    注:これら全てのクライアントは、使用するコンピューターのローカルタイムゾーンで時間を表示します。 もし他のタイムゾーンから見るならば、少々混乱するかもしれません。
  • Java

    MetSOAPの利用方法を簡単に示すJavaプログラムはこちらです。こちらの圧縮ファイルを任意のディレクトリに解凍し、runclient.batを実行することにより、このアプリケーションを実行できます。

    デモを動かすためにはJavaランタイムをインストールする必要があります。Javaランタイム(JRE)のダウンロードおよびインストールはこちらからできます。

    (注:デモを動かすにはサイズの小さいJREバージョンをインストールすればよく、SDKフルバージョンをインストールする必要はありません。)

WSDL file

MetSOAPのサービス内容を示す鍵となるファイルはMetSOAP.wsdlです。 "wsdl" は "Web Services Definition Language" の略で、SOAPツールと人間がともに読むことができるサービス定義を含んでいます。従って、Internet Explorerや他のXMLビューワーを使ってファイルを読むことができます。 ここに記述されたサービスにアクセスするためには、各プログラミング言語の開発環境で提供されているSOAPツールが必要になります。 たとえば、enterprise version of Delphi、Microsoft SOAP Toolkit (Microsoft社から無償で手に入れられます)があります。また、Cape Science (www.capescience.com) などの会社から提供されるツールもあります。これらを用いることにより、WSDLファイルからVBクライアントやJAVAクライアントを自動的に作ることができます。

SOAPリクエストとレスポンスの例

これはクライアントアプリケーションがMetSOAPに送るメッセージの例です。MetSOAPNorwayRequest.xml このクライアントリクエストは気温、雨、風について4日間の日別データを要求しています。

こちらは MetSOAP が送り返すものです。MetSOAPNorwayResponse.xml

MetBroker ページに戻る