説明

マークアップ言語ベースのマンマシンインタフェースを備えた無線通信装置

【課題】 機能またはデータへの無許可のアクセスを防止するために、セキュリティに関する機構を備えた無線通信装置を提供することを目的とする。
【解決手段】 表示画面と、メモリと、プロセッサとを備える無線通信装置であって、メモリは、無線通信装置の設定情報と、設定情報を取得して無線通信装置の設定を行なうためのユーザインタフェースを定義する、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルと、複数のユーザインタフェース定義ファイルをデコードして表示画面上に表示するための、プロセッサによって実行されるマークアップ言語ブラウザと、を記憶しており、設定情報の一部は、所定のセキュリティレベルを有するユーザインタフェース定義ファイルを介してのみ取得されることを特徴とする無線通信装置が提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、無線通信装置用のマンマシンインタフェースに関し、特に、マークアップ言語から構築されたマンマシンインタフェースに関する。
【背景技術】
【0002】
無線通信装置は、個人通信の必要性によりますます一般的になっている。これら装置としては、例えば、セル式電話、英数字ページャ、「パームトップ」コンピュータ、およびパーソナルインフォメーションマネージャ(PIM)、および他の小型の主にハンドヘルド式の通信装置およびコンピューティング装置が含まれる。無線通信装置は、その特徴において相当に成熟しており、現在では、電話の呼び出しのような基本的な固定通信機能だけでなく、電子メール、ファクシミリの送受信、インターネットアクセス、およびワールドワイドウェブの閲覧等、より進んだ通信機能もサポートする。
【0003】
一般に、無線通信装置は、各種のハンドセット機能および基地局への通信接続を管理するソフトウェアを有する。すべての電話通信機能を管理するソフトウェアは、通常、電話スタックと呼ばれ、画面表示を管理するとともに、キー押下によるユーザ入力を処理するソフトウェアはマンマシンインタフェース、または「MMI」と呼ばれる。MMIは、無線通信装置のソフトウェアの最上であり、かつ最も目に見えるレイヤである。
【0004】
無線通信装置は概して非常に望ましくかつ小さなフォームファクタに達しているため、成功する装置の主な決定要素は、その機能セットおよび使いやすさにあると思われる。したがって、使いやすく、かつ機能の豊富なセットを有する無線通信装置を迅速に設計し、テストして、配送する能力(互いに相反することが多い属性)が、成功する製品の性能に対して極めて重要である。
【0005】
しかし、無線通信装置は、ノートブックおよびデスクトップのコンピュータ等、同様な通信特徴を有しうる、より大型のプロセッサベースのシステムでは生じない種々のより挑戦的な設計および実施問題を提示する。これら設計における挑戦としては、ユーザインタフェースの設計、特定サービスの運営者のための装置のカスタマイズ、インターネットおよびワールドワイドウェブアクセスと他の通信機能性との統合、およびソフトウェア開発プロセスが含まれる。
【0006】
ユーザインタフェース設計制約
デスクトップおよびノートブックのコンピュータとは異なり、無線通信装置は、非常に小さな画面表示サイズを必要とするフォームファクタを有する。通常、デスクトップコンピュータは、少なくとも14インチの画面サイズであり、典型的に640×480から1024×768ピクセル間の解像度を有するディスプレイを備える。それに対して、無線通信装置は通常、25×25mmから80×120mmの間の画面サイズ、すなわちデスクトップまたはノートブックの画面サイズの約3〜8%の画面サイズ、および90×60から120×120ピクセルの間の解像度を有する。直接の結果として、無線通信装置のユーザインタフェース設計は、テキスト、イメージ、アイコン等の表示にほんのわずかな表示エリアを使用しながら、電子メール、ファクシミリ、およびウェブ閲覧等、デスクトップコンピュータと本質的に同じ特徴に対するアクセスを提供しなければならない。フォーム等、従来のウェブコンテンツは、従来のデスクトップコンピュータのより大きな画面サイズを想定しているため、これらの特徴を提供するようユーザインタフェースを構築するというこの問題は、ウェブベースのコンテンツを取り扱う場合に特に顕著である。このようなフォームを無線通信装置の小さな画面上に表示すると、結果としてごちゃ混ぜになり、コンテンツの使用が困難になる。
【0007】
無線通信装置の別のユーザインタフェース制約は、ユーザが使用可能な入力セットが厳しく制限されていることである。従来のデスクトップまたはノートブックコンピュータは、コンピュータマウス、トラックボール、ジョイスティック等のカーソルベースのポインティングデバイスと、完全なキーボードとを備えている。これにより、スクロールバーのクリックおよびドラッグ、ハイパーテキストリンクのクリック、およびHTMLフォーム等、フォームのフィールド間のキーボードによるタブ送りでのウェブコンテンツのナビゲートが可能になる。無線通信装置は、通常アップおよびダウンキー、および1から3のソフトキーという、非常に限られた数の入力を有する。
【0008】
したがって、無線通信装置の限られた画面解像度および入力機能性を考慮した、ウェブコンテンツとのユーザインタフェースのカスタマイズおよび使用を可能にする、無線通信装置のMMI用のソフトウェアアーキテクチャを提供することが望ましい。
【0009】
インターネット/ウェブ機能と電話通信との統合
インターネットおよびワールドワイドウェブの出現に伴って、最高性能の無線通信装置は、完全なインターネットアクセスと、ワールドワイドウェブを直接閲覧する能力を提供する。現在の装置は、厳密なモード式インタフェースを通して、インターネットおよびワールドワイドウェブのアクセスを提供する。厳密なモード式インタフェースでは、ユーザが電話をかける、格納した電話帳にアクセスする、ファクシミリを送信する等のために、無線通信装置を使用して本来の通信モードまたは閲覧モードを選択しなければならない。「閲覧モード」において、ユーザは電話をかけるために電話番号をダイアルすることができない。同様に、電話通信モードにおいて、ユーザはウェブサイトにアクセスできない。このため、ユーザは、閲覧中に取得したウェブコンテンツのアイテムをユーザの電話帳または電子メールメッセージ中に組み込むなど、ウェブコンテンツをダウンロードして、それを電話機能のコンテキストで取り扱うことが可能である継ぎ目のない様式で無線通信装置を動作することができない。
【0010】
したがって、インターネットおよびワールドワイドウェブアクセス特徴が、電話通信および無線通信装置の他の制御と継ぎ目なく統合されて、ユーザがいつでも無線通信装置のいかなる特徴にもアクセスすることができるMMIを提供することが望ましい。
【0011】
MMIのソフトウェア工学
通常、MMIは、電話制御機能を管理するより大きなコードにおけるモジュールとして実施される。MMIは、残りの電話制御ソフトウェアと同じコンピュータ言語でコード化される。これは、電話制御ソフトウェア全体の作成に用いられたのと同じプログラミングスキルおよびツールを使用せずに、MMIを変更することを困難にしている。換言すれば、MMIにおけるいずれの変更も、基礎をなす電話通信プログラミングの詳細およびコンピュータ言語に精通した熟練のプログラマのサービスを必要とする。さらに、MMIは電話制御ソフトウェアについてのコードの一体化部分であるため、MMIでの新しい変更を実施するということは、電話制御ソフトウェアすべての新しいイメージをコンパイルし、新しいMMI特徴が他のすべてのコードモジュールと互換性があることを保証するために、その結果をテストすることを意味する。簡潔にいえば、MMIソフトウェアの変更によって導入される問題は、潜在的には、ハンドセットを誤作動させたり、他のユーザに対するネットワーク上のサービスを混乱させたりする可能性がある。変更の程度に応じて、電話制御ソフトウェアの任意の部分を変更した結果、バグが生じたり、および/または無線通信装置全体を新しいタイプへの承認が必要となる可能性がある。したがって、MMI機能性の設計および実施を電話制御ソフトウェアの実施から切り離し、それによって製造業者が、特定の顧客のニーズに合うように、MMI設計を迅速かつ安全にカスタマイズすることが可能なソフトウェアアーキテクチャを提供することが望ましい。
【0012】
サービス運営者についてのMMIのカスタマイズ:「ブランド化」
無線通信装置産業において、セルラサービスプロバイダ等のサービス運営者は、精力的に各自の無線通信装置製品をブランド化するとともに、ユーザに対して新しい電話通信特徴およびネットワークサービスを提供することで、顧客を引きつけ、かつ保持することに関心を抱いている。これらの中で重要なことは、上述したように、ボイスメール、電子メッセージング、インターネットアクセス等、ユーザに対する付加価値サービスである。「ブランド化」とは、記章、ロゴ、または他のしるしを無線通信装置のMMIの中に埋め込むこと、およびそれを顧客に対して該サービス運営者から発せられたものであることを識別するその特徴のことである。
【0013】
したがって、通常、基本的なハードウェアコンポーネントのみを提供する無線通信装置の製造業者は、サービス運営者に、ソフトウェアプログラミングによりこれらの特徴およびサービスを無線通信装置と統合するための方法を提供するとともに、特徴をブランド化するための機構を提供しなければならない。鍵となる問題は、これらのサービスは、それぞれの機能性および要件が異なっている必要があることであり、ユーザに対してサービスおよび特徴の現行のアレイを提供するというタスクは、困難なものである。
【0014】
無線通信装置の製造業者は、従来、無線通信装置を販売しているサービス運営者毎に、各自の通信サービスに関連して無線通信装置制御ソフトウェアの特別バージョンを作製することで、この問題に対処してきた。無線通信装置の特別バージョンはそれぞれ、装置の製造業者のブランド化、運営者のブランド化、およびサービス運営者がサポートする特徴およびサービスが何であれ、それに対するサポートを含む。これらの各バージョンは、新しい特徴またはサービスが消費者に提供される際に、テストし、メンテナンスし、かつ変更すべきである異なるソフトウェアとなる。これは、ソフトウェア開発費用およびメンテナンス問題をかなり増大させる。さらに、無線通信装置の製造業者がサービス運営者にMMIおよび電話制御ソフトウェアのソースコードを提供しない限り、無線通信装置の製造業者が、サービス運営者のブランド化およびMMI設計要件に直接関与する必要がある。したがって、無線通信装置の製造業者が各サービス運営者に対して単一体の電話制御ソフトウェアを提供することを可能にするとともに、各サービス運営者が独立してかつ無線通信装置の製造業者の助力なしで、無線通信装置についてのMMIを設計、実施、かつブランド化することを可能にする、MMIについてのソフトウェアアーキテクチャを提供することが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【0015】
本発明は、無線通信装置にマークアップ言語をベースとしたMMIを設けることで、従来の無線通信装置の各種制限を克服する。マークアップ言語は、コンテンツの論理的コンポーネントを示すコンテンツ自体に予め定義されたシンボル、ページまたは画面におけるコンテンツのレイアウトについての命令、またはコンテンツの表示、操作、または変更に責任を負うある自動システムによって解釈可能な他のデータを含有することにより、ページのコンテンツまたは画面表示を定義することを可能にするコンピュータプログラミング言語である。また、電波を介して受信するコンテンツは、電話機能を起動するとともに、電話帳エントリ等の電話データにアクセスすることができることを鑑み、本発明は、特に機能またはデータへの無許可のアクセスを防止するために、セキュリティに関する機構を備えた無線通信装置を提供することを目的とする。
【課題を解決するための手段】
【0016】
1つの態様において、マークアップ言語で定義されたユーザインタフェースを備える無線通信装置が提供される。これを作用させるために、本発明は、ユーザインタフェースにおける電話通信機能のユーザ選択に応答して、無線通信装置の電話通信制御およびインターネット上に配置されたコンテンツに関連するデータアイテムのユーザ選択に応答して、ハイパーテキスト転送プロトコル(HTTP)を介したインターネットアクセスの双方を提供するために無線通信装置が使用するマークアップ言語ブラウザを含む。
【0017】
1つの実施形態において、無線通信装置の通信制御および他の機能は、マークアップ言語で書かれた様々なユーザインタフェースページにおいて定義される。各制御機能は、ユニフォームリソースロケータ(URL)に関連づけられるか、またはそれによって起動される。URLは、データアイテムを取得するためのプロトコルおよびいずれのデータアイテムをフェッチまたは操作すべきかを指定するデータアイテムである。ユーザインタフェースページは、無線通信装置のローカルメモリに格納され、ブラウザによってフェッチされ、ブラウザがそれらをデコードして、適切なユーザインタフェース要素を表示する。また、ブラウザは、マークアップ言語ページまたは遠隔に格納された他のコンテンツを、ワールドワイドウェブ等の通信ネットワークを介してかかるページにアクセスすることで、モードレスにフェッチし、かつ同様にこれら遠隔的にアクセスしたページをデコードおよび表示することができる。ユーザインタフェースページが表示されると、ユーザが選択した制御機能は、URLまたはコマンドデータをブラウザに渡す。ブラウザは、受け取ったURLまたはコマンドに応じた通信機能を発効させる。
【0018】
ブラウザは、好ましくは、電話通信プロトコルハンドラ、ローカルファイルプロトコルハンドラ、および遠隔ファイルプロトコルハンドラを含む複数のプロトコルハンドラと、マークアップ言語ハンドラを含む複数のコンテンツハンドラとを含む。電話通信プロトコルハンドラは、電話ダイアリングおよび応答等、電話通信制御特徴についてのURLをデコードし、無線通信装置のハードウェアを制御する電話通信制御ソフトウェアの基礎をなす機能を起動させる。電話通信制御の表示に必要なURLのいかなるコンテンツも、マークアップ言語コンテンツハンドラに提供され、マークアップ言語コンテンツハンドラは、コンテンツを構文解析して、画面表示上に表示する。マークアップ言語コンテンツハンドラは一般に、すべてのユーザインタフェースページを含むフェッチされたマークアップ言語ページをいずれも表示すること、および、フォームおよび他の入力手段を介してこれらのページへのユーザ入力を受け取ることに対して責任を負う。
【0019】
マークアップ言語ハンドラは一般に、2つのソース、すなわちローカルファイルプロトコルハンドラおよび遠隔ファイルプロトコルハンドラからコンテンツを受け取る。遠隔ファイルプロトコルハンドラは、ワールドワイドウェブ上のコンテンツにアクセスするためにURLをデコードし、無線通信装置の画面表示にコンテンツを出力するために、ウェブページ、フォーム、アプレット等のフェッチしたコンテンツをマークアップ言語ハンドラに提供する。1つの適した遠隔ファイルプロトコルハンドラは、HTTPを実施する。ローカルファイルプロトコルハンドラは、ローカルユーザインタフェースファイルにアクセスするためにURLをデコードし、かかるコンテンツをマークアップ言語コンテンツハンドラに提供する。MMIの好ましい実施形態では、ユーザインタフェースはハイパーテキストマークアップ言語即ち「HTML」で定義され、かつブラウザは、HTMLで定義され、整えられたウェブコンテンツおよびユーザインタフェースを双方とも表示するHTMLコンテンツハンドラを含む。
【0020】
無線通信装置のMMIを定義するために、マークアップ言語を使用することで、従来のMMIソフトウェアアーキテクチャを凌ぐ多数の利点がもたらされる。まず、マークアップ言語の使用により、インターネットおよびワールドワイドウェブアクセスを無線通信装置の電話通信および他の特徴と完全かつ継ぎ目なしに統合することができる。MMIは、すべての機能的画面の表示に、HTML等のマークアップ言語を用いるため、ワールドワイドウェブコンテンツ(これもまたHTMLで書かれる)は、無線通信装置の他の特徴と同じ外観を有する。より具体的には、MMIのページは、ウェブコンテンツがアクセスされるのと全く同様に、URLを用いてアクセスされる。無線通信装置は、機能的ページを表示する場合にはローカルURLにアクセスし、ウェブコンテンツを表示する場合には、ウェブコンテンツを取得するために、ウェブサーバとの接続を自動的に開始する。このため、マークアップ言語ベースのMMIにより、ユーザが、従来の装置のように無線通信装置を電話通信モードと「閲覧」モードの間で切り替える必要なく、いつでもインターネットおよびワールドワイドウェブにアクセスできるようにするモードレスなユーザインタフェースが可能になる。
【0021】
マークアップ言語ベースのMMIのさらなる利点として、ワールドワイドウェブからのウェブページ、フォーム等のウェブコンテンツにアクセスでき、かつ電話通信、メッセージング、および無線通信装置の他の非インターネットベースの特徴に直接統合することができることがある。例えば、好ましい実施形態において、無線通信装置は、電話番号および氏名を格納した電話帳を有する。従来では、ユーザが無線通信装置のキーパッドを使用してこれらのエントリを手動でキー入力する必要があった。本発明によるMMIを使用した無線通信装置では、ユーザが容易に情報を直接電話帳に格納できるようにするHTMLを含みうる、ワールドワイドウェブ上の電話ディレクトリに単にアクセスするだけで、ユーザは、エントリを電話帳に追加することができる。
【0022】
また、マークアップ言語の使用により、特定の無線通信装置についてのMMI作成のソフトウェア工学プロセスの複雑性が低減される。第1に、本発明のMMIはマークアップ言語をベースとしているため、Cまたは他の低レベル言語プログラミングに熟練することをプログラマに要求する従来のMMIとは異なり、完全に形の整ったユーザインタフェースを設計するために、非常に限られた量のプログラミングスキルのみを必要とする。ユーザインタフェースの編集および変更には、完全なアプリケーションプログラミング環境ではなく、単純なマークアップ言語およびイメージ編集ツールのみが必要である。第2に、本発明のマークアップ言語ベースのMMIを使用することで、電話通信制御ソフトウェア全体を再びコンパイルし、かつパッケージ全体を再テストして認証する必要なく、MMIのいずれの特徴も変更することができる。MMIは基礎をなす電話通信制御およびエアインタフェーススタックから切り離されているため、個々に変更あるいは追加されるユーザインタフェースページをテストする必要があるだけである。これは、市場に出すまでの時間を短縮し、かつ新しい特徴およびサービスが利用可能になる際の、MMIの設計、メンテナンス、および変更における容易さを増大させる。また、ユーザインタフェースを変更し、その変更をテストするための時間の低減は、従来のMMIを用いた場合よりも短時間でより多くの異なるバージョンのプロトタイプを作成することができることを意味するため、所与のセットのユーザ要件および特徴について最良のユーザインタフェース設計に対する設計探求が促進される。
【0023】
さらに、MMIのユーザインタフェースを作成かつ変更することができる容易さ、および市場に出すまでの時間の短縮により、サービス運営者が、あらゆるターゲット顧客セグメントそれぞれに対して特定の製品ソフトウェアイメージを作成するために装置の製造業者を必要とせずに、特定の顧客セグメントをターゲットにした無線通信装置を迅速に製造することができる。例えば、サービス運営者は、同じ無線通信装置ハードウェアおよび電話通信制御ソフトウェアを、それぞれニーズおよび無線通信装置の特徴を使用する能力が異なる会社役員、ティーンエイジャー、および高齢者向けに設計された異なるユーザインタフェースと共に使用してもよい。
【0024】
例えば、ユーザインタフェースのページを定義するためにマークアップ言語を使用すると、任意のページにおいて以下の任意のアイテムを変更することができる。すなわち、タイトルバーの有無およびテキスト、すべての情報的テキスト、オプションリストテキスト、すべての後続画面へのリンク、ソフトキー割り当て、永久にスクロールするバナーメッセージ、バナー広告、およびヘルプテキストである。
【0025】
また、マークアップ言語ベースのMMIの使用により、異なるサービス運営者に対する無線通信装置のブランド化における利点がもたらされる。ユーザインタフェースはマークアップ言語ページで定義されるため、個々のサービス運営者がサービス運営者に特定のロゴ、アートワーク、およびテキストを容易に追加および変更することが可能である。このため、本無線通信装置は、多くのサービス運営者に対して同一の無線通信装置ハードウェアおよび電話制御ソフトウェアを提供することができ、サービス運営者はそれぞれ、従来のように無線通信装置の製造業者が各運営者毎に異なるユーザインタフェースを実施、テスト、および出荷する必要なく、各自独特なユーザインタフェースにより、無線通信装置を迅速かつ容易にブランド化することができる。
【0026】
マークアップ言語ベースのMMIを備えた無線通信装置の提供において、本発明の一つの実施形態によれば、無線通信装置との作動のために、標準HTMLを特に有用にする多くの拡張を用いて、標準HTMLが強化される。標準HTMLは、大部分の無線通信装置において存在しない特徴である、キーボード、ポインティングデバイス、およびフルサイズの表示画面を備えた従来のコンピュータの存在を想定している。HTMLの最も特筆すべき欠陥は、
・フォーム要素(例えば、チェックボックス、ラジオボタン)は、マウスなしではナビゲートしにくい。
・今日コンテンツに存在するフォームは、ユーザにとって大きすぎて、ユーザが小さな画面上で記入する際にいくつかのコンテンツを維持することができない傾向がある。フォームがn個のフォームに分割される場合、ユーザの入力は、n―1回クライアントとサーバの間で送信され、かつクライアントに返送されて、帯域幅を無駄にする。さらに、シリーズになったより小さなフォームでは、ユーザは、シリーズにおける各フォーム毎にバックキーを押下するため、トランザクションの終了が煩雑になりうる。
・ハイパーリンクは、選択するためのマウスおよびページのコンテンツをスクロールするための別個のスクロールバーなしでは、追随しにくい。追随するハイパーリンクを選択し、かつ表示をスクロールするために、アップキーおよびダウンキーのみを有する装置において、アップおよびダウンキーにスクロールまたは選択のいずれかを固定して割り当てることは、必要とされるナビゲーション能力の提供に不十分である。
【0027】
ユーザインタフェースを定義する言語として、HTMLは多くの鍵となる特徴を欠いている。
・ソフト機能キー、または実際に装置上のあらゆるキーについてのアクションを特定する能力。
・選択のポップアップメニューを定義する能力。
・氏名および電話番号等、装置に格納したいデータを表示する、あるいは変更する能力。
・空白を埋めるために、Cコードを書かずにテンプレートとして画面を設計する能力。
・電波を介した(over the air)コンテンツにより、装置がユーザに提示するインタフェースを拡張またはカスタマイズできるようにする能力。
【0028】
本発明の一つの実施形態において、マルチパートフォームの設計、ウェブページのナビゲートおよびハイパーテキストリンクの選択の双方に限られた数のキーの使用、URLを使用しての無線通信装置の任意のキー(キーパッドまたはソフトキー)についてのアクションの定義、ソフトキーについてのオプションメニューの作成、およびテキスト、フォーマッティング、およびユーザインタフェースガジェット(gadget)の条件付き包含を容易にするHTML言語への拡張が提供される。
【0029】
より具体的には、メニューのキーへのバインディングを含む、特定の機能またはアクションをキーパッドの任意のキーに割り当てることができる「キー」タグが提供される。「keymenu」タグは、メニューアイテムの仕様をキーに対するメニューバウンドに含めることができる。「Template」タグおよび「include」タグは、外部HTMLまたは他のデータディレクトリをページのHTMLに置換または挿入可能とする。「help」タグは、設定された期間の後、ページのタイトルバーにわたって自動的にスクロールするhelpストリングの定義を可能にする。条件付きタグは、例えば変数または装置の構成設定をベースとして、ページ内のHTMLデータを条件付きで表示するための式をテストできるようにする。フォームについての「next」メソッドは、状態を維持するためにクライアントとサーバの間で隠しデータを繰り返し伝送する必要なく、マルチパートフォームの状態を維持できるようにする。改良されたナビゲーションメソッドは、別個のタブおよびエンターキーと、スクロールバーがない状態で、無線通信装置のアップおよびダウンキーで、ページのスクロールおよびユーザインタフェースガジェットおよびハイパーリンクの選択の双方を制御できるようにする。
【0030】
本発明の一つの側面により、表示画面と、メモリと、プロセッサとを備える無線通信装置であって、該無線装置のメモリは、無線通信装置の設定情報と、設定情報を取得して無線通信装置の設定を行なうためのユーザインタフェースを定義する、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルと、該複数のユーザインタフェース定義ファイルをデコードして表示画面上に表示するための、プロセッサによって実行されるマークアップ言語ブラウザと、を記憶しており、設定情報の一部は、所定のセキュリティレベルを有するユーザインタフェース定義ファイルを介してのみ取得されることを特徴とする無線通信装置が提供される。また、上記設定情報の一部は、無線通信装置のPIN番号を含むよう構成されても良い。
【0031】
また、本発明の別の側面により、表示画面と、無線通信装置の設定情報を記憶するメモリと、プロセッサとを備える無線通信装置において、メモリにプログラムとして記憶され、プロセッサによって実行されるブラウザであって、設定情報を取得して無線通信装置の設定を行なうためのユーザインタフェースを定義する、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルを読み出し、読み出した複数のユーザインタフェース定義ファイルを、デコードして表示画面上に表示し、表示されたユーザインタフェース定義ファイルが所定のセキュリティレベルを有する場合のみ、設定情報の一部を取得可能であることを特徴とするブラウザが提供される。
【0032】
また、本発明の別の側面により、表示画面と、無線通信装置の設定情報を記憶するメモリと、プロセッサとを備える無線通信装置において実施されるコンピュータ実施方法であって、設定情報を取得して無線通信装置の設定を行なうためのユーザインタフェースを定義する、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルを読み出すステップと、読み出した複数のユーザインタフェース定義ファイルを、デコードして表示画面上に表示するステップと、表示されたユーザインタフェース定義ファイルが所定のセキュリティレベルを有する場合のみ、設定情報の一部を取得可能とするステップとからなる方法が提供される。
【0033】
上述の構成のように無線通信装置の設定をマークアップ言語ベースのユーザインタフェースを通じて提供することで、サービス運営者が、熟練またはソフトウェア開発環境を必要とせず、または従来のMMIのソフトウェア管理問題なしで、新しいユーザインタフェースおよび異なる無線通信装置用のカスタム特徴セットを容易かつ迅速に生成することが可能となる。また、サービス運営者および製造業者が、個々でもまたサービス運営者毎に異なるMMIソフトウェアを作成する必要なく、望むように無線通信装置を迅速かつ効率的にブランド化することも可能となる。さらに、表示されたユーザインタフェース定義ファイルが所定のセキュリティレベルを有する場合のみ、設定情報の一部を取得可能とすることで、機能またはデータへの無許可のアクセスを防止することができる。
【0034】
また、本発明の別の側面により、少なくとも1つのソフトキーを備えた無線通信装置を動作するコンピュータ実施方法であって、マークアップ言語で定義された第1のユーザインタフェース定義ファイルを受信するステップと、該第1のユーザインタフェース定義ファイルを構文解析し、ソフトキーの1つとメニューアイテムのメニューの間の関連を格納するステップであって、各メニューアイテムはURLまたはアクションのいずれかに関連する、ステップと、ソフトキーのユーザ選択の受信に応答して、メニューアイテムのメニューを表示するステップと、アクションに関連する表示されたメニューアイテムのユーザ選択に応答して、該アクションを発効させるステップと、URLに関連するメニューアイテムのユーザ選択に応答して、該URLによって指定される無線通信装置の通信機能を発効させるステップとを含む方法が提供される。
【0035】
また、本発明の別の側面により、無線通信装置のプロセッサにより、ブラウザの実行で該無線通信装置の動作を制御するためのブラウザプログラム製品であって、該ブラウザは、 マークアップ言語で定義された第1のユーザインタフェース定義ファイルを検索する動作と、該第1のユーザインタフェース定義ファイルを構文解析し、ソフトキーの1つとメニューアイテムのメニューの間の関連を格納する動作であって、各メニューアイテムはURLまたはアクションのいずれかに関連する、動作と、ソフトキーのユーザ選択の受信に応答して、メニューアイテムの前記メニューを表示する動作と、アクションに関連する表示されたメニューアイテムのユーザ選択に応答して、該アクションを発効させる動作と、URLに関連するメニューアイテムのユーザ選択に応答して、該URLによって指定される無線通信装置の通信機能を発効させる動作とを実行するブラウザが提供される。
【0036】
さらに、本発明の別の側面により、表示画面と、メモリと、少なくとも一つのソフトキーと、プロセッサとを備える無線通信装置であって、メモリは、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルと、プロセッサによって実行されるマークアップ言語ブラウザと、を記憶しており、ブラウザは、ユーザインタフェース定義ファイルを検索する動作と、ユーザインタフェース定義ファイルを構文解析し、ソフトキーの1つとメニューアイテムのメニューの間の関連を格納する動作であって、各メニューアイテムはURLまたはアクションのいずれかに関連する、動作と、ソフトキーのユーザ選択の受信に応答して、メニューアイテムのメニューを表示する動作と、アクションに関連する表示されたメニューアイテムのユーザ選択に応答して、該アクションを発効させる動作と、URLに関連するメニューアイテムのユーザ選択に応答して、該URLによって指定される無線通信装置の通信機能を発効させる動作と、を含むことを特徴とする無線通信装置が提供される。
【0037】
上述の構成により、ソフトキーと関連付けられるURLに関するメニューアイテムに対して、ユーザ選択がなされた場合に、該URLによって指定される無線通信装置の通信機能を発効させることができる。
【発明を実施するための最良の形態】
【0038】
A.システムおよびソフトウェアアーキテクチャ
次に図1を参照して、本発明によるマークアップ言語ベースのMMI102を使用する無線通信装置100のシステムおよびソフトウェアアーキテクチャを示す。無線通信装置100のハードウェアは、プロセッサ124と、メモリ126と、画面表示136と、キーパッド128とを含む。メモリ126は、データ長期保存用のROM、RAM、およびフラッシュメモリを含む。ハードウェア特徴の提供に適した無線通信装置100は、Nokia Telecommunications、Inc.製のNokia 6100(商標)である。
【0039】
無線通信装置100は、パワー、メモリ、スレッド(通信接続)、キーパッド入力、およびタイマアクティビティを管理するためのモジュールを含む従来のリアルタイムオペレーティングシステム122をメモリ126に格納して、実行する。リアルタイムオペレーティングシステム122は、標準的なアプリケーションプログラミングインタフェースを提供し、MMI102の上位レベルのコンポーネントが無線通信装置100の機能性を要求するとともに、データを送受信できるようにする。
【0040】
また、電話をかける、電話を受ける、複数の電話線(適用可能であれば)の管理、テキストメッセージング(適用可能であれば)の管理、電話信号の監視、および他の基本的な電話通信機能を含む、主要な電話制御を提供する電話通信制御モジュール120もメモリ126に格納され、かつリアルタイムオペレーティングシステム122と通信する。電話通信制御モジュール120は、エアインタフェースプロトコルを実施する従来の電話プロトコルスタックを含む。電話通信制御モジュール120は、これらの特徴にアクセスするため、MMI102に対するアプリケーションプログラミングインタフェースを提供する。電話通信制御モジュール120およびリアルタイムオペレーティングシステム122は、通常、無線通信装置100の製造業者によって設けられ、それらの特定の実施は、本発明にとって重要ではない。
【0041】
画面表示136は、ビットマップLCDであるか、または同様の表示装置である。画面表示136は、通常、コンパクトで携帯可能なハンドヘルド式電子装置に適するように、例えば約90×60から120×120ピクセル(約0.28mmのドットピッチで)と、解像度が非常に限られている。表示技術における進歩の結果、かなり高い解像度の画面表示136になるものと予想されるが、そうであっても、無線通信装置の人間工学およびフォームファクタ要件により、ノートブックおよびデスクトップコンピュータの画面表示と比べて比較的小さく(例えば、25×25mmから80×120mmの間)、その結果、かかるより大型の画面表示用に設計されたコンテンツを厳密に同じ様式では表示しない。本発明は、ウェブコンテンツの表示時に、かかる画面表示の使いやすさを増大するよう適合される。
【0042】
無線通信装置100は、無線通信装置100の定義された機能(例えば、「送信」、「終了」、および「電源」)にアクセスするための多くの固定機能キー132と、数字入力用の(かつ適切にエンコードされた場合、他の文字を入力するための)数字キー134と、示されているユーザインタフェース104の特定の画面表示に応じて変わる様々な機能性を有するプログラマブルソフトキー130とを含むキーパッド128を備える。
【0043】
無線通信装置100は、本発明に従って作成されたMMI102のインスタンスをメモリ126に格納し、実行する。このMMI102は、ユーザインタフェース定義ファイル104のセットと、ブラウザ107と、ポータブルコンポーネント116のセットと、可搬性レイヤ118とを含む。ブラウザ107は、主要なユーザインタフェース機構をユーザに提供し、通信機能およびインターネット/ワールドワイドウェブアクセスの双方にアクセスできるようにする。ポータブルコンポーネント116は、グラフィックスプリミティブのセットと、ファイル格納機能と、ブラウザを種々の無線通信装置100上で使用可能とするローカリゼーション特徴とを提供する。可搬性レイヤ118は、リアルタイムオペレーティングシステム122および電話制御モジュール120に対するブラウザ107およびポータブルコンポーネント116についてのインタフェースを提供する。
【0044】
MMI102は、シングルスレッドアプリケーションとして実行されるとともに、一般に、任意のリアルタイムオペレーティングシステム122、電話制御モジュール120、および十分なROM、RAM、およびフラッシュメモリ、画面表示136、および基本サービスを提供する無線通信装置100上で実行するよう設計される。
【0045】
B.ブラウザ
ブラウザ107は、無線通信装置100の基本的なユーザインタフェースを提供し、かつユーザインタフェース定義ファイル104によって定義されるコンテンツ、および通信リンクを介して遠隔ウェブサイトにアクセスされるウェブコンテンツ等、遠隔サイトから検索することのできるコンテンツを画面表示136に表示する責任を負う。ユーザインタフェース定義ファイル104は、HTMLまたは後述する好ましいバリアント型であるHTMLp等のマークアップ言語で書かれたコンテンツファイルおよびコードファイルのセットであり、実行可能埋め込みコードオブジェクトを含みうる。本発明は、HTMLに制限されず、SGMLまたはXML等の他の任意のマークアップ言語、またはHTML拡張のNetscape Communicationのセット等、HTMLの他の拡張された非標準バージョンと共に動作し、それらを拡張しうる。
【0046】
本発明のMMI102を使用する無線通信装置を提供するサービス運営者はそれぞれ、装置製造業者によって提供されるユーザインタフェース定義ファイル104のある部分を変更して、各自特定のユーザインタフェースを設計するであろうことから、ユーザインタフェース定義ファイル104の特定のコンテンツは可変であり、かつ本明細書に記載される例示的なユーザインタフェース画面のいずれとも異なるものと予期される。さらに、MMI102は、いかなるユーザインタフェース定義ファイル104もない状態でサービス運営者に提供され、サービス運営者に所望のこれらファイルを作成する余地を残してもよいことが予期される。したがって、ユーザインタフェース定義ファイル104は、本発明のMMI102によって使用されるが、本発明の必須部分ではない。ユーザインタフェース定義ファイル104は、ユーザに提示されるユーザインタフェースを定義するため、サービス運営者が、ユーザインタフェース定義ファイル104を単純に編集するだけで、無線通信装置100を容易かつ迅速に「ブランド化」できるようにしている。このブランド化では、基礎をなすブラウザ107、可搬性レイヤ118、またはポータブルコンポーネント116を再度コンパイルする必要がなく、したがって、カスタマイズを非常に容易かつ費用効率的なものとする。それはまた、サービス運営者が、プログラミングスキルおよび従来のコード開発環境を必要とすることなく、単純なマークアップ言語編集ツールを使用してユーザインタフェースをカスタマイズし、ブランド化できることも意味する。
【0047】
ワールドワイドウェブの専門用語に従い、本明細書では、個々のユーザのインタフェース画面を「ページ」と呼ぶ。次に図2を参照して、ブラウザ107によって画面表示136に表示されるページ135の基本的なレイアウトを示す。各ページ135は、一般に、4つの基本エリアを有する。常に提示されていることが好ましく、かつ信号強度202およびバッテリ強度204、待機メッセージインジケータ206等のアイテムを表示するステータスバー200。タイトルバー210は、特定画面の名称を表示する(そのように定義されている場合には)。ステータスメッセージエリア212は、かけているまたは答えている電話番号等、現行のコンテンツに特定のステータスメッセージを提示するために使用することができる。コンテンツエリア214は、ユーザインタフェースページの特定のコンテンツ、例えばメッセージのテキスト、電話帳エントリ等を表示するために使用される。ボタンに沿って(他の場所を使用してもよいが)、ソフトキーラベル216があり、これは、ユーザインタフェース定義ファイル104に設けられたキーの定義に従って動的に更新される。スクロールアロー215は、ユーザがスクロールしている現在の方向(上か下のいずれか)を示す。コンテンツエリア214において、フォーカスを有する、すなわち現行のユーザインタフェースガジェットおよび入力フィールドであるコンテンツの特定のアイテムまたはラインを示すために、フォーカスおよび選択アイコン220をオプションとして使用してもよい。モードインジケータ218は、英字(alpha)、数字、または組み合わせた英数字モードのいずれかのテキストエントリのモードを示す。
【0048】
画面表示136上に表示されたページまたはコンテンツはいずれも、ユーザインタフェース定義ファイル104からローカルに、またはインターネットまたはワールドワイドウェブから遠隔的に取得することができる。ローカルコンテンツの例としては、電話帳、受信したテキストメッセージ、または送信するために作成中のメッセージ、無線通信装置の構成設定等が挙げられる。本発明の特徴の1つは、コンテンツがローカルにまたは遠隔的にフェッチされるかが、取得における遅延(もしあれば)を除いて、広くユーザから隠されていることである。この特徴は、継ぎ目なく統合された、通信機能を有するインターネットおよびワールドワイドウェブアクセスの提示を強化する。
【0049】
ユーザインタフェースの特徴の大部分は、URL(ユニバーサルリソースロケータ)によって起動される。公称的には、URLは、予め定義されても、あるいはURLにエンコードされる引数をベースとして、必要に応じて生成されてもよい1個のデータを識別する手段である。URLは、以下の形式をとるストリングである。
protocol:data-identifier[?arguments]
【0050】
protocolコンポーネントは、データの検索に使用すべき通信プロトコルを指定する。ワールドワイドウェブ上にあるコンテンツの場合、プロトコルは通常「http」、すなわち、ハイパーテキスト転送プロトコルであり、ユーザインタフェース定義ファイル104のローカルコンテンツは、メモリ126に格納されたローカルファイルシステムにおけるデータを取得するために、「file」プロトコルを使用して検索された。本発明は、無線通信装置100の動作および構成を制御する多数の追加の新しいプロトコルを提供する。
【0051】
data-identifierコンポーネントは、フェッチするのが望ましいコンテンツの仕様である。現在、ワールドワイドウェブ上のコンテンツの場合、data-identifierは通常2つの「/」キャラクタの後にマシン名、もう1つの「/」キャラクタ、およびある種のパスが続く形式をとる。
【0052】
引数(もしあれば)は、「?」によってdata-identifierから分離され、引数ン可名およびその値からなるペアの形式をとる。「=」キャラクタは、引数名をその値から分離する。複数の引数は、引数の値と次の引数名の間の「&」キャラクタによって分離される。
【0053】
アーキテクチャ的には、ブラウザ107は、3つの主な部分、すなわちシェル106と、プロトコルハンドラ112と、コンテンツハンドラ114とを含む。図3は、ブラウザ107を含むMMI102の詳細なソフトウェアアーキテクチャを示す。
【0054】
シェル106は、画面表示136の全体の部分の維持、URLの部分を正しいプロトコル112およびURL用のコンテンツハンドラ114に渡すことによるURLの処理、URLの履歴スタック108の維持、およびユーザ入力のルーティングに責任を負う。ユーザ入力のルーティングには、ユーザ入力のキーストローク、または数字入力および文字のフォームへの入力、または電話番号のダイアリング等、処理のための他のターゲットエンティティを適切なコンテンツハンドラ114に渡すことが含まれる。
【0055】
プロトコルハンドラ112は、シェル106からURLを受け取るとともに、該URLに対応するデータをフェッチして、シェル106にいずれのコンテンツハンドラ114がデータを受け取るべきであるかを命令する責任を負う。場合によっては、URLは、プロトコルハンドラ112が実行する責任を負う、無線通信装置100の特徴を制御するためのコマンドである。
【0056】
コンテンツハンドラ114は、フェッチされたURLを表示し、かつユーザと対話する責任を負う。少なくとも1つのコンテンツハンドラ114が常に現行のコンテンツハンドラ114である。新しいURLがいずれもシェル106に提供し戻されるのは、現行のコンテンツハンドラからであり、かつデフォルトで他の入力ターゲットのいずれにも送られないすべてのキーストロークを受け取るのも現行のコンテンツハンドラである。シェル106についてはさらに、図4〜図5に関して後述する。
【0057】
1.プロトコルハンドラ概観
プロトコルハンドラ112は、MMI102において2つの機能を果たす。第1に、プロトコルハンドラ112は、データをフェッチしてその型を決定する。型の決定により、今度は該データの表示にいずれのコンテンツハンドラを使用するかを決定する。第2に、リアルタイムオペレーティングシステム122または電話制御モジュール120の埋め込みオブジェクトまたは適切なAPIにアクセスすることにより、無線通信装置100においてコマンドを実行する。プロトコルハンドラ112は、そのコマンドの結果を戻して、異なる画面を表示させてもよく、または結果を戻さなくてもよい。好ましい実施形態のプロトコルハンドラ112は、以下を含む。
【0058】
内蔵プロトコルハンドラ112aは、無線通信装置100に内蔵されているアイコンへのアクセスを提供する。
【0059】
構成プロトコルハンドラ112bは、無線通信装置100の構成設定を得て、設定する。
【0060】
エクストラプロトコルハンドラ112cは、ページにおける埋め込みオブジェクトから、あるいは先にアクセスしたページから渡される引数およびフォームデータへのアクセスを提供する。このプロトコルは、ページを動的に生成する必要なく、データを直接ページに渡せるようにする。
【0061】
ファイルプロトコルハンドラ112dは、ROMおよびフラッシュファイルシステムにおけるローカルコンテンツへのアクセスを提供する。一般に、このコンテンツは、ユーザインタフェースのページを定義するユーザインタフェース定義ファイル104である。ファイルプロトコルハンドラl112dは、POSIX仕様等、ファイルシステムアクセスに適した仕様に従って、当業者により実施されうる。
【0062】
HTTPハンドラ112eは、標準ハイパーテキスト転送プロトコルを使用して、ワールドワイドウェブ上に格納された遠隔コンテンツへのアクセスを提供する遠隔ファイルプロトコルハンドラである。HTTPハンドラ112eは、RFC2068:ハイパーテキスト転送プロトコル−HTTP/1.1に定義される仕様に従って当業者によって実施されうる。遠隔ファイルプロトコルハンドラを実施するために、他の遠隔ファイルアクセス仕様を使用してもよい。
【0063】
メッセージプロトコルハンドラ112fは、メッセージ送信、格納しておいたメッセージの削除、新規または格納しておいたメッセージを読む、または格納したメッセージのロックを含む、各種メッセージング機構を起動する。
【0064】
電話プロトコルハンドラ112gは、電話をかける、電話を受ける、電話帳の表示、電話帳エントリの編集、および新しい電話帳エントリの作成を含む、各種電話機能を起動する。
【0065】
構成プロトコルハンドラ112b(可搬性レイヤ118の一部として図示)は、無線通信装置100の各種構成設定を検索、かつ設定する。
【0066】
a)基本プロトコルハンドラAPI
一般に、プロトコルハンドラ112は、実行することができる十分に定義された機能セットを有するという点でデバイスドライバと同様であり、各プロトコルハンドラ112は、同じ機能をサポートすることにより、これらの機能を各自の様式でサポートする。各プロトコルハンドラ112は、3つの機能を実施する。
GetURL:URLおよびフェッチすべき該URLを含むページのセキュリティレベルが与えられると、該URLに関連するデータおよびそのデータの特権レベルを戻す。URLが実際に、データへのリファレンスではなくコマンドである場合には、データを戻す必要はない。
BuildURL:完全なURLおよび部分的なURL(protocol:要素がない)が与えられると、完全なURLを戻す。これは、主にHTMLページ内のリファレンスに使用される。
PutURL:URL、URLの下で格納されるべきデータストリーム、および「put」メソッドを含むページのセキュリティレベルが与えられると、セキュリティレベルがデータを格納することができるほど十分に高い場合に、データを格納する。
【0067】
プロトコルハンドラ112によってサポートされる各種埋め込みオブジェクトおよびコマンドURLについては、後述する。
【0068】
2.コンテンツハンドラ概観
コンテンツハンドラ114は、フェッチしたURLに対応するページのコンテンツデータをデコードして、コンテンツを表示するか、そうでなければコンテンツを操作することに対して責任を負う。コンテンツハンドラ114は、通常、受信したコンテンツをデコードして、1ページまたはその一部を画面表示136に提示する。コンテンツハンドラ114によっては、メモリ126から、または通信リンクを介して受け取ったデータからページを構築するものもある一方で、無線通信装置100の状態を表示するか、または他のいくつかの管理機能を果たすものもある。ブラウザ107の好ましい実施形態では、コンテンツハンドラ114は以下を含む。
【0069】
コールマネージャコンテンツハンドラ114bは、ユーザインタフェース定義ファイル104において定義された着信画面を管理して、ユーザが着信を受信できるようにする。コールマネージャコンテンツハンドラ114bは、埋め込みオブジェクトを通して他の機能性を提供する。
【0070】
HTMLpコンテンツハンドラ114cは、メモリ126における適切なユーザインタフェース定義ファイル104にアクセスすることで、大半のユーザインタフェースを表示する。HTMLpコンテンツハンドラ114cは、HTML3.2互換パーサを含み、HTMLをデコードして、HTMLタグに従ってテキストおよびグラフィックスを表示するために必要なデータ構造およびオブジェクトを作成することができる。さらに、HTMLpコンテンツハンドラ114cは、HTML3.2の特徴および機能性に多くの有利な拡張を提供する後述の、本明細書では「HTMLp」と呼ばれるHTML3.2の変形形式を許容する。
【0071】
ユーザインタフェースとしてより良好に機能するため、かつユーザインタフェースの設計において柔軟性を追加するために、HTMLpコンテンツハンドラ114cは、Cまたは他のプログラミング言語で書かれたオブジェクトをHTMLまたはHTMLpページに埋め込んで、無線通信装置100にある異なる型のデータを表示できるようにする。しかし、HTMLpコンテンツハンドラ114cは、標準HTMLパーサと異なり、まず現行ページでユーザが選択したURLを任意の埋め込みオブジェクトに渡して、URLを、ユーザが選択または入力したもので変更するか、あるいはシェル106に与えられ、処理される前に、完全に処理できるようにする。
【0072】
好ましい実施形態において、利用可能な埋め込みオブジェクトとしては、以下が含まれる。
【0073】
電話帳オブジェクトは、氏名、関連する電話番号、住所、電子メールアドレス、短縮ダイアルキー選択、呼び出し音、およびデータの他の定義可能なフィールドのレコードを格納する。電話帳オブジェクトは、レコードのフィールドを取得してセットするためのメソッドを含む。電話帳オブジェクトは、ページに埋め込んで、電話プロトコルの適切なURLによって起動させることができる。
【0074】
最近および受け損なった電話リストオブジェクトは、最近かけた電話番号、受けた電話番号、または受けなかった電話番号の継続して更新されるリストを格納する。呼リストオブジェクトは、リスト上の電話番号を削除したり、またダイアルしたりするためのメソッドを含む。呼リストは、ページに埋め込んで、電話プロトコルの適切なURLによって起動させることができる。
【0075】
短縮ダイアル番号リストオブジェクトは、キーの選択により短縮ダイアリング機能性を提供するように、キーパッド128のキーに電話番号および関連事項のセットを格納する。このリストオブジェクトは、短縮ダイアル番号をセットし、取得し、ダイアルするためのメソッドを含む。
【0076】
電話番号索引オブジェクトは、電話帳オブジェクトにアクセスして、入力または選択された氏名または氏名の一部に関連する電話番号を戻す。
【0077】
電話帳氏名索引オブジェクトは、電話帳オブジェクトにアクセスして、入力または電話番号の一部の選択された電話番号に関連する氏名を戻す。
【0078】
受信または送信したテキストメッセージ/英数字ページのリストオブジェクト。メッセージリストオブジェクトは、電子メールまたはショートメッセージサービスメッセージを含むメッセージのリストを格納するとともに、メッセージを見る、格納する、編集する、削除する、および送信するためのメソッドを含む。メッセージリストは、ページに埋め込んで、メッセージプロトコルの適切なURLによって起動させることができる。
【0079】
メインコンテンツハンドラ114dは主に、HTMLpを使用して、無線通信装置100のメイン画面を表示するという点において、HTMLpコンテンツハンドラ114cのフロントエンドである。
【0080】
広告コンテンツハンドラ114aは、無線通信装置100のアイドル時にいずれの広告ページを表示するかを選択し、HTMLpコンテンツハンドラ114cにそれを表示するよう命令する、HTMLpコンテンツハンドラ114cのフロントエンドである。さらに、応答していたまたは失効した広告をオプションとして削除するために、キーストロークおよびユーザインタフェースガジェット起動を中断する。
【0081】
a)基本コンテンツハンドラAPI
プロトコルハンドラ112のように、コンテンツハンドラ114は、シェル106がそれらと通信するために使用する、十分に定義されたインタフェースを有する。インタフェースは、画面表示135の周囲で、表示されている画面内に定義されたコンテンツエリアがあるという意味において、コンテンツハンドラ114の対話のニーズに合わせられる。各コンテンツハンドラ114がサポートする4つの機能とは、以下のものである。
ContentOpen:これは、コンテンツハンドラ114に画面表示136のコンテンツエリア214、ソフトキー130およびソフトキーラベル216、タイトルバー210、およびステータスメッセージエリア212の制御を与えるコールである。各コンテンツハンドラ114は、ContentOpen関数が呼び出されると、以下の4つの情報を受け取る。
1.データをフェッチしたプロトコルハンドラ112により戻されるデータストリーム。これは、表示されるデータである。
2.データをどこに表示すべきかを示す、コンテンツエリア214へのハンドル。
3.コンテンツハンドラ114が以前にこのデータを表示したことがあるか否かを示すフラグ。
4.エンティティがシェル106にURLをフェッチするよう求めたものにより渡されたエクストラデータへのポインタであって、表示されているページにエクストラデータを入力できるようにするポインタ。エクストラデータの使用については、HTMLpの<TEMPLATE>タグ、および「extra」プロトコルに関してさらに後述する。
ContentClose:ユーザがページを閉じるよう求めるか、あるいは異なるページを開くよう求めると、現行のコンテンツハンドラ114が閉じる。これは、ページがURL履歴スタック108に維持されているか否か、またはページが該スタックから永久に削除されてしまっているかを示すフラグを受け取る。
ContentProcessKey:キーストロークを処理する他に何もない状態において、シェル106は、デフォルトによりキーストロークを現行のコンテンツハンドラ114に送る。現行のコンテンツハンドラ114とは、そのURLがURLスタックの最上部にあるコンテンツを表示しているものである。
ContentActivate:ユーザがソフトキー130を押下するか、あるいはメニューからアイテムを選択すると、そのキーまたはメニューにバインディングされたストリングが、この機能を介して現行のコンテンツハンドラ114に渡される。場合によっては、ストリングが、フェッチすべきシェル106に直接渡すことのできるURLである場合があり、また、ストリングが、ユーザが望むものの指示であり、コンテンツハンドラ114は、自身のアクションを実行するか、あるいは画面表示136上でユーザが選択したアイテムを使用して、シェル106に与えることができるURLを生成する場合もある。例えば、ユーザが電話帳におけるエントリを選択して、「編集」とラベルされたソフトキー130を押下する場合、HTMLpコンテンツハンドラ114cが、ソフトキー130に関連するストリングを取り、それを埋め込み電話帳オブジェクトに渡す。埋め込み電話帳オブジェクトは、埋め込みオブジェクトにおいてユーザがいずれの電話帳エントリを選択したのかに基づいて、該ストリングをシェル106に渡す実際のURLを生成するためのテンプレートとして使用する。
【0082】
コンテンツハンドラ114の特定の機能性については、さらに後述する。
【0083】
3.制御フロー
ブラウザ107の好ましい実施形態は、他の環境において使用されるイベントループの代わりである、単一のコールバックキュー110の周辺に編成される。MMI102のいずれの部分も、コールバックキュー110に関数要求を追加することで、関数を後に呼び出すよう要求することができる。
【0084】
コールバックキュー110は、それぞれ呼び出すべき関数へのポインタと、ルーチンに渡される2つの32ビット引数を有する、多数の要素を有する。関数ポインタは、システムにおけるいずれのモジュールであってもよい。
【0085】
本質的に、システム全体は、一番上の制御ループを実行する。
1.コールバックキュー110における次のアイテムを呼び出す。
2.その呼び出しが行ったすべての変更により、画面表示136を更新する。このステップは、画面にグラフィックス要素を描画し(例えば、ステータスメッセージおよびアイコンをスクロール、更新する)、キーストロークを表示し、URLに関連する機能または特徴のユーザ起動に応答して、新しいページを表示する。
3.ステップ1に戻る。
【0086】
コールバックキュー110についてのアイテムは、主にキーストローク(上または下)、アクティブコールにおける変化、タイマ経過、および入りテキストメッセージ等の非同期イベントによって追加される。
【0087】
ある延長(protracted)動作もまた、コールバックキュー110を使用して、他のアクション(ユーザ入力等)をなお処理可能としながら、動作を継続する。例えば、動画化したGIFイメージのフレーム読み出しは、2つの概念的な段階に分けられる。
1.最初のフレームを読み出して、次のフレームの読み出す呼び出しを待ち行列に入れる。
2.次のフレームの読み出しを試みる。成功した場合には、次のフレームを読み出す呼び出しを待ち行列に入れる。
【0088】
このようにして、動画を含むページを、残りの動画を効率的にバックグランドにロードしながら、可能な限り高速に表示することができる。
【0089】
4.シェル
シェル106は、入力キーストロークおよびより下位のレイヤからの他の入力の処理と、かかる入力の適切なプロトコルハンドラ112およびコンテンツハンドラ114への引き渡しを提供する。シェル106の関数リストを、付録Aに提供する。
【0090】
a)キーパッド入力
キーパッド入力は、可搬性レイヤ118からシェル106に自発的に到来する。シェル106は、特に現在表示されているページのユーザインタフェースオブジェクトである、キーストロークを処理することができるエンティティのリストであるキーストロークターゲットリストを維持する。キーストロークが到来すると、シェル106は、該キーストロークをキーストロークターゲットリストの最初のエンティティにShellprocesskeyを介して渡す。そのエンティティが該キーストロークを処理しないと決定する場合には、シェル106を呼び出して、キーストロークをリスト内の次のエンティティに与える(ShellPreviousInput)。リストの初期化時にシェル106によって配置される、リストの最後のエンティティは、キーストロークを現行のコンテンツハンドラ114に分配する。現行のコンテンツハンドラ114は、システム全体でのキーストロークデフォルトを実施するシェル106におけるデフォルト処理ルーチンに渡すよう選択するか、またはキーストロークを所望のように処理することができる。
【0091】
シェル106は、エンティティ(通常、ユーザインタフェースオブジェクト)をキーストロークターゲットリストに登録する(ShellGrabInput)と共に、リストからエンティティを削除する(ShellReleaseInput)関数を含む。
【0092】
b)ソフトキー
特殊な機能を有するキーの一種は、ソフトキー130である。ソフトキー130は、そのラベルが表示画面136におけるページに表示されるとともに、その目的が、ユーザインタフェース定義ファイル104において定義されたパラメータに従って、ページ毎に変わるキーである。シェル106は、通常1から3の間であるが、無線通信装置100に応じて可変であるいくつかのソフトキー130を管理する。各ソフトキー130は、ストリングまたはストリングを指定するメニューアイテムを有するメニューにバウンディングされてもよく、または、URLスタックから1つまたは複数のエントリをポップ(pop:取り出)しても、または何も行わないように設定されても良い。
【0093】
ソフトキー130、またはストリングにバインディングされたメニューアイテムが起動されると、ストリングが、ContentActivate関数を介して現行のコンテンツハンドラ114に渡される。いくつかの場合では、ソフトキー130にバインディングされるストリングは、フェッチすべきURLである。この例では、URLはコンテンツハンドラ114によってシェル106に渡され、適切なプロトコルハンドラ112およびコンテンツハンドラ114によって処理され(ShellGetURL)、フェッチされる。他の場合では、バインドストリングは、コンテンツハンドラ114がページを変えずに処理するコマンドである。最後に、バインドストリングは、フェッチされる前に、ユーザからのある入力に基づいて、コンテンツハンドラ114によって変更されるテンプレートURL(以下参照)を2つ組み合わせたものであってもよい。
【0094】
上述したように、ContentActivate関数の一部として、HTMLpコンテンツハンドラ114cは、ストリング自体を検査する前に、ユーザ選択のユーザインタフェースエンティティにバインディングされたストリングを現行ページにおける任意の埋め込みオブジェクトに渡す。埋め込みオブジェクトによっては、この方法でこのようにして表示しているデータに対して動作するというコマンドを単に取るだけのものもあるが、その一方で、ユーザが選択したデータのある部分に置換される、ストリング内の特殊なエスケープを探してURLをもたらし、それから該URLをシェル106に渡すものもある。HTMLpコンテンツハンドラ114cはまた、ハイパーリンクからURLをただ受け入れるだけというよりもむしろ、受け入れるある特別なコマンドも有する。
【0095】
c)URL処理
上述した制御フローで画面表示136を更新するステップは、新しく表示するページを取得するというコンテキストにおいて行われる場合、URLをShellGetURL関数を介してシェル106に渡すことによって達成される。図4は、URL処理をサポートするために、シェル106によって使用されるURL履歴スタック108を示す。URL履歴スタック108は、LIFOスタックである。各エントリ402は、URL404と、URLを処理する特定のコンテンツハンドラ114についての関数の関数表412へのポインタ406と、「エクストラ」プロトコルによって検索されるか、またはURLについてコンテキストハンドラによって使用されるよう、URLと共に渡されるエクストラデータ408(もしあれば)と、ページが動作している特権レベル414と、URLの優先度416と、シェル106がコンテンツハンドラ114の代わりに維持する状態ブロック418へのポインタと、を含む。
【0096】
図5を参照して、URL処理におけるシェル106の動作のフローチャートを示す。シェル106は、最初の「:」キャラクタの前の、URLストリングの最初の部分を抽出し(500)、それを既知のプロトコルハンドラ112のリストと比較して、URLデータのフェッチに適したハンドラを識別する(502)。プロトコルハンドラ112が見つからない場合、シェル106は、現在、URLスタックの一番上にあるURLについてのプロトコルのBuildURL関数を呼び出すことで、完全なURLを作成し(508)、それを現在一番上にあるURLとフェッチされているURLとに渡す。プロトコルハンドラ112は、渡された相対的なURLの代わりに使用すべき絶対的なURLを戻す。
【0097】
プロトコルハンドラ112が見つかる場合、シェル106は、このプロトコルハンドラ112のGetURL関数を呼び出し(504)、URLの残りを渡す。プロトコルハンドラ112は、URLをフェッチして、戻されるデータの型を示すストリングと、データを解釈すべき特権レベルと、実際のデータを含む(まだデータを提示する必要はないが、ストリームからの読み出しは、到来したままデータを戻さなければならない)Streamへのポインタとを含むContentStream構造へのポインタを戻すものと予期される。いずれのストリームも戻されない場合(506)、シェル106はエラーを戻す(510)。
【0098】
シェル106は、データ型ストリングを既知のコンテンツハンドラ112のリストとマッチングさせる(512)。マッチングがない場合、シェル106は、エラーを戻す(520)。マッチングがある場合(514)、このコンテンツハンドラ114が現行のコンテンツハンドラになる。シェル106は、ソフトキー130、コンテンツエリアサイズ214、タイトルバー210、およびステータスメッセージエリア212を各自のデフォルト状態にリセットする(516)。シェル106は、現行のコンテンツハンドラ114のContentOpen関数を呼び出して、ContentStremおよびコンテンツ表示エリア214の制御の双方を、コンテンツ表示のために、現行のコンテンツハンドラ114に渡す。
【0099】
オープン呼び出しが成功した場合(522)、シェル106は、URL、現行のコンテンツハンドラ114関数へのポインタ、任意のエクストラデータをスタックに配置してURL履歴スタック108を更新し、URLを要求しているエンティティに成功を戻し(524)、そうでなければ、シェル106がURL履歴スタック108からの先のURLに応答して(526)、エラーを戻す。
【0100】
5.セキュリティ
電波を介して受信するコンテンツは、電話特徴を起動するとともに、電話帳エントリ等の電話データにアクセスすることができることから、本発明は、機能またはデータへの無許可のアクセスを防止するために、セキュリティに関する機構を提供する。
【0101】
URLが、GetURL関数の一部としてプロトコルハンドラ112によってフェッチされると、そのデータがプロトコルハンドラによって特権レベルに割り当てられる。コンテンツが特権ソースから来たものであれば、プロトコルハンドラ112は、最高の特権レベルを割り当てる。例えば、無線通信装置100のROM126に格納されるユーザインタフェース定義ファイル104からのページはすべて、最高の特権レベルを割り当てられる。フォーマットしたテキストメッセージには、ユーザにより受信されたか、あるいは作成されたかに係わらず、最低の特権レベルが割り当てられる。特権レベルが割り当てられていないコンテンツは、シェル106によって自動的に最低の特権レベルが与えられる。例えば、ワールドワイドウェブからのコンテンツには(そうでなくても、予め割り当てられていない場合には)、最低の特権レベルが与えられる。コンテンツのアイテムの特権レベルは、そのURLと共にURL履歴スタック108に格納される。
【0102】
無線通信装置100の選択された関数は、無線通信装置100の製造業者またはサービス運営者のいずれかによって、特権に敏感なように構成される。かかる関数は、呼び出されると、URL履歴スタック108内のページのURLからコンテンツを要求しているページの特権レベルを決定する。要求しているページの特権レベルが要求されているコンテンツの特権レベルよりも高い場合に、コンテンツがアクセスされる。要求しているページの特権レベルが要求されているコンテンツの特権レベルよりも低い場合には、該関数は、即座にアクセスを拒むか、あるいはユーザに動作を確認することができる。例えば、より低い特権ページがCallManagerを介して電話をかけるよう要求する場合、ユーザには実際の番号をダイアルするという警告がなされ、ユーザは、電話をダイアルする前に、要求を確認しなければならない。
【0103】
6.コンテンツハンドラ
以下の項では、個々のコンテンツハンドラ114がどのようにして、各コンテンツハンドラ114へのAPIにおける4つの機能を実施するかが概説される。
【0104】
a)HTMLpコンテンツハンドラ
(1)HTMLp API
HTMLpコンテンツハンドラ114cは、HTML3.2仕様を用いて、完全なHTML準拠パーサを提供する。このパーサは、必要に応じて、画面表示136の表示、およびかかるエンティティに関連する各データの格納、ユーザインタフェースエンティティを作成するために、コンテンツのページの構文解析中に、HTMLpコンテンツハンドラ114cによって起動される。
【0105】
上述したように、各コンテンツハンドラ114は、HTMLpOpen、HTMLpClose、HTMLpActivate、およびHTMLpProcessKeyという4つの関数の外部インタフェースを提供する。HTMLpOpenおよびHTMLpCloseについてここに説明する。理解しやすいように、HTMLpActivateおよびHTMLpProcessKeyについては、HTMLpの新しいタグの説明後に、後述する。
【0106】
(a)HTMLpOpen
この関数は、コンテンツのページを表示するため、シェル106によって呼び出され、画面表示136のコンテンツエリア214の制御をHTMLpコンテンツハンドラ114cに与える。上述したように、HTMLpコンテンツハンドラ114cは、シェル106から表示すべきデータのストリームと、コンテンツエリア214へのハンドルと、該コンテンツデータ(ページ)が以前表示されたことがあるか否かを示す表示フラグと、該ページに関連するあらゆるエクストラデータへのポインタと、を受け取る。
【0107】
該関数は、表示フラグから、そのページが以前表示されたことがあるか否かを決定し、またそうであれば、ページの任意の埋め込みオブジェクトがキャッシュされたか否かを決定する。この場合、ページは再度表示されて、任意の埋め込みオブジェクトは、以前の状態を再確立するために呼び出されるRestoreState関数を有する。
【0108】
ページの埋め込みオブジェクトがキャッシュされていなかった、あるいはページが表示されるのは今回が初めてである場合、該ページのコンテンツストリームが基礎をなすHTMLパーサに渡されて、HTMLpコードとして解釈される。パーサは、ウィンドウと、必要に応じてユーザインタフェースエンティティとを作成し、テキストをラッピングし、必要に応じてソフトキー130を更新するとともに割り当てる。ページは、完全に構文解析されると、ユーザに表示される。ユーザインタフェースエンティティを作成する際に、HTMLパーサは、ユーザインタフェース要素(キー132、ソフトキー130、メニューアイテム等を含む)およびこれらのエンティティにバインディングされたURL(ローカルまたは遠隔に係わらず)との間の関連表を確立する。関連は、特定のユーザインタフェースエンティティと、エンティティがユーザによって選択されるか、そうでなければ起動される場合、フェッチされるURLとを識別する。これらの関連は、ページが受け取ったキーストロークを、HTMLpProcessKey関数により続けて処理する場合に、用いられる。他のページをすべて保持するメインウィンドウへのハンドルは、ShellSetStateを呼び出すことにより、そのページについて状態ブロック418としてセットされる。
【0109】
(b)HTMLpClose
この関数は、ユーザが現行ページを閉じるか、または異なるページに切り替える際に呼び出される。シェル106は、該ページをURL履歴スタック108から削除すべきか、あるいはURL履歴スタック108に残りうるかを示すフラグを渡す。ページを削除すべきではなく、かつページがキャッシュ不可能とマークされていない場合、メインページが見えないようセットされ、ユーザから効果的にそれを隠すが、アクティブページとして残す。
【0110】
ページがキャッシュ不可能であるか、またはページがURL履歴スタック108から削除されるべきである場合、ページウィンドウおよびそれに関連するデータ構造が破壊される。ページは、ページが表示されている間に潜在的に変化しうるそれ自身の外部にあるデータを参照する場合に、キャッシュ不可能であるとみなされる。例えば、ページが<INC>(「include」)タグを含むか、構成設定を表示するために、後述する構成機構を使用する場合には、キャッシュ不可能であると考えられる。条件付き<IF>タグ、および<TEMPLATE>タグの使用は、これらのタグについてDYNAMIC属性がセットされているか否か、および%[url]エスケープが<TEMPLATE></TEMPLATE>ブロック内にあるか否かに応じて、ページをキャッシュ不可能にさせる場合もあり、させない場合もある。これらの特徴については、さらに後述する。
【0111】
(2)HTMLへの拡張:HTMLp
本発明は、完全にHTMLと互換性のあるMMI102を提供する。しかし、コンテンツを単に表示するだけでなく、無線通信装置100のユーザインタフェースをさらに洗練させて、通信機能および小型画面表示136に関してより機能的にするとともに、無線通信装置を装置の製造業者およびサービス運営者の双方により容易かつ迅速にカスタマイズできるようにするHTMLの拡張セットを提供することが望ましい。
【0112】
HTMLpを構成する拡張は、以下の通りである。
(a)A.ユーザインタフェース拡張
この項では、ユーザインタフェースを豊かにする、HTMLpの拡張について説明する。これらの各種タグは、HTMLpコンテンツハンドラ114cがシェル106からコンテンツのページを受け取ったときに、HTMLpコンテンツハンドラ114cによってデコードされる。
【0113】
(i)関数へのバインディングキー:<Key>タグ
通常の無線通信装置100は、1から3つのソフトキー130、標準数字キー134、およびいくつかの特殊目的キー132を有する。HTMLpという新しい拡張により、キーパッド128の任意のキーを<KEY>タグを使用してHTMLページにバインディングすることができる。構文は、<KEY KEY=keyLABEL=stringACTION=url|POP|DONE|CLEAR|MENU|GO|NONE>である。
【0114】
KEY属性の値は、以下のうちの1つである。
[1,...m] バインディングするソフトキーを指定する。キーは左から右に、または上から下に(それらが電話上のどこにあるかに応じて)番号付けされる。通常(m≦3)であるが、これは装置毎に可変でありうる。
[send] 「Send」または「Talk」キーを指定する。
[back] 「Back」キーを指定する。すべての装置がこのキーを備えるわけではない。このキーをバインディングするためには、ページは、特権付与されなくてはならない。
[#n] ダイアルキーのうちの1つを指定するが、但し、nはキー上のラベル(0〜9、*、または#)である。すべてのダイアルキーを同じアクションにバインディングするには、#xを指定する。
[end] 「End」キーを指定する。このキーをバインディングするためには、ページは、特権付与されなくてはならない。
[mode] 「Mode」または「ABC」キーを指定する。
[clear] 「Clear」または「Del」キーを指定する。
[up] アップアローキーまたはダウンアクションを指定する。
[down] ダウンアローキーまたはダウンアクションを指定する。
[left] レフトアローキーを指定する。
[right] ライトアローキーを指定する。
[select] selectキーまたは選択アクションを指定する。
[power] powerキーを指定する。バインディングするためには、ページは、特権付与されなくてはならない。
[default] 標準アクション以外がとられる場合、アクションを常に明示的に指定しなければならない、back、end、およびpowerキーは例外として、他のアクションが指定されていないいずれのキーに対しても1つのアクションを指定する。
【0115】
キーがソフトキー130である場合、LABEL属性の値は、該キーの画面上のラベルに現れるストリングである。ストリングが長すぎて、割り当てられたスペースに収まらない場合には、切り捨てられる(truncate)。LABEL属性は、ソフトキー130に対してのみ有効である。
【0116】
ACTION属性の値は、バインドキーが押下されたときに何が起こるべきかを指定する。
[URL] フェッチすべきURL、またはページにおける埋め込みオブジェクトのためのある他のコマンドを指定する。URLは、処理のために、HTMLpコンテンツハンドラのHTMLpActive関数に渡される。
[POP] 前ページを表示するよう要求する。
[DONE] 最も最近の<TOP>ページの前のページを表示するよう要求する。
[CLEAR]すべてのページをURL履歴スタック108からクリアして、メイン画面を表示するよう要求する。
[MENU]ソフトキー130がメニューを繰り出すよう指定する。メニューにおけるアイテムは、<HEAD>セクションにおける<KEYMENU>タグによって指定される。これは、ソフトキー130についてのみ有効である。
[GO]現在選択されているリンクをフェッチするよう求める。これは、<LINKMENU>属性を有するページについてのみ有効である。
[NONE]キー押下時に、いずれのアクションも取らないよう求める。これは、オーバーライドすべきキーについてデフォルトアクションを可能にする。
【0117】
HTMLpコンテンツハンドラ114cは、<KEY>タグを有するページをロードすると、キー、ラベル(もしあれば)、およびアクションの関連を格納するキーバインディング表を作成する。
【0118】
ACTION属性にバインディングされたストリングは、HTMLpActivate関数により、以下のように処理される。
【0119】
(ii)HTMLpActivate
HTMLpActivate関数は、キー、ソフトキー、メニューアイテム、ハイパーリンク等のユーザインタフェースエンティティにバインディングされたストリングに対する適切な応答を決定するために使用される。入力は、シェル106からのストリング、より具体的には、KEYまたはKEYMENUタグのACTION属性、またはAタグのHREF属性にバインディングされたストリングである。新しいHTMLpタグにより、一般に、無線通信装置100の任意のキーまたはメニューアイテムを特定のアクションまたはURLに関連づけることが可能になる。
【0120】
図6a〜図6bを参照して、HTMLpActivate関数の一実施形態のフローチャートを示す。HTMLpコンテンツハンドラ114cは、現行ページにおける埋め込みオブジェクトのリストを維持する。ページに埋め込みオブジェクトがある場合(602)、該関数は、処理のためにストリングを埋め込みオブジェクトに渡す(604)。埋め込みオブジェクトは、ストリングが処理されたか否か、およびストリングをさらに処理する必要はないことを示すブールを戻す。ストリングが埋め込みオブジェクトによって処理された(606)場合、関数は制御をシェル106に戻す(608)。埋め込みオブジェクトへのストリングの処理(604)については、さらに後述する。
【0121】
ストリングが処理されていなかった場合、HTMLpActivate関数は、その値に従うストリングをACTION属性として、プロセス610に進む。
【0122】
ストリングが「POP」である場合(612)、シェルのShellGoBack(POP)関数が呼び出される(614)。この関数は、URL履歴スタック108の最上部のURLをポップして、先のURLをロードさせる。
【0123】
同様に、ストリングが「DONE」である場合(616)、ShellGoBack(DONE)関数が呼び出される(618)。これは同様であるが、最も最近の<TOP>タグの前のページを表示する。<TOP>タグは、マルチパートフォームの最初のパートを識別するが、これについてはさらに後述する。
【0124】
HTMLpコンテンツハンドラ114cは、フォームまたはハイパーリンクにおける入力フィールドでありうる、ページにおける現行オブジェクトへのポインタを維持する。この現行オブジェクトは、入力フォーカスが配置される場所である。
【0125】
ストリングが「GO」であり(620)、かつ現行オブジェクトがハイパーリンクではない(622)場合には、何も起こらない。現行オブジェクトがハイパーリンクである場合には、コンテンツハンドラ114がハイパーリンクに関連したURLストリングを取得して、そのURLストリングをShellGetURLに渡し(624)、これが実際のコンテンツをフェッチする。
【0126】
ストリングが「CLEAR」である場合(626)、シェル106のShellGoBack(CLEAR)が呼び出される(628)。この関数は、URL履歴スタック108をクリアして、デフォルトのメインページを表示させる。
【0127】
ストリングが「resetformid」の形式を有する場合(630)、該関数はフォーム番号(form number)がformidである入力要素を各自の元の状態に戻す(632)。このアクションは、<INPUT TYPE=reset>ガジェットについての任意のソフトキー130またはソフトキーメニューにバインディングされる。
【0128】
ストリングが形式「submitformid,label」である場合(634)、該関数は、フォーム番号formidを定義したFORMタグのMETHODおよびACTION属性に従って、フォーム番号formidを提出する(636)。labelは、もしあれば、ユーザが起動したのはいずれの<INPUTTYPE=submit>ガジェットであるかを示し、そのため、そのネーム値の対を、フォームにおける残りのガジェットからの値と共に提出することができる。
【0129】
ストリングが「SELECT」である場合(638)、該関数は、以下のガジェット型に従って、ユーザが選択したユーザインタフェースガジェットを起動する(640)。
<INPUT TYPE=radio> そのラジオボタンを選択し、同じ名称の他のラジオボタンを選択しない。
<INPUT TYPE=checkbox> チェックボックスをチェックするか、またはチェックしない。
<SELECT> オプションが表示される場合、ユーザが選択したオプションを選択する。SELECTリストがポップダウンリストである場合、ポップダウンを閉じる。ハイパーリンク リンクをたどる。
【0130】
ストリングが「NONE」である場合(642)、いずれのアクションも取られない。
【0131】
これらすべての条件をパスした後、ストリングがURL等の任意の他の値である場合(644)、ストリングは処理のためにShellGetURLに渡される(646)。URLが引数を持たない(その中に「?」がない)場合には、エクストラデータとしてこのページに渡されたパラメータはいずれもまた、ShellGetURLへの呼び出しにおいて渡される。
【0132】
HTMLpActivate関数および埋め込みオブジェクトに関するその特定の利点の例について、さらに以下に説明する。
【0133】
<KEY>タグを使用したActivate関数による処理の例は、次の通りである。ページが以下のKEYタグ、<KEY KEY=”send”ACTION=phone:dial>を含むと想定する。
【0134】
このページがロードされると、HTMLpコンテンツハンドラ114cは、Sendキーと、そのキーバインディング表におけるURL「phone:dial」の間の関連を格納する。この格納データは、ユーザがSendキーを押下したときに、電話プロトコルハンドラ112gの電話ダイアル機能を起動するために使用される。HTMLpコンテンツハンドラ114cは、現行のコンテンツハンドラ114である。
【0135】
ある後の時点でユーザがSendキーを押下すると仮定する。可搬性レイヤ118は、キーが押下されたことを示すシェルのShellProcessKey関数を呼び出して、Sendキーについてのキー番号、および押下されたことを示すフラグを渡す。上述したように、シェル106は、キーストロークターゲットリストを維持する。ShellProcessKeyは、受信したキーをスタック上の最初のターゲットに送る。このターゲットが該キーについて目的を持たない場合、ターゲットはシェル106のPreviousInput関数を呼び出して、Sendキーインデックスを渡す。シェル106は、キーストロークターゲットリストにおける次のアイテムを見つける。このプロセスは、キーがHTMLpコンテンツハンドラ114cに渡されるまで繰り返される。URL履歴スタック108の最上部にあるURLはHTMLpコンテンツハンドラ114cへのポインタ406を含むため、これは、シェル106が現行のコンテンツハンドラ114のProcessKey関数を呼び出すときに発生する。
【0136】
次に、シェル106は、HTMLpProcessKey(「Send」)を呼び出す。この関数は、SendキーとURL「phone:dial」の間の関連を含むキーバインディング表を見る。HTMLpコンテンツハンドラ114cは、ShellActivate(phone:dial)を呼び出し、これは、HTMLpコンテンツハンドラ114cのHTMLpActivate関数を呼び出す。
【0137】
ここで、ページに埋め込みオブジェクトがないと仮定する。次に、該関数は、入力ストリングをPOP、DONE、GO、CLEAR、およびNONE等の様々な他のアクションに対してテストする。ストリング「phone:dial」はこれらのいずれともマッチしないため、HTMLpActivate関数は、シェルのShellGetURL(phone:dial)関数を呼び出す。
【0138】
シェル106は、この関数を図5のフローチャートに示すように処理する。例を続けて、シェルは、URLが電話プロトコルハンドラ112gについてのものであると決定し、「dial」の部分を処理のために電話プロトコルハンドラ112gに渡す。このプロトコルハンドラ112gは、ダイアルすべき番号を含む「CallManager」型(コールマネージャコンテンツハンドラ114bに定められた)のコンテンツストリームを戻す。シェル106はHTMLpコンテンツハンドラ114cを閉じるが、該URLをURL履歴スタック108から削除しない。シェル106は、URL「phone:dial」をURL履歴スタック108の最上部に配置する。シェル106は、電話プロトコルハンドラ112gが返したコンテンツストリームから、コンテンツハンドラ114のストリング名を取得して、ストリームを処理する。シェル106は、その表におけるストリングを索引して、URL履歴スタック108の最上部エントリのCONTENTフィールドを更新する。最後に、シェル106は、新しい現行のコンテンツハンドラ114のOpen関数を呼び出して、コンテンツストリームデータを渡す。コールマネージャコンテンツハンドラ114bのOpenルーチンにおいて、コールマネージャコンテンツハンドラ114bは、ストリームから電話番号を検索して、電話制御モジュール120における、通話を確立するために必要な関数を呼び出す。
【0139】
(iii)メニュー構築
ソフトキー130が<KEY>タグを使用してメニューにバインディングされ、かつACTION=”menu”である場合、メニューへのエントリは、ページのHEADセクションにおける<KEYMENU>タグを使用して指定される。<KEYMENU>タグは、以下の構文を有する。
<KEYMENU KEY=nLABEL=stringACTION=url|POP|DONE|CLEAR|GO>
【0140】
エントリは、入力(encounter)された順序でメニューに表示される。しかし、メニューエントリがすべて共にヘッダにある必要はない。
【0141】
KEY属性の値は、いずれのメニューにエントリを追加すべきであるかを指定する。これは、存在すべきメニューを指定した<KEY>タグに与えられる値と同じである。
【0142】
LABEL属性の値は、メニューエントリに現れるストリングである。メニューは、すべてのエントリを保持するのに必要な幅である。しかし、ラベルは、画面よりも幅のある場合には、切り捨てられる(truncate)。
【0143】
ACTION属性の値は、エントリが選択される場合に何が起こるべきかを指定する。可能な値は、
[URL] フェッチすべきURL、またはページにおける埋め込みオブジェクトのためのある他のコマンドを指定する。
[POP] 前ページを表示するよう要求する。
[DONE] 最も最近の<TOP>ページの前のページを表示するよう要求する。
[CLEAR] すべてのページをURLスタックからポップして、メイン画面を表示するよう要求する。
[GO] 現在選択されているリンクをフェッチするよう要求する。これは、<LINKMENU>属性を有するページについてのみ有効である。
【0144】
これらのACTION属性は、上述したHTMLpActivate関数における<KEY>タグの属性と同じ様式で処理される。
【0145】
図7は、メニューが表示されるよう選択されるときの、キーメニューが定義されているページ、および表示画面136についてのHTMLpソースコードの例を示す。HTMLpコードを左側に示し、その結果得られるページを右側に示す。4行目は、最初のソフトキー(KEY=1)についてのメニューを定義する。なお、メニューが開いている場合、メニューについてのソフトキーラベル216は「Select」に変わり、ユーザがソフトキー130を再度押下すると、選択されたエントリが起動されることを示し、このラベル216は、代わりにメニューを閉じるよう変わってもよく、選択を起動するために、Sendキーを残す。5〜7行目は、このメニューについてのメニューアイテムを定義し、それぞれ、適切なページを表示して、メッセージ、最近の通話、または電話設定を検索するために、ユーザインタフェース定義ファイル104のうちの1つを指定する各自のACTION属性を有する。「Select」とマークされたソフトキーを押下するか、あるいはエントリの左側のアイコンにマッチする数字キーを押下することにより、メニューにおけるエントリの1つを選択すると、KEYMENUにおいて指定されたACTIONが実行される。この例において、適切なHTMLpユーザインタフェース定義ファイル104は、ROMからフェッチされる。
【0146】
(iv)遅延ヘルプ
コンピュータについての多くのユーザインタフェースは、ある形式のオンライン文脈特定ヘルプテキストを提供する。従来、これらのヘルプ画面は、ユーザがデータを入力しようとしているユーザインタフェースの部分に重なった各自のウィンドウに表示される。さらに、ヘルプ画面は通常受け身的であり、ユーザがヘルプを要求するという直接的なアクションに応答してのみ、現れる。しかし、非常に小さな画面表示を備える無線通信装置では、コンテンツエリアの上にヘルプ画面を重ねると、ユーザの妨げになる。さらに、ユーザがヘルプを利用することができることを知らない場合もあるため、ユーザがヘルプを要求するのを受け身的に待つということは、ユーザによっては、補助が不十分である可能性がある。
【0147】
ページを見ているときに、次に何をすべきかが不確かでありうるユーザを補助するため、かつユーザがデータを入力しようとしている、ページのコンテンツエリア214を隠さずに、かかるヘルプを提供するために、本発明は、ユーザによるキーストローク入力なしで、ある量の時間が経過した後、ページのタイトル210の代わりに、ヘルプテキストを画面にわたって自動的にスクロールできるようにする。1つよりも多くのヘルプテキストストリングを指定してもよく、この場合、ストリングは、互いの間に適した間隔をおいて、連続して表示される。ヘルプテキストストリングは、ページが見られる度に、それぞれ一度だけ表示される。
【0148】
ページが1つまたは複数のヘルプストリングを指定できるようにするためには、新しい<HELP>タグがドキュメントの<HEAD>セクションにおいて指定される。<HELP>タグの構文は、
<HELP>helpstring</HELP>
であり、ここで、helpstringとは、表示すべきヘルプテキストである。
【0149】
<HELP>タグを含むページがロードされると、HTMLpコンテンツハンドラ114cは、ヘルプテキストストリングを含む、表等の構造を構築する。この表は、シェル106に渡され、シェル106が後の使用のために表を格納する。そして、<HELP>タグの機能性は、アイドル時処理中に主にシェル106によって処理される。
【0150】
シェル106は、最後のキーストロークからの秒数カウンタを維持している。カウンタは、通常各ShellProcessKey毎にクリアされる。リアルタイムオペレーティングシステム122は、バックグランドで実行されるタイマを有すると共に、カウンタを増分する、シェル106におけるルーチンを呼び出す。カウンタが閾値の秒数に達すると、シェル106がスクローリングバナーオブジェクトを作成し、これに対して、表中の最初のヘルプテキストストリングを表示するよう命令する。スクローリングバナーオブジェクトは、いつ、ヘルプテキストストリングが完全に画面表示136からスクロールし終えるかを内部で決定して、これをシェル106に通知し、シェル106はタイトル210を再び表示する。第2の閾値が、テキストヘルプストリング表示のためにセットされる。閾値は、ヘルプテキストストリングを表示している望ましい時間の長さを基にして、シェル106によって予め決定される。
【0151】
図8は、2つのHELPタグを含むページについてのHTMLpソース、およびページがロードされると、渡される画面表示136の結果得られるシーケンスの例を示す。HTMLpコードの7〜8行目は、表示すべきヘルプテキストを定義する。2番目および3番目の画面イメージは、最初のヘルプテキストストリングがタイトルの代わりにスクロールされているところを示す。
【0152】
(v)テンプレートとしてのページ
本発明には、標準HTMLエディタを使用して、フォームエントリフィールドを完全にするために、Cコードによって渡される引数を使用して、またはページにおけるフォームの初期状態を決定するために、装置からオンザフライにフェッチされるデータを指定することで、ページを設計できるようにする多数のHTMLの拡張がある。これらの拡張としては、テンプレート、条件付きHTML、構成設定性能、および「included(包含された)」HTMLが含まれる。
【0153】
一般に、埋め込みオブジェクトのためのCコードは、表示すべきパラメータを有するが、表示の形式はページについてのHTMLで定義されることが望ましい。例えば、着信にある形式のデータを表示しているページは、電話番号およびそれに関連する氏名を表示することが好ましい。したがって、着信表示用のHTMLページは、パラメータ(電話番号および発呼者氏名)を取り、必要であればそれらをフォーマットすることが可能であるべきである。
【0154】
しかし、従来のHTML3.2は、この所望の用途に、データを直接ページに渡す機構を提供せず、最高でも、HTMLに、ページを必要に応じて作成することを可能にするだけである。HTMLの生成は遅くかつコンピュータ集約的であり、ページ生成のための実行可能スクリプトは通常、生成されるページよりも多くの格納領域を必要とし、そのため、ページ自体を格納するよりも効率を低くしている。引数を間接的に渡せるようにすることで、本発明は、実行時にHTMLを生成する必要性をなくす。これにより、ページをROM126に格納することが可能になり、かつ必要なメモリは、必要に応じてHTMLを生成するためのコードよりも少ない。
【0155】
(a)テンプレートとしてのページの使用
データをページに渡せるようにする最初の拡張は、<TEMPLATE>タグである。<TEMPLATE>タグは、ページのどこに現れてもよい。ドキュメントの構造において、適切な場所にある対応する</TEMPLATE>タグとマッチしなければならない。
【0156】
<TEMPLATE>タグと</TEMPLATE>タグの間のテキストはすべて、%(url)、%[url]、または%<url>の形式のエスケープについて検査される。これは、タグ内の、さらには引用された属性値内のテキストを含む。このようなエスケープが見つかると、URLについてのデータがフェッチされ、普通テキストまたはHTMLである場合には、まるで最初からそこにあったのかのように、エスケープの代わりにHTMLドキュメントに挿入される。<TEMPLATE>と</TEMPLATE>の間のテキストに%キャラクタを含めるには、「%%」のようにもう一つの%が前にこなければならない。
【0157】
フォーム%<url>は、urlについてのデータとして戻されたデータを、別のURLについての引数として使用するためにエンコードさせる。URL引数は、制限されたキャラクタセットを有し、該キャラクタセット外のものはいずれも、後に2つの16進数字が続く%としてエンコードされる。
【0158】
%(url)と%[url]の間の違いは、HTMLpコンテンツハンドラ114cのキャッシングの振る舞いにある。通常、ページについてのデータは、構文解析され、ページのレンダリングに必要な情報が、URLがURL履歴スタック108に残っている限り、保存される。これにより、すでにフェッチされているページを迅速に再表示することができる。しかし、%[url]エスケープがテンプレートセクションに見られる場合には、ユーザが最後にそのページを見たときからの、URLデータにおける変更をいずれも取り込むために、URLについてのデータが、ページの再表示が必要なときにページを再度構文解析することを保証するのに十分動的であることが示される。
【0159】
図9は、TEMPLATEタグの例を示す。この例において、19行目〜25行目の<TEMPLATE>タグの間のテキストは、テンプレートテキストを定義し、20行目のエスケープは、URL「extra:name」をフェッチさせる結果となり、これにより、テキストを、何であれ、変数「name」のもとに格納されているデータと置換する。画面表示は、これをテキスト「Adam M」として示す。
【0160】
HTML4.0の仕様は、ページにおける埋め込みオブジェクトの使用に備えている。通常、埋め込みオブジェクトは、各自のコンテンツの構築および表示に責任を負う、ページ上のある場所に位置決めされたコードのアイテムである。埋め込みオブジェクトは、HTMLソースの所望の位置に配置された、OBJECTタグについてURLにおいて指定される。通常、URLは、ActiveX制御、Javaアプレット、Cコード等のコードエンティティを指定する。HTML4.0の仕様では、URLは単にサーバに渡されて、サーバが所望のエンティティを戻すだけである。しかし、HTML4.0では、埋め込みオブジェクトを有するページが一旦ロードされると、埋め込みオブジェクトに対する引数のさらなる処理または引き渡しを行うことはできない。特に、ユーザが、埋め込みオブジェクトを含むページ上のハイパーリンク(URLに関連するユーザインタフェースガジェット)を選択する場合、埋め込みオブジェクトは、URLを処理する機会を何等持たず、その代わり、URLは単にリンクされたページに続くだけである。
【0161】
しかし、本発明は、処理のために、ハイパーリンクに関連するURLまたはユーザインタフェースガジェットをまず埋め込みオブジェクトに提供することで、埋め込みオブジェクトの機能性を拡張する。これは、サーバがページを更新する必要なく、埋め込みオブジェクトに直接HTML形式で提供される引数に応答させるものである。この埋め込みオブジェクト機能性の実施は、図6aおよび図6bに関して上述したように、HTMLpコンテンツハンドラ114cのHTMLpActivate関数において提供される。
【0162】
上述したように、HTMLpコンテンツハンドラ114cがURLであるストリングを処理する際、ページに埋め込みオブジェクトがある場合には、HTMLpコンテンツハンドラ114cはURLを埋め込みオブジェクトに渡す。本発明によれば、埋め込みオブジェクトは、URL処理の際に、3つのアクションのうちの1つを行う。
・URLをコマンドとして処理する。
・URLにおいてエスケープシーケンスを探して、URLをフェッチすべきシェル106に渡す前に、それらシーケンスをユーザが選択したデータからの情報で置換する。
・URLを処理せずにHTMLpコンテンツハンドラ114cに返し、これは、HTMLpActivateの残りに従って処理される。
【0163】
第2のタイプの処理の例として、HTMLpページにおける電話帳埋め込みオブジェクトのインスタンスは、「@n」または「@I」等のエスケープシーケンスを探して、それをユーザが選択した電話帳レコードの名称またはレコードIDで置換することができる。電話帳オブジェクトは、レコードの名称あるいは任意のフィールドのいずれかを編集することができる編集メソッドを含む。URL「phone:edit?Name=@n」を電話帳オブジェクトに渡すことで、名称が選択された電話帳レコードからすでにセットされている状態で、もう一つの番号を選択された電話帳レコードに追加するという処理が、電話帳エントリ作成プロセスに入ることによって開始され、URL「phone:edit?id=@i」を電話帳オブジェクトに渡すことで、レコードのすべてのフィールドが編集される。
【0164】
この拡張機能性の利点は、Cでハードコードされたページを有する代わりに、ユーザが実行することのできる機能の仕様はHTMLで行ないながら、Cでコードされたデータアクセスおよび動的振る舞いを要求する要素を有することができることである。これは、埋め込みオブジェクトがユーザと対話する唯一の方法は、ここでも、埋め込みオブジェクトが実施される言語でハードコードされた各自のユーザインタフェースを提示することによるものであるため、HTML4.0では不可能であり、したがってサービス運営者による変更またはブランド化が容易ではない。
【0165】
図10および図11は、可能な電話帳ページの2つの例を提供するとともに、埋め込みオブジェクトが、本発明の拡張処理により提供することができる柔軟性を示す。
【0166】
図10において、ユーザは、新しいエントリを作成できるか、または短縮ダイアルキー、呼び出し音、または番号を変更するために、既存の電話帳エントリのフィールドの1つを修正することができる。5行目は、表示されて図示されており、ユーザが最初のソフトキー130を押下することで起動されるキーメニューを定義する。メニューエントリ(6〜12行目)は、現在の選択からのデータについてのエスケーププレースホルダを有するURLにバインディングされる。特に、6行目は、メニューアイテムについてのACTIONを、埋め込み電話帳オブジェクトにおいて現在選択されている名称にすでに指定されている、電話帳エントリ作成プロセスの最初のページに変更させる、埋め込み電話帳オブジェクトについてのURLとなるように定義する。一般に、本発明における他のURLは、選択された電話帳レコードを用いて、各自の引数を埋めることで起動可能であり、これらURLはいずれも、メニューエントリ、ソフトキー、またはキーパッド上の他のキーにバインディングすることができる。特殊なエスケープシーケンスについて、電話プロトコルのphone:listURLに関して後述する。
【0167】
図11において、ユーザは、新しいエントリを作成するか、または別個のページに進み、特定のエントリについてのパラメータすべてを表示して、ユーザが望む場合にはそれらを変更することができる(これは、別個の画面pbedit.htmlを介して行われ、phone:list埋め込みオブジェクトへのediturl引数における「@」エスケープは、pbedit.htmlへ渡すために、関連するすべてのエントリを抽出する)。さらに、ここでは、グラフィカルタイトルバーが、無線通信装置の製造業者のロゴをバナーとしたタイトル付き背景と共に使用される。埋め込まれるオブジェクトは、電話リストオブジェクトへのURLと共に10行目において指定される。
【0168】
HTMLpコンテンツハンドラ114cが<OBJECT>タグに遭遇すると、シェル106に、OBJECTタグへのCODE属性として与えられるURLに関連するデータをフェッチするよう要求する。シェル106は、「Object」型でなければならないこのデータをコンテンツストリームとして返す。ストリームには、以下を含む構造がある。
・オブジェクトへのポインタ(HTMLpページウィンドウの子となるべきウィンドウ)
・与えられているストリングで呼び出すことができるHTMLpActivate関数へのポインタ
・オブジェクトの現在状態をフェッチする関数へのポインタ。これは、HTMLpCloseにより呼び出される。
・フェッチされた状態を受け入れ、オブジェクトをその状態に回復する関数へのポインタ。これは、ページが以前に表示されたことがあると分かる場合、HTMLpOpenによって呼び出される。
・オブジェクトの「値」をストリングとして戻す関数へのポインタ。これは、オブジェクトが、提出されているフォームの一部である場合に呼び出される。
・オブジェクトをセットすべき「値」を受け入れる関数へのポインタ。該値は、ストリングである。関数は、オブジェクトがフォームの一部であり、かつオブジェクトと同じ名称を有するエクストラデータ(NAME属性によってOBJECTタグに与えられる)が引き渡された場合に呼び出される。
【0169】
(b)装置設定へのアクセス
無線通信装置100の各種構成可能なパラメータは、さらに後述する構成プロトコルを介してアクセス可能である。フォームがジェットを使用し、各設定について可能な値を指定して、これらの設定を調整できるページを提供することが望ましい。しかし、これを行うためには、これらフォームがジェットの初期状態を、影響するものと思われる設定の現行値にマッチするようセット可能でなければならない。
【0170】
装置設定の値の設定に使用する最も好ましいフォームガジェットは、ラジオボタン、チェックボックス、およびスクローリングリストである。ラジオボタンおよびチェックボックスは双方とも、RADIOあるいはCHECKBOXいずれかのTYPE属性を有するINPUTタグを介してアクセスされる。これらの入力要素について、HTML3.2において、入力要素がフォーム上で選択されるか否かを定義する選択属性を指定することが可能である。選択属性は、CHECKEDおよびSELECTEDを含む。CHECKED属性は、ラジオボタンまたはチェックボックスを初めに選択すべきであることを示す。同様に、スクローリングリストは、<OPTION>タグを内部に有する<SELECT>タグによって指定され、そのうちの任意のものは、選択リストのオプションを初めに選択すべきであることを示すために、SELECTED属性を有しうる。
【0171】
通常、これらの属性はブールであり、CHECKEDまたはSELECTED属性がソースに存在する場合、ラジオボタン、チェックボックス、またはオプションが選択される一方で、存在しない場合には、選択されない。しかし、本発明では、これらの属性は、値を受け入れるように拡張されている。値は、式の形式を採り、これは、真と評価される場合、アイテムを最初に選択させる。
【0172】
式は、URLからデータをフェッチし、それを真または偽についてチェックされるブール値として扱うか、あるいは同等かまたは不等かについてストリングと比較される。
【0173】
構文は、
ATTRIBUTE=[!]url
であるか、または
ATTRIBUTE=url[!]=string
である。
【0174】
ATTRIBUTEは、CHECKEDまたはSELECTEDのいずれかである。ここで、URLは、構成プロトコルへのものであり、「config:setting」の形式を採るが、但しSettingは、構成プロトコルハンドラ112bがアクセスする関心のある特定の設定である。
【0175】
最初の構文形式は、フェッチされたURLデータをブール値として扱い、テキストを整数に変換して、それが0か、または0ではないかを見る。先行する「!」が存在し、かつ値が0である場合、アイテムが選択され、また先行する「!」が存在せず、かつ値が0ではない場合、アイテムが選択される。url自体が等符号を含む場合には、それを括弧でくくらなければならない。
【0176】
2番目の構文形式は、stringとURLについて検索したデータの間でストリングの比較を行う。「!=」が与えられる場合、ストリングが等しくなければアイテムが選択され、また=だけが与えられる場合、ストリングが等しければアイテムが選択される。
【0177】
URLが戻したデータが普通テキストでも、またHTMLでもない場合、式は常に偽と評価し、アイテムはチェックされないままである。
【0178】
図12は、この式の使用例を提供し、HTMLpソースおよび結果得られるページの双方を示す。9〜14行目は各種構成設定を指定し、CHECKED属性が、構成プロトコルハンダーへのURLである式によってセットされているところを図示している。図示のページは、これら設定を構成するための結果得られるユーザインタフェースを示す。この例において、ユーザには、3つのラジオボタンと、テキスト入力フィールドとが提示される。ユーザは、画面表示136のバックライトを、装置の使用時のみオンするか、または使用時か、プラグインされているときにオンするか、あるいは全くオンにしないかを指定することができる。さらに、ユーザは、入力することなく、それが過ぎた後は無線通信装置がもはや使用されていないと見なされる秒数をセットすることができる。これらの設定は、「バックライト」および「バックライト遅延」設定それぞれに格納することができる。画面が最初に現れると、現行設定に相当するラジオボタンがチェックされ、テキスト入力フィールドが現在の遅延を含む。
【0179】
一般に、この拡張された拡張属性を有する<INPUT>タグがロードされると、HTMLpコンテンツハンドラ114cがURLをフェッチすべきシェル106に渡す。HTMLpコンテンツハンドラ114cは、フェッチされたデータをその構文形式に従って上述したように評価し、URLデータの評価に従って選択属性の値を確立する。「including(包含)」HTML。
【0180】
「including(包含)」は、HTMLまたはHTMLpコードのブロックをページにおいて参照できるようにする、HTMLに対する拡張である。包含されたHTMLはいずれも、包含されたHTML自身が他のHTMLを含むことができるように、再帰的に解かれる。現在、HTML4.0は、ページからページにHTMLのブロックを包含する機構を提供していない。包含HTMLの利点は、多くのページが現れるよう設計される、ページのヘッダまたはフッタ、ナビゲーションツールバー等の共通のHTMLコンポーネントを容易に包含ページへの単一のリファレンスに組み込むことができる。
【0181】
本発明は、任意のソースからのHTML(普通テキストも含む)を、そのURLを与えることにより、含むための機構を提供する。これは、主にテンプレートページを介して装置設定を表示するために使用されるが、複数のページに共通する要素をコンテンツアーカイブの別個部分に配置して、それをその他のページに含めることにより、コンテンツサイズを低減するためにも使用することができる。該機構は、以下の構文を有する<INC>タグによって提供される。
<INC SRC=urlDYNAMIC>
【0182】
SRC(ソース)属性は存在しなければならず、そのデータをその時点にドキュメントに包含すべきURLを指定する。<INC>タグがHTMLpコンテンツハンドラ114cによって解かれると、URLに関連するデータがフェッチされ、<INC>タグの場所に挿入される。
【0183】
<INC>タグは、別のタグの中を除いて、ページのどこに用いてもよい。例えば、「<A HREF=<INC SRC=file:commonurl.txt>>」は許されない。
【0184】
図13は、<INC>タグの例を示す。この例において、最初のページのinfo.htmlは、第2のファイルbbody.htmlを参照する2行目に<INC>タグを有し、bbody.html自身は、第3のファイルstdlogo.htmlを参照する8行目に<INC>タグを有する。最初のページがロードされると、HTMLpコンテンツハンドラ114cは、すべての<INC>タグを完全に解き、図示のような結果得られるページを生成する。ファイルinfo.htmlは、ファイルendbody.htmlを参照する13行目に<INC>タグを有し、この後者のファイルは、完全に異なるファイルbbody.htmlに現れる<BODY>タグを適切に閉じる</BODY>タグを含む。
【0185】
一般に、ページの構文解析時、HTMLpコンテンツハンドラ114cは、<INC>タグを識別する際に、リファレンスURLをフェッチして、ファイルからのデータを現在のファイルのソースに直接挿入し、必要に応じて、ページを表示するためにそれを解く。
【0186】
DYNAMIC属性が<INC>タグについて指定される場合、それは、ページが一時的に閉じられるときにキャッシュされた表示命令を使用するのではなく、ユーザがそれを戻したときに、ページを再構築させる。一般に、DYNAMIC属性は、SRCとして使用されるurlが、ページが一時的に閉じられている間に変更されうるデータを参照していることを示し、そのため、かかるあらゆる変更を調整するよう、それを再び読み込んで、ページを再構築しなければならない。
【0187】
(d)条件付きHTML
テンプレートHTMLpの各ページの表示は、ファイルプロトコル112dについてのURLにおける「?」に続く引数(ファイルプロトコル112dについてのURLにおいて指定される引数が、extra:protocolを使用して、ファイル内の値として使用可能である)として直接、参照しているURLにおけるMETHOD=NEXTフォームからのフォームデータとして、あるいは本発明におけるCコードからのパラメータとして、テンプレートページについてのURLとともに渡されるパラメータによって制御することができる。
【0188】
条件付きHTMLは、ページのいずれの要素を表示するかを制御するために、条件付き式をページのHTMLソースにおいて直接エンコードすることを許さない。本発明は、この欠点を新しい<IF>タグにより克服する。<IF>タグは、パラメータまたは装置設定等の式のテストを可能にして、ページの表示を制御する。構文は、以下の通りである。
<IF TEST=expressionDYNAMIC>html<ELSE
TEST=expression>html<ELSE>html</IF>
【0189】
TEST属性における式は、CHECKEDおよびSELECTED属性について上述したのとまったく同様に評価される。
【0190】
例えば、以下のHTMLpソースを考慮する。
<IF TEST=extra:conf>
<KEY KEY=1 LABEL=Conference ACTION=phone:conference>
<ELSE>
<KEY KEY=1 LABEL="Pick Up"ACTION=phone:answer>
</IF>
<KEY KEY=send ACTION=phone:answer>
<IF TEST=config:anykey>
<KEY KEY=default ACTION=phone:answer>
<KEY KEY=back ACTION=phone:answer>
<ELSE>
<KEY KEY=default ACTION=none>
<KEY KEY=back ACTION=phone:ignore>
</IF>
【0191】
最初の<IF>タグにおいて、TESTは、ページをロードしたCコードによって、ページに渡されるエクストラデータ「conf」に関して評価される。このデータは、HTMLpコンテンツハンドラ114cに対して利用可能な変数に格納される。ページがロードされると、「conf」がTRUE(真)に評価される場合、最初のソフトキー130(KEY=1)が「Conference」とラベルされ、キーバインディングテーブルにおいてURL「phone:Conference」にバインディングされ、ユーザが電話の会議特徴を起動できるようにする。「conf」がFALSE(偽)と評価される場合、ソフトキーは、代わりに「Pick Up」とラベルされ、キーは異なるURLにバインディングされる。
【0192】
第2の<IF>タグにおいて、テストされるデータは、「config:anykey」URLによってアクセスされる無線通信装置の構成設定である。この設定についての装置設定に応じて、Backキーを含むすべてのキーが「phone:answer」関数にバインディングされるか、あるいはBackキー(および、特殊なバインディングを有する他の任意のキー)以外のすべてのキーは何も行わない一方で、Backキーが「phone:ignore」関数にバインディングされる。
【0193】
<IF>タグは、テンプレートモードにおいて使用される形式%[url]と同様に、パーサに、使用するURLが動的データを生成し、ページが再度構文解析されるべきであると教えるDYNAMIC属性を有し、urlが、ページが再度見えるようになったときに、ページを再構築するよう要求するのに十分動的なデータを参照することを通知する。
【0194】
(vi)電話番号エントリフィールド
HTML4.0は、汎用言語として設計され、無線通信装置、特に電話をかけ、かつ電話番号および関連する氏名を格納することができるものにおける使用に特に適合させる特徴を何等含んでいない。
【0195】
HTMLをこのような無線通信装置100により適合させるために、本発明は、「phonenum」および「phonename」を<INPUT>タグのTYPE属性についての新しい値として指定する。一般に、<INPUT>タグは、チェックボックス、ラジオボタン、テキスト、またはイメージ等のデータ入力タイプの仕様を可能にするものである。
【0196】
本発明の新しい入力タイプは、ユーザが電話番号または人の氏名を入力できるようにする。ユーザタイプとして、入力フィールドは、入力データを使用して、電話帳データ構造においてマッチングするレコードを索引する。そして、マッチングしたレコードが、電話帳表示に使用されるのとまったく同じフォーマットで入力フィールド下のリストに表示される。マッチングしたレコードが一旦表示されると、ユーザは、リストにおけるアイテムを選択して、そのアイテムをフォームを完成させるために使用することができる。
【0197】
より具体的には、入力タイプが「phonenum」である場合、入力数字が電話帳にあるすべての電話番号と比較され、マッチした電話がリストに表示される。ユーザがリストにおけるマッチした電話番号の1つを選択すると、これが、入力とマッチした部分に下線を引いた状態で、入力フィールドを完全に選択された電話番号で置換させる。マッチングにおいて、一桁の数字(0〜9)または二桁の数字(00〜99)が短縮ダイアルリストのみに対してマッチングされ、マッチした短縮ダイアル番号を表示する。
【0198】
入力タイプが「phonename」である場合、入力キャラクタが電話帳における氏名と比較され、マッチしたエントリが、マッチしたキャラクタに下線が引かれた状態で表示される。氏名の最初の語におけるマッチは、後続する語におけるマッチよりも優先され、リストはそれに従って格納される。ユーザがマッチした氏名の1つを選択すると、これにより、入力フィールドを完全にマッチした氏名で置換させる。
【0199】
図14は、HTMLpソースおよび結果得られるページの例を示す。ここで、7行目は、電話番号をダイアルするための電話プロトコルを指定し、入力タイプは「phonenum」である。ユーザは最初に「2」をタイプしており、これが短縮ダイアルリストに対してマッチングされ、マッチした氏名を表示する。次のイメージにおいて、ユーザは、「995」とタイプしており、これが電話帳リストに対してマッチングされ、マッチングした1つの氏名を表示する。3番目のイメージでは、ユーザが氏名を選択しており、これにより、前にある数字および残りの数字を含む、マッチした電話番号全体が、ダイアリングでの使用のために入力フィールドに挿入される。
【0200】
(b)マルチパートフォーム
上述したように、デスクトップおよびその大型画面向けに定められた通常のHTMLページでは、従来のフォームは多くの入力フィールドを使用する。仮に、かかるフォームが通常の無線通信装置100の小さな画面表示136上に表示されると、ユーザが、いずれの所与のときでも大部分が画面表示136からスクロールして消えていくフォームのコンテキストを見失うか、またはユーザが入力しているデータの大部分を見ることができないため、ユーザは、フォームにおいて非常に迷いやすい。図16は、無線通信装置100の表示画面136において使いにくい従来のHTMLフォームの例を示す。
【0201】
1つの解決策は、単一のフォームを、それぞれ必要なアイテムの1つまたは2つを集めた一連のフォームに分割することである。しかし、この場合、従来のHTMLでは、次のフォームをフェッチするURLの一部として、各フォームからデータをサーバに伝送する必要がある。そして、サーバは、URLで渡されたデータを取り、ページを戻す。該ページは、先行フォームから渡されたデータが、戻されたページ中のフォームに「隠し」タイプ入力要素として含む状態で、オンザフライで生成されなければならない。この様式では、ユーザが入力するデータは、フォーム全体が記入されるまで、複数回送信および返信される。このプロセスは、非常に帯域幅集約的であり、時間がかかるとともに、費用がかさむ。
【0202】
1つのフォームを複数のフォームに分割することの他の欠点は、ユーザが途中で結局フォームを完成させたくないと決心した場合に、ユーザが踏まなければならない手順である。このような場合、ユーザは、記入したサブフォームそれぞれについて、「End」または「Back」キーを一回押下する必要がある。これは、それぞれが別個のページであるためである。ユーザが急いでいる場合には、フォームをキャンセルしているときに、行き過ぎやすく、実際に望むところが消えてなくなる結果に終わる可能性がある。
【0203】
図17aおよび図17bは、1つのHTMLページでクライアントコンピュータから受信したパラメータが、クライアントコンピュータにアップロードされる前に、サーバコンピュータにより次のHTMLページにおけるHIDDENタイプの入力として挿入される、上述した従来のマルチフォーム方法を示す。図からわかるように、クライアントとサーバの間でこのデータを連続して往復して渡すために、複数のページを動的に作成しなければならない。
【0204】
サーバとクライアントの間でデータを往復して送信するためのこのプロトコルは、クライアントとサーバの間の各トランザクションがステートレス(stateless)であり、したがって現行状態を完成するために、先行状態からのデータには暗黙的に依拠しなくてもよいという標準HTMLの基本的な仮定から生じるものである。
【0205】
本発明は、HTMLのこれらの欠点を、クライアントは各自の状態を十分に保存するとともに、この情報を次の状態の決定に用いることができるという事実を利用するよう設計された、フォームについての新しい「NEXT」メソッド、および新しい<TOP>タグにより、克服する。
【0206】
(vii)「NEXT」フォームメソッド
HTMLページにおけるフォームは、ユーザからデータを収集するための1つまたは複数の入力要素からなる。データは、それぞれやってきた入力要素の名称でタグ付けされており、FORMタグ内の2つのパラメータ、METHODおよびACTIONに従ってサーバに提出される。ACTIONは、データが通常添付されるURLであり、METHODはGETまたはPOSTのいずれかである。GETは、データに基づいて別のページをフェッチするために使用され、POSTは通常、トランザクションを締めくくるよう、データを送信するために使用される。
【0207】
これら2つのメソッドに対して、本発明は、新しいNEXTメソッドを追加する。一般に、NEXTメソッドは、フォームを、各パートがフォーム全体のすべての入力フィールドのサブセットを含み、フォーム全体のデータを外部データ構造に格納するマルチパートで指定できるようにする。
【0208】
NEXTメソッドは、以下の効果を有する。
1.ACTION
URLで使用されるメソッドは、URLを何等変更しない「GET」であり、ページは単純にサーバからフェッチされる。GetURLは、プロトコルハンドラ112について呼び出される関数である。
【0209】
2.フェッチされたページにおける任意のフォームは、現行ページ上のフォームにおいてアクティブなname/valueデータセットで始まる。これは、先行ページから渡されたいずれのname/valueデータも含む。これは、「隠し」入力フィールドの使用を取り替え、データをサーバまで転送し、かつサーバにデータを再び転送させて、ページを返送する必要があることの帯域幅ペナルティを回避する。その代わり、ユーザがサービスを契約したときに、トランザクションを構成するその他のページと共にダウンロードされたページは関連するCGIスクリプトなしでサーバに常駐することができるか、または装置に常駐することができる。
【0210】
図18a〜図18bは、図示した従来のHTMLページと同じ情報を取り込むが、画面表示136のはるかに有用であり、かつ使いやすいフォーマットを提示するマルチパートフォームのHTMLpソースおよびページを示す。最初の3つのページ、「purchaseform.html」、「addr.html」、および「credit.html」はすべて、<FORM>タグにおいてNEXTメソッドを用いて、さらなる入力を取得するために、次にロードされるページを指定する。最後のページ「confirm.html」は、マルチパートフォームに蓄積されたすべてのデータを処理するためのCGIスクリプトを指定するために、従来のACTION値を用いている。この様式では、クライアント(無線通信装置100)が先行入力ページの状態データを維持するため、フォームへのすべての入力を取得して、それらをサーバに送信し戻すために、サーバとクライアントの間に必要な帯域幅は、はるかに低い程度である。氏名、住所、クレジットカード番号等のこの状態データは、メモリ126内の無線通信装置100の内部データ構造内で維持されるため、従来のHTMLのようにHIDDENタイプの入力要素に埋め込む必要がない。この内部データ構造は、最初のページがHTMLpコンテンツハンドラ114cによって構文解析される際に作成され、マルチページフォームがロードされる際にそれぞれの新しいページとして更新される。
【0211】
「confirm.html」ページで使用される<TOP>タグおよび<DONE>アクションについては、次の項で説明する。
【0212】
(viii)複雑な対話
デスクトップブラウザに表示される標準HTMLでのマルチ要素フォームであったものを、ここでは、それぞれ1つまたは2つの要素フォーム(画面表示136に楽に収まるために)を含む、HTMLpでの複数ページに変形することができるとすると、ユーザは、各フィールドについてデータを提供している途中で、自分がどこにいるのかを容易に知ることができ、かつプロセス全体を終了したいと容易に決定することができよう。ユーザが先行ページに戻ることしかできない場合には、これは、トランザクションを締めくくるための遅くかつ骨の折れるプロセスであろう。
【0213】
より容易にマルチページを終了させるために、本発明は、ユーザが完全に終了したいと望む複雑な対話の開始として、ページをマークできるようにする。これは、対話の「開始(top)」の所望の場所に、<TOP>タグ:
<TOP>
を提供することによって行われる。このような対話は、マルチパートフォームであっても、またはページの任意の他の複雑な群であってもよい。
【0214】
対話の最初にアクセスするには、ソフトキー130がACTION属性が「DONE」である<KEY>タグを用いて定義される。このソフトキー130がユーザにより選択されると、ユーザは、<TOP>でマークされた最も新しいページとしてユーザに参照されるページに戻ることになる。ACTIONがDONE値であるこの処理は、上述したように、HTMLpActivate関数中に行われる。
【0215】
(b)ナビゲーション
従来の無線通信装置100でのHTMLの表示は、キーボードが厳しく制限され、かつポインティングデバイスがまったくないことにより、さらに妨げられる。通常のHTML環境には、クリックまたはドラッグ可能なスクロールバーと、フォームのフィールド間をシフトするためのタブキーと、ユーザが辿りたいと望めば、コンテンツに含まれるハイパーリンクを選択することができるマウスとがある。
【0216】
しかし、本発明が有利に働く無線通信装置100では、ナビゲーション制御を提供するために頼ることのできるのは、アップキー、ダウンキー、およびソフトキー130のうちの可能な1つだけである。豊富なセットのナビゲーション能力を提供するために、本発明は以下の特徴をHTMLpに提供する。
【0217】
(i)フォームエントリ
ページがフォーム要素を含む場合には、アップおよびダウンアローが、以下の様式でフォームフィールド間を移動できるようにするために、多重定義される。
・フォームにおいて次の(ダウンアロー)または前の(アップアロー)フィールドが見える場合、アクティブフォームフィールドになる。これは、グラフィカル選択インジケータによって表され、テキスト入力要素もまた、明滅するテキストカーソルを得る。
・フォームにおける次の(または前の)フィールドが画面上では見えない場合、ページの次の(または前の)行が画面上に入るように、画面がスクロールされる。次の(または前の)フィールドが画面上に入れられた行にある場合、アクティブフォームフィールドになる。そうでなければ、現行フォームフィールドがアクティブのままである。
【0218】
画面表示がスクロールするにつれ、現行フォームフィールドが、ユーザが直接該フィールドを選択する必要なく、連続して更新される。この様式において、ユーザは、記入すべき次のフィールドまで続く説明テキストを予想通りに読むことが可能でありながら、単にスクロールするだけでフィールド間を容易に切り替えることができる。
【0219】
これに加えて、最初のソフトキー130がページによってある他の目的にバインディングされていない場合、現行フォームフィールドが変化すると、キーバインディング表におけるアクションが以下のように変化する。
【0220】
【表1】

【0221】
表1に定義される各種アクションは、現行フォームフィールドであるユーザインタフェースガジェットのタイプに応じて、ソフトキー130の適切で動的に可変な振る舞いについて提供される。これらのアクションは、ユーザがページをスクロールし、ガジェット間のフォーカスを変えることで、現行フォームフィールドが変わる際に、動的に割り当てられる。例えば、現行フォームフィールドがハイパーリンクである場合には、ソフトキーはリンクのURLに自動的に割り当てられ、ソフトキーを選択すると、ハイパーリンクが自動的にフェッチされる。フォームフィールドが、リスト、ポップダウン、チェックボックス、またはラジオボタン等、あるタイプの選択デバイスである場合には、ソフトキーは、適宜選択デバイスからアイテムを選択するか、選択解除するか、あるいは提出する。例えば、スクローリングリストにおいて、SELECTED属性(本発明の式評価特徴を有するかまたは有さない)を使用してアイテムが予め選択されている場合、ソフトキー130は、該アイテムを選択解除するよう定義される。
【0222】
ページナビゲーションに関するこの機能性は、HTMLpProcessKey関数において実施される。この関数は、現行ページの他のエントリが、入力キーストロークを受けるために選定されていない場合、シェル106によって呼び出される。該関数への入力は、キーパッド128のキーを示すキー番号と、該キーが押下されているか、解放されているかを示すブールである。図15を参照して、HTMLpProcessKey関数の一実施形態のフローチャートを示す。
【0223】
該キーに関連するURLがある場合、ProcessKey関数606は、シェル106のGetURL関数を呼び出して、関連するURLを渡す(1502)。シェル106は、図5に示すようにこのURLを処理して、該URLの処理に適切なプロトコルハンドラ112およびコンテンツハンドラ114を決定する。
【0224】
該関数は、キー番号から、該キーが、<KEY>タグ、あるいは<A>または<INPUT>タグのKEY属性を用いて、あるアクションにバインディングされているか否かを決定する(1502)。バインディングされている場合には、キーはソフトキー130(シェル106によって処理される)ではなく、アクションは、キーが解放されたときに、ShellActivateに渡される(1504)。
【0225】
そうではない場合には、アップおよびダウンキーのみが特別に処理され(1506)、他はすべて、各自のデフォルト処理を受けるために、ShellDefaultProcessKeyに渡される(1508)。
【0226】
アップおよびダウンキーの振る舞いは、ページに選択可能なユーザインタフェースガジェットがあるか否かによって左右される。選択可能なガジェットは、フォーム入力フィールド(INPUT、SELECT、TEXTAREA、またはOBJECTタグから)か、あるいはハイパーリンク(LINKMENUタグが存在する場合には)のいずれかである。ページに選択可能なガジェットがない場合(1509)、関数は所与の方向に次の行を見えるようにする(1514)。
【0227】
ページに選択可能なガジェットがある場合(1509)、アップおよびダウンキーに対する反応は、以下の通りである。選択された方向での次のユーザインタフェース下ジェットが見えている場合(1510)、関数はそのガジェットを現行ガジェットとする(1516)。次のユーザインタフェースガジェットが見えていない場合、所与の方向での次の行が見えるように、コンテンツエリア214がスクロールされる(1512)。これにより、次のガジェットが見えるようになると(1513)、それが現行ガジェットとなる(1516)。いずれのユーザインタフェースガジェットも見えない場合には、いずれのガジェットも現行ではない。
【0228】
(iii)メニューとしてのコンテンツ
フォームを含まないコンテンツは、大まかに2つのクラスにグループ化することができる。すなわち、1)読まれることを意図した情報コンテンツと、2)さらなる情報を得るために、またはあるアクションを行うために、ユーザがリストから何かを選択できるようにするメニューコンテンツと、である。
【0229】
ユーザが必要とするスクローリングおよびリンク選択の振る舞いは、これらのタイプのコンテンツそれぞれについて異なる。情報コンテンツでは、スクロールにより、次のテキストを読めるようにすべきであり(コンテンツのフォーカスとして)、リンクはいずれもメニューから選択される(リンクは、二番目に重要である)。しかし、メニューコンテンツの場合、重要性が逆になり、テキストはリンクを説明するという役割を果たすが、ユーザが見る必要があるのはリンク自体である。このように、リンクが常に選択されるべきであり、発生するスクローリングはいずれも、次のリンクへ行き着くというコンテキストにおいて発生すべきである。従来のHTMLは、コンテンツのこれらのタイプを区別せず、それらの相違に適応するよう、コンテンツを表示するコンピュータのナビゲーション特徴を変更するための機能を提供しない。
【0230】
コンテンツのこれら2つのタイプを区別し、かつ望ましいナビゲーション制御を提供するために、本発明は、新しい<LINKMENU>タグを提供する。<LINKMENU>タグは、コンテンツが選択メニューであることを示すために、ヘッダに与えることができる。構文は、次の通りである。
<LINKMENU TARGET=nameNOSCROLL>
【0231】
TARGET属性は、ページ上のすべてのリンクのNAME属性とマッチする値を有する。name値がTARGET値とマッチするリンクは、ページが表示されるときに初期的に選択されているリンクである。TARGET値がURL(値の最初の部分が、コロンが後に続く英字キャラクタである)である場合、URLがフェッチされて、戻されたコンテンツがページ上のすべてのリンクのNAME属性と比較される。
【0232】
NOSCROLL属性が存在する場合、該属性は、選択されたリンクを見えるようにするために、表示をスクロールしないよう要求する。
【0233】
<LINKMENU>の指定は、以下の効果を有する。まず、リンクは、従来のHTMLでのように、グラフィック的に目立たない(例えば、下線を付されない)。次に、ページの最初のリンクが選択されているものとしてマークされる(TARGET属性が与えられていない限り)。最後に、HTMLpProcessKeyメソッドにおいて説明したように、アップおよびダウンキーが現行のユーザインタフェースガジェットを、見えている前のまたは次のリンクにセットする。次のリンクは、現行リンクの下にあり、かつ水平距離にして最短距離にあるリンクとして定義される。これにより、リンクの列を優雅に、かつ予期されるように処理することができる。前のまたは次のリンクが見えていない場合、画面は適切な方向に一行スクロールする。そして、所望のリンクが見えるようになると、そのリンクが選択される。そうではない場合には、現行リンクが、現在見えている限り、アクティブのまま残る。
【0234】
<LINKMENU>がページに与えられていない場合、コンテンツは以下のように扱われる。まず、リンクに下線を付すことで、リンクを目立たせる。次に、最後のソフトキーがいずれにもバインディングされていなければ、ページにおけるすべてのリンクが、そのソフトキーにバインディングされたメニューに収集される。最後に、アップおよびダウンセレクタが一度にテキスト一行づつページをスクロールする。
【0235】
<LINKMENU>タグのこの機能性は、HTMLpコンテンツハンドラ114cにより、該ハンドラがページを構文解析して、キーバインディング表およびメニューをセットするときに、発効される。
【0236】
図19は、<LINKMENU>が指定されない第2のタイプの振る舞いの例を示す。この例では、iguana.gifおよびlizards/blue−tongued−iguana.html等のファイルまたはデータベースデータ<a href=map?city=adelaide label=map>を含む他のコンテンツへのリンクはすべて、2番目のソフトキー130にバインディングされる「Links」という名称のメニューに自動的に配置される。このメニューは、ソフトキー130が押下されると、2番目のイメージに示すように表示される。
【0237】
図20は、<LINKMENU>が指定される第1のタイプの振る舞いを示す。なお、ページにおけるリンク、例えば<A HREF=flights/ua909.html>UA 909</Aには、従来のHTMLでのように、下線が付されない。むしろ、アップおよびダウンアローがこれらのリンクを順序通りに動かして選択する。
【0238】
(iii)リンクのキーへのバインディング
本発明は、<A>タグに新しい属性を提供する。これらの属性は、標準HTMLブラウザは該属性を無視するため、無線通信装置100およびデスクトップコンピュータの双方にコンテンツを提供する互換性のある方法を提供する。これらの属性は、KEYおよびLABEL属性である。
<A KEY=key LABEL=string HREF=url>
【0239】
指定される場合、KEY属性は、指示されたキーがHREFについてこれにより指定されたURLを辿るよう求める。「back」キーは、このようにしてバインディングしていなくてもよい。したがって、この属性は、特定のキーを特定のURLにバインディングするための手段を提供する。
【0240】
指定される場合、LABELストリングは、2つの方法の1つで使用される。
KEYも提供され、かつこれはソフトキー130である場合、ストリングは、画面表示136上に表示されるソフトキー130についてのラベルである。
KEYが提供されない場合、ストリングは、LINKMENUタグが与えれていないときに、HTMLpコンテンツハンドラ114cによって自動的に構築された、リンクのメニューに使用されるラベルである。LABEL属性がない場合には、リンクのテキストが使用される(あてはまるかぎりは)。
【0241】
(iv)キーの入力要素へのバインディング
従来のHTMLは、<INPUT>タグにSUBMITおよびRESET属性を提供する。しかし、これらの属性は、リターンキー、またはユーザインタフェースガジェット上のマウスクリックのいずれかにハードコードされる。
【0242】
本発明は、バインディングしたい所望のキーを指定する<INPUT>タグのKEY属性を使用して、特定のキーにもこれらをバインディング可能にすることで、SUBMITおよびRESET入力要素の使用を拡張する。
【0243】
好ましい実施形態において、デフォルトにより、SUBMIT要素は第2のソフトキー130にバインディングされ、かつRESET要素は3番目のソフトキー130にバインディングされる。装置が2つのソフトキー130しか持たない場合、RESET要素にはアクセス不可能である。しかし、これらの装置の形式が単純であるとすれば、通常、このことは問題ではない。
【0244】
複数のSUBMIT要素を有するフォームは、明示的なキーバインディングが与えれていない限り、それらすべてを第2のソフトキー130上のメニューに配置される。同じキーにバインディングされた複数のSUBMITまたはRESET要素は、そのキー上でメニューに組み合わせられる。
【0245】
(c)特殊化されたコンテンツ
本発明はまた、特殊なタイプのコンテンツをサポートするか、または既存のワールドワイドウェブでの実施を無線通信装置100のより小型の画面表示136にマッピングするための方法を提供するために、HTMLへのさらなる拡張を含む。
【0246】
(i)電話のダイアリング
他の電話型製品のように、無線通信装置100は、DTMFベースのネットワークサービス、またはボイスメールシステム等の、機能性制御にDTMFトーンを使用する他のシステムにアクセスすることができる。したがって、HTMLpは、かかるシステムと容易にインタフェースするために、ページのフェッチ時に、DTMFトーンの生成を非常に容易にする新しいタグを含む。これは、新しい<DIAL>タグを使用して達成される。
<DIALNAME=stringICON=numberNOSCREENCHANGE>(n|n@t;)+</DIAL>
【0247】
nは番号または特別なダイアルコード(pauseのpのように)であり、@t;は、もしあれば、10秒単位で継続期間を指定する。DTMFトーン生成と、新しく電話をかけることとの間の選択は、通話が現在アクティブ(保留されていない)であるか否かに基づいて行われ、通話がアクティブである場合には、DTMFトーンが生成される。
【0248】
NAMEおよびICON属性は、電話をかけている間に表示されているページおよびダイアルした番号を容易に電話帳に配置可能とする追従ページにおいて使用するため、電話をかける相手を指定する。ICON属性もまた、通話接続ページにおいて使用され、その主な目的は、ユーザがダイアルした番号を電話帳に格納できるようにする通話に追従するページにある。電話番号は、埋め込み電話帳オブジェクトおよび他の場所にある各自のアイコンによって識別され、実際の番号入力時にユーザがアイコンを変更しない場合には、ICON属性が使用するアイコンを指定する。
【0249】
NOSCREENCHANGE属性は、通話が成功した後に、表示が、図22a〜図22c等の標準の通話管理ページに変わるのではなく、このページに戻るべきであると指示する。
【0250】
非特権ページによる実際に新しく電話をかけようとする試みはいずれも、不当なコンテンツが望ましくない電話をかけないようにするため、ユーザに確認される。
【0251】
このタグは、ユーザインタフェースページが、既存のDTMFベースのコマンドツリーにグラフィカルな命令シートを提供できるようにする。ユーザは、画面上の機能を起動し、それから、画面が、ユーザが要求したアクションを実行するために適したDTMFトーンを生成すると共に、新しい状態でユーザが利用可能な操作を表示する新しいページを提示する。図25は、このタイプの使用例を示す。「VoiceBox」というタイトルのファイルは、ボイスメールシステムにアクセスするためのユーザインタフェースページである。2行目の<DIAL>タグは、ボイスメールシステムのための電話番号と、ユーザパスワード「4416722」とを含む。4〜8行目は、該システムの各種機能を起動するためのキーパッド128のキーを定義する。「Listen」というタイトルのファイルでは、2行目の<DIAL>タグはまず、ボイスメールシステムをトリガして、再生モードに入らせる番号「5」に対応するDTMFトーンを生成する。4〜8行目はここで、各番号キー134に、それぞれボイスメールシステムのさらなる機能を生成する特定の番号をダイアルするためのURLである各種アクションを割り当てる。したがって、<DIAL>タグを使用することで、正確な基礎をなすDTMF信号を提供しながら、ユーザがグラフィカル的にボイス応答システムのコマンドツリーをナビゲートできるようにする。
【0252】
<DIAL>は、HTMLpコンテンツハンドラ114cによってシェル106に提供され、シェル106は次に、それを処理およびURLに提供された番号に対応するDTMFトーン生成のために、電話プロトコルハンドラ112gに提供する。
【0253】
(ii)広告コンテンツ
既存のワールドワイドウェブコンテンツは、広くグラフィカル広告バナーによってサポートされている。しかし、無線通信装置100の画面表示136の帯域幅および画面サイズは限られており、従来のイメージ集約的な広告バナーが無線通信装置100上に適切に表示されないため、この種の広告を問題のあるものにしている。
【0254】
本発明は、既存の<MARQUEE>タグに対する拡張を提供することで、この制限を克服する。このタグは、通常、画面にわたってスクロールすべきであるテキストを指定するが、ページの<BODY>セクションに限られている。従来、<MARQUEE>タグが<HEAD>セクションに配置される場合、従来のブラウザはタグを無視する。
【0255】
本発明において、HTMLpコンテンツハンドラ114cは、<MARQUEE>タグをドキュメントの<HEAD>セクションに配置できるようにする。そのように用いられると、<MARQUEE>タグにおける付随の広告テキストがページのタイトルおよび<HELP>タグで指定されているいずれの遅延ヘルプに取って代わる。この機能性は、遅延ヘルプを表示していなときをHTMLpコンテンツハンドラ114cに通知するよう求められるシェル106からの呼び出しに応答した、HTMLpコンテンツハンドラ114cにより、実施される。通知されると、HTMLpコンテンツハンドラ114cは、シェル106にタイトルエリア210にわたって広告テキストをスクロールするよう命令する。
【0256】
要約すれば、HTMLpコンテンツハンドラ114cおよびHTMLp拡張は、従来のHTMLに存在しない多くの有利な特徴および関数を提供する。
【0257】
(b)広告マネージャ
広告マネージャコンテンツハンドラ114aは、アイドル時に表示する広告を選択するとともに、古い広告、または要求した回数だけ応答されたか、あるいは実行された広告を削除する。広告は、HTMLまたはHTMLpページとして定義され、メモリ126にユーザインタフェース定義ファイル104の一部として格納される。広告は通常、操作者によりスケジュールをベースにして無線通信装置100にダウンロードされる。ユーザが広告に応答するか、または広告がある回数だけ表示された後、あるいはより重要な広告が来た場合、ダウンロードされた広告は自動的に削除される。
【0258】
広告マネージャコンテンツハンドラ114aは、以下のような基本的なコンテンツハンドラ関数を実施する。
【0259】
(1)AdvertOpen
広告マネージャコンテンツハンドラ114aがページを一時的なものとすると、広告ページは再度実行されることは決してなく、したがってURL履歴スタック108に格納されない。これは、現れる任意の他のページ(例えば、着信、低バッテリ等)がURL履歴スタック108において広告ページと置換されることを意味する。
【0260】
AdvertOpenは、呼び出されると、使用可能な広告ページのセットを見て、表示する1つを選択する。それは、ファイルを開いて、ストリームを表示のためにHTMLpコンテンツハンドラ114cに渡す。
【0261】
(2)AdvertClose
この関数は、表示していた広告ページをチェックして、削除するようマークされている場合には(応答されたか、あるいは要求した回数だけ表示されたため)、該広告ページを削除する。
【0262】
(3)AdvertActivate
ストリングは、HTMLpコンテンツハンドラ114cに渡されて、ユーザが応答したために、現在の広告を削除するものとしてマークした後に、HTMLpActivateにおいて処理される。
【0263】
(4)AdvertProcessKey
そうでなければ広告ページにバインディングされていない任意のキーを押下すると、ページを閉じることになり、かつキー押下を広告ページが現れる前にアクティブであったページにより再度処理されることになる。
【0264】
c)コールマネージャ
コールマネージャコンテンツハンドラ114bは、2つの目的のために使用される。
1.アクティブコールを表示するため。
2.発信の接続進行を表示するため。
【0265】
コールマネージャコンテンツハンドラ114bを現在使用している、URL履歴スタック108におけるページは常に1つしかなく、該ページは、これら2つのモードの1つである。コールマネージャコンテンツハンドラ114bは、以下のような基本的なコンテンツハンドラ関数を実施する。
【0266】
(1)CallManagerOpen
該ページが再度実行される場合、この関数は、ページの表示前に作成したウィンドウを再び見えるようにし、そのコンテンツを再度表示する。
【0267】
これが、ページが開かれる最初である場合、CallManagerOpenは、URLについてのデータストリームを検査して、ダイアルすべき電話番号があるか否かを見る。ストリームにおいて、ストリングの形式は:
num=string&name=string&icon=n
である。
【0268】
これは、関数に、ダイアルする番号(もしあれば、DTMFトーンが続く)、番号について表示する氏名(番号自身が電話帳にない場合)、および氏名と共に表示するアイコンを教える。
【0269】
ダイアルする番号がある場合、コールマネジャーコンテンツハンドラ114bは、電話制御モジュール120によって提供されるインタフェースを使用してダイアリングモードに入り、電話をかける際の進行を示すダイアリングページを表示する。このページは、いずれのDTMFトーンをダイアルしているかについてのフィードバックを提供するとともに、もしエラーが生じたなら、エラーを報告する。図21a〜図21eは、「connecting(接続中)」、「line is busy(お話中)」等の接続状態を示すダイアリングページ例を図示する。図20c〜図20eでは、ダイアルしている電話番号全体を示し、ダイアルしている現在の数字の下に移動するインジケータを付けている。
【0270】
ダイアルする番号がない場合、コンテンツハンドラ114bのCallManagerOpen関数は、アクティブコールのリストならびにそれらを操作するためのインタフェースを表示する。アクティブコールが1つだけしかない場合には、より単純なインタフェースが表示される。図21a〜図21cは、これらのインタフェースを示す。図21aは、アクティブコールが1つの場合のインタフェースを示し、図21bは、複数のアクティブコールがある場合のインタフェースを示し、図21cは、図21bと同じインタフェースを示すが、電話会議にするか、または呼を保留するかを選択できるようにするソフトキー130のメニューを備える。
【0271】
(2)CallManagerClose
ページが永久的に閉じられ、かつURL履歴スタック108から削除される場合、これは、アクティブコールを表示するために割り当てていたリソースを解放することになる。アクティブコールがまだある場合、この関数は、ユーザ入力がないある量の時間後、アクティブコールのリストが再度表示されるように、ShellAddIdelHookを呼び出す。
【0272】
(3)CallManagerActive
この関数は、選択された呼に関してどのアクションが利用可能であるかに応じて、ソフトキー130にバインディングされた以下のコマンドを探す。
[Conference] 多数共同呼(multi-party call)において他の呼(保留)を現在の呼と合わせる。
[Spilit] 参加中の多数共同呼から選択された呼を除去する。
[Hold] 選択した呼または多数共同呼を保留にする。
[Pick Up] 保留していた呼または多数共同呼をアクティブにする。
[Back] コールマネージャ画面を閉じる。
[Stop] 現行のDTMFシーケンスを停止して、進行中の通話画面の代わりにアクティブコールのリストを表示する。
【0273】
(4)CallManagerProcessKey
この関数は、多数共同呼の場合にアップおよびダウンキーを処理して、ユーザ選択をある呼から次の呼へ移動させる。選択された呼は、アクティブコールとなり、旧アクティブコールが保留になる。
【0274】
数字キー134は、アクティブコールが選択される場合にDTMFトーンを生成し(現在選択された呼をアクティブにしないことは不可能であることを示すように見えるアップおよびダウンキーへの応答に係わらず、ユーザがただ保留するよう求め、選択を変えない場合には、選択した呼を保留することが可能である)、そうでない場合にはダイヤラー画面が提示され、電話をかける最初の番号として数字が入力される。
【0275】
Endキーは、現在の呼を終了する。呼が多数共同呼の一部である場合には、終了する前に会議(conference)から除去される。
【0276】
Sendキーは、ダイヤラー画面を提示するが、ユーザがSendを押下して次に電話をかけるまで、現行の呼に影響を与えない。
【0277】
d)メインコンテンツハンドラ
メインコンテンツハンドラ114dは、装置のメインページを表示するために、HTMLpコンテンツハンドラ114cのフロントエンドとしての役割を広く果たす。
【0278】
(1)MainOpen
ユーザがキーを押下し始めると、番号をダイアルし始めるように、入力モードを数字およびシフト状態にリセットする。
そして、メインページへのストリームを開き、ストリームをHTMLpコンテンツハンドラ114cに渡して、表示する。メインページのサンプルを図22aから図22cに示す。
【0279】
(2)MainClose
同じ引数を有するHTMLpCloseを呼び出す。
【0280】
(3)MainActive
同じ引数を有するHTMLpActivateを呼び出す。
【0281】
(4)MainProcessKey
キーがEndであり、かつアクティブコールがある場合、この関数はアクティブコール画面を提示し、それが現れるのを待つ必要なく、ユーザが電話を切ることができるようにする。
【0282】
任意の他のキー押下は、HTMLpProcessKeyに渡されて、処理される。
【0283】
7.プロトコルハンドラ
本発明によれば、無線通信装置100の機能性は、いくつかのプロトコル、およびかかるデータまたは関数を識別するURLに応答して、データをフェッチまたは通知(post)したり、要求された関数を実行したりするプロトコルハンドラ112を介してアクセスされる。
【0284】
好ましい実施形態では、無線通信装置100と対話するための3つのメインプロトコル、すなわち、電話、メッセージ、および構成がある。4番目のプロトコルである「エクストラ」プロトコルは、<TEMPLATE>タグおよび他の特徴とともに記載したように、HTMLpテンプレートページを大部分のユーザインタフェースに使用できるようにする。
【0285】
各プロトコルについて、サポートされたURLは、HTMLまたはHTMLpページに埋め込まれるオブジェクトを返すもの、およびコンテンツを表示するか、または無線通信装置100の機能を起動するものに分けられる。
【0286】
a)電話プロトコル
これは、装置の特徴、およびHTMLよりはむしろCで書かれた各種埋め込みオブジェクトにアクセスするための主要なプロトコルである。電話プロトコルハンドラ112gによってデコードされる。これらの埋め込みオブジェクトとしては、上述した電話帳オブジェクト、最近の通話リストオブジェクト等が含まれる。各埋め込みオブジェクトは、パラメータ幅および高さを有する。これらのパラメータは、埋め込みオブジェクトについてURLにおいて指定され、その出力を表示するために、埋め込みオブジェクトによって提供されるウィンドウのピクセル幅および高さを定義する。
【0287】
各埋め込みオブジェクトはまた、URL仕様に従って実行するメソッドのセットも有する。
【0288】
(1)埋め込みオブジェクト
各埋め込みオブジェクト毎に、それが許容するパラメータならびにそれに対して行うことができるメソッドが記述されている。これらのメソッドは、キー128、ハイパーリンク、またはソフトキーメニューエントリにバインディングされたストリングである。
【0289】
phone:dialing?width=number&height=number&storekey=n,storelabel/editlabel
電話をダイアリングするための埋め込みオブジェクトを含むストリームを返す。該オブジェクトは、番号により、または氏名により格納された電話帳データ構造におけるエントリを索引でき、かつその入力フィールドの下に、<INPUT>タグのphonenameおよびphonenum属性に関して、上述したようにマッチしたものを表示する。
パラメータ
[storekey] ユーザがマッチリストにおけるエントリを選択した場合には、ユーザがエントリを編集できるようにするために、またはユーザが入力した番号または氏名を格納できるようにするために、いずれのソフトキー130を使用すべきかを指定する。storekeyパラメータについて指定されるstorelabelおよびeditlabel値は、ソフトキーが以下の2つの機能のいずれかを行うようセットされる場合に、ソフトキーに与えられるラベルを指定する。
メソッド
[edit] マッチリストで選択された番号を編集するよう要求する。
[store] ユーザがタイプしたものから適切なフィールドを記入した新しい電話帳エントリシーケンスに入ることで、ユーザがタイプしたものを電話帳に格納するよう要求する。現行テキストエントリモードが数字である場合、入力されたデータは電話番号としてとられ、現行テキストエントリモードが非数字である場合には、氏名ととられる。
【0290】
また、「@」キャラクタを含むアクションはいずれも、このオブジェクトのメソッドとして考慮される。phone:listオブジェクトについて記述された@エスケープは、ここでもまた機能する。
【0291】
phone:list?width=number&height=number&editkey=n,label&service=string&data=string&showstatus
電話帳データ構造からのレコードを表示するために、電話帳埋め込みオブジェクトを含むストリームを返す。
パラメータ
[Editkey] 何が選択されるかに応じて(電話番号のみを編集できる)、ラベルおよびアクションを変更すべきソフトキー130を指定する。
[Service,data] サービス(URL)またはデータ(格納されたコンテンツ)エントリが選択されるときに、ステータスメッセージエリア212に表示するストリングを指定する一方、showstatusは、任意のステータスメッセージ212が表示されているか否か(電話番号エントリの場合、電話番号が表示される)を決定する。
メソッド
[New] リストが検索モードであり、かつマッチリストにおけるエントリが選択される場合、氏名、番号等を収集し、結果を電話帳に格納するユーザインタフェース定義ファイル104のシーケンスである、新しい電話帳エントリシーケンスが、選択されたエントリの氏名を新しいエントリの氏名として使用して入力される。マッチリストにおいてエントリが選択されない場合、新しい電話番号エントリシーケンスは、ユーザが初期データとしてタイプしたものと共に入力される。データは、現行テキストエントリモードが数字である場合には電話番号のために、現行テキストエントリモードが非数字である場合には氏名として使用される。
[Edit] 現行電話帳エントリを編集するためにURLが生成され、URLがフェッチされる。
[Delete] ユーザに要求を確認した後、現行電話帳エントリを削除する。
【0292】
また、「@」キャラクタを含むURLはいずれも、このオブジェクトのメソッドとして考慮され、かつ続くエスケープについて検索される。エスケープが見つかると、エスケープが現行選択からの関連データにより置換される。すべてのエスケープが一旦置換されると、結果得られるURLがフェッチされる。
【0293】
【表2】

