Want to create interactive content? It’s easy in Genially!
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
- El usuario teclea una dirección web en el navegador, por ejemplo, https://www.sede.fnmt.gob.es/.
- Se traduce el dominio DNS a la IP correspondiente.
- Se busca en el servidor web la IP de la página solicitada por el puerto TCP 443.
- Antes de transferir la información al navegador del cliente, se negocia mediante TLS:
- Se envía el certificado al cliente.
- El cliente debe aceptar este certificado.
- Una vez aceptado, se usará un canal cifrado con la información.
- 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.