(57)【要約】  このコンピューティング・デバイスは、ユーザ・インタフェース・コントロールとユーザ入力との両方を処理し、アプリケーションによって要求されたユーザ・インタフェース（ＵＩ）サービスを提供するアプリケーション・フレームワークを含む。組み込みリンクは、一意に識別可能なコントロールと一意に識別可能なタスク又はサービス・リクエストとの間で確立され、デバイスのデータストアに格納される。コントロールが呼び出された場合に、ストアは、コントロールを一意に参照する組み込みリンクを識別するように検査される。コントロールは、ユーザ又はオペレータに、識別された組み込みリンクに付随するタスク又はサービスに関連するオプションを追加で選択可能とするように修正される。アプリケーション・フレームワークは、ユーザ又はオペレータが、コントロールに加えられた追加のオプションを選択する場合に、識別されたタスク又はサービス・リクエストを発行する。【選択図】図１
2008516327.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・デバイスであって、
アプリケーションが共通に要求するユーザ・インタフェース・サービスを提供するアプリケーション・フレームワークを備え、
前記アプリケーション・フレームワークが、ユーザ・インタフェース・コントロールとユーザ入力との両方を処理するように動作し、
前記アプリケーションの前記ユーザ・インタフェース・コントロールが、一意に識別され、
前記アプリケーションが、いずれかの任意のアプリケーションの代わりに特定のタスク又はサービスを実行するようにリクエストされ、
前記タスク又はサービス・リクエストが、一意に識別され、
組み込みリンクが、一意に識別可能な前記ユーザ・インタフェース・コントロールと、一意に識別可能な前記タスク又はサービス・リクエストとの間で確立され、
前記組み込みリンクは、前記コンピューティング・デバイスのデータストアに格納され、
前記アプリケーション・フレームワークが、前記ユーザ・インタフェース・コントロールが呼び出された場合に、前記データストアを検査して、前記ユーザ・インタフェース・コントロールを一意に参照する前記組み込みリンクを識別し、ユーザ又はオペレータに、識別された前記組み込みリンクに付随する前記タスク又はサービスに関連するオプションを追加で選択可能とするために前記ユーザ・インタフェース・コントロールを修正するように構成され、
前記アプリケーション・フレームワークは、前記ユーザ又はオペレータが、前記ユーザ・インタフェース・コントロールに加えられた前記追加のオプションを選択する場合に、識別された前記タスク又はサービス・リクエストを発行するように構成されていることを特徴とするコンピューティング・デバイス。
【請求項２】
外部アプリケーション又はエージェントが、一意に識別可能な前記ユーザ・インタフェース・コントロールと、一意に識別可能な前記タスク又はサービス・リクエストとの間のリンクを、前記組み込みリンクを格納する前記デバイスの前記データストアに追加することを特徴とする請求項１記載のコンピューティング・デバイス。
【請求項３】
前記データストアが、権限のないアクセスに対してセキュアであることを特徴とする請求項１又は２記載のコンピューティング・デバイス。
【請求項４】
アプリケーションが共通に要求するユーザ・インタフェース・サービスを提供し、ユーザ・インタフェース・コントロールとユーザ入力との両方を処理するためのアプリケーション・フレームワークを備えるコンピューティング・デバイスの動作方法であって、前記アプリケーションの前記ユーザ・インタフェース・コントロールが、一意に識別され、前記アプリケーションが、いずれかの任意の前記アプリケーションの代わりに特定のタスク又はサービスを実行するようにリクエストされ、前記タスク又はサービス・リクエストが、一意に識別され、
一意に識別可能な前記ユーザ・インタフェース・コントロールと、一意に識別可能な前記タスク又はサービス・リクエストとの間に組み込みリンクを確立し、
前記デバイスのデータストアにおいて、前記組み込みリンクを格納し、
前記ユーザ・インタフェース・コントロールが呼び出された際に、前記アプリケーション・フレームワークを用いて前記データストアを検査して、前記ユーザ・インタフェース・コントロールを一意に参照する前記組み込みリンクを識別し、識別された前記組み込みリンクに付随する前記タスク又はサービスに関連するオプションを、前記ユーザ又はオペレータが追加で選択可能とするために前記ユーザ・インタフェース・コントロールを修正し、
前記ユーザ又はオペレータが、前記ユーザ・インタフェース・コントロールに加えられた追加の前記オプションを選択する場合に、識別された前記タスク又はサービス・リクエストを発行することを特徴とするコンピューティング・デバイス動作方法。
【請求項５】
外部アプリケーション又はエージェントが、一意に識別可能な前記ユーザ・インタフェース・コントロールと、一意に識別可能な前記タスク又はサービス・リクエストとの間のリンクを、前記組み込みリンクを格納する前記デバイスの永久的な前記データストアに追加することを特徴とする請求項４記載のコンピューティング・デバイス動作方法。
【請求項６】
永久的な前記データストアが、権限のないアクセスに対してセキュアであることを特徴とする請求項４又は５記載のコンピューティング・デバイス。
【請求項７】
請求項４乃至６のいずれか１項記載のコンピューティング・デバイスの制御方法に従って、コンピューティング・デバイスを操作するオペレーティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、製造後における、コンピューティング・デバイスのアプリケーション機能のカスタマイゼーションに関する。
【背景技術】
【０００２】
工業製品においては、特定の顧客又は市場のための特別の変更が一般的に行われている。そのようなカスタマイゼーションのコストは、一般的に、通常の製造コストに追加して発生する。つまり、そのようなカスタマイゼーションが発生する場合には、製品価格を引き上げるか、又は、利益幅を引き下げるかしなくてはならないことを意味する。カスタマイゼーションが理にかなうか否かは、費用を負担する当事者毎で生じる変更の有益性によっている。言い替えると、カスタマイズの実施が成功するための鍵とは、変更のコストを最小化する一方で、製造プロセスへの変更の有益性を最大化することである。
【０００３】
価格志向型の市場においては、必要な経済的トレードオフが、特に重要である。価格志向型の市場において、価格連鎖に関係する全ての販売業者は、他の競争相手と差別化しようとする。製品の修正とは、価値を付加する明確な方法であって、また、より特定の使用パターンに沿うような何かを付加することによって、提供するものを差別化する明確な方法である。しかしながら、同時に、そのことによって、利益幅を削るようなことになったり、競争相手に価格優位性を与えることになってはならない。
【０００４】
そのような経済的な力が作用する明確な例のいくつかを、家電用電化製品の分野に見出すことができる。本発明が適用される分野の一つの例として、ここでは、高度な携帯電話の製造及び販売について示している。しかしながら、本発明は、本発明の用途を携帯電話の分野のみに限定するものではなく、対話型コンピューティング・デバイスの全ての範囲に渡って一般的に適用することができる。
【０００５】
対話型コンピューティング・デバイスという語は、情報を表示する画面、又は、他の方法と、情報を選択する場合等の入力の際に用いられるキーボード、キーパッド、ボタンアレイ、タッチ画面、又は、他の方法との両方を有するデバイスを含んで解釈されるべきである。今日において、それは、デスクトップコンピュータ、ラップトップコンピュータ、ＰＤＡ、携帯電話、スマートフォン、ディジタルカメラ、ディジタル・ミュージック・プレーヤのようなパーソナルデバイスを含んでいる。また、他の多くの工業製品や家電製品も同様に含まれ、それらには、ＡＴＭから家庭用電気器具（例えば、洗濯機やテレビ）、自動車（あらゆる型を含む）、鉄道、ボートや飛行機といった輸送機構までが含まれている。
【０００６】
対話型コンピューティング・デバイスは、通常、プログラム可能なソフトウエア・コントロールを含んでいる。コントロールは、ユーザによって操作される際に、即座に動作を起こしたり、又は、視覚的な結果を生成するオブジェクトとして定義される場合がある。共通のコントロールには、ポップアップ、プルダウン、又は、タブメニュー、ラジオボタン、プッシュボタン、ホットスポット、ハイパーリンク、チェックボックス、ダイアログ、スクロールバー、スライダが含まれ、一方、共通の操作方法には、タッチスクリーンや、ジョイスティック、マウスのようなキー、ボタン、ポインティングデバイスが含まれている。
【０００７】
主として、携帯電話は、ネットワークオペレータによって提供され、ネットワークオペレータのビジネスモデルは、購買者にサービスを提供することに依存している。近年、各オペレータのサービスを識別する一助とするために、ネットワークオペレータが購買者に携帯電話製品のカスタマイズされたバージョンを許容することは一般的となっている。
【０００８】
しかしながら、許容範囲内に製品のカスタマイゼーションのコストを維持するために、通常、ネットワークオペレータは、製品の表面的な変更のみを請け負う。それらは、主として、オペレータのブランドを強化するための電話の外部プラスチックの外観色や、ロゴの適用といった表面的な変更を含んでいる。
【０００９】
電話を制御するソフトウエアに関する限り、既存のアプリケーションをプリコンフィグレーションするか、又は、特別に記述されたソフトウエアをプリロードすることのみが、一般的な変更として行われている。変更のリクエストは、遅い時期になされる製品仕様の変更と言え、また、そのような変更のリクエストは、発売前と出荷後の両方において、製品欠陥の主な原因となってしまうことが、技術的に広く知られている。
【００１０】
従って、ソフトウエア開発の経済的側面として、携帯電話や他のインタラクティブな家庭用電化製品に搭載されているアプリケーションをより深く根本的にカスタマイズすることは、極めて高価であるという傾向がある。製造業者やディストリビュータは、複雑なソフトウエアは構造的に脆く、必要とされる反復的なビルド・アンド・テストサイクルは、時間と労力の点から見て、高価であることを知っている。
【００１１】
今までは、複雑なソフトウエア製品を表面的に修正することが経済的に実用的であるという事実が、カスタマイズ性の潜在的な有用性を限定してしまっていた。携帯電話の分野においては、例えば、変更が、アドオン型のアプリケーションの方法によって上書きされる代わりに、既存のアプリケーションに組み込まれるのであれば、ユーザとネットワークのオペレータの両方にとって極めて有用であろうことは明白である。
【００１２】
カスタマイズ性を示す幾つかの例を示す。
・あるオペレータ特有のサービス番号を呼び出すメニュー項目を加えるように、電話アプリケーション機能を修正する。
・オペレータ特有のウェブサイトに接続し、マテリアルをダウンロードするためのメニュー項目を加えるように、ブラウザアプリケーション機能を修正する。
・電子メールを顧客関連のアドレスに送信するためのオプションを加えるようにメッセージアプリケーションを修正する。
【００１３】
更には、そのように組み込まれたアプリケーションの変更が、製造後のできるだけ遅い時期になされるだけでなく、例えば、エンドユーザの所有となるような販売後に、デバイスに実施されるのであれば、極めて有用であろう。全ての電話機にビルトインされた無線接続を用いた無線通信（ＯＴＡ）によるカスタマイズは、実現され得る理想的な構成となるであろう。
【００１４】
また、アプリケーションを修正する既知の方法は、単独に、不足点に適用されることのみできる。
【００１５】
既存のアプリケーションの内部に修正を組み込む（及び、修正を変更する）ことは、それらのアプリケーションが親子パラダイムを用いる実行可能なプログラムを生成することによって、可能となる。それは、大部分のオペレーティングシステム（携帯電話を動作させるオペレーティングシステムを含む）のよく知られた特徴である。アプリケーションが実行シーケンスにおける特定のポイントで、そのような生成可能なプログラム（プラグインとして一般に知られている）を検索することについて、そのような方法で記述されているのであれば、プラグインの変更は、アプリケーション、又は、オペレーティングシステムのローレベルのアーキテクチャに対しての修正を要しないことは明らかである。
【００１６】
更に、無線送信によって、そのようなプラグインを適切に変更する技術は、かねてから存在している。また、その様々な形式が、主として、ユーザが着信音とゲームをダウンロードしたり、ネットワークオペレータが設定データと時折発生する注文機能を新たな購買者に送付したりすることに利用されている。
【００１７】
しかしながら、それらの良く知られた方法は、拡張性がないという理由で不完全である。記載された技術は、ネットワークオペレータ（又は、組み込まれたアプリケーションをカスタマイズしようとする他のエージェント）が、カスタマイズされた機能が付加されるであろう数と、その可能性のある場所について、前もって知っていることを要求している。また、デバイスが製造された時点において、製造業者が適切なフックをアプリケーションに置くことを要求している。もし、製造時にフックが与えられていないのであれば、アプリケーションによって実行されるダウンロードされたプラグイン、若しくは、付加的な機能が供給された箇所を示すようにメニュー及びダイアログをカスタマイズすることを実現できる可能性がない。
【００１８】
結果的に、異なる当事者がフックが必要とされている場所について異なった見解を有しているので、製造業者は、それらの全ての要求をサポートするか、若しくは、どれが最も重要であるかを前もって決定しなくてはならない。このことは、可能なカスタマイズの有用性を大きく制限してしまう。複数のフックを付加することによって、全ての可能なカスタマイズをサポートすることは、構造的に複雑で極めて高価なものとなってしまう。
【００１９】
更に、既知のカスタマイゼーション技術を用いて、製造後の段階でデバイスに予期されないカスタマイズ性を付加することは可能でない。
【００２０】
また、特定のありあわせの項目が、変更され得る一方で、それらの数又は位置が、直ちに付加されたり、若しくは、動かされたりすることはできない。
【発明の開示】
【発明が解決しようとする課題】
【００２１】
そこで、上記の点に鑑み、本発明は、コンピューティング・デバイス上のアプリケーションをカスタマイズする改良された方法を提供することを、本発明の目的とする。
【課題を解決するための手段】
【００２２】
上記課題を解決するため、本発明の第１の観点に係るコンピューティング・デバイスは、
ａ．アプリケーションが共通に要求するユーザ・インタフェース（ＵＩ）・サービスを提供することができるアプリケーション・フレームワークを備え、
ｂ．アプリケーション・フレームワークが、ＵＩコントロールとユーザ入力との両方を処理するように動作し、
ｃ．アプリケーションのＵＩコントロールが、一意に識別され、
ｄ．アプリケーションが、いずれかの任意のアプリケーションの代わりに、特定のタスク又はサービスを実行するようにリクエストされ、
ｅ．タスク又はサービス・リクエストが、一意に識別され、
ｆ．組み込みリンクが、一意に識別可能なＵＩコントロールと、一意に識別可能なタスク又はサービス・リクエストとの間で確立され、
ｇ．組み込みリンクは、コンピューティング・デバイスのデータストアに格納され、
ｈ．アプリケーション・フレームワークが、コントロールが呼び出された場合に、ストアを検査して、コントロールを一意に参照する組み込みリンクを識別し、ユーザ又はオペレータに、識別された組み込みリンクに付随するタスク又はサービスに関連するオプションを追加で選択可能とするために、コントロールを修正するように構成され、
ｉ．アプリケーション・フレームワークは、ユーザ又はオペレータがコントロールに加えられた追加のオプションを選択する場合に、識別されたタスク又はサービス・リクエストを発行するように構成されている。      
本発明の第２の観点に係るコンピューティング・デバイス動作方法は、アプリケーションが共通に要求するユーザ・インタフェース・サービスを提供し、ＵＩコントロールとユーザ入力の両方を処理するためのアプリケーション・フレームワークを備えるコンピューティング・デバイスの動作方法であって、アプリケーションのＵＩコントロールが、一意に識別され、アプリケーションが、いずれかの任意のアプリケーションの代わりに特定のタスク又はサービスを実行するようにリクエストされ、タスク又はサービス・リクエストが、一意に識別され、
ａ．一意に識別可能なコントロールと、一意に識別可能なタスク又はサービス・リクエストとの間で組み込みリンクを確立し、
ｂ．デバイスのデータストアにおいて、組み込みリンクを格納し、
ｃ．コントロールが呼び出された際に、ストアを検査して、コントロールを一意に参照する組み込みリンクを識別し、識別された組み込みリンクに付随するタスク又はサービスに関連するオプションを、ユーザ又はオペレータが追加で選択可能とするためにコントロールを修正し、
ｄ．ユーザ又はオペレータがコントロールに加えられた追加のオプションを選択する場合に、識別されたタスク又はサービス・リクエストを発行することを特徴とする。
【００２３】
本発明の第３の観点によると、第１の観点に係るコンピューティング・デバイスを、第２の観点に係る方法に従って、動作させるオペレーティングシステムを提供する。
【発明を実施するための最良の形態】
【００２４】
本発明は、全ての対話型アプリケーションに共通のユーザ・インタフェース（ＵＩ）を処理するプログラミングフレームワークを提供するオペレーティングシステムレイヤを含むコンピューティング・デバイスに適用することができる。そのようなフレームワークに含まれるアプリケーション・プログラミング・インタフェース（ＡＰＩ）は、とりわけ、以下のタスクの全て又は幾つかを可能とする。
【００２５】
・ユーザ・インタフェース・コントロールの生成
・ユーザ・インタフェース・イベントを処理するアプリケーション用のフレームワーク
・コントロール生成用の環境ユーティリティ
・ウィンドウ機能へのアクセス
・異なったユーザ入力形式の処理
そのようなアプリケーション・フレームワーク（ＡＦ）は、通常、グラフィカル・ユーザ・インタフェースを提供する現行の全てのオペレーティングシステムにおいて提供されている。アプリケーション・フレームワークは、全てのアプリケーションがそのようなタスク自身を処理する別のコードを含む必要を回避することができ、また、全てのアプリケーションが共通のルック＆フィール（look and feel）を有するユーザ・インタフェースを協調的に共有することを可能とする。
【００２６】
本発明において、カスタマイズ可能なエレメントは、既存のアプリケーションに直接的に組み込まれていないが、完全に外部からアプリケーションに対して定義されている。そのようなカスタマイズ可能なエレメントは、外部定義コマンド（ＥＤＣ）として本発明の文脈において参照されている。また、呼び出された場所において、ＡＦによって、アプリケーションに自動的に追加される。ＥＤＣは、実行可能な新たなインスタンスを生成し、それに必要なインストラクションを渡すか、又は、実行可能なインスタンスが既に動作している場合にはリクエストを渡すようなプロセス間通信を用いるかの内、いずれかを行うことができる。いずれの場合においても、アプリケーションコントロールとＥＤＣとの間のつながりは、組み込みリンク（ＥＬ）として知られている。
【００２７】
本発明によって、それぞれのアプリケーションコントロールは、一意に識別され、また、それぞれのＥＬもまた、一意に識別される。そのことにより、組み込みリンクをコントロールにマッピングするようなデータベースを構成することが可能となる。的確な構成によって、一つの実施形態から他の実施形態に変更することができるが、その一例として、データベースにタプルを記述しても良い。
【００２８】
データベースが構成されると、ＡＦは、コントロール（例えば、メニュー）を生成するように呼び出される度毎にデータベースを調べる。適切なコントロール用にＥＬが見出された場合に、オペレーティングシステムの作成者又は前もって特定のフックを提供する必要のあるアプリケーションを必要とすること無しに、その時点において、アプリケーションコントロールをカスタマイズする機会が得られる。ＡＦは、単に、コントロールに対応する組み込みリンクが存在するか否かをチェックすることを必要としているだけである。
【００２９】
コントロールをカスタマイズすることによって、可能となる構成が多数存在する。組み込みリンクの記述者が、コントロールのどのような種類がカスタマイズされる必要があるかを知る必要があるので、タスクは単純化される。最も単純化された構成は、カスタマイズを含む３番目のエレメントと共に、組み込みリンクがタプルからトリプルに拡張された構成である。そのような実施形態において、メニューコントロールに関するトリプルは、メニューに追加されることができる幾つかのテキストを含んでいる。
【００３０】
ＥＬが表示されたコントロールにオプションとして現れると、ＡＦが入力を受付けるために用いられる場合に、的確なＥＤＣが呼び出される。
【００３１】
本構成の拡張性は、コントロールをＥＬにマッピングするデータベースに、読出しと同様に書き込みができるという事実によっている。理想的には、本実施形態は、セキュアなオペレーティングシステム（ＯＳ）上において構成されるべきである。そのような構成において、データベースに書込む能力は、適切な許可を有するシステムアプリケーションに限定される。英国特許出願（GB Patent Application）第0312191.0号(ケーパビリティ) 及び 同第0312190.2号(データケージング)において記載されているように、英国・ロンドンのSymbian Software社によって提供されるプラットフォーム・セキュリティ・アーキテクチャが、そのようなＯＳの一例として挙げられる。
【００３２】
本発明を用いることによって、アプリケーションの記述者が、前もって、カスタマイゼーションが発生するであろうことを知る必要はない。唯一の制限事項として、ＥＬを定義する当事者は、アプリケーションと、ＥＤＣが添付されるべき的確なコントロールとの両方を、ＥＬが定義される前に確実に知っておく必要がある。
【００３３】
以下の例は、本発明の背景となる原理を説明するために提供されているSymbian Software社の高度なオペレーティングシステムである、スウェーデン・ロネビーのUIQ Technologies社のSymbian OS（登録商標）によって記述されたカスタマイズ可能なUIQユーザ・インタフェース用に開発された望ましい実施形態を示している。また、以下の例は、その適用性が特定のオペレーティングシステムとユーザ・インタフェースに限定されるという示唆として解釈されるべきではない。
【００３４】
Symbian OSとUIQに幾らか精通していることが、その特定の構成を完全に理解することに必要である一方で、開示される本発明の背景となる原理は、アプリケーション・フレームワークとプラグイン・アプリケーションを呼び出す構成を有するいかなるＯＳにも適用されるであろう。
【００３５】
本特定の構成における顕著な特徴の幾つかを以下に示す。
【００３６】
・Symbian OSは、各継続的なＯＳのリリースにおいて向上されてきたＡＦ（コントロール環境の省略形であるＣＯＮＥ（Control Environment）として知られている場合もある）を含んでいる。それは、ユーザ・インタフェース・コントロールの生成用のフレームワークと、ユーザ・インタフェース・イベントを処理するアプリケーション用のフレームワークと、コントロール生成用の環境ユーティティと、ウィンドウ機能へのアクセスを提供する。
【００３７】
・Symbian OSは、また、セントラル・リポジトリを含むことができ、その場合に、ＥＬを一意のコントロールにマッピングするデータベースとして振舞う。
【００３８】
・UIQ・ユーザ・インタフェースの内部において、ＥＤＣは、ダイレクト・ナビゲーション・リンク（ＤＮＬ）として知られる構成によって実施される。ＤＮＬは、１つのアプリケーションから他のアプリケーションに直接ナビゲーションされるように用いられ、通常、デバイスのユーザに、できる限り容易にタスクを実行させることができる。主として、ＤＮＬは、特定のコンテキストにおいて機能し、１つのアプリケーションからデータを取得し、それを他のアプリケーションに渡し、その結果、データが直接用いられるようになる。例えば、ＤＮＬによって、連絡帳のアプリケーションにおいて、ユーザが電話番号をタップすることによって直接、電話接続を開始したり、電子メールアドレスをタップすることによって、電子メールを生成したりすることができる。
【００３９】
・UIQは、また、コマンド・プロセシング・フレームワーク（ＣＰＦ）を含んでいて、ＣＰＦは、英国特許出願第（UK Patent Application Number）0414842.5号において記載されている。本実施形態において、組み込みリンクは、セントラル・リポジトリから情報を読出し、また、ＣＰＦにおける適切なコマンドリストに追加される。
【００４０】
0  本構成は、ＥＬを定義するために用いられるだけでなく、アプリケーションに追加されるある種のシステムコマンド（例えば、電話のハングアップコール）を定義するためにも用いられる。その場合において、アプリケーションは、既知とされている必要はなく、その上、本構成をある種のアプリケーション間で連携できるように拡張することも可能である。アプリケーション間の連携は、アプリケーションがその追加を知っていないという原理にわずかに反しているが、リンクがコンテキスト情報でカスタマイズされるようにする。例えば、ユーザが「Ａｇｅｎｄａ」において、ＥＤＣをアクティブにすると、正確な日の気象情報を表示することが可能となるであろう。
【００４１】
また、ＧＰＳアプリケーションにおいて用いられる場合に、現在の位置についてのより詳細な情報を提供するようなシナリオが他の例として実現されても良い。
【００４２】
本発明は、それゆえ、リクエストを他に（おそらくは、基礎となるＯＳに依存して、第２のアプリケーションを別に生成する）渡すアプリケーション能力と組み合わされ、全ての高度なデバイスが、共通のＵＩコントロールと入力を処理するアプリケーション・フレームワークに依存しているという事実を利用することによって、コンピューティング・デバイス上のアプリケーションをカスタマイズする方法を提供する。アプリケーション・フレームワークが、特定のコントロールを一意に識別することができ、アプリケーションのリクエストを一意に識別することができる場合に、データベースは、特定のリクエストにリンクされた特定のコントロールで構成されることができる。組み込みリンクのデータベースは、コントロールが呼び出された場合に、アプリケーション・フレームワークによって参照される。また、当のコントロールを一意に参照する関連組み込みリンクが存在する場合に、アプリケーション・フレームワークは、リンクされたリクエスト用のオプションを加えるようにコントロールを修正することができる。すると、デバイスのいかなる部分をもカスタマイズすることが、単にデータベースへの書込みの問題となる。
【００４３】
図１は、カスタマイズ可能なエレメントを有するアプリケーション・フレームワークのコンポーネント構成を示しており、また、図２は、代表的なＥＬコマンドの詳細を示している。
【００４４】
以下のクラスは、組み込みリンクと外部定義コマンドを実施するために用いられることができる。これらのクラスは、当業者であれば、容易に理解されることができるであろう。
［CQikElManager］
CQikElManagerは、全てのＥＬキャリアの経過を追い、セントラル・リポジトリから情報を読出し、それらをＣＰＦにおける適切なコマンドリストに加える。
【００４５】
Create()が呼び出されると、CCoeControlのオブジェクト・プロバイダ・インタフェースがコールされ、MEIInterfaceクラスへのポインタを得る。このクラスは、ＥＬを含むことができる全てのＵＩ項目によって実施される。EIId()は、ＵＩ項目のＥＬＩＤを得るためにコールされる。そのＩＤは、CenRepからのＥＬ情報の場所を示すコマンドハンドラによって用いられることができる。ＥＬのタイプは、ＥＬ情報から読み出され、適切なCQikElCommandの特殊化が生成され、ＵＩ項目のコマンドリストに加えられる。
【００４６】
［CEICarrier］
CEICarrierは、ＥＬを含む各ＵＩ項目についての情報を保持している。その情報は、ＵＩ項目に関連付けられたＥＬのコマンドＩＤのリストと、TEIIdとで構成されている。
【００４７】
［CQikElCommand］
CQikElCommandは、全てのＥＬコマンドタイプ用の基礎クラスとなる。それは、ＥＬタイプについての情報を保持している。そのMQikCommandHandlerへのポインタは、コマンド自身を指し示すように設定されている。
【００４８】
［CQikUrlEl］
CQikUrlElは、ＵＲＬ  ＥＬを実施する。HandleCommandL()がコールされると、ＤＮＬが、内部のブラウザアプリケーション（QWebExternalInterface.h）に対して実行される。ＤＮＬは、ブラウザによってオープンされるべきＵＲＬを含んでいる。
【００４９】
［CQikSmsEl］
CQikSmsElは、ＳＭＳ  ＥＬを実施する。HandleCommandL()がコールされると、ＤＮＬが、メッセージングアプリケーションに対して実行される。ＤＮＬは、受信者番号と、ＳＭＳメッセージ本体とを交互に構成するCSendAsオブジェクトを含んでいる。
【００５０】
［CQikMmsEl］
CQikMmsElは、ＭＭＳ  ＥＬを実施する。HandleCommandL()がコールされると、ＤＮＬが、メッセージングアプリケーションに対して実行される。ＤＮＬは、受信者番号と、ＭＭＳメッセージ本体とを交互に構成するCSendAsオブジェクトを含んでいる。
【００５１】
［CQikEmailEl］
CQikEmailElは、Ｅｍａｉｌ  ＥＬを実施する。HandleCommandL()がコールされると、ＤＮＬが、電子メールアプリケーションに対して実行される。ＤＮＬは、受信者電子メールアドレスと電子メールメッセージ本体とを交互に構成するCSendAsオブジェクトを含んでいる。
【００５２】
［CQikCallEL］
CQikCallELは、コールＥＬを実施する。HandleCommandL()がコールされると、ＤＮＬが、テレフォニーアプリケーションに対して実行される。ＤＮＬは、コールされるべき電話番号を含んでいる。
【００５３】
［CCenRepApi］
CCenRepApiは、セントラル・リポジトリのインタフェースをカプセル化する。そのクラスの詳細は、CenRepのＡＰＩが決定されるまでＴＢＤである。また、これは、MCenRepObserverに値する。
【００５４】
［MEIInterface］
MEIInterfaceは、ＥＬキャリアへのインタフェースを要求された場合に、CCoeControlのオブジェクト・プロバイダ・インタフェースが復帰するクラスである。このクラスは、ＥＬを含むことができる全てのＵＩ項目によって実施される必要がある。
【００５５】
［TEIID］
TEIIDは、２つの識別子（ＵＩＤ）、即ち、１つのアプリケーションＵＩＤと１つのＥＬ  ＵＩＤを用いるＥＬを含むことができるＵＩ項目を、一意に識別することができる。アプリケーションに属さない項目を処理するために、システムＵＩＤは、アプリケーションＵＩＤデータベースにおいて登録されている。ＥＬ  ＵＩＤは、アプリケーションＵＩＤの範囲内において一意である必要がある。
【００５６】
UIQとSymbianOSにおける以下のクラスが、本発明を実施するように修正されても良い。
【００５７】
［CQikCommandManager::TManagerData］
新たなメンバが追加される。CQikEIManagerポインタである。
【００５８】
［CQikCommandManager］
CQikElManagerオブジェクトの生成と、TManagerDataにおけるCQikElManagerポインタの割り当てが、ConstructL()において追加される。CQikEIManager.CreateEIL()へのコールが、CreateCommandList()において追加される。CQikEIManager.RemoveEI()へのコールが、ResetAndDestroyResourcesFor()において追加される。
【００５９】
［CEikDialog］
MEIInterfaceクラスとMObjectProviderのサポートを実施する。
【００６０】
［CQikViewBase］
MEIInterfaceクラスとMObjectProviderのサポートを実施する。
【００６１】
ＵＩ項目を識別するために、ＥＬを３つの異なるＵＩ項目、即ち、ビュー、ダイアログ、ポップアウトに割り当てることが可能である。追加のＵＩ項目が、最終的に追加されても良いであろう。ＥＬを含むことができる各ＵＩ項目は、一意に識別可能である必要がある。それらは、TEIId識別を用いて識別される。TEIIdのプレフィックス部分は、アプリケーションＵＩＤである。TEIIdのサフィックス部分は、ＥＬ  ＵＩＤである。ＥＬ  ＵＩＤは、アプリケーションＵＩＤの範囲内において一意である必要がある。このようなことを実現する異なった方法は、多く存在する。
【００６２】
１つの選択としては、ビュー用のビューＩＤを用いることである。この方法においては、ダイアログとポップアウトがビューＩＤを有していないことが懸念される。従って、この選択が用いられる場合には、ビューＩＤは、ビューと共にダイアログとポップアウトに割り当てられる必要がある。しかしながら、これは、それらを入り組ませることで複雑な構成となってしまうという欠点が追加されてしまう。
【００６３】
もう１つの選択としては、リソースＩＤを用いることである。その利点は、多くのＵＩ項目がリソースファイルから生成されて、その結果、リソースＩＤを有することである。しかしながら、ビューは、一般的にリソースファイルから生成されないという１つの欠点がある。ポップアウトもまた、リソースＩＤを有していない。更に、リソースＩＤが、長期に渡って、また、ビルド間で一貫している必要があることも欠点として上げられる。このことは、バイナリ互換性の課題が、リソースファイルを変更する際に考慮されることを要している。また、リソースＩＤの一貫性は、リソースファイルからリソース名を消去しないことにかかっている。
【００６４】
３番目の選択としては、CCoeControlにおいて、一意のＩＤを用いることである。この選択の利点としては、ＥＬを含むことができる全てのＵＩ項目が、CCoeControlのディセンダントであり、その結果、一意のＩＤを有することである。しかしながら、全てが、一意のＩＤを設定されるわけではないということを欠点として有する。このことは、多くのＵＩ項目が、ＥＬを含むことができるように更新される必要があるということを意味している。コマンドリストが生成された場合の、一意のＩＤの変更のためのサポートはない。そのような機能は、わずかな努力が要されることによって追加されることができる。従って、この３番目の選択は、一意のＩＤを確立するために用いられる好ましい選択である。図３は、どのようにＥＬが生成されるかということを示している。
【００６５】
図４は、どのようにセントラル・リポジトリ（CenRep）が更新されるかということを示しており、図５は、どのようにＵＩ項目が破棄されるかということを示している。
【００６６】
本発明は、特定の実施形態に関して記述されているが、特許請求の範囲によって定義されている本発明の範囲内において、適宜変更されても良い。
【図面の簡単な説明】
【００６７】
【図１】本発明に係るカスタマイズされたエレメントを有するアプリケーション・フレームワークのコンポーネント構成を示す図である。
【図２】図１に示すフレームワークに用いられる、代表的な組み込みリンク（ＥＬ）のコマンドの詳細を示す図である。
【図３】組み込みリンク（ＥＬ）が生成される方法を示す図である。
【図４】コンピューティング・デバイスのオペレーティングシステムのセントラル・リポジトリが更新される方法を示す図である。
【図５】ＵＩ項目の破棄を示す図である。
【図１】
2008516327.tif 000003
【図２】
2008516327.tif 000004
【図３】
2008516327.tif 000005
【図４】
2008516327.tif 000006
【図５】
2008516327.tif 000007
【国際調査報告】
2008516327.tif 000008
2008516327.tif 000009