ペンギンさんのおなかのポッケ

―― 503i/J2ME/ぽけり/水面下のXML ――

山崎俊一
2001/01/24


503Java人気

 年明けとともに、NTTの次世代戦略IMT-2000が動き出したようです。主役は、5月発売予定のW-CDMA方式(下り最大384Kbits/s)でしょうが、巷の注目はNTTドコモ 503iシリーズに集中しているようです。

NTTドコモ 503iシリーズ
・1月25日発売予定?
・Java搭載でiモード機能強化
・256色(以上)カラー画面+16和音など

2001年、トロイの木馬

 503iの決め手はJava搭載です。DoCoMo以外の各社も追いかけてJavaモデルを揃えるようですが、これってエライことだと、ぼくは、ようやく気が付きました。

 ケータイという名のJava VM(仮想マシン)が、渋谷センター街を占拠する。たちまち全国に広がり、それだけでWindowsの出荷本数を超えることでしょう。

 それはまるで、20世紀末Wintel仮想帝国に送りつけられた、トロイの木馬です。

 ゲーム機やセット・トップ・ボックス(Set Top Box:STB)の世界も流れは共通で、今やJavaだけが人類共通言語になろうとしているようです。

J2ME/Kバーチャルマシン

 iモード対応Javaは、盟主Sun Microsystemsが提供するワイヤレス対応バージョン、J2ME(Java2 Platform, Micro Edition)がベースです(下図)。この図の上位アプリケーションと下位OSは任意ですから、WindowsにもUNIXにも縛られないオープン・テクノロジーということになります。

 このため、たとえばC++などの開発言語とは異なり、Javaは情報流通のチャンネルを形作る基礎技術と見ることもできます。むしろテレビや新聞のような、情報媒体に近い性格が人気の理由でしょう。

 ただし現状を見ると、Javaエンド・ユーザーの圧倒的多数はWindowsユーザーであり、実際にメディア基盤=視聴者を独占しているのはMicrosoft社と考えられていました。

 それが今、渋谷センター街から崩れて、百万人あるいは千万人単位でJavaユーザーが増えるとすれば、棚からボタ餅の逆転ドラマになるかもしれません。ちょっと意外な形ですが、iモードが世界地図を塗り変えることも考えられます。

J2MEをベースとする携帯デバイスの構成

iモード対応Java端末の内部構成。J2ME(Java2 Platform, Micro Edition)をベースとしており、Java VMとしては、軽量版のKVMを搭載する。この図の詳細についてはSunのMIDPの解説ページを、Sunのワイヤレス戦略についてはこちらを参照。
MIDP(Mobile Information Device Profile) モバイル対応Java APIのサブセット(のプロファイル)
CLDC(Connected Limited Device Configuration) (通信機能の)デバイス・コンフィギュレーション
KVM 16bit以上のCPU、占有メモリ100Kbytes程度で動く軽量仮想マシン。つまりメガでなくK(キロ)バイト・スケールだからKVMと名づけられている。

ペンギンかふぇしよう

 一方、盟主Sun MicroSystemsの覇権に疑義を唱える声もあり、Javaの核心、仮想マシンの知的所有権が論議の的になっています。また一方、メディア・チャンネルとしてのJavaは、それだけでは完璧ではないという指摘もあります。そこで、独自にJava VMを開発し、フリー・ソフトウェアとして公開している例があります。

Kaffeのホームページ

Kaffeは、クリーンルーム方式で開発されたオープン・ソースのJava VM実装だ。一部を除き、基本的にすべてのソースコードはGNU GPLに従って公開されている。
ホームページ(英語)
ホームページ(PC版Kaffeの日本語ページ)

 kaffe.orgで配布されているKaffe OpenVMは、UNIX上で動くJava VMクローンです。

 これをMS-DOSに移植したKaffe-PC VMもあって、i486以上のCPUとMS-DOS(4.0以後)を搭載したPC互換機をJavaマシンに仮想化します。こちらは、日本語のopenje.orgで入手できます。i386でも動くようです。

 いずれも、ソースは(コンパイラなどごく一部を除き)GNU General Public License(GPL)に準じて公開、配布されています。

 パッケージは限られていて、awt(Windowsツールキット)はありませんが、たとえば同時配布のJasper(Javaで開発されたHTTPサーバ)を動かすといった用途なら支障ないわけです。

ぽ・け・り

PocketLinuxを開発したTransvirtual社のイメージ・キャラクター
お腹の袋に差しているペンは、パーム・サイズ・デバイスを操作するためのものだと思われる。

 Kaffeを開発したのはTransvirtual社です。ちょっと太めのペンギンさんが同社のイメキャラで、よく見るとそのお腹の袋(ポケット)にペンが差してあります。

 何なのかというと、上記のKaffeを含むPocktLinux、通称「ぽけり」が、同社の看板製品です(PocketLinuxのホームページ)。

 「ぽけり」は、名前のとおり小さなUNIXで、ベースはLinux、たとえばカシオのCassiopeia(ただし海外版のE15/E105/E115のみ)やCompaq社のiPAQ(いずれもPocketPC仕様のパーム・サイズ・デバイス)で動くことが特徴です(ぽっけのペンはパーム・デバイスを操作するためのペンです)。

 「ぽけり」は、XMLサポートが看板の1つです。そこに、結構なイマジネーションを感じさせるものがあります。

