INTERNET
インターネット最新テクノロジー：第9回

ック社のVisiBroker をOEM としてバンド

CGIの限界を超えウェブを進化させる

IIOP（Internet Inter-ORB Protocol）

ル）が標準で付属し､そのORBがIIOPをサポートしている。
ORBは、オブジェクト・リクエスト・プローカー（オブジェクトとリクエストの仲介者）の略で、その名のとおり、クライアン
トからのリクエストをオブジェクトに仲介す

ウェブの進化とともに、CGIを使ったウェブアプリケーションの限界が問われ始めてきた。
単にアンケートの集計を取るというだけでなく、バーチャルモールなどのビジネスの場で、膨大なトランザクションを処理する必要が出てきた。そこで登場したのが、「CORBA/IIOP」
である。IIOP（Internet Inter-ORB Protocol）は、先日発売されたネットスケープコ
ミュニケーター4.0ですでに対応済みのプロトコルである。IIOPの役割とは何か、これによってウェブアプリケーションはどう変わるのか、これらをまとめて検証した。

る役割を果たす（図 1 ）。ORBにおけるオ
ブジェクトとは、何らかのリクエストに応えて特定の働きをするソフトウェアの単位のことである。
ORBに相当するソフトウェアバスは、各種のプラットフォーム上にそれぞれ存在する。たとえば、マイクロソフトのActiveX/OLE は、オブジェクトをコンポーネント

トップ・ペイン・ネットワークス（構成部品）と呼んでいるが、OLEマネー

倉賀野 哲宏ジャーの役割はまさしくORBである。
CORBAは、コモンORBアーキテクチャーの略であり、OMGは、あらゆるプラットフ
ォームに共通なORBの仕様としてCORBAの普及を目指している。

ウェブを進化させるIIOP
CORBA/IIOP が大きな注目を浴びているのは、インターネットやイントラネット上で業務や商取引のアプリケーションを構築しようとする動きが顕著になっているから

IIOPは分散システムのプロトコル

IIOPとソフトウェアバス

IIOP（アイアイオーピー）は、OMGとしてのORBである。
当初は、HTTP プロトコルとサーバー上のアプリケーションをCGI（コモン・ゲートウ（オブジェクト・マネージメント・グループ）

IIOPは、インターネット・インターORB

ェイ・インターフェイス、シージーアイ）で組みという業界団体が制定した、分散オブジェプロトコルの略である。この場合のインタ合わせていたが、思ったほどの性能がでな

クトシステム用のプロトコルである。

ーネットは、TCP/IPによってネットワークい。その後、各社はそれぞれにCGIを代替す

IIOP は、OMG が1995 年に発表した間をつないだネットワークという意味である仕組みを用意することで対応しようとし

CORBA（コルバまたはコーバ）バージョンる。IIOP は、ORB（オーブ）と呼ばれるたが、HTTPとCGIの組み合わせは以下の2 仕様の一部として制定されたのだが、今ソフトウェアバス（母線）間のプロトコルようにその限界が明らかになってきている。

では C O R B A バージョン 2 よりもとして利用され、詳細な処理はORB 自身

CORBA/IIOPの呼び名のほうが通りがよいが行う。ネットスケープコミュニケーター（1）プロセス生成：CGIでは、クライアンほど業界標準として重要視されている。

はCORBA/IIOP準拠のORB（ビジジェニ

トからのリクエストごとにプロセスが起動さ

350 INTERNET magazine 1997/10

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

れるが、CORBA/IIOPでは一つのプロセス

コミュニケーター（WWWブラウザー部分）が複数のリクエストを処理できる。に標準ですでにIIOPのサポートを組み込ん（2）サーバー負荷：CGI ではクライアントでいる。 O M G には米 国を中 心として、からのすべてのリクエストをウェブサーバー

