SlideShare una empresa de Scribd logo
1 de 75
Descargar para leer sin conexión
DESARROLLO DE APLICACIONES WEB - TEMA 2

Tecnologías de desarrollo de
aplicaciones web
Micael Gallego
Correo: micael.gallego@urjc.es
Twitter: @micael_gallego
Blog: http://micaelgallego.github.io

ESCUELA TÉCNICA SUPERIOR DE
INGENIERÍA INFORMÁTICA

DEPARTAMENTO DE CIENCIAS
DE LA COMPUTACIÓN
DESARROLLO DE APLICACIONES WEB

Tecnologías de desarrollo de aplicaciones web
• Introducción
• Arquitecturas de aplicaciones web
• Tecnologías del cliente
• Tecnologías del servidor

• Bases de datos
• Sistemas gestores de contenido

Tema 2 - Tecnologías de desarrollo de aplicaciones web

2
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Introducción
• El desarrollo de aplicaciones web ha evolucionado enormemente en
la última década, tanto desde el punto de vista del desarrollo de
software como a nivel de administración de sistemas
• Desarrollo de software


Se han creado multitud de tecnologías, frameworks de desarrollo de
aplicaciones, bibliotecas, aplicaciones configurables, arquitecturas,
modelos de publicación de versiones (release)…

• Administración de sistemas


Se ha evolucionado enormemente en la administración de sistemas,
servicios de alojamiento, técnicas de escalabilidad, monitorización,
gestión de centros de procesos de datos…

Tema 2 - Tecnologías de desarrollo de aplicaciones web

3
INTRODUCCIÓN

Desarrollo de software
• La evolución ha tenido como resultado que hay una gran
cantidad de tecnologías, librerías, herramientas y estilos
arquitectónicos para desarrollar una aplicación web
• Es conveniente conocer los elementos más importantes
desde un punto de vista de alto nivel para tener una visión
global de la disciplina
• Existen dos enfoques en el desarrollo de aplicaciones web:


Creación de webs con tecnologías de desarrollo



Creación de webs con sistemas gestores de contenido

Tema 2 - Tecnologías de desarrollo de aplicaciones web

4
INTRODUCCIÓN

Desarrollo de software
• Creación de webs con tecnologías de desarrollo


Arquitecturas de aplicaciones web: Una aplicación web puede tener
diferentes arquitecturas. Esto determina cómo se usan las diferentes
tecnologías existentes



Tecnologías de cliente: Tecnologías que permiten crear interfaces de
usuario atractivos y permiten la comunicación con el servidor. Basadas en
HTML, CSS y JavaScript.



Tecnologías de servidor: Tecnologías que permiten implementar el
comportamiento de la aplicación web en el servidor: lógica de negocio,
generación de informes, compartir información entre usuarios, envío de
correos, etc…



Bases de datos: La gran mayoría de las webs necesitan guardar información.
Las bases de datos son una parte esencial del desarrollo web.
Tema 2 - Tecnologías de desarrollo de aplicaciones web

5
INTRODUCCIÓN

Desarrollo de software
• Creación de webs con sistemas gestores de contenido


Existen aplicaciones web cuya principal funcionalidad es la
publicación de contenido: blogs, páginas de empresas,
organismos públicos, etc.



Todas estas webs tienen mucho en común, prácticamente sólo se
diferencian en el contenido y en el aspecto gráfico



Para desarrollar este tipo de webs, en vez de desarrollar la web
con técnicas de desarrollo, se utiliza un software ya desarrollado
y se personaliza y adapta a las necesidades



A las aplicaciones de este tipo se las denomina Sistemas Gestores
de Contenido (CMSs).
Tema 2 - Tecnologías de desarrollo de aplicaciones web

6
INTRODUCCIÓN

Administración de sistemas
• Internet y las aplicaciones web han hecho evolucionar la
administración de sistemas en muchos aspectos


Para que una aplicación web funcione necesita que el sistema
donde se instale disponga de un servidor web y habitualmente
una base de datos



Como la web tiene que estar disponible para los usuarios de
Internet, habitualmente se instala en sistemas que se alquilan a
terceros: alojamiento en la nube (cloud)



Como las aplicaciones web pueden tener un número muy grande
de usuarios y tienen que estar siempre disponibles, se utilizan
técnicas de escalabilidad y tolerancia a fallos
Se verá en el Tema3
Tema 2 - Tecnologías de desarrollo de aplicaciones web

7
DESARROLLO DE APLICACIONES WEB

Tecnologías de desarrollo de aplicaciones web
• Introducción
• Arquitecturas de aplicaciones web
• Tecnologías del cliente
• Tecnologías del servidor

• Bases de datos
• Sistemas gestores de contenido

Tema 2 - Tecnologías de desarrollo de aplicaciones web

8
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• La arquitectura básica de una aplicación web está formada por los
siguientes elementos:


Un navegador: Hace de cliente y realiza peticiones solicitando recursos
a los servidores web. Cuando hace una petición a un servidor y le
contesta enviándole un recurso, se lo muestra al usuario.



Un servidor web: Recibe peticiones de clientes (navegadores) y
responde a esas peticiones enviado un recurso o notificando un error si el
recurso no existe.



El protocolo http: Es el protocolo basado en TCP/IP que se utiliza para
que el navegador realice las peticiones al servidor web y este responda.



HTML: Es el formato básico de los documentos de la web. Es un formato
textual, basado en etiquetas que permite estructurar el contenido de la
página.

Tema 2 - Tecnologías de desarrollo de aplicaciones web

9
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• La arquitectura de las aplicaciones web ha evolucionado mucho en
los últimos años

• No todas las aplicaciones web tienen la misma arquitectura
• Las arquitecturas se diferencias principalmente en lo estática o
dinámica que sea la web

• Una web puede ser dinámica en el cliente y/o en el servidor
• Las tecnologías utilizadas:


Dinamismo en cliente: JavaScript



Dinamismo en servidor: Java EE, .NET, PHP, Ruby on Rails, Python
Django, Groovy, Node.js, Scala Play…

Tema 2 - Tecnologías de desarrollo de aplicaciones web

10
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• Cliente estático (Sin JavaScript)


Servidor estático



Servidor dinámico (3 capas)

• Cliente dinámico (Con JavaScript)


Servidor estático



Servidor dinámico
 JavaScript para efectos gráficos
 JavaScript con peticiones en segundo plano (AJAX)
 Single Page Application con REST
Tema 2 - Tecnologías de desarrollo de aplicaciones web

11
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• Arquitectura Cliente estático y Servidor estático


El navegador hace petición al servidor mediante http



El servidor transforma URL a ruta en disco



El servidor devuelve el fichero de disco al navegador



El navegador visualiza (renderiza) la página HTML con
estilos CSS e imágenes (sin JavaScript).



Cuando el usuario hace clic en un enlace, el navegador
repite el proceso con la URL del link y recarga por
completo la página web
Tema 2 - Tecnologías de desarrollo de aplicaciones web

12
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• Arquitectura Cliente estático y Servidor estático


Con esta arquitectura el servidor siempre devuelve los
mismos recursos



Desde el punto de vista del servidor, la web es estática



La web está formada por HTML, CSS, Imágenes, PDF, etc…
(pero no incluye JavaScript)



A este tipo de web no se le suele llamar aplicación web
porque nada es dinámico. Se denomina simplemente
página web

Tema 2 - Tecnologías de desarrollo de aplicaciones web

13
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• Arquitectura Cliente estático y Servidor estático


La web se diseñó con esta arquitectura



Las primeras páginas web eran así



Todavía se sigue usando en muchas páginas web:
 Páginas personales o de proyectos básicas (p.e.
Tecnología de webs de github)
 Documentación técnica (JavaDoc en Java, Maven site,
etc…)

Tema 2 - Tecnologías de desarrollo de aplicaciones web

14
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web

Tema 2 - Tecnologías de desarrollo de aplicaciones web

15
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• Arquitectura Cliente estático y Servidor dinámico



Es un ejemplo de arquitectura de 3 capas:
 Navegador: Capa de presentación
 Servidor web: Capa de aplicación (Lógica de negocio)
 Base de datos: Capa de datos

Tema 2 - Tecnologías de desarrollo de aplicaciones web

16
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• Arquitectura Cliente estático y Servidor dinámico


Cuando el servidor web recibe una petición, dependiendo de la URL:
 Devolver contenido del disco
 Ejecutar código para generar el recurso dinámicamente



Cuando se ejecuta código, normalmente se hacen consultas a una
base de datos para recuperar la información



Lo más habitual es que se genere la página HTML de forma
dinámica



También se pueden generar recursos de otro tipo (imágenes,
PDFs…)



Si el usuario pulsa un link, se recarga la página al completo
Tema 2 - Tecnologías de desarrollo de aplicaciones web

17
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• Arquitectura Cliente estático y Servidor dinámico


Es la arquitectura de las primeras “aplicaciones web”



Todavía sigue habiendo muchas web con esta arquitectura



El contenido es dinámico, porque se ejecuta código en el servidor
para generar dicho contenido



La experiencia de usuario antes no era muy buena:
 Conexiones lentas implican tiempos de carga apreciables en cada clic
 La recarga completa de la página ofrece una mala experiencia de
usuario (página en blanco)



Pero ha mejorado:
 Mayor velocidad de Internet (menos tiempo de espera)
 Navegadores muestran la nueva página una vez cargada (sin pasar por
la página en blanco)

Tema 2 - Tecnologías de desarrollo de aplicaciones web

18
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• Arquitectura Cliente dinámico y Servidor estático


El contenido de la página web está alojado en el disco duro
del servidor (estático)



El cliente es dinámico porque las páginas incluyen código
JavaScript que se ejecuta en el navegador



Este JavaScript se usa para incluir efectos gráficos:
 Efectos gráficos que no se pueden implementar con CSS
 Mostrar u ocultar información en función de los elementos que se
seleccionan (para documentos largos)
 Menús desplegables
 Páginas adaptables para móviles (responsive)
Tema 2 - Tecnologías de desarrollo de aplicaciones web