Transvirtual社のPocketLinuxに関するサポート・プラットフォームのページ
Kaffeを開発したTransvirtual社は、Kaffeを含むパーム・サイズ・デバイス向けのLinux、PocketLinuxを開発、販売している。画面は現時点でのサポート・プラットフォームを解説したページである。このように現時点では、VTech社のHelio、CompaqのiPAQ、CasioのCassiopeiaがサポートされていることが分かる。
 
 日本でポケットリナックスといえば、NECモバイルギアへのLinux 2.0.x移植の話を指しています(詳細はこちら)。 これも注目に値する試みですが、Transvirtual社とは別物です。

冷蔵庫との対話

 実際、ケータイとかPalmとか、情報家電って、どうなってゆくのでしょうか。
 お財布、リモコン、住所録、BS-iみたいな双方向TVのアップリンク・リモコンだとか、やがては、キミの自宅の冷蔵庫内の冷凍食品を帰宅前に解凍しておくようにコントロールする、なんて話もあるかもしれず、使い道は限定できない、ということがキーポイントなのでしょう。

 さて、そこで、メーカーはちょっと困ってしまうはずです。実在しない未来放送局や、規格さえ未定のカメラ内蔵Bluetooth装備の冷蔵庫に対応したケータイなんて、今すぐには作れない。たとえ、冷蔵庫とケータイが同一メーカーで、すぐ隣の製造部門だったとしても、できっこない。Javaを使おうが、使うまいが関係ないことです。

 さあ、どうしましょう?

ぽけりXML

 以下、「ぽけり」のXML利用イメージの一部を勝手に剽窃(ひょうせつ)してみます。

xmlDoc.goRoot("ぼくの家");   <!--この文書のルート:自宅-->
xmlDoc.goChild("冷蔵庫"); <!--その子ノードの冷蔵庫-->
xmlDoc.goChildren(); <!--冷蔵庫の内容一覧-->
xmlDoc.nextChild(); <!--順にたどる-->
xmlDoc.nextChild(); <!--次の子ノード-->
xmlDoc.getNodeName(); <!--その名前は-->
"牛乳" <!--牛乳だ-->
xmlDoc.getAttribute("残量"); <!--属性:残量を調べる-->
"半分" <!--半分、残っていた-->

このリストに関する詳細はこちらを参照

*余談1:このページを含め、同社のWebページはXMLで記述されています。ただし、通常のブラウザでアクセスすると、XSLで生成されたHTMLページが読めます。
*余談2:さらにどうでもいいけど、同社の記載例は、牛乳ではなく"cheese"ノードで、冷蔵庫はぼくの捏造です。
*補足:初めての方に
  このリストはXMLそのものではありません。XML文書を辿るプログラム例で、goXXXX( )というのがAPIです。IxmlDOMNode、getChildNode( )などと読み替えれば、MicrosoftのXML APIも同様です。ぽけりでは、Javaパッケージとして実装されるようです。
 いずれにしても、ネット上を流れるのは、単純テキストのストリーム(=XML)だけで、Javaにさえ依存しないことがポイントです。

 何だこりゃあ? と思われるかもしれません。単に、DOM(ドキュメント・オブジェクト・モデル)のツリーを辿っているだけじゃないか、って言われれば、まったくそのとおりで、だからこそ有用なのでしょう。

 つまり、SGMLあるいはXMLから見れば、相手が冷蔵庫だろうが何だろうが同じことで、適切な通信経路が確保され、相手が応答してくれるなら何だってかまいません。

 それこそ、XMLが生まれるはるか以前から、SGML標準化の段階でさんざん論議されてきた基本パラダイムです。たとえ、未来放送局や新型家電が登場しても、それが言語で記述できるものなら、困ることはないはずです。

もののあわれ

 ついでに、「ぽけり」本体はLinuxベースですが、そのコンフィグレーションもXMLで記述するそうです。たぶんMicrosoft.NETも似たような形なのでしょう。

 ぽけりはMicrosoftの資金援助を受けているようで、Sun Microのリーガル(法務部門)も懸念を表明しています。つぶされるかもしれないし、業界の主役、本命といった製品ではないかもしれません。でも、面白いです。乞うご期待。数年後、でしょうか。End of Article

構成要素 内 容
Linux 2.4.x 最新Linuxカーネルを、PDA、ケータイ、TVなど小型デバイスに対し最適化
Kaffe 上記。仮想化によりハードウェアの差異を吸収。同一プログラムを実行できる
XML PocketLinux上のデータ記述全般を担う(コンフィギュレーションも電子メールもアプリケーションの振る舞いも同様に扱える)
The Webサーバ デスクトップから見てもパーム・サイズ・デバイスで見ても、同様の統一されたWebページを提供する。実際例としてはこちらを参照
ぽけり構成要素(抄訳)

山崎俊一(やまざき しゅんいち)
CD-ROMの標準化やSGMLの標準化作業に参加。ドキュメンテーションとコンピューティングの接点で古くより活躍する。またパーソナル・コンピュータの可能性にいち早く注目し、MacintoshやMS-DOS、Windowsのヘビーユーザーとして、コンピュータ関連雑誌、書籍などで精力的な執筆活動を展開、業界の隠れた仕掛人である。

更新履歴

【2001.2.14】「ぽ・け・り」見出し部分、および「もののあわれ」見出し部分に、『「ぽけり」は4.2BSDベース』という表記がありましたが、これは「Linuxベース」の誤りでした。お詫びして訂正させていただきます。

 

「Opinion



Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間