Index: trunk/sources/HeuristicLab.Hive.Server.Core/ClientCommunicator.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server.Core/ClientCommunicator.cs	(revision 741)
+++ trunk/sources/HeuristicLab.Hive.Server.Core/ClientCommunicator.cs	(revision 741)
@@ -0,0 +1,21 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Hive.Server.Interfaces;
+
+namespace HeuristicLab.Hive.Server.Core {
+  class ClientCommunicator: IClientCommunicator {
+    #region IClientCommunicator Members
+
+    public Response Login(HeuristicLab.Hive.Server.BusinessObjects.Client clientInfo) {
+      Response response = new Response();
+      response.Success = true;
+      response.StatusMessage = "Logged in...";
+
+      return response;
+    }
+
+    #endregion
+  }
+}
Index: trunk/sources/HeuristicLab.Hive.Server.Core/HeuristicLab.Hive.Server.Core.csproj
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server.Core/HeuristicLab.Hive.Server.Core.csproj	(revision 740)
+++ trunk/sources/HeuristicLab.Hive.Server.Core/HeuristicLab.Hive.Server.Core.csproj	(revision 741)
@@ -48,4 +48,5 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="ClientCommunicator.cs" />
     <Compile Include="HiveServerCorePlugin.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
@@ -56,4 +57,8 @@
   </ItemGroup>
   <ItemGroup>
+    <ProjectReference Include="..\HeuristicLab.Hive.Server\HeuristicLab.Hive.Server.csproj">
+      <Project>{A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}</Project>
+      <Name>HeuristicLab.Hive.Server</Name>
+    </ProjectReference>
     <ProjectReference Include="..\HeuristicLab.PluginInfrastructure\HeuristicLab.PluginInfrastructure.csproj">
       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
Index: trunk/sources/HeuristicLab.Hive.Server/BusinessObjects/Client.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server/BusinessObjects/Client.cs	(revision 740)
+++ trunk/sources/HeuristicLab.Hive.Server/BusinessObjects/Client.cs	(revision 741)
@@ -24,7 +24,10 @@
 using System.Linq;
 using System.Text;
