JP2009540462A - コンパイルスコープを用いたサービスの発見 - Google Patents
コンパイルスコープを用いたサービスの発見 Download PDFInfo
- Publication number
- JP2009540462A JP2009540462A JP2009515394A JP2009515394A JP2009540462A JP 2009540462 A JP2009540462 A JP 2009540462A JP 2009515394 A JP2009515394 A JP 2009515394A JP 2009515394 A JP2009515394 A JP 2009515394A JP 2009540462 A JP2009540462 A JP 2009540462A
- Authority
- JP
- Japan
- Prior art keywords
- scope
- service
- query
- computing system
- compilation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
相互通信可能な複数のコンピューティングシステムを取り込むコンピューティング環境において、コンピューティングシステムは、他のコンピューティングシステムにより提供されるサービスの発見を支援する。例えば、発見すべきサービスのスコープを表す問合せを受信すると、その問合せにおいて表されるスコープをコンパイルスコープ情報と比較することができる。そのコンパイルスコープの各々のスコープは、様々なマッチング規則を用いてコンパイルされる。次いでサービスのプロバイダを、その比較に基づいて発見することができる。さらに、サービスプロバイダを特定することができる。
Description
現代社会において、通信装置の使用が増えている。これらの装置が急速に採用されたことにより、円滑な相互運用性が要求されている。多数の企業が通信装置を製造し、それらの装置の多くは独自の通信規則集合を有している。これらの装置の利用者は、接続された装置により提供されるサービスに効率的にアクセスするために、装置間の相互運用性と装置で実行されるアプリケーション間の相互運用性との両方を要求する。
例えば、或るサービスカテゴリは、本件特許出願人、IBM、および他社が共同で開発したウェブサービスプロトコルに準拠することができるが、それに加えて、またはその代わりとして、装置はウェブサービスプロトコルに準拠しないサービスを提供してもよい。ウェブサービスはアプリケーションを統合する標準的な方法である。標準的なXML文書をSOAP(Simple Object Access Protocol)メッセージおよびWSDL(Web Services Description Language)記述で使用して、統合されているアプリケーションを広く知らなくてもアプリケーションを統合することができる。また、ウェブサービスを使用して装置間の通信を可能にできる。ウェブサービスを様々な種類の装置上で実装することができ、「WS−Discovery」プロトコルを用いて発見することができる。
一般に、ウェブサービスプロトコルを実装する場合、クライアントはWS−Discoveryプロトコルを用いてマルチキャストメッセージを送信して所望のウェブサービスを発見することになる。マルチキャストメッセージには、所望のウェブサービスを特定するために使用する「スコープ」が含まれる。例えば、ユーザがビルの10階にいて10階にあるカラープリンタを用いて文書を印刷したい場合は、この場合においては、スコープはビルの階数と、カラー印刷である所望のプリンタ機能とを含むであろう。別の例として、ユーザが、555−8000から555−8010までの電話番号を有するウェブ可能な携帯電話と通信したい場合は、スコープはウェブ可能であり且つその電話番号の範囲内にあった携帯電話のみを含むであろう。
マルチキャストメッセージを受信する夫々の装置は、次いで、与えられたスコープを用いて適切な処理を実施し、その装置が所望のウェブサービスを含むかどうかを決定することができる。その処理を実施した後、装置はマルチキャストメッセージに応答し、それにより、要求をしているクライアントは、スコープにより特定される要求サービスを提供可能な装置を特定することができる。
これらのマルチキャストメッセージと、それにより生成される多数の応答は、大量のネットワークトラフィックと輻輳の原因となる。さらに、サービスを提供する装置に計算能力が殆ど無く、多数のマルチキャスト要求の処理に不適当であることがよくある。
本明細書で主張する主題は、欠点を解決するか、または上述したような環境でのみ動作する実施形態に限定されない。むしろ、この背景技術は、本明細書で説明する幾つかの実施形態を実践できる1つの例示的な技術を例示するために与えたに過ぎない。
本発明の一実施形態では、ユーザはサービスを提供するネットワークまたはシステムに大きな負荷を必ずしもかけることなく、サービスを発見することができる。例えば、ユーザは1つまたは複数の検索基準を入力することができ、その後、ユーザのコンピュータシステムは1つまたは複数のマッチング規則を用いてスコープをコンパイルすることができる。このコンパイルスコープを使用することによりサービスを特定することができる。ユーザは、コンパイルスコープを含む問合せを送信し、その問合せは、サービスを提供するコンピュータシステムにより受信される。一事例では、コンパイルスコープによりコンピュータシステムは、システムが所望のサービスを提供するかどうかを決定するために、複雑なアルゴリズムを処理する必要はなく、代わりに単純な文字列マッチを実施することができる。
別の実施形態では、ユーザは問合せをプロキシに送信することで、ネットワークにマルチキャストメッセージを大量送信することを回避することができる。そのプロキシは、その問合せを一連のプレコンパイルスコープと比較する。その問合せを比較した後、プロキシはメッセージを、所望のサービスを提供するシステムのリストとともにユーザに返す。このように、リソースへの負荷が減少することにより、ネットワークの帯域幅とコンピュータシステムの処理能力とが恩恵を受けることができる。
本要約は選択した概念を簡潔な形で導入するために与える。その概念を以下の「発明を実施するための最良の形態」でさらに詳細に説明する。本要約は請求項主題の主要な特徴または本質的な特徴を特定するようには意図しておらず、請求項主題の範囲を決定する際の補助として使用するようにも意図していない。
上述した利点および特徴ならびに他の利点および特徴を得ることができる方法を説明するため、簡潔に上述した主題のより具体的な説明を、添付図面に示す具体的な実施形態を参照して与える。これらの図面は典型的な実施形態を示すに過ぎず、従って範囲を限定するように考えるべきではないことを理解して、添付図面を用いて実施形態をさらに具体的且つ詳細に記述および説明することとする。
本発明の実施形態は、コンピューティングシステム内のサービスを特定および発見するためのスコープをコンパイルすることに及ぶ。本明細書の実施形態には、以下でさらに詳細に議論するように、様々なコンピュータハードウェアを含む専用または汎用コンピュータを含めることができる。図1は、本発明の特徴を実装するために使用できるコンピューティングシステムの例100の概略図を示す。説明するコンピューティングシステムはこのような適切なコンピューティングシステムの1例に過ぎず、本発明の使用範囲または機能範囲に関する限定を示唆するようには意図していない。また、本発明が、図1に示す構成要素の任意の1つまたは組合せに関する依存性または要件を有するとして解釈すべきでもない。
コンピューティングシステムは、今や益々多様な形態を取っている。例えば、コンピューティングシステムは、ハンドヘルド装置、機器、ラップトップコンピュータ、デスクトップコンピュータ、メインフレーム、分散コンピューティングシステム、あるいは従来はコンピューティングシステムとは考えられていなかった装置またはシステムが可能となってきている。この説明および請求項では、用語「コンピューティングシステム」は、少なくとも1つのプロセッサと、そのプロセッサにより実行可能なコンピュータ実行可能命令を有することができるメモリとを含む任意の装置またはシステム(またはそれらの組合せ)を含むとして広範囲に定義する。メモリは任意の形態を取ることができ、コンピューティングシステムの性質と形態に依存することができる。コンピューティングシステムはネットワーク環境上で分散してもよく、複数の構成コンピューティングシステムを含んでもよい。
図1を参照する。その最も基本的な構成では、コンピューティングシステム100は一般に少なくとも1つの演算装置102とメモリ104とを含む。メモリ104はシステムメモリで可能で、揮発性、不揮発性、またはその2つの何らかの組合せで可能である。揮発性メモリの例にはRAM(Random Access Memory)が含まれる。不揮発性メモリの例にはROM(Read Only Memory)、フラッシュメモリ、等が含まれる。本明細書では用語「メモリ」を、物理記憶装置のような不揮発性の大容量記憶を指すように使用することもできる。上記記憶装置は取り外し可能または取り外し不可能でも可能であり、PCMCIAカード、磁気および光ディスク、磁気テープ、等を含むことができる(がこれらに限らない)。
本明細書で使用するとき、用語「モジュール」または「コンポーネント」は、コンピューティングシステム上で実行されるソフトウェアオブジェクトまたはルーチンを指すことができる。本明細書で説明する別のコンポーネント、モジュール、エンジン、およびサービスを、コンピューティングシステム上で(例えば、別々のスレッドとして)実行されるオブジェクトまたはプロセスとして実装することができる。本明細書で説明するシステムおよび方法をソフトウェアで実装することができる一方、ハードウェアでの実装、ソフトウェアとハードウェアの組合せでの実装も可能であり考慮されている。
以下の説明では、本発明の実施形態を、1つまたは複数のコンピューティングシステムにより実施される動作を参照して説明する。その動作をソフトウェアで実現する場合、その動作を実施する関連コンピューティングシステムの1つまたは複数のプロセッサにより、コンピューティングシステムの動作をコンピュータ実行可能命令の実行結果に応じて方向付ける。上記動作の例にはデータの操作が含まれる。コンピュータ実行可能命令(および操作されるデータ)をコンピューティングシステム100のメモリ104に記憶または含めることができる。
コンピューティングシステム100は通信チャネル108を含むこともできる。通信チャネル108により、コンピューティングシステム100は他のコンピューティングシステムと、例えば、ネットワーク110上で通信することができる。通信チャネル108は通信媒体の例である。通信媒体は一般にコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の伝送媒体のような変調データ信号で具現化し、任意の情報配信媒体を含む。限定ではなく例として、通信媒体には、有線ネットワークおよび直接配線接続のような有線媒体、ならびに音響、ラジオ、赤外線、および他の無線媒体のような無線媒体が含まれる。
本発明の範囲内にある実施形態には、記憶したコンピュータ実行可能命令またはデータ構造を伝送または有するコンピュータ可読媒体も含まれる。上記コンピュータ可読媒体は、汎用または専用コンピュータによりアクセスできる任意の利用可能な媒体となりえる。限定ではなく例として、上記コンピュータ可読媒体は物理記憶装置および/またはメモリ媒体を備えることができる。その物理記憶および/またはメモリ媒体には、例えば、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶装置、あるいはコンピュータ実行可能命令またはデータ構造の形で所望のプログラムコード手段を保持または記憶するために使用でき、汎用または専用コンピュータによりアクセス可能な任意の他の媒体がある。情報をネットワークまたは別の通信接続(ハードワイヤード、無線、あるいはハードワイヤードまたは無線の組合せの何れか)上で送信または提供すると、コンピュータはその接続を正しくコンピュータ可読媒体として見なす。従って、任意の上記接続を正しくコンピュータ可読媒体と称する。上の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理装置に或る特定の機能または機能グループを実施させる命令およびデータを備える。本主題を構造的特徴および/または方法論的動作に固有の言葉で説明してあるが、添付請求項で定義した主題は必ずしも本明細書で説明する特定の特徴または動作に限定されないことは理解されるべきである。むしろ、本明細書で説明する特定の特徴および動作は、請求項を実現する形態の例として開示してある。
図2は、本発明の原理を使用可能な環境200を示す。環境200は1つまたは複数のサービスコンシューマコンピューティングシステム210と、1つまたは複数のサービスブローカコンピューティングシステム220とを含む。サービス251〜255は、三角形251、平行四辺形252、円253、台形254、または六角形255を含む様々な形状で表してある。夫々の形状タイプは異なる種類のサービスに対応することができる。例えば、ウェブサービスを台形254で示すことができる。同種のサービスの複数のインスタンスがある場合、別々のサービスのインスタンスに対し、例えば、253A、253B、253C、等のように、上で示した適切な数字に文字を続けてラベル付けする。
サービスはコンピュータコードまたはソフトウェアアプリケーション、または幾つかの所望の機能に対するアクセスを提供する他の手段で可能である。例えば、プリンタは印刷サービスを提供することができる。VPN(Virtual Private Network)サーバはVPNサービスを提供することができる。ウェブサービスは一種のサービスであり、コンピューティングシステムが例えばSOAP(Simple Object Access Protocol)メッセージを用いて相互通信することを可能とする。ウェブサービスは、さらに、XML(Extensible Markup Language)およびWSDL(Web Services Description Language)記述の機能を与えることで、アプリケーションの統合を促進する。サービス251〜255のうち任意のものはウェブサービスまたは他種のサービスが可能である。
サービスコンシューマコンピューティングシステム210のうち任意のものは、サービスを使用するか、または使用サービスを探しているコンピューティングシステムが可能である。サービスブローカコンピューティングシステム220のうち任意のものは、サービスを直接提供するか、または別のサービスプロバイダ230へのリンクを提供するかの何れかであるコンピューティングシステムが可能である。コンピューティングシステム210および220はコンピューティングネットワーク240を介して相互通信することができる。コンピューティングネットワーク240は有線または無線ネットワークが可能である。
コンピューティング環境200において、複数のサービスコンシューマコンピューティングシステム211〜214が存在することができる。例えば、図2では、サービスコンシューマコンピューティングシステム210を、3つのサービスコンシューマコンピューティングシステム211、212および213を含むとして示してある。しかしながら、縦方向の楕円214は、サービスコンシューマコンピューティングシステム210が図示した3つのサービスコンシューマコンピューティングシステムよりさらに多くのものを含みうることを表し、ここでは本発明の原理に影響を及ぼさずに、唯一または恐らく2つのサービスコンシューマコンピューティングシステムが存在しうることを表すためにも用いられる。
同様に、複数のサービスブローカコンピューティングシステム221〜224が環境200内に存在することもできる。例えば、図2では、サービスブローカコンピューティングシステム220を、3つのサービスコンシューマコンピューティングシステム221、222および223を含むとして示してある。しかしながら、縦方向の楕円224は、サービスブローカコンピューティングシステム210が図示した3つのサービスブローカコンピューティングシステムよりさらに多くを含みうることを表し、ここでは本発明の原理に影響を及ぼさずに唯一または恐らく2つのサービスブローカコンピューティングシステムが存在しうることを表すためにも用いられる。
夫々のサービスコンシューマコンピューティングシステム211〜214は任意のサービスブローカコンピューティングシステム221〜224と通信することができ、次に、サービスブローカコンピューティングシステム221〜224のうち任意のものにより接続した任意のサービスプロバイダ230と通信することができる。コンピューティング環境200では、サービスブローカコンピューティングシステム221はサービスを直接提供することはせず、3つのサービスプロバイダ231、232、および233に接続される。サービスプロバイダ231、232、および233は、夫々、サービス253B、252A、ならびに253Aおよび251Bを提供する。サービスブローカコンピューティングシステム222はサービス253Cおよび251Aを直接提供するが、どのサービスプロバイダ230にも接続されない。サービスブローカコンピューティングシステム223は3つのサービス253E、255、および252Bを直接提供し、夫々サービス253Dおよび254を提供する他のサービスプロバイダ234および235に接続される。サービスブローカコンピューティングシステムは任意数のサービスまたはリンクをサービスプロバイダ230に直接提供することができる。
図3は、1つまたは複数のサービスブローカコンピューティングシステム220またはサービスプロバイダ230により提供されるサービスの発見をサービスコンシューマコンピューティングシステム210が支援する方法300のフローチャートを示す。方法300を図2の環境200のコンテキストで実施できるので、図2を頻繁に参照して図3の方法300を説明することとする。サービスコンシューマコンピューティングシステムにより実施されるかまたは実施できる動作を、図3の左の列で「サービスコンシューマコンビューティングシステム−210」の見出しの下に示す。サービスブローカコンピューティングシステムにより実施されるかまたは実施できる動作を、図3の右の列で「サービスブローカコンピューティングシステム(群)−220」の見出しの下に示す。
方法300は、発見すべきサービスのスコープを表す問合せの生成動作(動作311)を含む。スコープは項目をコンテキストに応じて識別したものであり、例えば、サービスのロケーションの識別子である。例えば、ユーザがビルの4階にあるカラー印刷のようなサービスを要求する場合、スコープは要求したカラー印刷サービス、および要求したロケーション、即ち4階を含むであろう。この例を続けると、そのスコープ(カラー印刷サービス、4階)を表す問合せが生成されるであろう(動作311)。その間合せはスコープのテキスト表現を含むことができ、および/あるいはユーザが入力した検索基準または恐らく単純な通知メッセージを含むことができる。ユーザが入力した検索基準は、例えば、所望のサービスに関する一般情報を含むことができる。
例えば、ユーザが4階にある全てのスキャナまたはファクシミリ機を探したい場合、検索基準は4階にあるスキャナおよびファクシミリ機を含むであろう。検索基準を使用してスコープを生成することができる。幾つかの実施形態では、スコープはURI(Uniform Resource Identifier)である。スコープの生成方法に関わらず、スコープをマッチング規則でコンパイルして、コンパイルスコープを生成することができる(動作331)。動作331は、図4のデータ構造とフロー400(以降、「データフロー400」と称する)で示す複数のステップを含むことができる。
図4のデータフローは、動作311により特定したようにコンパイルスコープを生成する動作(図3を参照)を示す。スコープ410をマッチング規則430でコンパイル(動作420を参照)して結果のコンパイルスコープ情報440を生成することができる。この説明および請求項では、マッチング規則430を、環境200内のサービスを分類および/または発見するためのメカニズムとして定義する。
一実施形態では、例えば、4階のカラープリンタに対するLDAP(Lightweight Directory Access Protocol)のスコープ(例えば、「ldap:///pf=4thfloor,pt=color」)をLDAP431のマッチング規則でコンパイルすることができる。その場合、「ldapmatch::ldap:///pf=4thfloor,pt=color」というコンパイルスコープ情報が生ずるであろう。ここで、「pf」は適切なLDAPスキーマ内で「プリンタ階」を意味すると知られており、「pt」は「プリンタタイプ」を意味するとして知られる。
図4を再度参照する。別のマッチング規則はSTRCMP0(文字列比較)432のマッチング規則を含むことができ、この規則によりスコープを用いてテキスト文字列を生成する。例えば、4階にある同じカラープリンタのスコープ(例えば、「urn:4thfloor.printers.colorprinters」は、文字列比較を用いてコンパイルすると「strcmp0match::urn:4thfloor.printers.colorprinters」となるであろう。
URI(Uniform Resource Identifier)433のマッチング規則を使用することもできる。URIマッチング規則はスコープをURL(Uniform Resource Locator)のようなURIの形で定式化する。4階のカラープリンタの例に対する結果のコンパイルスコープ情報は、URI433のマッチング規則を用いてコンパイルすると、「rfc2936match::http://www.domain.com/4thfloor/printers/color」のように表すことができる。
UUID(Universally Unique Identifier)434のマッチング規則を使用することもでき、その規則によりスコープは単純な一意な識別子として表される。例えば、4階のカラープリンタのスコープを単純に識別子「500f0400−e31aー11d4−a716−450010020300」により表すことができる。ここで、識別子の一部をスコープの特定の態様に相互に関連付けることができる(またはできない)。コンパイルスコープを「uuidmatch::500f0400−e31a―11d4−a716−450010020300」のように表すことができる。
幾つかの実施形態では、スコープを、全てには満たない種類のマッチング規則および場合によっては(例えば、互換性のため)1種類のマッチング規則でコンパイルする。従って、スコープ410を1つまたは複数のマッチング規則430でコンパイル420することができ、および/または図4には示していない他のマッチング規則でコンパイルすることができる。例えば、LDAPスコープをUUID規則ではなくLDAP規則でコンパイルできる。さらに、他の実施形態では、コンパイルスコープ情報は、コンピューティングシステム環境200内で利用可能な全てのサービスのコンパイルスコープを含むことができる(図2を参照)。
図3を参照する。サービスコンシューマコンピューティングシステム210はスコープを用いて問合せを生成する(動作311)。スコープを用いて問合せを生成すること(動作311)は、単純にスコープを含む問合せを生成することを含むことができ、その後、問合せをサービスブローカコンピューティングシステムに送信することができる。あるいは、サービスコンシューマコンピューティングシステム210はさらなるオプションステップを実施して、動作331および332を含む問合せを生成することができる。図3では、点線を用いてオプションステップを表してある。もしあれば、サービスコンシューマコンピューティングシステム210が実施する追加ステップに依存して、サービスブローカコンピューティングシステムは問合せおよびスコープを評価するときにオプションステップを完了することができる(動作321)。
一実施形態では、例えば、サービスコンシューマコンピューティングシステム210がスコープを用いて問合せを生成するとき(動作311)、サービスコンシューマコンピューティングシステム210はスコープを用いて問合せを生成する際に追加のステップを任意に実施することができる。サービスコンシューマコンピューティングシステム210は、コンパイルスコープを生成する追加のオプションステップ(動作331)またはスコープをコンパイルスコープ情報と比較する追加のオプションステップ(動作332)の両方を実施できるか、またはどちらも実施できないかの何れかである。
例えば、サービスコンシューマコンピューティングシステム210は、単純にスコープを含む問合せを生成することにより、スコープを用いた問合せを生成でき、その問合せを送信することができる(動作311)。あるいは、サービスコンシューマコンピューティングシステム210は、代わりにコンパイルスコープを生成し(動作331)、次いで問合せをコンパイルスコープとともに送信することができる。あるいは、サービスコンシューマコンピューティングシステムは、コンパイルスコープを生成するオプションステップ(動作331)とスコープをコンパイルスコープ情報と比較するオプションステップ(動作332)との両方を実施し、次いでその問合せを動作332の比較結果とともに送信するオプションステップを実施することができる。
図3を参照してこの例を続けると、サービスブローカコンピューティングシステム220は、問合せおよびスコープを評価する(動作321)際に、問合せで受信した情報に依存して以下のうち任意のものを実施することができる。即ち、1)問合せがスコープを含む場合、サービスブローカコンピューティングシステム220はコンパイルスコープを生成するオプションステップ(動作331)とスコープをコンパイルスコープ情報と比較するオプションステップ(動作332)とを実施することができる。2)問合せがコンパイルスコープを含む場合、サービスブローカコンピューティングシステム220は動作331(コンパイルスコープの生成)を省略して、スコープをコンパイルスコープ情報と比較するオプションステップを実施することができる。または3)スコープをコンパイルスコープ情報と比較した結果を問合せが含む場合、サービスブローカコンピューティングシステム220は単純に問合せとスコープを評価(動作321)することができ、オプションステップ331または332を実施しなくともよい。
サービスを特定する動作(動作322)は、スコープのコンパイルスコープ情報に対する比較に基づいてサービスを特定すること(動作332)を含むことができる。コンパイルスコープ情報440(図4を参照)は、1つまたは複数のマッチング規則430を用いてコンパイルした、1つまたは複数のコンパイルスコープの組合せで可能である。一実施形態では、コンパイルスコープ情報440を1つまたは複数のテキスト文字列として配置することができる。上記の実施形態では、サービスブローカコンピューティングシステム220は、単純にテキスト文字列をマッチすることで所望のサービスを特定することができる。これにより、サービスブローカコンピューティングシステムの処理能力220に対する潜在的な負荷を幾らか軽減させることができる。サービスブローカコンピューティングシステム220が複雑な処理(例えば、携帯電話、プリンタ、ファクシミリ機、等)の実施に不適当であることがよくある。テキスト文字列マッチが必要とする処理能力はマッチング規則によるスコープのコンパイルより大幅に少ないので、多数のサービスブローカコンピューティングシステム220は恩恵を受けるであろう。
問合せに応答する動作(動作323)は、1つあるいは複数のサービスおよび/またはサービスプロバイダ230のロケーションを送信することを含むことができる。問合せへの応答を受信した(動作312)後、サービスコンシューマコンピューティングシステム210は、次いでその応答からの識別情報にアクセスしてその情報を抽出することができる(動作313)。サービスコンシューマコンピューティングシステム210は、次いで、抽出した識別情報を用いてサービスを発見することができる(動作314)。識別情報には、IP(Internet Protocol)アドレス、MAC(Media Access Contorol)アドレス、UUID、ドメイン名、電話番号、シリアル番号、スコープ、コンパイルスコープ、あるいはサービスまたはサービスプロバイダを特定する任意の他の手段を含めることができるがこれらに限らない。何らかの理由でサービスブローカコンピューティングシステム210が所望のサービスを発見できなかった場合、所望のサービスが発見されなかったことを問合せへの応答で示すことができる。
図5は、本発明の原理を使用できる環境500を示す。環境500は1つまたは複数のサービスコンシューマコンピューティングシステム210、プロキシコンピューティングシステム510、および他のサービスプロバイダ230に接続できる1つまたは複数のサービスブローカコンピューティングシステム220を含む。環境500は図2と十分に類似しているので、図2を頻繁に参照して図5の環境500を説明することとする。
一実施形態では、環境500は、サービスコンシューマコンピューティングシステム210とサービスブローカコンピューティングシステム220の間の中継として動作するプロキシコンピューティングシステムを使用する。プロキシコンピューティングシステム510は、問合せと、その問合せに含まれるプロセス情報とを受信し、問合せを送信するよう少なくとも構成されるコンピューティングシステムである。一実施形態では、サービスコンシューマコンピューティングシステム210は、問合せをプロキシコンピューティングシステム510に送信する。プロキシコンピューティングシステム510はその問合せ内の情報に従ってその問合せを処理し、別の問合せをサービスブローカコンピューティングシステム220に送信する。
図6は、サービスコンシューマコンピューティングシステム210およびプロキシコンピューティングシステム510が、1つまたは複数のサービスブローカコンピューティングシステム220またはサービスプロバイダ230により提供されるサービスの発見を支援する方法600のフローチャートを示す。方法600を図2の環境200および図5の環境500のコンテキストで実施できるので、図6の方法600を図2および図5を頻繁に参照して説明することとする。サービスコンシューマコンピューティングシステムにより実施されるかまたは実施できる動作を、図6の左の列で「サービスコンシューマコンビューティングシステム(群)−210」の見出しの下に示す。プロキシコンピューティングシステムにより実施されるか、または実施できる動作を、図6の中央の列で「プロキシコンピューティングシステム−510」の見出しの下に示す。サービスブローカコンピューティングシステムにより実施されるかまたは実施できる動作を、図6の右の列で「サービスプロ−カコンピューティングシステム(群)−220」の見出しの下に示す。
一実施形態では、方法600はサービスコンシューマコンピューティングシステム210、プロキシコンピューティングシステム510およびサービスブローカコンピューティングシステム220を使用して、所望のサービスを発見する。関与する方法およびステップは、図3の方法300で概説したものと十分に類似している。方法300でのように、オプションステップを点線で示してある。サービスコンシューマコンピューティングシステム210、プロキシコンピューティングシステム510、およびサービスブローカコンピューティングシステム220の各々は、両方のオプションステップを実施できるか、またはどちらのオプションステップも実施できないかの何れかである。同様に、方法300の一実施形態でのように、オプションステップ(動作331および動作332)を問合せの受信前に実施した場合は、それらのオプションステップを省略してもよい。
例えば、サービスコンシューマコンピューティングシステム210がスコープで問合せを生成する場合、その問合せを送信する前に、サービスコンシューマコンピューティングシステム210は、追加のオプションステップ(動作331および動作332)の両方を実施できるか、またはどちらも実施できないかの何れかである。サービスコンシューマコンピューティングシステム210が動作331を実施する場合、サービスコンシューマコンピューティングシステムは、次いでその問合せをコンパイルスコープとともに送信することができる。あるいは、サービスコンシューマコンピューティングシステム210が両方のオプションステップを実施する場合、サービスコンシューマコンピューティングシステム210は動作332からの比較結果とともにその問合せを送信できる。あるいは、サービスコンシューマコンピューティングシステム210がどちらのオプションステップも実施しない場合、サービスコンシューマコンピューティングシステム210は、単純にその問合せをプロキシコンピューティングシステム510に送信することができる。
次に、プロキシコンピューティングシステム510は、両方の追加のオプションステップ(動作331および動作332)を任意に実施して、そのオプションステップの結果に基づいて問合せを送信することができる。あるいは、プロキシコンピューティングシステム510は、どの追加のステップが既に実施されたとその問合せが示すかに依存して、追加のオプションステップの何れかを実施できるか、またはそのどちらも実施することができない。プロキシコンピューティングシステム510は、次いで別の問合せをサービスブローカコンピューティングシステム220に送信することができる。
サービスブローカコンピューティングシステム220は次いでプロキシコンピューティングシステム510からの問合せを評価できる。プロキシコンピューティングシステム510からの問合せを評価する間に、サービスブローカコンピューティングシステム220は、プロキシコンピューティングシステム510からのどの問合せが既に実施されたと示されるかに依存して、追加のオプションステップ(動作331および動作332)の両方を実施できるか、またはそのどちらも実施できないかの何れかである。
方法300でのように、スコープはプレコンパイルスコープが可能であり、この場合、プレコンパイルスコープは1つまたは複数の様々なマッチング規則で生成されたか、あるいは、スコープはユーザが入力した検索基準の可能性がある。問合せをサービスブローカコンピューティングシステム220の全てではなく、プロキシコンピューティングシステム510に送信することで、ネットワーク240上のトラフィックを大幅に削減することができる。
プロキシコンピューティングシステム510からの問合せを評価(動作321)した後、サービスブローカコンピューティングシステム220はサービスのロケーションを特定することができる(動作322)。サービスブローカコンピューティングシステム220は次いで問合せへの応答を送信することができ(動作323)、その応答はサービスコンシューマコンピューティングシステム210により受信され(動作312)、その後、サービスコンシューマコンピューティングシステム210はその応答から識別子を抽出し(動作313)、その識別子を使用してサービスを発見する(動作314)。
幾つかの実施形態では、スコープを検索基準にコンパイルして問合せに含めることができる。サービスブローカコンピューティングシステム220は、そのコンパイルスコープを使用して、それをサービスブローカコンピューティングシステム220のコンパイルスコープと比較して可能なマッチを特定することができる。サポートされない、または互換性のないコンパイルスコープは無視することができる。コンパイルスコープに対するスコープ情報を、様々な方法があれば多様に表現することができる。幾つかの実施形態では、コンパイルスコープに対するスコープ情報を、XMLスキーマに従って定義したXML命令で表す。以下の命令は、コンパイルスコープに対するスコープ情報を表すために用いる、XMLスキーマで定義したデータフォーマットの例を表す。
次の命令は、XMLスキーマに従って定義したコンパイルスコープに対するスコープ情報を含む、SOAPメッセージを表す。
これらの例で、
/s:Envelope/s:Body/d:Probe/x:CompiledScopesは、/s:Envelope/s:Body/d:Probe/d:Scopes/@MatchByにより指定したマッチングアルゴリズムに対する、/s:Envelope/s:Body/d:Probe/d:Scopes/による要求内で指定したスコープの各々から成るコンパイルスコープのリストである。
コンパイルスコープのリストは、サービスのコンパイルスコープとマッチできる文字列のリストである。サービスは、Probe内のコンパイルスコープがサービスのコンパイルスコープとマッチするときに応答することができる。
/s:Envelope/s:Body/d:Probe/x:CompiledScopes/@StartsWithMatchは、Probe内のコンパイルスコープをサービスのコンパイルスコープとどのようにマッチできるかを示す。偽であれば、Probe内のコンパイルスコープをコンパイルサービススコープの1つとマッチすることができる。真であれば、Probe内のコンパイルスコープを、サービススコープがそれで始まる場合でもマッチすることができる。
このように、上述した実施形態は、スコープ情報を用いて1つまたは複数のサービスブローカコンピューティングシステム上でサービスを発見するためのシステムおよび方法を示す。コンパイルスコープ情報を用いてサービスを発見するので、上記のシステムおよび方法は、ネットワークトラフィック量の削減と、サービスプロバイダの処理能力に対する負荷の減少とに潜在的に寄与することができる。
本発明を、その趣旨または本質的な特性から逸脱せずに、他の特定の形態で具現化することができる。説明した実施形態は、全ての点において例に過ぎないとして考えるべきであり、限定的ではないと考えるべきである。本発明の範囲は、従って、前述の説明によってではなく添付請求項によって示される。請求項の等価物の意味および範囲内にある全ての変更は、その範囲内に包含されるべきである。
Claims (20)
- 相互接続可能な複数のコンピューティングシステムを備えるコンピューティング環境において、前記複数のコンピューティングシステムの1つまたは複数により提供されるサービスの発見をコンピューティングシステムが支援する方法であって、
発見すべきサービスのスコープを表す問合せを受信するステップと、
前記問合せにおいて表される前記スコープをコンパイルスコープ情報と比較するステップであって、前記コンパイルスコープ情報は、少なくとも1つの複数のスコープの各々に対して、夫々を様々なマッチング規則を用いてコンパイルした複数のコンパイルスコープを含むステップと、
前記複数のコンピューティングシステムの少なくとも1つを、前記比較ステップに基づいて発見した前記サービスを提供するものとして特定するステップと、
前記問合せに応答を提供するステップであって、前記応答は、前記複数のコンピューティングシステムの少なくとも1つのうち1つまたは複数の識別子を含むステップと
を含むことを特徴とする方法。 - 前記複数のコンパイルスコープはテキスト文字列を含むことを特徴とする請求項1に記載の方法。
- 前記問合せはユーザが入力した検索基準を含むことを特徴とする請求項1に記載の方法。
- 前記サービスはウェブサービスを含むことを特徴とする請求項1に記載の方法。
- 前記マッチング規則は、URI(Uniform Resource Identifier)、UUID(Universally Unique Identifier)、LDAP(Lightweight Directory Access Protocol)、および文字列比較(STRCMP0)のうち1つまたは複数を含むことを特徴とする請求項1に記載の方法。
- 前記複数のコンパイルスコープを、前記複数のコンピューティングシステムの1つまたは複数の上で局所的にコンパイルしたことを特徴とする請求項1に記載の方法。
- 前記問合せにおいて表した前記スコープはプレコンパイルスコープ情報を含むことを特徴とする請求項1に記載の方法。
- 前記プレコンパイルスコープ情報を様々なマッチング規則を用いてコンパイルしたことを特徴とする請求項7に記載の方法。
- コンピューティングシステムの1つまたは複数のプロセッサが実行する時に、複数のコンピューティングシステムのうち1つまたは複数が提供するサービスを発見するコンピューティングシステムのための方法を、前記コンピューティングシステムが実施するコンピュータ実行可能命令を自身の上に有する1つまたは複数のコンピュータ可読媒体を備えるコンピュータプログラム製品であって、前記方法は、
ユーザ入力を用いて、発見すべきサービスの複数スコープのスコープを特定するステップと、
前記の特定したスコープの複数のコンパイルにアクセスするステップであって、前記複数のスコープの各々のうち少なくとも幾つかを様々なマッチング規則を用いてコンパイルするステップと、
前記複数のコンパイルのうち少なくとも1つを含む問合せを送信させるステップと、
前記問合せへの応答を受信したことを検出するステップと、
前記検出ステップに応じて、前記問合せへの前記応答にアクセスするステップであって、前記応答は、前記サービスを提供する前記複数のコンピューティングシステムのうち少なくとも1つを特定するのに十分な情報を含むステップと
を備えることを特徴とするコンピュータプログラム製品。 - 前記ユーザ入力は1つまたは複数の検索基準を備えることを特徴とする請求項9に記載のコンピュータプログラム製品。
- 前記1つまたは複数の検索基準に基づいて前記スコープを特定するステップをさらに備えることを特徴とする請求項10に記載のコンピュータプログラム製品。
- 前記複数のコンパイルにリモートでアクセスすることを特徴とする請求項9に記載のコンピュータプログラム製品。
- 前記複数のコンパイルをプレコンパイルしたことを特徴とする請求項9に記載のコンピュータプログラム製品。
- 前記のプレコンパイルした複数のコンパイルにリモートにアクセスすることを特徴とする請求項13に記載のコンピュータプログラム製品。
- 相互接続可能な複数のコンピューティングシステムを備えるコンピューティング環境において、前記複数のコンピューティングシステムの1つまたは複数により提供されるサービスをプロキシが発見する方法であって、
発見すべきサービスのスコープを表す第1の問合せを受信するステップと、
前記第1の問合せにおいて表される前記スコープをコンパイルスコープ情報と比較するステップであって、前記コンパイルスコープ情報は、少なくとも1つの複数のスコープの各々に対して、夫々を様々なマッチング規則を用いてコンパイルした複数のコンパイルスコープを含むステップと、
第2の問合せを送信するステップであって、前記第2の問合せは前記複数のコンパイルスコープのうち少なくとも1つを含むことを特徴とするステップと
を含むことを特徴とする方法。 - 前記プロキシは1つまたは複数の検索基準を受信し、前記検索基準に基づいて前記スコープを計算することを特徴とする請求項15に記載の方法。
- 前記第1の問合せは、プレコンパイルスコープ情報を含むことを特徴とする請求項15に記載の方法。
- 前記プレコンパイルスコープ情報を様々なマッチング規則を用いてコンパイルしたことを特徴とする請求項17に記載の方法。
- 前記第2の問合せはユーザが入力した検索基準を含むことを特徴とする請求項15に記載の方法。
- 前記第2の問合せはプレコンパイルスコープ情報を含むことを特徴とする請求項15に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/424,458 US7783718B2 (en) | 2006-06-15 | 2006-06-15 | Locating services using compiled scopes |
PCT/US2007/011190 WO2007145743A1 (en) | 2006-06-15 | 2007-05-08 | Locating services using compiled scopes |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009540462A true JP2009540462A (ja) | 2009-11-19 |
Family
ID=38832055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009515394A Withdrawn JP2009540462A (ja) | 2006-06-15 | 2007-05-08 | コンパイルスコープを用いたサービスの発見 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7783718B2 (ja) |
EP (1) | EP2036257B1 (ja) |
JP (1) | JP2009540462A (ja) |
KR (1) | KR20090029715A (ja) |
CN (1) | CN101467397A (ja) |
WO (1) | WO2007145743A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10015122B1 (en) | 2012-10-18 | 2018-07-03 | Sitting Man, Llc | Methods and computer program products for processing a search |
US10212112B1 (en) | 2010-07-09 | 2019-02-19 | Gummarus LLC | Methods, systems, and computer program products for processing a request for a resource in a communication |
US10171392B1 (en) | 2010-07-09 | 2019-01-01 | Gummarus LLC | Methods, systems, and computer program products for processing a request for a resource in a communication |
US10419374B1 (en) | 2010-07-09 | 2019-09-17 | Gummarus, Llc | Methods, systems, and computer program products for processing a request for a resource in a communication |
US10158590B1 (en) | 2010-07-09 | 2018-12-18 | Gummarus LLC | Methods, systems, and computer program products for processing a request for a resource in a communication |
US20140365588A1 (en) * | 2012-09-22 | 2014-12-11 | Cedar Point Partners, Llc | Methods, systems, and computer program products for processing a data object identification request in a communication |
US10021052B1 (en) | 2012-09-22 | 2018-07-10 | Sitting Man, Llc | Methods, systems, and computer program products for processing a data object identification request in a communication |
US10013158B1 (en) | 2012-09-22 | 2018-07-03 | Sitting Man, Llc | Methods, systems, and computer program products for sharing a data object in a data store via a communication |
US10019135B1 (en) | 2012-10-18 | 2018-07-10 | Sitting Man, Llc | Methods, and computer program products for constraining a communication exchange |
US10033672B1 (en) | 2012-10-18 | 2018-07-24 | Sitting Man, Llc | Methods and computer program products for browsing using a communicant identifier |
US11138529B2 (en) * | 2017-09-11 | 2021-10-05 | Bentley Systems, Incorporated | Techniques for coordinating codes for infrastructure modeling |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU768712B2 (en) | 1998-12-22 | 2004-01-08 | Janssen Pharmaceutica N.V. | Antiprotozoal saponins |
US7577834B1 (en) * | 2000-05-09 | 2009-08-18 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment |
US6957199B1 (en) * | 2000-08-30 | 2005-10-18 | Douglas Fisher | Method, system and service for conducting authenticated business transactions |
JP2002196990A (ja) | 2000-12-27 | 2002-07-12 | Kddi Corp | サービス発見プロトコル変換ゲートウェイ |
US7013290B2 (en) * | 2001-08-03 | 2006-03-14 | John Allen Ananian | Personalized interactive digital catalog profiling |
JP3826807B2 (ja) | 2002-02-13 | 2006-09-27 | 日本電気株式会社 | 移動通信ネットワークにおける測位システム |
US7570943B2 (en) * | 2002-08-29 | 2009-08-04 | Nokia Corporation | System and method for providing context sensitive recommendations to digital services |
US8108455B2 (en) * | 2002-10-31 | 2012-01-31 | Oracle America, Inc. | Mobile agents in peer-to-peer networks |
US7188155B2 (en) * | 2002-12-17 | 2007-03-06 | International Business Machines Corporation | Apparatus and method for selecting a web service in response to a request from a client device |
CN1277424C (zh) | 2003-03-28 | 2006-09-27 | 华为技术有限公司 | 位置业务中进行去激活和激活操作的交互方法 |
CN1276671C (zh) | 2003-07-04 | 2006-09-20 | 华为技术有限公司 | 位置业务中位置信息请求的处理方法 |
US7467389B2 (en) * | 2004-11-23 | 2008-12-16 | Sybase, Inc. | System and methodology providing service invocation for occasionally connected computing devices |
-
2006
- 2006-06-15 US US11/424,458 patent/US7783718B2/en active Active
-
2007
- 2007-05-08 EP EP07776914.9A patent/EP2036257B1/en active Active
- 2007-05-08 WO PCT/US2007/011190 patent/WO2007145743A1/en active Application Filing
- 2007-05-08 CN CNA2007800221816A patent/CN101467397A/zh active Pending
- 2007-05-08 KR KR1020087030426A patent/KR20090029715A/ko not_active Application Discontinuation
- 2007-05-08 JP JP2009515394A patent/JP2009540462A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP2036257A1 (en) | 2009-03-18 |
EP2036257B1 (en) | 2021-12-29 |
KR20090029715A (ko) | 2009-03-23 |
US7783718B2 (en) | 2010-08-24 |
EP2036257A4 (en) | 2013-11-06 |
CN101467397A (zh) | 2009-06-24 |
WO2007145743A1 (en) | 2007-12-21 |
US20070294711A1 (en) | 2007-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009540462A (ja) | コンパイルスコープを用いたサービスの発見 | |
RU2409846C2 (ru) | Организация ресурсов в коллекции, способствующая более эффективному и надежному доступу к ресурсам | |
JP4902671B2 (ja) | ターゲットデバイスにコンテンツを送信するための方策 | |
US8504644B2 (en) | Configurable continuous web service invocation on pervasive device | |
US7836164B2 (en) | Extensible network discovery subsystem | |
US9323587B2 (en) | Method and system for automatic detecting and resolving APIs | |
JP2005216309A (ja) | インスタントメッセージプロトコルを使用するプリント方法およびシステム | |
CN107463453B (zh) | 同一终端不同应用间通信的方法、装置、设备和存储介质 | |
JP2009530922A (ja) | ピアツーピア・ゲートウェイ | |
KR100901281B1 (ko) | 유비쿼터스 웹서비스 방법 | |
US20140211248A1 (en) | Web server apparatus, control method, and program therefor | |
US9189546B2 (en) | Semantic client, semantic information management server, method of generating semantic information, method of searching semantic information, and computer program recording medium for performing the methods | |
US7860924B2 (en) | Method and system for supporting multiple versions of web services standards | |
US7213070B2 (en) | Method of brokering network services | |
JP2008181519A (ja) | ネットワーク上のドキュメント処理装置を見出すシステムおよび方法 | |
US11546405B2 (en) | Methods for exposing mainframe data as a web service and devices thereof | |
JP2003216383A (ja) | サービス提供システム、サービス提供方法、サービス提供装置、その制御方法、制御プログラム、及び、コンピュータ可読メモリ | |
Delicato et al. | Smartsensor: An infrastructure for the web of things | |
Hu et al. | Secure Mobile Content Delivery Architecture in Hybrid Network Environment | |
KR20040110957A (ko) | 피투피(피어 투 피어) 기술을 이용한 웹 컨텐츠를검색하는 방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100803 |