Javaは組込み機器制御向きだと言われるか

計算機応用技術:組込み制御と通信
組込み機器の制御用(マイクロ)コンピュータ
通信機器の制御用(マイクロ)コンピュータ
パソコンとはどこが違うか
ソフトウェアの開発環境と実行環境
開発環境 = 実行環境
パソコンを含む汎用機
開発環境 ≠ 実行環境
組込み機器などの民生品
通信機器
通信機器&組込み制御機器=携帯電話
アナログ方式
通話が
中心
自動車電話
ディジタル方式
CDMA方式
通話+低速
データ通信
携帯電話(含むPHS)
利点)電子技術の進歩により端末が小型化.徐々に携帯可能.PHS(ディジタル
式家庭用コードレス電話機の子機として開発.PHS20ミリワット)と比較しても,電
波の出力が強く(携帯200∼800ミリワット),利用可能な地区も広い.
欠点)利用者に対して周波数の割り当てが少なく,特に人通りの多い都市部の
大きな鉄道駅の周辺や繁華街では,通話用のチャンネルがひっ迫(輻輳)するな
ど,圧縮量の増加により音質劣化の欠点有り.
CDMA(Code Division Multiple Access)方式:符号分割多重アクセス方式.
携帯電話で扱える電波の幅を拡大し,多量データ送受信の効率化を実現
携帯電話の進化
草創期
デジタル携帯電話
デジタル自動車電話
音声と
高速データ通信
(∼384kbps)
デジタル携帯電話
Java搭載
第3
第3世代
世代
通話・通信(計算機)
の高度な融合
円熟期
2000
年代
音声と
低速データ通信
(∼64kbps)
AMPS(北米)
モトローラ)
TACS(
など
HiCap (NTT)
PDC (NTT)
欧州)
GSM(
PHS
iモードなど
第2
第2..5
5世代
世代
成熟期
1990
年代
アナログ携帯電話
アナログ自動車電話
第2
第2世代
世代
成長期
1980
年代
音声通信中心
第1
第1世代
世代
超高速データ通信
(∼2 Mbps)
第4
第4世代
世代
画像・広帯域サービス
を含む次世代携帯電話
cdmaOne(KDDI)
iアプリなど
IMT-2000標準規格
W-CDMA(DoCoMo)
CDMA2000(Qualcomm)
通信速度&音質の向
上,国際ローミング,
USIMカードの採用
第3世代では2つの通信方式が世界規模で競合
W‐CDMA
CDMA2000
(日欧方式)
(北米方式)
NTTドコモとノキア,
エリクソンなど,欧
州メーカーが推奨.
日本では NTTドコモ
とJ-フォンが採用.
モトローラ,クアル
コムなど,米国のメー
カーが推奨.日本で
はKDDI
が採用.
VS
NTT
ドコモ
NTTドコモ
Jフォン
J-フォン
JJスカイ
スカイ 互換性
(2002
年より))
(2002年より
互換性が
ない
K
KD
DD
DI
I
「
au
「
」
au」
EZweb
EZweb
KDD,DDI,IDO,
ツーカー
KDD,DDI,IDO,ツーカー
が
が2000
年10
月合併
2000年
10月合併
あり
同じCDMA技術を使用しているので両方向
に対応するデュアル端末の開発は容易
国際ローミングサービスは実現可能
競合する2つの方式の長所・短所について
W-CDMA方式
長所―GSMの発展型であるため,国際ローミングという点で
有利(国内でも最大手のドコモが採用)
短所―基地局の交換で設備投資のコストが増大する
CDMA2000方式
長所―既存の無線システムが使えるため,通信料金に反映
できる
短所―国際ローミングという点で劣る
・日本が実験場の可能性?最も早く導入されるため
・真の勝者の条件は?
如何にしてコンテンツを充実させ,顧客を惹きつけるか!
第2世代(含む第2.5世代)と第3世代との共存
◆第3世代携帯電話は高機能ながら,現時点ではコスト高.
必ずしも多くのユーザには不必要
◆第2世代でも十分なユーザも少なくない
第2世代から第3世代への移行はゆるやか
◆サービスの向上は諸技術(ハード+ソフト)の統合が必須
◆第2世代と第3世代が混在する時期には,特に,どちらの
携帯電話にでも対応するサービスの提供が不可欠
では,どのような技術でこのようなサービスを提供するか?
Windows PCの場合
携帯電話の場合
通信やサービスの規格by通信事業社
CPU
電話機の製作byメーカ各社
メモリ
Disk
Windows
or Linux
マザーボード
ハードウェア(およびソフトウェア)の
規格が統一されており,部品を揃え
ればPCは組み立て可能
専用画面,特殊キーボード,極小の
メモリやCPU(ほとんど非市販品)
極限の小型化,消費電力の抑制,
強度の確保,安価で高性能
しかも製品サイクルが短い!
Java(特にプログラミング)に関する
基礎知識について
(必要ならば説明するが,あまり時間を要する ようであれば,受講生各自に一任)
TM
Java の目指す応用分野
(Computing, Communication, Control)
J2SE
CLDC
CDC
J2ME
技術用語の説明(1)
• J2SE:
Java2 Platformの標準仕様(Standard Edition)
主としてパソコン向けのJavaの仕様
• J2ME:Java2 Platformの組込み仕様(MicroEdition)
主として家電製品向けのJavaの仕様(CDC+CLDCから成る)
• CDC:Connected Device Configuration
ネットワークに接続された機器向けのJava
リッチな家電製品向けの仮想マシン構成
J2SE とほぼ同程度,GUIなどに制約があり,扱うメモリも小さい
• CLDC:Connected Limited Device Configuration
ネットワークに接続された制約のある機器向けのJava
軽微な家電,特に携帯電話向けの仮想マシン構成
J2SE やJ2ME/CDCから削られた機能も多い(メモリも256KB程度で動作可能)
TM
Java の実行環境(仮想マシンとライブラリ)
ライブラリ
仮想マシン(VM)
メモリサイズ・機能
J2EE
J2SE
J2ME
CDC
CLDC
Personal Profile
Car Profile
ICカード向け
JavaCard
DoJa MIDP
HotSpot JVM
CVM
TM
KVM
Java 仮想マシンの種類
CardVM
技術用語の説明(2)
• J2EE:Java2 Platformの企業向け仕様(
Enterprise Edition)
主としてサーバ向けのJavaのための仕様
• HotSpot:J2EE Platformのための仮想マシン
Java言語で開発されたアプリケーションソフトを高速に動作させる技術.
Java言語で作成されたプログラムは,「バイトコード」と呼ばれるOSやハードウェアに
Java仮想マシン」(JVM)と呼ばれる
依存しない中間形式に変換され、実行時には「
ソフトウェアが,そのコンピュータで実行可能な形式(ネイティブコード)に変換しな
がら実行する.
このため,はじめからそのプラットフォームで実行可能なプログラムを生成するC言語
など他の言語に比べて,仮想マシンによる変換にかかる手間の分だけ,性能が
劣ってしまう可能性あり.
HotSpotはJava仮想マシンに内蔵された機構で,バイトコードのうち,実行に時間のか
かる繰り返し処理などの部分を,実行前にあらかじめネイティブコードに変換して
おくことにより,C言語などで開発されたプログラムとほとんど変わらない実行速
度を実現する技術である.
Javaの生みの親であるSun Microsystems社が,1997年にLongView Technologies社
を買収して取得した技術で,1999年に実際の製品としてリリースされた.
CDCとCLDCとの機能比較
CDCの仕様
CLDCの仕様
CPU性能
32ビットCPU
16ビットor32ビットCPU
実装メモリ
2MB∼4MB程度
160KB∼512KB程度
仮想機械
CVM
KVM
仮想機械の J2SEにかなり近い
性能
J2SEと比較すると制約あり(例えば)
• 浮動小数点機能がなし
• Javaバイトコードの正当性検証機能 がVMの外へ移動するよう設計
• SserialzationやRMIが省略
ライブラリ
PC向けのサブセット ごく基本的なライブラリのみ
開発環境
J2SDKを使用
J2SDKを使用(
+J2ME Wireless Toolkit)
RMI: Remote Method Invocation,ネットワーク経由でのクラス遠隔実行機能
技術用語の説明(3)
• CVM:J2ME CDC/Personal Profile準拠のJava実行環境
J2SE の仮想マシン(JVM)とほぼ同程度の機能を提供
電力やCPU性能+実装めもりに余裕のある機器向き:高機能家電,高機能 PDA,自動車の制御部など
将来的には高機能携帯電話には搭載される可能性あり
• KVM :J2MEのコア
KVM の名前はそのサイズが数 10K バイトの単位であることに由来.
KVM は合計メモリーが数 100K バイト程度の16/32 ビットRISC/CISC マイクロ コントローラに適.
一般にデジタル携帯電話や小型の POS 端末などに使用
(現在,ほぼ総ての携帯電話がKVMを搭載しており,現状ではCVMは敬遠され
ている)
どちらも,SUNが提供する標準実装のVM.但し,他社が仕様に従って,別の仮想
マシンを開発することは可能である.しかし,この場合互換性のチェックを経る必要あり
コンフィグレーション(Configuration)とプロファイル(Profile)
Profile
J2SE ライブラリ
CDC ライブラリ
CVM
CLDC ライブラリ KVM
Configuration
JVM
J2SE
CDC
CLDC
技術用語の説明(4)
コンフィグレーション:
ン
仮想機械の仕様+基本的なクラスライブラリの仕様
プロファイル:
プロファイル
コンフィグレーションの機能を拡張するためのクラスライブラリの仕様
クラスライブラリ:
Javaではクラスを開発者以外でも利用できるようにすることが重要.そのため,
様々なプログラムからクラスを利用できるにする仕組みが必要.i
mpor
t
文を
使うと他のプログラムからクラスを呼び出すことが可能.
複数のクラスからプログラムを構成し,相互に利用し合うようにするため,まと
まった機能を有するクラスを集約して特定のフォルダに整理し,どのプログラ
ムからでも,一定の手続きで呼び出せれる仕組みをJavaは提供.
こうして整理されたクラス群をクラスライブラリと呼ぶ.
コンフィグレーションとプロファイルの具体的説明
CDCというコンフィグレーションを使用して,ディジタルテレビ(のある機能)
を設計
する場合を考える.
Javaとしての基本的機能は既にCDCに入っているので,それにディジタルテレビ
専用の機能追加を図ることになる.一般に,追加機能は,既に業界標準で規定さ
れており,メーカが独自に定めると,Javaアプリの流通が阻害され,ユーザの利便
性が低下する.しかも,独自方式では開発コスト自体が高騰し,メリットは少ない.
そこで,業界で話し合い,ディジタルテレビのための標準機能を先に定め,それを
基に,「ディジタルテレビ・プロファイル」のためのJavaライブラリ規格を定める.
その結果,ディジタルテレビ用のJavaプログラム(アプリ)はメーカが異なっても同
じものが動作する.それを利用すれば,放送局などが,テレビのメーカを意識せず,
プログラムを配布することが可能となる.
何故,コンフィグレーションとプロファイル
という2つの概念が必要となるか?
ディジタルテレビ用
プログラム群(相互
に互換性あり)
ディジタル テレビ用 プロファイル
Prog(A) Prog(B) Prog(C)
PDA用プログラム群
(相互に互換性あり)
Prog(K) Prog(L)
PDA用 プロファイル
Foundation
Profile
Configuration
例)J2ME/CDCの仮想機械
3社3様のハードウェア
開発するハードウェアに
対応したコンフィグレー
ションの採用
同じプロファイルを持
つ製品間でプログラム
の共有を実現
メーカの設計・開発するハードウェアを敢
えて統一しなくても,Javaを活用することで,
全く異なるCPUやメモリ,そしてOS環境で,
同じプログラムを流通させることが可能
i
モード対応Javaプ
ログラム(i
アプリ)
i
モード対応
Java専用
Profile
KDDI拡張
J-SkyJava ezplus クラスライブ
Vアプリ
ラリ
JSCL
MI
DP
Configuration
J2ME/CLDCの仮想機械+基本クラスライブラリ
技術用語の説明(5)
MIDP:Mobile Information Device Profile
移動情報端末用プロファイル.CLDCをコンフィグレーション
に採用した機器を前提としたプロファイル.小さな画面,テ
ンキー程度のキーボードを有する機械を対象.携帯電話を
中心としたプログラムを異なるハードウェアのマシンで共通
化できるように考えらる.
JSCL:J-Phone Specific Class Library
J-Phone(現,Vodafone)専用のクラスライブラリ
i
モード対応のJavaの構成図
i
アプリの動作環境(ネットワーク環境)について
TM
DocomoやVodafone でのJava アプリ開発のための環境
開発実行環境(コンパイラやインタープリタJavaVM)
エミュレータ環境(Javaアプリのエミュレーション)