【0294】
phone:recentcall?filter=number&editkey=n,editlabel/storelabel&callkey=n,label&width=n&height=n&noempty
最近受信した、または最近かけた電話のリストを表示することができる埋め込みオブジェクトを含むストリームを戻す。呼のリストにおける各アイテムは、それに関連するフラグのセットを有する。オブジェクトに、あるフラグセットを有するアイテムのみを表示するよう指示することができる。現在定義された1つのフラグはビット0であり、ユーザが電話にでることができなかった番号から電話をかける。
パラメータ
filterが存在する場合、それは特定タイプの呼のみを表示すべきであることを示す(1つのみの現行フィルタの値は1であり、これは、出ることのなかった着信を意味する)。editkeyおよびcallkeyは、選択された呼に基づいて、ラベルおよびアクションを変更すべきソフトキーを指定する。noemptyが存在する場合、それは、呼のリストが、フィルタリング後に空である場合には、オブジェクトを含む画面を表示すべきではないことを示す。
メソッド
[edit] 現行選択が電話帳にある番号である場合、番号についての電話帳編集画面を提示する。
[store] 現行選択が電話帳にある番号ではない場合、電話番号を現行選択にセットした、新しい電話帳エントリシーケンスを提示する。
[call] 現行選択されている番号への呼を示す。
[dismiss] リストにおけるすべてのアイテムについて、「missed」フラグ(ビット0)がクリアされた後に、画面を閉じる。
【0295】
phone:ringtone?width=number&height=number&ptrAddr=hex
着信に対して装置が生成することのできる呼び出し音のリストを表示できる埋め込みオブジェクトを含むストリームを戻す。 パラメータ
ptrAddrが与えられる場合、オブジェクトは、ユーザにシステムデフォルト呼び出し音を使用するというオプションを与える。ユーザが呼び出し音を選択すると、次にその番号がhexで与えられるメモリアドレスに配置される。ptrAddrが与えられない場合、オブジェクトはシステムデフォルト呼び出し音をセットする。
メソッド
[test] 選択された呼び出し音を一度通して再生する。
[ok] 呼び出し音を選択されたものにセットし、画面を閉じる。
【0296】
phone:speeddial?width=number&height=number&ptrAddr=hexnumber&Name=string&icon=n
短縮ダイアルロケーションのリストを表示するための埋め込みオブジェクトを含むストリームを戻す。
パラメータ
ptrAddrは、ユーザがエントリを選択したとき、オブジェクトがどこに選択された短縮ダイアル番号を格納するかを指定する。Nameおよびicon引数は、phone:storeのものと同一であり、短縮ダイアル番号が割り当てられた番号の氏名およびアイコンを指定する。
メソッド
[Ok] 現行選択が現在別の番号に割り当てられていない場合には、短縮ダイアル番号を現行選択にセットし、画面を閉じる。Nameおよびicon引数は、ユーザに対する確認画面を構築する際に使用される。
[Clear] 選択された短縮ダイアルエントリの割り当てをクリアする。
【0297】
(2)コンテンツ/コマンドURL
phone:active
アクティブコール画面を表示させて、ユーザがアクティブであり得るいずれの呼も操作できるようにする「CallManager」型のストリームを戻す。いずれの呼もアクティブではない場合には、何も行わない。
【0298】
phone:anser
任意の着信に応答させ、アクティブコール画面を表示させるストリームを戻す。着信がない場合には何も行わない。着信があった場合には、参照するURLがURLスタックからポップする。
【0299】
phone:conf
任意の着信に応答させ、かつ現行アクティブコールと合わせる。アクティブコール画面を表示させるストリームを戻す。着信がない場合には何も行わない。着信があった場合には、参照するURLがURL履歴スタック108からポップする。
【0300】
phone:dial?num=string&name=string&icon=number&hidden
指示された番号に、ボイスコールを生成させる。nameおよびiconが提供される場合、これらは呼進行を表示するページ、およびユーザが番号を電話帳に追加したいか否かについて訊ねられる任意の追従ページにおいて使用される。hiddenが指定される場合、ユーザは、呼が一旦接続されると、呼を見ることがない(アクティブコール画面が表示されない)。URLは、呼進行画面を表示させるストリームを戻す。
【0301】
引数が与えられない場合、URLは、ユーザが電話する電話番号を入力できるようにする、ダイヤラー画面を表示させるストリームを戻す。
【0302】
要求を発しているページが十分な特権を欠く場合、ユーザは、電話番号のダイアルを許可するか否かについて訊ねられる。例えば、受信したテキストメッセージは、ユーザが気付かない900番や長距離の番号への電話を含みうるため、十分な特権を欠く。
【0303】
phone:display?id=number
指定された電話帳レコードのデータフィールドを表示するストリームを戻す。
【0304】
phone:edit?name=string&num=string&offset=number&id=number
渡されたパラメータと共に、電話帳の新規/編集画面を表示させるストリームを戻す。offsetおよびidは、既存のレコードを編集するために、内部でのみ使用される(offsetはいずれの電話番号を編集するかを示す一方、idは編集すべき記録の識別子である)。しかし、nameおよびnumは、新規電話帳レコードの作成に使用することができ、ユーザに適切なアイコンを選択する機会や、別の場合には、電話帳に格納する前にエントリを編集する機会を与える。
【0305】
phone:firstopen?password=string
与えられたパスワードstringを構成設定に格納されたものに対してチェックする。マッチすれば、参照画面がポップされ、phone:mainで置換される。マッチしなければ、電話をオフにする。これにより、電源オンセキュリティ画面をHTMLページにすることができる。
【0306】
phone:ignore
任意の着信を拒絶させる。着信がある場合、参照しているURLがURL履歴スタック108からポップされる。着信がない場合には、何も行わない。いずれのストリームも戻されず、そのため、参照しているURLをフェッチする前にアクティブであったURLが再度表示される。
【0307】
phone:indir?url=string&pop=action
最後にフェッチしたものからストリームを戻す前に、1つまたは複数のURL(各自の副作用を、それが何であれ、起動する)をフェッチする。pop引数が与えられる場合、それは、戻されたデータを表示する前に、1つまたは複数のURLをURL履歴スタック108から削除すべきであることを示す。actionは、1つのURL、現行の対話にあるすべてのURL、または履歴スタック108からのすべてのURLを削除するために、pop、abort、またはclearのうちの1つであることができる。
【0308】
phone:look?cat=number&sort&form=format
番号がcat引数によって与えられるカテゴリにある電話帳から氏名を検索する。sort引数が与えられる場合、結果はアルファベット順にソートされる。form引数は、データを提供すべきフォーマットを指定する。これらは常に、ある形式のHTML(このURLの結果はHTMLストリームである)であるが、使用されるタグは以下のように様々である。
・link:各エントリ名が、適切な場所へのリンクとしてフォーマットされる。サービスフィールドを有するエントリの場合、HREFがサービスフィールドのコンテンツであり、一方、データフィールドを有するエントリの場合、HREFがそのデータを示す。他のすべてのエントリは、エントリの最初の番号をダイアルする。
・form:nameが<SELECT>リストの<OPTION>要素(これは、このデータをフェッチする<INC>タグを取り囲まなければならない)としてフォーマットされる。各オプションの値は、リンクについて上述したように、URLである。
・menu:各エントリは、リンクの場合と同様にして<KEYMENU>タグとして提供される。使用するキーは、form=menu=xで指定されるが、但しxはキーである。
・count:所与のカテゴリにあるレコードの数を生成する。
【0309】
phone:look URLは、新しい<INC>タグと組み合わせられると、HTMLページがある種のブランド化したグラフィカルコンテキストで電話帳のサブセットを表示できるようにする。より重要なこととして、それは、サービス運営者およびユーザの双方に対して、いずれのサービスがユーザにとって利用可能であるかを管理する単純な方法を提供する。サービスのグループは、特定のカテゴリで電話帳に記録される。そして、装置は、このURLを使用して、これらのエントリを表示すると共に、ユーザが1つのサービスを選択できるようにするページを有する。サービスの追加および削除は、単にエントリを電話帳に追加またはそこから削除するだけの問題であり、サービスのリストを表示するページを変更する必要はない。
【0310】
phone:main
所定のメイン画面を表示させるストリームを戻す。
【0311】
phone:release?id=number
id引数が与えられる場合には、アクティブコールまたは指定したコールを解除する。何のデータも戻さない。
【0312】
phone:shortcut?num=n
ショートカット機能を起動する。nは、0〜9の範囲である。
【0313】
ショートカットは、無線通信装置100の製造業者によって定義され、通常、ソフトキー130の1つを押下したまま、次に数字キー134の1つを押下することで、起動される。これらは、一般に、電源オンパスワード画面を除き、すべての画面から利用することができる。
【0314】
例えば、ショートカット1は、キーパッドをロックまたはロック解除しうる一方で、ショートカット2は、電話の呼び出し音をミュートにし、ショートカット3は、無線通信装置100がオンされたときに、パスワード保護を起動または非起動としうる。あるショートカットはまた、電源オンパスワード画面以外のある画面に限定されることもある。
【0315】
phone:store?Name=string&Phone=speed=icon=string&Owner=string&Service=url&Category=number&Group=number&Ring=number&Data=type%0adata&speed=speed&icon=icon&id=id&offset=number&prio=n&pop=string
電話帳におけるレコードを作成、増補、または編集する。idおよびoffsetが指定される場合、レコードにおける選択された電話番号が編集される。他の場合、同じNameのレコードがすでに存在していれば、レコードが増補される一方、マッチするNameがなければ、新しいレコードが作成されることになる。
パラメータ
[Phone] このパラメータのコンテンツは、「speed」および「icon」パラメータが指定されているか否かによってかなり異なる。これらが指定されていなければ、このパラメータは、「speed=icon=number/speed=icon=number/…」の形式のストリングを含む。換言すれば、それぞれに短縮ダイアルロケーションおよびアイコンを関連させた、1つまたは複数の電話番号を指定するストリングである。「speed」および「icon」が指定されていれば、このパラメータは、電話帳に格納する単一の電話番号のみを含む。
[Owner] エントリのコンテンツを電波を介して更新可能とするパスワードを指定する。
[Service] エントリに格納すべきURLを指定する。このURLは、電話帳では電話番号のように現れるが、Sendキーが押下されると、URLのデータがフェッチされる。
[Category] エントリを通常の電話帳画面から隠すが、HTMLページに包含する場合には、phone:lookによって見つけられるようにする。Category0、1、および2は、通常の電話帳により表示される。
[Ring] この電話帳レコードにおける任意の番号からの着信時に使用する呼び出し音(0〜127、0はシステムデフォルトの使用を意味する)を指定する。高ビット(32768)がセットされる場合、それは、装置が静止モード(quiet mode)である場合であっても、この電話帳レコードにおける任意の番号からの着信があれば、呼び出し音を鳴らすべきであることを示す。高ビットはまた、prio引数を用いてセットすることもできる。これが1である場合、高ビットがセットされることになる。
[Data] 任意のデータを電話帳レコードに格納できるようにする。データは、電話帳では電話番号のように現れるが、Sendキーの押下時には、データが表示される。引数値の最初の部分は、データ型である。通常これは、テキストあるいはHTMLpのいずれかである。2番目の部分は、16進数のストリングとしてのデータ自身であり、オクテット当たり2つを格納する。
[Pop] (オプション)phone:storeURLを要求したURLを、string値に従ってURL履歴スタック108から削除させる(pop⇒そのURLだけを削除する、done⇒最も最近のもので、一番上のURL以降のすべてのURLを削除する、clear⇒メイン画面まで遡るすべてのURLを削除する)。
【0316】
この特定のコマンドは、ユーザにかなりの柔軟性を提供する。第1に、DATA引数は、電話番号だけではなくいずれのデータも電話帳に格納できるようにする。特に、URL、イメージ、オーディオデータ、および任意の他のコンテンツを、無線通信装置100に汎用データベースを作成することで、格納することができる。例えば、ユーザは、ウェブコンテンツを閲覧し、表示されているURLを選択し、かつそれを後に再度呼び出すために、電話帳に即座に格納することができる。
【0317】
第2に、RING引数は、電話帳エントリそれぞれに異なる呼び出し音を指定できるようにする。このRINGトーンは、着信が電話帳エントリ内の任意の番号から受信したときに使用される。これにより、ユーザが、各種電話番号に特定の異なった呼び出し音を指定することができる。例えば、ユーザは、異なる家族の面々、同僚、医者のオフィス毎に特定の呼び出し音を指定することができる。
【0318】
第3に、RING引数はまた、ringトーン値に高ビットをセットするか、またはPRIO引数に非ゼロを指定することで、任意の電話帳エントリおよびその呼び出し音について優先呼び出しを可能にする。従来の無線通信装置は、通常、電話を無音にして、通常着信音が鳴らないようにする静止モードを含む。本発明では、このRING引数は、そのようにブロックせずに、音が鳴るようにさせる電話帳エントリからの呼を指定することができる。したがって、ユーザは、この優先呼び出しを家族の面々、および他の大事な人についてセットすることで、静止モードであっても、かかる人々からの電話を鳴らすことができる。
【0319】
コールマネージャコンテンツハンドラ114bは、各着信の電話番号を、格納された電話番号と比較し、かつ指定した呼び出し音(もしあれば)を使用して、電話の呼び出しを選択かつ制御することで、この特徴を実施する。
【0320】
b)メッセージプロトコル
テキストメッセージは、英数字ページと同様に、本発明を用いて受信し、閲覧することが可能である。メッセージは、ファイルに格納され、一意の識別子により識別される。このプロトコルは、メッセージプロトコルハンドラ112fによって処理される。
【0321】
(1)埋め込みオブジェクト
message:list?width=number&height=number&type=type&num=string&lockkey=n,locklabel/unlocklabel
所与のタイプのメッセージリストを表示する埋め込みオブジェクトを含むストリームを戻す。
パラメータ
[num] (オプション)所与のソースからのメッセージのみを表示するよう指示する。
[lockkey] (オプション)選択されたメッセージが現在ロックされているか否かに基づいて、いずれのソフトキー130を更新すべきかを指定する。そのソフトキーを押下すると、メッセージのロック状態がトグルされる。パラメータのlocklabelおよびunlocklabel部分は、実施する機能に基づいて、ソフトキー130に与えるべきラベルを指定する。
[type] (オプション)どんなタイプのメッセージを表示すべきかを指定する。可能な値は、「TEXT」、「FAX」、または「VOICE」である。
メソッド
[lock] 選択したメッセージを自動削除からロックする。
[unlock] 選択したメッセージをロック解除して、それを自動的に削除できるようにする。
[new] 新しい送信メッセージの作成を開始する。
[open] 選択したメッセージを表示し、それを読んだものとしてマークする。
【0322】
@を含む任意のURLもまた、このオブジェクトのメソッドであると考えられる。これは、以下のエスケープについて検索される。エスケープが見つかる場合、エスケープは現行選択からの関連データにより置換される。すべてのエスケープが一旦置換されると、結果得られるURLがフェッチされる。
【0323】
【表3】