+using System.Runtime.Serialization;
 
 namespace HeuristicLab.Hive.Server.BusinessObjects {
-  class Client {
+  [DataContract]
+  public class Client {
+    [DataMember]
     public Guid ClientId { get; set; }
   }
Index: trunk/sources/HeuristicLab.Hive.Server/HeuristicLab.Hive.Server.csproj
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server/HeuristicLab.Hive.Server.csproj	(revision 740)
+++ trunk/sources/HeuristicLab.Hive.Server/HeuristicLab.Hive.Server.csproj	(revision 741)
@@ -40,4 +40,10 @@
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
     </Reference>
+    <Reference Include="System.Runtime.Serialization">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.ServiceModel">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
     <Reference Include="System.Xml.Linq">
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
@@ -53,4 +59,7 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="BusinessObjects\Client.cs" />
+    <Compile Include="Interfaces\IClientCommunicator.cs" />
+    <Compile Include="Response.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="HiveServerPlugin.cs" />
@@ -92,7 +101,4 @@
     </ProjectReference>
   </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Interfaces\" />
-  </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.Server/HiveServerApplication.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server/HiveServerApplication.cs	(revision 740)
+++ trunk/sources/HeuristicLab.Hive.Server/HiveServerApplication.cs	(revision 741)
@@ -25,4 +25,6 @@
 using System.Windows.Forms;
 using HeuristicLab.PluginInfrastructure;
+using System.ServiceModel;
+using HeuristicLab.Hive.Server.Interfaces;
 
 namespace HeuristicLab.Hive.Server {
@@ -31,7 +33,30 @@
       AutoRestart = true)]
   class HiveServerApplication : ApplicationBase {
+
+    private bool Startup() {
+      return true;
+    }
+
     public override void Run() {
-      Form mainForm = new MainForm();
-      Application.Run(mainForm);
+
+      DiscoveryService discService =
+        new DiscoveryService();
+
+      IClientCommunicator[] instances = 
+        discService.GetInstances<IClientCommunicator>();
+
+      if (instances.Length > 0) {
+        ServiceHost serviceHost =
+                new ServiceHost(instances[0].GetType());
+
+        serviceHost.Open();
+
+        Form mainForm = new MainForm(serviceHost.BaseAddresses[0]);
+        Application.Run(mainForm);
+
+        serviceHost.Close();
+      } else {
+        MessageBox.Show("Error - no ClientCommunicator instance");
+      }
     }
   }
Index: trunk/sources/HeuristicLab.Hive.Server/Interfaces/IClientCommunicator.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server/Interfaces/IClientCommunicator.cs	(revision 740)
+++ trunk/sources/HeuristicLab.Hive.Server/Interfaces/IClientCommunicator.cs	(revision 741)
@@ -32,5 +32,5 @@
   /// </summary>
   [ServiceContract]
-  interface IClientCommunicator {
+  public interface IClientCommunicator {
     [OperationContract]
     Response Login(Client clientInfo);
Index: trunk/sources/HeuristicLab.Hive.Server/Interfaces/Response.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server/Interfaces/Response.cs	(revision 740)
+++ 	(revision )
@@ -1,40 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Runtime.Serialization;
-
-namespace HeuristicLab.Hive.Server {
-  /// <summary>
-  /// Server response class
-  /// </summary>
-  [DataContract]
-  class Response {
-    [DataMember]
-    public bool Success { get; set; }
-
-    [DataMember]
-    public string StatusMessage { get; set; } 
-  }
-}
Index: trunk/sources/HeuristicLab.Hive.Server/MainForm.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server/MainForm.Designer.cs	(revision 740)
+++ trunk/sources/HeuristicLab.Hive.Server/MainForm.Designer.cs	(revision 741)
@@ -29,5 +29,25 @@
         private void InitializeComponent()
         {
+          this.label1 = new System.Windows.Forms.Label();
+          this.lblAddress = new System.Windows.Forms.Label();
           this.SuspendLayout();
+          // 
+          // label1
+          // 
+          this.label1.AutoSize = true;
+          this.label1.Location = new System.Drawing.Point(18, 18);
+          this.label1.Name = "label1";
+          this.label1.Size = new System.Drawing.Size(113, 13);
+          this.label1.TabIndex = 0;
+          this.label1.Text = "Hive server running @";
+          // 
+          // lblAddress
+          // 
+          this.lblAddress.AutoSize = true;
+          this.lblAddress.Location = new System.Drawing.Point(18, 43);
+          this.lblAddress.Name = "lblAddress";
+          this.lblAddress.Size = new System.Drawing.Size(44, 13);
+          this.lblAddress.TabIndex = 1;
+          this.lblAddress.Text = "address";
           // 
           // MainForm
@@ -35,12 +55,18 @@
           this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
           this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-          this.ClientSize = new System.Drawing.Size(292, 273);
+          this.ClientSize = new System.Drawing.Size(304, 78);
+          this.Controls.Add(this.lblAddress);
+          this.Controls.Add(this.label1);
           this.Name = "MainForm";
           this.Text = "Hive Server Console";
           this.ResumeLayout(false);
+          this.PerformLayout();
 
         }
 
         #endregion
+
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label lblAddress;
     }
 }
Index: trunk/sources/HeuristicLab.Hive.Server/MainForm.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server/MainForm.cs	(revision 740)
+++ trunk/sources/HeuristicLab.Hive.Server/MainForm.cs	(revision 741)
@@ -10,9 +10,9 @@
 namespace HeuristicLab.Hive.Server
 {
-    public partial class MainForm : Form
-    {
-        public MainForm()
-        {
-            InitializeComponent();
+    public partial class MainForm : Form {
+        public MainForm(Uri address) {
+          InitializeComponent();
+          if(address != null)
+            this.lblAddress.Text = address.ToString();
         }
     }
Index: trunk/sources/HeuristicLab.Hive.Server/Response.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Server/Response.cs	(revision 741)
+++ trunk/sources/HeuristicLab.Hive.Server/Response.cs	(revision 741)
@@ -0,0 +1,40 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Hive.Server {
+  /// <summary>
+  /// Server response class
+  /// </summary>
+  [DataContract]
+  public class Response {
+    [DataMember]
+    public bool Success { get; set; }
+
+    [DataMember]
+    public string StatusMessage { get; set; } 
+  }
+}
