パイプ/ソケットよりも高レベルで包括的なものは何ですか?Linuxの世界でWindows COM/DCOMに最も近いものは何ですか?
答えて
はい、多くのことがありますが、COM/DCOMとして「標準」とはありません。少なくとも、WindowsではCOM/DCOMは "Windowsの"もので使用され、他のRPCの仕組みはWindows以外のもので使われます。
Linuxにはそのようなものはありません。代わりに、より高度なRPCプロトコルを必要とするものは、通常、言語が提供するものを使用します。または、アプリケーションのニーズに最も適した特定のライブラリです。その例は、JavaのRMI、Pythonの「pyro」モジュールなどであり、DCOMで(いくつかの)機能的なパリティを提供します。
コーバは少し重量がありますが、一部の人々は明らかにそれを使用しています。
多くのアプリケーションが独自のRPCライブラリを公開しています。あなたがしなければ、それは厄介です。
Sun RPC -ONCはCOM/DCOMと同じことをしていますか? –
[ONC RPC](https://en.wikipedia.org/wiki/Open_Network_Computing_Remote_Procedure_Call)は[DCE/RPC](https://en.wikipedia.org/wiki/DCE/RPC)または[MSRPC ](https://en.wikipedia.org/wiki/Microsoft_RPC)。そのIDLははるかに簡単で、機能が少なくなっています。 [Distributed COM](https://en.wikipedia.org/wiki/Distributed_Component_Object_Model)は、MSRPCに基づいて通信しますが、そのレベルを超える多くの複雑な処理を行います。例えば、「AddRef」と「QueryInterface」を避けるためのプロキシオブジェクトキャッシュです。ラウンドトリップ、ガベージコレクションのためのping、COM固有のメモリ管理など – acelent
** Linuxにはこのようなものはありません**:* dbus *はかなり近づいています:アプリケーションはRPCメソッドとイベントを公開することができます。これらのメソッドをイントロスペクションしてからリモートで呼び出します。 **多くのアプリケーションが独自のRPCライブラリを公開しています。あなたがしなければ、それは厄介です**私は間違いなくポイントを参照してください。一方、私はemacsやgimpのようなものはかなり良いRPCライブラリを持っていると言うでしょう。アプリケーションが複雑になればなるほど、独自のRPCメカニズムが必要になるでしょう! –
プロセス間通信では、D-Busが標準の上位レベルのメカニズムです。 GTKとQtの両方にD-Busのバインディングがあり、ほとんどのデスクトップ環境(または少なくともGNOMEとKDE)はD-Bus経由でさまざまなサービスを公開しており、多くのデスクトップアプリケーションはD-Busインタフェース経由で制御できます。システムバスは、標準システムサービスを使用して、システムに関するさまざまな低レベルの情報を見つけるのにも役立ちます。
KDE4(Qt4をベースにしています)には、KPartsと呼ばれるテクノロジも含まれています.KPartsは、WindowのCOMとよく比較されます。
"プロセス間通信では、D-Busが標準メカニズムです。 それは?ソケット、共有メモリ、メッセージキュー、およびセマフォは、POSIX環境の標準プロセス間通信のメカニズムがどのようなものかを尋ねると、私が言うことです。 – smcameron
D-Busは、あなたがリストする基本的なメカニズムよりも高いレベルであり、COM/DCOMに匹敵し、Linuxで広く普及しています(他の多くのバージョンはUnixの他のバージョンから継承されています - もちろんレベルのメカニズム)。 –
piginプラグインの代わりにD-Bus経由で動作するPigin IMコントローラを書くことができます。 dbus-monitor --sessionを実行すると、D-Busにあなたの会話の中のすべてを載せることができます。 –
を利用して行う、比較的少数のプログラムのリストです。
Monoプロジェクトが頭に浮かびます。主にCLR/.NETが新しいCOMであるため、COMは当初は言語に依存しないバイナリ互換オブジェクトとして販売されていました。
私はDCOM(長いワイヤーで、すなわちCOM)は、.NETリモーティングだろうと思いますか?あるいは、オブジェクト直列化を持ついくつかのWebサービスです。私はモノが両方をサポートしていると思います。
DCOMはLinuxで利用できます。それは "Linuxのやり方"ではありませんが、 "DCOMのようですが、Linux"を望むならば、LinuxでDCOMを使い、やったことがあります。
- D-Busが接続されたアプリケーションは、
- 通信は単純介して行われる通信することができる上に論理 "バス" を使用suppするオブジェクトモデル
- D-Busには、オブジェクトインターフェイスの実行時クエリのための標準的なイントロスペクションメカニズムが含まれています。バスに接続されているアプリケーションは、オブジェクトの可用性を問い合わせ、リモートメソッドを呼び出し、要求します彼らは前
- 発する信号の通知:GNOME Bonobo、KDE DCOP、CORBA、Sun RPCを...、今日の人はD-バス
- インターフェースベースのコンプを好むように見えます(COMに匹敵する)
- UNOオブジェクトの有効期間は、グローバル参照によって制御されます(COMに匹敵する)
- すべてのUNOインターフェイスは、取得、解放、およびqueryInterfaceメソッドカウント。
- コンポーネントはそれぞれのインターフェイスを介してのみ通信します 各コンポーネントはUnoランタイム環境(URE)に存在します。コンポーネントのパフォーマンスオーバーヘッドはなく、同じURE内でインスタンス化されます。たとえば、C++ではコンポーネントAからBは単なる仮想呼び出しです
- IDO
- でエラー処理に例外が使用されています。 XPCOMで
- インタフェースはIDLの方言で定義されているマイクロソフトCOMに似XPCOM
- 欠点はXPCOMが異なる使用の間でオブジェクトを整列化するために多くのコードを追加することであると呼ばれますXPCOMベースのシステムではコードが肥大化します。
...別の代替案IDERは、同様に
それは関連の質問を見ても価値がJava RMI次のようになります。 Is there an equivalent to COM on *nix systems ? If not, what was the *nix approach to re-usability?
Analog of COM programming in Linux/UNIX
- 1. GNU/Linuxの世界で最新のGUIアプリケーションを作成する最も簡単な方法は何ですか?
- 2. Beautiful Soup for Rubyに最も近いものは何ですか?
- 3. YUIのDataTableに最も近いjQuery近似は何ですか?
- 4. Amazon Web Services *ネイティブ*はApache Kuduに最も近いものは何ですか?
- 5. ハスケルGADTとF#のタイプメスに最も近いものは何ですか?
- 6. perlのtext :: templateモジュール... phpに最も近いものは何ですか?
- 7. post-ghc-7.6.1の世界でDynamicException相当のものは何ですか?
- 8. Railsのランブル以外にも、ルビーの世界的なプログラミングコンペは何ですか?
- 9. mybatisは、世界で最も人気のあるSQLマッピングフレームワークですか?
- 10. Ruby's Rackに最も近いC++アナログは何ですか?
- 11. Azure Schedulerジョブに最も近いAWSは何ですか?
- 12. NetbeansからEclipseのテンプレート(コードマクロ)に最も近いのは何ですか? Eclipseで
- 13. Pythonで最も近い最近隣グラフ
- 14. Theanoで最も近い最近隣のアップサンプリングを行うには?
- 15. 禅シミュレータは世界で何ですか?
- 16. ペアの配列で最も近い数のペアを見つける最も速い方法は何ですか?
- 17. 刻々と変化する世界の最新のものへ
- 18. JavaのNSScannerに最も近いもの
- 19. 既存のタイプに最も近いマッチングタイプを見つける最も良い方法は何ですか?
- 20. このアプリケーションに使用するには、最も近い最近隣アルゴリズムは何ですか?
- 21. Linuxの世界で利用可能なMVC Webフレームワークは何ですか?
- 22. Pythonでscalaの@transient lazy valの最も近い実装は何ですか?
- 23. ポストJavaの世界でLinux上のSOAのための最良の言語/プラットフォームは何ですか?
- 24. プロトタイプにhash.inspect()メソッドがあります。 jQueryの世界で同等のものは何ですか?
- 25. 最も近いテーブルセル
- 26. CodeProjectのライセンスとCodePlexの最も近いOSSライセンスは何ですか?
- 27. 空間内の点の集合から最も近い/最も近い平面を見つける最良のアルゴリズム/論文は何ですか?
- 28. 最もパフォーマンスの高いものは何ですか?
- 29. WindowsのLinux mkdir -pに相当するものは何ですか?
- 30. JavaScriptの最も近いペアアルゴリズム
はあなたのすべてをありがとう - それはかなりのものが立っていた場所の私の感覚でした。私は@ MarkRの答えをうまく包み込んでいるように受け入れました。 – fakeleft