【0324】
(2)コンテンツ/コマンドURL
message:count?type=type
テキストとして、待機しているメッセージの数を含むストリームを戻す。可能なtype値は、VOICE、TEXT、またはFAXである。通常、これは、すべてのタイプのメッセージについてインボックスを実施する際に<INC>タグと共に使用され、装置がサポートするメッセージタイプのリストを提供し、このリストにより、ユーザがそのタイプのメッセージについて個々の画面を得ることが可能になる。リストは、このURLおよび<INC>タグを使用して、この画面上で使用可能なメッセージの数を、リストを構成するテキストの一部として表示する。URLはまた、そのタイプの任意のメッセージが使用可能であるか否かに基づいて、異なる<IMG>タグを選択するために、IFタグのTEST属性において使用することもできる。例えば、静止画像は、メッセージがないときに使用できるが、動画像は、そのタイプの使用可能なメッセージがあるときに使用される。
【0325】
message:operate?reply=&delete=&lock=&unlock=&adjust=&id=number
idが指定されているメッセージに対して操作を行う。可能な操作は(URLでは、これらのうちの1つのみを指定することができる)、
・reply:宛先アドレスをidが指定されたメッセージの送信者にセットして、メッセージ作成画面を提示させる。
・delete:メッセージを削除させる。
・delconfirm:ユーザに削除の確認を求めた後に、メッセージを削除させる。
・lock:メッセージをロックされているとマークさせ、メッセージ格納が満杯のときに、そのメッセージが自動的に削除されないようにする。
・unlock:メッセージをロック解除とマークさせ、メッセージ格納が満杯のときに、そのメッセージを自動的に削除できるようにする。
【0326】
adjust引数が与えられる場合、それはURL履歴スタック108を以下のように調整させる。
・reply:調整は行われない。
・delete:参照しているURLがURLスタックからポップされる。
・lock、unlock:message:readURLからのストリームを、メッセージについて戻し、参照しているURLを置換する。
このURLは、操作するのに十分な特権を必要とする。参照しているURLが特権を欠く場合には、操作はユーザに確認される。
【0327】
message:read?id=number
idが渡されたメッセージを表示するストリームを戻す。ストリームは、テンプレートHTMLファイルのためのものである。そのテンプレートを埋めるパラメータは、メッセージのコンテンツに基づいて戻される。
【0328】
message:send?addr=string&body=string&newaddr=&newbody=&pop=&reply=id
テキストメッセージを指示したアドレスに送信するよう要求する。addrがない、またはnewaddrが存在する場合、これは、与えられた本文をいずれも維持しながら、ユーザがメッセージのアドレスをセット可能とするストリームおよびパラメータを戻す。
bodyがない、またはnewbodyが存在する場合、これは、与えられたいずれのaddrおよびreplyも維持しながら、ユーザがメッセージの本文を追加または編集できるようにするストリームおよびパラメータを戻す。
addrおよびbodyの双方が与えられ、かつnewaddrおよびnewbodyの双方が存在しない場合には、メッセージが送信される。replyが与えられる場合には、対応するメッセージが、返信済みとしてマークされる。
メッセージが送信され、かつpopが存在する場合、参照しているURLがURL履歴スタック108からポップされる。
このURLはまた、POST動作(PutURL)と共に動作し、その場合、addrがURLにおいて指定され、かつURLに配置すべきデータストリームがメッセージの本文としてとられる。
このURLは、操作するのに十分な特権を必要とする。参照しているURLが特権を欠く場合には、操作はユーザに確認される。
【0329】
c)構成プロトコル
装置機能との対話のための第3のプロトコルは、構成プロトコルであり、これは装置の構成情報をセットすると共に、得るために使用される。このプロトコルは、構成プロトコルハンドラ112bによって処理される。
【0330】
このプロトコルで形成されるURLは、装置設定自身である。URLがフェッチされると、URLの現行設定が、テキストに変換され、ストリームとして戻される。データが構成プロトコルURLにポストされると、データが必要に応じて変換され、装置設定がセットされる。構成URLは、取得および設定の双方の場合に、装置設定内のビットをアドレス指定することができる。そして、URLは以下のように見える。
config:setting.bitnumber:bitsize
:bitsizeが存在しない場合、1と仮定される。
bitnumberは、0〜31であり、31が最上位ビットである。
【0331】
大部分の設定は、任意のモジュールでフェッチすることができるが、(無線通信装置のPIN番号のように)いくつかは十分な特権を有するページ(通常、ROMメモリ126にあるHTMLファイル)のみによって取得することができる。十分な特権(ここでもまた、通常は、ROMメモリ126にあるHTMLファイルによる)なしでは、装置設定をセットすることはできない。
複数の設定は、「config:set」にポストすることで、セットすることができる。そして、ストリームは、「setting.bitnumber:bitsize/value」という形式の行を含む。
【0332】
【表4】

