(Translated by https://www.hiragana.jp/)
Common Object Request Broker Architecture - Wikipedia コンテンツにスキップ

Common Object Request Broker Architecture

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

Common Object Request Broker Architecture(コモン オブジェクト リクエスト ブローカー アーキテクチャー、略称りゃくしょうCORBAコルバ))とは、Object Management Group (OMG) が定義ていぎした標準ひょうじゅん規格きかくであり、様々さまざまなコンピュータじょう様々さまざまプログラミング言語げんごかれたソフトウェアコンポーネント相互そうご利用りよう可能かのうにする(分散ぶんさんオブジェクト技術ぎじゅつ)ものである。

概要がいよう[編集へんしゅう]

CORBA では、プログラムコードをその機能きのうかた情報じょうほうとも一種いっしゅカプセルおこなう。このカプセルされたオブジェクトは、コンピュータネットワーク経由けいゆしてプログラム(あるいは CORBA オブジェクト)からすことができる。

CORBA はインタフェース記述きじゅつ言語げんご (IDL) を使つかってこのようなオブジェクトの外部がいぶインタフェースを記述きじゅつする。そして、IDLから特定とくてい実装じっそう言語げんごC++Java)への「マッピング」をおこなう。CORBAとしてマッピングが標準ひょうじゅんてき用意よういされているのは、AdaC、C++、LISPSmalltalk、Java、COBOLPL/IPython である。標準ひょうじゅんまれていないが、PerlPHPRubyVisual BasicTclDelphi へのマッピングを実装じっそうしたObject Request Broker存在そんざいする。

下図したずはCORBA基盤きばん生成せいせいされたコードが使つかわれる様子ようすしめしたものである。

この非常ひじょう単純たんじゅんしてある。通常つうじょう、サーバがわには Portable Object Adapter があり、しをローカルなサーバントわたすか(負荷ふか分散ぶんさんのために)のサーバに転送てんそうする。また、サーバがわにもクライアントがわにも後述こうじゅつするインターセプターが存在そんざいすることがおおい。

ユーザーにたいして言語げんごやプラットフォームに依存いぞんしない遠隔えんかく手続てつづ呼出よびだ (RPC) 仕様しよう提供ていきょうする以外いがいに、CORBAはトランザクションセキュリティ必要ひつよう一般いっぱんてきサービスを定義ていぎしている。

おも機能きのう特徴とくちょう[編集へんしゅう]

Objects by Value (OBV)[編集へんしゅう]

リモートオブジェクトとはべつに、CORBAとRMI-IIOPはOBVの概念がいねん定義ていぎしている。オブジェクトないのメソッドのコードはデフォルトではローカルに実行じっこうされる。OBVをリモートから受信じゅしんする場合ばあい必要ひつようなコードが両者りょうしゃ事前じぜんそなえられているか、送信そうしんがわから動的どうてきにダウンロードしなければならない。このため、コードをダウンロードできるURLぐんの(空白くうはく区切くぎった)リストである Code Base が OBV を定義ていぎするレコードにふくまれている。OBV はリモートメソッドをつこともできる。

OBV は転送てんそうされるさい付属ふぞくして転送てんそうされるフィールドをつことがある。そのフィールドにはOBV自体じたい構成こうせいリスト、構造こうぞうやグラフなどがふくまれる。OBVにはクラス階層かいそうがあり、多重たじゅう継承けいしょう抽象ちゅうしょうクラスもある。

CORBA Component Model (CCM)[編集へんしゅう]

CORBA Component Model (CCM) は CORBA 仕様しよう追加ついか要素ようそである。 CORBA 3 で導入どうにゅうされた。これはCORBAコンポーネントの標準ひょうじゅんアプリケーションフレームワークを記述きじゅつしたものである。それはちょうど「言語げんご依存いぞんしない」Enterprise JavaBeans(EJB)の拡張かくちょうばんである。「ポート」とばれる明確めいかく名前なまえきのインタフェースをとおしてサービスのやりとりができる実体じったい抽象ちゅうしょうしたものである。

