2010-04-16 15 views

Trả lời

1

Từ chỗ mặt trời trên VirtualBox python APIs:

SOAP cho phép để điều khiển từ xa máy ảo qua HTTP, trong khi XPCOM nhiều hơn có hiệu suất cao và đưa ra một số chức năng không có sẵn với SOAP.

Họ sử dụng công nghệ rất khác nhau (SOAP là thủ tục, trong khi XPCOM là OOP), nhưng vì nó là cuối cùng API để các chức năng tương tự của VirtualBox, chúng tôi giữ trong bindings ngữ nghĩa gốc, do đó khác mà thiết lập kết nối, mã có thể được viết theo cách mà mọi người có thể không quan tâm thông tin liên lạc kênh với phiên bản VirtualBox được sử dụng .

Từ bài viết đó, tôi gặp sự cố khi thấy sự khác biệt giữa "python virtualbox API" và "XPCOM". Bạn có thể cung cấp liên kết tới API mà bạn đang nghĩ đến không?

+0

pyvb (ví dụ: python virtualbox) tài liệu có trong liên kết http://enomalism.com/api/pyvb – ask

4

Tôi thường khuyên bạn nên chống lại một trong hai. Nếu bạn cần sử dụng ảo hóa theo lập trình, hãy xem libvirt, cung cấp cho bạn nền tảng chéo và hỗ trợ hypervisor chéo; cho phép bạn thực hiện kvm/xen/vz/vmware sau này.

Điều đó nói rằng, api SOAP đang sử dụng hai lớp trừu tượng bổ sung (phía máy khách và phía máy chủ của giao dịch HTTP), điều này khá rõ ràng sau đó chỉ cần gọi giao diện XPCOM.

Nếu bạn chỉ cần hỗ trợ lưu trữ cục bộ, hãy sử dụng XPCOM. Bổ sung thêm libvirt/SOAP không giúp bạn. Nếu bạn cần truy cập hộp ảo trên một máy chủ khác nhau trên nhiều máy khách, hãy sử dụng SOAP hoặc libvirt Nếu bạn muốn hỗ trợ nền tảng chéo hoặc chạy mã của bạn trên Linux, hãy sử dụng libvirt.

6

Lợi thế là pyvb dễ làm việc hơn nhiều.

Ngược lại, tài liệu về API trăn của XPCOM không tồn tại và API không phải là pythonic. Bạn không thể làm nội tâm để tìm các phương thức/thuộc tính của một đối tượng, vv Vì vậy, bạn phải kiểm tra nguồn C++ để tìm cách nó hoạt động hoặc một số kịch bản python đã được viết (như vboxshell.pyVBoxWebSrv.py).

Mặt khác pyvb thực sự chỉ là trình bao bọc python gọi VirtuaBoxManager trên dòng lệnh. Tôi không biết đó có phải là bất lợi thực sự hay không?