Want to create interactive content? It’s easy in Genially!

Get started free

TEMA 1 - Implantación de arquitecturas web

Elena Rivero Gil

Created on September 19, 2021

Start designing with a free template

Discover more than 1500 professional designs like these:

Transcript

Implantación de arquitecturas Web

Tema 1

Introducción

Arquitecturas web

Evolución de la tecnología web

Tecnologías usadas en aplicaciones web

Servidores y aplicaciones libres y propietarias

Protocolo HTTP vs HTTPS

Índice

Servidores de aplicaciones actuales

Introducción

  • La arquitectura web es la que define cómo se va a jerarquizar la información dentro de un sitio web de forma racional y lógica.
  • En el mercado actual existen una serie de tecnologías que permiten desarrollar tanto a nivel de cliente como de servidor, la elección va a depender de la dimensión y el coste del proyecto.
  • Su objetivo es la agrupación visual de información en un sitio web, que permitirá el acceso intuitivo y la navegabilidad de cara a la empresa.

Arquitecturas web

Actualmente, para que una aplicación funcione correctamente tiene tres elementos principales que permiten la conexión y el acceso a datos por parte de cualquier petición de un cliente.

Servidor web

Cliente web

Base de datos

  • Cerebro de la arquitectura.
  • Está escuchando las peticiones HTTP desde el navegador.
  • Realiza consultas a la base de datos para responder a las peticiones
  • Conjunto de datos organizados jerárquicamente al servicio del servidor web.
  • Es el que realiza las peticiones al servidor web mediante un navegador y desde un sistema operativo concreto que es independiente de la arquitectura.

+info

Evolución de la tecnología web

Desde que comenzó la era de la informática, la tecnología ha ido evolucionando de forma exponencial hasta nuestros días. En el caso de la web también se observa dicha evolución, puesto que está estrechamente ligada a la tecnología de Internet.Algunos de los componentes de la web que han ido evolucionando son:

Ancho de banda

Información

Tecnología

Infraestructuras

Almacenamiento

Computación

Web 1.0

Páginas web estáticas

  • A principios de los tiempos de la informática, el contenido de la web era estático y no existían protocolos de seguridad que permitieran la fiabilidad de las conexiones.
  • En esta primera fase, no existía interacción con el usuario.
  • Las páginas web estaban implementadas en HTML.
  • En 1991, Tim Berners-Lee fue el creador de la primera página web.
  • Los usuarios sólo podían interactuar mediante email, foros y chats.

+info

Web 1.5

Interacción con bases de datos

  • Los desarrolladores de todo el mundo empezaron a investigar sobre la posibilidad de ampliar esta primera página web e incluir más funcionalidades.
  • Se crearon las primeras aplicaciones web dinámicas que interactuaban con bases de datos.

+info

Web 2.0

Web social

  • La verdadera evolución vino con la Web 2.0 o web social.
  • Se pasó a la interacción total con el usuario y un componente activo en el modelo web.
  • Algunos de los ítems importantes fueron:
    • Hojas de estilo CSS.
    • Uso de JSON.
    • Desarrollo en Ajax.
    • Soporte para los blogs.
    • Comienzo de las redes sociales.
    • Control total de los usuarios en el manejo de información

Web 3.0

Web semántica

  • El siguiente avance significativo fue la aparición de la Web 3.0 ó data web, también llamada web semántica.
  • Este gran salto supuso un avance tecnológico hacia la inteligencia artificial.
  • Algunos de los grandes avances son:
    • Diseño responsive.
    • Web multimedia.
    • Aplicaciones inteligentes.
    • Web semántica más inteligencia artificial.
    • Impulso a la Web 3D.
    • Participación más activa en la red.
    • CSS3.

Tecnologías usadas en aplicaciones web

Actualmente, la mayoría de las aplicaciones web del mercado usan páginas dinámicas, que se ejecutan en el servidor y se visualizan en el cliente (navegador).Se va a diferenciar el código que se ejecuta en estos dos nodos:

Servidor

Cliente

Ambos

En el lado servidor

ASP.NET

(Active Server Pages)

Ruby

PHP

Javascript

CGI

Java

Perl

Python

(Common Gateway Interface)

En el lado cliente

Javascript

HTML

VBScript

CSS

En ambos

XML

DHTML

Servidores y aplicaciones libres y propietarias

Antes de ver las principales plataformas libres y propietarias que existen, vamos a definir los componentes que forman la arquitectura web:

Servidor web

Lenguaje de programación

Bases de datos

Sistema operativo

  • Es el servicio que va a atender las peticiones de los clientes y les va a responder lo más pronto posible.
  • Existen dos tipos de páginas: estáticas y dinámicas.
  • Es fundamental.
  • Es el software base sobre el cual se sustentan los demás componentes.
  • Los principales son Windows, Unix y Mac.
  • Se encarga de la lógica de la aplicación.
  • Tiene como función recibir las peticiones de los clientes, consultar la información en la base de datos y responder a las peticiones.
  • Es la principal fuente de información de la que se nutre el servidor web para mostrar al cliente la información que solicita.
  • Este componente es básico.
  • Existen dos grandes grupos: SQL y NoSQL.

Plataformas libres y propietarias

Teniendo en cuenta los cuatro componentes anteriores, existen dos plataformas clave para trabajar en el desarrollo de una aplicación:

LAMP

WISA

  • Es de software propietario e incluye los cuatro componentes anteriores.
  • Las iniciales significan:
    • Windows: sistema operativo.
    • IIS (Internet Information Services): servidor web.
    • SQL: base de datos.
    • ASP: lenguaje de script en el servidor.
  • Es de software libre e incluye los cuatro componentes anteriores.
  • Las iniciales significan:
    • Linux: sistema operativo.
    • Apache: servidor web.
    • MySQL: base de datos.
    • PHP: lenguaje de programación. También se pueden usar otros como Python.

