diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/component/impl/DssComponent.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/component/impl/DssComponent.java
index a1cfe0bcefbe12e3edf6addcbd549763ac581ff5..91e47e190045379693b532ae419f9d84964adffc 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/component/impl/DssComponent.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/component/impl/DssComponent.java
@@ -30,7 +30,7 @@ import ch.systemsx.cisd.openbis.dss.component.IDataSetDss;
 import ch.systemsx.cisd.openbis.dss.component.IDssComponent;
 import ch.systemsx.cisd.openbis.dss.rpc.client.DssServiceRpcFactory;
 import ch.systemsx.cisd.openbis.dss.rpc.client.IDssServiceRpcFactory;
-import ch.systemsx.cisd.openbis.dss.rpc.shared.DssServiceRpcInterface;
+import ch.systemsx.cisd.openbis.dss.rpc.shared.RpcServiceInterfaceDTO;
 import ch.systemsx.cisd.openbis.dss.rpc.shared.FileInfoDssDTO;
 import ch.systemsx.cisd.openbis.dss.rpc.shared.IDssServiceRpcGeneric;
 import ch.systemsx.cisd.openbis.generic.shared.IETLLIMSService;
@@ -301,9 +301,9 @@ class AuthenticatedState extends AbstractDssComponentState
     private IDssServiceRpcGeneric basicGetDssServiceForUrl(String serverURL)
     {
         IDssServiceRpcGeneric dssService = null;
-        DssServiceRpcInterface[] ifaces =
+        RpcServiceInterfaceDTO[] ifaces =
                 dssServiceFactory.getSupportedInterfaces(serverURL, false);
-        for (DssServiceRpcInterface iface : ifaces)
+        for (RpcServiceInterfaceDTO iface : ifaces)
         {
             if (V1_INTERFACE_NAME.equals(iface.getInterfaceName()))
             {
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java
index f5eb185e1dd4d588d925daa77e560e3a7f4b1367..37382692bf559269449f4be14462407990d30fff 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java
@@ -53,7 +53,7 @@ import ch.systemsx.cisd.openbis.dss.generic.server.ConfigParameters.PluginServle
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil;
-import ch.systemsx.cisd.openbis.dss.rpc.shared.DssServiceRpcInterface;
+import ch.systemsx.cisd.openbis.dss.rpc.shared.RpcServiceInterfaceDTO;
 import ch.systemsx.cisd.openbis.generic.shared.IServer;
 
 /**
@@ -222,13 +222,13 @@ public class DataStoreServer
                 ServiceProvider.getDssServiceRpcNameServer();
         DssServiceRpcNameServer rpcNameServer =
                 (DssServiceRpcNameServer) nameServiceExporter.getService();
-        DssServiceRpcInterface v1Interface = new DssServiceRpcInterface();
+        RpcServiceInterfaceDTO v1Interface = new RpcServiceInterfaceDTO();
         v1Interface.setInterfaceName("V1");
         v1Interface.setInterfaceUrlSuffix("/rpc/v1");
         rpcNameServer.addSupportedInterface(v1Interface);
 
         String nameServerPath = "/" + DATA_STORE_SERVER_RPC_SERVICE_NAME;
-        DssServiceRpcInterface nameServerInterface = new DssServiceRpcInterface();
+        RpcServiceInterfaceDTO nameServerInterface = new RpcServiceInterfaceDTO();
         nameServerInterface.setInterfaceName("NameServer");
         nameServerInterface.setInterfaceUrlSuffix("/rpc");
         rpcNameServer.addSupportedInterface(nameServerInterface);
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcNameServer.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcNameServer.java
index c05d085ed866eb47a2d4fc52d339914189fb1551..5e94929e45bcd898e90f01db32b187123a9dc2b6 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcNameServer.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcNameServer.java
@@ -22,8 +22,8 @@ import org.apache.log4j.Logger;
 
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.openbis.dss.rpc.shared.DssServiceRpcInterface;
-import ch.systemsx.cisd.openbis.dss.rpc.shared.IDssServiceRpcNameServer;
+import ch.systemsx.cisd.openbis.dss.rpc.shared.RpcServiceInterfaceDTO;
+import ch.systemsx.cisd.openbis.dss.rpc.shared.IRpcServiceNameServer;
 
 /**
  * Implementation of the IDssServiceRpcNameServer interface which registry for accessing the RPC
@@ -31,21 +31,21 @@ import ch.systemsx.cisd.openbis.dss.rpc.shared.IDssServiceRpcNameServer;
  * 
  * @author Chandrasekhar Ramakrishnan
  */
-public class DssServiceRpcNameServer implements IDssServiceRpcNameServer
+public class DssServiceRpcNameServer implements IRpcServiceNameServer
 {
-    private final ArrayList<DssServiceRpcInterface> supportedInterfaces;
+    private final ArrayList<RpcServiceInterfaceDTO> supportedInterfaces;
 
     static private final Logger operationLog =
             LogFactory.getLogger(LogCategory.OPERATION, DssServiceRpcNameServer.class);
 
     DssServiceRpcNameServer()
     {
-        supportedInterfaces = new ArrayList<DssServiceRpcInterface>();
+        supportedInterfaces = new ArrayList<RpcServiceInterfaceDTO>();
     }
 
-    public DssServiceRpcInterface[] getSupportedInterfaces()
+    public RpcServiceInterfaceDTO[] getSupportedInterfaces()
     {
-        DssServiceRpcInterface[] ifaces = new DssServiceRpcInterface[supportedInterfaces.size()];
+        RpcServiceInterfaceDTO[] ifaces = new RpcServiceInterfaceDTO[supportedInterfaces.size()];
         return supportedInterfaces.toArray(ifaces);
     }
 
@@ -62,7 +62,7 @@ public class DssServiceRpcNameServer implements IDssServiceRpcNameServer
     /**
      * Package-visible method for configuring the registry
      */
-    void addSupportedInterface(DssServiceRpcInterface iface)
+    void addSupportedInterface(RpcServiceInterfaceDTO iface)
     {
         supportedInterfaces.add(iface);
         operationLog.info("Registered RPC Interface " + iface.toString());
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/client/DssServiceRpcFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/client/DssServiceRpcFactory.java
index e610283e9038f9ed32025a58f9e6ec2e09c7cec7..78db076c7d59cf6390e8e06eb3b16aa7f3add177 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/client/DssServiceRpcFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/client/DssServiceRpcFactory.java
@@ -30,9 +30,9 @@ import com.marathon.util.spring.StreamSupportingHttpInvokerProxyFactoryBean;
 
 import ch.systemsx.cisd.common.spring.HttpInvokerUtils;
 import ch.systemsx.cisd.common.ssl.SslCertificateHelper;
-import ch.systemsx.cisd.openbis.dss.rpc.shared.DssServiceRpcInterface;
+import ch.systemsx.cisd.openbis.dss.rpc.shared.RpcServiceInterfaceDTO;
 import ch.systemsx.cisd.openbis.dss.rpc.shared.IDssServiceRpc;
-import ch.systemsx.cisd.openbis.dss.rpc.shared.IDssServiceRpcNameServer;
+import ch.systemsx.cisd.openbis.dss.rpc.shared.IRpcServiceNameServer;
 
 /**
  * Client-side factory for DssServiceRpc objects.
@@ -47,24 +47,24 @@ public class DssServiceRpcFactory implements IDssServiceRpcFactory
 
     private static final String NAME_SERVER_SUFFIX = "/rpc";
 
-    public DssServiceRpcInterface[] getSupportedInterfaces(String serverURL,
+    public RpcServiceInterfaceDTO[] getSupportedInterfaces(String serverURL,
             boolean getServerCertificateFromServer) throws IncompatibleAPIVersionsException
     {
         // We assume the location of the name server follows the convention
         String nameServerURL = serverURL + NAME_SERVER_SUFFIX;
-        Class<IDssServiceRpcNameServer> clazz = IDssServiceRpcNameServer.class;
+        Class<IRpcServiceNameServer> clazz = IRpcServiceNameServer.class;
         if (getServerCertificateFromServer)
         {
             new SslCertificateHelper(nameServerURL, getConfigDirectory(), "dss").setUpKeyStore();
         }
 
-        IDssServiceRpcNameServer nameServer =
-                new ServiceProxyBuilder<IDssServiceRpcNameServer>(nameServerURL, clazz,
+        IRpcServiceNameServer nameServer =
+                new ServiceProxyBuilder<IRpcServiceNameServer>(nameServerURL, clazz,
                         SERVER_TIMEOUT_MIN, 1).getServiceInterface();
         return nameServer.getSupportedInterfaces();
     }
 
-    public <T extends IDssServiceRpc> T getService(DssServiceRpcInterface iface,
+    public <T extends IDssServiceRpc> T getService(RpcServiceInterfaceDTO iface,
             Class<T> ifaceClazz, String serverURL, boolean getServerCertificateFromServer)
             throws IncompatibleAPIVersionsException
     {
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/client/IDssServiceRpcFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/client/IDssServiceRpcFactory.java
index 345127b8b74a20aa927db17b9fb9610887ef113a..2d5a3eeda868ce1555eb99341bd58414628c8b69 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/client/IDssServiceRpcFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/client/IDssServiceRpcFactory.java
@@ -16,7 +16,7 @@
 
 package ch.systemsx.cisd.openbis.dss.rpc.client;
 
-import ch.systemsx.cisd.openbis.dss.rpc.shared.DssServiceRpcInterface;
+import ch.systemsx.cisd.openbis.dss.rpc.shared.RpcServiceInterfaceDTO;
 import ch.systemsx.cisd.openbis.dss.rpc.shared.IDssServiceRpc;
 
 /**
@@ -37,13 +37,13 @@ public interface IDssServiceRpcFactory
      *            shouldGetServerCertificateFromServer is true, the factory will retrieve the SSL
      *            certificate from the server.
      */
-    public abstract DssServiceRpcInterface[] getSupportedInterfaces(String serverURL,
+    public abstract RpcServiceInterfaceDTO[] getSupportedInterfaces(String serverURL,
             boolean shouldGetServerCertificateFromServer) throws IncompatibleAPIVersionsException;
 
     /**
      * Get get RPC service interface specified by <code>iface</code>.
      */
-    public abstract <T extends IDssServiceRpc> T getService(DssServiceRpcInterface iface,
+    public abstract <T extends IDssServiceRpc> T getService(RpcServiceInterfaceDTO iface,
             Class<T> ifaceClazz, String serverURL, boolean getServerCertificateFromServer)
             throws IncompatibleAPIVersionsException;
 }
\ No newline at end of file
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/DssServiceRpcInterface.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/DssServiceRpcInterface.java
deleted file mode 100644
index 845bf29615a51961961c91d00941828a0d59aa3c..0000000000000000000000000000000000000000
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/DssServiceRpcInterface.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 2010 ETH Zuerich, CISD
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package ch.systemsx.cisd.openbis.dss.rpc.shared;
-
-import java.io.Serializable;
-
-/**
- * Describes an RPC interface supported by the data store server.
- * 
- * @author Chandrasekhar Ramakrishnan
- */
-public class DssServiceRpcInterface implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-
-    private String interfaceName;
-
-    private String interfaceUrlSuffix;
-
-    /**
-     * The name of this interface used for identification.
-     */
-    public String getInterfaceName()
-    {
-        return interfaceName;
-    }
-
-    public void setInterfaceName(String interfaceName)
-    {
-        this.interfaceName = interfaceName;
-    }
-
-    /**
-     * The suffix added to the DSS URL to produce the URL for this interface. Used by a service
-     * factory to create a proxy to the service.
-     */
-    public String getInterfaceUrlSuffix()
-    {
-        return interfaceUrlSuffix;
-    }
-
-    public void setInterfaceUrlSuffix(String interfaceUrlSuffix)
-    {
-        this.interfaceUrlSuffix = interfaceUrlSuffix;
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuilder sb = new StringBuilder();
-        sb.append("DssServiceRpcInterface[");
-        sb.append(getInterfaceName());
-        sb.append(",");
-        sb.append(getInterfaceUrlSuffix());
-        sb.append("]");
-        return sb.toString();
-    }
-}
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/IDssServiceRpc.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/IDssServiceRpc.java
index 86891432228278cc7328190301c6f56625b4295c..470dcceaaa21a0a05fbff2915775af9075a467d0 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/IDssServiceRpc.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/IDssServiceRpc.java
@@ -21,7 +21,7 @@ package ch.systemsx.cisd.openbis.dss.rpc.shared;
  * <p>
  * This interface defines a minimal interface presented by DSS services. It lets clients determine
  * which version of the interface the server supports. To do anything interesting, clients need to
- * get a reference to a specific interface from the {@link IDssServiceRpcNameServer}.
+ * get a reference to a specific interface from the {@link IRpcServiceNameServer}.
  * 
  * @author Chandrasekhar Ramakrishnan
  */
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/IDssServiceRpcNameServer.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/IRpcServiceNameServer.java
similarity index 86%
rename from datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/IDssServiceRpcNameServer.java
rename to datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/IRpcServiceNameServer.java
index 3512701ad108eb6649884af710ed0075e71fef70..85283be400a21c57fb831daf047059057635f24a 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/IDssServiceRpcNameServer.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/IRpcServiceNameServer.java
@@ -21,7 +21,7 @@ package ch.systemsx.cisd.openbis.dss.rpc.shared;
  * 
  * @author Chandrasekhar Ramakrishnan
  */
-public interface IDssServiceRpcNameServer extends IDssServiceRpc
+public interface IRpcServiceNameServer extends IDssServiceRpc
 {
-    DssServiceRpcInterface[] getSupportedInterfaces();
+    RpcServiceInterfaceDTO[] getSupportedInterfaces();
 }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/RpcServiceInterfaceDTO.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/RpcServiceInterfaceDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..4622ee4ee981750cb35fe5dc257215de3f5108fe
--- /dev/null
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/rpc/shared/RpcServiceInterfaceDTO.java
@@ -0,0 +1,138 @@
+/*
+ * Copyright 2010 ETH Zuerich, CISD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.openbis.dss.rpc.shared;
+
+import java.io.Serializable;
+
+/**
+ * Describes an RPC interface supported by the data store server.
+ * 
+ * @author Chandrasekhar Ramakrishnan
+ */
+public class RpcServiceInterfaceDTO implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    private String interfaceName;
+
+    private String interfaceUrlSuffix;
+
+    private int interfaceMajorVersion;
+
+    private int interfaceMinorVersion;
+
+    public RpcServiceInterfaceDTO()
+    {
+        interfaceName = "Unknown";
+        interfaceUrlSuffix = "unknown";
+        interfaceMajorVersion = 0;
+        interfaceMinorVersion = 0;
+    }
+
+    /**
+     * The name of this interface used for identification.
+     */
+    public String getInterfaceName()
+    {
+        return interfaceName;
+    }
+
+    public void setInterfaceName(String interfaceName)
+    {
+        this.interfaceName = interfaceName;
+    }
+
+    /**
+     * The suffix added to the DSS URL to produce the URL for this interface. Used by a service
+     * factory to create a proxy to the service.
+     */
+    public String getInterfaceUrlSuffix()
+    {
+        return interfaceUrlSuffix;
+    }
+
+    public void setInterfaceUrlSuffix(String interfaceUrlSuffix)
+    {
+        this.interfaceUrlSuffix = interfaceUrlSuffix;
+    }
+
+    /**
+     * The major version of the interface. E.g., an interface with version 2.11 has major version 2.
+     */
+    public int getInterfaceMajorVersion()
+    {
+        return interfaceMajorVersion;
+    }
+
+    public void setInterfaceMajorVersion(int interfaceMajorVersion)
+    {
+        this.interfaceMajorVersion = interfaceMajorVersion;
+    }
+
+    /**
+     * The major version of the interface. E.g., an interface with version 2.11 has minor version
+     * 11.
+     */
+    public int getInterfaceMinorVersion()
+    {
+        return interfaceMinorVersion;
+    }
+
+    public void setInterfaceMinorVersion(int interfaceMinorVersion)
+    {
+        this.interfaceMinorVersion = interfaceMinorVersion;
+    }
+
+    @Override
+    public boolean equals(Object obj)
+    {
+        if (false == obj instanceof RpcServiceInterfaceDTO)
+            return false;
+
+        RpcServiceInterfaceDTO other = (RpcServiceInterfaceDTO) obj;
+        return getInterfaceName().equals(other.getInterfaceName())
+                && getInterfaceUrlSuffix().equals(other.getInterfaceUrlSuffix())
+                && getInterfaceMajorVersion() == other.getInterfaceMajorVersion()
+                && getInterfaceMinorVersion() == other.getInterfaceMinorVersion();
+    }
+
+    @Override
+    public int hashCode()
+    {
+        int hash = getInterfaceName().hashCode();
+        hash = hash * 31 + getInterfaceUrlSuffix().hashCode();
+        hash = hash * 31 + getInterfaceMajorVersion();
+        hash = hash * 31 + getInterfaceMinorVersion();
+        return hash;
+    }
+
+    @Override
+    public String toString()
+    {
+        StringBuilder sb = new StringBuilder();
+        sb.append("RpcServiceInterface[");
+        sb.append(getInterfaceName());
+        sb.append(",");
+        sb.append(getInterfaceUrlSuffix());
+        sb.append(",v.");
+        sb.append(getInterfaceMajorVersion());
+        sb.append(".");
+        sb.append(getInterfaceMinorVersion());
+        sb.append("]");
+        return sb.toString();
+    }
+}
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/component/impl/DssComponentTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/component/impl/DssComponentTest.java
index cb66e4805aec17e70e96dd1680e04f2ad135647f..12c46e57cc63d6a535540338dfcf0d5730b4bddb 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/component/impl/DssComponentTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/component/impl/DssComponentTest.java
@@ -33,7 +33,7 @@ import org.testng.annotations.Test;
 import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
 import ch.systemsx.cisd.openbis.dss.component.IDataSetDss;
 import ch.systemsx.cisd.openbis.dss.rpc.client.IDssServiceRpcFactory;
-import ch.systemsx.cisd.openbis.dss.rpc.shared.DssServiceRpcInterface;
+import ch.systemsx.cisd.openbis.dss.rpc.shared.RpcServiceInterfaceDTO;
 import ch.systemsx.cisd.openbis.dss.rpc.shared.FileInfoDssDTO;
 import ch.systemsx.cisd.openbis.dss.rpc.shared.FileInfoDssBuilder;
 import ch.systemsx.cisd.openbis.dss.rpc.shared.IDssServiceRpcGeneric;
@@ -158,8 +158,8 @@ public class DssComponentTest extends AbstractFileSystemTestCase
         final FileInfoDssDTO[] fileInfos = new FileInfoDssDTO[list.size()];
         list.toArray(fileInfos);
 
-        final DssServiceRpcInterface[] ifaces = new DssServiceRpcInterface[1];
-        final DssServiceRpcInterface iface = new DssServiceRpcInterface();
+        final RpcServiceInterfaceDTO[] ifaces = new RpcServiceInterfaceDTO[1];
+        final RpcServiceInterfaceDTO iface = new RpcServiceInterfaceDTO();
         iface.setInterfaceName("V1");
         iface.setInterfaceUrlSuffix("/rpc/v1");
         ifaces[0] = iface;
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/component/impl/RpcServiceInterfaceTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/component/impl/RpcServiceInterfaceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..eac66db9f9b86c91fa2be77d412486967e78d6ff
--- /dev/null
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/component/impl/RpcServiceInterfaceTest.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2010 ETH Zuerich, CISD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.openbis.dss.component.impl;
+
+import org.testng.AssertJUnit;
+import org.testng.annotations.Test;
+
+import ch.systemsx.cisd.openbis.dss.rpc.shared.RpcServiceInterfaceDTO;
+
+/**
+ * @author Chandrasekhar Ramakrishnan
+ */
+public class RpcServiceInterfaceTest extends AssertJUnit
+{
+    @Test
+    public void testToString()
+    {
+        final RpcServiceInterfaceDTO iface = new RpcServiceInterfaceDTO();
+        iface.setInterfaceName("DSS Generic");
+        iface.setInterfaceUrlSuffix("/rpc/dss-generic/v1");
+        iface.setInterfaceMajorVersion(1);
+        iface.setInterfaceMinorVersion(7);
+        assertEquals("RpcServiceInterface[DSS Generic,/rpc/dss-generic/v1,v.1.7]", iface.toString());
+    }
+
+    @Test
+    public void testEquality()
+    {
+        final int majorVersion = (int) (Math.random() * 10);
+        final int minorVersion = (int) (Math.random() * 100);
+        final RpcServiceInterfaceDTO iface1 = new RpcServiceInterfaceDTO();
+        iface1.setInterfaceName("DSS Generic");
+        iface1.setInterfaceUrlSuffix("/rpc/dss-generic/v1");
+        iface1.setInterfaceMajorVersion(majorVersion);
+        iface1.setInterfaceMinorVersion(minorVersion);
+
+        final RpcServiceInterfaceDTO iface2 = new RpcServiceInterfaceDTO();
+        iface2.setInterfaceName("DSS Generic");
+        iface2.setInterfaceUrlSuffix("/rpc/dss-generic/v1");
+        iface2.setInterfaceMajorVersion(majorVersion);
+        iface2.setInterfaceMinorVersion(minorVersion);
+
+        assertTrue(iface1 != iface2);
+        assertEquals(iface1, iface2);
+        assertEquals(iface1.hashCode(), iface2.hashCode());
+    }
+}