(57)【特許請求の範囲】
【請求項１】
転送表示作成モジュールと転送制御モジュールとメディアコンテンツ変換モジュールとを備える文書編集サブシステムを備えるコンピューター装置によって実行される方法であって、
前記転送表示作成モジュールが、ドキュメント内に潜在転送表示を埋め込むステップと、
前記転送制御モジュールが、前記ドキュメントについてのメディアコンテンツを転送するための転送要求を受け取るステップと、
ユーザーの入力操作によって前記ドキュメント上の前記メディアコンテンツが選択された場合に、前記転送制御モジュールが、前記選択されたメディアコンテンツを前記潜在転送表示にレンダリングするステップであって、前記ユーザーの入力操作によって前記ドキュメント上のテーブル内部のテキストが選択された場合には、前記テーブルが前記ドキュメント上で要素の論理的な関連付けのために使用されているときには前記テーブルを前記レンダリングするメディアコンテンツの一部として含み、前記テーブルが前記ドキュメント上でレイアウトの目的のみで使用されているときには前記テーブルを前記レンダリングするメディアコンテンツには含まない、ステップと、
前記メディアコンテンツ変換モジュールが、前記潜在転送表示における前記メディアコンテンツを、前記転送要求の目的エンドポイントと互換性のあるフォーマットで前記メディアコンテンツを含む変換メディアコンテンツに変換するステップと、
前記転送制御モジュールが、前記転送要求に応答して前記潜在転送表示を使用して前記変換メディアコンテンツを前記目的エンドポイントへ転送するステップと
を備えたことを特徴とする方法。
【請求項２】
前記転送制御モジュールが、前記転送要求を完了する前に、仲介のデーター変換動作のために、前記潜在転送表示に前記メディアコンテンツを転送するステップを備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記転送制御モジュールが、前記ドキュメントからシステムクリップボードへ前記メディアコンテンツをコピーするためのコピー転送要求、又は前記ドキュメントからシステムクリップボードへ前記メディアコンテンツを移動するための切り取り転送要求を受け取るステップを備えたことを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記転送制御モジュールが、コピー転送要求又は切り取り転送要求に応答して、前記ドキュメントから前記潜在転送表示に前記メディアコンテンツを転送するステップを備えたことを特徴とする請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記転送制御モジュールが、変換されたメディアコンテンツを前記潜在転送表示からシステムクリップボードに転送するステップを備えたことを特徴とする請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記転送制御モジュールが、システムクリップボードから前記ドキュメントに前記メディアコンテンツを貼り付けるための貼り付け転送要求を受け取るステップを備えたことを特徴とする請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記転送制御モジュールが、貼り付け転送要求に応答して、システムクリップボードから前記潜在転送表示に前記メディアコンテンツを転送するステップを備えたことを特徴とする請求項１乃至６のいずれかに記載の方法。
【請求項８】
実行されるとシステムが請求項１乃至７の任意の一つの方法を実装することを可能にする命令を含むコンピューター読み取り可能な記録媒体。
【請求項９】
装置であって、
ドキュメントについての編集動作を管理するよう作動するドキュメント編集サブシステムであって、
前記ドキュメント内に潜在転送表示を組み込むよう作動する転送表示作成モジュールと、
前記転送表示作成モジュールに通信可能に結合された転送制御モジュールであって、前記転送制御モジュールが、
前記ドキュメントについてのメディアコンテンツを転送するための転送要求を受け取り、
ユーザーの入力操作によって前記ドキュメント上の前記メディアコンテンツが選択された場合に、前記転送制御モジュールが、前記選択されたメディアコンテンツを前記潜在転送表示にレンダリングするよう作動し、
当該転送制御モジュールが、前記ユーザーの入力操作によって前記ドキュメント上のテーブル内部のテキストが選択された場合には、前記テーブルが前記ドキュメント上で要素の論理的な関連付けのために使用されているときには前記テーブルを前記レンダリングするメディアコンテンツの一部として含み、前記テーブルが前記ドキュメント上でレイアウトの目的のみで使用されているときには前記テーブルを前記レンダリングするメディアコンテンツには含まないものであり、
前記転送要求に応答して前記潜在転送表示を使用して前記メディアコンテンツを前記転送要求の目的エンドポイントへ転送するよう作動する転送制御モジュールと、
前記転送制御モジュールが前記メディアコンテンツを転送する前に、前記潜在転送表示における前記メディアコンテンツを、前記転送要求の目的エンドポイントと互換性のあるフォーマットで前記メディアコンテンツを含むメディアコンテンツに変換するメディアコンテンツ変換モジュールと、
を備える前記ドキュメント編集サブシステム
を備えることを特徴とする装置。
【請求項１０】
前記転送制御モジュールが、前記転送要求を完了する前に、仲介のデーター変換動作について、潜在転送表示に前記メディアコンテンツを転送するよう動作することを特徴とする請求項９に記載の装置。
【請求項１１】
前記転送制御モジュールが、コピー転送要求又は切り取り転送要求に応答して、前記メディアコンテンツを前記ドキュメントから前記潜在転送表示に転送し、変換されたメディアコンテンツを前記潜在転送表示からシステムクリップボードに転送するよう作動することを特徴とする請求項９又は１０に記載の装置。
【請求項１２】
前記転送制御モジュールが、貼り付け転送要求に応答して、システムクリップボードから前記潜在転送表示に前記メディアコンテンツを転送し、変換されたメディアコンテンツを前記潜在転送表示から前記ドキュメントへ転送するよう作動することを特徴とする請求項９乃至１１のいずれかに記載の装置。
【請求項１３】
ウェブブラウザーを有するクライアントデバイスを備え、前記クライアントデバイスが、前記ウェブブラウザーを使用してネットワーク上でサーバーからアプリケーションプログラムを取り出し、ウェブブラウザーウィンドウを使用して前記ドキュメントを表示するために前記クライアントデバイスで前記アプリケーションプログラムを実行し、前記ドキュメントを編集するための前記ドキュメント編集サブシステムを使用することを特徴とする請求項９乃至１２のいずれかに記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、潜在転送表示を使用してドキュメントを編集する技術に関する。
【背景技術】
【０００２】
ワード処理アプリケーションプログラム等のアプリケーションプログラムは従来、ローカル又はネットワークベースのファイルに格納されたドキュメントに対して多くの編集及びフォーマット機能を提供するパーソナルコンピューター上でインストールされたスタンドアロンのソフトウェアプログラムであった。これらのアプリケーションプログラムは一般にとても大きく、インストールするために多くのメガバイトのドライブの空きを要求する。しかしながら最近の傾向は、同じスタンドアロンのアプリケーションプログラムへのアクセスを有さなくてもよいリモートで多様なユーザーによるドキュメントの協力的な開発のためであり、ドキュメントはインターネット上でアクセス可能なリモートネットワーク上に格納されうる。これは、従来のＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（「ｗｅｂ（ウェブ）」）を介して配信できるアプリケーションプログラムの開発をもたらし、従ってリモートのドキュメントが従来のスタンドアロンのアプリケーションプログラムをインストールする必要なくネットワーク上でユーザーにより編集されることを可能にする。
【０００３】
ウェブベースのアプリケーションプログラムの機能性を提供する一技術は、多くのウェブブラウザープログラムにおいて利用可能な編集特性を利用するウェブページを開発することを伴う。この技術は、少ない開発の努力で小さく早い利点を有する。しかし、これらのウェブブラウザーにより提供されたこの限定された編集特性は一般に、従来のスタンドアロンのアプリケーションプログラムの特徴的な多くの性能と比較できない。さらに利用可能な編集特性は異なるウェブブラウザープログラム間で変わりうることにより、すべてのウェブブラウザーに渡って一貫したユーザーエクスペリエンスを提供することを難しくする。
【０００４】
ウェブベースのアプリケーションプログラムの機能性を提供する別の技術は、サンマイクロシステムズからのＪＡＶＡ、アドビシステムズからのＦＬＡＳＨ、非同期ＪａｖａＳｃｒｉｐｔ及びＸＭＬ（「ＡＪＡＸ」）等のクロスブラウザーのランタイムテクノロジーを使用してブラウザー内で実行される完全なアプリケーションプログラムを実装することである。アプリケーションプログラムの特性及び性能上で完全な制御を開発者に可能にする一方で、この方法は一般に考慮可能な開発努力を伴い、ウィンドウ内でユーザーによりタイプされたテキストのレンダリング、テキストを通して点滅するカーソルの動き、又はウィンドウのユーザータイプのコンテンツの一貫したリフロー等の低いレベルの編集機能性の実装を要求する。さらに、アプリケーションプログラムはブラウザーベースのランタイム技術において実行されるので、実行においてゆっくりであることが多く、適切に応答するユーザーインターフェースを提供できないかもしれない。
【０００５】
本改善が必要とされることは、これら及び他の考慮に関する。
【発明の概要】
【０００６】
本概要は、発明を実施するための形態において以下でさらに説明される概念の抽出したものを簡略化された形式で紹介するために提供される。本概要は、特許請求された主題の重要な特徴又は本質的な特徴を特定することを意図せず、特許請求された主題の範囲を決定する助けであることも意図しない。
【０００７】
様々な実施形態は概して、リモートデバイスからネットワーク上でドキュメントを修正、変更又はさもなければ編集するための技術に向けられる。例えば一実施形態において、装置はウェブブラウザーを有するクライアントデバイスを含みうる。このクライアントデバイスはウェブブラウザーを使用してネットワーク上でサーバーからアプリケーションプログラムを取り出し、ウェブブラウザーのウィンドウを使用してドキュメントを表示するためにクライアントデバイスでアプリケーションプログラムを実行しうる。ユーザーはその後、ウェブブラウザーのウィンドウを介してドキュメントを編集し、一度修正されるとサーバーに修正されたドキュメントを格納しうる。
【０００８】
このクライアントデバイスは、一般にドキュメントに対する編集動作を管理するために、新しい、拡張されたドキュメント編集サブシステムを使用しうる。例えば一実施形態において、ドキュメント編集サブシステムは、ドキュメント内に潜在転送表示（ｌａｔｅｎｔ  ｔｒａｎｓｆｅｒ  ｓｕｒｆａｃｅ）を組み込むよう作動する転送表示作成モジュールを含みうる。転送制御モジュールは転送表示作成モジュールに通信的に結合されうる。転送制御モジュールは、ドキュメントについてのメディアコンテンツを転送するための転送要求を受け取り、転送要求に応答して潜在転送表示を使用してメディアコンテンツを転送するよう作動しうる。転送要求の例は、コピー転送要求、切り取り転送要求、貼り付け転送要求、貼り付け特別転送要求及びその他を限定することなく含みうる。他の実施形態は説明され特許請求される。
【０００９】
これら及び他の特徴及び利点は、以下の発明を実施するための形態及び添付の図面の検討の解釈から明らかとなる。以下の一般的な説明及び以下の発明を実施するための形態の両方が説明のためのみであり、特許請求される態様の限定ではないことを理解されたい。
【図面の簡単な説明】
【００１０】
【図１】第１のシステムの実施形態を示す図である。
【図２】ドキュメント編集サブシステムの実施形態を示す図である。
【図３】第２のシステムの実施形態を示す図である。
【図４】論理フローの実施形態を示す図である。
【図５】コンピューティングアーキテクチャの実施形態を示す図である。
【図６】項目の実施形態を示す図である。
【発明を実施するための形態】
【００１１】
様々な実施形態は、ある動作、機能又はサービスを実行するために編成された物理的又は論理的構造を含む。この構造は、物理構造、論理構造又は両方の組み合わせを含みうる。この物理的又は論理的構造は、ハードウェア要素、ソフトウェア要素又は両方の組み合わせを使用して実装される。しかし、特定のハードウェア又はソフトウェア要素を参照した実施形態の説明は例として意味し、限定ではない。実施形態を実際に実践するためにハードウェア又はソフトウェア要素の使用を決定することは、所望のコンピューターの率（ｃｏｍｐｕｔａｔｉｏｎａｌ  ｒａｔｅ）、電源レベル、耐熱性、処理サイクル量（ｐｒｏｃｅｓｓｉｎｇ  ｃｙｃｌｅ  ｂｕｄｇｅｔ）、入力データー率、出力データー率、メモリーリソース、データーバススピード、及び他の設計又は性能制約などの多くの外部要素に依存する。さらに、物理的又は論理的構造は、電気信号又はメッセージの形式で構造間で情報を通信するための対応する物理的又は論理的接続を有しうる。この接続は情報又は特定の構造に適切な有線及び／又は無線接続を含みうる。「一実施形態」又は「実施形態」の任意の参照は、実施形態に結び付けて説明される特定の特徴、構造又は特性が少なくとも一実施形態内に含まれることを意味することを理解されたい。明細書における様々な場所における「一実施形態において」の句の出現は、同じ実施形態をすべて参照する必要性はない。
【００１２】
様々な実施形態は一般に、ウェブブラウザー等の適した通信インターフェースを使用してクライアントデバイスにより実行のために編成されたサーバーベース又はウェブベースのアプリケーションプログラムに向けられる。ウェブベースのアプリケーションプログラムは、クライアントデバイスにより実装されることになるスタンドアロンのアプリケーションプログラムを必要とすることなくクライアントデバイスからオンラインで、ドキュメントを作成及び編集することを操作者に可能にする。さらに、ウェブベースのアプリケーションプログラムは、他の操作者とリアルタイムで協力することを可能にする。
【００１３】
アプリケーションプログラムは、ドキュメントを作成、修正、処理及び管理することが可能な任意の種類のアプリケーションプログラムを含みうる。ドキュメント（文書）の例は、ワード処理のドキュメント、スプレッドシートのドキュメント、個人情報管理のドキュメント、プレゼンテーションのドキュメント、メモ（ｎｏｔｅ）のドキュメント、データーベースのドキュメント、出版（ｐｕｂｌｉｓｈｉｎｇ）のドキュメント、データー入力のドキュメント、図形のドキュメント、プロジェクトのドキュメント、フォームのドキュメント、インターネットのドキュメント、マークアップ言語のドキュメント、ＨＴＭＬ（ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）のドキュメント、ＸＨＴＭＬ（ｅｘｔｅｎｓｉｂｌｅ  ＨＴＭＬ）、ＸＭＬ（ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）のドキュメント、ＧＭＬ（ｇｅｎｅｒａｌｉｚｅｄ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）のドキュメント、ＳＧＭＬ（ｓｔａｎｄａｒｄ  ＧＭＬ）のドキュメント、ＬＭＬ（ｌｉｇｈｔｗｅｉｇｈｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）のドキュメント、ＵＩＭＬ（ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）、ＶＧＭＬ（ｖｅｃｔｏｒ  ｇｒａｐｈｉｃｓ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）のドキュメント、ウェブベースのドキュメント、オンラインのドキュメント、ウェブページ及びその他を限定ではなく含みうる。アプリケーションプログラムの例は、ワシントン州リッチモンドのマイクロソフト社により適合して作られたマイクロソフト（登録商標）オフィス製品に含まれる任意のアプリケーションプログラムを限定ではなく含みうる。例えば一実施形態において、アプリケーションプログラムはマイクロソフトのワード（ＭＩＣＲＯＳＯＦＴ  ＷＯＲＤ）等のワード処理プログラムを含みうる。マイクロソフトのワード（ＭＩＣＲＯＳＯＦＴ  ＷＯＲＤ）アプリケーションプログラムは、マイクロソフトオフィスライブ（ＭＩＣＲＯＳＯＦＴ  ＯＦＦＩＣＥ  ＬＩＶＥ）又はグーグル（登録商標）ＡＰＰＳ（アプリケーション）により提供されるウェブベースのアプリケーションプログラムとして実装しうる。しかし実施形態はこの例に限定されない。
【００１４】
一実施形態において、ワード処理プログラム等のアプリケーションプログラムは、クロスブラウザーのランタイム技術において実装され、従来型のスタンドアロンのワード処理プログラムと比較して編集特性の多くのセットを提供する。編集特性は様々なエンドポイント間のメディアコンテンツの転送を伴う任意のコマンド、命令、指示を含みうる。編集特性の例は、コピーのコマンド、切り取りのコマンド、貼り付けのコマンド、貼り付けの特別なコマンド及びその他を限定ではなく含みうる。様々なエンドポイント間での転送の例は、ドキュメントとシステムクリップボードとの間、２つの異なるドキュメント間、アプリケーションプログラム間、システムプログラムとアプリケーションプログラムとの間、ソフトウェアオブジェクト間、及びその他のメディアコンテンツの転送を限定ではなく含みうる。アプリケーションプログラムは、アプリケーションプログラムをサポートするよう設計されたドキュメント編集サブシステムを使用して編集特性を実装しうる。ドキュメント編集サブシステムは、サーバーにより実行されるウェブベースのアプリケーションプログラムの一部、クライアントデバイスにより実行されるウェブベースのアプリケーションプログラム、ウェブブラウザー等の通信インターフェース、ほかのネットワークがアクセス可能な若しくはクライアントがアクセス可能なデバイス、又はこれらの選択肢の組み合わせ等の様々なネットワークの部分において実装されうる。
【００１５】
従来のウェブベースの編集ツールは多くの理由により、満足いくものではない。例えば、既存のウェブベースの編集ツールは、編集特性、特にデーターをシステムクリップボードにインポート及びエクスポートすることに関して、実装するのに限定された性能を一般に有する。これはウェブブラウザー自身により課されたセキュリティ制限に一部起因する。編集ドキュメントは従って、ウェブブラウザーによって提供された編集コマンドに依存している。例えば編集可能なＨＴＭＬ表示がユーザーに提供されるとき、任意の不定なメディアコンテンツはその後に表示に貼り付けできる。この場合にワード処理プログラムは、操作者（オペレーター）により貼り付けられる不定のメディアコンテンツのスタイル、フォーマット及びレイアウト上で限定された制御を有する。さらにこのような編集動作を検知すること、及びすべてのウェブブラウザーにおいてよく動作し、既存のアプリケーションで使用されるコンテンツをフィルタリングすることは難しい。同様な問題がシステムクリップボードにメディアコンテンツをコピーすることについて存在する。ウェブブラウザーにより使用される選択モデルは一般に限定される。例えば操作者はドキュメントの異なる部分の同時選択を行うこと、又はＩＦＲＡＭＥ（Ｉｎｌｉｎｅ  Ｆｒａｍｅ）等の任意の埋め込まれたコンテンツに範囲が渡る選択を行うことはできない。さらに、ソースドキュメント（例えばウェブページとしてレンダリングされたドキュメント）からコピーされたメディアコンテンツは、目的エンドポイントに対して適したフォーマットではないことがある。
【００１６】
これら及び他の問題を解決するために、実施形態は、スタンドアロンのワード処理プログラムと互換性のある編集特性の拡張されたセットを提供するよう編成されたドキュメント編集サブシステムを含む。低いレベルの編集機能を実装するためにウェブブラウザーにより提供される編集特性を使用することよりむしろ、ワード処理プログラムは様々な編集特性を実装するためにドキュメント編集サブシステムを利用しうる。特に、ドキュメント編集サブシステムは、様々な編集特性を実装するために潜在転送表示を利用しうる。潜在転送表示はドキュメント内に組み込まれ、操作者による視界（ｖｉｅｗ）から隠される。潜在転送表示は、ドキュメント及びシステムクリップボード間で転送されるメディアコンテンツについての仲介のストレージ構造として使用されうる。一態様において、とりわけ潜在転送表示はＨＴＭＬ  ＩＦＲＡＭＥ要素として実装されうる。
【００１７】
本明細書で示される一態様によって、ウェブブラウザー内のドキュメントは潜在転送表示を使用して編集されうる。これに関して、ウェブブラウザー内で実行するワード処理プログラムは、ブラウザーのウィンドウにドキュメントを表示する。ドキュメント編集サブシステムが編集要求（例えば、切り取りの転送要求、コピーの転送要求、貼り付けの転送要求、貼り付けの特別な転送要求等）をいつ受け取ろうが、編集要求を促進又は実行するために組み込まれた潜在転送表示を利用する。一般に、ドキュメント編集サブシステムは潜在転送表示にメディアコンテンツを転送し、メディアコンテンツを処理し、その後処理されたメディアコンテンツを目的オブジェクト（例えば、ドキュメント又はシステムクリップボード）に転送する。この仲介の処理段階は、選択されたメディアコンテンツが、コピーの転送要求又は切り取りの転送要求に応答したシステムクリップボード、貼り付けの転送要求又は貼り付けの特別な転送要求に応答したドキュメント、及びその他等の目的エンドポイントに適した様々なフォーマットに変換されるか又は解釈されることを可能にする。実施形態はこの文脈に限定されない。
【００１８】
上述の主題がコンピューター制御の装置、コンピューター処理、コンピューティングシステム、又はコンピューター読み取り可能な媒体等の製品の項目としても実装されうることを理解されたい。これら又は様々な他の特徴は以下のより詳細な説明の解釈及び関連付けられた添付の図面の検討から明らかとなる。
【００１９】
図１はシステム１００のブロック図を示す。システム１００は単一のエンティティ（実体）の環境又は複数のエンティティの分散環境による実装のために設計された様々な要素を含みうる。各要素は、設計パラメーター又は性能制限の所与のセットについて要求されるように、ハードウェア要素、ソフトウェア要素又はこれらの任意の組み合わせとして実装されうる。ハードウェア要素の例は、デバイス、コンポーネント、プロセッサー、マイクロプロセッサー、回路、回路要素（例えばトランジスター、レジスター、コンデンサー、インダクター及びその他）、集積回路、ＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ）、ＰＬＤ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅｓ）、ＤＳＰ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒｓ）、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ ａｒｒａｙ）、メモリーユニット、論理ゲート、レジスター、半導体デバイス、チップ、マイクロチップ、チップセット及びその他を含みうる。ソフトウェア要素の例は、任意のソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーションシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、インターフェース、ソフトウェアインターフェース、ＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ）、命令セット、コンピューティング（演算）コード、コンピューターコード、コードセグメント、コンピューターコードセグメント、ワード、値、符号又はこれらの任意の組み合わせを含みうる。
【００２０】
本明細書で使用される用語「システム」、「サブシステム」、「コンポーネント」及び「モジュール」は、コンピューターに関連したエンティティを指すことを意図し、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア、又は実行におけるソフトウェアのいずれかを含む。例えばコンポーネントは、プロセッサー上で実行しているプロセス、プロセッサー、ハードディスクドライブ、（光及び／又は磁気のストレージメディア（記録媒体）の）複数のストレージデバイス、オブジェクト、実行ファイル（ｅｘｅｃｕｔａｂｌｅ）、実行のスレッド、プログラム、及び／又はコンピューターとして実装できる。例として、サーバー上で実行しているアプリケーション及びサーバーはコンポーネントであることができる。１以上のコンポーネントは、処理及び／又は実行のスレッド内に存在でき、コンポーネントは一コンピューター上でローカライズ及び／又は所与の実装のために望まれるように２以上のコンピューター間で分散されることができる。実施形態はこの文脈に限定されない。
【００２１】
図１に図示される実施形態は、潜在転送表示１３０を使用してドキュメントを編集するためのシステム１００の変化した態様を示す。システム１００はオペレーティングシステム及び１または複数のアプリケーションプログラムを実行できる標準のデスクトップ又はラップトップコンピューターシステムを含むコンピューター１２０を含む。コンピューター１２０はディスプレイ１０４、マウス１０８及びキーボード１１０に動作可能なように接続されて、ユーザー１０２がシステム及びコンピューター１２０上で実行しているアプリケーションプログラムと対話することを可能にする。コンピューター１２０は、ネットワーク１６０等の１以上のローカル及びワイドエリアネットワークを通してサーバーコンピューター１６２に相互接続される。多くのさらなるネットワーク接続が図１における図示より利用されうることを理解されたい。
【００２２】
コンピューター１２０は、ネットワーク１６０を介してサーバーコンピューター１６２により実行されるウェブサーバー１６４に動作可能に接続されるウェブブラウザー１２２を実行するよう作動する。一実施形態において、ウェブブラウザー１２２は、マイクロソフト社のインターネットエクスプローラー（登録商標）等のＨＴＭＬドキュメント、ＭＯＺＩＫＫＡのＦＩＲＥＦＯＸ、ＡＰＰＬＥ社のＳＡＦＡＲＩ及びその他等をディスプレイできるアプリケーションプログラムである。しかし、マークアップ言語をレンダリングし、スクリプトロジックを実行することが可能な任意の種類のアプリケーションプログラムが、ウェブブラウザー１２２を一体化するのに利用されうることを当業者により理解されたい。サーバーコンピューター１６２はウェブサーバーとして動作し、ウェブブラウザー１２２にドキュメントを供給することが可能な任意のソフトウェアプログラムを含みうる。サーバーコンピューター１６２はさらに、ドキュメントを含むデーターストレージ１６８及びアプリケーションプログラム１４０に接続され、これは以下でより詳細に説明される。一実施形態によれば、ドキュメントはウェブブラウザー１２２に供給されることになるドキュメント１２８を含みうる。例えば、ドキュメント１２８は、ウェブブラウザー１２２によりレンダリングされたＨＴＭＬドキュメントを含みうる。コンピューター１２０のユーザー１０２による要求の上で、ウェブブラウザー１２２は、ウェブサーバー１６４からドキュメント１２８を取り出し、ユーザー１０２への表示のためにディスプレイ１０４上でウィンドウ１０６においてそれをレンダリング（ｒｅｎｄｅｒ）するよう動作可能である。
【００２３】
上で簡単に説明したように、システム１００もまた、ワード処理プログラム等のアプリケーションプログラム１４０も含む。アプリケーションプログラム１４０は、コンピューター１２０のユーザー１０２がウィンドウ１０６におけるドキュメント１２８のコンテンツを編集することを可能にするよう作動する。一実施形態によれば、アプリケーションプログラム１４０は、ウェブブラウザー１２２により提供されるランタイム環境内で実行することが可能である。例えば、アプリケーション１４０はＡＪＡＸ開発技術を使用して作成されうる。
【００２４】
一実施形態において、アプリケーションプログラム１４０は編集されることになるドキュメント１２８を伴いウェブサーバー１６４から取り出される。代替の実施形態において、アプリケーションプログラム１４０はコンピューター１２０上でローカルに存在しうる。アプリケーションプログラム１４０は、ユーザー１０２に所与の機能のセット（例えばワード処理）を提供するよう作動するアプリケーションロジックを含むアプリケーションプログラムモジュール１４８を含む。一実施形態において、アプリケーションプログラム１４０は内部のドキュメントイメージ１５０内に編集されているドキュメントのコンテンツを保持する。一実施形態において、アプリケーションプログラム１４０はドキュメント１２８内に直接編集されているドキュメントのコンテンツを保持する。ディスプレンダラー１２４はディスプレイのためにドキュメント１２８をレンダリングする。例えば、ディスプレイレンダラー１２４はＨＴＭＬレンダラーとして実装されうる。
【００２５】
一実施形態において、アプリケーションプログラム１４０はイベントハンドリングモジュール１４６を含み、ユーザー入力プロセッサー１２６からユーザーの入力イベントを監視する。図２に関して以下で詳細に説明されるように、イベントハンドリングモジュール１４６は、ウィンドウ１０６において表示されるように、ドキュメント１２８内の１または複数の位置にて挿入ポインターのユーザー１０２による配置及び動きを検知するよう作動する。イベントハンドリングモジュール１４６は、ドキュメントのコンテンツの編集の間、ユーザーの入力イベントを監視するようにさらに作動する。例えば、イベントハンドリングモジュール１４６は、編集コマンドの準備においてドキュメント１２８内のメディアコンテンツの一部分又は複数の部分を検出しうる。
【００２６】
コンピューター１２０は、ドキュメント１２８等のドキュメントについての編集動作及び編集特性を一般に管理するように編成された拡張されたドキュメント編集システム２００を使用しうる。特に、ドキュメント編集サブシステム２００は、様々な編集特性をサポート又は実装するために潜在転送表示１３０を利用しうる。このドキュメント編集サブシステム２００は、ユーザー１０２によるビューから見えないままする又は隠されたままにする方法で、ドキュメント１２８に潜在転送表示１３０を埋め込む。ドキュメントの編集サブシステム２００は、ドキュメント１２８とシステムクリップボードとの間で転送されているメディアコンテンツについての仲介のストレージ構造として、潜在転送表示１３０を使用しうる。
【００２７】
潜在転送表示１３０は、ユーザー１０２への表示のためのディスプレイ１０４上のブラウザーウィンドウ１０６におけるドキュメント１２８をレンダリングするために、ディスプレイレンダラー１２４により使用される所与のマークアップ言語で使用するのに適した任意の編集可能なフレームを含みうる。さらに、潜在転送表示は隠されるか、潜在か又は見えないので、ユーザー１０２は、ブラウザーウィンドウ１０６におけるドキュメント１２８の閲覧の間、編集可能なフレームを閲覧又は気づくことができない。例えば、一実施形態において、とりわけ潜在転送表示１３０はＨＴＭＬ、ＩＦＲＡＭＥ要素として実装されうる。ユーザー１０２に可視ではなく、特定のドキュメントでの使用に適した任意の編集可能なフレームは、潜在転送表示１３０として使用されうる。この実施形態はこの文脈に限られない。
【００２８】
潜在転送表示１３０は、ユーザー１０２がドキュメント１２８に貼り付けるメディアコンテンツのための保管又は一時的なストレージ、及びコピー又は切り取りコマンドについて選択されたコンテンツをレンダリングするための場所として使用しうる。可視でない又は潜在転送表示１３０を使用することは、各ドキュメント１２８がドキュメント１２８に又はドキュメント１２８から転送されるメディアコンテンツを一時的に格納することを可能にする。ドキュメント編集サブシステム２００は潜在転送表示１３０を監視でき、メディアコンテンツが潜在転送表示１３０に預けられていたとき検知できる。ドキュメント編集サブシステム２００はその後、潜在転送表示１３０により格納されたメディアコンテンツを、目的エンドポイント（例えば、システムクリップボード又はドキュメント）に適したフォーマットに変換又は解釈できる。この方式でドキュメント編集サブシステム２００及び潜在転送表示１３０は、貼り付けコマンド又は貼り付けスペシャルコマンドを使用してシステムクリップボード１４２からドキュメント１２８に挿入されていると同時に、コピーコマンド又は切り取りコマンドを使用してドキュメント１２８からシステムクリップボード１４２にコピー又は移動されているメディアコンテンツのフォーマットをアプリケーション１４０がコントロールすることを可能にする。この種類のモデル間での差異、及び典型的なウェブブラウザーに実装される編集特性により提供されるデフォルトの振る舞いは、ウェブブラウザーにより提供される編集特性及び制御も制限されるよりむしろ、ドキュメント編集サブシステム２００が選択されたメディアコンテンツの完全な制御を保持することであり、ドキュメント編集システム２００がスタイル、フォーマット、レイアウト、及びメディアコンテンツの他のフォーマット態様を操作することを可能にする。
【００２９】
例えば一実施形態において、ドキュメント編集サブシステム２００は、貼り付け及び貼り付けの特別なコマンドを扱うために潜在転送表示１３０を使用しうる。特にドキュメント編集サブシステム２００は、ディスプレイ１０４のウィンドウ１０６におけるウェブページとしてレンダリングされるドキュメント１２８上の新しいＨＴＭＬ要素として潜在転送表示１３０を実装しうる。プログラム的に潜在転送表示１３０にフォーカスを置くことにより、貼り付けコマンドを引き起こすユーザー動作は、メディアコンテンツを潜在転送表示１３０に置くことになる。「フォーカス（ｆｏｃｕｓ）」という用語は、所与のドキュメント内の挿入場所又は現在の選択の位置を指す。貼り付け動作が起きたとき、潜在転送表示１３０のコンテンツは検出のために監視されうる。このとき、潜在転送表示１３０のコンテンツを検査でき、ドキュメント１２８に適したフォーマットに変換できる。データーが変換された後、ドキュメント１２８のユーザーのビューに挿入される。この方式で、ウェブページ上に現れるメディアコンテンツの制御が保持でき、ドキュメント１２８になされた編集についての情報を保存できる。
【００３０】
例えば一実施形態において、ドキュメント編集サブシステム２００は、コピー、移動及び切り取りコマンドを操作するために潜在転送表示１３０も使用しうる。ユーザー１０２がキーボード又はマウス等の入力デバイスを使用してドキュメント１２８内でいくつかのメディアコンテンツを選択するとき、ドキュメント編集サブシステム２００はユーザーが選択したいメディアコンテンツを判定する。ドキュメント編集サブシステム２００はその後、選択されたことを示す（例えば、テキスト上の青い背景）ために選択されたメディアコンテンツのフォーマットを変更する。ドキュメント編集サブシステム２００は、ユーザー１０２により選択された的確なデーターを表すＨＴＭＬコード又は他のコードの実行となるように、潜在転送表示１３０のコンテンツを設定する。ドキュメント編集サブシステム２００は、潜在転送表示１３０のコンテンツを指すために、ドキュメント１２８内にフォーカスをプログラム的に設定する。結果として、ユーザー１０２がコピーのコマンドを実行するとき、システムクリップボード１４２はドキュメント編集サブシステム２００により生成されたメディアコンテンツを追加されることになる。
【００３１】
図２はドキュメント編集サブシステム２００の、より詳細なブロック図である。ドキュメント編集サブシステム２００は複数のコンポーネント及び／又はモジュールを含みうる。図２において示される図示された実施形態において、ドキュメント編集サブシステム２００は、編集管理コンポーネント２２０、ストレージコンポーネント２３０、Ｉ／Ｏ（入力／出力）コンポーネント２４０を含みうる。コンポーネント及び／又はモジュールは、ハードウェア要素、ソフトウェア要素、又はハードウェア要素及びソフトウェア要素の組み合わせを使用して実装されうる。図２において示されるようにドキュメント編集サブシステム２００はある接続形態において限定された数を有すが、ドキュメント編集サブシステム２００は所与の実装で望まれるように、代替の接続形態において、多かれ少なかれ要素を含みうることを理解されたい。
【００３２】
編集管理コンポーネント２２０は、イベントメッセージキュー２２２において、様々な入力イベントメッセージ２０２を受け取るよう編成されうる。イベントメッセージキュー２２２は、イベントメッセージを扱うための１または複数のキューを含みうる。例えば一実施形態において、イベントメッセージキュー２２２は異なる優先度でイベントメッセージを扱いうる。イベントハンドリングモジュール１４６は、様々なイベントメッセージ２０２を処理して扱うために、イベントメッセージキュー２２２を使用しうる。
【００３３】
編集管理コンポーネント２２０は制御ロジック２２４を含みうる。制御ロジック２２４は定義情報（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ）２０６に基づいて編集管理コンポーネント２２０の動作を制御するよう編成されうる。例えば制御ロジック２２４は、様々な入力イベントメッセージ２０２に応答して様々な入力サブシステムから受け取った入力データーの様々な動作を実施するためのアルゴリズム、ロジックフロー又は状態マシンを実行しうる。制御ロジック２２４は定義情報２０６に基づいて入力データーを処理しうる。制御ロジック２２４は、様々な出力イベントメッセージ２０４も作成し、出力イベントメッセージ２０４をイベントスケジューラー及びディスパッチャー２２６に送信もする。
【００３４】
編集制御コンポーネント２２０はイベントスケジューラー及びディスパッチャー２２６を含みうる。イベントスケジューラー及びディスパッチャー２２６は、イベントを他の外部のエンティティに初期化するよう編成され、内部のイベント及び編集管理コンポーネント２２０内のメッセージをディスパッチ（発送）しうる。例えば、イベントスケジューラー及びディスパッチャー２２６は、入力イベントメッセージ２０２に応答して、様々な出力イベントメッセージ２０４を他のシステム、サブシステム、システム１００のコンポーネント又はモジュールに送信する。
【００３５】
一実施形態において、ドキュメント編集サブシステム２００はストレージコンポーネント２３０を含みうる。ストレージコンポーネント２３０は、編集管理コンポーネント２２０についてのストレージ動作を管理するためのデーターストア及びロジックで編成されうる。ストレージコンポーネント２３０は一時的なデーターストア２３２における編集管理コンポーネント２２０により使用される一時的又は未処理の情報を格納しうる。例えば、一時的又は未処理の情報はＸＭＬ（ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）、バイナリファイル、又は一時的なデーターストア２３２におけるいくつかの他のフォーマットとして格納されうる。ストレージコンポーネント２３０は永久データーストア２３４における編集管理コンポーネント２２０により使用される永続的な又は処理された情報を格納しうる。データーストア２３２、２３４はそれぞれ個別のデーターストア、又はＳＡＮ（ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）等のより大きなデーターストア配列の一部を含む複数のデーターストアを含みうる。さらに、ストレージコンポーネント２３０及びデーターストア２３２、２３４は、システムが潜在及び容量パラメーターを満たす必要がある場合に、適切なデーターのバッファリング及びキャッシュ技術および構造を実装しうる。ストレージコンポーネント２３０もまた、ストレージのログを取り、検査するための動作を管理する。
【００３６】
一実施形態において、ドキュメント編集サブシステム２００はＩ／Ｏコンポーネント２４０を含みうる。Ｉ／Ｏコンポーネント２４０は、ドキュメント編集サブシステム２００を通しての移動情報における転送及びＩ／Ｏ動作を管理するためのバッファー及びロジックで編成される。例えば、Ｉ／Ｏコンポーネント２４０は、入力サブシステムから入力データー２０８を受け取って格納するための１以上の入力データーバッファー２４２を含みうる。編集管理コンポーネント２２０の１以上のモジュールは、処理されたデーターからの入力データー２０８を処理し、それを１以上の出力データーバッファー２４６に送りうる。出力データーバッファー２４６は、出力サブシステムに出力データーを格納及び送信するよう編成されうる。データーマネジャー２４４はデーター収集サービス及びデーター分散サービスを制御及び管理するためにロジック及びネットワークインターフェース（例えばウェブサービスインターフェース）を実装しうる。Ｉ／Ｏコンポーネント２４０は、入力データー２０８、及び／又は１フォーマット、データスキーマ又はプロトコルからの処理されたデーターを、代替フォーマット、データスキーム又はプロトコルに変換するために、１以上の変換バッファー２４８を実装しうる。
【００３７】
一般的な動作において、ドキュメント編集サブシステム２００は、コンピューター１２０により実行されたウェブブラウザー１２２を利用して、アプリケーションプログラム１４０についての様々な編集特性を実装しうる。さらに特に、ドキュメント編集サブシステム２００は編集特性をサポートするための潜在転送インターフェース１３０を使用しうる。これは多くの編集モジュール２２８−１−ｐを使用して達成されうる。図２に示される図示の実施形態において、編集モジュール２２８−１−ｐは、転送表示作成モジュール２２８−１、転送制御モジュール２２８−２、メディアコンテンツ変換モジュール２２８−３を含みうる。例としてであり限定ではなく編集モジュール２２８−１−ｐの特定数が図２において示されているが、多かれ少なかれモジュールが所与の実装で望まれるように革新的な市場の動作の様々なセットについて実装されうることを理解されたい。実施形態はこの文脈に限定されない。
【００３８】
転送表示作成モジュール２２８−１は、ドキュメント１２８内の潜在転送表示１３０を作成又は埋め込むために一般に作動しうる。潜在転送表示１３０は、ドキュメント編集サブシステム２００がウェブベースのアプリケーションプログラム１４０に及びウェブベースのアプリケーションプログラム１４０から、メディアコンテンツのインポート及びエクスポートを制御することを可能にする一時的なストレージ構造として使用されうる。潜在転送表示１３０は編集可能なフレーム（例えばＩＦｒａｍｅ）であり、アプリケーション１４０により制御されるが、アプリケーションプログラム１４０のユーザー１０２に実際に可視ではない。潜在転送表示１３０は、ユーザー１０２、ウェブブラウザー１２２、アプリケーションプログラム又はいくつかの他のエンティティ又はオブジェクトにより発行された編集コマンドについて、仲介の目的の位置として動作する。
【００３９】
転送表示作成モジュール２２８−１は様々な段階で潜在転送表示１３０を作成しうる。例えば、ユーザー１０２がアプリケーションプログラム１４０を立ち上げるとき、転送表示作成モジュール２２８−１は潜在転送表示１３０を作成する。別の例において、ディスプレイレンダラー１２４がブラウザーウィンドウ１０６におけるドキュメント１２８をレンダリングする際に、転送表示作成モジュール２２８−１は潜在転送表示１３０を作成しうる。いずれの場合においても、アプリケーションプログラム１４０は一度作成された潜在転送表示１３０への参照を保持する。
【００４０】
潜在転送表示１３０は、ユーザー１０２への表示のために、ディスプレイ１０４上のブラウザーウィンドウ１０６内のドキュメント１２８をレンダリングするために、ディスプレイレンダラー１２４により使用される所与のマークアップ言語での使用に適した任意の編集可能なフレームを含みうる。例えば一実施形態において、潜在転送表示１３０は、とりわけＨＴＭＬ  ＩＦＲＡＭＥ要素として実装されうる。さらに、潜在転送表示は隠され、不可視なので、ユーザー１０２は、ブラウザーウィンドウ１０６におけるドキュメント１２８を閲覧する間、編集可能なフレームを閲覧又は気付くことができない。
【００４１】
転送制御モジュール２２８−２は、転送表示作成モジュール２２８−１に通信的に結合されうる。転送制御モジュール２２８−２は、潜在転送表示１３０を使用してドキュメント編集サブシステム２００についての転送動作を制御するよう一般に編成されうる。例えば一実施形態において、転送制御モジュール２２８−２は、イベントハンドリングモジュール１４６により傍受されるように、ドキュメント１２８についてのメディアコンテンツを転送するための転送要求を受け取りうる。転送制御モジュール２２８−２はその後、転送要求に応答して潜在転送表示１３０を使用してメディアコンテンツの転送を連動しうる。転送要求の例は、コピーの転送要求、切り取りの転送要求、貼り付けの転送要求、貼り付けの特別な転送要求等の任意の適した編集コマンドを限定されることなく含みうる。
【００４２】
転送制御モジュール２２８−２は、コピーの転送要求又は切り取りの転送要求に応答して、ドキュメント１２８から潜在転送表示１３０にメディアコンテンツを転送するよう稼動しうる。転送制御モジュール２２８−２はドキュメント編集サブシステム２００についての選択及びコピーのサポートを提供する。転送制御モジュール２２８−２は、ユーザー１０２によるキーボード及びマウスの動きを追跡し、ユーザー１０２により選択されていたドキュメント１２８内のメディアコンテンツが何かを判定するためにそれらを処理する。比較のため、従来のウェブブラウザーはウェブベースのアプリケーションプログラムについてのコンテンツを一般に選択する。しかし転送制御モジュール２２８−２はこの時点で介入し、ドキュメント１２８上のどのオブジェクト（テキスト、画像等）にユーザー１０２が選択を試みているかの追跡を保持する。転送制御モジュール２２８−２は、テキスト上の背景の色の変更、画像の周りの縁を強調、及び他の適切なＧＵＩ（ｇｒａｐｈｉｃｓ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）技術等のいくつかの知覚できる方式でユーザー１０２にこれを可視的に表示することになる。
【００４３】
ほぼ同時に、転送制御モジュール２２８−２は選択されたメディアコンテンツを潜在転送表示１３０にレンダリングすることになる。例えば、潜在転送表示１３０の内部に適切なＨＴＭＬツリーを作成することにより、これは達成されうる。これは、アプリケーション１４０が目的エンドポイントにより使用される現在のフォーマット特性と互換性のある方式でメディアコンテンツをレンダリングすることを可能にする。例えばドキュメント１２８上の選択がテーブルの内部で実行されたテキストを含むと仮定する。目的によって、転送制御モジュール２２８−２は潜在転送表示１３０においてレンダリングされるメディアコンテンツの一部として周囲のテーブルを含むかどうかを任意で選択できる。例えば、転送制御モジュール２２８−２は、ページ上で要素の論理的な関連付けのために使用されているとき、周囲のテーブルを含むこと、レイアウトの目的のみで使用されている場合に、周囲のテーブルを除外することがすること、及びその他ができる。
【００４４】
転送制御モジュール２２８−２が潜在転送表示１３０により格納された選択されたコンテンツについてレンダリングすることを一度判定すると、転送制御モジュール２２８−２は、選択されたようにメディアコンテンツをマークするためにウェブブラウザー１２２を指示するためのＪａｖａスクリプトコード又はいくつかの他の適した技術を使用しうる。視覚的にこの動きはユーザー１０２から隠される。むしろ、ユーザー１０２は上述したように選択の印の視覚の要素のみ見ることになる。この時点でユーザー１０２は、キーボードのショートカットを押すか、右クリックのコンテキストメニュー、ブラウザーの編集メニュー、及びその他を使用することにより、コピーのコマンド又は切り取りのコマンドを発行するかどうかを判定できる。コピー／切り取りコマンドが発行されるとき、転送制御モジュール２２８−２は、変換されたメディアコンテンツを、潜在転送表示１３０からシステムクリップボード１４２に転送することになる。この方式で転送制御モジュール２２８−２は、ウェブブラウザー１２２により提供される編集特性に限定されるよりむしろ、システムクリップボード１４２に届けられるメディアコンテンツを正確に判定するのに使用できる。
【００４５】
転送制御モジュール２２８−２は、貼り付け転送要求に応答して、システムクリップボードから潜在転送表示１３０に、メディアコンテンツを転送し、潜在転送表示１３０からドキュメント１２８に任意の変換されたメディアコンテンツを転送するよう作動しうる。転送制御モジュール２２８−２はドキュメント編集サブシステム２００について貼り付け及びフィルタリングサポートを提供する。ウェブブラウザー１２２又はスタンドアロンのアプリケーションプログラムにおいて、ドキュメント１２８に対してのフォーカスは任意の所与の時に一つの場所においてのみ存在できる。前述のように、転送制御モジュール２２８−２は、コピー又は切り取り動作を可能にするために潜在転送表示１３０の内部にフォーカスを置く。同様に潜在転送表示１３０は貼り付け及び貼り付けの特別な動作に対する目的としても供給されうる。ユーザーが貼り付け又は貼り付けの特別なコマンドを発行するとき、転送制御モジュール２２８−２は、明示的な通知又は潜在転送表示１３０のコンテンツを定期的に検査することによりこの出来事を検知する。転送制御モジュール２２８−２が潜在転送表示１３０内のメディアコンテンツを検知するとき、転送制御モジュール２２８−２はメディアコンテンツ変換モジュール２２８−３に命令を発行しうる。
【００４６】
メディアコンテンツ変換モジュール２２８−３は転送制御モジュール２２８−２に通信的に結合される。メディアコンテンツ変換モジュール２２８−３は、潜在転送表示１３０により格納されたメディアコンテンツを、第１のフォーマットから第２のフォーマットに変換するよう一般に作動しうる。例えば、データーマネジャー２２４及び変換バッファー２４８を使用してこれが達成されうる。
【００４７】
潜在転送表示１３０がドキュメント１２８の隠された要素であるので、ユーザー１０２は編集コマンドが与えられた後すぐにメディアコンテンツを初期的に閲覧しない。これは、メディアコンテンツ変換モジュール２２８−３の時間が、潜在転送表示内のメディアコンテンツをソースのフォーマットから目的のフォーマットに解釈又は変換することを可能にする。結果として、アプリケーションプログラム１４０は、貼り付け／貼り付けの特別なコマンドに応答してドキュメント１２８のスタイル及びレイアウト、又はドキュメント１２８からシステムクリップボード１４２に転送されたメディアコンテンツのスタイル及びレイアウトの制御を保持する。メディアコンテンツ変換モジュール２２８−３は、潜在転送表示１３０に転送されたメディアコンテンツを構文解析（Ｐａｒｓｅ）し、メディアコンテンツをメディアコンテンツが表すものの適切なデーター表示に変換する。例えば、テキストが潜在転送表示１３０に転送されるとき、ＴｅｘｔＲｕｎＮｏｄｅ（テキスト実行ノード）がメモリ内に作成される。貼り付けられたメディアコンテンツにおけるテキストが太字テキストを示すＨＴＭＬ＜Ｂ＞タグでフォーマットされる場合、メディアコンテンツ変換モジュール２２８−３はテキストが太字としてレンダリングされること等を示すためにＴｅｘｔＲｕｎＮｏｄｅ上で属性を設定することになる。一般にアプリケーションプログラム１４０、特にドキュメント編集サブシステム２００により、サポートされるＨＴＭＬノードの様々なタイプの全てについてこれがなされる。変換動作が一度完了すると、メディアコンテンツ変換モジュール２２８−３は転送制御モジュール２２８−２を通知し、続いてユーザー１０２に閲覧可能な方式で新しくレンダリングされたメディアコンテンツを含むために実際のドキュメント１２８を更新する。
【００４８】
編集動作の最中に介入することにより、ドキュメント編集サブシステム２００は、ユーザー１０２及び／又はアプリケーションプログラム１４０により望まれた任意のフォーマットを適用する機会を提供する。例えば、変換されたメディアコンテンツは、ドキュメント１２８について現在実装されたデフォルトの見た目に一致するように、望まないメディアコンテンツを剥離するように等、変換されうる。この方式で、アプリケーションプログラム１４０はドキュメント１２８のレイアウト及びフォーマットに厳しい制御を保持する。
【００４９】
図３はシステム３００の実施形態を示す。システム３００は、編集コマンドの実行において伴われるいくつかの要素の間での論理的なデーターフローを図示している。
【００５０】
図３において示されるように、ドキュメント編集サブシステム２００は、ウェブブラウザー１２２を介してユーザー１０２から選択されたコンテンツ３３２のコピーの転送要求３１０を受け取りうる。転送制御モジュール２２８−２はコピーの転送要求３１０を受け取り、選択されたコンテンツ３３２をドキュメント１２８から潜在転送表示１３０に転送しうる。潜在転送表示１３０は一時的なコンテンツ３３４として選択されたコンテンツ３３２を格納しうる。代替として、ウェブブラウザー１２２の編集制御は選択されたコンテンツ３３２を選択及び転送するのに使用されうる。この場合に、ドキュメント編集サブシステム２００は、イベントハンドリングモジュール１４６を介してウェブブラウザー１２２からの制御命令を傍受しうる。いずれかの場合において、転送制御モジュール２２８−２は、潜在転送表示１３０が変換の準備が整っているメディアコンテンツを有し、従ってメディアコンテンツ変換モジュール２２８−３に通知することを検知しうる。
【００５１】
メディアコンテンツ変換モジュール２２８−３は転送制御モジュール２２８―２からの通知を受け取り、変換動作を初期化する。メディアコンテンツ変換モジュール２２８−３は一時的なコンテンツ３３４についての適切なフォーマットを判定する。この方法は多くの異なる方法で達成されうる。例えばメディアコンテンツ変換モジュール２２８−３は異なる目的エンドポイントに対応する異なる変換モジュールを格納しうる。メディアコンテンツ変換モジュール２２８−３は一時的なコンテンツ３３４についての目的エンドポイントを判定し、対応する変換モジュールを取り出し、一時的なコンテンツ３３４を異なる目的エンドポイントに適切な異なるフォーマットに変換するために取り出された変換モジュールを使用しうる。メディアコンテンツが様々なエンドポイントに向けられるか、又はレガシーシステムで使用されるときに、これは適しているかもしれない。追加又は代替として、メディアコンテンツ変換モジュール２２８−３は、一時的なコンテンツ３３４を多くの目的エンドポイントにとってアクセス可能な標準的又はユニバーサルなフォーマットに変換しうる。メディアコンテンツが同じ性能を有するエンドポイントに向けられるときにこれは適しているかもしれない。メディアコンテンツ変換モジュール２２８−３は変換動作をサポートするために変換バッファー２４８を使用しうる。
【００５２】
変換動作が一度完了すると、メディアコンテンツ変換モジュール２２８−３は変換制御モジュール２２８−２に通知する。変換制御モジュール２２８−２は、システムクリップボード１４２などの目的エンドポイントに変換されたメディアコンテンツを転送する。システムクリップボード１４２は、ドキュメント１２８から初めてコピー又は切り取られるときに選択されたコンテンツ３３２と似た方式で、格納されたコンテンツ３３６をレンダリングするように設計された、ＨＴＭＬコードの実行等のフォーマットにおいて、格納されたコンテンツ３３６をここで格納する。
【００５３】
同様にドキュメント編集サブシステム２００は、ウェブブラウザー１２２を介してユーザー１０２から格納されたコンテンツ３２２の貼り付け転送要求３１２を受け取りうる。転送制御モジュール２８８−２は貼り付け転送要求３１２を受け取り、格納されたコンテンツ３２２をシステムクリップボード１４２から潜在転送表示１３０へ転送しうる。潜在転送表示１３０は、一時的なコンテンツ３２４として選択されたコンテンツ３３２を格納しうる。代替として、ウェブブラウザー１２２の編集制御は格納されたコンテンツ３２２を転送するのに使用されうる。この場合に、ドキュメント編集サブシステム２００は、イベントハンドリングモジュール１４６を介して、ウェブブラウザー１２２から制御命令を傍受しうる。いずれかの場合において、変換制御モジュール２２８−２は、潜在転送表示１３０が変換の準備ができているメディアコンテンツを有し、従ってメディアコンテンツ変換モジュール２２８−３に通知することを検知しうる。
【００５４】
メディアコンテンツ変換モジュール２２８−３は転送制御モジュール２２８−２からの通知を受け取り、変換動作を初期化する。メディアコンテンツ変換モジュール２２８−３は一時的なコンテンツ３２４に適切なフォーマットを判定する。いくつかの例外はあるものの、コピーの転送要求３１０を参照して説明されたのと同様の方式でこれは達成されうる。しかし、この場合において一時的なコンテンツ３２４についての目的エンドポイントがドキュメント１２８であるので、メディアコンテンツ変換モジュール２２８−３は、格納されたコンテンツ３２２の異なるフォーマットをドキュメント１２８により現在使用される特定のフォーマットに変換しうる。これは、複数対複数のタイプのフォーマット変換動作よりむしろ、より複数対一のタイプのフォーマット変換動作という結果になりうる。
【００５５】
変換動作が一度完了すると、メディアコンテンツ変換モジュール２２８−３は制御モジュール２２８−２に通知する。転送制御モジュール２２８−２はドキュメント１２８等の目的エンドポイントに変換されたメディアコンテンツを転送する。ドキュメント１２８はその後、ドキュメント１２８と互換性のあるスタイル及びフォーマットにおいて貼り付けられたコンテンツ３２６としてユーザー１０２に表示する。
【００５６】
上述の実施形態についての動作は、１または複数のロジックフローを参照してさらに説明されうる。個別のロジックフローは、別途指示されていない限り、示された順序において又は任意の特有の順序において実行されなければならない必要性はないことを理解されたい。さらに、ロジックフローに関して説明される様々な動きを直列又は並列の様式で実行できる。ロジックフローは、設計及び性能制限の所与のセットが望まれるように、説明した実施形態の１以上のハードウェア要素及び／又はソフトウェア要素、又は代替の要素を使用して実装されうる。例えば、ロジックフローはロジックデバイス（例えば汎用又は専用コンピューター）による実行のためのロジック（例えばコンピュータープログラム命令）として実装されうる。
【００５７】
図４はロジックフロー４００の一実施形態を示す。ロジックフロー４００は、本明細書で説明された１以上の実施形態により実行される動作のいくつか又はすべての表現でありうる。
【００５８】
図４に示される図示された実施形態において、ロジックフロー４００はブロック４０２においてドキュメント内に潜在転送表示を埋め込みうる。例えば転送表示作成モジュール２２８−１はドキュメント１２８内に潜在転送表示１３０を作成して埋め込みうる。アプリケーションプログラム１４０の立ち上げ又はアプリケーションプログラム１４０についての新しいドキュメントの生成の間、これは起こりうる。転送表示作成モジュール２２８−１は潜在転送表示１３０の参照を作成し、この参照を転送制御モジュール２２８−２に渡しうる。
【００５９】
ロジックフロー４００は、ブロック４０４においてドキュメントについての転送メディアコンテンツの転送要求を受け取りうる。例えば、転送制御モジュール２２８−２は、ドキュメント１２８、システムクリップボード１４２又は他のエンドポイント等の目的エンドポイントに、ドキュメント１２８についてのメディアコンテンツ（３２２、３３２）を転送するための転送要求（３１０、３１２）を受け取りうる。転送制御モジュール２２８−２はイベントハンドリングモジュール１４６を介してウェブブラウザー１２２からこの転送要求を受け取りうる。
【００６０】
ロジックフロー４００は、ブロック４０６において、転送要求に応答して潜在転送表示を使用してメディアコンテンツを転送しうる。例えば、転送制御モジュール２２８−１は、転送要求（３１０、３１２）に応答して潜在転送表示１３０を使用してメディアコンテンツ（３２２、３３２）を転送しうる。多くの場合において、メディアコンテンツ（３２２、３３２）は、目的エンドポイント（１２８、１４２）と互換性のあるフォーマットを有する変換されたメディアコンテンツ（３２４、３４４）を含みうる。
【００６１】
図５はコンピューター１２０、サーバーコンピューター１６２及びその他等の様々な実施形態を実装するのに適しているコンピューティングアーキテクチャ５１０のより詳細なブロック図をさらに示す。基本の構成において、コンピューティングアーキテクチャ５１０は一般に、少なくとも一つの処理ユニット５３２及びメモリ５３４を含む。メモリ５３４は、揮発性及び不揮発性のメモリの両方を含むデーターを格納可能な任意の機械読み取り可能又はコンピューター読み取り可能な媒体を使用して実装されうる。例えば、メモリ５３４は、ＲＯＭ（ｒｅａｄ―ｏｎｌｙ  ｍｅｍｏｒｙ）、ＲＡＭ(random-access memory)、ＤＲＡＭ（ｄｙｎａｍｉｃ  ＲＡＭ）、ＤＤＲＡＭ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ  ＤＲＡＭ）、ＳＤＲＡＭ（ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）、ＳＲＡＭ（ｓｔａｔｉｃ  ＲＡＭ）、ＰＲＯＭ（ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）フラッシュメモリ、強誘電性ポリマー、ｏｖｏｎｉｃメモリ、相変化又は強誘電体のメモリ、ＳＯＮＯＳ（ｓｉｌｉｃｏｎ−ｏｘｉｄｅ−ｎｉｔｒｉｄｅ−ｏｘｉｄｅ−ｓｉｌｉｃｏｎ）メモリ、磁気又は光のカード等のポリマーメモリ、又は情報を格納するのに適した任意の他の種類のメディアを含みうる。図５に示されるように、メモリ５３４は１または複数のソフトウェアプログラム５３６−１−ｔ及び付属のデーター等の様々なソフトウェアプログラムを格納しうる。実装によって、ソフトウェアプログラム５３６−１−ｔの例は、システムプログラム５３６−１（例えばオペレーティングシステム）、アプリケーションプログラム５３６−２（例えばウェブブラウザー１２２、アプリケーションプログラム１４０等）、ドキュメント編集サブシステム２００及びその他を含みうる。
【００６２】
コンピューティングアーキテクチャ５１０はこの基本的な構成を超えた追加の特性及び／又は機能性も有しうる。例えばコンピューティングアーキテクチャ５１０は、リムーバブルストレージ５３８、リムーバブルでないストレージ５４０を含み、これは前述したように様々な種類の機械読み取り可能又はコンピューター読み取り可能な媒体も含みうる。コンピューティングアーキテクチャ５１０は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、計測デバイス、センサーその他等の１または複数の入力デバイス５４４を有しうる。コンピューティングアーキテクチャ５１０は、ディスプレイ、スピーカー、プリンター、等の１または複数の出力デバイス５４２も含みうる。
【００６３】
コンピューティングアーキテクチャ５１０は、コンピューティングアーキテクチャ５１０が他のデバイスと通信することを可能にする１以上の通信接続５４６をさらに含みうる。通信接続５４６は、例えば通信コンポーネント１１６−１−ｖのための接続インターフェースを代表としうる。通信接続５４６は、１以上の通信インターフェース、ネットワークインターフェース、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄｓ、ネットワークインターフェースカード）、ラジオ、無線送信器／受信器（トランシーバー）、有線及び／又は無線通信メディア、物理的コネクター、及びその他等の様々な種類の標準的な通信要素を含みうる。通信メディアは、コンピューター読み取り可能な命令、データー構造、プログラムモジュール、並びに搬送波又は他の転送メカニズム等の変調されたデーター信号における他のデーターを一般に組み込み、任意の情報配信メディアを含みうる。「変調されたデーター信号」という用語は、信号内に情報をエンコードする方式で設定又は変更された１または複数の特徴セットを有する信号を意味する。例としてであり限定ではなく、通信メディアは、有線通信メディア及び無線通信メディアを含む。有線通信メディアの例は、ワイヤー、ケーブル、メタルリード、ＰＣＢ（Ｐｒｉｎｔｅｄ  Ｃｉｒｃｕｉｔ  Ｂｏａｒｄ、プリント基板）、バックプレーン、スイッチ構造、半導体物質、より対線（ｔｗｉｓｔｅｄ−ｐａｉｒ  ｗｉｒｅ）、同軸ケーブル、光ファイバー、伝搬信号、及びその他を含みうる。無線通信メディアの例は、アコースティック、ＲＦ（Ｒａｄｉｏ−Ｆｒｅｑｕｅｎｃｙ、無線周波）スペクトル、赤外線、及び他の無線メディアを含みうる。本明細書で使用される機械読み取り可能媒体及びコンピューター読み取り可能媒体の用語は、ストレージメディア及び通信メディアの両方を含むよう意味する。
【００６４】
図６は、ロジックフロー４００を含んでいる、様々な実施形態についてのロジックを格納するのに適した製品６００の項目の図を示す。示されるように、製品６００の項目は、ロジック６０４を格納するためのストレージメディア６０２を含みうる。ストレージメディア６０２の例は、揮発性のメモリ又は不揮発性のメモリ、リムーバブルなメモリ又はリムーバブルでないメモリ、消去可能又は消去可能でないメモリ、書き込み可能又は再書き込み可能なメモリ、及びその他を含む、電子データーを格納することが可能な１以上の種類のコンピューター読み取り可能なストレージメディアを含みうる。ロジック６０４の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、メソッド、プロシージャー、ソフトウェアインターフェース、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅｓ）、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、ワード、値、符号、又はこれらの任意の組み合わせなどの様々なソフトウェア要素を含みうる。
【００６５】
例えば一実施形態において、製品６００の項目及び／又はコンピューター読み取り可能ストレージメディア６０２は、コンピューターにより実行されるときに、説明された実施形態にしたがって方法及び／又は動作を実行することをコンピューターに引き起こす、実行可能なコンピュータープログラム命令を含むロジック６０４を格納しうる。実行可能なコンピュータープログラム命令は、ソースコード、コンパイルされたコード、解析されたコード、実行可能なコード、静的コード、動的コード及び同様のもの等の任意の適した種類のコードを含みうる。実行可能なコンピュータープログラム命令は、ある機能を実行することをコンピューターに指示するための、あらかじめ定義されたコンピューター言語、方式又は構文解析に従って実装されうる。この命令は、任意の適したハイレベルの、ローレベルの、オブジェクト指向の、ビジュアルの、Ｃ、Ｃ＋＋、Ｊａｖａ、ＢＡＳＩＣ、Ｐｅｒｌ、Ｍａｔｌａｂ、Ｐａｓｃａｌ、Ｖｉｓｕａｌ  ＢＡＳＩＣ、アセンブリ言語、及びその他等のコンパイル及び／又は解釈（インタープリター）されるプログラミング言語を使用して実装されうる。
【００６６】
様々な実施形態が、ハードウェア要素、ソフトウェア要素、又は両方の組み合わせを使用して実装されうる。ハードウェア要素の例は、論理デバイスに以前に提供された任意の例を含み、マイクロプロセッサー、回路、回路要素（例えば、トランジスター、レジスター、コンデンサー、インダクター及びその他）、集積回路、論理ゲート、レジスター、半導体デバイス、チップ、マイクロチップ、チップセット及びその他をさらに含みうる。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、メソッド、プロシージャー、ソフトウェアインターフェース、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅｓ）、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、ワード、値、符号又はこれらの任意の組み合わせを含みうる。実施形態がハードウェア要素及び／又はソフトウェア要素のいずれを使用して実装されるかは、所与の実装で望まれるように所望のコンピューターの速度、電源レベル、耐熱性、処理サイクル量、入力データー率、出力データー率、メモリーリソース、データーバススピード及び他の設計又は性能制約等の任意の数の要素によって変わりうる。
【００６７】
いくつかの実施形態は、「結合された（ｃｏｕｐｌｅｄ）」及び「接続された（ｃｏｎｎｅｃｔｅｄ）」の表現を、これらの派生物と共に使用して説明されうる。これらの用語は互いに同義語として意図される必要性はない。例えば、いくつかの実施形態は、２以上の要素が互いに直接に物理的に又は電子的な接触（コンタクト、ｃｏｎｔａｃｔ）にあることを示す「接続された」及び／又は「結合された」の用語を使用して説明されうる。しかし「結合された」の用語は、２以上の要素が互いに直接の接触にないことを意味することもありえるが、依然として互いに協働又は対話しうる。
【００６８】
この開示の要約書は技術の開示の本質をすばやく確かめることを読者に可能にすることになる要約書を要求している３７Ｃ．Ｆ．Ｒ．セクション１．７２（ｂ）に準拠して提供されることを強調する。特許請求の範囲の範囲及び意味を解釈又は限定するために使用されることはないことの理解と共に、要訳書を提出する。さらに、前述の発明を実施するための形態において、様々な特徴は、開示の合理化の目的で単一の実施形態において一緒にグループ化されるとみなすことがきる。開示のこの方法は、特許請求された実施形態が、各請求項に明示的に挙げられたのより多くの特徴を要求する意図を反映して解釈されることはない。むしろ以下の特許請求の範囲を反映して、発明の主題は単一の開示された実施形態のすべての特徴の内側に位置する。従って以下の特許請求の範囲は、各請求項は別個の実施形態として独立して、本明細書の発明を実施するための形態に組み込まれる。添付の特許請求の範囲において、「ｉｎｃｌｕｄｉｎｇ（含む）」及び「ｉｎ  ｗｈｉｃｈ（であって）」という用語はそれぞれ、「ｃｏｍｐｒｉｓｉｎｇ（備え）」及び「ｗｈｅｒｅｉｎ（であって）」というそれぞれの用語と同等のわかりやすい英語として使用される。さらに「第１の」、「第２の」、「第３の」、及びその他の用語は単にラベルとして使用され、これらのオブジェクトに数の要件を課すことを意図しない。
【００６９】
主題が構造的特長及び／又は方法論的な動きに対して言語に特化して説明されてきたが、添付の特許請求の範囲において定義された主題は、上述の特別な特徴又は動きに限定される必要はないことを理解されたい。むしろ、上述の特別な特徴及び動きは特許請求の範囲を実装する例示的な形式として開示される。
【図１】
0005550636.tif 000002
【図２】
0005550636.tif 000003
【図３】
0005550636.tif 000004
【図４】
0005550636.tif 000005
【図５】
0005550636.tif 000006
【図６】
0005550636.tif 000007