+info

+info

Plataformas adicionales

Además de las plataformas nombradas anteriormente, es importante mencionar también otras plataformas muy usadas tanto en educación como en las empresas de programación de aplicaciones web:

XAMP

Scotch Box

  • Distribución de Apache sin coste, multiplataforma y muy fácil de instalar.
  • Las iniciales significan:
    • X: cualquier sistema operativo.
    • Apache: servidor web.
    • MariaDB/MySQL: base de datos.
    • Perl, PHP: lenguaje de código abierto del servidor.
  • Distribución de LAMP, multiplataforma, muy fácil de instalar.
  • Tiene los siguientes componentes:
    • Ubuntu 17.10.
    • PHP 7.2.
    • Apache 2.4.29.
    • Nginx 1.13.8.
    • RVM 2.5.0.
    • NVM 8.94.

+info

+info

Protocolo HTTP vs HTTPS

El protocolo por antonomasia es HTTP y su variante segura es el HTTPS.

HTTPS

HTTP

  • Protocolo de la capa de aplicación.
  • Escucha por el puerto 443.
  • Se basa en el modelo cliente-servidor, pero en modo seguro.
  • Se basa en TCP, es orientado a conexión y cifra los datos para asegurar una transmisión segura entre los dos extremos.
  • Para realizar este cifrado necesita de certificados.
  • Se pierde tiempo de computación al cifrar la información en servidor y descifrarla en el cliente.
  • Protocolo de la capa de aplicación.
  • Escucha por el puerto 80.
  • Está basado en el modelo cliente-servidor.
  • Se basa en TCP, es orientado a conexión y escucha las peticiones de los clientes.
  • Una vez aceptada la conexión, se encarga de mantenerla y garantizar la transferencia de datos sin errores.

Certificados digitales

  • Cual servidor web medio serio posee la acción de emitir certificados. Como, por ejemplo, Apache.
  • Los navegadores deben validar dichos certificados a partir de entidades certificadoras, como la FNMT.
  • El protocolo HTTPS usa la encriptación SSL (Secure Socket Layer) que cifra datos sensibles (actualmente se le llama TLS).
  • Un certificado SSL o TLS se instala en el servidor.
  • La indicación de que es seguro es porque a http le sigue una s y se transforma en https://.

Funcionamiento del HTTPS

  1. El usuario teclea una dirección web en el navegador, por ejemplo, https://www.sede.fnmt.gob.es/.
  2. Se traduce el dominio DNS a la IP correspondiente.
  3. Se busca en el servidor web la IP de la página solicitada por el puerto TCP 443.
  4. Antes de transferir la información al navegador del cliente, se negocia mediante TLS:
    1. Se envía el certificado al cliente.
    2. El cliente debe aceptar este certificado.
    3. Una vez aceptado, se usará un canal cifrado con la información.
  5. Se realiza la petición HTTP y se envía la respuesta al cliente.

Navega por Internet y teclea una página que posea el protocolo HTTPS. Observa el certificado que posee esa página web, cualquier banco de España puede ser un ejemplo.

Clasificación de servidores de aplicaciones del mercado actual

Actualmente, existen multitud de servidores preparados para ser instalados en cualquier plataforma. A continuación, se muestran algunos de los servidores web más usados, que permiten ejecutar en su entorno diferentes tecnologías:

Mac OS X Server

LiteSpeed

GWS

Apache

Nginx

Sun Java System Web Server

Microsoft IIS

  • Es uno de los servidores más usados en Internet.
  • Su nombre completo es Apache HTTP Server.
  • Su primera versión fue por 1996.
  • Tiene dos grande competidores: Nginx y Microsoft IIS.
  • Ventaja: es código abierto y es multiplataforma.
  • Desventajas: Bajo rendimiento cuando se realizan multitud de peticiones por parte de los clientes.

Apache

Mac OS X Server

  • Es un servidor para Mac que incluye bastantes servicios, como Apache para dar servicio de páginas web.
  • Incluye también:
    • Base de datos Mysql.
    • Servicio NAT,
    • Servidor DHCP.
    • Servidor VPN.
    • PHP.
    • etc.

Nginx

  • Servidor de código abierto y gratuito.
  • Nació en 2004.
  • Es uno de los más usados por las compañías en el mundo.
  • Destaca por su alto renidimiento.
  • Incluye funciones como:
    • Servidor proxy inverso HTTP.
    • Balanceador de carga.
    • POP3 e IMAP.
  • Se puede instalar en Windows, Linux y Unix.
  • Es altamente escalable.
  • Consume muy pocos recursos para resolver las peticiones de los clientes.

LiteSpeed

  • Software que acepta peticiones mediante HTTP enfocado a entornos Linux.
  • Soporta grandes cantidades de conexiones simultáneas.
  • Incluye un sistema de caché para aplicaciones como Magento y Wordpress.
  • Inconveniente: La versión completa es de pago.

Microsoft IIS

  • Es el software de Microsoft conocido por Internet Information Services.
  • Comenzó en Windows NT.
  • Permite el procesamiento de páginas del tipo ASP, ASP.net, PHP o Perl.
  • Está programado en C++.
  • Desventaja: Sólo se puede instalar en Windows, lo que implica una amenaza de seguridad.
  • También posee servicios de FTP y SMTP.

GWS

  • Conocido como Google Web Server.
  • No es público ni se puede descargar desde ninguna URL.
  • Es solo de Google.

Sun Java System Web Server

  • Servidor orientado a la programación en Java con licencia BSD.
  • Incluye soporte para WebDA, JDBC, PHP, ...
  • Es multiplataforma, excepto en Mac.