A computer processing apparatus comprising: one or more processors; memory coupled to the one or more processors, said memory comprising shared memory (216; 316) between a plurality of virtual machines of the apparatus; a collection of peer-to-peer streaming services configured to work as a peer node in a peer-to-peer network, for use by one or more applications; and a collection of peer-to-peer application programming interface services to enable the one or more applications to access the peer-to-peer network, through the collection of peer-to-peer streaming services; characterized in that said apparatus comprises a virtual machine manager (214; 314) configured to manage a plurality of virtual machines (202; 204; 302; 304) operated by the one or more processors; said peer-to-peer streaming services are configured to be operated in a first virtual machine (202; 302) of the plurality of virtual machines (202; 302; 204; 304), while said applications are operated in a second virtual machine (204; 304) of the plurality of virtual machines (202; 302; 204; 304), and said peer-to-peer application programming interfaces are configured to be instantiated in said second virtual machine (204; 304); a back-end driver (208; 308) and a front-end driver (210; 310) are configured to be operated in the first (202; 302) and second (204; 304) virtual machines respectively, to enable communication between the two virtual machines, including communication between the peer-to-peer application programming interface services and the peer-to-peer streaming services; wherein the first virtual machine (202; 302) includes a first operating system and wherein the second virtual machine (204; 304) includes a second operating system. CGS:FK:is one or more processors; memory coupled to the one or more processors, said memory comprising shared memory (216; 316) between a plurality of virtual machines of the apparatus; a collection of peer-to-peer streaming services configured to work as a peer node in a peer-to-peer network, for use by one or more applications; and a collection of peer-to-peer application programming interface services to enable the one or more applications to access the peer-to-peer network, through the collection of peer-to-peer streaming services; characterized in that said apparatus comprises a virtual machine manager (214; 314) configured to manage a plurality of virtual machines (202; 204; 302; 304) operated by the one or more processors; said peer-to-peer streaming services are configured to be operated in a first virtual machine (202; 302) of the plurality of virtual machines (202; 302; 204; 304), while said applications are operated in a second virtual machine (204; 304) of the plurality of virtual machines (202; 302; 204; 304), and said peer-to-peer application programming interfaces are configured to be instantiated in said second virtual machine (204; 304); a back-end driver (208; 308) and a front-end driver (210; 310) are configured to be operated in the first (202; 302) and second (204; 304) virtual machines respectively, to enable communication between the two virtual machines, including communication between the peer-to-peer application programming interface services and the peer-to-peer streaming services; wherein the first virtual machine (202; 302) includes a first operating system and wherein the second virtual machine (204; 304) includes a second operating system. CGS:FK:is