19
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Arquitecturas de aplicaciones web
• Arquitectura Cliente dinámico y Servidor dinámico


La mayoría de las aplicaciones web actuales son dinámicas
tanto en cliente como en servidor



Dependiendo de cómo se use el JavaScript en el cliente, las
aplicaciones se pueden dividir en tres tipos:
 JavaScript para efectos gráficos
 JavaScript con peticiones en segundo plano (AJAX)

 Single Page Application con API REST

Tema 2 - Tecnologías de desarrollo de aplicaciones web

20
ARQUITECTURAS DE APLICACIONES WEB

Arquitectura Cliente dinámico y Servidor dinámico

• JavaScript para efectos gráficos


En este caso, el dinamismo en el cliente se utiliza
exactamente igual que con un servidor estático



JavaScript se diseñó, entre otras cosas, para añadir
efectos gráficos básicos a las páginas cuando el
CSS era muy limitado



La gran mayoría de las aplicaciones web que
existen en Internet siguen esta arquitectura

Tema 2 - Tecnologías de desarrollo de aplicaciones web

21
ARQUITECTURAS DE APLICACIONES WEB

Arquitectura Cliente dinámico y Servidor dinámico
• JavaScript con peticiones en segundo
plano (AJAX)


JavaScript se puede usar para no tener que recargar
completamente la página completa al pulsar un link



Con JavaScript se puede hacer petición al servidor web en
segundo plano (oculta al usuario)



Cuando llega al navegador el resultado de la petición, el código
JavaScript actualiza aquellas partes de la página necesarias



A esta técnica se la conoce como AJAX (Asynchronous JavaScript
And XML)

Tema 2 - Tecnologías de desarrollo de aplicaciones web

22
ARQUITECTURAS DE APLICACIONES WEB

Arquitectura Cliente dinámico y Servidor dinámico
• JavaScript con peticiones en segundo
plano (AJAX)


Usar AJAX en una página mejora mucho la experiencia de usuario



No es necesario recargar la página al completo, sólo aquellas partes
que cambian (p.e. se puede dejar el menú fijo)



La página se puede cargar por partes, primero la información
importante y en segundo plano otros elementos complementarios (p.e.
los botones de compartir, los comentarios en un blog…)



Se puede dar realimentación al usuario de formas más adecuadas
(cuadro de diálogo, error de validación en un formulario, quitar el icono
de carga de un recurso, etc…)

Tema 2 - Tecnologías de desarrollo de aplicaciones web

23
ARQUITECTURAS DE APLICACIONES WEB

Arquitectura Cliente dinámico y Servidor dinámico
• JavaScript con peticiones en segundo
plano (AJAX)


Cuando el código JavaScript hace peticiones, el servidor
puede devolver:
 Contenido para ser incluido en la página directamente:
 Fragmentos de HTML generados dinámicamente
 Recursos estáticos en disco: Imágenes, PDF, HTML, etc…

 Información que será interpretada por JavaScript para
modificar la página (Mostrar un error, cambiar un color, …):
 Información generada dinámicamente estructura en XML o JSON
(un formato similar a XML).
Tema 2 - Tecnologías de desarrollo de aplicaciones web

24
ARQUITECTURAS DE APLICACIONES WEB

Arquitectura Cliente dinámico y Servidor dinámico
• JavaScript con peticiones en segundo
plano (AJAX)


Un servidor web genera HTML de forma dinámica
cuando recibe peticiones http



Si se usa AJAX, el servidor genera información en
XML o JSON cuando recibe peticiones http



Habitualmente, cuando un servidor web genera
XML o JSON ante peticiones http, implementa una
API REST
Tema 2 - Tecnologías de desarrollo de aplicaciones web

25
ARQUITECTURAS DE APLICACIONES WEB

Arquitectura Cliente dinámico y Servidor dinámico
• JavaScript con peticiones en segundo
plano (AJAX)


Existen muchas aplicaciones web que no usan
AJAX



La mayoría de las aplicaciones que se han
desarrollado en los últimos años usan AJAX en
algunas de sus páginas por la mejora en la
experiencia del usuario

Tema 2 - Tecnologías de desarrollo de aplicaciones web

26
ARQUITECTURAS DE APLICACIONES WEB

Arquitectura Cliente dinámico y Servidor dinámico
• Single Page Application con API REST


La técnica AJAX se puede llevar al extremo y que todo el
contenido dinámico se cargue únicamente con JavaScript



En este caso, la aplicación web es un conjunto de recursos
HTML, CSS y JavaScript estáticos, que se cargan en el
navegador



El contenido dinámico se genera en el servidor únicamente
como XML o JSON que se carga en segundo plano con
JavaScript mediante peticiones a la API REST del servidor
web

Tema 2 - Tecnologías de desarrollo de aplicaciones web

27
ARQUITECTURAS DE APLICACIONES WEB

Arquitectura Cliente dinámico y Servidor dinámico

• Single Page Application con API REST


Google popularizó AJAX y SPA con Gmail y Maps

Tema 2 - Tecnologías de desarrollo de aplicaciones web

28
ARQUITECTURAS DE APLICACIONES WEB

Arquitectura Cliente dinámico y Servidor dinámico
• Single Page Application con API REST


El cliente una web SPA es una aplicación completa y
autónoma, que se descarga de la red al acceder a una
URL y que se comunica con un servidor usando REST



Existe una única página cuyo contenido va cambiando
según el usuario interactúa con botones, pestañas, etc.



El botón de atrás del navegador funciona porque se
“emula” una navegación por páginas cuando se
evoluciona por los estados de la aplicación
Tema 2 - Tecnologías de desarrollo de aplicaciones web

29
ARQUITECTURAS DE APLICACIONES WEB

Arquitectura Cliente dinámico y Servidor dinámico
• Single Page Application con API REST


Las aplicaciones autónomas que se implementan con
tecnologías HTML5 se consideran SPA:
 Móviles: Apache Cordova, Firefox OS, ubuntu mobile…
 Escritorio: Windows Store Apps, Google Chrome Apps...
 SmartTV: Samsung, LG…



En la mayoría de estas tecnologías en código de la
aplicación cliente (HTML, CSS y JS) puede estar
contenido en el paquete de instalación o puede
descargarse al iniciar la aplicación
Tema 2 - Tecnologías de desarrollo de aplicaciones web

30
DESARROLLO DE APLICACIONES WEB

Tecnologías de desarrollo de aplicaciones web
• Introducción
• Arquitecturas de aplicaciones web
• Tecnologías del cliente
• Tecnologías del servidor

• Bases de datos
• Sistemas gestores de contenido

Tema 2 - Tecnologías de desarrollo de aplicaciones web

31
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Tecnologías del cliente
• El cliente web por excelencia es el navegador web
• Existen un conjunto de estándares web, definidos
por el W3C, que todo navegador debería
implementar
• Existen un conjunto de tecnologías no estándar
que algunos navegadores implementan para la
construcción de aplicaciones avanzadas y acceso
a contenido multimedia
Tema 2 - Tecnologías de desarrollo de aplicaciones web

32
TECNOLOGÍAS DEL CLIENTE

Estándares web
• El W3C (World Wide Web Consortium)
es una comunidad internacional que
desarrolla estándares abiertos que
aseguran el crecimiento de la Web a
largo plazo
Scripting and Ajax
HTML & CSS
Audio & Video

Gráficos

Accesibilidad

Web Semántica

XML

Servicios Web
http://www.w3.org
Tema 2 - Tecnologías de desarrollo de aplicaciones web

33
TECNOLOGÍAS DEL CLIENTE

Estándares web
• HTML (Hypertext Markup Language) and CSS
(Cascading Style Sheets) son dos de las
tecnologías principales para la construcción de
páginas web


HTML proporciona la información estructurada en
secciones, párrafos, título, imágenes, etc…



CSS proporciona la distribución de los elementos y
su estilo (colores, tipos de letra, fondos, efectos…)
Tema 2 - Tecnologías de desarrollo de aplicaciones web

34
TECNOLOGÍAS DEL CLIENTE

Estándares web
• HTML


La versión actual es HTML5



Todavía no está finalizada, pero la mayoría
de los navegadores implementan gran parte
de la especificación



Ha supuesto una revolución para el
dinamismo en el cliente porque ofrece
muchas librerías/tecnologías avanzadas:
 Multimedia: etiquetas vídeo, audio y canvas,
webgl
 Comunicaciones: websockets
 Concurrencia: webworkers
Tema 2 - Tecnologías de desarrollo de aplicaciones web

35
TECNOLOGÍAS DEL CLIENTE

Estándares web
• CSS


CSS es un lenguaje usado para definir
la presentación de un documento
estructurado escrito en HTML, XML,
SVG o incluso interfaces de usuario de
otras tecnologías (JavaFX)



Su versión actual es CSS3 (aunque
todavía no está finalizada)

Tema 2 - Tecnologías de desarrollo de aplicaciones web

36
TECNOLOGÍAS DEL CLIENTE

Estándares web
• Scripting


Las páginas web pueden programarse con diversos
lenguajes de script, aunque prácticamente sólo se
usa JavaScript



Con JavaScript se puede modificar la página y
ejecutar código cuando se interactúa con ella (a
través del modelo de objetos del documento DOM)



Se hacen peticiones al servidor web en segundo
plano y se actualiza el contenido de la web (AJAX)
Tema 2 - Tecnologías de desarrollo de aplicaciones web

37
TECNOLOGÍAS DEL CLIENTE

Estándares web
• JavaScript


Es un lenguaje de programación basado en el estándar
ECMAScript de ECMA (otra organización diferente al W3C)



Hay ligeras diferencias en la implementación de JS de los
navegadores, aunque actualmente todos son bastante
compatibles entre sí (en el pasado no fue así)



Aunque algunos elementos de la sintaxis recuerden a Java,
no tiene nada que ver con Java.



El nombre JavaScript se eligió al publicar el lenguaje en una
época en la que Java estaba en auge y fue principalmente
por marketing
http://www.ecma-international.org/
Tema 2 - Tecnologías de desarrollo de aplicaciones web

38
TECNOLOGÍAS DEL CLIENTE

