%PDF-1.5
%
1 0 obj
<>stream
NotebooksComputació interactivaCol·laboracióAnàlisi de dadesPythonComputación interactivaColaboraciónAnálisis de datosInteractive computationCollaborationData Analytics[VAL] El treball realitzat ha consistit en la creació de un entorn col·laboratiu permissionat per
a la computació interactiva. Com a punt de partida per al desenvolupament del projecte
s’ha elegit Jupyter. Jupyter és una ferramenta per a la computació interactiva en diferents
llenguatges de programació. Ofereix una forma de treballar molt intuïtiva i visual, utilitzant
documents interactius anomenats notebooks. La plataforma Jupyter s’utilitza molt
en entorns d’anàlisi de dades i educació, on es pot treballar en grup, així que adaptar-la
a un ámbit col·laboratiu pot ser molt interessant per als usuaris. Per a assolir el objectiu
proposat s’han dut a terme una serie de tasques, com són la sincronització en temps real
dels notebooks, la implementació d’un sistema d’autenticació, autorització e identificació
dels usuaris, la gestió dels notebooks i, per últim, la creació d’una capa de persistència per
a la plataforma. S’han emprat tecnologies com Tornado per als serveis web, Auth0 per a
l’autenticació i SQLite com a sistema gestor de la base de dades, entre altres. S’ha obtés
com a resultat del treball una aplicació que, comptant amb aspectes de millora, compleix
totes les funcionalitats previstes de forma correcta[ES] El trabajo realizado ha consistido en la creación de un entorno colaborativo permisionado
para la computación interactiva. Como punto de partida para el desarrollo del
proyecto se ha elegido Jupyter. Jupyter es una herramienta para la computación interactiva
en diferentes lenguajes de programación. Ofrece una forma de trabajar muy intuitiva
y visual, utilizando documentos interactivos llamados notebooks. La plataforma Jupyter
se utiliza mucho en entornos de análisis de datos y educación, donde se puede trabajar
en grupo, así que adaptarla a un ámbito colaborativo puede ser muy interesante para
los usuarios. Para alcanzar el objetivo propuesto se han llevado a cabo una serie de tareas,
como son la sincronización en tiempo real de los notebooks, la implementación de un
sistema de autenticación, autorización e identificación de los usuarios, la gestión de los
notebooks y, por último, la creación de una capa de persistencia para la plataforma. Se ha
hecho uso de tecnologías como Tornado para los servicios web, Auth0 para la autenticación
y SQLite como sistema gestor de la base de datos, entre otras. Se ha obtenido como
resultado del trabajo una aplicación que, contando con aspectos de mejora, cumple todas
las funcionalidades previstas de forma correcta.[EN] This project has consisted on the creation of a collaborative and permission-based environment
for the interactive computation. Jupyter has been chosen as a starting point
for the development of the project. Jupyter is a tool for interactive computation in several
programming languages. It offers a very visual and intuitive way of working, using
interactive documents called notebooks. The Jupyter platform is widely used on data
analytics and education environments, where working in groups is possible, so adapting
it to a collaborative ambit can be very interesting to its users. In order to reach the
proposed objective several tasks have been carried out. For example the real-time synchronization
of the notebooks, the implementation of a authentication, authorization and
identification system for the users, the notebook management and the creation of a persistence
layer for the platform. The following technologies have been used: Tornado for
the web services, Auth0 for the authentication and SQLite as the managing system for the
database, amongst others. As a result of the project we have obtained an application that,
having room for improvement, fulfills all the planned functionalities successfully.Reconocimiento - No comercial (by-nc)Abierto José Manuel Bernabeu Aubánhttp://hdl.handle.net/10251/107063application/pdfEspañol
endstream
endobj
2 0 obj
<>
endobj
3 0 obj
<>
endobj
5 0 obj
<>
endobj
7 0 obj
(ndice general)
endobj
9 0 obj
<>
endobj
10 0 obj
<>
endobj
6 0 obj
<>
endobj
13 0 obj
(ndice de figuras)
endobj
14 0 obj
<>
endobj
15 0 obj
<>
endobj
12 0 obj
<>
endobj
18 0 obj
(Introduccin)
endobj
21 0 obj
<>
endobj
22 0 obj
<>
endobj
19 0 obj
<>
endobj
25 0 obj
(Motivacin)
endobj
26 0 obj
<>
endobj
27 0 obj
<>
endobj
24 0 obj
<>
endobj
30 0 obj
(Objetivos)
endobj
31 0 obj
<>
endobj
32 0 obj
<>
endobj
29 0 obj
<>
endobj
34 0 obj
(Impacto esperado)
endobj
35 0 obj
<>
endobj
36 0 obj
<>
endobj
33 0 obj
<>
endobj
37 0 obj
(Metodologa)
endobj
38 0 obj
<>
endobj
39 0 obj
<>
endobj
20 0 obj
<>
endobj
41 0 obj
(Estructura de la memoria)
endobj
42 0 obj
<>
endobj
43 0 obj
<>
endobj
17 0 obj
<>
endobj
46 0 obj
(Estado del arte)
endobj
49 0 obj
<>
endobj
50 0 obj
<>
endobj
47 0 obj
<>
endobj
52 0 obj
(Crtica al estado del arte)
endobj
53 0 obj
<>
endobj
54 0 obj
<>
endobj
48 0 obj
<>
endobj
56 0 obj
(Propuesta)
endobj
57 0 obj
<>
endobj
58 0 obj
<>
endobj
45 0 obj
<>
endobj
61 0 obj
(Anlisis del problema)
endobj
64 0 obj
<>
endobj
65 0 obj
<>
endobj
62 0 obj
<>
endobj
67 0 obj
(Anlisis de Jupyter)
endobj
70 0 obj
<>
endobj
71 0 obj
<>
endobj
68 0 obj
<>
endobj
72 0 obj
(Estructura de Jupyter)
endobj
73 0 obj
<>
endobj
74 0 obj
<>
endobj
69 0 obj
<>
endobj
76 0 obj
(Modelo de ejecucin)
endobj
77 0 obj
<>
endobj
78 0 obj
<>
endobj
66 0 obj
<>
endobj
81 0 obj
(Formalizacin del problema)
endobj
82 0 obj
<>
endobj
83 0 obj
<>
endobj
80 0 obj
<>
endobj
86 0 obj
(Anlisis de la seguridad)
endobj
87 0 obj
<>
endobj
88 0 obj
<>
endobj
85 0 obj
<>
endobj
90 0 obj
(Casos de uso)
endobj
91 0 obj
<>
endobj
92 0 obj
<>
endobj
89 0 obj
<>
endobj
94 0 obj
(Identificacin y anlisis de soluciones posibles)
endobj
97 0 obj
<>
endobj
98 0 obj
<>
endobj
95 0 obj
<>
endobj
100 0 obj
(Sincronizacin)
endobj
101 0 obj
<>
endobj
102 0 obj
<>
endobj
99 0 obj
<>
endobj
105 0 obj
(Autenticacin, autorizacin e identificacin)
endobj
106 0 obj
<>
endobj
107 0 obj
<>
endobj
104 0 obj
<>
endobj
109 0 obj
(Gestin de notebooks)
endobj
110 0 obj
<>
endobj
111 0 obj
<>
endobj
96 0 obj
<>
endobj
113 0 obj
(Persistencia)
endobj
114 0 obj
<>
endobj
115 0 obj
<>
endobj
63 0 obj
<>
endobj
116 0 obj
(Solucin propuesta)
endobj
117 0 obj
<>
endobj
118 0 obj
<>
endobj
60 0 obj
<>
endobj
121 0 obj
(Diseo de la solucin)
endobj
124 0 obj
<>
endobj
125 0 obj
<>
endobj
122 0 obj
<>
endobj
127 0 obj
(Arquitectura del sistema)
endobj
128 0 obj
<>
endobj
129 0 obj
<>
endobj
126 0 obj
<>
endobj
131 0 obj
(Diseo detallado)
endobj
134 0 obj
<>
endobj
135 0 obj
<>
endobj
132 0 obj
<>
endobj
136 0 obj
(Base de datos)
endobj
137 0 obj
<>
endobj
138 0 obj
<>
endobj
133 0 obj
<>
endobj
140 0 obj
(Sistema de autenticacin)
endobj
141 0 obj
<>
endobj
142 0 obj
<>
endobj
123 0 obj
<>
endobj
144 0 obj
(Tecnologa utilizada)
endobj
147 0 obj
<>
endobj
148 0 obj
<>
endobj
145 0 obj
<>
endobj
150 0 obj
(Servidor de notebooks)
endobj
151 0 obj
<>
endobj
152 0 obj
<>
endobj
149 0 obj
<>
endobj
155 0 obj
(Kernels)
endobj
156 0 obj
<>
endobj
157 0 obj
<>
endobj
154 0 obj
<>
endobj
158 0 obj
(Base de datos)
endobj
159 0 obj
<>
endobj
160 0 obj
<>
endobj
146 0 obj
<>
endobj
161 0 obj
(Sistema de autenticacin)
endobj
162 0 obj
<>
endobj
163 0 obj
<>
endobj
120 0 obj
<>
endobj
166 0 obj
(Desarrollo de la solucin propuesta)
endobj
169 0 obj
<>
endobj
170 0 obj
<>
endobj
167 0 obj
<>
endobj
172 0 obj
(Sincronizacin de notebooks en tiempo real)
endobj
173 0 obj
<>
endobj
174 0 obj
<>
endobj
171 0 obj
<>
endobj
177 0 obj
(Creacin de un sistema de roles y permisos)
endobj
178 0 obj
<>
endobj
179 0 obj
<>
endobj
176 0 obj
<>
endobj
182 0 obj
(Persistencia de la informacin necesaria)
endobj
183 0 obj
<>
endobj
184 0 obj
<>
endobj
181 0 obj
<>
endobj
186 0 obj
(Sesiones de los usuarios)
endobj
187 0 obj
<>
endobj
188 0 obj
<>
endobj
185 0 obj
<>
endobj
190 0 obj
(Comparticin de los documentos)
endobj
191 0 obj
<>
endobj
192 0 obj
<>
endobj
168 0 obj
<>
endobj
193 0 obj
(Autenticacin de los usuarios)
endobj
194 0 obj
<>
endobj
195 0 obj
<>
endobj
165 0 obj
<>
endobj
198 0 obj
(Implantacin)
endobj
199 0 obj
<>
endobj
200 0 obj
<>
endobj
197 0 obj
<>
endobj
203 0 obj
(Pruebas)
endobj
206 0 obj
<>
endobj
207 0 obj
<>
endobj
204 0 obj
<>
endobj
208 0 obj
(Validacin del sistema)
endobj
209 0 obj
<>
endobj
210 0 obj
<>
endobj
205 0 obj
<>
endobj
211 0 obj
(Pruebas de carga)
endobj
212 0 obj
<>
endobj
213 0 obj
<>
endobj
202 0 obj
<>
endobj
216 0 obj
(Conclusiones)
endobj
219 0 obj
<>
endobj
220 0 obj
<>
endobj
217 0 obj
<>
endobj
222 0 obj
(Cumplimiento de los objetivos)
endobj
225 0 obj
<>
endobj
226 0 obj
<>
endobj
223 0 obj
<>
endobj
228 0 obj
(Permitir que los usuarios modifiquen y vean los cambios en los documentos en tiempo real.)
endobj
229 0 obj
<>
endobj
230 0 obj
<>
endobj
227 0 obj
<>
endobj
233 0 obj
(Gestionar los usuarios, sus permisos y sus sesiones.)
endobj
234 0 obj
<>
endobj
235 0 obj
<>
endobj
232 0 obj
<>
endobj
237 0 obj
(Gestionar los notebooks.)
endobj
238 0 obj
<>
endobj
239 0 obj
<>
endobj
224 0 obj
<>
endobj
241 0 obj
(Soportar la colaboracin en distintas sesiones de trabajo.)
endobj
242 0 obj
<>
endobj
243 0 obj
<>
endobj
221 0 obj
<>
endobj
244 0 obj
(Conocimientos adquiridos)
endobj
245 0 obj
<>
endobj
246 0 obj
<>
endobj
218 0 obj
<>
endobj
248 0 obj
(Relacin del trabajo desarrollado con los estudios cursados)
endobj
249 0 obj
<>
endobj
250 0 obj
<>
endobj
215 0 obj
<>
endobj
253 0 obj
(Trabajos futuros)
endobj
256 0 obj
<>
endobj
257 0 obj
<>
endobj
254 0 obj
<>
endobj
259 0 obj
(Mejoras en la sincronizacin de notebooks)
endobj
260 0 obj
<>
endobj
261 0 obj
<>
endobj
258 0 obj
<>
endobj
263 0 obj
(Mejoras en la edicin y ejecucin de la plataforma)
endobj
264 0 obj
<>
endobj
265 0 obj
<>
endobj
255 0 obj
<>
endobj
267 0 obj
(Mejoras en la gestin de notebooks)
endobj
268 0 obj
<>
endobj
269 0 obj
<>
endobj
252 0 obj
<>
endobj
272 0 obj
(Glosario)
endobj
273 0 obj
<>
endobj
274 0 obj
<>
endobj
271 0 obj
<>
endobj
276 0 obj
(Bibliografa)
endobj
277 0 obj
<>
endobj
278 0 obj
<>
endobj
283 0 obj
<>/ProcSet[/PDF]/ExtGState<>>>/PTEX.InfoDict 286 0 R/BBox[0 0 330 105]/Length 35210>>stream
xlI$Ҭ7U䘃67z }"jYQ1pwskԴ?WL~?'|k磶Ug}2>k_+ϙ=32/ڃv*eڵ':G+ybk?Uwkܸy{?#կ2o<}璘RWmuϛzڋ+q?S^zrQW=h1WZk|R3xXZ֯罽盗ӓ|eTsy=Wsυx~YӴσnqW;k+J']wm>vgf[|{>ΧGeVXm_J>ˣIe|n:q̒8#OX|Y>;nc}J~Fym^O|/Ofg}浖Y>O,k'5ϗEl2q%٠5zq>;|kxֺ,}hZ^,;~v1n}}#"-t>nV_Y>f#^9sr{qp{SW|oW rxܳZ
-˹X|ydΒȀ#赺 a,cß'h3v:8"+7Kl5x0?Es+1V8G:/ic5$%!w#g8_y{R}>df?S3?x̑m^|gT}sՙxʷL>ܽ}%&LOyg7OC{'+W9
c!Zg3ଶq^>8d=+ugV$2wwLDYMCu6D}=#>Xw獕'>зZ=<,<1#?hC+ 52EC&eZg6*]?x볦2
P>sf 8Z9*';7y%Ga%/2ޜ)3y//hI+_T^*\G?*ys̒/hK%Qi:^46%yYr>ʨ֮iRyՙr^9_3B$c(>%c̊SҔ2Ͼ5=3aH|Ȕk;T:9۳]8ѭEs͗'L4,pp+i˅q#&;9z$=VYҩz6Wr0\icDZ<=ؕ:sGFz;Ns<Op+vsmvV%K355]|Y\aճ5+}=$IŚ.G^e1IQ6D2=>Pda$il+^6W{,BFe>uyǙctWpQ|)QˇI`
وy9vigd-I%fkgY#}Y8\{h:6]W33.GmT\қƖ玂GT`l?8 K}u(z?0Ĵ+;iӓ@8g֞ς*<}j9~Ξگv
9K>cJU
L[ L('zQ<!vp#)e @aɐx$A;dvN;BH"p295s$J-69M|?Y;4wNTgSV{G,0bȫ[6&xOs K[/@D:uNSK4XA<3VlȽ~Nd[,E斤
YɎdи1==uL3Czw?REw;f=K[>vqf?Ds56뙚pe!9`,LD{j(N3sv!Kjh>߳R⇿zv]Ùdx?fg~9ֺ(qKgcI+
ݑgS7#U5GpIُp0LWuF=\5dY!1X9Di>SfC_jCO⽣9\,Pg)4õ=FNtPzdTN6MvB3>w6N/d}/Yh!,oms}z-g5<_>U>IhK[X^wN:&h?`|k|Z\atTG$@VmKٶ$