diff --git a/src/META-INF/explorviz.live_trace_processing.default.properties b/src/META-INF/explorviz.live_trace_processing.default.properties
index 1f87cf8b9f3347ccc3f0f739e41585f66305144d..377274a817cd6e480c803545d6c9776c4db6f620 100644
--- a/src/META-INF/explorviz.live_trace_processing.default.properties
+++ b/src/META-INF/explorviz.live_trace_processing.default.properties
@@ -13,6 +13,8 @@ explorviz.live_trace_processing.sending_buffer_size=65536
 
 ######################## Monitoring ########################
 
+explorviz.live_trace_processing.system_name=
+explorviz.live_trace_processing.ip_address=
 explorviz.live_trace_processing.host_name=
 explorviz.live_trace_processing.application_name=
 
diff --git a/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java b/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
index ff2a380115e4322e4865550ffa275171f8c95e09..b16277caa76f50a0215449d5c15889a3207cd951 100644
--- a/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
+++ b/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
@@ -275,14 +275,19 @@ class TCPReaderOneClient extends Thread {
 	}
 
 	private final void readInHostApplicationMetaData(final ByteBuffer buffer) {
+		final int systemnameId = buffer.getInt();
+		final int ipaddressId = buffer.getInt();
 		final int hostnameId = buffer.getInt();
 		final int applicationId = buffer.getInt();
 
 		try {
+			final String systemname = stringRegistry.getStringFromId(systemnameId);
+			final String ipaddress = stringRegistry.getStringFromId(ipaddressId);
 			final String hostname = stringRegistry.getStringFromId(hostnameId);
 			final String application = stringRegistry.getStringFromId(applicationId);
 
-			hostApplicationMetadata = new HostApplicationMetaDataRecord(hostname, application);
+			hostApplicationMetadata = new HostApplicationMetaDataRecord(systemname, ipaddress,
+					hostname, application);
 		} catch (final IdNotAvailableException e) {
 			putInWaitingMessages(buffer, HostApplicationMetaDataRecord.BYTE_LENGTH_WITH_CLAZZ_ID);
 		}
diff --git a/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java b/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java
index 66d202973b06cfc87b334e046251e45f5f7e5e28..5eddd014bd1a37252ed87fe8494cdf15bf32c989 100644
--- a/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java
+++ b/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java
@@ -13,7 +13,7 @@ public class TraceReconstructionBufferTest {
 	public void testInsertEvent() throws Exception {
 		final TraceReconstructionBuffer traceReconstructionBuffer = new TraceReconstructionBuffer();
 		traceReconstructionBuffer.insertEvent(new BeforeOperationEventRecord(1000, 1, 0, 0, "test",
-				new HostApplicationMetaDataRecord("testHost", "testApp")));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "testHost", "testApp")));
 		assertTrue(true); // TODO
 	}
 
diff --git a/test/explorviz/live_trace_processing/filter/reduction/AssociativityFilterTest.java b/test/explorviz/live_trace_processing/filter/reduction/AssociativityFilterTest.java
index f003980a576a6d2b84617be34c913259182ffd54..063d7842d723dfd7b2ac5f238bf6f338c5403c70 100644
--- a/test/explorviz/live_trace_processing/filter/reduction/AssociativityFilterTest.java
+++ b/test/explorviz/live_trace_processing/filter/reduction/AssociativityFilterTest.java
@@ -24,53 +24,53 @@ public class AssociativityFilterTest {
 		final List<AbstractEventRecord> traceEvents = new ArrayList<AbstractEventRecord>();
 
 		final BeforeOperationEventRecord beforeEvent = new BeforeOperationEventRecord(1L, 1L, 0, 0,
-				"test.package.Clazz.method1()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				"test.package.Clazz.method1()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(11L));
 		traceEvents.add(beforeEvent);
 
 		final BeforeOperationEventRecord beforeEvent1 = new BeforeOperationEventRecord(2L, 1L, 1,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent1.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2L));
 		traceEvents.add(beforeEvent1);
 
 		final AfterOperationEventRecord afterEvent1 = new AfterOperationEventRecord(4L, 1L, 2,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent1);
 
 		final BeforeOperationEventRecord beforeEvent2 = new BeforeOperationEventRecord(5L, 1L, 3,
-				0, "test.package.OtherClazz.method3()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.OtherClazz.method3()", new HostApplicationMetaDataRecord(
+						"testSystem", "testIp", "host", "application"));
 		beforeEvent2.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent2);
 
 		final AfterOperationEventRecord afterEvent2 = new AfterOperationEventRecord(6L, 1L, 4,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent2);
 
 		final BeforeOperationEventRecord beforeEvent3 = new BeforeOperationEventRecord(7L, 1L, 5,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent3.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2L));
 		traceEvents.add(beforeEvent3);
 
 		final AfterOperationEventRecord afterEvent3 = new AfterOperationEventRecord(9L, 1L, 6,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent3);
 
 		final BeforeOperationEventRecord beforeEvent4 = new BeforeOperationEventRecord(10L, 1L, 7,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent4.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent4);
 
 		final AfterOperationEventRecord afterEvent4 = new AfterOperationEventRecord(11L, 1L, 8,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent4);
 
 		final AfterOperationEventRecord afterEvent = new AfterOperationEventRecord(12L, 1L, 9,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent);
 
 		testTrace = new Trace(traceEvents, true);