【0333】
d)「extra」プロトコル
「extra」プロトコルは、主に<INC>、<IF>、および<TEMPLATE>タグと共に使用され、HTMLpテンプレートを本発明の大半のユーザインタフェースとして機能できるようにする。このプロトコルは、エクストラプロトコルハンドラ112cによって処理される。
【0334】
一般に、エクストラパラメータは、以下のいずれかからHTMLpテンプレートに渡される。
1)MMI102のCコード
2)argumentsストリングとして、ファイルURLに。これは、「file://filename?variablename=extra#data」の形式をとる。エクストラデータは、その変数名とともに格納され、かつ何のページであれ、ページがfilenameをフェッチするためのHTMLを完成させるために使用される。
3)形式データを次のURLに渡すために、新しいMETHOD=NEXT属性を使用した先の形式からのデータとして。
【0335】
さらに、HTMLpページにあるURLがフェッチされ、引数を持たない場合、フェッチされているURLを含むページに渡されたパラメータはいずれも、フェッチされているURLにも渡される。
【0336】
エクストラプロトコルハンドラ112cは、URLにマッチする引数を探して、該引数をストリームに変換する。例えば、「<INC src=extra:body>」は、HTMLpストリームへの「body」引数を含む。別の例として、標準のグラフィカル要素を有する標準フォーマットでメッセージを表示するために使用されるHTMLpページがあると仮定する。表示するメッセージは、HTMLページをロードするURLについての引数として与えられる。
【0337】
例えば、URL「file://message.html?message=Please+enter+a+valid+phone+number」がエクストラプロトコルハンドラ112に与えられる場合、これは、テキスト「Please enter a valid phone number」を変数名「message」を有するテキストストリングとして格納する。このエクストラデータは、ストリングデータを出力する「extra:message」URLの使用により、他のどんなページにも表示される。図22aから図22cは、この使用を図示したものである。この例では、エクストラデータは<INC>タグによって検索され、テキストストリングを直接的にページに組み込むことになる。
【0338】
一般に、エクストラプロトコルハンドラ112cは、HTMLpコンテンツハンドラ114cがHTMLpページにおける「extra」URLを構文解析する結果、呼び出される。そのように識別すると、URLは、エクストラプロトコルハンドラ112cに渡されて、エクストラデータをデコードすると共に検索し、これをHTMLpコンテンツハンドラ114cに戻して、ページにレンダリングする。
【0339】
e)内蔵プロトコル
内蔵プロトコルは、IMGタグのSRC属性で使用するため、内蔵アイコンおよびイメージへのアクセスを提供する。これらのアイコンおよびイメージは、メモリ126のROMに格納される。「内蔵」テキストは、URLのプロトコルコンポーネントを形成し、所望のアイコンの名称は、URLのデータコンポーネントを構成する。図23は、アイコンの好ましいセットと、それらを指定するための完全なURLとを示す。
【0340】
一般に、内蔵プロトコルハンドラ112aは、HTMLpコンテンツハンドラ114cがHTMLpページにおける「builtin」URLを構文解析する結果、呼び出される。そのように識別すると、URLは内蔵プロトコルハンドラ112aに渡されて、アイコンまたはイメージデータをデコードすると共に、メモリ126から検索し、これをHTMLpコンテンツハンドラ114cに戻して、ページにレンダリングする。
【0341】
C.ポータブルコンポーネント
再度図3を参照して、ポータブルコンポーネント116は、ユーザインタフェースエンティティとユーザインタフェースの実施に使用される他の機能的コンポーネントのセット、および無線通信装置100に必要とされる格納装置である。コンポーネントは、可搬性レイヤ118によって提供されるAPIに書き込むと共に、MMI102の基本的な実施要素としての役割を果たしながら、依然として異なる無線通信装置100との使用のためポータブルである。
【0342】
(1)グラフィックス
グラフィックシステム224は、画面表示136をウィンドウと呼ばれるセクションに分割する。ウィンドウは、子ウィンドウが完全に親ウィンドウ内に含まれる階層に構成される。しかし、本発明のウィンドウシステムは、他のウィンドウシステムとは異なり、2つのタイプのウィンドウ、「ダル(dull)」と「スプライト(sprite)」とを区別する。従来のシステムのように、あらゆるユーザインタフェースコンポーネントおよびウィンドウに各自のビットマップを持たせる(これは、より複雑なビットマップ処理を必要とする)のではなく、グラフィックシステム224は、ユーザインタフェースコンポーネントが通常重複しないという事実を利用する。グラフィックシステム224は代わりに、いくつかのウィンドウ(例えば、ダイアログボックス、または他のウィンドウと重複し、それらを隠す必要のある他のウィンドウ)をビットマップを有する(「スプライト」にする)ものとして定義する一方で、その他(「ダル」ウィンドウ)を、ビットマップを有する最も近くにある先祖のビットマップに描画する。この区別により、ユーザインタフェースコンポーネントの格納に必要なメモリの量が低減し、かつ画面表示136の更新プロセスが単純化される。
【0343】
ユーザインタフェース要素がウィンドウに引き出されるとき、描画は実際に直接画面表示136にではなくメモリ126におけるビットマップに起こる。ある時点で(実際に、コールバックキュー110が処理されるトップループにおいて)、これら任意かつすべてのビットマップへのすべての変更が画面表示136に転送される。この動作により、画面表示136の正確かつクリーンな更新が保証されると共に、基礎をなすビデオドライバを単純化する。該ビデオドライバは、メモリ126から画面表示136にビットマップを転送する必要があるだけである。
【0344】
グラフィックシステム224は、以下の基本的なグラフィックプリミティブを提供する。
・ライン(太いまたは細い、任意または特別な場合の単一ピクセル厚の垂直または水平、水平ライン、垂直ライン、および長方形もまたフィルパターンを有することができ、それらをドットまたは波線にする)
・長方形(外郭線または中実)
・ビットマップ(ピクセル当たり1つのビット、ステンシル(セットビットはカラーで描画されるが、クリアビットは何もしない)として、またはイメージ(セットビットは一色で描画されるが、クリアビットは別の一色で描画される)として)
・テキスト
【0345】
画面表示136の座標系は、座標が画面表示136上のピクセル間にあるようなものである。その結果、長方形が(a,b)から(c,d)に、もう一つを(c,d)から(e,d)に描画する場合、重複しない。
【0346】
テキストは、TextStateと呼ばれるデータ構造を用いて、描画かつ処理される。テキストは、各種の構成可能な属性を有する。
・ポイントサイズ(小、中、大に予めセットされる) ・スタイル(標準、太字、斜体、下線、固定幅、および取り消し線) ・カラー
【0347】
TextStateはまた描画位置を格納し、これは、描画されたストリングのすぐ後ろになるよう更新されるため、複数のストリングを、幅を計算する必要なく、次々と描画することができる。
【0348】
2.ユーザインタフェースガジェット
無線通信装置100のユーザインタフェースの大部分は、ソフトキー130およびソフトキーメニューの形で設けることができる。コンテンツエリア214は、通常、テキスト、アイコン、およびHTMLフォーム等を表示する。これらの特徴をサポートするために、多くのユーザインタフェースガジェット226が設けられる。
・Checkbox:チェックボックスおよびラジオボタンの双方を実施するために使用される(ラジオボタンは、ユーザが選択したときに、選択解除する必要のあるその他のラジオボタンを知るために、外部コールバックに頼る)。HTMLにおける<INPUT TYPE=checkbox>および<INPUT TYPE=radio>に応答して、インスタンス生成される。
・Icon:内蔵アイコンを表示する。
・LabelLine:標準の場所に標準フォントのオプションのテキストラベルを有する水平ライン。HTMLにおける<HR>タグによってインスタンス生成される。
・List:ユーザインタフェースにおける各種アイテムリストすべての基礎。特殊なリストのサブクラスは、個々のアイテムを描画し(Listによって配置される)、Listの選択をいつキーストロークまたは他の手段で調整すべきであるかを決定する。
・Popup:ユーザが1つまたは複数のアイテムを選択することができるストリングのポップアップリストを実施する。各アイテムは、それにバインディングされたストリング値を有する。SIZEパラメータが1であるとき、HTMLにおける<SELECT>タグによってインスタンス生成される。
・ScrollBanner:指定した速度で、右から左に、または左から右にスクロールすることができる単一行テキストばなーを実施する。HTMLにおける<MARQUEE>タグによってインスタンス生成される。
・StringList:Popupのリスト部分を実施するが、また、スクローリングリストとして独立することもできる。ソフトキーメニューは、StringListによって実施される。SIZEパラメータが1ではないとき、HTMLにおける<SELECT>タグによってインスタンス生成される。
・TextEdit:単一行または複数行テキスト編集エリア。HTMLにおける<INPUT TYPE=text>および<INPUT
TYPE=password>タグによってインスタンス生成される。
これらのエンティティは、各種グラフィック要素を表示するために、必要に応じて各種モジュールによって作成される。
【0349】
これら各種タイプのユーザインタフェース要素は、ページが構文解析されるとき、かつ対応するHTMLタグに応答して、HTMLpコンテンツハンドラ114cによって作成される。例えば、ページにおけるINPUTTYP=TEXTタグは、画面表示136の適切な場所にあるTextEditオブジェクトという結果になる。ユーザがアップまたはダウンキーで該オブジェクトを選択すると、かかるキーストロークがシェル106によりTextEditオブジェクトに渡されるため、ユーザによるキーストローク入力を受け取るよう、入力フォーカスが与えられる。
【0350】
ユーザインタフェースガジェットと関連するものは、テキストを入力かつ表示するための他の2つのモジュールである。TextEntryモジュール228は、キーストロークを許容して、それらをテキスト入力のためにコマンドにマッピングする。該コマンドは、仮の(後続するキーストロークに基づくさらなる変更の対象となる)キャラクタおよびワードの表示、仮のキャラクタおよびワードの置換を含み、最後の仮のキャラクタまたはワードを最終とし、カーソルまたは挿入シンボルキャラクタを移動する。
【0351】
テキスト入力を要求するエントリはいずれも、TextEntryモジュール228により登録されてから、キーストローク自身を挿入するのではなく、略すべてのキーストロークをそれに渡す。各種絵文字言語のフロントエンド処理も同様に、このモジュールで処理される。
【0352】
もう一方のモジュールは、TextWrapモジュール230であり、これは、任意の領域を処理すると共に、これら領域内のテキストおよびオブジェクトをラップする。このモジュールは、主にHTMLコンテンツの表示に使用されるが、複数行をラップすることができるリストエントリについても使用可能である。
【0353】
3.データ格納
実施のもう一つの要素は、データ格納232である。データ格納232は、以下の特性を有する単純な「flat−file」データベースである。
・レコード当たり255フィールドまで。フィールドは、名称および番号の双方を有するが、実際にデータにアクセスするには番号のみが用いられる。
・すべてのレコードは、論理的にすべてのフィールドを持つように定義される。格納最適化として、特定のレコードの特定のフィールドにデータが与えられていない場合、そのレコードの該フィールドは、スペースをとらない。
・各レコードは、レコードへのアクセスを得るために使用される一意の識別子である(今のところ16ビット)。
・データベースレコードは、直接操作されない。代わりに、レコードのフィールドを取得、セットする関数が使用される。
・データベースは、それ用に操作された8つまでのインデックスを持つことができる。各インデックスは、選択ルーチンと比較ルーチンとを有する。選択ルーチンは、いずれのレコードがインデックスの一部であるかを決定し、比較ルーチンは、インデックスにおけるレコードをソートするために使用される。インデックスが定義されると、これは、いずれのデータベースフィールドが選択および比較ルーチンによって使用されるかを指定する。レコードが変更されると、それらフィールドの1つが変更される場合のみ、レコードが再配置されるか、追加されるか、またはインデックスから削除される。
・レコードにアクセスするためには、2つの機能のうちの1つが、DataStoreRecordトークンを得るために呼び出される。エンティティがレコードの検査または操作を行うとき、DataStoreRecordDoneを呼び出す。
【0354】
4.ファイルシステム
無線通信装置100は、2つの基礎をなすファイルシステムと通信するファイルインタフェースを備える。
・コードにコンパイルされたデータ構造である読み出し専用ファイルシステム ・無線通信装置100のフラッシュメモリチップの中で分散されるフラッシュファイルシステム
ファイルアクセスは、関数の(最小)類似したセットを介する。
・FileOpen ・FileCreate ・FileRead ・FileWrite
・FileSeek ・FileTruncate ・FileClose ・FileDelete
【0355】
各ファイルシステムは、すべての基本的な動作を呼び出すルーチンを含む構造によって定義される。オープンファイルのリファレンスは、ファイルシステム特定データ、およびファイルがあるファイルシステムについてのルーチン表へのポインタを含む。ファイルが開かれると、上位レイヤが影響を受けるファイル名を検査し、適切なルーチン表を選択してから、そのテーブルにおけるOpenルーチンを使用して、ファイルを開く。その後、ファイルリファレンスを通して、ファイルにアクセスする。
【0356】
D.可搬性レイヤ
再度図3を参照して、可搬性レイヤ118の各種モジュールが示される。可搬性レイヤ118は、任意の電話制御モジュール120およびリアルタイムオペレーティングシステム122でMMI102を比較的単純に実施するように設計される。可搬性レイヤは、以下のモジュールを提供する。
【0357】
1.呼制御
呼制御モジュール140は、上位レイヤが呼を作成、操作し、DTMFトーンを生成すると共に、状態変更の通知を受け取れるようにする。
インタフェースは、動作が呼に対して行われるという意味では非同期であるが、各動作の成功または失敗は、動作が要求された後そのうち報告される。
【0358】
【表5】

