diff --git a/Biblio.bib b/Biblio.bib index 0015bc8..349bfd2 100644 --- a/Biblio.bib +++ b/Biblio.bib @@ -7,6 +7,7 @@ year = {2020}, publisher = {Ledizioni} } + @misc{Redazione_2020, title = {“Cittadinanza digitale e tecnocivismo. In un mondo digitale la cittadinanza inizia dai bit di Andrea Trentini", Giovanni Biscuolo e Andrea Rossi}, url = {https://www.letture.org/cittadinanza-digitale-e-tecnocivismo-andrea-trentini-giovanni-biscuolo-andrea-rossi}, @@ -16,6 +17,7 @@ month = {Dec}, language = {it-IT} } + @misc{ARPANET_2022, title = {{ARPANET} --- {W}ikipedia{,} The Free Encyclopedia}, rights = {Creative Commons Attribution-ShareAlike License}, @@ -28,6 +30,7 @@ month = {Aug}, language = {en} } + @misc{w3c, author = {W3C}, title = {What is the difference between the Web and the Internet?}, @@ -35,6 +38,7 @@ year = {2021}, note = {[Accessed 31-Aug-2022]} } + @article{article, author = {Ali, Sawsan and Alauldeen, Rana and Ruaa, Ali and Khamees, Ruaa}, year = {2020}, @@ -58,4 +62,30 @@ howpublished = {\url{https://it.wikipedia.org/wiki/Licenza_(informatica)}}, year = {2022}, note = {[Accessed 25-Jan-2023]}, +} + +@inproceedings{theTwitchCase, + author = {Deng, Jie and Tyson, Gareth and Cuadrado, Félix and Uhlig, Steve}, + year = {2017}, + month = {02}, + pages = {60-71}, + title = {Internet Scale User-Generated Live Video Streaming: The Twitch Case}, + isbn = {978-3-319-54327-7}, + doi = {10.1007/978-3-319-54328-4_5} +} + +@misc{wikipediaTwitchservice, + author = {}, + title = {{T}witch (service) - {W}ikipedia --- en.wikipedia.org}, + howpublished = {\url{https://en.wikipedia.org/wiki/Twitch_(service)}}, + year = {}, + note = {[Accessed 09-Feb-2023]}, +} + +@misc{twitchTracker, + author = {}, + title = {{T}witchTracker --- twitchtracker.com}, + howpublished = {\url{https://twitchtracker.com/statistics/active-streamers}}, + year = {}, + note = {[Accessed 11-Feb-2023]}, } \ No newline at end of file diff --git a/Tesi.tex b/Tesi.tex index b29c69d..5bf0a04 100644 --- a/Tesi.tex +++ b/Tesi.tex @@ -6,7 +6,7 @@ \usepackage[utf8]{inputenc} \usepackage[english, italian]{babel} \usepackage[hyphens]{url} -%\usepackage{showframe} +\usepackage{showframe} % Per generare il file PDF aderente alle specifiche PDF/A-1b. Verificarne poi la validità. \usepackage[a-1b,mathxmp]{pdfx} @@ -23,6 +23,10 @@ \usepackage{geometry} +\usepackage{tabularx} + +\usepackage{booktabs} + \usepackage{caption} \captionsetup[figure]{labelsep=period} @@ -70,18 +74,36 @@ \newenvironment{usecaseenv}{ \def\arraystretch{2} - \begin{tabular}{lp{10.5cm}}\hline + \begin{tabular}{p{3cm}p{10cm}}\hline }{ \hline\end{tabular} \def\arraystretch{1} } +\newenvironment{characteristicsEnv}{ + \def\arraystretch{2} + \begin{tabular}{lp{8cm}}\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 + +\newcommand\addrow[2]{ + \textbf{#1} + &\begin{minipage}[t][][t]{10cm} + #2 + \end{minipage}\\ +} + +\newcommand\addrowservice[2]{ + \textbf{#1} + &\begin{minipage}[t][][t]{8cm} + #2 \end{minipage}\\ } @@ -104,6 +126,26 @@ \renewcommand{\figurename}{\oldFigureName} %reset caption figure name } +\let\oldFigureName\figurename %save the old definition of the caption's figure name +\newcommand{\serviceCharacteristics}[6]{ + \vspace*{0.5cm} % adds a bit of padding to make it look nicer + \renewcommand{\figurename}{} %call figure name "Use case" instead + \begin{figure}[htbp] + \begin{center} + \begin{characteristicsEnv} + \addheading{Caratteristiche} + \addrowservice{Soggetto iniziatore:}{#1} + \addrowservice{Partecipanti:}{#2} + \addrowservice{Architettura software:}{#3} + \addrowservice{Architettura hardware:}{#4} + \addrowservice{Tipo di dato condiviso:}{#5} + \addrowservice{Licenza:}{#6} + \end{characteristicsEnv} + \end{center} + \end{figure} + \renewcommand{\figurename}{\oldFigureName} %reset caption figure name +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \newgeometry{centering} @@ -271,10 +313,13 @@ Un sistema Client/Server è un tipo di computazione distribuita in cui i clienti \subsection{Forte dipendenza da software proprietario e perdita di privacy} \subsection{Single point of failure} \section{Live streaming e interaction} + \newpage \subsection{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 sullo schermo con i 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}{} @@ -282,15 +327,15 @@ Nei due esempi sopra citati si può notare un elemento comune a entrambe le situ Azienda: \begin{itemize} -\item Live stream di un evento/riunione interna + \item Live stream di un evento/riunione interna -\item Assistenza remota + \item Assistenza remota -\item Conference calls + \item Conference calls -\item come utente o come provider (distributore) + \item come utente o come provider (distributore) -\item Riduzione dei costi/banda necessaria + \item Riduzione dei costi/banda necessaria \end{itemize} Education: @@ -302,15 +347,15 @@ Education: Common Joe: \begin{itemize} \item Lan party - + \item Gaming/Streamer - + \item Conference calls - + \item Security cameras - + \item Content moderation - + \item Small friends group live sharing \end{itemize} @@ -318,7 +363,7 @@ Governo: \begin{itemize} \item Comunicazioni video di emergenza - + \item Click day like overload avoidance \end{itemize} @@ -334,15 +379,15 @@ Prima di iniziare con il ``dive-in'' vorremmo spendere qualche riga per fare un \begin{itemize} \item Livelli di decentralizzazione - \begin{description} - \item[fdfdrfdgdf] - \item fsdsfffesdftrtggrd - \end{description} + \begin{description} + \item[fdfdrfdgdf] + \item fsdsfffesdftrtggrd + \end{description} \item Licenza - \begin{description} - \item Per licenza si intende un tipo di contratto con il quale il titolare dei diritti di sfruttamento economico sul software (programma informatico) definisce il regime giuridico di circolazione e le limitazioni nell'utilizzo e nella cessione dell'opera (che sia un'opera creativa, o un software, inteso come programma) \cite[]{wikipediaLicenzainformatica} che l'utente di un servizio deve accettare per utilizzare il suddetto. - \end{description} - \item fsdfsdfsdf + \begin{description} + \item Per licenza si intende un tipo di contratto con il quale il titolare dei diritti di sfruttamento economico sul software (programma informatico) definisce il regime giuridico di circolazione e le limitazioni nell'utilizzo e nella cessione dell'opera (che sia un'opera creativa, o un software, inteso come programma) \cite[]{wikipediaLicenzainformatica} che l'utente di un servizio deve accettare per utilizzare il suddetto. + \end{description} + \item Architettura \item fsfrterh \item ert retgertg \item trest ebtre @@ -356,147 +401,160 @@ Fortemente legato al cap 3.1, bisogna vedere come fare Elenco iniziale del software trovato: \begin{itemize} \item Ace Stream - \begin{description} - \item E' un software proprietario standalone da installare su PC/Android che utilizza come basecode VLC player aggiungendoci sopra tutta la parte P2P. Mette a disposizione anche il software server per iniziare il broadcast delle trasmissioni - \item Ci sono delle API pubbliche ma il software pare sia closed source - \item Descrizione dal sito "Ace Stream is a media platform of a new generation with a decentralized system of delivering and storing multimedia data, which is designed to create Internet services with functions of AVoD (Audio and Video on Demand) and Live Streaming, with extensive social and interactive component. - \end{description} + \begin{description} + \item E' un software proprietario standalone da installare su PC/Android che utilizza come basecode VLC player aggiungendoci sopra tutta la parte P2P. Mette a disposizione anche il software server per iniziare il broadcast delle trasmissioni + \item Ci sono delle API pubbliche ma il software pare sia closed source + \item Descrizione dal sito "Ace Stream is a media platform of a new generation with a decentralized system of delivering and storing multimedia data, which is designed to create Internet services with functions of AVoD (Audio and Video on Demand) and Live Streaming, with extensive social and interactive component. + \end{description} \item Tribler SwarmPlayer - \begin{description} - \item Si tratta di abandonware, quasi nessuna informazione a riguardo solo questa descrizione presente sul sito e un blog post di Wikipedia dove hanno testato/provato ad utilizzarlo come CDN per i video presenti sul sito - \item The SwarmPlayer v1 was a Python based Bittorrent/Internet TV viewer. It allowed you to watch BitTorrent-hosted videos on demand and plays live Tribler streams. It is based on the same core as the Tribler TV application. More on the SwarmPlayer can be found at the pages about our large-scale trial we did in July 2008. The SwarmPlayer has been superseded by the SwarmPlugin. You can still build it yourself + \begin{description} + \item Si tratta di abandonware, quasi nessuna informazione a riguardo solo questa descrizione presente sul sito e un blog post di Wikipedia dove hanno testato/provato ad utilizzarlo come CDN per i video presenti sul sito + \item The SwarmPlayer v1 was a Python based Bittorrent/Internet TV viewer. It allowed you to watch BitTorrent-hosted videos on demand and plays live Tribler streams. It is based on the same core as the Tribler TV application. More on the SwarmPlayer can be found at the pages about our large-scale trial we did in July 2008. The SwarmPlayer has been superseded by the SwarmPlugin. You can still build it yourself - In September 2010, we released SwarmPlayer v2 which is a browser plugin that adds P2P video streaming protocols to you browser under the tribe:// URL scheme. This allows direct P2P streaming of video into the new HTML5