IBM、サン、DEC、HP、アップルなどコが扱うので、1 サーバーが性能上の隘路ンピュータ関連企業700社以上が加盟して（ボトルネック）になる。CORBA/IIOP でいるが、 これらの各 社 も相 次 いであれば複数のマシンにオブジェクトを配置しCORBA/IIOP 準拠の製品群を発表してい負荷を分散できる。

る。

http://www.sun.com/developers/
http://www.javasoft.com/
サン・マイクロシステムズ社のホームページ。サンのサイトではCORBA/IIOP、Java ソフト事業部のサイトではJava の情報が得られる。CORBA/IIOP とJava の関係については、ここ数か月で大きな動きが生じる可能性が高い。

プログラミングする必要がある。CORBA/IIOPは他のデー

http://home.netscape.com/
http://developer.netscape.com/ネットスケープ社のホームページ。今現在、世界で一番多く配布されているORB は、同社のWWW ブラウザーに付属するORB である。

http://www.oracle.com/
オラクル社 の N C A はネットスケープ社 の O N E とともに、CORBA/IIOP の業界での評価を決定的なものにした。

CORBA/IIOPでのなく、すべてのデータをHTML 形式に変換

http://www.omg.org/
OMG のホームページ。英文であるがCORBA についての情報、ガイドが網羅的に入手できる。

http://www.visigenic.com/
Visigenic 社のホームページ。同社のVisiBroker は、ネットスケープ、IBM、オラクルなどにバンドルされているORB である。フ
ルセットの60 日間評価版が無償でダウンロードできる。

（3）データ変換：HTTP ではテキスト以外のデータはプラットフォーム間で互換性が参考 URL

タ型も自動的かつ効率的にマッピングする。

CORBA/IIOP を利用すると、ネットワ（4）トランザクション：HTTP（1.0）にはーク上に分散しているオブジェクトが、あセッションの概念がなく、複数のリクエス

たかも自分のマシン上に存在しているかのトにまたがるトランザクションの管理が自然ように利用できる。ネットワークに関するにできない。IIOPにはセッションがあり、ト部分はCORBA/IIOP準拠のORBが面倒をランザクション管理が自然にできる。

見ているので（正しくは、細部を隠蔽して（5）ネットワーク効率： HTTP（1.0）でいるので）、一般のプログラマーからすれば、はリクエストごとにTCP コネクションが生ネットワークアプリケーションのプログラミ成、破棄される。IIOPではコネクションをングにプロトコルの知識はまったく必要な維持することができるため、ネットワークのい。CORBA/IIOP 準拠の分散オブジェク

利用効率と応答速度の両面で有利である。

ト環境では、プログラマーから見えるのは各オブジェトがもつ抽象的なインターフェ

このような状況で、1996 年中盤に、イイスのみである。

ンターネットの雄ネットスケープ社とデー

このインターフェイスは、IDL（インタタベースの雄オラクル社の両者が、HTTPーフェイス・デフィニション・ランゲージ、とともにCORBA/IIOP を核に据えた開発アイディーエル）という記述言語で定義さアーキテクチャーを相次いで発表した。

れる。IDLで定義したインターフェイスは、製品への反映もすばやく、ネットスケー

サーバー側のオブジェクトのプログラミング

プ社は今年出荷を開始したネットスケープ

言語やクライアント側のプログラミング言

1 ORBとIIOP
ネットワーククライアントオブジェクト

オブジェクトORBORBCORBA ではORB 間の標準プロトコルとしてIIOP を定義している。ORB とIIOP は一体となって、クライアン
トのリクエストをオブジェクトに仲介する。

IIOP=リクエストD

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

INTERNET magazine 1997/10351

語にIDL コンパイラーと呼ばれるツールで間と難しさを知っている人には驚異的な易自動的に翻訳される。CORBA/IIOPでは、しさである。

C、C++、Java、COBOL、Ada、Smalltalkをサポートしている。

IIOPの仕組み

IDL コンパイラーは、インターフェイスの定義を特定のプログラミング言語に変換

クライアントは、オブジェクトのメソッするだけでなく、ORBとのやり取りに必要ド（いわゆる関数）を呼び出すことで、そなモジュールも自動的に生成する（図 2 ）。

