(57)【特許請求の範囲】
【請求項１】
シェルアプリケーション（２０４）と、前記シェルアプリケーション（２０４）に機能を提供するようにされたサブアプリケーション（２０６〜２０８）とを有する記憶装置（２０２）と、
前記記憶装置（２０２）に結合され、前記シェルアプリケーション（２０４）を実行し、前記シェルアプリケーション（２０４）の実行とは独立して前記サブアプリケーション（２０６〜２０８）を実行するようにされた処理ロジック（２００）と
を備え、
前記処理ロジック（２００）は、
前記サブアプリケーション（２０６〜２０８）を用いる第１のグラフィカルユーザインターフェース（ＧＵＩ）と、前記シェルアプリケーション（２０４）を用いる第２のＧＵＩを生成し、
前記処理ロジック（２００）は、前記第２のＧＵＩ上に重ね合わされた前記第１のＧＵＩをディスプレイに表示し、
前記処理ロジック（２００）は、前記第１のＧＵＩを用いて入力をキャプチャーし、前記サブアプリケーション（２０６〜２０８）に前記入力を提供する
システム。
【請求項２】
前記処理ロジック（２００）は、ネットワーク接続を用いずに前記入力を前記サブアプリケーション（２０６〜２０８）に提供する
請求項１に記載のシステム。
【請求項３】
前記シェルアプリケーション（２０４）は、前記処理ロジック（２００）が前記第２のＧＵＩを生成したとき、または、前記処理ロジック（２００）が前記第２のＧＵＩをディスプレイに表示するときには、前記サブアプリケーション（２０６〜２０８）を運用しない
請求項１に記載のシステム。
【請求項４】
前記第２のＧＵＩを表示するタッチスクリーンディスプレイを
さらに有し、
前記処理ロジック（２００）は、前記タッチスクリーンディスプレイを用いて、前記入力をキャプチャーする
請求項１に記載のシステム。
【請求項５】
前記処理ロジック（２００）は、前記入力を直接に前記サブアプリケーションに供給し、前記シェルアプリケーションには最初に供給しない
請求項１に記載のシステム。
【請求項６】
シェルアプリケーション（２０４）を実行し、前記シェルアプリケーション（２０４）に機能を提供するサブアプリケーションを前記シェルアプリケーション（２０４）から独立して実行する処理ロジック（２００）によって、
前記シェルアプリケーション（２０４）の実行により生成され、前記シェルアプリケーション（２０４）に対応する第１のグラフィカルユーザインターフェース（ＧＵＩ）を表示することと、
前記シェルアプリケーション（２０４）の実行とは独立した前記サブアプリケーション（２０６〜２０８）の実行により生成され、前記第１のＧＵＩ上に重ね合わされ、前記シェルアプリケーション（２０４）への機能の提供に使用しうる前記サブアプリケーション（２０６〜２０８）に対応する第２のＧＵＩを表示することと、
入力を前記第２のＧＵＩに提供することと、
前記第２のＧＵＩから、前記シェルアプリケーション（２０４）が運用しない前記サブアプリケーション（２０６〜２０８）に、前記入力を送ることと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、シェルアプリケーションおよびサブアプリケーションを結合するインターフェースに関する。
【背景技術】
【０００２】
コンピュータシステムは、様々な種類のソフトウェアアプリケーションを実行する。「サブアプリケーション(sub-application)」として知られるこれら多くのソフトウェアアプリケーションは、「シェルアプリケーション(shell application)」として知られており、さらに総合的な他のアプリケーションに特定の機能を提供するように作成されている。このような理由により、シェルアプリケーションは、１つ以上のサブアプリケーションを「ホスト(host)」すると記載される。例えば、電子メール（Ｅメール）ソフトウェアプログラム（例えば、マイクロソフト（登録商標）アウトルック（OUTLOOK;登録商標））は、プラグインを使用して、電子メールを暗号化し、復号することがある。このような場合には、電子メールソフトウェアプログラムは、上記シェルアプリケーションと言われ、暗号化および復号プラグインは、サブアプリケーションと記載される。別の例では、オペレーティングシステム（ＯＳ）はワードプロセッサアプリケーション(word processing application)およびスプレッドシートアプリケーションを用いてよい。このような場合には、ＯＳはシェルアプリケーションと言われ、ワードプロセッサアプリケーションおよびスプレッドシートアプリケーションはサブアプリケーションと記載される。通常、上述のように他のアプリケーションをホストするいずれかのアプリケーションは「シェルアプリケーション」と言われてよい。従って、シェルアプリケーションは、ＯＳの下で走るアプリケションを含んでよく、あるいは、ＯＳ自体さえをも含んでもよい。同様に、他のアプリケーションによりホストされるいずれかのアプリケーションは、「サブアプリケーション」と言われてよい。
【０００３】
サブアプリケーションは、シェルアプリケーションと独立には動作しない。代わりに、サブアプリケーションは、シェルアプリケーションにより提供される「サービス」を用いてシェルアプリケーションと相互作用する。これらのサービスは、サブアプリケーションが、シェルアプリケーションと通信するために求めるプロトコルを提供して、それらそれぞれの機能をシェルアプリケーションに提供する。もし、シェルアプリケーションのサービスが使用できなければ、サブアプリケーションは動作できない。サブアプリケーションは、それ故に、シェルアプリケーションに従属すると記載される。それに互換性があるように開発されたサブアプリケーションによるプロセスが、費用がかかり、長たらしく、時間を消費するので、このような従属は好ましくない。
【０００４】
シェルアプリケーションとサブアプリケーションとの両方が、システムディスプレイに表示されるグラフィカルデータ（graphical data; 画像データ）を生成する。サブアプリケーションはシェルアプリケーションに従属するので、サブアプリケーションの画像データとシェルアプリケーションの画像データとの両方が、単一のグラフィカルユーザインターフェース（Graphical User Interface; ＧＵＩ）を用いて表示される。上述のように、シェルアプリケーションとサブアプリケーションとの間の相互の従属を解消することは、通常、望ましいことである。しかしながら、このような解消は、シェルアプリケーションのＧＵＩを用いたサブアプリケーションの画像データの表示を妨げる。すると、サブアプリケーションは、それらの画像データを表示する効果的な手段なしのままになる。
【０００５】
［注釈と用語］
ある用語が、以下の記載および請求項を通して使われ、特定のシステムコンポーネントを参照する。当業者として、企業はあるコンポーネントを異なる用語により参照してもよい。この書類は、コンポーネントの間を名前において区別し、機能において区別することを意図していない。以下の議論および請求項において、「含む」および「備える／有する」という用語は制約のない方法において用いられるので、「含む」と解釈されるべきであり、「・・・に制限される」と解釈されるべきではない。また、「接続（単数および複数）」は、間接、直接、光学的または無線の電子的接続が意図されている。従って、もし、第１のデバイスが第２のデバイスに接続されているときには、この接続は、直接的な電子接続を通して、間接的な電子的接続を通して、他のデバイスを介した接続を通して、あるいは、無線の電子的接続を通してであってよい。
【発明の概要】
【課題を解決するための手段】
【０００６】
本願発明にかかるシステムは、上述した背景からなされ、シェルアプリケーション（２０４）と、前記シェルアプリケーション（２０４）に機能を提供するようにされたサブアプリケーション（２０６〜２０８）とを有する記憶装置（２０２）と、前記記憶装置（２０２）に結合され、前記シェルアプリケーション（２０４）と前記サブアプリケーション（２０６〜２０８）を実行するようにされた処理ロジック（２００）とを備え、前記処理ロジック（２００）は、前記サブアプリケーション（２０６〜２０８）を用いる第１のグラフィカルユーザインターフェース（ＧＵＩ）と、前記シェルアプリケーション（２０４）を用いる第２のＧＵＩを生成し、前記処理ロジック（２００）は、前記第２のＧＵＩ上に重ね合わされた前記第１のＧＵＩをディスプレイに表示し、前記処理ロジック（２００）は、前記第１のＧＵＩを用いて入力をキャプチャーし、前記サブアプリケーション（２０６〜２０８）に前記入力を提供する。
【０００７】
また、本発明にかかる方法は、シェルアプリケーション（２０４）に対応する第１のグラフィカルユーザインターフェース（ＧＵＩ）を表示することと、前記第１のＧＵＩ上に重ね合わされ、前記シェルアプリケーション（２０４）への機能の提供に使用しうるプラグインアプリケーションに対応する第２のＧＵＩを表示することと、前記入力を前記第２のＧＵＩに提供することと、前記第２のＧＵＩから、前記シェルアプリケーション（２０４）がホストしない前記プラグインアプリケーションに、前記入力を送ることとを含む。
【図面の簡単な説明】
【０００８】
本願発明の最良の実施形態の詳細な説明のために、下記の添付の図面が参照される。
【図１】本願実施形態に従った技術を実現する例示的なコンピュータシステムを例示する図である。
【図２】本願実施形態に従って、図１のシステムの中に格納された例示的な回路ロジックのブロック図である。
【図３Ａ】本願実施形態に従い、図１のシステムに関連付けられた例示的なディスプレイとグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３Ｂ】本願実施態様に従って、開示されている技術の動作を実証する概念的な図である。
【図４】様々な実施形態に従って実現される例示的な方法の流れ図である。
【発明を実施するための形態】
【０００９】
以下の議論は、様々な本願発明の実施形態にあてたものである。これらの実施形態の１つかそれ以上が好適であろうが、開示された実施形態は、請求項も含めた開示の範囲を限定するものとして解釈されたり、あるいは、用いられるべきではない。さらに、以下の記載が、広い適用範囲を有すること、いずれの実施形態の議論も、その実施形態の例示としてのみ意図され、請求項を含めた開示の範囲を明らかにすることを意図しないこと、その実施形態に限定されることを、当業者は理解するであろう。
【００１０】
ここに開示されているものは、シェルアプリケーションおよびサブアプリケーションそれぞれのためのＧＵＩベースの情報を共通のディスプレイに表示する間に、シェルアプリケーションおよびサブアプリケーションを実行するための独立性をそなえた技術である。特に、サブアプリケーションに対応する１つ以上のＧＵＩが、シェルアプリケーションのＧＵＩ上に描画され（または重ね合わされ）る。このように、アプリケーションが実際には独立して実行されているのにもかかわらず、エンドユーザには、シェルアプリケーションがサブアプリケーションをホストしているように見える。エンドユーザが、シェルアプリケーションのＧＵＩ上に重ね合わされたサブアプリケーションのＧＵＩとやりとりしているとき、シェルアプリケーションはユーザの入力（ユーザ入力）をキャプチャーして、それをサブアプリケーションに送る。代わりに、サブアプリケーションは、ユーザ入力を直接にキャプチャーする。いずれの場合でも、実際にはシェルアプリケーションとサブアプリケーションとが独立に実行されている間、シェルアプリケーションは、それがサブアプリケーションをホストしている錯覚を与える。このように、エンドユーザに気づかれない状態を保ちつつ、先に記載された課題が緩和される。上に記載された技術は、今、以下に、図１を参照して明らかにされる。
【００１１】
図１は、様々な実施形態に従って実現され、ここに開示される技術を実現するコンピュータシステム１００を示す。コンピュータシステム１００は、シャーシ(chassis)１０２、ディスプレイ１０４、キーボード１０６およびマウス１０８を備える。その他の入力デバイスおよび出力デバイスまたはこれらのいずれかもまた、使用されてもよい。さらに、ここでは、コンピュータシステム１００はデスクトップパーソナルコンピュータとして記載されているが、ここに開示されている技術は、ノートブック・ラップトップパーソナルコンピュータ、ＰＤＡ(Personal Digital Assistants)、携帯音楽プレーヤーおよびソフトウェアプログラムを実行しうる全ての電子機器を含むどのような適切な形式のコンピュータシステムにおいても実現されうる。
【００１２】
図２は、図１のシャーシ１０２の内容の詳細図である。特に、シャーシ１０２は、シェルアプリケーション２０４および複数のサブアプリケーション２０６〜２０８を備えた処理ロジック２００および記憶装置２０２（例えば、ランダムアクセスメモリ（ＲＡＭ））を備える。少なくともある実施形態においては、処理ロジック２００は、ファームウェア(firmware)が基板上のメモリに埋め込まれたプロセッサまたはマイクロプロセッサを含む。ファームウェアは、実行されたときに、処理ロジック２００に、シェルアプリケーション２０４および１つ以上のサブアプリケーション２０６〜２０８を実行することにより得られた画像データを用いて、ディスプレイ１０４上にＧＵＩを描画させうるソフトウェアコードを備えてよい。処理ロジック２００は、コンピュータシステム１００の動作に適切な追加的な機能を実行してよい。上述のように、シャーシ１０２は、キーボード１０６およびマウス１０８に接続され、これらは、図２において、総称的に入力デバイス２１０と記載される。入力デバイス２１０は、キーボードおよびマウスの他に、タッチスクリーンおよび音声駆動入力デバイスなどのような追加的な形式のデバイスを備えてよい。ある実施形態においては、ディスプレイ１０４はタッチスクリーンでよく、この場合には、ディスプレイ１０４は出力デバイスと入力デバイスの両方を備えてよい。処理ロジック２００は、動作中に、シェルアプリケーション２０４および１つ以上のｄ２０６〜２０８を実行する。例えば、処理ロジック２００は、シェルアプリケーション２０４およびサブアプリケーション２０６を実行してよい。シェルアプリケーション２０４は、実行されたときに、処理ロジック２００にディスプレイ１０４上のＧＵＩを生成させるソフトウェアコードを備える。図３Ａは、このようなＧＵＩ３００を示す。シェルアプリケーション２０４を用いて生成されるＧＵＩ３００は、どのような形式でもよい。サブアプリケーション２０６〜２０８は、実行されたときに、処理ロジック２００にディスプレイ１０４上の他のＧＵＩを生成させるソフトウェアコードを備える。図３Ａは、このようなＧＵＩ３０２を示す。示されるように、ＧＵＩ３０２は、ＧＵＩ３００に重ね合わされる。ＧＵＩ３００，３０２は、ＧＵＩ３００を用いて表示される画像データがシェルアプリケーション２０４から直接に受信され、ＧＵＩ３０２を用いて表示される画像データがサブアプリケーション２０６〜２０８から直接に受信されるという意味で、互いに独立である。ある実施形態においては、しかしながら、サブアプリケーション２０６〜２０８からの画像データは、ＧＵＩ３０２に対してシェルアプリケーション２０４を介して供給されてよい。
【００１３】
少なくともある実施形態においては、シェルアプリケーション２０４を実行しているときに、処理ロジック２００は、シェルアプリケーション２０４を用いるサブアプリケーション２０６を「ホスト」しない。他の方法で記載されると、シェルアプリケーション２０４とサブアプリケーション２０６は、適切な実行のために、サブアプリケーション２０６は、シェルアプリケーション２０４に従属しないように、互いに独立している。処理ロジック２００が、シェルアプリケーション２０４およびサブアプリケーション２０６を別々に実行するのではなくて、シェルアプリケーション２０４とサブアプリケーション２０６は、メモリおよび他の資源が共有されないように（あるいは、少なくとも、もし、このそこでこの技術が実現されない場合よりも少ない度合いで共有されるように）、これら自体のプロセス空間において独立に走る。シェルアプリケーション２０４は、シェルアプリケーション２０４と通信するために、特定のプロトコルをなんら守らせるようにサブアプリケーション２０６に要求するようにプログラムされていないので、シェルアプリケーション２０４とサブアプリケーション２０６とは、互いに独立に実行されることができる。このように、シェルアプリケーション２０４は、上述の「サービス」を、サブアプリケーション２０６に提供せず、サブアプリケーション２０６は、シェルアプリケーション２０４へのその機能を提供するためにサービスを要求しない。
【００１４】
例えば、シェルアプリケーション２０４は、ＯＳを備えてよく、サブアプリケーション２０６は、ワードプロセッサアプリケーションを備えてよい。それによってＯＳとの通信するサービスを持つワードプロセッサアプリケーションを提供する代わりに、ＯＳは、（例えば製造者によって）、ワードプロセッサアプリケーションからの通信を、なんらかの特定のプロトコルに従うか否かにかかわらず受け入れるように特にプログラムされる。このように、ＯＳとワードプロセッサアプリケーションとの間の相互的な従属が解消される。
【００１５】
しかしながら、前に説明したように、このようなシェルアプリケーション２０４とサブアプリケーション２０６との間の相互的な従属関係の解消は、効果的にその画像データを表示する手段を持たないサブアプリケーション２０６が残ることにおいて問題がある。少なくともある実施形態においては、このような問題は、以下のように軽減される。実行されたときに、サブアプリケーション２０６が、処理ロジック２００に１つ以上のＧＵＩ３０２を、図３Ａに示すように作成させる。処理ロジック２００は、マイクロソフト（登録商標）ビスタ（登録商標）デスクトップウインドウマネージャ（MICROSOFT VISTA DESKTOP WINDOW MANAGER (DWM)）を用いて、これら１つ以上のＧＵＩ３０２をＧＵＩ３００上に描画する。ＧＵＩ３０２の１つ以上のＧＵＩ３０２は、ＧＵＩ３００上に重ね合わされるので、ディスプレイ１０４を観るユーザには、シェルアプリケーション２０４がサブアプリケーション２０６をホスティング(hosting)しているように見える。しかしながら、前に説明したように、シェルアプリケーション２０４は、サブアプリケーション２０６をホスティングしていないだけでなく、処理ロジック２００はサブアプリケーションのＧＵＩ３０２を、シェルアプリケーションのＧＵＩ３００上に描画して、シェルアプリケーション２０４があたかもシェルアプリケーション２０４をホスティングしているかのような錯覚(illusion)を作り上げる。この錯覚は、ユーザに透過性と使いやすさを促進する。
【００１６】
ある実施形態においては、サブアプリケーションのＧＵＩ３０２は受動的でよい。例えば、ＧＵＩ３０２は、ＧＵＩ３００の単純に審美的な拡張のために（例えば、装飾として）表示されうる。反対に、ある実施形態においては、コンピュータシステム１００のエンドユーザ(end user)に、ＧＵＩ３０２との対話的な操作の機会を提供でき、それによって、ＧＵＩ３０２が、ＧＵＩ３００に１つ以上の機能を提供することができるようにする。例えば、ＧＵＩ３０２は、図３Ａに示すように、それにテキストが入力されてもよいいくつかのフィールド３０４を含む「記入可能な(fillable)」書式を備えてよい。他の例においては、ＧＵＩ３０２は、マウスのカーソルを用いてクリックされ得る１つ以上のボタンを備えてよい。さらに他の例においては、ディスプレイ１０４は、タッチスクリーンでよく、それで、ＧＵＩ３０２は、スタイラス(stylus)および指などを介したユーザ入力を受ける接触に敏感な(touch-sensitive)な領域を備えてよい。いずれか、あるいは、全てのこのようなバリエーションは、本願の開示事項の範囲内である。
【００１７】
このような実施形態において、エンドユーザは、コンピュータシステム１００に、エンドユーザに表示された１つ以上のＧＵＩ３０２に応じた入力を提供してよい。次いで、処理ロジック２００は、このようなユーザ入力をキャプチャー(capture)してよく、この入力をシェルアプリケーション２０４またはサブアプリケーション２０６あるいはこれら両方に提供してよい。ある実施形態においては、処理ロジック２００は、シェルアプリケーション２０４にユーザ入力を提供してよく、代わりに、サブアプリケーション２０６にユーザ入力を提供してよい。さらに他の実施形態においては、処理ロジック２００は、ユーザ入力を、サブアプリケーション２０６に直接に提供してよく、随意的には、シェルアプリケーション２０４にユーザ入力を提供してよい。
【００１８】
例えば、シェルアプリケーション２０４が、品物の注文をするために使われるソフトウェアを備え、さらに、サブアプリケーション２０６が、シェルアプリケーション２０４によって使われて注文フォームを作成し、保存するプラグインを備えるとする。その結果、シェルアプリケーション２０４は、その上にサブアプリケーションのＧＵＩが重ね合わされる初期のＧＵＩを提供する。上で説明したように、実際にはそうでないにもかかわらず、エンドユーザには、シェルアプリケーション２０４が、サブアプリケーション２０６をホスティングしているように見える。エンドユーザは、キーボード１０６およびマウス１０８を用いて、第２のＧＵＩの注文フォームのフィールドに情報を入力する。例えば、エンドユーザは、名前、請求書送付先およびクレジットカード番号などを入力できる。エンドユーザが、注文フォームへの情報の入力を終了すると、エンドユーザは、「セーブ」あるいは注文フォームが完了したことを示す同様なボタンをクリックできる。結果として、ある実施形態においては、処理ロジック２００は、シェルアプリケーション２０４からサブアプリケーション２０６にデータを直接に提供してよい。他の実施形態においては、処理ロジック２００は、エンドユーザから第２のＧＵＩにデータが提供されるようにしてよく、サブアプリケーション２０６に直接に提供されるようにしてよく、このように、シェルアプリケーション２０４をバイパス(bypassing)する。
【００１９】
サブアプリケーションは、ユーザ入力を、エンドユーザから直接に、または、シェルアプリケーション経由でエンドユーザから受けてよい。これらのいずれを実現するためにも様々な手法が用いられ得る。例えば、ある実施形態においては、動的な表示を含むシェルアプリケーションのＧＵＩの部分は、「削除され(removed)」、透明にされ(made transparent)得る。シェルアプリケーションのＧＵＩの透明な部分は、サブアプリケーションのＧＵＩ（例えば、ウィンドウズ（登録商標）ビスタ（登録商標）ＤＷＭ）に置き換えられ得て、それによって、エンドユーザに、サブアプリケーションのＧＵＩに直接に情報を入力できるようにする。ある実施形態においては、シェルアプリケーションのＧＵＩ（あるいは動的な表示ウィンドウ）は、完全に透明でよい。サブアプリケーションのＧＵＩは、そして、同じ位置（あるいは「後に」）において、シェルアプリケーションのＧＵＩとして描画され得る。ある実施形態においては、クロームなし(chromeless)のサブアプリケーションは、シェルアプリケーションのＧＵＩの一部または全部のサイズにされ、重ね合わされ得る。いずれかあるいは全てのこのようなバリエーションは、本願の開示事項の全てを包含する。
【００２０】
図３Ｂは、それに開示されている動作中の手法の概念的な図である。記憶装置２０２は、シェルアプリケーション２０４およびサブアプリケーション２０６を備える。サブアプリケーション２０６を用いて生成された画像データは、矢印３０６により示されるように、ディスプレイ１０４に直接に送られる。「直接に(directly)」により、処理ロジック２００が、画像データを、サブアプリケーション２０６からＧＵＩ３０２に、画像データを、まずシェルアプリケーション２０４に供給することなしに送らせることが意味される。しかしながら、ある実施形態においては、矢印３０７により示されるように、画像データは、サブアプリケーション２０６から、シェルアプリケーション２０４を介してＧＵＩ３０２に送られてよい（つまり、画像データは「間接的」に送られる）。同様に、シェルアプリケーション２０４を用いて生成された画像データは、矢印３０８により示されるように、ディスプレイ１０４に直接に送られ、ＧＵＩ３００を用いて表示される。シェルアプリケーション２０４およびサブアプリケーション２０６は、上に説明されたように、シェルアプリケーション２０４がサブアプリケーション２０６に「サービス」を提供しないように、互いに独立に実行される。また、説明されたように、サブアプリケーション２０６からの画像データは、ウインドウズ（登録商標）ビスタ（登録商標）ＰＷＭといったいずれかの適切な手法あるいは技術を用いてＧＵＩ３０２に直接に提供される。
【００２１】
まだ図３Ｂを参照すると、マウスのクリック、タッチ（もし、ディスプレイ１０４がタッチスクリーンならば）およびテキストなどを示すＧＵＩ３０２へのデータ入力（例えば、エンドユーザによる）は、矢印３１０により示すように、ＧＵＩ３０２からサブアプリケーション２０６へ直接に提供されてよい。「直接に」により、処理ロジック２００が、画像データを、ＧＵＩ３０２からサブアプリケーション２０６に、画像データを、まずシェルアプリケーション２０４に供給することなしに送らせることが意味される。しかしながらある実施形態においては、矢印３１１により示されるように、ユーザ入力は、「間接的に(indirectly)」、シェルアプリケーション２０４を介して、サブアプリケーション２０６に送られうる。同様に、ＧＵＩ３０２に提供されるユーザ入力は、矢印３１２により示されるように、直接にシェルアプリケーション２０４に提供される。
【００２２】
ディスプレイ１０４にサブアプリケーションのＧＵＩを表示するために使われる特定の手法にかかわらず、少なくともある実施形態においては、サブアプリケーションの１つ以上のＧＵＩは、規則的な頻度、予め決められた頻度あるいは不規則的な頻度で更新される。さらに、シェルアプリケーションおよびサブアプリケーションは、いずれもＧＵＩに統一されたルックアンドフィール(look and feel)を持たせ得るｅＸｔｅｎｓｉｖｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＡＭＬ）ファイルあるいはｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）ファイルといった共通の資源を共有できる。
【００２３】
例示された実施形態は、単一のサブアプリケーションおよびシェルアプリケーションの観点から記載されたが、ある実施形態においては、任意の数のサブアプリケーションまたはシェルアプリケーションあるいはこれら両方が使用され得る。例えば、単一のシェルアプリケーションのＧＵＩに、複数のサブアプリケーションのＧＵＩが重ね合わされてよい。他の実施形態においては、複数のシェルアプリケーションのＧＵＩが、同時にディスプレイに表示され、これらシェルアプリケーションのＧＵＩそれぞれに、任意の数のサブアプリケーションのＧＵＩが重ね合わされてよい。
【００２４】
ここに記載された手法は、個別のコンピュータシステム（つまり、その構成部分がネットワーク接続されていないコンピュータシステム）により実現された。このように、例えば、シェルアプリケーションおよび１つ以上のサブアプリケーションは、同じ記憶装置に記憶されても、全てが同じシャーシに収容された複数の記憶装置に記憶されてもよい。少なくともある実施形態においては、シェルアプリケーションおよび１つ以上のサブアプリケーションは、１つ以上のネットワークを介して通信可能に接続された記憶装置に記憶されない。例えば、例として、本願手法は、ディスプレイ、コンピュータシャーシおよび入力／出力デバイスを含む個別のコンピュータシステム上で、個別の移動体通信システム上などで実現され得る。
【００２５】
図４は、様々な実施形態により実現される方法４００のフロー図である。方法４００は、シェルアプリケーション（ブロック４０２）およびサブアプリケーション（ブロック４０４）の開始から始まる。方法４００は、サブアプリケーションの画像(image)をシェルアプリケーションに送ることにより、あるいは、ある実施形態においては、ディスプレイそれ自体に送ることにより続く（ブロック４０６）。方法４００は、そして、ユーザ入力データをサブアプリケーションの画像に提供すること（ブロック４０８）を含む。方法４００は、また、入力データを集めることと、サブアプリケーションに入力データを、直接に、あるいは、シェルアプリケーションを含む間接的な経路を介して送ることとを含む。方法４００のステップは、任意の適切な順序で実行される。
【００２６】
以上の議論は、本願発明の方法および様々な実施形態の例として意図されている。当業者には、上の開示への多くのバリエーションおよび変更が明らかであり、理解されるであろう。下記請求項は、このようなバリエーションおよび変更の全てを包含することを意図されている。
【符号の説明】
【００２７】
１００・・・コンピュータシステム，
１０２・・・シャーシ，
１０４・・・ディスプレイ，
１０６・・・キーボード，
１０８・・・マウス，
２００・・・処理ロジック，
２０２・・・記憶装置，
２０４・・・シェルアプリケーション，
２０６〜２０８・・・サブアプリケーション，
３００，３０２・・・ＧＵＩ，
３０４・・・フィールド，
４００・・・方法，
【図１】
0005384638.tif 000002
【図２】
0005384638.tif 000003
【図３Ａ】
0005384638.tif 000004
【図３Ｂ】
0005384638.tif 000005
【図４】
0005384638.tif 000006