はじめに
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 などのミドルウェア製品などで利用可能です。