れぞれのオブジェクトを利用する。このと慣例でクライアント側用のモジュール群をき、関数には引数や戻り値が存在する。

「スタブ」、オブジェクトサーバー側のモジ

IIOPはメソッドを呼び出すのに必要な「相ュール群を「スケルトン」と呼ぶ。これら

手オブジェクト名」、「引数」、「戻り値」をに含まれる関数を呼び出すことで、クライメッセージとして相手に送る際に必要なア

アントやオブジェクトの開発を担当するプ

プリケーション層 のプロトコルである。

ログラマーは、 自 分 のプログラムをIIOPの下位層にはTCP/IPプロトコルが用CORBA/IIOPに対応させることになる。

いられている。

Javaの小規模なプログラムならば、通常、

CORBA/IIOP では、この引数や戻り値

クライアント側なら5 行程度、オブジェクのデータ型を、クライアント側のプログラ

ト側でも10 行前後を修正、追加するだけ

ミング言語／プラットフォーム固有のデー

でCORBA/IIOP に対応できる。これは、タ型からオブジェクト側のプログラミング

CORBA/IIOP プラスJava 以外の組み合わ

言語／プラットフォーム固有のデータ型にせで分散オブジェクトを作成するときの手相互に自動変換する。たとえば、クライア
ント側がマッキントッシュでオブジェクトサ

2 IDLとプログラミングーバー側がウィンドウズNTであったとする
インターフェイス定義と、両者が同じC言語でプログラミングしIDL形式ていたとしても、整数のビットの並び順がJava用IDLコンパイラー

C言語用IDLコンパイラー（他の言語用もある）（他の言語用もある）

異なるが、これをCORBA/IIOP は自動的プログラマープログラマーに変換するのである。

利用

利用スケルトンスタブ

IIOPと既存システムの統合
アプリケーション

アプリケーション

CORBA/IIOP の支持者は白紙からシステムを作成することは想定していない。むJava言語コンパイラー

C言語コンパイラー（他の言語も同様）（他の言語も同様）

しろ、既存の資源をさらに活用する手段してIIOPが期待されている。そのような資産リクエストの中心は、メインフレーム上の業務システ
ムと、PC上のウィンドウズアプリケーショ

クライアントCORBA/IIOP

オブジェクト（サーバ）

ン、そしてウェブである。
CORBA/IIOP の仕様としては各社のCORBA/IIOP では、クライアントとオブジェクトが共通のIDL を用いていさえす
れば、両者のプログラミング言語、プラットフォームは異なっていてよい。

ORB（さまざまな名前がつけられている）
内部のプロトコルは何でもよく、外部のD

352 INTERNET magazine 1997/10

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

CORBA準拠のORBとやり取りする際にのたため、事実上、今年中に全世界で数千みIIOPが使用できればよい。この点が柔軟万台を超えるマシンでサポートされること性を保証しているのである。になる。

既存のシステムにIIOPとのブリッジを用

しかし、IIOPの普及の鍵はプロトコルそ意すれば、そのシステムをIIOP環境に埋めのものの広がりではなく、魅力的なオブジ込める。たとえば、Java クライアントがネェクトサーバー製品の登場と、ホビープロ

ットスケープコミュニケーター内のORBをグラマーでも手を出せるようなビジュアル経由してIIOP を使用し、企業のメインフな開発ツールでのサポートにあると考えらレームで稼動しているCOBOL の在庫シスれる。 後 者 については、 Java Beansにテム内のオブジェクトにアクセスするといっCORBA/IIOPのサポートを組み込む動きがたことが可能になる。

すでに始まっている。

マイクロソフト社のウィンドウズ環境となお、CORBA バージョン2 には、分散のブリッジについては、CORBA/IIOPではアプリケーション環境の各種の共通サービ

特別に仕様が定められ、複数の製品がすでスやアプリケーションフレームワークを含んに出荷されている。たとえばマイクロソフでいる。これらはさらに拡張されていく予