@@ -81,23 +81,23 @@ public class AssociativityFilterTest {
 		final List<AbstractEventRecord> traceEvents = new ArrayList<AbstractEventRecord>();
 
 		final BeforeOperationEventRecord beforeEvent = new BeforeOperationEventRecord(1L, 1L, 0, 0,
-				"test.package.Clazz.method1()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				"test.package.Clazz.method1()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(11L));
 		traceEvents.add(beforeEvent);
 
 		final BeforeOperationEventRecord beforeEvent2 = new BeforeOperationEventRecord(5L, 1L, 3,
-				0, "test.package.OtherClazz.method3()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.OtherClazz.method3()", new HostApplicationMetaDataRecord(
+						"testSystem", "testIp", "host", "application"));
 		beforeEvent2.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent2);
 
 		final AfterOperationEventRecord afterEvent2 = new AfterOperationEventRecord(6L, 1L, 4,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent2);
 
 		final AfterOperationEventRecord afterEvent = new AfterOperationEventRecord(12L, 1L, 9,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent);
 
 		final Trace compareTrace = new Trace(traceEvents, true);
diff --git a/test/explorviz/live_trace_processing/filter/reduction/IterationFilterTest.java b/test/explorviz/live_trace_processing/filter/reduction/IterationFilterTest.java
index db8cf7427ce4c87ce7ea2c2c909581ca2cb1707a..897846758dafcbbfa3032809da9c7b5adcabde65 100644
--- a/test/explorviz/live_trace_processing/filter/reduction/IterationFilterTest.java
+++ b/test/explorviz/live_trace_processing/filter/reduction/IterationFilterTest.java
@@ -24,53 +24,53 @@ public class IterationFilterTest {
 		final List<AbstractEventRecord> traceEvents = new ArrayList<AbstractEventRecord>();
 
 		final BeforeOperationEventRecord beforeEvent = new BeforeOperationEventRecord(1L, 1L, 0, 0,
-				"test.package.Clazz.method1()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				"test.package.Clazz.method1()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(11L));
 		traceEvents.add(beforeEvent);
 
 		final BeforeOperationEventRecord beforeEvent1 = new BeforeOperationEventRecord(2L, 1L, 1,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent1.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2L));
 		traceEvents.add(beforeEvent1);
 
 		final AfterOperationEventRecord afterEvent1 = new AfterOperationEventRecord(4L, 1L, 2,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent1);
 
 		final BeforeOperationEventRecord beforeEvent2 = new BeforeOperationEventRecord(5L, 1L, 3,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent2.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent2);
 
 		final AfterOperationEventRecord afterEvent2 = new AfterOperationEventRecord(6L, 1L, 4,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent2);
 
 		final BeforeOperationEventRecord beforeEvent3 = new BeforeOperationEventRecord(7L, 1L, 5,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent3.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2L));
 		traceEvents.add(beforeEvent3);
 
 		final AfterOperationEventRecord afterEvent3 = new AfterOperationEventRecord(9L, 1L, 6,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent3);
 
 		final BeforeOperationEventRecord beforeEvent4 = new BeforeOperationEventRecord(10L, 1L, 7,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent4.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent4);
 
 		final AfterOperationEventRecord afterEvent4 = new AfterOperationEventRecord(11L, 1L, 8,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent4);
 
 		final AfterOperationEventRecord afterEvent = new AfterOperationEventRecord(12L, 1L, 9,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent);
 
 		trace = new Trace(traceEvents, true);
