Desarrollo de aplicaciones web
UT1.2 : Arquitecturas de aplicaciones web
eugeniaperez.es
tema 1: Arquitecturas de apps web
1 Esquema general
eugeniaperez.es
tema 1: Arquitecturas de apps web
eugeniaperez.es
1 Esquema general
En la arquitectura web se distinguen dos lados:
- El cliente, el usuario final utilizando la aplicación por medio de un navegador (como IE, Mozilla Firefox, Google Chrome, Opera o Safari).
- El usuario interactúa con la aplicación localizada en el servidor, donde residen realmente los datos, reglas y lógica de la aplicación.
tema 1: Arquitecturas de apps web
eugeniaperez.es
1 Esquema general
La esencia reside en que:
- El cliente no realiza demasiadas tareas, solo lo necesario.
- En el servidor se realizan las operaciones importantes.
El concepto de aplicación web ha tomado una mayor relevancia con el auge de las redes locales ofreciendo la oportunidad de acceso a través de cualquier cliente que disponga de Internet.
tema 1: Arquitecturas de apps web
eugeniaperez.es
1 Esquema general
Las aplicaciones web puede ser de acceso público:
- Portales de internet
- Tiendas virtuales
O de acceso restringido:
- Intranets
- Extranets
tema 1: Arquitecturas de apps web
eugeniaperez.es
1 Esquema general
Ventajas de las aplicaciones web:
- No requieren de sw especial: solo navegador
- Bajo coste
- Acceso a última versión
- Movilidad
- Independencia
tema 1: Arquitecturas de apps web
eugeniaperez.es
1 Esquema general
Es muy recomendable elaborar la estructura de las secciones que contendrá el sitio.
Un sitio web está formado por
un conjunto de páginas
interrelacionadas entre sí que
contienen subelementos, contenidos
multimedia y herramientas.
tema 1: Arquitecturas de apps web
eugeniaperez.es
1 Esquema general
Las etapas para el diseño conceptual de nuestro sitio web:
- Delimitación del tema y objetivos.
- Recolección de información.
- Agregación y descripción.
- Diseño y estilo gráfico.
- Testeo en el mayor número de plataformas.
Multiplataforma
TDD: primero las pruebas...?¿?¿
tema 1: Arquitecturas de apps web
eugeniaperez.es
1 Esquema general
Es imprescindible proporcionando una buena experiencia de usuario.
tema 1: Arquitecturas de apps web
eugeniaperez.es
2 Arquitectura en capas
tema 1: Arquitecturas de apps web
eugeniaperez.es
2 Arquitectura en capas
Una aplicación web, desde el punto de vista del funcionamiento, se puede ver como dos partes interactuando.
Si vamos más al detalle, la parte servidor suele estar, a su vez subdividida en capas.
Una subdivisión bastante clara es la que separa la lógica de negocio de la base de datos: arquitectura de 3 niveles.
tema 1: Arquitecturas de apps web
eugeniaperez.es
2 Arquitectura en capas
Este tipo de arquitectura se compone de:
- Cliente: solicita los recursos, equipado con una interfaz de usuario (navegador web) para la presentación
- El servidor de aplicaciones: proporciona los recursos solicitados, normalmente requiere de otro servidor para hacerlo.
- El servidor de datos, que proporciona al servidor de aplicaciones los datos que éste le solicitó.
tema 1: Arquitecturas de apps web
eugeniaperez.es
2 Arquitectura en capas
La arquitectura en dos niveles es, por tanto, una arquitectura cliente servidor en la que el servidor es polivalente.
Arquitectura de
3 niveles
tema 1: Arquitecturas de apps web
eugeniaperez.es
2 Arquitectura en capas
- Mas flexible y escalable
- Mejor disponibilidad y seguridad
- Mayor rendimiento
Arquitectura de
3 niveles
tema 1: Arquitecturas de apps web
eugeniaperez.es
3 Interación entre el cliente y servidor
tema 1: Arquitecturas de apps web
eugeniaperez.es
3 Interación entre el cliente y servidor
En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Espera y recibe respuestas del servidor. Interactua con usuarios finales.
tema 1: Arquitecturas de apps web
eugeniaperez.es
3 Interación entre el cliente y servidor
Al receptor de la solicitud enviada por el cliente se conoce como servidor. Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente. Suele atender peticiones múltiples.
tema 1: Arquitecturas de apps web
eugeniaperez.es
3 Interación entre el cliente y servidor
El servidor de aplicaciones tras la petición de una página por parte del cliente, dará el resultado al servidor web en un formato asumible por él (normalmente HTML) y éste finalmente continúa el proceso habitual entregando la página al navegador.
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Un navegador web es una aplicación que opera a través de Internet, interpretando la información de archivos y sitios web para que éstos puedan ser leídos a través de cualquier dispositivo con conectividad a Internet.
Estadísticas de uso actuales de navegadores
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Los servidores web se encargan de recibir las peticiones referidas a páginas web a través del protocolo http o https y de devolver el resultado de la petición en un formato legible por el usuario (es decir la traducción de HTML la hace el navegador).
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Un servidor de aplicaciones es el elemento software capaz de traducir las instrucciones y además comunicar con otros servidores (como por ejemplo los servidores de bases de datos) para extraer información de la empresa que se necesita para resolver la petición.
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Un servidor de bases de datos, también conocido con el nombre de SGBDR, es un software que permite organizar datos en una o más tablas relacionadas entre sí por uno o varios campos clave.
Surgen en la década de los 80 como respuesta a las necesidades de usar grandes y complejos paquetes de datos al mismo tiempo que compartir los datos almacenados en el servidor con todos los clientes (tanto aplicaciones como usuarios), de forma segura.
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Normalmente las bases de datos se encuentran localizadas en un servidor y se puede acceder a este mediante consultas (cliente).
Mantenimiento físico
de los datos y de
su integridad...
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Arquitectura de capas con separación de presentación, lógica y de negocio:
Text
PATRÓN MVC
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Tecnologías de desarrollo en el entorno cliente:
- HTML
- CSS (Bootstrap)
- JavaScript (jQuery, AngularJS, Require.js)
- AJAX (Asynchronous JavaScript And XML)
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Comunicación entre entorno cliente y servidor:
- Formato JSON/XML.
- Las páginas se pueden retornar en HTML.
- Se "renderizan" las plantillas propias del framework.
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Tecnologías de desarrollo en el entorno servidor:
- PHP (Symfony2, Laravel, CodeIgniter, Zend)
- Java / J2EE (Spring, JSF, Struts2)
- .NET (ASP .NET MVC)
- Ruby (ROR)
- Python (Django)
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Plataformas de desarrollo:
- J2EE (Java 2 Enterprise Edition). creación de aplicaciones avanzadas en Java para para entornos profesionales. Está formada fundamentalmente por el lenguaje Java, EJB, servlets y JSP.
- .NET es una plataforma de Microsoft para desarrollo de lenguajes propios como C#, C++, C, VB .NET, etc.
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de aplicaciones más comunmente utilizados:
- Apache: es el servidor web más popular de la actualidad. Abarca el 65 % de todos los servidores web instalados. Se trata de un software de código abierto.
- Se puede distribuir libremente e incluso modificar el código siempre y cuando el resultado mantenga la licencia original.
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de aplicaciones más comunmente utilizados:
-
Apache: dispone de multitud de módulos que lo convierten en un servidor capaz de gestionar todo tipo de aplicaciones:
- Implementar SSL. Protocolo de seguridad en la transferencia de información
- Enlace con el servidor Tomcat de aplicaciones, para implementar aplicaciones Java de servidor.
- Módulo para Perl, PHP, Python, etc.
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de aplicaciones más comunmente utilizados:
-
IIS:
- Abreviatura de Internet Information Server, es el servidor de aplicaciones de Microsoft que está presente en las versiones profesionales de Windows y en todas las de servidor.
- Basta con agregarle como componente del sistema en la zona de instalación de aplicaciones del panel de control de Windows
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de aplicaciones más comunmente utilizados:
-
IIS:
- Sólo funciona bajo Windows.
-
Además se comporta como servidor de aplicaciones web .NET y admite extensiones para otros múltiples lenguajes: por ejemplo, PHP.
Es el segundo servidor web más popular tras Apache (su cuota de uso es del 17%).
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de aplicaciones más comunmente utilizados:
-
Nginx: servidor web cada vez más popular. Muy ligero y presume de su alta velocidad especialmente con un número muy alto de sesiones concurrentes.
- Tiene licencia que permite su distribución y modificación.
-
Ha subido enormemente su uso estando cerca de alcanzar a IIS con su 13% de mercado.
-
Numerosas funcionalidades, entre ellas la capacidad de servir PHP, Ruby on Rails, Java,…
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de aplicaciones más comunmente utilizados:
- Apache Tomcat: Creado por la fundación Apache es un servidor web escrito en Java capaz de interpretar servlets y páginas JSP escritas en Java, por lo que es un servidor de aplicaciones web especialmente pensado para servir Java J2EE, la plataforma de Java para crear aplicaciones.
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de aplicaciones más comunmente utilizados:
- JBoss es un servidor de aplicaciones Java EE, de código abierto implementado en Java puro.
- Puede ser utilizado en cualquier SO para el que esté disponible la máquina virtual de Java e implementa todo el paquete de servicios J2EE.
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de aplicaciones más comunmente utilizados:
- GlassFish es un servidor de aplicaciones de software libre desarrollado por Sun MicroSystems, compañía adquirida por Oracle Corporation, que implementa las tecnologías definidas en la plataforma Java EE y permite ejecutar aplicaciones que siguen esta especificación.
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de bases de datos:
- MySQLServer: SGBDR que además soporta programación multihilo y multiusuario. Desarrollado por Sun MicroSystem como software libre bajo licencia GPL.
- Es multiplataforma.
- Es el servidor conmunmente utilizado para aplicaciones web, en concreto, las desarrolladas mediante PHP típicas como casi todas las de CMS (Wordpress, Drupal, Joomla).
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de bases de datos:
- SQL Server: SGBDR desarrollado por Microsoft. Se basa en lenguajes de consulta del ANSI SQL. Esta es la respuesta de Microsoft a dos grandes fabricantes, como son Oracle y MySQL. También suele ser uno de los grandes utilizados para desarrollo de aplicaciones web bajo la plataforma .NET.
- Como desventaja principal, SQL Server requiere de un SO de la familia Microsoft Windows
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de bases de datos:
- Oracle: SGBD basado en el modelo objeto-relacional y desarrollado por Oracle Corporation a finales de la década de los 70. Es considerado como el SGBD más completo del mercado actual, dando soporte a: transacciones, estabilidad, escalabilidad y multiplataforma.
- Al igual que SQL Server ofrece ediciones Express Edition (siendo gratuitas pero también con limitaciones).
tema 1: Arquitecturas de apps web
eugeniaperez.es
4 Aplicaciones web
Servidores de bases de datos:
- PostgreSQL: PostgreSQL es un DBMS relacional que muchos desarrolladores de aplicaciones web prefieren como el componente de gestión de datos back-end. Se utiliza principalmente por muchas organizaciones distinguidas utilizándolo para aplicaciones de misión crítica o de amplio alcance.
tema 1: Arquitecturas de apps web
eugeniaperez.es
Bibliografía y referencias
- HTTP Apache Server Project: http://httpd.apache.org/
- Apache Friends XAMPP: http://www.apachefriends.org/es/xampp.html
- Apache Software Foundation (based on Wikipedia): http://en.wikipedia.org/wiki/Apache_Software_Foundation
- Brief summary of Web Development concept: http://en.wikipedia.org/wiki/Web_development
- Quick and handy guide: MySQL Crash Course by Ben Forta
- PHP Cookbook: Solutions and Examples for PHP Programmer [O’REILLY]
tema 1: Arquitecturas de apps web
eugeniaperez.es
ACTIVIDADES TEMA 1
Copy of UT1.A
By eugenia_perez
Copy of UT1.A
- 955