このページの本文へ

21世紀はJavaの時代か?

2001年01月25日 23時36分更新

文● 渡邉 利和(toshi-w@tt.rim.or.jp)

  • この記事をはてなブックマークに追加
  • 本文印刷

1月26日から、遂にNTT DoCoMoのiモードでJava対応のサービスが開始される。当初は2000年中のサービス開始が予告されていたのだが、結局年を越えてからのスタートとなった。当初投入される対応端末はP503iとF503iの2機種だが、P503iは標準で数種のゲームアプリケーションを搭載しているという。まだ実機を見てはいないのだが、このゲームアプリケーションはJavaで記述されているのではないだろうか。携帯電話の普及率の高さと高機能化によって、個人が日常利用するデジタル情報機器(PDA:Persona Digital Assistance)は将来的に携帯電話に集約されるのではないか、という見通しはかなり前から語られている。携帯電話用のアプリケーションプラットフォームとして遂にJavaが利用可能になったことで、この見通しが現実に一歩近づいたと言ってよいだろう。

iモードでのJavaの環境は、J2ME CLDC(Java2 Micro Edition, Connected Limited Device Configuration)の上にiモード拡張ライブラリが載り、さらに端末メーカー独自の拡張ライブラリを追加できるようになっている。この「端末メーカー独自の拡張ライブラリ」は実はJavaアプリケーションの互換性を損なう危険を秘めているが、現時点ではどのような機能が独自拡張ライブラリとして提供されるかは分からない。iモード拡張ライブラリも本稿執筆時点では公開されていないので、実のところiモードのJavaで何ができるかは実際に製品が市場に投入され、技術資料や開発環境などが整備されてこないと分からない部分が多い。ただし、コンテンツ作成を支援する必要があるだろうから、遠からずこうした情報は公開されていくものと思われる。

iモードJavaでは、いくつか独自の特徴がある。まず、スクラッチパッドと呼ばれるストレージエリアが提供され、Javaアプリケーション(iアプリと呼ばれる)から入出力が可能である。スクラッチパッドは端末が用意するメモリ領域で、iアプリからは永続的な記憶に見える。つまり、iアプリから利用できる「ディスク領域」というわけだ。独自のデータをここに置くなどすれば、プログラムの処理の幅が広がる。

マルチメディアデータも標準サポートされている。iーメロディ、iーアニメ(アニメーションGIF)といったデータ形式に標準で対応しているので、Java対応以前から提供されているサービスと違和感なく組み合わせることができるだろう。データはiアプリの配布に使われるJARファイルに組み込んで同時に端末に送ることもできるし、iアプリからネットワークにアクセスし、HTTPを使って取得することも可能だ。

アプリケーションの自動起動をサポートしている点も、基本的には常時電源オンで利用される携帯電話らしい機能である。これにより、一定時間ごとにiアプリを起動して処理を行なう、という使い方もできる。

これらの機能をすべて組み合わせると、たとえば一定時間ごとにサーバにアクセスし、マルチメディアデータをサーバから取得してきてスクラッチパッドに蓄積/再生する、といったアプリケーションが実現できる。なお、セキュリティにも当然配慮がなされており、iアプリが接続可能なサーバはiアプリ自身をダウンロードしたサイトに限定されている。また、iアプリからはダイアラー機能や電話帳といった携帯電話内部の基本ソフトウェアやメモリにはアクセスできない。Javaのセキュリティの基本であるサンドボックスの発想だろう。さらに、スクラッチパッドもiアプリごとに専用領域が割り当てられることになっており、ほかのアプリケーションが使用している領域にはアクセスできないことになっている。iアプリは基本的にはそれぞれが厳格に分離された環境内で動作するようになっているため、一面では実現できる機能に対するきつい制約ともなるが、安全性を考えるとやむを得ないのだろう。

Javaは「一度書けばどこでも動く(Write Once, Run Anywhare)」を最大の特徴としてきた。しかし、現実にはこの理想にはある程度の限界があることが明らかになってきている。たとえば、携帯電話とバックエンドの基幹サーバで同じアプリケーションを実行する必要があるだろうか。狭い液晶ディスプレイや10数個程度のボタンしか備えていない電話機とリソースをふんだんに備えた大規模サーバを同じ用途で使うことはまず考えられない。従って、Java環境としてある程度の共通性を実現し、基本的なソフトウェアに関して互換性を持たせることは現在でも実現されてはいるが、それぞれの機器の特徴を活かしたアプリケーションの実現を支援する上では、互換性を最優先してもメリットが少ない。それが明らかになったことから用意されたのがJava 2の3つのEditionだ。従来のJavaを引き継ぐ形で基本と位置づけられるのが「Java2 Standard Edition(J2SE)」で、さらに上下に展開する形で「Java 2 Enterprise Edition(J2EE)」と「Java 2 Micro Edition(J2ME)」が用意された。そして、現在のJavaはJ2EEとJ2MEが話題になることが多い。今回のiモードでの対応はJ2MEの話だが、一方大規模サーバの分野ではJ2EE、特にEJB(Enterprise JavaBeans)がデファクトスタンダードの地くらいを占めつつある。

基本的に互換性のあるPCプラットフォームでは大きく花開いたとは言い難いJavaだが、多種多様なプラットフォームが混在使用されている分野ではそのメリットは大きい。携帯電話の詳細な構造を知っているわけではないのだが、多分今回投入されるP503iとF503iという2種類の端末はハードウェア的にはかなり違っているのではないだろうか。今後さらに新機種が投入されることになると思われるが、それらも同様だろう。しかし、Javaを利用したiアプリであれば自分が利用している端末の種類を問わず、動作することが期待できる。端末独自の拡張ライブラリがどの程度利用されるかによっては、この前提は意味をなさない可能性もあるが、コンテンツ作成側としても特定の端末だけを対象としたアプリケーションを作成したいとは思えないため、ある程度汎用性のあるアプリケーションが主流となると期待してよいのではないだろうか。

IT分野では「サービスモデル」への移行がすでに当然の予測と見なされているように思える。Sunもサーバ分野ではサービスモデルへの移行を積極的に実現するための工夫を展開している。一方で、IT技術をサービスとして活用することで大成功を収めたiモードが、コンテンツとしてデータだけではなくアプリケーションプログラムも取り扱えるようになったことは、「IT技術のサービス化」の強力な実証例だと考えることもできるだろう。これをJavaが実現したということで、もはやJavaの価値を疑うことはできないはずだ、というのは言い過ぎだろうか。

カテゴリートップへ

アスキー・ビジネスセレクション

ASCII.jp ビジネスヘッドライン

ピックアップ