【0359】
2.メッセージ制御
メッセージ制御モジュール142は、上位レイヤがショートテキストメッセージを送受信できるようにする。このレイヤは、より大きなメッセージのセグメント化および再組立をサポートしても、しなくてもよい。
【0360】
【表6】

【0361】
3.プラットフォーム
プラットフォームモジュール144は、プラットフォームに特定の関数を用意する。
【0362】
【表7】

【0363】
4.タイマ
タイマモジュール146は、上位レイヤが指定した時間量の経過後に、関数呼び出しを受け取れるようにする基本的なタイミングサービスを提供する。
【0364】
【表8】

【0365】
5.表示
表示モジュール148は、画面表示136を管理する。
【0366】
【表9】

【0367】
6.フラッシュドライバ
フラッシュドライバモジュール150は、上位レイヤファイルシステムモジュール234が無線通信装置100のフラッシュメモリチップに対する読み出しおよび書き込みをできるようにする。
【0368】
【表10】

【0369】
7.構成プロトコルハンドラ
このプロトコルハンドラ112bは、CコードおよびHTMLが無線通信装置100の構成設定を取得し、セットできるようにする。これらの設定は、上位レイヤで実施されるものであり、モジュールは、必要に応じて下位レベルコードへの他の設定と通信する。構成設定にアクセスする必要があるため、構成プロトコルハンドラ112bは、可搬性レイヤ118に配置されることが好ましい。
【0370】
構成URLは、取得およびセットの双方のために、装置設定内のビットをアドレス指定しうる。構成URLは、以下の構文を有する。
config:setting.bitnumber:bitsize
:bitsizeが存在しない場合には、1と仮定される。bitnumberは、0〜15であり、15が最上位ビットである。
【0371】
大部分の設定は、それらを必要とする任意のモジュールまたはページによってフェッチされうるが、電話のPIN番号等のいくつかの構成設定は、十分な特権を有するURL(通常、装置のROMにあるHTMLファイル)によってのみ取得可能なものもある。十分な特権(ここでも、通常装置のROMにあるHTMLファイル)なしでは、いずれの装置設定もセットすることはできない。
【0372】
以下は、構成プロトコルハンドラ112bの各関数の呼び出しに好ましい構成URLのセットである。
【0373】
【表11】

