Index: branches/OaaS/HeuristicLab.Services.Hive/3.3/Interfaces/IHiveDao.cs
===================================================================
--- branches/OaaS/HeuristicLab.Services.Hive/3.3/Interfaces/IHiveDao.cs	(revision 8326)
+++ branches/OaaS/HeuristicLab.Services.Hive/3.3/Interfaces/IHiveDao.cs	(revision 9363)
@@ -31,8 +31,12 @@
     DT.Task GetTask(Guid id);
     IEnumerable<DT.Task> GetTasks(Expression<Func<Task, bool>> predicate);
+    IEnumerable<DT.LightweightTask> GetLightweightTasks(Expression<Func<Task, bool>> predicate);
+    IEnumerable<DT.LightweightTask> GetLightweightTasksWithoutStateLog(Expression<Func<Task, bool>> predicate);
     Guid AddTask(DT.Task dto);
+    void UpdateTaskAndPlugins(DT.Task dto);
+    void UpdateTaskAndStateLogs(DT.Task dto);
     void UpdateTask(DT.Task dto);
     void DeleteTask(Guid id);
-    IEnumerable<DT.Task> GetWaitingTasks(DT.Slave slave, int count);
+    IEnumerable<TaskInfoForScheduler> GetWaitingTasks(DT.Slave slave);
     IEnumerable<DT.Task> GetParentTasks(IEnumerable<Guid> resourceIds, int count, bool finished);
     DT.Task UpdateTaskState(Guid taskId, TaskState taskState, Guid? slaveId, Guid? userId, string exception);
@@ -58,4 +62,5 @@
     DT.Job GetJob(Guid id);
     IEnumerable<DT.Job> GetJobs(Expression<Func<Job, bool>> predicate);
+    IEnumerable<JobInfoForScheduler> GetJobInfoForScheduler(Expression<Func<Job, bool>> predicate);
     Guid AddJob(DT.Job dto);
     void UpdateJob(DT.Job dto);
@@ -110,5 +115,5 @@
     void UpdateResource(DT.Resource dto);
     void DeleteResource(Guid id);
-    void AssignJobToResource(Guid jobId, Guid resourceId);
+    void AssignJobToResource(Guid taskId, IEnumerable<Guid> resourceIds);
     IEnumerable<DT.Resource> GetAssignedResources(Guid jobId);
     IEnumerable<DT.Resource> GetParentResources(Guid resourceId);
@@ -145,4 +150,8 @@
 
     #region Statistics Methods
+    Dictionary<Guid, int> GetWaitingTasksByUser();
+    Dictionary<Guid, int> GetWaitingTasksByUserForResources(List<Guid> resourceIds);
+    Dictionary<Guid, int> GetCalculatingTasksByUser();
+    Dictionary<Guid, int> GetCalculatingTasksByUserForResources(List<Guid> resourceIds);
     DT.Statistics GetStatistic(Guid id);
     IEnumerable<DT.Statistics> GetStatistics(Expression<Func<Statistics, bool>> predicate);
@@ -151,4 +160,9 @@
     List<DT.UserStatistics> GetUserStatistics();
     #endregion
+
+    #region UserPriority Methods
+    IEnumerable<DT.UserPriority> GetUserPriorities(Expression<Func<UserPriority, bool>> predicate);
+    void EnqueueUserPriority(DT.UserPriority userPriority);
+    #endregion
   }
 }
Index: branches/OaaS/HeuristicLab.Services.Hive/3.3/Interfaces/IServiceLocator.cs
===================================================================
--- branches/OaaS/HeuristicLab.Services.Hive/3.3/Interfaces/IServiceLocator.cs	(revision 8326)
+++ branches/OaaS/HeuristicLab.Services.Hive/3.3/Interfaces/IServiceLocator.cs	(revision 9363)
@@ -31,4 +31,5 @@
     Access.IUserManager UserManager { get; }
     HeartbeatManager HeartbeatManager { get; }
+    ITaskScheduler TaskScheduler { get; }
   }
 }
Index: branches/OaaS/HeuristicLab.Services.Hive/3.3/Interfaces/ITaskScheduler.cs
===================================================================
--- branches/OaaS/HeuristicLab.Services.Hive/3.3/Interfaces/ITaskScheduler.cs	(revision 9363)
+++ branches/OaaS/HeuristicLab.Services.Hive/3.3/Interfaces/ITaskScheduler.cs	(revision 9363)
@@ -0,0 +1,29 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using HeuristicLab.Services.Hive.DataTransfer;
+
+namespace HeuristicLab.Services.Hive {
+  public interface ITaskScheduler {
+    IEnumerable<TaskInfoForScheduler> Schedule(IEnumerable<TaskInfoForScheduler> tasks, int count = 1);
+  }
+}
