はじめに
2001 年、NTT ドコモの i アプリと呼ばれる携帯 Java アプリのサービスが始まりました。2003 年には、KDDI が EZ アプリ( BREW ) と呼ばれる QUALCOMM の BREW アプリのサービスを開始しました。
最近では、IP 電話、ワンセグ、メディアプレイヤーなどの機能も携帯電話で使えるようになりました。それと共に、携帯電話ソフトは大規模・複雑化し、開発工数の増大が最も重要な問題になっています。
解決策のひとつとして、携帯電話業界では BREW や携帯 Java などのオープンなオブジェクト指向アプリケーションプラットフォームの採用が急拡大しています。
組込みソフトと BREW / 携帯 Java
ハードウェアを制御するソフトのことを組込みソフトと呼びます。携帯電話の場合、ハードウェアとして液晶画面や音声回路、電波送受信回路などが挙げられます。
組込みソフトは、アセンブラや C 言語でプログラミングされ、様々なチップや電子部品を制御します。
携帯電話向けソフトは、ハードウェアに依存するレイヤー ( オペレーティングシステム層 ) とハードウェアとは独立したレイヤー ( アプリケーション層 ) に分けることで、ソフトの全体的な構造がシンプルになります。
BREW や携帯 Java は、アプリケーション層のオブジェクト指向ソフトウェアプラットフォームです。
| 組込みソフト | BREW / Java アプリ | |
|---|---|---|
| プログラミング言語 | アセンブラ / C | C/C++, Java |
| データ構造 | 低レベル | 高レベル |
| ハードウェアとの関係 | 依存 | 独立 |
| リアルタイム処理 | 必要 | 不要 |
BREW と携帯 Java
BREW と携帯 Java の主な特徴を表にまとめます。
| BREW | 携帯 Java | |
|---|---|---|
| 動作環境 | AEE ( Application Execution Environment ) | JavaVM ( Java Virtual Machine ) |
| OS | REX | OS に依存しない |
| API | BREW API | Java API |
| プログラミング言語 | C/C++ | Java 言語 |
| 起動速度 | 速い | 遅い |
| 実行速度 | 速い | 遅い |
| メモリ管理 | プログラマが管理する | ガーベージコレクションによる自動管理 |
| 文字列処理 | プログラマが実装する | 文字列クラスが提供される |
| データ管理 | プログラマが実装する | コレクションクラスが提供される |
| スレッド ※1 | コオペラティブ / シングルスレッド | プリエンプティブ / マルチスレッド |
| ネットワーク通信 | 非同期通信 | 同期通信 |
| イベントハンドリング | プログラマが実装する | 自動 |
| プログラム署名 | 必要 | 不要 |
| セキュリティ | QUALCOMM 社やキャリアによる検証 | sandbox により安全性を確保 |
| 通信 ※2 | TCP/IP・UDP, HTTP/HTTPS, FTP, POP/SMTP | HTTP/HTTPS のみ |
| GUI | 無し | UI コンポーネントが提供される |
| アプリ圧縮 | 無し | JAR 圧縮 |
| プロファイラ | 無し | SDK に付属 |
※1 Java では、ネットワーク通信処理はデータの最後まで単純に while 文のループを繰り返すという単純なプログラミングで済みます。 しかし、BREW では 1 つのスレッドを BREW 環境とアプリで共有することになるので、ネットワーク通信処理はコールバックを用いた複雑なプログラミングになります。
※ 2 POP/SMTP は、SophiaFramework などのミドルウェア製品などで利用可能です。



















