【文献】
藤野 真吾,Zend Framework 徹底マスター,日本,株式会社ソーテック社 柳澤 淳一,2009年 4月30日,初版,pp.12−14,396−400
【文献】
河村 嘉之,Javaによる企業システム開発はどう変わろうとしているのか エンタープライズJavaの現在、そして未来,ITアーキテクト,日本,(株)IDGジャパン,2008年 8月 6日,Vol.18,pp.126−140
(58)【調査した分野】(Int.Cl.,DB名)
増進的な変化を前記クエリに加えて修正されたクエリを形成し、前記増進的な変化の影響を前記修正されたクエリにより生成される結果を表示することによってプレビューするように構成されるプレビューメカニズムをさらに含み、前記結果は、前記増進的な変化に対応するユーザ入力に応じて生成されることを特徴とする請求項1に記載のシステム。
【発明を実施するための形態】
【0005】
ウェブサービス用インターフェイスを生成して当該ウェブサービスにクエリを実行するシステム、方法及びコンピュータ可読媒体が開示されている。特定の実施形態において、システムはメモリと当該メモリに接続されたプロセッサとを含む。このプロセッサはメモリからの命令を取り出し(読み出し)、当該命令はインターフェイスモジュール、クエリモジュール及び結果モジュールを実行する命令である。インターフェイスモジュールはウェブサービスに関連するユーザインターフェイスを作成し、当該ユーザインターフェイスは当該ウェブサービスに関連づけられた1つ若しくは複数の入力パラメータオプションを含む。インターフェイスモジュールはユーザインターフェイスを介してユーザ入力を受信することができ、当該ユーザ入力は前記1つ若しくは複数の入力パラメータオプションから選択した少なくとも1つ入力パラメータオプションを含む。インターフェイスモジュールは、受信されたユーザ入力に基づいてユーザインターフェイスにおいて前記1つ若しくは複数の入力パラメータオプションを自動的にリフレッシュすることができる。クエリモジュールはまた、受信されたユーザ入力に基づいてウェブサービスのクエリを生成する。クエリは、前記少なくとも1つの選択された入力パラメータオプションを反映する。クエリモジュールは、結果を生成するためにウェブサービスに関して前記生成されたクエリをインボークし、結果モジュールはユーザインターフェイスにおいて当該結果を自動的に表示する。
【0006】
他の実施形態においては、方法はウェブサービスに関連するユーザインターフェイスを生成するステップを含む。ユーザインターフェイスは、ウェブサービスに関連付けられた1つ若しくは複数の入力パラメータオプションを含む。ユーザインターフェイスは、拡張マークアップ言語(XML)サービス細目と当該XMLサービス細目に関連付けられた1つ以上のXMLシリーズ細目に基づいて、コンピュータシステムにおいて作成される。尚、上記のようにはぜずに、細目は任意のコンピュータ認識可能言語(例えば、テキストファイル、リッチテキストフォーマット(RTF)若しくはハイパーテキストマークアップ言語(HTML))で表されてもよい。前記方法はまた、ユーザインターフェイスを介してユーザ入力を受信するステップを含み、当該ユーザ入力は前記1つ若しくは複数の入力パラメータオプションから選択した入力パラメータオプションを含む。前記方法はさらに、受信されたユーザ入力に基づいてウェブサービスのクエリを生成するステップを含み、当該クエリは前記1つ若しくは複数の入力パラメータオプションから選択した前記入力パラメータオプションを反映する。前記方法は、ウェブサービスに関して前記生成されたクエリをインボークするステップと、当該インボークしたクエリの結果をユーザインターフェイスに加えるステップを含む。
【0007】
他の実施形態において、コンピュータ可読媒体が開示されている。コンピュータ可読媒体は命令を含み、当該命令がコンピュータによって実行されると、当該コンピュータはウェブサーバからウェブサービスに関連付けられたユーザインターフェイスを受信し、当該ユーザインターフェイスはウェブサービスに関連付けられた1つ若しくは複数の入力パラメータオプションを含む。ユーザインターフェイスは、拡張マークアップ言語(XML)サービス細目と当該XMLサービス細目に付随する1つ以上のXMLシリーズ細目とに基づいて作成される。また、コンピュータ可読媒体は命令を含み、当該命令がコンピュータによって実行されると、コンピュータはユーザインターフェイスを表示し、当該ユーザインターフェイスにおいてユーザ入力を受信する。ユーザ入力は前記1つ若しくは複数の入力パラメータオプションから選択された少なくとも1つの入力パラメータオプションを含む。コンピュータ可読媒体はさらに他の命令を含み、当該他の命令がコンピュータによって実行されると、当該コンピュータはユーザ入力をウェブサーバに送信し、当該ウェブサーバから修正されたユーザインターフェイスを受信する。当該修正されたユーザインターフェイスはユーザ入力を反映している。コンピュータ可読媒体は別の命令を含み、当該別の命令がコンピュータによって実行されると、当該コンピュータは前記修正されたユーザインターフェイスを表示し、受信されたユーザ入力に基づいてウェブサービスのクエリを作成し、当該作成されたクエリをウェブサーバに送信する。コンピュータ可読媒体は他の命令を含み、当該他の命令がコンピュータによって実行されると、当該コンピュータはウェブサーバから前記作成されたクエリのインボークに基づく結果を受信し、当該結果を前記修正されたユーザインターフェイスに表示する。
【0008】
図1はウェブサービス140のためのインターフェイス(例えば、例示的なユーザインターフェイス114)を生成し当該ウェブサービス140にクエリを行うためのシステム100の一実施形態を示す図である。ウェブサービス140は通信可能にシステム100に接続されている。ウェブサービス140はまた、1つ若しくは複数のデータソース(例えば、例示的なデータベース150)に通信可能に接続されてもよい。
【0009】
システム100はウェブサービス140のためのユーザインターフェイス114を生成するように構成されたインターフェイスモジュール110を含み、ユーザインターフェイス114は1つ若しくは複数の入力パラメータオプション116を含む。特定の実施形態において、ユーザインターフェイス114はウェブサービス140に関連付けられたサービス及びシリーズ細目112に基づいて作られる。例えば、サービス及びシリーズ細目112は、ウェブサービス140のクエリを作成・構築するのに使用可能な情報を含む拡張マークアップ言語(XML)ファイルである。ウェブサービス140のクエリを作成・構築するのに使用可能な情報は、例えば、ページング許可、サービスタイトル、サービスディスクリプション、リストパラメータ、シリーズURI(uniform resource identifier)テンプレート、シリーズ識別子、シリーズソース経路、パラメータタイプ/境界/オプション(例えば、記号列、整数、小数点及びブール値)である。サービス細目に含まれるシリーズソース経路は、特定のシリーズ細目に関連付けられたURIを作成する際に使用することができる。例えば、シリーズソース経路は特定のシリーズ細目のURIを作成するために、シリーズURIテンプレートに付けられる。例示的なXMLサービス細目は
図3を参照して更に説明される。例示的なXMLシリーズ細目は
図4を参照して更に説明される。例示的なユーザインターフェイスは
図5及び
図6を参照して更に説明される。
【0010】
インターフェイスモジュール110はユーザインターフェイス114を介してユーザ入力104を(例えば、ユーザ102から)受信することもできる。ユーザ入力104は入力パラメータオプション116の中から選択した1つ若しくは複数の入力パラメータオプションを含む。ユーザ入力104を受信すると、インターフェイスモジュール110は自動的にユーザインターフェイス114をリフレッシュしてユーザ入力104を反映する。特定の実施形態において、ユーザインターフェイス114は前記サービス及びシリーズ細目112に含まれている1つ以上の自動リフレッシュURIに従ってリフレッシュされる。例えば、ユーザ入力104に基づいてユーザインターフェイス114を自動的にリフレッシュすることは、入力パラメータオプション116に付随するグラフィカルユーザインターフェイス(GUI)要素の表示(例えば、リストパラメータに付随しているドロップダウンメニュー)をリフレッシュすること、または、入力パラメータオプション116の1つ以上の境界・範囲(例えば、数値の最低値及び最大値または記号列値の最大長さ)を更新することを含む。ウェブサービスに関連付けられたインターフェイスにおける自動リフレッシュ処理(動作)は
図5を参照して更に説明される。
【0011】
システム100はクエリモジュール120を含み、当該クエリモジュールは受信したユーザ入力104に基づいてウェブサービス140のクエリ122を作成する。クエリ122は入力パラメータオプション116から選択された1つ以上の入力パラメータオプションを反映している。クエリモジュール120はクエリインボークの結果132を生成するためにウェブサービス140について前記作成されたクエリ122をインボークする。例えば、ウェブサービス140はデータベース150についてデータ検索能力を提供し、クエリモジュール120はクエリ122(例えば、データベース150の特定のテーブルをフィルタリングするクエリ)をインボークして結果132(例えば、データベース150の選択されたテーブルからの、フィルタリングされて得られたデータ)を生成する。特定の実施形態において、1つ若しくは複数のウェブサービス140及びデータベース150はシステム100から隔てられており、1つ若しくは複数のデータ通信ネットワーク(例えば、インターネット)を介してアクセス可能である。尚、ウェブサービス140及びデータベース150は互いから隔てられて図示されているが、ウェブサービス140及びデータベース150は1つのコンピューティング装置(例えば、ウェブサーバまたはデータベースサーバ)に設けられてもよいし1箇所に設置されてもよい。
【0012】
特定の実施形態において、クエリモジュール120はさらに、クエリ122をインボークするために使用可能である1つ以上のプログラムクラス(例えば、C++クラス、C#クラスまたはJava(登録商標)クラス)を自動的に生成することができる。例えば、選択された1つ若しくは複数の入力パラメータオプション116はプログラムクラス内にカプセル化される(入れられる)か、プログラムクラスのインボーク方法の入力パラメータとして提供される。ユーザインターフェイス114はユーザ102によって操作され(例えば、ハイパーリンクを介して)、1つ若しくは複数のプログラムクラスを取り出すことができる。クエリ122をインボークするためにプログラムクラスを使用することは、アカウントキー及びセッション識別子(例えば、GUID(globally unique identifier))等の権限付与(認可)情報をウェブサービス140に送信することを含む。よって、システム100がオフライン状態にあるかパワーダウン状態にあるとき、プログラムクラスはクエリ122の実行を可能にする。プログラムクラスのためのハイパーリンクは
図6を参照して更に説明される。
【0013】
特定の実施形態においてクエリモジュール120はさらに、クエリモジュール120を実行することなくクエリ122をインボークするために使用できるREST(representational state transfer)URIを生成することができる。即ち、REST URIはいつでも(システム100が動作していないときも含む)クエリ122をインボークするために用いることができる。例えば、選択された1つ若しくは複数の入力パラメータオプション116がREST URIの一部としてカプセル化される(例えば、暗号化フォーマットまたはクリアテキストフォーマットで)。REST URIがインボークされると(例えば、ブラウザにおいて)、選択された1つ若しくは複数の入力パラメータオプション116はREST URIの一部としてウェブサービスに送信される。よって、REST URIは、システム100がオフライン状態若しくはパワーダウン状態にあるときに、クエリ122の実行を可能にする。REST URIは
図6を参照して更に説明される。
【0014】
システム100は結果モジュール130を含み、当該結果モジュールはクエリ122のインボークの結果132を受信して、当該受信された結果132をユーザインターフェイス114において自動的に表示する。特定の実施形態において、クエリモジュール120は複数のデータ交換フォーマット(例えば、RAW XML、JSON(JavaScript(登録商標) Object Notation)、またはATOM(Atom Syndication Format)1.0)でクエリ122を選択的にインボークし、結果モジュール130は標準的なテーブルフォーマット(表形式のフォーマット)に加えて、前記複数のデータ交換フォーマット(例えば、RAW XML、JSON及びATOM1.0)のいずれかで当該結果132を選択的にフォーマット化することができる。
【0015】
特定の実施形態において、システム100におけるスプレッドシートアプリケーションは前記結果132を入力データとして受け入れることができ、よって、当該結果132について分析を行う高度な分析手法を適用する能力をユーザ102に与える。
【0016】
実際の動作において、インターフェイスモジュール110はウェブサービス140のためのユーザインターフェイス114を作成し、ユーザ102はユーザインターフェイス114とインタラクトすることによりユーザ入力104を提供する。ユーザ入力104(例えば、複数の入力パラメータオプションから選択した1つ以上の入力パラメータオプション)に基づいて、ユーザインターフェイス114は自動的にユーザインターフェイスをリフレッシュし、クエリモジュール120によって生成されたプログラムクラスのハイパーリンクをアップデート(更新)し、クエリモジュール120によって生成されたREST URIの表示をアップデート(更新)する。
【0017】
クエリモジュール120はユーザ入力104に基づいてウェブサービス140のクエリ122を作成し、当該クエリ122をインボークする。クエリ122は、入力パラメータオプション116からユーザが選択した1つ以上の入力パラメータオプションを反映する。ウェブサービス140はデータベース150からクエリ122の結果132を取り出す。結果モジュール130は当該結果132を受信し、当該結果132をユーザインターフェイス114において表示する。
【0018】
尚、
図1のシステム100は、ユーザ102から受信したユーザ入力104に追従して(直ちに反応して)当該ユーザ入力を反映するためにユーザインターフェイス114を自動的にリフレッシュすることにより、ウェブサービスクエリ作成のための「アクティブな」インターフェイスを提供する。また、
図1のシステム100はウェブサービスクエリ作成を単純化することもできる。例えば、ウェブサービス140の複雑なアプリケーションプログラミングインターフェイス(API)の利用方法を習得するために時間を使うのではなく、ユーザ自身が興味を持っているデータが何であるのか(例えば、どんな入力パラメータオプション116がクエリ122によって反映されるべきか)を知っているユーザであるなら、当該ユーザはユーザインターフェイス114を操作して、クエリ122をインボークするのに用いることができるREST URIまたは動的に作成されたプログラムクラスを取り出してもよい。このような動的に作成されたプログラムクラス及びREST URIはシステム100が動作していないときでも使用可能である。
【0019】
また、
図1のシステム100はクエリ修正を補助するプレビューメカニズムも提供する場合がある。例えば、ユーザ102は増進的な変化をクエリ122に与え(施し)、システム100を使用するユーザ102は、クエリ122により生成された結果132における前記増進的な変化の影響のプレビューを見ることができる。尚、ウェブサービス(例えば、既存のウェブサービスまたは新たに生成されたウェブサービス)は、ウェブサービス(例えば、ウェブサービス140)のシリーズ及びサービス細目(例えば、細目112)を提供することにより
図1のシステム100のインターフェイス作成能力及びクエリ検索能力に適合するように構成される。このようなシリーズ及びサービス細目は、ウェブサービス開発者(社)によって提供されてもよい。あるいは、シリーズ及びサービス細目は自動的に生成されてもよい(例えば、ウェブサービスのデフィニションファイルまたはソースコードに基づいて)。
【0020】
図2はウェブサービス240のインターフェイスを生成して当該ウェブサービス240をクエリ検索するシステム200の他の実施形態を示す図である。ウェブサービス240は、データベース250及びディスプレイデバイス206(例えば、コンピューティング装置に接続されたディスプレイ)に通信可能に接続されたウェブサーバ260に設けられている。例示的な実施形態において、ウェブサービス240は
図1のウェブサービス140であり、データベース250は
図1のデータベース250である。
【0021】
インターフェイスモジュール210はウェブサービス240のためのユーザインターフェイス214を生成し、当該ユーザインターフェイス214をディスプレイデバイス206において表示するために送信する。例えば、ユーザインターフェイス214はウェブサービス240のXMLサービス及びシリーズ細目212に基づいて生成される。また、インターフェイスモジュール210はユーザインターフェイス214を操作しているユーザ202からユーザ入力204を受信する。ユーザ入力204はウェブサービス240に関連する入力パラメータオプションの中から選択された1つ以上の入力パラメータオプションを含み、当該入力パラメータオプションはユーザインターフェイス214に表示される。インターフェイスモジュール210はユーザ入力204に基づいて、自動的に修正ユーザインターフェイス215を作成し、当該修正ユーザインターフェイス215をディスプレイデバイス206で表示するために送信することもできる。よって、ユーザ202の立場で考えると、ユーザインターフェイス214は自動的に修正ユーザインターフェイス215にリフレッシュされることになる。
【0022】
ウェブサービス260はまた、クエリモジュール220を含む。特定の実施形態においては、クエリモジュール220はユーザ入力204に基づいてウェブサービス240のクエリを作成する。他の実施形態にあっては、ユーザインターフェイス214(及び修正ユーザインターフェイス215)は、ユーザ入力204に基づいてクエリ222を作成して当該クエリ222をウェブサーバ260に送信するクエリ作成ロジックを含む。クエリモジュール220は結果232を生成するためにウェブサービス240に関するクエリ222をインボークし、当該結果232は送信されてディスプレイデバイス206において表示される。特定の実施形態において、前記結果232は、クエリ222の内容に基づいてウェブサービス240によってデータベース250から取り出される。
【0023】
実際の動作において、インターフェイスモジュール210はウェブサービス240のためのユーザインターフェイス214を作成し、当該ユーザインターフェイス214を送信してディスプレイデバイス206に表示する。ユーザ202はユーザインターフェイス214とインタラクトすることによってユーザ入力204を提供する。ユーザ入力204に基づいて、インターフェイスモジュール210は修正ユーザインターフェイス215を作成し、当該修正ユーザインターフェイス215をディスプレイデバイス206において表示するために送信する。
【0024】
クエリ222はユーザ入力204に基づいて作成され、クエリモジュール220によってインボークされて結果232を生成する。例えば、ウェブサービス240はクエリ222の内容に基づいてデータベース250から当該結果232を取り出す。当該結果232は、表示されるためにディスプレイデバイス206へ送信される。
【0025】
尚、
図2のシステム200は異なるコンピューティング装置においてインターフェイス生成、インターフェイス表示及びクエリ作成を提供することもある。例えば、ウェブサービス開発者またはウェブサービス240及びデータベース250に関連する販売者はウェブサーバ260においてウェブサイトを立ち上げるかもしれない。当該ウェブサイトはユーザインターフェイス214、修正ユーザインターフェイス215及び結果232を含む。このような例においては、ユーザ202等のユーザは、ウェブサービスに関連した複雑なアプリケーションプログラミングインターフェイスを学習する代わりに、ウェブサイトを訪問してウェブサービスを操作することができる。
図2のシステム200を用いると、ソフトウエア開発者及びデータ販売者にとってはウェブサービス使用が簡単になる。
【0026】
図3は
図1のシステム100若しくは
図2のシステム200において使用することができるXMLサービス細目300の実施形態を示す図である。例えば、XMLサービス細目300は
図1のサービス及びシリーズ細目112若しくは
図2のサービス及びシリーズ細目212に含まれる。
【0027】
特定の実施形態において、XMLサービス細目300は公知の記号列(例えば、/$service)をウェブサービスの基本URLの終端に付けることによって取得することができる。例えば、米国犯罪統計局「http://localhost/services/UsCrimeService.svc」をローカルに運営するためのサービス細目はURL「http://localhost/services/UsCrimeService.svc/$service」で取得することができる。特定の実施形態において、サービス細目はサービスによってホストされる各データセット毎に存在する。例えば、「majorcrimes」データセットのサービス細目はURL「http://localhost/services/UsCrimeService.svc/majorcrimes/$service」で取得することができる。
【0028】
XMLサービス細目300は複数のノードを含むこともある。例えば、サービス細目はルートノード(
図3において例示的に<service>と示されている)を含み、当該ルートノードは複数の一般ノード(例えば、ブール式ページング許可302、ストリング(記号列)サービスタイトル304、ストリングサービス説明306及び当該サービスに関連したロゴイメージを取り出すことができるロゴURI)含む。
【0029】
ルートノードはさらに、パラメータノードを含むこともある。パラメータノードは、リストパラメータ(例えば、リストパラメータ308)及びURIノードを含む。各リストパラメータはドロップダウンメニューとして表示される、取り得るデータ値のリストを表示する。特定の実施形態において、各リストパラメータは、ドロップダウンメニューのラベルとして使用されるディスプレイ名と、固有のシリーズ識別子(ID)312と、シリーズソース経路314とを含む。URIノードは1つ若しくは複数のシリーズノードを含み、各シリーズノードはシリーズURIテンプレート310を含み、当該テンプレートは特定のシリーズ細目のためのURIを生成するために用いることができる。例えば、シリーズソース経路314はシリーズURIテンプレート310に付けられて、特定のシリーズ細目のためのURIを生成する。例えば、もし「services」の値が4であるなら、URIはhttp://localhost/services/UsCrimeService.svc/$series?series=4となる。
【0030】
図4は
図1のシステム100若しくは
図2のシステム200において使用されるXMLシリーズ細目400の実施形態を示す図である。例えば、XMLシリーズ細目400は
図1のサービス及びシリーズ細目112若しくは
図2のサービス及びシリーズ細目212に含まれる。
【0031】
図3を参照して説明したように、ウェブサービスは1つ若しくは複数のデータシリーズをホストする。当該1つ若しくは複数のデータシリーズの各々は、付随するシリーズ細目を有する。各シリーズ細目のURIは、サービス細目(例えば、
図3のXMLサービス細目300)に含まれているシリーズURIテンプレート(例えば、
図3のシリーズURIテンプレート310)及びシリーズソース経路(例えば、
図3のシリーズソース経路314)に基づいて生成される。
【0032】
シリーズ細目400は複数のノードを含むことができる。例えば、シリーズ細目はルートノード(
図4では例示的に<series>と記載されている)を含み、当該ルートノードはパラメータノード、結果セットノード、アクションノード及びURIノードの1つ以上を含む。パラメータノードは、特定のシリーズのために規定されたパラメータ402を含むことができる。例えば、
図4に示された実施形態にあっては、パラメータ「State(州)」、「City(市)」及び「Year(年)」が米国統計局のために規定されており、これらパラメータの各々はリストパラメータである(例えば、当該サービスは複数の州、市及び年についての統計を取りだすことができる)。このようなリストパラメータの各々は、シリーズ細目400に従って生成されたユーザインターフェイスにおいてドロップダウンリストとして表示される。パラメータ402はさらに、ストリング(記号列)パラメータ、整数パラメータ及び小数点パラメータを含む場合もある。
【0033】
各リストパラメータはリストドキュメント(例えば、
図4の「statesList」、「citiesList」及び「yearsList」)を指す。各リストドキュメントは
XMLファイルであり、そのアイテムノードはドロップダウンメニューの値を表している。例えば、「statesList」ドキュメントは以下のものを含む。
【0035】
結果セットノードは、クエリのインボークによって戻されて存在しているデータフィールド404を含む。例えば、
図4に示された実施形態において、米国犯罪統計局に関するクエリをインボークすると、ストリング「Name」フィールドと「Violent Crime」、「Robbery」、「Aggravated Assault」、「Property Crime」、「Burglary」、「Larceny」、「MotorVehicleTheft」及び「Arson」の整数フィールドが戻される。
【0036】
アクションノードはパラメータ402の選択に基づいて実行されるアクションを含む。よって、異なるアクションがウェブサービスインターフェイスにおけるドロップダウンメニューの各リスト値に関連付けられていることもある。例えば、
図4の実施形態において、アクションノードは、ユーザがパラメータ402の中の1つ以上のパラメータを選択すると、XMLシリーズ細目400に従って生成されてユーザインターフェイスを自動的にリフレッシュするのに用いることができる自動リフレッシュURI406を含む。例えば、もしユーザが州「Texax(テキサス)」を選択すると、「Cities(市)」のドロップダウンメニューが自動リフレッシュURI406に従って自動的にリフレッシュされる(例えば、「Cities」のドロップダウンメニューにはテキサス州の市が含まれ且つ他の州の市が含まれないように変更される)。ウェブサービスに付随したインターフェイスにおける自動リフレッシュ動作は
図5に基づいてさらに説明される。
【0037】
URIノードは、クエリノード、分析ノード及びプレビューノードを含むこともある。クエリノードは、データについてウェブサービスをクエリ検索するのに用いることができるクエリURI408を含む。分析ノードは、ウェブサービスをクエリ検索することによって生成されたデータに対して高度なデータ分析を(例えば、スプレッドシートアプリケーションにおいて)行う際に用いることができるURIを含む。プレビューノードはウェブサービスをクエリ検索することによって生成されたデータのプレビューを作成する際に用いることができる結果URI410を含む。特定の実施形態において、結果URIは
図1の結果132及び
図2の結果232に関して説明されたユーザインターフェイスにおいて、結果を表示するのに用いることができる。
【0038】
尚、XMLサービス細目300及びXMLシリーズ細目400はXMLファイルとして
図3及び
図4に示されているが、サービス細目及びシリーズ細目は任意のコンピュータ認識可能言語(例えば、テキストファイル、リッチテキストフォーマット(RTF)またはHTML(hyper text markup language)によって表されてもよい。
【0039】
図5はユーザ入力に基づいてウェブサービスのためのインターフェイスを自動的にリフレッシュする実施形態500を示す図である。
図5に示された実施形態において、ユーザインターフェイス510はユーザインターフェイス520にリフレッシュされる。説明の都合上、ユーザインターフェイス510及び520は
図3及び
図4で説明された米国犯罪統計ウェブサービスへのインターフェイスとして図示されている。
【0040】
ウェブサービスのためのユーザインターフェイスはユーザ入力に応じてリフレッシュされる。例えば、ユーザインターフェイス510における州(State)ドロップダウンメニューでユーザが「Texas」を選択したことを示すユーザ入力502があると、当該ユーザ入力により自動リフレッシュ動作・処理が起動される。自動リフレッシュ動作の結果がユーザインターフェイス520であり、市(City)及び年(Year)のドロップダウンメニューの範囲は、テキサス州に付随するシリーズ細目に基づいて自動的に更新される(符号522)。例えば、
図5に示された実施形態では、当初の市(City)ドロップダウンメニューは米国内の市を範囲未定で(制限無しに)含んでおり、当初の年(Year)ドロップダウンメニューは所定の年(例えば、1990年−2000年)を範囲未定で含んでいる。ユーザ入力502に応じて、市ドロップダウンメニューは自動的に「Abilene(アビリーン)」(例えば、米国犯罪統計局がデータを取り出すことができるテキサス州の市の中、アルファベット順で最初の市)に設定され、年ドロップダウンメニューは自動的に1995(例えば、米国犯罪統計局がテキサス州アビリーン市に関するデータを取り出すことができる最も古い年)に設定される。市ドロップダウンメニューの範囲が設定され(例えば、テキサス州の利用可能な市)、年ドロップダウンメニューの最小値/最大値も設定される(例えば、テキサス州に関連するデータが入手可能になっている最も古い年及び最も新しい年)。
【0041】
尚、
図5に示されているようにウェブサービスのためのユーザインターフェイスを自動的にリフレッシュすると、ウェブサービスクエリ生成のための「アクティブな」インターフェイスが提供される。例えば、ユーザインターフェイスはユーザから受信されたユーザ入力(例えば、ユーザ入力502)に追従してそれを反映するように自動的にリフレッシュされる。
【0042】
図6はウェブサービスのためのインターフェイス600の実施形態を示す図であり、インターフェイスがウェブサービスのクエリの結果のプレビューを表示している。インターフェイス600は、クエリ生成エリア610と結果プレビューエリア620とウェブサービス情報エリア630とを含む。
図6に示された実施形態において、インターフェイス600は国連(UN)の食糧農業機関(FAO)によって提供されるデータへのインターフェイスである。
【0043】
ウェブサービス情報エリア630は、ウェブサービスのタイトル、説明及びロゴを含む。特定の実施形態においては、前記タイトル、説明及びロゴは、
図3のXMLサービス細目300に関連して説明されたウェブサービスのためのサービス細目から取り出される。
【0044】
クエリ生成エリア610はまた、サービス及びシリーズ細目に従う種々の入力パラメータオプション及びクエリ生成オプションを含むこともある。例えば、クエリ生成エリア610はサービスパラメータ611の表示(ディスプレイ)を含む。例えば、サービスパラメータ611は「Series(シリーズ)」、「Country(国)またはArea(エリア)」及び「Year(年)」を含む。
図6に示された実施形態は、農業生産指数(Agri.Prodn.Indx.)シリーズからのユーザ選択を示す。クエリ生成エリア610はまた、ページング情報(例えば、ウェブサービスがページングをサポートしているか否か)の表示も含む。クエリ生成エリア610はさらに、Account Key(アカウントキー)613、SessionID(セッションID)614(例えば、GUID)、REST URI617及びプログラムクラス(例えば、プロキシC#クラス)ダウンロードハイパーリンク616の表示を含む。クエリ作成エリア610はまた、複数の利用可能なデータ交換フォーマット622でクエリをインボークするオプションも含む。例えば、
図6に示された実施形態において、ウェブサービスのクエリはATOM1.0フィードとしてインボークされる。あるいは、ウェブサービスのクエリは任意の他のデータ交換フォーマット(例えば、RAW XMLまたはJSON)でインボークされてもよい。
【0045】
結果プレビューエリア620は、ウェブサービスのクエリをインボークすることによって生成される結果の表示を含むこともある。例えば、
図6に示された実施形態においては、結果プレビューエリア620は農業生産指数からのデータを表示する。結果プレビューエリア620は複数の利用可能なデータ交換フォーマット622で結果を表示する。例えば、
図6に示されている実施形態はテーブル形式のフォーマットで表示された結果を示しているが、当該結果はRAW XMLフォーマット、JSONフォーマット若しくはATOM1.0フォーマットで結果プレビューエリア620に表示されてもよい。ユーザ入力がサービスパラメータ611の値を変えると、結果プレビューエリア620は更新されて、変更後のサービスパラメータ611に基づく新たな結果のプレビューを表示する。
【0046】
図7はウェブサービスのためのインターフェイスを作成し、当該ウェブサービスをクエリ検索するための方法700の実施形態を示すフローチャートである。例示的な実施形態において、この方法700は
図1のシステム100によって実施される。
【0047】
方法700は、ステップ702において、ウェブサービスに関連するユーザインターフェイスを生成することを含む。ユーザインターフェイスは、ウェブサービスに関連する1つ若しくは複数の入力パラメータオプションを含み、XMLサービス細目及び当該XMLサービス細目に関連する1つ以上のXMLシリーズ細目に基づいて生成される。例えば、
図1において、インターフェイスモジュール110はサービス及びウェブサービス140に関連するシリーズ細目112に基づいてユーザインターフェイス114を生成し、ユーザインターフェイス114は入力パラメータオプション116を含む。他の例として、
図6に示されているように、インターフェイス600はサービスパラメータ611を含むように生成される。
【0048】
方法700はまた、ステップ704において、ユーザインターフェイスを介してユーザ入力を受信することを含み、当該ユーザ入力は1つ以上の入力パラメータオプションの中から選択された少なくとも1つの入力パラメータオプションを含む。例えば、
図1において、ユーザ入力104はユーザインターフェイス114を介して受信され、当該ユーザ入力104は入力パラメータオプション116から選択した入力パラメータオプションである。他の例として、
図6に示されているように、農業生産指数が選択される。
【0049】
方法700はさらに、ステップ706において、受信したユーザ入力に基づいてウェブサービスのクエリを作成することを含み、当該クエリは前記少なくとも1つの選択された入力パラメータオプションを反映している。例えば、
図1において、クエリモジュール120はクエリ122を作成する。他の例として、
図6に示されているように、農業生産指数データシリーズのクエリ(例えば、構造化照会言語(SQL)クエリ「select * from AgriProdnIndx」)が作成される。
【0050】
方法700は、ステップ708において、ウェブサービスについて前記作成されたクエリをインボークして結果を受信することを含む。例えば、
図1において、クエリモジュール120はクエリ122をインボークし、結果モジュール130が結果132を受信する。他の例として、
図6に示されているように、農業生産指数のクエリがインボークされ、結果プレビューエリア620に表示された結果が受信される。
【0051】
方法700はまた、ステップ710において、前記受信した結果をユーザインターフェイスに自動的に加えることを含む。例えば、
図1において、結果モジュール130は結果132をユーザインターフェイス114に自動的に加える。他の例として、
図6に示されているように、結果はインターフェイス600の結果プレビューエリア620に表示される。
【0052】
図8はウェブサービスのためのインターフェイスを受信して当該ウェブサービスのクエリを作成する方法800の実施形態を示すフローチャートである。例示的な実施形態にあっては、方法800は
図2のシステム200において実施される。
【0053】
方法800は、ステップ802において、ウェブサーバからウェブサービスに関連するユーザインターフェイスを受信することと、ステップ804において、当該ユーザインターフェイスを表示することを含む。ユーザインターフェイスはウェブサービスに関連する1つ以上の入力パラメータオプションを含み、XMLサービス細目及び当該XMLサービス細目に関連する1つ以上のXMLシリーズ細目に基づいて生成される。例えば、
図2において、ウェブサービス240に関連するユーザインターフェイス214はサーバ260から受信され、ディスプレイデバイス206において表示され、当該ユーザインターフェイス214はシリーズ及びサービス細目212に基づいて生成される。他の例として、
図6に示されているように、XMLサービス及びシリーズ細目に基づいて生成されるインターフェイス600が表示される。
【0054】
方法800はまた、ステップ806において、ユーザインターフェイスでユーザ入力を受信することを含み、ステップ808において、当該ユーザ入力をウェブサーバに送信することを含む。ユーザ入力は前記1つ以上の入力パラメータオプションの中から選択された少なくとも1つの入力パラメータオプションを含む。例えば、
図2において、ユーザ入力204は受信されて、ウェブサーバ260に送信される。他の例として、
図6に示されているように、農業生産指数が選択される。
【0055】
方法800はさらに、ステップ810において、ウェブサーバから修正ユーザインターフェイスを受信することと、当該修正ユーザインターフェイスを表示することを含む。修正ユーザインターフェイスはユーザ入力を反映する。例えば、
図2において、修正ユーザインターフェイス215はウェブサーバ260から受信されてディスプレイデバイス206で表示される。他の例として、
図6に示されているように、農業生産指数の選択は、インターフェイス600における「Series」ドロップダウンメニューによって示される。
【0056】
方法800は、ステップ812において、受信したユーザ入力に基づいてウェブサービスのクエリを作成することを含み、当該クエリは前記少なくとも1つの選択された入力パラメータオプションを反映している。例えば、
図2において、クエリ222が作成される。他の例として、
図6に示されているように、農業生産指数データシリーズのクエリが作成される。
【0057】
方法800はまた、ステップ814において、前記作成されたクエリをウェブサーバに送信することと、当該作成されたクエリのインボークに基づく結果をウェブサーバから受信することを含む。例えば、
図2において、クエリ222がウェブサーバ260に送信され、クエリ222のインボークに基づく結果232がウェブサーバ260から送信される。他の例として、
図6に示されているように、農業生産指数のクエリがインボークされ、結果プレビューエリア620に表示された結果が受信される。
【0058】
前記方法はまた、ステップ816において、前記修正ユーザインターフェイスに前記結果を表示することを含む。例えば、
図2では、結果232はディスプレイデバイス206の修正ユーザインターフェイス215において表示される。他の例として、
図6に示されているように、結果はインターフェイス600の結果プレビューエリア620に表示されてもよい。
【0059】
図9はコンピューティング装置910を含むコンピューティング環境900のブロック図であり、当該コンピューティング環境は、本出願の開示内容に基づくコンピュータ実装方法、コンピュータプログラムプロダクト及びシステムコンポーネントの実施形態をサポートするように動作可能である。例示的な実施形態においてコンピューティング装置910は
図1のモジュール110、120及び130の中の1つ若しくは複数と、
図1のウェブサービス140と、
図2のディスプレイデバイス206とを含む。
図1のモジュール110、120、130、
図1のウェブサービス140、及び
図2のディスプレイデバイス206の各々は、コンピューティング装置910若しくはその一部を含むか、コンピューティング装置910若しくはその一部を使用して実装される。
【0060】
コンピューティング装置910は少なくとも1つのプロセッサ920と1つのシステムメモリ930とを含む。コンピューティング装置の構成及びタイプによっては、システムメモリ930は揮発性(例えば、RAM(ランダムアクセスメモリ))でもよく、不揮発性(例えば、ROM(リードオンリーメモリ)、フラッシュメモリ、及びこれらと同様に電源が供給されなくても記憶データを維持するメモリデバイス)でもよく、または揮発性と不揮発性の組み合わせでもよい。システムメモリ930は典型的には、1つのオペレーティングシステム932と、1つ以上のアプリケーションプラットフォーム934と、1つ以上のアプリケーション936とを含み、前記1つ以上のアプリケーションに関連するプログラムデータ938も含む場合がある。
【0061】
コンピューティング装置910はまた、追加の特徴若しくは機能を有してもよい。例えば、コンピューティング装置910は取り外し可能なデータストレージデバイス及び/または取り外し不可能なデータストレージデバイス(例えば、磁気ディクス、光学ディクス、テープ及び標準サイズの若しくは小型のフラッシュメモリカード)をさらに含んでもよい。このような追加のストレージデバイスは
図9において、取り外し可能ストレージ940及び取り外し不可能ストレージ950として示されている。コンピュータ記憶媒体は揮発性記憶媒体及び/または不揮発性記憶媒体を含むと共に取り外し可能媒体及び/または取り外し不可能媒体を含む。これら媒体は、コンピュータ可読命令、データ構造、プログラムコンポーネントまたは他のデータ等の情報記憶のための手段・技術に実装される。システムメモリ930、取り外し可能ストレージ940及び取り外し不可能ストレージ950は全てコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM(electrically erasable programmable read−only memory)、フラッシュメモリその他のメモリ手段・装置、コンパクトディクス(CD)、DVD(digital versatile disk)その他の光学ストレージ、磁気カセット、磁気テープ、磁気ディクスストレージその他の磁気記憶手段・装置、または情報を記憶するのに使用することができ且つコンピューティング装置910によってアクセス可能な他の任意の媒体を含む(これらに限定されるわけではないが)。このようなコンピュータ記憶媒体はコンピューティング装置910の一部であってもよい。コンピューティング装置910はまた、入力デバイス(単数または複数)960を有してもよい(例えば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス等)。ディスプレイ、スピーカ、プリンタ等の出力デバイス(単数または複数)970も含まれてもよい。ユーザ902は前記入力デバイス(単数または複数)960及び出力デバイス(単数または複数)970を介してコンピューティング装置910とインタラクトすることができる場合もある。
【0062】
コンピューティング装置910はまた、1つ以上の通信接続部980を含んでもよく、当該通信接続部によってコンピューティング装置910は他のコンピューティング装置(例えば、ウェブサーバ990及びデータベース992)と有線ネットワーク若しくは無線ネットワークを介して通信することができる。例示的な実施形態において、ウェブサーバ990は
図1のウェブサーバ260であり、データベース992は
図1のデータベース150若しくは
図2のデータベース250である。
【0063】
尚、本明細書に説明された実施形態をサポートするのに、
図9に示されているか上記段落において説明されたコンポーネント若しくはデバイスの全てが必要というわけではない。例えば、取り外し可能ストレージ940は必須ではない。
【0064】
本明細書において説明された実施形態の記載は、種々の実施形態の構造・構成の全般的な理解を提供しようとするものである。上記記載は本明細書に説明された構造・構成若しくは方法を使用する装置及びシステムの要素及び特徴の全てを説明するものではない。本出願の開示内容を見たならば、当業者には多くの他の実施形態が明らかになるであろう。本出願の開示内容の範囲から離れることなく構造的な置換や変更並びに論理的な置換や変更を加えた他の実施形態も使用することができるであろうし、本出願の開示内容から、そのような実施形態を導き出すことができるであろう。よって、本出願の開示内容及び図面は、制限的な意味を持たず例示的な意味を持つものであると理解されるべきである。
【0065】
当業者であれば更に、本明細書に記載された実施形態との関連で説明された種々の例示的な論理ブロック、構成、モジュール及び方法ステップ若しくは命令は電子ハードウエア、コンピュータソフトウエア若しくはハードウエアとソフトウエアの組み合わせとして実装可能であることが理解できるであろう。種々の例示的なコンポーネント、ブロック、構成、モジュール若しくはステップは概してそれらの機能の視点から説明されている。そのような機能がハードウエアで実装されるかソフトウエアで実装されるかは、システム全体に与えられる(課される)アプリケーション及び設計制限・条件によって決まる。当業者であれば、それぞれのアプリケーションに合うように、本明細書に記載された機能を種々の異なった形・方式で実施・実装するであろうが、そのような実施・実装の決定・採用は本明細書の開示内容から離れたものであると解釈されるべきではない。
【0066】
本明細書に開示された実施形態との関連で記載された方法のステップは、ハードウエア、プロセッサにより実行されるソフトウエアモジュール、またはこれらの組み合わせにおいて直接具現化することができる。ソフトウエアモジュールはコンピュータ可読媒体内に存在してもよい。コンピュータ可読媒体は例えば、RAM、フラッシュメモリ、ROM、レジスタ、ハードディクス、取り外し可能ディクス、CD−ROM、または当該技術分野において公知のその他の記憶媒体である。典型的な記憶媒体はプロセッサに接続され、当該プロセッサは当該記憶媒体から情報を読み出すこと及び当該記憶媒体に情報を書き込むことができる。代替実施形態において、前記記憶媒体はプロセッサに一体化されるか、プロセッサ及び記憶媒体がコンピューティング装置若しくはコンピュータシステム内のディスクリートコンポーネント(個別・離散コンポーネント)として存在する。
【0067】
本明細書において特定の実施形態が図示されて説明されてきたが、同じ目的若しくは同様な目的を達成するように構成された今後の装置・構成・方法が上記の図示実施形態の代替として用いられることもあるだろう。本出願の開示内容は、いかなる代替または実施形態の変更も全て包含するものである。
【0068】
要約書は、特許請求の範囲の意味若しくは範囲を解釈若しくは限定するために用いられないという理解の下に提供されている。また、上記の「発明を実施するための形態」において、効率的な開示をするという目的のために、種々の特徴がまとめて記載されていたり、1つの実施形態の中に説明されているかもしれない。このような開示は、クレームアップされた実施形態が各請求項に明記された特徴・構成(発明特定事項)より多くの特徴・構成を必要とするという意図を反映するとして解釈されるべきではない。即ち、特許請求の範囲に記載されているように、発明の主題は開示された各実施形態の全特徴・全構成よりも少ない特徴・構成に係る場合もある。
【0069】
実施形態の上記説明は、当業者が当該実施形態を実施(製造または使用)できるようにするために提供されている。これら実施形態に対する種々の変更・修正は当業者には容易に考えつくであろうし、本明細書に記載された包括的な原理(技術思想)は、本出願の開示範囲から離れることなく他の実施形態に適用可能である。従って、本出願の開示内容は図示された実施形態に限定されるという意図はなく、特許請求の範囲に記載された技術思想及び新規な特徴に合致する最も広い範囲を包含するものである。