XPCOM を使用する代わりに python virtualbox API を使用する利点は何ですか?
3 に答える
利点は、pyvb の操作がはるかに簡単であることです。
それどころか、XPCOM の Python API のドキュメントは存在せず、API はまったく Pythonic ではありません。オブジェクトのメソッド/属性などを見つけるためにイントロスペクションを行うことはできません。そのため、C++ ソースをチェックして、それがどのように機能するか、または既に記述されているいくつかの python スクリプト ( vboxshell.pyやVBoxWebSrv.pyなど) を確認する必要があります。
一方、pyvb は実際には、コマンド ラインで VirtuaBoxManager を呼び出す単なる python ラッパーです。それが本当に不利なのかどうかはわかりませんか?
私は通常、どちらにも反対することをお勧めします。仮想化をプログラムで使用する必要がある場合は、クロス プラットフォームおよびクロス ハイパーバイザーのサポートを提供する libvirt を検討してください。これにより、後で kvm/xen/vz/vmware を実行できます。
そうは言っても、SOAP API は 2 つの追加の抽象化レイヤー (HTTP トランザクションのクライアント側とサーバー側) を使用しており、これは明らかに XPCOM インターフェースを呼び出しているだけです。
ローカル ホストのみのサポートが必要な場合は、XPCOM を使用してください。libvirt/SOAP の余分な間接化は役に立ちません。複数のクライアント マシンにまたがるさまざまなホスト上の virtualbox にアクセスする必要がある場合は、SOAP または libvirt を使用します。クロス プラットフォームのサポートが必要な場合、または Linux でコードを実行する場合は、libvirt を使用します。
Sun のVirtualBox python APIのサイトから:
SOAP ではHTTP 経由でリモート VM を制御できますが、XPCOM ははるかに高性能で、SOAP では利用できない特定の機能を公開しています。
それらは非常に異なる技術を使用します (SOAP は手続き型で、XPCOM は OOP です) が、最終的には VirtualBox の同じ機能への API であるため、バインディングの元のセマンティクスを維持しました。 VirtualBox インスタンスとのどの通信チャネルが使用されているかを人々が気にしないようにする方法。
その記事から、「python virtualbox API」と「XPCOM」の違いがわかりにくくなっています。考えている API へのリンクを提供していただけますか?