BREW

ソフトウェア基礎研究室
石堂克範    久保 善輝    高島 正樹    宮脇 恵麻    若杉 武史

1 BREWとは


「BREW」とは「Binary Runtime Environment for Wireles」の略で、2001年1月に
QUALCOMM社によって発表された「CDMA方式の携帯電話のワイヤレス・アプリケーション・プラットフォーム」です。

携帯電話向けのソフトウェア実行環境で、より高速なデータ通信を可能にする次世代携帯電話の新機能として注目されており、携帯電話間の仕様の違いをなくし多数の携帯電話に対応できるよう設計されています。世界的にもプログラマーの多い,C や C++ の開発環境を採用していますが、JavaVM の搭載によって Java でも利用が可能になります。

 BREW の目的はほとんどすべての携帯端末(ハイエンドの統合 PDA から低価格の大量生産向け携帯電話まで)にシームレスに移植できるアプリケーション開発のためのアプリケーション実行環境(AEE)および開発環境を提供することです。

現在、携帯端末のユーザはますます多くの機能を期待するようになってきています。しかし、最新の機能の実行はデバイスレベルで処理するのにはあまりに複雑で、コストがかかるものが多く、デバイスレベルでの開発を行うと異なったデバイスを使った端末上では動作しないため、また新たにアプリケーションを作り直す必要があります。BREWではアプリケーションとデバイスプラットフォーム間のやり取りはすべてクラスを介して行われるため、開発者は低レベルのプラットフォームのデータ構造やデバイスドライバを考慮せず、一度書けばどの端末でも動作させることが出来ます。

BREWの最新バージョンは2.0で、来年初頭には「BREW 2.0」を組み込んだ携帯電話が発売されます。

BREWを用いる事で様々な事が可能になります。



2.BREWの特徴

BREWの最大の特徴として,1つのアプリケーションがほかのアプリケーションを呼び出したり,あるいは携帯電話の中にある電話帳やユーザー情報などにアクセスできることが挙げられます。NTTドコモのiアプリでは,セキュリティ面からこうしたことを一律禁じる仕様になっていますが,そのためiアプリでできることが少ないというのも事実です。その他にも次のような様々な特徴があります。

軽い
PCやPDA用に開発された製品が軽くなるというだけでなく、BREWは他のアプリケーションプラットフォームや十分に発達したOSに対しても今までと比べると数倍軽い。
速い
BREWプラットフォームはチップシステムソフトウェアの上に成り立っている。このチップセットはC/C++のネイティブアプリケーションを素早く実行することができ、また、ブラウザーやJava技術の上に成り立っているバーチャルマシン、ゲームや音楽プレイヤーなどの拡張を統合することが出来る。
オープン
BREWはネイティブなC/C++だけでなく、JavaやXML、Flashなどの別の言語もサポートしている。また、パームなどのsmartphone上でも動作するので、そのOS用に書かれたアプリケーションであっても、BDS(BREW Distribution System)を用いることでダウンロードでき、まるでBREWのアプリケーションのように動かすことができる。
拡張性
3者がBREWプラットフォームを拡張して、アプリケーションに機能を追加して利用することが可能である。その拡張はクアルコムによって公表される。
コスト効率がよい
開発費を縮小し、デバイスメーカーが開発から販売までにかける時間(開発期間、異なるデバイス用に作成した類似アプリケーションの統合期間、設計期間)を短縮する。理由はデバイス毎にアプリケーションを変更する必要がないから。
セキュリティ
アプリケーションは認証式とすることで安全性を高める。
NTTドコモは未認証のアプリケーションも使用できたために、ウィルスが蔓延してしまった。
ネットワークの強化
ブラウザベースのサーバー側アプローチの弱点は明白である。すなわちモバイル装置における遅延と、対話の制限である。これによって、グラフィックの豊富な対話型ゲームの動作が不可能となる。そしてこの対話型ゲームは、非無線通信携帯型のプラットフォーム上(PCなど)ではゲームの主要部分である。事実サーバー側処理を要求するブラウザベースのソリューションでは、携帯電話はパフォーマンスが低くローカルで情報処理ができないために、最適なアプリケーションが作成できない。
これに対しBREWではクライアント側で処理を行うことが出来るため、プログラムの実行が早く、待ち時間のないリアルタイム処理が行える。
インターネット標準のアプリケーション層プロトコルにとどまらず、プロトコルを独自に作成することができるため、対話型ゲームだけでなく、ブラウザやメーラーも作成することが出来る。

