最新技術動向 ここが見所、さわり所

富士ソフトABC株式会社 技術調査室 室長
山本 淳 (yamamoto@fsi.co.jp)



 本来ならWindows NT 5.0やWindows 98の日本語版ベータについて話題にしたいところだが、機密保持契約によって厳しい情報管理が行われているので、今回はちょっと話題を変えてJavaについて社内でまとめられた暫定版のレポートを掲載することにする。独断と偏見に満ちた意見であるし、一部に不完全な情報を含んでいるので注意して読んでもらいたい。
 実は最近、マイクロソフトにActive Platform Consortiumをはじめとする日本のActiveX関連の各種普及団体を統括する中核メンバーが集まって情報交換する機会があったので、それをまとめておきたいところだが、ちょっと時間の関係でレポートする余裕がない。
 マイクロソフトを巡っては、サンとの問題、米国司法省との問題など、いろいろ取りざたされているが、その根底にあるのはActiveXとJavaを巡るさまざまな思惑の交錯が一つの要因となっている。
 ActiveX、あるいは先月号でレポートしたWindows DNAなどマイクロソフトの最新技術にフォーカスしている技術者も、Javaに関する関心は非常に高い。Javaの動向が今後のWindowsに与える影響は非常に大きい。100% Pure Java Initiativeの活動も日本でスタートしている。10月14日に開催された記者発表会のビデオを見る機会があったが、マイクロソフトを除く日本の主力ソフトベンダーが結集して、何かが起ころうとしている。

 昨今Javaというキーワードがいろいろなメディアを通して話題を賑わしている。ここでは、日本のJavaの現状をレポートしてみる。

1. Javaとは

 JavaはC++とSmalltalkを祖先に持つ、汎用のプログラム言語である。Javaは当初から、ネットワーク対応のプログラム開発を考慮して開発されているため、機密保護機能などが強化されている。
 また、Java VM (仮想マシン)の概念によって、OSやハードウェアに依存しないアプリケーションの開発が可能である。

