%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[12pt,a4paper,twoside,openright]{report} % 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{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} % 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} \nocite{*} \printbibliography \addcontentsline{toc}{chapter}{Bibliografia} \end{document}