Estándares web
• JavaScript


Inicialmente era un lenguaje interpretado, pero
actualmente se ejecuta con máquinas virtuales en
los navegadores (velocidad de ejecución y
eficiencia de memoria)



Características:
 Tipado dinámico (habitual en los lenguajes de script)
 Funcional y orientado a objetos (basado en
prototipos)
Tema 2 - Tecnologías de desarrollo de aplicaciones web

39
TECNOLOGÍAS DEL CLIENTE

Estándares web
• DOM


Document Object Model



Librería (API) para manipular el documento HTML
cargado en el navegador



Es el equivalente en web a la librería de
componentes gráficos



Permite la gestión de eventos, insertar y eliminar
elementos, etc.

Tema 2 - Tecnologías de desarrollo de aplicaciones web

40
TECNOLOGÍAS DEL CLIENTE

Estándares web
• Librerías JavaScript


Existen multitud de bibliotecas
(APIs) JavaScript para el
desarrollo de aplicaciones



Las más utilizadas son:
 jQuery: es un recubrimiento de la API DOM que aporta facilidad
de uso, potencia y compatibilidad entre navegadores. Se usa
para gestionar el interfaz (la página) y para peticiones ajax.
 underscore.js: Librería para trabajar con estructuras de datos
con un enfoque funcional. También permite gestionar plantillas
(templates) para generar HTML partiendo de datos

Tema 2 - Tecnologías de desarrollo de aplicaciones web

41
TECNOLOGÍAS DEL CLIENTE

Estándares web
• Librerías JavaScript


Además de librerías, también existen frameworks del alto
nivel que estructuran una aplicación de forma completa.
Especialmente en aplicaciones SPA



Los más populares son Angular.js, Backbone.js y Ember

http://www.lostiemposcambian.com/blog/javascript/backbone-vs-angular-vs-ember/
Tema 2 - Tecnologías de desarrollo de aplicaciones web

42
TECNOLOGÍAS DEL CLIENTE

Tecnologías no estándar en la web
• La web ha avanzado y evolucionado gracias a tecnologías
no estándar incluidas en los navegadores mediante
plugins
• Algunas llegaron a convertirse en estándares “de facto”
• La tecnología no estándar por excelencia de la web es
Adobe Flash (aunque ha habido otras)
• La llegada de los dispositivos móviles, consolas y
televisiones conectadas (SmartTVs) y la estandarización
de HTML5 han hecho que estas tecnologías no estándar
estén en desuso
Tema 2 - Tecnologías de desarrollo de aplicaciones web

43
TECNOLOGÍAS DEL CLIENTE

Tecnologías no estándar en la web
• Adobe Flash


Es una tecnología usada principalmente para
incrustar contenido multimedia interactivo en
páginas web



Durante muchos años fue la única forma de
tener interactividad, animaciones, vídeos,
juegos… en la web



Es posible que haya cosas que a día de hoy sólo
se puedan hacer con flash y no se puedan
implementar con la tecnología HTML5

http://active.tutsplus.com/articles/roundups/10-flash-things-you-can%E2%80%99t-do-with-html5/
Tema 2 - Tecnologías de desarrollo de aplicaciones web

44
TECNOLOGÍAS DEL CLIENTE

Tecnologías no estándar en la web
• Adobe Flash


Es una tecnología propietaria y cerrada



Es gratuita para los usuarios, pero los desarrolladores
y servidores que usen ciertas características tienen
que pagar licencia



Ha sido acusada de de que no es eficiente, no es
abierta y por tanto, no es el futuro de la web (Abril
2010 - Steve Jobs por el iPhone y iPad)



Adobe lo ha acabado reconociendo y no seguirá
apostando por Flash como la herramienta básica de la
web interactiva (Nov 2011)
http://www.apple.com/hotnews/thoughts-on-flash/
http://blogs.adobe.com/conversations/2011/11/flash-focus.html
Tema 2 - Tecnologías de desarrollo de aplicaciones web

45
TECNOLOGÍAS DEL CLIENTE

Tecnologías no estándar en la web
• Java Applets


Los applets de Java fueron los precursores de Flash



Debido a prácticas anticompetitivas de Microsoft y que Sun
Microsystems estaba más centrada en los servidores de
aplicaciones hace mucho tiempo que está en desuso

• Microsoft Silverlight


La apuesta de Microsoft para competir con Adobe Flash



Soporte muy limitado en plataformas diferentes a Windows



El navegador web de Metro en Windows 8 no soportará
plugins, por tanto, no tendrá soporte para Flash ni para
Silverlight
http://www.infoq.com/news/2011/09/Metro-Plug-ins
Tema 2 - Tecnologías de desarrollo de aplicaciones web

46
TECNOLOGÍAS DEL CLIENTE

Conclusiones
• Si no hay un motivo importante, todas las aplicaciones web deberían
implementarse con estándares

• En un mundo con multitud de dispositivos conectados a la red, es la
única forma de la web sea accesible desde todos ellos
• Si es estrictamente necesario usar Flash, es conveniente conocer la
cantidad de usuarios que no podrán acceder a la web porque sus
dispositivos no son compatibles con esta tecnología
• HTML5 avanza muy rápido. Se ha convertido en la tecnología
estándar para multitud de plataformas diferentes
• Para saber qué estándares soporta cada versión de cada navegador,
se puede usar la web http://caniuse.com/

Tema 2 - Tecnologías de desarrollo de aplicaciones web

47
TECNOLOGÍAS DEL CLIENTE

Conclusiones
• Si no hay un motivo importante, todas las aplicaciones web deberían
implementarse con estándares

• En un mundo con multitud de dispositivos conectados a la red, es la
única forma de la web sea accesible desde todos ellos
• Si es estrictamente necesario usar Flash, es conveniente conocer la
cantidad de usuarios que no podrán acceder a la web porque sus
dispositivos no son compatibles con esta tecnología
• HTML5 avanza muy rápido. Se ha convertido en la tecnología
estándar para multitud de plataformas diferentes

Tema 2 - Tecnologías de desarrollo de aplicaciones web

48
TECNOLOGÍAS DEL CLIENTE

Conclusiones

Tema 2 - Tecnologías de desarrollo de aplicaciones web

49
DESARROLLO DE APLICACIONES WEB

Tecnologías de desarrollo de aplicaciones web
• Introducción
• Arquitecturas de aplicaciones web
• Tecnologías del cliente
• Tecnologías del servidor

• Bases de datos
• Sistemas gestores de contenido

Tema 2 - Tecnologías de desarrollo de aplicaciones web

50
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Tecnologías del servidor
• Los estándares son muy importantes en los
navegadores web (cliente) porque la web tiene
que ser compatible con cualquier dispositivo
• En cambio los estándares no son necesarios en el
servidor, porque cada organización desarrollará
su servidor con la tecnología de su elección

• En el servidor, se utilizan tecnologías, propietarias
o abiertas, para el desarrollo de aplicaciones web
Tema 2 - Tecnologías de desarrollo de aplicaciones web

51
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Tecnologías del servidor
• Existen multitud de tecnologías de
construcción de aplicaciones en el servidor


Más usadas: PHP, Java EE, ASP.NET



Menos usadas: Ruby on Rails, Grails (Groovy),
Django (Python), Perl, ColdFusion, muchas más

Tema 2 - Tecnologías de desarrollo de aplicaciones web

52
TECNOLOGÍAS DEL SERVIDOR

Java EE
• Tecnología basada en Java
• Desarrollada por una coalición de
empresas lideradas por Oracle,
IBM, Red Hat, etc..
• Tecnología muy usada a nivel empresarial

• La mayoría de las implementaciones y herramientas para
desarrollo son software libre
• Existen comunidades de desarrolladores y empresas que
realizan complementos, bibliotecas, herramientas…
http://www.oracle.com/javaee/
Tema 1 - Introducción

53
TECNOLOGÍAS DEL SERVIDOR

Java EE
• Estándares en Java EE


Java tiene una organización de estandarización propia llamada
Java Community Process (JCP)



En ella se definen estándares abiertos que se pueden implementar
con licencia libre o propietaria



Estándares web: Java EE, Servlets, JSP, JDBC, JPA, JSF, EJBs…

• Bibliotecas y frameworks en Java EE


Existen multitud de implementaciones independientes que
pueden seguir o no un estándar



Ejemplos: Spring, Hibernate, GWT, Vaadin, Google Closure, Struts,
Apache Tiles…
Tema 1 - Introducción

54
TECNOLOGÍAS DEL SERVIDOR

Java EE
• Estándares más importantes en Java EE


Servlets: Estándar para ejecutar código Java ante una petición web en un
servidor Java EE



JSP (Java Server Pages): Estándar que permite mezclar en un documento
código Java y HTML para generar páginas web de forma dinámica



JDBC (Java Database Conectivity): Estándar para conexión a bases de datos
relacionales desde Java



JPA (Java Persistence API): Estándar para la correspondencia objeto-relacional
(ORM, Object Relational Mapping)



JSF (Java Server Faces): Estándar de construcción de aplicaciones web basadas
en componentes reutilizables



EJB (Enterprise JavaBeans): arquitectura manejada para la construcción de
aplicaciones web (transacciones, seguridad, distribución…)

Tema 1 - Introducción

55
TECNOLOGÍAS DEL SERVIDOR

Java EE
• Servidores Java EE


Toda aplicación web Java EE tiene que ejecutarse en
una servidor de aplicaciones Java (aunque luego se
integre en Apache, NginX o IIS)



Existen muchos tipos de servidores, dependiendo de
sus funcionalidades/rendimiento y de su licencia/coste



Ejemplos: Glassfish (Oracle), Tomcat (Apache), Jetty
(Eclipse), JBoss (RedHat), WebSphere (IBM), WebLogic
(Oracle)
Tema 1 - Introducción

56
TECNOLOGÍAS DEL SERVIDOR

Java EE
• Herramientas de desarrollo


Para desarrollar aplicaciones Java EE se utilizan
IDEs y plugins para ellos



Eclipse: Fundación Eclipse con multitud de plugins.
Mucha diversidad, falta de integración. Software
libre.