【0374】
要約すると、本発明は、システム、各種メソッド、および無線通信装置の柔軟性および機能性を実質的に強化するソフトウェア製品を提供する。本発明は、プロトコルハンドラおよびコンテンツハンドラの使用を含め、無線通信装置のすべての特徴および機能性に、マークアップ言語ベースのユーザインタフェースを介してアクセスかつ操作することができるシステムおよびソフトウェアアーキテクチャを提供する。HTMLpの拡張特徴およびHTMLpコンテンツハンドラは、特に、ウェブおよび他のコンテンツを無線通信装置の小さな画面表示に容易に表示できるようにすると共に、メニュー化、ナビゲーション特徴、およびHTMLのフォーム処理特徴を強化する。無線通信装置の電話または他の機能性へのアクセスを、マークアップ言語ベースのユーザインタフェースを通して提供することで、本発明は、サービス運営者が、熟練またはソフトウェア開発環境を必要とせず、または従来のMMIのソフトウェア管理問題なしで、新しいユーザインタフェースおよび異なる無線通信装置用のカスタム特徴セットを容易かつ迅速に生成できるようにする。さらに、本発明は、サービス運営者および製造業者が、個々でもまた各サービス運営者毎に異なるMMIソフトウェアを作成する必要なく、望むように無線通信装置を迅速かつ効率的にブランド化できるようにする。


