Javaがプログラミング言語の1つであるということは皆さんご存じでしょう。プログラミング言語とは、コンピュータに何らかの仕事をさせるために人間が処理の手続きを順序立てて書いた設計書(仕様書)のようなものです。
昨今のシステム開発(構築)では、なぜJavaを選択することが多いのでしょうか。
ここではまず、皆さんが納得してJavaを選択し、多くを学んでいただくきっかけになるよう、Javaのイメージづくりをしてみたいと思います。
Javaが何のために開発された言語なのかを知ることは、システム開発でJavaを選択する動機付けになり、非常に有意義です。
Javaの開発が始まったのは1990年代前半。当初からSun Microsystemsのビジョンである「ネットワークこそがコンピュータである(The Network Is The Computer)」を踏襲して開発が進められてきました。つまりJavaは、ネットワーク上で動作することを前提に開発されたアーキテクチャ(技術仕様)だということになります。
仕組みを見てみると、確かにネットワーク上でこそメリットを発揮できるような仕様を多く持っていることが分かります。
Javaの最大の特徴は「一度書いたプログラムをどんな環境下でも動作させることができる」ことです。しばしば「Write Once, Run Anywhere(一度書けばどこでも動く)」あるいは「プラットフォーム非依存」というような言葉で紹介されます。
通常、プログラムはプラットフォーム(実行環境)の仕様に合わせて動作するように作成され、同じプログラムを別の実行環境で動作させることはできません。実行するにはプログラムの書き換え(移植)が必要になります。しかし、Javaで作成したプログラムは、実行環境が変わったとしても書き換え作業が必要ないのです。
この仕組みを実現しているのがJVM(Java Virtual Machine:Java仮想マシン、図1)です。
JVMは、Javaで書かれたソフトウェアを実行するプラットフォーム上に配備され、プログラムの内容を解釈してプラットフォームに実行を依頼する役割を果たしています。Javaの言語を翻訳してプラットフォームに伝える、「通訳」のような立場だといえます。
JVMが配備される範囲は、PC上のOSだけにとどまりません。皆さんにとってさらに身近な端末である携帯電話にまで、Javaで作成されたソフトウェアが実行できる環境は及んでいます。
JVMの存在によって「Write Once, Run Anywhere」が実現されます。このことを考慮して、Javaを選択する優位点を考えるとすれば、どんなことが思い当たるでしょうか。
近年、情報を取得する端末として携帯電話が進化してきました。インターネットでWebサイトの閲覧ができたり、高解像度の映像や動画を見ることができたり、音楽プレーヤーの役割を果たしたりもします。
この進化が意味するのは、携帯電話が近い将来PCに取って代わる、あるいは同等の性能を持つ、ということだと思います。
IT業界ではユビキタス(「どこにいても欲しい情報が手に入る」という意味で使われる用語。ラテン語のubiquitous[神々はどこにでも遍在する]に由来する)という言葉がキーワードになっています。携帯電話がユビキタス社会における情報端末の筆頭となることは間違いありません。
ただ現状では、携帯電話にはリソース(メモリ容量、ハードディスク容量など)の少なさというハンディがあります。PCのようにある程度の容量を持ち、ワープロソフトや表計算ソフトなどをインストールして実行するようなことは、携帯電話ではいまのところ非現実的な考え方です。
そこでJavaの登場です。Javaで作成されたソフトウェアであれば、ネットワーク上で配信することができます。インターネットなどのネットワーク環境で情報を蓄積しているサーバ上にソフトウェアを配備し、利用者は必要なときにそれをダウンロードして使用し、使い終わったら戻せばいいのです。利用者側の環境としてはJVMさえあれば実行できます(図2)。
これならばリソースの少ない携帯電話のような端末でも、さまざまなソフトウェアを実行することができるというわけです。
事実、Javaのアーキテクチャには携帯電話のようなモバイル端末向けのソフトウェア(組み込みJava)を開発するための「J2ME(Java 2 Platform, Micro Edition)」や、組み込み機器向けのJava仮想マシン「KVM(K Virtual Machine)」などが存在します。
これらの仕組みによって、自分の端末が過剰なインストールで膨れ上がる「ファットクライアント」にはならず、これからの時代にふさわしい「シンクライアント」な環境を実現できるのです。
携帯電話だけではありません。新しいハードウェアが次々と登場してくるとしても、Javaで作成されたソフトウェアはそこで動く可能性を秘めています。そしてそのすべてをネットワーク上で統合することも可能なのです。Javaはまさに「The Network Is The Computer」の申し子といえます。
いかがでしょうか。Javaの将来性や優位性が見えたでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.