Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/HeuristicLab.Hive.Client.Communication.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/HeuristicLab.Hive.Client.Communication.csproj	(revision 992)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/HeuristicLab.Hive.Client.Communication.csproj	(revision 993)
@@ -54,4 +54,7 @@
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
     </Reference>
+    <Reference Include="System.Runtime.Serialization">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
     <Reference Include="System.ServiceModel">
       <RequiredTargetFramework>3.0</RequiredTargetFramework>
@@ -69,10 +72,21 @@
     <Compile Include="CommunicationsPlugin.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ServerProxy.cs" />
+    <Compile Include="Service References\ServerService\Reference.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Reference.svcmap</DependentUpon>
+    </Compile>
     <Compile Include="WcfService.cs" />
   </ItemGroup>
   <ItemGroup>
+    <None Include="app.config" />
     <None Include="HeuristicLab.snk" />
     <None Include="Properties\AssemblyInfo.frame" />
+    <None Include="Service References\ServerService\HeuristicLab.Hive.Contracts.BusinessObjects.xsd" />
+    <None Include="Service References\ServerService\HeuristicLab.Hive.Contracts.xsd" />
+    <None Include="Service References\ServerService\service.wsdl" />
+    <None Include="Service References\ServerService\service.xsd" />
+    <None Include="Service References\ServerService\service1.xsd" />
+    <None Include="Service References\ServerService\System.xsd" />
   </ItemGroup>
   <ItemGroup>
