質問
のための分散コンピューティングプロジェクトの開始日と0レガシー部品が足りる相当の理由があるCORBA?
解決
CORBAが適切な答えになる可能性がある状況はまだあります:
- 分散を構築するとき 複数のプログラミングを含むシステム 言語と複数のプラットフォーム、
- システムが送信を伴う場合 複雑なデータ構造...およびSOAP カットしません
- メッセージングのレートが高い場合 ...そしてHTTPはそれをカットしません、または
- 対話する必要がある場合 既存のCORBAクライアントおよび/または サービス。
しかし、CORBAが行うことを行う代替手段がありますが、それだけではありません...または彼らは主張しています。たとえば、 ZeroCのICE
編集 @fnietoは、ICEは無料ではないがTAOは無料であると言う(または暗示する)ように発言します。
これは不正確で誤解を招く。
- ICEはGPLのソフトウェアであり、無料でダウンロードできます。あなた/あなたの会社がGPLの条件に従って生活する準備ができていない場合にのみ、ICEを支払う必要がありました。 (またはサポートが必要な場合。)
- ICEをCORBAの代替の例として使用しました。 TAOはCORBAです。 ICEの作成者は、CORBAに準拠しないことでパフォーマンスが向上する理由について信頼できるケースを作成しています。
- TAOは、唯一のフリー/オープンソースCORBA実装ではありません。私は頭のてっぺんから3人を思い浮かべることができます。
ICEの欠点は、CORBAミドルウェアスタックとの相互運用性の欠如ですが、私の経験では、さまざまなCORBA実装の相互運用性にも問題があります。 (その領域では改善されているかもしれませんが、2002年からCORBAの作業を行っていないため、少し連絡がありません。)
他のヒント
既存の回答から、これはほとんど宗教的なトピックになります。 CORBAは、ハーフエンプティ/ハーフフルガラスと同じように見ることができます:一方では、CORBAはレガシークラフツと日付が付けられ、他方では、いくつかの実装が利用可能であり、「悪魔を知っています」と比較的安定しています。
私の仕事では、組み込みシステム、リアルタイムシステム(CORBAにはRT拡張機能)などにデプロイされたCORBAがあります。あまり多くの選択肢はありません。
もう1つの「利点」 CORBAは、TAO、MICO、JacORBなど、ライセンスとサポートモデルが異なる複数の高品質なオープンソース実装の可用性です。商用版もまだ利用可能です。
「ほとんど」についてJavaで実装されているCORBAアプリ-私の経験ではそうではありません。 CORBAからJavaへの言語マッピングは最も優れたものの1つですが(多くは言っていないかもしれませんが)、Javaには既にCORBAを超える豊富な機能を提供する非常に優れた分散コンピューティングモデルがあり、すべてのJavaアプリはCORBA以上のものを使用しています。私が見たCORBA開発の大部分はC ++で行われています(これは最悪の言語マッピングでもあります)。
最後に、CORBAはAMIの形式で標準化された非同期クライアント側呼び出しを提供しますが、サーバー側で非同期処理を提供することはありません。 TAOは、AMHと呼ばれる非標準のサーバー側実装を提供します。
EJBは、少しの設定で簡単にCORBA Beanに変換できるため、Corbaは元のEJB仕様によってある程度復活したと思います。ほとんどのCorbaデプロイメントは実際にJavaで実装されたと思われます。
人気に関しては、何十年もの間、いくつかのハイエンドの展開が残っているかもしれないと思いますが、大多数の人々にとって、Corbaは死んでいます。
同じことを行う非常にセクシーな方法はたくさんあります(上記のハイエンドを除く)。
- クラウドコンピューティング(Webサービス、スケーラブルコンピューティング、疎結合、キューイング)。
- RESTサービス(web-services lite)。
- SOAPサービス(Webサービスが多い)。
- グリッド/クラスターコンピューティング(キューイング、map-reduceなど)
もちろん、あなたのマイレージは変わる可能性があります。
明らかに、それは考慮しているサーバーとプロセス間通信のタイプに依存します。そして、Stephen CとChris CleelandがCorbaのプラス面を非常によくカバーしていると思います。
当社のアプリケーションはCORBA(Orbix)を10年以上使用しているため、現在はレガシーです。また、CORBAの記述方法は優れたテクノロジーです。ただし、最初からやり直す場合は、おそらくCORBAを使用しません。
- それは複雑であり、私の組織内の少数の人々だけがそれを非常によく知っているので、すべての難しい問題が解決するために彼らに落ちます。
- スタッフの募集が問題になる場合があります。アイルランドではC ++の開発者は地面にやや薄いですが、CORBAはもはやクールではなく、クールにもなりません。
- ほとんどのコンサルティング会社は統合作業にWebサービスを使用したいので、サードパーティに統合を行わせたい場合は、とにかくWebサービスAPIが必要になるでしょう。
今、私が望んでいたコミュニケーションのタイプに応じて、おそらく検討します:
- 多数の小さなメッセージ用のプロトコルバッファー(トランスポートを提供する必要があることはわかっています)
- 大きなメッセージの少ないWebサービス
これは、スタッフと専門知識、サードパーティのサポート、オープンソースライブラリの活用、そして私が日常的に使用するCORBAの技術的品質に基づいています。
CORBAは確かに昔ながらですが、すぐに使用できる特定の高レベルの機能も提供します(こちら)。この機能はすべて最新のWebサービスを使用して実行できますが、おそらく標準的な方法ではなく、多くの余分な作業が必要です。
ただし、分散サービスの99%では、CORBAは望ましくありません。くて複雑で使いにくいです。
ことなのであることが明らかにされた。が開きます。すべての技術に存在する(除くソープ)では開白紙ます。標準依存するものではない他の機関の技術です。RMI(日/Oracle)、DCOM(現defuncted-マイクロソフト)がでは完全にベンダーと語る。除くソープ、その他のDOS(分散オブジェクト技術)の技術
私はソフトウェアの建築家、定期的にこの選択肢としてあるDOSに必要なシステムデザイン。だから、宗教戦争に向かい、毎回、いずれのママまたはCORBA.
視したりしないでくださいこれらば、その死者の3/4Gネットワークのようです。3GPPはCORBAを指定します。欧州の衛星システムはすべてのCORBAを指定します。ひとりの皆さまか。いいものでなければならないベンダー、言語の中の建築!
Webサービス(RESTを含む)およびJavaワールドEJB(カバーの下でCORBAを使用することもある)の現在の成熟度レベルは、分散エンタープライズシステムに必要なものをカバーしていると思います。
慎重に検討する必要がある1つの側面は、分散システムで必要な非同期相互作用の程度であることをお勧めします。自明ではない規模の分散システムには非同期通信が必要であり、選択されたインフラストラクチャは非同期処理、通常はキューをサポートする必要があると仮定します。
これはWebServices(または実際にはCORBA)の使用と矛盾しませんが、分散処理を開始するという最初の興奮で見落とされる可能性がある製品選択の側面を指摘します