システム連携の要!ORBとは?
ICTを知りたい
先生、「ORB」って言葉を聞いたんですけど、どういう意味ですか?
ICT研究家
ORBはね、「オブジェクトリクエストブローカー」の略で、違うコンピューター上のプログラム同士がデータをやり取りするのを助けるソフトウェアなんだよ。
ICTを知りたい
違うコンピューターのプログラム同士がデータをやり取りする? 例えば、どんな場合に使うんですか?
ICT研究家
例えば、インターネットバンキングを思い浮かべてごらん。あなたの使っているパソコンと、銀行のコンピューターは違う場所にあるよね? ORBを使うことで、あなたの口座情報を確認したり、振込などの手続きができるんだよ。
ORBとは。
「情報通信技術に関連する言葉、『オーアールビー』について説明します。『オーアールビー』は『オブジェクトリクエストブローカー』の略で、バラバラのコンピューターにあるプログラム同士が情報をやり取りするのを仲介するソフトウェアのことです。このソフトウェアは、複数のコンピューターで動くプログラムを連携させる技術の中核として位置付けられています。『オーアールビー』を使うことで、ネットワークで繋がっていれば、遠くにあるコンピューターのプログラムでも、あたかも自分のコンピューターの機能のように使うことができます。ただし、そのためには、それぞれのプログラムが同じ『オーアールビー』の規格に対応している必要があります。有名な例としては、Javaというプログラミング言語の環境で使う『Javaアールエムアイ』などがあります。」
分散オブジェクト技術の中核
複数のコンピュータをネットワークでつなぎ、あたかも一台のコンピュータのように連携させて処理を行う技術は、分散コンピューティングと呼ばれ、近年注目を集めています。分散コンピューティングを実現する技術の一つに、分散オブジェクト技術があります。
分散オブジェクト技術では、ネットワーク上の別のコンピュータにあるプログラムを、まるで自分のコンピュータ内にあるかのように呼び出して利用することができます。この技術の中核となるのが、ORB(Object Request Brokerオブジェクトリクエストブローカー)です。
ORBは、異なるコンピュータ上で動作するプログラム間で、データのやり取りを仲介する役割を担います。例えば、あるプログラムが別のコンピュータにあるプログラムの機能を利用したい場合、ORBに対してリクエストを送信します。ORBは、リクエストを受け取ると、適切なプログラムに処理を依頼し、その結果を受け取って、元のプログラムに返します。
このように、ORBは、異なる環境で動作するプログラム間の橋渡しをすることで、分散オブジェクト技術を実現しています。ORBを利用することで、開発者は、プログラムがどこで動作しているかを意識することなく、必要な機能を簡単に利用できるようになります。これは、大規模で複雑なシステムを構築する際に特に有効です。
ネットワークの壁を越える
コンピューターのプログラムを作る時、それぞれのプログラムが異なる機械で動いている場合、情報のやり取りをスムーズに行うための仕組みが必要です。 これまでは、プログラマーがネットワーク通信に関する複雑な処理を全て自分で書かなければなりませんでした。 例えば、相手のプログラムがどこにあって、どのように情報を送れば良いのか、といったことを全て指示する必要があったのです。
しかし、ORB(オブジェクトリクエストブローカー)という技術を使うことで、状況は大きく変わります。 ORBは、ネットワーク越しにまるで同じ機械で動いているかのように、プログラム同士が連携できるようにする技術です。 プログラマーは、ネットワークの仕組みを意識することなく、他のプログラムが持っている機能を簡単に利用できます。 これは、まるで遠く離れた場所にある図書館の本を、あたかも手元にあるかのように読めるようなものです。
ORBを使うことで、システム開発はより効率的に、そして柔軟になります。 プログラムを部品のように組み合わせて、ネットワークの壁を越えた、より大規模で複雑なシステムを構築することができるようになるからです。
従来のプログラム連携 | ORBを用いたプログラム連携 |
---|---|
|
|
メリット:
|
共通の規格が重要
異なるプログラム間でオブジェクトを共有し、連携させるための仕組みであるORBは、システムの柔軟性や拡張性を高めるために非常に有効な手段です。しかし、ORBを利用するためには、連携するプログラム間で共通の規格を用いることが不可欠となります。
なぜなら、異なる規格のORBは、通信方式やデータのやり取りに関するルールなどが異なるため、互いに理解し合い、連携することができないからです。
有名なORB規格としては、Java環境で使用されるJavaRMIや、様々なプログラミング言語で使用可能なCORBAなどが挙げられます。これらの規格は、オブジェクトの参照方法や通信プロトコルなどを詳細に定義しており、異なるプログラミング言語で開発されたプログラム間であっても、これらの規格に準拠することで、円滑な連携を実現することができます。
共通の規格を用いることで、開発者は、特定のORB製品やプログラミング言語に依存することなく、自由にシステムを構築することができます。また、既存のシステムに新たな機能を追加する場合でも、共通の規格に準拠したORBを用いることで、容易に統合することができます。
ORBのメリット | ORB利用の必須条件 | 必須条件の理由 | ORB規格の例 | 共通規格利用のメリット |
---|---|---|---|---|
システムの柔軟性・拡張性を高める | 連携プログラム間で共通規格を用いる | 規格が異なると通信方式・データのやり取りルールが異なるため相互連携不可 | – JavaRMI (Java環境) – CORBA (多言語対応) |
– 特定のORB製品・言語への依存からの解放 – 既存システムへの機能追加を容易化 |
ORBの役割と利点
– ORBの役割と利点
ORBは、異なるコンピュータ上で動作するプログラム同士を繋ぎ、互いに連携できるようにするための重要な仕組みです。
クライアントプログラムがサーバープログラムの機能を利用したい場合、ORBが仲介役となってそのやり取りをスムーズに行います。具体的には、クライアントプログラムからの要求を適切なサーバープログラムに転送し、その処理結果を受け取ってクライアントプログラムに返します。
ORBの大きな特徴は、データの変換や通信エラーの処理などを自動的に行う点です。例えば、クライアントプログラムとサーバープログラムで扱うデータ形式が異なる場合でも、ORBが自動的に変換するため、プログラマーは意識する必要がありません。また、ネットワークの通信エラーが発生した場合でも、ORBが自動的に再送処理などを行うため、システム全体が不安定になるのを防ぎます。
このように、ORBを利用することで、プログラマーは本来の業務処理の開発に専念できるようになり、開発効率の向上とシステムの安定性向上に大きく貢献します。
まとめ
– 分散オブジェクト技術の要ORB異なるコンピュータ上のプログラムが、まるで同じシステム内にあるかのように連携できる技術を、-分散オブジェクト技術-と呼びます。この技術は、現代の複雑なシステムにおいて、その柔軟性や拡張性を支える重要な役割を担っています。そして、ORB(オブジェクトリクエストブローカー)は、この分散オブジェクト技術を実現する上で、欠かせない中核的な要素です。ORBは、クライアントプログラムからのオブジェクトへの要求を仲介し、適切なサーバープログラムに転送する役割を担います。従来のシステム開発では、異なるコンピュータ上のプログラムを連携させるためには、複雑な通信処理を独自に実装する必要がありました。しかし、ORBを用いることで、開発者は複雑な通信処理を意識することなく、オブジェクト同士のやり取りに集中できるようになります。これは、開発効率の大幅な向上に繋がり、開発期間の短縮やコスト削減にも大きく貢献します。さらにORBは、システムの柔軟性向上にも寄与します。システムの変更や機能追加が生じた場合でも、ORBを介することで、影響範囲を最小限に抑えながら、スムーズな対応が可能となります。ネットワーク技術の進化は、ますます加速しています。それに伴い、分散オブジェクト技術、そしてORBの重要性は、今後さらに増していくことは間違いありません。 ORBは、次世代のシステム開発を支える重要な技術と言えるでしょう。
項目 | 内容 |
---|---|
分散オブジェクト技術の定義 | 異なるコンピュータ上のプログラムが、まるで同じシステム内にあるかのように連携できる技術 |
ORBの定義 | オブジェクトリクエストブローカーの略称。分散オブジェクト技術において、クライアントプログラムからのオブジェクトへの要求を仲介し、適切なサーバープログラムに転送する役割を担う中核的な要素 |
ORBのメリット | – 開発者が複雑な通信処理を意識することなく、オブジェクト同士のやり取りに集中できるようになるため、開発効率が向上する – システムの変更や機能追加が生じた場合でも、影響範囲を最小限に抑えながら、スムーズな対応が可能になるため、システムの柔軟性が向上する |
ORBの将来性 | ネットワーク技術の進化に伴い、分散オブジェクト技術、そしてORBの重要性は、今後さらに増していく |