3.BREWとJava

現在、携帯電話上で動くプログラムでは携帯端末に搭載されているプラットフォームはメーカによって名称は違いますがJavaをベースとしたものを搭載しています。 それらの携帯Javaアプリケーションは携帯電話の内蔵プログラムとなるJava-VM(Java言語を実行する仮想マシンが動いている上でアプリケーションが動作しています。一方BREWは携帯電話のハードウェア自体が直接実行できるプログラム(ネイティブコード)を実行するのでJavaアプリケーションを動かすときと比べ、メモリの使用も減り、処理も二重ではなくなるため処理速度の向上も見込めます。

BREWアプリケーションとしてJavaVMを動かすことも可能で,既にBREW向けのJavaVMも発表されています。BREWの上でJavaVMを動かせばJavaVMに問題が起きても,BREWのダウンロード機能を使ってJavaVMをアップグレードすることもできます。

BREW と Java の違いの1つはセキュリティモデルです。Java では JavaVM が(ハードウェアなどへのアクセスを)ブロックしセキュリティを保ちますが,BREW では開発者を特定できます。つまり,BREWは開発者が
キャリアに登録して初めてアプリケーションを動かせるセキュリティモデルを取っています。一般の開発者が自由にBREWを利用することはできませんが,デバイスのすべての特殊機能にアクセスできるという利点も持ちます。
iアプリとBREWの対比表

機能

iアプリ BREW
言語 Java C/C++
実行環境 仮想マシン ネイティブ
プログラムサイズ 10Kバイト 制約なし・ハードウェアに依存
プログラム署名

なし あり

セキュリティ

動作範囲に制約 署名必須
開発環境

無償配布

無償配布

アプリの公開 誰でも可 認定を受けたプログラムのみ

4 BREWを使った開発手順

BREW はVisual C++などの一般的な開発環境で作成することができ、それをネットワーク上からダウンロードし、携帯端末上の BREW AEE(後述)で実行します。欧米や中国等では導入が進んでおり、日本では多機能なサービスを提供する必要があったため導入が遅れましたが、KDDIが「C3003P」のような最近のcdmaOne端末にBREWを導入し始めました。

開発において、BREW アプリケーションのコンパイルには DLL とヘッダファイルのみを使用(テストには BREW エミュレータが必要)するので、Visual C++ のような一般的な ソフトウェア開発環境 を使って開発することが可能です。そのため、実際に導入する際には比較的速やかに導入できるでしょう。


4.1 BREW の構成要素

(1)BREW AEE(Application Execution Environment アプリケーション実行環境)

BREW アプリケーションは携帯端末上の BREW AEE を利用して実行されます。

BREW AEE は OS レベルのタスク管理、ファイル管理等を行い、それを操作するための API を提供します。

高度な機能を持つモジュールを提供し、アプリケーションの開発を容易にします。

BREW AEE の特徴

(2) BREW SDK(Software Development Kit)

Qualcommから無償で提供されており、これが現状では唯一の開発環境となります。

現在はWindows版しか存在しません。

SDKの主な内容
BREW AEE
BREW エミュレータ
実行、テストのためのエミュレータです。インタフェースは実際の携帯を模しているので実行環境との違和感無くテストが出来ます。
デバイスコンフィギュレータ
新しいデバイスを作成し、エミュレータに読み込ませることによって、個々のデバイスを考慮したテストが可能になります。
MIFエディタ
アプレットのロードに必要なモジュール固有の情報およびアプレット固有の情報を含むMIF(Module Information File)を生成します。
BREW DLL
コアサポートされたBREWクラスをWindows環境で利用するためのDLLですBREW用に開発されたコードと同一のコードが使用されているため、Windowsエミュレータと実際のデバイス間との動作の違いはほとんどありません。
Win-OEM DLL
Windowsプラットフォームでデバイスの動作をエミュレートするための基本レイヤーを提供します。
BREWヘッダファイル
BREWインタフェースの定義が記述されており、アプレットの開発に使用します。各アプレットは、そのアプレットが使用する各インタフェースのヘッダファイルを組み込む必要があります。
サンプルアプリケーション
ドキュメント

4.2 BREWを使ってアプリケーションを作成する。

BREWのアプリケーション開発環境は完全な拡張性を持つオブジェクト指向の環境で、アプレットと共有モジュールをCまたはC++で開発できます。また、BREWはモバイルデバイスでの効率とメモリ管理に注目して設計されています。

BREWはアプリケーションと共有モジュールをサポートします。アプレットとモジュールはスタンドアロンDLLとして開発し、実行時にBREWエミュレータにロードします。

アプレットの作成方法BREWアプレットは、BREW SDKや実機上でコンパイル、実行できるように開発します。

アプリケーションを作成するには、Windowsオペレーティングシステムで動作するソフトウェア開発ツールとBREW SDKに付属するアプリケーションの基盤を形成するいくつかのファイルも必要です。

アプリケーションはスタンドアロンDLLとして作成されます。

必要なもの
BREWの開発手順
  1. アプリケーションの開発とエミュレートを行うためにBREW SDKを使用する。
    1. BREW SDKに含まれるMIFエディタを使用してMIFファイルを作成
    2. Visual Studioを使用して、DLLファイルを形成するための新しいプロジェクトを作成
    3. プロジェクトにソースファイルとアプリケーションの詳細ファイルを組み込む
    4. アプリケーションのためのDLLファイルを作成
    5. BREW SDKに含まれているBREW SDK エミュレーターを起動する
    6. グラインダーツールを用い、エミュレーター内でアプリケーションのテストを行う
  2. BREW開発ツールを手に入れる(BREW Developer Extranetで認証された開発者にのみ利用可能)
  3. BREW Phoneを手に入れる
  4. BREW Developer Extranet上のBREW ClassID Generatorを利用してクラスIDを手に入れる
  5. ARM BREW Builderを使用してアプリケーションをコンパイルする
  6. BREW Developer Extranet上のBREW TestSig Generatorを利用してテスト署名を得る

  7. BREW AppLoaderを使用してBREW端末にアプリケーションをダウンロードする
  8. 端末上でアプリケーションをテスト(生産前の端末上のDeveloper Labでアプリケーションを随意にテスト)
  9. AppSignerマニュアルに従って、BREW AppSignerでアプリケーションをデジタル署名する
  10. 指示に従って、互換性テストのためにアプリケーションをzipファイルにパッケージングする
  11. アプリケーションテストのため、NSTLにアプリケーションを提出する
  12. TRUE BREW Test Statusを受け取った後、BREW Developer Extranet上の価格提案のテンプレートとApplication Distribution情報を作成する
    1. キャリアは価格の検討、開発者との交渉、そして価格データを選択して受諾する。選択されたアプリケーションはキャリアのカタログにダウンロードされる。
  13. アプリケーションの状態を調査し、キャリアの採用とアプリケーションの使用量をレポートを通してモニターする。

Glossary

BDS(BREW Distribution System)

アプリケーションの配布をキャリアが制御・管理し、価格を決めて加入者へのサービス提供を認めることで、キャリアが開発者から容易にアプリケーションを入手して市場に出すことを可能にするシステム。

キャリアはBDSをニーズに合わせて調整できる。例えば、自分達で開発したアプリケーションに価格をつけて配布したり、それを管理するサードパーティーの選択をしたり、Extranetを通してクアルコムにアプリケーション配布と、キャリアに開発期間の管理を任せることも出来る。


動的ローディング

起動時に読み込まずに、必要になったときにメモリ上にロードする仕組のこと。起動時に読み込む方法は静的ローディングと言う。


イベント駆動型アーキテクチャ

ハードウェア/ソフトウェアから渡されるイベントに応じて処理を行う方式


ローカライズ

ソフトウェアやハードウェアを、特定の地域向けに修正する作業。たとえば英語のソフトウェアなら日本語を使えるように修正しマニュアルも翻訳版を作る作業が含まれる。


SMS(ショートメッセージサービス)

英語80文字、日本語なら40文字を携帯電話の液晶画面に送るサービス、顧客DBなどを活用した強力な情報伝達、及びmCRMのための手段で脚光を浴びている。


キャリア

KDDIなどの提携会社のこと


Extranet

アプリケーションを認証させるためのWeb上の窓口。IDとPassを取得する必要あり。