コラム / Sun View 第4回
21世紀はJavaの時代か?
渡邉 利和(toshi-w@tt.rim.or.jp) [著]
2001年1月25日
Java関連ニュース
個人的にはいつも通りに新年を迎えたという感じだが、実のところ世紀の変わり目を越えたわけで、世間は21世紀である。とはいえ、「2000年9の月」と一緒で、過ぎてしまえばなんということもなく、改めて21世紀だ何だと口にする人も少なくなりつつあるようだ。ところでJavaだが、前世紀からの宿題のいくつかが今月相次いで片づき、いよいよ本格的に花開くか、という予感を感じさせる状況になってきた。
Javaに関してはどのようなイメージを持っているのだろうか? どうも、最初に登場したときのイメージが鮮烈すぎたのか、少なくとも筆者の周囲にはJavaに好意的な人はあまり多くはないようだ。筆者はJavaとJiniには大きな期待を掛けているのだが、一方で「Javaなんて」と言う人の気持ちは分からなくもない。ことPCをプラットフォームに考えた場合、マルチプラットフォームであることはあまり大きなメリットとは感じられないだろう。ハードウェアは基本的に互換だし、OSはたいていWindows系のどれかである。最近でこそLinuxなどのPC UNIX系OSのユーザーも増えて来ているが、それでも「多種多様な環境が混在」というほどの状況ではない。この世界では、マルチプラットフォームを実現するためにJavaが犠牲にしたもののほうがずっと重大なことに思えても不思議ではない。
そんな見方も影響してか、このところJavaは少々地味な印象を与える。動きの速いこの業界において、あまり激しい動きを示していないように見える状況だ。これでは、毎日のように激動するコンピュータ関連業界では「昔話」と扱われてしまいかねない。しかし、今月はJava関係のニュースがいくつか出てきている。
渡邉 利和(toshi-w@tt.rim.or.jp) [著]
Java対応iモード機の投入
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の価値を疑うことはできないはずだ、というのは言い過ぎだろうか。
渡邉 利和(toshi-w@tt.rim.or.jp) [著]
Microsoftとの和解成立
iモードJavaの市場投入にタイミングを合わせるかのように、長く続いていたSunとMicrosoftとのJavaを巡る裁判が和解という形で決着したというニュースが流れた。公開された情報では、和解に関する合意事項として、
- MicrosoftがSunに2000万ドルを支払う
- 以前Microsoftが受けたJavaのライセンスの停止を受け入れる
- 将来に渡り、MicrosoftはJavaと互換性のない製品に対してJavaのロゴを使用することが禁じられる
- Microsoftが過去に出荷したJavaと互換性のない、古いJDK1.1.4ベースの製品(J++や独自のVMのことだろう)は、顧客保護の観点から、今後7年に限り出荷を継続することを認める
などとなっている。
すでにMicrosoftは.Net構想を明らかにしており、さらに新言語C#も発表している。プラットフォームが整ってきたことで、敢えてJavaに拘る必要はなくなったのだろう。その意味では、双方にとってこれ以上継続して争う意味はなくなったのだと思われる。そう考えれば、この和解のインパクトもさして大きなものではない。
とはいえ、MicrosoftがJavaに対して取ってきたこれまでの姿勢は、やはりJavaの重要性を認識した結果だと思われる。.Net構想では、「Webサービス」が基本コンセプトとなっているが、これを実現する上でJavaの特徴は大きな力となる。だからこそ逆に、MicrosoftはSunの成果であるJavaを使うことはできず、独自のC#を開発せざるを得なかったのではないだろうか。
MicrosoftとSunのJavaを巡る争いは、結果としてPC市場を置き去りにしてエンタープライズサーバと組み込み機器市場での存在感を高めた。別にJavaだけの力というわけではないが、「脱PC」「ポストPC」が意識され始めた現在では、Java対応の組み込み機器は今後ますますその重要性を増し、PC市場のある部分を確実に奪い取っていくことになるだろう。世紀の変わり目に終結したこの裁判は、「PCとインターネットの時代」として幕を閉じた20世紀との決別点として将来意識されることになるのかもしれない。
いっぽうで、Java関連の話題とは見なされていないようだが、セガがDreamCastのハードウェア生産から撤退する、というニュースも聞こえてきた。実は、DreamCastはゲーム機の中ではもっとも早くからJava対応を明らかにしているハードウェアでもある。ゲーム市場はプラットフォームの争いでもあるが、ゲーム制作者にとっては異なるプラットフォーム間での互換性のなさは大きなリスク要因になる。もちろん、ゲームソフトウェアに要求されるあらゆる仕様をJavaが満たせるとも思えないが、Javaで実現できるゲームも少なくはない。iモードでも早速ゲームプログラムが提供されていることからも伺えるように、今後Javaによるゲーム開発は一定の市場を確保することは間違いないと思われる。
DreamCastの失速により、Java対応のゲーム機が存在感を失うのは残念なことだ。とはいえ、非PC分野でのJavaの採用は広がり続けるだろう。今更爆発的な普及が始まるとも考えにくいが、さりとてJava以外の有力な選択肢が突然出現するとも思えない。今後しばらくは、一進一退を繰り返しながらひっそりと着実にJavaが浸透していく期間になるはずだ。今後Javaがどのようなサービスを実現していくことになるのか。いずれにしてもそう遠い先の話ではないだろう。とりあえず、2〜3年先くらいを楽しみにしていよう。
渡邉利和
|