@@ -80,7 +80,7 @@ public class IterationFilterTest {
 	public void testReduction() {
 		final List<AbstractEventRecord> traceEvents = new ArrayList<AbstractEventRecord>();
 		final HostApplicationMetaDataRecord hostApplicationMetadata = new HostApplicationMetaDataRecord(
-				"host", "application");
+				"testSystem", "testIp", "host", "application");
 		final BeforeOperationEventRecord beforeEvent = new BeforeOperationEventRecord(1L, 1L, 0, 0,
 				"test.package.Clazz.method1()", hostApplicationMetadata);
 		traceEvents.add(beforeEvent);
diff --git a/test/explorviz/live_trace_processing/filter/reduction/MonotoneSubsequenceTest.java b/test/explorviz/live_trace_processing/filter/reduction/MonotoneSubsequenceTest.java
index e4d0cdf65711a9da82f9dd67c8a5d0a970dee4ec..fe4cbc0ebfa223ecefe355711820f45f0eabb806 100644
--- a/test/explorviz/live_trace_processing/filter/reduction/MonotoneSubsequenceTest.java
+++ b/test/explorviz/live_trace_processing/filter/reduction/MonotoneSubsequenceTest.java
@@ -24,53 +24,53 @@ public class MonotoneSubsequenceTest {
 		final List<AbstractEventRecord> traceEvents = new ArrayList<AbstractEventRecord>();
 
 		final BeforeOperationEventRecord beforeEvent = new BeforeOperationEventRecord(1L, 1L, 0, 0,
-				"test.package.Clazz.method1()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				"test.package.Clazz.method1()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(11L));
 		traceEvents.add(beforeEvent);
 
 		final BeforeOperationEventRecord beforeEvent1 = new BeforeOperationEventRecord(2L, 1L, 1,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent1.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2L));
 		traceEvents.add(beforeEvent1);
 
 		final AfterOperationEventRecord afterEvent1 = new AfterOperationEventRecord(4L, 1L, 2,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent1);
 
 		final BeforeOperationEventRecord beforeEvent2 = new BeforeOperationEventRecord(5L, 1L, 3,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent2.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent2);
 
 		final AfterOperationEventRecord afterEvent2 = new AfterOperationEventRecord(6L, 1L, 4,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent2);
 
 		final BeforeOperationEventRecord beforeEvent3 = new BeforeOperationEventRecord(7L, 1L, 5,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent3.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2L));
 		traceEvents.add(beforeEvent3);
 
 		final AfterOperationEventRecord afterEvent3 = new AfterOperationEventRecord(9L, 1L, 6,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent3);
 
 		final BeforeOperationEventRecord beforeEvent4 = new BeforeOperationEventRecord(10L, 1L, 7,
-				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.method2()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent4.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent4);
 
 		final AfterOperationEventRecord afterEvent4 = new AfterOperationEventRecord(11L, 1L, 8,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent4);
 
 		final AfterOperationEventRecord afterEvent = new AfterOperationEventRecord(12L, 1L, 9,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent);
 
 		trace = new Trace(traceEvents, true);
@@ -81,7 +81,7 @@ public class MonotoneSubsequenceTest {
 		final List<AbstractEventRecord> traceEvents = new ArrayList<AbstractEventRecord>();
 
 		final HostApplicationMetaDataRecord hostApplicationMetadata = new HostApplicationMetaDataRecord(
-				"host", "application");
+				"testSystem", "testIp", "host", "application");
 
 		final BeforeOperationEventRecord beforeEvent = new BeforeOperationEventRecord(1L, 1L, 0, 0,
 				"test.package.Clazz.method1()", hostApplicationMetadata);