@@ -94,4 +108,26 @@
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <WCFMetadata Include="Service References\" />
+  </ItemGroup>
+  <ItemGroup>
+    <WCFMetadataStorage Include="Service References\ServerService\" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\ServerService\configuration91.svcinfo" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\ServerService\configuration.svcinfo" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Properties\DataSources\HeuristicLab.Hive.Contracts.Response.datasource" />
+    <None Include="Properties\DataSources\HeuristicLab.Hive.Contracts.ResponseHB.datasource" />
+    <None Include="Properties\DataSources\HeuristicLab.Hive.Contracts.ResponseJob.datasource" />
+    <None Include="Properties\DataSources\HeuristicLab.Hive.Contracts.ResponseResultReceived.datasource" />
+    <None Include="Service References\ServerService\Reference.svcmap">
+      <Generator>WCF Proxy Generator</Generator>
+      <LastGenOutput>Reference.cs</LastGenOutput>
+    </None>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.Response.datasource
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.Response.datasource	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.Response.datasource	(revision 993)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="Response" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Hive.Contracts.Response, HeuristicLab.Hive.Contracts-3.2, Version=3.2.0.969, Culture=neutral, PublicKeyToken=ba48961d6f65dcec</TypeInfo>
+</GenericObjectDataSource>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseHB.datasource
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseHB.datasource	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseHB.datasource	(revision 993)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="ResponseHB" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Hive.Contracts.ResponseHB, HeuristicLab.Hive.Contracts-3.2, Version=3.2.0.969, Culture=neutral, PublicKeyToken=ba48961d6f65dcec</TypeInfo>
+</GenericObjectDataSource>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseJob.datasource
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseJob.datasource	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseJob.datasource	(revision 993)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="ResponseJob" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Hive.Contracts.ResponseJob, HeuristicLab.Hive.Contracts-3.2, Version=3.2.0.969, Culture=neutral, PublicKeyToken=ba48961d6f65dcec</TypeInfo>
+</GenericObjectDataSource>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseResultReceived.datasource
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseResultReceived.datasource	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseResultReceived.datasource	(revision 993)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="ResponseResultReceived" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Hive.Contracts.ResponseResultReceived, HeuristicLab.Hive.Contracts-3.2, Version=3.2.0.969, Culture=neutral, PublicKeyToken=ba48961d6f65dcec</TypeInfo>
+</GenericObjectDataSource>
Index: unk/sources/HeuristicLab.Hive.Client.Communication/ServerProxy.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/ServerProxy.cs	(revision 992)
+++ 	(revision )
@@ -1,466 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace HeuristicLab.Hive.Client.Communication {
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
-  [System.ServiceModel.ServiceContractAttribute(ConfigurationName = "IClientCommunicator")]
-  public interface IClientCommunicator {
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IClientCommunicator/Login", ReplyAction = "http://tempuri.org/IClientCommunicator/LoginResponse")]
-    HeuristicLab.Hive.Contracts.Response Login(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IClientCommunicator/Login", ReplyAction = "http://tempuri.org/IClientCommunicator/LoginResponse")]
-    System.IAsyncResult BeginLogin(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo, System.AsyncCallback callback, object asyncState);
-
-    HeuristicLab.Hive.Contracts.Response EndLogin(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IClientCommunicator/SendHeartBeat", ReplyAction = "http://tempuri.org/IClientCommunicator/SendHeartBeatResponse")]
-    HeuristicLab.Hive.Contracts.ResponseHB SendHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IClientCommunicator/SendHeartBeat", ReplyAction = "http://tempuri.org/IClientCommunicator/SendHeartBeatResponse")]
-    System.IAsyncResult BeginSendHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData, System.AsyncCallback callback, object asyncState);
-
-    HeuristicLab.Hive.Contracts.ResponseHB EndSendHeartBeat(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IClientCommunicator/PullJob", ReplyAction = "http://tempuri.org/IClientCommunicator/PullJobResponse")]
-    HeuristicLab.Hive.Contracts.ResponseJob PullJob(System.Guid clientId);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IClientCommunicator/PullJob", ReplyAction = "http://tempuri.org/IClientCommunicator/PullJobResponse")]
-    System.IAsyncResult BeginPullJob(System.Guid clientId, System.AsyncCallback callback, object asyncState);
-
-    HeuristicLab.Hive.Contracts.ResponseJob EndPullJob(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IClientCommunicator/SendJobResult", ReplyAction = "http://tempuri.org/IClientCommunicator/SendJobResultResponse")]
-    HeuristicLab.Hive.Contracts.ResponseResultReceived SendJobResult(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IClientCommunicator/SendJobResult", ReplyAction = "http://tempuri.org/IClientCommunicator/SendJobResultResponse")]
-    System.IAsyncResult BeginSendJobResult(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished, System.AsyncCallback callback, object asyncState);
-
-    HeuristicLab.Hive.Contracts.ResponseResultReceived EndSendJobResult(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IClientCommunicator/Logout", ReplyAction = "http://tempuri.org/IClientCommunicator/LogoutResponse")]
-    HeuristicLab.Hive.Contracts.Response Logout(System.Guid clientId);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IClientCommunicator/Logout", ReplyAction = "http://tempuri.org/IClientCommunicator/LogoutResponse")]
-    System.IAsyncResult BeginLogout(System.Guid clientId, System.AsyncCallback callback, object asyncState);
-
-    HeuristicLab.Hive.Contracts.Response EndLogout(System.IAsyncResult result);
-  }
-
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
-  public interface IClientCommunicatorChannel : IClientCommunicator, System.ServiceModel.IClientChannel {
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
-  public partial class LoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    private object[] results;
-
-    public LoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
-      base(exception, cancelled, userState) {
-      this.results = results;
-    }
-
-    public HeuristicLab.Hive.Contracts.Response Result {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return ((HeuristicLab.Hive.Contracts.Response)(this.results[0]));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
-  public partial class SendHeartBeatCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    private object[] results;
-
-    public SendHeartBeatCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
-      base(exception, cancelled, userState) {
-      this.results = results;
-    }
-
-    public HeuristicLab.Hive.Contracts.ResponseHB Result {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return ((HeuristicLab.Hive.Contracts.ResponseHB)(this.results[0]));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
-  public partial class PullJobCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    private object[] results;
-
-    public PullJobCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
-      base(exception, cancelled, userState) {
-      this.results = results;
-    }
-
-    public HeuristicLab.Hive.Contracts.ResponseJob Result {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return ((HeuristicLab.Hive.Contracts.ResponseJob)(this.results[0]));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
-  public partial class SendJobResultCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    private object[] results;
-
-    public SendJobResultCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
-      base(exception, cancelled, userState) {
-      this.results = results;
-    }
-
-    public HeuristicLab.Hive.Contracts.ResponseResultReceived Result {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return ((HeuristicLab.Hive.Contracts.ResponseResultReceived)(this.results[0]));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
-  public partial class LogoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    private object[] results;
-
-    public LogoutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
-      base(exception, cancelled, userState) {
-      this.results = results;
-    }
-
-    public HeuristicLab.Hive.Contracts.Response Result {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return ((HeuristicLab.Hive.Contracts.Response)(this.results[0]));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
-  public partial class ClientCommunicatorClient : System.ServiceModel.ClientBase<IClientCommunicator>, IClientCommunicator {
-
-    private BeginOperationDelegate onBeginLoginDelegate;
-
-    private EndOperationDelegate onEndLoginDelegate;
-
-    private System.Threading.SendOrPostCallback onLoginCompletedDelegate;
-
-    private BeginOperationDelegate onBeginSendHeartBeatDelegate;
-
-    private EndOperationDelegate onEndSendHeartBeatDelegate;
-
-    private System.Threading.SendOrPostCallback onSendHeartBeatCompletedDelegate;
-
-    private BeginOperationDelegate onBeginPullJobDelegate;
-
-    private EndOperationDelegate onEndPullJobDelegate;
-
-    private System.Threading.SendOrPostCallback onPullJobCompletedDelegate;
-
-    private BeginOperationDelegate onBeginSendJobResultDelegate;
-
-    private EndOperationDelegate onEndSendJobResultDelegate;
-
-    private System.Threading.SendOrPostCallback onSendJobResultCompletedDelegate;
-
-    private BeginOperationDelegate onBeginLogoutDelegate;
-
-    private EndOperationDelegate onEndLogoutDelegate;
-
-    private System.Threading.SendOrPostCallback onLogoutCompletedDelegate;
-
-    public ClientCommunicatorClient() {
-    }
-
-    public ClientCommunicatorClient(string endpointConfigurationName) :
-      base(endpointConfigurationName) {
-    }
-
-    public ClientCommunicatorClient(string endpointConfigurationName, string remoteAddress) :
-      base(endpointConfigurationName, remoteAddress) {
-    }
-
-    public ClientCommunicatorClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
-      base(endpointConfigurationName, remoteAddress) {
-    }
-
-    public ClientCommunicatorClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
-      base(binding, remoteAddress) {
-    }
-
-    public event System.EventHandler<LoginCompletedEventArgs> LoginCompleted;
-
-    public event System.EventHandler<SendHeartBeatCompletedEventArgs> SendHeartBeatCompleted;
-
-    public event System.EventHandler<PullJobCompletedEventArgs> PullJobCompleted;
-
-    public event System.EventHandler<SendJobResultCompletedEventArgs> SendJobResultCompleted;
-
-    public event System.EventHandler<LogoutCompletedEventArgs> LogoutCompleted;
-
-    public HeuristicLab.Hive.Contracts.Response Login(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo) {
-      return base.Channel.Login(clientInfo);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginLogin(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginLogin(clientInfo, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public HeuristicLab.Hive.Contracts.Response EndLogin(System.IAsyncResult result) {
-      return base.Channel.EndLogin(result);
-    }
-
-    private System.IAsyncResult OnBeginLogin(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo = ((HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo)(inValues[0]));
-      return this.BeginLogin(clientInfo, callback, asyncState);
-    }
-
-    private object[] OnEndLogin(System.IAsyncResult result) {
-      HeuristicLab.Hive.Contracts.Response retVal = this.EndLogin(result);
-      return new object[] {
-                retVal};
-    }
-
-    private void OnLoginCompleted(object state) {
-      if ((this.LoginCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.LoginCompleted(this, new LoginCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void LoginAsync(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo) {
-      this.LoginAsync(clientInfo, null);
-    }
-
-    public void LoginAsync(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo, object userState) {
-      if ((this.onBeginLoginDelegate == null)) {
-        this.onBeginLoginDelegate = new BeginOperationDelegate(this.OnBeginLogin);
-      }
-      if ((this.onEndLoginDelegate == null)) {
-        this.onEndLoginDelegate = new EndOperationDelegate(this.OnEndLogin);
-      }
-      if ((this.onLoginCompletedDelegate == null)) {
-        this.onLoginCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnLoginCompleted);
-      }
-      base.InvokeAsync(this.onBeginLoginDelegate, new object[] {
-                    clientInfo}, this.onEndLoginDelegate, this.onLoginCompletedDelegate, userState);
-    }
-
-    public HeuristicLab.Hive.Contracts.ResponseHB SendHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData) {
-      return base.Channel.SendHeartBeat(hbData);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginSendHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginSendHeartBeat(hbData, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public HeuristicLab.Hive.Contracts.ResponseHB EndSendHeartBeat(System.IAsyncResult result) {
-      return base.Channel.EndSendHeartBeat(result);
-    }
-
-    private System.IAsyncResult OnBeginSendHeartBeat(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData = ((HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData)(inValues[0]));
-      return this.BeginSendHeartBeat(hbData, callback, asyncState);
-    }
-
-    private object[] OnEndSendHeartBeat(System.IAsyncResult result) {
-      HeuristicLab.Hive.Contracts.ResponseHB retVal = this.EndSendHeartBeat(result);
-      return new object[] {
-                retVal};
-    }
-
-    private void OnSendHeartBeatCompleted(object state) {
-      if ((this.SendHeartBeatCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.SendHeartBeatCompleted(this, new SendHeartBeatCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void SendHeartBeatAsync(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData) {
-      this.SendHeartBeatAsync(hbData, null);
-    }
-
-    public void SendHeartBeatAsync(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData, object userState) {
-      if ((this.onBeginSendHeartBeatDelegate == null)) {
-        this.onBeginSendHeartBeatDelegate = new BeginOperationDelegate(this.OnBeginSendHeartBeat);
-      }
-      if ((this.onEndSendHeartBeatDelegate == null)) {
-        this.onEndSendHeartBeatDelegate = new EndOperationDelegate(this.OnEndSendHeartBeat);
-      }
-      if ((this.onSendHeartBeatCompletedDelegate == null)) {
-        this.onSendHeartBeatCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSendHeartBeatCompleted);
-      }
-      base.InvokeAsync(this.onBeginSendHeartBeatDelegate, new object[] {
-                    hbData}, this.onEndSendHeartBeatDelegate, this.onSendHeartBeatCompletedDelegate, userState);
-    }
-
-    public HeuristicLab.Hive.Contracts.ResponseJob PullJob(System.Guid clientId) {
-      return base.Channel.PullJob(clientId);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginPullJob(System.Guid clientId, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginPullJob(clientId, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public HeuristicLab.Hive.Contracts.ResponseJob EndPullJob(System.IAsyncResult result) {
-      return base.Channel.EndPullJob(result);
-    }
-
-    private System.IAsyncResult OnBeginPullJob(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      System.Guid clientId = ((System.Guid)(inValues[0]));
-      return this.BeginPullJob(clientId, callback, asyncState);
-    }
-
-    private object[] OnEndPullJob(System.IAsyncResult result) {
-      HeuristicLab.Hive.Contracts.ResponseJob retVal = this.EndPullJob(result);
-      return new object[] {
-                retVal};
-    }
-
-    private void OnPullJobCompleted(object state) {
-      if ((this.PullJobCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.PullJobCompleted(this, new PullJobCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void PullJobAsync(System.Guid clientId) {
-      this.PullJobAsync(clientId, null);
-    }
-
-    public void PullJobAsync(System.Guid clientId, object userState) {
-      if ((this.onBeginPullJobDelegate == null)) {
-        this.onBeginPullJobDelegate = new BeginOperationDelegate(this.OnBeginPullJob);
-      }
-      if ((this.onEndPullJobDelegate == null)) {
-        this.onEndPullJobDelegate = new EndOperationDelegate(this.OnEndPullJob);
-      }
-      if ((this.onPullJobCompletedDelegate == null)) {
-        this.onPullJobCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnPullJobCompleted);
-      }
-      base.InvokeAsync(this.onBeginPullJobDelegate, new object[] {
-                    clientId}, this.onEndPullJobDelegate, this.onPullJobCompletedDelegate, userState);
-    }
-
-    public HeuristicLab.Hive.Contracts.ResponseResultReceived SendJobResult(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished) {
-      return base.Channel.SendJobResult(Result, finished);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginSendJobResult(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginSendJobResult(Result, finished, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public HeuristicLab.Hive.Contracts.ResponseResultReceived EndSendJobResult(System.IAsyncResult result) {
-      return base.Channel.EndSendJobResult(result);
-    }
-
-    private System.IAsyncResult OnBeginSendJobResult(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result = ((HeuristicLab.Hive.Contracts.BusinessObjects.JobResult)(inValues[0]));
-      bool finished = ((bool)(inValues[1]));
-      return this.BeginSendJobResult(Result, finished, callback, asyncState);
-    }
-
-    private object[] OnEndSendJobResult(System.IAsyncResult result) {
-      HeuristicLab.Hive.Contracts.ResponseResultReceived retVal = this.EndSendJobResult(result);
-      return new object[] {
-                retVal};
-    }
-
-    private void OnSendJobResultCompleted(object state) {
-      if ((this.SendJobResultCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.SendJobResultCompleted(this, new SendJobResultCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void SendJobResultAsync(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished) {
-      this.SendJobResultAsync(Result, finished, null);
-    }
-
-    public void SendJobResultAsync(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished, object userState) {
-      if ((this.onBeginSendJobResultDelegate == null)) {
-        this.onBeginSendJobResultDelegate = new BeginOperationDelegate(this.OnBeginSendJobResult);
-      }
-      if ((this.onEndSendJobResultDelegate == null)) {
-        this.onEndSendJobResultDelegate = new EndOperationDelegate(this.OnEndSendJobResult);
-      }
-      if ((this.onSendJobResultCompletedDelegate == null)) {
-        this.onSendJobResultCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSendJobResultCompleted);
-      }
-      base.InvokeAsync(this.onBeginSendJobResultDelegate, new object[] {
-                    Result,
-                    finished}, this.onEndSendJobResultDelegate, this.onSendJobResultCompletedDelegate, userState);
-    }
-
-    public HeuristicLab.Hive.Contracts.Response Logout(System.Guid clientId) {
-      return base.Channel.Logout(clientId);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginLogout(System.Guid clientId, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginLogout(clientId, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public HeuristicLab.Hive.Contracts.Response EndLogout(System.IAsyncResult result) {
-      return base.Channel.EndLogout(result);
-    }
-
-    private System.IAsyncResult OnBeginLogout(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      System.Guid clientId = ((System.Guid)(inValues[0]));
-      return this.BeginLogout(clientId, callback, asyncState);
-    }
-
-    private object[] OnEndLogout(System.IAsyncResult result) {
-      HeuristicLab.Hive.Contracts.Response retVal = this.EndLogout(result);
-      return new object[] {
-                retVal};
-    }
-
-    private void OnLogoutCompleted(object state) {
-      if ((this.LogoutCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.LogoutCompleted(this, new LogoutCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void LogoutAsync(System.Guid clientId) {
-      this.LogoutAsync(clientId, null);
-    }
-
-    public void LogoutAsync(System.Guid clientId, object userState) {
-      if ((this.onBeginLogoutDelegate == null)) {
-        this.onBeginLogoutDelegate = new BeginOperationDelegate(this.OnBeginLogout);
-      }
-      if ((this.onEndLogoutDelegate == null)) {
-        this.onEndLogoutDelegate = new EndOperationDelegate(this.OnEndLogout);
-      }
-      if ((this.onLogoutCompletedDelegate == null)) {
-        this.onLogoutCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnLogoutCompleted);
-      }
-      base.InvokeAsync(this.onBeginLogoutDelegate, new object[] {
-                    clientId}, this.onEndLogoutDelegate, this.onLogoutCompletedDelegate, userState);
-    }
-  }
-}
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/HeuristicLab.Hive.Contracts.BusinessObjects.xsd
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/HeuristicLab.Hive.Contracts.BusinessObjects.xsd	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/HeuristicLab.Hive.Contracts.BusinessObjects.xsd	(revision 993)
@@ -0,0 +1,64 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
+  <xs:import namespace="http://schemas.datacontract.org/2004/07/System" />
+  <xs:complexType name="ClientInfo">
+    <xs:complexContent mixed="false">
+      <xs:extension base="tns:Resource">
+        <xs:sequence>
+          <xs:element minOccurs="0" name="ClientId" type="ser:guid" />
+          <xs:element minOccurs="0" name="ClientInfoId" type="xs:long" />
+          <xs:element minOccurs="0" name="Config" nillable="true" type="tns:ClientConfig" />
+          <xs:element minOccurs="0" name="CpuSpeedPerCore" type="xs:int" />
+          <xs:element minOccurs="0" name="Login" type="xs:dateTime" />
+          <xs:element minOccurs="0" name="Memory" type="xs:int" />
+          <xs:element minOccurs="0" name="NrOfCores" type="xs:int" />
+          <xs:element minOccurs="0" name="State" type="tns:State" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="ClientInfo" nillable="true" type="tns:ClientInfo" />
+  <xs:complexType name="Resource">
+    <xs:sequence>
+      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
+      <xs:element minOccurs="0" name="ResourceId" type="xs:long" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="Resource" nillable="true" type="tns:Resource" />
+  <xs:complexType name="ClientConfig">
+    <xs:sequence>
+      <xs:element minOccurs="0" name="ClientConfigId" type="xs:long" />
+      <xs:element minOccurs="0" name="HeartBeatIntervall" type="xs:int" />
+      <xs:element minOccurs="0" name="UpDownTimeCalendar" nillable="true" type="xs:string" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="ClientConfig" nillable="true" type="tns:ClientConfig" />
+  <xs:simpleType name="State">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="idle" />
+      <xs:enumeration value="calculating" />
+      <xs:enumeration value="offline" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:element name="State" nillable="true" type="tns:State" />
+  <xs:complexType name="HeartBeatData">
+    <xs:sequence>
+      <xs:element minOccurs="0" name="ClientId" type="ser:guid" />
+      <xs:element minOccurs="0" name="freeCores" type="xs:int" />
+      <xs:element minOccurs="0" name="freeMemory" type="xs:int" />
+      <xs:element minOccurs="0" name="jobProgress" type="xs:int" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="HeartBeatData" nillable="true" type="tns:HeartBeatData" />
+  <xs:complexType name="JobResult">
+    <xs:sequence>
+      <xs:element minOccurs="0" name="Client" nillable="true" type="tns:ClientInfo" />
+      <xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/System" minOccurs="0" name="Exception" nillable="true" type="q1:Exception" />
+      <xs:element minOccurs="0" name="JobId" type="xs:long" />
+      <xs:element minOccurs="0" name="JobResultId" type="xs:long" />
+      <xs:element minOccurs="0" name="Result" nillable="true" type="xs:base64Binary" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="JobResult" nillable="true" type="tns:JobResult" />
+</xs:schema>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/HeuristicLab.Hive.Contracts.xsd
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/HeuristicLab.Hive.Contracts.xsd	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/HeuristicLab.Hive.Contracts.xsd	(revision 993)
@@ -0,0 +1,66 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:complexType name="Response">
+    <xs:sequence>
+      <xs:element minOccurs="0" name="StatusMessage" nillable="true" type="xs:string" />
+      <xs:element minOccurs="0" name="Success" type="xs:boolean" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="Response" nillable="true" type="tns:Response" />
+  <xs:complexType name="ResponseHB">
+    <xs:complexContent mixed="false">
+      <xs:extension base="tns:Response">
+        <xs:sequence>
+          <xs:element minOccurs="0" name="ActionRequest" nillable="true" type="tns:ArrayOfMessageContainer" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="ResponseHB" nillable="true" type="tns:ResponseHB" />
+  <xs:complexType name="ArrayOfMessageContainer">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="MessageContainer" nillable="true" type="tns:MessageContainer" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="ArrayOfMessageContainer" nillable="true" type="tns:ArrayOfMessageContainer" />
+  <xs:complexType name="MessageContainer">
+    <xs:sequence>
+      <xs:element name="_x003C_JobId_x003E_k__BackingField" type="xs:long" />
+      <xs:element name="_x003C_Message_x003E_k__BackingField" type="tns:MessageContainer.MessageType" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="MessageContainer" nillable="true" type="tns:MessageContainer" />
+  <xs:simpleType name="MessageContainer.MessageType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="FetchJob" />
+      <xs:enumeration value="AbortJob" />
+      <xs:enumeration value="JobAborted" />
+      <xs:enumeration value="RequestSnapshot" />
+      <xs:enumeration value="FinishedJob" />
+      <xs:enumeration value="NoMessage" />
+      <xs:enumeration value="SnapshotReady" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:element name="MessageContainer.MessageType" nillable="true" type="tns:MessageContainer.MessageType" />
+  <xs:complexType name="ResponseJob">
+    <xs:complexContent mixed="false">
+      <xs:extension base="tns:Response">
+        <xs:sequence>
+          <xs:element minOccurs="0" name="JobId" type="xs:long" />
+          <xs:element minOccurs="0" name="SerializedJob" nillable="true" type="xs:base64Binary" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="ResponseJob" nillable="true" type="tns:ResponseJob" />
+  <xs:complexType name="ResponseResultReceived">
+    <xs:complexContent mixed="false">
+      <xs:extension base="tns:Response">
+        <xs:sequence>
+          <xs:element minOccurs="0" name="JobId" type="xs:long" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="ResponseResultReceived" nillable="true" type="tns:ResponseResultReceived" />
+</xs:schema>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/Reference.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/Reference.cs	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/Reference.cs	(revision 993)
@@ -0,0 +1,479 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.3053
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HeuristicLab.Hive.Client.Communication.ServerService {
+    
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="ServerService.IClientCommunicator")]
+    public interface IClientCommunicator {
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/Login", ReplyAction="http://tempuri.org/IClientCommunicator/LoginResponse")]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHB))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseJob))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseResultReceived))]
+        HeuristicLab.Hive.Contracts.Response Login(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo);
+        
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/Login", ReplyAction="http://tempuri.org/IClientCommunicator/LoginResponse")]
+        System.IAsyncResult BeginLogin(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo, System.AsyncCallback callback, object asyncState);
+        
+        HeuristicLab.Hive.Contracts.Response EndLogin(System.IAsyncResult result);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/SendHeartBeat", ReplyAction="http://tempuri.org/IClientCommunicator/SendHeartBeatResponse")]
+        HeuristicLab.Hive.Contracts.ResponseHB SendHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData);
+        
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/SendHeartBeat", ReplyAction="http://tempuri.org/IClientCommunicator/SendHeartBeatResponse")]
+        System.IAsyncResult BeginSendHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData, System.AsyncCallback callback, object asyncState);
+        
+        HeuristicLab.Hive.Contracts.ResponseHB EndSendHeartBeat(System.IAsyncResult result);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/PullJob", ReplyAction="http://tempuri.org/IClientCommunicator/PullJobResponse")]
+        HeuristicLab.Hive.Contracts.ResponseJob PullJob(System.Guid clientId);
+        
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/PullJob", ReplyAction="http://tempuri.org/IClientCommunicator/PullJobResponse")]
+        System.IAsyncResult BeginPullJob(System.Guid clientId, System.AsyncCallback callback, object asyncState);
+        
+        HeuristicLab.Hive.Contracts.ResponseJob EndPullJob(System.IAsyncResult result);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/SendJobResult", ReplyAction="http://tempuri.org/IClientCommunicator/SendJobResultResponse")]
+        HeuristicLab.Hive.Contracts.ResponseResultReceived SendJobResult(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished);
+        
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/SendJobResult", ReplyAction="http://tempuri.org/IClientCommunicator/SendJobResultResponse")]
+        System.IAsyncResult BeginSendJobResult(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished, System.AsyncCallback callback, object asyncState);
+        
+        HeuristicLab.Hive.Contracts.ResponseResultReceived EndSendJobResult(System.IAsyncResult result);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/Logout", ReplyAction="http://tempuri.org/IClientCommunicator/LogoutResponse")]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHB))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseJob))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseResultReceived))]
+        HeuristicLab.Hive.Contracts.Response Logout(System.Guid clientId);
+        
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/Logout", ReplyAction="http://tempuri.org/IClientCommunicator/LogoutResponse")]
+        System.IAsyncResult BeginLogout(System.Guid clientId, System.AsyncCallback callback, object asyncState);
+        
+        HeuristicLab.Hive.Contracts.Response EndLogout(System.IAsyncResult result);
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    public interface IClientCommunicatorChannel : HeuristicLab.Hive.Client.Communication.ServerService.IClientCommunicator, System.ServiceModel.IClientChannel {
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    public partial class LoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        public LoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        public HeuristicLab.Hive.Contracts.Response Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Contracts.Response)(this.results[0]));
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    public partial class SendHeartBeatCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        public SendHeartBeatCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        public HeuristicLab.Hive.Contracts.ResponseHB Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Contracts.ResponseHB)(this.results[0]));
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    public partial class PullJobCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        public PullJobCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        public HeuristicLab.Hive.Contracts.ResponseJob Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Contracts.ResponseJob)(this.results[0]));
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    public partial class SendJobResultCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        public SendJobResultCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        public HeuristicLab.Hive.Contracts.ResponseResultReceived Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Contracts.ResponseResultReceived)(this.results[0]));
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    public partial class LogoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        public LogoutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        public HeuristicLab.Hive.Contracts.Response Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Contracts.Response)(this.results[0]));
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
+    public partial class ClientCommunicatorClient : System.ServiceModel.ClientBase<HeuristicLab.Hive.Client.Communication.ServerService.IClientCommunicator>, HeuristicLab.Hive.Client.Communication.ServerService.IClientCommunicator {
+        
+        private BeginOperationDelegate onBeginLoginDelegate;
+        
+        private EndOperationDelegate onEndLoginDelegate;
+        
+        private System.Threading.SendOrPostCallback onLoginCompletedDelegate;
+        
+        private BeginOperationDelegate onBeginSendHeartBeatDelegate;
+        
+        private EndOperationDelegate onEndSendHeartBeatDelegate;
+        
+        private System.Threading.SendOrPostCallback onSendHeartBeatCompletedDelegate;
+        
+        private BeginOperationDelegate onBeginPullJobDelegate;
+        
+        private EndOperationDelegate onEndPullJobDelegate;
+        
+        private System.Threading.SendOrPostCallback onPullJobCompletedDelegate;
+        
+        private BeginOperationDelegate onBeginSendJobResultDelegate;
+        
+        private EndOperationDelegate onEndSendJobResultDelegate;
+        
+        private System.Threading.SendOrPostCallback onSendJobResultCompletedDelegate;
+        
+        private BeginOperationDelegate onBeginLogoutDelegate;
+        
+        private EndOperationDelegate onEndLogoutDelegate;
+        
+        private System.Threading.SendOrPostCallback onLogoutCompletedDelegate;
+        
+        public ClientCommunicatorClient() {
+        }
+        
+        public ClientCommunicatorClient(string endpointConfigurationName) : 
+                base(endpointConfigurationName) {
+        }
+        
+        public ClientCommunicatorClient(string endpointConfigurationName, string remoteAddress) : 
+                base(endpointConfigurationName, remoteAddress) {
+        }
+        
+        public ClientCommunicatorClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
+                base(endpointConfigurationName, remoteAddress) {
+        }
+        
+        public ClientCommunicatorClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
+                base(binding, remoteAddress) {
+        }
+        
+        public event System.EventHandler<LoginCompletedEventArgs> LoginCompleted;
+        
+        public event System.EventHandler<SendHeartBeatCompletedEventArgs> SendHeartBeatCompleted;
+        
+        public event System.EventHandler<PullJobCompletedEventArgs> PullJobCompleted;
+        
+        public event System.EventHandler<SendJobResultCompletedEventArgs> SendJobResultCompleted;
+        
+        public event System.EventHandler<LogoutCompletedEventArgs> LogoutCompleted;
+        
+        public HeuristicLab.Hive.Contracts.Response Login(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo) {
+            return base.Channel.Login(clientInfo);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginLogin(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo, System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginLogin(clientInfo, callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public HeuristicLab.Hive.Contracts.Response EndLogin(System.IAsyncResult result) {
+            return base.Channel.EndLogin(result);
+        }
+        
+        private System.IAsyncResult OnBeginLogin(object[] inValues, System.AsyncCallback callback, object asyncState) {
+            HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo = ((HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo)(inValues[0]));
+            return this.BeginLogin(clientInfo, callback, asyncState);
+        }
+        
+        private object[] OnEndLogin(System.IAsyncResult result) {
+            HeuristicLab.Hive.Contracts.Response retVal = this.EndLogin(result);
+            return new object[] {
+                    retVal};
+        }
+        
+        private void OnLoginCompleted(object state) {
+            if ((this.LoginCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.LoginCompleted(this, new LoginCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void LoginAsync(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo) {
+            this.LoginAsync(clientInfo, null);
+        }
+        
+        public void LoginAsync(HeuristicLab.Hive.Contracts.BusinessObjects.ClientInfo clientInfo, object userState) {
+            if ((this.onBeginLoginDelegate == null)) {
+                this.onBeginLoginDelegate = new BeginOperationDelegate(this.OnBeginLogin);
+            }
+            if ((this.onEndLoginDelegate == null)) {
+                this.onEndLoginDelegate = new EndOperationDelegate(this.OnEndLogin);
+            }
+            if ((this.onLoginCompletedDelegate == null)) {
+                this.onLoginCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnLoginCompleted);
+            }
+            base.InvokeAsync(this.onBeginLoginDelegate, new object[] {
+                        clientInfo}, this.onEndLoginDelegate, this.onLoginCompletedDelegate, userState);
+        }
+        
+        public HeuristicLab.Hive.Contracts.ResponseHB SendHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData) {
+            return base.Channel.SendHeartBeat(hbData);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginSendHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData, System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginSendHeartBeat(hbData, callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public HeuristicLab.Hive.Contracts.ResponseHB EndSendHeartBeat(System.IAsyncResult result) {
+            return base.Channel.EndSendHeartBeat(result);
+        }
+        
+        private System.IAsyncResult OnBeginSendHeartBeat(object[] inValues, System.AsyncCallback callback, object asyncState) {
+            HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData = ((HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData)(inValues[0]));
+            return this.BeginSendHeartBeat(hbData, callback, asyncState);
+        }
+        
+        private object[] OnEndSendHeartBeat(System.IAsyncResult result) {
+            HeuristicLab.Hive.Contracts.ResponseHB retVal = this.EndSendHeartBeat(result);
+            return new object[] {
+                    retVal};
+        }
+        
+        private void OnSendHeartBeatCompleted(object state) {
+            if ((this.SendHeartBeatCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.SendHeartBeatCompleted(this, new SendHeartBeatCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void SendHeartBeatAsync(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData) {
+            this.SendHeartBeatAsync(hbData, null);
+        }
+        
+        public void SendHeartBeatAsync(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData, object userState) {
+            if ((this.onBeginSendHeartBeatDelegate == null)) {
+                this.onBeginSendHeartBeatDelegate = new BeginOperationDelegate(this.OnBeginSendHeartBeat);
+            }
+            if ((this.onEndSendHeartBeatDelegate == null)) {
+                this.onEndSendHeartBeatDelegate = new EndOperationDelegate(this.OnEndSendHeartBeat);
+            }
+            if ((this.onSendHeartBeatCompletedDelegate == null)) {
+                this.onSendHeartBeatCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSendHeartBeatCompleted);
+            }
+            base.InvokeAsync(this.onBeginSendHeartBeatDelegate, new object[] {
+                        hbData}, this.onEndSendHeartBeatDelegate, this.onSendHeartBeatCompletedDelegate, userState);
+        }
+        
+        public HeuristicLab.Hive.Contracts.ResponseJob PullJob(System.Guid clientId) {
+            return base.Channel.PullJob(clientId);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginPullJob(System.Guid clientId, System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginPullJob(clientId, callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public HeuristicLab.Hive.Contracts.ResponseJob EndPullJob(System.IAsyncResult result) {
+            return base.Channel.EndPullJob(result);
+        }
+        
+        private System.IAsyncResult OnBeginPullJob(object[] inValues, System.AsyncCallback callback, object asyncState) {
+            System.Guid clientId = ((System.Guid)(inValues[0]));
+            return this.BeginPullJob(clientId, callback, asyncState);
+        }
+        
+        private object[] OnEndPullJob(System.IAsyncResult result) {
+            HeuristicLab.Hive.Contracts.ResponseJob retVal = this.EndPullJob(result);
+            return new object[] {
+                    retVal};
+        }
+        
+        private void OnPullJobCompleted(object state) {
+            if ((this.PullJobCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.PullJobCompleted(this, new PullJobCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void PullJobAsync(System.Guid clientId) {
+            this.PullJobAsync(clientId, null);
+        }
+        
+        public void PullJobAsync(System.Guid clientId, object userState) {
+            if ((this.onBeginPullJobDelegate == null)) {
+                this.onBeginPullJobDelegate = new BeginOperationDelegate(this.OnBeginPullJob);
+            }
+            if ((this.onEndPullJobDelegate == null)) {
+                this.onEndPullJobDelegate = new EndOperationDelegate(this.OnEndPullJob);
+            }
+            if ((this.onPullJobCompletedDelegate == null)) {
+                this.onPullJobCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnPullJobCompleted);
+            }
+            base.InvokeAsync(this.onBeginPullJobDelegate, new object[] {
+                        clientId}, this.onEndPullJobDelegate, this.onPullJobCompletedDelegate, userState);
+        }
+        
+        public HeuristicLab.Hive.Contracts.ResponseResultReceived SendJobResult(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished) {
+            return base.Channel.SendJobResult(Result, finished);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginSendJobResult(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished, System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginSendJobResult(Result, finished, callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public HeuristicLab.Hive.Contracts.ResponseResultReceived EndSendJobResult(System.IAsyncResult result) {
+            return base.Channel.EndSendJobResult(result);
+        }
+        
+        private System.IAsyncResult OnBeginSendJobResult(object[] inValues, System.AsyncCallback callback, object asyncState) {
+            HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result = ((HeuristicLab.Hive.Contracts.BusinessObjects.JobResult)(inValues[0]));
+            bool finished = ((bool)(inValues[1]));
+            return this.BeginSendJobResult(Result, finished, callback, asyncState);
+        }
+        
+        private object[] OnEndSendJobResult(System.IAsyncResult result) {
+            HeuristicLab.Hive.Contracts.ResponseResultReceived retVal = this.EndSendJobResult(result);
+            return new object[] {
+                    retVal};
+        }
+        
+        private void OnSendJobResultCompleted(object state) {
+            if ((this.SendJobResultCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.SendJobResultCompleted(this, new SendJobResultCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void SendJobResultAsync(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished) {
+            this.SendJobResultAsync(Result, finished, null);
+        }
+        
+        public void SendJobResultAsync(HeuristicLab.Hive.Contracts.BusinessObjects.JobResult Result, bool finished, object userState) {
+            if ((this.onBeginSendJobResultDelegate == null)) {
+                this.onBeginSendJobResultDelegate = new BeginOperationDelegate(this.OnBeginSendJobResult);
+            }
+            if ((this.onEndSendJobResultDelegate == null)) {
+                this.onEndSendJobResultDelegate = new EndOperationDelegate(this.OnEndSendJobResult);
+            }
+            if ((this.onSendJobResultCompletedDelegate == null)) {
+                this.onSendJobResultCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSendJobResultCompleted);
+            }
+            base.InvokeAsync(this.onBeginSendJobResultDelegate, new object[] {
+                        Result,
+                        finished}, this.onEndSendJobResultDelegate, this.onSendJobResultCompletedDelegate, userState);
+        }
+        
+        public HeuristicLab.Hive.Contracts.Response Logout(System.Guid clientId) {
+            return base.Channel.Logout(clientId);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginLogout(System.Guid clientId, System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginLogout(clientId, callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public HeuristicLab.Hive.Contracts.Response EndLogout(System.IAsyncResult result) {
+            return base.Channel.EndLogout(result);
+        }
+        
+        private System.IAsyncResult OnBeginLogout(object[] inValues, System.AsyncCallback callback, object asyncState) {
+            System.Guid clientId = ((System.Guid)(inValues[0]));
+            return this.BeginLogout(clientId, callback, asyncState);
+        }
+        
+        private object[] OnEndLogout(System.IAsyncResult result) {
+            HeuristicLab.Hive.Contracts.Response retVal = this.EndLogout(result);
+            return new object[] {
+                    retVal};
+        }
+        
+        private void OnLogoutCompleted(object state) {
+            if ((this.LogoutCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.LogoutCompleted(this, new LogoutCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void LogoutAsync(System.Guid clientId) {
+            this.LogoutAsync(clientId, null);
+        }
+        
+        public void LogoutAsync(System.Guid clientId, object userState) {
+            if ((this.onBeginLogoutDelegate == null)) {
+                this.onBeginLogoutDelegate = new BeginOperationDelegate(this.OnBeginLogout);
+            }
+            if ((this.onEndLogoutDelegate == null)) {
+                this.onEndLogoutDelegate = new EndOperationDelegate(this.OnEndLogout);
+            }
+            if ((this.onLogoutCompletedDelegate == null)) {
+                this.onLogoutCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnLogoutCompleted);
+            }
+            base.InvokeAsync(this.onBeginLogoutDelegate, new object[] {
+                        clientId}, this.onEndLogoutDelegate, this.onLogoutCompletedDelegate, userState);
+        }
+    }
+}
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/Reference.svcmap
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/Reference.svcmap	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/Reference.svcmap	(revision 993)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ReferenceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="3fe193d1-38a2-4be6-ae78-516031e30e9f" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
+  <ClientOptions>
+    <GenerateAsynchronousMethods>true</GenerateAsynchronousMethods>
+    <EnableDataBinding>true</EnableDataBinding>
+    <ExcludedTypes />
+    <ImportXmlTypes>false</ImportXmlTypes>
+    <GenerateInternalTypes>false</GenerateInternalTypes>
+    <GenerateMessageContracts>false</GenerateMessageContracts>
+    <NamespaceMappings />
+    <CollectionMappings />
+    <GenerateSerializableTypes>true</GenerateSerializableTypes>
+    <Serializer>Auto</Serializer>
+    <ReferenceAllAssemblies>true</ReferenceAllAssemblies>
+    <ReferencedAssemblies />
+    <ReferencedDataContractTypes />
+    <ServiceContractMappings />
+  </ClientOptions>
+  <MetadataSources>
+    <MetadataSource Address="net.tcp://10.0.0.64:9000/HiveServer/mex" Protocol="mex" SourceId="1" />
+  </MetadataSources>
+  <Metadata>
+    <MetadataFile FileName="service.wsdl" MetadataType="Wsdl" ID="6bbba849-1ffe-4854-bdd4-448cdc7c1f27" SourceId="1" SourceUrl="net.tcp://10.0.0.64:9000/HiveServer/mex" />
+    <MetadataFile FileName="service.xsd" MetadataType="Schema" ID="04d8adba-75fa-43ec-be1a-4f47d65b127a" SourceId="1" SourceUrl="net.tcp://10.0.0.64:9000/HiveServer/mex" />
+    <MetadataFile FileName="service1.xsd" MetadataType="Schema" ID="e737465f-b816-4df8-ab5d-42997bd9ec5b" SourceId="1" SourceUrl="net.tcp://10.0.0.64:9000/HiveServer/mex" />
+    <MetadataFile FileName="HeuristicLab.Hive.Contracts.BusinessObjects.xsd" MetadataType="Schema" ID="22f23fdc-ce32-4813-bd0e-41b0b8ddadf7" SourceId="1" SourceUrl="net.tcp://10.0.0.64:9000/HiveServer/mex" />
+    <MetadataFile FileName="HeuristicLab.Hive.Contracts.xsd" MetadataType="Schema" ID="2cc94d25-09bb-43c9-8f01-06f3f08714e7" SourceId="1" SourceUrl="net.tcp://10.0.0.64:9000/HiveServer/mex" />
+    <MetadataFile FileName="System.xsd" MetadataType="Schema" ID="51f1a63c-0cce-4736-a71c-4fbdca1926b4" SourceId="1" SourceUrl="net.tcp://10.0.0.64:9000/HiveServer/mex" />
+  </Metadata>
+  <Extensions>
+    <ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
+    <ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
+  </Extensions>
+</ReferenceGroup>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/System.xsd
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/System.xsd	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/System.xsd	(revision 993)
@@ -0,0 +1,11 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/System" xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/System" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
+  <xs:complexType name="Exception">
+    <xs:sequence>
+      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##local" processContents="skip" />
+    </xs:sequence>
+    <xs:attribute ref="ser:FactoryType" />
+  </xs:complexType>
+  <xs:element name="Exception" nillable="true" type="tns:Exception" />
+</xs:schema>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/configuration.svcinfo
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/configuration.svcinfo	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/configuration.svcinfo	(revision 993)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<configurationSnapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-wcfconfigurationsnapshot">
+  <behaviors />
+  <bindings>
+    <binding digest="System.ServiceModel.Configuration.NetTcpBindingElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; listenBacklog=&quot;10&quot; maxBufferSize=&quot;65536&quot; maxConnections=&quot;10&quot; name=&quot;NetTcpBinding_IClientCommunicator&quot; transactionFlow=&quot;false&quot; transactionProtocol=&quot;OleTransactions&quot; transferMode=&quot;Buffered&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;reliableSession enabled=&quot;false&quot; inactivityTimeout=&quot;00:10:00&quot; ordered=&quot;true&quot; /&gt;&lt;security mode=&quot;Transport&quot;&gt;&lt;message clientCredentialType=&quot;Windows&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; protectionLevel=&quot;EncryptAndSign&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="netTcpBinding" name="NetTcpBinding_IClientCommunicator" />
+  </bindings>
+  <endpoints>
+    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://10.0.0.64:9000/HiveServer/ClientCommunicator&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_IClientCommunicator&quot; contract=&quot;ServerService.IClientCommunicator&quot; name=&quot;NetTcpBinding_IClientCommunicator&quot;&gt;&lt;identity&gt;&lt;userPrincipalName value=&quot;sem-PC\sem&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://10.0.0.64:9000/HiveServer/ClientCommunicator&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_IClientCommunicator&quot; contract=&quot;ServerService.IClientCommunicator&quot; name=&quot;NetTcpBinding_IClientCommunicator&quot;&gt;&lt;identity&gt;&lt;userPrincipalName value=&quot;sem-PC\sem&quot; /&gt;&lt;/identity&gt;&lt;/Data&gt;" contractName="ServerService.IClientCommunicator" name="NetTcpBinding_IClientCommunicator" />
+  </endpoints>
+</configurationSnapshot>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/configuration91.svcinfo
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/configuration91.svcinfo	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/configuration91.svcinfo	(revision 993)
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="utf-8"?>
+<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="emH4xWqYQm4GeIAMUhWYPT4/tzs=">
+  <bindingConfigurations>
+    <bindingConfiguration bindingType="netTcpBinding" name="NetTcpBinding_IClientCommunicator">
+      <properties>
+        <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>NetTcpBinding_IClientCommunicator</serializedValue>
+        </property>
+        <property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:01:00</serializedValue>
+        </property>
+        <property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:01:00</serializedValue>
+        </property>
+        <property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:10:00</serializedValue>
+        </property>
+        <property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:01:00</serializedValue>
+        </property>
+        <property path="/transactionFlow" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/transferMode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Buffered</serializedValue>
+        </property>
+        <property path="/transactionProtocol" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.TransactionProtocol, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.OleTransactionsProtocol</serializedValue>
+        </property>
+        <property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>StrongWildcard</serializedValue>
+        </property>
+        <property path="/listenBacklog" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>10</serializedValue>
+        </property>
+        <property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>524288</serializedValue>
+        </property>
+        <property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>65536</serializedValue>
+        </property>
+        <property path="/maxConnections" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>10</serializedValue>
+        </property>
+        <property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>65536</serializedValue>
+        </property>
+        <property path="/portSharingEnabled" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>32</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>8192</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>16384</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>4096</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>16384</serializedValue>
+        </property>
+        <property path="/reliableSession" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement</serializedValue>
+        </property>
+        <property path="/reliableSession/ordered" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>True</serializedValue>
+        </property>
+        <property path="/reliableSession/inactivityTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:10:00</serializedValue>
+        </property>
+        <property path="/reliableSession/enabled" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.NetTcpSecurityElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.NetTcpSecurityElement</serializedValue>
+        </property>
+        <property path="/security/mode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.SecurityMode, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Transport</serializedValue>
+        </property>
+        <property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.TcpTransportSecurityElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.TcpTransportSecurityElement</serializedValue>
+        </property>
+        <property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.TcpClientCredentialType, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Windows</serializedValue>
+        </property>
+        <property path="/security/transport/protectionLevel" isComplexType="false" isExplicitlyDefined="true" clrType="System.Net.Security.ProtectionLevel, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>EncryptAndSign</serializedValue>
+        </property>
+        <property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.MessageSecurityOverTcpElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.MessageSecurityOverTcpElement</serializedValue>
+        </property>
+        <property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.MessageCredentialType, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Windows</serializedValue>
+        </property>
+        <property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Basic256</serializedValue>
+        </property>
+      </properties>
+    </bindingConfiguration>
+  </bindingConfigurations>
+  <endpoints>
+    <endpoint name="NetTcpBinding_IClientCommunicator" contract="ServerService.IClientCommunicator" bindingType="netTcpBinding" address="net.tcp://10.0.0.64:9000/HiveServer/ClientCommunicator" bindingConfiguration="NetTcpBinding_IClientCommunicator">
+      <properties>
+        <property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>net.tcp://10.0.0.64:9000/HiveServer/ClientCommunicator</serializedValue>
+        </property>
+        <property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>netTcpBinding</serializedValue>
+        </property>
+        <property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>NetTcpBinding_IClientCommunicator</serializedValue>
+        </property>
+        <property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>ServerService.IClientCommunicator</serializedValue>
+        </property>
+        <property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
+        </property>
+        <property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>&lt;Header /&gt;</serializedValue>
+        </property>
+        <property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
+        </property>
+        <property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
+        </property>
+        <property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>sem-PC\sem</serializedValue>
+        </property>
+        <property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
+        </property>
+        <property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
+        </property>
+        <property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
+        </property>
+        <property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
+        </property>
+        <property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>My</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>LocalMachine</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>FindBySubjectDistinguishedName</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>NetTcpBinding_IClientCommunicator</serializedValue>
+        </property>
+      </properties>
+    </endpoint>
+  </endpoints>
+</SavedWcfConfigurationInformation>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service.wsdl
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service.wsdl	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service.wsdl	(revision 993)
@@ -0,0 +1,158 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:tns="http://tempuri.org/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" name="ClientCommunicator" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+  <wsp:Policy wsu:Id="NetTcpBinding_IClientCommunicator_policy">
+    <wsp:ExactlyOne>
+      <wsp:All>
+        <msb:BinaryEncoding xmlns:msb="http://schemas.microsoft.com/ws/06/2004/mspolicy/netbinary1">
+        </msb:BinaryEncoding>
+        <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+          <wsp:Policy>
+            <sp:TransportToken>
+              <wsp:Policy>
+                <msf:WindowsTransportSecurity xmlns:msf="http://schemas.microsoft.com/ws/2006/05/framing/policy">
+                  <msf:ProtectionLevel>EncryptAndSign</msf:ProtectionLevel>
+                </msf:WindowsTransportSecurity>
+              </wsp:Policy>
+            </sp:TransportToken>
+            <sp:AlgorithmSuite>
+              <wsp:Policy>
+                <sp:Basic256>
+                </sp:Basic256>
+              </wsp:Policy>
+            </sp:AlgorithmSuite>
+            <sp:Layout>
+              <wsp:Policy>
+                <sp:Strict>
+                </sp:Strict>
+              </wsp:Policy>
+            </sp:Layout>
+          </wsp:Policy>
+        </sp:TransportBinding>
+        <wsaw:UsingAddressing>
+        </wsaw:UsingAddressing>
+      </wsp:All>
+    </wsp:ExactlyOne>
+  </wsp:Policy>
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://tempuri.org/Imports">
+      <xsd:import namespace="http://tempuri.org/" />
+      <xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
+      <xsd:import namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" />
+      <xsd:import namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" />
+      <xsd:import namespace="http://schemas.datacontract.org/2004/07/System" />
+    </xsd:schema>
+  </wsdl:types>
+  <wsdl:message name="IClientCommunicator_Login_InputMessage">
+    <wsdl:part name="parameters" element="tns:Login" />
+  </wsdl:message>
+  <wsdl:message name="IClientCommunicator_Login_OutputMessage">
+    <wsdl:part name="parameters" element="tns:LoginResponse" />
+  </wsdl:message>
+  <wsdl:message name="IClientCommunicator_SendHeartBeat_InputMessage">
+    <wsdl:part name="parameters" element="tns:SendHeartBeat" />
+  </wsdl:message>
+  <wsdl:message name="IClientCommunicator_SendHeartBeat_OutputMessage">
+    <wsdl:part name="parameters" element="tns:SendHeartBeatResponse" />
+  </wsdl:message>
+  <wsdl:message name="IClientCommunicator_PullJob_InputMessage">
+    <wsdl:part name="parameters" element="tns:PullJob" />
+  </wsdl:message>
+  <wsdl:message name="IClientCommunicator_PullJob_OutputMessage">
+    <wsdl:part name="parameters" element="tns:PullJobResponse" />
+  </wsdl:message>
+  <wsdl:message name="IClientCommunicator_SendJobResult_InputMessage">
+    <wsdl:part name="parameters" element="tns:SendJobResult" />
+  </wsdl:message>
+  <wsdl:message name="IClientCommunicator_SendJobResult_OutputMessage">
+    <wsdl:part name="parameters" element="tns:SendJobResultResponse" />
+  </wsdl:message>
+  <wsdl:message name="IClientCommunicator_Logout_InputMessage">
+    <wsdl:part name="parameters" element="tns:Logout" />
+  </wsdl:message>
+  <wsdl:message name="IClientCommunicator_Logout_OutputMessage">
+    <wsdl:part name="parameters" element="tns:LogoutResponse" />
+  </wsdl:message>
+  <wsdl:portType name="IClientCommunicator">
+    <wsdl:operation name="Login">
+      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/Login" message="tns:IClientCommunicator_Login_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/LoginResponse" message="tns:IClientCommunicator_Login_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="SendHeartBeat">
+      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/SendHeartBeat" message="tns:IClientCommunicator_SendHeartBeat_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/SendHeartBeatResponse" message="tns:IClientCommunicator_SendHeartBeat_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="PullJob">
+      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/PullJob" message="tns:IClientCommunicator_PullJob_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/PullJobResponse" message="tns:IClientCommunicator_PullJob_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="SendJobResult">
+      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/SendJobResult" message="tns:IClientCommunicator_SendJobResult_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/SendJobResultResponse" message="tns:IClientCommunicator_SendJobResult_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="Logout">
+      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/Logout" message="tns:IClientCommunicator_Logout_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/LogoutResponse" message="tns:IClientCommunicator_Logout_OutputMessage" />
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="NetTcpBinding_IClientCommunicator" type="tns:IClientCommunicator">
+    <wsp:PolicyReference URI="#NetTcpBinding_IClientCommunicator_policy">
+    </wsp:PolicyReference>
+    <soap12:binding transport="http://schemas.microsoft.com/soap/tcp" />
+    <wsdl:operation name="Login">
+      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/Login" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="SendHeartBeat">
+      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/SendHeartBeat" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="PullJob">
+      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/PullJob" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="SendJobResult">
+      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/SendJobResult" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="Logout">
+      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/Logout" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="ClientCommunicator">
+    <wsdl:port name="NetTcpBinding_IClientCommunicator" binding="tns:NetTcpBinding_IClientCommunicator">
+      <soap12:address location="net.tcp://10.0.0.64:9000/HiveServer/ClientCommunicator" />
+      <wsa10:EndpointReference>
+        <wsa10:Address>net.tcp://10.0.0.64:9000/HiveServer/ClientCommunicator</wsa10:Address>
+        <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
+          <Upn>sem-PC\sem</Upn>
+        </Identity>
+      </wsa10:EndpointReference>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service.xsd
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service.xsd	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service.xsd	(revision 993)
@@ -0,0 +1,77 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://tempuri.org/" elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" />
+  <xs:import namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" />
+  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
+  <xs:element name="Login">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" minOccurs="0" name="clientInfo" nillable="true" type="q1:ClientInfo" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="LoginResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="LoginResult" nillable="true" type="q2:Response" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="SendHeartBeat">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q3="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" minOccurs="0" name="hbData" nillable="true" type="q3:HeartBeatData" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="SendHeartBeatResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="SendHeartBeatResult" nillable="true" type="q4:ResponseHB" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="PullJob">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q5="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="clientId" type="q5:guid" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="PullJobResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q6="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="PullJobResult" nillable="true" type="q6:ResponseJob" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="SendJobResult">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q7="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" minOccurs="0" name="Result" nillable="true" type="q7:JobResult" />
+        <xs:element minOccurs="0" name="finished" type="xs:boolean" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="SendJobResultResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q8="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="SendJobResultResult" nillable="true" type="q8:ResponseResultReceived" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="Logout">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q9="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="clientId" type="q9:guid" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="LogoutResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q10="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="LogoutResult" nillable="true" type="q10:Response" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service1.xsd
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service1.xsd	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/Service References/ServerService/service1.xsd	(revision 993)
@@ -0,0 +1,42 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="anyType" nillable="true" type="xs:anyType" />
+  <xs:element name="anyURI" nillable="true" type="xs:anyURI" />
+  <xs:element name="base64Binary" nillable="true" type="xs:base64Binary" />
+  <xs:element name="boolean" nillable="true" type="xs:boolean" />
+  <xs:element name="byte" nillable="true" type="xs:byte" />
+  <xs:element name="dateTime" nillable="true" type="xs:dateTime" />
+  <xs:element name="decimal" nillable="true" type="xs:decimal" />
+  <xs:element name="double" nillable="true" type="xs:double" />
+  <xs:element name="float" nillable="true" type="xs:float" />
+  <xs:element name="int" nillable="true" type="xs:int" />
+  <xs:element name="long" nillable="true" type="xs:long" />
+  <xs:element name="QName" nillable="true" type="xs:QName" />
+  <xs:element name="short" nillable="true" type="xs:short" />
+  <xs:element name="string" nillable="true" type="xs:string" />
+  <xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte" />
+  <xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt" />
+  <xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong" />
+  <xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort" />
+  <xs:element name="char" nillable="true" type="tns:char" />
+  <xs:simpleType name="char">
+    <xs:restriction base="xs:int" />
+  </xs:simpleType>
+  <xs:element name="duration" nillable="true" type="tns:duration" />
+  <xs:simpleType name="duration">
+    <xs:restriction base="xs:duration">
+      <xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?" />
+      <xs:minInclusive value="-P10675199DT2H48M5.4775808S" />
+      <xs:maxInclusive value="P10675199DT2H48M5.4775807S" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:element name="guid" nillable="true" type="tns:guid" />
+  <xs:simpleType name="guid">
+    <xs:restriction base="xs:string">
+      <xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:attribute name="FactoryType" type="xs:QName" />
+  <xs:attribute name="Id" type="xs:ID" />
+  <xs:attribute name="Ref" type="xs:IDREF" />
+</xs:schema>
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/WcfService.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/WcfService.cs	(revision 992)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/WcfService.cs	(revision 993)
@@ -8,4 +8,5 @@
 using HeuristicLab.Hive.Contracts.BusinessObjects;
 using HeuristicLab.Hive.Client.Common;
+using HeuristicLab.Hive.Client.Communication.ServerService;
 
 namespace HeuristicLab.Hive.Client.Communication {
@@ -29,5 +30,5 @@
     public event EventHandler ServerChanged;    
 
-    private ClientCommunicatorClient proxy = null;
+    public ClientCommunicatorClient proxy = null;
 
     private WcfService() {
@@ -51,5 +52,5 @@
           ConnectionRestored(this, new EventArgs());
         ConnState = NetworkEnum.WcfConnState.Connected;
-        ConnectedSince = DateTime.Now;
+        ConnectedSince = DateTime.Now;        
       }
       catch (Exception ex) {
@@ -59,9 +60,11 @@
 
     public void Connect(String serverIP, int serverPort) {
-      if(this.ServerIP != serverIP || this.ServerPort != ServerPort)
-        ServerChanged(this, new EventArgs());
+      String oldIp = this.ServerIP;
+      int oldPort = this.ServerPort;
       this.ServerIP = serverIP;
       this.ServerPort = serverPort;      
       Connect();
+      if (oldIp != serverIP || oldPort != ServerPort)
+        ServerChanged(this, new EventArgs());
     }
 
@@ -107,5 +110,5 @@
     public void SendJobResultAsync(JobResult result, bool finished) {
       if (ConnState == NetworkEnum.WcfConnState.Connected)
-        proxy.SendJobResult(result, finished);
+        proxy.SendJobResultAsync(result, finished);
     }
     private void proxy_SendJobResultCompleted(object sender, SendJobResultCompletedEventArgs e) {
Index: /trunk/sources/HeuristicLab.Hive.Client.Communication/app.config
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Communication/app.config	(revision 993)
+++ /trunk/sources/HeuristicLab.Hive.Client.Communication/app.config	(revision 993)
@@ -0,0 +1,33 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <system.serviceModel>
+        <bindings>
+            <netTcpBinding>
+                <binding name="NetTcpBinding_IClientCommunicator" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
+                    hostNameComparisonMode="StrongWildcard" listenBacklog="10"
+                    maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
+                    maxReceivedMessageSize="65536">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Transport">
+                        <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
+                        <message clientCredentialType="Windows" />
+                    </security>
+                </binding>
+            </netTcpBinding>
+        </bindings>
+        <client>
+            <endpoint address="net.tcp://10.0.0.64:9000/HiveServer/ClientCommunicator"
+                binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IClientCommunicator"
+                contract="ServerService.IClientCommunicator" name="NetTcpBinding_IClientCommunicator">
+                <identity>
+                    <userPrincipalName value="sem-PC\sem" />
+                </identity>
+            </endpoint>
+        </client>
+    </system.serviceModel>
+</configuration>
Index: /trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager/ConfigManager.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager/ConfigManager.cs	(revision 992)
+++ /trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager/ConfigManager.cs	(revision 993)
@@ -67,4 +67,5 @@
 
     public ClientInfo GetClientInfo() {
+      hardwareInfo.Login = WcfService.Instance.ConnectedSince;
       return hardwareInfo;          
     }
Index: /trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 992)
+++ /trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 993)
@@ -41,4 +41,5 @@
 using HeuristicLab.Hive.Client.Core.ClientConsoleService;
 using HeuristicLab.Hive.Client.Core.ConfigurationManager;
+using HeuristicLab.Hive.Client.Communication.ServerService;
 
 
@@ -51,4 +52,5 @@
     Dictionary<long, AppDomain> appDomains = new Dictionary<long, AppDomain>();
 
+    private ClientCommunicatorClient ccc;
     private WcfService wcfService;
 
@@ -66,12 +68,11 @@
         wcfService.Connect(cc.IPAdress, cc.Port);
       }
+
       wcfService.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(wcfService_LoginCompleted);
       wcfService.PullJobCompleted += new EventHandler<PullJobCompletedEventArgs>(wcfService_PullJobCompleted);
-      wcfService.SendJobResultCompleted += new EventHandler<SendJobResultCompletedEventArgs>(wcfService_SendJobResultCompleted);
+      wcfService.SendJobResultCompleted += new EventHandler<SendJobResultCompletedEventArgs>(wcfService_SendJobResultCompleted);      
       wcfService.ConnectionRestored += new EventHandler(wcfService_ConnectionRestored);
       wcfService.ServerChanged += new EventHandler(wcfService_ServerChanged);
-
-      wcfService.LoginAsync(ConfigManager.Instance.GetClientInfo());
-
+       
       Heartbeat beat = new Heartbeat { Interval = 10000 };
       beat.StartHeartbeat();     
@@ -120,5 +121,5 @@
       
       JobResult jobResult = new JobResult { JobId = jId, Result = sJob, Client = ConfigManager.Instance.GetClientInfo() };
-      wcfService.SendJobResultAsync(jobResult, true);
+      wcfService.SendJobResultAsync(jobResult, true);      
     }
 
@@ -180,4 +181,5 @@
       appDomains = new Dictionary<long, AppDomain>();
       engines = new Dictionary<long, Executor>();
+      wcfService.LoginAsync(ConfigManager.Instance.GetClientInfo());
     }
 
Index: /trunk/sources/HeuristicLab.Hive.Client.Core/Heartbeat.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Client.Core/Heartbeat.cs	(revision 992)
+++ /trunk/sources/HeuristicLab.Hive.Client.Core/Heartbeat.cs	(revision 993)
@@ -31,4 +31,5 @@
 using HeuristicLab.Hive.Contracts;
 using HeuristicLab.Hive.Client.Core.ConfigurationManager;
+using HeuristicLab.Hive.Client.Communication.ServerService;
 //using BO = HeuristicLab.Hive.Contracts.BusinessObjects;
 
Index: /trunk/sources/HeuristicLab.Hive.Server/HiveServerApplication.cs
===================================================================
--- /trunk/sources/HeuristicLab.Hive.Server/HiveServerApplication.cs	(revision 992)
+++ /trunk/sources/HeuristicLab.Hive.Server/HiveServerApplication.cs	(revision 993)
@@ -128,5 +128,5 @@
 
       Uri uriTcp =
-          new Uri("net.tcp://" + addresses[index] + ":" + port + "/HiveServer/");
+          new Uri("net.tcp://10.0.0.64:9000/HiveServer/");
 
       ServiceHost clientCommunicator =
