2010-04-16 16 views

risposta

1

Dal sito del sole sulla VirtualBox python APIs:

SOAP permette di controllare a distanza le macchine virtuali oltre HTTP, mentre XPCOM è molto più ad alte prestazioni ed espone alcune funzionalità non disponibili con il sapone.

Usano molto diverse tecnologie (SOAP è procedurale, mentre XPCOM è OOP), ma in definitiva, è API per la stessa funzionalità del VirtualBox, abbiamo tenuto in binding semantica originali, tanto altro che impostazione del collegamento, il codice potrebbe essere scritto in modo tale che alle persone potrebbe non interessare quale canale di comunicazione con l'istanza VirtualBox è utilizzato.

Da questo articolo, ho difficoltà a vedere la differenza tra "python virtualbox API" e "XPCOM". Potresti fornire un link all'API a cui stai pensando?

+0

pyvb (cioè pitone virtualbox) la documentazione è nel collegamento http://enomalism.com/api/pyvb – ask

4

Generalmente raccomanderei l'uno o l'altro. Se è necessario utilizzare la virtualizzazione a livello di codice, dare un'occhiata a libvirt, che offre supporto multipiattaforma e cross hypervisor; che ti permette di fare kvm/xen/vz/vmware in seguito.

Detto questo, l'API di SOAP utilizza due livelli di astrazione aggiuntivi (il lato client e il lato server della transazione HTTP), il che è piuttosto chiaro quando si chiama l'interfaccia XPCOM.

Se è necessario il supporto dell'host locale, utilizzare XPCOM. L'ulteriore riferimento a libvirt/SOAP non ti aiuta. Se è necessario accedere a virtualbox su vari host su più macchine client, utilizzare SOAP o libvirt Se si desidera il supporto multipiattaforma o per eseguire il codice su Linux, utilizzare libvirt.

6

Il vantaggio è che pyvb è molto più facile da lavorare.

Al contrario, la documentazione per l'API python di XPCOM non esiste e l'API non è affatto pitonica. Non puoi fare introspezione per trovare metodi/attributi di un oggetto, ecc. Quindi devi controllare il sorgente C++ per trovare come funziona o alcuni script python già scritti (come vboxshell.py e VBoxWebSrv.py).

D'altra parte pyvb è in realtà solo un wrapper python che chiama VirtuaBoxManager sulla riga di comando. Non so se sia un vero svantaggio o no?