連載
» 2010年08月27日 00時00分 公開

Javaから見た.NET(3):将来性から見たJavaと.NETの違い、そして連携は? (1/4)

システム開発がますます複雑化していく中、エンジニアには、テクノロジを理解して、さまざまな場面に適した選択が求められます。本連載では、Javaと.NETの基本的な仕組みから最新の傾向や技術などについて、数回に分けて紹介します

[高山智史,株式会社クロノス]

将来性があるのは、どっち? 連携はできる?

 前回の「設計者/SEが覚えておきたいJavaと.NETの違い」では、Javaと.NETにおけるリッチクライアントRIAを含むクライアントサイドの技術や、Webアプリケーション開発のための技術をフレームワークデータベースアクセス技術も交えながら、紹介しました。


 今回は近年、システム開発の手法として標準化しつつある分散システム開発Webサービスを利用するための技術や、さらにそこから派生してJavaと.NETの連携を紹介します。それらとともに、今後普及が予想されるクラウド・アプリケーションを開発するための技術も紹介することで、両技術の将来性を探っていければと思います。

 また技術以外の側面として、Javaと.NETそれぞれのサポートコミュニティなどからも、将来性について考察します。

分散コンピューティング技術とJava実装

 近年のさまざまな業務システムでは、ネットワーク技術の発達によるデータの巨大化により、処理量が大きいものが出現してきました。このような膨大な処理を1台のコンピュータで処理しようとすると、パワーが足りない状況が生じています。そこで処理能力を向上させるために、複数のコンピュータを並列に動作させてネットワークを通じて処理をする分散コンピューティンググリッドコンピューテイング技術が用いられることがあります。


 分散コンピューティングの特徴として、コンピュータリソースの効率的な利用や、異種の機能間における資源の統合などが挙げられます。ほかにも複数のコンピュータで処理をすることで、「仮にどれか1台のコンピュータに故障が発生しても全体に被害が広がらない」というメリットがあります。

CORBAとJava IDL

 分散コンピューティングを実現する方法としては、ネットワークを使って分散しているオブジェクトをプログラムから利用する「分散オブジェクト技術」があります。有名なところでは、「OMG(Object Management Group)」が定めた分散オブジェクト技術仕様である「CORBA(Common Object Request Broker Architecture)」があります。


 CORBAでは、ほかのプログラムからオブジェクトを利用するためのインターフェイスを記述するのに「IDL(Interface Definition Language)」という独自言語と、「IIOP(Internet Inter-ORB Protocol)」というプロトコルが使用されています。

 IDLはオブジェクトのインターフェイスを実装する言語です。これをIDLコンパイラでコンパイルすることによって、各プログラム言語とCORBAが通信するためのモジュールである「スタブ」「スケルトン」が自動生成されます。

 これにより、ほかのプラットフォームと言語を意識することなく相互に利用可能です。JavaのIDLコンパイラは「Java IDL」といいます。これにより、JavaからCORBAオブジェクトを扱えます。

Java RMI

 またJavaには、分散オブジェクト技術として「Java RMI(Java Remote Method Invocation)」というAPIがあります。

 このAPIを使用することで、ネットワークを通じて別のホスト上に存在するオブジェクト(リモートオブジェクト)のメソッドを呼び出せます。特別な文法もなくローカルのオブジェクトを呼び出すのと同じようにリモートのオブジェクトを扱える点が特徴です。


 またJava RMIには、標準で対応しているプロトコルに「JRMP(Java Remote Method Protocol)」「RMI over IIOP」という通信プロトコルがあります。前者は対応するオブジェクトがJava RMIだけに限定されます。後者はCORBA対応言語で実装されたほかのアプリケーションとの通信が可能です。

 Java EEに含まれる分散オブジェクト技術の「EJB(Enterprise JavaBeans)」にも、リモートオブジェクトモデルとしてJava RMIが使用されています。


メッセージングとJMS

 ほかには、「メッセージング」と呼ばれるネットワーク上で情報のやりとりを「メッセージ」という単位で通信する技術があります。これはシステム間の連携を疎結合に保つために生まれました。


 Javaではメッセージングを実現するために「JMS(Java Messaging Service)」というAPIがあります。JMSは「メッセージ指向ミドルウェアMOM)」と呼ばれるエンタープライズメッセージングシステムを扱うためのJava EEの標準APIです。

 JMSはメッセージングモデルとして「ポイント・ツー・ポイントPTP)」「パブリッシュ/サブスクライブPublisher-Subscriber)」を採用しています。JMSはJDBCJNDIなどのほかのJava EEの機能と連携できます。

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。