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

tema 1: Arquitecturas de apps web

 

eugeniaperez.es

ACTIVIDADES TEMA 1

Made with Slides.com