273 lines
9.4 KiB
TeX
273 lines
9.4 KiB
TeX
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\documentclass[12pt,a4paper]{book} % o article, book, ...
|
|
|
|
% TODO inserire vari packages (todonotes, ecc.)
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% packages...
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[english, italian]{babel}
|
|
\usepackage[hyphens]{url}
|
|
%\usepackage{showframe}
|
|
|
|
% Per generare il file PDF aderente alle specifiche PDF/A-1b. Verificarne poi la validità.
|
|
\usepackage[a-1b,mathxmp]{pdfx}
|
|
|
|
\usepackage{hyperref}
|
|
\hypersetup{
|
|
colorlinks,
|
|
linkcolor={black!100!black},
|
|
citecolor={blue!100!black},
|
|
urlcolor={blue!100!black}
|
|
}
|
|
|
|
\usepackage{graphicx}
|
|
|
|
\usepackage{geometry}
|
|
|
|
\usepackage{caption}
|
|
\captionsetup[figure]{labelsep=period}
|
|
|
|
|
|
\usepackage{lipsum} % Per inserire testo a caso in attesa di realizzare i capitoli
|
|
|
|
\usepackage{listings} % Per inserire codice formattato
|
|
%\lstset{
|
|
%lstset va usato dopo l'inizio del document e ogni volta che si vuole cambiare/impostare il linguaggio da formattare
|
|
% language=bash
|
|
%frame=single,
|
|
%breaklines=true,
|
|
%postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}},
|
|
%basicstyle=\ttfamily\footnotesize
|
|
%}
|
|
|
|
\usepackage[backend=biber]{biblatex}
|
|
|
|
\usepackage{csquotes}
|
|
|
|
\usepackage{epigraph} % per le frasi inizio capitolo
|
|
|
|
\usepackage{fancyhdr}
|
|
\pagestyle{fancy}
|
|
\fancyhead[LEO]{\slshape \leftmark} %section
|
|
\fancyhead[REO]{\thepage}
|
|
\setlength{\headheight}{14.5pt}
|
|
\setlength{\marginparwidth}{2cm}
|
|
|
|
%\usepackage{etoolbox}
|
|
|
|
\usepackage[colorinlistoftodos]{todonotes}
|
|
%\usepackage[disable]{todonotes}
|
|
|
|
\usepackage{refcheck}
|
|
|
|
\usepackage{tikz}
|
|
\usetikzlibrary{arrows}
|
|
|
|
|
|
|
|
\newenvironment{usecaseenv}{
|
|
\def\arraystretch{2}
|
|
\begin{tabular}{lp{10.5cm}}\hline
|
|
}{
|
|
\hline\end{tabular}
|
|
\def\arraystretch{1}
|
|
}
|
|
|
|
\newcommand\addheading[1]{
|
|
\multicolumn{2}{c}{\textbf{\textit{#1}}}\\ \hline
|
|
}
|
|
\newcommand\addrow[2]{\textbf{#1}\begin{minipage}[t][][t]{10.5cm} \end{minipage}%
|
|
&\begin{minipage}[t][][t]{10.5cm}
|
|
#2
|
|
\end{minipage}\\
|
|
}
|
|
|
|
% The actual command definition
|
|
\let\oldFigureName\figurename %save the old definition of the caption's figure name
|
|
\newcommand{\usecase}[5]{
|
|
\vspace*{0.5cm} % adds a bit of padding to make it look nicer
|
|
\renewcommand{\figurename}{Use case} %call figure name "Use case" instead
|
|
\begin{figure}[htbp]
|
|
\begin{center}
|
|
\begin{usecaseenv}
|
|
\addheading{#1}
|
|
\addrow{Use case:}{#2}
|
|
\addrow{Soggetti:}{#3}
|
|
\addrow{Obbiettivi:}{#4}
|
|
\end{usecaseenv}
|
|
\end{center}
|
|
\caption{#5}
|
|
\end{figure}
|
|
\renewcommand{\figurename}{\oldFigureName} %reset caption figure name
|
|
}
|
|
|
|
\addbibresource{Biblio.bib}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{document}
|
|
\newgeometry{centering}
|
|
% Frontespizio
|
|
\pagenumbering{Roman}
|
|
\begin{titlepage}
|
|
\begin{center}
|
|
\includegraphics[width=\textwidth]{Logo.jpg}\\
|
|
{\large{\em Corso di Laurea in Informatica per la comunicazione digitale}}
|
|
\end{center}
|
|
\vspace{12mm}
|
|
\begin{center}
|
|
{\huge{\bf Streaming decentralizzato di}}\\
|
|
\vspace{4mm}
|
|
{\huge{\bf contenuti audiovisivi}}\\
|
|
\end{center}
|
|
\vspace{12mm}
|
|
\begin{flushleft}
|
|
{\large{\bf Relatore:}}
|
|
{\large{Trentini Andrea}}\\
|
|
%{\large{\bf Correlatore:}}
|
|
%{\large{...}}\\
|
|
\end{flushleft}
|
|
\vfill
|
|
\begin{flushright}
|
|
\parbox{1.7in}{
|
|
{\large{\bf Tesi di Laurea di:}}\\
|
|
{\large{Mirko Milovanovic}}\\
|
|
{\large{\bf Matricola: \normalfont 870671}}
|
|
}
|
|
\end{flushright}
|
|
\vfill
|
|
\begin{center}
|
|
{\large{\bf Anno Accademico 2021-2022}}
|
|
\end{center}
|
|
\end{titlepage}
|
|
|
|
\tableofcontents
|
|
\thispagestyle{empty}
|
|
|
|
%\chapter o \sections (dipende dal documentclass e cosa vogliamo fare)
|
|
%\makeatletter
|
|
%\patchcmd{\@makechapterhead}{50\p@}{0pt}{}{}
|
|
%\patchcmd{\@makeschapterhead}{50\p@}{0pt}{}{}
|
|
%\makeatother
|
|
|
|
\chapter{Introduzione}
|
|
\pagenumbering{arabic}
|
|
\setcounter{page}{1}
|
|
Al giorno d'oggi internet viene sempre più utilizzato...
|
|
|
|
\todo{atrent: soprattutto qui devi rendere ben chiara la situazione attuale della rete coi suoi problemi di forte centralizzazione e poi subito dopo dichiarare lo scopo che ti prefiggi, dichiarando anche il metodo (studio della letteratura, esame di sw esistenti, test sul campo, eventuale realizzazione di strumenti)}
|
|
|
|
%TCP/IP over Avian Carriers\cite{waitzman1990standard}\\
|
|
\newpage
|
|
\section{TCP/IP, Internet e World Wide Web}
|
|
\todo{Spiegare inizio di internet, dei metodi di comunicazione unicast/multicast/broadcast e come si applicano alle reti a foresta e albero rispettivamente}
|
|
TODO: Esempi di topologie di rete che possiamo incontrare:
|
|
|
|
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2cm,
|
|
thick,main node/.style={circle,draw,font=\sffamily\Large\bfseries}]
|
|
|
|
\node[main node] (1) {1};
|
|
\node[main node] (2) [below left of=1] {2};
|
|
\node[main node] (3) [below left of=2] {3};
|
|
\node[main node] (4) [below right of=1] {4};
|
|
\node[main node] (5) [below right of=2] {5};
|
|
\node[main node] (6) [below right of=4] {6};
|
|
\node[main node] (7) [below right of=3] {7};
|
|
|
|
\draw (1) to [out=60,in=315,looseness=3] (5);
|
|
|
|
\path[every node/.style={font=\sffamily\small}]
|
|
(1)
|
|
edge node {} (4)
|
|
edge node {} (2)
|
|
(2)
|
|
edge node {} (4)
|
|
edge [bend right] node {} (3)
|
|
(3)
|
|
edge node [right] {} (2)
|
|
edge [bend right] node {} (5)
|
|
(4)
|
|
edge node [left] {} (3)
|
|
(5)
|
|
(6);
|
|
\end{tikzpicture}
|
|
|
|
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2cm,
|
|
thick,main node/.style={circle,draw,font=\sffamily\Large\bfseries}]
|
|
|
|
\node[main node] (1) {1};
|
|
\node[main node] (2) [below left of=1] {2};
|
|
\node[main node] (3) [below left of=2] {3};
|
|
\node[main node] (4) [below right of=1] {4};
|
|
\node[main node] (5) [below right of=2] {5};
|
|
|
|
\path[every node/.style={font=\sffamily\small}]
|
|
(1)
|
|
edge node {} (4)
|
|
edge node {} (2)
|
|
(2)
|
|
edge node {} (5)
|
|
edge node {} (3)
|
|
(3)
|
|
(4)
|
|
edge node {} (5)
|
|
(5);
|
|
\end{tikzpicture}
|
|
|
|
\newpage
|
|
\section{Web e centralizzazione con client/server}
|
|
\section{Live streaming e interaction}
|
|
\newpage
|
|
\section{Use cases}
|
|
Vediamo degli esempi di come questa interazione potrebbe essere svolta:
|
|
\usecase{Esempio d'interazione one to many}{Un utente davanti al proprio computer vorrebbe condividere quello che vede a schermo con dei propri amici o followers}{Utente principale, viewers, computer, connessione internet}{Condivisione in live streaming di un contenuto a schermo via internet con TCP/IP}{}
|
|
\usecase{Esempio d'interazione many to many}{Più utenti al proprio computer vorrebbero comunicare e Interagire tra di loro contemporaneamente simil conference-call}{Utenti multipli, computer, connessione internet, microfono, telecamera}{Live streaming e interazione real-time tra utenti via internet con TCP/IP}{}
|
|
\\Nei due esempi sopra citati si può notare, un elemento comune a entrambe le situazioni, ovvero il voler condividere con altre persone contenuti audio e video via Internet, nello specifico sul Web con dispositivi che verrebbero considerati completi e aperti
|
|
|
|
\chapter{Decentralizzazione}
|
|
\todo{Iniziare a spiegare come creare questa piattaforma ideale vs sistemi centralizzati esistenti}
|
|
In base a quello che abbiamo esposto fin'ora sorge spontanea la domanda e di conseguenza la ricerca di una piattaforma decentralizzata che soddisfi alcuni requisiti essenziali o meno.
|
|
\\Possiamo azzardare a stilare l'elenco di requisiti e features che vorremmo fossero presenti in questa piattaforma decentralizzata:
|
|
\begin{enumerate}
|
|
\item Decentralizzazione totale della infrastruttura
|
|
%\begin{description}
|
|
%\item Quindi eliminazione del rischio di controllo da parte di un singolo provider
|
|
%\item[Note:] I would like to describe something here
|
|
%\end{description}
|
|
\item Facilità nell'utilizzo
|
|
\item Basso costo di entrata
|
|
\item Interazione tra utenti in real time
|
|
\item Moderazione
|
|
\item Bassa latenza
|
|
\item Possibilità di monetizzazione del contenuto da parte dei singoli utenti
|
|
\item Altro? Si accettano proposte
|
|
\end{enumerate}
|
|
|
|
Andiamo ad analizzare meglio la nostra proposta:
|
|
|
|
\newpage
|
|
\todo{Sarebbe magari utile usare uno spettro come viene fatto nel libro di Cittadinanza digitale}
|
|
Punto 1: Quindi eliminazione del rischio di controllo da parte di un singolo, Resistenza agli attacchi DDOS, no single point of failure
|
|
|
|
Punto 2: Se la piattaforma è accessibile via Web o standalone app, o mobile app, se ci sono situazioni di relatività della rete con blocco di porte non standard e/o protocolli
|
|
|
|
Punto 3: È relazionato al punto 2 con la questione di facilità di accesso e utilizzo rispetto a piattaforme già esistenti PERO' nello specifico sarebbe più la parte di facilità di passaggio da una piattaforma all'altra da parte degli streamer e nella compatibilità dei software/strumenti
|
|
|
|
Punto 4: Banalmente in caso di simil twitch una chat tra utenti (quindi con autenticazione), in caso di conference audio/video condiviso tra più utenti in real time
|
|
|
|
Punto 5: moderazione degli utenti/streamer se ha senso farla
|
|
|
|
Punto 6: relazionato al punto 1, abbastanza ovvia come cosa
|
|
|
|
Punto 7: io la penso come incentivo da parte di una rete/piattaforma di attrarre nuove utenze
|
|
|
|
\chapter{Cap3}
|
|
\lipsum[0-50]
|
|
\chapter{Cap4}
|
|
\lipsum[0-50]
|
|
|
|
\nocite{*}
|
|
\printbibliography
|
|
\addcontentsline{toc}{chapter}{Bibliografia}
|
|
|
|
\end{document} |