Netbeans: Oracle. Muy integrado. Software libre.



IntelliJ: Jetbrains. Muy integrado. Propietario
Tema 1 - Introducción

57
TECNOLOGÍAS DEL SERVIDOR

PHP
• Desarrollado en 1994 por Rasmus Lerdorf
• Tecnología con un lenguaje propio llamado
PHP
• Desarrollada por PHP Group con licencia libre PHP license
• Es la tecnología de programación del lado del servidor con se
han implementado más servidores de Internet
• Es multiplataforma

• Se integra normalmente con Apache y MySQL en entornos
Linux en un paquete llamado LAMP
http://www.php.net/
Tema 1 - Introducción

58
TECNOLOGÍAS DEL SERVIDOR

PHP
• Estándares y empresas en PHP


No existe un organismo de estandarización, la
tecnología evoluciona por la comunidad en PHP Group



No hay muchas empresas grandes que apoyan el
desarrollo de PHP, pero Zend es muy relevante



Facebook es sin duda una muestra importante de la
popularidad de PHP



CMSs como Drupal y Wordpress también están
implementados en PHP
Tema 1 - Introducción

59
TECNOLOGÍAS DEL SERVIDOR

PHP
• Bibliotecas y frameworks


Existen multitud de frameworks para el desarrollo
de aplicaciones PHP



Ejemplos: CakePHP, CodeIgniter, Zend, Symfony,
Yii, Zeta Components, Horde

http://www.phpframeworks.com/
Tema 1 - Introducción

60
TECNOLOGÍA DEL SERVIDOR

ASP.NET
• Versión evolucionada del
ASP clásico

• Integrada en la tecnología .NET
de Microsoft junto con el lenguaje C#
• Licencia propietaria y para plataformas Windows
• Tiene una comunidad de desarrolladores más
limitada que las otras alternativas

http://www.asp.net/
Tema 1 - Introducción

61
TECNOLOGÍA DEL SERVIDOR

ASP.NET
• Librerías y frameworks


La mayoría de las librerías para ASP.NET son las
oficiales proporcionadas por Microsoft



Web Pages: Tecnología similar a JSP y PHP que permite
combinar HTML con código ASP



Web Forms: Tecnología de construcción de aplicaciones
web basadas en componentes (similar a JSF de JavaEE)



Data Access Layer (DAL): Capa de acceso a los datos.
Proporciona la misma funcionalidad que JDBC y JPA
Tema 1 - Introducción

62
DESARROLLO DE APLICACIONES WEB

Tecnologías de desarrollo de aplicaciones web
• Introducción
• Arquitecturas de aplicaciones web
• Tecnologías del cliente
• Tecnologías del servidor

• Bases de datos
• Sistemas gestores de contenido

Tema 2 - Tecnologías de desarrollo de aplicaciones web

63
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Bases de datos
• Las bases de datos más populares para el desarrollo de
aplicaciones web han sido las bases de datos relacionales

• Existen muchas bases de datos relacionales (comerciales y
software libre): MySQL, Derby, Oracle, MS SQL Server,
PostgreSQL

Tema 2 - Tecnologías de desarrollo de aplicaciones web

64
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Bases de datos
• MySQL












http://www.mysql.org/
Sistema gestor de base de datos
multiplataforma
Desarrollado en C
Licencia código abierto GPL
Soporte de un subconjunto de SQL 99
Herramienta interactiva para hacer consultas y crear
bases de datos
Muy popular en el desarrollo web
Tema 2 - Tecnologías de desarrollo de aplicaciones web

65
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Bases de datos
• Como las aplicaciones web tienen muchas necesidades de
escalabilidad y tolerancia a fallos, hay una nueva familia
de bases de datos
• Se denominan genéricamente NoSQL, que se puede
interpretar como: No SQL o como Not Only SQL

• Algunas de las más famosas son:

Tema 2 - Tecnologías de desarrollo de aplicaciones web

66
DESARROLLO DE APLICACIONES WEB

Tecnologías de desarrollo de aplicaciones web
• Introducción
• Arquitecturas de aplicaciones web
• Tecnologías del cliente
• Tecnologías del servidor

• Bases de datos
• Sistemas gestores de contenido

Tema 2 - Tecnologías de desarrollo de aplicaciones web

67
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Sistemas gestores de contenido
• CMS (Content Management System)
• Aplicación web genérica que permite la creación y
administración de contenidos vía web
• El sistema permite manejar de manera independiente el
contenido y el diseño, permite el cambio de diseño (con
templates o themes)
• Los CMSs han evolucionado para convertirse en un
nuevo modelo de desarrollo de aplicaciones web
configurando y adaptando módulos con un interfaz web
Tema 2 - Tecnologías de desarrollo de aplicaciones web

68
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Sistemas gestores de contenido
• Existen multitud de CMSs con enfoques y
objetivos diferentes
• Ejemplos: Drupal (PHP), Joomla (PHP),
Wordpress (PHP), Plone (JavaSript), Moodle
(PHP), Liferay (Java)

http://en.wikipedia.org/wiki/List_of_content_management_systems
Tema 2 - Tecnologías de desarrollo de aplicaciones web

69
TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB

Sistemas gestores de contenido
• Joomla: Principal
ventaja es permitir
editar el contenido
de un sitio web de
manera sencilla.
• WordPress: Es un
sistema de gestión
de contenido
enfocado a la
creación de blogs
Tema 7 - Sistemas de gestión de contenidos

70
SISTEMAS GESTORES DE CONTENIDOS

Drupal
• Drupal fue originalmente creado por Dries Buytaert
• Comenzó como Sistema de tablón de anuncios
• Código libre con licencia GPL/GNU
• Escrito en PHP

• Modular y muy configurable
• Desarrollado y mantenido por una activa comunidad de
usuarios
• www.drupal.org
Tema 7 - Sistemas de gestión de contenidos

71
SISTEMAS GESTORES DE CONTENIDOS

Drupal
• Código abierto: El código fuente de Drupal está libremente
disponible bajo los términos de la licencia GNU/GPL.

• Módulos: La comunidad de Drupal ha contribuido con
infinidad de módulos que proporcionan diversas
funcionalidades.
• Objetos de Contenido (Nodos): El contenido creado en
Drupal es, funcionalmente, un objeto (Nodo).
• Plataforma Independiente de la base de datos: Aunque la
mayor parte de las instalaciones de Drupal utilizan MySQL.

Tema 7 - Sistemas de gestión de contenidos

72
SISTEMAS GESTORES DE CONTENIDOS

Drupal
• Multiplataforma: Drupal ha sido diseñado desde el
principio para ser multi-plataforma
• Múltiples idiomas y Localización: Drupal está pensado
para una audiencia internacional y proporciona
opciones para crear un portal multilingüe
• Administración y Análisis Administración via Web: La
administración y configuración del sistema se puede
realizar enteramente con un navegador

Tema 7 - Sistemas de gestión de contenidos

73
SISTEMAS GESTORES DE CONTENIDOS

Drupal

Tema 7 - Sistemas de gestión de contenidos

74
SISTEMAS GESTORES DE CONTENIDOS

Drupal

Tema 7 - Sistemas de gestión de contenidos

75

Más contenido relacionado

La actualidad más candente

Arquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasArquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasanibalsmit
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de SoftwareGustavo Bazan Maal
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de usoSaul Mamani
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosJosé Antonio Sandoval Acosta
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de RequerimientosUTPL UTPL
 
Tipos de Requerimientos en Ingeniería de Software
Tipos de Requerimientos en Ingeniería de SoftwareTipos de Requerimientos en Ingeniería de Software
Tipos de Requerimientos en Ingeniería de SoftwareLeo Ruelas Rojas
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)katherine revelo gomez
 
Requerimientos no funcionales
Requerimientos no funcionalesRequerimientos no funcionales
Requerimientos no funcionalesAngel Minga
 
IEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareIEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareJesús Navarro
 

La actualidad más candente (20)

13.diseño de web apps
13.diseño de web apps13.diseño de web apps
13.diseño de web apps
 
Arquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasArquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capas
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Metodologia Diseño Web
Metodologia Diseño WebMetodologia Diseño Web
Metodologia Diseño Web
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Ingenieria requerimientos
Ingenieria requerimientosIngenieria requerimientos
Ingenieria requerimientos
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de Requerimientos
 
Tipos de Requerimientos en Ingeniería de Software
Tipos de Requerimientos en Ingeniería de SoftwareTipos de Requerimientos en Ingeniería de Software
Tipos de Requerimientos en Ingeniería de Software
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Metodología ICONIX
Metodología ICONIXMetodología ICONIX
Metodología ICONIX
 
Capas de la ingenieria de software
Capas de la ingenieria de softwareCapas de la ingenieria de software
Capas de la ingenieria de software
 
Requerimientos no funcionales
Requerimientos no funcionalesRequerimientos no funcionales
Requerimientos no funcionales
 
Ingeniería Web
Ingeniería WebIngeniería Web
Ingeniería Web
 
IEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareIEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de software
 

Similar a Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)

Arquitectura- Programacion WEB
Arquitectura- Programacion WEBArquitectura- Programacion WEB
Arquitectura- Programacion WEBYael_21
 
Programación web
Programación webProgramación web
Programación weberic291285
 
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGArquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGEfrain Criss
 
Desarrollo web front-end con TypeScript, Angular 2 e Ionic
Desarrollo web front-end con TypeScript, Angular 2 e IonicDesarrollo web front-end con TypeScript, Angular 2 e Ionic
Desarrollo web front-end con TypeScript, Angular 2 e IonicMicael Gallego
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Micael Gallego
 
Instalacion adobe dream weaver
Instalacion adobe dream weaverInstalacion adobe dream weaver
Instalacion adobe dream weaverLuis Viteri
 
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVCLuis Fernando Aguas Bucheli
 
63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-javaGilberto Garcia Zavaleta
 
Html_Clase01_1_Intro_V2.pptx.pdf
Html_Clase01_1_Intro_V2.pptx.pdfHtml_Clase01_1_Intro_V2.pptx.pdf
Html_Clase01_1_Intro_V2.pptx.pdfAgustnSiano
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria webMirsha01
 
