|
|
Línea 16: |
Línea 16: |
| | | |
| | | |
− | <!--2------------------------------------------------------>
| |
− | <div class="slide">
| |
− | ===CONCEPTOS SOBRE DESARROLLO WEB===
| |
− | </div>
| |
| | | |
− |
| |
− | <!--3------------------------------------------------------>
| |
− | <div class="slide">
| |
− | ===Que pretende explicar este módulo===
| |
− | *El objetivo de este módulo se describe en el nombre que tiene.
| |
− | {{Objetivo|'''''Desarrollo de aplicaciónes web en entorno servidor'''''}}
| |
− | *En esta introducción analizaremos qué entendemos por '''''Desarrollo de aplicaciones web en el entorno servidor'''''.
| |
− | *Para ello vamos a ir desgranando el nombre del módulo y analizándolo en cada una de sus partes.
| |
− | </div>
| |
− |
| |
− | <!--4------------------------------------------------------>
| |
− | <div class="slide">
| |
− |
| |
− | ;Partes a analizar
| |
− | #Desarrollar una aplicación
| |
− | #Aplicaciones Web
| |
− | #Entorno servidor
| |
− | [[Imagen:Dwes_1.png|center]]
| |
− | </div>
| |
− |
| |
− | <!--5--------------------------------------------------->
| |
− | <div class="slide">
| |
− | ===Desarrollar una aplicación===
| |
− | <hr/>
| |
− | {{Conocimiento previo|Qué es '''''Desarrollar una aplicación'''''}}
| |
− | *Son muchas las posibles respuestas, pero al menos deberíamos saber dar una de forma correcta
| |
− | {{Actividad|aportar dicha definición por parte de grupos de alumnos}}
| |
− | </div>
| |
− |
| |
− |
| |
− |
| |
− | <!--6--------------------------------------------------->
| |
− | <div class="slide">
| |
− | {{Definicion|
| |
− | *Dado un problema de naturaleza lógica,
| |
− | *desarrollar una aplicación consiste en
| |
− | *'''''implementar''''' o construir un programa usando un determinado lenguaje de programación,
| |
− | *Dicho programa consiste en un conjunto de instrucciones que ejecutadas en un entorno computacional solucionan de forma automatizada el problema planteado.}}
| |
− | </div>
| |
− |
| |
− | <!--7--------------------------------------------------->
| |
− | <div class="slide">
| |
− | ;Desarrolar una aplicación
| |
− | *Cuando decimos '''''implementar''''' nos referimos a :
| |
− | #'''''Analizar''''' el problema.
| |
− | #'''''Diseñar''''' una solución algorítmica válida.
| |
− | #'''''Escribir el código''''' de dicha solución utilizando uno o varios lenguajes de programación concreto, interpretables o complilables.
| |
− | </div>
| |
− |
| |
− |
| |
− | <!--7--------------------------------------------------->
| |
− | <div class="slide">
| |
− | ;Fases en el desarrollo tradiciona
| |
− | [[Imagen:AnalisisDiseñoImple1.png]]:
| |
− | </div>
| |
− |
| |
− |
| |
− | <!--8--------------------------------------------------->
| |
− | <div class="slide">
| |
− | ;Desarrollar una aplicación
| |
− | {{Pregunta|'''''¿Compilación o interpretación?'''''}}
| |
− | *Las instrucciones escritas, de alguna manera han de pasar a código máquina para que se puedan ejecutar en un entorno computacional.
| |
− | *Para ello dichas instrucciones pueden '''''Compilarse o Interpretarse'''''
| |
− | </div>
| |
− |
| |
− |
| |
− | <!--9--------------------------------------------------->
| |
− | <div class="slide">
| |
− | {{Conocimiento previo|Diferencias entre '''''Compilacion Vs Interpretación'''''}}
| |
− | {{Pregunta|Java es un lenguaje compilado o interpretados }}
| |
− | </div>
| |
− |
| |
− |
| |
− | <!--9--------------------------------------------------->
| |
− | <div class="slide">
| |
− | {{Pregunta|En un entorno de ejecución web, qué tipo de modelo se debe de usar y por qué}}
| |
− | </div>
| |
− |
| |
− | <!--10----------------------------------------------------->
| |
− | <div class="slide">
| |
− | ===Una Aplicación Web===
| |
− | <br/>
| |
− | {{Conocimiento previo|Qué es una '''''Aplicación Web'''''}}
| |
− | *Normalmente en un ordenador vemos un programa o aplicación ejecutándose, con el cual podemos estar interactuando.
| |
− | *No todos los programas o aplicaciones son del mismo tipo, tenemos diferentes tipos de software
| |
− | </div>
| |
− |
| |
− | <!--11----------------------------------------------------->
| |
− | <div class="slide">
| |
− | ;Tipos de aplicaciones
| |
− |
| |
− | #Aplicaciones de escritorio.
| |
− | #Aplicaciones de ingeniería.
| |
− | #Aplicación de Tiempo real.
| |
− | #Software de Inteligencia artificial.
| |
− | #Software de predicciones metereológicas, cálculo científico.
| |
− | #Aplicaciones de juegos.
| |
− | #Aplicaciones web.
| |
− | #...
| |
− | </div>
| |
− |
| |
− | <!--12----------------------------------------------------->
| |
− | <div class="slide">
| |
− | ;Tipos de sorftware
| |
− | *Los diferentes '''''[http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html lenguajes de programación'''''] son todos de propósito general, esto es, pueden implementar cualquier algoritmo correcto.
| |
− | *No obstante presentan diferentes características que los hacen más idóneos para implementar código en determinados tipo de software, de modo que dependiendo el tipo de software que vamos a desarrollar deberíamos de ver que tipos de lenguajes tenemos disponibles.
| |
− |
| |
− | </div>
| |
− |
| |
− | <!--13----------------------------------------------------->
| |
− | <div class="slide">
| |
− | ;Tipos de sorftware
| |
− | *Por otro la la encapsulación y abstracción en lenguajes orientada a objetos (También ocurre con la tendencia de lenguajes de tipo TAD (tipos abstractos de datos)) permite que los diferentes lenguajes ofrezcan librerías o clases en terminología OOP, que nos hacen mucho del trabajo habitual para ese tipo de aplicaciones.
| |
− | *Son componentes que directamente podemos usar
| |
− | </div>
| |
− |
| |
− | <!--14----------------------------------------------------->
| |
− | <div class="slide">
| |
− | ;framework
| |
− | *También van apareciendo '''''framework''''' donde con un lenguaje de programación se toma una metodología de trabajo y se adapta un determinado lenguaje (Por ejemplo creando dentro del framework determinados objetos) para facilitar el trabajo al desarrollador.
| |
− |
| |
− | {{Recursos de la Web|
| |
− | *[http://www.bestwebframeworks.com/ framework] para el desarrollo web}}
| |
− | </div>
| |
− |
| |
− | <!--16----------------------------------------------------->
| |
− | <div class="slide">
| |
− | {{Pregunta|Qué carácterísticas tiene una apliación web}}
| |
− | [[Imagen:AplicacioneWeb1.png]]
| |
− | </div>
| |
− |
| |
− | <!--17----------------------------------------------------->
| |
− | <div class="slide">
| |
− |
| |
− | *En la imagen vemos una serie de elementos
| |
− | #Un entorno de cliente.
| |
− | #Un entorno de servidor.
| |
− | #Una parte de comunicaciones y protocolo.
| |
− | </div>
| |
− |
| |
− | <!--18---------------------------------------------------->
| |
− | <div class="slide">
| |
− | ;Entornos en una aplicación web
| |
− | *En realidad cada un de estas partes se estudia en sus respectivos módulos en este ciclo.
| |
− | #La parte de '''cliente''' la cubren los módulos de '''''Diseño de interfaces''''' y '''''Desarrollo de aplicaciones en entorno cliente'''''
| |
− | #La parte de '''comunicaciones y protocolo''' y algo de aplicaciones del servidor en el entorno del servidor se cubre en el '''''módulo de depliegue web'''''.
| |
− | #La parte del '''entorno servidor''' la cubrimos en este módulo: '''''Desarrollo de aplicaciones en entorno servidor'''''.
| |
− | </div>
| |
− |
| |
− | <!--19---------------------------------------------------->
| |
− | <div class="slide">
| |
− | *Lógicamente una aplicación web a de tener cada una de esas partes
| |
− | *Especialemente está condicionada la parte del entorno servidor
| |
− | *En este módulo usaremos conceptos vistos en los otros.
| |
− | [[Imagen:ServidorWebVsCliente.jpg]]
| |
− | </div>
| |
− |
| |
− | <!--12---------------------------------------------------->
| |
− | <div class="slide">
| |
− | ==El cliente en el proceso de ejecución de una aplicación web==
| |
− | *Es el usuario final el que empieza el proceso.
| |
− | *También se conoce como agente.
| |
− | *En el cliente necesitamos tener
| |
− | *Un programa (navegador) dónde el usuario escribe la solicitud (Lá página a la que quiero acceder, la máquina en la que se encuentra, y dentro de la página su ubicación).
| |
− | *Necestitamos encontrar la ip de la máquina a partir de su nombre (DNS)
| |
− | *Interpretar y visualizar la información que el servidor nos facilite en formato html (El navegador)
| |
− | *Ejetucar los script que aporte la respuesta del servidor por ejemplo código en java Script (Todos los navegadores modernos interpretan el código JavaScript y lo ejecutan.
| |
− | ===Especificadno el recurso===
| |
− | *El cliente hace una petición de una página web
| |
− | *Para ello escribe la URI en el navegador indicando máquina dónde está y nombre de la página que solicita, protocolo usado y puerto por el que realiza la solicitud (En la mayoría de las ocasiones se toma el puerto por defecto para ese protocolo y por lo tanto se elude esta información.
| |
− | *También se puede incluir lo que se llama solicitud y fragmento. La solicitud son parejas variabla=valor que se pasan en la solicitud y el fragmente representa una parte concreta de la página que se solicita, utilizando el método GET dentro del protocolo http
| |
− | </div>
| |
− | <!--7-->
| |
− | <div class="slide">
| |
− | *ejemplo de direcciones
| |
− |
| |
− | #Usando fragmento
| |
− |
| |
− | '''protcolo://maquina/ruta/recurso/fragmento'''
| |
− | '''''http://www.unizar.es/deiss/notas.html#primerCurso'''''
| |
− | #Usando solicitud
| |
− | '''protcolo://maquina/ruta/recurso/solicitud'''
| |
− | '''''http://www.unizar.es/deiss/notas.htmll?nombre="Manuel"&modulo="DWES"'''''
| |
− | #Usando el puerto
| |
− | '''protcolo://maquina/ruta/recurso:puerto/'''
| |
− | '''''http://www.unizar.es:80/'''''
| |
− | *Si se elude alguna parte se toma el valor por defecto o lo que establezca el servidor web
| |
− | </div>
| |
− |
| |
− | ==Los medios en el proceso de ejecución de una aplicación web==
| |
− | *Aparte de la comunicación física necesitamos unos protocolos
| |
− | *Protocolos de la familia tcp/ip.
| |
− | *Protocolos utilizados Http, tpc/udp, piv4 ipv6 icmp, y otros muchos que se pueden usar a nivel de aplicación.
| |
− | ==El servidor en el proceso de ejecución de una aplicación web==
| |
− | *Servidor Web
| |
− | *Recibe e interpreta la solicitud del cliente
| |
− | *Accede a bases de datos según necesidades
| |
− | *Ejecuta código en el servidor, generando como resultado una página html que es lo que da al cliente (El cliente no ve el código del servidor
| |
− | {{Pregunta|
| |
− | ¿Podemos visualizar una página web sin que intervenga un servidor web?
| |
− | }}
| |
− | <!--MRM Tarea 1-->
| |
− | {{Actividad|
| |
− | *Realiza en un documento usando diagramas y detallando el proceso de carga de una página web
| |
− | *Contempla la posibilidad de tener que ejecutar script tanto en cliente como en servidor
| |
− | *Identifica en un bloque cada uno de los elementos (CLIENTE, SERVIDOR o MEDIOS) o programas necesarios (programa navegador, protocolo http en cliente, servidor dns, interprete de javaScript, ...)
| |
− | }}
| |
− | ==Páginas web estáticas Vs Web dinámicas==
| |
− | *Podemos comparar como acceder a una web es como ir a comer a un restaurante
| |
− | **Puedes tomar el plato del día (Accedes al restaurante y te sirven lo que hay sin que puedas elegir)
| |
− | **Puedes elegir entre una serio de platos
| |
− | **Puedes confeccionar tu menú exactamente a tu gusto
| |
− | *Igualmente en un sitio web la página puede ser igual para cualquiera que acceda, o puede adaptarse a ti en concreto
| |
− | *Cuando hablamos de página web dinámicas debemos diferenciar entre
| |
− |
| |
− | #Aquellas que incluyen código que ejecuta el navegador. En estas páginas el código ejecutable, normalmente en lenguaje JavaScript, se incluye dentro del HTML (o XHTML) y se descarga junto con la página. Cuando el navegador muestra la página en pantalla, ejecuta el código que la acompaña. Este código puede incorporar múltiples funcionalidades que pueden ir desde mostrar animaciones hasta cambiar totalmente la apariencia y el contenido de la página. En este módulo no vamos a ver JavaScript, salvo cuando éste se relaciona con la programación web del lado del servidor.
| |
− | #Como ya sabes, hay muchas páginas en Internet que no tienen extensión .htm, .html o .xhtml. Muchas de estas páginas tienen extensiones como .php, .asp, .jsp, .cgi o .aspx. En éstas, el contenido que se descarga al navegador es similar al de una página web estática: HTML (o XHTML). Lo que cambia es la forma en que se obtiene ese contenido. Al contrario de lo que vimos hasta ahora, esas páginas no están almacenadas en el servidor; más concretamente, el contenido que se almacena no es el mismo que después se envía al navegador. El HTML de estas páginas se forma como resultado de la ejecución de un programa, y esa ejecución tiene lugar en el servidor web (aunque no necesariamente por ese mismo servidor).
| |
− |
| |
− |
| |
− |
| |
− | }}
| |
| ==Aplicaciones Web== | | ==Aplicaciones Web== |
| | | |