A computer implemented method for providing communication between a secured client computer and a remote computer, comprising: (a) providing a client computer that includes at least two peripheral components; each peripheral component is configured, by a processor, to process a corresponding peripheral component data of a data type that is not compatible with peripheral component data types processed by a processor of other of said at least two peripheral components; the processor of each peripheral component is further configured to code the corresponding data of said data type; the method further comprising with respect to each peripheral component of said components, by said processor: (b) establishing a secured peer-to-peer communication channel between the peripheral component and the remote computer that is authorized to communicate with said client computer; and (c) coding data that is communicated between the authorized remote computer and the peripheral component through said secured communication channel, said coded data being undecryptable by the processors of other of said peripheral components, and wherein for at least one group of said peripheral components, said processor is capable of translating data of a first data type associated with one module of said group to data of a second non compatible type of the other module of said group; the method further comprising: d) establishing a secured peer to peer communication channel with other peripheral component of said group of peripheral components; e) coding data for communicating between the one peripheral component through said secured communication channel with said other peripheral component; said coded data is undecryptable by other of said peripheral components apart from said group; and f) translating data of said first type to a data of said second type or vice versa, thereby facilitating communication between said group of peripheral components in a common data type. (a) providing a client computer that includes at least two peripheral components; each peripheral component is configured, by a processor, to process a corresponding peripheral component data of a data type that is not compatible with peripheral component data types processed by a processor of other of said at least two peripheral components; the processor of each peripheral component is further configured to code the corresponding data of said data type; (b) establishing a secured peer-to-peer communication channel between the peripheral component and the remote computer that is authorized to communicate with said client computer; and (c) coding data that is communicated between the authorized remote computer and the peripheral component through said secured communication channel, said coded data being undecryptable by the processors of other of said peripheral components, and wherein for at least one group of said peripheral components, said processor is capable of translating data of a first data type associated with one module of said group to data of a second non compatible type of the other module of said group; the method further comprising: d) establishing a secured peer to peer communication channel with other peripheral component of said group of peripheral components; e) coding data for communicating between the one peripheral component through said secured communication channel with said other peripheral component; said coded data is undecryptable by other of said peripheral components apart from said group; and f) translating data of said first type to a data of said second type or vice versa, thereby facilitating communication between said group of peripheral components in a common data type. d) establishing a secured peer to peer communication channel with other peripheral component of said group of peripheral components; e) coding data for communicating between the one peripheral component through said secured communication channel with said other peripheral component; said coded data is undecryptable by other of said peripheral components apart from said group; and f) translating data of said first type to a data of said second type or vice versa, thereby facilitating communication between said group of peripheral components in a common data type.