付録A
シェル関数
シェル106は、キー処理、URL履歴スタック108管理、他のデータ処理に使用するために、本発明のその他の部分に多くの関数を提供する。これらについて、以下に手短に説明する。
【表12】

【表13】

【表14】

【表15】

【表16】

【表17】

【表18】

【表19】

【表20】

【図面の簡単な説明】
【0375】
【図1】本発明による無線通信装置のトップレベルのソフトウェアおよびシステムアーキテクチャの図である。
【図2】本発明による無線通信装置のサンプルユーザインタフェースページの図である。
【図3】本発明による無線通信装置のマンマシンインタフェースの詳細なソフトウェアアーキテクチャの図である。
【図4】URL履歴スタックの図である。
【図5】受信したURLの取り扱いにおけるシェルの動作のフローチャートである。
【図6a】ユーザインタフェースガジェットに関連するストリング入力を処理する際のHTMLpコンテンツハンドラの動作のフローチャートである。
【図6b】ユーザインタフェースガジェットに関連するストリング入力を処理する際のHTMLpコンテンツハンドラの動作のフローチャートである。
【図7】<KEY>および<KEYMENU>のタグを使用してキーメニューを示すHTMLpファイルおよびページの例である。
【図8】<HELP>タグにより、バナーをスクロールしているヘルプテキストを示すHTMLpファイルおよびページの例である。
【図9】テンプレートファイルについての<TEMPLATE>タグの使用を示すHTMLpファイルおよびページの例である。
【図10】電話帳を編集するためのHTMLpファイルおよびページの例である。
【図11】電話帳を編集するためのHTMLpファイルおよびページの別例である。
【図12】CHECKEDおよびSELECTED属性を評価するための、式の使用を示すHTMLpファイルおよびページの例である。
【図13】<INC>タグを含んだHTMLを示すHTMLpファイルおよびページの例である。
【図14】<INPUT>タグについてPHONENUMおよびPHONENAME属性を使用したHTMLpファイルおよびページの例である。
【図15】HTMLpコンテンツハンドラにより入力キーを処理するためのプロセスのフローチャートである。
【図16】複雑なフォームについての従来のHTMLファイルおよびページの例である。
【図17a】図17aはHIDDEN入力データを使用した従来の多重フォームアプローチを示すHTMLファイルおよびページの例である。
【図17b】図17bはHIDDEN入力データを使用した従来の多重フォームアプローチを示すHTMLファイルおよびページの例である。
【図18a】図18aはNEXTメソッドとともに使用されるマルチパートフォームを示すHTMLpファイルおよびページの例である。
【図18b】図18bはNEXTメソッドとともに使用されるマルチパートフォームを示すHTMLpファイルおよびページの例である。
【図19】<LINKMENU>タグを使用せずに、ハイパーリンクのメニューのデフォルト作成を示すHTMLpファイルおよびページの例である。
【図20】<LINKMENU>タグの使用を示すHTMLpファイルおよびページの例である。
【図21a】図21aは電話番号をダイアルするための各種ユーザインタフェースページを示す。
【図21b】図21bは電話番号をダイアルするための各種ユーザインタフェースページを示す。
【図21c】図21cは電話番号をダイアルするための各種ユーザインタフェースページを示す。
【図21d】図21dは電話番号をダイアルするための各種ユーザインタフェースページを示す。
【図21e】図21eは電話番号をダイアルするための各種ユーザインタフェースページを示す。
【図22a】図22aはアクティブコールを取り扱うための各種ユーザインタフェースページを示す。
【図22b】図22bはアクティブコールを取り扱うための各種ユーザインタフェースページを示す。
【図22c】図22cはアクティブコールを取り扱うための各種ユーザインタフェースページを示す。
【図23】「extra」プロトコルの使用を示すHTMLpファイルおよびページの例である。
【図24】内蔵プロトコルと併用されるアイコンおよびイメージの表である。
【図25】<DIAL>タグの使用を示すHTMLpファイルおよびページの例である。
【符号の説明】
【0376】
100:無線通信装置
102:MMI
104:ユーザインタフェース定義ファイル
106:シェル
107:ブラウザ
108:URL履歴スタック
110:コールバックキュー
112:プロトコルハンドラ
114:コンテンツハンドラ
116:ポータブルコンポーネント
118:可搬性レイヤ
120:電話制御モジュール
122:リアルタイムオペレーティングシステム
124:プロセッサ
126:メモリ
130:ソフトキー
132:関数
134:数字キー
136:画面表示
140:呼制御
142:メッセージ制御
144:プラットフォーム
146:タイマ
148:表示
150:フラッシュドライバ
200:ステータスバー
210:タイトルバー
212:ステータスライン
215:スクロールアロー
216:ソフトキーラベル
220:フォーカストライアングルおよび選択
224:グラフィックス
226:UI(ユーザインタフェース)ガジェット
228:テキストエントリ
230:テクストラップ
232:データ格納
234:ファイルシステム
236:ローカリゼーション
406:コンテンツハンドラ
408:エクストラデータ
410:次
412:開く、閉じる、起動、キー処理
414:特権
416:優先度
418:状態

