Commit 66410996 authored by MartinFIT's avatar MartinFIT

Update - see description

- PCAP files moved into /PCAP_Input
- Corected Prototype_ClassDiagram
- Performance on Celsius
- Finish - extensions
parent 91c1717a
......@@ -25,11 +25,11 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="StorePcapHandler.java" pinned="false" current-in-tab="true">
<file leaf-file-name="StorePcapHandler.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cz/vutbr/fit/distributedrepository/communication/consumer/handler/StorePcapHandler.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="947">
<caret line="155" column="24" lean-forward="false" selection-start-line="155" selection-start-column="24" selection-end-line="155" selection-end-column="24" />
<state relative-caret-position="136">
<caret line="8" column="26" lean-forward="false" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
<folding>
<element signature="e#4172#4363#0" expanded="true" />
<element signature="e#4362#4363#0" expanded="true" />
......@@ -38,11 +38,11 @@
</provider>
</entry>
</file>
<file leaf-file-name="LoadPcapHandler.java" pinned="false" current-in-tab="false">
<file leaf-file-name="LoadPcapHandler.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/cz/vutbr/fit/distributedrepository/communication/consumer/handler/LoadPcapHandler.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="85">
<caret line="93" column="0" lean-forward="false" selection-start-line="93" selection-start-column="0" selection-end-line="93" selection-end-column="0" />
<state relative-caret-position="383">
<caret line="130" column="37" lean-forward="true" selection-start-line="130" selection-start-column="37" selection-end-line="130" selection-end-column="37" />
<folding />
</state>
</provider>
......@@ -89,8 +89,8 @@
<find>TestDatabaseSpringBoot</find>
<find>request.getDataSource().getUri()</find>
<find>.debug</find>
<find>hdfsShell</find>
<find>processedTmpFile</find>
<find>hdfsShell</find>
</findStrings>
<dirStrings>
<dir>C:\Users\Martin Josefik\IdeaProjects\DistributedRepository</dir>
......@@ -196,7 +196,7 @@
<select />
</treeState>
</component>
<component name="ProjectFrameBounds" extendedState="7">
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-3" />
<option name="width" value="1378" />
<option name="height" value="780" />
......@@ -767,12 +767,12 @@
<workItem from="1523085707978" duration="6249000" />
<workItem from="1523603376999" duration="1785000" />
<workItem from="1523625762384" duration="4693000" />
<workItem from="1524757641552" duration="3858000" />
<workItem from="1524757641552" duration="4635000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="395002000" />
<option name="totallyTimeSpent" value="395779000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -784,7 +784,7 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1382" height="754" extended-state="7" />
<frame x="-8" y="-8" width="1382" height="754" extended-state="6" />
<layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Tool Output" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
......@@ -810,7 +810,7 @@
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.46859902" sideWeight="0.48940998" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="14" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32850242" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20499243" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20499243" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3252818" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="true" content_ui="tabs" />
......@@ -1207,18 +1207,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cz/vutbr/fit/distributedrepository/communication/consumer/handler/LoadPcapHandler.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="85">
<caret line="93" column="0" lean-forward="false" selection-start-line="93" selection-start-column="0" selection-end-line="93" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cz/vutbr/fit/distributedrepository/communication/consumer/handler/StorePcapHandler.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="947">
<caret line="155" column="24" lean-forward="false" selection-start-line="155" selection-start-column="24" selection-end-line="155" selection-end-column="24" />
<state relative-caret-position="136">
<caret line="8" column="26" lean-forward="false" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
<folding>
<element signature="e#4172#4363#0" expanded="true" />
<element signature="e#4362#4363#0" expanded="true" />
......@@ -1226,6 +1218,14 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cz/vutbr/fit/distributedrepository/communication/consumer/handler/LoadPcapHandler.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="383">
<caret line="130" column="37" lean-forward="true" selection-start-line="130" selection-start-column="37" selection-end-line="130" selection-end-column="37" />
<folding />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
......
......@@ -23,4 +23,4 @@ docker run \
-Dspring.kafka.bootstrap-servers=$SPRING_KAFKA_BOOTSTRAP_SERVERS \
-Dspring.kafka.producer.bootstrap-servers=$SPRING_KAFKA_PRODUCER_BOOTSTRAP_SERVERS \
-cp producer-demo-1.0-SNAPSHOT.jar \
-jar target/producer-demo-1.0.jar target/classes/PCAP
\ No newline at end of file
-jar target/producer-demo-1.0.jar ../../PCAP_Input
\ No newline at end of file
This diff is collapsed.
......@@ -774,7 +774,7 @@ Jeden objekt kritéria je reprezentován instancí třídy \texttt{KafkaCriteria
\item \texttt{values} -- Operace \texttt{in} a~\texttt{nin} vyžadují seznam hodnot k~filtrování. K~předání seznamu objektů slouží tento parametr.
\end{itemize}
\noindent Objektů typu \texttt{KafkaCriteria} lze sestavit libovolné množství, a~předat je poté do zprávy požadavku \texttt{KafkaRequest} \ref{designCommunication}. Jednotlivé filtrovací operace se společně s~uvedenými atributy a~hodnotami zřetězí pomocí logické operace \texttt{and} do objektu třídy \texttt{Criteria}.
\noindent Objektů typu \texttt{KafkaCriteria} lze sestavit libovolné množství, a~předat je poté do zprávy požadavku \texttt{KafkaRequest} \ref{designCommunication}. Jednotlivé filtrovací operace se společně s~uvedenými atributy a~hodnotami zřetězí pomocí logické operace \texttt{AND} do objektu třídy \texttt{Criteria}.
\subsection{Scénáře}
Tato sekce uvede podporované příkazy a~jakým způsobem jsou zpracovány. Podporovány jsou dva scénáře -- uložení PCAP souboru a~čtení paketů podle zadaných kritérií. Jádro distribuovaného repositáře ilustruje diagram tříd \ref{FIG_DRCoreClassDiagram}.
......@@ -854,7 +854,7 @@ V původní implementaci byly pakety také ukládány neefektivně z pohledu vý
Test rychlosti byl proveden na této hardwarové konfiguraci:
\vspace{0.5cm}
\noindent \texttt{CPU: Intel Core i5-4200U 1.6Ghz @ 2.6Ghz} \\
\noindent \texttt{CPU: Intel Core i5-4200U 1.6 GHz @ 2.6 GHz} \\
\texttt{RAM: 8 GB} \\
\texttt{OS: Windows 8.1}
......@@ -896,6 +896,29 @@ Z uvedeného grafu pro rychlost prototypu \ref{FIG_PerformanceChartPrototype} vy
\noindent Pozn.: Z~výše uvedené hardwarové konfigurace vyplývá, že nebylo využito maximálního potenciálu použitých technologií, a~to zejména distribuovanosti systému, který by běžel místo jednoho počítače v~clusteru. V~takovém prostředí a s rychlým internetovým připojením by byla výkonnost systému znatelně vyšší.
\section{Srovnání výkonu finálního systému na odlišných HW konfiguracích}
Předchozí porovnání prototypu a výsledného systému bylo provedeno na běžně dostupné hardwarové konfiguraci, které bývá součástí levnějších notebooků. Tomu odpovídala i zvolená množina vstupních dat obsahující pouze několik tisíc paketů. V této sekci bude proveden test výkonnosti na silnější HW konfiguraci se vstupními PCAP soubory, které dohromady obsahují miliony paketů.
Testovací scénář zahrnuje odeslání příkazů \texttt{STORE\_PCAP} z klientské aplikace. Klient nečeká na odpovědi z distribuovaného úložiště, prostě odesílá příkazy, dokud existují PCAP soubory ve zvoleném adresáři (název adresáře je předán jako vstupní parametr). Příkazy jsou uchovány v Kafka frontě a postupně čteny v distribuovaném repositáři. Po zpracování jednotlivých příkazů se odesílají odpovědi klientovi.
\subsection{HW konfigurace A}
Prvním testovacím strojem je notebook \texttt{Fujitsu Celsius H730}, specifikace:
\vspace{0.5cm}
\noindent \texttt{CPU: Intel Core i7-4910MQ 2.9 GHz @ 3.9 GHz} \\
\texttt{RAM: 32 GB} \\
\texttt{Drive: SSD Samsung 500 GB} \\
\texttt{OS: Windows 7 Enterprise}
\vspace{0.5cm}
\noindent Virtuální stroj v~rámci Docker měl toto nastavení:
\vspace{0.5cm}
\noindent \texttt{CPU: 4 cores} \\
\texttt{RAM: 24 GB} \\
\texttt{OS: boot2docker}
\subsection{HW konfigurace B}
\newpage
\section{Doporučené HW požadavky distribuovaných technologií}
......@@ -962,5 +985,17 @@ Implementovaný systém řeší požadované aspekty, je založen na distribuova
\noindent \textbf{TODO: Vyhodnocení výkonu}
\section{Navržená rozšíření}
Zde budou diskutována případná rozšíření, která by poskytla pokročilé vlastnosti nástroje, a ještě větší použitelnost.
\subsubsection{Kritéria pro dotazování}
Aktuální stav dotazování podle kritérií zahrnuje pouze tvorbu výrazu, jehož podvýrazy jsou propojeny pouze operátorem \texttt{AND}. Podvýraz je tvořen porovnávacím operátorem (\texttt{is}, \texttt{ne}, \texttt{lt}, \texttt{lte}, \texttt{gt}, \texttt{gte}, \texttt{in}, \texttt{nin}) a hledanou hodnotou. Dodáním implementace podporující ostatní logické operátory \texttt{OR}, \texttt{NOT} a \texttt{NOR}, by šlo vytvářet složitější dotazy.
\subsubsection{Klientská aplikace s grafickým rozhraním}
Systém distribuovaného úložiště lze ovládat pomocí mnoha parametrů, lze specifikovat příkazy, umístění vstupních dat, názvy front, a v neposlední řadě také variabilní kritéria pro dotazování. Dodaná klientská aplikace představuje jednoduchý demonstrativní nástroj, který lze spustit z příkazové řádky. Zahrnuje pouze malou podmnožinu případů použití celého systému, napevno zadaná kritéria pro dotazování, a také neobsahuje párování zpráv požadavků a odpovědí pomocí ID.
V klientské aplikaci s grafickým rozhraním by mělo jít intuitivně sestavit zprávu požadavku výběrem parametrů a odeslat danou zprávu. Grafické rozhraní by mělo umožnit přidávání dotazovacích kritérií podle typu forenzních dat. Párování zpráv požadavků a odpovědí podle ID zpráv lze realizovat v přehledné tabulce.
\subsubsection{Monitorování odchozích a příchozích zpráv}
Jedná se zase spíše o rozšíření klientské aplikace, souvisí s párováním zpráv pomocí ID. Odchozí i příchozí zprávy by mohly být zaznamenávány do databáze a svázány vztahem přes společná ID.
%=========================================================================
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment