A system comprising: a first component coupled to a network for receiving data; a second component coupled to the network for sending data to the first component; wherein each of the first and second components (14, 12) comprises an end-user component; wherein the second component comprises: means for performing a discovery process for discovering one or more components that are present on the network; means for obtaining one or more proxy objects from discovered components; and means for inspecting a proxy object to determine data transfer capabilities of the discovered component and one or more native data types for the discovered component; wherein the first component comprises: an interface system configured to communicate with the second component and, in response to instructions from the second component, to obtain a data type handler object (500) and to access at least one interface provided by the data type handler object (500), wherein the interface provided by the data type handler object (500) comprises mobile code for handling at least one type of data that otherwise cannot be read or understood by the first component; and a security system configured to access the interface provided by the data type handler object (500) to obtain a data transfer security mechanism and to implement the data transfer security mechanism; and wherein the interface provided by the data type handler object (500) is employed as a function of data type and security that is applied to the data. a first component coupled to a network for receiving data; a second component coupled to the network for sending data to the first component; wherein each of the first and second components (14, 12) comprises an end-user component; wherein the second component comprises: means for performing a discovery process for discovering one or more components that are present on the network; means for obtaining one or more proxy objects from discovered components; and means for inspecting a proxy object to determine data transfer capabilities of the discovered component and one or more native data types for the discovered component; means for performing a discovery process for discovering one or more components that are present on the network; means for obtaining one or more proxy objects from discovered components; and means for inspecting a proxy object to determine data transfer capabilities of the discovered component and one or more native data types for the discovered component; wherein the first component comprises: an interface system configured to communicate with the second component and, in response to instructions from the second component, to obtain a data type handler object (500) and to access at least one interface provided by the data type handler object (500), wherein the interface provided by the data type handler object (500) comprises mobile code for handling at least one type of data that otherwise cannot be read or understood by the first component; and a security system configured to access the interface provided by the data type handler object (500) to obtain a data transfer security mechanism and to implement the data transfer security mechanism; and an interface system configured to communicate with the second component and, in response to instructions from the second component, to obtain a data type handler object (500) and to access at least one interface provided by the data type handler object (500), wherein the interface provided by the data type handler object (500) comprises mobile code for handling at least one type of data that otherwise cannot be read or understood by the first component; and a security system configured to access the interface provided by the data type handler object (500) to obtain a data transfer security mechanism and to implement the data transfer security mechanism; and wherein the interface provided by the data type handler object (500) is employed as a function of data type and security that is applied to the data.