BREW と Java の違いは?
BREW は QUALCOMM 社が開発した REX ( Real-Time Executive ) と呼ばれる RTOS ( Real-Time Operating System ) 上のミドルウェアです。
最近では、BREWそのものがOSへと進化を遂げようとしています。一方、Javaは仮想マシン( Virtual Machine )、Java 言語、Java API という、OSに依存しない統合的なソフト環境です。
全体的な BREW と携帯 Java の違いをまとめます。
BREW | 携帯 Java | |
---|---|---|
動作環境 | AEE | Java仮想マシン |
OS | REX | OSに依存しない |
API | BREW API | Java API |
記述言語 | C/C++ | Java言語 |
Java はインタプリタなので、BREW よりも同じ処理に時間を多く要します。BREW の場合、ハード資源に乏しい端末でも C/C++ で記述された高機能なアプリが高速に動作します。
プログラマの視点からの BREW と携帯 Java の違いをまとめます。
BREW | 携帯 Java | |
---|---|---|
メモリ管理 | メモリ管理を意識 | 不要(ガーベージコレクション) |
文字列処理 | 独自に実装 | 文字列クラス |
データ管理 | 独自に実装 | 豊富なコレクションクラス |
スレッド | コオペラティブ / シングルスレッド | プリエンプティブ / マルチスレッド |
ネットワーク | 非同期通信 | 同期通信 |
イベントハンドリング | 手動 | 自動 |
Java にはガーベッジコレクションという便利な機能があります。BREW ではプログラマがメモリを管理しなければいけません。
BREW では1つのコオペレイティブなスレッドしか利用できません。つまり、1つのスレッドが CPU を占有できません。例えば、ネットワークプログラミングではこの点を注意してください。
Java アプリでは HTTP 通信を行う場合、データがすべて読み込めるまで while 文や for 文を使った繰り返し処理を用いて記述できました。BREW では通信はすべてコールバックで扱います。データがある程度受信できた時点で突然システム側からデータが読み込めたという通知が来るわけです。この場合、while 文や for 文で処理できません。通信のコンテキストを自分で管理しなくてはいけません。
BREW の場合、メモリ管理の観点から文字列処理も面倒です。データ構造を扱うコレクションクラスも存在しません。独自にデータ構造を定義しなければいけません。ひとつの解決策は文字列処理やコレクションなどのライブラリが用意された C++ を採用が考えられます。
Java は sandbox によって危険なコードが実行されません。ネットワークは HTTP/HTTPS 通信だけです。BREW ではハードを直接制御することもできれば TCP/IP 通信もできます。 BREW では QUALCOMM 社の認証によってセキュリティが保たれます。
その他の一般的な BREW と携帯 Java の違いをまとめます。
BREW | 携帯 Java | |
---|---|---|
起動速度 | 速い | 遅い(端末のコストで比較) |
実行速度 | 速い | 遅い(端末のコストで比較) |
プログラム署名 | 必要 | 不要 ( vodafone では必要 ) |
セキュリティ | 署名認証 | sandbox |
通信 | TCP/IP・UDP(任意) | TCP/IP ( HTTP/HTTPS のみ) |
勝手アプリ | 不可能 | 可能 |
BREW のほうが携帯 Java よりも高機能に見えますが、実は BREW の機能の多くは携帯 Java にも搭載可能です。
ただ、BREW は C/C++/アセンブラ … とプログラミング言語を選ばない点で汎用性が高いと言えます。
実際のところ、BREW 上に Java VM を実装すれば Java 言語でプログラミングすることすら可能です。
また、C/C++/アセンブラ … という言語で記述されたプログラムは Java よりもプログラミングは複雑になりますが、速度面やハードを柔軟に扱えるという点で優れています。
関連情報
- コオペラティブとは?
- プリエンプティブとは?
- 同期通信とは?
- 非同期通信とは?
- BREW と 携帯 Java
- BREW プログラミング入門「BREW SDKをインストールしよう」
- 携帯 Java アプリを BREW へ移植する方法
- QUALCOMM : ホワイトペーパー 「BREWとJ2ME」
- QUALCOMM : BREW に関する誤解と真実
- QUALCOMM : BREW エクステンション
- ITmedia Mobile : BREWとは何か?──Javaとの違い
- MYCOM ジャーナル : cdmaOneでダウンロードアプリ使える「BREW」発表
- MYCOM ジャーナル : BREWとJavaは相対するものではない - クアルコムがBREWの現状を説明
- CNET Japan : アプリックス、BREW上で動くJavaプラットフォームを開発