トエクセルからCORBA/IIOPの分散オブジ定であるが、基本ソフトウェア分野の高度ェクトのメソッドを呼び出して利用したり、なサービスの標準化には顕著な成功例がな

逆に、CORBA/IIOP のクライアントからい。分散オブジェクトシステムの実現にあActiveXサーバーのオブジェクトのメソッドたって、あえてCORBAをORBとIIOPに絞を利用したりできる。って採用していくことも現時点では現実的ウェブとの連携はCORBA/IIOP の最もな選択肢の1 つであろう。この記事中に限得意とするところである。ネットスケープ

らず C O R B A バージョン 2 と呼 ばず、社がいち早くIIOPのサポートに動いたのもCORBA/IIOPとしている場合にはその意味当然で、図 3 のようにJava アプレットをを含んでいることが多い。

HTMLページに埋め込んでおくと、自動的

3 CORBA/IIOPとWebの組み合わせにダウンロードされたアプレットからCORBA/IIOPのオブジェクトにアクセスするようなシステムが構築可能になる。処理

ページリクエストの大きな部分をオブジェクトとして分散し、アプレット実行

HTML
ページ

ページ表示

かつ既存のシステムを活用したり外部からクライアントとしてのアプレット調達したりすれば、開発の生産性を上げな

Java
アプレット

HTTP

既存システムがら拡張性も確保できる。
このように今すでに多数の非互換プラッ

ORB

ORB

IIOP

トフォームを抱えている企業にとっては、ウェブクライアントIIOPは現実的な解答を提供している。

ORB

オブジェクトIIOP

ネットワークオブジェクト
データベースシステム

ダウンローダブルなJava アプレットから、CORBA/IIOP の分散オブジェクトをアクセスするようにすると、柔軟でしかも開発の生産性の良いシステムが構築できる。

IIOPの将来IIOPは、ネットスケープ社がそのWWWORB

オブジェクト

IIOP

ウェブサーバー

オブジェクト

ブラウザーとサーバー製品に標準で実装し`インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

INTERNET magazine 1997/10353

［インターネットマガジン バックナンバーアーカイブ］ ご利用上の注意
この PDF ファイルは、株式会社インプレス R&D（株式会社インプレスから分割）が 1994 年～2006 年まで発行した月刊誌『インターネットマガジン』の誌面を PDF 化し、「インターネットマガジン バックナンバーアーカイブ」として以下のウェブサイト「All-in-One INTERNET magazine 2.0」で公開しているものです。

http://i.impressRD.jp/bn
このファイルをご利用いただくにあたり、下記の注意事項を必ずお読みください。
z 記載されている内容（技術解説、URL、団体・企業名、商品名、価格、プレゼント募集、アンケートなど）は発行当時のものです。
z 収録されている内容は著作権法上の保護を受けています。著作権はそれぞれの記事の著作者（執筆者、写真の撮影者、イラストの作成者、編集部など）が保持しています。
z 著作者から許諾が得られなかった著作物は収録されていない場合があります。
z このファイルやその内容を改変したり、商用を目的として再利用することはできません。あくまで個人や企業の非商用利用での閲覧、複製、送信に限られます。
z 収録されている内容を何らかの媒体に引用としてご利用する際は、出典として媒体名および月号、該当ページ番号、発行元（株式会社インプレス R&D）、コピーライトなどの情報をご明記ください。
z オリジナルの雑誌の発行時点では、株式会社インプレス R&D（当時は株式会社インプレス）と著作権者は内容が正確なものであるように最大限に努めましたが、すべての情報が完全に正確であることは保証できません。このファイルの内容に起因する直接的および間接的な損害に対して、一切の責任を負いません。お客様個人の責任においてご利用ください。

このファイルに関するお問い合わせ先
All-in-One INTERNET magazine 編集部
im-info@impress.co.jp
Copyright © 1994-2007 Impress R&D, an Impress Group company. All rights reserved.