.NETのエッセンス

<.NETのエッセンス>第5回 Javaは「統合可能」.NETは「統合済み」

2003/02/03 16:04

週刊BCN 2003年02月03日vol.976掲載

.NETとJavaはどう違うのか(その2)

 米サン・マイクロシステムズのスコット・マクニーリCEOは、Javaは「統合可能」で、.NETは「統合済み」だと言った。この評価はおおむね正しい。

 Javaが「統合可能」だというのは、Javaの仕様はインターフェイスのみを規定していて、実装の詳細はベンダーに任されているということである。そのため、Javaでのシステム開発は、複数ベンダーによるシステム部品を組み合わせて1つのシステムを作り上げるスタイルをとる。

 たとえば、アプリケーション・サーバーと呼ばれるミドルウェア1つをとっても、さまざまなベンダーが同様な機能をもつ製品を作っている。その中からどれを選んでシステムを構築するかは、プロジェクトの特性を考慮して決定すればよい。

 ただし、これはあくまでも理想論である。現実には、製品の組み合わせを考慮することは、コストのかかる仕事である。製品の組み合わせには、相性が存在する。

 原因はさまざまだが、Javaの仕様の解釈の差であったり、実装の不備であったりする。だから、各ベンダーによる製品が完全な互換性をもつわけではない。

 また、Javaに限った話ではないが、パフォーマンスチューニングを追求すると部品の互換性が失われたり、ソフトウェアのバージョンが上がったため今まで動いていたシステムが動かなくなったりという問題は、当然起こりうる。

 そのような問題が発生したときには、各製品のベンダーと情報を交換して、問題解決にあたる必要がある。これは、ベンダーの数が多ければ多いほど時間がかかる。

 .NETが「統合済み」だというのは、マイクロソフトの製品群は互いに密に結合して連携することを前提とした設計・実装になっているということである。また、Javaの世界ではOSから独立しているアプリケーションが、ウィンドウズではOSにすでに統合されている。

 たとえば、ウェブサーバーのIIS、ユーザー管理システムのActive Directoryといったように。狙いは、完全に統合された世界の使いやすさと高いパフォーマンスを実現することである。

 したがって、.NETでのシステム開発は、マイクロソフト製品をベースとして利用し、マイクロソフト製品だけでは機能不足だった場合は、.NETフレームワークの高い生産性を生かして新規開発するというスタイルをとる。

 .NETにおける開発であれば、システムや部品の互換性を考慮することにJavaほどコストはかからない。マイクロソフトとの協力体制があれば、問題解決のかなりの部分をカバーできるからだ。

 今回は、Javaの「統合可能」、.NETの「統合済み」というキーワードをもとに、システム開発のスタイルとコストについて両者を比較した。

 「マルチベンダーだとコストを下げられる」、「1社独占だとコストが上がる」という側面を否定することはできないが、トータルのコストはシステムインテグレータの実力と経験に左右されるものである。

日本ユニシス インテグレーションサービス部 .NETビジネスディベロップメント 猪股健太郎

  • 1