CCM にはコンポーネントコンテナがあり、そのなかにソフトウェアコンポーネントがかれる。コンテナは内包ないほうするコンポーネントに各種かくしゅサービスを提供ていきょうする。たとえば、通知つうち認証にんしょう永続えいぞくせい、トランザクション管理かんりなどがある。これらは分散ぶんさんシステムには必須ひっすのサービスであり、その実装じっそうをソフトウェアコンポーネントからコンテナにうつすことによってコンポーネントの複雑ふくざつさは劇的げきてき軽減けいげんされる。

ポータブルなインターセプター[編集へんしゅう]

ポータブルなインターセプターとは、CORBAやRMI-IIOP使用しようするCORBAシステムのさい重要じゅうよう機能きのうの「フック」である。CORBA標準ひょうじゅんでは以下いかのようなタイプのインターセプターを定義ていぎしている:

  1. IORインターセプターは、カレントサーバがしめすリモートオブジェクトへのあらたな参照さんしょう作成さくせい調停ちょうていする。
  2. クライアントインターセプターは、クライアントがわでリモートメソッドのしの調停ちょうていおこなう。そのオブジェクトのサーバントおなじサーバに存在そんざいすれば、そのメソッドがされるようにローカルしが調停ちょうていされる。
  3. サーバインターセプターは、サーバがわのリモートメソッドしへの対応たいおう調停ちょうていする。

インターセプターは、送信そうしんされるメッセージになんらかの情報じょうほう生成せいせいしたIORを付加ふかすることができる。それらの情報じょうほうはリモートがわ対応たいおうするインターセプターがる。インターセプターは例外れいがいおくったり、メッセージをのターゲットに転送てんそうしたりといったこともおこなう。

General InterORB Protocol (GIOP)[編集へんしゅう]

GIOPとは、Object Request Broker(ORB)同士どうし通信つうしんするさい抽象ちゅうしょうプロトコルである。このプロトコルにかんする標準ひょうじゅんObject Management Group(OMG)が管理かんり保守ほしゅしている。GIOPアーキテクチャはいくつかの実際じっさいのプロトコルを提供ていきょうしている:

  1. Internet InterORB Protocol (IIOP) - CORBA ORB 同士どうし通信つうしんプロトコルであり、インターネットうえのGIOPの実装じっそうである。したがって、GIOPメッセージとTCP/IPとの橋渡はしわたしをする。
  2. SSL InterORB Protocol (SSLIOP) - SSL うえのIIOP。暗号あんごう認証にんしょう機能きのう提供ていきょうする。
  3. HyperText InterORB Protocol (HTIOP) - HTTPうえのIIOP。プロキシ透過とうかてき迂回うかいするなどの機能きのうがある。
  4. そのいろいろ…

Data Distribution Service (DDS)[編集へんしゅう]

Object Management Group (OMG) は関連かんれんする標準ひょうじゅん規格きかくとしてData Distribution Service (DDS) 標準ひょうじゅん制定せいていしている。DDS は出版しゅっぱん-購読こうどく(publish-subscribe)がたデータ配信はいしんモデルであり、対照たいしょうてきにCORBAはリモートしオブジェクトモデルである。

VMCID (Vendor Minor Codeset ID)[編集へんしゅう]

標準ひょうじゅんCORBAは例外れいがいのサブカテゴリーを明示めいじするためにマイナーコードを明記めいきしている。マイナー例外れいがいコードは unsigned long がたで、上位じょうい20ビットは “Vendor Minor Codeset ID”(VMCID)、下位かい12ビットがマイナーコード本体ほんたいである。標準ひょうじゅん例外れいがいのマイナーコードには OMG が予約よやくする VMCID の付与ふよされたかたちで unsigned long がた定数ていすう CORBA::OMGVMCID として定義ていぎされる。したがって、マイナー例外れいがいコードは OMGVMCID と OR されたかたちで ex_body 構造こうぞうたい格納かくのうされている。

マイナーコードの設定せっていはベンダー依存いぞんである。VMCID の要求ようきゅうは、tagrequest@omg.org に電子でんしメールをおくればよい。VMCID のうち、0 と 0xfffff は実験じっけんよう予約よやくされている。また、OMGVMCID と 1 から 0xf までの VMCID は OMG が予約よやくしている。

CorbaLoc[編集へんしゅう]

