先に端的に説明したように、本発明の実施形態は、シン・クライアント・アプリケーションを通じてコメント機能性を設けることを目的とする。以下の説明では添付図面を参照する。可能なときはいつでも、図面および以下の説明において、同じまたは同様のエレメントに言及するときには、同じ参照番号が用いられる。本発明の実施態様について説明するが、変更、改造、およびその他の実施態様も可能である。例えば、交換、追加、または修正を、図面に示すエレメントに対して行うことができ、本明細書において説明する方法は、段階を交換する、段階の順番を変える、または開示される方法に段階を追加することによって変更することもできる。したがって、以下の詳細な説明は、本発明を限定するのではない。代わりに、本発明の適正な範囲は、添付する特許請求の範囲によって定められる。
これより図面を参照すると、同様の番号は様々な図にわたって同様のエレメントを表し、本発明の態様および動作環境例について説明する。本発明は、パーソナル・コンピューターのオペレーティング・システム上で実行するアプリケーションと合わせて実行するプログラム・モジュールという一般的なコンテキストで説明されるが、本発明は他のプログラム・モジュールとの組み合わせでも実現できることは当業者には認められよう。
一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造、およびその他のタイプの構造を含み、これらは特定のタスクを実行するかまたは特定の抽象データ型を実装する。更に、本発明は、ハンドヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブル消費者用電子機器、ミニコンピューター、メインフレーム・コンピューター等を含む、他のコンピューター・システム構成とでも実施できることは当業者には認められよう。また、本発明は、分散型計算環境においても実施することができ、この場合、タスクは、通信ネットワークを通じてリンクされたリモート処理デバイスによって実行される。分散型計算環境では、プログラム・モジュールはローカルおよびリモート双方のメモリ記憶デバイスに配置することができる。
図1は、ウェブ・アプリケーションにおいて連携通信を設けるためのシステム・アーキテクチャーを示す簡略ブロック図である。システム100は、1つ以上のクライアント・デバイス125A〜125N(纏めてまたは個別にクライアント・デバイス125と呼ぶ)を含む。クライアント・デバイス125A〜125Nは、イントラネット、エクストラネット、およびインターネットのようなネットワーク120を介してサーバー・デバイス110(または複数のサーバー・デバイス)に通信可能に接続される。1つ以上のクライアント・デバイス125は、シン・クライアント・アプリケーション135、例えば、ウェブ・ブラウザー・アプリケーションを含むことができ、シン・クライアント・アプリケーション135は、ユーザー130A〜130N(纏めてまたは個別にユーザー130と呼ぶ)がドキュメント105にアクセスすること、ならびにファイルを共有し他のユーザーとオンラインで連携することを可能にするように動作することができる。1つ以上のクライアント・デバイス125は、図12から図14を参照して以下で説明する種々の適した計算デバイスの内の1つであってよい。サーバー110は、ネットワーク接続環境において通例1つ以上のソフトウェア・プログラムを実行する多数のタイプの計算デバイスのいずれでもよい。しかしながら、サーバーは、ネットワーク上でサーバーと見なされる1つ以上の計算デバイス上で実行される仮想サーバー(ソフトウェア・プログラム)として実現されてもよい。ある種の実施形態では、サーバー110が、WA、RedmondのMicrosoft Corporation(登録商標)によるSharepoint(登録商標)サーバー・ソフトウェアというような、連携ソフトウェア112を含むのでもよい。
1つ以上の高機能ウェブ・アプリケーション115は、1つまたは多数のサーバー110上で実行することができ、ウェブ・フロントエンド・コンポーネントからの要求を管理し、描出(rendition)をキャッシュし、シン・クライアント・アプリケーション135による消費のためにドキュメント105を格納し、計算し、レンダリングすることができる。ドキュメント110は、データ・ストア108に格納することができる。データ・ストア108は、例えば、ネットワーク120に接続されたシン・クライアント・アプリケーション135を通じて、種々の場所にいる種々のユーザー130によってアクセスすることができる。シン・クライアント・アプリケーション135は、アプリケーション、例えば、ワード・プロセッシング・アプリケーション(例えば、WA、RedmondのMicrosoft Corporation(登録商標)によるWord(登録商標))、スプレッドシート・アプリケーション(例えば、WA、RedmondのMicrosoft Corporation(登録商標)によるExcel(登録商標)、プレゼンテーション・アプリケーション(例えば、WA、RedmondのMicrosoft Corporation(登録商標)によるPowerPoint(登録商標)、ならびに計画立案および口述筆記アプリケーション(planner and note taking application)(例えば、WA、RedmondのMicrosoft Corporation(登録商標)によるOneNote(登録商標))のウェブ・ベース・バージョンであってもよく、ユーザーがドキュメント105にアクセスしドキュメントをオンラインで編集することを可能にするのでもよい。1つ以上のウェブ・アプリケーション115は、種々のネットワーク120を通じて種々のプラットフォーム上で情報を交換するために、標準的な移送、エンコーディング、およびプロトコルを使用することができ、ソフトウェア通信のシンタックスおよびセマンティクスを記述する1組の規格を利用することができる。ウェブ・アプリケーション115は、ハイパーテキスト・マークアップ言語(HTML)、Javascript、およびイメージというようなネイティブ・ブラウザー・オブジェクトを用いて、ドキュメント105の表現140を提供することにより、ユーザー130にブラウザー・ベースの閲覧および編集体験を与える。
先に端的に説明したように、電子ドキュメントの作成において連携批評プロセスが用いられるのは一般的である。多く場合、連携批評プロセスでは、ユーザー130がドキュメント105の特定部分についてコメントを残す。本発明の実施形態は、連携者(ユーザー130)が特定のクライアント・ソフトウェアを必要とせずに、コメントを付け、回答し、シン・クライアント135からのコメントを管理することを可能にする。ブラウザー・アプリケーション135のようなシン・クライアント135を通じてウェブ・ベース・ドキュメント105がアクセスされると、ここではドキュメント・イメージ140と呼ぶドキュメントの一表現を供給することができる。ドキュメント・イメージ140は、ドキュメント105の高信頼度バージョンを提供することができる。一実施形態によれば、ドキュメント・イメージ140はビットマップ・イメージでもよい。ドキュメントに関連付けられた拡張可能マークアップ言語(XML)データ145を、クライアントからの要求に応答して供給することができ、このXMLデータは、ドキュメント105の構造、ドキュメント内に既に存在するかもしれないコメント、およびドキュメントにおけるコメントの位置というようなデータを含む。
これより図2を参照すると、ブラウザー・アプリケーション・ウィンドウ202に表示されたドキュメント・イメージ例140が示されている。図示するドキュメント・イメージ例140はワード・プロセッシング・ドキュメント105のイメージであるが、ドキュメント105は、限定ではなく、ワード・プロセッシング・ドキュメント、スプレッドシート・ドキュメント、スライドショー・プレゼンテーション・ドキュメント、計画立案および口述筆記ドキュメント等というような種々のタイプのドキュメントの内の1つであってよい。ドキュメント105は、そのドキュメントの選択部分に関連付けられた1つ以上のコメントを収容することができる。HTMLアイコンのような選択可能な制御手段が、ドキュメント・イメージ140上のオーバーレイとして設けられ、コメントをどこにアンカーできるかユーザー140に知らせることもできる。この重ね合わされる選択可能なHTMLアイコンを、ここでは、「ヒント」225と呼ぶ。例えば、図2に示すように、ヒント225は、コメントがアンカーされるドキュメント・イメージ140の脇に表示される選択可能なアイコンであってもよい。一実施形態によれば、ヒント225は、ドキュメント105における1つのパラグラフにおける全てのコメントを表すことができる。ドキュメントが表またはスネーキング・コラム(snaking column)というような多数のパラグラフの列を含む場合、1つのヒント225が全ての列のコメントを表すことができる。
ヒント225を選択すると、HTMLオブジェクトのようなオブジェクトがドキュメント・イメージ140上のオーバーレイとして提示され、ここでは「アンカー」230と呼ばれる、コメントに関連付けられたドキュメントの選択部分上のハイライトとして設けることができる。ヒント225およびアンカー230の位置は、サーバー110から送られるXMLデータ145において規定することができる。加えて、ヒント225を選択したとき、コメント・ペイン205が未だ開いていない場合、ドキュメント・イメージ140の脇にコメント・ペイン205も設けることができる。実施形態によれば、コメント・ペイン205はHTMLペインであってもよい。コメント・ペイン205は、選択されたコメント210、ならびに他のコメントおよびコメントに対する回答220も含むことができる。実施形態によれば、ヒント225を選択すると、選択されたヒントに関連付けられたコメント210まで、コメント・ペイン205をスクロールすることができる。加えて、選択されたコメント210をハイライトすることもできる。
図3は、コメント・ペイン205に表示されたコメント210を選択する方法300のフロー・チャートである。図4Aおよび図4Bも参照するとよい。図4Aは、コメント210が選択されていないときの、ドキュメント・イメージ140およびコメント・ペイン205のスクリーンショットの図である。図4Bは、コメント・ペイン205においてコメント210が選択された後における、同じドキュメント・イメージ140およびコメント・ペイン205を示す。これより図3を参照すると、図示する実施形態では、方法300は動作305において開始する。コメント・ペイン205においてコメント210の選択指示を受けると(310)、このコメントに関連付けられたコメント状態を「選択」に変更することができる(315)。認めることができようが、コメント210は、種々の選択方法によって選択することができ、例えば、マウスによる選択、タッチスクリーン・インターフェース上のタッチによる選択、またはキーボード・コマンドによる選択を含むが、これらに限定されるのではない。一実施形態によれば、他のコメントが現在選択されている場合、他のコメントを選択すると、現在選択されているコメントの選択が解除される。
選択されたコメント210に関連付けられたエレメントのいずれかの部分が見えるか否か判定を行うことができる(320)。例えば、図4Aを参照すると、ドキュメント・イメージ140の脇においてヒント225が表示されていない。したがって、コメント・ペイン205におけるコメント210、220に関連付けられたテキストは、ドキュメント・イメージ140の現在の表示位置では見ることができない。選択されたコメント210に関連付けられたエレメントが見えない場合、エレメントが表示されるようにドキュメント・イメージ140をスクロールすることができる(325)。図4Bに示すように、ドキュメント・イメージ140は、ヒント225および選択されたコメント410に関連付けられたテキストが視野に入るようにスクロールされた後である。選択されたコメント210に関連付けられたエレメントがスクロールされて視野に入った後(325)、またはそのエレメントが既に見える場合、ハイライトとして設けられるアンカー230を、関連するエレメント上にHTMLオーバーレイとして設けることができる(330)。加えて、一実施形態によれば、コメント・ペイン205内で選択されたコメント410もハイライトすることができる。本方法は動作395において終了する。
本発明の実施形態は、ウェブ・ブラウザー・アプリケーションのようなシン・クライアント135を通じて、コメント210をウェブ・ベース・ドキュメント105に追加することができる(provide for)。図5Aおよび図5Bは、シン・クライアント135を通じてコメントを追加する方法500のフロー・チャートを示す。図6Aおよび図6Bも参照するとよい。図6Aは、ドキュメント・イメージ140のスクリーンショットの一例の図であり、選択されたテキストに関連付けられたコメントの挿入のために、テキストから1つの行が選択される。図6Bは、図6Aにおいて選択されたテキストに関連して「新たなコメント」コマンドの選択指示を受けた後における、同じドキュメント・イメージ140の図である。これより図5Aを参照すると、図示する実施形態では、方法500は動作505において開始する。「新たなコメント」コマンド625の選択指示を受けると(510)、ウェブ・ベース・ドキュメント105のドキュメント・イメージのエレメント(例えば、テキスト、グラフ、セル、イメージ等)が選択されたか否か判定を行う(515)。エレメントが選択されない場合、ユーザー130にドキュメントのエレメントを選択することを要求するメッセージを与えることができる(520)。ドキュメント・イメージ140のエレメントが選択されたと判定した場合、選択640がパラグラフよりも小さいかまたは大きいかについて判定を行う(525)。選択640がパラグラフよりも小さい場合(図6Aに示すように)、この選択をパラグラフ全体に拡張することができる(530)(図6Bに示すように)。選択640がパラグラフよりも大きい場合(535)、この選択を、選択によってタッチされた全てのパラグラフに拡張することができる(540)。認めることができるように、動作525〜540は、あるタイプのドキュメント105、例えば、ワード・プロセッシング・ドキュメント、またはパラグラフにデータを含む他のタイプのドキュメントに適用可能であってもよい。選択640を拡張したなら(530、540)、コメント編集ボックス650を設けることができ、このコメント編集ボックスに焦点を合わせることができる(545)(図6Bに示すように)。また、図6Bに示すように、コメント編集ボックス650の下にあるコメント210をコメント・ペイン205の下にずらして、コメント編集ボックスのための余裕を作ることができる。
方法500は、動作550に進み、ここでドキュメント画像140上にアンカー230およびヒント225を表示する。前述のように、アンカー230およびヒント225は、ドキュメント・イメージ140上にHTMLオーバーレイとして表示することができる。アンカー230およびヒント225の位置は、サーバー110から供給されるXMLファイル145内において伝達することができる。コメント編集ボックス650が設けられ焦点がこのコメント編集ボックスに合わせられると、「新たなコメント」コマンド625、ならびに他のコメント210およびヒント225を選択する能力をディスエーブルすることができる(555)。
方法500は図5Bに続く。タイプ入力の指示を受けると(560)、例えば、ユーザー130がコメント編集ボックス650にコメントを追加すると、コメント210がコミットされたか否か検証するために判定が行われる(565)。例えば、コメントが保存されるときまたは入力されたコメントから焦点が外された(selected away from)ときに、コメント210は、種々の方法によってコミットすることができる。コメント210がコミットされていないと判定した場合、そして取り消しコマンドの指示を未だ受けていない場合(570)、方法500は動作560に戻ることができる。取り消しコマンドを受けた場合(570)、方法500は開始動作505に戻ることができる。動作565において、コメント210がコミットされたと判定した場合、サーバー110上で、コメントおよび他のメタデータをドキュメント105に追加することができる(575)。他のメタデータは、ユーザー・データ、アンカー位置、およびタイムスタンプを含むことができるが、これらに限定されるのではない。動作580において、コメント210を、選択されたコメント410として、レンダリングすることができる。
一実施形態によれば、コメント210を追加する指示を受けると、ドキュメント105が、コメントを受け入れる(allow for)状態にあるか否か、例えば、ドキュメント105がパスワード保護されているか否か判定する要求をサーバー110に送ることができる。ドキュメント105がコメントを受け入れる状態にない場合、エラー・メッセージをユーザー130に表示することができる。あるいは、ドキュメント105が来る(coming)状態にある場合、サーバー110上でブロックまたは協同ブロック(cooperative block)を取り込み(take)、コメントをファイルに書き込むこと、または同時にドキュメント105を要求したユーザー130がドキュメント上で一緒に著作することを可能にすることができる。方法500は、動作595において終了する。
本発明の実施形態は、コメントに回答することができる。図7は、シン・クライアント135を通じてコメントに回答する方法700のフロー・チャートを示す。図8も参照するとよい。図8は、ドキュメント・イメージ140およびコメント210、コメントに対する回答220、ならびにコメント編集ボックス650がコメント・ペイン205内に表示されたスクリーンショットの一例の図である。これより図7を参照すると、方法700は動作705において開始する。動作710において、コメント210に回答する選択の指示を受けることができる。実施形態によれば、コメント210に回答する選択の指示は、選択されたコメント410または回答220上における「回答」コマンド450(図4Bに示す)の選択であってもよく、コメント210または回答220が選択されたときの「新たなコメント」コマンド625の選択であってもよく、あるいはキーボード・コマンドの選択によってもよい。コメント210または回答220に回答する選択の指示を受けると(710)、コメント編集ボックス650を、最後の回答220の下に、親コメント(parent comment)210に対して表示することができる(715)(図8に示す)。コメント編集ボックス650が表示されると、「新たなコメント」コマンド625のようなコマンド、ならびにコメント210およびヒント220を選択する能力をディスエーブルすることができる(720)。
動作725において、回答220のタイプ入力の指示を受けることができる。回答がコミットされておらず(730)、回答が取り消されていない(735)場合、方法700は動作725に戻ることができる。回答がコミットされておらず(730)、回答が取り消されたという指示を受けた(735)場合、方法700は開始動作705に戻ることができる。あるいは、判断動作730において、回答がコミットされたと判定した場合、回答220および他のメタデータをドキュメント105にサーバー110上で追加することができる(740)。他のメタデータは、ユーザー・データ、親コメント210、およびタイムスタンプを含むがこれらに限定されるのではない。次いで、コメント・ペイン205において選択された回答として、回答220をレンダリングすることができる(745)。一実施形態によれば、コメントに関連付けられた他の回答の下に、最新のコメントされた回答220を表示することができる。方法700は、動作795において終了する。
本発明の実施形態は、以上で説明したコマンドに加えて、種々のユーザー・インターフェース(UI)制御を可能にする。例えば、これより図9Aを参照して、コメント210または回答220が選択されると、コメント・ペイン205内に、削除コマンド905、回答コマンド910、および終了(done)コマンド915を表示することができる。一実施形態によれば、そして図示するように、削除905、回答910、および終了915コマンドは、選択されたコメント410または回答220の下に表示することができる。削除コマンド905を選択すると、選択されたコメント410または回答220を削除することができる。選択されたコメント410が子供を有する場合、即ち、選択されたコメントに関連付けられた回答220がある場合、そして削除コマンド905の選択によってコメントが削除されると、子供、即ち、このコメントに関連付けられた回答も削除することができる。したがって、削除されたコメントに関連付けられたアンカー230およびヒント225、ならびに子供の回答に関連付けられたアンカーおよびヒントも削除することができる。一実施形態によれば、警告ダイアログを表示して、コマンドおよびその回答が削除されようとしていることをユーザーに警告することもできる。
回答コマンド910は、コマンド210または回答220に回答するために利用することができる。一実施形態にしたがって回答コマンド910の選択によってコメントに回答する方法の説明のために、再度図7および方法700を参照する。終了コマンド915を選択すると、選択されたコマンド410の状態を終了に変化させることができる。例えば、あるコメントが、ドキュメント105における単語の綴りを訂正することを示唆する場合、ユーザー130がその単語の綴りを訂正すると、彼/彼女はこのコメントに終了とう印を付けることができる。選択されたコメント410が子供を有する場合、即ち、それに関連付けられた回答220を有する場合、そして選択されたコメントに終了の印が付けられている場合、図9Bに示すように、このコメントに関連付けられた回答にも終了の印を付けることができる。一実施形態によれば、そして図9Bにも示すように、終了として選択されたコマンド210または回答220は、未だ終了として選択されていない他のコマンドおよび回答からそれを区別するために、グレイアウトするか、または当技術分野において周知の他の方法で変更することができる。終了コマンド915は、コメントまたは回答の状態を未了(undone)に変更するために再度選択することができる。
図3、図4A、および図4Bの例示および論述では、コメント・ペイン205におけるコメントの選択によってコメント210を選択する方法について説明した。他の実施形態によれば、そして図10および図11に関して説明するように、コメントに関連付けられた選択可能なヒント・アイコン225の選択によって、コメント210を選択することもできる。これより図10を参照すると、ヒント225の選択によってコメント210を選択する方法1000は、動作1005において開始する。ユーザー130は、ヒント225を選択する(1010)。例えば、ユーザーは、図11に示すように、マウスによってヒント上でクリックするのでもよい。コメント・ペイン205が現在表示されていない場合(1015)、動作1020において、コメント・ペインを開き、ドキュメント・イメージ140の脇に表示することができる。実施形態によれば、コメント・ペイン205はHTMLペインにすることができる。コメント・ペイン205を開くと、またはコメント・ペインが既に表示されている場合、選択されたヒント225に関連付けられた最初のコメント210まで、コメント・ペインをスクロールすることができ、コメントを選択することができる(1025)。これに応じて、選択されたコメント410をハイライトすることができ、選択されたコメントに関連付けられたドキュメント105におけるエレメント(1つまたは複数)の上に、アンカー230をHTMLオーバーレイとして表示することができる。本方法は動作1095において終了する。
本明細書において説明した実施形態および機能性は、有線およびワイヤレス計算システム、移動体計算システム(例えば、移動体電話機、タブレットまたはスレート型コンピューター、ラップトップ・コンピューター等)を含む多数の計算システムによって動作することができる。加えて、本明細書において説明した実施形態および機能性は、分散型システム上でも動作することができ、アプリケーション機能性、メモリ、データ記憶および引き出し、ならびに種々の処理機能は、互いから離れて、インターネットまたはイントラネットのような分散型計算ネットワークを通じて動作させることができる。ユーザー・インターフェースおよび種々のタイプの情報は、計算デバイスの内蔵ディスプレイによって、または1つ以上の計算デバイスに関連付けられたリモート・ディスプレイ・ユニットによって表示することができる。例えば、ユーザー・インターフェースおよび種々のタイプの情報は、ユーザー・インターフェースおよび種々のタイプの情報が投射される壁面上に表示し、相互作用することができる。本発明の実施形態を実施することができる多数の計算システムとの相互作用は、キーストローク入力、タッチ・スクリーン入力、音声またはその他の音響入力、ジェスチャー入力を含み、関連付けられる計算デバイスには、ユーザーのジェスチャーを取り込み、計算デバイスの機能性等を制御するためにユーザーのジェスチャーを解釈する検出機能性(例えば、カメラ)が装備される。図12から図14および関連する説明は、本発明の実施形態を実施することができる種々の動作環境の論述を示す。しかしながら、図12から図14に関して図示され論ぜられるデバイスおよびシステムは、例示(example and illustration)のために限るのであり、本明細書において説明した本発明の実施形態を実施するために利用することができる大多数の計算デバイス構成を限定するのではない。
図12は、本発明の実施形態を実施することができる計算デバイス1200の物理的コンポーネント例、例えば、クライアント・デバイス125およびサーバー110を示すブロック図である。基本的な構成において、計算デバイス1200は、少なくとも1つの処理ユニット1202とシステム・メモリ1204とを含む。計算デバイスの構成およびタイプに応じて、システム・メモリ1204は、揮発性(例えば、ランダム・アクセス・メモリ(RAM))、不揮発性(例えば、リード・オンリー・メモリ(ROM))、フラッシュ・メモリ、または任意の組み合わせを含むことができるが、これらに限定されるのではない。システム・メモリ1204は、オペレーティング・システム1205、1つ以上のプログラミング・モジュール1206を含むことができ、1つ以上のアプリケーション1250を含むことができる。例えば、1つ以上のアプリケーション1250は、限定ではなく、連携ソフトウェア112、ウェブ・アプリケーション115、ウェブ・ブラウザー・アプリケーション135、ワード・プロセッシング・アプリケーション、スプレッドシート・アプリケーション、データベース・アプリケーション、電子メール・アプリケーション、スライドショー・プレゼンテーション・アプリケーション、ウェブ設計アプリケーション、描画アプリケーション等を含むことができる。例えば、オペレーティング・システム1205は、コンピューター・デバイス1200の動作を制御するのに適していればよい。更に、本発明の実施形態は、グラフィクス・ライブラリ、他のオペレーティング・システム、または他のあらゆるアプリケーション・プログラムと併せても実施することができ、いずれの特定のアプリケーションにもシステムにも限定されない。この基本的な構成は、図12では、破線1208内にあるコンポーネントによって例示される。
計算デバイス1200は、追加の機構または機能性を有することもできる。例えば、計算デバイス1200が、例えば、磁気ディスク、光ディスク、またはテープというような、追加のデータ記憶デバイス(リムーバブルおよび/または非リムーバブル)を有することもできる。このような追加のストレージは、図12では、リムーバブル・ストレージ1209および非リムーバブル・ストレージ1210によって例示される。また、計算デバイス1200は、通信接続1216も含むことができる。通信接続1216は、分散型計算環境、例えば、イントラネットまたはインターネットにおいてネットワーク120を通じてというようにして、デバイス1200が他の計算デバイス1218と通信することを可能にする。通信接続1216は、通信媒体の一例である。
前述のように、オペレーティング・システム1205を含む多数のプログラム・モジュールおよびデータ・ファイルを、システム・メモリ1205に格納することができる。処理ユニット1202上で実行する間、アプリケーション(1つまたは複数)112、115、135のようなプログラミング・モジュール1206は、例えば、以上で説明した1つ以上の方法300、500、700,および1000を含むプロセスを実行することができる。以上のプロセスは一例であり、処理ユニット1202は他のプロセスを実行することもできる。本発明の実施形態にしたがって用いることができる他のプログラミング・モジュールは、電子メールおよび交流(contact)アプリケーション、ワード・プロセッシング・アプリケーション、スプレッドシート・アプリケーション、データベース・アプリケーション、スライド・プレゼンテーション・アプリケーション、描画またはコンピューター補助アプリケーション・プログラム等を含むことができる。
一般に、プログラム・モジュールがルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含んでもよく、これらは特定のタスクを実行できること、または特定の抽象データ型を実装できることは、本発明の実施形態と矛盾しない。更に、本発明の実施形態は、他のコンピューター・システム構成とでも実施することもでき、ハンドヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブル消費者用電子機器、ミニコンピューター、メインフレーム・コンピューター等が含まれる。また、本発明の実施形態は分散型計算環境において実施することもでき、その場合、タスクは、通信ネットワークを通じてリンクされたリモート処理デバイスによって実行される。分散型計算環境では、プログラム・モジュールがローカルおよびリモート双方の記憶デバイスに配置されてもよい。
更に、本発明の実施形態は、電気回路においても実施することができる。電気回路は、ディスクリート電子エレメント、ロジック・ゲートを収容するパッケージ型または集積電子チップ、マイクロプロセッサーを利用する回路、あるいは電子エレメントまたはマイクロプロセッサーを内蔵する単一チップを含む。例えば、本発明の実施形態は、チップ上システム(SOC)によって実施することもでき、図12に示すコンポーネントの各々または多くを、1つの集積回路上に集積することができる。このようなSOCデバイスは、1つ以上の処理ユニット、グラフィクス・ユニット、通信ユニット、システム仮想化ユニットおよび種々のアプリケーション機能性を含むことができ、その全てが1つの集積回路としてチップ基板上に集積される(または「焼かれる」)。SOCによって動作するとき、本明細書においてアプリケーション(1つまたは複数)112、115、135に関して説明した機能性は、1つの集積回路(チップ)上において計算デバイス/システム1200の他のコンポーネントと共に集積された特定用途ロジッによって動作することができる。また、本発明の実施形態は、例えば、AND、OR、およびNOTというような論理演算を実行することができる他の技術を用いて実施することもできる。論理演算は、限定ではなく、機械技術、光学技術、流体技術、および量子技術を含む。加えて、本発明の実施形態は汎用コンピューター内または他のあらゆる回路あるいはシステムにおいても実施することができる。
本発明の実施形態は、例えば、コンピューター・プロセス(方法)、計算システム、あるいはコンピューター・プログラム製品またはコンピューター読み取り可能媒体というような製造品目として実現することができる。コンピューター・プログラム生産物は、コンピューター・システムによって読み取り可能であり、コンピューター・プロセスを実行するための命令のコンピューター・プログラムをエンコードするコンピューター記憶媒体であってもよい。
本明細書において用いられる場合、コンピューター読み取り可能媒体という用語は、コンピューター記憶媒体を含むことができる。コンピューター記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、または他のデータというような情報の格納のためのいずれかの方法または技術で実現される。システム・メモリ1204、リムーバブル・ストレージ1209、および非リムーバブル・ストレージ1210は全て、コンピューター記憶媒体の例である(即ち、メモリ・ストレージ)。コンピューター記憶媒体は、RAM、ROM、電気的消去可能リード・オンリー・メモリ(「EEPROM」)、フラッシュ・メモリまたは他のメモリ技術、CD−ROM、ディジタル・バーサタイル・ディスク(「DVD」)、あるいは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは所望の情報を格納するために使用することができ、更にコンピューター1200によってアクセスすることができる他のあらゆる媒体を含むが、これらに限定されるのではない。このようなコンピューター記憶デバイスはいずれも、デバイス1200の一部であってもよい。計算デバイス1200は、キーボード、マウス、ペン、サウンド入力デバイス、タッチ入力デバイス等のような入力デバイス(1つまたは複数)1212も含むことができる。ディスプレイ、スピーカー、プリンター等のような出力デバイス(1つまたは複数)1214も含むことができる。以上のデバイスは例であり、他のものを用いることもできる。
コンピューター読み取り可能媒体という用語は、本明細書において用いられる場合、通信媒体も含むことができる。 通信媒体は、搬送波のような変調データ信号または他の伝送メカニズムにおいて含まれるコンピューター読み取り可能命令、データ構造、プログラム・モジュール、または他のデータによって具体化することができ、あらゆる情報配信媒体を含む。「変調データ信号」という用語は、信号内に情報をエンコードするようなやり方で、その特性の内1つ以上が設定または変更されている信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体と、音響、無線周波数(RF)、赤外線、またはその他のワイヤレス媒体のようなワイヤレス媒体とを含む。
図13Aおよび図13Bは、適した移動体計算環境、例えば、本発明の実施形態を実施することができる移動体電話機1300、スマート・フォン、タブレット・パーソナル・コンピューター、ラップトップ・コンピューター等を示す。図13Aを参照すると、前述の実施形態を実現するための移動体計算デバイス例1300が示されている。基本的な構成では、移動体計算デバイス1300は、入力エレメントおよび出力エレメントの双方を有するハンドヘルド・コンピューターである。入力エレメントは、タッチ・スクリーン・ディスプレイ1305および入力ボタン1310を含むことができ、これらはユーザーが情報を移動体計算デバイス1300に入力することを可能にする。移動体計算デバイス1300は、任意の側面入力エレメント(side input element)1315も組み込むことができ、更に他のユーザー入力を可能にする。任意の側面入力エレメント1315は、回転スイッチ、ボタン、または他のあらゆるタイプの手動入力エレメントでもよい。代替実施形態では、移動体計算デバイス1300は、これらよりも多いまたは少ない入力エレメントを組み込んでもよい。例えば、ディスプレイ1305は、実施形態によっては、タッチ・スクリーンでなくてもよい。更に他の代替実施形態では、移動体計算デバイスが、ディスプレイ1305および入力ボタン1315を有するセルラ・フォンのような、携帯用電話システムである。また、移動体計算デバイス1300は、任意のキーパッド1335も含むことができる。任意のキーパッド1335は、物理的なキーパッドでも、またはタッチ・スクリーン・ディスプレイ上に生成される「ソフト」キーパッドでもよい。
移動体計算デバイス1300は、グラフィカル・ユーザー・インターフェース(GUI)を表示することができるディスプレイ1305のような出力エレメントを組み込む。他の出力エレメントは、スピーカー1325およびLED照明1320を含む。加えて、移動体計算デバイス1300は、振動モジュール(図示せず)も組み込むことができ、ユーザーにイベントを知らせるために、移動体計算デバイス1300を振動させる。更に他の実施形態では、移動体計算デバイス1300は、出力信号を供給する他の手段を設けるためのヘッドフォン・ジャック(図示せず)を組み込むこともできる。
本明細書では移動体計算デバイス1300と組みあわせて説明したが、代替実施形態では、本発明は、デスクトップ環境、ラップトップまたはノートブック・コンピューター・システム、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブル消費者用電子機器、ネットワークPC、ミニコンピューター、メインフレーム・コンピューター等におけるように、いずれの数のコンピューター・システムと組み合わせても用いられる。また、本発明の実施形態は分散型計算環境においても実施することができ、この場合、タスクは、分散型計算環境内において通信ネットワークを通じてリンクされたリモート処理デバイスによって実行される。プログラムは、ローカルおよびリモート双方の記憶デバイスに配置されてもよい。
図13Bは、図13Aに示した計算デバイスのような、一実施形態において用いられる移動体計算デバイスのコンポーネントを示すブロック図である。即ち、移動体計算デバイス1300は、実施形態を実現するためにシステム1302を組み込むことができる。例えば、システム1302は、「スマート・フォン」を実現するときに用いることができる。スマート・フォンは、例えば、ブラウザー、電子メール、スケジューリング、インスタント・メッセージング、およびメディア・プレーヤー・アプリケーションというような、デスクトップまたはノートブック・コンピューターと同様の1つ以上のアプリケーションを実行することができる。実施形態では、システム1302が、統合パーソナル・ディジタル・アシスタント(PDA)およびワイヤレス・フォンにおけるように、計算デバイスとして統合される場合もある。
1つ以上のアプリケーション・プログラム1350、例えば、ウェブ・ブラウザー・アプリケーション135をメモリ1362にロードし、オペレーティング・システム1364上でまたはこれと関連付けて実行することができる。アプリケーション・プログラムの例には、発呼(phone dialer)プログラム、電子メール・プログラム、PIM(個人情報管理)プログラム、電子メールおよび交流アプリケーション、ワード・プロセッシング・アプリケーション、スプレッドシート・アプリケーション、データベース・アプリケーション、スライド・プレゼンテーション・アプリケーション、描画またはコンピューター補助アプリケーション・プログラム、メッセージング・プログラム等が含まれる。また、システム1302はメモリ1362内部に不揮発性ストレージ1368も含む。不揮発性ストレージ1368は、システム1102の電源を落としても失ってはならない永続情報を格納するために用いることができる。アプリケーション1350は、電子メール・アプリケーションによって用いられる電子メールまたは他のメッセージ等というような情報を用い、不揮発性ストレージ1368に格納することができる。また、同期アプリケーション(図示せず)もシステム1302上に存在し、不揮発性ストレージ1368に格納された情報を、ホスト・コンピューターに格納された対応する情報と同期させ続けるために、ホスト・コンピューター上に存在する対応する同期アプリケーションと相互作用するようにプログラミングされる。認められてしかるべきであるが、他のアプリケーションもメモリ1362にロードし、デバイス1300上で実行することができる。
システム1302は、電源1370を有し、これは1つ以上のバッテリーとして実装してもよい。電源1370は、更に、ACアダプタ、またはバッテリーを補助または再充電する充電ドッキング・クレードルというような、外部電力源を含んでもよい。
また、システム1302は、無線周波数通信を送受信する機能を行う無線機1372も含むことができる。無線機1372は、システム1302と「外部世界」との間における、通信キャリアまたはサービス・プロバイダーを通じたワイヤレス接続を容易にする。無線機1372への送信および無線機1372からの送信は、OS1364の制御下で行われる。言い換えると、無線機1372によって受信された通信は、OS1364を介してアプリケーション・プログラム1350に伝搬することができ、そしてその逆も可能である。
無線機1372は、システム1302が、ネットワークを通じてというようにして、他の計算デバイスと通信することを可能にする。無線機1372は、通信媒体の一例である。通信媒体は、通例、搬送波のような変調データ信号または他の移送メカニズムにおいて、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、またはその他のデータを具体化することができ、あらゆる情報配信媒体を含む。「変調データ信号」という用語は、情報をその信号内にエンコードするようなやり方でその特性の1つ以上が設定または変化された信号を意味する。一例としてそして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続というような有線媒体と、音響、RF、赤外線およびその他のワイヤレス媒体というようなワイヤレス媒体とを含む。コンピューター読み取り可能媒体という用語は、本明細書において用いられる場合、記憶媒体および通信媒体双方を含むこととする。
システム1302のこの実施形態は、2つのタイプの通知出力デバイスと共に示される。即ち、視覚的通知を与えるために用いることができるLED1320、および聴覚的通知を与えるためにスピーカー1325と共に用いることができるオーディオ・インターフェース1374である。これらのデバイスは、電源に直接結合することができ、アクティブ化されているときに、プロセッサー1360および他のコンポーネントがバッテリー電力を保存するために停止していても、これらは通知メカニズムによって指令される期間だけオンに留まるようにすることができる。LED1320は、ユーザーが行動を起こすまで、不定期にオンに留まってデバイスに電源が入っている状態を示すようにプログラミングされるのでもよい。オーディオ・インターフェース1374は、可聴信号をユーザーに共有し、可聴信号をユーザーから受けるために用いられる。例えば、スピーカー1325に結合されることに加えて、オーディオ・インターフェース1374は、電話の会話を容易にするためというように、可聴入力を受けるためにマイクロフォンに結合されてもよい。本発明の実施形態によれば、マイクロフォンは、以下で説明するように、通知の制御を容易にするためのオーディオ・センサーとして役割を果たすこともできる。更に、システム1302はビデオ・インターフェース1376も含むことができる。ビデオ・インターフェース1376は、静止イメージ、ビデオ・ストリーム等を記録するために、内蔵カメラ1330の動作を可能にする。
システム1302を実現する移動体計算デバイスは、追加の機構または機能性も有することができる。例えば、デバイスは、磁気ディスク、光ディスク、またはテープというような、追加のデータ記憶デバイス(リムーバブルおよび/または非リムーバブル)も含むことができる。このような追加のストレージは、図13Bにおいてストレージ1368によって例示される。コンピューター記憶媒体は、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、または他のデータというような情報の格納のためのあらゆる方法または技術で実現される揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体も含むことができる。
デバイス1300によって生成されまたは取り込まれシステム1302によって格納されたデータ/情報は、前述のように、ローカルにデバイス1300上に格納することができ、あるいは無線機1372を介してまたはデバイス1300とこのデバイス1300と関連付けられた別の計算デバイス、例えば、インターネットのような分散型計算ネットワーク120におけるサーバー・コンピューター110との間における有線接続を介して、あらゆる数の記憶媒体にもデータを格納することができる。認められてしかるべきであるが、このようなデータ/情報は、デバイス1300を介して、無線機1372を介して、または分散型計算ネットワーク120を介してアクセスすることができる。同様に、このようなデータ/情報は、電子メールおよび連携データ/情報共有システム112を含む、周知のデータ/情報転送および記憶手段にしたがって、格納および使用のために容易に計算デバイス間で転送することができる。
図14は、以上で説明したように、シン・クライアント135を通じてコメントすることを可能にするために、コンテンツを格納し更新するシステム・アーキテクチャーを示す。アプリケーション115と関連付けて作成され、相互作用され、編集されたコンテンツは、異なる通信チャネルまたは他のタイプのストレージに格納することができる。例えば、種々のコンテンツ項目は、これらが作成された元の情報と共に、ディレクトリー・サービス1422、ウェブ・ポータル1424、メールボックス・サービス1426、インスタント・メッセージング・ストア1428、およびソーシャル・ネットワーキング・サイト1430を用いて格納することができる。システム1418は、本明細書において説明したように、コメント機能を設けるために、これらのタイプのシステム等のいずれでも用いることができる。サーバー110は、アプリケーション115を実行する要求を受け、項目(item)をクライアント125に渡すことができる。一例として、サーバー110は、ウェブ上でコンテンツを提供するウェブ・サーバーであってもよい。サーバー110は、ウェブ上のコンテンツをクライアント・デバイス125にネットワーク120を通じて提供することができる。コンテンツを得ることができるクライアントの例には、あらゆる汎用パーソナル・コンピューターを含むことができる計算デバイス1200、タブレット計算デバイス1405、および/またはスマート・フォンを含むこともできる移動体計算デバイス1300を含む。これらのデバイスはいずれも、ストア108からコンテンツを得ることができる。
本発明の実施形態は、例えば、本発明の実施形態による方法、システム、およびコンピューター・プログラム生産物のブロック図および/または動作図を参照して以上で説明した。ブロックに記される機能/動作(act) は、いずれのフロー・チャートでも、示される順序以外で行うこともできる。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、または関与する機能性/動作に応じて、ブロックが逆の順序で実行されてもよい場合もある。
以上、本発明のある種の実施形態について説明したが、他の実施形態も存在することができる。更に、本発明の実施形態について、メモリまたは他の記憶媒体に格納されたデータと関連付けられるように説明したが、データは、ハード・ディスク、フロッピ・ディスク、またはCD−ROMのような副記憶デバイス、インターネットからの搬送波、あるいは他の形態のRAMまたはROMというような他のタイプのコンピューター読み取り可能媒体に格納し、読み出すこともできる。更に、本発明から逸脱することなく、開示した方法の段階は、段階の順序を変えることおよび/またはステップを挿入または削除することによることを含む、あらゆるやり方で変更することができる。
尚、本発明の範囲や主旨から逸脱することなく、本発明において種々の変更または変形が可能であることは当業者には認められよう。ここに開示した本発明の明細書および実施の検討から、本発明の他の実施形態も当業者には明白であろう。