JP2004506983A - サード・パーティ・アプリケーション開発の方法 - Google Patents
サード・パーティ・アプリケーション開発の方法 Download PDFInfo
- Publication number
- JP2004506983A JP2004506983A JP2002520129A JP2002520129A JP2004506983A JP 2004506983 A JP2004506983 A JP 2004506983A JP 2002520129 A JP2002520129 A JP 2002520129A JP 2002520129 A JP2002520129 A JP 2002520129A JP 2004506983 A JP2004506983 A JP 2004506983A
- Authority
- JP
- Japan
- Prior art keywords
- bluetooth
- wap
- software
- server
- portal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
WAP−Bluetooth環境で、設定された総合ビジネス・ポータルを介して、顧客及びサード・パーティ開発者に総合製品及び総合的なビジネス提案を提供する方法を記載する。この方法は、ビジネス・ポータルを使用して、資格を有するサード・パーティにWAP−BluetoothのSDKを提供することを含む。SDKは、WAP−Bluetooth開発環境、WAP−Bluetoothソフトウェア・モジュール、WAP−Bluetoothアプリケーション例、ブートローダ、Bluetoothスタックとオペレーティング・システムとドライバを含むソフトウェア・プラットフォーム、基本WAP−Bluetoothアプリケーション、及びドキュメンテーションを含み、これらの一部又は全てをオープン・ソースにすることができる。SDKは、Windows(登録商標)及びUNIX向けのグラフィカル・ユーザ・インタフェース開発ツールを含む。資格のあるサード・パーティが開発した総合WAP−Bluetooth製品は、製品レジストリに登録して、消費者及びサード・パーティ開発者がそれを利用できるようにする。WAP−Bluetoothハードウェア製品に対する顧客からのハードウェア注文はポータルを通じて処理し、支払いもポータルを通じて受領する。注文は、総合ビジネス・ポータルと関連付けられた中央位置から行われる。総合WAP−Bluetooth製品に対する消費者からのソフトウェアの注文は、ポータルを通じて処理し、支払いを受け取り、注文を完了する。総合製品は、ポータルを使用して消費者に提示し、試用的に提供する。WAP−Bluetoothのハードウェア製品には、WAP−Bluetoothサーバ、WAP−Bluetooth移動端末、及び移動WAP−Bluetoothサーバが含まれ、これらはそれぞれ少なくとも1つのBluetoothインタフェースを含む。
Description
【0001】
背 景
本発明は、ワイヤレスの無線通信システムに関する。詳細には、本発明は、位置依存型の情報サービス・アプリケーション向けのサード・パーティ・アプリケーション開発を提供する方法に関する。
【0002】
今日の無線ネットワークには多量の情報のフローがあり、更に増加しつつある。今後3年間で、無線加入者の数は現在のおよそ1億人から10倍に増加して、2003年にはおよそ10億人になるものと推定される。無線のデータ・トラフィックの大半は音声指向であるが、無線装置に対するインターネット関連サービスの提供に関連する情報フローが増加しつつある。例えばインターネット・サービスの提供の結果生じる情報フローの増加により、特定のターゲット・グループへの到達を所望する情報提供者にとっても、また特定の情報の入手を所望する加入者にとっても次第に困難になりつつある。この問題の解決法の1つは、位置指向サービスを無線ネットワーク規模でワイヤレスの顧客に提供することである。
【0003】
現在いくつか存在する位置に基づくサービスには、例えばHollenbergによる米国特許第6,091,956号に記載されたものなどがある。この特許には、モバイル・ユーザに、サービスと、その現在位置に近接する場所及び出来事に関する時間が重要視される情報を提供するシステムが記載されている。このシステムには、専用の補助的コンピュータ端末が含まれるが、これは、位置に基づくサービスの提供に例えばセルラ電話を使用するとコストが高くつくという理論から提供される。加えて、この補助的端末には、位置決定機能を提供するために高コストのGPSサービスも提供される。このシステムでは、例えば、信頼性が低く、帯域に制限があることで悪評高い衛星リンクを通じて、モバイル・ユーザ及びその位置と、販売者及びその位置とを相互に関連付けるのに、いくつかの位置決定機能を提供しなければならないという点で問題が生じる。加えて、どのようにアプリケーションを開発し、それをどこでどのように実行するのかについての明確な規定がない。例えばメニューの説明は与えられるが、メニューを提供するのがサービス提供者なのか、あるいは端末の開発者なのかについての規定は示されていない。
【0004】
Moon他による米国特許第6,058,098号に記載されている別のシステムは、携帯式のインテリジェント通信装置に自動的にソフトウェアを構成することを含み、このソフトウェアの設定は位置情報に依存する。この場合も、位置情報は例えばGPSによって提供されてもよく、セル・サイズの範囲内で相互に関連付けることができる。販売者が提供するような位置に基づく情報や、他の位置に基づくサービスを提供することは開示されていない。更に、アプリケーションは、装置の製造者による携帯式インテリジェント通信装置に固有に設計する必要があるのか、あるいはそのような位置情報をいずれのソフトウェア・アプリケーションに提供することができるのかどうかも開示されていない。
【0005】
ワイヤレス・アプリケーション・プロトコル(WAP)の登場により、新たな、そして多くの場合は非常に特殊目的化した方法でユーザの役に立つような、特にサード・パーティによるアプリケーション開発の可能性が実質的に無限にあるという認識が生じた。インターネット使用の拡大によっても、情報サービスの提供に無限の可能性が生まれた。今日の高帯域幅環境で豊富に得られる無線媒体を導管(conduit)として使用して、ワールド・ワイド・ウェブ(WWW)ページ又はWAPページへのアクセスを提供するのと併せて、価値を付加したサービスを提供する機会は豊富にある。更に、情報を自発的な(unsolicited)方法でユーザに送信する「プッシュ」サービスに向かう傾向により、ユーザが関心を持つ情報や、端末に知られる要因、あるいは例えばオペレータ・インタフェースを通じて移動端末に入力することのできる要因、あるいは事前にプログラムすることのできる要因に応じて提供することのできる情報をユーザに与えるアプリケーションを提供する機械が増える。
【0006】
これ以外のWAPアプリケーションの例には、インターネット情報の検索が含まれ、この場合は、無線加入者がインターネットにアクセスすることを可能にするためWAPが使用されてもよい。特定の移動端末は、ユーザがインターネットにアクセスする能力を制限する場合もあることに留意されたい。メモリ・サイズなどの制限により、ユーザが移動無線端末を使用してインターネットをナビゲートする能力が著しく低下する場合もある。しかし、サービスマンの派遣や、追加情報の対話型要求、支払いサービスへのアクセス、通話セットアップ・サービスのメニューなどを含む電子メール通知といった他のアプリケーションをWAPによって促進することができる。
【0007】
残念なことに、WAPサービスを提供する機会はこれまで、専門知識を備え、業界で無線コミュニティとの密接なつながりを持つ者に限られており、その結果アプリケーション開発が低調だった。加えて、かなり広い基盤でWAPサービスを提供する必要性から、例えば小規模販売者などやそれほど裕福でないユーザなど、WAPによって恩恵を受ける可能性の低い層が、実質的にWAP市場から除外されている。更に、魅力のあるWAPアプリケーションの数が限られていることに伴い、一般に無線装置の訴求力が限られてしまうという望ましくない結果が生じる。従って、より多種多様なWAPアプリケーションが広く利用できるようになれば、あらゆる種類の移動端末に対する需要が一気に高まるものと思われる。WAPについての更に詳細な情報については、Christer Erlandson及びPer Ocklindによる「WAP−The Wireless application protocol」, Ericsson Review, No.4, 1998を参照されたい。Bluetoothについてはある程度言及されており、バンキング環境の特別な計算機についての一例が提供されるが、その計算機のために機能するアプリケーションの開発法についての開示はない。特別なハードウェアのために設計された特別なアプリケーションの場合は、目的とするハードウェアだけで動作することから、より広いユーザ基盤に対するアプリケーションの訴求力が制限される点で問題が生じる。
【0008】
このため、当技術分野では、位置に基づく情報サービスとそれに関連するアプリケーションを効率的かつ費用効果の高い方式で提供し、それにより無線端末の需要を更に促進する方法が望まれる。
【0009】
更に、当技術分野では、スケーラビリティがあり、複数の幅広いアプリケーション・カテゴリに応用することのできる位置に基づく情報サービス・アプリケーションを提供し、それによりこの場合も、その方法に準拠する移動端末及び同様な装置の需要を促進するような方法が望まれる。
【0010】
更に、ソフトウェア・アプリケーション開発を助長し、移動端末ユーザに更に多くの機能と利便性を提供することにより、更に移動端末の需要の増加をもたらす方法が望まれる。
【0011】
更に、ソフトウェア・アプリケーション開発を助長する方法もまた望まれ、より優れたアプリケーションを開発することによりこの方法自体の需要が高まるという意味で、方法自体の需要が増大するであろう。
【0012】
概 要
当分野のこれらのニーズ及びその他のニーズを満たすために、WAP−Bluetooth環境でウェブ・サイトなどの設定した総合ビジネス・ポータル(integrated business portal)を介して、単数又は複数の顧客、及び1つ又は複数のサード・パーティ開発者に、総合的な製品及び総合的なビジネスの提案を提供する方法について説明する。
【0013】
このため、本発明の各種の実施形態によれば、この方法は、例えば認可プロセスを使用して認可された資格を有するサード・パーティに、WAP−Bluetoothのソフトウェア開発キット(SDK)を提供することを含むであろう。SDKは、総合ビジネス・ポータルを使用してサード・パーティ開発者に提供することができる。本発明によれば、この総合ビジネス・ポータルは、サード・パーティ・アプリケーションの提供をサード・パーティ開発者にとって魅力的なものにする手段として、その提供者と関連付けた強力なブランド化力(branding)を有することに留意されたい。従って、資格を有するサード・パーティが開発した総合WAP−Bluetooth製品は登録され、例えば、製品レジストリで顧客やサード・パーティ開発者が総合WAP−Bluetooth製品を入手できるようにする。製品レジストリは、総合ビジネス・ポータルすなわちウェブ・サイトで利用できる製品データベースなどでよい。
【0014】
更に本発明の各種の代表的実施形態によると、例えばWAP−Bluetoothサーバ、WAP−Bluetooth移動端末、及び移動型WAP−Bluetoothサーバなど、いずれも少なくとも1つのBluetoothインタフェースを含むWAP−Bluetoothハードウェア製品に対する顧客からの1つ又は複数のハードウェアの注文は、総合ビジネス・ポータルを通じて処理することができる。更に、ハードウェアの注文に対する支払いを総合ビジネス・ポータルを通じて顧客から受け取ることができ、注文は全て、総合ビジネス・ポータルと関連付けられた中央位置から行うことができる。顧客からの総合WAP−Bluetoothソフトウェア製品に対するソフトウェアの注文は、総合ビジネス・ポータルを通じて処理することができる。更に、ソフトウェアの注文に対する顧客からの支払いと注文の履行は、総合ビジネス・ポータルを通じて達成することができる。
【0015】
更に本発明の各種の代表的実施形態によると、総合ビジネス・ポータルを使用して総合WAP−Bluetooth製品を提示し、試験的に顧客に提供することができる。このため、顧客は、その製品が自分のニーズを満たすかどうかを見極める前に製品を試してみることができる。また、試験的に製品を提示し、提供することにより、製品のサード・パーティ開発者は、例えばどのようなアップグレードが必要なのかを見極める機会を得ることができる。
【0016】
上記のようなSDKの提供によれば、SDKは次の構成要素の1つ又は複数を含むであろう;WAP−Bluetooth開発環境、WAP−Bluetoothソフトウェア・モジュール、及びドキュメンテーション。SDKは更に、WAP−Bluetoothアプリケーションの例を含むことができる。より具体的には、SDKは例えば、ブートローダ、ソフトウェア・プラットフォーム、及び基本WAP−Bluetoothアプリケーション、の1つ又は複数を含むであろう。ソフトウェア・プラットフォームは、Bluetoothスタック、オペレーティング・システム、及び例えば移動WAP−Bluetooth端末又はサーバなどのターゲット・ハードウェアにある、1つ又は複数のハードウェア・インタフェースに対応する1つ又は複数のソフトウェア・ドライバも含むことができる。本発明により提供されるSDKは、オープン・ソースのソフトウェア・コンポーネントを含むことに留意されたい。更に、WAP−Bluetooth開発環境は、例えばMicrosoft(登録商標)Windows(登録商標)動作環境やUNIX動作環境などで実行するアプリケーションの開発に適したグラフィカル・ユーザ・インタフェースの開発ツールを含むことができる。
【0017】
本発明の目的及び利点は、図面と併せて以下の詳細な説明を読むことにより理解されよう。
【0018】
詳細な説明
以下で、本発明の様々な特徴について図面を参照して説明するが、図面において同様な部分は同じ参照符号で識別している。
【0019】
従って、例えば位置に基づく情報サービスのアプリケーション開発を提供する方法を説明する。本発明の各種代表的実施形態によると、位置指向サービスを提供することができ、このサービスでは、Bluetooth規格に従って、例えば移動電話、PDAなどのWAP−Bluetooth装置、あるいはBluetoothインタフェースと、例えば本発明に従って開発された適切なアプリケーションとを有する任意の装置にローカルな情報を通信し、更に本発明によるWAP−Bluetoothサーバからサービスを提供する。
【0020】
代表的なBluetooth環境100を示す図1Aから分かるように、ユーザ140が、カバレージ範囲121を有するBluetooth機能を備えた施設に接近すると、Bluetooth端末130と、例えばインターネット110との間に接続が確立され、Bluetooth端末130に送信するメッセージ122を通じて、顧客位置本位の情報120をユーザ140に転送することができる。この方法により、従来技術による解決法では不可能であった位置に特化した方式で、非常に局地化した情報をユーザ140に転送することができる。このような近接指向あるいは位置に依存したサービスの潜在的な応用例は文字通り無限にあり、またこれについては以下でより詳細に説明するので、ここでは本発明の各種実施形態による基本的なBluetoothサービスを理解することで十分である。
【0021】
Bluetoothサービス環境100は、WAP−Bluetoothサーバ140を考察することによって更に理解することができる。このサーバ140は、例えば付加的な高速インターネットや、付加的なウェブ・サイトへの補助的サーバへの接続を提供するために標準的なコンピュータ150に接続するか、又は単にスタンド・アロン方式で動作することができる。標準的コンピュータ150を使用して、例えばケーブルを使用し、シリアル・インタフェースを通じて、WAP−Bluetoothサーバ140にアプリケーションをダウンロードできることに留意されたい。更に、WAP−Bluetoothサーバ140のメンテナンス用ソフトウェアを開発して、それを例えば標準的なコンピュータ150で実行することもできる。
【0022】
従って、Bluetooth端末130には、例えばサード・パーティ・アプリケーション開発者である顧客が仲介を希望するプッシュ・サービスが提供されてもよい。主としてBluetoothサーバ140に与えられる範囲が制限されているために、このような方法でサード・パーティの顧客が仲介を望む情報は、他の情報サービスから分離できることに留意されたい。100mの範囲が可能であるが、10m〜30mの一般的な範囲にすると、本発明と、Bluetooth仕様v1.0Aに概説されるBluetooth規格とに準拠するBluetoothベースのサービス規定を使用して、一定量の固有の分離が可能になることが保証される。具体的には、同Bluetooth仕様495〜513ページ、Interoperability Requirements for Bluetooth as a WAP Bearerが、本発明による位置依存情報サービスの提供とWAP−Bluetoothアプリケーションの開発を理解するための基盤を与えてくれるだろう。従って、サーバ140は、例えば1つ又は複数のWAP−Bluetoothサーバ140を購入している顧客といった、アプリケーション開発及び/又はサービス提供顧客が仲介を希望するウェブ・ページを、ユーザ140のWAP−Bluetooth端末130にプッシュすることができる。
【0023】
ユーザ140が提供された情報を実際に見る可能性を高めるために、WAP−Bluetoothサーバ140は、本発明の各種実施形態により、プッシュされる情報を無償で提供することが好ましいことに留意されたい。また、サービス提供/アプリケーション開発者である顧客がインターネット・アドレスしか持っていない場合、普通のユーザは、例えば従来のGSM装置などを介してインターネットに接続しなければならず、これにはコストと時間が更に必要になることに留意されたい。従って、WAP−Bluetoothサーバ140は、WAPとBluetoothの双方を使用するサービスを提供して、位置固有の情報をWAP−Bluetooth端末130に仲介する。端末130は図では例えばセルラ電話として表しているが、例えばモバイル・インターネットや追加的な総合サービスを提供するPDAなどの装置の形態にしてもよい。
【0024】
図2A及び図2Bからなる図2を参照すると、包括的なWAP−Bluetoothサービス提供及びアプリケーション開発環境200を表す、より詳細なエンティティ関係図が示されている。本発明の代表的実施形態によるハードウェア及びソフトウェア動作の詳細が更に示されている。図の最下部の電源221は、全回路が使用する可能性のある3.3Vの最小安定化電圧を生成するのに必要なハードウェアを表している。電源221は更に4.5〜12Vの入力電圧で動作し、また入力極性が反転した場合、あるいは入力電圧が30Vにまで高まった場合に損傷を受けないことが好ましい。リセット回路222が設けられてもよく、これは電源の電圧が上昇し3.1Vを超えたときに、ハードウェアを既知の明確な起動状態に入らせる機能を担うことができる。例えばアクティブ・ローのリセット信号を、例えばCPU、Bluetoothトランシーバ・モジュール(以降「Bluetoothインタフェース」と称する)、及びFLASHメモリなど、WAP−Bluetoothサーバ中の任意のハードウェアに供給することができる。
【0025】
Init223は、リセットによる起動の直後にブートローダ233が実行するソフトウェアである。Init223は、例えばメモリなどへの接続のセットアップなど、WAP−Bluetoothサーバ・ハードウェア環境220の基本的なセット・アップを行うことができる。ブートローダ233自体を外部FLASHメモリ内に常駐させることができるので、init223ソフトウェアがチップ・セレクトをセットアップする前の起動時にFLASHメモリを接続して、FLASHメモリにアクセスできるようにしなければならないことに留意されたい。init223プロセスの一部として、有効な電力がシステム中にあることをユーザに示すために、ステータスLED211をオンにすることができる。更にinit223の一部として、パワーオン・セルフ・テスト226で基本ハードウェアのテストを行うことができる。エラーが発見された場合は、それをエラー表示227として伝えることができる。軽微なエラーしか発見されない場合、このユニットは動作の継続を試みるが、重大なエラーがあると停止を試みる。
【0026】
深刻なエラーが生じずにinit223が実行された後、例えばWAP−Bluetoothアプリケーション・ソフトウェア・ロードのメモリの完全性性確認を含む、ソフトウェア完全性テスト225を実行することができる。従って、記憶されたアプリケーションのチェックサムを計算し、そのアプリケーションをダウンロードした際に別個に記憶しておいたチェックサムと比較することができる。チェックサム・エラーが見つかった場合、プロセスの実行はブートローダ233にとどまり、エラーのあるアプリケーションは起動しない。ソフトウェア完全性チェック225中にエラーが見つかった場合は、エラー・タイプの違いに応じてLEDを点滅させることにより、ユーザにエラーの原因を大雑把に表示することができる。エラーの種類は、エラーごとに異なる点滅回数を使用することによって示すことができ、複数のエラーが見つかった場合は最も重大なものだけを示すことが好ましい。LED自体がエラーの原因である場合には、このような表示法は適用できないことに留意されたい。
【0027】
RS232ポート228が、シリアル接続のために提供され得る。RS232ポート228には、例えば、CPUに組み込むことのできる、高度なバッファリングを行うUART、及び例えば電気的なRS232レベルと論理的な3.3Vの信号レベルの間の変換を処理する外部RS232トランシーバを含むことができる。RS232ポート228回路は、EMC/ESD問題を回避/抑制するために、何らかのフィルタリング機能も含むことができる。RS232ポート228は、最高115.2kbpsで動作するように設計することが好ましい。シリアル回線を介して通信するには、1組のシリアル・ドライバ230も必要である。デフォルトで、シリアル回線は、例えば8データ・ビット、パリティ・ビットなし、Iストップ・ビット、9600bpsといった標準的な非同期通信用にセット・アップすべきである。更にブートローダ233は、単純なブートローダ・プロトコル235を使用して、例えばメンテナンス・アプリケーション234と通信できることに留意されたい。
【0028】
有効なWAP−BluetoothアプリケーションがFLASHメモリ内にあり、メンテナンス・ツールからの接続が確立されていない場合、WAP−Bluetoothアプリケーションが、起動後に明確に定めた時間が経過してから起動されてもよい。この時間遅延の目的は、メンテナンス・ツールから要求があった際に、誤動作するアプリケーションがブートローダに入らないようにすることである。このため、WAP−Bluetoothを起動する前に、起動時にメンテナンス・ツールがブートローダ233と接続することのできる時間枠がある場合がある。代表的WAP−BluetoothサーバのCPUは更に、高度なタイマ・ドライバ231を備えることができる。ただし、これを最大に活用するために、いくつかのソフトウェア・ドライバが更に必要となる場合もある。誤動作するアプリケーションが偶発的にそれ自体を消去することができないように、FLASHドライバ232はブートローダ233に記憶して保護することができる。更に、ブートローダ233を記憶するセクタをハードウェアで保護して、ソフトウェアがそれを偶発的に消去できないようにすることができる。FLASHメモリのセクタに書き込み又は消去をするには、特別のソフトウェア・ドライバが必要である。FLASHプログラミングの特殊な特性の1つは、FLASHドライバ232は、それが書き込み/消去を行おうとする同じメモリ・チップからは実行することができないことである。従って、FLASHドライバ232は、使用前にFLASHからRAMにコピーされる必要がある。
【0029】
当業者には理解できるように、ブートローダ233は、基本的なハードウェアの初期化、基本的なシステム・テスト、及びWAP−Bluetoothアプリケーションの起動を担当する小規模なスタンドアロン・アプリケーションである。オプションで、管理者は、シリアル・ブートローダ・プロトコルを使用して新しいデータを装置にダウンロードすることにより、WAP−Bluetoothアプリケーションを更新又は交換することができる。ブートローダ233は、FLASHメモリの専用セクタに記憶することができ、起動中にブートを行うことが可能である。ブートローダ233は、製造プロセスの一部として、WAP−Bluetoothサーバにプログラムしてもよいことに留意されたい。またアプリケーションのソフトウェアによって誤って上書きすることができないように、ブートローダ233は保護することができることに再度留意されたい。
【0030】
ブートローダ233に加えて、低レベル動作のためにeCos295を使用することができる。eCos295は、オープン・ソース方式、ロイヤリティ不要、高度に構成可能な、組み込みシステムに理想的なオペレーティング・システムであることが好ましい。WAP−Bluetoothアプリケーションに対するサポートによれば、eCos295オペレーティング・システムは、例えばシリアル・デバイス・ドライバなど異なる種類のハードウェアに対するサポートを提供することができ、SDK280の中枢部分と見なすことができ、サード・パーティ開発者によるアプリケーション開発を容易にする。また、eCos295は、スレッド、mutex、及びタイマといった構成要素を実装するので、例えばBluetoothスタック290をWAP−Bluetoothサーバに移植することが容易になる。従って、eCosは、例えばTCP/IPスタックなどを加えることにより、WAP−Bluetoothサーバの機能を拡張するのを容易にする。
【0031】
ホスト・コントローラ・インタフェース(HCI)294は、Bluetoothスタック290の付加的部分である。HCI294は、ホストとBluetoothハードウェア間の均一のインタフェース、すなわちBluetoothハードウェアのリンク・マネジャを提供することができる。HCI294は透過性も提供することができ、例えば同じHostソフトウェアを、RS232やUSBなど異なるハードウェアで使用することができる。サービス・ディスカバリ・プロトコル(SDP)291は、Bluetoothスタック290の更に別の部分である。SDP291は、例えば端末アプリケーションが、サーバ・アプリケーションから提供されたサービスの存在を見つける能力を提供することができる。WAP−Bluetoothサーバは、端末にサービスを提供する典型的なサーバ・アプリケーションである。ただし、WAP−over−Bluetoothのプロファイルの欠如のために、SDP291の使用は、初期バージョンのWAP−Bluetoothサーバに限られる場合があることに留意されたい。ロジカル・リンク・コントロール及びアダプテーション・プロトコル(L2CAP)293は、Bluetoothスタック290の更に別の部分である。L2CAP293は、例えばいくつかの上位層プロトコルの使用を可能にするプロトコル多重化、例えば上位層プロトコルのパケットを区分することができるセグメンテーション及び再組み立て、例えばQoS規約のネゴシエートなどのサービス品質の保証、などの機能を提供する。RFCOMM292は、Bluetoothスタック290のまた別の部分である。RFCOMM292は、2台のBluetooth装置間の単純なシリアル・ケーブルの置換をシミュレートする。本発明によるWAP−Bluetoothサーバは、最高7つのRFCOMM292構成要素のインスタンスを使用して、最高7台の端末とのシリアル通信をシミュレートできることに留意されたい。更に、代表的WAP−Bluetoothアプリケーションでは、WAP情報は、例えばメンテナンス・アプリケーションにリンクさせてアプリケーションとともに記憶しても、アプリケーションとは別個に記憶してもよいことに留意されたい。WAP情報を個別に記憶する場合、本発明の代表的実施形態によるWAP−Bluetoothサーバは、FLASHメモリ・ファイル・システムを必要とすることが好ましい。このような構成要素はFLASHメモリを使用して、例えばファイルを開く、ファイルへの書き込み、及びファイルを閉じるなどの機能を使用することによりファイル・システムをシミュレートする。
【0032】
代表的アプリケーション270のためのグラフィカル・ユーザ・インタフェースを提供するために、Microsoft(登録商標)Windows(登録商標)バージョンのSDK280は、好ましくはWindows(登録商標)NT及び9x向けの一般的GNU開発ツール及びユーティリティの一部から構成されるCygWin開発環境275を使用することが好ましい。CygWin開発環境275は無償で利用することができ、その構成要素は、例えばGPLやパブリック・ドメインなど、各種のライセンスで保護されている。従って、binutils271は、例えばターゲット・プラットフォームのバイナリ、例えばオブジェクトやライブラリ・ファイルを操作するための小規模な基本ツール・セットである。更に、GNUコンパイラ・コレクション(gcc)272は、例えばARM7TDMIプロセッサなど、WAP−Bluetoothハードウェア内のCPU向けのC及びC++のクロスコンパイラを含むことができる。Gcc272はまた、再配置可能なオブジェクト・モジュールを、位置決定されたELFバイナリ内にリンクすることができるリンカも含むことができる。Gdb/インサイト273は、テキスト・モードのクロス・デバッガであることが好ましく、ターゲット環境のシミュレーション、又はWAP−Bluetoothハードウェアのリモートからのデバッグに使用することができる。リモート・デバッグは、下記で更に詳しく説明するように、低コストのシリアルRS232接続をgdbスタブ274と併せて使用するか、又はWAP−BluetoothハードウェアのCPUコアに内蔵されたハードウェア・エミュレーション機能に、高性能JTAGデバッガを通じて直接接続することにより行うことができる。インサイトは、gdb用の簡便で強力なグラフィカル・ユーザ・インタフェースである。gdbのグラフィカル・インタフェースの選択肢は多くあるが、インサイト・ユーザ・インタフェースの利点の1つは、Windows(登録商標)とUnixの両プラットフォームに移植することが可能なことである。WAP−Bluetoothハードウェアのリモート・シリアル・デバッグを行う場合、gdb/インサイト273は、スタブと呼ばれるターゲット・ハードウェアで実行されるソフトウェア・モニタとの通信を必要とすることが好ましく、またスタンドアロン・アプリケーションとするか、又はデバッグを行うアプリケーションにリンクすることが好ましい。本発明による代表的WAP−Bluetoothサーバでは、gdbスタブ274は、例えばブートローダ233にリンクすることができ、またコードとしてSDK280に供給して、WAP−Bluetoothアプリケーションにリンクすることもできる。
【0033】
本発明によるWAP−BluetoothサーバのCPUは、例えばARM社から入手可能なものなど、32ビットのRISCアーキテクチャであることが好ましい。このようなCPUは、“ARM”32ビット・モードか、又は“Thumb”16ビット・モードでコードを実行する能力を有する。どちらのモードによる実行にも利点と欠点があるので、SDK280は、ツールセット283の形態でARMとThumb両方をサポートするように設計することが好ましい。SDK280とともに提供されるドキュメンテーション282に従い、明確に系統立て注釈をつけたソース・コードと、例えばREADMEファイルなどのドキュメンテーションを含む例281を提供することができる。例281の目的は、サード・パーティ開発者がWAP−Bluetoothハードウェア用のアプリケーションの開発を容易に開始できるようにすることである。単純な例281は例えばLEDを点滅させることを含み、一方複雑な例281はWAP−Bluetoothアプリケーション自体を含む。例281を理解するのに必要とされる労力は、概略仕様だけからWAP−Bluetoothアプリケーションを直接理解しようとする場合よりは少ない。以下で更に詳細に説明するように、WAP−Bluetoothサーバ・ハードウェアの供給者は、サード・パーティ・ソフトウェアの最終的な認可に最も直結するような方法で標準に従って書かれた例281を提供することが好ましいことに留意されたい。
【0034】
先に指摘したように、SDK280は、GNU開発環境、ソフトウェア・コンポーネント、及び例えばインストール及び操作を含むドキュメンテーション282を含み、更にいくつかの例とアプリケーション・ノートを含むことが好ましい。GNUツールセット283は、例えばWinNT及びLinuxをメイン・ターゲットとして含む複数の開発プラットフォーム環境で使用するために設計することができる。ただし、この他のWin32プラットフォーム及びUNIXプラットフォームも適切な開発プラットフォームとして機能すると考えられることに留意されたい。オプションとして、WAP−Bluetooth装置の機能に役立つアプリケーションを提供することができるが、これはバイナリのWAPページをWAP−Bluetooth装置にダウンロードする機能を含んでいる。署名アプレット218を提供することができるが、この中では例えばローカル・ファイルの読み出し及び書き込みなど特別の権限をブラウザによってJavaスクリプトに与えることができる。これは通常は信頼されないアプレットでは行うことができない。署名アプレット218は、下記のWMLテンプレート219a及びWAP/WMLコンパイラ219bに関連する項で説明する機能を実施することができる。
【0035】
その名前が示すように、WMLテンプレート219aは、WAPページの作成に使用することができる。更に、WAP/WMLコンパイラ219bはWAPページ用のコンパイラであり、WMLで書かれたページをバイナリWAPフォーマットに変換し、それをWAP−Bluetoothサーバ装置にロードすることができる。外部ケーシング217を提供することができ、これはWAP−Bluetoothサーバの回路基板を保護し、装置に魅力的な印象を与える。更に、外部ケーシングは、前述の同時係属のデザイン出願第D00828号に記載されるような機能的及び非機能的な特徴を提供できることに留意されたい。
【0036】
更に、PDA及びそれに関連する移動端末へのファイルの転送方法についてのソース・コード例を含む例281を、SDK280の標準部分として提供することが望ましいことに留意されたい。従って、本発明の各種実施形態によると、サード・パーティのソフトウェア・アプリケーション開発者が、WAP−Bluetoothサーバを配信プラットフォームとして使用して特定のサービスを提供することを希望する顧客の興味を引くような高品質アプリケーションの基盤282を作成するために、初期段階で、WAP−Bluetoothサーバ・ハードウェアの初期のリリーズに関与することが想定される。更にサード・パーティ開発者のために、サイズが約50Kのソフトウェアのダウンロードなどのリソース283を提供することができる。更に本発明によると、WAP−Bluetoothサーバは、サード・パーティのソフトウェア開発者に向けて新しいビジネス284を作り出すこともできることに留意されたい。ウェブ・サイトなどを通じたサード・パーティ開発者による相互のSDKの相互作用の提供は、前述の同時継続出願第040042−003号に更に記載される方法によって提供することができる。サード・パーティ開発者アプリケーションの販売促進、ニュース・グループなど、例えば独自のウェブ・サイト250における特別の機能は、開発者コミュニティ259の成長を促進するという利点を有する。従って、WAP−Bluetoothサーバのアプリケーション開発者向けのウェブ・サイト250は、WAP−Bluetoothが、いつ使用や、サード・パーティ・アプリケーション開発者などに利用可能になるかについての情報を含むことができる。更に、シングル・セッション213のBluetoothデータ転送は、WAP−Bluetoothサーバと1台の移動端末間の転送を含むことができる。この機能はRFCOMM層を使用して、2台の装置間の単純なシリアル・ケーブル置換をシミュレートする。WAP−Bluetoothサーバは、自動的に移動端末に接続することができてはならず、ハード・コード化することが好ましい。マルチ・セッション212のBluetoothデータ転送は、WAP−Bluetoothサーバと数台の端末間の転送を含むことができる。このため、WAP−Bluetoothサーバは、エリアに入ってきた新規の端末に自動的に接続できてはならず、また例えば端末との接続はハード・コード化することができる。要求があると、各移動端末には同じWAPコンテンツを送信することができる。
【0037】
本発明による代わりの代表的実施形態では、WAP−Bluetoothサーバは、接続する装置の合計数が、1台のWAP−Bluetoothサーバによってサービスすることができる最大数を超えない限りは、受信エリアに入ってきたBluetooth移動端末やその他のWAP−Bluetoothサーバと自動的に接続を確立することができ、この最大数は7台であることが好ましい。サービス・エリアから離れる移動Bluetooth端末は、自動的に接続が切断される。接続すると、新規の移動Bluetooth端末にはそれぞれ同じWAPコンテンツを送信することができる。WAP−over−Bluetoothプロファイルが完了すると、WAP−BluetoothサーバはWAP機能を有する端末全てに連絡を試みるが、それ以前には、WAP−Bluetoothは、例えばWAP−Bluetooth機能を有すると識別された特定の指定端末にのみ連絡を試みる。
【0038】
先に触れたように、WAP−Bluetoothアプリケーションのステータスは、ステータスLED211で表示することができる。例えば、ステータスLED211は、高頻度で点滅することにより、移動Bluetooth端末との連絡を知らせることができ、更に、低頻度の点滅により、移動Bluetooth端末が到達範囲内に入るのを待っていることを知らせることができる。
【0039】
WAP規格は完全なものではなく、また例えば携帯電話などの特定の移動端末は“WAPプッシュ”をサポートしていないので、WAP−BluetoothサーバはATコマンド214と呼ばれる機能を使用して、例えばLUKASブロックにより、サポートされていない装置にウェブ・ページをプッシュする。WAPプッシュ215は、WAPウェブ・ページを他の端末にプッシュする機能を提供することができる。本発明によりWAP−Bluetoothシステム252を提供することができるが、これは、WAP−Bluetoothサーバ・ハードウェア220と、ウェブ・サイト250と、バイナリWAPページをWAP−Bluetooth装置に転送するためのWAP−Bluetoothアプリケーション270、210と、SDK280とを含むことができることに留意されたい。WAP−Bluetoothシステム252には更にユーザ・マニュアル251を提供することができ、これには、例えばウェブ・ページをWAP−Bluetooth端末に送信するためのデフォルトのソフトウェア・アプリケーションを備えたWAP−Bluetoothサーバ・ハードウェア220の使用法などが記載される。ユーザ・マニュアル251は、サード・パーティ・アプリケーション開発者向けの詳細な開発者マニュアルとして意図されていないことが好ましいことを理解されたい。
【0040】
このように本発明によると、WAP−Bluetoothサーバ・ハードウェア220によって伝えられる新しいアプリケーションを可能にすることにより、WAP−Bluetooth機能を備える端末の需要253を生み出すことができ、それにより端末所有者がアプリケーションから恩恵254を受けることが可能になり、更にWAP−Bluetoothサーバ・ハードウェア220に対する需要が高まる。WAP−Bluetoothは、情報提供者から端末所有者への情報のプッシュ255を可能にする。例えばサービスのワイヤレス配信などの情報プッシュ255を可能にすることにより、WAP−Bluetoothは所有者のビジネスを促進する257ことができる。更に、WAP−Bluetoothによって運ばれる新しいアプリケーションは、この場合もユーザ及び提供者にとって利益となる254サービスを提供する。WAP−Bluetoothはその外観と性能により、WAP−Bluetooth関連ハードウェアを所有したいという欲求を生じさせる256。更に、例えばWAP−Bluetooth移動端末又はWAP−Bluetoothサーバを所有することが、より高い社会的価値を持ちうる258ことにも留意されたい。
【0041】
WAP−Bluetoothサーバの標準的な供給の一部として開発及び提供することができるのは、基本的なWAP−Bluetoothアプリケーションだけであることに再度留意されたい。その代わり、サード・パーティ開発者に対しては、顧客にとってのWAP−Bluetoothサーバ及びシステムの価値を高めるように適合されたアプリケーションを開発するよう推進することが好ましい。この際、本発明により、様々なエンティティをWAP−Bluetoothサーバのサード・パーティ開発者と見なすことができる。例えば、現在3Com、Palm Pilotとして知られる無線オーガナイザなど、各種のワイヤレス装置向けのアプリケーションを専門的に開発している企業を考えることができる。WAP−Bluetoothサーバを購入し、その顧客ニーズに適合させるためにアプリケーションを拡張及び/又は交換するOEMエンティティ。自身の個人的なニーズのために、自身のアプリケーションを拡張、又は完全に設計する上級エンドユーザ。インターネットを介して無償でダウンロードできるソフトウェアを開発するフリー・ソフトウェア組織。
【0042】
従って、サード・パーティ開発者は一般的に、ビジネス開発者、個人開発者、及び産業開発者、の3つの主要カテゴリに分類することができる。異なるグループの例としては、ビジネス・カテゴリの場合には、例えば食料品店の青果及び/又は肉の部門にWAP−Bluetoothサーバを置き、そのサーバ近辺の製品に関する情報を知らせるなどの買い物情報のローカルな放送などがある。製品の鮮度、製品の産地、次の出荷の予定日などを、その近辺にいるユーザに提供することができる。
【0043】
個人カテゴリでは、個人開発者の自宅近くにいるユーザに、個人開発者の帰宅時間や、個人開発者のいる位置などを知らせることのできるホーム・ボイス・メール・ポストを提供することができる。ただし、外部者に、その住人の居場所に関する過度に重要な情報を提供しないように、パスワードやその他のユーザ識別情報を使用してこのような情報を保護することが望ましい場合もあることに留意されたい。更に、個別のビジネス・アプリケーションを提供して、個人開発者が個人的な開発を行えるようにしてもよいことに留意されたい。言い換えると、上記の例を使用すると、ビジネス開発アプリケーションは、個人ユーザによる開発を容易にする、ホーム・ボイス・メール・ポートの開発キットを含むことができる。あるいは、高い技術を持つ個人ユーザは、基本的なWAP−Bluetoothアプリケーション及びSDKを使用して開発を行うことができるかもしれない。個人開発者のアプリケーションの他の例としては、WAP−Bluetoothサーバから提供される情報をフィルタリングする個人エージェントなどが考えられる。例えば、あるユーザが菜食主義者である場合、そのユーザには肉製品に関する位置依存情報を排除することが望ましいであろう。
【0044】
更に、産業カテゴリでは、例えば1つ又は複数のWAP−Bluetoothサーバを使用したロボットの制御アプリケーションなどが考えられる。このような産業用アプリケーションは、共同の努力で開発することも、又は機器提供者や産業開発者の顧客が単独で開発することもできる。
【0045】
従って、このようなサード・パーティ・ソフトウェアの開発及び供給の戦略を使用することにより、いくつかの利点が認識される。多種多様な使用事例に利用可能なアプリケーションが数多くあることにより、あらゆる種類のWAP−Bluetooth装置の販売が促進される。アプリケーションは、ハードウェア提供者の開発組織に過度の負担を強いることなく開発することができる。ハードウェア提供者が戦略的関心を寄せない高度アプリケーションの領域を開発し、それによりハードウェア提供者がその特定領域の技量を持たなくとも、ハードウェア需要を高めることもできる。
【0046】
例えばソフトウェア開発コミュニティなど、ここ何年かの間に発展したオープン・ソース・ソフトウェアのパラダイムは現在産業界全体でその勢いを増し、注目を集めている。オープン・ソースの概念の詳細事項は多少複雑なものになってきており、広く流通する数種の出版物を参照することにより完全に理解することができる。従って、本発明によると、WAP−Bluetooth開発環境であらゆるソフトウェアを開発するのに使用するツールはオープン・ソースであることが好ましい。ツールは多くの開発者コミュニティに知られてそこで使用されることが好ましく、また高品質の製品であるという評価を受けることが好ましい。従って、例えばSDK280で配布されるソフトウェア・プラットフォーム・コンポーネントはオープン・ソースであることが好ましい。例えば、インターネット上で適当なオープン・ソース・コンポーネントが利用できる場合には、WAP−Bluetooth開発環境ではカスタム・コンポーネントよりもそのようなコンポーネントを使用することが好ましい。ただしカスタム開発も可能である。オープン・ソースのソフトウェアを提供することにより、WAP−Bluetooth装置向けのアプリケーション開発にかかるサード・パーティ開発者のコストを削減することができ、サード・パーティの開発努力を高めることができる。短期間で製品化することができるなど他の利点も実現することができる。
【0047】
オープン・ソース意識の高いユーザ・グループでは、今日開発されるオープン・ソース方式のソフトウェア製品は、より従来型の方式で開発及び販売される製品に比べて、信用面で非常に大きな恩恵を得られることが多い。従って、関連製品は、その製品をオープン・ソースで提供するだけで、より容易に市場に流通させ販売できる可能性がある。また、ユーザ・グループは、機能を拡張したソフトウェアの発売を待つのを受け入れ、またオープン・ソースのソフトウェアでバグをより容易に修正できることを想定して、システム中のバグやエラーにさえ寛容であることが考えられる。この結果、オープン・ソース製品は、ユーザ・コミュニティに許容されるものになるまでの多量の開発と試験を省略して、開発の初期段階で市場に出すことが可能である。ただし、本発明によると、WAP−Bluetooth規格はTG4互換であることに留意されたい。
【0048】
更に、Bluetoothはスキャタネット(scatternet)などのアドホック・ネットワーキングを可能にし、またアドホック・ネットワーキングの構成が有用なアプリケーションもあるが、一般的にはWAP−Bluetoothサーバはアドホック・ネットワーキング向けに構成しない方がよいことに留意されたい。また、本発明によるWAP−Bluetoothサーバに関連するハードウェアは、開発されるWAP−Bluetoothアプリケーションのサイズに応じて構成できることにも留意されたい。例えば、WAP−Bluetoothハードウェアは、後から行うアドオン式のメモリ・サイズの拡張などを考慮して設計することができる。WAP−Bluetoothには包括的な規格がないために、可能性のある全てのクライアントをサポートするただ1つの一般的な解決法はない。従って、いくつかのクライアントをサポートすることが好ましいが、アプリケーション開発者は、可能な限り多くの異なるクライアントをサポートする傾向があり、また実際にそのように推奨されていることに留意されたい。
【0049】
双方向通信が可能であるが、WAP−Bluetoothサーバは一方向通信をサポートすることが好ましいことに留意されたい。つまり、移動WAP−Bluetooth端末すなわちクライアントにWAPページをプッシュすることはできるが、WAP−Bluetoothクライアントが、例えばWAP−Bluetoothサーバを介してインターネットを検索することはできない。
【0050】
図3及び図4に示すように、WAP−Bluetoothハードウェアは、いくつかの主要な機能ブロックから構成されることが好ましい。性能を同程度に維持するために、本発明によるWAP−Bluetoothサーバは、標準的なBluetoothインタフェース320を提供するためのBluetooth無線モジュール321を含むことができる。更に含まれるのは、ソフトウェア・ライブラリとして入手することができる低レベルのBluetoothプロトコル部分(“ベースバンド”)のセットであり、これについては下記で更に詳しく説明するが、これは標準的なベースバンドFLASHメモリ323から、特別設計のARM7TOMI RISCベースのベースバンドμ−コントローラ322で実行することが好ましい。Bluetoothインタフェース320は標準モジュールとして提供することができ、アンテナ310をモジュールの一部とせずに外部Bluetoothアンテナ310に接続することができ、またUSBか標準的な非同期シリアル接続324を介して、最大460.8kbpsで“マスタ”CPU330に接続することが好ましい。USBは、例えばPCなどより大型のシステムとのインタフェース用に提供されるのが好ましく、一方シリアル接続324は組み込みシステムで使用することが好ましい。本発明の各種実施形態によると、Bluetooth無線モジュール321及びベースバンド・プロトコル・ソフトウェアは、独立したスタンド・アロン製品として利用できることが好ましいことに留意されたい。総合型Bluetoothインタフェース320をコア・デザイン・コンポーネントとして使用し、それに例えばシリアル接続324を介してマスタCPU330を接続することにより、複雑で不必要なUSBマスタ回路を使用せずに済む。本発明によって提供されることが好ましい基本WAP−Bluetoothアプリケーションは、中程度の通信速度だけを必要とすることが好ましいが、あらゆるサード・パーティ・アプリケーションの帯域幅要件を制限しないように、ハードウェア設計はやはり、最高460.8kbpsでBluetoothインタフェース320と通信できなければならないことに留意されたい。
【0051】
Bluetoothインタフェース320用のBluetoothアンテナ310は、いくつかの異なる方法で設計できることに留意されたい。本発明によれば、WAP−Bluetoothサーバに提供すべきアンテナ310の2つの方法には、PCB300に直接エッチングしたパターンとしてアンテナを提供するか、又は既存のBluetoothアンテナ“部品”を以下で説明するように使用することが含まれる。エッチング・アンテナは、実質的にコストがかからない、最も費用効果の高い解決法であると思われるが、いくつかの欠点がありうることに留意されたい。エッチングによるアンテナはより多くのPCBスペースを必要とする可能性があり、また正しいローブ特性を正確に適合させるのに更に労力が必要となることがある。アンテナ部品に関しては、小型、安価で、他の設計に合わせるのが比較的容易な単純な受動素子を使用することができる。このような部品は小型で安価であり、また好ましくはすでに入手できる状態にあるので、これを使用すると、アンテナを直接PCB中に実現する際に伴うリスクを最小に抑えられる。Bluetoothインタフェース320のベースバンド・コントローラ322は、ユーザモード・アプリケーションをそこで実行することはできないことに留意されたい。従って、例えば基本WAP−Bluetoothアプリケーションや、任意のサード・パーティ・アプリケーションなどの組み込みアプリケーションを実行するためにマスタCPU330が必要となる場合がある。マスタCPU330に求められる主要な要件は、可能性のあるあらゆるサード・パーティ・アプリケーションの処理ニーズにも対応できる、適切な処理能力を備えることである。更に、マスタCPU330は、RS232インタフェース335によってサポートされなければならない。このインタフェースは、Bluetoothインタフェース320とRS232インタフェース335とのインタフェースに外部構成要素を使用せずに済むように2つの内蔵UARTを含むことができる。シリアル・チャネルを高速で動作させる際に過度のCPU負荷が生じないように、UARTはバッファリングしなければならない。マスタCPU330は更に強力で高品質のツールセットでサポートすることが好ましいが、このツールセットは、追加コストをかけずにSDKにバンドルすることができ、オープン・ソースとして入手することができる。マスタCPU330のファミリーは、予想される将来の適合に対して適合及び移植が容易であることが好ましく、またRAM及びFLASHメモリ両方の変形を含む、各種のオプションのオンチップ・メモリ構成をサポートするプロセッサ・ファミリーのメンバであることが好ましい。複数のマスタCPU330の候補を現在のプロセッサ市場で得ることができるが、ある特定のプロセッサが、本発明によるWAP−Bluetoothサーバにほぼ理想的な候補として認識される。それは、サンノゼのAtmel社製造のAT91x40xxxである。
【0052】
Atmelコントローラ・ファミリーは、Bluetoothインタフェース320中のベースバンドμ−コントローラ322と同じプロセッサ・コアを基盤として構築されており、予想される将来のプロセッサ・バージョンへのソフトウェアの移植を非常に容易にするという利点をもたらす。更に、AT91x40xxxのコアは高性能の32ビットRISCであり、これはWAP−Bluetoothアプリケーションに予想される機能タイプに十二分な処理能力を提供する。理想的には、マスタCPU330として選択するのは低電力低コスト設計で、優れたコード密度を提供するもの、すなわちコード記憶のメモリ要件が低いものがよい。AT91x40xxxファミリーは、その16ビットの“Thumb”命令セットによりこのような特徴を提供する。また、比較的低価格の市販ツールセットもARMから入手可能であるが、その品質の高さと効率性が広く認められるGNUクロスコンパイラ・ツールなど、オープン・ソースのツールセットも利用することができる。更に、Atmel At9Iファミリーは、高度のバッファリングが行われる内蔵式の高速UARTを2つ含み、オンチップRAM及びFLASHメモリに各種のオプションを利用することができる。より具体的には、本発明によるWAP−Bluetoothサーバに使用することが好ましい変形例は、サンノゼのAtmel社製造のAT9IR40807である。これは、136kB、待ち状態ゼロ(zero−waitstate)の32ビット・オンチップSRAMを搭載しているが、内部ROM/FLASHは備えていない。最高2MBのデュアルプレーンFLASHのオンチップ・メモリと、上記の136KbSARMが含まれるが、基本WAP−Bluetoothアプリケーションに十分なメモリ量の予測は難しく、サード・パーティ・アプリケーションはみしろこれを超えるメモリ量を必要とするであろう。サード・パーティ・アプリケーションの可能性を制限しないように、外部RAM及びFLASHメモリの両方をオーバー・プロビジョニング(over−provisioning)することが好ましい。
【0053】
FLASHメモリは一般に時により入手困難であることが知られており、このため、FLASHメモリの最終的な選択は、必要量のFLASHの購入を担当するあらゆる製造会社の二次供給者とともに行うことが好ましい。FLASHの選択肢の1つは、Intel社製造の、4MB、16ビット幅、インシステム・プログラマブルなシングルプレーン・フラッシュである。このFLASHは、ブートローダの配置に非常に適したハードウェア保護が可能なブート・ブロックを備え、アプリケーション及びデータ記憶の両方に適した、100,000回の消去/書き込みのサイクルが可能な複数の64KBセクタを備えるとともに、EEPROMエミュレーションや、例えば連続番号、Mipv6アドレスなどの装置パラメータの記憶に適したより小さなセクタ・セットも備える。複雑なDRAMリフレッシュ回路を避けるために、外部SRAM332が好ましい。しかし、外部SRAMで512KBを超えるサイズのものは珍しく、大半は8ビット幅の装置でしか使用することができない。このため、8ビット幅、512KBのSRAMを2つ使用して、1MB、16ビット幅の外部SRAMとすることが好ましい。マスタCPU330では、別の136KB、待ち状態ゼロの32ビットSRAMを使用できることが好ましいので、外部SRAM332は、最高速タイプ、従って最高価格タイプのものである必要はない。標準的な低価格の70nsタイプで十分である。
【0054】
RS232インタフェース335は、WAP−BluetoothサーバとホストPCの間で使用するのが好ましく、RS232電気規格に準拠することが好ましい。規格への準拠は、例えば、チャージ・ポンプ用のコンデンサなど少数の外部受動素子のセットを含む、Maxim社から提供されるMAX32xxなどのRS232レベル・コンバータ・サーバを使用することにより、容易かつ効果的に達成することができる。RS232インタフェース335コネクタは、安価で標準的な“ストレートスルー”型のシリアル・ケーブルを使用できるように設計しなければならない。従って、WAP−Bluetoothサーバのコネクタは、例えば9ピン、メスのD−sub、DCEピン配列などであることが好ましい。マスタCPU330に内蔵することが好ましいUARTは、高性能バッファリング・タイプであることが好ましいので、ハードウェア・ハンドシェイク用の制御線、すなわちRTS/CTSの使用を省くことができる。従ってWAP−Bluetoothサーバは、中断のない高速シリアル・データス・トリームを常に受信することができる。ただし、ハードウェア・ハンドシェイクのために構成されたホストとの通信を可能にするために、当技術分野で知られるように、コネクタの直後でRTS/CTS線をブリッジすべきであることに留意されたい。従って、バンドルするシリアル・ケーブルは、絶対的に最も安価で軽量のタイプ、すなわち3本の導線のみを備えるストレートスルー・ケーブルであることが好ましい。WAP−Bluetoothサーバの一般的な“非工業的な”作業条件では、高価格で電気的に(galvanically)絶縁されたRS232インタフェースが必要になることはなく、一般的なインタフェースの内蔵型ESD対策で十分であることに留意されたい。しかし、ケーブルを通じて伝送されるEMCからサーバ及び環境の両方を保護するために、全ての接続線に個別のフィルタ素子を設けることが好ましい。マスタCPU330に好ましい、高度なソフトウェア構成が可能なI/O構造の結果、自動ボーレートのソフトウェア機能をサポートするのに必要なハードウェア、すなわちパルス幅タイミング測定が更にコストをかけなくとも備わっていることが好ましい。
【0055】
上記のように、本発明によるWAP−Bluetoothサーバで使用するために、1つの単色LEDが必要であることが好ましい。このLEDは、例えば電力投入、障害、動作状態など、複数の状態をユーザに表示するのに使用することができる。LEDの色は柔軟に選択することができるが、青であることが好ましい。LEDは表面に装着される部品であると好ましいが、機械設計に応じて、穴に取り付けたり導光型の代替形態も使用することができる。LEDは複数の目的に使用するためのものなので、ソフトウェアによって制御すべきである。つまり、LEDはマスタCPU330の出力ピンから制御する。通常の“状態制御”出力のような出力の使用以外にも、本発明によるマスタCPU330のプロセッサは、出力ピンを時間によっても制御して、オンチップ・タイマの支援により、制御された頻度でLEDを点滅させられる機能を持つことが好ましい。更に、LEDの発光強度は、当技術分野で知られるように、タイマを使用して例えばLEDをPWM制御することにより都合よく調整することができる。
【0056】
WAP−Bluetoothサーバは、高電圧変動率の異なる複数の国で販売することが考えられるので、外部の高電圧電源装置340を使用することが好ましい。これは、既製品を購入し、それ以上修正を行わずにWAP−Bluetoothサーバの供給の一部としてバンドルする。ただし、WAP−Bluetoothサーバを複数の場所で使用されることが予想される。例えば、WAP−Bluetoothサーバは通常はショッピング・エリアで使用することができるが、保守点検のために、それを営業所に持っていきPCに接続することができる。従って、標準的な電源に対応することが好ましい。しかしながら、標準的な電源は通例4.5〜12Vと電圧が異なり、電源プラグの極性も異なる。WAP−Bluetoothサーバ・ハードウェア中の回路は、正常に動作するのに安定化電圧3.3Vを必要とする。このため、WAP−Bluetoothサーバ内で電圧を調整することが好ましい。このため、安価で安定化していない4.5〜12Vの入力電圧を、安定した3.3Vのオンボード電圧に変圧することのできる内部電源を使用することが好ましい。WAP−Bluetoothサーバに必要な最大電流は、300mAの範囲にあると思われる。しかしながら、50mAが標準と規定されるものの、時にはBluetoothインタフェース320自体で約300mAを使用する場合もある。従って、電力供給が必要以下になるのを回避するために、およそ500mAの最大電流が好ましい。線によって電力を供給する設計には、通例は単純な線形電圧調整器が最も安価な選択肢であるが、このような調整器は、500mAの範囲で12Vから3.3Vを供給する際に非常に熱くなる可能性がある。不必要な加熱を防ぐために、切り替え式の調整器を使用することが好ましい。このような調整器は複数の製造者から入手することができ、少数の外部部品だけでサポートすることができる。電源340の電源コネクタは、標準的な2.1mmの電源コネクタで、正の電力がコネクタの中心に接続されるという最も一般的な構成であることが好ましい。電源340への入力は、極性の反転や過電圧入力に対する対策を備えるべきである。例えば、自動的に“回復する”Polyfuseなど異常電流消費の対策、及びケーブルを通じて伝送されるEMCを含むESDに対する対策なども含むことが好ましい。
【0057】
プリント回路基板(PCB)については、単一のPCBを使用し、可能性としてはLEDを除く全ての部品をそこに実装することができる。WAP−Bluetoothサーバの将来の適合により、更新によって必要とされるPCBスペースが減少することが予想されるので、PCBスペースは過度に大きくしない方がよく、スペースの制約に対しては、例えば4層又は6層のPCB、及び/又は両面実装などの多層基盤を使用して対処することが好ましい。PCBの材料がBluetoothアンテナの特性に影響を与える可能性があるので、安価なPCB材料は避けたほうがよい。このため、PCB材料は例えばRF設計の専門家によって承認してもらうとよく、また最適なRF特性に適したものでなければならない。更に、製造試験のために、PCB399では、重要なネットワーク・ノードをテスト・ピン、ならびにVddとグラウンド・ポイントで利用できなければならない。電源投入後に回路を明確に定義された起動状態にするために、リセットを引き起こす電圧を監視するサーバを使用すべきである。リセットは、マスタ・コントロール330、FLASHメモリ331、及びBluetoothインタフェース320に送られる。ベースバンドμ−コントローラ322のコアは、規格化された2×10ピン・コネクタを使用して、JTAGデバッグの組み込みサポートを備えることが好ましいことに更に留意されたい。通常の使用では必要ないが、このようなデバッグ機能は、高度なエラー・トレーシングやプロトタイプのデバッグに非常に有用である。ただし、2×10ピン・コネクタは不必要にPCBスペースを占めるので、デバッグ・ラインは“パッド”としてPCBで使用できるようにし、必要な際にはJTAGコネクタを手で容易にはんだづけできるようにすることが好ましい。EMC試験で過度のエネルギが放出されていることが判明した場合は、PCBにシールドされた筐体を取り付けるべきである。シールドは、電源装置340、マスタCPU330、Bluetoothインタフェース320、及び外部メモリ331及び332を覆うことが好ましい。これは、これらの部品は、放射エネルギによる問題の原因となりうると予想されるからである。ただし、EMC試験によりシールドが必要でないことが分かった場合は、部品及び製造コストを節減するためにシールドは取り付けない方がよい。
【0058】
図4に示すように、本発明によるWAP−Bluetoothサーバの各種部品をASIC420に一体化できることに留意されたい。例えばベースバンド・コントローラ422とFLASH420を合わせて組み込むことができる。無線インタフェース430、電源440、アンテナ410、LED423、及びRS232ポート450は、外部備品としてPCB400に提供することができる。動作は、上記で図3を参照して説明したものとほぼ同じであるが、通例このように一体化すると速度などの改善が得られる可能性がある。
【0059】
本発明によるBluetooth機能を提供するために、WAP−Bluetoothサーバは、以下に説明するようなソフトウェア機能を備えることができる。WAP−Bluetoothサーバは、サード・パーティ向けのソフトウェア開発プラットフォームを提供することを目的とすべきなので、提供するWAP機能は制限される。このような機能は、サード・パーティ・アプリケーションによって提供されることが好ましい。ソフトウェア環境が目標とするのは、新しいソフトウェアをダウンロードして、可能な限り多くのオープン・ソース・ソフトウェアを使用することなどである。ソフトウェア環境は、図5Aに示すように次の構成要素に分割することができる。3つの基本構成要素は、基本WAP−Bluetoothアプリケーション520、ソフトウェア・プラットフォーム510、及びブートローダ530である。
【0060】
基本WAP−Bluetoothアプリケーション520は、WAP−Bluetoothサーバのソフトウェア・パッケージのWAP機能を実施することができる。基本WAP−Bluetoothアプリケーション520の目的は、十分な機能性を実現して、WAP−Bluetoothサーバをそのままの状態で使用することのできる魅力的な製品にすることであるが、サード・パーティ開発者のためのアプリケーション例としても機能することができる。基本WAP−Bluetoothアプリケーション520の機能は、Bluetoothスタック513を用いて、WAPを使用できるクライアントがBluetoothインタフェース320の範囲内に入ってきた際に、そのクライアントとの連絡を確立することであることが好ましい。基本WAP−Bluetoothアプリケーション520は更に、例えばWMLCフォーマット、すなわち予備コンパイルされたWAPバイナリ・フォーマットでそのアプリケーションとともに記憶された静的なWAP情報をクライアントに送信することができる。基本WAP−Bluetoothアプリケーション520は、静的情報の送信を終えた際にクライアントとの連絡の解除も提供することができる。基本WAP−Bluetoothアプリケーションは更に、ダウンロード・プロトコルを実施することによりWAP情報のダウンロードもサポートして、ホストが個々のWMLCファイルをダウンロードできるようにする。新しいファイルをダウンロードする場合は、その前のファイルに上書きする。この機能を基本WAP−Bluetoothアプリケーション520に提供することにより、サード・パーティ開発者は、ブートローダを変更せずにより高度なファイル・システムを実施することができる。基本WAP−Bluetoothアプリケーション520は更にWAP−Bluetoothサーバのリセットをサポートし、また好ましくはRESETコマンドを受信してそれをブートローダに渡すことができる必要がある。この機能がないと、顧客は、例えばWAP−Bluetoothウェブ・サイトから新しいアプリケーションをダウンロードする際に、WAP−Bluetoothサーバを手動でリセットしなければならない。
【0061】
先に述べたように、WAP−Bluetoothサーバが同時に連絡を取るのは7つのクライアントに制限することが好ましい。この制限は、前述のBluetooth規格から直接得られるものである。更に、基本WAP−Bluetoothアプリケーション520で、限られた数の異なるWAPクライアントをサポートすることができるが、例えばEricssonのWAPクライアント、NokiaのWAPクライアントなどとの連絡を確立した際に、各WAPクライアントとの接続の確立の仕方についての固有の情報が提供されると、この数は増加することが予測される。更に、基本WAP−Bluetoothアプリケーション520は、静的なWAP情報をWAPクライアントに送信できるのに十分なWAPプロトコルだけをサポートするように構成することが好ましいことにも留意されたい。基本WAP−Bluetoothアプリケーション520は、例えばSDKに含まれるGPLなどのオープン・ソース・ライセンスを使用して認可されるANSI C言語のバージョンで書くことが好ましい。
【0062】
ソフトウェア・プラットフォーム510は、WAP−Bluetoothサーバのソフトウェア・パッケージの中核機能、すなわちBluetoothを使用した通信機能を実装することが好ましい。従ってソフトウェア・プラットフォーム510は、WAP−Bluetoothサーバに関連するBluetooth機能に関心を寄せる大半のサード・パーティ開発者が使用すると予想される。Bluetoothスタック513は、オープン・ソースのLinuxオペレーティング・システムの一部として提供されるAXIS BluetoothスタックなどのBluetoothスタックをオープン・ソース方式で実装することが好ましい。AXIS Bluetoothスタックは、元々はAxis Communicationによって開発されたものであるが、これをeCosオペレーティング・システムであってもよいeCosオペレーティング・システム512に移植することが好ましい。この他の情報については、developer.axis.com/software/bluetoothを参照されたい。Bluetoothスタック513は、HCI層、2CAP層、SDP層、及びRFCOMM層を含むことが好ましく、またANSI C言語で書き、更にGPL(コピーホルダーはAxis Communications)を使用して使用を許可して、SDKに含むことができる。
【0063】
オペレーティング・システム512は先に指摘したようにeCosであることが好ましい。これは、Cygnusが開発した、高度に構成可能な組み込み型のオープン・ソースオペレーティング・システムであり、現在はRed Hatが所有している。eCosを使用することが直接末端の顧客に対する価値を付加する訳ではないが、これを含むことにより、WAP−Bluetoothサーバ用のアプリケーションを開発する際にサード・パーティ開発者を支援することができる。更に詳細な情報を得るには、sourceware.cygnus.com/ecosを参照されたい。オペレーティング・システム512は更に、スレッド、タイマ、キュー、例えばシリアル通信ポートなどのハードウェア用のドライバといった標準的なシステム機能も提供することができる。オペレーティング・システム512は、一般的にはマスタCPU330をサポートすることが好ましいが、eCosは、例えばATMEL ATM7TDIプロセッサはサポートしない。eCosは、オープン・ソース・コミュニティの支援により、このプロセッサをサポートするように構成すると好ましい。eCosは、RHEPL(Red Hat eCos Public License)を使用して使用を認可し、更にSDKに含めることができる。RHEPLライセンスはGPLをやや厳格にしたバージョンであり、例えば、eCosを使用したアプリケーションをソース・コードを公表せずに配布する権利を提供者に与える。
【0064】
WAP−Bluetoothサーバのソフトウェア・パッケージは更に、例えばFLASHメモリなど異なるハードウェア用のドライバ511を提供することが好ましい。例えばeCosなどの上層ソフトウェアと、WAP−Bluetoothサーバ・ソフトウェアの間に明確なインタフェースを提供するために、ドライバ511は、サード・パーティ開発者が例えばeCosオペレーティング・システムを使用しないと決定した場合でも、開発者からアクセスできることが好ましい。ドライバ511は、ANSI C言語で書くことが好ましく、そのハードウェアの提供業者をコピーホルダーとしてGPLで使用を認可し、SDKに含むことが好ましい。
【0065】
ブートローダ530は、FLASHメモリ内に常駐する小規模のスタンドアロン・アプリケーションであることが好ましく、例えば、メモリのセットアップなどのWAP−Bluetoothサーバの初期化、メモリ・チェックなどの基本的なエラー検出の実行、RAMへの新しいアプリケーションのダウンロード、RAMからFLASHへのアプリケーションの保存、及び現在記憶されているアプリケーションの起動、などを担当することができる。ブートローダ530は、図5Bに示すようなWAP−Bluetoothサーバのメモリ・マップ540の情報を持っていることが好ましい。
【0066】
従って、図5Bに示すように、データ領域541は開始アドレス0x40 00 00(16進数)を含み、アドレス546で終わることができる。アドレス546は開発者が設定することができる。メモリマップ540は更に、アプリケーション領域548、構成領域543、及びブート領域544を含み、ブート領域は、アドレスが0x00 00 00(16進数)の基底アドレス545で構成することができる。
【0067】
ブート領域544はブートローダ530自体を保持するように構成することができ、またハードウェアによって保護することができるので更新することはできない。構成領域543は、例えば部品番号、ユーザ識別などの構成パラメータを保持することができる。構成領域543は、ブートローダ530によって更新することができる。アプリケーション領域542は、1つのアプリケーションを保持するように構成することができる。開発者がそのアプリケーションをアップグレードする場合は、その前のアプリケーションに上書きすることができる。アプリケーション領域542は、ブートローダ530によって更新することができる。データ領域541はブートローダ530からはアクセスできないことが好ましく、またアプリケーションによって更新することができる。従って、サード・パーティ開発者が、WAP−Bluetoothサーバにフラッシュ・ファイル・システムを実施することが可能である。
【0068】
アプリケーション領域及びデータ領域の個々のサイズをソフトウェアによって構成することができるので、あるサード・パーティ・アプリケーションがより多くのデータ領域541量を必要とし、別のアプリケーションはより多くのアプリケーション領域542量を必要とする場合などに、アプリケーションに応じて異なるWAP−Bluetooth構成を得られることに留意されたい。ブートローダ530は、ブートローダ・プロトコルを使用して開発プラットフォームと通信できることが好ましい。ブートローダ530は、先に述べたようにgdbスタブも含んでいるので、サード・パーティ開発者は、gdbデバッガを使用して容易にアプリケーションをデバッグすることができる。ブートローダ530はANSI C言語で書くことができ、SDKの一部として提供することができる。
【0069】
本発明によるWAP−Bluetoothサーバの提供に加えて、ウェブ・サイトをシステム全体のWAP−Bluetoothアーキテクチャ内に含むことができる。製品であるWAP−Bluetoothサーバを中心として充実した開発者コミュニティを構築するには、例えば、developer.WAP−Bluetooth.comなどの開発者のウェブ・サイトに、例えば、WAP−Bluetoothプロジェクトの説明、ダウンロード可能なソフトウェア・パッケージ、サード・パーティ開発者のメーリング・リスト、FAQ、HTML形式によるプロジェクトのドキュメンテーション、関連サイトへのリンク、などのプロジェクト・チャータを含めるのが好ましい。WAP−Bluetoothのウェブ・サイトは、WAP−Bluetoothアプリケーション・ユーザとサード・パーティ開発者を含む2つのターゲット・グループを有することが好ましい。基本WAP−Bluetoothアプリケーション520は工業所有権を有するにある製品としてサポートすることが好ましいが、WAP−BluetoothのSDKの管理及びサポートは、例えば電子メールによる通知やウェブ・サイトを通じて提供することもできる。ただし、サード・パーティ開発者は、実質的なピア(peer)サポートに貢献するよう期待されることに留意されたい。更に本発明の代表的実施形態によると、サード・パーティ・アプリケーションは、機器プロバイダによってはサポートしない。WAP−Bluetoothウェブ・サイトは、WAP−Bluetoothプロジェクトのドキュメンテーションと顧客サポートのためのメインのリポジトリ(repository)となることが好ましい。
【0070】
販売方法に応じて販売時に何らかのサポートが提供されるが、主要なサポートはWAP−Bluetoothのウェブ・サイトで提供することが好ましい。WAP−Bluetoothウェブ・サイトでは、WAP−BluetoothアプリケーションのWAPツールや、例えばダウンロード機能が組み込まれたユーザが操作しやすいインタフェースも入手することができる。従って、例えば経験の浅いユーザが、自分のWAP−BluetoothサーバにWAPページを容易に構築することが可能になる。更に、例えばオープン・ソース・コンポーネントに関するサポート、製品のドキュメンテーション、FAQ、及び追加サポートへのリンクに加えて、情報/ニュースも提供することができる。更に、ユーザ・コミュニティが、WAP−Bluetoothウェブ・サイトを通じて、他のWAP−Bluetooth開発者と出会う、WAP−Bluetoothの販売促進について知る、オンライン・ストアから商品を購入する、及びWAP−Bluetoothに関する広告を見ることなども可能にすることができる。
【0071】
先に触れたように、WAP−Bluetoothサーバ向けのソフトウェア開発のためにSDKを提供し、それを使用することができる。SDKは、内部開発者及び外部開発者を対象とすることが好ましい。初期の開発者は、例えば基本WAP−Bluetoothアプリケーション520の初期開発のためにSDKを使用し、一方サード・パーティ・開発者は、WAP−Bluetoothアプリケーションの独自開発のためにSDKを使用することができる。当業者には理解されるように、開発プラットフォームは、アプリケーションの反復的な開発に使用することができ、また必ずしもWAP−Bluetoothサーバを含まなくともよい。ただし、開発プラットフォームはターゲットとする動作環境に十分に似せる必要があり、完成したアプリケーションを、ターゲット・ハードウェア、例えばWAP−Bluetoothサーバに移植できるようにしなければならない。従って、開発プラットフォームには、例えばLinux又はWindows(登録商標)9xNT2000を実行する標準PCを含むことができる。開発者がWindows(登録商標)9xを使用している場合は、例えばクロスコンパイラを構築することができないなど一定の制約を適用することができる。開発環境は、コンパイラ、デバッガなど、開発プラットフォームで動作する必要なソフトウェア・ツールを含むことにより、開発をサポートすることができる。ターゲット・プラットフォームは、例えばRS232接続を使用して開発プラットフォームに結合することが可能なWAP−Bluetoothサーバであることが好ましい。
【0072】
SDKは、例えば開発環境、ドキュメンテーション、及び以前のターゲット・プラットフォーム向けのモデル開発ソフトウェアの成功例、などのソフトウェア・ツールのコレクションを含むことが好ましい。SDKが提供する開発環境は、GNU開発環境を含むことにより、ターゲット・プラットフォーム向けのソフトウェアの開発を可能にすることが好ましい。GNU開発環境は、異なる2つのツール・セットから構成される。開発プラットフォーム用のツール、すなわち標準PCで実行するプログラムの作成に使用するツールと、ターゲット・プラットフォーム用のツール、すなわちWAP−Bluetoothサーバ及び具体的にはマスタCPUで実行するプログラムの作成に使用するツールである。開発プラットフォーム・ツールは、gccコンパイラ、gdbデバッガ、メーク・ユーティリティ、及び例えばバッシュ(bash)などのUnixシェルといったコンポーネントからなることが好ましい。開発プラットフォームをLinuxで実行する場合、ツールは、オペレーティング・システムとともにインストールすることが好ましく、これはSDKの一部とは考えない。開発プラットフォームをWindows(登録商標)で実行する場合には、開発ツールを個別にインストールしなければならず、またSDKの一部として提供することができる。SDKはCygWin開発環境を含むことが好ましい。これは、GNU開発環境のWin32オープン・ソース・バージョンである。CygWinはバイナリ形式で配布されるが、開発者は必要な場合にはソース・コードをダウンロードすることができる。この他の情報については、sourceware.cygnus.com/cygwinを参照されたい。開発環境用のツールは、2つの役割を果たすことが好ましい。ツールは、ターゲット・プラットフォーム用のツールを構築する役割を果たすことができる。ターゲット・プラットフォーム用のツールは、インターネット上でソース・コード形式で得ることができ、例えばARM CPUなど指定のターゲット・プラットフォーム向けにコンパイル又は構築する必要がある。ツールはまた、例えばメーク・ユーティリティをソフトウェアの構築に使用するなど、ターゲット・プラットフォーム向けのソフトウェア開発も支援することができる。
【0073】
ターゲット・プラットフォーム向けのツールは、ターゲット・プラットフォーム用のソフトウェアの構築とデバッグを目的とするgccコンパイラとgdbデバッガなどの構成要素からなることが好ましい。gcc及びgdbのようなツールは、Linux及びWindows(登録商標)向けの実行可能ファイル及びソース・コード両方の形でSDKに含むことが好ましい。マスタCPU330は例えばARM7TDMIプロセッサとして実施すると、異なる2つのモード、すなわちARMモードとThumbモードでコードを実行することができる。現在この2モードには異なる2つの開発ツール・セットが必要なので、SDKは両方のツールセットを含むことが好ましい。
【0074】
SDKはまた、開発環境の他にも、WMLCコンパイラ用のWMLと、アプリケーション及びデータをWAP−Bluetoothサーバにダウンロードするためのツールを含むことが好ましい。WAP−BluetoothサーバがFLASHメモリにgdbスタブを含む場合、ダウンロード用のツールはgdbデバッガでよいことに留意されたい。
【0075】
先に指摘したように、SDK内のソフトウェア・コンポーネントは、基本WAP−Bluetoothサーバ・アプリケーション520及びソフトウェア・プラットフォーム510を含む。ブートローダ530もSDKの一部としてよいが、これを除外する理由の1つは、ブートローダ530はサード・パーティ開発者によって更新することができないので、ソース・コードを公表する理由がないことである。ブートローダ530は、例えば機器プロバイダが保護を希望するノウハウなどは一切含まないことが好ましい。更に、ブートローダ530が修正したgdbスタブを含む場合は、gdbはGPLを使用しており認可を受けているので、それを公表すべきであることに留意されたい。例えばeCosとして提供する場合のオペレーティング・システム512は、複数の異なるターゲット・プラットフォーム用のオペレーティング・システムをインストールするインストール・ファイルとしてSDKで供給することができる。指定されたターゲット・プラットフォームに対してeCosを構成するのに使用する構成ツールも提供することができる。インストールと構成を行った結果得られるのが、指定のターゲット・プラットフォームに必要な全てのソース・コード・ファイルを含む“ビルド”ディレクトリである。SDKは、eCosの完全なインストールのほかにも、WAP−Bluetoothサーバ用のビルド・ディレクトリを含むことが好ましい。
【0076】
ドキュメンテーションの目的は、SDKを使用するサード・パーティ開発者を支援することである。ドキュメンテーションは次の要素を含む:開発環境の使用法に関するドキュメンテーション、他のソフトウェア・ツールに関するドキュメンテーション、及びソフトウェア・コンポーネントに関するドキュメンテーション。必要なドキュメンテーションの量は、異なるコンポーネントごとに違ってよいことに留意されたい。例えば、eCosは、SDKに含むことが好ましい、非常に優れたドキュメンテーションとともに供給することができる。更に、ドキュメンテーションの形式は、例えばWindows(登録商標)及びLinuxなど、サポートされる全てのプラットフォームで読めるものであることが好ましい。ドキュメンテーションを例えばMicrosoft Wordで書くことは、それをHTMLやAcrobat PDFフォーマットでも供給するのであれば許容することができる。
【0077】
SDKは更に、サード・パーティ開発者を支援するための実例やアプリケーション・ノートを含むことが好ましい。各実例は、注釈をつけ明確に構成したソース・コード、WAP−Bluetoothサーバに直接ダウンロードするためのバイナリ・ファイル、及びテキスト・ファイルによる短い説明、の部分を含むとよい。実例の複雑度は、単純な“hello world”タイプのアプリケーションから、完全なWAP−Bluetoothアプリケーションなどにわたってよい。
【0078】
SDKは、Linuxの通例の慣行に従って、例えば“Software Release Practice HOWTO”(metalab.unc.edu/LDP/HOWTO/Software−Release−Practice.html参照)に従って開発しパッケージングすることが好ましい。パッケージングの慣行には、全てのソフトウェアをソース・コード形式と適用可能な場合にはバイナリ形式でも、サポートされる全てのプラットフォームに供給すること、全てのソフトウェアを圧縮形式で供給すること、SDKはautoconf及びautomakeを使用して作ることが好ましいことを意味する、周知の”./configure; make; make install”シーケンスを使用して構築することのできるソース・コードを供給すること、Linuxの通例の慣行に従って配布物(deliverable)全てに名前をつけること、例えばREADME、INSTALL、及びFAQなどの標準的なトップレベル・ファイルを全てのSDK配布物に含むこと、などがある。
【0079】
名前付けの慣行に従うと、全てのSDK配布物は、次の規則を用いて名前をつけることが好ましい。
[COMP]−[VERSION].[src/bin].[TYPE].[ARCH]
この場合、
COMP ソフトウェア・コンポーネントの名前。例:gcc
VERSION コンポーネントのバージョン又は日付。例:1.2.3、あるいは991223など
TYPE arm−AT9I−elf
ARCH アーカイブ及び圧縮拡張子。例:tar.gz
例:
gcc−2.95.2.bin.arm−AR9I−elf−win32.tar.gz
gdb−991223.src.tar.gz
【0080】
本発明による各種代表的実施形態によると、アプリケーションによってはイーサネット・インタフェースが有用な場合もある。例えば、更新情報を常に受信するために、WAP−Bluetoothサーバをインターネットに接続する必要があるようなWAP−Bluetoothアプリケーションではイーサネット・インタフェースが有用である。更に、より広い範囲をカバーしたい場合や、情報をWAP−Bluetoothサーバ間で共有する場合など、ネットワーク構成内で多くのWAP−Bluetoothサーバを扱う際にはイーサネット・インタフェースが有用である。イーサネット・インタフェースを追加する際は、イーサネット・コントローラ、アイソレーション・サーバ、及びコネクタなど、いくつかの構成要素が更に必要となることに留意されたい。こうした追加の構成要素を加えることは可能であるが、WAP−BluetoothサーバのPCBのスペースは多少限られている。従って、イーサネット・インタフェースは、追加コストをかけてWAP−Bluetoothサーバをアップグレードするという形で提供することが好ましい。
【0081】
先に指摘したように、シリアル・インタフェース450は例えばES232ポートとして構成する以外にも、USBインタフェースとして構成することもできる。現在のPCはほぼ全てがIJSBインタフェースをサポートしており、またUSBが提供する帯域幅はRS232ポートよりもかなり高いため、RS232インタフェースをUSBスレーブ・インタフェースに置き換えることは、別の可能なアップグレードとして有利であると言える。更に、WAP−Bluetoothサーバは、USBホストから電力を受け取ることができるので、別の電源装置が不要になる。上記のような構成も可能であるが、WAP−Bluetoothサーバは、USBホストから電力を得るために最大で50mAを得ればよいことに留意されたい。また、USBスレーブ・インタフェースをWAP−Bluetoothサーバに提供するためには、ソフトウェア・ドライバが必要であることにも留意されたい。また更に、USBスレーブ・インタフェースを提供するのに伴うコンポーネントの量、PCBスペース、及びコストは、RS232インタフェースを提供する場合とほぼ同範囲であることに留意されたい。
【0082】
更に、本発明による各種代表的実施形態によると、WAP−Bluetoothサーバを介して、データだけでなく“音声”タイプの情報の配信も提供すると有用である。理解されるように、このような応用は、例えばオフィス内でBluetoothヘッドセットを装着しているユーザに音楽を配信する場合などに有用である。ただし、WAP−Bluetoothサーバは、例えばmp3の音楽ファイルなど大量のデータをローカルに記憶する機能は限られていることに注意しなければならない。従って、本発明の各種実施形態によると、音声/音楽情報はかなり短いものにするか、又は音声/音楽情報は外部サーバから、例えばRS232、イーサネット、あるいはUSBなどのインタフェースを介して提供することが好ましい。好ましくは最小の構成要素コストで、更に必要とするPCBスペースがそれほど多くないいくつかの追加構成要素のみを追加することにより、WAP−Bluetoothサーバにオーディオ機能を付加することができる。更に、音声の提供に加えて、一定のシステム・パラメータを満たす場合には映像も提供することができることに留意されたい。例えば、WAPバージョン2.0又はそれ以降を使用しなければならず、またWAP−Bluetooth端末は、そのローカル・ディスプレイでグラフィック・モードに入ることができなければならない。このためには、グラフィック・ドライバがWAP−Bluetooth端末になければならない。適切な解像度と、例えば色表示機能があると更に望ましい。
【0083】
高度の、従ってハードウェアに対する要求が多いアプリケーションの大半は、サード・パーティ開発者によって開発されると予測されるので、先に指摘したように、WAP−Bluetoothサーバに提供するメモリの最適な量の見積もりには困難な面がある。例えば平均的あるいはそれ以上の大きさのアプリケーションに必要な量に対応するメモリ量を提供すると、多くのタイプのアプリケーションではメモリの一部が無駄になる可能性が高い。その一方で、例えばローカルに記憶されたmp3の音楽ファイルの再生を提供するアプリケーションなど、大量のメモリを必要とするアプリケーションもある。様々に異なるメモリ需要に対処する1手段としては、“メモリ拡張スロット”をWAP−Bluetoothサーバに追加し、それによりユーザが、例えばメモリ・カード、すなわちそのアプリケーションに適したメモリ量を有する適切なメモリ拡張モジュールを挿入できるようにするという手段がある。例えばRAM、FLASH、“コンボ”など、市販のメモリ・デバイスが多くあることに留意されたい。更に、それぞれのタイプのメモリ・デバイスは、数メガバイトから数百メガバイトまでメモリによって異なる容量を有し、また例えば“MemoryCard”、“FlashStick”、及び“PC−Card”など、サポートすべき“規格”がいくつか存在する。
【0084】
更に、本発明の各種代表的実施形態によると、WAP−BluetoothサーバはUSBマスタ・インタフェースを備えると望ましい。このインタフェースを使用して、必要なリソースを備えるUSB周辺装置をWAP−Bluetoothサーバに接続することができ、それにより、イーサネット・スロット及びメモリ・スロットのような追加ハードウェアを直接ハードウェアに追加する必要がなくなる。ただし、USBマスタ・インタフェースは、その“スレーブ”に相当するインタフェースに比べるとかなり複雑なインタフェースである。実際、USB規格は、1台のPC内でサーバになると予想されるマスタ側にコストと複雑性を置くことにより、安価で単純なスレーブを提供するように設計されている。このため、USBマスタはやや高価な構成要素をいくつか必要とするが、その最も複雑な部分は、複雑でありまたメモリを多く必要とする可能性があるUSBマスタ・ソフトウェア・スタックであろう。
【0085】
本発明による代わりの代表的実施形態によると、WAP−Bluetoothサーバは、特にそれをコードで壁のコンセントに常に接続しておく必要が特にない場合には電池式にすることが好ましい。電池式のWAP−Bluetoothサーバの設計は、低電力モードをサポートするように構成されたハードウェアを活用することができるが、このようなサポートは、標準的なソフトウェア・ロードの一部ではないやや複雑な“電力管理”ソフトウェアによって提供されるものである。更に、余分な構成要素を必要とし、特に電池が、WAP−Bluetoothサーバに関連するコストとスペースの要件についてかなりの意味合いを付け加える。
【0086】
本発明の代表的実施形態によると、WAP−Bluetoothサーバは、室内の“オフィス”条件向けに設計にすることが好ましい。従って、多くの、そして“工業的”な応用例があり、また不都合な環境条件が存在しうる室外用アプリケーションでWAP−Bluetoothサーバを使用するには、既存の設計を変更しなければならない。“室外”での使用には、極端な湿気や、極端な乾燥、極端な低温、極端な高温下での使用、及び/又は極端に粉塵が多い条件、不潔な条件、あるいはその他微粒子物質が存在する条件での使用が含まれうる。従って、機械設計を変更して、特定アプリケーションや予測される環境条件の範囲に適合させることが必要となる。普通にパッケージされるWAP−Bluetoothサーバは、最低でおよそ+摂氏5度までは正常に動作すると予測される。大半の構成要素は、より極端な動作環境に対する耐性のあるバージョンでも使用することができるが、Bluetoothインタフェース320は、現在は商業的な温度範囲でしか使用することができない。この状況は、WAP−Bluetoothサーバ及び装置の人気が高まり、それに応じて需要が高まるのに従って、改良型のBluetoothインタフェース・モジュールが製造されるようになるにつれて変化することが予測される。“工業的”使用は更に、WAP−Bluetoothサーバが、例えば振動、変動する温度、及び厳しい電磁場などにさらされうることも意味するが、標準的な商業用設計ではこれらに対処していない。産業的使用及び室外使用に関連するいくつかの問題は、より“堅牢な”機械パッケージングを設計することにより、即座に対処することができる。これは、例えば衝撃及び振動に対する耐性、防水性、防塵性、及び気温の両極端に対する耐性などであるが、これはまたハードウェア設計についての意味合いも有する。例えば、一般的には、産業機器に接続するRS232のようなインタフェースは、電気的に相互に分離している必要がある。リモートの商業及び/又は室外用アプリケーションで使用するための、耐久性を高めた電池式の装置によると、ソーラ・パネルを使用してバッテリー・チャージを維持するのも有用であることに留意されたい。様々な要件の組み合わせを構想することが可能なので、全ての可能性のある物理的条件に向けた単一のWAP−Bluetoothサーバよりも、企図する要件の仕様それぞれに対して個別に変形形態を考える方が有用であると思われる。
【0087】
先に指摘したように、RS232インタフェースは、例えばUSBスレーブなどの別のインタフェースに置き換えることも、あるいは完全に排除することもできる。代わりにBluetoothインタフェース自体を介して、それに実行すべきメンテナンス作業を転送することができる。RS232用の素子を取り除くと、特にコネクタの周囲でPCBのスペースをある程度節約することができ、また恐らくは一定程度のコストも節減される。RS232インターレースはそれほど高価ではないが、RS232インタフェースを取り除くことは、注意に値する示唆をいくつか含んでいる。示唆の1つは、一実施形態では、PCBを筐体中に固定するのにRS232コネクタを使用することである。この場合、RS232コネクタを取り除くと、PCBを別の方法で固定しなければならないことになる。今1つの示唆は、RS232線を、アプリケーション開発中のデバッグに使用していることである。このため、RSコネクタを取り除くと、デバッグのサポートを提供する別の方法をSDK及びWAP−Bluetoothサーバに含めなければならない。可能な解決法としては、例えば単純な2ピンのSIPコネクタがある。
【0088】
WAP−Bluetoothサーバの別の簡略化は、外部メモリを不要にするものである。必要なのがオンチップ・メモリだけであれば、WAP−Bluetoothサーバの設計に必要なスペースははるかに少なくなる可能性があり、また部品コストもかなり削減できる可能性が高い。外部のデータ・バス及びアドレス・バスの使用を省くことによってもPCBの設計は単純になり、外部のデータ・バス及びアドレス・バスから発生することが多いEMC問題のリスクの可能性も減る。本発明の各種代表的実施形態によると、例えばマスタCPU330で使用するμ−コントローラ、すなわち例えばARM7TDMIなどのベースバンドμ−コントローラ322、422は、単一パッケージで2MBのFLASH+136KbのSRAMメモリの最大の組み合わせを提供するファミリーに該当する。これは大半の使用例には完全に十分であるが、先に述べたように、メモリ容量を制限することは、アプリケーションによっては提供されるメモリに適合しないものもあり、またサード・パーティ開発者がサーバ用アプリケーションの開発努力への投資を回避しかねないことを意味する。このような問題は、例えば2MB+136Kbのサーバを使用し、外部メモリの代わりに、メモリ・カード・スロットか、又はより多くのメモリ容量を有する別のサーバへの固定接続を使用することによって回避することができる。すると、サード・パーティ開発者は、幅広いメモリ構成ニーズに対してソフトウェアを開発することができ、一方、メモリの要求が少ないアプリケーションをオーバープロビジョンしたハードウェアに提供することによりそれほどのコストを浪費せずに済む。
【0089】
先に指摘したように、本発明の各種代表的実施形態によると、Bluetoothアンテナ素子をPCB上のパターンに置き換えると更に望ましい。Bluetoothのアンテナ素子は比較的低コストの素子であるが、PCBに直接パターンとしてアンテナを実現すると、そのコストを完全に削除することができる。このような解決策は、正確に設計するのにある程度の労力を必要とするが、一旦設計してしまうと、実質的に最低限費用ゼロでアンテナを実現できることを意味する。ただし、アンテナ素子を含む代表的実施形態は、コンパクトな解決法を提供するが、PCBによる変形形態には多少多くのPCBスペースが必要になると予想されることに留意されたい。
【0090】
先に図3を参照して説明したように、Bluetoothインタフェース320は、強力なベースバンドμ−コントローラ322とFLASHメモリ323の両方を備える、完全な組み込み型マイクロコンピュータである。Bluetoothインタフェース320の価格は単体で(stand−alone)30米国ドルであるが、これはWAP−Bluetoothサーバの製造コスト全体のかなりの割合を占める。更にここで、Bluetoothインタフェース320のベースバンドμ−コントローラ322の容量のうち、Bluetooth関連の通信に使用されるのはわずか約30%であり、容量の残りはエンドユーザ・アプリケーションに向けられることが理解できる。しかし、ベースバンド・ソフトウェアはまだ、エンドユーザ・アプリケーションとともに単一CPUに安全に共存できるように“パッケージ”されていないので、この問題はいずれ解決されるものと予想されるが、現在は余分の容量を利用することができない。WAP−Bluetoothアプリケーションをベースバンドμ−コントローラ322及びFLASHモジュール323に記憶して、Bluetoothベースバンド・ソフトウェアで実行することができれば、外部のマスタCPU330と外部メモリ331及び332をいずれもPCBから取り除くことができる。このようにすることにより、例えば図4に表すPCB400として実現した高容量(high−volume)の第2世代WAP−Bluetoothハードウェアに対する魅力的な解決法が提示され、コスト、PCBスペース、及びWAP−Bluetoothサーバの電力消費をかなり減らすことができる。更に、2プロセッサ設計の場合には、単一CPUの解決策への平易な移行が提供される。例えば、マスタCPU330にAT91μ−コントローラを提供し、Bluetoothインタフェース320と同じコア・プロセッサをベースバンドμ−コントローラに使用すると、ほとんど追加の労力をかけずに、全てのソフトウェアを総合ベースバンドμ−コントローラ422に移植するための良好な基盤を提供することができる。WAP−Bluetooth−ASIC420の設計を、Bluetoothベースバンドμ−コントローラ422から開始すると、更に別のレベルの総合を好適に達成することができる。
【0091】
本発明により、例えば組み込み型フラッシュ・ファイル・システム及び/又はEEPROMエミュレーションなど追加機能を提供することにより、拡張したWAP−Bluetoothアプリケーション機能を提供することができる。組み込み型フラッシュ・ファイル・システムはソフトウェア・プラットフォーム510の一部として、FLASHメモリを使用して、例えばDOSなど通常のファイル・システムをシミュレートすることが好ましい。このようなファイル・システムにより、WAP−Bluetoothは次のような機能を実施する。組み込みフラッシュ・ファイル・システムを使用すると、WAPコンテンツを含んだ複数のファイルを保存することができ、例えば異なる情報を異なるクライアントに送ることが可能になる。組み込みフラッシュ・ファイル・システムを使用すると、各ファイルに例えばセキュリティ・アクセス属性を与えることができるので、より優れた情報セキュリティを付加することができ、何者かが情報を更新するのを防ぐことができる。組み込みフラッシュ・ファイルにより、例えばクラッシュ回復の形でシステム・ファイル・セキュリティを付加することができる。組み込みフラッシュ・ファイル・システムは市販製品として入手可能であるが、本発明の各種代表的実施形態によるWAP−Bluetoothサーバは、組み込みフラッシュ・ファイル・システムをサポートするのに十分なFLASHメモリを備えることが可能であることに留意されたい。
【0092】
一方EEPROMエミュレーションは、例えばFLASHメモリ331、421などに少量の情報を記憶するのに使用することができる。従って、FLASHメモリ331、421はEEPROMメモリとして機能するように構成することができ、これは、例えば基本WAP−Bluetoothアプリケーション520を更新して、例えば特定の期間中にBluetooth接続の確立がいくつ成功したかなど、特定の情報要素を記憶させる場合に有用であり、またこの期間も記憶しておくことができる。
【0093】
TCP/IPスタックの追加は、例えば先に説明したようにイーサネット接続を使用して、WAP−Bluetoothサーバをウェブ・サーバ/ゲートウェイに変換するために必要である。更に、Bluetooth接続とRS232接続の両方にTCP/IP機能を付加することも可能であることに留意されたい。更に、TCP/IPスタックは、オペレーティング・システム512として使用するeCosオペレーティング・システムの構成要素として含むことが好ましいが、他のオープン・ソースの代替例及び市販の代替例も利用することができることに留意されたい。
【0094】
Bluetoothスタック513の拡張した機能は、継続的に提供することが好ましい。このため、ソフトウェア・プラットフォーム510は、Bluetoothスタック513が完全になったと思われる時点まで、周期的に更新しなければならないことが好ましい。ソフトウェア・プラットフォーム510は、Bluetoothスタック513の拡張が公開されたかされないかに関係なく、周期的に更新することができる。例えば、WAP−Bluetooth環境で新しく関心のある機能を実施することを可能にする新しいクライアント・プロファイルのサポートなど、何らかの新しいソフトウェア機能を追加する場合には、ソフトウェア・プラットフォーム510も更新することになる。
【0095】
本発明の各種代表的実施形態によると、ソフトウェア・プラットフォーム510に組み込みウェブ・サーバを追加することが望ましいが、組み込み型ウェブ・サーバをBluetooth接続に追加するのか、RS232接続に追加するのか、あるいは両方に追加するのかに応じて異なる結果が生じる。Bluetooth接続に追加するウェブ・サポートは、WAP−Bluetoothサーバを、例えばPDAやラップトップ・コンピュータなど、Bluetooth及びウェブ機能が可能なクライアントに変換するのに使用することができる。RS233接続にウェブ・サポートを追加すると、WAP−Bluetoothサーバが、インターネットとWAPクライアント間でデータを移動させるためのWAPサーバとして機能することが可能になる。
【0096】
WAP−Bluetoothサービスは、例えばホストのウェブ・ブラウザを使用して新しいWAPコンテンツをダウンロードすることによって部分的に保全することができるが、基本WAP−Bluetoothアプリケーション520がサポートするメンテナンス機能だけを組み込み型ウェブ・サーバでサポートしてもよい。ブートローダ530がサポートするメンテナンス機能は、組み込み型ウェブ・サーバではサポートすることができない。組み込み型ウェブ・サーバは、TCP/IPスタックをソフトウェア・プラットフォーム510に追加することを必要とする場合があることに留意されたい。先に述べたように、TCP/IPスタックは、オープン・ソースとしても市販製品としても入手することができる。
【0097】
本発明による別の代表的実施形態によると、ブートローダ530とのウェブ・インタフェースは、基本的な診断や、ホストのウェブ・ブラウザを使用した新しいアプリケーションのダウンロードなどのメンテナンス機能を実行することを可能にする。WAP−Bluetoothメンテナンスのウェブ・ページは、WAP−Bluetoothサーバ中にローカルに置くことができ、又は遠隔メンテナンスの場合は、ホスト・インタフェースを通じてメインWAP−Bluetoothウェブ・サイトにリモートに接続することもできる。組み込み型ウェブ・サーバの場合と同様に、ブートローダ・ウェブ・インタフェースは、ソフトウェア・プラットフォーム510にTCP/IPスタックを追加することを必要とすることがある。
【0098】
完全なWAPスタックを実現すると、セキュリティ取引のサポートなどのWAP機能や、例えばWAPゲートウェイを実現する可能性が追加される。完全なWAPスタックは、市販製品として入手可能であることに留意されたい。
【0099】
更に本発明の各種代表的実施形態によると、eCosオペレーティング・システムの開発者は、現在、EL/IXと呼ばれるアプリケーション・プログラミング・インタフェース(API)を定義しており、これはLinux、組み込み型Linux、及びeCosのカーネルAPIを統一する。ソフトウェア・プラットフォーム510を更新してEL/IX APIをサポートするようになると、例えばAxis BluetoothスタックなどのLinuxアプリケーションの変換が大幅に平易になる。詳しい情報については、例えば、sourceware.cygnus.com/elixを参照されたい。
【0100】
eCosオペレーティング・システムは、C言語ではなくC++言語で実現することに留意されたい。ただし、eCosはCラッパ・コードを含んでおり、C言語のアプリケーションを実施できるようにしている。例えば基本Bluetoothアプリケーション520及びBluetoothスタック513などは、C言語で実施することに留意されたい。基本WAP−Bluetoothアプリケーション520の機能を大幅に拡張する場合には、C++などのオブジェクト指向のプログラミング言語に移行するとよい。このようにすると、例えばBluetoothスタック513などC言語で書かれたコードに、C++ラッパ・コードが必要になる。
【0101】
本発明による各種代表的実施形態により、高級言語解釈のサポートを更に提供することができる。C又はC++APIをソフトウェア・プラットフォームとしてサード・パーティ開発者に提供する代わりに、例えばJava、Pert、又はPythonなど解釈済みの高級言語をWAP−Bluetoothサーバで実施することができる。オープン・ソース・コミュニティの要件のため、機器プロバイダは、言語インタープリタを実施するか、又はWAP−Bluetoothサーバのオープン・ソースによる実施を適合させなければならないことに留意されたい。Blutooth機能などサード・パーティ開発者に必要な全ての機能は、WAP−Bluetoothの機能ライブラリとして提供しなければならない。従って、高級言語の解釈を追加することにより、WAP−Bluetoothサーバは、次第に多様化する新しいBluetooth機能の範囲(array)を極めて容易に開発し、実施することができるプラットフォームになる。基本WAP−Bluetoothサーバ520は、50行未満のコードで実現することが好ましいことに留意されたい。更に、WAP−Bluetoothサーバは比較的容易に携帯電話に実装できることに留意されたい。
【0102】
従って、本発明の各種代表的実施形態によると、総合ビジネス・ポータル600(あるいは、総合ポータル600)を図6Aに示すように提供することができ、当方法のさまざまな態様のための中心的位置を提供する。サード・パーティ開発者610は、総合ビジネス・ポータル600へのインターネット“ドア”として機能する、例えばウェブ・サイト602を容易に見つけることができるが、これは、顧客650又はサード・パーティ開発者610として参加するための総合的なビジネス提案を少なくとも部分的に提供することができる。ウェブ・サイト602と併せて、例えばEricssonなどのブランド名601に関連するブランド化も提供される。ブランド名601の強さは、SDK603を使用してアプリケーションや総合製品605を提供するサード・パーティ開発者610にとっても、それにより提供されるアプリケーションや総合製品605を使用する顧客650にとっても、強い刺激材料となることに留意されたい。総合製品605は、認可されると製品ポートフォリオ・データベース604に登録することができ、この時点で顧客650が製品605を利用できるようになる。先に説明したように、顧客650は、例えば産業651、ビジネス652、及び消費者653を含むカテゴリに分けられることに留意されたい。更に、顧客には、直接供給チャネル654を提供することができ、一方サード・パーティ開発者には、総合製品605を供給する直接販売チャネル655を提供することができる。サード・パーティ開発者610としての資格を与えるために、スクリーニング・プロセス611を使用して、候補者がサード・パーティ開発者610としての最低レベルの能力を満たすかどうかを判定することができる。基準を達成した場合は、機器提供者とサード・パーティ開発者610の間の取引契約612に入ることができる。取引契約612には、ブランド化などに関する細目やそれに対応するサード・パーティ開発者610の義務などが含まれる。サード・パーティ開発者610は、総合ビジネス・ポータル600を中心として開発コミュニティを形成することができ、そこを通じて、例えばSDKの強化613、トレーニング614、サポート615、試験616、情報617などに関連して、開発者相互に及びポータル提供者に利益を提供できることに留意されたい。このようなプロセスの流れは、総合ビジネス・ポータル600を通じて広がるものと図に表しているが、ポータル提供者は、サード・パーティ開発コミュニティの要素を強化及びアップグレードするプロセスに含めてもよいことは明らかである。
【0103】
更に図6Bに示すように、総合ビジネス・ポータル600は、ハードウェア注文及び例えばソフトウェア供給の中心とすることができる。従って、顧客650は総合ビジネス・ポータル600を通じて注文652を行うことができ、この注文は例えば中央の注文履行位置690に送られる620である。注文の配送は、例えばUnited Parcel Service(USP)などの供給チャネルを通じて直接顧客650へと進めることができる。また、製品の提示及び試用651を、総合ビジネス・ポータル600を介して顧客650に提供することができ、ソフトウェアについてのソフトウェアの注文はそこから行うことができる。ソフトウェアはそれに対応して、この場合も総合ビジネス・ポータル600の653を通じて供給することができる。支払いも、総合ビジネス・ポータル600の654を通じて電子的に提供することができる。製品所有者である場合もあるサード・パーティ開発者610は、例えば販売チャネルを通じて行う販売についてのロイヤリティを655で回収することができる。
【0104】
本発明による方法の各種実施形態を使用することによる収益の発生をより理解するために、図7に収益701対時間702を表したグラフ700を示す。このグラフでは、ハードウェア710の大量販売にほぼ比例する形で収益730が増している。価格の低下や比較的安定した装置の製造コストなどの要因によりハードウェアの量が増加するのに従って、ハードウェア収益720は鈍化することが予測されるので、ソフトウェア収益730が増加し、その結果ハードウェアの需要の増加を促すので、それに対応してハードウェア量710が増加する。
【図面の簡単な説明】
【図1A】
本発明の代表的実施形態による、代表的Bluetoothサービス環境を表す図である。
【図1B】
本発明の代表的実施形態による、代表的WAP−Bluetoothサーバを使用した代表的Bluetoothサービス環境を表す図である。
【図2A】、
【図2B】
本発明の代表的実施形態による、代表的WAP−Bluetoothサーバ環境の代表的構成要素間のエンティティ関係を表す図である。
【図3】
本発明の代表的実施形態による、代表的WAP−Bluetoothサーバの代表的ブロックを表すブロック図である。
【図4】
本発明の代表的実施形態による、代表的WAP−Bluetoothサーバの別の代表的ブロックを表すブロック図である。
【図5A】
本発明の代表的実施形態による、代表的なWAP−Bluetoothアプリケーション開発環境の代表的な層を表す図である。
【図5B】
本発明の代表的実施形態による、代表的WAP−Bluetoothアプリケーション開発環境で使用する代表的メモリ・マップを表す図である。
【図6A】
本発明の方法の代表的実施形態による、代表的な総合アプリケーション開発ポータルを提供するための代表的モデルを表す図である。
【図6B】
本発明の方法の代表的実施形態による、代表的な総合アプリケーション開発ポータルを提供するための別の代表的モデルを表す図である。
【図7】
図6A及び図6Bによる代表的アプリケーション開発ポータルを使用することにより生じると予測されるソフトウェア収益の一例を表すグラフである。
背 景
本発明は、ワイヤレスの無線通信システムに関する。詳細には、本発明は、位置依存型の情報サービス・アプリケーション向けのサード・パーティ・アプリケーション開発を提供する方法に関する。
【0002】
今日の無線ネットワークには多量の情報のフローがあり、更に増加しつつある。今後3年間で、無線加入者の数は現在のおよそ1億人から10倍に増加して、2003年にはおよそ10億人になるものと推定される。無線のデータ・トラフィックの大半は音声指向であるが、無線装置に対するインターネット関連サービスの提供に関連する情報フローが増加しつつある。例えばインターネット・サービスの提供の結果生じる情報フローの増加により、特定のターゲット・グループへの到達を所望する情報提供者にとっても、また特定の情報の入手を所望する加入者にとっても次第に困難になりつつある。この問題の解決法の1つは、位置指向サービスを無線ネットワーク規模でワイヤレスの顧客に提供することである。
【0003】
現在いくつか存在する位置に基づくサービスには、例えばHollenbergによる米国特許第6,091,956号に記載されたものなどがある。この特許には、モバイル・ユーザに、サービスと、その現在位置に近接する場所及び出来事に関する時間が重要視される情報を提供するシステムが記載されている。このシステムには、専用の補助的コンピュータ端末が含まれるが、これは、位置に基づくサービスの提供に例えばセルラ電話を使用するとコストが高くつくという理論から提供される。加えて、この補助的端末には、位置決定機能を提供するために高コストのGPSサービスも提供される。このシステムでは、例えば、信頼性が低く、帯域に制限があることで悪評高い衛星リンクを通じて、モバイル・ユーザ及びその位置と、販売者及びその位置とを相互に関連付けるのに、いくつかの位置決定機能を提供しなければならないという点で問題が生じる。加えて、どのようにアプリケーションを開発し、それをどこでどのように実行するのかについての明確な規定がない。例えばメニューの説明は与えられるが、メニューを提供するのがサービス提供者なのか、あるいは端末の開発者なのかについての規定は示されていない。
【0004】
Moon他による米国特許第6,058,098号に記載されている別のシステムは、携帯式のインテリジェント通信装置に自動的にソフトウェアを構成することを含み、このソフトウェアの設定は位置情報に依存する。この場合も、位置情報は例えばGPSによって提供されてもよく、セル・サイズの範囲内で相互に関連付けることができる。販売者が提供するような位置に基づく情報や、他の位置に基づくサービスを提供することは開示されていない。更に、アプリケーションは、装置の製造者による携帯式インテリジェント通信装置に固有に設計する必要があるのか、あるいはそのような位置情報をいずれのソフトウェア・アプリケーションに提供することができるのかどうかも開示されていない。
【0005】
ワイヤレス・アプリケーション・プロトコル(WAP)の登場により、新たな、そして多くの場合は非常に特殊目的化した方法でユーザの役に立つような、特にサード・パーティによるアプリケーション開発の可能性が実質的に無限にあるという認識が生じた。インターネット使用の拡大によっても、情報サービスの提供に無限の可能性が生まれた。今日の高帯域幅環境で豊富に得られる無線媒体を導管(conduit)として使用して、ワールド・ワイド・ウェブ(WWW)ページ又はWAPページへのアクセスを提供するのと併せて、価値を付加したサービスを提供する機会は豊富にある。更に、情報を自発的な(unsolicited)方法でユーザに送信する「プッシュ」サービスに向かう傾向により、ユーザが関心を持つ情報や、端末に知られる要因、あるいは例えばオペレータ・インタフェースを通じて移動端末に入力することのできる要因、あるいは事前にプログラムすることのできる要因に応じて提供することのできる情報をユーザに与えるアプリケーションを提供する機械が増える。
【0006】
これ以外のWAPアプリケーションの例には、インターネット情報の検索が含まれ、この場合は、無線加入者がインターネットにアクセスすることを可能にするためWAPが使用されてもよい。特定の移動端末は、ユーザがインターネットにアクセスする能力を制限する場合もあることに留意されたい。メモリ・サイズなどの制限により、ユーザが移動無線端末を使用してインターネットをナビゲートする能力が著しく低下する場合もある。しかし、サービスマンの派遣や、追加情報の対話型要求、支払いサービスへのアクセス、通話セットアップ・サービスのメニューなどを含む電子メール通知といった他のアプリケーションをWAPによって促進することができる。
【0007】
残念なことに、WAPサービスを提供する機会はこれまで、専門知識を備え、業界で無線コミュニティとの密接なつながりを持つ者に限られており、その結果アプリケーション開発が低調だった。加えて、かなり広い基盤でWAPサービスを提供する必要性から、例えば小規模販売者などやそれほど裕福でないユーザなど、WAPによって恩恵を受ける可能性の低い層が、実質的にWAP市場から除外されている。更に、魅力のあるWAPアプリケーションの数が限られていることに伴い、一般に無線装置の訴求力が限られてしまうという望ましくない結果が生じる。従って、より多種多様なWAPアプリケーションが広く利用できるようになれば、あらゆる種類の移動端末に対する需要が一気に高まるものと思われる。WAPについての更に詳細な情報については、Christer Erlandson及びPer Ocklindによる「WAP−The Wireless application protocol」, Ericsson Review, No.4, 1998を参照されたい。Bluetoothについてはある程度言及されており、バンキング環境の特別な計算機についての一例が提供されるが、その計算機のために機能するアプリケーションの開発法についての開示はない。特別なハードウェアのために設計された特別なアプリケーションの場合は、目的とするハードウェアだけで動作することから、より広いユーザ基盤に対するアプリケーションの訴求力が制限される点で問題が生じる。
【0008】
このため、当技術分野では、位置に基づく情報サービスとそれに関連するアプリケーションを効率的かつ費用効果の高い方式で提供し、それにより無線端末の需要を更に促進する方法が望まれる。
【0009】
更に、当技術分野では、スケーラビリティがあり、複数の幅広いアプリケーション・カテゴリに応用することのできる位置に基づく情報サービス・アプリケーションを提供し、それによりこの場合も、その方法に準拠する移動端末及び同様な装置の需要を促進するような方法が望まれる。
【0010】
更に、ソフトウェア・アプリケーション開発を助長し、移動端末ユーザに更に多くの機能と利便性を提供することにより、更に移動端末の需要の増加をもたらす方法が望まれる。
【0011】
更に、ソフトウェア・アプリケーション開発を助長する方法もまた望まれ、より優れたアプリケーションを開発することによりこの方法自体の需要が高まるという意味で、方法自体の需要が増大するであろう。
【0012】
概 要
当分野のこれらのニーズ及びその他のニーズを満たすために、WAP−Bluetooth環境でウェブ・サイトなどの設定した総合ビジネス・ポータル(integrated business portal)を介して、単数又は複数の顧客、及び1つ又は複数のサード・パーティ開発者に、総合的な製品及び総合的なビジネスの提案を提供する方法について説明する。
【0013】
このため、本発明の各種の実施形態によれば、この方法は、例えば認可プロセスを使用して認可された資格を有するサード・パーティに、WAP−Bluetoothのソフトウェア開発キット(SDK)を提供することを含むであろう。SDKは、総合ビジネス・ポータルを使用してサード・パーティ開発者に提供することができる。本発明によれば、この総合ビジネス・ポータルは、サード・パーティ・アプリケーションの提供をサード・パーティ開発者にとって魅力的なものにする手段として、その提供者と関連付けた強力なブランド化力(branding)を有することに留意されたい。従って、資格を有するサード・パーティが開発した総合WAP−Bluetooth製品は登録され、例えば、製品レジストリで顧客やサード・パーティ開発者が総合WAP−Bluetooth製品を入手できるようにする。製品レジストリは、総合ビジネス・ポータルすなわちウェブ・サイトで利用できる製品データベースなどでよい。
【0014】
更に本発明の各種の代表的実施形態によると、例えばWAP−Bluetoothサーバ、WAP−Bluetooth移動端末、及び移動型WAP−Bluetoothサーバなど、いずれも少なくとも1つのBluetoothインタフェースを含むWAP−Bluetoothハードウェア製品に対する顧客からの1つ又は複数のハードウェアの注文は、総合ビジネス・ポータルを通じて処理することができる。更に、ハードウェアの注文に対する支払いを総合ビジネス・ポータルを通じて顧客から受け取ることができ、注文は全て、総合ビジネス・ポータルと関連付けられた中央位置から行うことができる。顧客からの総合WAP−Bluetoothソフトウェア製品に対するソフトウェアの注文は、総合ビジネス・ポータルを通じて処理することができる。更に、ソフトウェアの注文に対する顧客からの支払いと注文の履行は、総合ビジネス・ポータルを通じて達成することができる。
【0015】
更に本発明の各種の代表的実施形態によると、総合ビジネス・ポータルを使用して総合WAP−Bluetooth製品を提示し、試験的に顧客に提供することができる。このため、顧客は、その製品が自分のニーズを満たすかどうかを見極める前に製品を試してみることができる。また、試験的に製品を提示し、提供することにより、製品のサード・パーティ開発者は、例えばどのようなアップグレードが必要なのかを見極める機会を得ることができる。
【0016】
上記のようなSDKの提供によれば、SDKは次の構成要素の1つ又は複数を含むであろう;WAP−Bluetooth開発環境、WAP−Bluetoothソフトウェア・モジュール、及びドキュメンテーション。SDKは更に、WAP−Bluetoothアプリケーションの例を含むことができる。より具体的には、SDKは例えば、ブートローダ、ソフトウェア・プラットフォーム、及び基本WAP−Bluetoothアプリケーション、の1つ又は複数を含むであろう。ソフトウェア・プラットフォームは、Bluetoothスタック、オペレーティング・システム、及び例えば移動WAP−Bluetooth端末又はサーバなどのターゲット・ハードウェアにある、1つ又は複数のハードウェア・インタフェースに対応する1つ又は複数のソフトウェア・ドライバも含むことができる。本発明により提供されるSDKは、オープン・ソースのソフトウェア・コンポーネントを含むことに留意されたい。更に、WAP−Bluetooth開発環境は、例えばMicrosoft(登録商標)Windows(登録商標)動作環境やUNIX動作環境などで実行するアプリケーションの開発に適したグラフィカル・ユーザ・インタフェースの開発ツールを含むことができる。
【0017】
本発明の目的及び利点は、図面と併せて以下の詳細な説明を読むことにより理解されよう。
【0018】
詳細な説明
以下で、本発明の様々な特徴について図面を参照して説明するが、図面において同様な部分は同じ参照符号で識別している。
【0019】
従って、例えば位置に基づく情報サービスのアプリケーション開発を提供する方法を説明する。本発明の各種代表的実施形態によると、位置指向サービスを提供することができ、このサービスでは、Bluetooth規格に従って、例えば移動電話、PDAなどのWAP−Bluetooth装置、あるいはBluetoothインタフェースと、例えば本発明に従って開発された適切なアプリケーションとを有する任意の装置にローカルな情報を通信し、更に本発明によるWAP−Bluetoothサーバからサービスを提供する。
【0020】
代表的なBluetooth環境100を示す図1Aから分かるように、ユーザ140が、カバレージ範囲121を有するBluetooth機能を備えた施設に接近すると、Bluetooth端末130と、例えばインターネット110との間に接続が確立され、Bluetooth端末130に送信するメッセージ122を通じて、顧客位置本位の情報120をユーザ140に転送することができる。この方法により、従来技術による解決法では不可能であった位置に特化した方式で、非常に局地化した情報をユーザ140に転送することができる。このような近接指向あるいは位置に依存したサービスの潜在的な応用例は文字通り無限にあり、またこれについては以下でより詳細に説明するので、ここでは本発明の各種実施形態による基本的なBluetoothサービスを理解することで十分である。
【0021】
Bluetoothサービス環境100は、WAP−Bluetoothサーバ140を考察することによって更に理解することができる。このサーバ140は、例えば付加的な高速インターネットや、付加的なウェブ・サイトへの補助的サーバへの接続を提供するために標準的なコンピュータ150に接続するか、又は単にスタンド・アロン方式で動作することができる。標準的コンピュータ150を使用して、例えばケーブルを使用し、シリアル・インタフェースを通じて、WAP−Bluetoothサーバ140にアプリケーションをダウンロードできることに留意されたい。更に、WAP−Bluetoothサーバ140のメンテナンス用ソフトウェアを開発して、それを例えば標準的なコンピュータ150で実行することもできる。
【0022】
従って、Bluetooth端末130には、例えばサード・パーティ・アプリケーション開発者である顧客が仲介を希望するプッシュ・サービスが提供されてもよい。主としてBluetoothサーバ140に与えられる範囲が制限されているために、このような方法でサード・パーティの顧客が仲介を望む情報は、他の情報サービスから分離できることに留意されたい。100mの範囲が可能であるが、10m〜30mの一般的な範囲にすると、本発明と、Bluetooth仕様v1.0Aに概説されるBluetooth規格とに準拠するBluetoothベースのサービス規定を使用して、一定量の固有の分離が可能になることが保証される。具体的には、同Bluetooth仕様495〜513ページ、Interoperability Requirements for Bluetooth as a WAP Bearerが、本発明による位置依存情報サービスの提供とWAP−Bluetoothアプリケーションの開発を理解するための基盤を与えてくれるだろう。従って、サーバ140は、例えば1つ又は複数のWAP−Bluetoothサーバ140を購入している顧客といった、アプリケーション開発及び/又はサービス提供顧客が仲介を希望するウェブ・ページを、ユーザ140のWAP−Bluetooth端末130にプッシュすることができる。
【0023】
ユーザ140が提供された情報を実際に見る可能性を高めるために、WAP−Bluetoothサーバ140は、本発明の各種実施形態により、プッシュされる情報を無償で提供することが好ましいことに留意されたい。また、サービス提供/アプリケーション開発者である顧客がインターネット・アドレスしか持っていない場合、普通のユーザは、例えば従来のGSM装置などを介してインターネットに接続しなければならず、これにはコストと時間が更に必要になることに留意されたい。従って、WAP−Bluetoothサーバ140は、WAPとBluetoothの双方を使用するサービスを提供して、位置固有の情報をWAP−Bluetooth端末130に仲介する。端末130は図では例えばセルラ電話として表しているが、例えばモバイル・インターネットや追加的な総合サービスを提供するPDAなどの装置の形態にしてもよい。
【0024】
図2A及び図2Bからなる図2を参照すると、包括的なWAP−Bluetoothサービス提供及びアプリケーション開発環境200を表す、より詳細なエンティティ関係図が示されている。本発明の代表的実施形態によるハードウェア及びソフトウェア動作の詳細が更に示されている。図の最下部の電源221は、全回路が使用する可能性のある3.3Vの最小安定化電圧を生成するのに必要なハードウェアを表している。電源221は更に4.5〜12Vの入力電圧で動作し、また入力極性が反転した場合、あるいは入力電圧が30Vにまで高まった場合に損傷を受けないことが好ましい。リセット回路222が設けられてもよく、これは電源の電圧が上昇し3.1Vを超えたときに、ハードウェアを既知の明確な起動状態に入らせる機能を担うことができる。例えばアクティブ・ローのリセット信号を、例えばCPU、Bluetoothトランシーバ・モジュール(以降「Bluetoothインタフェース」と称する)、及びFLASHメモリなど、WAP−Bluetoothサーバ中の任意のハードウェアに供給することができる。
【0025】
Init223は、リセットによる起動の直後にブートローダ233が実行するソフトウェアである。Init223は、例えばメモリなどへの接続のセットアップなど、WAP−Bluetoothサーバ・ハードウェア環境220の基本的なセット・アップを行うことができる。ブートローダ233自体を外部FLASHメモリ内に常駐させることができるので、init223ソフトウェアがチップ・セレクトをセットアップする前の起動時にFLASHメモリを接続して、FLASHメモリにアクセスできるようにしなければならないことに留意されたい。init223プロセスの一部として、有効な電力がシステム中にあることをユーザに示すために、ステータスLED211をオンにすることができる。更にinit223の一部として、パワーオン・セルフ・テスト226で基本ハードウェアのテストを行うことができる。エラーが発見された場合は、それをエラー表示227として伝えることができる。軽微なエラーしか発見されない場合、このユニットは動作の継続を試みるが、重大なエラーがあると停止を試みる。
【0026】
深刻なエラーが生じずにinit223が実行された後、例えばWAP−Bluetoothアプリケーション・ソフトウェア・ロードのメモリの完全性性確認を含む、ソフトウェア完全性テスト225を実行することができる。従って、記憶されたアプリケーションのチェックサムを計算し、そのアプリケーションをダウンロードした際に別個に記憶しておいたチェックサムと比較することができる。チェックサム・エラーが見つかった場合、プロセスの実行はブートローダ233にとどまり、エラーのあるアプリケーションは起動しない。ソフトウェア完全性チェック225中にエラーが見つかった場合は、エラー・タイプの違いに応じてLEDを点滅させることにより、ユーザにエラーの原因を大雑把に表示することができる。エラーの種類は、エラーごとに異なる点滅回数を使用することによって示すことができ、複数のエラーが見つかった場合は最も重大なものだけを示すことが好ましい。LED自体がエラーの原因である場合には、このような表示法は適用できないことに留意されたい。
【0027】
RS232ポート228が、シリアル接続のために提供され得る。RS232ポート228には、例えば、CPUに組み込むことのできる、高度なバッファリングを行うUART、及び例えば電気的なRS232レベルと論理的な3.3Vの信号レベルの間の変換を処理する外部RS232トランシーバを含むことができる。RS232ポート228回路は、EMC/ESD問題を回避/抑制するために、何らかのフィルタリング機能も含むことができる。RS232ポート228は、最高115.2kbpsで動作するように設計することが好ましい。シリアル回線を介して通信するには、1組のシリアル・ドライバ230も必要である。デフォルトで、シリアル回線は、例えば8データ・ビット、パリティ・ビットなし、Iストップ・ビット、9600bpsといった標準的な非同期通信用にセット・アップすべきである。更にブートローダ233は、単純なブートローダ・プロトコル235を使用して、例えばメンテナンス・アプリケーション234と通信できることに留意されたい。
【0028】
有効なWAP−BluetoothアプリケーションがFLASHメモリ内にあり、メンテナンス・ツールからの接続が確立されていない場合、WAP−Bluetoothアプリケーションが、起動後に明確に定めた時間が経過してから起動されてもよい。この時間遅延の目的は、メンテナンス・ツールから要求があった際に、誤動作するアプリケーションがブートローダに入らないようにすることである。このため、WAP−Bluetoothを起動する前に、起動時にメンテナンス・ツールがブートローダ233と接続することのできる時間枠がある場合がある。代表的WAP−BluetoothサーバのCPUは更に、高度なタイマ・ドライバ231を備えることができる。ただし、これを最大に活用するために、いくつかのソフトウェア・ドライバが更に必要となる場合もある。誤動作するアプリケーションが偶発的にそれ自体を消去することができないように、FLASHドライバ232はブートローダ233に記憶して保護することができる。更に、ブートローダ233を記憶するセクタをハードウェアで保護して、ソフトウェアがそれを偶発的に消去できないようにすることができる。FLASHメモリのセクタに書き込み又は消去をするには、特別のソフトウェア・ドライバが必要である。FLASHプログラミングの特殊な特性の1つは、FLASHドライバ232は、それが書き込み/消去を行おうとする同じメモリ・チップからは実行することができないことである。従って、FLASHドライバ232は、使用前にFLASHからRAMにコピーされる必要がある。
【0029】
当業者には理解できるように、ブートローダ233は、基本的なハードウェアの初期化、基本的なシステム・テスト、及びWAP−Bluetoothアプリケーションの起動を担当する小規模なスタンドアロン・アプリケーションである。オプションで、管理者は、シリアル・ブートローダ・プロトコルを使用して新しいデータを装置にダウンロードすることにより、WAP−Bluetoothアプリケーションを更新又は交換することができる。ブートローダ233は、FLASHメモリの専用セクタに記憶することができ、起動中にブートを行うことが可能である。ブートローダ233は、製造プロセスの一部として、WAP−Bluetoothサーバにプログラムしてもよいことに留意されたい。またアプリケーションのソフトウェアによって誤って上書きすることができないように、ブートローダ233は保護することができることに再度留意されたい。
【0030】
ブートローダ233に加えて、低レベル動作のためにeCos295を使用することができる。eCos295は、オープン・ソース方式、ロイヤリティ不要、高度に構成可能な、組み込みシステムに理想的なオペレーティング・システムであることが好ましい。WAP−Bluetoothアプリケーションに対するサポートによれば、eCos295オペレーティング・システムは、例えばシリアル・デバイス・ドライバなど異なる種類のハードウェアに対するサポートを提供することができ、SDK280の中枢部分と見なすことができ、サード・パーティ開発者によるアプリケーション開発を容易にする。また、eCos295は、スレッド、mutex、及びタイマといった構成要素を実装するので、例えばBluetoothスタック290をWAP−Bluetoothサーバに移植することが容易になる。従って、eCosは、例えばTCP/IPスタックなどを加えることにより、WAP−Bluetoothサーバの機能を拡張するのを容易にする。
【0031】
ホスト・コントローラ・インタフェース(HCI)294は、Bluetoothスタック290の付加的部分である。HCI294は、ホストとBluetoothハードウェア間の均一のインタフェース、すなわちBluetoothハードウェアのリンク・マネジャを提供することができる。HCI294は透過性も提供することができ、例えば同じHostソフトウェアを、RS232やUSBなど異なるハードウェアで使用することができる。サービス・ディスカバリ・プロトコル(SDP)291は、Bluetoothスタック290の更に別の部分である。SDP291は、例えば端末アプリケーションが、サーバ・アプリケーションから提供されたサービスの存在を見つける能力を提供することができる。WAP−Bluetoothサーバは、端末にサービスを提供する典型的なサーバ・アプリケーションである。ただし、WAP−over−Bluetoothのプロファイルの欠如のために、SDP291の使用は、初期バージョンのWAP−Bluetoothサーバに限られる場合があることに留意されたい。ロジカル・リンク・コントロール及びアダプテーション・プロトコル(L2CAP)293は、Bluetoothスタック290の更に別の部分である。L2CAP293は、例えばいくつかの上位層プロトコルの使用を可能にするプロトコル多重化、例えば上位層プロトコルのパケットを区分することができるセグメンテーション及び再組み立て、例えばQoS規約のネゴシエートなどのサービス品質の保証、などの機能を提供する。RFCOMM292は、Bluetoothスタック290のまた別の部分である。RFCOMM292は、2台のBluetooth装置間の単純なシリアル・ケーブルの置換をシミュレートする。本発明によるWAP−Bluetoothサーバは、最高7つのRFCOMM292構成要素のインスタンスを使用して、最高7台の端末とのシリアル通信をシミュレートできることに留意されたい。更に、代表的WAP−Bluetoothアプリケーションでは、WAP情報は、例えばメンテナンス・アプリケーションにリンクさせてアプリケーションとともに記憶しても、アプリケーションとは別個に記憶してもよいことに留意されたい。WAP情報を個別に記憶する場合、本発明の代表的実施形態によるWAP−Bluetoothサーバは、FLASHメモリ・ファイル・システムを必要とすることが好ましい。このような構成要素はFLASHメモリを使用して、例えばファイルを開く、ファイルへの書き込み、及びファイルを閉じるなどの機能を使用することによりファイル・システムをシミュレートする。
【0032】
代表的アプリケーション270のためのグラフィカル・ユーザ・インタフェースを提供するために、Microsoft(登録商標)Windows(登録商標)バージョンのSDK280は、好ましくはWindows(登録商標)NT及び9x向けの一般的GNU開発ツール及びユーティリティの一部から構成されるCygWin開発環境275を使用することが好ましい。CygWin開発環境275は無償で利用することができ、その構成要素は、例えばGPLやパブリック・ドメインなど、各種のライセンスで保護されている。従って、binutils271は、例えばターゲット・プラットフォームのバイナリ、例えばオブジェクトやライブラリ・ファイルを操作するための小規模な基本ツール・セットである。更に、GNUコンパイラ・コレクション(gcc)272は、例えばARM7TDMIプロセッサなど、WAP−Bluetoothハードウェア内のCPU向けのC及びC++のクロスコンパイラを含むことができる。Gcc272はまた、再配置可能なオブジェクト・モジュールを、位置決定されたELFバイナリ内にリンクすることができるリンカも含むことができる。Gdb/インサイト273は、テキスト・モードのクロス・デバッガであることが好ましく、ターゲット環境のシミュレーション、又はWAP−Bluetoothハードウェアのリモートからのデバッグに使用することができる。リモート・デバッグは、下記で更に詳しく説明するように、低コストのシリアルRS232接続をgdbスタブ274と併せて使用するか、又はWAP−BluetoothハードウェアのCPUコアに内蔵されたハードウェア・エミュレーション機能に、高性能JTAGデバッガを通じて直接接続することにより行うことができる。インサイトは、gdb用の簡便で強力なグラフィカル・ユーザ・インタフェースである。gdbのグラフィカル・インタフェースの選択肢は多くあるが、インサイト・ユーザ・インタフェースの利点の1つは、Windows(登録商標)とUnixの両プラットフォームに移植することが可能なことである。WAP−Bluetoothハードウェアのリモート・シリアル・デバッグを行う場合、gdb/インサイト273は、スタブと呼ばれるターゲット・ハードウェアで実行されるソフトウェア・モニタとの通信を必要とすることが好ましく、またスタンドアロン・アプリケーションとするか、又はデバッグを行うアプリケーションにリンクすることが好ましい。本発明による代表的WAP−Bluetoothサーバでは、gdbスタブ274は、例えばブートローダ233にリンクすることができ、またコードとしてSDK280に供給して、WAP−Bluetoothアプリケーションにリンクすることもできる。
【0033】
本発明によるWAP−BluetoothサーバのCPUは、例えばARM社から入手可能なものなど、32ビットのRISCアーキテクチャであることが好ましい。このようなCPUは、“ARM”32ビット・モードか、又は“Thumb”16ビット・モードでコードを実行する能力を有する。どちらのモードによる実行にも利点と欠点があるので、SDK280は、ツールセット283の形態でARMとThumb両方をサポートするように設計することが好ましい。SDK280とともに提供されるドキュメンテーション282に従い、明確に系統立て注釈をつけたソース・コードと、例えばREADMEファイルなどのドキュメンテーションを含む例281を提供することができる。例281の目的は、サード・パーティ開発者がWAP−Bluetoothハードウェア用のアプリケーションの開発を容易に開始できるようにすることである。単純な例281は例えばLEDを点滅させることを含み、一方複雑な例281はWAP−Bluetoothアプリケーション自体を含む。例281を理解するのに必要とされる労力は、概略仕様だけからWAP−Bluetoothアプリケーションを直接理解しようとする場合よりは少ない。以下で更に詳細に説明するように、WAP−Bluetoothサーバ・ハードウェアの供給者は、サード・パーティ・ソフトウェアの最終的な認可に最も直結するような方法で標準に従って書かれた例281を提供することが好ましいことに留意されたい。
【0034】
先に指摘したように、SDK280は、GNU開発環境、ソフトウェア・コンポーネント、及び例えばインストール及び操作を含むドキュメンテーション282を含み、更にいくつかの例とアプリケーション・ノートを含むことが好ましい。GNUツールセット283は、例えばWinNT及びLinuxをメイン・ターゲットとして含む複数の開発プラットフォーム環境で使用するために設計することができる。ただし、この他のWin32プラットフォーム及びUNIXプラットフォームも適切な開発プラットフォームとして機能すると考えられることに留意されたい。オプションとして、WAP−Bluetooth装置の機能に役立つアプリケーションを提供することができるが、これはバイナリのWAPページをWAP−Bluetooth装置にダウンロードする機能を含んでいる。署名アプレット218を提供することができるが、この中では例えばローカル・ファイルの読み出し及び書き込みなど特別の権限をブラウザによってJavaスクリプトに与えることができる。これは通常は信頼されないアプレットでは行うことができない。署名アプレット218は、下記のWMLテンプレート219a及びWAP/WMLコンパイラ219bに関連する項で説明する機能を実施することができる。
【0035】
その名前が示すように、WMLテンプレート219aは、WAPページの作成に使用することができる。更に、WAP/WMLコンパイラ219bはWAPページ用のコンパイラであり、WMLで書かれたページをバイナリWAPフォーマットに変換し、それをWAP−Bluetoothサーバ装置にロードすることができる。外部ケーシング217を提供することができ、これはWAP−Bluetoothサーバの回路基板を保護し、装置に魅力的な印象を与える。更に、外部ケーシングは、前述の同時係属のデザイン出願第D00828号に記載されるような機能的及び非機能的な特徴を提供できることに留意されたい。
【0036】
更に、PDA及びそれに関連する移動端末へのファイルの転送方法についてのソース・コード例を含む例281を、SDK280の標準部分として提供することが望ましいことに留意されたい。従って、本発明の各種実施形態によると、サード・パーティのソフトウェア・アプリケーション開発者が、WAP−Bluetoothサーバを配信プラットフォームとして使用して特定のサービスを提供することを希望する顧客の興味を引くような高品質アプリケーションの基盤282を作成するために、初期段階で、WAP−Bluetoothサーバ・ハードウェアの初期のリリーズに関与することが想定される。更にサード・パーティ開発者のために、サイズが約50Kのソフトウェアのダウンロードなどのリソース283を提供することができる。更に本発明によると、WAP−Bluetoothサーバは、サード・パーティのソフトウェア開発者に向けて新しいビジネス284を作り出すこともできることに留意されたい。ウェブ・サイトなどを通じたサード・パーティ開発者による相互のSDKの相互作用の提供は、前述の同時継続出願第040042−003号に更に記載される方法によって提供することができる。サード・パーティ開発者アプリケーションの販売促進、ニュース・グループなど、例えば独自のウェブ・サイト250における特別の機能は、開発者コミュニティ259の成長を促進するという利点を有する。従って、WAP−Bluetoothサーバのアプリケーション開発者向けのウェブ・サイト250は、WAP−Bluetoothが、いつ使用や、サード・パーティ・アプリケーション開発者などに利用可能になるかについての情報を含むことができる。更に、シングル・セッション213のBluetoothデータ転送は、WAP−Bluetoothサーバと1台の移動端末間の転送を含むことができる。この機能はRFCOMM層を使用して、2台の装置間の単純なシリアル・ケーブル置換をシミュレートする。WAP−Bluetoothサーバは、自動的に移動端末に接続することができてはならず、ハード・コード化することが好ましい。マルチ・セッション212のBluetoothデータ転送は、WAP−Bluetoothサーバと数台の端末間の転送を含むことができる。このため、WAP−Bluetoothサーバは、エリアに入ってきた新規の端末に自動的に接続できてはならず、また例えば端末との接続はハード・コード化することができる。要求があると、各移動端末には同じWAPコンテンツを送信することができる。
【0037】
本発明による代わりの代表的実施形態では、WAP−Bluetoothサーバは、接続する装置の合計数が、1台のWAP−Bluetoothサーバによってサービスすることができる最大数を超えない限りは、受信エリアに入ってきたBluetooth移動端末やその他のWAP−Bluetoothサーバと自動的に接続を確立することができ、この最大数は7台であることが好ましい。サービス・エリアから離れる移動Bluetooth端末は、自動的に接続が切断される。接続すると、新規の移動Bluetooth端末にはそれぞれ同じWAPコンテンツを送信することができる。WAP−over−Bluetoothプロファイルが完了すると、WAP−BluetoothサーバはWAP機能を有する端末全てに連絡を試みるが、それ以前には、WAP−Bluetoothは、例えばWAP−Bluetooth機能を有すると識別された特定の指定端末にのみ連絡を試みる。
【0038】
先に触れたように、WAP−Bluetoothアプリケーションのステータスは、ステータスLED211で表示することができる。例えば、ステータスLED211は、高頻度で点滅することにより、移動Bluetooth端末との連絡を知らせることができ、更に、低頻度の点滅により、移動Bluetooth端末が到達範囲内に入るのを待っていることを知らせることができる。
【0039】
WAP規格は完全なものではなく、また例えば携帯電話などの特定の移動端末は“WAPプッシュ”をサポートしていないので、WAP−BluetoothサーバはATコマンド214と呼ばれる機能を使用して、例えばLUKASブロックにより、サポートされていない装置にウェブ・ページをプッシュする。WAPプッシュ215は、WAPウェブ・ページを他の端末にプッシュする機能を提供することができる。本発明によりWAP−Bluetoothシステム252を提供することができるが、これは、WAP−Bluetoothサーバ・ハードウェア220と、ウェブ・サイト250と、バイナリWAPページをWAP−Bluetooth装置に転送するためのWAP−Bluetoothアプリケーション270、210と、SDK280とを含むことができることに留意されたい。WAP−Bluetoothシステム252には更にユーザ・マニュアル251を提供することができ、これには、例えばウェブ・ページをWAP−Bluetooth端末に送信するためのデフォルトのソフトウェア・アプリケーションを備えたWAP−Bluetoothサーバ・ハードウェア220の使用法などが記載される。ユーザ・マニュアル251は、サード・パーティ・アプリケーション開発者向けの詳細な開発者マニュアルとして意図されていないことが好ましいことを理解されたい。
【0040】
このように本発明によると、WAP−Bluetoothサーバ・ハードウェア220によって伝えられる新しいアプリケーションを可能にすることにより、WAP−Bluetooth機能を備える端末の需要253を生み出すことができ、それにより端末所有者がアプリケーションから恩恵254を受けることが可能になり、更にWAP−Bluetoothサーバ・ハードウェア220に対する需要が高まる。WAP−Bluetoothは、情報提供者から端末所有者への情報のプッシュ255を可能にする。例えばサービスのワイヤレス配信などの情報プッシュ255を可能にすることにより、WAP−Bluetoothは所有者のビジネスを促進する257ことができる。更に、WAP−Bluetoothによって運ばれる新しいアプリケーションは、この場合もユーザ及び提供者にとって利益となる254サービスを提供する。WAP−Bluetoothはその外観と性能により、WAP−Bluetooth関連ハードウェアを所有したいという欲求を生じさせる256。更に、例えばWAP−Bluetooth移動端末又はWAP−Bluetoothサーバを所有することが、より高い社会的価値を持ちうる258ことにも留意されたい。
【0041】
WAP−Bluetoothサーバの標準的な供給の一部として開発及び提供することができるのは、基本的なWAP−Bluetoothアプリケーションだけであることに再度留意されたい。その代わり、サード・パーティ開発者に対しては、顧客にとってのWAP−Bluetoothサーバ及びシステムの価値を高めるように適合されたアプリケーションを開発するよう推進することが好ましい。この際、本発明により、様々なエンティティをWAP−Bluetoothサーバのサード・パーティ開発者と見なすことができる。例えば、現在3Com、Palm Pilotとして知られる無線オーガナイザなど、各種のワイヤレス装置向けのアプリケーションを専門的に開発している企業を考えることができる。WAP−Bluetoothサーバを購入し、その顧客ニーズに適合させるためにアプリケーションを拡張及び/又は交換するOEMエンティティ。自身の個人的なニーズのために、自身のアプリケーションを拡張、又は完全に設計する上級エンドユーザ。インターネットを介して無償でダウンロードできるソフトウェアを開発するフリー・ソフトウェア組織。
【0042】
従って、サード・パーティ開発者は一般的に、ビジネス開発者、個人開発者、及び産業開発者、の3つの主要カテゴリに分類することができる。異なるグループの例としては、ビジネス・カテゴリの場合には、例えば食料品店の青果及び/又は肉の部門にWAP−Bluetoothサーバを置き、そのサーバ近辺の製品に関する情報を知らせるなどの買い物情報のローカルな放送などがある。製品の鮮度、製品の産地、次の出荷の予定日などを、その近辺にいるユーザに提供することができる。
【0043】
個人カテゴリでは、個人開発者の自宅近くにいるユーザに、個人開発者の帰宅時間や、個人開発者のいる位置などを知らせることのできるホーム・ボイス・メール・ポストを提供することができる。ただし、外部者に、その住人の居場所に関する過度に重要な情報を提供しないように、パスワードやその他のユーザ識別情報を使用してこのような情報を保護することが望ましい場合もあることに留意されたい。更に、個別のビジネス・アプリケーションを提供して、個人開発者が個人的な開発を行えるようにしてもよいことに留意されたい。言い換えると、上記の例を使用すると、ビジネス開発アプリケーションは、個人ユーザによる開発を容易にする、ホーム・ボイス・メール・ポートの開発キットを含むことができる。あるいは、高い技術を持つ個人ユーザは、基本的なWAP−Bluetoothアプリケーション及びSDKを使用して開発を行うことができるかもしれない。個人開発者のアプリケーションの他の例としては、WAP−Bluetoothサーバから提供される情報をフィルタリングする個人エージェントなどが考えられる。例えば、あるユーザが菜食主義者である場合、そのユーザには肉製品に関する位置依存情報を排除することが望ましいであろう。
【0044】
更に、産業カテゴリでは、例えば1つ又は複数のWAP−Bluetoothサーバを使用したロボットの制御アプリケーションなどが考えられる。このような産業用アプリケーションは、共同の努力で開発することも、又は機器提供者や産業開発者の顧客が単独で開発することもできる。
【0045】
従って、このようなサード・パーティ・ソフトウェアの開発及び供給の戦略を使用することにより、いくつかの利点が認識される。多種多様な使用事例に利用可能なアプリケーションが数多くあることにより、あらゆる種類のWAP−Bluetooth装置の販売が促進される。アプリケーションは、ハードウェア提供者の開発組織に過度の負担を強いることなく開発することができる。ハードウェア提供者が戦略的関心を寄せない高度アプリケーションの領域を開発し、それによりハードウェア提供者がその特定領域の技量を持たなくとも、ハードウェア需要を高めることもできる。
【0046】
例えばソフトウェア開発コミュニティなど、ここ何年かの間に発展したオープン・ソース・ソフトウェアのパラダイムは現在産業界全体でその勢いを増し、注目を集めている。オープン・ソースの概念の詳細事項は多少複雑なものになってきており、広く流通する数種の出版物を参照することにより完全に理解することができる。従って、本発明によると、WAP−Bluetooth開発環境であらゆるソフトウェアを開発するのに使用するツールはオープン・ソースであることが好ましい。ツールは多くの開発者コミュニティに知られてそこで使用されることが好ましく、また高品質の製品であるという評価を受けることが好ましい。従って、例えばSDK280で配布されるソフトウェア・プラットフォーム・コンポーネントはオープン・ソースであることが好ましい。例えば、インターネット上で適当なオープン・ソース・コンポーネントが利用できる場合には、WAP−Bluetooth開発環境ではカスタム・コンポーネントよりもそのようなコンポーネントを使用することが好ましい。ただしカスタム開発も可能である。オープン・ソースのソフトウェアを提供することにより、WAP−Bluetooth装置向けのアプリケーション開発にかかるサード・パーティ開発者のコストを削減することができ、サード・パーティの開発努力を高めることができる。短期間で製品化することができるなど他の利点も実現することができる。
【0047】
オープン・ソース意識の高いユーザ・グループでは、今日開発されるオープン・ソース方式のソフトウェア製品は、より従来型の方式で開発及び販売される製品に比べて、信用面で非常に大きな恩恵を得られることが多い。従って、関連製品は、その製品をオープン・ソースで提供するだけで、より容易に市場に流通させ販売できる可能性がある。また、ユーザ・グループは、機能を拡張したソフトウェアの発売を待つのを受け入れ、またオープン・ソースのソフトウェアでバグをより容易に修正できることを想定して、システム中のバグやエラーにさえ寛容であることが考えられる。この結果、オープン・ソース製品は、ユーザ・コミュニティに許容されるものになるまでの多量の開発と試験を省略して、開発の初期段階で市場に出すことが可能である。ただし、本発明によると、WAP−Bluetooth規格はTG4互換であることに留意されたい。
【0048】
更に、Bluetoothはスキャタネット(scatternet)などのアドホック・ネットワーキングを可能にし、またアドホック・ネットワーキングの構成が有用なアプリケーションもあるが、一般的にはWAP−Bluetoothサーバはアドホック・ネットワーキング向けに構成しない方がよいことに留意されたい。また、本発明によるWAP−Bluetoothサーバに関連するハードウェアは、開発されるWAP−Bluetoothアプリケーションのサイズに応じて構成できることにも留意されたい。例えば、WAP−Bluetoothハードウェアは、後から行うアドオン式のメモリ・サイズの拡張などを考慮して設計することができる。WAP−Bluetoothには包括的な規格がないために、可能性のある全てのクライアントをサポートするただ1つの一般的な解決法はない。従って、いくつかのクライアントをサポートすることが好ましいが、アプリケーション開発者は、可能な限り多くの異なるクライアントをサポートする傾向があり、また実際にそのように推奨されていることに留意されたい。
【0049】
双方向通信が可能であるが、WAP−Bluetoothサーバは一方向通信をサポートすることが好ましいことに留意されたい。つまり、移動WAP−Bluetooth端末すなわちクライアントにWAPページをプッシュすることはできるが、WAP−Bluetoothクライアントが、例えばWAP−Bluetoothサーバを介してインターネットを検索することはできない。
【0050】
図3及び図4に示すように、WAP−Bluetoothハードウェアは、いくつかの主要な機能ブロックから構成されることが好ましい。性能を同程度に維持するために、本発明によるWAP−Bluetoothサーバは、標準的なBluetoothインタフェース320を提供するためのBluetooth無線モジュール321を含むことができる。更に含まれるのは、ソフトウェア・ライブラリとして入手することができる低レベルのBluetoothプロトコル部分(“ベースバンド”)のセットであり、これについては下記で更に詳しく説明するが、これは標準的なベースバンドFLASHメモリ323から、特別設計のARM7TOMI RISCベースのベースバンドμ−コントローラ322で実行することが好ましい。Bluetoothインタフェース320は標準モジュールとして提供することができ、アンテナ310をモジュールの一部とせずに外部Bluetoothアンテナ310に接続することができ、またUSBか標準的な非同期シリアル接続324を介して、最大460.8kbpsで“マスタ”CPU330に接続することが好ましい。USBは、例えばPCなどより大型のシステムとのインタフェース用に提供されるのが好ましく、一方シリアル接続324は組み込みシステムで使用することが好ましい。本発明の各種実施形態によると、Bluetooth無線モジュール321及びベースバンド・プロトコル・ソフトウェアは、独立したスタンド・アロン製品として利用できることが好ましいことに留意されたい。総合型Bluetoothインタフェース320をコア・デザイン・コンポーネントとして使用し、それに例えばシリアル接続324を介してマスタCPU330を接続することにより、複雑で不必要なUSBマスタ回路を使用せずに済む。本発明によって提供されることが好ましい基本WAP−Bluetoothアプリケーションは、中程度の通信速度だけを必要とすることが好ましいが、あらゆるサード・パーティ・アプリケーションの帯域幅要件を制限しないように、ハードウェア設計はやはり、最高460.8kbpsでBluetoothインタフェース320と通信できなければならないことに留意されたい。
【0051】
Bluetoothインタフェース320用のBluetoothアンテナ310は、いくつかの異なる方法で設計できることに留意されたい。本発明によれば、WAP−Bluetoothサーバに提供すべきアンテナ310の2つの方法には、PCB300に直接エッチングしたパターンとしてアンテナを提供するか、又は既存のBluetoothアンテナ“部品”を以下で説明するように使用することが含まれる。エッチング・アンテナは、実質的にコストがかからない、最も費用効果の高い解決法であると思われるが、いくつかの欠点がありうることに留意されたい。エッチングによるアンテナはより多くのPCBスペースを必要とする可能性があり、また正しいローブ特性を正確に適合させるのに更に労力が必要となることがある。アンテナ部品に関しては、小型、安価で、他の設計に合わせるのが比較的容易な単純な受動素子を使用することができる。このような部品は小型で安価であり、また好ましくはすでに入手できる状態にあるので、これを使用すると、アンテナを直接PCB中に実現する際に伴うリスクを最小に抑えられる。Bluetoothインタフェース320のベースバンド・コントローラ322は、ユーザモード・アプリケーションをそこで実行することはできないことに留意されたい。従って、例えば基本WAP−Bluetoothアプリケーションや、任意のサード・パーティ・アプリケーションなどの組み込みアプリケーションを実行するためにマスタCPU330が必要となる場合がある。マスタCPU330に求められる主要な要件は、可能性のあるあらゆるサード・パーティ・アプリケーションの処理ニーズにも対応できる、適切な処理能力を備えることである。更に、マスタCPU330は、RS232インタフェース335によってサポートされなければならない。このインタフェースは、Bluetoothインタフェース320とRS232インタフェース335とのインタフェースに外部構成要素を使用せずに済むように2つの内蔵UARTを含むことができる。シリアル・チャネルを高速で動作させる際に過度のCPU負荷が生じないように、UARTはバッファリングしなければならない。マスタCPU330は更に強力で高品質のツールセットでサポートすることが好ましいが、このツールセットは、追加コストをかけずにSDKにバンドルすることができ、オープン・ソースとして入手することができる。マスタCPU330のファミリーは、予想される将来の適合に対して適合及び移植が容易であることが好ましく、またRAM及びFLASHメモリ両方の変形を含む、各種のオプションのオンチップ・メモリ構成をサポートするプロセッサ・ファミリーのメンバであることが好ましい。複数のマスタCPU330の候補を現在のプロセッサ市場で得ることができるが、ある特定のプロセッサが、本発明によるWAP−Bluetoothサーバにほぼ理想的な候補として認識される。それは、サンノゼのAtmel社製造のAT91x40xxxである。
【0052】
Atmelコントローラ・ファミリーは、Bluetoothインタフェース320中のベースバンドμ−コントローラ322と同じプロセッサ・コアを基盤として構築されており、予想される将来のプロセッサ・バージョンへのソフトウェアの移植を非常に容易にするという利点をもたらす。更に、AT91x40xxxのコアは高性能の32ビットRISCであり、これはWAP−Bluetoothアプリケーションに予想される機能タイプに十二分な処理能力を提供する。理想的には、マスタCPU330として選択するのは低電力低コスト設計で、優れたコード密度を提供するもの、すなわちコード記憶のメモリ要件が低いものがよい。AT91x40xxxファミリーは、その16ビットの“Thumb”命令セットによりこのような特徴を提供する。また、比較的低価格の市販ツールセットもARMから入手可能であるが、その品質の高さと効率性が広く認められるGNUクロスコンパイラ・ツールなど、オープン・ソースのツールセットも利用することができる。更に、Atmel At9Iファミリーは、高度のバッファリングが行われる内蔵式の高速UARTを2つ含み、オンチップRAM及びFLASHメモリに各種のオプションを利用することができる。より具体的には、本発明によるWAP−Bluetoothサーバに使用することが好ましい変形例は、サンノゼのAtmel社製造のAT9IR40807である。これは、136kB、待ち状態ゼロ(zero−waitstate)の32ビット・オンチップSRAMを搭載しているが、内部ROM/FLASHは備えていない。最高2MBのデュアルプレーンFLASHのオンチップ・メモリと、上記の136KbSARMが含まれるが、基本WAP−Bluetoothアプリケーションに十分なメモリ量の予測は難しく、サード・パーティ・アプリケーションはみしろこれを超えるメモリ量を必要とするであろう。サード・パーティ・アプリケーションの可能性を制限しないように、外部RAM及びFLASHメモリの両方をオーバー・プロビジョニング(over−provisioning)することが好ましい。
【0053】
FLASHメモリは一般に時により入手困難であることが知られており、このため、FLASHメモリの最終的な選択は、必要量のFLASHの購入を担当するあらゆる製造会社の二次供給者とともに行うことが好ましい。FLASHの選択肢の1つは、Intel社製造の、4MB、16ビット幅、インシステム・プログラマブルなシングルプレーン・フラッシュである。このFLASHは、ブートローダの配置に非常に適したハードウェア保護が可能なブート・ブロックを備え、アプリケーション及びデータ記憶の両方に適した、100,000回の消去/書き込みのサイクルが可能な複数の64KBセクタを備えるとともに、EEPROMエミュレーションや、例えば連続番号、Mipv6アドレスなどの装置パラメータの記憶に適したより小さなセクタ・セットも備える。複雑なDRAMリフレッシュ回路を避けるために、外部SRAM332が好ましい。しかし、外部SRAMで512KBを超えるサイズのものは珍しく、大半は8ビット幅の装置でしか使用することができない。このため、8ビット幅、512KBのSRAMを2つ使用して、1MB、16ビット幅の外部SRAMとすることが好ましい。マスタCPU330では、別の136KB、待ち状態ゼロの32ビットSRAMを使用できることが好ましいので、外部SRAM332は、最高速タイプ、従って最高価格タイプのものである必要はない。標準的な低価格の70nsタイプで十分である。
【0054】
RS232インタフェース335は、WAP−BluetoothサーバとホストPCの間で使用するのが好ましく、RS232電気規格に準拠することが好ましい。規格への準拠は、例えば、チャージ・ポンプ用のコンデンサなど少数の外部受動素子のセットを含む、Maxim社から提供されるMAX32xxなどのRS232レベル・コンバータ・サーバを使用することにより、容易かつ効果的に達成することができる。RS232インタフェース335コネクタは、安価で標準的な“ストレートスルー”型のシリアル・ケーブルを使用できるように設計しなければならない。従って、WAP−Bluetoothサーバのコネクタは、例えば9ピン、メスのD−sub、DCEピン配列などであることが好ましい。マスタCPU330に内蔵することが好ましいUARTは、高性能バッファリング・タイプであることが好ましいので、ハードウェア・ハンドシェイク用の制御線、すなわちRTS/CTSの使用を省くことができる。従ってWAP−Bluetoothサーバは、中断のない高速シリアル・データス・トリームを常に受信することができる。ただし、ハードウェア・ハンドシェイクのために構成されたホストとの通信を可能にするために、当技術分野で知られるように、コネクタの直後でRTS/CTS線をブリッジすべきであることに留意されたい。従って、バンドルするシリアル・ケーブルは、絶対的に最も安価で軽量のタイプ、すなわち3本の導線のみを備えるストレートスルー・ケーブルであることが好ましい。WAP−Bluetoothサーバの一般的な“非工業的な”作業条件では、高価格で電気的に(galvanically)絶縁されたRS232インタフェースが必要になることはなく、一般的なインタフェースの内蔵型ESD対策で十分であることに留意されたい。しかし、ケーブルを通じて伝送されるEMCからサーバ及び環境の両方を保護するために、全ての接続線に個別のフィルタ素子を設けることが好ましい。マスタCPU330に好ましい、高度なソフトウェア構成が可能なI/O構造の結果、自動ボーレートのソフトウェア機能をサポートするのに必要なハードウェア、すなわちパルス幅タイミング測定が更にコストをかけなくとも備わっていることが好ましい。
【0055】
上記のように、本発明によるWAP−Bluetoothサーバで使用するために、1つの単色LEDが必要であることが好ましい。このLEDは、例えば電力投入、障害、動作状態など、複数の状態をユーザに表示するのに使用することができる。LEDの色は柔軟に選択することができるが、青であることが好ましい。LEDは表面に装着される部品であると好ましいが、機械設計に応じて、穴に取り付けたり導光型の代替形態も使用することができる。LEDは複数の目的に使用するためのものなので、ソフトウェアによって制御すべきである。つまり、LEDはマスタCPU330の出力ピンから制御する。通常の“状態制御”出力のような出力の使用以外にも、本発明によるマスタCPU330のプロセッサは、出力ピンを時間によっても制御して、オンチップ・タイマの支援により、制御された頻度でLEDを点滅させられる機能を持つことが好ましい。更に、LEDの発光強度は、当技術分野で知られるように、タイマを使用して例えばLEDをPWM制御することにより都合よく調整することができる。
【0056】
WAP−Bluetoothサーバは、高電圧変動率の異なる複数の国で販売することが考えられるので、外部の高電圧電源装置340を使用することが好ましい。これは、既製品を購入し、それ以上修正を行わずにWAP−Bluetoothサーバの供給の一部としてバンドルする。ただし、WAP−Bluetoothサーバを複数の場所で使用されることが予想される。例えば、WAP−Bluetoothサーバは通常はショッピング・エリアで使用することができるが、保守点検のために、それを営業所に持っていきPCに接続することができる。従って、標準的な電源に対応することが好ましい。しかしながら、標準的な電源は通例4.5〜12Vと電圧が異なり、電源プラグの極性も異なる。WAP−Bluetoothサーバ・ハードウェア中の回路は、正常に動作するのに安定化電圧3.3Vを必要とする。このため、WAP−Bluetoothサーバ内で電圧を調整することが好ましい。このため、安価で安定化していない4.5〜12Vの入力電圧を、安定した3.3Vのオンボード電圧に変圧することのできる内部電源を使用することが好ましい。WAP−Bluetoothサーバに必要な最大電流は、300mAの範囲にあると思われる。しかしながら、50mAが標準と規定されるものの、時にはBluetoothインタフェース320自体で約300mAを使用する場合もある。従って、電力供給が必要以下になるのを回避するために、およそ500mAの最大電流が好ましい。線によって電力を供給する設計には、通例は単純な線形電圧調整器が最も安価な選択肢であるが、このような調整器は、500mAの範囲で12Vから3.3Vを供給する際に非常に熱くなる可能性がある。不必要な加熱を防ぐために、切り替え式の調整器を使用することが好ましい。このような調整器は複数の製造者から入手することができ、少数の外部部品だけでサポートすることができる。電源340の電源コネクタは、標準的な2.1mmの電源コネクタで、正の電力がコネクタの中心に接続されるという最も一般的な構成であることが好ましい。電源340への入力は、極性の反転や過電圧入力に対する対策を備えるべきである。例えば、自動的に“回復する”Polyfuseなど異常電流消費の対策、及びケーブルを通じて伝送されるEMCを含むESDに対する対策なども含むことが好ましい。
【0057】
プリント回路基板(PCB)については、単一のPCBを使用し、可能性としてはLEDを除く全ての部品をそこに実装することができる。WAP−Bluetoothサーバの将来の適合により、更新によって必要とされるPCBスペースが減少することが予想されるので、PCBスペースは過度に大きくしない方がよく、スペースの制約に対しては、例えば4層又は6層のPCB、及び/又は両面実装などの多層基盤を使用して対処することが好ましい。PCBの材料がBluetoothアンテナの特性に影響を与える可能性があるので、安価なPCB材料は避けたほうがよい。このため、PCB材料は例えばRF設計の専門家によって承認してもらうとよく、また最適なRF特性に適したものでなければならない。更に、製造試験のために、PCB399では、重要なネットワーク・ノードをテスト・ピン、ならびにVddとグラウンド・ポイントで利用できなければならない。電源投入後に回路を明確に定義された起動状態にするために、リセットを引き起こす電圧を監視するサーバを使用すべきである。リセットは、マスタ・コントロール330、FLASHメモリ331、及びBluetoothインタフェース320に送られる。ベースバンドμ−コントローラ322のコアは、規格化された2×10ピン・コネクタを使用して、JTAGデバッグの組み込みサポートを備えることが好ましいことに更に留意されたい。通常の使用では必要ないが、このようなデバッグ機能は、高度なエラー・トレーシングやプロトタイプのデバッグに非常に有用である。ただし、2×10ピン・コネクタは不必要にPCBスペースを占めるので、デバッグ・ラインは“パッド”としてPCBで使用できるようにし、必要な際にはJTAGコネクタを手で容易にはんだづけできるようにすることが好ましい。EMC試験で過度のエネルギが放出されていることが判明した場合は、PCBにシールドされた筐体を取り付けるべきである。シールドは、電源装置340、マスタCPU330、Bluetoothインタフェース320、及び外部メモリ331及び332を覆うことが好ましい。これは、これらの部品は、放射エネルギによる問題の原因となりうると予想されるからである。ただし、EMC試験によりシールドが必要でないことが分かった場合は、部品及び製造コストを節減するためにシールドは取り付けない方がよい。
【0058】
図4に示すように、本発明によるWAP−Bluetoothサーバの各種部品をASIC420に一体化できることに留意されたい。例えばベースバンド・コントローラ422とFLASH420を合わせて組み込むことができる。無線インタフェース430、電源440、アンテナ410、LED423、及びRS232ポート450は、外部備品としてPCB400に提供することができる。動作は、上記で図3を参照して説明したものとほぼ同じであるが、通例このように一体化すると速度などの改善が得られる可能性がある。
【0059】
本発明によるBluetooth機能を提供するために、WAP−Bluetoothサーバは、以下に説明するようなソフトウェア機能を備えることができる。WAP−Bluetoothサーバは、サード・パーティ向けのソフトウェア開発プラットフォームを提供することを目的とすべきなので、提供するWAP機能は制限される。このような機能は、サード・パーティ・アプリケーションによって提供されることが好ましい。ソフトウェア環境が目標とするのは、新しいソフトウェアをダウンロードして、可能な限り多くのオープン・ソース・ソフトウェアを使用することなどである。ソフトウェア環境は、図5Aに示すように次の構成要素に分割することができる。3つの基本構成要素は、基本WAP−Bluetoothアプリケーション520、ソフトウェア・プラットフォーム510、及びブートローダ530である。
【0060】
基本WAP−Bluetoothアプリケーション520は、WAP−Bluetoothサーバのソフトウェア・パッケージのWAP機能を実施することができる。基本WAP−Bluetoothアプリケーション520の目的は、十分な機能性を実現して、WAP−Bluetoothサーバをそのままの状態で使用することのできる魅力的な製品にすることであるが、サード・パーティ開発者のためのアプリケーション例としても機能することができる。基本WAP−Bluetoothアプリケーション520の機能は、Bluetoothスタック513を用いて、WAPを使用できるクライアントがBluetoothインタフェース320の範囲内に入ってきた際に、そのクライアントとの連絡を確立することであることが好ましい。基本WAP−Bluetoothアプリケーション520は更に、例えばWMLCフォーマット、すなわち予備コンパイルされたWAPバイナリ・フォーマットでそのアプリケーションとともに記憶された静的なWAP情報をクライアントに送信することができる。基本WAP−Bluetoothアプリケーション520は、静的情報の送信を終えた際にクライアントとの連絡の解除も提供することができる。基本WAP−Bluetoothアプリケーションは更に、ダウンロード・プロトコルを実施することによりWAP情報のダウンロードもサポートして、ホストが個々のWMLCファイルをダウンロードできるようにする。新しいファイルをダウンロードする場合は、その前のファイルに上書きする。この機能を基本WAP−Bluetoothアプリケーション520に提供することにより、サード・パーティ開発者は、ブートローダを変更せずにより高度なファイル・システムを実施することができる。基本WAP−Bluetoothアプリケーション520は更にWAP−Bluetoothサーバのリセットをサポートし、また好ましくはRESETコマンドを受信してそれをブートローダに渡すことができる必要がある。この機能がないと、顧客は、例えばWAP−Bluetoothウェブ・サイトから新しいアプリケーションをダウンロードする際に、WAP−Bluetoothサーバを手動でリセットしなければならない。
【0061】
先に述べたように、WAP−Bluetoothサーバが同時に連絡を取るのは7つのクライアントに制限することが好ましい。この制限は、前述のBluetooth規格から直接得られるものである。更に、基本WAP−Bluetoothアプリケーション520で、限られた数の異なるWAPクライアントをサポートすることができるが、例えばEricssonのWAPクライアント、NokiaのWAPクライアントなどとの連絡を確立した際に、各WAPクライアントとの接続の確立の仕方についての固有の情報が提供されると、この数は増加することが予測される。更に、基本WAP−Bluetoothアプリケーション520は、静的なWAP情報をWAPクライアントに送信できるのに十分なWAPプロトコルだけをサポートするように構成することが好ましいことにも留意されたい。基本WAP−Bluetoothアプリケーション520は、例えばSDKに含まれるGPLなどのオープン・ソース・ライセンスを使用して認可されるANSI C言語のバージョンで書くことが好ましい。
【0062】
ソフトウェア・プラットフォーム510は、WAP−Bluetoothサーバのソフトウェア・パッケージの中核機能、すなわちBluetoothを使用した通信機能を実装することが好ましい。従ってソフトウェア・プラットフォーム510は、WAP−Bluetoothサーバに関連するBluetooth機能に関心を寄せる大半のサード・パーティ開発者が使用すると予想される。Bluetoothスタック513は、オープン・ソースのLinuxオペレーティング・システムの一部として提供されるAXIS BluetoothスタックなどのBluetoothスタックをオープン・ソース方式で実装することが好ましい。AXIS Bluetoothスタックは、元々はAxis Communicationによって開発されたものであるが、これをeCosオペレーティング・システムであってもよいeCosオペレーティング・システム512に移植することが好ましい。この他の情報については、developer.axis.com/software/bluetoothを参照されたい。Bluetoothスタック513は、HCI層、2CAP層、SDP層、及びRFCOMM層を含むことが好ましく、またANSI C言語で書き、更にGPL(コピーホルダーはAxis Communications)を使用して使用を許可して、SDKに含むことができる。
【0063】
オペレーティング・システム512は先に指摘したようにeCosであることが好ましい。これは、Cygnusが開発した、高度に構成可能な組み込み型のオープン・ソースオペレーティング・システムであり、現在はRed Hatが所有している。eCosを使用することが直接末端の顧客に対する価値を付加する訳ではないが、これを含むことにより、WAP−Bluetoothサーバ用のアプリケーションを開発する際にサード・パーティ開発者を支援することができる。更に詳細な情報を得るには、sourceware.cygnus.com/ecosを参照されたい。オペレーティング・システム512は更に、スレッド、タイマ、キュー、例えばシリアル通信ポートなどのハードウェア用のドライバといった標準的なシステム機能も提供することができる。オペレーティング・システム512は、一般的にはマスタCPU330をサポートすることが好ましいが、eCosは、例えばATMEL ATM7TDIプロセッサはサポートしない。eCosは、オープン・ソース・コミュニティの支援により、このプロセッサをサポートするように構成すると好ましい。eCosは、RHEPL(Red Hat eCos Public License)を使用して使用を認可し、更にSDKに含めることができる。RHEPLライセンスはGPLをやや厳格にしたバージョンであり、例えば、eCosを使用したアプリケーションをソース・コードを公表せずに配布する権利を提供者に与える。
【0064】
WAP−Bluetoothサーバのソフトウェア・パッケージは更に、例えばFLASHメモリなど異なるハードウェア用のドライバ511を提供することが好ましい。例えばeCosなどの上層ソフトウェアと、WAP−Bluetoothサーバ・ソフトウェアの間に明確なインタフェースを提供するために、ドライバ511は、サード・パーティ開発者が例えばeCosオペレーティング・システムを使用しないと決定した場合でも、開発者からアクセスできることが好ましい。ドライバ511は、ANSI C言語で書くことが好ましく、そのハードウェアの提供業者をコピーホルダーとしてGPLで使用を認可し、SDKに含むことが好ましい。
【0065】
ブートローダ530は、FLASHメモリ内に常駐する小規模のスタンドアロン・アプリケーションであることが好ましく、例えば、メモリのセットアップなどのWAP−Bluetoothサーバの初期化、メモリ・チェックなどの基本的なエラー検出の実行、RAMへの新しいアプリケーションのダウンロード、RAMからFLASHへのアプリケーションの保存、及び現在記憶されているアプリケーションの起動、などを担当することができる。ブートローダ530は、図5Bに示すようなWAP−Bluetoothサーバのメモリ・マップ540の情報を持っていることが好ましい。
【0066】
従って、図5Bに示すように、データ領域541は開始アドレス0x40 00 00(16進数)を含み、アドレス546で終わることができる。アドレス546は開発者が設定することができる。メモリマップ540は更に、アプリケーション領域548、構成領域543、及びブート領域544を含み、ブート領域は、アドレスが0x00 00 00(16進数)の基底アドレス545で構成することができる。
【0067】
ブート領域544はブートローダ530自体を保持するように構成することができ、またハードウェアによって保護することができるので更新することはできない。構成領域543は、例えば部品番号、ユーザ識別などの構成パラメータを保持することができる。構成領域543は、ブートローダ530によって更新することができる。アプリケーション領域542は、1つのアプリケーションを保持するように構成することができる。開発者がそのアプリケーションをアップグレードする場合は、その前のアプリケーションに上書きすることができる。アプリケーション領域542は、ブートローダ530によって更新することができる。データ領域541はブートローダ530からはアクセスできないことが好ましく、またアプリケーションによって更新することができる。従って、サード・パーティ開発者が、WAP−Bluetoothサーバにフラッシュ・ファイル・システムを実施することが可能である。
【0068】
アプリケーション領域及びデータ領域の個々のサイズをソフトウェアによって構成することができるので、あるサード・パーティ・アプリケーションがより多くのデータ領域541量を必要とし、別のアプリケーションはより多くのアプリケーション領域542量を必要とする場合などに、アプリケーションに応じて異なるWAP−Bluetooth構成を得られることに留意されたい。ブートローダ530は、ブートローダ・プロトコルを使用して開発プラットフォームと通信できることが好ましい。ブートローダ530は、先に述べたようにgdbスタブも含んでいるので、サード・パーティ開発者は、gdbデバッガを使用して容易にアプリケーションをデバッグすることができる。ブートローダ530はANSI C言語で書くことができ、SDKの一部として提供することができる。
【0069】
本発明によるWAP−Bluetoothサーバの提供に加えて、ウェブ・サイトをシステム全体のWAP−Bluetoothアーキテクチャ内に含むことができる。製品であるWAP−Bluetoothサーバを中心として充実した開発者コミュニティを構築するには、例えば、developer.WAP−Bluetooth.comなどの開発者のウェブ・サイトに、例えば、WAP−Bluetoothプロジェクトの説明、ダウンロード可能なソフトウェア・パッケージ、サード・パーティ開発者のメーリング・リスト、FAQ、HTML形式によるプロジェクトのドキュメンテーション、関連サイトへのリンク、などのプロジェクト・チャータを含めるのが好ましい。WAP−Bluetoothのウェブ・サイトは、WAP−Bluetoothアプリケーション・ユーザとサード・パーティ開発者を含む2つのターゲット・グループを有することが好ましい。基本WAP−Bluetoothアプリケーション520は工業所有権を有するにある製品としてサポートすることが好ましいが、WAP−BluetoothのSDKの管理及びサポートは、例えば電子メールによる通知やウェブ・サイトを通じて提供することもできる。ただし、サード・パーティ開発者は、実質的なピア(peer)サポートに貢献するよう期待されることに留意されたい。更に本発明の代表的実施形態によると、サード・パーティ・アプリケーションは、機器プロバイダによってはサポートしない。WAP−Bluetoothウェブ・サイトは、WAP−Bluetoothプロジェクトのドキュメンテーションと顧客サポートのためのメインのリポジトリ(repository)となることが好ましい。
【0070】
販売方法に応じて販売時に何らかのサポートが提供されるが、主要なサポートはWAP−Bluetoothのウェブ・サイトで提供することが好ましい。WAP−Bluetoothウェブ・サイトでは、WAP−BluetoothアプリケーションのWAPツールや、例えばダウンロード機能が組み込まれたユーザが操作しやすいインタフェースも入手することができる。従って、例えば経験の浅いユーザが、自分のWAP−BluetoothサーバにWAPページを容易に構築することが可能になる。更に、例えばオープン・ソース・コンポーネントに関するサポート、製品のドキュメンテーション、FAQ、及び追加サポートへのリンクに加えて、情報/ニュースも提供することができる。更に、ユーザ・コミュニティが、WAP−Bluetoothウェブ・サイトを通じて、他のWAP−Bluetooth開発者と出会う、WAP−Bluetoothの販売促進について知る、オンライン・ストアから商品を購入する、及びWAP−Bluetoothに関する広告を見ることなども可能にすることができる。
【0071】
先に触れたように、WAP−Bluetoothサーバ向けのソフトウェア開発のためにSDKを提供し、それを使用することができる。SDKは、内部開発者及び外部開発者を対象とすることが好ましい。初期の開発者は、例えば基本WAP−Bluetoothアプリケーション520の初期開発のためにSDKを使用し、一方サード・パーティ・開発者は、WAP−Bluetoothアプリケーションの独自開発のためにSDKを使用することができる。当業者には理解されるように、開発プラットフォームは、アプリケーションの反復的な開発に使用することができ、また必ずしもWAP−Bluetoothサーバを含まなくともよい。ただし、開発プラットフォームはターゲットとする動作環境に十分に似せる必要があり、完成したアプリケーションを、ターゲット・ハードウェア、例えばWAP−Bluetoothサーバに移植できるようにしなければならない。従って、開発プラットフォームには、例えばLinux又はWindows(登録商標)9xNT2000を実行する標準PCを含むことができる。開発者がWindows(登録商標)9xを使用している場合は、例えばクロスコンパイラを構築することができないなど一定の制約を適用することができる。開発環境は、コンパイラ、デバッガなど、開発プラットフォームで動作する必要なソフトウェア・ツールを含むことにより、開発をサポートすることができる。ターゲット・プラットフォームは、例えばRS232接続を使用して開発プラットフォームに結合することが可能なWAP−Bluetoothサーバであることが好ましい。
【0072】
SDKは、例えば開発環境、ドキュメンテーション、及び以前のターゲット・プラットフォーム向けのモデル開発ソフトウェアの成功例、などのソフトウェア・ツールのコレクションを含むことが好ましい。SDKが提供する開発環境は、GNU開発環境を含むことにより、ターゲット・プラットフォーム向けのソフトウェアの開発を可能にすることが好ましい。GNU開発環境は、異なる2つのツール・セットから構成される。開発プラットフォーム用のツール、すなわち標準PCで実行するプログラムの作成に使用するツールと、ターゲット・プラットフォーム用のツール、すなわちWAP−Bluetoothサーバ及び具体的にはマスタCPUで実行するプログラムの作成に使用するツールである。開発プラットフォーム・ツールは、gccコンパイラ、gdbデバッガ、メーク・ユーティリティ、及び例えばバッシュ(bash)などのUnixシェルといったコンポーネントからなることが好ましい。開発プラットフォームをLinuxで実行する場合、ツールは、オペレーティング・システムとともにインストールすることが好ましく、これはSDKの一部とは考えない。開発プラットフォームをWindows(登録商標)で実行する場合には、開発ツールを個別にインストールしなければならず、またSDKの一部として提供することができる。SDKはCygWin開発環境を含むことが好ましい。これは、GNU開発環境のWin32オープン・ソース・バージョンである。CygWinはバイナリ形式で配布されるが、開発者は必要な場合にはソース・コードをダウンロードすることができる。この他の情報については、sourceware.cygnus.com/cygwinを参照されたい。開発環境用のツールは、2つの役割を果たすことが好ましい。ツールは、ターゲット・プラットフォーム用のツールを構築する役割を果たすことができる。ターゲット・プラットフォーム用のツールは、インターネット上でソース・コード形式で得ることができ、例えばARM CPUなど指定のターゲット・プラットフォーム向けにコンパイル又は構築する必要がある。ツールはまた、例えばメーク・ユーティリティをソフトウェアの構築に使用するなど、ターゲット・プラットフォーム向けのソフトウェア開発も支援することができる。
【0073】
ターゲット・プラットフォーム向けのツールは、ターゲット・プラットフォーム用のソフトウェアの構築とデバッグを目的とするgccコンパイラとgdbデバッガなどの構成要素からなることが好ましい。gcc及びgdbのようなツールは、Linux及びWindows(登録商標)向けの実行可能ファイル及びソース・コード両方の形でSDKに含むことが好ましい。マスタCPU330は例えばARM7TDMIプロセッサとして実施すると、異なる2つのモード、すなわちARMモードとThumbモードでコードを実行することができる。現在この2モードには異なる2つの開発ツール・セットが必要なので、SDKは両方のツールセットを含むことが好ましい。
【0074】
SDKはまた、開発環境の他にも、WMLCコンパイラ用のWMLと、アプリケーション及びデータをWAP−Bluetoothサーバにダウンロードするためのツールを含むことが好ましい。WAP−BluetoothサーバがFLASHメモリにgdbスタブを含む場合、ダウンロード用のツールはgdbデバッガでよいことに留意されたい。
【0075】
先に指摘したように、SDK内のソフトウェア・コンポーネントは、基本WAP−Bluetoothサーバ・アプリケーション520及びソフトウェア・プラットフォーム510を含む。ブートローダ530もSDKの一部としてよいが、これを除外する理由の1つは、ブートローダ530はサード・パーティ開発者によって更新することができないので、ソース・コードを公表する理由がないことである。ブートローダ530は、例えば機器プロバイダが保護を希望するノウハウなどは一切含まないことが好ましい。更に、ブートローダ530が修正したgdbスタブを含む場合は、gdbはGPLを使用しており認可を受けているので、それを公表すべきであることに留意されたい。例えばeCosとして提供する場合のオペレーティング・システム512は、複数の異なるターゲット・プラットフォーム用のオペレーティング・システムをインストールするインストール・ファイルとしてSDKで供給することができる。指定されたターゲット・プラットフォームに対してeCosを構成するのに使用する構成ツールも提供することができる。インストールと構成を行った結果得られるのが、指定のターゲット・プラットフォームに必要な全てのソース・コード・ファイルを含む“ビルド”ディレクトリである。SDKは、eCosの完全なインストールのほかにも、WAP−Bluetoothサーバ用のビルド・ディレクトリを含むことが好ましい。
【0076】
ドキュメンテーションの目的は、SDKを使用するサード・パーティ開発者を支援することである。ドキュメンテーションは次の要素を含む:開発環境の使用法に関するドキュメンテーション、他のソフトウェア・ツールに関するドキュメンテーション、及びソフトウェア・コンポーネントに関するドキュメンテーション。必要なドキュメンテーションの量は、異なるコンポーネントごとに違ってよいことに留意されたい。例えば、eCosは、SDKに含むことが好ましい、非常に優れたドキュメンテーションとともに供給することができる。更に、ドキュメンテーションの形式は、例えばWindows(登録商標)及びLinuxなど、サポートされる全てのプラットフォームで読めるものであることが好ましい。ドキュメンテーションを例えばMicrosoft Wordで書くことは、それをHTMLやAcrobat PDFフォーマットでも供給するのであれば許容することができる。
【0077】
SDKは更に、サード・パーティ開発者を支援するための実例やアプリケーション・ノートを含むことが好ましい。各実例は、注釈をつけ明確に構成したソース・コード、WAP−Bluetoothサーバに直接ダウンロードするためのバイナリ・ファイル、及びテキスト・ファイルによる短い説明、の部分を含むとよい。実例の複雑度は、単純な“hello world”タイプのアプリケーションから、完全なWAP−Bluetoothアプリケーションなどにわたってよい。
【0078】
SDKは、Linuxの通例の慣行に従って、例えば“Software Release Practice HOWTO”(metalab.unc.edu/LDP/HOWTO/Software−Release−Practice.html参照)に従って開発しパッケージングすることが好ましい。パッケージングの慣行には、全てのソフトウェアをソース・コード形式と適用可能な場合にはバイナリ形式でも、サポートされる全てのプラットフォームに供給すること、全てのソフトウェアを圧縮形式で供給すること、SDKはautoconf及びautomakeを使用して作ることが好ましいことを意味する、周知の”./configure; make; make install”シーケンスを使用して構築することのできるソース・コードを供給すること、Linuxの通例の慣行に従って配布物(deliverable)全てに名前をつけること、例えばREADME、INSTALL、及びFAQなどの標準的なトップレベル・ファイルを全てのSDK配布物に含むこと、などがある。
【0079】
名前付けの慣行に従うと、全てのSDK配布物は、次の規則を用いて名前をつけることが好ましい。
[COMP]−[VERSION].[src/bin].[TYPE].[ARCH]
この場合、
COMP ソフトウェア・コンポーネントの名前。例:gcc
VERSION コンポーネントのバージョン又は日付。例:1.2.3、あるいは991223など
TYPE arm−AT9I−elf
ARCH アーカイブ及び圧縮拡張子。例:tar.gz
例:
gcc−2.95.2.bin.arm−AR9I−elf−win32.tar.gz
gdb−991223.src.tar.gz
【0080】
本発明による各種代表的実施形態によると、アプリケーションによってはイーサネット・インタフェースが有用な場合もある。例えば、更新情報を常に受信するために、WAP−Bluetoothサーバをインターネットに接続する必要があるようなWAP−Bluetoothアプリケーションではイーサネット・インタフェースが有用である。更に、より広い範囲をカバーしたい場合や、情報をWAP−Bluetoothサーバ間で共有する場合など、ネットワーク構成内で多くのWAP−Bluetoothサーバを扱う際にはイーサネット・インタフェースが有用である。イーサネット・インタフェースを追加する際は、イーサネット・コントローラ、アイソレーション・サーバ、及びコネクタなど、いくつかの構成要素が更に必要となることに留意されたい。こうした追加の構成要素を加えることは可能であるが、WAP−BluetoothサーバのPCBのスペースは多少限られている。従って、イーサネット・インタフェースは、追加コストをかけてWAP−Bluetoothサーバをアップグレードするという形で提供することが好ましい。
【0081】
先に指摘したように、シリアル・インタフェース450は例えばES232ポートとして構成する以外にも、USBインタフェースとして構成することもできる。現在のPCはほぼ全てがIJSBインタフェースをサポートしており、またUSBが提供する帯域幅はRS232ポートよりもかなり高いため、RS232インタフェースをUSBスレーブ・インタフェースに置き換えることは、別の可能なアップグレードとして有利であると言える。更に、WAP−Bluetoothサーバは、USBホストから電力を受け取ることができるので、別の電源装置が不要になる。上記のような構成も可能であるが、WAP−Bluetoothサーバは、USBホストから電力を得るために最大で50mAを得ればよいことに留意されたい。また、USBスレーブ・インタフェースをWAP−Bluetoothサーバに提供するためには、ソフトウェア・ドライバが必要であることにも留意されたい。また更に、USBスレーブ・インタフェースを提供するのに伴うコンポーネントの量、PCBスペース、及びコストは、RS232インタフェースを提供する場合とほぼ同範囲であることに留意されたい。
【0082】
更に、本発明による各種代表的実施形態によると、WAP−Bluetoothサーバを介して、データだけでなく“音声”タイプの情報の配信も提供すると有用である。理解されるように、このような応用は、例えばオフィス内でBluetoothヘッドセットを装着しているユーザに音楽を配信する場合などに有用である。ただし、WAP−Bluetoothサーバは、例えばmp3の音楽ファイルなど大量のデータをローカルに記憶する機能は限られていることに注意しなければならない。従って、本発明の各種実施形態によると、音声/音楽情報はかなり短いものにするか、又は音声/音楽情報は外部サーバから、例えばRS232、イーサネット、あるいはUSBなどのインタフェースを介して提供することが好ましい。好ましくは最小の構成要素コストで、更に必要とするPCBスペースがそれほど多くないいくつかの追加構成要素のみを追加することにより、WAP−Bluetoothサーバにオーディオ機能を付加することができる。更に、音声の提供に加えて、一定のシステム・パラメータを満たす場合には映像も提供することができることに留意されたい。例えば、WAPバージョン2.0又はそれ以降を使用しなければならず、またWAP−Bluetooth端末は、そのローカル・ディスプレイでグラフィック・モードに入ることができなければならない。このためには、グラフィック・ドライバがWAP−Bluetooth端末になければならない。適切な解像度と、例えば色表示機能があると更に望ましい。
【0083】
高度の、従ってハードウェアに対する要求が多いアプリケーションの大半は、サード・パーティ開発者によって開発されると予測されるので、先に指摘したように、WAP−Bluetoothサーバに提供するメモリの最適な量の見積もりには困難な面がある。例えば平均的あるいはそれ以上の大きさのアプリケーションに必要な量に対応するメモリ量を提供すると、多くのタイプのアプリケーションではメモリの一部が無駄になる可能性が高い。その一方で、例えばローカルに記憶されたmp3の音楽ファイルの再生を提供するアプリケーションなど、大量のメモリを必要とするアプリケーションもある。様々に異なるメモリ需要に対処する1手段としては、“メモリ拡張スロット”をWAP−Bluetoothサーバに追加し、それによりユーザが、例えばメモリ・カード、すなわちそのアプリケーションに適したメモリ量を有する適切なメモリ拡張モジュールを挿入できるようにするという手段がある。例えばRAM、FLASH、“コンボ”など、市販のメモリ・デバイスが多くあることに留意されたい。更に、それぞれのタイプのメモリ・デバイスは、数メガバイトから数百メガバイトまでメモリによって異なる容量を有し、また例えば“MemoryCard”、“FlashStick”、及び“PC−Card”など、サポートすべき“規格”がいくつか存在する。
【0084】
更に、本発明の各種代表的実施形態によると、WAP−BluetoothサーバはUSBマスタ・インタフェースを備えると望ましい。このインタフェースを使用して、必要なリソースを備えるUSB周辺装置をWAP−Bluetoothサーバに接続することができ、それにより、イーサネット・スロット及びメモリ・スロットのような追加ハードウェアを直接ハードウェアに追加する必要がなくなる。ただし、USBマスタ・インタフェースは、その“スレーブ”に相当するインタフェースに比べるとかなり複雑なインタフェースである。実際、USB規格は、1台のPC内でサーバになると予想されるマスタ側にコストと複雑性を置くことにより、安価で単純なスレーブを提供するように設計されている。このため、USBマスタはやや高価な構成要素をいくつか必要とするが、その最も複雑な部分は、複雑でありまたメモリを多く必要とする可能性があるUSBマスタ・ソフトウェア・スタックであろう。
【0085】
本発明による代わりの代表的実施形態によると、WAP−Bluetoothサーバは、特にそれをコードで壁のコンセントに常に接続しておく必要が特にない場合には電池式にすることが好ましい。電池式のWAP−Bluetoothサーバの設計は、低電力モードをサポートするように構成されたハードウェアを活用することができるが、このようなサポートは、標準的なソフトウェア・ロードの一部ではないやや複雑な“電力管理”ソフトウェアによって提供されるものである。更に、余分な構成要素を必要とし、特に電池が、WAP−Bluetoothサーバに関連するコストとスペースの要件についてかなりの意味合いを付け加える。
【0086】
本発明の代表的実施形態によると、WAP−Bluetoothサーバは、室内の“オフィス”条件向けに設計にすることが好ましい。従って、多くの、そして“工業的”な応用例があり、また不都合な環境条件が存在しうる室外用アプリケーションでWAP−Bluetoothサーバを使用するには、既存の設計を変更しなければならない。“室外”での使用には、極端な湿気や、極端な乾燥、極端な低温、極端な高温下での使用、及び/又は極端に粉塵が多い条件、不潔な条件、あるいはその他微粒子物質が存在する条件での使用が含まれうる。従って、機械設計を変更して、特定アプリケーションや予測される環境条件の範囲に適合させることが必要となる。普通にパッケージされるWAP−Bluetoothサーバは、最低でおよそ+摂氏5度までは正常に動作すると予測される。大半の構成要素は、より極端な動作環境に対する耐性のあるバージョンでも使用することができるが、Bluetoothインタフェース320は、現在は商業的な温度範囲でしか使用することができない。この状況は、WAP−Bluetoothサーバ及び装置の人気が高まり、それに応じて需要が高まるのに従って、改良型のBluetoothインタフェース・モジュールが製造されるようになるにつれて変化することが予測される。“工業的”使用は更に、WAP−Bluetoothサーバが、例えば振動、変動する温度、及び厳しい電磁場などにさらされうることも意味するが、標準的な商業用設計ではこれらに対処していない。産業的使用及び室外使用に関連するいくつかの問題は、より“堅牢な”機械パッケージングを設計することにより、即座に対処することができる。これは、例えば衝撃及び振動に対する耐性、防水性、防塵性、及び気温の両極端に対する耐性などであるが、これはまたハードウェア設計についての意味合いも有する。例えば、一般的には、産業機器に接続するRS232のようなインタフェースは、電気的に相互に分離している必要がある。リモートの商業及び/又は室外用アプリケーションで使用するための、耐久性を高めた電池式の装置によると、ソーラ・パネルを使用してバッテリー・チャージを維持するのも有用であることに留意されたい。様々な要件の組み合わせを構想することが可能なので、全ての可能性のある物理的条件に向けた単一のWAP−Bluetoothサーバよりも、企図する要件の仕様それぞれに対して個別に変形形態を考える方が有用であると思われる。
【0087】
先に指摘したように、RS232インタフェースは、例えばUSBスレーブなどの別のインタフェースに置き換えることも、あるいは完全に排除することもできる。代わりにBluetoothインタフェース自体を介して、それに実行すべきメンテナンス作業を転送することができる。RS232用の素子を取り除くと、特にコネクタの周囲でPCBのスペースをある程度節約することができ、また恐らくは一定程度のコストも節減される。RS232インターレースはそれほど高価ではないが、RS232インタフェースを取り除くことは、注意に値する示唆をいくつか含んでいる。示唆の1つは、一実施形態では、PCBを筐体中に固定するのにRS232コネクタを使用することである。この場合、RS232コネクタを取り除くと、PCBを別の方法で固定しなければならないことになる。今1つの示唆は、RS232線を、アプリケーション開発中のデバッグに使用していることである。このため、RSコネクタを取り除くと、デバッグのサポートを提供する別の方法をSDK及びWAP−Bluetoothサーバに含めなければならない。可能な解決法としては、例えば単純な2ピンのSIPコネクタがある。
【0088】
WAP−Bluetoothサーバの別の簡略化は、外部メモリを不要にするものである。必要なのがオンチップ・メモリだけであれば、WAP−Bluetoothサーバの設計に必要なスペースははるかに少なくなる可能性があり、また部品コストもかなり削減できる可能性が高い。外部のデータ・バス及びアドレス・バスの使用を省くことによってもPCBの設計は単純になり、外部のデータ・バス及びアドレス・バスから発生することが多いEMC問題のリスクの可能性も減る。本発明の各種代表的実施形態によると、例えばマスタCPU330で使用するμ−コントローラ、すなわち例えばARM7TDMIなどのベースバンドμ−コントローラ322、422は、単一パッケージで2MBのFLASH+136KbのSRAMメモリの最大の組み合わせを提供するファミリーに該当する。これは大半の使用例には完全に十分であるが、先に述べたように、メモリ容量を制限することは、アプリケーションによっては提供されるメモリに適合しないものもあり、またサード・パーティ開発者がサーバ用アプリケーションの開発努力への投資を回避しかねないことを意味する。このような問題は、例えば2MB+136Kbのサーバを使用し、外部メモリの代わりに、メモリ・カード・スロットか、又はより多くのメモリ容量を有する別のサーバへの固定接続を使用することによって回避することができる。すると、サード・パーティ開発者は、幅広いメモリ構成ニーズに対してソフトウェアを開発することができ、一方、メモリの要求が少ないアプリケーションをオーバープロビジョンしたハードウェアに提供することによりそれほどのコストを浪費せずに済む。
【0089】
先に指摘したように、本発明の各種代表的実施形態によると、Bluetoothアンテナ素子をPCB上のパターンに置き換えると更に望ましい。Bluetoothのアンテナ素子は比較的低コストの素子であるが、PCBに直接パターンとしてアンテナを実現すると、そのコストを完全に削除することができる。このような解決策は、正確に設計するのにある程度の労力を必要とするが、一旦設計してしまうと、実質的に最低限費用ゼロでアンテナを実現できることを意味する。ただし、アンテナ素子を含む代表的実施形態は、コンパクトな解決法を提供するが、PCBによる変形形態には多少多くのPCBスペースが必要になると予想されることに留意されたい。
【0090】
先に図3を参照して説明したように、Bluetoothインタフェース320は、強力なベースバンドμ−コントローラ322とFLASHメモリ323の両方を備える、完全な組み込み型マイクロコンピュータである。Bluetoothインタフェース320の価格は単体で(stand−alone)30米国ドルであるが、これはWAP−Bluetoothサーバの製造コスト全体のかなりの割合を占める。更にここで、Bluetoothインタフェース320のベースバンドμ−コントローラ322の容量のうち、Bluetooth関連の通信に使用されるのはわずか約30%であり、容量の残りはエンドユーザ・アプリケーションに向けられることが理解できる。しかし、ベースバンド・ソフトウェアはまだ、エンドユーザ・アプリケーションとともに単一CPUに安全に共存できるように“パッケージ”されていないので、この問題はいずれ解決されるものと予想されるが、現在は余分の容量を利用することができない。WAP−Bluetoothアプリケーションをベースバンドμ−コントローラ322及びFLASHモジュール323に記憶して、Bluetoothベースバンド・ソフトウェアで実行することができれば、外部のマスタCPU330と外部メモリ331及び332をいずれもPCBから取り除くことができる。このようにすることにより、例えば図4に表すPCB400として実現した高容量(high−volume)の第2世代WAP−Bluetoothハードウェアに対する魅力的な解決法が提示され、コスト、PCBスペース、及びWAP−Bluetoothサーバの電力消費をかなり減らすことができる。更に、2プロセッサ設計の場合には、単一CPUの解決策への平易な移行が提供される。例えば、マスタCPU330にAT91μ−コントローラを提供し、Bluetoothインタフェース320と同じコア・プロセッサをベースバンドμ−コントローラに使用すると、ほとんど追加の労力をかけずに、全てのソフトウェアを総合ベースバンドμ−コントローラ422に移植するための良好な基盤を提供することができる。WAP−Bluetooth−ASIC420の設計を、Bluetoothベースバンドμ−コントローラ422から開始すると、更に別のレベルの総合を好適に達成することができる。
【0091】
本発明により、例えば組み込み型フラッシュ・ファイル・システム及び/又はEEPROMエミュレーションなど追加機能を提供することにより、拡張したWAP−Bluetoothアプリケーション機能を提供することができる。組み込み型フラッシュ・ファイル・システムはソフトウェア・プラットフォーム510の一部として、FLASHメモリを使用して、例えばDOSなど通常のファイル・システムをシミュレートすることが好ましい。このようなファイル・システムにより、WAP−Bluetoothは次のような機能を実施する。組み込みフラッシュ・ファイル・システムを使用すると、WAPコンテンツを含んだ複数のファイルを保存することができ、例えば異なる情報を異なるクライアントに送ることが可能になる。組み込みフラッシュ・ファイル・システムを使用すると、各ファイルに例えばセキュリティ・アクセス属性を与えることができるので、より優れた情報セキュリティを付加することができ、何者かが情報を更新するのを防ぐことができる。組み込みフラッシュ・ファイルにより、例えばクラッシュ回復の形でシステム・ファイル・セキュリティを付加することができる。組み込みフラッシュ・ファイル・システムは市販製品として入手可能であるが、本発明の各種代表的実施形態によるWAP−Bluetoothサーバは、組み込みフラッシュ・ファイル・システムをサポートするのに十分なFLASHメモリを備えることが可能であることに留意されたい。
【0092】
一方EEPROMエミュレーションは、例えばFLASHメモリ331、421などに少量の情報を記憶するのに使用することができる。従って、FLASHメモリ331、421はEEPROMメモリとして機能するように構成することができ、これは、例えば基本WAP−Bluetoothアプリケーション520を更新して、例えば特定の期間中にBluetooth接続の確立がいくつ成功したかなど、特定の情報要素を記憶させる場合に有用であり、またこの期間も記憶しておくことができる。
【0093】
TCP/IPスタックの追加は、例えば先に説明したようにイーサネット接続を使用して、WAP−Bluetoothサーバをウェブ・サーバ/ゲートウェイに変換するために必要である。更に、Bluetooth接続とRS232接続の両方にTCP/IP機能を付加することも可能であることに留意されたい。更に、TCP/IPスタックは、オペレーティング・システム512として使用するeCosオペレーティング・システムの構成要素として含むことが好ましいが、他のオープン・ソースの代替例及び市販の代替例も利用することができることに留意されたい。
【0094】
Bluetoothスタック513の拡張した機能は、継続的に提供することが好ましい。このため、ソフトウェア・プラットフォーム510は、Bluetoothスタック513が完全になったと思われる時点まで、周期的に更新しなければならないことが好ましい。ソフトウェア・プラットフォーム510は、Bluetoothスタック513の拡張が公開されたかされないかに関係なく、周期的に更新することができる。例えば、WAP−Bluetooth環境で新しく関心のある機能を実施することを可能にする新しいクライアント・プロファイルのサポートなど、何らかの新しいソフトウェア機能を追加する場合には、ソフトウェア・プラットフォーム510も更新することになる。
【0095】
本発明の各種代表的実施形態によると、ソフトウェア・プラットフォーム510に組み込みウェブ・サーバを追加することが望ましいが、組み込み型ウェブ・サーバをBluetooth接続に追加するのか、RS232接続に追加するのか、あるいは両方に追加するのかに応じて異なる結果が生じる。Bluetooth接続に追加するウェブ・サポートは、WAP−Bluetoothサーバを、例えばPDAやラップトップ・コンピュータなど、Bluetooth及びウェブ機能が可能なクライアントに変換するのに使用することができる。RS233接続にウェブ・サポートを追加すると、WAP−Bluetoothサーバが、インターネットとWAPクライアント間でデータを移動させるためのWAPサーバとして機能することが可能になる。
【0096】
WAP−Bluetoothサービスは、例えばホストのウェブ・ブラウザを使用して新しいWAPコンテンツをダウンロードすることによって部分的に保全することができるが、基本WAP−Bluetoothアプリケーション520がサポートするメンテナンス機能だけを組み込み型ウェブ・サーバでサポートしてもよい。ブートローダ530がサポートするメンテナンス機能は、組み込み型ウェブ・サーバではサポートすることができない。組み込み型ウェブ・サーバは、TCP/IPスタックをソフトウェア・プラットフォーム510に追加することを必要とする場合があることに留意されたい。先に述べたように、TCP/IPスタックは、オープン・ソースとしても市販製品としても入手することができる。
【0097】
本発明による別の代表的実施形態によると、ブートローダ530とのウェブ・インタフェースは、基本的な診断や、ホストのウェブ・ブラウザを使用した新しいアプリケーションのダウンロードなどのメンテナンス機能を実行することを可能にする。WAP−Bluetoothメンテナンスのウェブ・ページは、WAP−Bluetoothサーバ中にローカルに置くことができ、又は遠隔メンテナンスの場合は、ホスト・インタフェースを通じてメインWAP−Bluetoothウェブ・サイトにリモートに接続することもできる。組み込み型ウェブ・サーバの場合と同様に、ブートローダ・ウェブ・インタフェースは、ソフトウェア・プラットフォーム510にTCP/IPスタックを追加することを必要とすることがある。
【0098】
完全なWAPスタックを実現すると、セキュリティ取引のサポートなどのWAP機能や、例えばWAPゲートウェイを実現する可能性が追加される。完全なWAPスタックは、市販製品として入手可能であることに留意されたい。
【0099】
更に本発明の各種代表的実施形態によると、eCosオペレーティング・システムの開発者は、現在、EL/IXと呼ばれるアプリケーション・プログラミング・インタフェース(API)を定義しており、これはLinux、組み込み型Linux、及びeCosのカーネルAPIを統一する。ソフトウェア・プラットフォーム510を更新してEL/IX APIをサポートするようになると、例えばAxis BluetoothスタックなどのLinuxアプリケーションの変換が大幅に平易になる。詳しい情報については、例えば、sourceware.cygnus.com/elixを参照されたい。
【0100】
eCosオペレーティング・システムは、C言語ではなくC++言語で実現することに留意されたい。ただし、eCosはCラッパ・コードを含んでおり、C言語のアプリケーションを実施できるようにしている。例えば基本Bluetoothアプリケーション520及びBluetoothスタック513などは、C言語で実施することに留意されたい。基本WAP−Bluetoothアプリケーション520の機能を大幅に拡張する場合には、C++などのオブジェクト指向のプログラミング言語に移行するとよい。このようにすると、例えばBluetoothスタック513などC言語で書かれたコードに、C++ラッパ・コードが必要になる。
【0101】
本発明による各種代表的実施形態により、高級言語解釈のサポートを更に提供することができる。C又はC++APIをソフトウェア・プラットフォームとしてサード・パーティ開発者に提供する代わりに、例えばJava、Pert、又はPythonなど解釈済みの高級言語をWAP−Bluetoothサーバで実施することができる。オープン・ソース・コミュニティの要件のため、機器プロバイダは、言語インタープリタを実施するか、又はWAP−Bluetoothサーバのオープン・ソースによる実施を適合させなければならないことに留意されたい。Blutooth機能などサード・パーティ開発者に必要な全ての機能は、WAP−Bluetoothの機能ライブラリとして提供しなければならない。従って、高級言語の解釈を追加することにより、WAP−Bluetoothサーバは、次第に多様化する新しいBluetooth機能の範囲(array)を極めて容易に開発し、実施することができるプラットフォームになる。基本WAP−Bluetoothサーバ520は、50行未満のコードで実現することが好ましいことに留意されたい。更に、WAP−Bluetoothサーバは比較的容易に携帯電話に実装できることに留意されたい。
【0102】
従って、本発明の各種代表的実施形態によると、総合ビジネス・ポータル600(あるいは、総合ポータル600)を図6Aに示すように提供することができ、当方法のさまざまな態様のための中心的位置を提供する。サード・パーティ開発者610は、総合ビジネス・ポータル600へのインターネット“ドア”として機能する、例えばウェブ・サイト602を容易に見つけることができるが、これは、顧客650又はサード・パーティ開発者610として参加するための総合的なビジネス提案を少なくとも部分的に提供することができる。ウェブ・サイト602と併せて、例えばEricssonなどのブランド名601に関連するブランド化も提供される。ブランド名601の強さは、SDK603を使用してアプリケーションや総合製品605を提供するサード・パーティ開発者610にとっても、それにより提供されるアプリケーションや総合製品605を使用する顧客650にとっても、強い刺激材料となることに留意されたい。総合製品605は、認可されると製品ポートフォリオ・データベース604に登録することができ、この時点で顧客650が製品605を利用できるようになる。先に説明したように、顧客650は、例えば産業651、ビジネス652、及び消費者653を含むカテゴリに分けられることに留意されたい。更に、顧客には、直接供給チャネル654を提供することができ、一方サード・パーティ開発者には、総合製品605を供給する直接販売チャネル655を提供することができる。サード・パーティ開発者610としての資格を与えるために、スクリーニング・プロセス611を使用して、候補者がサード・パーティ開発者610としての最低レベルの能力を満たすかどうかを判定することができる。基準を達成した場合は、機器提供者とサード・パーティ開発者610の間の取引契約612に入ることができる。取引契約612には、ブランド化などに関する細目やそれに対応するサード・パーティ開発者610の義務などが含まれる。サード・パーティ開発者610は、総合ビジネス・ポータル600を中心として開発コミュニティを形成することができ、そこを通じて、例えばSDKの強化613、トレーニング614、サポート615、試験616、情報617などに関連して、開発者相互に及びポータル提供者に利益を提供できることに留意されたい。このようなプロセスの流れは、総合ビジネス・ポータル600を通じて広がるものと図に表しているが、ポータル提供者は、サード・パーティ開発コミュニティの要素を強化及びアップグレードするプロセスに含めてもよいことは明らかである。
【0103】
更に図6Bに示すように、総合ビジネス・ポータル600は、ハードウェア注文及び例えばソフトウェア供給の中心とすることができる。従って、顧客650は総合ビジネス・ポータル600を通じて注文652を行うことができ、この注文は例えば中央の注文履行位置690に送られる620である。注文の配送は、例えばUnited Parcel Service(USP)などの供給チャネルを通じて直接顧客650へと進めることができる。また、製品の提示及び試用651を、総合ビジネス・ポータル600を介して顧客650に提供することができ、ソフトウェアについてのソフトウェアの注文はそこから行うことができる。ソフトウェアはそれに対応して、この場合も総合ビジネス・ポータル600の653を通じて供給することができる。支払いも、総合ビジネス・ポータル600の654を通じて電子的に提供することができる。製品所有者である場合もあるサード・パーティ開発者610は、例えば販売チャネルを通じて行う販売についてのロイヤリティを655で回収することができる。
【0104】
本発明による方法の各種実施形態を使用することによる収益の発生をより理解するために、図7に収益701対時間702を表したグラフ700を示す。このグラフでは、ハードウェア710の大量販売にほぼ比例する形で収益730が増している。価格の低下や比較的安定した装置の製造コストなどの要因によりハードウェアの量が増加するのに従って、ハードウェア収益720は鈍化することが予測されるので、ソフトウェア収益730が増加し、その結果ハードウェアの需要の増加を促すので、それに対応してハードウェア量710が増加する。
【図面の簡単な説明】
【図1A】
本発明の代表的実施形態による、代表的Bluetoothサービス環境を表す図である。
【図1B】
本発明の代表的実施形態による、代表的WAP−Bluetoothサーバを使用した代表的Bluetoothサービス環境を表す図である。
【図2A】、
【図2B】
本発明の代表的実施形態による、代表的WAP−Bluetoothサーバ環境の代表的構成要素間のエンティティ関係を表す図である。
【図3】
本発明の代表的実施形態による、代表的WAP−Bluetoothサーバの代表的ブロックを表すブロック図である。
【図4】
本発明の代表的実施形態による、代表的WAP−Bluetoothサーバの別の代表的ブロックを表すブロック図である。
【図5A】
本発明の代表的実施形態による、代表的なWAP−Bluetoothアプリケーション開発環境の代表的な層を表す図である。
【図5B】
本発明の代表的実施形態による、代表的WAP−Bluetoothアプリケーション開発環境で使用する代表的メモリ・マップを表す図である。
【図6A】
本発明の方法の代表的実施形態による、代表的な総合アプリケーション開発ポータルを提供するための代表的モデルを表す図である。
【図6B】
本発明の方法の代表的実施形態による、代表的な総合アプリケーション開発ポータルを提供するための別の代表的モデルを表す図である。
【図7】
図6A及び図6Bによる代表的アプリケーション開発ポータルを使用することにより生じると予測されるソフトウェア収益の一例を表すグラフである。
Claims (16)
- WAP−Bluetooth環境で、設定した総合ポータルを介して、単数又は複数の顧客、及び単数又は複数のサード・パーティ開発者に総合的な製品及び総合的な提案を提供する方法であって、
その提供者と関連付けられた強力なブランドを有する前記設定した総合ポータルを使用して、単数又は複数のサード・パーティ開発者のうち資格を有する者に、WAP−Bluetoothソフトウェア開発者キット(SDK)を提供するステップと、
前記資格を有するサード・パーティ開発者が開発した1つ又は複数の総合WAP−Bluetooth製品を登録して、前記単数又は複数の顧客及び前記単数又は複数のサード・パーティ開発者が、製品レジストリで、前記1つ又は複数の総合WAP−Bluetooth製品を入手できるようにするステップと、
を含むことを特徴とする方法。 - 前記設定した総合ポータルを通じて、1つ又は複数のWAP−Bluetoothハードウェア製品に対する、前記単数又は複数の顧客からの1つ又は複数のハードウェア注文を処理するステップと、
前記設定した総合ポータルを通じて、前記1つ又は複数のハードウェア注文に対する、前記単数又は複数の顧客からの支払いを受領するステップと、
前記設定した総合ポータルと関連付けられた中央位置から、前記1つ又は複数の注文を履行するステップと、
を更に含むことを特徴とする請求項1に記載の方法。 - 前記設定した総合ポータルを通じて、1つ又は複数の総合WAP−Bluetooth製品に対する、前記単数又は複数の顧客からの1つ又は複数のソフトウェア注文を処理するステップと、
前記設定した総合ポータルを通じて、前記1つ又は複数のソフトウェア注文に対する、前記単数又は複数の顧客からの支払いを受領するステップと、
前記設定した総合ポータルを通じて、前記1つ又は複数の注文を履行するステップと、
を更に含むことを特徴とする請求項1に記載の方法。 - 前記設定した総合ポータルを使用して、前記単数又は複数の顧客に総合WAP−Bluetooth製品を提示することと、
前記設定した総合ポータルを使用して、前記単数又は複数の顧客に、前記総合WAP−Bluetooth製品を試用的に提供することと、
を更に含むことを特徴とする請求項1に記載の方法。 - 前記SDKが、WAP−Bluetooth開発環境、WAP−Bluetoothソフトウェア・モジュール、及びドキュメンテーション、の1つ又は複数を含むことを特徴とする請求項1に記載の方法。
- 前記SDKが、WAP−Bluetoothアプリケーションの例を含むことを特徴とする請求項1に記載の方法。
- 前記SDKが、ブートローダ、ソフトウェア・プラットフォーム、及び基本WAP−Bluetoothアプリケーション、の1つ又は複数を含むことを特徴とする請求項1に記載の方法。
- 前記ソフトウェア・プラットフォームが更にBluetoothスタックを含むことを特徴とする請求項7に記載の方法。
- 前記ソフトウェア・プラットフォームが更にオペレーティング・システムを含むことを特徴とする請求項7に記載の方法。
- 前記ソフトウェア・プラットフォームが更に、1つ又は複数のハードウェア・インタフェースに対応する1つ又は複数のドライバを含むことを特徴とする請求項7に記載の方法。
- 前記SDKが、オープン・ソースのソフトウェア・コンポーネントを含むことを特徴とする請求項1に記載の方法。
- 前記WAP−Bluetooth開発環境が、グラフィカル・ユーザ・インタフェースの開発ツールを含むことを特徴とする請求項5に記載の方法。
- グラフィカル・ユーザ・インタフェースの開発ツールが、Microsoft(登録商標)Windows(登録商標)の動作環境と関連付けられていることを特徴とする請求項12に記載の方法。
- 前記グラフィカル・ユーザ・インタフェースの開発ツールが、UNIX動作環境と関連付けられていることを特徴とする請求項12に記載の方法。
- 前記1つ又は複数のWAP−Bluetoothハードウェア製品が更に、WAP−Bluetoothサーバ、WAP−Bluetooth移動端末、及び移動式WAP−Bluetoothサーバ、の1つ又は複数を含むことを特徴とする請求項2に記載の方法。
- WAP−Bluetoothサーバ、WAP−Bluetooth移動端末、及び移動式WAP−Bluetoothサーバ、の1つ又は複数の全てが、更に少なくとも1つのBluetoothインタフェースを含むことを特徴とする請求項15に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63895200A | 2000-08-16 | 2000-08-16 | |
PCT/SE2001/001741 WO2002015074A2 (en) | 2000-08-16 | 2001-08-10 | A method for third party application development |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004506983A true JP2004506983A (ja) | 2004-03-04 |
Family
ID=24562127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002520129A Withdrawn JP2004506983A (ja) | 2000-08-16 | 2001-08-10 | サード・パーティ・アプリケーション開発の方法 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP2004506983A (ja) |
AU (1) | AU2001280390A1 (ja) |
TW (1) | TW508514B (ja) |
WO (1) | WO2002015074A2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014521185A (ja) * | 2011-07-20 | 2014-08-25 | ソノズ インコーポレイテッド | ウェブベースの音楽パートナーシステムおよびその方法 |
JP2018506885A (ja) * | 2015-01-30 | 2018-03-08 | カッシア ネットワークス インコーポレイティド | 無線通信をサポートする方法、機器およびシステム |
US10681479B2 (en) | 2015-01-30 | 2020-06-09 | Cassia Networks Inc. | Methods, devices and systems for bluetooth audio transmission |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7299007B2 (en) * | 2001-02-01 | 2007-11-20 | Ack Venture Holdings, Llc | Mobile computing and communication |
US7366523B2 (en) | 2002-11-12 | 2008-04-29 | Nokia Corporation | Method and system for providing location-based services |
US7263086B2 (en) | 2002-11-12 | 2007-08-28 | Nokia Corporation | Method and system for providing location-based services in multiple coverage area environments |
US7281217B2 (en) | 2003-05-30 | 2007-10-09 | International Business Machines Corporation | System and method for user driven interactive application integration |
US7333799B2 (en) * | 2003-08-29 | 2008-02-19 | Microsoft Corporation | WAP XML extension to define VPN connections |
US7774332B2 (en) | 2005-04-12 | 2010-08-10 | International Business Machines Corporation | Enabling interactive integration of network-accessible applications in a content aggregation framework |
-
2000
- 2000-11-15 TW TW089116772A patent/TW508514B/zh active
-
2001
- 2001-08-10 AU AU2001280390A patent/AU2001280390A1/en not_active Abandoned
- 2001-08-10 JP JP2002520129A patent/JP2004506983A/ja not_active Withdrawn
- 2001-08-10 WO PCT/SE2001/001741 patent/WO2002015074A2/en active Application Filing
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014521185A (ja) * | 2011-07-20 | 2014-08-25 | ソノズ インコーポレイテッド | ウェブベースの音楽パートナーシステムおよびその方法 |
JP2018506885A (ja) * | 2015-01-30 | 2018-03-08 | カッシア ネットワークス インコーポレイティド | 無線通信をサポートする方法、機器およびシステム |
US10581511B2 (en) | 2015-01-30 | 2020-03-03 | Cassia Networks Inc. | Methods, devices and systems for increasing wireless communication range |
US10681479B2 (en) | 2015-01-30 | 2020-06-09 | Cassia Networks Inc. | Methods, devices and systems for bluetooth audio transmission |
US10720983B2 (en) | 2015-01-30 | 2020-07-21 | Cassia Networks Inc. | Methods, devices and systems for increasing wireless communication range |
US11296777B2 (en) | 2015-01-30 | 2022-04-05 | Cassia Networks Inc. | Methods, devices and systems for increasing wireless communication range |
Also Published As
Publication number | Publication date |
---|---|
TW508514B (en) | 2002-11-01 |
AU2001280390A1 (en) | 2002-02-25 |
WO2002015074A2 (en) | 2002-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7003663B2 (en) | Distribution of deployment information for remote applications | |
EP1934787B1 (en) | Network service for modularly constructing a software defined radio | |
Helal | Programming pervasive spaces | |
JP3656856B2 (ja) | ソフトウエア入手方法と該方法を実施するためのデータ処理システム | |
US20070078924A1 (en) | Modularly constructing a software defined radio | |
US20070006213A1 (en) | In-system reconfiguring of hardware resources | |
CN102362272A (zh) | 移动应用程序的设备相关的按需编译和部署 | |
CN105453664A (zh) | 管理用于电气设备的分布式无线功率传输网络的系统和方法 | |
CN104126176A (zh) | 作为服务进行远程调试 | |
JP2004506983A (ja) | サード・パーティ・アプリケーション開発の方法 | |
CN109388562A (zh) | 调试pos机的方法及装置、系统、存储介质、电子装置 | |
WO2002015075A1 (en) | Method and apparatus for providing a mobile wap server | |
TW511383B (en) | A method and apparatus for location dependent information services | |
JP4348019B2 (ja) | カーラジオを顧客個別に適合化する方法 | |
JP2009510588A (ja) | モジュール式コンピューティングシステム | |
US20050005270A1 (en) | Service platform application distribution manager | |
FI106495B (fi) | Verkkoelementti | |
Gerboles et al. | AirSensEUR: an open data/software/hardware multi-sensor platform for air quality monitoring | |
CN114787786A (zh) | 通信模块、通信系统和通信方法 | |
KR100943698B1 (ko) | 휴대형 통신기기를 위한 확장 장치 | |
GB2363218A (en) | A method of accessing application data for a peripheral device | |
Gay et al. | Usb | |
US20130110661A1 (en) | Application store delivered platform components | |
Nissemark | The right approach | |
Zheng et al. | Debug |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081104 |