CorbaLoc とは、Corba Location のりゃくであり、CORBA オブジェクトへの参照さんしょう文字もじれつあらわしたものである。そのはURLによくている。CORBA製品せいひんには OMGが定義ていぎした種類しゅるいのURL、"corbaloc:" と "corbaname:" をサポートしている。その目的もくてきは、IOR場所ばしょ指定していするにたって、人間にんげんがそれをんで編集へんしゅうできる方法ほうほう提供ていきょうすることである。

CobaLoc のれい以下いかしめす:

corbaloc::160.45.110.41:38693/StandardNS/NameServer-POA/_root

CORBA製品せいひんはオプションとして "http:"、"ftp:"、"file:" をサポートするものもある。これらは、文字もじれつされたIORのダウンロード方法ほうほう詳細しょうさい提供ていきょうするために存在そんざいする(または、再帰さいきてきのURLをダウンロードすることによって文字もじれつされたIORがられるようにしている)。

CORBA 実装じっそうれい[編集へんしゅう]

  • Oracle Tuxedo - CORBA 2.5 対応たいおう商用しょうよう ORB (JavaC++ようオラクル
  • Borland Enterprise Server, VisiBroker - CORBA 2.6 対応たいおう商用しょうよう ORB (Java、C++ようボーランド
  • GNU Classpath - Javaようフリーソフトウェア実装じっそうふくむ(GPL+linking exception, あらたにかれた org.omg パッケージをふくむ)
  • CORBA for PHP - PHP5
  • Combat - Tclよう ORB。C++ ORB の Tcl そう
  • e*ORB - 商用しょうよう ORB (AdaC、C++よう
  • ILU - パロアルト研究所けんきゅうじょのオープン・ソフトウェア・オブジェクト・インタフェース・システム
  • IIOP.NET - Microsoft .NET ようフリーソフトウェア(LGPL) ORB
  • Interstage - 商用しょうよう富士通ふじつう
  • JacORB - Javaで実装じっそうされたフリーソフトウェア (LGPL) ORB
  • J-Integra Espresso - 商用しょうよう Microsoft .NET ORB、by Intrinsyc J-Integra
  • MICO - C++で実装じっそうされたフリーソフトウェア (LGPL) ORB
  • omniORB - フリーソフトウェア (LGPL) ORB (C++、Pythonよう
  • OpenORB - フリーソフトウェア (BSD) ORB (Javaよう
  • Orbacus - 商用しょうよう C++ ORB、by IONA Technologies
  • ORBexpress - 商用しょうよう ORB(Ada、Java、C++よう通常つうじょうばんとリアルタイムばん)by Objective Interface Systems
  • ORBit2 - フリーソフトウェア (LGPL) ORB (C、C++、Pythonよう
  • Orbix - 商用しょうよう ORB by IONA Technologies
  • ORBLink - 商用しょうよう ORB (Allegro Common LISP よう
  • Perl ORB - Perl実装じっそうされたオープンソース(Artistic License) ORB
  • PolyORB - Adaで実装じっそうされたフリーソフトウェア (MGPL) ORB
  • SANKHYA Varadhi - 商用しょうよう ORB (C++よう
  • TAO - オープンソース ORB (C++よう
  • TPBroker - VisiBroker の日立製作所ひたちせいさくしょによる改造かいぞうばん
  • Universe - PHP4
  • VBOrb - フリーソフトウェア (LGPL) ORB (Visual Basicよう
  • Xtradyne I-DBC - 商用しょうよう CORBA セキュリティ実装じっそう、by Xtradyne
  • Systemνにゅー[nju:] - 商用しょうよう 分散ぶんさんトランザクション対応たいおう ORB、日本にっぽんユニシス

OMG の商標しょうひょう[編集へんしゅう]

CORBA、IIOP、OMG は Object Management Group の登録とうろく商標しょうひょうであり、利用りようには注意ちゅうい必要ひつようである。GIOP は登録とうろく商標しょうひょうではない。したがって、アプリケーションについて「GIOPもとづいたアーキテクチャである」とするのが適切てきせつ場合ばあいもあるだろう。なお、CORBAの仕様しようしょ自体じたいかんしては、それにもとづいた実装じっそう自由じゆうおこなうことは(CORBAという登録とうろく商標しょうひょう使つかわないかぎり)ゆるされている。

関連かんれん項目こうもく[編集へんしゅう]

参考さんこう文献ぶんけん[編集へんしゅう]

外部がいぶリンク[編集へんしゅう]