Presentación ingeniería web
Presentación ingeniería webPresentación ingeniería web
Presentación ingeniería webJORGE MONGUI
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones webRuthReyes71
 

Similar a Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web) (20)

Arquitectura- Programacion WEB
Arquitectura- Programacion WEBArquitectura- Programacion WEB
Arquitectura- Programacion WEB
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
S5-DAW-2022S1.pptx
S5-DAW-2022S1.pptxS5-DAW-2022S1.pptx
S5-DAW-2022S1.pptx
 
Programación web
Programación webProgramación web
Programación web
 
Tecnologias de desarrollo web
Tecnologias de desarrollo webTecnologias de desarrollo web
Tecnologias de desarrollo web
 
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGArquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
 
Desarrollo web front-end con TypeScript, Angular 2 e Ionic
Desarrollo web front-end con TypeScript, Angular 2 e IonicDesarrollo web front-end con TypeScript, Angular 2 e Ionic
Desarrollo web front-end con TypeScript, Angular 2 e Ionic
 
0. Antecedentes Asp
0. Antecedentes Asp0. Antecedentes Asp
0. Antecedentes Asp
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
 
Instalacion adobe dream weaver
Instalacion adobe dream weaverInstalacion adobe dream weaver
Instalacion adobe dream weaver
 
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
 
UWE
UWEUWE
UWE
 
63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java
 
S6-DAW-2022S1.pptx
S6-DAW-2022S1.pptxS6-DAW-2022S1.pptx
S6-DAW-2022S1.pptx
 
Backbeam
BackbeamBackbeam
Backbeam
 
Html_Clase01_1_Intro_V2.pptx.pdf
Html_Clase01_1_Intro_V2.pptx.pdfHtml_Clase01_1_Intro_V2.pptx.pdf
Html_Clase01_1_Intro_V2.pptx.pdf
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Presentación ingeniería web
Presentación ingeniería webPresentación ingeniería web
Presentación ingeniería web
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
Prog webuni3
Prog webuni3Prog webuni3
Prog webuni3
 

Más de Micael Gallego

Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferenciasMicael Gallego
 
La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...Micael Gallego
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduMicael Gallego
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Micael Gallego
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Micael Gallego
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Micael Gallego
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestMicael Gallego
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosTesteando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosMicael Gallego
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 Micael Gallego
 
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas SoftwareMicael Gallego
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoMicael Gallego
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsMicael Gallego
 
Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Desarrollo centrado en tareas en Eclipse con Mylyn 2009Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Desarrollo centrado en tareas en Eclipse con Mylyn 2009Micael Gallego
 
Como ser mas productivo en el desarrollo de aplicaciones
Como ser mas productivo en el desarrollo de aplicacionesComo ser mas productivo en el desarrollo de aplicaciones
Como ser mas productivo en el desarrollo de aplicacionesMicael Gallego
 
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesTypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesMicael Gallego
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCMicael Gallego
 

Más de Micael Gallego (20)

Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferencias
 
La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenVidu
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTest
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosTesteando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
 
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas Software
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigo
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
 
Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Desarrollo centrado en tareas en Eclipse con Mylyn 2009Desarrollo centrado en tareas en Eclipse con Mylyn 2009
Desarrollo centrado en tareas en Eclipse con Mylyn 2009
 
Como ser mas productivo en el desarrollo de aplicaciones
Como ser mas productivo en el desarrollo de aplicacionesComo ser mas productivo en el desarrollo de aplicaciones
Como ser mas productivo en el desarrollo de aplicaciones
 
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesTypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 

Último

tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaElizabethLpezSoto
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 

Último (20)

tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestría
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 

Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)

  • 1. DESARROLLO DE APLICACIONES WEB - TEMA 2 Tecnologías de desarrollo de aplicaciones web Micael Gallego Correo: micael.gallego@urjc.es Twitter: @micael_gallego Blog: http://micaelgallego.github.io ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN
  • 2. DESARROLLO DE APLICACIONES WEB Tecnologías de desarrollo de aplicaciones web • Introducción • Arquitecturas de aplicaciones web • Tecnologías del cliente • Tecnologías del servidor • Bases de datos • Sistemas gestores de contenido Tema 2 - Tecnologías de desarrollo de aplicaciones web 2
  • 3. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Introducción • El desarrollo de aplicaciones web ha evolucionado enormemente en la última década, tanto desde el punto de vista del desarrollo de software como a nivel de administración de sistemas • Desarrollo de software  Se han creado multitud de tecnologías, frameworks de desarrollo de aplicaciones, bibliotecas, aplicaciones configurables, arquitecturas, modelos de publicación de versiones (release)… • Administración de sistemas  Se ha evolucionado enormemente en la administración de sistemas, servicios de alojamiento, técnicas de escalabilidad, monitorización, gestión de centros de procesos de datos… Tema 2 - Tecnologías de desarrollo de aplicaciones web 3
  • 4. INTRODUCCIÓN Desarrollo de software • La evolución ha tenido como resultado que hay una gran cantidad de tecnologías, librerías, herramientas y estilos arquitectónicos para desarrollar una aplicación web • Es conveniente conocer los elementos más importantes desde un punto de vista de alto nivel para tener una visión global de la disciplina • Existen dos enfoques en el desarrollo de aplicaciones web:  Creación de webs con tecnologías de desarrollo  Creación de webs con sistemas gestores de contenido Tema 2 - Tecnologías de desarrollo de aplicaciones web 4
  • 5. INTRODUCCIÓN Desarrollo de software • Creación de webs con tecnologías de desarrollo  Arquitecturas de aplicaciones web: Una aplicación web puede tener diferentes arquitecturas. Esto determina cómo se usan las diferentes tecnologías existentes  Tecnologías de cliente: Tecnologías que permiten crear interfaces de usuario atractivos y permiten la comunicación con el servidor. Basadas en HTML, CSS y JavaScript.  Tecnologías de servidor: Tecnologías que permiten implementar el comportamiento de la aplicación web en el servidor: lógica de negocio, generación de informes, compartir información entre usuarios, envío de correos, etc…  Bases de datos: La gran mayoría de las webs necesitan guardar información. Las bases de datos son una parte esencial del desarrollo web. Tema 2 - Tecnologías de desarrollo de aplicaciones web 5
  • 6. INTRODUCCIÓN Desarrollo de software • Creación de webs con sistemas gestores de contenido  Existen aplicaciones web cuya principal funcionalidad es la publicación de contenido: blogs, páginas de empresas, organismos públicos, etc.  Todas estas webs tienen mucho en común, prácticamente sólo se diferencian en el contenido y en el aspecto gráfico  Para desarrollar este tipo de webs, en vez de desarrollar la web con técnicas de desarrollo, se utiliza un software ya desarrollado y se personaliza y adapta a las necesidades  A las aplicaciones de este tipo se las denomina Sistemas Gestores de Contenido (CMSs). Tema 2 - Tecnologías de desarrollo de aplicaciones web 6
  • 7. INTRODUCCIÓN Administración de sistemas • Internet y las aplicaciones web han hecho evolucionar la administración de sistemas en muchos aspectos  Para que una aplicación web funcione necesita que el sistema donde se instale disponga de un servidor web y habitualmente una base de datos  Como la web tiene que estar disponible para los usuarios de Internet, habitualmente se instala en sistemas que se alquilan a terceros: alojamiento en la nube (cloud)  Como las aplicaciones web pueden tener un número muy grande de usuarios y tienen que estar siempre disponibles, se utilizan técnicas de escalabilidad y tolerancia a fallos Se verá en el Tema3 Tema 2 - Tecnologías de desarrollo de aplicaciones web 7
  • 8. DESARROLLO DE APLICACIONES WEB Tecnologías de desarrollo de aplicaciones web • Introducción • Arquitecturas de aplicaciones web • Tecnologías del cliente • Tecnologías del servidor • Bases de datos • Sistemas gestores de contenido Tema 2 - Tecnologías de desarrollo de aplicaciones web 8
  • 9. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • La arquitectura básica de una aplicación web está formada por los siguientes elementos:  Un navegador: Hace de cliente y realiza peticiones solicitando recursos a los servidores web. Cuando hace una petición a un servidor y le contesta enviándole un recurso, se lo muestra al usuario.  Un servidor web: Recibe peticiones de clientes (navegadores) y responde a esas peticiones enviado un recurso o notificando un error si el recurso no existe.  El protocolo http: Es el protocolo basado en TCP/IP que se utiliza para que el navegador realice las peticiones al servidor web y este responda.  HTML: Es el formato básico de los documentos de la web. Es un formato textual, basado en etiquetas que permite estructurar el contenido de la página. Tema 2 - Tecnologías de desarrollo de aplicaciones web 9
  • 10. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • La arquitectura de las aplicaciones web ha evolucionado mucho en los últimos años • No todas las aplicaciones web tienen la misma arquitectura • Las arquitecturas se diferencias principalmente en lo estática o dinámica que sea la web • Una web puede ser dinámica en el cliente y/o en el servidor • Las tecnologías utilizadas:  Dinamismo en cliente: JavaScript  Dinamismo en servidor: Java EE, .NET, PHP, Ruby on Rails, Python Django, Groovy, Node.js, Scala Play… Tema 2 - Tecnologías de desarrollo de aplicaciones web 10
  • 11. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • Cliente estático (Sin JavaScript)  Servidor estático  Servidor dinámico (3 capas) • Cliente dinámico (Con JavaScript)  Servidor estático  Servidor dinámico  JavaScript para efectos gráficos  JavaScript con peticiones en segundo plano (AJAX)  Single Page Application con REST Tema 2 - Tecnologías de desarrollo de aplicaciones web 11
  • 12. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • Arquitectura Cliente estático y Servidor estático  El navegador hace petición al servidor mediante http  El servidor transforma URL a ruta en disco  El servidor devuelve el fichero de disco al navegador  El navegador visualiza (renderiza) la página HTML con estilos CSS e imágenes (sin JavaScript).  Cuando el usuario hace clic en un enlace, el navegador repite el proceso con la URL del link y recarga por completo la página web Tema 2 - Tecnologías de desarrollo de aplicaciones web 12
  • 13. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • Arquitectura Cliente estático y Servidor estático  Con esta arquitectura el servidor siempre devuelve los mismos recursos  Desde el punto de vista del servidor, la web es estática  La web está formada por HTML, CSS, Imágenes, PDF, etc… (pero no incluye JavaScript)  A este tipo de web no se le suele llamar aplicación web porque nada es dinámico. Se denomina simplemente página web Tema 2 - Tecnologías de desarrollo de aplicaciones web 13
  • 14. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • Arquitectura Cliente estático y Servidor estático  La web se diseñó con esta arquitectura  Las primeras páginas web eran así  Todavía se sigue usando en muchas páginas web:  Páginas personales o de proyectos básicas (p.e. Tecnología de webs de github)  Documentación técnica (JavaDoc en Java, Maven site, etc…) Tema 2 - Tecnologías de desarrollo de aplicaciones web 14
  • 15. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web Tema 2 - Tecnologías de desarrollo de aplicaciones web 15
  • 16. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • Arquitectura Cliente estático y Servidor dinámico  Es un ejemplo de arquitectura de 3 capas:  Navegador: Capa de presentación  Servidor web: Capa de aplicación (Lógica de negocio)  Base de datos: Capa de datos Tema 2 - Tecnologías de desarrollo de aplicaciones web 16
  • 17. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • Arquitectura Cliente estático y Servidor dinámico  Cuando el servidor web recibe una petición, dependiendo de la URL:  Devolver contenido del disco  Ejecutar código para generar el recurso dinámicamente  Cuando se ejecuta código, normalmente se hacen consultas a una base de datos para recuperar la información  Lo más habitual es que se genere la página HTML de forma dinámica  También se pueden generar recursos de otro tipo (imágenes, PDFs…)  Si el usuario pulsa un link, se recarga la página al completo Tema 2 - Tecnologías de desarrollo de aplicaciones web 17
  • 18. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • Arquitectura Cliente estático y Servidor dinámico  Es la arquitectura de las primeras “aplicaciones web”  Todavía sigue habiendo muchas web con esta arquitectura  El contenido es dinámico, porque se ejecuta código en el servidor para generar dicho contenido  La experiencia de usuario antes no era muy buena:  Conexiones lentas implican tiempos de carga apreciables en cada clic  La recarga completa de la página ofrece una mala experiencia de usuario (página en blanco)  Pero ha mejorado:  Mayor velocidad de Internet (menos tiempo de espera)  Navegadores muestran la nueva página una vez cargada (sin pasar por la página en blanco) Tema 2 - Tecnologías de desarrollo de aplicaciones web 18
  • 19. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • Arquitectura Cliente dinámico y Servidor estático  El contenido de la página web está alojado en el disco duro del servidor (estático)  El cliente es dinámico porque las páginas incluyen código JavaScript que se ejecuta en el navegador  Este JavaScript se usa para incluir efectos gráficos:  Efectos gráficos que no se pueden implementar con CSS  Mostrar u ocultar información en función de los elementos que se seleccionan (para documentos largos)  Menús desplegables  Páginas adaptables para móviles (responsive) Tema 2 - Tecnologías de desarrollo de aplicaciones web 19
  • 20. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Arquitecturas de aplicaciones web • Arquitectura Cliente dinámico y Servidor dinámico  La mayoría de las aplicaciones web actuales son dinámicas tanto en cliente como en servidor  Dependiendo de cómo se use el JavaScript en el cliente, las aplicaciones se pueden dividir en tres tipos:  JavaScript para efectos gráficos  JavaScript con peticiones en segundo plano (AJAX)  Single Page Application con API REST Tema 2 - Tecnologías de desarrollo de aplicaciones web 20
  • 21. ARQUITECTURAS DE APLICACIONES WEB Arquitectura Cliente dinámico y Servidor dinámico • JavaScript para efectos gráficos  En este caso, el dinamismo en el cliente se utiliza exactamente igual que con un servidor estático  JavaScript se diseñó, entre otras cosas, para añadir efectos gráficos básicos a las páginas cuando el CSS era muy limitado  La gran mayoría de las aplicaciones web que existen en Internet siguen esta arquitectura Tema 2 - Tecnologías de desarrollo de aplicaciones web 21
  • 22. ARQUITECTURAS DE APLICACIONES WEB Arquitectura Cliente dinámico y Servidor dinámico • JavaScript con peticiones en segundo plano (AJAX)  JavaScript se puede usar para no tener que recargar completamente la página completa al pulsar un link  Con JavaScript se puede hacer petición al servidor web en segundo plano (oculta al usuario)  Cuando llega al navegador el resultado de la petición, el código JavaScript actualiza aquellas partes de la página necesarias  A esta técnica se la conoce como AJAX (Asynchronous JavaScript And XML) Tema 2 - Tecnologías de desarrollo de aplicaciones web 22
  • 23. ARQUITECTURAS DE APLICACIONES WEB Arquitectura Cliente dinámico y Servidor dinámico • JavaScript con peticiones en segundo plano (AJAX)  Usar AJAX en una página mejora mucho la experiencia de usuario  No es necesario recargar la página al completo, sólo aquellas partes que cambian (p.e. se puede dejar el menú fijo)  La página se puede cargar por partes, primero la información importante y en segundo plano otros elementos complementarios (p.e. los botones de compartir, los comentarios en un blog…)  Se puede dar realimentación al usuario de formas más adecuadas (cuadro de diálogo, error de validación en un formulario, quitar el icono de carga de un recurso, etc…) Tema 2 - Tecnologías de desarrollo de aplicaciones web 23
  • 24. ARQUITECTURAS DE APLICACIONES WEB Arquitectura Cliente dinámico y Servidor dinámico • JavaScript con peticiones en segundo plano (AJAX)  Cuando el código JavaScript hace peticiones, el servidor puede devolver:  Contenido para ser incluido en la página directamente:  Fragmentos de HTML generados dinámicamente  Recursos estáticos en disco: Imágenes, PDF, HTML, etc…  Información que será interpretada por JavaScript para modificar la página (Mostrar un error, cambiar un color, …):  Información generada dinámicamente estructura en XML o JSON (un formato similar a XML). Tema 2 - Tecnologías de desarrollo de aplicaciones web 24
  • 25. ARQUITECTURAS DE APLICACIONES WEB Arquitectura Cliente dinámico y Servidor dinámico • JavaScript con peticiones en segundo plano (AJAX)  Un servidor web genera HTML de forma dinámica cuando recibe peticiones http  Si se usa AJAX, el servidor genera información en XML o JSON cuando recibe peticiones http  Habitualmente, cuando un servidor web genera XML o JSON ante peticiones http, implementa una API REST Tema 2 - Tecnologías de desarrollo de aplicaciones web 25
  • 26. ARQUITECTURAS DE APLICACIONES WEB Arquitectura Cliente dinámico y Servidor dinámico • JavaScript con peticiones en segundo plano (AJAX)  Existen muchas aplicaciones web que no usan AJAX  La mayoría de las aplicaciones que se han desarrollado en los últimos años usan AJAX en algunas de sus páginas por la mejora en la experiencia del usuario Tema 2 - Tecnologías de desarrollo de aplicaciones web 26
  • 27. ARQUITECTURAS DE APLICACIONES WEB Arquitectura Cliente dinámico y Servidor dinámico • Single Page Application con API REST  La técnica AJAX se puede llevar al extremo y que todo el contenido dinámico se cargue únicamente con JavaScript  En este caso, la aplicación web es un conjunto de recursos HTML, CSS y JavaScript estáticos, que se cargan en el navegador  El contenido dinámico se genera en el servidor únicamente como XML o JSON que se carga en segundo plano con JavaScript mediante peticiones a la API REST del servidor web Tema 2 - Tecnologías de desarrollo de aplicaciones web 27
  • 28. ARQUITECTURAS DE APLICACIONES WEB Arquitectura Cliente dinámico y Servidor dinámico • Single Page Application con API REST  Google popularizó AJAX y SPA con Gmail y Maps Tema 2 - Tecnologías de desarrollo de aplicaciones web 28
  • 29. ARQUITECTURAS DE APLICACIONES WEB Arquitectura Cliente dinámico y Servidor dinámico • Single Page Application con API REST  El cliente una web SPA es una aplicación completa y autónoma, que se descarga de la red al acceder a una URL y que se comunica con un servidor usando REST  Existe una única página cuyo contenido va cambiando según el usuario interactúa con botones, pestañas, etc.  El botón de atrás del navegador funciona porque se “emula” una navegación por páginas cuando se evoluciona por los estados de la aplicación Tema 2 - Tecnologías de desarrollo de aplicaciones web 29
  • 30. ARQUITECTURAS DE APLICACIONES WEB Arquitectura Cliente dinámico y Servidor dinámico • Single Page Application con API REST  Las aplicaciones autónomas que se implementan con tecnologías HTML5 se consideran SPA:  Móviles: Apache Cordova, Firefox OS, ubuntu mobile…  Escritorio: Windows Store Apps, Google Chrome Apps...  SmartTV: Samsung, LG…  En la mayoría de estas tecnologías en código de la aplicación cliente (HTML, CSS y JS) puede estar contenido en el paquete de instalación o puede descargarse al iniciar la aplicación Tema 2 - Tecnologías de desarrollo de aplicaciones web 30
  • 31. DESARROLLO DE APLICACIONES WEB Tecnologías de desarrollo de aplicaciones web • Introducción • Arquitecturas de aplicaciones web • Tecnologías del cliente • Tecnologías del servidor • Bases de datos • Sistemas gestores de contenido Tema 2 - Tecnologías de desarrollo de aplicaciones web 31
  • 32. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Tecnologías del cliente • El cliente web por excelencia es el navegador web • Existen un conjunto de estándares web, definidos por el W3C, que todo navegador debería implementar • Existen un conjunto de tecnologías no estándar que algunos navegadores implementan para la construcción de aplicaciones avanzadas y acceso a contenido multimedia Tema 2 - Tecnologías de desarrollo de aplicaciones web 32
  • 33. TECNOLOGÍAS DEL CLIENTE Estándares web • El W3C (World Wide Web Consortium) es una comunidad internacional que desarrolla estándares abiertos que aseguran el crecimiento de la Web a largo plazo Scripting and Ajax HTML & CSS Audio & Video Gráficos Accesibilidad Web Semántica XML Servicios Web http://www.w3.org Tema 2 - Tecnologías de desarrollo de aplicaciones web 33
  • 34. TECNOLOGÍAS DEL CLIENTE Estándares web • HTML (Hypertext Markup Language) and CSS (Cascading Style Sheets) son dos de las tecnologías principales para la construcción de páginas web  HTML proporciona la información estructurada en secciones, párrafos, título, imágenes, etc…  CSS proporciona la distribución de los elementos y su estilo (colores, tipos de letra, fondos, efectos…) Tema 2 - Tecnologías de desarrollo de aplicaciones web 34
  • 35. TECNOLOGÍAS DEL CLIENTE Estándares web • HTML  La versión actual es HTML5  Todavía no está finalizada, pero la mayoría de los navegadores implementan gran parte de la especificación  Ha supuesto una revolución para el dinamismo en el cliente porque ofrece muchas librerías/tecnologías avanzadas:  Multimedia: etiquetas vídeo, audio y canvas, webgl  Comunicaciones: websockets  Concurrencia: webworkers Tema 2 - Tecnologías de desarrollo de aplicaciones web 35
  • 36. TECNOLOGÍAS DEL CLIENTE Estándares web • CSS  CSS es un lenguaje usado para definir la presentación de un documento estructurado escrito en HTML, XML, SVG o incluso interfaces de usuario de otras tecnologías (JavaFX)  Su versión actual es CSS3 (aunque todavía no está finalizada) Tema 2 - Tecnologías de desarrollo de aplicaciones web 36
  • 37. TECNOLOGÍAS DEL CLIENTE Estándares web • Scripting  Las páginas web pueden programarse con diversos lenguajes de script, aunque prácticamente sólo se usa JavaScript  Con JavaScript se puede modificar la página y ejecutar código cuando se interactúa con ella (a través del modelo de objetos del documento DOM)  Se hacen peticiones al servidor web en segundo plano y se actualiza el contenido de la web (AJAX) Tema 2 - Tecnologías de desarrollo de aplicaciones web 37
  • 38. TECNOLOGÍAS DEL CLIENTE Estándares web • JavaScript  Es un lenguaje de programación basado en el estándar ECMAScript de ECMA (otra organización diferente al W3C)  Hay ligeras diferencias en la implementación de JS de los navegadores, aunque actualmente todos son bastante compatibles entre sí (en el pasado no fue así)  Aunque algunos elementos de la sintaxis recuerden a Java, no tiene nada que ver con Java.  El nombre JavaScript se eligió al publicar el lenguaje en una época en la que Java estaba en auge y fue principalmente por marketing http://www.ecma-international.org/ Tema 2 - Tecnologías de desarrollo de aplicaciones web 38
  • 39. TECNOLOGÍAS DEL CLIENTE Estándares web • JavaScript  Inicialmente era un lenguaje interpretado, pero actualmente se ejecuta con máquinas virtuales en los navegadores (velocidad de ejecución y eficiencia de memoria)  Características:  Tipado dinámico (habitual en los lenguajes de script)  Funcional y orientado a objetos (basado en prototipos) Tema 2 - Tecnologías de desarrollo de aplicaciones web 39
  • 40. TECNOLOGÍAS DEL CLIENTE Estándares web • DOM  Document Object Model  Librería (API) para manipular el documento HTML cargado en el navegador  Es el equivalente en web a la librería de componentes gráficos  Permite la gestión de eventos, insertar y eliminar elementos, etc. Tema 2 - Tecnologías de desarrollo de aplicaciones web 40
  • 41. TECNOLOGÍAS DEL CLIENTE Estándares web • Librerías JavaScript  Existen multitud de bibliotecas (APIs) JavaScript para el desarrollo de aplicaciones  Las más utilizadas son:  jQuery: es un recubrimiento de la API DOM que aporta facilidad de uso, potencia y compatibilidad entre navegadores. Se usa para gestionar el interfaz (la página) y para peticiones ajax.  underscore.js: Librería para trabajar con estructuras de datos con un enfoque funcional. También permite gestionar plantillas (templates) para generar HTML partiendo de datos Tema 2 - Tecnologías de desarrollo de aplicaciones web 41
  • 42. TECNOLOGÍAS DEL CLIENTE Estándares web • Librerías JavaScript  Además de librerías, también existen frameworks del alto nivel que estructuran una aplicación de forma completa. Especialmente en aplicaciones SPA  Los más populares son Angular.js, Backbone.js y Ember http://www.lostiemposcambian.com/blog/javascript/backbone-vs-angular-vs-ember/ Tema 2 - Tecnologías de desarrollo de aplicaciones web 42
  • 43. TECNOLOGÍAS DEL CLIENTE Tecnologías no estándar en la web • La web ha avanzado y evolucionado gracias a tecnologías no estándar incluidas en los navegadores mediante plugins • Algunas llegaron a convertirse en estándares “de facto” • La tecnología no estándar por excelencia de la web es Adobe Flash (aunque ha habido otras) • La llegada de los dispositivos móviles, consolas y televisiones conectadas (SmartTVs) y la estandarización de HTML5 han hecho que estas tecnologías no estándar estén en desuso Tema 2 - Tecnologías de desarrollo de aplicaciones web 43
  • 44. TECNOLOGÍAS DEL CLIENTE Tecnologías no estándar en la web • Adobe Flash  Es una tecnología usada principalmente para incrustar contenido multimedia interactivo en páginas web  Durante muchos años fue la única forma de tener interactividad, animaciones, vídeos, juegos… en la web  Es posible que haya cosas que a día de hoy sólo se puedan hacer con flash y no se puedan implementar con la tecnología HTML5 http://active.tutsplus.com/articles/roundups/10-flash-things-you-can%E2%80%99t-do-with-html5/ Tema 2 - Tecnologías de desarrollo de aplicaciones web 44
  • 45. TECNOLOGÍAS DEL CLIENTE Tecnologías no estándar en la web • Adobe Flash  Es una tecnología propietaria y cerrada  Es gratuita para los usuarios, pero los desarrolladores y servidores que usen ciertas características tienen que pagar licencia  Ha sido acusada de de que no es eficiente, no es abierta y por tanto, no es el futuro de la web (Abril 2010 - Steve Jobs por el iPhone y iPad)  Adobe lo ha acabado reconociendo y no seguirá apostando por Flash como la herramienta básica de la web interactiva (Nov 2011) http://www.apple.com/hotnews/thoughts-on-flash/ http://blogs.adobe.com/conversations/2011/11/flash-focus.html Tema 2 - Tecnologías de desarrollo de aplicaciones web 45
  • 46. TECNOLOGÍAS DEL CLIENTE Tecnologías no estándar en la web • Java Applets  Los applets de Java fueron los precursores de Flash  Debido a prácticas anticompetitivas de Microsoft y que Sun Microsystems estaba más centrada en los servidores de aplicaciones hace mucho tiempo que está en desuso • Microsoft Silverlight  La apuesta de Microsoft para competir con Adobe Flash  Soporte muy limitado en plataformas diferentes a Windows  El navegador web de Metro en Windows 8 no soportará plugins, por tanto, no tendrá soporte para Flash ni para Silverlight http://www.infoq.com/news/2011/09/Metro-Plug-ins Tema 2 - Tecnologías de desarrollo de aplicaciones web 46
  • 47. TECNOLOGÍAS DEL CLIENTE Conclusiones • Si no hay un motivo importante, todas las aplicaciones web deberían implementarse con estándares • En un mundo con multitud de dispositivos conectados a la red, es la única forma de la web sea accesible desde todos ellos • Si es estrictamente necesario usar Flash, es conveniente conocer la cantidad de usuarios que no podrán acceder a la web porque sus dispositivos no son compatibles con esta tecnología • HTML5 avanza muy rápido. Se ha convertido en la tecnología estándar para multitud de plataformas diferentes • Para saber qué estándares soporta cada versión de cada navegador, se puede usar la web http://caniuse.com/ Tema 2 - Tecnologías de desarrollo de aplicaciones web 47
  • 48. TECNOLOGÍAS DEL CLIENTE Conclusiones • Si no hay un motivo importante, todas las aplicaciones web deberían implementarse con estándares • En un mundo con multitud de dispositivos conectados a la red, es la única forma de la web sea accesible desde todos ellos • Si es estrictamente necesario usar Flash, es conveniente conocer la cantidad de usuarios que no podrán acceder a la web porque sus dispositivos no son compatibles con esta tecnología • HTML5 avanza muy rápido. Se ha convertido en la tecnología estándar para multitud de plataformas diferentes Tema 2 - Tecnologías de desarrollo de aplicaciones web 48
  • 49. TECNOLOGÍAS DEL CLIENTE Conclusiones Tema 2 - Tecnologías de desarrollo de aplicaciones web 49
  • 50. DESARROLLO DE APLICACIONES WEB Tecnologías de desarrollo de aplicaciones web • Introducción • Arquitecturas de aplicaciones web • Tecnologías del cliente • Tecnologías del servidor • Bases de datos • Sistemas gestores de contenido Tema 2 - Tecnologías de desarrollo de aplicaciones web 50
  • 51. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Tecnologías del servidor • Los estándares son muy importantes en los navegadores web (cliente) porque la web tiene que ser compatible con cualquier dispositivo • En cambio los estándares no son necesarios en el servidor, porque cada organización desarrollará su servidor con la tecnología de su elección • En el servidor, se utilizan tecnologías, propietarias o abiertas, para el desarrollo de aplicaciones web Tema 2 - Tecnologías de desarrollo de aplicaciones web 51
  • 52. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Tecnologías del servidor • Existen multitud de tecnologías de construcción de aplicaciones en el servidor  Más usadas: PHP, Java EE, ASP.NET  Menos usadas: Ruby on Rails, Grails (Groovy), Django (Python), Perl, ColdFusion, muchas más Tema 2 - Tecnologías de desarrollo de aplicaciones web 52
  • 53. TECNOLOGÍAS DEL SERVIDOR Java EE • Tecnología basada en Java • Desarrollada por una coalición de empresas lideradas por Oracle, IBM, Red Hat, etc.. • Tecnología muy usada a nivel empresarial • La mayoría de las implementaciones y herramientas para desarrollo son software libre • Existen comunidades de desarrolladores y empresas que realizan complementos, bibliotecas, herramientas… http://www.oracle.com/javaee/ Tema 1 - Introducción 53
  • 54. TECNOLOGÍAS DEL SERVIDOR Java EE • Estándares en Java EE  Java tiene una organización de estandarización propia llamada Java Community Process (JCP)  En ella se definen estándares abiertos que se pueden implementar con licencia libre o propietaria  Estándares web: Java EE, Servlets, JSP, JDBC, JPA, JSF, EJBs… • Bibliotecas y frameworks en Java EE  Existen multitud de implementaciones independientes que pueden seguir o no un estándar  Ejemplos: Spring, Hibernate, GWT, Vaadin, Google Closure, Struts, Apache Tiles… Tema 1 - Introducción 54
  • 55. TECNOLOGÍAS DEL SERVIDOR Java EE • Estándares más importantes en Java EE  Servlets: Estándar para ejecutar código Java ante una petición web en un servidor Java EE  JSP (Java Server Pages): Estándar que permite mezclar en un documento código Java y HTML para generar páginas web de forma dinámica  JDBC (Java Database Conectivity): Estándar para conexión a bases de datos relacionales desde Java  JPA (Java Persistence API): Estándar para la correspondencia objeto-relacional (ORM, Object Relational Mapping)  JSF (Java Server Faces): Estándar de construcción de aplicaciones web basadas en componentes reutilizables  EJB (Enterprise JavaBeans): arquitectura manejada para la construcción de aplicaciones web (transacciones, seguridad, distribución…) Tema 1 - Introducción 55
  • 56. TECNOLOGÍAS DEL SERVIDOR Java EE • Servidores Java EE  Toda aplicación web Java EE tiene que ejecutarse en una servidor de aplicaciones Java (aunque luego se integre en Apache, NginX o IIS)  Existen muchos tipos de servidores, dependiendo de sus funcionalidades/rendimiento y de su licencia/coste  Ejemplos: Glassfish (Oracle), Tomcat (Apache), Jetty (Eclipse), JBoss (RedHat), WebSphere (IBM), WebLogic (Oracle) Tema 1 - Introducción 56
  • 57. TECNOLOGÍAS DEL SERVIDOR Java EE • Herramientas de desarrollo  Para desarrollar aplicaciones Java EE se utilizan IDEs y plugins para ellos  Eclipse: Fundación Eclipse con multitud de plugins. Mucha diversidad, falta de integración. Software libre.  Netbeans: Oracle. Muy integrado. Software libre.  IntelliJ: Jetbrains. Muy integrado. Propietario Tema 1 - Introducción 57
  • 58. TECNOLOGÍAS DEL SERVIDOR PHP • Desarrollado en 1994 por Rasmus Lerdorf • Tecnología con un lenguaje propio llamado PHP • Desarrollada por PHP Group con licencia libre PHP license • Es la tecnología de programación del lado del servidor con se han implementado más servidores de Internet • Es multiplataforma • Se integra normalmente con Apache y MySQL en entornos Linux en un paquete llamado LAMP http://www.php.net/ Tema 1 - Introducción 58
  • 59. TECNOLOGÍAS DEL SERVIDOR PHP • Estándares y empresas en PHP  No existe un organismo de estandarización, la tecnología evoluciona por la comunidad en PHP Group  No hay muchas empresas grandes que apoyan el desarrollo de PHP, pero Zend es muy relevante  Facebook es sin duda una muestra importante de la popularidad de PHP  CMSs como Drupal y Wordpress también están implementados en PHP Tema 1 - Introducción 59
  • 60. TECNOLOGÍAS DEL SERVIDOR PHP • Bibliotecas y frameworks  Existen multitud de frameworks para el desarrollo de aplicaciones PHP  Ejemplos: CakePHP, CodeIgniter, Zend, Symfony, Yii, Zeta Components, Horde http://www.phpframeworks.com/ Tema 1 - Introducción 60
  • 61. TECNOLOGÍA DEL SERVIDOR ASP.NET • Versión evolucionada del ASP clásico • Integrada en la tecnología .NET de Microsoft junto con el lenguaje C# • Licencia propietaria y para plataformas Windows • Tiene una comunidad de desarrolladores más limitada que las otras alternativas http://www.asp.net/ Tema 1 - Introducción 61
  • 62. TECNOLOGÍA DEL SERVIDOR ASP.NET • Librerías y frameworks  La mayoría de las librerías para ASP.NET son las oficiales proporcionadas por Microsoft  Web Pages: Tecnología similar a JSP y PHP que permite combinar HTML con código ASP  Web Forms: Tecnología de construcción de aplicaciones web basadas en componentes (similar a JSF de JavaEE)  Data Access Layer (DAL): Capa de acceso a los datos. Proporciona la misma funcionalidad que JDBC y JPA Tema 1 - Introducción 62
  • 63. DESARROLLO DE APLICACIONES WEB Tecnologías de desarrollo de aplicaciones web • Introducción • Arquitecturas de aplicaciones web • Tecnologías del cliente • Tecnologías del servidor • Bases de datos • Sistemas gestores de contenido Tema 2 - Tecnologías de desarrollo de aplicaciones web 63
  • 64. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Bases de datos • Las bases de datos más populares para el desarrollo de aplicaciones web han sido las bases de datos relacionales • Existen muchas bases de datos relacionales (comerciales y software libre): MySQL, Derby, Oracle, MS SQL Server, PostgreSQL Tema 2 - Tecnologías de desarrollo de aplicaciones web 64
  • 65. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Bases de datos • MySQL        http://www.mysql.org/ Sistema gestor de base de datos multiplataforma Desarrollado en C Licencia código abierto GPL Soporte de un subconjunto de SQL 99 Herramienta interactiva para hacer consultas y crear bases de datos Muy popular en el desarrollo web Tema 2 - Tecnologías de desarrollo de aplicaciones web 65
  • 66. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Bases de datos • Como las aplicaciones web tienen muchas necesidades de escalabilidad y tolerancia a fallos, hay una nueva familia de bases de datos • Se denominan genéricamente NoSQL, que se puede interpretar como: No SQL o como Not Only SQL • Algunas de las más famosas son: Tema 2 - Tecnologías de desarrollo de aplicaciones web 66
  • 67. DESARROLLO DE APLICACIONES WEB Tecnologías de desarrollo de aplicaciones web • Introducción • Arquitecturas de aplicaciones web • Tecnologías del cliente • Tecnologías del servidor • Bases de datos • Sistemas gestores de contenido Tema 2 - Tecnologías de desarrollo de aplicaciones web 67
  • 68. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Sistemas gestores de contenido • CMS (Content Management System) • Aplicación web genérica que permite la creación y administración de contenidos vía web • El sistema permite manejar de manera independiente el contenido y el diseño, permite el cambio de diseño (con templates o themes) • Los CMSs han evolucionado para convertirse en un nuevo modelo de desarrollo de aplicaciones web configurando y adaptando módulos con un interfaz web Tema 2 - Tecnologías de desarrollo de aplicaciones web 68
  • 69. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Sistemas gestores de contenido • Existen multitud de CMSs con enfoques y objetivos diferentes • Ejemplos: Drupal (PHP), Joomla (PHP), Wordpress (PHP), Plone (JavaSript), Moodle (PHP), Liferay (Java) http://en.wikipedia.org/wiki/List_of_content_management_systems Tema 2 - Tecnologías de desarrollo de aplicaciones web 69
  • 70. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB Sistemas gestores de contenido • Joomla: Principal ventaja es permitir editar el contenido de un sitio web de manera sencilla. • WordPress: Es un sistema de gestión de contenido enfocado a la creación de blogs Tema 7 - Sistemas de gestión de contenidos 70
  • 71. SISTEMAS GESTORES DE CONTENIDOS Drupal • Drupal fue originalmente creado por Dries Buytaert • Comenzó como Sistema de tablón de anuncios • Código libre con licencia GPL/GNU • Escrito en PHP • Modular y muy configurable • Desarrollado y mantenido por una activa comunidad de usuarios • www.drupal.org Tema 7 - Sistemas de gestión de contenidos 71
  • 72. SISTEMAS GESTORES DE CONTENIDOS Drupal • Código abierto: El código fuente de Drupal está libremente disponible bajo los términos de la licencia GNU/GPL. • Módulos: La comunidad de Drupal ha contribuido con infinidad de módulos que proporcionan diversas funcionalidades. • Objetos de Contenido (Nodos): El contenido creado en Drupal es, funcionalmente, un objeto (Nodo). • Plataforma Independiente de la base de datos: Aunque la mayor parte de las instalaciones de Drupal utilizan MySQL. Tema 7 - Sistemas de gestión de contenidos 72
  • 73. SISTEMAS GESTORES DE CONTENIDOS Drupal • Multiplataforma: Drupal ha sido diseñado desde el principio para ser multi-plataforma • Múltiples idiomas y Localización: Drupal está pensado para una audiencia internacional y proporciona opciones para crear un portal multilingüe • Administración y Análisis Administración via Web: La administración y configuración del sistema se puede realizar enteramente con un navegador Tema 7 - Sistemas de gestión de contenidos 73
  • 74. SISTEMAS GESTORES DE CONTENIDOS Drupal Tema 7 - Sistemas de gestión de contenidos 74
  • 75. SISTEMAS GESTORES DE CONTENIDOS Drupal Tema 7 - Sistemas de gestión de contenidos 75