1 00:00:00,000 --> 00:00:02,000 Buenos días a todos 2 00:00:03,000 --> 00:00:05,000 Benvindos ao taller de webservices 3 00:00:05,000 --> 00:00:08,000 Marc Calier e Jordi Pirillán están chegando 4 00:00:08,000 --> 00:00:11,000 Sabéis o que é o tráfico en Madrid e estas cosas 5 00:00:11,000 --> 00:00:13,000 Darles un pouco de respiro 6 00:00:13,000 --> 00:00:15,000 E perdonarles este retraso 7 00:00:15,000 --> 00:00:17,000 Eu vou começar, meu nome é Miguel Ángel Conde 8 00:00:17,000 --> 00:00:18,000 Tambén estamos nós, David Castro 9 00:00:18,000 --> 00:00:21,000 Que nos vai apoiar en toda a parte de un experimento 10 00:00:21,000 --> 00:00:23,000 Na parte experimental do taller que vamos ver 11 00:00:24,000 --> 00:00:25,000 Bien 12 00:00:25,000 --> 00:00:27,000 Os puntos que vamos ver 13 00:00:27,000 --> 00:00:28,000 Ván a ser unha breve introducción 14 00:00:28,000 --> 00:00:30,000 Hablaremos un pouco dos servizos 15 00:00:30,000 --> 00:00:32,000 Da arquitectura dos servizos en Moodle 16 00:00:32,000 --> 00:00:34,000 Como se planteou esa arquitectura dos servizos 17 00:00:34,000 --> 00:00:36,000 Que aplicacións poden aportar esos servizos 18 00:00:36,000 --> 00:00:38,000 E por último, será un experimento 19 00:00:39,000 --> 00:00:40,000 Bien 20 00:00:40,000 --> 00:00:41,000 Se empezamos a hablar de servizos 21 00:00:41,000 --> 00:00:42,000 Eu non digo de servizos web 22 00:00:42,000 --> 00:00:43,000 Eu digo de servizos 23 00:00:44,000 --> 00:00:46,000 A todo o mundo pode considerar 24 00:00:46,000 --> 00:00:48,000 A necesidade de poder utilizar algo 25 00:00:48,000 --> 00:00:49,000 Que dentro de un sistema 26 00:00:49,000 --> 00:00:50,000 Para cualquier outro propósito 27 00:00:50,000 --> 00:00:53,000 Que non seja o que inicialmente previsto 28 00:00:53,000 --> 00:00:55,000 Ou o que inicialmente considerado 29 00:00:55,000 --> 00:00:57,000 Quer dizer, nós temos un sistema 30 00:00:57,000 --> 00:00:59,000 Que nos aporta unha potencia enorme 31 00:00:59,000 --> 00:01:00,000 E queremos que esa potencia enorme 32 00:01:00,000 --> 00:01:02,000 Non só se dê dentro de ese sistema 33 00:01:02,000 --> 00:01:04,000 Só que se dê en cualquier outro propósito 34 00:01:04,000 --> 00:01:06,000 Hoje em dia, cada vez son máis 35 00:01:06,000 --> 00:01:08,000 O planteamento, a creación de sistemas 36 00:01:08,000 --> 00:01:10,000 Según arquitecturas orientadas a servizos 37 00:01:10,000 --> 00:01:12,000 Quer dizer, non buscamos prover unha tecnologia 38 00:01:12,000 --> 00:01:14,000 Non buscamos prover algo 39 00:01:14,000 --> 00:01:16,000 Que funcione só para unha cosa 40 00:01:16,000 --> 00:01:17,000 Buscamos prover un servizo 41 00:01:17,000 --> 00:01:19,000 E ademais un servizo que sea portable 42 00:01:19,000 --> 00:01:21,000 Que sea multiplataforma 43 00:01:21,000 --> 00:01:22,000 Que sea escalable 44 00:01:22,000 --> 00:01:25,000 Que poda crecer dentro de unha arquitectura 45 00:01:25,000 --> 00:01:28,000 Ademais que sempre nos permite unha flexibilidade 46 00:01:28,000 --> 00:01:31,000 Que non nos anclemos en algo determinado 47 00:01:31,000 --> 00:01:33,000 Teniendo en cuenta todo ese contexto 48 00:01:33,000 --> 00:01:36,000 Nos podemos poner a pensar agora en os LMS 49 00:01:36,000 --> 00:01:38,000 En as plataformas de aprendizaje 50 00:01:38,000 --> 00:01:40,000 Ben, seja modelo, ben seja cualquera 51 00:01:40,000 --> 00:01:41,000 Que nos aportan? 52 00:01:41,000 --> 00:01:43,000 Nos aportan un conjunto de funcionalidades 53 00:01:43,000 --> 00:01:45,000 E un conjunto de funcionalidades 54 00:01:45,000 --> 00:01:50,000 Que podrían aplicarse a moitos outros contextos 55 00:01:50,000 --> 00:01:52,000 En concreto, se nos ponemos a pensar 56 00:01:52,000 --> 00:01:54,000 En las plataformas de aprendizaje 57 00:01:54,000 --> 00:01:56,000 Por ejemplo, nos poden proporcionar alta de usuario 58 00:01:56,000 --> 00:01:58,000 Nos poden proporcionar gestión de cursos 59 00:01:58,000 --> 00:02:00,000 Nos poden proporcionar gestión de contenidos 60 00:02:00,000 --> 00:02:02,000 Todos esos servizos 61 00:02:02,000 --> 00:02:04,000 Podríamos utilizarlos dentro de outros contextos 62 00:02:04,000 --> 00:02:06,000 Podríamos utilizarlos dentro de dispositivos móviles 63 00:02:06,000 --> 00:02:08,000 Podríamos utilizarlos dentro 64 00:02:08,000 --> 00:02:10,000 O combinado con herramientas de la COFIS 65 00:02:10,000 --> 00:02:12,000 En cuantos sitios non habéis visto? 66 00:02:12,000 --> 00:02:14,000 A cuantas personas non habéis visto? 67 00:02:14,000 --> 00:02:16,000 Tratando de integrar el alta de los alumnos en Moodle 68 00:02:16,000 --> 00:02:18,000 Con otro tipo de sistema 69 00:02:18,000 --> 00:02:19,000 Por ejemplo 70 00:02:19,000 --> 00:02:21,000 Decir, non é que eu quero algo que sea transparente 71 00:02:21,000 --> 00:02:23,000 Ademais, quero que me logue unha única vez 72 00:02:23,000 --> 00:02:25,000 Y poder entrar a meus cursos 73 00:02:25,000 --> 00:02:27,000 Pero que realmente tenga outro segundo sistema 74 00:02:27,000 --> 00:02:29,000 Que estamos buscando? 75 00:02:29,000 --> 00:02:31,000 Estamos buscando un servicio 76 00:02:31,000 --> 00:02:33,000 Un servicio que Moodle nos proporciona 77 00:02:33,000 --> 00:02:35,000 E que, ademais, queremos poderlo utilizar en outros contextos 78 00:02:35,000 --> 00:02:37,000 Por poner outros exemplos 79 00:02:37,000 --> 00:02:39,000 Podríamos ver técnicas de visualización de la información 80 00:02:39,000 --> 00:02:41,000 Sobre información que nos proporcione la plataforma de aprendizaje 81 00:02:41,000 --> 00:02:43,000 Podríamos considerar 82 00:02:43,000 --> 00:02:45,000 Seguimiento de un curso 83 00:02:45,000 --> 00:02:47,000 Podríamos considerar extracción de contenidos 84 00:02:47,000 --> 00:02:49,000 Para su utilización en cualquier otro contexto 85 00:02:49,000 --> 00:02:51,000 Lo que se busca 86 00:02:51,000 --> 00:02:53,000 Es dar esa potencialidad 87 00:02:53,000 --> 00:02:55,000 Pero non solo limitado a un punto 88 00:02:55,000 --> 00:02:57,000 Sino que, ademais 89 00:02:57,000 --> 00:02:59,000 Lo que queremos es poderlo exportar 90 00:02:59,000 --> 00:03:01,000 Poderlo utilizar en cualquier outro contexto 91 00:03:01,000 --> 00:03:03,000 Poderlo utilizar 92 00:03:03,000 --> 00:03:05,000 En lugares donde inicialmente non estaba previsto 93 00:03:07,000 --> 00:03:09,000 Bien 94 00:03:09,000 --> 00:03:11,000 Hablando de todo esto 95 00:03:11,000 --> 00:03:13,000 Habréis oído hablar alguna vez de los servicios web? 96 00:03:13,000 --> 00:03:15,000 Os suenan los servicios web? 97 00:03:15,000 --> 00:03:17,000 Cuantos de aquí sois programadores? 98 00:03:17,000 --> 00:03:19,000 Cuantos de aquí sois programadores? 99 00:03:19,000 --> 00:03:21,000 Bien, esto será útil 100 00:03:21,000 --> 00:03:23,000 Cuantos habéis programado servicios web? 101 00:03:23,000 --> 00:03:25,000 Bueno, algo es algo 102 00:03:25,000 --> 00:03:27,000 Bien 103 00:03:27,000 --> 00:03:29,000 Lo digo sobre todo por el experimento posterior 104 00:03:29,000 --> 00:03:31,000 Bien 105 00:03:31,000 --> 00:03:33,000 Sobre todo la idea 106 00:03:33,000 --> 00:03:35,000 De lo que se busca con un servicio 107 00:03:35,000 --> 00:03:37,000 Es independizar la implementación que haya subyacente 108 00:03:37,000 --> 00:03:39,000 Con respecto a la funcionalidad 109 00:03:39,000 --> 00:03:41,000 Que se está proporcionando 110 00:03:41,000 --> 00:03:43,000 A nosotros nos dan una interfaz 111 00:03:43,000 --> 00:03:45,000 Nos dan una API 112 00:03:45,000 --> 00:03:47,000 Que nos permite repasar estos parámetros 113 00:03:47,000 --> 00:03:49,000 Como lo haga internamente 114 00:03:49,000 --> 00:03:51,000 Queremos esa capacidad de encapsulamiento 115 00:03:51,000 --> 00:03:53,000 Esa capacidad de abstracción 116 00:03:53,000 --> 00:03:55,000 Y también no generar unas dependencias 117 00:03:55,000 --> 00:03:57,000 Que nos obligarían a utilizar un contexto determinado 118 00:03:57,000 --> 00:03:59,000 Bien, en cualquiera de los casos 119 00:03:59,000 --> 00:04:01,000 Esos servicios se transforman en servicios web 120 00:04:01,000 --> 00:04:03,000 Y mediante diferentes tipos de tecnologías 121 00:04:03,000 --> 00:04:05,000 Diferentes tipos de protocolos 122 00:04:05,000 --> 00:04:07,000 Podremos ver unos conectores 123 00:04:07,000 --> 00:04:09,000 Podremos ver 124 00:04:09,000 --> 00:04:11,000 Que existen diferentes protocolos 125 00:04:11,000 --> 00:04:13,000 En la web para poder llevar a cabo esto 126 00:04:13,000 --> 00:04:15,000 Los protocolos son necesarios 127 00:04:15,000 --> 00:04:17,000 No podemos poner simplemente el servicio web a funcionar y se acabó 128 00:04:17,000 --> 00:04:19,000 No podemos decir 129 00:04:19,000 --> 00:04:21,000 Es que yo pongo una función y eso es suficiente 130 00:04:21,000 --> 00:04:23,000 No, necesitamos un protocolo 131 00:04:23,000 --> 00:04:25,000 Necesitamos hacerlo de una manera apropiada 132 00:04:25,000 --> 00:04:27,000 Necesitamos poder hacer eso de una forma escalable 133 00:04:27,000 --> 00:04:29,000 Que además luego nos permita utilizarlo en otros sitios 134 00:04:29,000 --> 00:04:31,000 Porque sino no estaríamos haciendo nada 135 00:04:31,000 --> 00:04:33,000 Estaríamos haciendo una API con un conjunto de funciones y se acabó 136 00:04:33,000 --> 00:04:35,000 Bien, vosotros sois programadores 137 00:04:35,000 --> 00:04:37,000 Y habéis programado en Moodle, ¿verdad? 138 00:04:37,000 --> 00:04:39,000 Os habéis encontrado 139 00:04:39,000 --> 00:04:41,000 Un problema, yo creo que si 140 00:04:41,000 --> 00:04:43,000 Podemos definir algún tipo de actividad 141 00:04:43,000 --> 00:04:45,000 O un módulo o alguna aplicación externa Moodle 142 00:04:45,000 --> 00:04:47,000 Que utilice Moodle 143 00:04:47,000 --> 00:04:49,000 ¿Qué pasa cuando cambiamos de versión? 144 00:04:51,000 --> 00:04:53,000 Pues que la mayor parte de las veces 145 00:04:53,000 --> 00:04:55,000 Nos cambian el modelo de datos, los valores o lo que sea 146 00:04:55,000 --> 00:04:57,000 Y se va todo al carajo 147 00:04:57,000 --> 00:04:59,000 Bien, ¿qué es lo que estamos intentando hacer? 148 00:04:59,000 --> 00:05:01,000 Lo que vamos a intentar hacer es proveer 149 00:05:01,000 --> 00:05:03,000 Una API, un conjunto de funciones 150 00:05:03,000 --> 00:05:05,000 Que se invocarán a través de una serie de conectores 151 00:05:05,000 --> 00:05:07,000 En forma de servicios web 152 00:05:07,000 --> 00:05:09,000 Y que nos devolverán una información 153 00:05:09,000 --> 00:05:11,000 Que harán que seamos independientes 154 00:05:11,000 --> 00:05:13,000 Del tipo de versión, por ejemplo, que se vaya 155 00:05:13,000 --> 00:05:15,000 Esto es fundamental 156 00:05:15,000 --> 00:05:17,000 Lo que se ha comprometido el equipo de Moodle 157 00:05:17,000 --> 00:05:19,000 Es mantener una API externa 158 00:05:19,000 --> 00:05:21,000 Que podrá irse ampliando 159 00:05:21,000 --> 00:05:23,000 Y que nos permitirá hacer eso a través de diferentes versiones 160 00:05:23,000 --> 00:05:25,000 Moodle se encargará de implementar 161 00:05:25,000 --> 00:05:27,000 Las diferentes funciones 162 00:05:27,000 --> 00:05:29,000 Y por ello sabrán como lo harán 163 00:05:29,000 --> 00:05:31,000 Y nos devolverán el valor, el retorno de esas funciones 164 00:05:31,000 --> 00:05:33,000 Independientemente de que hayan cambiado 165 00:05:33,000 --> 00:05:35,000 El modelo de datos o no, eso no nos importa 166 00:05:35,000 --> 00:05:37,000 Nosotros podremos seguir invocando 167 00:05:37,000 --> 00:05:39,000 A los servicios web exactamente de la misma manera 168 00:05:39,000 --> 00:05:41,000 Esa es sobre todo la idea 169 00:05:41,000 --> 00:05:43,000 Con eso, ¿qué estamos evitando? 170 00:05:43,000 --> 00:05:45,000 Que yo, por ejemplo, haya hecho un módulo 171 00:05:45,000 --> 00:05:47,000 Buenísimo para hacer 172 00:05:47,000 --> 00:05:49,000 Cualquier tipo de gestión 173 00:05:49,000 --> 00:05:51,000 Que cambien la versión y me metan los roles 174 00:05:51,000 --> 00:05:53,000 Que supongo que a todo el mundo le habrá pasado 175 00:05:53,000 --> 00:05:55,000 En el momento que surgieron los roles en Moodle 176 00:05:55,000 --> 00:05:57,000 Y que digamos 177 00:05:57,000 --> 00:05:59,000 Ya no me funciona nada 178 00:05:59,000 --> 00:06:01,000 Vamos a intentar 179 00:06:01,000 --> 00:06:03,000 Mediante este tipo de sistemas 180 00:06:03,000 --> 00:06:05,000 Que dejemos de tener este tipo de frustraciones 181 00:06:05,000 --> 00:06:07,000 Y de tener que cambiar muchísimo código 182 00:06:07,000 --> 00:06:09,000 Que no solamente es en cuanto a 183 00:06:09,000 --> 00:06:11,000 Como nos sentimos nosotros, sino que es tiempo y dinero 184 00:06:11,000 --> 00:06:13,000 En muchas ocasiones 185 00:06:13,000 --> 00:06:15,000 Bien, pues a través de este tipo de tecnologías 186 00:06:15,000 --> 00:06:17,000 Lo que buscaremos es eso 187 00:06:17,000 --> 00:06:19,000 Por una parte 188 00:06:19,000 --> 00:06:21,000 Y por otra parte tendremos que plantear 189 00:06:21,000 --> 00:06:23,000 Una API, un conjunto de funciones 190 00:06:23,000 --> 00:06:25,000 Lo suficientemente bien fundamentado 191 00:06:25,000 --> 00:06:27,000 Para que eso pueda crecer 192 00:06:27,000 --> 00:06:29,000 Es decir, no podemos decir 193 00:06:29,000 --> 00:06:31,000 Ahora planteo una arquitectura de servicios web como quieras 194 00:06:31,000 --> 00:06:33,000 Vamos a ser un poquito organizados 195 00:06:33,000 --> 00:06:35,000 En la manera correcta y vamos a hacerlo 196 00:06:35,000 --> 00:06:37,000 De acuerdo con las especificaciones 197 00:06:37,000 --> 00:06:39,000 Que se dan en Moodle 198 00:06:39,000 --> 00:06:41,000 Con Moodle se trabaja todos los días 199 00:06:41,000 --> 00:06:43,000 Se acuerdan las interfaces para los servicios 200 00:06:43,000 --> 00:06:45,000 Se acuerdan las funciones y se acuerdan parámetros de seguridad 201 00:06:45,000 --> 00:06:47,000 Claro, si alguien 202 00:06:47,000 --> 00:06:49,000 Supongo que nadie estará involucrado 203 00:06:49,000 --> 00:06:51,000 Ahora mismo en el desarrollo de servicios web 204 00:06:51,000 --> 00:06:53,000 Nosotros estamos, pues está la UPC 205 00:06:53,000 --> 00:06:55,000 Está la Universidad de Salamanca 206 00:06:55,000 --> 00:06:57,000 Y están algunas empresas también de Barcelona 207 00:06:57,000 --> 00:06:59,000 Pues en este desarrollo 208 00:06:59,000 --> 00:07:01,000 Nos estamos pegando 209 00:07:01,000 --> 00:07:03,000 En muchas ocasiones 210 00:07:03,000 --> 00:07:05,000 Con Peter Skoda, con Martin Gullamas 211 00:07:05,000 --> 00:07:07,000 Determinando qué hacer, qué no hacer 212 00:07:07,000 --> 00:07:09,000 Cómo hacerlo con seguridad, cómo no hacerlo 213 00:07:09,000 --> 00:07:11,000 Es decir, ahora mismo existe un conjunto de servicios web 214 00:07:11,000 --> 00:07:13,000 Nosotros veremos un pequeño cliente 215 00:07:13,000 --> 00:07:15,000 Que ataca los servicios web 216 00:07:15,000 --> 00:07:17,000 Para crear cursos y para crear usuarios 217 00:07:17,000 --> 00:07:19,000 Es lo que vais a probar 218 00:07:19,000 --> 00:07:21,000 Pero sobre todo tenemos que entender 219 00:07:21,000 --> 00:07:23,000 Que este tipo de elementos 220 00:07:23,000 --> 00:07:25,000 Va a cambiar y que ahora mismo 221 00:07:25,000 --> 00:07:27,000 No está establecida la base 222 00:07:27,000 --> 00:07:29,000 Con lo cual, igual hoy tenemos una porción de código funcional 223 00:07:29,000 --> 00:07:31,000 Y mañana han cambiado ciertos parámetros de seguridad 224 00:07:31,000 --> 00:07:33,000 Y tenemos que cambiarlo 225 00:07:33,000 --> 00:07:35,000 Tenemos, hasta que no esté esa primera versión 226 00:07:35,000 --> 00:07:37,000 Disponible, tenemos que ser cautos 227 00:07:37,000 --> 00:07:39,000 Sobre todo en los desarrollos que llevamos a cabo 228 00:07:39,000 --> 00:07:41,000 Actualmente 229 00:07:41,000 --> 00:07:43,000 Existen un conjunto de servicios web 230 00:07:43,000 --> 00:07:45,000 Backporteados para la versión 1.9 231 00:07:45,000 --> 00:07:47,000 Y un conjunto de servicios web para la 2.0 232 00:07:47,000 --> 00:07:49,000 Que es en el que más está trabajando 233 00:07:49,000 --> 00:07:51,000 Bien 234 00:07:51,000 --> 00:07:53,000 Dentro de esto, como os he dicho 235 00:07:53,000 --> 00:07:55,000 Tenemos que plantear un modelo arquitectónico 236 00:07:55,000 --> 00:07:57,000 Es decir, no podemos programar servicios web 237 00:07:57,000 --> 00:07:59,000 Sin más 238 00:07:59,000 --> 00:08:01,000 Bien, este modelo arquitectónico 239 00:08:01,000 --> 00:08:03,000 Costaría en principio de tres capas 240 00:08:03,000 --> 00:08:05,000 Puede ser que se varíen 241 00:08:05,000 --> 00:08:07,000 Pero por ahora constaría de tres capas 242 00:08:07,000 --> 00:08:09,000 Dentro de ellas tendríamos los conectores más famosos 243 00:08:09,000 --> 00:08:11,000 Con los diferentes protocolos de conexión 244 00:08:11,000 --> 00:08:13,000 Que se pueden hacer a servicios web 245 00:08:13,000 --> 00:08:15,000 Por ejemplo, tendríamos REST 246 00:08:15,000 --> 00:08:17,000 Tendríamos XMLRPC, tendríamos SOAP 247 00:08:17,000 --> 00:08:19,000 ¿Podrían añadirse más? 248 00:08:19,000 --> 00:08:21,000 Sí, la idea es tener una arquitectura lo suficientemente flexible 249 00:08:21,000 --> 00:08:23,000 Para que seamos capaces 250 00:08:23,000 --> 00:08:25,000 De poder añadir cualquier tipo de protocolo adicional 251 00:08:25,000 --> 00:08:27,000 De hecho, existen protocolos de interoperabilidad 252 00:08:27,000 --> 00:08:29,000 Luego veremos en posibles aplicaciones 253 00:08:29,000 --> 00:08:31,000 Que es maravilloso lo que se puede llegar a hacer 254 00:08:31,000 --> 00:08:33,000 Podemos llegar a integrar 255 00:08:33,000 --> 00:08:35,000 Una aplicación dentro de Moodle 256 00:08:35,000 --> 00:08:37,000 Y podemos extraer información 257 00:08:37,000 --> 00:08:39,000 De aplicaciones de Moodle 258 00:08:39,000 --> 00:08:41,000 A nuestro sistema 259 00:08:41,000 --> 00:08:43,000 Es decir, lo que vamos a proporcionar con esto 260 00:08:43,000 --> 00:08:45,000 Vamos a proporcionar unas tecnologías de conexión 261 00:08:45,000 --> 00:08:47,000 Que realmente nos permitan 262 00:08:47,000 --> 00:08:49,000 Desvincularnos un poco de Moodle 263 00:08:49,000 --> 00:08:51,000 E intercambiar información con él 264 00:08:51,000 --> 00:08:53,000 De una manera coherente y que entienda 265 00:08:53,000 --> 00:08:55,000 Por ejemplo 266 00:08:55,000 --> 00:08:57,000 Podríamos crear un conector 267 00:08:57,000 --> 00:08:59,000 Para el protocolo IMS LTI 268 00:08:59,000 --> 00:09:01,000 No sé si conocéis ese protocolo 269 00:09:01,000 --> 00:09:03,000 Es un protocolo de interoperabilidad 270 00:09:03,000 --> 00:09:05,000 Que permitiría la integración 271 00:09:05,000 --> 00:09:07,000 Por ejemplo, de herramientas externas 272 00:09:07,000 --> 00:09:09,000 Dentro de Moodle 273 00:09:09,000 --> 00:09:11,000 Por otra parte, tendríamos una segunda capa 274 00:09:11,000 --> 00:09:13,000 Tendríamos una segunda capa 275 00:09:13,000 --> 00:09:15,000 Que esos conectores llamarán 276 00:09:15,000 --> 00:09:17,000 Esta segunda capa lo que provee 277 00:09:17,000 --> 00:09:19,000 Es un conjunto de funciones 278 00:09:19,000 --> 00:09:21,000 Que van a permitir comunicarnos 279 00:09:21,000 --> 00:09:23,000 En el core de Moodle 280 00:09:23,000 --> 00:09:25,000 Pero sin que nosotros sepamos nada 281 00:09:25,000 --> 00:09:27,000 Será como esa API externa 282 00:09:27,000 --> 00:09:29,000 Esa información que necesitemos utilizar 283 00:09:29,000 --> 00:09:31,000 Y luego, por otro lado, tendremos 284 00:09:31,000 --> 00:09:33,000 Lo que serían las bibliotecas de Moodle 285 00:09:33,000 --> 00:09:35,000 Esto no lo vamos a tocar 286 00:09:35,000 --> 00:09:37,000 Esto nos lo va a dar Moodle 287 00:09:37,000 --> 00:09:39,000 Va a ser algo que se va a mantener 288 00:09:39,000 --> 00:09:41,000 Algo que no va a cambiar demasiado 289 00:09:41,000 --> 00:09:43,000 Esto no nos importará demasiado 290 00:09:43,000 --> 00:09:45,000 Como también ya que el external 291 00:09:45,000 --> 00:09:47,000 Lo que hará será envolver ese conjunto de funciones 292 00:09:47,000 --> 00:09:49,000 Para poder llevar a cabo todo esto 293 00:09:49,000 --> 00:09:51,000 Esas funciones que dependerán 294 00:09:51,000 --> 00:09:53,000 De lo que vaya por debajo 295 00:09:53,000 --> 00:09:55,000 Pero que a nosotros nos da igual 296 00:09:55,000 --> 00:09:57,000 Nosotros nos podremos conectar 297 00:09:57,000 --> 00:09:59,000 Utilizando ese tipo de conectores 298 00:09:59,000 --> 00:10:01,000 De una manera totalmente transparente 299 00:10:01,000 --> 00:10:03,000 A nuestro sistema 300 00:10:03,000 --> 00:10:05,000 Bien, y ahora el señor Pidillén 301 00:10:05,000 --> 00:10:07,000 Va a comentaros como se llevan a cabo 302 00:10:07,000 --> 00:10:09,000 Este tipo de conexiones 303 00:10:09,000 --> 00:10:11,000 Y luego volveremos con respecto 304 00:10:11,000 --> 00:10:13,000 A las posibles utilidades 305 00:10:13,000 --> 00:10:15,000 Que se le pueden dar a este tipo de servicios 306 00:10:15,000 --> 00:10:17,000 Bien, como se haría esto 307 00:10:17,000 --> 00:10:19,000 Normalmente el usuario 308 00:10:19,000 --> 00:10:21,000 Lo que haría es desde un cliente determinado 309 00:10:21,000 --> 00:10:23,000 Pasaría un usuario y un password 310 00:10:23,000 --> 00:10:25,000 Se logaría 311 00:10:25,000 --> 00:10:27,000 En principio solo tendría que logarse una vez 312 00:10:27,000 --> 00:10:29,000 Porque lo que haría el sistema es devolverle un token 313 00:10:29,000 --> 00:10:31,000 A partir de ese token podría interactuar con el sistema 314 00:10:31,000 --> 00:10:33,000 Sin tener que estar intercambiando constantemente 315 00:10:33,000 --> 00:10:35,000 Usuario y contraseña 316 00:10:35,000 --> 00:10:37,000 Con lo cual se gana rápido 317 00:10:37,000 --> 00:10:39,000 Se gana en el tamaño que pueda tener la conexión 318 00:10:39,000 --> 00:10:41,000 Y no solamente en eso, se gana en seguridad 319 00:10:41,000 --> 00:10:43,000 Si pasas cinco veces la contraseña 320 00:10:43,000 --> 00:10:45,000 Es más fácil que te la puedan desencriptar que si la pasas una 321 00:10:45,000 --> 00:10:47,000 Bien, después una vez teniendo ese token 322 00:10:47,000 --> 00:10:49,000 Lo que haremos será invocar una determinada función 323 00:10:49,000 --> 00:10:51,000 O un determinado módulo 324 00:10:51,000 --> 00:10:53,000 De una parte del external 325 00:10:53,000 --> 00:10:55,000 Con una serie de parámetros y con su nombre 326 00:10:55,000 --> 00:10:57,000 Eso iría otra vez contra el servidor 327 00:10:57,000 --> 00:10:59,000 Y lo que haría sería ejecutar o devolver 328 00:10:59,000 --> 00:11:01,000 La información que fuera adecuada 329 00:11:01,000 --> 00:11:03,000 En función de, bueno, utilizando 330 00:11:03,000 --> 00:11:05,000 El conector 331 00:11:05,000 --> 00:11:07,000 Que lo vayamos a considerar 332 00:11:07,000 --> 00:11:09,000 Bien sea SOAP, bien sea REST, el que sea 333 00:11:09,000 --> 00:11:11,000 A partir de aquí se ejecutaría 334 00:11:11,000 --> 00:11:13,000 Se buscaría esa información dentro del servidor 335 00:11:13,000 --> 00:11:15,000 Y esa información se devolvería 336 00:11:15,000 --> 00:11:17,000 A través del servicio web 337 00:11:17,000 --> 00:11:19,000 Y llegaría a lo que es el cliente PHP 338 00:11:21,000 --> 00:11:23,000 Bien, si hablamos además 339 00:11:23,000 --> 00:11:25,000 De las posibles aplicaciones 340 00:11:25,000 --> 00:11:27,000 Que tienen los servicios web 341 00:11:27,000 --> 00:11:29,000 Dentro de estas 342 00:11:29,000 --> 00:11:31,000 Dentro de las posibles tecnologías existentes 343 00:11:31,000 --> 00:11:33,000 Tendríamos 344 00:11:37,000 --> 00:11:39,000 Hola, buen día 345 00:11:39,000 --> 00:11:41,000 Buenos días 346 00:11:41,000 --> 00:11:43,000 La introducción la tenía yo y Miguel Ángel 347 00:11:43,000 --> 00:11:45,000 Se ha portado muy bien, empezaba antes de que llegáramos 348 00:11:45,000 --> 00:11:47,000 Porque teníamos que desayunar 349 00:11:47,000 --> 00:11:49,000 Y esas cosas 350 00:11:49,000 --> 00:11:51,000 Ayer fue muy largo, desde cinco de la mañana 351 00:11:51,000 --> 00:11:53,000 A una de la madrugada 352 00:11:53,000 --> 00:11:55,000 Y esta mañana las horas se han pegado 353 00:11:55,000 --> 00:11:57,000 Una pregunta 354 00:11:57,000 --> 00:11:59,000 ¿Cuantos de vosotros sois programadores? 355 00:11:59,000 --> 00:12:01,000 Vale 356 00:12:01,000 --> 00:12:03,000 Está claro 357 00:12:03,000 --> 00:12:05,000 No sé si hasta que punto 358 00:12:05,000 --> 00:12:07,000 Lo has contado 359 00:12:07,000 --> 00:12:09,000 Que son los web services y que no son 360 00:12:11,000 --> 00:12:13,000 ¿Tenemos claro que no son? 361 00:12:15,000 --> 00:12:17,000 Los web services no son algo 362 00:12:17,000 --> 00:12:19,000 Que vayamos a utilizar como usuarios 363 00:12:19,000 --> 00:12:21,000 Es algo que va a permitir que construyamos cosas encima 364 00:12:21,000 --> 00:12:23,000 ¿Vale? 365 00:12:23,000 --> 00:12:25,000 Una de las cosas importantes a tener en cuenta 366 00:12:25,000 --> 00:12:27,000 De esta arquitectura 367 00:12:27,000 --> 00:12:29,000 Que hemos conseguido 368 00:12:29,000 --> 00:12:31,000 Que Moodle moviera ficha el año pasado 369 00:12:31,000 --> 00:12:33,000 Para implementar 370 00:12:33,000 --> 00:12:35,000 Es primero que va a resolver un problema que ya tenemos 371 00:12:35,000 --> 00:12:37,000 Que son todos los que hemos hecho 372 00:12:37,000 --> 00:12:39,000 Integraciones contra Moodle 373 00:12:39,000 --> 00:12:41,000 Hacer matriculaciones, crear cursos 374 00:12:41,000 --> 00:12:43,000 Inscribir alumnos en cursos 375 00:12:43,000 --> 00:12:45,000 Y cargar algunos materiales automáticamente 376 00:12:45,000 --> 00:12:47,000 Empalmándolo con los softwares 377 00:12:47,000 --> 00:12:49,000 Que ya tenemos cada uno, algunos privados 378 00:12:49,000 --> 00:12:51,000 Algunos libres 379 00:12:51,000 --> 00:12:53,000 Pero hemos tenido que hacer estas cargas manualmente 380 00:12:53,000 --> 00:12:55,000 Esto hemos tenido que hacer los técnicos 381 00:12:55,000 --> 00:12:57,000 Rascando en plan coraje 382 00:12:57,000 --> 00:12:59,000 Y tocando las tablas 383 00:12:59,000 --> 00:13:01,000 Y cada vez que en Moodle nos han liberado una versión 384 00:13:01,000 --> 00:13:03,000 O una subversión, muchas cosas se han roto 385 00:13:03,000 --> 00:13:05,000 La idea es que 386 00:13:05,000 --> 00:13:07,000 Esta capa de web services 387 00:13:07,000 --> 00:13:09,000 Se compromete a que 388 00:13:09,000 --> 00:13:11,000 Al menos el equipo de core 389 00:13:11,000 --> 00:13:13,000 Se compromete a que se mantenga relativamente estable 390 00:13:13,000 --> 00:13:15,000 Va a permitir que 391 00:13:15,000 --> 00:13:17,000 Cuando nos enchufemos 392 00:13:17,000 --> 00:13:19,000 Cambiemos el desarrollo 393 00:13:19,000 --> 00:13:21,000 Que los desarrolladores tendrán que volver a cambiar 394 00:13:21,000 --> 00:13:23,000 Y adapten sus aplicaciones de backoffice contra esto 395 00:13:23,000 --> 00:13:25,000 Esto no cambie 396 00:13:25,000 --> 00:13:27,000 La idea sobre todo es 397 00:13:27,000 --> 00:13:29,000 La idea que ya teníamos el año pasado 398 00:13:29,000 --> 00:13:31,000 Era decir, queremos que la migración 399 00:13:31,000 --> 00:13:33,000 A Moodle 2.0 sea poco dolorosa 400 00:13:33,000 --> 00:13:35,000 Porque ya va a ser dolorosa 401 00:13:35,000 --> 00:13:37,000 Porque hay algunas cosas que van a cambiar 402 00:13:37,000 --> 00:13:39,000 Y cuando los usuarios nos cambian las cosas del sitio 403 00:13:39,000 --> 00:13:41,000 Siempre nos quejamos, aunque luego nos guste 404 00:13:41,000 --> 00:13:43,000 Pero primero es quejarse 405 00:13:43,000 --> 00:13:45,000 Imaginamos si encima la migración va a ser 406 00:13:45,000 --> 00:13:47,000 Dolorosa por parte de sistemas 407 00:13:47,000 --> 00:13:49,000 Entonces 408 00:13:49,000 --> 00:13:51,000 Por eso en Moodle 2.0 se están haciendo los web services 409 00:13:51,000 --> 00:13:53,000 Pero también 410 00:13:53,000 --> 00:13:55,000 Sobre todo desde el equipo de la Universidad de Salamanca 411 00:13:55,000 --> 00:13:57,000 Y CLEI están backporteando 412 00:13:57,000 --> 00:13:59,000 Están backporteando 413 00:13:59,000 --> 00:14:01,000 Los web services a 1.9 414 00:14:01,000 --> 00:14:03,000 De forma que podremos 415 00:14:03,000 --> 00:14:05,000 La migración que vamos a hacer hoy 416 00:14:05,000 --> 00:14:07,000 Contra Moodle 2.0 en la máquina de Piggy 417 00:14:07,000 --> 00:14:09,000 Pues se podrá hacer 418 00:14:09,000 --> 00:14:11,000 Funcionar contra un Moodle 1.9 419 00:14:11,000 --> 00:14:13,000 Con los web services montados 420 00:14:13,000 --> 00:14:15,000 Y entonces cuando tengamos que emigrar 421 00:14:15,000 --> 00:14:17,000 De 1.9 a 2.0 422 00:14:17,000 --> 00:14:19,000 Con un poco de suerte funcionará todo 423 00:14:19,000 --> 00:14:21,000 A la primera y sino tendremos que tocar 424 00:14:21,000 --> 00:14:23,000 Algunas pocas cosas 425 00:14:23,000 --> 00:14:25,000 Porque de alguna forma la migración sea poco dolorosa 426 00:14:25,000 --> 00:14:27,000 Y de alguna forma podamos invertir 427 00:14:27,000 --> 00:14:29,000 En software de sincronización potente 428 00:14:29,000 --> 00:14:31,000 Ya que permanezca 429 00:14:31,000 --> 00:14:33,000 Esta es una línea 430 00:14:33,000 --> 00:14:35,000 La otra línea es desde la línea 431 00:14:35,000 --> 00:14:37,000 De la gente que dice 432 00:14:37,000 --> 00:14:39,000 No, no, es que yo estoy más preocupado 433 00:14:39,000 --> 00:14:41,000 En que cuando yo aplico mi docencia con Moodle 434 00:14:41,000 --> 00:14:43,000 Es que yo tengo profesores que quieren usar 435 00:14:43,000 --> 00:14:45,000 Google Docs 436 00:14:45,000 --> 00:14:47,000 O ahora hay algún cafre que quiere usar Google Wave 437 00:14:47,000 --> 00:14:49,000 O yo quiero tener 438 00:14:49,000 --> 00:14:51,000 Un grupo de fotografías en Flickr 439 00:14:51,000 --> 00:14:53,000 Que son las fotografías de los alumnos 440 00:14:53,000 --> 00:14:55,000 O yo quiero tener 441 00:14:55,000 --> 00:14:57,000 Google Maps 442 00:14:57,000 --> 00:14:59,000 Pues como integro este tipo de cosas 443 00:14:59,000 --> 00:15:01,000 La gente que dice no, no, es que yo tengo gente 444 00:15:01,000 --> 00:15:03,000 Que tiene auténticos problemas de accesibilidad 445 00:15:03,000 --> 00:15:05,000 Y quiero acceder al curso de Moodle 446 00:15:05,000 --> 00:15:07,000 Con unas limitaciones 447 00:15:07,000 --> 00:15:09,000 De accesibilidad terribles 448 00:15:09,000 --> 00:15:11,000 Y a ver, todo el que tenga 449 00:15:11,000 --> 00:15:13,000 Un teléfono móvil se da cuenta 450 00:15:13,000 --> 00:15:15,000 De lo difícil que es acceder a Moodle 451 00:15:15,000 --> 00:15:17,000 Un teléfono móvil con navegador web 452 00:15:17,000 --> 00:15:19,000 Ve lo poco accesible que es Moodle 453 00:15:19,000 --> 00:15:21,000 Porque cuando tienes una pantalla pequeñita 454 00:15:21,000 --> 00:15:23,000 Moodle cuesta mucho de trabajar 455 00:15:23,000 --> 00:15:25,000 Entonces la idea es que además 456 00:15:25,000 --> 00:15:27,000 Tenemos un proyecto funcionando 457 00:15:27,000 --> 00:15:29,000 La idea es sacar la información 458 00:15:29,000 --> 00:15:31,000 De los web services 459 00:15:31,000 --> 00:15:33,000 No únicamente los datos que tenemos 460 00:15:33,000 --> 00:15:35,000 En administración 461 00:15:35,000 --> 00:15:37,000 Grupos, cursos, permisos 462 00:15:37,000 --> 00:15:39,000 Asignaciones, que esto es lo que interesa al centro 463 00:15:39,000 --> 00:15:41,000 Y es digamos el argumento de venta 464 00:15:41,000 --> 00:15:43,000 La idea es que también vamos a sacar 465 00:15:43,000 --> 00:15:45,000 La información del curso por los web services 466 00:15:45,000 --> 00:15:47,000 Y vamos a sacar la información que hay en los foros 467 00:15:47,000 --> 00:15:49,000 Y que hay en los wikis 468 00:15:49,000 --> 00:15:51,000 Y también vamos a meter funciones 469 00:15:51,000 --> 00:15:53,000 Que permitan que alguien desde fuera 470 00:15:53,000 --> 00:15:55,000 Añada información al foro 471 00:15:55,000 --> 00:15:57,000 O alguien añada un comentario 472 00:15:57,000 --> 00:15:59,000 O alguien envíe algún fichero 473 00:15:59,000 --> 00:16:01,000 Por ejemplo podemos hacer unha actividad 474 00:16:01,000 --> 00:16:03,000 Que consiste en hacer unha fotografía 475 00:16:03,000 --> 00:16:05,000 Desde un teléfono móvil 476 00:16:05,000 --> 00:16:07,000 Y envíarla directamente al Moodle 477 00:16:07,000 --> 00:16:09,000 Todas estas cosas se podrán desarrollar 478 00:16:09,000 --> 00:16:11,000 Pero lo más importante 479 00:16:11,000 --> 00:16:13,000 Se podrán desarrollar de forma que quepan 480 00:16:13,000 --> 00:16:15,000 En las instalaciones oficiales de Moodle 481 00:16:15,000 --> 00:16:17,000 Porque no va a afectar a los servidores 482 00:16:17,000 --> 00:16:19,000 Todas as cosas nuevas 483 00:16:19,000 --> 00:16:21,000 Se poden montar en servidores 484 00:16:21,000 --> 00:16:23,000 Más o menos de pruebas 485 00:16:23,000 --> 00:16:25,000 Más o menos estables 486 00:16:25,000 --> 00:16:27,000 Pero que de alguna manera no van a comprometer 487 00:16:27,000 --> 00:16:29,000 Ni la seguridad ni la integridad del servicio 488 00:16:29,000 --> 00:16:31,000 Ayer en la mesa redonda sobre contenidos 489 00:16:31,000 --> 00:16:33,000 Hubo algunos administradores 490 00:16:33,000 --> 00:16:35,000 Que dijeron 491 00:16:35,000 --> 00:16:37,000 Yo soy administrador y no me gusta que me hagan según que cosas 492 00:16:37,000 --> 00:16:39,000 Porque me rompen el sistema 493 00:16:39,000 --> 00:16:41,000 Pues la idea es esta 494 00:16:41,000 --> 00:16:43,000 Que tener mecanismos 495 00:16:43,000 --> 00:16:45,000 Para que los experimentadores experimenten 496 00:16:45,000 --> 00:16:47,000 Y que el que tiene que mantener el sistema estable 497 00:16:47,000 --> 00:16:49,000 Y sólido 498 00:16:49,000 --> 00:16:51,000 Puede hacer su trabajo correctamente 499 00:16:51,000 --> 00:16:53,000 Esa es la idea 500 00:16:53,000 --> 00:16:55,000 A partir de aquí la gracia es que 501 00:16:55,000 --> 00:16:57,000 Contra los webservices 502 00:16:57,000 --> 00:16:59,000 Aparte del proyecto que estamos arrancando 503 00:16:59,000 --> 00:17:01,000 Que sea un proyecto de software libre 504 00:17:01,000 --> 00:17:03,000 Y abierto a comunidad 505 00:17:03,000 --> 00:17:05,000 Y que ya comunicaremos donde ponemos el código 506 00:17:05,000 --> 00:17:07,000 Porque está todo muy 507 00:17:07,000 --> 00:17:09,000 Como en Moodle.org nos cambian continuamente el kernel 508 00:17:09,000 --> 00:17:11,000 Vamos despacito 509 00:17:11,000 --> 00:17:13,000 Pero cuando as cosas se congelen por debajo 510 00:17:13,000 --> 00:17:15,000 Podemos empezar a construir cosas encima 511 00:17:15,000 --> 00:17:17,000 Cuando se congela un lago 512 00:17:17,000 --> 00:17:19,000 Puedes empezar a patinar 513 00:17:19,000 --> 00:17:21,000 Con un gelo muy delgadito 514 00:17:21,000 --> 00:17:23,000 La idea es que se podan hacer tanto estos proyectos 515 00:17:23,000 --> 00:17:25,000 Como otros muchos proyectos 516 00:17:25,000 --> 00:17:27,000 Proyectos de accesibilidad o proyectos de integración más sólida 517 00:17:27,000 --> 00:17:29,000 Con otros sistemas 518 00:17:29,000 --> 00:17:31,000 Esta es la idea 519 00:17:31,000 --> 00:17:33,000 Y ahora Pig ya tenemos el sistema montado 520 00:17:39,000 --> 00:17:41,000 Vamos a ver una serie de ejemplos 521 00:17:41,000 --> 00:17:43,000 Con respecto a como los servicios web 522 00:17:43,000 --> 00:17:45,000 Pueden aplicarse realmente 523 00:17:45,000 --> 00:17:47,000 Como podemos extraer realmente información adecuada 524 00:17:47,000 --> 00:17:49,000 Por ejemplo en aplicaciones de back-office 525 00:17:49,000 --> 00:17:51,000 Esto es un cliente feo 526 00:17:51,000 --> 00:17:53,000 Pero es un cliente que actualmente funciona contra los servicios web 527 00:17:53,000 --> 00:17:55,000 Y vosotros diréis 528 00:17:55,000 --> 00:17:57,000 Tiene que agregar usuarios 529 00:17:57,000 --> 00:17:59,000 Tiene que sacar log, tiene que crear cursos 530 00:17:59,000 --> 00:18:01,000 Como cualquier herramienta externa 531 00:18:01,000 --> 00:18:03,000 Además a Moodle 532 00:18:03,000 --> 00:18:05,000 Y sin ir contra la base de datos directamente 533 00:18:05,000 --> 00:18:07,000 Pero por ejemplo 534 00:18:07,000 --> 00:18:09,000 Pensad vosotros si quisierais hacer lo siguiente 535 00:18:09,000 --> 00:18:11,000 Vosotros tenéis acceso al log de Moodle 536 00:18:11,000 --> 00:18:13,000 Y creéis que cuando una persona lleva tres días sin entrar 537 00:18:13,000 --> 00:18:15,000 Le mande automáticamente a Moodle 538 00:18:15,000 --> 00:18:17,000 Un mensaje diciéndole ¿Qué te pasa? 539 00:18:17,000 --> 00:18:19,000 Que podríamos hacerlo por otra parte 540 00:18:19,000 --> 00:18:21,000 Podríamos peinarnos todo el log 541 00:18:21,000 --> 00:18:23,000 Ver qué personas llevan sin entrar tres días 542 00:18:23,000 --> 00:18:25,000 Y mandarles manualmente un mensaje 543 00:18:25,000 --> 00:18:27,000 ¿Qué nos aporta esto? 544 00:18:27,000 --> 00:18:29,000 Nos aporta la capacidad de poder extraer todo eso 545 00:18:29,000 --> 00:18:31,000 Desde unha aplicación completamente externa 546 00:18:31,000 --> 00:18:33,000 Tratar esa información 547 00:18:33,000 --> 00:18:35,000 Y después proporcionar 548 00:18:35,000 --> 00:18:37,000 En este caso un servicio 549 00:18:37,000 --> 00:18:39,000 Como sería el de seguimiento 550 00:18:39,000 --> 00:18:41,000 De los usuarios 551 00:18:41,000 --> 00:18:43,000 Por otro lado 552 00:18:43,000 --> 00:18:45,000 ¿Por qué no hacer esto en dispositivos móviles? 553 00:18:45,000 --> 00:18:47,000 Actualmente existe un cliente móvil 554 00:18:47,000 --> 00:18:49,000 Que permite, a través de servicios web 555 00:18:49,000 --> 00:18:51,000 Esto está creciendo y se está cambiando 556 00:18:51,000 --> 00:18:53,000 Conectarse a Moodle 557 00:18:53,000 --> 00:18:55,000 Ir explorando las categorías 558 00:18:55,000 --> 00:18:57,000 Ir explorando los diferentes cursos 559 00:18:57,000 --> 00:18:59,000 Y dentro dos cursos acceder a cada recurso 560 00:18:59,000 --> 00:19:01,000 Y reproducirlo adaptado al dispositivo móvil 561 00:19:01,000 --> 00:19:03,000 Si existe una serie de servicios web 562 00:19:03,000 --> 00:19:05,000 No nos tenemos que preocupar de como recuperamos la información 563 00:19:05,000 --> 00:19:07,000 Nosotros nos tenemos que preocupar 564 00:19:07,000 --> 00:19:09,000 De el rol que tenemos 565 00:19:09,000 --> 00:19:11,000 Como nos conectamos 566 00:19:11,000 --> 00:19:13,000 Nosotros tenemos accesos y de consumirlos 567 00:19:13,000 --> 00:19:15,000 Desde el dispositivo móvil 568 00:19:15,000 --> 00:19:17,000 Con lo cual nos olvidamos de toda la tecnología subyacente 569 00:19:17,000 --> 00:19:19,000 Solamente nos centramos en funciones concretas 570 00:19:19,000 --> 00:19:21,000 De lo que queremos hacer 571 00:19:21,000 --> 00:19:23,000 Por otro lado 572 00:19:23,000 --> 00:19:25,000 También podemos hacer 573 00:19:25,000 --> 00:19:27,000 Prospección o visualización de la información 574 00:19:27,000 --> 00:19:29,000 Nosotros tendemos muchísima información a través de Moodle 575 00:19:29,000 --> 00:19:31,000 Por ejemplo 576 00:19:31,000 --> 00:19:33,000 Las palabras más destacadas dentro de los posts 577 00:19:33,000 --> 00:19:35,000 Cogemos todos los posts de Moodle 578 00:19:35,000 --> 00:19:37,000 Extraemos las diferentes palabras 579 00:19:37,000 --> 00:19:39,000 Y vemos en qué se está interesando más la gente 580 00:19:39,000 --> 00:19:41,000 También podríamos ver 581 00:19:41,000 --> 00:19:43,000 El número de aprobados 582 00:19:43,000 --> 00:19:45,000 O cuánta gente entra en una determinada actividad 583 00:19:45,000 --> 00:19:47,000 A partir de determinar si esa actividad es más popular 584 00:19:47,000 --> 00:19:49,000 Menos popular 585 00:19:49,000 --> 00:19:51,000 Si el curso se está conduciendo de una manera adecuada 586 00:19:51,000 --> 00:19:53,000 Es decir, tomar decisiones de negocio 587 00:19:53,000 --> 00:19:55,000 En función de determinada información 588 00:19:55,000 --> 00:19:57,000 A través de técnicas como estas 589 00:19:57,000 --> 00:19:59,000 De visualización 590 00:19:59,000 --> 00:20:01,000 Se forman galaxias con diferentes palabras 591 00:20:01,000 --> 00:20:03,000 Conectadas entre ellas 592 00:20:03,000 --> 00:20:05,000 En distintas actividades del Moodle 593 00:20:05,000 --> 00:20:07,000 También podríamos hacer algo como esto 594 00:20:07,000 --> 00:20:09,000 Tener un análisis visual adaptativo 595 00:20:09,000 --> 00:20:11,000 En el que nosotros determinamos qué características queremos 596 00:20:11,000 --> 00:20:13,000 Y a través de información 597 00:20:13,000 --> 00:20:15,000 Que podemos encontrar en el log de Moodle 598 00:20:15,000 --> 00:20:17,000 Por ejemplo, ver cuándo se conecta más la gente 599 00:20:17,000 --> 00:20:19,000 Esto, si os fijáis, es un círculo horario 600 00:20:19,000 --> 00:20:21,000 Y estamos viendo que hay más manchas amarillas 601 00:20:21,000 --> 00:20:23,000 En una zona determinada 602 00:20:23,000 --> 00:20:25,000 Esas manchas amarillas serán cuándo se conecta más la gente 603 00:20:25,000 --> 00:20:27,000 Aquí tendríamos, por ejemplo 604 00:20:27,000 --> 00:20:29,000 Desde las ocho de la mañana 605 00:20:29,000 --> 00:20:31,000 Hasta aproximadamente la una del mediodía 606 00:20:31,000 --> 00:20:33,000 Hay bastantes conexiones 607 00:20:33,000 --> 00:20:35,000 Y luego a las seis de la tarde se repetiría 608 00:20:35,000 --> 00:20:37,000 Lo cual, si por ejemplo pensamos en hacer 609 00:20:37,000 --> 00:20:39,000 Una actividad sincrona 610 00:20:39,000 --> 00:20:41,000 Tendríamos que hacerla en una de esas horas 611 00:20:41,000 --> 00:20:43,000 Que es cuando más gente va a ver 612 00:20:43,000 --> 00:20:45,000 Este tipo de información se puede explotar en diferentes contextos 613 00:20:45,000 --> 00:20:47,000 Y estos son algunos de los que podemos encontrarnos 614 00:20:49,000 --> 00:20:51,000 También tenemos, debido a Jordi Pivillén 615 00:20:51,000 --> 00:20:53,000 La integración de un conector 616 00:20:55,000 --> 00:20:57,000 Para poder integrar herramientas externas 617 00:20:57,000 --> 00:20:59,000 Dentro de Moodle, que era lo que comentaba antes Mark 618 00:20:59,000 --> 00:21:01,000 Esos cafres que usan, por ejemplo 619 00:21:01,000 --> 00:21:03,000 Google Docs, o que usamos Google Docs 620 00:21:03,000 --> 00:21:05,000 Para impartir docencia 621 00:21:05,000 --> 00:21:07,000 Pues integrar eso en el Moodle 622 00:21:09,000 --> 00:21:11,000 A ver, la idea es que esto 623 00:21:11,000 --> 00:21:13,000 Si os fijáis un poco, aquí pone 624 00:21:13,000 --> 00:21:15,000 Simple LTIs 625 00:21:15,000 --> 00:21:17,000 LTI es 626 00:21:17,000 --> 00:21:19,000 Las siglas que significan 627 00:21:19,000 --> 00:21:21,000 Learning Technologies for Interoperability 628 00:21:21,000 --> 00:21:23,000 Que es un estándar que está desarrollando 629 00:21:23,000 --> 00:21:25,000 El IMS 630 00:21:25,000 --> 00:21:27,000 ¿Cómo? 631 00:21:27,000 --> 00:21:29,000 Ah, Learning Tools 632 00:21:29,000 --> 00:21:31,000 Lo cambian cada día, o lo cambio yo 633 00:21:31,000 --> 00:21:33,000 Bueno 634 00:21:33,000 --> 00:21:35,000 La idea es que 635 00:21:35,000 --> 00:21:37,000 El Learning Tools for Interoperability 636 00:21:37,000 --> 00:21:39,000 No existe todavía, porque es un estándar 637 00:21:39,000 --> 00:21:41,000 Que se está desarrollando 638 00:21:41,000 --> 00:21:43,000 Lo que sí que se ha hecho es publicar 639 00:21:43,000 --> 00:21:45,000 Una versión inicial de este estándar 640 00:21:45,000 --> 00:21:47,000 Que es el Basic LTI 641 00:21:47,000 --> 00:21:49,000 Que se incorpora dentro del estándar 642 00:21:49,000 --> 00:21:51,000 Common Cartridge 1.1 643 00:21:51,000 --> 00:21:53,000 El Common Cartridge original 644 00:21:53,000 --> 00:21:55,000 El 1.0, está muy orientado 645 00:21:55,000 --> 00:21:57,000 A coger contenidos 646 00:21:57,000 --> 00:21:59,000 Y meterlos dentro de Moodle 647 00:21:59,000 --> 00:22:01,000 Eso es estilo Scorn 648 00:22:01,000 --> 00:22:03,000 Vemos que es hermoso 649 00:22:03,000 --> 00:22:05,000 Mientras que 650 00:22:05,000 --> 00:22:07,000 En el 1.1 651 00:22:07,000 --> 00:22:09,000 Con la incorporación del LTI 652 00:22:09,000 --> 00:22:11,000 El Basic LTI 653 00:22:11,000 --> 00:22:13,000 La idea es que nosotros podemos tener 654 00:22:13,000 --> 00:22:15,000 Una aplicación que no esté necesariamente 655 00:22:15,000 --> 00:22:17,000 Diseñada para un Learning Management System 656 00:22:17,000 --> 00:22:19,000 Como por ejemplo puede ser 657 00:22:19,000 --> 00:22:21,000 Google Docs 658 00:22:21,000 --> 00:22:23,000 Y a través de una pasarela 659 00:22:23,000 --> 00:22:25,000 Que desarrolló Jordi Piguillem 660 00:22:25,000 --> 00:22:27,000 En Google Application Engine 661 00:22:27,000 --> 00:22:29,000 Lo que podemos hacer es que 662 00:22:29,000 --> 00:22:31,000 Documentos concretos 663 00:22:31,000 --> 00:22:33,000 De Google Docs 664 00:22:33,000 --> 00:22:35,000 Entren dentro de Moodle 665 00:22:35,000 --> 00:22:37,000 A través del cliente de LTI 666 00:22:37,000 --> 00:22:39,000 Para poder desarrollar el cliente de Basic LTI 667 00:22:39,000 --> 00:22:41,000 Es necesario 668 00:22:41,000 --> 00:22:43,000 Disponer de la tecnología 669 00:22:43,000 --> 00:22:45,000 De los web services que hay por detrás 670 00:22:45,000 --> 00:22:47,000 Para poder implementar el Common Cartridge 1.1 671 00:22:47,000 --> 00:22:49,000 Necesitamos esta parte 672 00:22:49,000 --> 00:22:51,000 Es bastante interesante porque 673 00:22:51,000 --> 00:22:53,000 Permitirá integrar muchísimas cosas 674 00:22:53,000 --> 00:22:55,000 Tanto herramientas que están hechas fuera 675 00:22:55,000 --> 00:22:57,000 Por ejemplo, alguien ha hecho una aplicación hecha en .net 676 00:22:57,000 --> 00:22:59,000 Que no se puede integrar dentro de Moodle 677 00:22:59,000 --> 00:23:01,000 Pues desta forma se podía integrar 678 00:23:01,000 --> 00:23:03,000 Y además podíamos hacer que la herramienta 679 00:23:03,000 --> 00:23:05,000 Supiera cosas sobre en que curso nos encontramos 680 00:23:05,000 --> 00:23:07,000 Quien es el usuario que está utilizando ahora 681 00:23:07,000 --> 00:23:09,000 Cual es el rol que tiene dentro de la actividad 682 00:23:09,000 --> 00:23:11,000 Y además podíamos enviar 683 00:23:11,000 --> 00:23:13,000 Cosas como información sobre logs 684 00:23:13,000 --> 00:23:15,000 O información sobre notas 685 00:23:15,000 --> 00:23:17,000 Con lo cual 686 00:23:17,000 --> 00:23:19,000 Es muy útil 687 00:23:19,000 --> 00:23:21,000 También podíamos hacer cosas relacionadas 688 00:23:21,000 --> 00:23:23,000 Con temas de escalabilidad 689 00:23:23,000 --> 00:23:25,000 Por ejemplo, si estamos en una gran instalación 690 00:23:25,000 --> 00:23:27,000 Que el 50% 691 00:23:27,000 --> 00:23:29,000 De los hits de la actividad 692 00:23:29,000 --> 00:23:31,000 Se está dando siempre en el mismo módulo 693 00:23:31,000 --> 00:23:33,000 Podríamos tener un Moodle 694 00:23:33,000 --> 00:23:35,000 Que simplemente se encargue de generar foros 695 00:23:35,000 --> 00:23:37,000 Y con un producer 696 00:23:37,000 --> 00:23:39,000 De foro 697 00:23:39,000 --> 00:23:41,000 Utilizar en el Moodle 698 00:23:41,000 --> 00:23:43,000 De verdad, el Moodle del centro 699 00:23:43,000 --> 00:23:45,000 Simplemente decir que los foros 700 00:23:45,000 --> 00:23:47,000 Son foros que nos está sirviendo 701 00:23:47,000 --> 00:23:49,000 Otra máquina 702 00:23:49,000 --> 00:23:51,000 Y desta forma tendríamos dos máquinas en paralelo trabajando 703 00:23:51,000 --> 00:23:53,000 Y repartiendo la carga 704 00:23:53,000 --> 00:23:55,000 Es más barato 705 00:23:55,000 --> 00:23:57,000 Tener dos máquinas 706 00:23:57,000 --> 00:23:59,000 Que no poner una máquina el doble de potente 707 00:23:59,000 --> 00:24:01,000 El coste es mucho más alto 708 00:24:03,000 --> 00:24:05,000 ¿Pasamos a siguiente? 709 00:24:11,000 --> 00:24:13,000 Bueno, se trataba esto 710 00:24:13,000 --> 00:24:15,000 De exportar los contenidos 711 00:24:15,000 --> 00:24:17,000 De Moodle a través 712 00:24:17,000 --> 00:24:19,000 Tanto de los web services como a través 713 00:24:19,000 --> 00:24:21,000 Del productor de Basic LTI 714 00:24:21,000 --> 00:24:23,000 Y este experimento cual es 715 00:24:23,000 --> 00:24:25,000 A partir de aquí empezamos a trabajar 716 00:24:45,000 --> 00:24:47,000 Actualmente hay 717 00:24:47,000 --> 00:24:49,000 Dos CVS 718 00:24:49,000 --> 00:24:51,000 Donde se encuentran las APIs 719 00:24:51,000 --> 00:24:53,000 Una es en el core de Moodle 720 00:24:53,000 --> 00:24:55,000 En el head de Moodle 2.0 721 00:24:55,000 --> 00:24:57,000 Y otra es en un servidor que tenemos en mi despacho 722 00:24:57,000 --> 00:24:59,000 Que se llama potato.lsi.upc.edu 723 00:25:01,000 --> 00:25:03,000 Allí hay un tracker 724 00:25:03,000 --> 00:25:05,000 Donde creo que tenemos accesible 725 00:25:05,000 --> 00:25:07,000 La versión de desarrollo que estamos usando nosotros 726 00:25:07,000 --> 00:25:09,000 Y ahí es donde vamos añadiendo funcionalidades 727 00:25:09,000 --> 00:25:11,000 Lo que sí que es verdad 728 00:25:11,000 --> 00:25:13,000 Es que nosotros queremos abrir 729 00:25:13,000 --> 00:25:15,000 Bien pronto 730 00:25:15,000 --> 00:25:17,000 ¿Qué cosas queréis hacer? 731 00:25:17,000 --> 00:25:19,000 Necesitamos estas funciones 732 00:25:19,000 --> 00:25:21,000 Y digo que necesitamos 733 00:25:21,000 --> 00:25:23,000 Que esto se empiece a activar 734 00:25:23,000 --> 00:25:25,000 Y que tendría que pasar en el foro de web services 735 00:25:25,000 --> 00:25:27,000 De Moodle 736 00:25:27,000 --> 00:25:29,000 Y abriremos algún hilo por allí 737 00:25:29,000 --> 00:25:31,000 Porque nos cuesta convencer a veces 738 00:25:31,000 --> 00:25:33,000 A la gente de core de Moodle 739 00:25:33,000 --> 00:25:35,000 Que se incorporan novas funcionalidades 740 00:25:35,000 --> 00:25:37,000 Digamos 741 00:25:37,000 --> 00:25:39,000 La gente que desarrolla el core de Moodle 742 00:25:39,000 --> 00:25:41,000 Son conservadores 743 00:25:41,000 --> 00:25:43,000 Uy, esto tal 744 00:25:43,000 --> 00:25:45,000 Uy, seguridad 745 00:25:45,000 --> 00:25:47,000 Esto no 746 00:25:47,000 --> 00:25:49,000 Y por tanto es muy importante que la gente diga 747 00:25:49,000 --> 00:25:51,000 Ey, que yo quiero hacer esto, que necesitamos esta función 748 00:25:53,000 --> 00:25:55,000 ¿Alguien? 749 00:25:55,000 --> 00:25:57,000 ¿Tiene algún comentario o pregunta? 750 00:25:57,000 --> 00:25:59,000 O vamos a ver ya 751 00:25:59,000 --> 00:26:01,000 El código 752 00:26:01,000 --> 00:26:03,000 Y todos los que no sois programadores vais a empezar a poder desconectar 753 00:26:03,000 --> 00:26:05,000 ¿Joan? 754 00:26:05,000 --> 00:26:07,000 Ah, o tomar un café también 755 00:26:07,000 --> 00:26:09,000 Bueno 756 00:26:11,000 --> 00:26:13,000 Es espotato.lsi.pc.edu 757 00:26:13,000 --> 00:26:15,000 Barra projects 758 00:26:15,000 --> 00:26:17,000 Barra Moodle web services 759 00:26:17,000 --> 00:26:19,000 Y aquí tenéis el tracker 760 00:26:19,000 --> 00:26:21,000 Con el git 761 00:26:21,000 --> 00:26:23,000 Y con el código 762 00:26:23,000 --> 00:26:25,000 Y esto es altamente experimental 763 00:26:25,000 --> 00:26:27,000 Porque Jordi y Miguel Ángel 764 00:26:27,000 --> 00:26:29,000 Ayer se tiraron cuatro horas 765 00:26:29,000 --> 00:26:31,000 Majas 766 00:26:31,000 --> 00:26:33,000 Para poderlo hacer funcionar 767 00:26:33,000 --> 00:26:35,000 Porque hace una semana Peter entró 768 00:26:35,000 --> 00:26:37,000 En velocidad y dejó de funcionar todo 769 00:26:37,000 --> 00:26:39,000 Y bueno 770 00:26:39,000 --> 00:26:41,000 La cosa es bastante 771 00:26:43,000 --> 00:26:45,000 Está bastante verde 772 00:26:45,000 --> 00:26:47,000 Pero precisamente por esto 773 00:26:47,000 --> 00:26:49,000 Porque el core no se está quieto 774 00:26:49,000 --> 00:26:51,000 Pero está cogiendo velocidad 775 00:26:51,000 --> 00:26:53,000 ¿Jordi? 776 00:26:53,000 --> 00:26:55,000 Teo 777 00:26:57,000 --> 00:26:59,000 Pues vale, tenéis todos 778 00:26:59,000 --> 00:27:01,000 Un portátil, ¿no? 779 00:27:01,000 --> 00:27:03,000 Pues si os conectáis a esta url 780 00:27:05,000 --> 00:27:07,000 Veréis al mío 781 00:27:07,000 --> 00:27:09,000 Y os deberíais bajar el zip 782 00:27:09,000 --> 00:27:11,000 Que hay aquí, que se llama 783 00:27:11,000 --> 00:27:13,000 Mood09ws 784 00:27:15,000 --> 00:27:17,000 Vale, espérate 785 00:27:17,000 --> 00:27:19,000 Podría poner el zoom, pero bueno 786 00:27:19,000 --> 00:27:31,000 Es http://192.168.11.169.8888 787 00:27:31,000 --> 00:27:33,000 ¿No lo coge? 788 00:27:35,000 --> 00:27:37,000 A lo mejor me ha cambiado la IP 789 00:27:37,000 --> 00:27:39,000 A ver 790 00:27:39,000 --> 00:27:41,000 ¿Sí? 791 00:27:45,000 --> 00:27:47,000 ¿Cómo? 792 00:27:47,000 --> 00:27:49,000 ¿Y por cable? 793 00:27:49,000 --> 00:27:51,000 ¿Por cable no llega? 794 00:27:51,000 --> 00:27:53,000 ¿Hay cable? 795 00:27:55,000 --> 00:27:57,000 No sé, a lo mejor si lo enchufo 796 00:27:57,000 --> 00:27:59,000 Ayer funcionaba 797 00:28:01,000 --> 00:28:03,000 A ver 798 00:28:05,000 --> 00:28:07,000 Dime 799 00:28:07,000 --> 00:28:09,000 Lo he mirado, lo he mirado, espera 800 00:28:09,000 --> 00:28:11,000 A ver 801 00:28:15,000 --> 00:28:17,000 Toma, toma, toma 802 00:28:17,000 --> 00:28:19,000 ¿Me das? 803 00:28:23,000 --> 00:28:25,000 Voy a buscar a vos 804 00:28:25,000 --> 00:28:27,000 A ver 805 00:28:31,000 --> 00:28:33,000 Buscar a alguien 806 00:28:41,000 --> 00:28:43,000 No sé 807 00:28:45,000 --> 00:28:47,000 Dime, busca a alguien 808 00:28:51,000 --> 00:28:53,000 Por wales ayer iba 809 00:28:53,000 --> 00:28:55,000 ¿Tienes IP? 810 00:28:55,000 --> 00:28:57,000 ¿Tengo? 811 00:29:07,000 --> 00:29:09,000 No tengo IP yo ahora 812 00:29:09,000 --> 00:29:11,000 A ver 813 00:29:23,000 --> 00:29:25,000 Necesito saber que es esta máquina 814 00:29:25,000 --> 00:29:27,000 La IP es la 11.169 815 00:29:27,000 --> 00:29:29,000 Bueno, tenéis todos 816 00:29:29,000 --> 00:29:31,000 Tenéis todos el zip bajado 817 00:29:31,000 --> 00:29:33,000 Vale, lo tenéis en el escritorio 818 00:29:33,000 --> 00:29:35,000 Bueno, la intención es que abráis un navegador 819 00:29:35,000 --> 00:29:37,000 Vale, y comprobéis que funciona 820 00:29:37,000 --> 00:29:39,000 Y ponéis localhost 821 00:29:39,000 --> 00:29:41,000 Que es el Apache 822 00:29:41,000 --> 00:29:43,000 Entonces entráis en el navegador 823 00:29:43,000 --> 00:29:45,000 Ponéis localhost 824 00:29:45,000 --> 00:29:47,000 Y os tiene que salir 825 00:29:47,000 --> 00:29:49,000 Eliteworks 826 00:29:49,000 --> 00:29:51,000 Vale 827 00:30:05,000 --> 00:30:07,000 Vale, pues si todos tenéis 828 00:30:07,000 --> 00:30:09,000 El localhost funcionando con el Apache 829 00:30:09,000 --> 00:30:11,000 Lo que tenéis que hacer es entrar en modo comando 830 00:30:11,000 --> 00:30:13,000 Con un terminal 831 00:30:15,000 --> 00:30:17,000 Y os tenéis que ir a la raíz 832 00:30:17,000 --> 00:30:19,000 Os tenéis que ir a la raíz 833 00:30:23,000 --> 00:30:25,000 Del directorio de Ubuntu 834 00:30:29,000 --> 00:30:31,000 Y en el barra bar 835 00:30:31,000 --> 00:30:33,000 Barra www 836 00:30:33,000 --> 00:30:35,000 Poder hacer un directorio 837 00:30:47,000 --> 00:30:49,000 En el sitio raíz de donde se consiguen los recursos 838 00:30:49,000 --> 00:30:51,000 Vale 839 00:30:53,000 --> 00:30:55,000 Si, pero como no tenéis privilegios 840 00:30:55,000 --> 00:30:57,000 Primero lo que tenéis que hacer es un sudo su 841 00:30:57,000 --> 00:30:59,000 Y el password es cmadrid 842 00:30:59,000 --> 00:31:01,000 Sudo su 843 00:31:01,000 --> 00:31:03,000 Y el password es cmadrid 844 00:31:03,000 --> 00:31:05,000 Lo que habéis puesto a la entrada de password 845 00:31:05,000 --> 00:31:07,000 Si? 846 00:31:07,000 --> 00:31:09,000 Podéis? 847 00:31:09,000 --> 00:31:11,000 Estáis todos en el barra bar barra www 848 00:31:13,000 --> 00:31:15,000 Habéis hecho el sudo su 849 00:31:17,000 --> 00:31:19,000 Podéis? 850 00:31:19,000 --> 00:31:21,000 Vale, y aquí hacéis un directorio 851 00:31:21,000 --> 00:31:23,000 Con el comando mkdir 852 00:31:23,000 --> 00:31:25,000 Y dentro de ese directorio 853 00:31:25,000 --> 00:31:27,000 Podéis copiar todos los archivos 854 00:31:29,000 --> 00:31:31,000 Cmadrid 855 00:31:41,000 --> 00:31:43,000 Hay alguien que esté perdido en el 856 00:31:43,000 --> 00:31:45,000 Si, ósea y los archivos 857 00:31:45,000 --> 00:31:47,000 Que habéis descomprimido en el escritorio 858 00:31:47,000 --> 00:31:49,000 Los tenéis que copiar dentro de ese directorio 859 00:31:49,000 --> 00:31:51,000 Que habéis creado en el www 860 00:31:53,000 --> 00:31:55,000 El comando es cp 861 00:31:55,000 --> 00:31:57,000 La fuente del fichero 862 00:31:57,000 --> 00:31:59,000 La fuente del directorio 863 00:31:59,000 --> 00:32:01,000 Y el destino del directorio 864 00:32:01,000 --> 00:32:03,000 Ósea un ejemplo sería cp 865 00:32:03,000 --> 00:32:05,000 Barra home 866 00:32:05,000 --> 00:32:07,000 Madrid 867 00:32:07,000 --> 00:32:09,000 Escritorio 868 00:32:09,000 --> 00:32:11,000 Donde indicáis los archivos 869 00:32:11,000 --> 00:32:13,000 Y la fuente 870 00:32:13,000 --> 00:32:15,000 Y el destino perdón 871 00:32:15,000 --> 00:32:17,000 Barra bar barra www 872 00:32:17,000 --> 00:32:19,000 El directorio que habéis creado 873 00:32:19,000 --> 00:32:21,000 Podéis hacerlo así? 874 00:32:21,000 --> 00:32:23,000 Sería home 875 00:32:23,000 --> 00:32:25,000 Barra Madrid 876 00:32:25,000 --> 00:32:27,000 Barra escritorio 877 00:32:27,000 --> 00:32:29,000 Escritorio en castellano 878 00:32:29,000 --> 00:32:31,000 Y ahora entonces pondríais el directorio 879 00:32:31,000 --> 00:32:33,000 Donde lo habéis descomprimido 880 00:32:33,000 --> 00:32:35,000 Que es model webservice 881 00:32:35,000 --> 00:32:37,000 Barra 882 00:32:37,000 --> 00:32:39,000 Y le ponéis 883 00:32:39,000 --> 00:32:41,000 Una barra y le pones un asterisco 884 00:32:41,000 --> 00:32:43,000 Se copian todos los archivos que hay en ese directorio 885 00:32:43,000 --> 00:32:45,000 Y luego 886 00:32:45,000 --> 00:32:47,000 El destino que es barra bar 887 00:32:47,000 --> 00:32:49,000 Barra bar 888 00:32:49,000 --> 00:32:51,000 Barra www 889 00:32:51,000 --> 00:32:53,000 Barra el directorio que habéis creado 890 00:32:53,000 --> 00:32:55,000 Puede ser prueba, prueba webservice 891 00:32:55,000 --> 00:32:57,000 Lo que hayáis puesto 892 00:32:57,000 --> 00:32:59,000 Pon prueba 893 00:32:59,000 --> 00:33:01,000 Pon prueba webservice y ya está 894 00:33:01,000 --> 00:33:03,000 Al final del este 895 00:33:05,000 --> 00:33:07,000 Pon después del barra bar 896 00:33:07,000 --> 00:33:09,000 Pon prueba webservice 897 00:33:10,000 --> 00:33:12,000 V2 898 00:33:12,000 --> 00:33:14,000 Barra 899 00:33:14,000 --> 00:33:16,000 Te falta una barra más 900 00:33:16,000 --> 00:33:18,000 Para decir que va dentro 901 00:33:18,000 --> 00:33:20,000 Vale? 902 00:33:23,000 --> 00:33:25,000 Es más o menos el ejemplo este 903 00:33:27,000 --> 00:33:29,000 Si habéis descomprimido el zip en el escritorio 904 00:33:29,000 --> 00:33:31,000 Debería ser así 905 00:33:31,000 --> 00:33:33,000 Alguien no ha podido? 906 00:33:33,000 --> 00:33:35,000 Ou alguien ha podido 907 00:33:35,000 --> 00:33:37,000 Háis podido? 908 00:33:37,000 --> 00:33:39,000 Vale, entón dentro deste directorio 909 00:33:41,000 --> 00:33:43,000 Vosotros estáis tendo todos os ficheros 910 00:33:43,000 --> 00:33:45,000 Que agora modificaremos 911 00:33:47,000 --> 00:33:49,000 E entón en el localhost 912 00:33:49,000 --> 00:33:51,000 Lo único que tenéis que poner é 913 00:33:51,000 --> 00:33:53,000 localhost barra 914 00:33:53,000 --> 00:33:55,000 O nome do directorio que habéis creado 915 00:33:55,000 --> 00:33:57,000 No navegador de Firefox 916 00:33:59,000 --> 00:34:01,000 Podéis? 917 00:34:01,000 --> 00:34:03,000 Vale isto? 918 00:34:03,000 --> 00:34:05,000 Este? 919 00:34:07,000 --> 00:34:09,000 Tenéis todos, no? 920 00:34:09,000 --> 00:34:11,000 Todo mundo lo teña copiado, ya? 921 00:34:11,000 --> 00:34:13,000 Vale, pues lo próximo 922 00:34:13,000 --> 00:34:15,000 Sería que con el Firefox 923 00:34:15,000 --> 00:34:17,000 O navegador que tengáis 924 00:34:17,000 --> 00:34:19,000 Accedáis a localhost 925 00:34:19,000 --> 00:34:21,000 Barra 926 00:34:21,000 --> 00:34:23,000 Olvidaos de los ochos 927 00:34:25,000 --> 00:34:27,000 Y la carpeta que la habéis llamado 928 00:34:27,000 --> 00:34:29,000 mod09ws 929 00:34:33,000 --> 00:34:35,000 O prueba 930 00:34:35,000 --> 00:34:37,000 O como la habéis llamado 931 00:34:39,000 --> 00:34:41,000 Tendría que salir suces 932 00:34:45,000 --> 00:34:47,000 Lo tenéis, no? 933 00:34:47,000 --> 00:34:49,000 Vale, pues esto es una especie 934 00:34:49,000 --> 00:34:51,000 De mini cliente 935 00:34:51,000 --> 00:34:53,000 Que aprovecha los web services 936 00:34:53,000 --> 00:34:55,000 Para 937 00:34:55,000 --> 00:34:57,000 Crear unos cuantos usuarios 938 00:34:57,000 --> 00:34:59,000 Y unos cuantos cursos 939 00:34:59,000 --> 00:35:01,000 Vale, es muy sencillo, lo hice viniendo en el tren 940 00:35:01,000 --> 00:35:03,000 Y es muy simple 941 00:35:03,000 --> 00:35:05,000 Como veis, solo pone suces 942 00:35:05,000 --> 00:35:07,000 Y no hay ningún formulario 943 00:35:07,000 --> 00:35:09,000 Ningún botón, ni nada 944 00:35:09,000 --> 00:35:11,000 Vale, si 945 00:35:11,000 --> 00:35:13,000 Examináis la carpeta 946 00:35:13,000 --> 00:35:15,000 Que habéis copiado dentro de 947 00:35:15,000 --> 00:35:17,000 www 948 00:35:17,000 --> 00:35:19,000 Veréis que hay 949 00:35:19,000 --> 00:35:21,000 Un archivo que se llama index.php 950 00:35:21,000 --> 00:35:23,000 Hay un client.php 951 00:35:27,000 --> 00:35:29,000 Hay un par de archivos 952 00:35:29,000 --> 00:35:31,000 De valores separados por comas 953 00:35:33,000 --> 00:35:35,000 No podrán editar los archivos 954 00:35:35,000 --> 00:35:37,000 Si no hacen el chmod 955 00:35:37,000 --> 00:35:39,000 Pongo el chmod 956 00:35:39,000 --> 00:35:41,000 Vale, hazlo 957 00:35:47,000 --> 00:35:49,000 ¿Dónde tenéis el más? 958 00:35:49,000 --> 00:35:51,000 ¿El más o su más? 959 00:35:51,000 --> 00:35:53,000 Un 777 960 00:35:53,000 --> 00:35:55,000 ¿Dónde tenéis el más? 961 00:35:55,000 --> 00:35:57,000 ¿Dónde tenéis el más? 962 00:35:57,000 --> 00:35:59,000 ¿Dónde tenéis el más? 963 00:36:15,000 --> 00:36:17,000 Bueno, técnicamente, para que no tengáis problemas 964 00:36:17,000 --> 00:36:19,000 De escritura y luego guardar los ficheros 965 00:36:19,000 --> 00:36:21,000 En el directorio donde habéis descomprimido 966 00:36:21,000 --> 00:36:23,000 Todos los... bueno 967 00:36:23,000 --> 00:36:25,000 En el directorio del www 968 00:36:25,000 --> 00:36:27,000 Donde habéis descomprimido los ficheros 969 00:36:27,000 --> 00:36:29,000 Y los tenéis todos los .php 970 00:36:29,000 --> 00:36:31,000 Deberíais ejecutar este comando 971 00:36:31,000 --> 00:36:33,000 Da permisos de escritura, lectura a todos los usuarios 972 00:36:33,000 --> 00:36:35,000 Así podréis guardar, salvar y... 973 00:36:39,000 --> 00:36:41,000 Así a partir de ahora 974 00:36:41,000 --> 00:36:43,000 No tendréis ningún problema 975 00:36:43,000 --> 00:36:45,000 Ni para guardar, ni para ejecutar los scripts 976 00:36:45,000 --> 00:36:47,000 ¿Podéis? 977 00:36:47,000 --> 00:36:49,000 ¿Sabéis? 978 00:36:49,000 --> 00:36:51,000 Ahora os tiene que salir todo rwx 979 00:36:51,000 --> 00:36:53,000 En todos os lados 980 00:36:55,000 --> 00:36:57,000 ¿Si? 981 00:36:57,000 --> 00:36:59,000 ¿Si? 982 00:37:01,000 --> 00:37:03,000 Bueno 983 00:37:03,000 --> 00:37:05,000 Ahora ya podréis utilizar un editor de texto normal 984 00:37:05,000 --> 00:37:07,000 Para editar el... 985 00:37:07,000 --> 00:37:09,000 El contenido de los .php 986 00:37:13,000 --> 00:37:15,000 ¿Estáis podendo hacerlo? 987 00:37:15,000 --> 00:37:17,000 Vale 988 00:37:17,000 --> 00:37:19,000 Bueno 989 00:37:23,000 --> 00:37:25,000 Ahora si queréis podéis editar 990 00:37:25,000 --> 00:37:27,000 El índex .php 991 00:37:27,000 --> 00:37:29,000 Que es donde... 992 00:37:29,000 --> 00:37:31,000 Donde estará el ejemplo que vamos a ejecutar 993 00:37:41,000 --> 00:37:43,000 ¿Estáis? 994 00:37:43,000 --> 00:37:45,000 ¿Podéis? 995 00:37:45,000 --> 00:37:47,000 Vale 996 00:37:47,000 --> 00:37:49,000 Bueno la idea es que 997 00:37:49,000 --> 00:37:51,000 Como todos vais a acceder contra el mismo 998 00:37:51,000 --> 00:37:53,000 Moodle que está aquí 999 00:37:53,000 --> 00:37:55,000 Que es el Moodle de servidor que tiene los webservice 1000 00:37:55,000 --> 00:37:57,000 La idea es que al principio de todo 1001 00:37:57,000 --> 00:37:59,000 Tenéis una categoría 1002 00:37:59,000 --> 00:38:01,000 Si subís al principio del fichero 1003 00:38:01,000 --> 00:38:03,000 Tenéis una categoría 1004 00:38:03,000 --> 00:38:05,000 Una variable que es categoría 1005 00:38:05,000 --> 00:38:07,000 Que es un string un poco raro 1006 00:38:07,000 --> 00:38:09,000 Si del índex .php 1007 00:38:09,000 --> 00:38:11,000 Vale y tenéis una 1008 00:38:11,000 --> 00:38:13,000 Variable que es categoría 1009 00:38:13,000 --> 00:38:15,000 La idea es que esa xxx 1010 00:38:15,000 --> 00:38:17,000 Es lo que se concatenará a todos los nombres de usuario 1011 00:38:17,000 --> 00:38:19,000 De perfil 1012 00:38:19,000 --> 00:38:21,000 De curso 1013 00:38:21,000 --> 00:38:23,000 Y como vais a acceder a todos al mismo Moodle 1014 00:38:23,000 --> 00:38:25,000 Y Moodle sabéis que tiene las restricciones 1015 00:38:25,000 --> 00:38:27,000 De emails 1016 00:38:27,000 --> 00:38:29,000 De nombres de curso 1017 00:38:29,000 --> 00:38:31,000 De shortnames 1018 00:38:31,000 --> 00:38:33,000 Para que no os repitáis 1019 00:38:33,000 --> 00:38:35,000 Yo lo que os recomiendo es que por filas 1020 00:38:35,000 --> 00:38:37,000 Esta sea la A, la B, la C 1021 00:38:37,000 --> 00:38:39,000 La D 1022 00:38:39,000 --> 00:38:41,000 Y a cada uno de vosotros 1023 00:38:41,000 --> 00:38:43,000 Ponéis la categoría como A 1024 00:38:43,000 --> 00:38:45,000 Y un número 1025 00:38:45,000 --> 00:38:47,000 Más que nada para que no coincidáis 1026 00:38:47,000 --> 00:38:49,000 Donde pone categoría xxx 1027 00:38:51,000 --> 00:38:53,000 Cada uno ponga 1028 00:38:53,000 --> 00:38:55,000 A, B, C 1029 00:38:55,000 --> 00:38:57,000 D, E, F 1030 00:38:57,000 --> 00:38:59,000 G, G 1031 00:38:59,000 --> 00:39:01,000 Y luego cada uno de vosotros 1032 00:39:01,000 --> 00:39:03,000 Aparte ponéis un número aleatorio 1033 00:39:03,000 --> 00:39:05,000 Después de la G 1034 00:39:05,000 --> 00:39:07,000 Yo que sé 1035 00:39:07,000 --> 00:39:09,000 Pongamos que 1036 00:39:09,000 --> 00:39:11,000 Yo pongo la W 1037 00:39:11,000 --> 00:39:13,000 Y soy la fila con la posición esta 1038 00:39:13,000 --> 00:39:15,000 Así ya sé que todos los nombres 1039 00:39:15,000 --> 00:39:17,000 Que tenga 1040 00:39:27,000 --> 00:39:29,000 Así todos podréis ver 1041 00:39:29,000 --> 00:39:31,000 Luego vuestros cursos 1042 00:39:31,000 --> 00:39:33,000 Y vuestras categorías creadas 1043 00:39:33,000 --> 00:39:35,000 Más que nada es que si no 1044 00:39:35,000 --> 00:39:37,000 Se os repetirán 1045 00:39:37,000 --> 00:39:39,000 Y os dará errores 1046 00:39:43,000 --> 00:39:45,000 Aquí como podéis ver 1047 00:39:45,000 --> 00:39:47,000 El servidor que definimos es el de Moodle 1048 00:39:47,000 --> 00:39:49,000 De este ordenador al que todos vais a acceder directamente 1049 00:39:49,000 --> 00:39:51,000 Y sobre los que vais a cargar 1050 00:39:51,000 --> 00:39:53,000 Los usuarios 1051 00:39:53,000 --> 00:39:55,000 Estáis... 1052 00:40:07,000 --> 00:40:09,000 ¿Hay alguien que se haya perdido en estos pasos? 1053 00:40:09,000 --> 00:40:11,000 ¿O que no haya llegado hasta aquí? 1054 00:40:15,000 --> 00:40:17,000 ¿El qué? 1055 00:40:19,000 --> 00:40:21,000 Ah, el path completo del servidor 1056 00:40:21,000 --> 00:40:23,000 Espera 1057 00:40:23,000 --> 00:40:25,000 ¿Coges tú el de este o que? 1058 00:40:25,000 --> 00:40:27,000 ¿Si no? 1059 00:40:27,000 --> 00:40:29,000 Toma 1060 00:40:29,000 --> 00:40:31,000 Ok 1061 00:40:31,000 --> 00:40:33,000 ¿Lo habéis puesto también? 1062 00:40:33,000 --> 00:40:35,000 El... 1063 00:40:35,000 --> 00:40:37,000 El servidor 1064 00:40:37,000 --> 00:40:39,000 Debéis copiar esto tal cual 1065 00:40:39,000 --> 00:40:41,000 Que es la dirección del Moodle que hay en ese portátil 1066 00:40:41,000 --> 00:40:43,000 Pues... 1067 00:40:43,000 --> 00:40:45,000 Lo primero que hay debajo de esto en el documento 1068 00:40:45,000 --> 00:40:47,000 Se incluye un par de librerías 1069 00:40:47,000 --> 00:40:49,000 ¿Vale? 1070 00:40:49,000 --> 00:40:51,000 Una para... 1071 00:40:51,000 --> 00:40:53,000 Es un pequeño cliente 1072 00:40:53,000 --> 00:40:55,000 Vamos a utilizar en este caso 1073 00:40:55,000 --> 00:40:57,000 El conector REST 1074 00:40:57,000 --> 00:40:59,000 Para invocar a los servicios 1075 00:40:59,000 --> 00:41:01,000 Es un pequeño cliente que hice 1076 00:41:01,000 --> 00:41:03,000 Si lo queréis mirar 1077 00:41:03,000 --> 00:41:05,000 Es muy sencillo 1078 00:41:05,000 --> 00:41:07,000 Y debajo hay otra librería 1079 00:41:07,000 --> 00:41:09,000 Que se encarga de tratar 1080 00:41:09,000 --> 00:41:11,000 Archivos CSV 1081 00:41:11,000 --> 00:41:13,000 Que utilizaremos para 1082 00:41:15,000 --> 00:41:17,000 Abrir los archivos de 1083 00:41:17,000 --> 00:41:19,000 Usuarios y los archivos de cursos 1084 00:41:19,000 --> 00:41:21,000 Para leerlos y cargarlos 1085 00:41:21,000 --> 00:41:23,000 En el servidor 1086 00:41:23,000 --> 00:41:25,000 ¿De acuerdo? 1087 00:41:25,000 --> 00:41:27,000 Debajo del todo 1088 00:41:27,000 --> 00:41:29,000 ¿Dime? 1089 00:41:29,000 --> 00:41:31,000 ¿Alguien decía algo? 1090 00:41:31,000 --> 00:41:33,000 Aquí debajo 1091 00:41:33,000 --> 00:41:35,000 Está la URL 1092 00:41:35,000 --> 00:41:37,000 Del servidor 1093 00:41:37,000 --> 00:41:39,000 En este caso 1094 00:41:39,000 --> 00:41:41,000 Los conectores están 1095 00:41:41,000 --> 00:41:43,000 En la carpeta de webservice 1096 00:41:43,000 --> 00:41:45,000 Dentro de Moodle 1097 00:41:45,000 --> 00:41:47,000 Hay un conector y un nombre del servidor 1098 00:41:47,000 --> 00:41:49,000 En este caso es el servidor REST 1099 00:41:49,000 --> 00:41:51,000 Y es una implementación sencilla 1100 00:41:51,000 --> 00:41:53,000 Que lleva Moodle para 1101 00:41:53,000 --> 00:41:55,000 Hacer pruebas del servicio 1102 00:41:55,000 --> 00:41:57,000 Aquí no tendrías que tocar nada 1103 00:41:57,000 --> 00:41:59,000 Lo que sí se tendría que 1104 00:41:59,000 --> 00:42:01,000 Está comentado 1105 00:42:01,000 --> 00:42:03,000 En vuestro código 1106 00:42:03,000 --> 00:42:05,000 Que sería crear la clase esta 1107 00:42:05,000 --> 00:42:07,000 De webservice REST es client 1108 00:42:07,000 --> 00:42:09,000 Para inicializar 1109 00:42:09,000 --> 00:42:11,000 El cliente 1110 00:42:11,000 --> 00:42:13,000 Que utilizaremos para invocar los servicios 1111 00:42:13,000 --> 00:42:15,000 O sea, añadiendo esta línea 1112 00:42:15,000 --> 00:42:17,000 Podríamos seguir para adelante 1113 00:42:17,000 --> 00:42:19,000 ¿Lo tenemos ya? 1114 00:42:19,000 --> 00:42:21,000 ¿Sí? 1115 00:42:21,000 --> 00:42:23,000 ¿Alguien está 1116 00:42:23,000 --> 00:42:25,000 Atascado en algún lado? 1117 00:42:25,000 --> 00:42:27,000 ¿No? 1118 00:42:27,000 --> 00:42:29,000 Vale, pues si os fijáis 1119 00:42:35,000 --> 00:42:37,000 Lo que deberíamos hacer es 1120 00:42:37,000 --> 00:42:39,000 Vosotros 1121 00:42:39,000 --> 00:42:41,000 Creo que tenéis comentado 1122 00:42:41,000 --> 00:42:43,000 Este trozo de aquí 1123 00:42:43,000 --> 00:42:45,000 ¿Vale? 1124 00:42:45,000 --> 00:42:47,000 Donde se construyen los parámetros 1125 00:42:47,000 --> 00:42:49,000 Para invocar 1126 00:42:49,000 --> 00:42:51,000 Al servicio web 1127 00:42:51,000 --> 00:42:53,000 En este caso 1128 00:42:53,000 --> 00:42:55,000 La primera línea de ahí 1129 00:42:55,000 --> 00:42:57,000 Que pone content 1130 00:42:57,000 --> 00:42:59,000 Lo que hace es abrir el archivo separado por comas 1131 00:42:59,000 --> 00:43:01,000 Que tenéis en vuestro 1132 00:43:01,000 --> 00:43:03,000 En vuestro localhost 1133 00:43:03,000 --> 00:43:05,000 Y devolverlos 1134 00:43:05,000 --> 00:43:07,000 Lo que hay 1135 00:43:07,000 --> 00:43:09,000 Con el bucle lo que hacemos es 1136 00:43:09,000 --> 00:43:11,000 Coger los valores separados por comas 1137 00:43:11,000 --> 00:43:13,000 Y irlos metiéndolos dentro de una array 1138 00:43:13,000 --> 00:43:15,000 Para invocar el servicio 1139 00:43:15,000 --> 00:43:17,000 O sea, sería cuestión de copiar 1140 00:43:17,000 --> 00:43:19,000 Estas líneas 1141 00:43:19,000 --> 00:43:21,000 Para que 1142 00:43:21,000 --> 00:43:23,000 Podamos invocar al servicio 1143 00:43:23,000 --> 00:43:25,000 ¿Lo tenéis todos esto copiado ya? 1144 00:43:25,000 --> 00:43:27,000 Si, supongo que si 1145 00:43:27,000 --> 00:43:29,000 ¿Qué habéis hecho? 1146 00:43:29,000 --> 00:43:31,000 ¿Qué habéis copiado? 1147 00:43:31,000 --> 00:43:33,000 ¿Dime? 1148 00:43:33,000 --> 00:43:35,000 ¿Por qué? 1149 00:43:35,000 --> 00:43:37,000 ¿Esto qué es? 1150 00:43:37,000 --> 00:43:39,000 Esto es una array de array de array 1151 00:43:39,000 --> 00:43:41,000 ¿Vale? Es un poco así como 1152 00:43:41,000 --> 00:43:43,000 Complicado pero bueno 1153 00:43:43,000 --> 00:43:45,000 Todas las funciones de localhost 1154 00:43:45,000 --> 00:43:47,000 Funcionan de esta manera 1155 00:43:47,000 --> 00:43:49,000 Primero 1156 00:43:49,000 --> 00:43:51,000 Le pasas 1157 00:43:51,000 --> 00:43:53,000 Una primera posición del array que es el objeto 1158 00:43:53,000 --> 00:43:55,000 Que queremos crear 1159 00:43:55,000 --> 00:43:57,000 Entonces tenemos 1160 00:43:57,000 --> 00:43:59,000 N posiciones donde hay 1161 00:43:59,000 --> 00:44:01,000 X campos que son los parámetros 1162 00:44:01,000 --> 00:44:03,000 Que va a recibir 1163 00:44:03,000 --> 00:44:05,000 La función 1164 00:44:05,000 --> 00:44:07,000 Entonces lo que hace la capa externa es iterar 1165 00:44:07,000 --> 00:44:09,000 En cada posición 1166 00:44:09,000 --> 00:44:11,000 De este array 1167 00:44:11,000 --> 00:44:13,000 Para obtener los parámetros 1168 00:44:13,000 --> 00:44:15,000 Y llamar X veces la función de crear usuario 1169 00:44:15,000 --> 00:44:17,000 ¿Vale? En este caso 1170 00:44:17,000 --> 00:44:19,000 La API 1171 00:44:21,000 --> 00:44:23,000 Pide obligatoriamente estos campos 1172 00:44:23,000 --> 00:44:25,000 Para crear un usuario 1173 00:44:25,000 --> 00:44:27,000 Este es opcional 1174 00:44:27,000 --> 00:44:29,000 Para que veáis, si borráis uno destos no funcionaría 1175 00:44:29,000 --> 00:44:31,000 No podríais crear el usuario 1176 00:44:31,000 --> 00:44:33,000 Este es opcional, lo he puesto para que 1177 00:44:33,000 --> 00:44:35,000 Se viera normalmente 1178 00:44:35,000 --> 00:44:37,000 Todas las facultades usan el campo 1179 00:44:37,000 --> 00:44:39,000 Diginumber para identificar de alguna manera 1180 00:44:39,000 --> 00:44:41,000 Los usuarios internamente con el DNI 1181 00:44:41,000 --> 00:44:43,000 O con un número 1182 00:44:43,000 --> 00:44:45,000 De gestión interna 1183 00:44:45,000 --> 00:44:47,000 ¿Vale? Lo próximo 1184 00:44:47,000 --> 00:44:49,000 Sería, o mejor ya muchos ya lo habéis puesto 1185 00:44:49,000 --> 00:44:51,000 Es hacerle llamada 1186 00:44:51,000 --> 00:44:53,000 Al servicio web 1187 00:44:53,000 --> 00:44:55,000 ¿Lo habéis copiado? ¿Todos? 1188 00:44:55,000 --> 00:44:57,000 ¿Si? Vale guay 1189 00:44:57,000 --> 00:44:59,000 En este caso lo que hace es 1190 00:44:59,000 --> 00:45:01,000 El cliente invoca 1191 00:45:01,000 --> 00:45:03,000 La operación 1192 00:45:03,000 --> 00:45:05,000 Moodle user create users con los parámetros que hemos construido 1193 00:45:05,000 --> 00:45:07,000 ¿Por qué esto? 1194 00:45:07,000 --> 00:45:09,000 A ver, Moodle 1195 00:45:09,000 --> 00:45:11,000 Estamos invocando a una función de Moodle 1196 00:45:11,000 --> 00:45:13,000 User, estamos invocando a una operación 1197 00:45:13,000 --> 00:45:15,000 Que está dentro del componente de gestión 1198 00:45:15,000 --> 00:45:17,000 De usuarios 1199 00:45:17,000 --> 00:45:19,000 Y creo que Alberto, Miguel Ángelos 1200 00:45:19,000 --> 00:45:21,000 Enseñó el diagrama de componentes 1201 00:45:21,000 --> 00:45:23,000 Con el core, el external 1202 00:45:23,000 --> 00:45:25,000 Pues estamos invocando a una operación que está 1203 00:45:25,000 --> 00:45:27,000 En la capa del medio 1204 00:45:27,000 --> 00:45:29,000 De usuarios 1205 00:45:29,000 --> 00:45:31,000 Y invocamos a la operación de crear usuarios 1206 00:45:31,000 --> 00:45:33,000 En este caso 1207 00:45:33,000 --> 00:45:35,000 Si ya lo tenéis todo expuesto 1208 00:45:35,000 --> 00:45:37,000 Y vais 1209 00:45:39,000 --> 00:45:41,000 Al Firefox 1210 00:45:43,000 --> 00:45:45,000 Igual o que tengáis 1211 00:45:45,000 --> 00:45:47,000 Y en esta pantalla 1212 00:45:47,000 --> 00:45:49,000 Actualizáis, le dais al F5 1213 00:45:49,000 --> 00:45:51,000 En... 1214 00:45:51,000 --> 00:45:53,000 Debería daros suces igualmente 1215 00:45:53,000 --> 00:45:55,000 ¿Dime? 1216 00:45:59,000 --> 00:46:01,000 No lo habías copiado, vale 1217 00:46:03,000 --> 00:46:05,000 Vale, ahora os podéis conectar 1218 00:46:05,000 --> 00:46:07,000 Al Moodle 1219 00:46:07,000 --> 00:46:09,000 Y con este usuario y password sois administradores 1220 00:46:09,000 --> 00:46:11,000 Y podréis, con Moodle y Moodle Pass 1221 00:46:11,000 --> 00:46:13,000 Vale 1222 00:46:13,000 --> 00:46:15,000 Y podréis ir a la pantalla de administración 1223 00:46:15,000 --> 00:46:17,000 Y ver que realmente se os han creado 1224 00:46:17,000 --> 00:46:19,000 Estes usuarios 1225 00:46:19,000 --> 00:46:21,000 Bueno, ahora 1226 00:46:21,000 --> 00:46:23,000 Cada uno de vosotros deberíais de poder acceder 1227 00:46:23,000 --> 00:46:25,000 A la... 1228 00:46:25,000 --> 00:46:27,000 A esta misma página que está accediendo 1229 00:46:27,000 --> 00:46:29,000 Jordi 1230 00:46:29,000 --> 00:46:31,000 Y entonces podéis 1231 00:46:31,000 --> 00:46:33,000 Loguearos con el mismo 1232 00:46:33,000 --> 00:46:35,000 Password de usuario 1233 00:46:35,000 --> 00:46:37,000 Que tenéis dentro de index.php 1234 00:46:37,000 --> 00:46:39,000 Vale, entonces 1235 00:46:39,000 --> 00:46:41,000 Cuando vayáis a la lista de usuarios 1236 00:46:41,000 --> 00:46:43,000 Authentic 1237 00:46:43,000 --> 00:46:45,000 Accounts, Worklist, exacto 1238 00:46:45,000 --> 00:46:47,000 Aquí podréis 1239 00:46:47,000 --> 00:46:49,000 Ver los usuarios 1240 00:46:49,000 --> 00:46:51,000 O sea, si filtráis ahora en el filtro de arriba 1241 00:46:51,000 --> 00:46:53,000 Aquí, show of banks 1242 00:46:55,000 --> 00:46:57,000 Podéis, por first name 1243 00:46:57,000 --> 00:46:59,000 Le podéis poner la categoría que habéis puesto vosotros 1244 00:46:59,000 --> 00:47:01,000 Vamos 1245 00:47:01,000 --> 00:47:03,000 El descriptor que habíais puesto 1246 00:47:03,000 --> 00:47:05,000 Dentro de vuestro index.php 1247 00:47:05,000 --> 00:47:07,000 Lo podéis utilizar para buscar los usuarios 1248 00:47:07,000 --> 00:47:09,000 Que vosotros habéis creado 1249 00:47:09,000 --> 00:47:11,000 Entonces técnicamente 1250 00:47:13,000 --> 00:47:15,000 Bueno, entonces salen un montón 1251 00:47:17,000 --> 00:47:19,000 Ah, vale, vale 1252 00:47:21,000 --> 00:47:23,000 No 1253 00:47:23,000 --> 00:47:25,000 Es first name 1254 00:47:25,000 --> 00:47:27,000 Sí, búscalo en first name y ya está 1255 00:47:27,000 --> 00:47:29,000 Aquí no 1256 00:47:29,000 --> 00:47:31,000 Vale, o sea, cada uno de vosotros 1257 00:47:31,000 --> 00:47:33,000 Buscáis vuestra constante 1258 00:47:33,000 --> 00:47:35,000 Que habéis definido en categoría 1259 00:47:35,000 --> 00:47:37,000 Y lo ponéis en first name 1260 00:47:37,000 --> 00:47:39,000 No en surname, tío 1261 00:47:39,000 --> 00:47:41,000 Lo has puesto en first name, tío 1262 00:47:41,000 --> 00:47:43,000 No en surname 1263 00:47:43,000 --> 00:47:45,000 Aquí 1264 00:47:45,000 --> 00:47:47,000 Ahí 1265 00:47:47,000 --> 00:47:49,000 ¿Os salen los vuestros? 1266 00:47:49,000 --> 00:47:51,000 ¿Hay alguien que no les salga, que no los encuentre? 1267 00:47:53,000 --> 00:47:55,000 ¿Sí? ¿Están o no? 1268 00:47:55,000 --> 00:47:57,000 Tienes que borrar el filtro de arriba 1269 00:47:57,000 --> 00:47:59,000 No, remove selected 1270 00:48:01,000 --> 00:48:03,000 Vale, os tendrían que salir nueve usuarios 1271 00:48:05,000 --> 00:48:07,000 Más o menos así 1272 00:48:09,000 --> 00:48:11,000 ¿Hay alguien que haya tenido problemas? 1273 00:48:11,000 --> 00:48:13,000 Espera, toma 1274 00:48:13,000 --> 00:48:15,000 ¿Vas para allá? 1275 00:48:15,000 --> 00:48:17,000 ¿Lo veis todos? 1276 00:48:17,000 --> 00:48:19,000 ¿Sí? 1277 00:48:23,000 --> 00:48:25,000 Viene a ser 1278 00:48:25,000 --> 00:48:27,000 Lo mismo que para crear los usuarios 1279 00:48:27,000 --> 00:48:29,000 Lo que los parámetros son distintos 1280 00:48:29,000 --> 00:48:31,000 En este caso 1281 00:48:31,000 --> 00:48:33,000 Se haría un array de cursos 1282 00:48:33,000 --> 00:48:35,000 Con los parámetros de turno 1283 00:48:35,000 --> 00:48:37,000 Y se invocaría a la función call model 1284 00:48:37,000 --> 00:48:39,000 Curse, createCurses 1285 00:48:39,000 --> 00:48:41,000 Es muy parecido 1286 00:48:41,000 --> 00:48:43,000 Vamos allá y enseñaros una cosa antes de plegar 1287 00:48:43,000 --> 00:48:45,000 Que es como funciona esto por dentro 1288 00:48:49,000 --> 00:48:51,000 ¿Qué pinta tiene un external? 1289 00:48:53,000 --> 00:48:55,000 Este no es 1290 00:49:11,000 --> 00:49:13,000 Vale, en la carpeta 1291 00:49:13,000 --> 00:49:15,000 Dentro de model 1292 00:49:15,000 --> 00:49:17,000 En la carpeta users 1293 00:49:17,000 --> 00:49:19,000 Se ha añadido 1294 00:49:19,000 --> 00:49:21,000 Un archivo nuevo que se llama 1295 00:49:21,000 --> 00:49:23,000 externallib.php 1296 00:49:23,000 --> 00:49:25,000 Lo mismo se ha hecho en la carpeta de cursos 1297 00:49:25,000 --> 00:49:27,000 En la carpeta 1298 00:49:27,000 --> 00:49:29,000 Del lesson 1299 00:49:29,000 --> 00:49:31,000 Del foro 1300 00:49:31,000 --> 00:49:33,000 De los componentes que nos parecian interesantes 1301 00:49:33,000 --> 00:49:35,000 A exportar servicios 1302 00:49:35,000 --> 00:49:37,000 De ellos 1303 00:49:37,000 --> 00:49:39,000 Y a poder dar acceso desde fuera 1304 00:49:39,000 --> 00:49:41,000 ¿Cómo funciona esto? 1305 00:49:41,000 --> 00:49:43,000 Se han creado las funciones 1306 00:49:43,000 --> 00:49:45,000 En este caso la createUser que es la que hemos estado utilizando 1307 00:49:45,000 --> 00:49:47,000 Que 1308 00:49:47,000 --> 00:49:49,000 Trata los parámetros que recibe 1309 00:49:49,000 --> 00:49:51,000 Y acaba invocando 1310 00:49:51,000 --> 00:49:53,000 Las operaciones 1311 00:49:53,000 --> 00:49:55,000 De core 1312 00:49:59,000 --> 00:50:01,000 ¿Vale? 1313 00:50:01,000 --> 00:50:03,000 Que toca para crear el usuario 1314 00:50:03,000 --> 00:50:05,000 Pero como 1315 00:50:05,000 --> 00:50:07,000 Se gestiona lo de los parámetros 1316 00:50:07,000 --> 00:50:09,000 Se han añadido funciones 1317 00:50:11,000 --> 00:50:13,000 Para cada uno de los servicios 1318 00:50:13,000 --> 00:50:15,000 Se ha creado una función que es 1319 00:50:15,000 --> 00:50:17,000 Nombre de la función 1320 00:50:17,000 --> 00:50:19,000 CreateUser 1321 00:50:19,000 --> 00:50:21,000 Parámetros 1322 00:50:21,000 --> 00:50:23,000 Igualmente returns 1323 00:50:23,000 --> 00:50:25,000 Donde se expone de forma estructurada 1324 00:50:25,000 --> 00:50:27,000 Como son los parámetros 1325 00:50:27,000 --> 00:50:29,000 Cuales son los parámetros que admite ese servicio 1326 00:50:29,000 --> 00:50:31,000 En este caso tenemos que 1327 00:50:31,000 --> 00:50:33,000 Para crear un usuario 1328 00:50:33,000 --> 00:50:35,000 Necesitamos 1329 00:50:35,000 --> 00:50:37,000 Estos cinco parámetros de forma 1330 00:50:37,000 --> 00:50:39,000 Obligatoria 1331 00:50:39,000 --> 00:50:41,000 El username, el password, el firstname, el lastname y el email 1332 00:50:41,000 --> 00:50:43,000 ¿Vale? Estos de aquí 1333 00:50:43,000 --> 00:50:45,000 Los que están marcados como false 1334 00:50:45,000 --> 00:50:47,000 En esta zona son opcionales 1335 00:50:47,000 --> 00:50:49,000 Cada institución puede 1336 00:50:49,000 --> 00:50:51,000 Decidir utilizarlos o no utilizarlos 1337 00:50:51,000 --> 00:50:53,000 O por ejemplo directamente 1338 00:50:53,000 --> 00:50:55,000 Para configurar el tipo de autenticación 1339 00:50:55,000 --> 00:50:57,000 Para cambiarles el lang 1340 00:50:57,000 --> 00:50:59,000 Lo que sea 1341 00:50:59,000 --> 00:51:01,000 Entonces todos los externos 1342 00:51:01,000 --> 00:51:03,000 Funcionan de esta manera para definir los parámetros 1343 00:51:03,000 --> 00:51:05,000 Y de igual manera 1344 00:51:05,000 --> 00:51:07,000 Para definir 1345 00:51:07,000 --> 00:51:09,000 Como se devuelven 1346 00:51:09,000 --> 00:51:11,000 Los resultados 1347 00:51:11,000 --> 00:51:13,000 Cada invocación al servicio puede devolver 1348 00:51:13,000 --> 00:51:15,000 O lo que pone aquí 1349 00:51:15,000 --> 00:51:17,000 En este caso 1350 00:51:17,000 --> 00:51:19,000 Un array de arrays con ids 1351 00:51:19,000 --> 00:51:21,000 Los ids que se ha creado al usuario 1352 00:51:21,000 --> 00:51:23,000 O con mensajes 1353 00:51:23,000 --> 00:51:25,000 De excepción 1354 00:51:25,000 --> 00:51:27,000 Indicando si ha habido algún tipo de error 1355 00:51:27,000 --> 00:51:29,000 Si 1356 00:51:29,000 --> 00:51:31,000 El username ya existía 1357 00:51:31,000 --> 00:51:33,000 Si faltaba otro en la base de datos 1358 00:51:33,000 --> 00:51:35,000 Te lo indica 1359 00:51:35,000 --> 00:51:37,000 Si faltaba un parámetro obligatorio te lo indica 1360 00:51:37,000 --> 00:51:39,000 Si lo que es probar podéis hacer un printr 1361 00:51:39,000 --> 00:51:41,000 Del response 1362 00:51:41,000 --> 00:51:43,000 Y lo veréis en pantalla 1363 00:51:43,000 --> 00:51:45,000 En el Firefox 1364 00:51:45,000 --> 00:51:47,000 Directamente si le dais al control u para ver el código html 1365 00:51:47,000 --> 00:51:49,000 Lo veréis printado ahí 1366 00:51:49,000 --> 00:51:51,000 En ese caso 1367 00:51:51,000 --> 00:51:53,000 Hago un ejemplillo 1368 00:51:53,000 --> 00:51:55,000 Y ya lo dejaríamos aquí 1369 00:51:55,000 --> 00:51:57,000 En este caso he ejecutado la misma operación de antes 1370 00:51:57,000 --> 00:51:59,000 El primer curso que ha pedido 1371 00:51:59,000 --> 00:52:01,000 Crear ya existía 1372 00:52:01,000 --> 00:52:03,000 Con lo que me salta 1373 00:52:03,000 --> 00:52:05,000 El xml 1374 00:52:05,000 --> 00:52:07,000 Contiene una excepción 1375 00:52:07,000 --> 00:52:09,000 Que contiene un mensaje 1376 00:52:09,000 --> 00:52:11,000 Que es 1377 00:52:11,000 --> 00:52:13,000 Que el shortname ya está usado 1378 00:52:13,000 --> 00:52:15,000 Con lo que se puede 1379 00:52:15,000 --> 00:52:17,000 Tratar 1380 00:52:17,000 --> 00:52:19,000 Para recuperar el estado 1381 00:52:19,000 --> 00:52:21,000 De excepción 1382 00:52:21,000 --> 00:52:23,000 O mostrar un mensaje por pantalla 1383 00:52:23,000 --> 00:52:25,000 Para poder dar un poco 1384 00:52:25,000 --> 00:52:27,000 De que es lo que ha pasado 1385 00:52:27,000 --> 00:52:29,000 Dejame hacer la despedida 1386 00:52:29,000 --> 00:52:31,000 Dime 1387 00:52:31,000 --> 00:52:33,000 Pues ya por aquí acabamos 1388 00:52:33,000 --> 00:52:35,000 Bueno solamente deciros 1389 00:52:35,000 --> 00:52:37,000 Que es un trabajo que estamos todavía desarrollando 1390 00:52:37,000 --> 00:52:39,000 Que habrá más cambios 1391 00:52:39,000 --> 00:52:41,000 Pero que os hagáis una idea 1392 00:52:41,000 --> 00:52:43,000 De por lo menos cual es la arquitectura 1393 00:52:43,000 --> 00:52:45,000 Que es lo que se está planteando 1394 00:52:45,000 --> 00:52:47,000 Y sobre todo a donde nos va a permitir llegar 1395 00:52:47,000 --> 00:52:49,000 Que es lo más importante 1396 00:52:49,000 --> 00:52:51,000 Nos permite crecer de una manera 1397 00:52:51,000 --> 00:52:53,000 Nos permite desvincularnos completamente 1398 00:52:53,000 --> 00:52:55,000 De la versión de Moodle 1399 00:52:55,000 --> 00:52:57,000 Que se han comprometido a mantenerlas 1400 00:52:57,000 --> 00:52:59,000 Podremos tener versiones perdurables 1401 00:52:59,000 --> 00:53:01,000 En el tiempo de aplicaciones externas que utilicen los servicios de Moodle 1402 00:53:01,000 --> 00:53:03,000 Esto es todo y gracias por haber venido