【特許請求の範囲】
【請求項1】
表示画面と、
メモリと、
プロセッサとを備える無線通信装置であって、
前記メモリは、
前記無線通信装置の設定情報と、
前記設定情報を取得して前記無線通信装置の設定を行なうためのユーザインタフェースを定義する、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルと、
前記複数のユーザインタフェース定義ファイルをデコードして前記表示画面上に表示するための、前記プロセッサによって実行されるマークアップ言語ブラウザと、を記憶しており、
前記設定情報の一部は、所定のセキュリティレベルを有するユーザインタフェース定義ファイルを介してのみ取得されることを特徴とする無線通信装置。
【請求項2】
前記設定情報の一部は、前記無線通信装置のPIN番号を含むことを特徴とする請求項1に記載の無線通信装置。
【請求項3】
表示画面と、無線通信装置の設定情報を記憶するメモリと、プロセッサとを備える無線通信装置において、前記メモリにプログラムとして記憶され、前記プロセッサによって実行されるブラウザであって、
前記ブラウザは、前記設定情報を取得して前記無線通信装置の設定を行なうためのユーザインタフェースを定義する、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルを読み出し、
読み出した前記複数のユーザインタフェース定義ファイルを、デコードして前記表示画面上に表示し、
前記表示されたユーザインタフェース定義ファイルが所定のセキュリティレベルを有する場合のみ、前記設定情報の一部を取得可能であることを特徴とするブラウザ。
【請求項4】
表示画面と、無線通信装置の設定情報を記憶するメモリと、プロセッサとを備える無線通信装置において実施されるコンピュータ実施方法であって、
前記設定情報を取得して前記無線通信装置の設定を行なうためのユーザインタフェースを定義する、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルを読み出すステップと、
読み出した前記複数のユーザインタフェース定義ファイルを、デコードして前記表示画面上に表示するステップと、
前記表示されたユーザインタフェース定義ファイルが所定のセキュリティレベルを有する場合のみ、前記設定情報の一部を取得可能とするステップとからなる方法。
【請求項5】
少なくとも1つのソフトキーを備えた無線通信装置を動作するコンピュータ実施方法であって、
マークアップ言語で定義された第1のユーザインタフェース定義ファイルを受信するステップと、
該第1のユーザインタフェース定義ファイルを構文解析し、前記ソフトキーの1つとメニューアイテムのメニューの間の関連を格納するステップであって、各メニューアイテムはURLまたはアクションのいずれかに関連する、ステップと、
前記ソフトキーのユーザ選択の受信に応答して、メニューアイテムの前記メニューを表示するステップと、
アクションに関連する表示されたメニューアイテムのユーザ選択に応答して、該アクションを発効させるステップと、
URLに関連するメニューアイテムのユーザ選択に応答して、該URLによって指定される無線通信装置の通信機能を発効させるステップと、
を含む、方法。
【請求項6】
無線通信装置のプロセッサにより、ブラウザの実行で該無線通信装置の動作を制御するためのブラウザプログラム製品であって、該ブラウザは、
マークアップ言語で定義された第1のユーザインタフェース定義ファイルを検索する動作と、
該第1のユーザインタフェース定義ファイルを構文解析し、前記ソフトキーの1つとメニューアイテムのメニューの間の関連を格納する動作であって、各メニューアイテムはURLまたはアクションのいずれかに関連する、動作と、
前記ソフトキーのユーザ選択の受信に応答して、メニューアイテムの前記メニューを表示する動作と、
アクションに関連する表示されたメニューアイテムのユーザ選択に応答して、該アクションを発効させる動作と、
URLに関連するメニューアイテムのユーザ選択に応答して、該URLによって指定される無線通信装置の通信機能を発効させる動作と、
を実行する、ブラウザ。
【請求項7】
表示画面と、
メモリと、
少なくとも一つのソフトキーと、
プロセッサとを備える無線通信装置であって、
前記メモリは、
マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルと、
前記プロセッサによって実行されるマークアップ言語ブラウザと、を記憶しており、
前記ブラウザは、前記ユーザインタフェース定義ファイルを検索する動作と、
前記ユーザインタフェース定義ファイルを構文解析し、前記ソフトキーの1つとメニューアイテムのメニューの間の関連を格納する動作であって、各メニューアイテムはURLまたはアクションのいずれかに関連する、動作と、
前記ソフトキーのユーザ選択の受信に応答して、メニューアイテムの前記メニューを表示する動作と、
アクションに関連する表示されたメニューアイテムのユーザ選択に応答して、該アクションを発効させる動作と、
URLに関連するメニューアイテムのユーザ選択に応答して、該URLによって指定される無線通信装置の通信機能を発効させる動作と、を含むことを特徴とする無線通信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6a】
image rotate

【図6b】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17a】
image rotate

【図17b】
image rotate

【図18a】
image rotate

【図18b】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21a】
image rotate

【図21b】
image rotate

【図21c】
image rotate

【図21d】
image rotate

【図21e】
image rotate

【図22a】
image rotate

【図22b】
image rotate

【図22c】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2009−135922(P2009−135922A)
【公開日】平成21年6月18日(2009.6.18)
【国際特許分類】
【出願番号】特願2008−288508(P2008−288508)
【出願日】平成20年11月11日(2008.11.11)
【分割の表示】特願2000−542708(P2000−542708)の分割
【原出願日】平成11年4月7日(1999.4.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(591112522)株式会社ACCESS (91)
【Fターム(参考)】