(1) Java Developer's Kit (JDK)
 Java言語のプログラム作成には、JDK (Java Developer's Kit)と呼ばれる開発環境を利用する。JDKはJavaの開発元であるSun Microsystems、およびその子会社であるJavaSoftが配布しているもので、コンパイラ、インタープリタ、ライブラリなどが含まれる。現在は、最新版のJDK 1.1.5が配布されている。
 JDK 1.1ではデータベース接続のためのJDBCやコンポーネント技術であるJavaBeans、日本語の入力、表示を含む国際言語への正式対応といった大きな機能が追加された。さらに高レベルのクラスライブラリや、確実な国際言語対応を目指すために、次期バージョンであるJDK 1.2のベータテストを今秋から開始し、来年リリースすると発表している。
(2) JavaBeans
 JavaBeansは、Java環境でのコンポーネントソフトウェアである。
共通のコンポーネントを使用するため、対応しているビルダ間でコンポーネントの再利用できる。これによって開発コストの削減や、必要な機能だけを付け加えることが可能なため、プログラム全体をシンプルにする効果も期待できる。
 JavaBeans以外のコンポーネントソフトウェアとしては、ActiveXやOpenDocが挙げられる。OpenDocは頓挫したが、ActiveXはMicrosoftのWindowsテクノロジーの中核をなし、JavaBeansとの勢力争いが激化するは確実である。
(3) 次期JavaBeans (コードネーム: Glasgow)
JavaBeansの次期バージョンであるGlasgow (開発コードネーム)を発表している。
 Glasgowでは、ユーザがデスクトップやブラウザに組み込んで利用しやすいものになる。ドラッグ&ドロップの仕様に関しては、JFCを基にサブシステムが定義されており、WindowsやOS/2のアプリケーションと同じような操作環境が実現できる。Glasgowは、次期JDK 1.2に実装される予定である。
(4) JavaBeans vs. ActiveX
 JavaBeansはJava VM上での実行となるため、実行速度ではネイティブコードのActiveXのほうがはるかに高速である。
 しかし、ActiveXは現状の動作プラットフォームがWindowsに限定され、ダウンロードされたコンポーネントが自由に動作可能なため、セキュリティに問題があると指摘されている。
2. ビジネスとしてのJava

 以下の問題点から、現時点でJavaにおけるビジネスはむつかしい。

(1) 「100%ピュアJava」の嘘
 「100%ピュアJava」でプログラムを記述しても、あらゆるプラットフォームでの互換性が取れていない。Java VMの種類によって、同じアプリが動いたり、動かなかったりするケースが発生している。
(2) 日本語環境の問題
 Javaで日本語を表示したり入力したりできるようになったのは、97年4月に出荷されたJDK 1.1からであるが、かな漢字変換、印刷、フォントなど解決されていない問題が数多くある。
 年末に予定されている国際言語処理機能の強化バージョンであるJDK 1.2の仕様にも疑問の声が国内のJavaライセンシより殺到して、さらに本格的な日本語環境の普及が遅れている。
(3) 開発環境の問題
 JDK 1.1対応のJava VMと日本語版開発環境の出荷は今年中に予定されているが、まだ各製品の評価が始まったばかりである。本格的にJDKの最新機能を使用するには、来年以降とならざるを得ない。
(4) 頻繁な仕様変更
 Javaはプラットフォームの差異に関わりなく、同一の環境を提供するクロスプラットフォームを目指しているため、Javaの仕様には解釈にあいまいな点が多く残されている。また、JDKのバージョン間で仕様変更が頻繁に行われるため信用性に欠け、JDKのバージョンの違いによる動作が不安定である。
(5) パフォーマンスの問題
 ソフトウェアコンポーネントのパフォーマンスとして、Window環境のネイティブコードで書かれているActiveXに比べ、Java VM上での実行となるJavaBeansではパフォーマンスにおいて、ActiveXのほうがはるかに高速である。
 これを受けて、現在Sun、IBM、Netscapeなどは「Javaポーティング・アンド・チューニング・センター」を設置し、各社から技術者を派遣してパフォーマンスのチューニングを行っている。
 また、JavaBeansはJDK 1.1以降でないと利用できないため、これに対応できるブラウザやコンテナは10月以降でないと出荷されないが、ActiveXは既にInternet Explorerなどで利用可能である。
(6) マイクロソフトの動向
 クロスプラットフォームを目指すJavaであるが、Microsoftが独自にJavaを拡張する動きがある。JDKをベースにWindowsのAPIを直接利用できる「J/Direct」を6月に発表している。
 J/Directを使用してアプリケーションを作成すれば、処理速度は向上するが、Windows以外の環境では動作しなくなる。いわばJavaの目指すクロスプラットフォーム理想と相反する動きである。ISVとしても選択に悩むところである。
 Sun, IBM, Netscapeなどは「100%ピュアJava」キャンペーンを行い、デファクト・スタンダードの座を巡ってマイクロソフトとし烈な争いを繰り広げている。
3. Javaへの取り組み

 実際にJavaが使えるかどうかの判断を下すには、現時点では時期尚早である。日本語処理はコードの修正が必要となるが、基幹システムなどクローズドな環境ならば今でも使える。98年にかけて、ベンダー各社の取り組みを見極めた上で判断するのがベターである。
 しかし、業界が立ち上がってからアプローチするのではビジネスチャンスを逃してしまう。Javaの市場が開花したときにアドバンテージを示すためには、社内にJavaの技術者を育成する必要がある。

(1) 技術者の育成
 ビジネスチャンスをものにするためには、Javaが開花したときに、技術者を何人抱えているかで左右される。よって、社内の言語研修プログラムにJava言語を取り入れる必要がある。
・Java言語
 Java言語は、C++よりボリュームが小さいので、オブジェクト指向の言語を習得するに適した言語であり、C++などへの応用が可能である。
(2) 対外的なアピール
 Javaに関する情報は、必ずといっていいほどニュースになる。
 知名度を上げるとともに、Javaの技術習得のために、実験的なJavaプロダクトが必要である。WWWブラウザとの連動やプログラムサイズの大きさなどから、適当なプロダクトを選定するといい。
4. Javaへの期待

 Java言語の最大の特徴は、ネットワークを移動できるアプレットと呼ばれる小型のプログラムを作れることにある。アプリケーションをアプレットの形態でサーバに配置し、必要に応じてクライアントにダウンロードして実行できる。
 この特徴を生かして以下の可能性が挙げられている。

(1) 組込みJava
 多くのコンピュータメーカーが次世代環境をにらんだNCマシンを続々と発表している。Javaはパソコンだけでなく、機械制御や自動販売機、カーナビゲーションへの応用が考えられている。これらは日本語処理の問題の影響が少なく、Javaが普及する可能性が非常に高い。
(2) プッシュ型情報配信
 プッシュテクノロジーはJavaによって非常に活性化する分野の一つであるといえる。既にMarimbaのCastanetという技術に よってJavaによるプッシュテクノロジーが実現されている。この分野の将来的なマーケットは2000年には46億ドルにのぼるものと予想されている。
(3) Telephony
 Javaの持つオブジェトの再利用性を生かして、多くの可能性を提供されると考えられている。さらに、Telephony専用のAPIであるJTAPI(Java Telephony API)が現在Sun、Novell、IBM、Lucent、Nortelによって共同開発されている。
(4) スマートカード
 来世紀には10億以上のスマートカードが普及するとの見方がある。Javaはこうしたスマートカードに対して、非常に高い可能性を持っている。

Contents         Windows Consortium ホームページ