(58)【調査した分野】(Int.Cl.,DB名)
前記生産性アプリケーションと関連する前記ユーザーを識別するステップは、サービス管理システムにおいて、通信ネットワークを介して前記クライアント・デバイスにより前記サービス管理システムへ配信のために送られたリクエストにおいて実行されるログイン・アイデンティティから前記ユーザーを識別するステップを含む、請求項2に記載の方法。
前記ユーザーに関連する前記第1のソーシャル・ネットワーク・サービスを識別するステップは、前記サービス管理システムにおいて、前記ログイン・アイデンティティと関連する複数のサービスのいずれかを識別するステップを含む、請求項3に記載の方法。
前記サービス・フィーチャーをイネーブルにするステップは、前記通信ネットワークを介して前記クライアント・デバイスへの配信のために、前記サービス管理システムから、前記第1のソーシャル・ネットワーク・サービス、及び前記クライアント・デバイスが前記通信を開始するサービス情報を識別する応答を送るステップを備える、請求項4に記載の方法。
グラフィカル・ユーザー・インタフェースを介して前記ユーザーに、ユーザーに関連する前記サービスのサブセットをグラフィカルに選択するためのサービスのカタログを呈示するステップをさらに備え、前記第1のソーシャル・ネットワーク・サービスは前記サービスのカタログに含まれる請求項1に記載の方法。
前記第1のソーシャル・ネットワーク・サービスはソーシャル・ネットワーク・ウェブサイトを備え、前記生産性フィーチャーは送信コマンドを備え、前記サービス・フィーチャーは、前記生産性アプリケーションにより生成された前記コンテンツを前記ソーシャル・ネットワーク・ウェブサイトへ送信するために前記送信コマンドを命令する、請求項2に記載の方法。
前記サービス・フィーチャーは、前記クライアント・デバイスのグラフィカル・ユーザー・インタフェースを通じて呼び出されときに、前記ソーシャル・ネットワーク・サービスとの通信を開始するために、前記クライアント・デバイスに命令する前記生産性アプリケーション内で前記生産性フィーチャーのサブフィーチャを備える、請求項8に記載の方法。
ユーザーへの呈示のために、グラフィカル・ユーザー・インタフェースを介して、前記ログイン・アイデンティティを関連付けるための前記複数のサービスのサブセットをグラフィカルに選択するための前記複数のサービスのカタログを送るステップをさらに備える、請求項8に記載の方法。
前記ソーシャル・ネットワーク・サービスは、前記複数のサービスのカタログにおいて選択される前記複数のサービスの前記サブセットを備える、請求項10に記載の方法。
前記サービスはウェブサイトを備え、前記生産性フィーチャーの少なくとも1つは送信コマンドを備え、前記サービス・フィーチャーの少なくとも1つは、前記生産性アプリケーションにより生成された前記コンテンツを送信するために、前記ウェブサイトの少なくとも1つへ送信コマンドを命令する、請求項8に記載の方法。
【発明を実施するための形態】
【0010】
[0019] ここで説明する実装は、ユーザーが何れのオンライン・サービスまたは他のサービスと関連し得るかということに基づいた、生産性アプリケーションにおける強化されたフィーチャーの提供をユーザーが経験することを、可能にする。特に、サービス・フィーチャーは、生産性アプリケーションに関与するユーザーのアイデンティティに応じて動的にイネーブルにされ、それにより、ユーザーと関連するサービス・フィーチャーがイネーブルにされる。ユーザーは、次に、生産性アプリケーションと共に作業を行って生成されたコンテンツに対して様々な機能やオペレーションを行うために、それらのサービス・フィーチャーを呼び出すことができる。ユーザーが関連し得る広範囲の多種のサービスの観点からは、ユーザー毎のベースでサービス・フィーチャーを動的にイネーブルおよびディスエーブルにすることにより、ユーザー・エクスペリエンスは、混乱無く使用し易い状態を維持する。
【0011】
[0020] 限定ではない1つの例では、ユーザーは、ソーシャル・ネットワーク・ウェブサイトと関連することができる。ドキュメント編集プログラムにおいてドキュメントに対して作業を行うとき、そのプログラムのメニュー内の、ソーシャル・ネットワークの例と関連するサービス・フィーチャーはイネーブルにされる。それに対して、ユーザーと関係しない他のソーシャル・ネットワークまたはサービスと関連するサービス・フィーチャーは、ディスエーブルにされ、おそらくは全く表示されないであろう。
【0012】
[0021]
図1は、サービス・フィーチャーを動的にイネーブルにするためのプロセス100を示す。
図1の以下の説明は、ユーザーとサービス・アプリケーションとのアソシエーション(association)を説明するため、従って、このアソシエーションにより、どのようにして生産性アプリケーション201および221内の対応するサービス・フィーチャーが動的にイネーブルにされるかを説明するために、
図2を参照して行う。
図3は、プロセス100をインプリメントすることができる適切な計算システムの短い一般的な説明を提供することを意図している。
【0013】
[0022] ここで
図1を参照すると、ステップ101で開始して、生産性アプリケーションと関連するユーザーが識別される。
図2において、強化されたフィーチャー環境200は、2つの例示の生産性アプリケーション201および221を含み、それぞれ、異なるユーザーAおよびBにより使用される。即ち、ユーザーAは生産性アプリケーション201と関連し、ユーザーBは生産性アプリケーション221と関連する。
【0014】
[0023] 生産性アプリケーション201および221は、同じアプリケーション、同じアプリケーションの異なるバージョン、または完全に異なるアプリケーションで有り得ることを、理解すべきである。生産性アプリケーションの例は、オフィス生産性スイート(office productivity suite)、会計ソフトウェア、グラフィックス・アプリケーション、ゲーム・アプリケーション、データベース・プログラム、および任意の数の他のタイプのアプリケーションを含む。前述のように、ユーザーがインタラクションするアプリケーション・データの例は、ワード・プロセッシング・ドキュメント、スプレッドシート、データベース、フォト、ゲーム環境などを含む。
【0015】
[0024] ステップ103において、ユーザーと関連するサービス・アプリケーションが識別される。ここで示される例では、強化されたフィーチャー環境200は、サービス・アプリケーション215、サービス・アプリケーション217、およびサービス・アプリケーション219を含む。また、示されている例では、サービス・アプリケーション215が3つの異なるユーザーであるユーザーA、ユーザーM、およびユーザーNと関連することが示されている。サービス・アプリケーション217は、3つの異なるユーザーであるユーザーA、ユーザーB、およびユーザーNと関連することが示されている。また、サービス・アプリケーション219は、3つの異なるユーザーであるユーザーM、ユーザーB、およびユーザーNと関連することが示されている。従って、ユーザーAは、アプリケーション215および217と関連し、ユーザーBは、サービス・アプリケーション217および219と関連する。サービスという用語は、サービス・アプリケーションと交換可能に用いられ得ることを、理解すべきである。例えば、ソーシャル・ネットワークは、サービスと考えることができ、ユーザーがソーシャル・ネットワークへアクセスする際に介するウェブ・サーバーは、そのサービスを提供する1又は複数のアプリケーションを実行することができる。
【0016】
[0025] 最後に、ステップ105において、識別されたサービス・アプリケーションに対応するサービス・フィーチャーが、イネーブルにされる。生産性アプリケーション201および221内には、それぞれ、生産性フィーチャー203および223が示されている。生産性フィーチャー203は、サービス・アプリケーション215に対応するサービス・フィーチャー205と、サービス・アプリケーション217に対応するサービス・フィーチャー207とを含む。生産性フィーチャー223は、サービス・アプリケーション215に対応すると想定されるサービス・フィーチャー225を含む。生産性フィーチャー223はまた、サービス・アプリケーション217に対応するサービス・フィーチャー227を含む。
【0017】
[0026] サービス・フィーチャー209は、サービス・アプリケーション219に対応すると想定され、生産性アプリケーション201のフィーチャーとして示されているが、生産性フィーチャー203のサブフィーチャーとしては示されていない。サービス・フィーチャー229は、サービス・アプリケーション219に対応すると想定されているが、生産性アプリケーション221のフィーチャーとして示されおり、生産性フィーチャー223のサブフィーチャーとしては示されていない。これは、幾つかのサービス・フィーチャーは生産性フィーチャーのサブフィーチャーであり得るが、他のものは生産性フィーチャーのサブフィーチャーではない個別のフィーチャーで有り得ることを説明することを、意図している。実際において、幾つかのサービス・フィーチャー自体を生産性フィーチャーと考えられ得ることを、理解すべきである。
【0018】
[0027] ここで、サービス・フィーチャー205およびサービス・フィーチャー207は、ユーザーAに対してイネーブルにされているところが示され、サービス・フィーチャー209は、ディスエーブルにされていることを、網掛けにより表している。同様に、サービス・フィーチャー227およびサービス・フィーチャー229は、イネーブルにされているところが示され、サービス・フィーチャー225は、ディスエーブルにされていることを、網掛けにより表している。生産性フィーチャーのサブフィーチャーであるか否かにかかわらず、任意のサービス・フィーチャーを動的にイネーブルにできることを、理解すべきである。
【0019】
[0028] ここで
図3を参照すると、フィーチャー・イネーブル化システム300と、関連する説明とは、プロセス100をインプリメントできる適切な計算環境の簡単な一般的な説明を提供することを、意図している。計算デバイスおよびソフトウェア計算システムの多くの他の構成を用いて、サービス・フィーチャーを動的にイネーブルにするシステムをインプリメントすることもできる。
【0020】
[0029] フィーチャー・イネーブル化システム300は、生産性アプリケーション内のサービス・フィーチャーを動的にイネーブルにすることができる任意のタイプの計算システムとすることができ、例えば、サーバー・コンピューター、クライアント・コンピューター、インターネット・アプライアンス、またはこれらの任意の組み合わせや変形物などとすることができる。後に詳細に説明する
図4は、計算システムの例を提供する。実際、フィーチャー・イネーブル化システム300は、1つの計算システムとしてインプリメントすることができるが、複数の計算システムにわたる分散様式でインプリメントすることもできる。例えば、フィーチャー・イネーブル化システム300は、サーバー・システム(示さず)を表すものであり得、サービス・フィーチャーをイネーブルにするために、生産性アプリケーション201および221を実行するコンピューター・システム(示さず)は、そのサーバー・システムと通信を行う。しかし、フィーチャー・イネーブル化システム300はまた、生産性アプリケーション201および221を実行するコンピューター・システムを表すものであり得る。実際、フィーチャー・イネーブル化システム300は、プロセス100をインプリメントする場合にはサービス・フィーチャーを動的にイネーブルにできる専門化されたシステムとなる汎用計算システムの例として、提供されている。
【0021】
[0030] フィーチャー・イネーブル化システム300は、処理システム301、ストレージ・システム303、およびフィーチャー・イネーブル化ソフトウェア305を含む。処理システム301は、ストレージ・システム303と通信できるように結合される。ストレージ・システム303はフィーチャー・イネーブル化ソフトウェア305を格納し、フィーチャー・イネーブル化ソフトウェア305は、処理システム301により実行されたときに、プロセス100および強化されたフィーチャー環境200に関して説明したように、フィーチャー・イネーブル化システム300に対して、動作するように命令する。
【0022】
[0031] 継続して
図3を参照すると、処理システム301は、ストレージ・システム303からフィーチャー・イネーブル化ソフトウェア305を取り出して実行するマイクロプロセッサーおよび他の回路を含むことができる。処理システム301は、1つの処理デバイス内でインプリメントすることができるが、プログラム命令の実行の際に共になって働く複数の処理デバイスまたはサブシステムにわたって分散させることもできる。処理システム301の例は、汎用型の中央処理装置、特定用途向けプロセッサー、およびグラフィックス・プロセッサー、そして任意の他のタイプの処理装置を含む。
【0023】
[0032] ストレージ・システム303は、処理システム301により読取可能であり且つフィーチャー・イネーブル化ソフトウェア305を格納可能である任意のストレージ媒体を、含むことができる。ストレージ・システム303は、揮発性および不揮発性、および取り外し可能および取り外し不可能である媒体を含むことができ、その媒体は、コンピューター読取可能命令、データ構造、プログラム・モジュール、または他のデータなどのような情報を格納するための任意の方法または技術により実現される。ストレージ・システム303は、1つのストレージ・デバイスとしてインプリメントすることができるが、複数のストレージ・デバイスまたはサブシステムにわたってインプリメントすることもできる。ストレージ・システム303は、コントローラーなどのような、処理システム301と通信可能な追加のエレメントを含むことができる。
【0024】
[0033] ストレージ媒体の例は、ランダム・アクセス・メモリ、リード・オンリー・メモリ、磁気ディスク、光ディスク、およびフラッシュ・メモリ、そしてそれらの任意の組み合わせや変形物、または任意の他のタイプのストレージ媒体を含む。幾つかの実装では、ストレージ媒体は非一時的ストレージ媒体とすることができる。幾つかの実装では、ストレージ媒体の少なくとも一部を一時的なものとすることができる。ストレージ媒体は伝播される信号ではないことを、理解すべきである。
【0025】
[0034] フィーチャー・イネーブル化ソフトウェア305は、プロセス100が埋め込まれたコンピューター・プログラム命令、ファームウェア、または何らかの他の形態の機械読取可能処理命令を含む。フィーチャー・イネーブル化ソフトウェア305は、1つのアプリケーションとしてインプリメントできるが、複数のアプリケーションとすることもできる。フィーチャー・イネーブル化ソフトウェア305は、スタンドアローンのアプリケーションとすることができるが、複数のデバイスへ分散された他のアプリケーション内にインプリメントすることもでき、生産性アプリケーション・ソフトウェアおよびオペレーティング・システム・ソフトウェアを含むが、これらには限定されない。
【0026】
[0035] 一般に、フィーチャー・イネーブル化ソフトウェア305は、処理システム301へロードされて実行されると、処理システム301およびフィーチャー・イネーブル化システム300全体を、汎用計算システムから特定用途向け計算システムへと変換するが、その変換は、プロセス100および関連する説明により説明した生産性アプリケーション内のサービス・フィーチャーを動的にイネーブルにするようにカスタム化するものである。
【0027】
[0036] また、フィーチャー・イネーブル化ソフトウェア305をエンコーディングすることは、ストレージ・システム303の物理的構造を変換する。物理的構造の特定の変換は、この説明の異なる実装における様々なファクターに応じたものとなり得る。そのようなファクターの例は、ストレージ・システム303のストレージ媒体をインプリメントするために用いられる技術や、コンピューター・ストレージ媒体が一次ストレージとして特徴付けられるか二次ストレージとして特徴付けされるかなどを含むことができるが、これらには限定されない。
【0028】
[0037] 例えば、コンピューター・ストレージ媒体が半導体ベースのメモリとしてインプリメントされる場合、フィーチャー・イネーブル化ソフトウェア305は、半導体メモリ内でソフトウェアがエンコードされるときに、半導体メモリの物理的状態を変換することができる。例えば、フィーチャー・イネーブル化ソフトウェア305は、半導体メモリを構成するトランジスター、キャパシター、または他の個別の回路エレメントの状態を変換することができる。
【0029】
[0038] 磁気媒体や光媒体に関しても同様の変換が生じ得る。この説明の範囲から離れずに、物理的媒体の他の変換も可能であり、前記の例は単に説明を容易にするために提供されている。
【0030】
[0039] 再び
図1〜
図3を参照すると、フィーチャー・イネーブル化ソフトウェア305を用いるフィーチャー・イネーブル化システム300の動作を通じて、生産性アプリケーション201および221に対して変換が行われる。例として、生産性アプリケーション201または221は、その中での様々なサービス・フィーチャーのイネーブル化により、1つの状態から別の状態へと変換されたと考えることができる。
【0031】
[0040] フィーチャー・イネーブル化システム300は、追加のデバイス、フィーチャー、または機能を有することができる。フィーチャー・イネーブル化システム300は、オプションとして、例えば、キーボード、マウス、音声入力デバイス、タッチ入力デバイス、およびそれらと同等の入力デバイスなどのような、入力デバイスを有することができる。ディスプレイ、スピーカー、プリンター、および他のタイプの出力デバイスなどのような出力デバイスを含むこともできる。また、フィーチャー・イネーブル化システム300は、例えば、分散型の計算および通信の環境において有線またはワイヤレスのネットワークを介してフィーチャー・イネーブル化システム300が他のデバイスと通信することを可能にする通信接続および通信デバイスを、含むことができる。これらのデバイスは、この分野では良く知られており、ここでの長い説明は不要である。
【0032】
[0041]
図4〜
図8は実装に関し、それらの実装により、クライアント・デバイスはサーバー・システムとインターフェースして、クライアント・デバイスのオペレーターにより用いられる生産性アプリケーション内のサービス・フィーチャーをイネーブルにする。簡単に述べると、
図4は、強化されたフィーチャー環境を示し、
図5および
図6は、強化されたフィーチャー環境内での様々なデバイスとシステムとの間でのデータの演算フローを示す。
図7および
図8は、強化されたフィーチャー環境のエレメントとそれらのインタラクションとの更に詳細な図を示す。
【0033】
[0042] ここで
図4を参照すると、実装における強化されたフィーチャー環境400が示されている。強化されたフィーチャー環境400内での3つの異なるシナリオが示され、各シナリオ内で少なくともホストされた及びホストされていない実装がある。クライアント・デバイス421および431と関連する第1シナリオは、個人アイデンティティにより識別されたユーザーに向けられており、そこから、関連するサービスが識別され、関連するサービス・フィーチャーがイネーブルにされる。クライアント・デバイス441および451と関連する第2シナリオは、生産性アイデンティティに基づいてユーザーを識別することに向けられており、クライアント・デバイス461および471と関連する第3シナリオは、エンタープライズ・アイデンティティに基づいてユーザーを識別することに向けられている。
【0034】
[0043] 強化されたフィーチャー環境400は、開放型通信ネットワーク(open communication network)401を含み、その少なくとも一部はインターネットとして一般に知られているものと考えることができ、また、強化されたフィーチャー環境400は、私設通信ネットワーク411を含み、これはイントラネットと呼ばれ得る。クライアント・デバイス421、431、441、および451は、開放型通信ネットワーク401を介して、サービス管理システム403と通信し、幾つかの場合には、ホストされたアプリケーション・サーバー439と通信する。
【0035】
[0044] また、クライアント・デバイス421、431、441、および451は、開放型通信ネットワーク401を介してクラウド・サービス491、493、および495と通信することができる。クラウド・サービスは、インターネットを介して提供されるサービスである。クラウド・サービス491、493、および495の例は、クラウド・ドライブ、フォト共有ウェブサイト、およびソーシャル・ネットワーク・ウェブサイトを含み、そして、インターネットを介しての一般的な能力からクラウド・サービスと考えられ得る様々なサービスのうちの任意のものを含む。クライアント・デバイス421、431、441、および451の例は、デスクトップ型およびラップトップ型のコンピューター、タブレット・コンピューター、モバイル通信デバイス、および他のタイプの計算デバイスやアプライアンスを含む。クライアント・デバイス421、431、441、および451は、簡潔にするためにここでは示していない任意の数の良く知られたアクセス技術を用いて、開放型通信ネットワーク401へアクセスする。一般に家庭や会社で見られる、またはネットワーク・サービス・プロバイダーにより提供される有線またはワイヤレスのアクセス・ネットワークは、アクセス技術の例である。
【0036】
[0045]
図4に関して継続すると、クライアント・デバイス461および471は、私設通信ネットワーク411を介して、サービス管理システム413と通信し、幾つかの場合にはホストされたアプリケーション・サーバー479と通信する。また、クライアント・デバイス461および471は、クラウド・491、493、および495と通信することができる。ここでは、私設通信ネットワーク411は、開放型通信ネットワーク401と通信するものとして示されている。しかし、これはオプションとすることができ、実際、クライアント・デバイス461および471は、何らかの他の通信チャンネルやネットワークによりクラウド・サービス491、493、および495と通信できることを、理解すべきである。また、クライアント・デバイス461および471はローカル・サービス497と通信することができ、ローカル・サービスとは、クラウド・サービスとは逆の、インターネットを介さないイントラネット内での一般的な能力によるものである。ローカル・サービス497の例は、クラウド・ドライブ、エンタープライズ・ソーシャル・ネットワーク、ブログ・サイトなどを含む。クライアント・デバイス461および471の例は、デスクトップおよびラップトップのコンピューター、タブレット・コンピューター、モバイル通信デバイス、および他のタイプの計算デバイスやアプライアンスを含む。クライアント・デバイス461および471は、簡潔にするためにここでは示していない任意の数の良く知られた有線またはワイヤレスのアクセス技術を用いて、私設通信ネットワーク411へアクセスする。
【0037】
[0046] ここで第1シナリオを参照すると、示される例では、クライアント・デバイス421は、フィーチャー・イネーブル化クライアント427、生産性アプリケーション425、および個人識別し423を含む。生産性アプリケーション425は、クライアント・デバイス421へインストールされて実行されることができる任意の生産性アプリケーションとすることができる。生産性アプリケーションは、コンテンツを生成するため、作成するため、またはコンテンツとのインタラクションのために用いられるソフトウェア・プログラムである。生産性アプリケーション425の例は、マイクロソフト(登録商標)のWord(登録商標)ドキュメント・エディター、マイクロソフト(登録商標)のExcel(登録商標)スプレッドシート・プログラム、マイクロソフト(登録商標)のPowerPoint(登録商標)プレゼンテーション・プログラム、およびマイクロソフト(登録商標)のOutlook(登録商標)Eメールおよびカレンダー・プログラムを含む。他の例は、IBM(登録商標)のLotus Smart Suite(登録商標)、Coerl(登録商標)のWordPerfect(登録商標)、および任意のベンダーから提供される任意の他のタイプの生産性アプリケーション、例えば、会計ソフトウェアやデータベース・ソフトウェアなどを含む。コンテンツの例は、ワード・プロセッシング・ドキュメント、スプレッドシート、データベース、およびフォトを含む。
【0038】
[0047] フィーチャー・イネーブル化クライアント427は、生産性アプリケーション425内のサービス・フィーチャーを動的にイネーブルにするために、サービス管理システム403で実行されるフィーチャー・イネーブル化サーバー(feature enablement server)407と通信することができる任意のアプリケーション・プログラムとすることができ、これについては以下で更に詳細に説明する。フィーチャー・イネーブル化クライアント427は、スタンドアローンのクライアント・アプリケーションとすることができるが、生産性アプリケーション425内に統合することも、オペレーティング・システム・ソフトウェアと統合することもできる。
【0039】
[0048] 個人識別子423はログイン・アイデンティティを表し、これは、ユーザーを識別し且つユーザーと個人的に対応する。個人識別子423の例は、マイクロソフト(登録商標)からのWindows Live(登録商標)として知られるサービスのスイートへアクセスするために用いられるWindows Live(登録商標)ID、マイクロソフト(登録商標)からのHotmail(登録商標)Eメール・システムへアクセスするために用いられるHotmail(登録商標)識別子、およびグーグル(登録商標)により提供されるEメール・サービスおよび他のサービスへアクセスするためのGmail(登録商標)識別子を含むが、これらには限定されない。任意の数の様々な個人識別子を使用可能であり、それらはここでの開示の範囲内にあると考えられている。ユーザーは、個人識別子423を用いて、クライアント・デバイス421で実行される生産性アプリケーション425へ、またおそらくは他のアプリケーションまたはオペレーティング・システムへ、ログインする。
【0040】
[0049] 動作において、クライアント・デバイス421を操作するユーザーは、個人識別子423を用いて生産性アプリケーション425へログインする。これは、生産性アプリケーション425により提供されるユーザー・インターフェースを用いて行うことができるが、また、オペレーティング・システムのインターフェースまたは何らかの他のタイプのログイン機構を通じて達成することもできる。生産性アプリケーション425により呼び出されるであろうフィーチャー・イネーブル化クライアント427は、生産性アプリケーション425内の何れのサービス・フィーチャーをイネーブルにするかを決定するために、フィーチャー・イネーブル化サーバー407との通信を開始する。個人識別子423を用いて、フィーチャー・イネーブル化サーバー407は、ユーザーと関連する適切なサービスを識別し、それのインジケーションをフィーチャー・イネーブル化クライアント427へ返す。フィーチャー・イネーブル化クライアント427は、フィーチャーと関連するサービスとの間での対応に基づいて、何れのサービス・フィーチャーをイネーブルにするかを、生産性アプリケーション425へ通信する。
【0041】
[0050] サービス・フィーチャーのイネーブル化は、多数の方法で生じさせることができる。例えば、生産性アプリケーション425は、サービス・フィーチャーのグラフィック表現をレンダリングするために、サービス・フィーチャーに対応するグラフィックス・オブジェクトを呼び出すことができる。レンダリングは、グラフィック表現をアクティブにすること又はユーザーに見えるようにすることにより、行うことができる。幾つかの場合、ディスエーブルにされたサービス・フィーチャーをグレーアウトし、イネーブルにされたサービス・フィーチャーをグレーではない色で呈示することができる。サービス・フィーチャーのグラフィック表現自体は、ユーザーがそのグラフィック表現を選択したときに実行され得るコードへリンクすること、またはそのコードを含むことができる。そのようなグラフィック表現の一般的な例は、ボタン、ハイパーリンク、およびドロップダウン・メニューのアイテムである。別の例では、生産性アプリケーション425は、サービス・フィーチャーに対応するグラフィックス・オブジェクト内の値や設定を、イネーブルにされたサービス・フィーチャーのグラフィック表現の視覚的特性を変えるために、変更することができる。他の多くの実装も可能であることを理解すべきである。
【0042】
[0051] サービス・フィーチャーがイネーブルにされると、生産性アプリケーション425は、それらのサービス・フィーチャーをユーザーが使用できるようにし、クラウド・サービス491、493、および495の任意のものとインタラクションできるようにする。例えば、クラウド・サービス491が、クラウド・ドライブであり、ユーザーと関連すると仮定すると、ユーザーは、クラウド・ドライブへドキュメントをセーブすることを可能とされる。同様に、ユーザーは、特定の例では、クラウド・サービス491、493、および495へフォトをアップロードすることや、それらのクラウド・サービスとコンテンツを共有することを可能とされ、また、それらのサービスからコンテンツをダウンロードすることを可能とされる。別の例では、クラウド・サービス491がソーシャル・ネットワーク・ウェブサイトであると仮定すると、ユーザーは、フォトやワード・プロセッシング・ドキュメントなどのようなコンテンツを、そのソーシャル・ネットワーク・ウェブサイトへアップロードすることを可能とされる。
【0043】
[0052] 更に
図4に示されるように、クライアント・デバイス431は、ホストされたアプリケーション435と個人識別子433とを含む。クライアント・デバイス421と同様に、個人識別子433は、ユーザーと関連する個人的サービス、例えば、ウェブメールやメッセージングなどへアクセスするためにユーザーにより用いられるログイン・アイデンティティを表す。ホストされたアプリケーション435は、ホストされたアプリケーション・サーバー439によりホストされ且つそのサーバー439からサービスされる、クライアント・デバイス431上、例えば、ウェブ・ブラウザー・アプリケーション内などで、クライアント・インスタンスとして実行する生産性アプリケーションである。ホストされたアプリケーション435の例は、限定ではないが、Word(トレードマーク)ドキュメント・エディター、Excel(登録商標)スプレッドシート・プログラム、PowerPoint(登録商標)プレゼンテーション・プログラム、およびOutlook(登録商標)Eメールおよびカレンダー・プログラムのホストされたバージョンを含み、これらの全てはマイクロソフト(登録商標)のOffice(トレードマーク)生産性アプリケーション・スイートのホストされたバージョン内で提供される。他の例は、グーグル(登録商標)からのグーグル(登録商標)Docs(登録商標)のアプリケーション・スイート、およびZoho(登録商標)からのZoho(登録商標)オフィス・スイートを含む。更に別の例は、任意のベンダーにより提供される任意の他のタイプのホストされた生産性アプリケーション、例えば、オンラインで提供される会計およびデータベース・ソフトウェア、ゲーム・アプリケーション、および通信アプリケーションなどを含む。ホストされたモードで実行できるが、ホストされないモード、例えば、ローカル・キャッシュ・モードなどでも実行できるハイブリッドのアプリケーションも、範囲内にあると考えられている。
【0044】
[0053] 動作において、クライアント・デバイス431を操作するユーザーは、個人識別子433を用いて、ホストされた生産性アプリケーション435へログインする。これは、ユーザーがホストされた生産性アプリケーション435へアクセスする際に介するウェブ・ブラウザーにより提供されるユーザー・インターフェースまたは他のクライアント・インターフェースを用いて、行うことができるが、また、オペレーティング・システムのインターフェースまたは何らかの他のタイプのログイン機構を通じて達成することもできる。ホストされたアプリケーション・サーバー439において実行されるフィーチャー・イネーブル化クライアント437は、ホストされた生産性アプリケーション435内の何れのサービス・フィーチャーをイネーブルにするかを決定するために、フィーチャー・イネーブル化サーバー407との通信を開始する。個人識別子433を用いて、フィーチャー・イネーブル化サーバー407は、ユーザーと関連する適切なサービスを識別し、それのインジケーションをフィーチャー・イネーブル化クライアント437へ返す。フィーチャー・イネーブル化クライアント437は、フィーチャーと関連するサービスとの間での対応に基づいて、何れのサービス・フィーチャーをイネーブルにするかを、ホストされた生産性アプリケーション435へ通信する。生産性アプリケーション425に関して先に述べたように、イネーブルにされると、ホストされた生産性アプリケーション435は、それらのサービス・フィーチャーをユーザーが使用できるようにし、クラウド・サービス491、493、および495の任意のものとインタラクションできるようにする。
【0045】
[0054] ここで、上記の第2シナリオを参照すると、クライアント・デバイス441は、生産性アプリケーション445と生産性識別子443とを含む。生産性アプリケーション445の例は、上記のマイクロソフト(登録商標)、IBM(登録商標)、およびCorel(登録商標)により提供されるオフィス・スイートと、任意の他のタイプの生産性アプリケーションとを含む。フィーチャー・イネーブル化クライアント447は、生産性アプリケーション445内のサービス・フィーチャーを動的にイネーブルにするために、フィーチャー・イネーブル化サーバー407と通信でき、サービス管理システム403で実行できる任意のアプリケーション・プログラムとすることができ、これについては以下で更に詳細に説明する。
【0046】
[0055] 生産性識別子443は、例えば会社や学校などのようなユーザーの属する組織を識別し且つその組織と関連するログイン・アイデンティティを表し、生産性アプリケーション445のプロバイダーが生産性アプリケーション445の供給を管理および処理することを可能にする。例えば、組織は、Office365(トレードマーク)生産性スイートのプロバイダーであるマイクロソフト(登録商標)に対して、その組織のアクティブ・ディレクトリーのフェデレーションを行う(federate)ことができる。Office365(トレードマーク)はインターネット・ベースのアプリケーションのセットであるので、ここでは、ユーザーは、それらの生産性アプリケーションのローカルにインストールされたバージョンも使用できると考えられており、なおもそれはユーザーのOffice365(トレードマーク)アイデンティティにより識別される。即ち、生産性識別子443は、生産性アプリケーション425と直接に関連するものである。1つの例示の識別子は、JohnSmith@O365.comである。任意の数の様々な生産性識別子を使用可能であり、それらはこの説明の範囲内にあると考えられている。ユーザーは、生産性識別子443を用いて、クライアント・デバイス441で実行される生産性アプリケーション445へ、またおそらくは他のアプリケーションまたはオペレーティング・システムへ、ログインする。
【0047】
[0056] 動作において、クライアント・デバイス441を操作するユーザーは、生産性識別子443を用いて生産性アプリケーション445へログインする。これは、生産性アプリケーション445により提供されるユーザー・インターフェースを用いて行うことができるが、また、オペレーティング・システムのインターフェースまたは何らかの他のタイプのログイン機構を通じて達成することもできる。生産性アプリケーション445により呼び出されるであろうフィーチャー・イネーブル化クライアント447は、生産性アプリケーション445内の何れのサービス・フィーチャーをイネーブルにするかを決定するために、フィーチャー・イネーブル化サーバー407との通信を開始する。個人識別子443を用いて、フィーチャー・イネーブル化サーバー407は、ユーザーと関連する適切なサービスを識別し、それのインジケーションをフィーチャー・イネーブル化クライアント447へ返す。フィーチャー・イネーブル化クライアント447は、フィーチャーと関連するサービスとの間での対応に基づいて、何れのサービス・フィーチャーをイネーブルにするかを、生産性アプリケーション445へ通信する。
【0048】
[0057] サービス・フィーチャーがイネーブルにされると、生産性アプリケーション445は、それらのサービス・フィーチャーをユーザーが使用できるようにし、クラウド・サービス491、493、および495の任意のものとインタラクションできるようにし、例えば、ファイルやフォトや他のそのようなコンテンツをサービスの任意のものへアップロードできるように、また、コンテンツをサービスからダウンロードできるようにする。上記のように、サービス・フィーチャーのイネーブル化は、多数の方法で生じさせることができる。多くの可能性の中で、幾つかの例は、サービス・フィーチャーのグラフィック表現をレンダリングするために、サービス・フィーチャーに対応するグラフィックス・オブジェクトを呼び出すこと、およびサービス・フィーチャーに対応するグラフィックス・オブジェクト内の値や設定を、イネーブルにされたサービス・フィーチャーのグラフィック表現の視覚的特性を変えるために変更することを含む。
【0049】
[0058] 更に
図4に示すように、クライアント・デバイス451は、ホストされたアプリケーション455と生産性識別子453とを含む。クライアント・デバイス441と同様に、生産性識別子は、ユーザーと組織とを結びつけるログイン・アイデンティティを表し、製品プロバイダーがホストされた生産性アプリケーション455の供給を管理および処理することを可能にする。JohnSmith@O365.comなどのようなOffice365(トレードマーク)アイデンティティは一例である。ホストされた生産性アプリケーション455は、ホストされたアプリケーション・サーバー439によりホストされ且つそのサーバー439からサービスされる、クライアント・デバイス451上、例えば、ウェブ・ブラウザー・アプリケーション内などで、クライアント・インスタンスとして実行れる生産性アプリケーションである。ホストされたアプリケーション455の例は、Word(トレードマーク)ドキュメント・エディター、Excel(登録商標)スプレッドシート・プログラム、PowerPoint(登録商標)プレゼンテーション・プログラム、およびOutlook(登録商標)Eメールおよびカレンダー・プログラムのホストされたバージョンを含み、これらの全てはマイクロソフト(登録商標)のOffice365(トレードマーク)生産性アプリケーション・スイート内で提供される。他の例は、グーグル(登録商標)からのグーグル(登録商標)Docs(登録商標)のアプリケーション・スイート、およびZoho(登録商標)からのZoho(登録商標)オフィス・スイートを含む。
【0050】
[0059] 動作において、クライアント・デバイス451を操作するユーザーは、生産性識別子453を用いて、ホストされた生産性アプリケーション455へログインする。これは、ユーザーが生産性アプリケーション455へアクセスする際に介するウェブ・ブラウザーにより提供されるユーザー・インターフェースまたは他のクライアント・インターフェースを用いて、行うことができるが、また、オペレーティング・システムのインターフェースまたは何らかの他のタイプのログイン機構を通じて達成することもできる。ホストされたアプリケーション・サーバー439において実行されるフィーチャー・イネーブル化クライアント437は、ホストされた生産性アプリケーション455内の何れのサービス・フィーチャーをイネーブルにするかを決定するために、フィーチャー・イネーブル化サーバー407との通信を開始する。生産性識別子453を用いて、フィーチャー・イネーブル化サーバー407は、ユーザーと関連する適切なサービスを識別し、それのインジケーションをフィーチャー・イネーブル化クライアント437へ返す。フィーチャー・イネーブル化クライアント437は、フィーチャーと関連するサービスとの間での対応に基づいて、何れのサービス・フィーチャーをイネーブルにするかを、ホストされた生産性アプリケーション455へ通信する。生産性アプリケーション445に関して先に説明したように、サービス・フィーチャーがイネーブルにされると、生産性アプリケーション455は、それらのサービス・フィーチャーをユーザーが使用できるようにし、サービス491、493、および495の任意のものとインタラクションできるようにする。
【0051】
[0060] ここで、上記の第3シナリオを参照すると、クライアント・デバイス461は、生産性アプリケーション465とエンタープライズ識別子463とを含む。生産性アプリケーション465は、クライアント・デバイス461へインストールされ且つクライアント・デバイス461で実行できる任意の生産性アプリケーションとすることができる。生産性アプリケーション465の例は、上記のマイクロソフト(登録商標)、IBM(登録商標)、およびCorel(登録商標)により提供されるものを含む。フィーチャー・イネーブル化クライアント467は、生産性アプリケーション465内のサービス・フィーチャーを動的にイネーブルにするために、フィーチャー・イネーブル化サーバー417と通信でき、サービス管理システム413で実行できる任意のアプリケーション・プログラムとすることができ、これについては以下で更に詳細に説明する。
【0052】
[0061] エンタープライズ識別子463は、例えば会社や学校などのようなユーザーを含む組織を識別し且つその組織と関連するログイン・アイデンティティを表し、生産性アプリケーション465の供給を管理および処理する。生産性アプリケーションの例は、マイクロソフト(登録商標)からのWord(トレードマーク)、Excel(登録商標)、PowerPoint(登録商標)、およびOutlook(登録商標)のアプリケーションを含む。即ち、エンタープライズ識別子463は、acme\JohnSmithなどのような、組織と関連するものである。任意の数の様々なエンタープライズ識別子を使用可能であり、それらはこの説明の範囲内にあると考えられている。ユーザーは、エンタープライズ識別子463を用いて、クライアント・デバイス461で実行される生産性アプリケーション465へ、またおそらくは他のアプリケーションまたはオペレーティング・システムへ、ログインする。
【0053】
[0062] 動作において、クライアント・デバイス461を操作するユーザーは、エンタープライズ識別子463を用いて生産性アプリケーション465へログインする。これは、生産性アプリケーション465により提供されるユーザー・インターフェースを用いて行うことができるが、また、オペレーティング・システムのインターフェースまたは何らかの他のタイプのログイン機構を通じて達成することもできる。生産性アプリケーション465により呼び出されるであろうフィーチャー・イネーブル化クライアント467は、生産性アプリケーション465内の何れのサービス・フィーチャーをイネーブルにするかを決定するために、フィーチャー・イネーブル化サーバー417との通信を開始する。エンタープライズ識別子463を用いて、フィーチャー・イネーブル化サーバー417は、ユーザーと関連する適切なサービスを識別し、それのインジケーションをフィーチャー・イネーブル化クライアント467へ返す。フィーチャー・イネーブル化クライアント467は、フィーチャーと関連するサービスとの間での対応に基づいて、何れのサービス・フィーチャーをイネーブルにするかを、生産性アプリケーション465へ通信する。
【0054】
[0063] サービス・フィーチャーがイネーブルにされると、生産性アプリケーション465は、それらのサービス・フィーチャーをユーザーが使用できるようにし、クラウド・サービス491、493、および495の任意のものとインタラクションできるようにし、例えば、コンテンツをサービスへアップロードできるように、また、コンテンツをサービスからダウンロードできるようにする。サービス497に対応するサービス・フィーチャーまたはフィーチャーもイネーブルにすることができる。上記のように、サービス・フィーチャーのイネーブル化は、多数の方法で生じさせることができる。多くの可能性の中で、幾つかの例は、サービス・フィーチャーのグラフィック表現をレンダリングするために、サービス・フィーチャーに対応するグラフィックス・オブジェクトを呼び出すこと、およびサービス・フィーチャーに対応するグラフィックス・オブジェクト内の値や設定を、イネーブルにされたサービス・フィーチャーのグラフィック表現の視覚的特性を変えるために変更することを含む。
【0055】
[0064] 更に
図4に示すように、クライアント・デバイス471は、ホストされたアプリケーション475とエンタープライズ識別子473とを含む。クライアント・デバイス461と同様に、エンタープライズ識別子は、ユーザーと組織とを結びつけるログイン・アイデンティティを表し、ホストされた生産性アプリケーション475の供給を管理および処理する。ホストされた生産性アプリケーション475は、ホストされたアプリケーション・サーバー479によりホストされ且つそのサーバー479からサービスされる、クライアント・デバイス471上、例えば、ウェブ・ブラウザー・アプリケーション内などで、クライアント・インスタンスとして実行れる生産性アプリケーションである。ホストされたアプリケーション475の例は、Word(トレードマーク)ドキュメント・エディター、Excel(登録商標)スプレッドシート・プログラム、PowerPoint(登録商標)プレゼンテーション・プログラム、およびOutlook(登録商標)Eメールおよびカレンダー・プログラムのホストされたバージョンを含み、これらの全てはマイクロソフト(登録商標)からのものである。他の例は、グーグル(登録商標)からのグーグル(登録商標)Docs(登録商標)のアプリケーション・スイートを含み、これもローカルにホストすることができる。
【0056】
[0065] 動作において、クライアント・デバイス471を操作するユーザーは、エンタープライズ識別子473を用いて、ホストされた生産性アプリケーション475へログインする。これは、ユーザーが生産性アプリケーション475へアクセスする際に介するウェブ・ブラウザーにより提供されるユーザー・インターフェースまたは他のクライアント・インターフェースを用いて、行うことができるが、また、オペレーティング・システムのインターフェースまたは何らかの他のタイプのログイン機構を通じて達成することもできる。ホストされたアプリケーション・サーバー479において実行されるフィーチャー・イネーブル化クライアント477は、ホストされた生産性アプリケーション475内の何れのサービス・フィーチャーをイネーブルにするかを決定するために、フィーチャー・イネーブル化サーバー417との通信を開始する。エンタープライズ識別子473を用いて、フィーチャー・イネーブル化サーバー417は、ユーザーと関連する適切なサービスを識別し、それのインジケーションをフィーチャー・イネーブル化クライアント477へ返す。フィーチャー・イネーブル化クライアント477は、フィーチャーと関連するサービスとの間での対応に基づいて、何れのサービス・フィーチャーをイネーブルにするかを、ホストされた生産性アプリケーション475へ通信する。生産性アプリケーション465に関して先に説明したように、サービス・フィーチャーがイネーブルにされると、生産性アプリケーション475は、それらのサービス・フィーチャーをユーザーが使用できるようにし、サービス491、493、および495の任意のものとインタラクションできるようにする。
【0057】
[0066]
図5は、クライアント・デバイス421とサービス管理システム403とサービス491との間での一つの例示のデータ交換を説明する動作フロー図であり、強化されたフィーチャー環境400の幾つかの動作を示すためのものである。このシナリオでは、ユーザーは、クライアント・デバイス421で生産性アプリケーションを始動させる。クライアント・デバイス421は、サービス管理システム403へユーザー・アイデンティティを提供する。ユーザー・アイデンティティは、生産性アプリケーションに対するログイン動作の間に、またはオペレーティング・システムに対するログイン動作の間に、ユーザーにより提供されていることもある。
【0058】
[0067] 1つの実装では、証明書利用者スイート(Relying Party Suite)(RPS)交換を用いて、サービス管理システム403に対してユーザーの認証および識別を行う。RPSによる実装では、クライアント・デバイス421は、ユーザーの認証を行うためにログイン・サーバー(示さず)と通信する。ユーザーが認証されると仮定すると、ログイン・サーバーは、クライアント・デバイスへ、サービス管理システム403に対してのユーザーの認証に使用されたチケットまたはトークンを提供することができる。クライアント・デバイス421はチケットをサービス管理システム403に呈示し、次に、サービス管理システム403は、ログイン・サーバーと通信して、ユーザーの信頼性を確認する。ユーザーを識別するために広範囲の種類の他の技術を用いることができることを、理解すべきである。
【0059】
[0068] 何れにせよ、サービス管理システム403は、何れのサービスがユーザーと関連するかを識別することへ進み、選択されたサービスのインジケーションをクライアント・デバイス421へ返す。サービス管理システム403がどのようにして関連するサービスを識別するかについての更に詳細な説明は、後に
図7およびサービス・テーブル717と関連して提供する。
【0060】
[0069] 次に、クライアント・デバイス421は、選択されたサービスに対応する生産性アプリケーション内のサービス・フィーチャーをイネーブルにする。幾つかの実装では、クライアント・デバイス421は、何れのサービス・フィーチャーが選択されたサービスに対応するかを判定することもできる。例えば、クライアント・デバイス421で実行されるフィーチャー・イネーブル化クライアント427は、様々なサービスと関連して様々なサービス・フィーチャーのアイデンティティを格納するフィーチャー・テーブルにアクセスすることができる。サービス管理システム403から、何れのサービスがユーザーと関連するかについてのインジケーションを受け取ると、次に、フィーチャー・イネーブル化クライアント427は、フィーチャー・テーブルへアクセスして、特に、何れのサービス・フィーチャーをイネーブルにするかを決定することができる。
【0061】
[0070] 代替的には、フィーチャー・テーブルを、クライアント・デバイス421から離れた別のシステム(示さず)により維持することができる。フィーチャー・イネーブル化クライアント427は、何れのサービス・フィーチャーをイネーブルにするかに関連する情報をシステムが得るために、クエリを行うことができる。別の代替では、サービス管理システム403自体が、フィーチャー・テーブルを格納し、フィーチャー・イネーブル化クライアント427へ、何れのサービス・フィーチャーをイネーブルにするかを示す情報を提供することができる。
【0062】
[0071] 更に別の例では、生産性アプリケーション425内の各サービス・フィーチャーは、自己でイネーブルにする(self-enabled)ことができる。これは、各サービス・フィーチャーが、クライアント・デバイス421に格納された、または代替的には、クライアント・デバイス421から離れて格納されたサービス・テーブルにクエリを行い、何れのサービスがユーザーと関連するとサービス管理システム403により識別されたかを判定することにより、生じさせることができる。次に、識別されたサービスの何れもが、各サービス・フィーチャーにより維持される基準と整合する場合、各サービス・フィーチャーは自己でイネーブルにすることができる。
【0063】
[0072] サービス管理システム403は、生産性アプリケーションがサービス491と通信できるようにするサービス情報を、クライアント・デバイス421へ返せることにも、留意されたい。サービス情報の一例は、ユーザーにより使用されるサービスのインスタンスを識別するサービス識別子である。別の例は、サービスに対してイネーブルにされる能力のリストである。更に別の例は、サービスにおいてユーザーにより用いられるユーザー識別子、例えば、ピア・ツー・ピア・ハンドラーやソーシャル・ネットワーク・ユーザーネームなどである。特定のサービスに関するユーザー・プロフィールへリンクするユーザー・プロフィール・ユニフォーム・リソース・ロケーター(URL)は、サービス情報の更に別の例である。接続固有(connection-specific)URLを、既に選択されているサービスに対して提供することができ、また、接続固有トークンを、最近のセッションが進行中であるか又は最近停止されたサービスに対して提供することができる。接続状態の情報および最終の変更がなされた日付の情報は、サービス情報の別の例である。
【0064】
[0073]
図5において、サービス・アプリケーション491がサービス情報をサービス管理システム403へ提供したことが、更に示されている。サービス491がこのようにサービス情報を直接に提供する必要はないことを、理解すべきである。むしろ、サービス491は、幾らかの情報を発行することができ、それは、次に、サービス管理システム403の維持およびプログラミングと関連する人員または自動ツールにより獲得される。サービス管理システム403はまた、幾つかのシナリオでは、クライアント・デバイス421からのサービス情報を得ることができる。サービス管理システム403へサービス情報を提供するための様々な実装が可能である。
【0065】
[0074] サービス491は、例えば、サービスに対応するイネーブルにされたサービス・フィーチャーの選択により、呼び出されることができる。クライアント・デバイス421は、次に、サービス491へのサービス・コールを生成して、イネーブルにされたサービス・フィーチャーによりサービスされる機能を達成する。例えば、サービス・フィーチャーは、呼び出されたときに、コンテンツをクライアント・デバイス421からソーシャル・ネットワーク・ウェブサイトへ送ることを可能にする送信生産性フィーチャーのサブフィーチャーであり得る。別の例では、サービス・フィーチャーは、呼び出されたときに、クライアント・デバイス421で生成されたコンテンツをクラウド・ストレージ・サービスへセーブすることを可能にするセーブ生産性フィーチャーのサブフィーチャーであり得る。生産性フィーチャーおよびサービス・フィーチャーは、コンテンツの送信や共有やセーブなどのような、それらと関連する機能を呼び出すコマンドまたは他のタイプの制御と考えられ得ることを、理解すべきである。
【0066】
[0075]
図6は、ホストされたアプリケーションを含む別の可能なシナリオを説明する動作フロー
図600を示す。このシナリオでは、クライアント・デバイス431は、ユーザーに対応するユーザー・アイデンティティを、ホストされたアプリケーション・サーバー439へ提供する。ユーザー・アイデンティティは、生産性アプリケーションに対するログイン動作の間に、またはオペレーティング・システムに対するログイン動作の間に、ユーザーにより提供されていることもある。
【0067】
[0076] 何れにせよ、アプリケーション・サーバー439は、ユーザーを認証し、例えば、開放型通信ネットワーク401を介してサービス管理システム403へ配信のリクエストを送ることにより、ユーザー・アイデンティティをサービス管理システム403へ送る。サービス管理システム403は、何れのサービスがユーザーと関連するかを識別し、開放型通信ネットワーク401を介して送られる応答により、選択されたサービスのインジケーションをアプリケーション・サーバー439へ返す。サービス管理システム403はまた、サービス491と通信するために生産性アプリケーションが用いるサービス情報を、アプリケーション・サーバー439へ返すことができる。上記のように、サービス情報の幾つかの例は、サービス識別子、サービスに対してイネーブルにされる能力サービスに対するユーザーネーム、ユーザー・プロフィールURL、接続固有URL、トークンなどを含む。
【0068】
[0077]
図6では、サービス・アプリケーション491がサービス情報をサービス管理システム403へ提供し得ることが、示されている。これは直接の形で行う必要はなく、むしろ、人員が、発行されたリソースからサービス情報を得て、サービス管理システム403を手動で維持およびプログラミングすること、または自動ツールを用いることを含み得ることを、理解すべきである。更に別の実装では、サービス管理システム403は、クライアント・デバイスからサービス情報を得る。サービス管理システム403へサービス情報を提供するための様々な方法が可能であることを、理解すべきである。
【0069】
[0078] アプリケーション・サーバー439は、次に、選択されたサービスに対応する生産性アプリケーション内のサービス・フィーチャーをイネーブルにする。幾つかの実装では、アプリケーション・サーバー439はまた、何れのサービス・フィーチャーが何れの選択されたサービスに対応するかを、判定することができる。
図5と関連して上記で説明したように、この対応を判定するために、アプリケーション・サーバー439または他の場所で維持されるフィーチャー・テーブルや、自己イネーブル化サービス・フィーチャーを用いることなどのような、様々な機構を用いることができる。イネーブルにされたサービス・フィーチャーは、ウェブ・ブラウザーなどのようなクライアント・アプリケーションにより、クライアント・デバイス431を操作するユーザーへ提供されるが、そのクライアント・アプリケーションは、アプリケーション・サーバー439とインタラクションして、生産性アプリケーションを、全ての関連するイネーブルにされたサービス・フィーチャーと共に、ユーザーに呈示する。
【0070】
[0079] サービス491は、例えば、サービスに対応するイネーブルにされたサービス・フィーチャーの選択により、呼び出されることができる。クライアント・デバイス431は、次に、サービス491へのサービス・コールのインジケーションを生成して、イネーブルにされたサービス・フィーチャーの機能を達成する。ホストされたアプリケーション・サーバー439は、そのインジケーションを受け取り、対応するサービス・コールをサービス491へ送る。例えば、サービス・フィーチャーは、呼び出されたときに、コンテンツをサービス491へ送ることを可能にする送信生産性フィーチャーのサブフィーチャーであり得る。
【0071】
[0080]
図7および
図8は、それぞれ、強化されたフィーチャー環境700Aおよび700Bを示し、
図4のクライアント・デバイスおよびサービス管理システムのコンポーネントと、サービス・フィーチャーの動的なイネーブル化を達成するコンポーネント間の動作とを、更に詳細に示す。特に、
図7は、コンテンツをサービスへアップロードするために、ユーザーが生産性アプリケーションのサービス・フィーチャーとインタラクションする例を示す。
図8は、別のサービスからイメージをダウンロードするために、ユーザーが生産性アプリケーションの別のサービス・フィーチャーとインタラクションする例を示す。
【0072】
[0081] クライアント・デバイス421のコンテキストで説明するが、
図7および
図8に記載されている動作は、
図4の強化されたフィーチャー環境400の他のデバイスに対して広く適用可能であることを、理解すべきである。同様に、
図7および
図8に示すデバイスの構造エレメントも、幾つかの変形は存在し得るが、
図4に示すデバイスおよびシステムに対して一般に適用可能である。
【0073】
[0082]
図7では、強化されたフィーチャー環境700Aは、サービス管理システム403、クライアント・デバイス421、およびサービス491を含む。サービス管理システム403は、クライアント・デバイス421およびサービス491と通信する。同様に、クライアント・デバイス421は、サービス管理システム403およびサービス491と通信する。
【0074】
[0083] サービス管理システム403は、処理システム705、通信インターフェース709、およびメモリ707を含む。処理システム705は、通信インターフェース709およびメモリ707と処理可能にリンクされ、メモリ707に格納されたソフトウェアを実行することができる。ソフトウェアを実行する際、処理システム705は、一般に、通信インターフェース709を含むサービス管理システム403を駆動させて、ここで説明するように動作を行う。処理システム705の例は、汎用の中央処理装置、特定用途向けプロセッサー、およびグラフィックス・プロセッサーを含むが、これらには限定されない。メモリ707の例は、ランダム・アクセス・メモリ、リード・オンリー・メモリ、磁気ディスク、光ディスク、およびフラッシュ・メモリ、そしてこれらの任意の組み合わせや変形物、または任意の他のタイプのストレージ媒体を含む。通信インターフェース709は、サービス管理システム403が、例えば、分散型の計算および通信の環境において有線またはワイヤレスのネットワークなどを介して、他のデバイスと通信することを可能にする通信接続およびデバイスを含むことができる。
【0075】
[0084] 前述のように、処理システム705は、メモリ707に格納されたソフトウェアを実行する。
図7は、メモリ707に含まれるソフトウェアの分解図を提供し、ソフトウェアはフィーチャー・イネーブル化サーバー407およびオペレーティング・システム719を含む。フィーチャー・イネーブル化サーバー407は、カタログ・モジュール712、接続モジュール713、サービス付加モジュール715、およびサービス除去モジュール716を含む。
【0076】
[0085] カタログ・モジュール712は、ユーザーがアクセスし得る可能なサービスのカタログを提供する。接続モジュール713は、何れのサービスへユーザーが現在接続しているかを監視し、可用性モジュール714は、何れのサービスとユーザーが関連しているか、および何れのサービスへユーザーが接続したいのであろうかを、追跡する。これらの双方については後に更に詳細に説明する。サービス付加モジュール715は、接続モジュール713および可用性モジュール714を用いて新たなサービスをユーザーが付加できる機構を提供する。同様に、サービス除去モジュール716は、ユーザーがサービスを除去できる機構を提供する。
【0077】
[0086] また、サービス・テーブル717が提供され、これは、様々なユーザーと、ユーザーと様々なサービスとのアソシエーションとについての情報を維持する。サービス・テーブル717は、何れのサービスが何れのユーザーと関連しているかを、可用性モジュール714がどのようにして判定し得るかを示すために、比較的簡単に示されている。この簡単な例では、ユーザーAはサービス491および493と関連し、ユーザーBは、サービス493および495と関連し、ユーザーMは、サービス491および495と関連し、ユーザーNは、3つの全てのサービス491、493、および495と関連している。クライアント・デバイスから、ユーザーと関連する適切なサービスを識別するリクエストを受け取ると、可用性モジュール714は、おそらくは単独で又は接続モジュール713との組み合わせで、サービス・テーブル717へアクセスして、そのユーザーと関連するサービスを識別する。この情報を追跡するための更に複雑な方法も、テーブルよりも複雑なデータ構造も、可能である。他のモジュールも、サービス・テーブル717に対して動作することやアクセスすることができる。
【0078】
[0087] サービス・テーブル717は、幾つもの方法で維持することができる。1つの実装では、サービス・テーブル717は、何れのサービスとユーザーが関連するかを判定するリクエストが行われたときに、ユーザー毎ベースで設定する(populate)ことができる。この実装では、サービス管理システム403は、リクエストを行ったユーザーがサービスのそれぞれと関連するかを判定するためにクラウド・サービス491、493、および495と通信し、それに応じてサービス・テーブル717を設定する。別の実装では、サービス管理システム403は、クラウド・サービス491、493、および495へ周期的にクエリを行って、何れのサービスが何れのユーザーと関連するかを判定することができる。何れの場合も、サービス管理システム403は、クラウド・サービスの少なくとも幾つかに対してクエリを行うことができ、このクエリは、ユーザーがそれらのクラウド・サービスへのアクセスに用いるアイデンティティと、生産性アプリケーション425を用いるためにユーザーにより提供されるログイン・アイデンティティとが同じである場合には、そのログイン・アイデンティティを用いて行うことができる。しかし、サービス管理システム403は、サービス固有アイデンティティなどのような、ユーザーに対しての別のアイデンティティを用いて、クラウド・サービスに対してクエリを行うことができる。サービス固有アイデンティティは、サービス・カタログ736を通じて、ユーザーが関連させられるサービスを選択するときに、ユーザーにより提供されることができる。
【0079】
[0088] 更に別の実装では、サービス・テーブル717は、クライアント・デバイスにより提供される情報に基づいて設定することができる。例えば、サービス・カタログ736におけるサービスの少なくともサブセットのユーザー選択に基づいて、フィーチャー・イネーブル化クライアント427は、それらの選択をサービス・テーブル717へ格納するためにサービス管理システム403へ通信することができる。この例では、選択されたサービスのサブセットはサービス491および493を含む。
【0080】
[0089] これらの実装の組み合わせおよび変形も可能である。例えば、サービス・テーブル717は、最初はクライアント・デバイスにより提供される情報に基づいて設定されるようにし、後には周期的に又はリクエスト毎に更新されるようにすることができる。
【0081】
[0090] 処理システム723は、メモリ725、通信インターフェース727、およびユーザー・インターフェース729と処理可能にリンクされ、メモリ725に格納されたソフトウェアを実行することができる。ソフトウェアを実行する際、処理システム723は、一般に、ユーザー・インターフェース729および通信インターフェース727を含むクライアント・デバイス421を駆動させて、ここで説明するように動作を行う。処理システム723の例は、汎用の中央処理装置、特定用途向けプロセッサー、およびグラフィックス・プロセッサー、そして任意の他のタイプの処理デバイスを含む。メモリ705の例は、ランダム・アクセス・メモリ、リード・オンリー・メモリ、磁気ディスク、光ディスク、およびフラッシュ・メモリ、そしてこれらの任意の組み合わせや変形物、または任意の他のタイプのストレージ媒体を含む。通信インターフェース727は、クライアント・デバイス421が、例えば、分散型の計算および通信の環境において有線またはワイヤレスのネットワークなどを介して、他のデバイスと通信することを可能にする通信接続およびデバイスを含むことができる。ユーザー・インターフェース729は、キーボード、マウス、音声入力デバイス、またはタッチ入力デバイス、およびそれらと同等の入力デバイスなどのような入力デバイスを、有することができる。ディスプレイ、スピーカー、プリンター、および他のタイプの出力デバイスなどのような出力デバイスを含むこともできる。
【0082】
[0091] 上述のように、処理システム723は、メモリ725に格納されたソフトウェアを実行する。
図7は、メモリ725に含まれるソフトウェアの分解図を提供し、それは、生産性アプリケーション425、フィーチャー・イネーブル化クライアント427、およびオペレーティング・システム732を含む。
【0083】
[0092] 生産性アプリケーション425は、生産性フィーチャー733、生産性フィーチャー734、およびサービス・フィーチャー735を含む。
図7は、更に、生産性フィーチャー733内に含まれるサービス・フィーチャーを示し、これはサービス・フィーチャー791およびサービス・フィーチャー793を含む。サービス・フィーチャー791は、
図4に示すサービス491と対応することが意図されている。同様に、サービス・フィーチャー793は、
図4のサービス493と対応することを意図されている。共に、生産性フィーチャー733内のサービス・フィーチャー791および793の表示は、生産性アプリケーション425へログインしたユーザーAとサービス491および493とのアソシエーションに基づいた、双方のフィーチャーのイネーブル化を説明することを意図している。実際、サービス管理システム403のサービス・テーブル717もまた、これらの関係を説明している。
【0084】
[0093] 理解できるように、生産性アプリケーション425はまた、サービス・カタログ736を含む。サービス・カタログ736は、サービス491、サービス493、およびサービス495のグラフィカル表現を含み、これらは
図4に示す同じサービスに対応する。この例では、サービス491は選択されたものとてして示され、サービス493もそのように示されている。この選択は、通信インターフェース727を用いてクライアント・デバイス421からサービス管理システム403へ通信され、最終的にサービス・テーブル717へ格納される。
【0085】
[0094] サービス・カタログ736は、様々な時にユーザーへ呈示することができる。例えば、ユーザーに対して、生産性アプリケーションを起動したときに、サービス・カタログ736を呈示することができる。これは、毎回生じさせることができるが、周期的に、または新たなサービスが使用可能なときに、生じさせることもできる。また、サービス・カタログ736は、ユーザーによる選択がなされたとき、例えば、サービス・カタログ736を起動させるためにフィーチャー・メニューにおいて選択を行うことにより、呈示することができる。また、サービス・カタログ736は、生産性フィーチャーが選択されたときにユーザーへ呈示することができる。例えば、ユーザーは、セーブ生産性フィーチャーを選択することができ、選択されると、サービス・カタログ736をユーザーに呈示することができる。
【0086】
[0095] サービス・カタログ736は、個別のカタログまたはスタンドアローンのエレメントとして呈示する必要がないことを、理解すべきである。むしろ、サービス491、493、および495のグラフィカル表現の呈示は、フィーチャー733、734、および735などのような生産性フィーチャー内で生じさせることができる。サービス・カタログ736はまた、オペレーティング・システム732と統合して、その一部として呈示することができる。サービス・カタログ736の他の実装および表示も考えられており、ここで説明したものに限定すべきではない。サービス・カタログ736は、カタログ・モジュール712と通信して、カタログを設定する情報を得ることができる。
【0087】
[0096] 生産性アプリケーション425の様々なエレメントと、それ自体のアプリケーションとは、ユーザー・インターフェース729によりユーザーに呈示できることを、理解すべきである。生産性アプリケーション425とそのエレメントとは、ソフトウェアとしてメモリ725内に在るが、処理システム723によるソフトウェアの実行はユーザー・インターフェース729を駆動して、例えば、ディスプレイ・システムにイメージを表示させることにより、オペレーティング・システム732および生産性アプリケーション425の様々な態様をユーザーに対して表示させる。同様に、ユーザー・インターフェース729は、マウスを用いてクリックすることや、何らかの他の入力デバイスを用いて
図7に示す生産性フィーチャー、サービス・フィーチャー、またはカタログ・エレメントのうちの任意のものの選択を示すことなどにより、ユーザーが生産性アプリケーション425とインタラクションすることを可能にする他の入力コンポーネントを、含むことができる。
【0088】
[0097] 以下では、1つの実装における強化されたフィーチャー環境700Aの動作を説明する。この実装では、クライアント・デバイス421とサービス管理システム403との間でのインタラクションを通じて、サービス491に対応してサービス・フィーチャーがイネーブルにされ、呼び出される。これは、
図4に示す他のエレメントのうちの任意のものへ適用できる例示であり、幾らかの変形はあり得るが、明瞭にするために、クライアント・デバイス421とサービス管理システム403との間でのインタラクションに限定している。
【0089】
[0098] 動作において、ユーザーAは生産性アプリケーション425ヘログインする。ユーザーAは、代替的には、又は同時に、オペレーティング・システム732へログインすることができ、また、ユーザーのアイデンティティを生産性アプリケーション425へ通信できる何らかの他のアプリケーションへログインすることができる。この例では、
図4と関連して説明したように、ユーザーAは個人アイデンティティのもとでログインしている。動作において、ユーザーは、生産性アプリケーション425を用いて作業を行って、この例ではワード・プロセッシング・ドキュメントであるアプリケーション・コンテンツ737を生成する。生産性フィーチャー733および734とサービス・フィーチャー735とは、ユーザー・インターフェース729上でユーザーに対して表示されるグラフィカル・ユーザー・インターフェースを用いて、生産性アプリケーション425内でユーザーにより使用可能である。
【0090】
[0099] フィーチャー・イネーブル化クライアント427は、生産性アプリケーション425内の何れのサービス・フィーチャーをイネーブルにするかを判定する。フィーチャー・イネーブル化クライアント427は、クライアント・デバイス421とサービス管理システム403との間での通信により、フィーチャー・イネーブル化サーバー407に対してクエリを行う。上述のように、サービス管理システム403はサービス・テーブル717を維持し、サービス・テーブル717はユーザー・アイデンティティを様々なサービスと関連させて格納する。テーブル717では、ユーザーAはサービス491および493と関連付けされている。ユーザーBは、サービス493および495と関連付けされている。ユーザーMは、サービス491および495と関連付けされている。ユーザーNは、3つの全てのサービス491、493、および495と関連付けされている。これらのアソシエーションは、ユーザーがサービス管理システム403へそれらのアソシエーションを提供した結果として行われるか、または何らかの他の手段により行われる。上述のように、ユーザーは、それらのアソシエーションを、例えば、サービス・カタログ736を通じて提供することができる。
【0091】
[00100] 所与のユーザーと関連する所与の生産性アプリケーションに関して何れのフィーチャーをイネーブルにするかを判定するために、可用性モジュール714は、何れのサービスがそのユーザーと関連するかを識別するためにテーブル717に対しての参照又問い合わせを行う。生産性アプリケーション425はユーザーAと関連するので、サービス491に対応するサービス・フィーチャー791がイネーブルにされ、ユーザーにより使用できるようにされる。同様に、サービス493に対応するサービス・フィーチャー793もイネーブルにされる。しかし、生産性アプリケーション425の表示に無いことから明らかなように、サービス495に対応するサービス・フィーチャーはイネーブルにされない。
【0092】
[00101] 強化されたフィーチャー環境700Aはまた、サービス・フィーチャーが生産性フィーチャーのサブフィーチャーであり得ることを示すことを、意図している。例えば、サービス・フィーチャー791およびサービス・フィーチャー793は、生産性フィーチャー733のサブフィーチャーとして示されている。
図7は、分解図で生産性フィーチャーを示すが、これは単に、その中のサービス・フィーチャーのイネーブル化を説明するためであることを理解すべきであり、また、生産性フィーチャー734自体およびサービス・フィーチャー735自体が、イネーブルにされ得る他のサブフィーチャーやサービス・フィーチャーを含むことができると考えられていることを、理解すべきである。
【0093】
[00102] 生産性フィーチャー733と共にイネーブルにされるサービス・フィーチャーは、任意の数の機能を提供することができる。この場合、例示を目的として、生産性フィーチャー733は送信フィーチャーであると仮定し、サービス・フィーチャー791は、矢印787で示すように生産性フィーチャー733がコンテンツ737をサービス491へ送ることを可能にすると仮定する。即ち、サービス491は、コンテンツ737が生産性アプリケーション425により生成され送られると、コンテンツ737をホストすることができる。
【0094】
[00103] 上述のように、サービス・フィーチャーのイネーブル化は、多くの方法で生じさせることができる。多くの可能性の中で、幾つかの例は、サービス・フィーチャーのグラフィカル表現をレンダリングするために、サービス・フィーチャーに対応するグラフィックス・オブジェクトを呼び出すこと、およびイネーブル化されたサービス・フィーチャーのグラフィカル表現の視覚的特性を変更するために、サービス・フィーチャーに対応するグラフィックス・オブジェクト内の値または設定を変更することを含む。グラフィックス・オブジェクトは、それらと関連する実行可能コードを有することができ、コンテンツへ適用することをユーザーにより望まれる動作機能を提供する。例えば、セーブ・フィーチャーは、コンテンツをセーブするようにクライアント・デバイス421を駆動するであろう。同様に、送信フィーチャーは、コンテンツを宛先へ送るようにクライアント・デバイス421を駆動するコードを含むであろう。
【0095】
[00104] ここで
図8を参照すると、強化されたフィーチャー環境700Bは、サービス管理システム403、クライアント・デバイス421、およびサービス493を含む。サービス管理システム403は、クライアント・デバイス421およびサービス493と通信する。同様に、クライアント・デバイス421は、サービス管理システム403およびサービス493と通信する。
【0096】
[00105] 下記では、実装における強化されたフィーチャー環境700Bの動作を説明する。この実装では、クライアント・デバイス421とサービス管理システム403との間でのインタラクションを通じて、サービス493に対応するサービス・フィーチャーがイネーブルにされ呼び出される。これは、
図4に示す他のエレメントのうちの任意のものへ適用できる例示であり、幾らかの変形はあり得るが、明瞭にするために、クライアント・デバイス421とサービス管理システム403との間でのインタラクションに限定している。
【0097】
[00106]
図7に関して説明したように、ユーザーAは生産性アプリケーション425ヘログインするが、代替的に又は同時に、オペレーティング・システム732へログインすることができる。この例では、
図4と関連して説明したように、ユーザーAは個人アイデンティティのもとでログインしている。動作において、ユーザーは、生産性アプリケーション425を用いて作業を行って、この例ではワード・プロセッシング・ドキュメントであるアプリケーション・コンテンツ737を生成する。生産性フィーチャー733および734とサービス・フィーチャー735とは、ユーザー・インターフェース729上でユーザーに対して表示されるグラフィカル・ユーザー・インターフェースを用いて、生産性アプリケーション425内でユーザーにより使用可能である。
【0098】
[00107] フィーチャー・イネーブル化クライアント427は、生産性アプリケーション425内の何れのサービス・フィーチャーをイネーブルにするかを判定する。フィーチャー・イネーブル化クライアント427は、クライアント・デバイス421とサービス管理システム403との間での通信により、フィーチャー・イネーブル化サーバー407に対してクエリを行う。生産性アプリケーション425はユーザーAと関連付けされているので、ユーザーAと関連するサービスに対応するサービス・フィーチャーがイネーブルにされる。サービス・テーブル717は、ユーザーAがサービス491および493と関連付けされていることを示す。従って、サービス491および493と関連するサービス・フィーチャーがイネーブルにされる。例示を目的として、ここでは、サービス・フィーチャー893がサービス(serviced)493と関連し、従って、それがイネーブルにされてユーザーに対して使用可能とされると仮定する。
【0099】
[00108] この場合、例示を目的として、生産性フィーチャー734は、ユーザーがイメージをアプリケーション・コンテンツ737へ挿入することを可能にするイメージ挿入フィーチャーであると仮定する。サービス・フィーチャー891は、サーチ・エンジン(示さず)に対応する特定挿入フィーチャーとして提供され、ユーザーがアプリケーション・コンテンツ737へ挿入するためのイメージまたは他のコンテンツをサーチすることを可能にする。サービス・フィーチャー893は、サービス493に対応する特定挿入フィーチャーとして提供され、ユーザーがサービス493のイメージ・ソース757からイメージを挿入することを可能にする。例示を目的として、ユーザーがサービス・フィーチャー893を選択して、矢印777で示すように、イメージ・ソース757からイメージをダウンロードしてアプリケーション・コンテンツ737へ挿入することを選んだと仮定する。そのイメージは、サービス493から送られて、アプリケーション・コンテンツ737へ埋め込まれる。
【0100】
[00109] サービス・フィーチャー891および893内で、グラフィックスを表面に出すことができ、これは、アプリケーション・コンテンツ737へ挿入されることができるものと関連することに、留意されたい。サービス・フィーチャー891の場合、サーチ・ボックスをユーザーに対して表示することができ、その中へユーザーはサーチ用語を入力することができる。サービス・フィーチャー893に関しては、イメージ・ソース757に格納されたイメージの表現を、ユーザーに対して表示することができ、ユーザーが望む1または複数のイメージをアプリケーション・コンテンツ737へ挿入するために選択することを可能にする。ユーザーはまた、サービス付加フィーチャー895を用いてサービス・フィーチャーを付加することができる。サービス付加フィーチャー895内で、関連するサービスとして接続および付加することをユーザーが望み得るフォト・サービスおよびドライブ・サービスという2つの可能なサービスのグラフィカル表現が、表示される。サービス付加フィーチャー895は、生産性フィーチャー734のサブフィーチャーとして示されているが、同様の付加フィーチャーを、スタンドアローンのフィーチャーまたは他の生産性フィーチャーのサブフィーチャーとして提供でき得ることを、理解すべきである。
【0101】
[00110]
図8において、サービス・フィーチャー891は、サービス・フィーチャー893と共に提供されており、これは、ユーザーと関連するサービスと対応する幾つかのサービス・フィーチャーが動的にイネーブルにされたであろうときに、たとえそのユーザーと対応するサービスとのアソシエーションが存在するとしても、他のサービス・フィーチャーが、イネーブルにされるであろうこと、またはユーザーに対して表面に出されるであろうことを、説明するためである。この例では、サービス・フィーチャー891はサーチ・エンジン・サービスに対応し、サービス・フィーチャー893はサービス493に対応する。これは、ユーザーと関連するサービス以外のサービスと関連するサービス・フィーチャーを、生産性アプリケーション425内で表面に出すことができることを説明することを、意図している。
【0102】
[00111] 上述のように、サービス・フィーチャーのイネーブル化は、多くの方法で生じさせることができる。多くの可能性の中で、幾つかの例は、サービス・フィーチャーのグラフィカル表現をレンダリングするために、サービス・フィーチャーに対応するグラフィックス・オブジェクトを呼び出すこと、およびイネーブル化されたサービス・フィーチャーのグラフィカル表現の視覚的特性を変更するために、サービス・フィーチャーに対応するグラフィックス・オブジェクト内の値または設定を変更することを含む。グラフィックス・オブジェクトは、それらと関連する実行可能コードを有することができ、コンテンツへ適用することをユーザーにより望まれる動作機能を提供する。例えば、セーブ・フィーチャーは、コンテンツをセーブするようにクライアント・デバイス421を駆動するであろう。同様に、送信フィーチャーは、コンテンツを宛先へ送るようにクライアント・デバイス421を駆動するコードを含むであろう。
【0103】
[00112] 下記の説明は、マイクロソフト(登録商標)Office(トレードマーク)のアプリケーションを含む様々な実装に関する。更に、
図9および
図10は、ユーザーが遭遇するユーザー・インターフェースを示すスクリーン・ショットを含み、そのユーザー・インターフェースへは、マイクロソフト(登録商標)および他の第3者プロバイダーにより提供されるサービスが、Office(トレードマーク)のアプリケーションと接続および統合されたときに、遭遇する。ユーザーがそれらのサービスを選択および使用すると、Office(トレードマーク)を実行するクライアントと、そのクライアントと通信するサービス・マネージャーとの何れか又は双方は、ユーザーがデバイスからデバイスへとローミング(roam)し得るときも、それらのサービスを維持する。任意のOffice(トレードマーク)クライアントは、それがウェブ、モバイル、またはラップトップのプラットフォーム、または任意の他の種類のプラットフォームで実行されるかにかかわらず、これを達成するためにサービス・マネージャーとインタラクションすることができる。
【0104】
[00113] サービス・マネージャー自体はホストされるサービスであり、ユーザーの認証を行い、ユーザーが既に接続してるサービスまたはユーザーが接続可能なサービスについての情報を返す。サービス・マネージャーは、それらの様々なサービスと通信して、対応するサービス・フィーチャーをイネーブルにするために必要な情報を得る。この情報は時間の経過とともに変化し得るので、これは、サービスが変化するときや新たなサービスが使用可能となるときに、生産性アプリケーションが時代遅れにならないことを可能にする。これは、サービス・マネージャーが、サービスとのインターフェースを行い、次に、生産性アプリケーションとのインターフェースを行ってサービス・フィーチャーをイネーブルにすることにより、達成することができる。
【0105】
[00114] この例では、ユーザーは、Windows(登録商標)Live(登録商標)識別子およびOffice365(トレードマーク)識別子を用いることを含む幾つかの方法で識別され得る。また、ユーザーは第3者識別子により識別され得ることも、理解すべきである。ユーザーに適切なサービスが識別され、関連するサービス・フィーチャーがイネーブルにされると、ユーザーは、サービスへOffice(トレードマーク)アプリケーション内からコンテンツのアップロードすることや、Office(トレードマーク)アプリケーションを用いて作成されたドキュメントへサービスから直接にコンテンツを挿入することのようなアクションを行うために、サービス・フィーチャーを介してサービスと直接にインタラクションすることができる。更に、Office(トレードマーク)アプリケーション内から、ユーザーと関連するクラウド・ストレージ・サービスにより格納されたファイルを開くことも、可能にされる。同様に、Office(トレードマーク)アプリケーションから、ユーザーと関連するクラウド・ストレージ・サービスへファイルをセーブすることが、可能とされる。更に別の例では、Office(トレードマーク)アプリケーション内で、ユーザーと関連するソーシャル・ネットワーキング・ウェブサイトからの連絡先を使用可能にすることができる。
【0106】
[00115] ここで
図9を参照すると、ユーザー・インターフェース900のスクリーン・ショットが示されており、これには、動的にイネーブルにされるサービス・フィーチャーを有する生産性アプリケーションを用いて作業を行うときに、遭遇し得る。特に、ユーザー・インターフェース900は、マイクロソフト(登録商標)Word(登録商標)ドキュメント・エディターにおけるサンプル・ビューを提供し、サンプルの著者であるJeremyにより作成されたサンプル・レジュメを示す。
【0107】
[00116] ユーザー・インターフェース900は、生産性アプリケーション901を実行する先の図で示したものなどのようなクライアント・デバイスによりレンダリングしてユーザーに対して表示することができる。ユーザーは、生産性アプリケーション901とインタラクションして、ドキュメントなどのようなコンテンツ903を作成することができる。生産性アプリケーション901は生産性フィーチャー・メニュー905を含み、その中で表示される様々な生産性フィーチャーのサブセットに対応するグラフィカル表現を有する。例えば、フィーチャー・メニュー905は、ファイル、ホーム、挿入、ページ・レイアウト、参照、メーリング、レビュー、ビューの生産性フィーチャー・カテゴリーに対するボタンを有する。この例では、挿入カテゴリーが選択され、その結果として、挿入カテゴリー内の生産性フィーチャーに対応するグラフィカル・アイコンが見えている。
【0108】
[00117] 示されているように、挿入カテゴリー907は多くの生産性フィーチャーを含み、それらは、ユーザーがローカル・イメージ、オンライン・イメージ、ビデオ、形状、スマート・アート、チャート、およびスクリーン・ショットを挿入することを可能にするものを含む。実際、挿入カテゴリー907は幾つかの他の生産性フィーチャーを含み、それらは、表紙、空白ページ、ページ区切り、表、ハイパーリンク、ブックマーク、相互参照、ヘッダー、フッター、およびページ番号の生産性フィーチャーを含む。これらの生産性フィーチャーは、ユーザーがコンテンツに関して機能を行うこと、即ち、各生産性フィーチャーに対してのグラフィカル・アイコンにより表されるアイテムを挿入することを、可能にする。例えば、ローカル・イメージとラベル付けされたグラフィカル・アイコン上でクリックを行うことにより、ローカル・イメージに対する生産性フィーチャーは、ユーザーがローカルで格納されたフォトまたは他のタイプのイメージを挿入することを、可能にする。同様に、ビデオ挿入の生産性フィーチャーは、ユーザーがビデオをコンテンツ903へ挿入することを、可能にするであろう。
【0109】
[00118] 更に
図9を参照すると、ユーザー・インターフェース900はまた、上記の実装で説明したサービス・フィーチャーのビューを提供する。オンライン・イメージ挿入の生産性フィーチャー911を選択すると、オンライン・イメージ挿入メニュー913がユーザーに対して表示される。オンライン・イメージ挿入メニューは、ユーザーが使用可能な幾つかのサービス・フィーチャーを含み、それらは、ユーザーがオンライン・サービスと関連するコンテンツ903に対しての機能を行うことを可能にする。この場合、サービス・フィーチャー915、サービス・フィーチャー917、およびサービス・フィーチャー919の3個のサービス・フィーチャーが表示されている。
【0110】
[00119] サービス・フィーチャー915は、オンライン・サービスであるマイクロソフト(登録商標)Bing(トレードマーク)に対応する。サービス・フィーチャー915は、サーチ・サービスを用いてユーザーがコンテンツ903へ挿入するためのイメージをサーチすることを、可能にする。特に、ユーザーは、生産性アプリケーション901から離れてナビゲーションする必要無しに、オンライン・イメージ挿入メニュー913内でサーチ・ストリングをサーチ・ボックス925へ入力することができる。幾つかの実装では、サービス・フィーチャー915は、他のサービス内に埋め込まれた又は含まれたものを含めての他のオンライン・サーチ・サービスに、対応することができる。例えば、サービス・フィーチャー915は、ソーシャル・ネットワーキング・サービス内に格納されたコンテンツをユーザーがサーチすることを可能にするサーチ・ツールに対応することができる。
【0111】
[00120] サービス・フィーチャー917は、マイクロソフト(登録商標)Office(トレードマーク)サービスにより提供されるオンライン・クリップ・アート・ストアに対応する。サービス・フィーチャー917は、ユーザーがコンテンツ903へ挿入するためのイメージをoffice.comにおけるフォトおよびイラストレーションのリポジトリからサーチすることを、可能にする。ユーザーは、生産性アプリケーション901から離れてナビゲーションする必要無しに、サーチ・ストリングをサーチ・ボックス927へ入力することができる。
【0112】
[00121] サービス・フィーチャー919は、Facebook(登録商標)ソーシャル・ネットワーキング・オンライン・サービスに対応する。サービス・フィーチャー919は、ユーザーがイメージ929をユーザーのFacebook(登録商標)アカウントからコンテンツ903へ挿入することを、可能にする。また、ユーザーは、挿入する追加のイメージに関して、ユーザーのFacebook(登録商標)アカウントをサーチすることができる。
【0113】
[00122] また、オンライン・イメージ挿入メニュー913は、イネーブルにされたサービス・フィーチャー915、917、および919の登録簿へ付加され得る可能性のある追加のソース・メニュー931を提供する。例えば、ユーザーは、プロフェッショナル・ネットワーキング、ウェブ・ポータル、またはメッセージング・サービスのため、および他のタイプのオンライン・サービスのために、ソーシャル・ネットワークと関連するサービス・フィーチャーをイネーブルにすることを望み得る。ユーザーは、追加のソース・メニュー931内のこれら他のサービスのグラフィカル表現上でクリックを行い、それらのサービスへ接続して、関連するサービス・フィーチャーをイネーブルにするプロセスを開始する。
【0114】
[00123] 上記の実装に関して述べたように、サービス・フィーチャー915、917、および919は、ユーザーと、対応するオンライン・サービスとのアソシエーションに応じて、動的にイネーブルにすることができる。例えば、ユーザー・インターフェース900において、サービス・フィーチャー919は、生産性アプリケーション901のユーザーであるJeremyがFacebook(登録商標)メンバーであるので、イネーブルにされる。しかし、幾つかのサービス・フィーチャーは、ユーザーが対応するオンライン・サービスと関連付けされているか否かにかかわりなく、常にイネーブルにすることができる。例えば、オンライン・サービスに対応するサービス・フィーチャー915は、連続してイネーブルにすることができる。
【0115】
[00124] ここで
図10を参照すると、マイクロソフト(登録商標)Word(登録商標)ドキュメント・エディターからのユーザー・インターフェース1000のスクリーン・ショットを示し、アカウント管理ビュー1001を示しており、これは、サンプル・ユーザーであるKaitlinが、接続されたサービスの彼女のプロフィールを管理することを可能にする。このように、ユーザーは、何れのオンライン・サービスとユーザーが関連付けされているかを識別することができ、それにより、生産性フィーチャー内の対応するサービス・フィーチャーがイネーブルにされ得る。
【0116】
[00125] ユーザー・インターフェース1000から分かるように、アカウント管理ビュー1001はユーザーのアイデンティティのインジケーションを含む。この場合、Kaitlinは、オンライン・Eメール・サービスと関連するHotmail(登録商標)識別子により識別される。アカウント管理ビュー1001はまた、接続されたサービス1005のリストをユーザーに対して表示する。この例では、Kaitlinは、オンライン・ストレージ・ドライブ、オンライン生産性スイート、ソーシャル・ネットワーキング・オンライン・サービス、およびオンライン・フォト・サービスと関連付けされている。また、ユーザーには、接続されたサービス1005のリストに対してユーザーが任意のサービスを付加または除去することを可能にするサービス付加機能1007が、提供される。ユーザーは、メニュー1009内の他の標準の機能のフィーチャー、例えば、new(新)、open(開く)、save as(…としてセーブ)、およびprint(プリント)の機能およびフィーチャーなども、使用可能である。
【0117】
[00126] 含まれている説明および図面は、最適モードの作成および使用を当業者に対して教示するために、特定の実装を示す。発明の原理を教示する目的のために、幾つかの従来の構成は簡素化または省略されている。当業者は、これらの実装から、本発明の範囲内にある様々な変形を理解するであろう。また、当業者は、先に説明したフィーチャーを様々な方法で組み合わせて多数の実装を形成できることを、理解するであろう。結果として、本発明は、上記の特定の実装に限定されず、特許請求の範囲およびその等価物のみにより限定される。