diff --git a/src/python/dm/cat_web_service/service/impl/datasetSessionControllerImpl.py b/src/python/dm/cat_web_service/service/impl/datasetSessionControllerImpl.py
new file mode 100755
index 0000000000000000000000000000000000000000..dbf5fd6215d7c294be3876c8c98bea2f0dc18eae
--- /dev/null
+++ b/src/python/dm/cat_web_service/service/impl/datasetSessionControllerImpl.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+
+#
+# Implementation for dataset controller.
+#
+
+from dm.common.objects.dmObject import DmObject
+from dm.common.objects.dmObjectManager import DmObjectManager
+from dm.common.mongodb.api.datasetMongoDbApi import DatasetMongoDbApi
+
+class DatasetSessionControllerImpl(DmObjectManager):
+    """ Dataset controller implementation class. """
+
+    def __init__(self):
+        DmObjectManager.__init__(self)
+        self.datasetMongoDbApi = DatasetMongoDbApi()
+
+    def addExperimentDataset(self, datasetInfo):
+        return self.datasetMongoDbApi.addExperimentDataset(datasetInfo)
+
+    def updateExperimentDataset(self, datasetInfo):
+        return self.datasetMongoDbApi.updateExperimentDataset(datasetInfo)
+
+    def updateDatasetById(self, datasetInfo):
+        return self.datasetMongoDbApi.updateDatasetById(datasetInfo)
+
+    def getDatasets(self, queryDict):
+        return self.datasetMongoDbApi.getDatasets(queryDict=queryDict)
+
+    def getExperimentDatasets(self, experimentName, queryDict):
+        return self.datasetMongoDbApi.getExperimentDatasets(experimentName, queryDict=queryDict)
+
+    def getDatasetById(self, id):
+        return self.datasetMongoDbApi.getDatasetById(id)
+
+    def getExperimentDataset(self, experimentName, datasetName):
+        return self.datasetMongoDbApi.getExperimentDataset(experimentName, datasetName)
+
+    def getExperimentDatasetFiles(self, experimentName, datasetName):
+        return self.datasetMongoDbApi.getExperimentDatasetFiles(experimentName, datasetName)
+