diff --git a/test/explorviz/live_trace_processing/filter/reduction/PatternSummarizationTest.java b/test/explorviz/live_trace_processing/filter/reduction/PatternSummarizationTest.java
index a9e86eeff2c2621c422452e1d84ee5add8db6770..9410f4a8863d6734a2756c2221c887ff3ed24c4e 100644
--- a/test/explorviz/live_trace_processing/filter/reduction/PatternSummarizationTest.java
+++ b/test/explorviz/live_trace_processing/filter/reduction/PatternSummarizationTest.java
@@ -19,152 +19,153 @@ public class PatternSummarizationTest {
 		final List<AbstractEventRecord> traceEvents = new ArrayList<AbstractEventRecord>();
 
 		final BeforeOperationEventRecord beforeEvent = new BeforeOperationEventRecord(1L, 1L, 0, 0,
-				"test.package.Clazz.A()", new HostApplicationMetaDataRecord("host", "application"));
+				"test.package.Clazz.A()", new HostApplicationMetaDataRecord("testSystem", "testIp",
+						"host", "application"));
 		beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(31L));
 		traceEvents.add(beforeEvent);
 
 		final BeforeOperationEventRecord beforeEvent1 = new BeforeOperationEventRecord(2L, 1L, 1,
-				0, "test.package.Clazz.B()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.B()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent1.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2L));
 		traceEvents.add(beforeEvent1);
 
 		final AfterOperationEventRecord afterEvent1 = new AfterOperationEventRecord(4L, 1L, 2,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent1);
 
 		final BeforeOperationEventRecord beforeEvent2 = new BeforeOperationEventRecord(5L, 1L, 3,
-				0, "test.package.Clazz.C()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.C()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent2.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent2);
 
 		final AfterOperationEventRecord afterEvent2 = new AfterOperationEventRecord(6L, 1L, 4,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent2);
 
 		final BeforeOperationEventRecord beforeEvent3 = new BeforeOperationEventRecord(7L, 1L, 5,
-				0, "test.package.Clazz.D()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.D()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent3.setRuntimeStatisticInformation(new RuntimeStatisticInformation(9L));
 		traceEvents.add(beforeEvent3);
 
 		final BeforeOperationEventRecord beforeEvent4 = new BeforeOperationEventRecord(8L, 1L, 6,
-				0, "test.package.Clazz.E()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.E()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent4.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent4);
 
 		final AfterOperationEventRecord afterEvent4 = new AfterOperationEventRecord(9L, 1L, 7,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent4);
 
 		final BeforeOperationEventRecord beforeEvent5 = new BeforeOperationEventRecord(10L, 1L, 8,
-				0, "test.package.Clazz.F()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.F()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent5.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent5);
 
 		final AfterOperationEventRecord afterEvent5 = new AfterOperationEventRecord(11L, 1L, 9,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent5);
 
 		final BeforeOperationEventRecord beforeEvent6 = new BeforeOperationEventRecord(12L, 1L, 10,
-				0, "test.package.Clazz.E()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.E()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent6.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent6);
 
 		final AfterOperationEventRecord afterEvent6 = new AfterOperationEventRecord(13L, 1L, 11,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent6);
 
 		final BeforeOperationEventRecord beforeEvent7 = new BeforeOperationEventRecord(14L, 1L, 12,
-				0, "test.package.Clazz.F()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.F()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent7.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent7);
 
 		final AfterOperationEventRecord afterEvent7 = new AfterOperationEventRecord(15L, 1L, 13,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent7);
 
 		final AfterOperationEventRecord afterEvent3 = new AfterOperationEventRecord(16L, 1L, 14,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent3);
 
 		final BeforeOperationEventRecord beforeEvent8 = new BeforeOperationEventRecord(17L, 1L, 15,
-				0, "test.package.Clazz.B()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.B()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent8.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2L));
 		traceEvents.add(beforeEvent8);
 
 		final AfterOperationEventRecord afterEvent8 = new AfterOperationEventRecord(19L, 1L, 16,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent8);
 
 		final BeforeOperationEventRecord beforeEvent9 = new BeforeOperationEventRecord(20L, 1L, 17,
-				0, "test.package.Clazz.C()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.C()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent9.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent9);
 
 		final AfterOperationEventRecord afterEvent9 = new AfterOperationEventRecord(21L, 1L, 18,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent9);
 
 		final BeforeOperationEventRecord beforeEvent10 = new BeforeOperationEventRecord(22L, 1L,
-				19, 0, "test.package.Clazz.D()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				19, 0, "test.package.Clazz.D()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent10.setRuntimeStatisticInformation(new RuntimeStatisticInformation(9L));
 		traceEvents.add(beforeEvent10);
 
 		final BeforeOperationEventRecord beforeEvent11 = new BeforeOperationEventRecord(23L, 1L,
-				20, 0, "test.package.Clazz.E()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				20, 0, "test.package.Clazz.E()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent11.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent11);
 
 		final AfterOperationEventRecord afterEvent11 = new AfterOperationEventRecord(24L, 1L, 21,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent11);
 
 		final BeforeOperationEventRecord beforeEvent12 = new BeforeOperationEventRecord(25L, 1L,
-				22, 0, "test.package.Clazz.F()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				22, 0, "test.package.Clazz.F()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent12.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent12);
 
 		final AfterOperationEventRecord afterEvent12 = new AfterOperationEventRecord(26L, 1L, 23,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent12);
 
 		final BeforeOperationEventRecord beforeEvent13 = new BeforeOperationEventRecord(27L, 1L,
-				24, 0, "test.package.Clazz.E()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				24, 0, "test.package.Clazz.E()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent13.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent13);
 
 		final AfterOperationEventRecord afterEvent13 = new AfterOperationEventRecord(28L, 1L, 25,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent13);
 
 		final BeforeOperationEventRecord beforeEvent14 = new BeforeOperationEventRecord(29L, 1L,
-				26, 0, "test.package.Clazz.F()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				26, 0, "test.package.Clazz.F()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent14.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L));
 		traceEvents.add(beforeEvent14);
 
 		final AfterOperationEventRecord afterEvent14 = new AfterOperationEventRecord(30L, 1L, 27,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent14);
 
 		final AfterOperationEventRecord afterEvent10 = new AfterOperationEventRecord(31L, 1L, 28,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent10);
 
 		final AfterOperationEventRecord afterEvent = new AfterOperationEventRecord(32L, 1L, 29,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent);
 
 		// trace = new Trace(traceEvents, true);
@@ -175,62 +176,63 @@ public class PatternSummarizationTest {
 		final List<AbstractEventRecord> traceEvents = new ArrayList<AbstractEventRecord>();
 
 		final BeforeOperationEventRecord beforeEvent = new BeforeOperationEventRecord(1L, 1L, 0, 0,
-				"test.package.Clazz.A()", new HostApplicationMetaDataRecord("host", "application"));
+				"test.package.Clazz.A()", new HostApplicationMetaDataRecord("testSystem", "testIp",
+						"host", "application"));
 		beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(31L));
 		traceEvents.add(beforeEvent);
 
 		final BeforeOperationEventRecord beforeEvent1 = new BeforeOperationEventRecord(2L, 1L, 1,
-				0, "test.package.Clazz.B()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.B()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent1.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2, 4, 8));
 		traceEvents.add(beforeEvent1);
 
 		final AfterOperationEventRecord afterEvent1 = new AfterOperationEventRecord(4L, 1L, 2,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent1);
 
 		final BeforeOperationEventRecord beforeEvent2 = new BeforeOperationEventRecord(5L, 1L, 3,
-				0, "test.package.Clazz.C()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.C()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent2.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2, 2, 2));
 		traceEvents.add(beforeEvent2);
 
 		final AfterOperationEventRecord afterEvent2 = new AfterOperationEventRecord(6L, 1L, 4,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent2);
 
 		final BeforeOperationEventRecord beforeEvent3 = new BeforeOperationEventRecord(7L, 1L, 5,
-				0, "test.package.Clazz.D()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.D()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent3.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2, 18, 162));
 		traceEvents.add(beforeEvent3);
 
 		final BeforeOperationEventRecord beforeEvent4 = new BeforeOperationEventRecord(8L, 1L, 6,
-				0, "test.package.Clazz.E()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.E()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent4.setRuntimeStatisticInformation(new RuntimeStatisticInformation(4, 4, 4));
 		traceEvents.add(beforeEvent4);
 
 		final AfterOperationEventRecord afterEvent4 = new AfterOperationEventRecord(9L, 1L, 7,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent4);
 
 		final BeforeOperationEventRecord beforeEvent5 = new BeforeOperationEventRecord(10L, 1L, 8,
-				0, "test.package.Clazz.F()", new HostApplicationMetaDataRecord("host",
-						"application"));
+				0, "test.package.Clazz.F()", new HostApplicationMetaDataRecord("testSystem",
+						"testIp", "host", "application"));
 		beforeEvent5.setRuntimeStatisticInformation(new RuntimeStatisticInformation(4, 4, 4));
 		traceEvents.add(beforeEvent5);
 
 		final AfterOperationEventRecord afterEvent5 = new AfterOperationEventRecord(11L, 1L, 9,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent5);
 
 		final AfterOperationEventRecord afterEvent3 = new AfterOperationEventRecord(16L, 1L, 14,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent3);
 
 		final AfterOperationEventRecord afterEvent = new AfterOperationEventRecord(32L, 1L, 29,
-				new HostApplicationMetaDataRecord("host", "application"));
+				new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application"));
 		traceEvents.add(afterEvent);
 
 		// final Trace compareTrace = new Trace(traceEvents, true);