(57)【要約】      （修正有）【課題】クライアントデバイス上にあるアプリケーションからの、サーバに接続する要求を処理するためのコンピュータ実装方法の提供。【解決手段】方法は、クライアントデバイス上にあるアプリケーションから、サーバに接続する要求を受信すること、合致サービスインタフェースを決定すること、合致サービスインタフェースのアクセスインジケータを決定すること、および、サーバに接続する前記要求に応答して、合致サービスインタフェースのアクセスインジケータを、クライアントデバイス上にあるアプリケーションに送信することを含む。【選択図】図４
2013218670.tif 000002
【特許請求の範囲】
【請求項１】
クライアントデバイス上にあるアプリケーションからの、サーバに接続する要求を処理するための、コンピュータ実装方法であって、
サービスインタフェース管理システムにおいて、前記クライアントデバイス上にある前記アプリケーションから、前記サーバに接続する前記要求を受信するステップと、
前記サービスインタフェース管理システムにおいて、合致サービスインタフェースを決定するステップと、
前記サービスインタフェース管理システムにおいて、前記合致サービスインタフェースのアクセスインジケータを決定するステップと、
前記サービスインタフェース管理システムから、前記サーバに接続する前記要求に応答して、前記合致サービスインタフェースの前記アクセスインジケータを、前記クライアントデバイス上にある前記アプリケーションに送信するステップとを含む方法。
【請求項２】
合致サービスインタフェースを決定するステップが、
前記アプリケーションにとって受容可能な1つまたは複数のサービスインタフェースを表す入力パラメータを前記要求から決定するステップと、
前記1つまたは複数の受容可能なサービスインタフェースのいずれかが、前記サーバによって提供されるサービスインタフェースと合致するかどうか判定するステップとを含む、請求項1に記載の方法。
【請求項３】
合致サービスインタフェースが2つ以上決定された場合は、最もよく合致するサービスインタフェースを決定し、
前記最もよく合致するサービスインタフェースが、最も新しいバージョンの前記合致サービスインタフェースである、請求項2に記載の方法。
【請求項４】
合致サービスインタフェースの前記アクセスインジケータが前記サービスインタフェースのユニフォームリソースロケータ(URL)である、請求項1〜3のいずれか1項に記載の方法。
【請求項５】
サービスインタフェース管理システムにおいて、前記クライアントデバイス上にある前記アプリケーションから、前記サーバに接続する前記要求を受信する前記ステップがさらに、前記サービスインタフェース管理システムのアクセス識別子を登録サービスから決定するステップを含む、請求項1〜4のいずれか1項に記載の方法。
【請求項６】
クライアントデバイス上にあるアプリケーションからの、サーバに接続する要求を処理するための、サービスインタフェース管理システムであって、
前記クライアントデバイス上にある前記アプリケーションから、前記サーバに接続する前記要求を受信するように構成された要求受信モジュールと、
合致サービスインタフェースを決定するように構成された合致決定モジュールと、
前記合致サービスインタフェースのアクセスインジケータを決定し、前記サーバに接続する前記要求に応答して、前記合致サービスインタフェースのアクセスインジケータを、前記クライアントデバイス上にある前記アプリケーションに送信するように構成されたアクセスインジケータモジュールとを備えるサービスインタフェース管理システム。
【請求項７】
前記合致決定モジュールがさらに、
受容可能サービスインタフェースモジュールを備え、前記受容可能サービスインタフェースモジュールが、
前記アプリケーションにとって受容可能な1つまたは複数のサービスインタフェースを表す入力パラメータを前記要求から決定し、
前記1つまたは複数の受容可能サービスインタフェースのいずれかが、前記サーバによって提供されるサービスインタフェースと合致するかどうか判定するように構成された、請求項6に記載のサービスインタフェース管理システム。
【請求項８】
前記合致決定モジュールがさらに、合致サービスインタフェースが2つ以上決定された場合に、最もよく合致するサービスインタフェースを決定するように構成された最良合致サービスインタフェースモジュールを備え、
前記最もよく合致するサービスインタフェースが、最も新しいバージョンの前記合致サービスインタフェースである、請求項7に記載のサービスインタフェース管理システム。
【請求項９】
合致サービスインタフェースの前記アクセスインジケータが前記サービスインタフェースのユニフォームリソースロケータ(URL)である、請求項6から8のいずれか1項に記載のサービスインタフェース管理システム。
【請求項１０】
クライアントデバイス上にあるアプリケーションからの、サーバに接続する要求を処理するための、コンピュータ可読記録媒体であって、コンピュータ実行可能命令を備え、前記コンピュータ実行可能命令が、実行されたとき、
サービスインタフェース管理システムにおいて、前記クライアントデバイス上にある前記アプリケーションから、前記サーバに接続する前記要求を受信するステップと、
合致サービスインタフェースを決定するステップと、
前記合致サービスインタフェースのアクセスインジケータを決定するステップと、
前記サーバに接続する前記要求に応答して、前記合致サービスインタフェースの前記アクセスインジケータを、前記クライアントデバイス上にある前記アプリケーションに送信するステップとを実施する、コンピュータ可読記録媒体。
【請求項１１】
合致サービスインタフェースを決定するステップが、
前記アプリケーションにとって受容可能な1つまたは複数のサービスインタフェースを表す入力パラメータを前記要求から決定するステップと、
前記1つまたは複数の受容可能なサービスインタフェースのいずれかが、前記サーバによって提供されるサービスインタフェースと合致するかどうか判定するステップとを含む、請求項10に記載のコンピュータ可読記録媒体。
【請求項１２】
合致サービスインタフェースが2つ以上決定された場合は、最もよく合致するサービスインタフェースを決定し、
前記最もよく合致するサービスインタフェースが、最も新しいバージョンの前記合致サービスインタフェースである、請求項11に記載のコンピュータ可読記録媒体。
【請求項１３】
合致サービスインタフェースの前記アクセスインジケータが前記サービスインタフェースのユニフォームリソースロケータ(URL)である、請求項10〜12のいずれか1項に記載のコンピュータ可読記録媒体。
【請求項１４】
サーバに接続するためにクライアントデバイス上にあるクライアント側アプリケーションであって、
前記サーバに接続する要求をサービスインタフェース管理システムに送信し、
前記サーバに接続する前記要求に応答して、合致サービスインタフェースのアクセスインジケータを前記サービスインタフェース管理システムから受信し、
前記受信したアクセスインジケータに基づいて前記サーバに接続するように構成されたクライアント側アプリケーション。
【請求項１５】
クライアントデバイス上にあるアプリケーションからの、サービスインタフェースに接続する要求を処理する、サーバであって、
コンピュータ上にあるサービスへのアクセスを可能にする複数のサービスインタフェースを備え、各サービスインタフェースへは、前記クライアントデバイス上にある前記アプリケーションによって、アクセス識別子を使用してアドレス可能である、サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、コンピュータ実装方法、コンピュータシステム、およびコンピュータ可読記録媒体に関する。
【背景技術】
【０００２】
従来のクライアントサーバコンピューティングでは、広く分散したアプリケーションが、タスク、作業負荷、および/またはアプリケーションプロセスを、少なくとも2つのデバイス間で区分化することができる。例えば、クライアントとして知られるサービス要求側と、サーバとして知られるサービス提供側との間で、分散アプリケーションを区分化することができる。クライアントは、ネットワークを介してサーバによって提供されるサービスを要求することができる。例えば、クライアントは、インターネットなどのネットワークを介してサーバによって提供される、コンピューティングサービスまたは電子メールサービスを要求することができる。
【０００３】
クライアントサーバコンピューティング環境での分散アプリケーションのアップグレード中には、クライアントデバイス上のアプリケーションコードすなわちクライアントソフトウェア、および/または、サーバデバイス上のアプリケーションコードすなわちサーバソフトウェアを構成する必要がある場合がある。しかし、アップグレードされたクライアントソフトウェアをクライアントデバイス上で構成する結果、多くの問題が生じることがある。例えば、クライアントデバイスのユーザが、クライアントソフトウェアの構成を必要とするサーバからの通知を無視して、アップグレードされていないクライアントソフトウェアを使用し続けようとすることがある。さらに、クライアントデバイスのユーザは、アップグレードされたクライアントソフトウェアを、構成しないままで使用しようとすることがある。さらに、クライアントデバイスのユーザが、アップグレードされたクライアントソフトウェアを構成しようとする場合であっても、構成中にエラーが生じ、それにより、アップグレードされたクライアントソフトウェアが、存在しないサーバソフトウェアをポイントするようになることがある。
【０００４】
1つまたは複数の実装形態の詳細を、添付の例示的な図面および以下の例示的な記述に示す。他の特徴は、これらの記述および図面、ならびに特許請求の範囲から明らかになるであろう。
【発明の概要】
【課題を解決するための手段】
【０００５】
特許請求の範囲に記載の手段によって課題を解決する。
【図面の簡単な説明】
【０００６】
【図１】一実施形態による例示的なシステムアーキテクチャ図である。
【図２ａ】一実施形態による例示的な概略図である。
【図２ｂ】一実施形態による例示的な概略図である。
【図２ｃ】一実施形態による例示的な概略図である。
【図２ｄ】一実施形態による例示的な概略図である。
【図３】一実施形態による例示的なサービスインタフェース管理システムを示す図である。
【図４】一実施形態による例示的な方法を示す図である。
【図５】一実施形態による別の例示的な方法を示す図である。
【図６】一実施形態による例示的な登録サービスを示す図である。
【図７】一実施形態による、図1〜5に示すコンピュータシステムおよび方法を実現するための例示的なコンピュータシステムおよび/またはコンピュータネットワークシステムを示す図である。
【発明を実施するための形態】
【０００７】
以下、図面を参照しながら実施形態の詳細な記述を提供する。これらの実施形態に様々な修正を加えることができることを理解されたい。特に、1つまたは複数の実施形態の1つまたは複数の要素は、相互から分離することができ、また、組み合わせて、かつ/または他の実施形態で使用して、新しい実施形態を形成することができる。
【０００８】
図1に、一実施形態による、ネットワーク103を介したサーバ101とクライアントデバイス102との間の通信の例示的なシステムアーキテクチャ図100を示す。サーバ101は、コンピュータなどのコンピューティングデバイスとすることができる。クライアントデバイス102は、スマートフォン、タブレットコンピュータ、パーソナルディジタルアシスタント(PDA)、デスクトップコンピュータ、ラップトップなどとすることができる。
【０００９】
一実施形態によれば、サーバ101は、104〜106など、1つまたは複数のサービスをホストするかまたは提供することができる。サービスは、特定の機能を実施するコンピュータプロセス、ソフトウェア、またはアプリケーションとすることができる。サービスは、1つまたは複数のバージョンを有することがある。あるサービスの各バージョンにつき、コントラクトとも呼ばれるサービスインタフェースをサーバ101上で提供して、アプリケーションがこのサービスのこのバージョンにアクセスできるようにすることができる。例えば、図1では、サービス104の利用可能バージョンに対して、サービスインタフェース104a〜nが提供される。サービス105および106に対しても、サービスインタフェースを提供することができる。サービスのバージョンへのアプリケーションアクセスを可能にするサービスインタフェースへは、アクセスインジケータを介してアクセスすることができる。アクセスインジケータの一例は、アクセスインジケータへのユニフォームリソースロケータ(URL)または他のポインタであろう。
【００１０】
サーバ101は、複数のバージョンのうちの1つである場合がある。サーバ101などの単一のサーバについて複数のバージョンが提供される場合、サーバのより新しいバージョンは、サーバのより古いバージョンよりも多くのサービスインタフェースを提供することがある。さらに、サーバの特定のバージョンの複数のインスタンスが実装される場合、例えば、サーバの特定のバージョンの各インスタンスが異なるビジネスにおいて実装される場合は、サーバのインスタンス上にあるサービスの特定のバージョンに対応する各サービスインタフェースに、異なるアクセスインジケータを介してアドレス可能である。例えば、サーバXのインスタンスが会社Aで実装され、サーバXの別のインスタンスが会社Bで実装される。会社AのサーバX上にあるサービスインタフェースにアクセスするには、クライアントアプリケーションは、URL(例えばhttp(s)://companya.com/svc)などのアクセスインジケータを使用することができる。会社BのサーバX上にある同じバージョンの同じサービスに対するサービスインタフェースにアクセスするには、クライアントアプリケーションは、異なるURL(例えばhttp(s)://companyb.com/svc)など、異なるアクセスインジケータを使用することができる。
【００１１】
クライアントデバイス102は、クライアントアプリケーション107を備えてよい。クライアントアプリケーション107は、コードを含んでよく、また、クライアントデバイス102にプリインストールされているかまたはクライアントデバイス102にダウンロードされてよい。クライアントアプリケーション107は、サーバ101上にある1つまたは複数のサービスインタフェースを使用することができる。例えば、クライアントアプリケーション107は、サービスインタフェース104aのみを使用することができ、したがって静的クライアントアプリケーションと考えることができる。別の手法は、クライアントアプリケーション107が、サービスインタフェース104a、サービスインタフェース104b、およびサービスインタフェース104cなど、サービスインタフェース104a〜nのうちの選択されたものを使用することが可能にされることを含み、したがってマルチ静的クライアントアプリケーションと考えることができる。静的およびマルチ静的クライアントアプリケーション中では、クライアントアプリケーション107のコード中にエンコードされたアクセスインジケータによって、サービスインタフェースにアドレスすることができる。例えば、クライアントアプリケーションは、URL(例えばhttp(s)://companya.com/svc)などのアクセスインジケータを使用して、サービスインタフェースの特定のバージョンにアクセスすることができる。
【００１２】
マルチ静的クライアントアプリケーションに関する擬似コードの例:
【００１３】
【数１】
2013218670.tif 000003
【００１４】
有利にも、クライアントアプリケーションは、より新しいサービスインタフェースに、できるだけ早く切り替えることができるが、アプリケーションランタイム中の分裂的な切替えは回避する。アプリケーションランタイム中、クライアントアプリケーションは、サービスインタフェースのより新しいバージョンを検出することがあるが、より新しいサービスインタフェースは、アプリケーションの次回の起動時に使用されることになる。
【００１５】
さらに別の手法では、クライアントアプリケーション107は、サービスインタフェース104a〜nなど、サーバ101によって提供される全てのサービスインタフェースを使用することが可能にされ、したがって動的クライアントアプリケーションと考えられる。クライアントアプリケーション107が使用できる1つまたは複数の特定のサービスインタフェースは、受容可能サービスインタフェースと考えられる。例えば、動的クライアントアプリケーションは、ブラウザタイプ/一般クライアントタイプのアプリケーションとすることができる。
【００１６】
動的アプリケーションは、サービスインタフェース管理システムのアクセス識別子を含むことができ、サービスインタフェース管理システムへの要求の中で、入力パラメータをサービスインタフェース管理システムに渡すことができる。入力パラメータは、受容可能サービスインタフェースではなく、従業員リストや機会リストなど、アプリケーションの目的を表すアプリケーション識別子とすることができる。サービスインタフェース管理システムは、アプリケーション識別子に属するサービスインタフェースを照合して、これらのサービスインタフェースから、最も合致するサービスインタフェースを決定することができる。
【００１７】
動的クライアントアプリケーションに関する擬似コードの例:
【００１８】
【数２】
2013218670.tif 000004
【００１９】
さらに、動的アプリケーションは、最新バージョンリンクを含むことができ、この最新バージョンリンクにより、アプリケーションは、サービスインタフェースのより新しいバージョンがサーバ上で利用可能になるとすぐにそのバージョンにアップグレードすることができる。特定のサービスインタフェースにアドレスする要求の応答ペイロードは、一般クライアントがこのサービスインタフェースの最新(最も新しい)バージョンに切り替えることができるようにするために、最新(最も新しい)バージョンへのアクセス識別子を含まなければならない。
【００２０】
動的クライアントアプリケーションに関する擬似コードの別の例:
【００２１】
【数３】
2013218670.tif 000005
【００２２】
単一のアプリケーションについて、アプリケーションの複数のバージョンが提供される場合、アプリケーションのより新しいバージョンは、アプリケーションのより古いバージョンよりも多くのサービスインタフェースを使用可能であることがある。言い換えれば、アプリケーションのより新しいバージョンは、アプリケーションのより古いバージョンよりも多くの受容可能サービスインタフェースを有することがある。一実施形態によれば、アプリケーションの次のバージョンは、アプリケーションのすぐ前のバージョンよりも1つ多いサービスインタフェースを使用することができる。さらに、アプリケーションの特定のバージョンが、多くのユーザによってインストールおよび使用される可能性がある。すなわち、アプリケーションの特定のバージョンの、多くのインスタンスがある場合がある。
【００２３】
サーバ101と、クライアントデバイス102上のクライアントアプリケーション107とのいずれかがアップグレードされる間、サーバおよび/またはクライアントアプリケーションのより古いバージョンから、サーバおよび/またはクライアントアプリケーションのより新しいバージョンへの切替えが実施される。しかし、クライアントアプリケーション107は、アップグレードが実施された後には、サーバ101上にあるサービスインタフェースにアクセスするのに必要な正しいアクセスインジケータを含まないことがある。例えば、会社Aによってダウンロードされた、アップグレードされたクライアントアプリケーションは、会社Aのサーバ上の新しいサービスインタフェースにアクセスするように構成される必要がある場合がある。
【００２４】
(実施例)
図2aに、サーバS1が、姓、名、および電話番号と共に全ての従業員をリストするサービスインタフェースC1を提供するのを示す。従業員ディレクトリアプリケーションA1が、姓、名、および電話番号と共に全ての従業員を表示する。アプリケーションA1は、サービスインタフェースC1を使用することができる。アプリケーションA1は、アプリケーションストア中で提供されるアプリケーションとすることができ、別々のエンティティによってダウンロードすることができる。
【００２５】
会社A、example.orgと、会社B、smallexample.comの、2つの会社が、前述のように、かつ図2bに示されるように、サーバS1とアプリケーションA1の別々のインスタンスを実装する。会社Aと会社Bがそれぞれ正しい従業員ディレクトリを表示することを確実にするために、アクセスインジケータが適切に構成されなければならない。例えば、会社Aと会社Bは両方とも、アプリケーションA1をアプリケーションストアからダウンロードすることができる。会社Aは、アクセスインジケータ、例えばURL、https://example.org/uを使用して、会社AのサービスインタフェースC1にアドレスしアクセスする。会社Bは、異なるアクセスインジケータ、例えばURL、https://smallexample.com/vを使用して、会社BのサービスインタフェースC1にアドレスしアクセスする。
【００２６】
したがって、会社AのアプリケーションA1を使用する従業員は、アクセスインジケータ、例えばURL、https://example.org/uを入力しなければならず、会社BのアプリケーションA1を使用する従業員は、アクセスインジケータ、例えばURL、https://smallexample.com/vを入力しなければならない。
【００２７】
図2cで、従業員ディレクトリアプリケーションA1が拡張すなわちアップグレードされたとき、アプリケーションの次のバージョン、例えばアプリケーションA2は、追加機能、例えば他の従業員データに加えて従業員の写真を表示する機能を有する場合がある。アプリケーションA2はサービスインタフェースC1とサービスインタフェースC2の両方を受容することができるが、アプリケーションA1は依然としてサービスインタフェースC1しか受容しない。さらに、会社Aも会社Bも両方とも、まだサーバS1を使用する場合がある。
【００２８】
アプリケーションA2がアプリケーションストアを介して配布されると、会社Aと会社Bの両方におけるアプリケーションA1ユーザに対する更新告知の中で、アプリケーションA2が、アプリケーションA1の新しいバージョンとして示される。例えば、アプリケーションA1の新しいバージョンがあることを提示する電子メール告知が、アプリケーションA1を使用する会社Aおよび会社Bの従業員に送信される場合がある。
【００２９】
したがって、いくらかの従業員はアプリケーションA1をアプリケーションA2に更新するかもしれないが、残りの従業員は、アプリケーションA1をアプリケーションA2に更新せず、その代わりにまだアプリケーションA1を使用するかもしれない。アプリケーションA1がサービスインタフェースC1を受容し、サーバS1がサービスインタフェースC1を提供するので、アプリケーションA1はまだ機能することになる。図2cに示すように、アプリケーションA2がサービスインタフェースC2に加えてサービスインタフェースC1をまだ受容することができ、サーバS1がサービスインタフェースC1を提供するので、アプリケーションA2は機能することになる。
【００３０】
図2dに、会社Aが、サービスインタフェースC1およびサービスインタフェースC2を提供するサーババージョンS2に切り替えるシナリオを示す。サーバS2がアップグレードされたとき、次のサーババージョンS2は、サービスインタフェースC1に加えて、名、姓、電話番号、および写真と共に全ての従業員をリストするサービスインタフェースC2を提供することができる。サービスインタフェースC1は、安定したサービスインタフェースであり変更または削除できないので、サービスインタフェースC1はまだ提供される。アプリケーションA1は、サーバS2によって提供されるサービスインタフェースC1をまだ受容することになる。アプリケーションA2は、サーバS2によって今や提供されるサービスインタフェースC2と、サーバS2によってまだ提供されるサービスインタフェースC1とを受容することになる。
【００３１】
しかし、アプリケーションA1およびアプリケーションA2中のアクセスインジケータは、サーバによって提供される正しいバージョンおよびサービスにアクセスするために、適切なサービスインタフェースをポイントしなければならない。したがって、アップグレードされたクライアントアプリケーションをクライアントデバイス上で構成するために、一実施形態では、サービスインタフェース管理システムが提供される。
【００３２】
図3に、例示的なサービスインタフェース管理システム300を示す。一実施形態によれば、アプリケーションまたはサーバをアップグレードするときの構成労力を低減するために、サービスインタフェース管理システム300が提供される。サービスインタフェース管理システム300は、要求受信モジュール310、合致決定モジュール320、およびアクセスインジケータモジュール330を備える。合致決定モジュール320はさらに、受容可能サービスインタフェースモジュール340、および最良合致サービスインタフェースモジュール350を備えてよい。
【００３３】
サービスインタフェース管理システム300は、ハードウェア、ソフトウェアプラットフォーム、またはクラウドとして実現することができる。例えば、サービスインタフェース管理システム300は、クラウドコンピューティングの例を含みうる。クラウドコンピューティングは、クラウドユーザすなわちクライアントデバイスがコンピューティングインフラストラクチャの位置および他の詳細を知ることを必要とせずに、計算、ソフトウェア、データアクセス、ストレージリソースなどを提供する。したがって、クラウドは、共有リソース、ソフトウェア、および情報がネットワークを介してコンピュータおよび他のデバイスにサービスとして提供される場合の、サービスとしてのコンピューティングの送達を含みうる。クラウドベースのアプリケーションへのアクセスは、ウェブブラウザまたはポータルや、軽量デスクトップまたはモバイルアプリケーションなど、クライアントデバイスを介することができる。
【００３４】
クライアントアプリケーション側では、サービスインタフェースのアクセスインジケータをクライアントアプリケーション中にエンコードする代わりに、クライアントアプリケーションはサービスインタフェース管理システム300のアクセスインジケータを含むことができる。例えば、会社Aは、会社Aのサービスインタフェース管理システムについてのアクセスインジケータをクライアントアプリケーション中にエンコードすることになり、会社Bは、会社Bのサービスインタフェース管理システムについての異なるアクセスインジケータをクライアントアプリケーション中にエンコードすることになる。したがって、クライアントアプリケーションから要求が出されたとき、この要求は、サービスインタフェース管理システム300のURLなどのアクセスインジケータを使用して、サービスインタフェース管理システム300に自動的に送信される。サービスインタフェース管理システム300は、クライアントデバイスからの要求に応答して、クライアントデバイスにアクセスインジケータを提供することができる。サービスインタフェース管理システム300は、ビジネスにおける各タイプのアプリケーションに対して、またビジネスにおける1つのアプリケーションの全てのバージョンに対して、アクセスインジケータを提供することができる。
【００３５】
要求受信モジュール310は、アクセスインジケータによって示される、クライアントデバイス上にあるクライアントアプリケーションから、要求を受信することができる。要求は、クライアントアプリケーション(入力パラメータと共にエンコードされてよい)からの入力パラメータを含んでよい。入力パラメータは、クライアントアプリケーションにとって受容可能な1つまたは複数のサービスインタフェースを表すことができる。
【００３６】
合致決定モジュール320は、合致サービスインタフェースを決定することができる。上に論じたように、合致決定モジュール320はさらに、受容可能サービスインタフェースモジュール340、および最良合致サービスインタフェースモジュール350を備えてよい。合致サービスインタフェースを決定するために、受容可能サービスインタフェースモジュール340は、クライアントアプリケーションから要求受信モジュール310によって受信された要求から、入力パラメータの値を決定することができる。入力パラメータは、クライアントアプリケーションにとって受容可能な1つまたは複数のサービスインタフェースを表すことができる。例えば、図1を参照すると、クライアントアプリケーション107は、サービスインタフェース104aおよび104bのみを介してサービス104にアクセスすることができる。したがって、サービスインタフェース104aおよび104bが、受容可能サービスインタフェースである。
【００３７】
受容可能サービスインタフェースモジュール340はまた、サーバによって提供されるサービスインタフェースをデータ記憶装置から取り出すことができる。データ記憶装置は、サーバに結合されてもよく、またはサービスインタフェース管理システム300に結合されてもよい。例えば、図1を参照すると、サーバ101によって提供されるサービスインタフェースは、サービスインタフェース104a〜nとすることができる。
【００３８】
次いで、受容可能サービスインタフェースモジュール340は、1つまたは複数の受容可能サービスインタフェースのいずれかが、サーバによって提供されるサービスインタフェースのいずれかと合致するかどうか判定することができる。受容可能サービスインタフェースモジュール340によって合致サービスインタフェースが2つ以上決定された場合は、最良合致サービスインタフェースモジュール350が、合致サービスインタフェースの中から最もよく合致するサービスインタフェースを決定することができる。最もよく合致するサービスインタフェースは、アプリケーションバージョンの所定順序に基づく最も新しいバージョンの合致サービスインタフェースとすることができる。別法として、最もよく合致するサービスインタフェースは、最も関連性のある合致サービスインタフェースとすることができる。加えて、合致が決定されない場合は、サービスインタフェース管理システム300は、アプリケーションが機能しないであろうことを示すエラーメッセージを、クライアントデバイス上のクライアントアプリケーションに送信する。
【００３９】
合致サービスインタフェースが決定されると、アクセスインジケータモジュール330は、合致サービスインタフェースのアクセスインジケータを決定することができる。合致サービスインタフェースのアクセスインジケータは、合致サービスインタフェースのユニフォームリソースロケータ(URL)とすることができる。例えば、サービスインタフェースについてのURLは、サービスインタフェースとそれらに対応するアクセスインジケータ(例えばURL)とを記憶したルックアップテーブルから、決定することができる。次いで、アクセスインジケータモジュール330は、合致サービスインタフェースのアクセスインジケータ、例えばURLを、クライアントデバイス上にあるクライアントアプリケーションに送ることができる。クライアントデバイスは、アクセスインジケータを使用して、適切なサービスインタフェースを介してサーバに接続することができる。
【００４０】
要約すれば、クライアントデバイス上にあるアプリケーションからの、サーバに接続する要求を処理するための、サービスインタフェース管理システムを提供することができ、このサービスインタフェース管理システムは、
クライアントデバイス上にあるアプリケーションから、サーバに接続する要求を受信するように構成された要求受信モジュールと、
合致サービスインタフェースを決定するように構成された合致決定モジュールと、
合致サービスインタフェースのアクセスインジケータを決定し、サーバに接続する要求に応答して、合致サービスインタフェースのアクセスインジケータを、クライアントデバイス上にあるアプリケーションに送信するように構成されたアクセスインジケータモジュールとを備える。合致決定モジュールはさらに、
アプリケーションにとって受容可能な1つまたは複数のサービスインタフェースを表す入力パラメータを前記要求から決定すること、および、
1つまたは複数の受容可能サービスインタフェースのいずれかが、サーバによって提供されるサービスインタフェースと合致するかどうか判定することを行うように構成された受容可能サービスインタフェースモジュールと、
合致サービスインタフェースが2つ以上決定された場合に、最もよく合致するサービスインタフェースを決定するように構成された最良合致サービスインタフェースモジュールとを備えてよい。
【００４１】
有利にも、アプリケーションが必要とするのは、1つのアクセスインジケータ、すなわちサービスインタフェース管理システム300のURLを知ることだけである。このアクセスインジケータにアクセスすることにより、他の構成情報は必要ない。というのは、サービスインタフェース管理システム300が、構成すなわちURLをクライアントアプリケーションに提供するからである。サービスインタフェースのアクセスインジケータは、クライアントアプリケーションがサーバに接続できるようにクライアントアプリケーションが接続すべきサービスインタフェースである。クライアントアプリケーション自体がアップグレードされる場合でも、サービスインタフェース管理システム300のURLをクライアントアプリケーションコード中にハードコーディングすればよい。したがって、アップグレードされたクライアントアプリケーションは、依然としてサービスインタフェース管理システム300をポイントすることになる。さらに、クライアントアプリケーションは、サーバによって提供されるサービスインタフェースのバージョンに関して、最良のバージョンに自動的に切り替えることになる。
【００４２】
前述のコンピュータシステムは、図4および図5に関して以下に述べる方法を実施するように動作可能とすることができる。
【００４３】
図4に、一実施形態による例示的な方法400を示す。方法400は、一実施形態による、クライアントデバイス上にあるアプリケーションからの、サーバに接続する要求に応答することに関連するステップを例示するものである。
【００４４】
ステップ410で、サービスインタフェース管理システムが、クライアントデバイス上にあるアプリケーションから、サーバに接続する要求を受信する。要求は、クライアントデバイス上にあるアプリケーションからの直接のものであってもよく、または登録サービスなど別のサービスを介してルーティングされてもよい。言い換えれば、サービスインタフェース管理システムにおいて、クライアントデバイス上にあるアプリケーションから、サーバに接続する要求を受信することはさらに、サービスインタフェース管理システムのアクセス識別子を登録サービスから決定することを含んでよい。
【００４５】
ステップ420で、サービスインタフェース管理システムは、合致サービスインタフェースを決定する。このステップについては、図5に関してより詳細に後述する。
【００４６】
ステップ430で、サービスインタフェース管理システムは、合致サービスインタフェースのアクセスインジケータを決定する。合致サービスインタフェースのアクセスインジケータは、合致サービスインタフェースのユニフォームリソースロケータ(URL)とすることができる。
【００４７】
ステップ440で、サービスインタフェース管理システムは、サーバに接続する要求に応答して、合致サービスインタフェースのアクセスインジケータを、クライアントデバイス上にあるクライアントアプリケーションに送信する。
【００４８】
図5に、一実施形態による、図4の方法400のステップ420を記述する例示的な方法500を示す。方法500は、一実施形態による、合致サービスインタフェースを決定することに関連するステップを例示するものである。
【００４９】
ステップ510で、サービスインタフェース管理システムは、前記要求から入力パラメータを決定する。入力パラメータは、アプリケーションにとって受容可能な1つまたは複数のサービスインタフェースを表す。
【００５０】
ステップ520で、サービスインタフェース管理システムは、1つまたは複数の受容可能なサービスインタフェースのいずれかが、サーバによって提供されるいずれかのサービスインタフェースと合致するかどうか判定する。すなわち、1つまたは複数の合致サービスインタフェースが決定される。ステップ520で合致サービスインタフェースが2つ以上決定された場合は、方法はステップ530に進む。合致サービスインタフェースが1つだけ決定された場合は、方法500は終了し、方法400のステップ430に戻る。
【００５１】
ステップ530で、サービスインタフェース管理システムは、2つ以上の合致サービスインタフェースから、最もよく合致するサービスインタフェースを決定する。最もよく合致するサービスインタフェースは、アプリケーションバージョンの所定順序に基づく最も新しいバージョンの合致サービスインタフェースとすることができる。別法として、最もよく合致するサービスインタフェースは、最も関連性のある合致サービスインタフェースとすることができる。
【００５２】
最もよく合致するサービスインタフェースを決定した後、方法500は終了し、方法400のステップ430に戻る。ここで、最もよく合致するサービスインタフェースが、合致サービスインタフェースである。
【００５３】
前述の方法に鑑みて、コンピュータ可読記録媒体を提供することができる。コンピュータ可読記録媒体は、クライアントデバイスからの、サーバに接続する要求を処理するように動作可能とすることができる。コンピュータ可読記録媒体はコンピュータ実行可能命令を備えてよく、コンピュータ実行可能命令は、実行されたとき、
クライアントデバイス上にあるアプリケーションから、サーバに接続する要求を受信するステップと、
合致サービスインタフェースを決定するステップと、
合致サービスインタフェースのアクセスインジケータを決定するステップと、
サーバに接続する要求に応答して、合致サービスインタフェースのアクセスインジケータを、クライアントデバイス上にあるアプリケーションに送信するステップとを実施する。
【００５４】
さらに、クライアント側アプリケーションを提供することができる。クライアント側アプリケーションは、サーバに接続するためにクライアントデバイス上にあってよく、前記クライアントアプリケーションは、
サーバに接続する要求をサービスインタフェース管理システムに送信し、
サーバに接続する要求に応答して、合致サービスインタフェースのアクセスインジケータをサービスインタフェース管理システムから受信し、
受信したアクセスインジケータに基づいてサーバに接続するように構成される。
【００５５】
さらに、サーバを提供することができる。サーバは、クライアントデバイス上にあるアプリケーションからの、サービスインタフェースに接続する要求を処理することができ、
コンピュータ上にあるサービスへのアクセスを可能にする複数のサービスインタフェースを備え、各サービスインタフェースへは、クライアントデバイス上にあるアプリケーションによって、アクセス識別子を使用してアドレス可能である。
【００５６】
クラウドベースの登録サービス
図6に、図3で上述したようなサービスインタフェース管理システムと共に使用される登録サービス600を示す。一実施形態によれば、登録サービス600は、ハードウェア、ソフトウェア、またはクラウドベースのサービスを含みうる。登録サービス600により、会社は、その会社特有のサービスインタフェース管理システムの、その会社特有のアクセスインジケータを登録することができる。例えば、会社Aは、会社Aのサービスインタフェース管理システム300のアクセスインジケータを、登録サービス600に登録することができる。同様に、会社Bは、会社Bのサービスインタフェース管理システム300のアクセスインジケータを、同じ登録サービス600に登録することができる。登録後には、会社Aと会社Bの両方のクライアントアプリケーション107を、登録サービス600のアクセスインジケータすなわちURLでハードコーディングすることができる。
【００５７】
登録サービス600は、要求元の会社に、適切なアクセスインジケータを提供することができる。例えば、会社Aが登録サービス600にアクセスインジケータを要求した場合、会社Aは、それ自体のサービスインタフェース管理システム300のアクセスインジケータを受け取ることになる。会社Bが登録サービス600にアクセスインジケータを要求した場合、会社Bは、それ自体のサービスインタフェース管理システム300のアクセスインジケータを受け取ることになる。
【００５８】
したがって、クライアント側では、会社は、それ自体のサービスインタフェース管理システム300のアクセスインジケータをクライアントアプリケーション107中で維持するのではなく、単に登録サービス600のアクセスインジケータをクライアントアプリケーション107中で維持すればよい。有利にも、登録サービス600のアクセスインジケータは、全てのクライアントアプリケーション107に対して同一であり、クライアントアプリケーション107中にハードコーディングすることができる。
【００５９】
さらに、登録サービス600への登録に応答して、登録サービス600は、タイプ入力しやすく記憶しやすい起動コードを会社Aに提供することができる。登録サービス600はまた、会社Bが登録サービス600に登録するのに応答して、会社Aに提供した起動コードとは異なる起動コードを会社Bに提供することができる。会社Aおよび会社Bの従業員が自分のクライアントアプリケーション107をダウンロードできるとき、従業員は、通常なら構成情報を入力するが、単にそれぞれの会社についての起動コードをクライアントアプリケーション107に入力するだけである。
【００６０】
会社Aの従業員によってクライアントアプリケーション107が起動されたときは、会社Aのサービスインタフェース管理システム300のアクセスインジケータすなわちURLを読み取る要求が、登録サービス600に送られる。同様に、会社Bの従業員によってクライアントアプリケーション107が起動されたときは、会社Bのサービスインタフェース管理システム300のアクセスインジケータすなわちURLを読み取る要求が、登録サービス600に送られる。したがって、登録サービス600は、起動コードと引き換えに、適切なアクセスインジケータを要求元の会社に返す。別法として、クライアントアプリケーションが、一意の識別子を有する特定のデバイス、例えばIMEI番号を有するモバイルデバイスに結び付けられる場合、会社は、一意の識別子を有する複数のデバイスを登録サービス600に登録することができる。例えば、アプリケーションプログラミングインタフェース(API)が、デバイスのIMEI番号を読み取り、IMEI番号を登録サービス600に提供することができる。登録サービス600は、特定のアクセス識別子(会社のサービスインタフェース管理システム300のURLなど)を有するグループに属する各デバイスのIMEI番号を登録することができる。したがって、あるグループまたは会社に属する全てのデバイスを、登録サービス600に登録することができる。登録されたデバイス上でクライアントアプリケーションが起動されると、IMEI番号が登録サービス600に自動的に提供され、登録サービスは、そのIMEI番号に関連するアクセス識別子で応答することができる。有利にも、クライアントアプリケーションはこの場合、起動コードの代わりにIMEI番号などの一意の識別子を使用して、サービスインタフェース管理システム300のアクセス識別子を登録サービス600に要求することができる。
【００６１】
図7に、従来型のコンピューティング環境920(例えばサーバ)の形の汎用コンピューティングデバイスを含む、本方法を実施するための例示的なシステムを示す。この従来型のコンピューティング環境は、処理ユニット922、システムメモリ924、およびシステムバス926を備える。システムバスは、システムメモリ924を含めた様々なシステムコンポーネントを処理ユニット922に結合する。処理ユニット922は、システムメモリ924にアクセスすることによって、算術、論理、および/または制御演算を実施することができる。システムメモリ924は、処理ユニット922と共に使用される情報および/または命令を記憶することができる。システムメモリ924は、ランダムアクセスメモリ(RAM)928および読取専用メモリ(ROM)930など、揮発性および不揮発性メモリを含んでよい。ROM930には、起動中などにサーバ920内の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(basic input/output system)が記憶されてよい。システムバス926は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含めた、いくつかのタイプのバス構造のいずれかとすることができる。
【００６２】
サーバ920はさらに、ハードディスク(図示せず)に対して読み書きするためのハードディスクドライブ932と、取外し可能ディスク936に対して読み書きするための外部ディスクドライブ934とを備えてよい。取外し可能ディスクは、磁気ディスクドライブに対する磁気ディスク、または光ディスクドライブに対するCD ROMなどの光ディスクとすることができる。ハードディスクドライブ932および外部ディスクドライブ934は、それぞれハードディスクドライブインタフェース938および外部ディスクドライブインタフェース940によって、システムバス926に接続される。ドライブおよびそれらに関連するコンピュータ可読記録媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶域をサーバ920に提供する。データ構造は、前述のような、本方法を実施するための関連データを含むことができる。関連データは、データベース、例えば関係データベース管理システムまたはオブジェクト指向データベース管理システムに編成することができる。
【００６３】
本明細書に述べた例示的な環境はハードディスク(図示せず)および外部ディスク936を採用するが、磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ランダムアクセスメモリ、読取専用メモリなど、コンピュータによってアクセス可能なデータを記憶できる他のタイプのコンピュータ可読記録媒体を、例示的な動作環境で使用してもよいことは、当業者には理解されるはずである。
【００６４】
ハードディスク、外部ディスク936、ROM930、またはRAM928には、オペレーティングシステム(図示せず)、1つまたは複数のアプリケーションプログラム944、他のプログラムモジュール(図示せず)、およびプログラムデータ946を含めた、いくつかのプログラムモジュールを記憶することができる。アプリケーションプログラムは、図1〜3に示した機能の少なくとも一部を含んでよい。
【００６５】
ユーザは、キーボード948やマウス950などの入力デバイスを介して、以下に論じるようにコマンドおよび情報をサーバ920に入力することができる。他の入力デバイス(図示せず)は、マイクロホン(または他のセンサ)、ジョイスティック、ゲームパッド、スキャナなどを含みうる。これらおよび他の入力デバイスは、システムバス926に結合されたシリアルポートインタフェース952を介して処理ユニット922に接続することができ、または、パラレルポートインタフェース954、ゲームポート、またはユニバーサルシリアルバス(USB)など、他のインタフェースによって接続することができる。さらに、プリンタ956を使用して、情報を印刷することができる。プリンタ956および他のパラレル入出力デバイスは、パラレルポートインタフェース954を介して処理ユニット922に接続することができる。モニタ958または他のタイプの表示デバイスもまた、ビデオ入出力960などのインタフェースを介してシステムバス926に接続される。モニタに加えて、コンピューティング環境920は、スピーカや他の可聴出力など、他の周辺出力デバイス(図示せず)を含んでもよい。
【００６６】
コンピューティング環境920は、コンピュータ、電話機(有線またはワイヤレス)、パーソナルディジタルアシスタント、テレビジョンなど、他の電子デバイスと通信することができる。通信するために、コンピュータ環境920は、1つまたは複数の電子デバイスへの接続を使用して、ネットワーク化された環境で動作することができる。図7には、リモートコンピュータ962すなわちモバイルデバイス102とネットワーク化された、コンピュータ環境を示す。リモートコンピュータ962は、スマートフォンやタブレットなどのモバイルデバイスなど、別のコンピューティング環境とすることができ、コンピューティング環境920に関して上述した要素の多くを備えてよい。図7に示す論理接続は、ローカルエリアネットワーク(LAN)964およびワイドエリアネットワーク(WAN)966を含む。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットでよく見られ、特に、暗号化されたものとすることができる。
【００６７】
LANネットワーキング環境で使用されるときは、コンピューティング環境920は、ネットワークI/O968を介してLAN964に接続されてよい。WANネットワーキング環境で使用されるときは、コンピューティング環境920は、WAN966を介して通信を確立するためのモデム970または他の手段を備えてよい。モデム970は、コンピューティング環境920の内部または外部にあり、シリアルポートインタフェース952を介してシステムバス926に接続される。ネットワーク化された環境では、コンピューティング環境920に関して示すプログラムモジュールまたはその一部を、リモートコンピュータ962上にあるかまたはリモートコンピュータ962からアクセス可能なリモートメモリ記憶デバイスに記憶することができる。さらに、本方法に関連する他のデータも、リモートコンピュータ962上にあるかまたはリモートコンピュータ962を介してアクセス可能であってよい。図示のネットワーク接続は例示であり、電子デバイス間の接続リンクを確立する他の手段を使用してもよいことは、理解されるであろう。
【００６８】
前述のコンピューティングシステムは、以上に述べた本方法で使用できるコンピューティングシステムのタイプの一例に過ぎない。
【符号の説明】
【００６９】
101  サーバ
102  クライアントデバイス
103  ネットワーク
104、105、106  サービス
104a〜n  サービスインタフェース
107  クライアントアプリケーション
【図１】
2013218670.tif 000006
【図２ａ】
2013218670.tif 000007
【図２ｂ】
2013218670.tif 000008
【図２ｃ】
2013218670.tif 000009
【図２ｄ】
2013218670.tif 000010
【図３】
2013218670.tif 000011
【図４】
2013218670.tif 000012
【図５】
2013218670.tif 000013
【図６】
2013218670.tif 000014
【図７】
2013218670.tif 000015
【外国語明細書】
2013218670000001.pdf