(57)【特許請求の範囲】
【請求項１】
コンピュータ実施される方法であって、
開かれているウィンドウ内でクリップ・ユーティリティをアクティブ化するためにユーザ入力を受け取るステップと、
前記クリップ・ユーティリティを使用して、前記開かれているアプリケーション・ウィンドウの特定の部分の選択を可能にするステップであって、前記特定の部分が、前記開かれているアプリケーション・ウィンドウの全区域より小さい、前記可能にするステップと、
前記選択された特定の部分をクリッピングする要求を受け取ることに応じて、前記特定の部分を前記アプリケーション・ウィンドウの残りから動的にクリッピングし、前記アプリケーション・ウィンドウの前記クリッピングされた特定の部分だけを別のウィンドウ・クリップとして表示するステップと
を含み、
第１の集約インジケータを有し且つウィンドウ・メニューを提供する第１ウィンドウ・クリップが、第２の集約インジケータを有し且つウィンドウ内容を提供する第２ウィンドウ・クリップの所定の周囲の中にプルされるときに、前記第１ウィンドウ・クリップ及び前記第２ウィンドウ・クリップが集約部分に自動的にマージされ、個々の前記第１ウィンドウ・クリップおよび前記第２ウィンドウ・クリップがその各々の開かれたウィンドウ内にあるときの個々の前記第１ウィンドウ・クリップおよび前記第２ウィンドウ・クリップの機能的使用に似た、前記集約部分内のコンポーネントの機能的使用を可能にする、前記方法。
【請求項２】
コンピュータ実施される方法であって、
開かれているウィンドウ内でクリップ・ユーティリティをアクティブ化するためにユーザ入力を受け取るステップと、
前記クリップ・ユーティリティを使用して、前記開かれているアプリケーション・ウィンドウの特定の部分の選択を可能にするステップであって、前記特定の部分が、前記開かれているアプリケーション・ウィンドウの全区域より小さい、前記可能にするステップと、
前記開かれているウィンドウのクリッピングすべき複数の部分のユーザ選択を受け取るステップと、
前記選択された特定の部分をクリッピングする要求を受け取ることに応じて、前記特定の部分を前記アプリケーション・ウィンドウの残りから動的にクリッピングし、前記アプリケーション・ウィンドウの前記クリッピングされた特定の部分だけを別のウィンドウ・クリップとして表示するステップと
を含み、
前記動的にクリッピングすることが、
前記開かれているウィンドウの前記複数の部分のそれぞれを同時にクリッピングするステップと、
前記複数の部分の各ウィンドウ・クリップに、集約インジケータを用いてタグを付けるステップと
をさらに含み、
集約インジケータを有する各ウィンドウ・クリップが、より大きい集約部分を作成するために別のウィンドウ・クリップに機能的にリンクされることができ、
第１の集約インジケータを有し且つウィンドウ・メニューを提供する第１ウィンドウ・クリップが、第２の集約インジケータを有し且つウィンドウ内容を提供する第２のクリッピングされた部分の所定の周囲の中にプルされたときに、前記第１ウィンドウ・クリップおよび前記第２ウィンドウ・クリップを集約部分に自動的にマージされ、個々の前記第１ウィンドウ・クリップおよび前記第２ウィンドウ・クリップがその各々の開かれたウィンドウ内にあるときの個々の前記第１ウィンドウ・クリップおよび前記第２ウィンドウ・クリップの機能的使用に似た、前記集約部分内のコンポーネントの機能的使用を可能にする、前記方法。
【請求項３】
前記開かれているアプリケーション・ウィンドウが、ディスプレイ・デバイス内の第１可視区域を占め、且つ、前記クリッピングされた特定の部分が、前記ディスプレイ・デバイス内の第２のより小さい可視区域を占めるときに、前記クリッピングされた特定の部分だけを表示するステップが、前記第２のより小さい可視区域内のみの前記クリッピングされた特定の部分を表示するステップ
をさらに含み、
前記開かれているアプリケーション・ウィンドウの特定の部分がクリッピングされたときに、前記開かれているアプリケーション・ウィンドウの残りの部分の背後で開かれている第２アプリケーションの部分が表示される、
請求項１又は２に記載の方法。
【請求項４】
前記開かれているウィンドウのクリッピングすべき複数の部分のユーザ選択を受け取るステップ
をさらに含み、
前記動的にクリッピングすることが、
前記開かれているウィンドウの前記複数の部分のそれぞれを同時にクリッピングするステップと、
前記複数の部分の各ウィンドウ・クリップに、集約インジケータを用いてタグを付けるステップと
をさらに含み、
集約インジケータを有する各ウィンドウ・クリップが、より大きい集約部分を作成するために別のウィンドウ・クリップに機能的にリンクされることができる、
請求項１又は２に記載の方法。
【請求項５】
集約部分のその各々のウィンドウ・クリップへの集約解除を可能にするステップをさらに含み、
集約解除入力の受取に応答して、前記方法が、
前記集約部分を以前のマージ動作中に集約された個々のウィンドウ・クリップに分離するステップ、
各クリップ部分がディスプレイ・スクリーン上の別々のクリップ部分として表示されるように、個々のクリップ部分を互いに関して分散させるステップと
をさらに含む、請求項１又は２に記載の方法。
【請求項６】
オペレーティング・システムのウィンドウイング機能のメニュー内にクリップ・メニュー・ツールを設けるステップと、
アプリケーションが前記開かれているウィンドウを表示している間に前記クリップ・メニュー・ツールがユーザによって選択されたときに、前記ウィンドウのうちでクリッピングに関して現在選択されている部分の輪郭を視覚的に示すステップと、
前記ウィンドウのうちでクリッピングに関して選択されている部分の再構成を可能にするステップと、
前記再構成に応答して、現在選択されている部分を視覚的に示すために前記輪郭を移動するステップと
をさらに含む、請求項１又は２に記載の方法。
【請求項７】
システムであって、
プロセッサと、
前記プロセッサに結合されたデータ・バスと、
前記データ・バスに結合されたメモリと、
コンピュータ・プログラム・コードを実施するコンピュータ使用可能媒体と
を備えており、
前記コンピュータ・プログラム・コードが、
開かれているウィンドウ内でクリップ・ユーティリティをアクティブ化するためにユーザ入力を受け取るステップと、
前記クリップ・ユーティリティを使用して、前記開かれているアプリケーション・ウィンドウの特定の部分の選択を可能にするステップであって、前記特定の部分が、前記開かれているアプリケーション・ウィンドウの全区域より小さい、前記可能にするステップと、
前記選択された特定の部分をクリッピングする要求を受け取ることに応じて、前記特定の部分を前記アプリケーション・ウィンドウの残りから動的にクリッピングし、前記アプリケーション・ウィンドウの前記クリッピングされた特定の部分だけを別のウィンドウ・クリップとして表示するステップと
を行うように構成された、前記プロセッサによって実行可能な命令を含み、
前記命令が、第１の集約インジケータを有し且つウィンドウ・メニューを提供する第１ウィンドウ・クリップが、第２の集約インジケータを有し且つウィンドウ内容を提供する第２のウィンドウ・クリップの所定の周囲の中にプルされるときに、前記第１ウィンドウ・クリップ及び前記第２ウィンドウ・クリップを集約部分に自動的にマージし、個々の前記第１ウィンドウ・クリップおよび前記第２ウィンドウ・クリップがその各々の開かれたウィンドウ内にあるときの個々の前記第１ウィンドウ・クリップおよび前記第２ウィンドウ・クリップの機能的使用に似た、前記集約部分内のコンポーネントの機能的使用を可能にするステップを行うようにされに構成されている、前記システム。
【請求項８】
システムであって、
プロセッサと、
前記プロセッサに結合されたデータ・バスと、
前記データ・バスに結合されたメモリと、
コンピュータ・プログラム・コードを実施するコンピュータ使用可能媒体と
を備えており、
前記コンピュータ・プログラム・コードが、
開かれているウィンドウ内でクリップ・ユーティリティをアクティブ化するためにユーザ入力を受け取るステップと、
前記クリップ・ユーティリティを使用して、前記開かれているアプリケーション・ウィンドウの特定の部分の選択を可能にするステップであって、前記特定の部分が、前記開かれているアプリケーション・ウィンドウの全区域より小さい、前記可能にするステップと、
前記開かれているウィンドウのクリッピングすべき複数の部分のユーザ選択を受け取るステップと、
前記選択された特定の部分をクリッピングする要求を受け取ることに応じて、前記特定の部分を前記アプリケーション・ウィンドウの残りから動的にクリッピングし、前記アプリケーション・ウィンドウの前記クリッピングされた特定の部分だけを別のウィンドウ・クリップとして表示するステップと
を行うように構成された、前記プロセッサによって実行可能な命令を含み、
前記動的にクリッピングすることが、
前記開かれているウィンドウの前記複数の部分のそれぞれを同時にクリッピングするステップと、
前記複数の部分の各ウィンドウ・クリップに、集約インジケータを用いてタグを付けるステップと
をさらに含み、
集約インジケータを有する各ウィンドウ・クリップが、より大きい集約部分を作成するために別のウィンドウ・クリップに機能的にリンクされることができ、
前記命令が、第１の集約インジケータを有し且つウィンドウ・メニューを提供する第１ウィンドウ・クリップが、第２の集約インジケータを有し且つウィンドウ内容を提供する第２のクリッピングされた部分の所定の周囲の中にプルされたときに、前記第１ウィンドウ・クリップおよび前記第２ウィンドウ・クリップを集約部分に自動的にマージし、個々の前記第１ウィンドウ・クリップおよび前記第２ウィンドウ・クリップがその各々の開かれたウィンドウ内にあるときの個々の前記第１ウィンドウ・クリップおよび前記第２ウィンドウ・クリップの機能的使用に似た、前記集約部分内のコンポーネントの機能的使用を可能にするステップを行うようにされに構成されている、前記システム。
【請求項９】
前記命令が、
前記開かれているアプリケーション・ウィンドウが、ディスプレイ・デバイス内の第１可視区域を占め、且つ、前記クリッピングされた特定の部分が、前記ディスプレイ・デバイス内の第２のより小さい可視区域を占めるときに、前記クリッピングされた特定の部分だけを表示することが、前記第２のより小さい可視区域内のみの前記クリッピングされた特定の部分を表示するようにさらに構成されており、
前記開かれているアプリケーション・ウィンドウの特定の部分がクリッピングされたときに、前記開かれているアプリケーション・ウィンドウの残りの部分の背後で開かれている第２アプリケーションの部分が表示される、
請求項７又は８に記載のシステム。
【請求項１０】
前記命令が、
前記開かれているウィンドウのクリッピングすべき複数の部分のユーザ選択を受け取るようにさらに構成されており、
前記動的にクリッピングするように構成された命令が、
前記開かれているウィンドウの前記複数の部分のそれぞれを同時にクリッピングし、
前記複数の部分の各ウィンドウ・クリップに、集約インジケータを用いてタグを付ける
命令をさらに含み、
集約インジケータを有する各ウィンドウ・クリップが、より大きい集約部分を作成するために別のウィンドウ・クリップに機能的にリンクされることができる、
請求項７又は８に記載のシステム。
【請求項１１】
前記命令が、
集約部分のその各々のウィンドウ・クリップへの集約解除を可能にするようにさらに構成されており、
集約解除入力の受取に応答して、前記命令が、
前記集約部分を以前のマージ動作中に集約された個々のウィンドウ・クリップに分離し、
各クリップ部分がディスプレイ・スクリーン上の別々のクリップ部分として表示されるように、個々のクリップ部分を互いに関して分散させる
ようにさらに構成されている、請求項７又は８に記載のシステム。
【請求項１２】
前記命令が、
オペレーティング・システムのウィンドウイング機能のメニュー内にクリップ・メニュー・ツールを設け、
アプリケーションが前記開かれているウィンドウを表示している間に前記クリップ・メニュー・ツールがユーザによって選択されたときに、前記ウィンドウのうちでクリッピングに関して現在選択されている部分の輪郭を視覚的に示し、
前記ウィンドウのうちでクリッピングに関して選択されている部分の再構成を可能にし、
前記再構成に応答して、現在選択されている部分を視覚的に示すために前記輪郭を移動する
ようにさらに構成されている、請求項７又は８に記載のシステム。
【請求項１３】
システムであって、
プロセッサと、
前記プロセッサに結合されたデータ・バスと、
前記データ・バスに結合されたメモリと、
コンピュータ・プログラムを実施するコンピュータ使用可能媒体と
を備えており、
前記コンピュータ・プログラムが、前記システムに、請求項１〜６のいずれか一項に記載の方法を実行させる、
前記システム。
【請求項１４】
システムに、請求項１〜６のいずれか一項に記載の方法の各ステップを実行させるコンピュータ・プログラム。
【請求項１５】
前記コンピュータ・プログラムが、リモート位置にあるサーバからクライアント・コンピュータに配備可能である、請求項１４に記載のコンピュータ・プログラム。
【請求項１６】
オン・デマンドの基礎でサービス・プロバイダによって顧客に提供される、請求項１４に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはコンピュータおよび関連するテクノロジの分野に関し、具体的には、この分野で利用されるソフトウェアに関する。
【背景技術】
【０００２】
ほとんどの従来のコンピュータは、そのコンピュータで実行されるアプリケーションを表示するために、ある形のグラフィカル・ユーザ・インターフェース（ＧＵＩ）機能を利用する。ほとんどの一般的に利用されるＧＵＩ機能は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．社が配布するＷｉｎｄｏｗｓ（Ｒ）オペレーティング・システム（ＯＳ）によって提供される。
【０００３】
従来のＷｉｎｄｏｗｓ（Ｒ）オペレーションでは、ユーザが複数のデスクトップ・アプリケーションを同時に操作する（またはそれらの間で交互に使用する）ことが一般的である。各開かれているデスクトップ・アプリケーションは、その個別のウィンドウによって表され、これらのウィンドウは、通常は、ディスプレイ・スクリーンの可視区域全体におさまるように「最大化」された完全なウィンドウ（ＧＵＩ）である。通常、複数のデスクトップ・アプリケーションを同時に実行させる（すなわち、開かれたウィンドウを有する）ことは、多数のウィンドウ・フレームがデスクトップを混乱させることをもたらす可能性がある。開かれたウィンドウを表示するのに使用可能な限られた実面積のゆえに、通常は、一時に単一のウィンドウだけが表示される。したがって、各新しいアプリケーション・ウィンドウは、通常、前のアプリケーション・ウィンドウの上に開かれ、最も新しく開かれたウィンドウが、その下のウィンドウを完全に（または部分的に）隠す。複数のアプリケーションがある時には、開かれたウィンドウまたは第２ウィンドウ（すなわち、主ウィンドウの後ろまたは背後にあるウィンドウ）の小さい部分だけが、通常、第１ウィンドウが可視区域全体を占めない場合に表示される。これらの開かれているアプリケーションの間で切り替えるために、ユーザは、ウィンドウの複数の層をはぎとって、ユーザがその内容を見るかそれと対話するかその両方を望む特定のアプリケーション・ウィンドウを見つけなければならない。このプロセスは、（ａ）ウィンドウを閉じること、（ｂ）ウィンドウをアプリケーション・バーに縮小すること、（ｃ）より小さいウィンドウに最小化すること、または（ｄ）その他の既知の方法のうちの１つまたは複数を伴う場合がある。
【０００４】
ユーザが、複数のウィンドウの内容を同時に見ることを望む場合に、各ウィンドウが、縮小され（最小化され）、その結果、複数のウィンドウが、互いの横に表示されるようになる。しかし、複数のウィンドウのそのような方位を用いると、各々のウィンドウ内に表示される内容／情報の量が、最小化されたウィンドウのサイズにおさまるように減らされるが、これには、それでも、ウィンドウ境界、トップ・メニュー項目（アフォーダンス（affordance）、すなわち身辺情報）、スクロール・バーなどが含まれる。したがって、ユーザは、限られた量の内容しか見ることができず、時々、最小化されたウィンドウ内で所望の内容のすべてを見ることができない場合がある。
【０００５】
また、内容がウィンドウ内で連続していない場合に、最小化されたウィンドウ内で所望の内容を見ることはむずかしい。この場合に、ユーザは、同一ウィンドウ内の他の情報を見るために、上下または左右あるいはその両方にスクロールしなければならない。これは、ウィンドウの小さい部分／断片だけが有用な内容を提供する時に、より大きい物理的ウィンドウ内の内容を見る／と対話するのにウィンドウズ（Ｒ）ベース・アプリケーションを使用することの望ましくない効果である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明の目的は、マルチウィンドウ・システムにおいて、情報の可視性を高めることにある。
【課題を解決するための手段】
【０００７】
本発明は、開かれているアプリケーション・ウィンドウ内でクリップ・ユーティリティをアクティブ化するためにユーザ入力を受け取ることと、クリップ・ユーティリティの選択機能性を使用することによる、開かれているウィンドウの特定の部分の選択を可能にすることであって、特定の部分が、アプリケーション・ウィンドウの全区域より小さい、可能にすることと、選択された部分がまだ選択されている間にその部分をクリッピングする要求を受け取った時に、特定の部分をアプリケーション・ウィンドウの残りから動的にクリッピングし、開かれているウィンドウのクリッピングされた特定の部分だけを別々のウィンドウ・クリップとして表示することとを行う方法、装置、およびコンピュータ使用可能媒体を含むが、これらに限定はされない。
【０００８】
本発明の上記ならびに追加の目的、特徴、および利益は、次の詳細に書かれた説明で明白になる。
【０００９】
本発明に特有と思われる新規の特徴を、添付の特許請求の範囲に示す。しかし、本発明自体ならびに本発明の使用の好ましい態様、さらなる目的、および利益は、添付図面と共に読まれるときの例示的実施形態の次の詳細な説明を参照することによって最もよく理解されるであろう。
【発明を実施するための最良の形態】
【００１０】
ここで図面、具体的には図１を参照すると、本発明の特徴を有利に実施できるコンピュータ・システムが示されている。コンピュータ・システム１００に、システム・バス１０５を介してメモリ１２０、入出力（Ｉ／Ｏ）コントローラ１１５、および他の／２次ストレージ１５５に結合されたプロセッサ１１０が含まれる。Ｉ／Ｏコントローラ１１５は、マウス１１６、キーボード１１７、およびディスプレイ・デバイス１１８を含む入出力デバイスへの接続性またはこれらに対する制御あるいはその両方を提供する。
【００１１】
コンピュータ・システム１００に、コンピュータ・システム１００を別のコンピュータ・システムまたはコンピュータ・ネットワーク２３０（図１への挿入によって図示）あるいはその両方に接続するのに利用されるネットワーク・インターフェース・デバイス（ＮＩＤ）１３０も含まれる。ＮＩＤ  １３０は、ゲートウェイもしくはルータまたは類似するデバイスを介して外部のコンピュータ・ネットワーク２３０への相互接続性を提供する。ＮＩＤ  １３０は、コンピュータ・システム１００が接続されるネットワークのタイプ（たとえば、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ））に応じて、たとえばイーサネット（Ｒ）・カードまたはモデムとすることができる。
【００１２】
メモリ１２０内に置かれ、プロセッサ１１０で実行されるのが、オペレーティング・システム（ＯＳ）１２５と、Ａｐｐ１…ＡｐｐＮ  １３３およびクリップ・ユーティリティ１４０を含む複数のソフトウェア・アプリケーションとを含む複数のソフトウェア・コンポーネントである。プロセッサ１１０は、さまざまなアプリケーション・プログラム（たとえば、とりわけ、ネットワーク接続性プログラムおよびクリップ・ユーティリティ１４０）ならびにこれらのアプリケーション・プログラムをサポートするＯＳ（たとえば、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐ社の商標であるＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（Ｒ））を実行する。図示の実施形態によれば、ＯＳ  １２５、１つまたは複数のＡｐｐ１…ＡｐｐＮ  １３３、およびクリップ・ユーティリティ１４０が、プロセッサ１１０で実行され、下で説明する、図８〜１０によって示される一般的なアプリケーション・クリッピング機能ならびにクリップ・ウィンドウ集約特徴／機能性を提供し／イネーブルする。
【００１３】
特筆すべきことに、ＯＳ  １２５と別々のコンポーネントとして図示されてはいるが、クリップ・ユーティリティ１４０を、実際にはＯＳ  １２５のサブコンポーネントとして実施することができる。したがって、ＯＳ  １２５を、コンピューティング・デバイスにインストールされる時にクリップ・ユーティリティ機能を用いて機能強化することができる。しかし、さらに、クリップ・ユーティリティ１４０を、既存のＯＳ  １２５を機能強化するアドオン・ユーティリティとすることができる。これに関して、クリップ・ユーティリティ１４０を、たとえば、既製品購入を介して（たとえばＣＤ  ＲＯＭ上で）入手するか、ＯＳ開発者のサポート・ウェブサイトから別々のユーティリティまたはＯＳ  １２５に対するアップグレードとしてダウンロードすることができる。
【００１４】
一実施形態で、コンピュータ・システム１００のハードウェア構成要素は、慣用的な設計構造を有するものである。コンピュータ・システム１００に、固定ディスク・ドライブ、取り外し可能ディスク・ドライブ、ＣＤドライブまたはＤＶＤドライブあるいはその両方、オーディオ・コンポーネント、モデム、ネットワーク・インターフェース・コンポーネント、および類似物などの他のコンポーネント（図示せず）も含めることができる。したがって、本明細書で説明するシステムが例示的であることと、変形形態および修正形態が可能であることとを諒解されたい。さらに、アプリケーション・ウィンドウ・クリッピングおよびウィンドウ集約の技法／機能性を、さまざまな異なる構成のコンピュータ・システムで実施することもできる。したがって、本発明を、基本的なコンピュータ・システム１００で実施されるものとして説明するが、当業者は、コンピュータ・システムのさまざまな異なる構成が存在することと、本発明の特徴が、コンピュータ・システムの実際の構成にかかわりなく適用可能であることとを諒解する。
【００１５】
したがって、本発明は、デスクトップタイプ・コンピュータ・システムまたはラップトップ・コンピュータ・システムに適用可能であるだけではなく、そのデバイスがプロセッサおよびディスプレイを有し、クリップ・ユーティリティ１４０のクリッピング機能を用いて機能強化されるウィンドウイング機能または類似する機能を利用するアプリケーションを実行する限り、携帯情報端末（ＰＤＡ）、セル電話機、または他のハンド・ヘルド・デバイスなどのポータブル・デバイスまたはハンド・ヘルド・デバイスあるいはその両方ならびにより大きいメインフレーム・タイプのデバイスで実施することもできる。
【００１６】
次に図２〜５を参照すると、開かれたアプリケーション・ウィンドウをクリッピングするプロセスおよびその結果を示す、アプリケーション・ウィンドウとそれに続く一連のアプリケーション・ウィンドウ・クリップが順番に示されている。実際の処理は、図８〜９によって提供され、これを、図２〜５に関してこれから説明する。図面では、類似する符号が、異なる図面で類似する要素について与えられ、新しい特徴は、図に最初に示されるときに別々の符号を与えられる。
【００１７】
図８に、ユーザがウィンドウズ（Ｒ）ベース・コンピュータでアプリケーション・ウィンドウ・クリッピングを作成するプロセスを示す。このプロセスは、開始ブロック１００２で開始され、ブロック１００４に進み、このブロックには、ユーザが、ディスプレイ・デバイス１１８上のグラフィカル・ユーザ・インターフェース（ＧＵＩ）として表示された開かれているアプリケーション・ウィンドウ２００内のクリップ機能２１５をアクティブ化する／開くことが示されている。一実施形態で、ユーザは、ウィンドウ内の「モード切替／機能」（たとえば、デスクトップ内のコンテキスト・メニュー項目）にアクセスすることによって、「クリッピング」モードに入る。モード切替は、プルダウン・メニュー項目（たとえば、「ツール」）または単純にクリップ・ユーティリティ１４０もしくはＯＳ  １２５を介してデスクトップ・ウィンドウ・ディスプレイに追加されるアイコンとして存在することができる。もう１つの実施形態で、モード切替は、ポインタがアプリケーション・ウィンドウ２００内のどこかに置かれている間にユーザがマウスを右クリックしてコンテキスト・メニューを開く時に提供される。図２に示されているように、クリッピング・モードに、アプリケーション・ウィンドウ２００からクリッピングされる内容２２５の周囲の破線の輪郭（本明細書では「クリップ・セグメント」２１０と称する）が含まれる。
【００１８】
ターゲット・アプリケーションを含む通常のウィンドウ・フレームから、ユーザは、ユーザがサブセット化を望むターゲット区域を選択する。この選択は、図２によって示されている直接操作（マーキー（marquee）選択）によって、または輪郭を定義するなんらかの他の方法によって実行することができる。一実施形態で、ウィンドウのデフォルト区域が、クリップ・セグメント２１０として選択され、次に、その区域を、ユーザがポインティング・デバイスおよびそれに関連するドラッグ機能を使用することによって調整することができる。もう１つの実施形態では、ユーザが、モード切替を選択する前に、ウィンドウの１区域の上にマウス・ポインタ（またはカーソル）を位置決めすることによって区域を選択する。モード切替がその後に選択された時に、輪郭が、マウス・ポインタの周囲にクリップ・セグメント２１０を自動的に提供し、その区域がクリッピングされることを示す。その後、ユーザは、クリップ・セグメント２１０の境界を移動することによって、その区域を調整することができる。
【００１９】
図８に戻って、クリッピング・モードがアクティブ化され、輪郭が表示された状態で、ユーザは、ブロック１００６に示されているように、クリッピングされることが望まれる内容の周囲で輪郭区域をドラッグする（すなわち、ユーザは、内容の周囲で輪郭の境界を移動する）。第３の実施形態では、ユーザが、まずｓｈｉｆｔ／ｃｏｎｔｒｏｌキーおよびドラッグ・オプションを使用することによって内容を選択して、クリップ・セグメント２１０に含まれる内容を選択する。次に、ブロック１００８に示されているように、ユーザは、クリッピング・ツール・アフォーダンス（affordance＝身辺情報）（すなわち、クリップ・セグメントの最上部にある鋏）を選択し／アクティブ化して、全体的なアプリケーション・ウィンドウ２００からの選択された内容／区域（たとえば、２２５内）のクリッピングを完了する。
【００２０】
次に図９を参照するが、図９には、図８のプロセスのコンピュータ・ソフトウェア処理側が示されている。このコンピュータ・ソフトウェア処理は、開始ブロック１０１０で開始され、ブロック１０１２に進み、ここで、ＯＳが、クリッピング・モードのユーザ選択／アクティブ化を検出する。ブロック１０１４に示されているように、ＯＳは、クリッピング・ユーティリティの実行を開始し、これが、表示されているアプリケーションのＧＵＩ内の特定の内容の周囲のクリップ・セグメントをもたらす。ユーザが、内容を選択し、ブロック１０１６で、ユーザがクリッピング動作の開始をトリガしたかどうかの判定を行う。ユーザがクリッピング・ツールをアクティブ化していない場合には、ブロック１０１８で、クリッピング・モードの最初のアクティブ化（または最後の記録されたユーザ入力）以降にタイムアウト条件がトリガされたかどうかの検査を行う。
【００２１】
このタイムアウト条件は、ユーザがセグメント選択またはクリッピング機能を事前にセットされた時間（たとえば、１０秒）以内に完了しない場合に、ＯＳが、アプリケーションの通常ビューに戻ることを可能にする。一実施形態で、そのような時間は、ユーザが何らかの形でクリップ・セグメント（その中の内容を含む）を最後に実際に移動するか操作した時から測定され、その結果、ユーザは、セグメント境界またはその中を単純にクリックすることによってタイマをリセットすることができ、したがって、クリッピングを進行させるかどうか、またはアプリケーション・ウィンドウのどの部分をクリッピングするか、あるいはその両方を判断するための新しい時間期間がイネーブルされる。
【００２２】
タイムアウト条件がトリガされている場合に、このユーティリティは、ブロック１０２０に示されているようにセグメントを閉じ、終端子ブロック１０２２で、このプロセスが終了する。判断ブロック１０１６に戻って、ユーザが、区域を選択し、クリッピング・プロセスを開始したならば、このユーティリティは、ブロック１０２４で、選択された区域（セグメント）をクリッピングさせ、ブロック１０２６に示されているように、クリップ・ユーティリティは、クリッピングされた区域（セグメント）の外側のウィンドウの外側部分を除去する（またはビューから隠す）。次に、クリップ・ヘッダをそのセグメントに追加して、クリッピングされたウィンドウをそれとして識別できるようにし、また、クリッピングされたウィンドウを選択的に移動するか出口アフォーダンス２１７を介して閉じることを可能にする。次に、クリップ・ユーティリティ１４０は、ブロック１０３０に述べられ、図３に示されているように、ウィンドウのクリッピングされた部分（すなわち、ウィンドウ・クリップ）だけの、それに付加されたヘッダ部分と一緒の表示を可能にする。最後に、ブロック１０３２に示されているように、このユーティリティは、ユーザ対話またはウィンドウ・クリップのさらなる操作を可能にする。一実施形態で、その後、ウィンドウ・クリップを、アプリケーション・クリップ・ファイルとしてユーザが保存することができる。したがって、その後、ファイルを閉じ、割り当てられた名前を用いて後に取り出すことができる。アプリケーション・ファイル名に似ているが異なる拡張子（たとえば、ｃｌｐ）を有するデフォルト名を与えることができる。たとえば、アプリケーション・ファイル「ｒｏｓｅ．ｄｏｃ」が、デフォルト名「ｒｏｓｅ．ｃｌｐ」を用いて保存されるウィンドウ・クリップを提供することができる。また、ウィンドウ・クリップに、最小化されたウィンドウに多少似た、ウィンドウ・クリップの操作を可能にする編集アイコン、構成アイコン、および選択可能メニュー・ボタンを含めることもできる。
【００２３】
一実施形態で、単一の複数クリップ動作または複数の個々のクリッピング動作のいずれかによって、単一のアプリケーション・ウィンドウの複数の部分を、そのウィンドウからクリッピングすることができる。図３〜５によって示されるように、ウィンドウの、ウィンドウ内容を提供する特定の部分（図３、５）をクリッピングすることができ、他の部分（図４）に、標準デスクトップ・ウィンドウの最上部の選択可能メニュー・アフォーダンスなどの機能要素を含めることができる。特筆すべきことに、説明される実施形態では、最初のウィンドウからクリッピングされたすべての機能要素が、少なくともそのアプリケーション・ウィンドウに関して、その機能的特徴を維持する。したがって、メニュー・ウィンドウのクリップ・セグメント２１０の「ｆｉｌｅ」を選択すると、ファイル・メニューが開き、そのアプリケーションのウィンドウの通常のファイル・メニュー内のさまざまな選択可能オプションが表示される。さらに、ユーザが、その後、「名前を付けて保存」機能または「上書き保存」機能（ファイル・メニュー内）を選択した場合に、そのアプリケーション・ウィンドウまたはウィンドウ・クリップあるいはその両方で開かれているファイル全体の内容が、コンピュータのストレージに保存される。ウィンドウ・クリップの内容内での編集も、ウィンドウ・クリップが別々のファイルとして保存されていない限り、アプリケーション・ウィンドウ全体の中のファイルの内容に影響する。
【００２４】
ここで図１０に移り、図６〜７を参照すると、本発明のクリッピング・ユーティリティによって提供される追加の機能強化に関連するプロセスが示されている。２つのウィンドウ・クリップすなわち、第１のメニュー・ウィンドウ・クリップ２ｘｙおよび第２の内容ウィンドウ・クリップ２ｘｘが図示されている。この図によれば、この２つのウィンドウ・クリップは、同一の親アプリケーション・ウィンドウに属する。しかし、本発明では、この集約特徴を別々のアプリケーションからのウィンドウ・クリップに拡張することが企図されている。この代替実施形態は、ユーザが、異なるアプリケーション・ウィンドウからの異なるウィンドウ・クリップ（たとえば、図４および５）の組合せを含む特定の集約されたウィンドウを生成することを可能にする。
【００２５】
図１０のプロセスは、ブロック１０４０で開始され、ここで、ユーザが、第１ウィンドウ・クリップを選択し、第２ウィンドウ・クリップに非常に近い位置にプルする／ドラッグする。これが行われる時に、ブロック１０４１に示されているように、ウィンドウ・クリップのそれぞれの各々のヘッダ内に、マージ・アフォーダンスが表示される。これらのアフォーダンス（身辺情報）は、ウィンドウ・クリップを少なくとも１つの他のウィンドウ・クリップと組み合わせる（集約する）ことができることをユーザに示す。一実施形態で、マージ・アフォーダンスは、ディスプレイに、一緒に集約できる複数のウィンドウ・クリップがある時に、必ず提供される（すなわち、ヘッダ内に表示される）。すなわち、ディスプレイ・スクリーンに表示される単一のウィンドウ・クリップは、図３に類似するヘッダと共に現れ、その同一のウィンドウ・クリップが、その後、そのウィンドウ・クリップとリンク／集約できる第２ウィンドウ・クリップが提供された時に、図６に似たヘッダと共に表示される。
【００２６】
クリップ・ユーティリティ１４０は、マージ・アフォーダンスを生成し、このアフォーダンスに、ある集約（aggregation）要件を含める。たとえば、別のウィンドウ・クリップに対する特定のウィンドウの方位を、アフォーダンス内に「プログラム」することができ、その結果、結果の集約ウィンドウ・クリップが、正しい方位でのみ集約されるようになる。例示的実施形態では、たとえば、メニュー・ウィンドウ・クリップが、集約中に内容ウィンドウ・クリップの上の配置を必要とするはずである。したがって、このユーティリティは、図７に示されているように、内容ウィンドウ・クリップの上に配置されたメニュー・ウィンドウ・クリップの集約を強制するようにアフォーダンスをプログラムする。
【００２７】
図１０に戻って、ウィンドウ・クリップが、互いに近接するようにされたならば、このユーティリティは、ブロック１０４２で、マージ／集約機能がトリガされる（またはユーザによって手動で選択される）かどうかを判定する。第１の実施形態では、マージ機能は、各々のマージ・アフォーダンスを有する２つのウィンドウ・クリップがお互いからの事前にセットされた近接以内にある時に自動的にトリガされる。もう１つの実施形態で、ユーザは、２つのウィンドウを互いに隣接してドラッグし、その後、クリッピングされたウィンドウのうちの１つのマージ・アフォーダンスを選択する（クリックする）。ユーザが集約プロセスのアクティブ化をトリガすることを可能にする代替実施形態が可能であり、そのような実施形態は、本発明の範囲に含まれる。さらに、一実施形態で、マージできないクリップ・ウィンドウのマージ・アフォーダンスは、単純にマージしないことによって、またはマージがこの２つの特定のウィンドウ・クリップについてサポートされないことの視覚的表現を提供することによって、そのクリップ・ウィンドウをマージできないことをユーザに知らせる。
【００２８】
マージ／集約機能がトリガされない場合には、ウィンドウ・クリップは、別々の隣接するウィンドウとして表示される（図６）。しかし、マージ機能がトリガされる場合には、このユーティリティは、ブロック１０４６で、クリッピングされたセクションをマージし、各ウィンドウ・クリップの定義された属性、特性などを利用して、集約ウィンドウ内の個々のウィンドウ・クリップのビューイング順序または方位を判定する。次に、ブロック１０４８に示されているように、集約されたウィンドウを単一の集約ウィンドウ・クリップ２５０として表示する。この例示的実施形態によれば、上で説明したように、集約ウィンドウ・クリップ２５０に、図７に示されているものに類似する最上部メニュー・アフォーダンスを有する標準（クリッピングされていない）デスクトップ・アプリケーション・ウィンドウのメニュー機能性が含まれる。
【００２９】
本発明は、ユーザがウィンドウ・フレームの諸部分を「クリッピング」することを可能にし、ここで、これらのアプリケーション・クリッピングは、通常、アプリケーション全体によって表示される機能的状態のサブセットを表示する。このクリッピング機能性は、ユーザが、アプリケーション内の特定の機能をターゲットにすることによってデスクトップ実面積を節約することを可能にし、その結果、その機能性を表示するのに必要なデスクトップ実面積だけを割り振る。一実施形態で、クリッピングされたアプリケーションは、境界と、クリッピング境界によって課せられる制約との中で標準アプリケーションとして機能する（すなわち、クリッピングの外側のウィンドウからアクセス可能な機能性は使用不能になるはずである）。しかし、クリッピング内のさまざまな機能性ならびに集約を介して後でマージされた機能性は、完全に使用可能である。
【００３０】
ソフトウェアの配備（deployment）
したがって、本明細書で説明する、具体的には図８〜１０に図示し、説明する方法を、サービス・プロバイダ・サーバ１５０からクライアントのコンピュータ・システム１００にプロセス−ソフトウェアとして配備することができる。
【００３１】
ここで図１１〜１２を参照すると、ステップ４００で、プロセス・ソフトウェアの配備を開始する。まず、プロセス・ソフトウェアが実行される時に１つまたは複数のサーバに常駐するプログラムがあるかどうかを判定する（照会ブロック４０１）。そうである場合には、その実行可能ファイルを含むサーバを識別する（ブロック４１９）。１つまたは複数のサーバのプロセス・ソフトウェアが、サーバのストレージにファイル転送プロトコル（ＦＴＰ）または他のプロトコルを介して直接に、または共用ファイル・システムの使用を介してコピーすることによって、転送される（ブロック４２０）。その後、プロセス・ソフトウェアが、サーバにインストールされる（ブロック４２１）。
【００３２】
次に、プロセス・ソフトウェアが、ユーザに１つまたは複数のサーバのプロセス・ソフトウェアにアクセスさせることによって配備されるかどうかに関する判定を行う（照会ブロック４０２）。ユーザがサーバのプロセス・ソフトウェアにアクセスする場合には、プロセス・ソフトウェアを保管するサーバのアドレスを識別する（ブロック４０３）。
【００３３】
プロセス・ソフトウェアを保管するためにプロキシ・サーバを作成するかどうかの判定を行う（照会ブロック４１０）。プロキシ・サーバとは、ウェブ・ブラウザなどのクライアント・アプリケーションと実際のサーバの間にあるサーバである。プロキシ・サーバは、実際のサーバへのすべての要求をインターセプトして、その要求をそれ自体で満足できるかどうかを調べる。満足できない場合には、プロキシ・サーバは、その要求を実際のサーバに転送する。プロキシ・サーバの２つの主な利益は、性能を改善することと要求をフィルタリングすることである。プロキシ・サーバが必要な場合には、プロキシ・サーバをインストールする（ブロック４１１）。プロセス・ソフトウェアが、ＦＴＰなどのプロトコルを介してサーバに送られるか、ファイル共用を介してソース・ファイルからサーバ・ファイルに直接にコピーされる（ブロック４１２）。もう１つの実施形態は、プロセス・ソフトウェアを含むサーバにトランザクションを送り、そのサーバにそのトランザクションを処理させ、その後、プロセス・ソフトウェアを受け取り、サーバのファイル・システムにコピーすることである。プロセス・ソフトウェアがサーバに保管されたならば、ユーザは、そのクライアント・コンピュータを介して、サーバのプロセス・ソフトウェアにアクセスし、クライアント・コンピュータ・ファイル・システムにコピーする（ブロック４１３）。もう１つの実施形態は、サーバに、各クライアントにプロセス・ソフトウェアを自動的にコピーさせ、その後、各クライアント・コンピュータでプロセス・ソフトウェアのインストール・プログラムを実行することである。ユーザは、自分のクライアント・コンピュータにプロセス・ソフトウェアをインストールするプログラムを実行し（ブロック４２２）、その後、このプロセスを終了する（終端子ブロック４０８）。
【００３４】
照会ステップ４０４で、プロセス・ソフトウェアが、電子メールを介してユーザにプロセス・ソフトウェアを送ることによって配備されるかどうかの判定を行う。プロセス・ソフトウェアが配備されるユーザの組が、ユーザ・クライアント・コンピュータのアドレスと一緒に識別される（ブロック４０５）。プロセス・ソフトウェアが、ユーザのクライアント・コンピュータのそれぞれに電子メールを介して送られる（ブロック４１４）。その後、ユーザは、電子メールを受け取り（ブロック４１５）、その後、電子メールから自分のクライアント・コンピュータのディレクトリにプロセス・ソフトウェアをデタッチする（ブロック４１６）。ユーザは、自分のクライアント・コンピュータにプロセス・ソフトウェアをインストールするプログラムを実行し（ブロック４２２）、その後、このプロセスを終了する（終端子ブロック４０８）。
【００３５】
最後に、プロセス・ソフトウェアが、ユーザのクライアント・コンピュータのユーザ・ディレクトリに直接に送られるかどうかの判定を行う（照会ブロック４０６）。そうである場合には、ユーザ・ディレクトリを識別する（ブロック４０７）。プロセス・ソフトウェアが、ユーザのクライアント・コンピュータ・ディレクトリに直接に転送される（ブロック４１７）。これは、ファイル・システム・ディレクトリを共用し、その後、送信側のファイル・システムを受信側ユーザのファイル・システムにコピーすること、またはその代わりにファイル転送プロトコル（ＦＴＰ）などの転送プロトコルを使用することなどであるがこれらに限定されない複数の形で行うことができる。ユーザは、プロセス・ソフトウェアのインストールに備えて、そのユーザのクライアント・ファイル・システム上のディレクトリにアクセスする（ブロック４１８）。ユーザは、自分のクライアント・コンピュータにプロセス・ソフトウェアをインストールするプログラムを実行し（ブロック４２２）、その後、このプロセスを終了する（終端子ブロック４０８）。
【００３６】
ＶＰＮによる配備（deployment）
本ソフトウェアは、サービスの一部としてサード・パーティに配備することができ、ここで、サード・パーティＶＰＮサービスが、セキュア配備媒介物として提供されるか、ＶＰＮが、特定の配備の必要に応じてオン・デマンドで作成される。
【００３７】
仮想プライベート・ネットワーク（ＶＰＮ）は、そうでなければ保護されないか信頼されないネットワークを介する接続を保護するのに使用できるテクノロジの任意の組合せである。ＶＮＰは、セキュリティを改善し、運営コストを下げる。ＶＰＮは、通常はインターネットである公衆ネットワークを利用して、リモート・サイトまたはリモート・ユーザを一緒に接続する。専用回線などの専用の実世界の接続を使用するのではなく、ＶＰＮは、会社の私設網からリモート・サイトまたはリモート従業員までインターネットを介してルーティングされる「仮想」接続を使用する。ＶＰＮを介するソフトウェアへのアクセスは、プロセス・ソフトウェアの配送または実行のためにＶＰＮを特に構成することによってサービスとして提供することができ（すなわち、ソフトウェアが他の場所に常駐する）、ここで、ＶＰＮの寿命は、支払われた額に基づいて、所与の時間期間または配備の所与の回数までに制限される。
【００３８】
プロセス・ソフトウェアを、リモート・アクセスＶＰＮまたはサイト対サイトＶＰＮのいずれかを介して配備し、アクセスし、実行することができる。リモート・アクセスＶＰＮが使用される場合には、プロセス・ソフトウェアは、会社の私設網とリモート・ユーザの間のサード・パーティ・サービス・プロバイダを介するセキュアな暗号化された接続を介して配備され、アクセスされ、実行される。エンタープライズ・サービス・プロバイダ（ＥＳＰ）が、ネットワーク・アクセス・サーバ（ＮＡＳ）をセットし、リモート・ユーザに、彼らのコンピュータ用のデスクトップ・クライアント・ソフトウェアを与える。その場合に、在宅勤務者は、トールビー・ナンバー（toll-bee number）にダイヤルするか、ケーブル・モデムまたはＤＳＬモデムを介して直接にアタッチして、ＮＡＳに達し、そのＶＰＮクライアント・ソフトウェアを使用して、会社ネットワークにアクセスし、プロセス・ソフトウェアにアクセスし、ダウンロードし、実行することができる。
【００３９】
サイト対サイトＶＰＮが使用される場合に、プロセス・ソフトウェアは、会社の複数の固定サイトをインターネットなどの公衆ネットワークを介して接続するのに使用される専用機器および大規模暗号化の使用を介して配備され、アクセスされ、実行される。
【００４０】
プロセス・ソフトウェアは、パケット全体を別のパケット内に置き、ネットワークを介して送るプロセスであるトンネリングを介してＶＰＮ上で転送される。外側パケットのプロトコルは、ネットワークと、トンネル・インターフェースと呼ばれる、パケットがネットワークに出入りする両方のポイントとによって理解される。
【００４１】
そのようなＶＰＮによる配備のプロセスを、図１３〜１５で説明する。イニシエータ・ブロック５０６で、仮想プライベート・ネットワーク（ＶＰＮ）プロセスが開始される。リモート・アクセス用のＶＰＮが必要であるかどうかを調べるために判定を行う（照会ブロック５６１）。必要でない場合には、照会ブロック５６２に進む。必要である場合には、リモート・アクセスＶＰＮが存在するかどうかを判定する（照会ブロック５６４）。
【００４２】
ＶＰＮが存在する場合には、ブロック５６５に進む。そうでない場合には、会社の私設網と会社のリモート・ユーザとの間のセキュアな暗号化された接続を提供するサード・パーティ・プロバイダを識別する（ブロック５７６）。会社のリモート・ユーザを識別する（ブロック５７７）。次に、サード・パーティ・プロバイダが、ネットワーク・アクセス・サーバ（ＮＡＳ）をセット・アップし（ブロック５７８）、このＮＡＳは、リモート・ユーザが無料電話番号にダイヤルするかブロードバンド・モデムを介して直接にアタッチしてリモート・アクセスＶＰＮ用のデスクトップ・クライアント・ソフトウェアにアクセスし、ダウンロードし、インストールすることを可能にする（ブロック５７９）。
【００４３】
リモート・アクセスＶＰＮが作られた後、またはリモート・アクセスＶＰＮが以前にインストールされている場合に、リモート・ユーザは、ＮＡＳにダイヤルするか、ケーブル・モデムまたはＤＳＬモデムをＮＡＳに直接にアタッチすることによってプロセス・ソフトウェアにアクセスすることができる（ブロック５６５）。これによって、会社ネットワークに入ることが可能になり、そこでプロセス・ソフトウェアにアクセスする（ブロック５６６）。プロセス・ソフトウェアが、ネットワーク上でトンネリングを介してリモート・ユーザのデスクトップに転送される（ブロック５６７）。すなわち、プロセス・ソフトウェアが、パケットに分割され、データおよびプロトコルを含む各パケットが、別のパケット内に置かれる（ブロック５６７）。プロセス・ソフトウェアは、リモート・ユーザのデスクトップに達した時に、パケットから除去され、再構成され、その後、リモート・ユーザ・デスクトップで実行される（ブロック５６８）。
【００４４】
その後、サイト対サイト・アクセス用のＶＰＮが必要であるかどうかを調べるために判定を行う（照会ブロック５６２）。必要でない場合には、進行してプロセスを終了する（終端子ブロック５０７）。そうでない場合には、サイト対サイトＶＰＮが存在するかどうかを判定する（照会ブロック５６１）。存在する場合には、ブロック５７２に進む。そうでない場合には、サイト対サイトＶＰＮを確立するのに必要な専用機器をインストールする（ブロック５７０）。次に、大規模暗号化をＶＰＮ内に作成する（ブロック５７１）。
【００４５】
サイト対サイトＶＰＮを作成した後、またはサイト対サイトＶＰＮが以前に確立されている場合に、ユーザは、ＶＰＮを介してプロセス・ソフトウェアにアクセスする（ブロック５７２）。プロセス・ソフトウェアが、ネットワーク上でトンネリングを介してサイト・ユーザに転送される（ブロック５７３）。すなわち、プロセス・ソフトウェアが、パケットに分割され、データおよびプロトコルを含む各パケットが、別のパケット内に置かれる（ブロック５７４）。プロセス・ソフトウェアは、リモート・ユーザのデスクトップに達した時に、パケットから除去され、再構成され、サイト・ユーザ・デスクトップで実行される（ブロック５７５）。このプロセスは、その後、終端子ブロック５０７で終了する。
【００４６】
ソフトウェア統合（Integration）
本明細書で説明されるプロセスを実施するコードからなるプロセス・ソフトウェアを、アプリケーション、オペレーティング・システム、およびネットワーク・オペレーティング・システム・ソフトウェアと共存するためにこのプロセス・ソフトウェアを提供することと、その後、このプロセス・ソフトウェアが機能する環境内でクライアントおよびサーバ上でこのプロセス・ソフトウェアをインストーすることとによって、クライアント環境、サーバ環境、およびネットワーク環境に統合することができる。
【００４７】
最初のステップは、プロセス・ソフトウェアが必要とするか、プロセス・ソフトウェアと共に働く、プロセス・ソフトウェアが配備されるネットワーク・オペレーティング・システムを含むクライアントおよびサーバ上のすべてのソフトウェアを識別することである。これには、ネットワーキング特徴を追加することによって基本オペレーティング・システムを機能強化するソフトウェアであるネットワーク・オペレーティング・システムが含まれる。
【００４８】
次に、ソフトウェア・アプリケーションおよびバージョン番号を識別し、プロセス・ソフトウェアと協働することをテストされたソフトウェア・アプリケーションおよびバージョン番号のリストと比較する。欠けているソフトウェア・アプリケーションまたは正しいバージョンと一致しないソフトウェア・アプリケーションは、正しいバージョン番号を有するものにアップグレードされる。プロセス・ソフトウェアからソフトウェア・アプリケーションにパラメータを渡すプログラム命令を検査して、パラメータ・リストがソフトウェア・アプリケーションの必要とするパラメータ・リストと一致することを保証する。逆に、ソフトウェア・アプリケーションによってプロセス・ソフトウェアに渡されるパラメータを検査して、パラメータが、プロセス・ソフトウェアの必要とするパラメータと一致することを保証する。ネットワーク・オペレーティング・システムを含むクライアント・オペレーティング・システムおよびサーバ・オペレーティング・システムを識別し、プロセス・ソフトウェアと共に働くことをテストされたオペレーティング・システム、バージョン番号、およびネットワーク・ソフトウェアのリストと比較する。テストされたオペレーティング・システムおよびバージョン番号のリストと一致しないオペレーティング・システム、バージョン番号、およびネットワーク・ソフトウェアは、クライアントおよびサーバで、必要なレベルにアップグレードされる。
【００４９】
プロセス・ソフトウェアが配備される場所のソフトウェアが、プロセス・ソフトウェアと共に働くことをテストされた正しいバージョン・レベルであることを保証した後に、統合は、クライアントおよびサーバでプロセス・ソフトウェアをインストールすることによって完了する。
【００５０】
このプロセスの高レベルの説明のために、ここで図１６〜１７を参照する。イニシエータ・ブロック６２０で、プロセス・ソフトウェアの統合を開始する。最初は、１つまたは複数のサーバで実行されるプロセス・ソフトウェア・プログラムがあるかどうかを判定することである（ブロック６２１）。そうでない場合には、統合は照会ブロック６２７に進む。そうである場合には、サーバ・アドレスを識別する（ブロック６２２）。サーバを検査して、プロセス・ソフトウェアと共にテストされた、オペレーティング・システム（ＯＳ）、アプリケーション、およびネットワーク・オペレーティング・システム（ＮＯＳ）を含むソフトウェアがサーバに含まれるかどうかを、それらのバージョン番号と一緒に検査する（ブロック６２３）。ブロック６２３で、サーバを検査して、プロセス・ソフトウェアが必要とする欠けているソフトウェアがあるかどうかも判定する。
【００５１】
バージョン番号が、プロセス・ソフトウェアと共にテストされたＯＳ、アプリケーション、およびＮＯＳのバージョン番号と一致するかどうかの判定を行う（ブロック６２４）。すべてのバージョンが一致し、欠けている必要なソフトウェアがない場合には、統合は照会ブロック６２７で継続される。
【００５２】
バージョン番号のうちの１つまたは複数が一致しない場合には、一致しないバージョンを、１つまたは複数のサーバ上で正しいバージョンにアップデートする（ブロック６２５）。さらに、欠けている必要なソフトウェアがある場合には、ブロック６２５に示されたステップで、そのソフトウェアを１つまたは複数のサーバでアップデートする。サーバ統合は、プロセス・ソフトウェアをインストールすることによって完了する（ブロック６２６）。
【００５３】
ブロック６２１、６２４、または６２６に示されたステップのいずれかに続く、照会ブロック６２７に示されたステップでは、クライアントで実行されるプロセス・ソフトウェアのプログラムがあるかどうかを判定する。プロセス・ソフトウェア・プログラムがクライアントで実行されない場合には、統合は、終端子ブロック６３０に進み、終了する。そうでない場合には、ブロック６２８に示されているように、クライアント・アドレスを識別する。
【００５４】
クライアントを検査して、プロセス・ソフトウェアと共にテストされた、オペレーティング・システム（ＯＳ）、アプリケーション、およびネットワーク・オペレーティング・システム（ＮＯＳ）を含むソフトウェアがクライアントに含まれるかどうかを、それらのバージョン番号と一緒に調べる（ブロック６２９）。ブロック６２９によって記述されるステップで、クライアントを検査して、プロセス・ソフトウェアが必要とする欠けているソフトウェアがあるかどうかも判定する。
【００５５】
バージョン番号が、プロセス・ソフトウェアと共にテストされたＯＳ、アプリケーション、およびＮＯＳのバージョン番号と一致するかどうかの判定を行う（ブロック６３１）。すべてのバージョンが一致し、欠けている必要なソフトウェアがない場合には、統合は、終端子ブロック６３０に進み、終了する。
【００５６】
バージョン番号のうちの１つまたは複数が一致しない場合には、一致しないバージョンを、クライアント上で正しいバージョンにアップデートする（ブロック６３２）。さらに、欠けている必要なソフトウェアがある場合には、そのソフトウェアをクライアント上でアップデートする（ブロック６３２）。クライアント統合は、クライアントにプロセス・ソフトウェアをインストールすることによって完了する（ブロック６３３）。統合は、終端子ブロック６３０に進み、終了する。
【００５７】
オン・デマンド
プロセス・ソフトウェアは、共用され、柔軟で自動化された形で複数の顧客に同時にサービスする。プロセス・ソフトウェアは、標準化され、ほとんどカスタマイズを必要とせず、スケーラブルであり、利用時払いモデルでオン・デマンドで能力を提供する。
【００５８】
プロセス・ソフトウェアは、１つまたは複数のサーバからアクセス可能な共用ファイル・システムに保管することができる。プロセス・ソフトウェアは、アクセスされるサーバ上のＣＰＵ単位を使用するサーバ処理要求とデータとを含むトランザクションを介して実行される。ＣＰＵ単位は、サーバの中央プロセッサでの分、秒、時間などの時間の単位である。さらに、アクセスされるサーバは、他のサーバに、ＣＰＵ単位を要求する要求を行うことができる。ＣＰＵ単位は、使用の測定値の１つを表す例にすぎない。使用の他の測定値に、ネットワーク帯域幅、メモリ使用量、ストレージ使用量、パケット転送の回数、完了したトランザクションの個数などが含まれるが、これらに限定はされない。
【００５９】
複数の顧客が、同一のプロセス・ソフトウェア・アプリケーションを使用する場合に、彼らのトランザクションは、一意の顧客およびその顧客のサービスのタイプを識別する、トランザクションに含まれるパラメータによって区別される。各顧客のサービスに使用されるＣＰＵ単位および使用の他の測定値のすべてが、記録される。任意の１つのサーバへのトランザクションの個数が、そのサーバの性能に影響し始める個数に達した時に、他のサーバが、容量を増やし、作業負荷を分担するためにアクセスされる。同様に、ネットワーク帯域幅、メモリ使用量、ストレージ使用量などの使用の他の測定値が、性能に影響する容量に達した時に、追加のネットワーク帯域幅、メモリ使用量、ストレージなどが、作業負荷を分担するために追加される。
【００６０】
各サービスおよび顧客について使用された使用の測定値が、収集サーバに送られ、この収集サーバは、プロセス・ソフトウェアの共用実行を提供するサーバのネットワーク内のどこかで処理されたサービスごとに顧客ごとに使用の測定値を合計する。合計された使用単位の測定値は、周期的に単位コストを乗算され、結果の総プロセス・ソフトウェア・アプリケーション・サービス・コストが、その代わりに顧客に送られるか、顧客によってアクセスされるウェブ・サイトに示され、この顧客は、その後、サービス・プロバイダへの支払いを送金する。
【００６１】
もう１つの実施形態で、サービス・プロバイダは、金融機関の顧客口座に直接に支払いを要求する。
【００６２】
もう１つの実施形態で、サービス・プロバイダが、プロセス・ソフトウェア・アプリケーションを使用する顧客の顧客でもある場合に、そのサービス・プロバイダに支払われるべき支払いが、支払いの転送を最小にするために、そのサービス・プロバイダが支払うべき支払いと調停される。
【００６３】
ここで図１８〜１９を参照すると、イニシエータ・ブロック７４０で、オン・デマンド・プロセスが開始される。一意の顧客識別、要求されたサービス・タイプ、およびサービスのタイプをさらに指定するすべてのサービス・パラメータを含むトランザクションを作成する（ブロック７４１）。次に、トランザクションが、メイン・サーバに送られる（ブロック７４２）。オン・デマンド環境では、メイン・サーバを、当初は唯一のサーバとすることができ、その後、容量が消費された時に、他のサーバがオン・デマンド環境に追加される。
【００６４】
オン・デマンド環境内のサーバ中央処理装置（ＣＰＵ）容量を照会する（ブロック７４３）。トランザクションのＣＰＵ要件を推定し、次に、オン・デマンド環境内のサーバ使用可能ＣＰＵ容量をトランザクションＣＰＵ要件と比較して、そのトランザクションを処理するのに十分なＣＰＵ使用可能容量がいずれかのサーバにあるかどうかを調べる（照会ブロック７４４）。十分なサーバＣＰＵ使用可能容量がない場合には、追加のサーバＣＰＵ容量を割り振って、トランザクションを処理する（ブロック７４８）。既に十分な使用可能ＣＰＵ容量がある場合には、トランザクションを、選択されたサーバに送る（ブロック７４５）。
【００６５】
トランザクションを実行する前に、残りのオン・デマンド環境について検査を行って、環境がトランザクション処理に十分な使用可能容量を有するかどうかを判定する。この環境容量は、ネットワーク帯域幅、プロセッサ・メモリ、ストレージなどからなるが、これらに限定はされない（ブロック７４６）。十分な使用可能容量がない場合には、容量をオン・デマンド環境に追加する（ブロック７４７）。次に、トランザクションを処理するのに必要なソフトウェアにアクセスし、メモリにロードし、その後、トランザクションを実行する（ブロック７４９）。
【００６６】
使用量測定値を記録する（ブロック７５０）。使用量測定値は、オン・デマンド環境内の機能のうちで、そのトランザクションを処理するのに使用される部分からなる。ネットワーク帯域幅、プロセッサ・メモリ、ストレージ、およびＣＰＵサイクル数などであるがこれらに限定されない機能の使用量が、記録されるものである。使用量測定値を合計し、単位コストを乗算し、その後、要求元顧客への料金として記録する（ブロック７５１）。
【００６７】
顧客が、オン・デマンド・コストをウェブ・サイトにポストすることを要求した場合に（照会ブロック７５２）、これらをポストする（ブロック７５３）。顧客が、オン・デマンド・コストを電子メールを介して顧客アドレスに送ることを要求した場合に（照会ブロック７５４）、これらのコストを顧客に送る（ブロック７５５）。顧客が、オン・デマンド・コストを顧客口座から直接に支払うことを要求した場合に（照会ブロック７５６）、支払いを顧客口座から直接に受け取る（ブロック７５７）。オン・デマンド・プロセスは、その後、終端子ブロック７５８で終了する。
【００６８】
本発明を、好ましい実施形態に関して具体的に図示し、説明してきたが、当業者は、本発明の趣旨および範囲から逸脱せずに、好ましい実施形態の形態および詳細においてさまざまな変更を行うことができることを理解するであろう。さらに、本明細書および添付の特許請求の範囲で使用される用語「コンピュータ」、「システム」、「コンピュータ・システム」、または「コンピューティング・デバイス」は、パーソナル・コンピュータ、サーバ、ワークステーション、ネットワーク・コンピュータ、メイン・フレーム・コンピュータ、ルータ、スイッチ、携帯情報端末（ＰＤＡ）、電話機、およびデータの処理、送出、受取、キャプチャ、または保管あるいはこれらの組合せを行うことのできるすべての他のシステムを含むがこれらに限定されないすべてのデータ処理システムを含む。
【００６９】
最後に、本発明の例示的実施形態を、インストールされた管理ソフトウェアを有する十分に機能するコンピュータ・システムの文脈で説明したが、本発明の例示的実施形態のソフトウェア態様をさまざまな形のプログラム製品として配布できることと、本発明の例示的実施形態が配布の実際の実行に使用される信号担持媒体の特定のタイプに関わりなく同等に適用されることを当業者が諒解するであろうことが重要である。信号担持媒体の例に、フロッピ・ディスク、ハード・ディスク・ドライブ、ＣＤ  ＲＯＭなどの記録可能型媒体と、ディジタル通信リンクおよびアナログ通信リンクなどの伝送型媒体とが含まれる。
【図面の簡単な説明】
【００７０】
【図１】その中で本発明のアプリケーション・クリッピングの特徴および機能を有利に実施できる例示的なコンピュータ・システムを示すブロック図である。
【図２】本発明の一実施形態による、例示的なアプリケーション・ウィンドウに対するクリッピング・プロセスを示す図である。
【図３】本発明の一実施形態による、図２からのクリッピングされたウィンドウ部分を示す図である。
【図４】本発明のさまざまな実施形態による、異なるアプリケーションまたはアプリケーションの異なる部分からクリッピングされた他のクリッピングされたウィンドウを示す図である。
【図５】本発明のさまざまな実施形態による、異なるアプリケーションまたはアプリケーションの異なる部分からクリッピングされた他のクリッピングされたウィンドウを示す図である。
【図６】本発明の一実施形態による、集約／組合せ機能をイネーブルするための集約アフォーダンスをそれぞれが含む、同一アプリケーション・ウィンドウの２つのクリッピングされたウィンドウ部分を示す図である。
【図７】本発明の一実施形態による、図６のクリッピングされたウィンドウ部分に適用された、図９の処理の後の結果の集約クリップ・ウィンドウを示すブロック図である。
【図８】本発明の一実施形態による、アプリケーション・ウィンドウ内のクリッピングおよび集約されたクリップ・ウィンドウへの複数のクリップ・ウィンドウの集約（マージ）の各々のプロセスを示す流れ図である。
【図９】本発明の一実施形態による、アプリケーション・ウィンドウ内のクリッピングおよび集約されたクリップ・ウィンドウへの複数のクリップ・ウィンドウの集約（マージ）の各々のプロセスを示す流れ図である。
【図１０】本発明の一実施形態による、アプリケーション・ウィンドウ内のクリッピングおよび集約されたクリップ・ウィンドウへの複数のクリップ・ウィンドウの集約（マージ）の各々のプロセスを示す流れ図である。
【図１１】図８から１０に示され、説明されたステップを実行することのできるソフトウェアを配備するために行われるステップを示す流れ図である。
【図１２】図８から１０に示され、説明されたステップを実行することのできるソフトウェアを配備するために行われるステップを示す流れ図である。
【図１３】図８から１０に示され、説明されたステップを実行することのできる仮想プライベート・ネットワーク（ＶＰＮ）ソフトウェアで配備するために行われるステップを示す流れ図である。
【図１４】図８から１０に示され、説明されたステップを実行することのできる仮想プライベート・ネットワーク（ＶＰＮ）ソフトウェアで配備するために行われるステップを示す流れ図である。
【図１５】図８から１０に示され、説明されたステップを実行することのできる仮想プライベート・ネットワーク（ＶＰＮ）ソフトウェアで配備するために行われるステップを示す流れ図である。
【図１６】図８から１０に示され、説明されたステップを実行することのできるコンピュータ・システム・ソフトウェアに統合するために行われるステップを示す流れ図である。
【図１７】図８から１０に示され、説明されたステップを実行することのできるコンピュータ・システム・ソフトウェアに統合するために行われるステップを示す流れ図である。
【図１８】オン・デマンド・サービス・プロバイダを使用して図８から１０に示され、説明されたステップを実行するために行われるステップを示す流れ図である。
【図１９】オン・デマンド・サービス・プロバイダを使用して図８から１０に示され、説明されたステップを実行するために行われるステップを示す流れ図である。
【符号の説明】
【００７１】
１００  コンピュータ・システム
１０５  システム・バス
１１０  プロセッサ
１１５  入出力コントローラ
１１６  マウス
１１７  キーボード
１１８  ディスプレイ・デバイス
１２０  メモリ
１２５  オペレーティング・システム（ＯＳ）
１３０  ネットワーク・インターフェース・デバイス（ＮＩＤ）
１３３  Ａｐｐ１…ＡｐｐＮ
１４０  クリップ・ユーティリティ
１５０  サービス・プロバイダ・サーバ
１５５  他の／２次ストレージ
２００  アプリケーション・ウィンドウ
２１０  クリップ・セグメント
２１５  クリップ機能
２１７  出口アフォーダンス
２２５  内容
２３０  コンピュータ・ネットワーク
２５０  集約ウィンドウ・クリップ
５０６  イニシエータ・ブロック
５０７  終端子ブロック
５６１（図１３）  リモート・アクセス用のＶＰＮが必要であるかどうかを判定するステップ
５６１（図１４）  サイト対サイトＶＰＮが存在するかどうかを判定するステップ
５６２  サイト対サイト・アクセス用のＶＰＮが必要であるかどうかを判定するステップ
５６４  リモート・アクセスＶＰＮが存在するかどうかを判定するステップ
５６５  ネットワーク・アタッチド・サーバにアクセスするステップ
５６６  会社ネットワークにアクセスし、ソフトウェアを要求するステップ
５６７  トンネリングを介してプロセス・ソフトウェアを転送するステップ
５６８  プロセス・ソフトウェアを実行するステップ
５７０  専用機器をインストールするステップ
５７１  大規模暗号化を作成するステップ
５７２  ネットワーク内のプロセス・ソフトウェアにアクセスするステップ
５７３  トンネリングを介してプロセス・ソフトウェアを転送するステップ
５７４  プロセス・ソフトウェアを受け取るステップ
５７５  プロセス・ソフトウェアを実行するステップ
５７６  サード・パーティ・サービス・プロバイダを識別するステップ
５７７  リモート・ユーザを識別するステップ
５７８  ネットワーク・アクセス・サーバをセット・アップするステップ
５７９  デスクトップ・クライアント・ソフトウェアをインストールするステップ
６２０  イニシエータ・ブロック
６２１  プロセス・ソフトウェアがサーバで実行されるかどうかを判定するステップ
６２２  サーバ・アドレスを識別するステップ
６２３  サーバ上のソフトウェアおよびバージョン番号を識別するステップ
６２４  バージョン番号およびソフトウェアが一致するかどうかを判定するステップ
６２５  サーバ上のソフトウェアをアップデートするステップ
６２６  サーバ統合を完了するステップ
６２７  プロセス・ソフトウェアがクライアントで実行されるかどうかを判定するステップ
６２８  クライアント・アドレスを識別するステップ
６２９  クライアント上のソフトウェアおよびバージョン番号を識別するステップ
６３０  終端子ブロック
６３１  バージョン番号およびソフトウェアが一致するかどうかを判定するステップ
６３２  クライアント上のソフトウェアをアップデートするステップ
６３３  クライアント統合を完了するステップ
７４０  イニシエータ・ブロック
７４１  顧客がオン・デマンド・トランザクションを作成するステップ
７４２  トランザクションをサーバに送るステップ
７４３  サーバ容量を照会するステップ
７４４  十分な容量があるかどうかを判定するステップ
７４５  サーバに送るステップ
７４６  オン・デマンド環境は十分かどうかを判定するステップ
７４７  オン・デマンド環境に追加するステップ
７４８  十分なサーバ容量を割り振るステップ
７４９  トランザクションを実行するステップ
７５０  測定値を記録するステップ
７５１  測定値およびコストを合計するステップ
７５２  ウェブに表示するかどうかを判定するステップ
７５３  ウェブにポストするステップ
７５４  顧客に送るかどうかを判定するステップ
７５５  顧客に送るステップ
７５６  顧客口座から支払うかどうかを判定するステップ
７５７  顧客口座から支払いを得るステップ
７５８  終端子ブロック
１００２  開始ブロック
１００４  開かれているアプリケーションＧＵＩ内のクリッピング機能をアクティブ化する／開くステップ
１００６  ユーザが、クリッピングされるべき区域の周囲で輪郭区域をドラッグし、境界を選択するステップ
１００８  ユーザが、クリップ・ツールを選択して、クリッピングを完了するステップ
１０１０  開始ブロック
１０１２  クリッピング機能のユーザ選択／アクティブ化を検出するステップ
１０１４  表示されているアプリケーションのＧＵＩ内にクリップ・ツールを表示するステップ
１０１６  ユーザが、クリッピングされる区域を選択し、クリッピングを開始したかどうかを判定するステップ
１０１８  選択に関するタイムアウト条件が登録されているかどうかを判定するステップ
１０２０  クリップ・ツールを閉じるステップ
１０２２  終端子ブロック
１０２４  選択された区域をクリッピングするステップ
１０２６  ＧＵＩの外側境界を除去するステップ
１０２８  クリップ・ツール・ヘッダをクリッピングされたセクションに追加するステップ
１０３０  クリッピングされたセクションだけをヘッダと共に表示するステップ
１０３２  子ウィンドウとしてのクリッピングされたセクションとのユーザ対話を可能にするステップ
１０４０  第１のクリッピングされた兄弟セクションを第２のクリッピングされた兄弟セクションのヘッダの上／下にプルするステップ
１０４１  ヘッダ内にマージ・アフォーダンスを表示するステップ
１０４２  マージ機能がアクティブ化／トリガ／選択されるかどうかを判定するステップ
１０４４  ２つの別々のクリッピングされたセクションとして表示するステップ
１０４６  クリッピングされたセクションをマージし、属性／特性を使用して、ビュー順序を判定するステップ
１０４８  単一の集約されたセクション（または機能するクリッピングされたＧＵＩ）として表示するステップ
【図１】
0005187933.tif 000002
【図２】
0005187933.tif 000003
【図３】
0005187933.tif 000004
【図４】
0005187933.tif 000005
【図５】
0005187933.tif 000006
【図６】
0005187933.tif 000007
【図７】
0005187933.tif 000008
【図８】
0005187933.tif 000009
【図９】
0005187933.tif 000010
【図１０】
0005187933.tif 000011
【図１１】
0005187933.tif 000012
【図１２】
0005187933.tif 000013
【図１３】
0005187933.tif 000014
【図１４】
0005187933.tif 000015
【図１５】
0005187933.tif 000016
【図１６】
0005187933.tif 000017
【図１７】
0005187933.tif 000018
【図１８】
0005187933.tif 000019
【図１９】
0005187933.tif 000020