Evolución de la web e Internet
Perspectiva histórica y el éxito de las aplicaciones web
Desde el acceso a internet del usuario medio, diferentes servicios se han ido popularizando gracias a esta interconexión, siendo para este usuario de a pie, dos de ellos, los más relevantes: el correo electrónico y la web.
Podemos decir que la web es exitosa gracias a su fácil usabilidad para usuarios sin demasiados conocimientos informáticos, ya que las webs se generan enfocadas a estos usuarios, que sólo tendrán que dejarse llevar por menús, vídeos o hipervínculos. Además, debemos recordar que todo esto es posible desde un único programa que hace las veces de visor de estas páginas: el navegador web.
Desde los últimos 10-15 años, podemos decir que las páginas web han disfrutado de una evolución activa, ya que han pasado de mostrar contenidos estáticos, a interactuar con el usuario: desde cuentas de usuario únicas, hasta software integrado que permite escribir documentos como este.
Esto también ha sido posible gracias al avance del software, y sobre todo del hardware del usuario medio, cuyo precio y características han ido bajando y subiendo respectivamente con los años, dando paso a navegadores cada vez más potentes.
Historia de la web
La historia de las páginas web que conocemos hoy en día comienza en 1989 con la creación del hipertexto web. Desde entonces se suceden diferentes navegadores de texto, web, lenguajes y estándares. Más tarde, en el año 1994, se crea el W3C, consorcio web mundial, que será el encargado de estandarizar asuntos web, principalmente el HTML.
Destaca en 1995 la implementación de la tecnología CGI, capaz de enlazar páginas web con lenguajes de programación, que permitirá la aparición de páginas web con muchas más capacidades, también la aparición del lenguaje JavaScript, un lenguaje ligero pero potente, que ayudará enormemente al desarrollo web futuro.
En 1999 obtenemos dos nuevos lenguajes: JSP, capaz de sostener páginas de servidor en Java, y AJAX, capaz de generar código HTML basado en peticiones web arbitrarias del usuario.
También se crean diferentes sistemas gestores de contenidos web, destacando Drupal en 2001, WordPress en 2003 y Joomla en 2005.
En 2006 destaca el comienzo de uso de librerías para diferentes lenguajes, es decir: pequeñas partes del código ya creado, como algunas funciones o herramientas comunes, para facilitar y agilizar el desarrollo de un programa o aplicación. Algunas de las más conocidas con jQuery, NodeJS o AngularJS.
HTML ha ido experimentando diferentes versiones, incluyendo una mixta basada en XML, hasta llegar a la actual: HTML 5, lanzada en octubre de 2014.
En los últimos quince años, se han popularizado diferentes servicios para usuarios a través de la web, como lugares donde subir y reproducir vídeos (Youtube, 2005), visionado de fotografías 360º de una calle (Google StreetView, 2007), música en línea (Soundcloud, 2007), o plataformas de visionado de series y películas (Netflix, 2007).
Un nuevo ámbito para todas estas aplicaciones web comienza alrededor del año 2007 con la presentación del iPhone, considerado el primer smartphone, y el sistema operativo de móvil Android, presente en la mayor parte de teléfonos inteligentes del planeta. Desde entonces, todos estos servicios se han ido adaptando a esta pequeña pantalla alcanzando a un mercado mayor de usuarios.
Un evento especialmente destacable para el ámbito estudiantil y de investigación es el campo de la virtualización de sistemas operativos. Aunque este campo se lleva investigando desde los años 60, no ha sido hasta los últimos 5 años aproximadamente cuando esto ha sido aprovechable por el usuario de a pie, ya que el hardware de usuario es cada vez más asequible. Destaca en 2005 la decisión de la empresa VMware, propietaria del software de virtualización más potente del momento, que permitió el uso gratuito de esta para cualquier usuario.
Momento actual
En los últimos años de Internet, se ha potenciado enormemente la creación de tiendas online donde realizar compras de manera cada vez más sencilla. También encontramos cada vez más presentes los asistentes virtuales, mayormente a través de la voz, ya sea desde el móvil o desde altavoces con micrófono colocados en los hogares. Estos hacen uso de conexiones API para ofrecer diferentes servicios de diferentes proveedores, como información meteorológica, servicios musicales en streaming, o realizan de disparadores para elementos de domótica conectados a la red.
La implementación de las inteligencias artificiales también está a la orden del día, usadas mayormente para obtener una mayor personalización de los servicios de cara al usuario, proporcionándole una experiencia más fiel a su enfoque; y presentes en la toma de decisiones en modelos de conducción autónoma.
Por último, cabe destacar la implementación de la conectividad 5G a nivel de usuario, ya presente en las principales operadoras móviles del país.
Aplicaciones Web
Qué es una aplicación Web
Las aplicaciones web surgen en contraposición a las aplicaciones clásicas de escritorio, que están diseñadas específicamente en función de varios factores, tanto hardware (arquitectura del procesador de 32 o 64 bits), tanto software (tipos y versión de sistema operativo).
En contraposición, las aplicaciones web son capaces de ejecutarse en un navegador, indistintamente del equipo desde el que se ejecute, y sólo necesitará un navegador en dicho SO. Estas no son simples páginas web estáticas, sino que son un conjunto de páginas almacenadas en un servidor web que interactúan entre ellas, con conexión a una base de datos que almacene las acciones y datos del usuario, desarrolladas con la conexión a lenguajes de programación para llevar a cabo sus tareas.
Gracias a las aplicaciones Web, se solventan algunas desventajas intrínsecas de las aplicaciones de escritorio, como la posible duplicidad o falta de integridad de datos en la conexión entre la aplicación y su servidor de internet; la falta de portabilidad de la aplicación a diferentes sistemas operativos; la administración de la seguridad.
Ventajas de las aplicaciones Web
En recopilación de el punto anterior, destacamos:
- su compatibilidad entre plataformas, dispositivos y arquitecturas,
- requerimientos bajos del cliente,
- facilidad en su mantenimiento y actualización,
- datos centralizados,
- capaz de aprovechar el sistema operativo del SO (no hay instalación).
Desventajas de las aplicaciones Web
Se deben tener en cuenta algunas desventajas de las aplicaciones web:
- la potencia de sus capacidades puede ser reducida,
- requerimiento de conexión a internet estable,
- dependencia de grandes empresas de alojamiento web en algunos casos.
Diferentes versiones de la Web
La Web 1.0
Esta generación se refiere a aquellas páginas web estáticas, es decir, no ofrecen interacción con el usuario, y simplemente se muestran archivos HTML a los usuarios. Útiles para servicios básicos como ofrecer información de texto, o contenido de audio/vídeo.
La Web 2.0
Aplicaciones ricas de Internet (RIA)
Llamamos aplicaciones ricas de Internet a aquellas que el usuario no puede distinguir de una aplicación de escritorio que ya conoce, ya que le ofrece las mismas características, funcionalidades y la misma usabilidad. Un buen ejemplo de ello es el servicio Office 365 de Microsoft, que es capaz de ofrecer las mismas aplicaciones clásicas de procesamiento de texto, hojas de cálculo, presentaciones, etcétera, simplemente a través de una página web, evitando al usuario una tediosa descarga, y el consiguiente ahorro de almacenamiento en el disco del usuario.
Arquitectura orientada al servicio (SOA)
Cuando tenemos varias aplicaciones web capaces de realizar una tarea de manera funcional, es posible organizar e integrar varias de ellas para obtener una estructura capaz de ofrecer un servicio completo para un usuario.
La Web social
En este caso, el foco de las Webs 2.0 es el usuario: la aplicación rica ofrece al usuario contenido generado por otros usuarios, y éste usuario podrá crear sus propios contenidos.
La Web 3.0
Cuando una serie de páginas y servicios web son capaces de aprender del comportamiento del usuario, generando posibles averiguaciones y predicciones sobre sus gustos e intereses mediante algoritmos y aprendizajes automáticos, podemos decir que estamos en la Web 3.0. El uso de esta inteligencia es claro: poder obtener más del usuario, ya sean pedidos en una tienda online, o horas de visualización de contenido en redes sociales.
Funcionamiento de una aplicación Web
Funcionamiento en el lado del cliente
Las páginas web se ayudan de varios lenguajes para su funcionamiento, entre ellas: HTML, que define lo que hay en la página, CSS, que define cómo se ve la página, y JavaScript. Anteriormente se hacía también uso de la tecnología Flash, ya desechada por sus puntos vulnerables de seguridad.
Es importante que nuestros navegadores web se mantengan actualizados para que la implementación de los distintos lenguajes en las páginas web que visitamos estén a la orden del día.
Funcionamiento en el lado del servidor
Sin embargo, en muchas páginas web, se desarrolla el funcionamiento de estas en el lado del servidor, con el fin de liberar la carga de trabajo al cliente final, entre otros, usando principalmente lenguajes como Perl, Python, JavaScript del lado del servidor, PHP, ASP y JSP.
El fundamento de la tecnología web actual es enfocar las páginas web a clientes ligeros, desarrollando la mayoría de la carga de trabajo en el lado servidor. Para ello, deberemos desglosar este “lado servidor” en función de las distintas aplicaciones. Así, nos encontramos que realmente existe un servidor web, cuyo único objetivo es comunicarse con el navegador; también puede haber un servidor PHP, que ejecute las partes de las páginas que contengan código PHP; habrá otro servidor de base de datos, donde residirá la información de la que se nutra la aplicación web, etcétera.
Creación de aplicaciones Web
Servidores Web
Para empezar con nuestra aplicación web, necesitaremos un servidor web que se comunique con nuestro cliente final. Éste deberá ofrecerle las páginas, resolviendo peticiones tanto de HTTP como de HTTPS, de conexión cifrada. Este servidor deberá estar correctamente configurado para ser accesible desde internet.
El software de servidor web más extendido es Apache, muy popular en servidores de la familia GNU/Linux, aunque existen otras soluciones como IIS, predeterminada para servidores Microsoft Windows.
Servidores de aplicaciones Web
Cuando se trata de alojar aplicaciones web, necesitaremos añadir módulos de código, en función de los lenguajes usados en nuestra web, que son capaces de ejecutarse.
Arquitectura de tres niveles
En recopilación con lo que hemos ido viendo hasta ahora en este tema, llegamos a la conclusión de que nuestros sistemas viven en una arquitectura de tres niveles, en la que conviven:
- clientes, o capa de presentación, que solicitan recursos a través de una interfaz web de usuario,
- servidores de aplicaciones, o capa lógica, que proporcionan la potencia para proveer al usuario de los recursos solicitados, y,
- servidores de datos, o capa de negocio, que proporciona la información que el servidor de aplicaciones debe convertir a la presentación al usuario.
Lenguajes de programación para AW en el servidor
Los leguajes más extendidos en la programación de aplicaciones web son Perl (dedicada al manejo de datos), Python (lenguaje potente de fácil uso para programadores principiantes), Java (lenguaje potente, aunque estricto)
Lenguajes de script de servidor
Plataformas de servicios Web empresariales
Actualmente, unas pocas plataformas se reparten la gran mayoría de usuarios, siendo las más mayoritarias Amazon Web Services (AWS) y Microsoft Azure. Otras competidoras son Google Cloud, Alibaba Cloud, Oracle Cloud e IBM Cloud.
Aplicaciones Web y aplicaciones móviles
Una página o aplicación web actual debe ser creada con un diseño responsivo, que permita su uso desde pantallas de todos los tamaños, y con formas de entrada distintas, ya sea ratón o uso de paneles táctiles.
En resumen…
¿Qué es una aplicación Web?
Las aplicaciones web son capaces de ejecutarse en un navegador, indistintamente del equipo desde el que se ejecute, y sólo necesitará un navegador en dicho SO. Estas no son simples páginas web estáticas, sino que son un conjunto de páginas almacenadas en un servidor web que interactúan entre ellas, con conexión a una base de datos que almacene las acciones y datos del usuario, desarrolladas con la conexión a lenguajes de programación para llevar a cabo sus tareas.
¿Cómo funciona una aplicación Web?
El fundamento de la tecnología web actual es enfocar las páginas web a clientes ligeros, desarrollando la mayoría de la carga de trabajo en el lado servidor. Para ello, deberemos desglosar este “lado servidor” en función de las distintas aplicaciones. Así, nos encontramos que realmente existe un servidor web, cuyo único objetivo es comunicarse con el navegador; también puede haber un servidor PHP, que ejecute las partes de las páginas que contengan código PHP; habrá otro servidor de base de datos, donde residirá la información de la que se nutra la aplicación web, etcétera.
¿Qué tecnologías web se utilizan en el lado del cliente?
Las páginas web se ayudan de varios lenguajes para su funcionamiento, entre ellas: HTML, que define lo que hay en la página, CSS, que define cómo se ve la página, y JavaScript. Anteriormente se hacía también uso de la tecnología Flash, ya desechada por sus puntos vulnerables de seguridad. Es importante que nuestros navegadores web se mantengan actualizados para que la implementación de los distintos lenguajes en las páginas web que visitamos estén a la orden del día.
¿Qué tecnologías web se utilizan en el lado del servidor?
En las páginas web dinámicas se desarrolla el funcionamiento de estas en el lado del servidor, con el fin de liberar la carga de trabajo al cliente final, entre otros, usando principalmente lenguajes como Perl, Python, JavaScript del lado del servidor, PHP, ASP y JSP. El fundamento de la tecnología web actual es enfocar las páginas web a clientes ligeros, desarrollando la mayoría de la carga de trabajo en el lado servido.
¿Qué plataformas de desarrollo existen?
Existen múltiples clientes de desarrollo web, tanto de código abierto como propietarios, enfocados al desarrollo en unas u otras plataformas, siendo los más conocidos y usados Eclipse, VisualStudio y Netbeans, además de Xcode para plataformas Apple.
Busca fragmentos de código de cada uno de los lenguajes.
HTML: <!DOCTYPE html><html><head><title>Page Title</title></head><body><h1>This is a Heading</h1><p>This is a paragraph.</p></body></html>
CSS: body { background-color: lightblue;} h1 { color: white; text-align: center;} p { font-family: verdana; font-size: 20px;}
JavaScript: document.getElementById(‘demo’).innerHTML = Date()
Python: thislist = [«apple», «banana», «cherry»] for x in thislist: print(x)
Java: public class MyClass { public static void main(String[] args) { System.out.println(«Hello World»); }}
C++: int main() { cout << «Hello World!»; return 0;}
PHP: $t = date(«H»); if ($t < «20») { echo «Have a good day!»;}
¿Qué plataformas de desarrollo existen?
Existen múltiples clientes de desarrollo web, tanto de código abierto como propietarios, enfocados al desarrollo en unas u otras plataformas, siendo los más conocidos y usados Eclipse, VisualStudio y Netbeans, además de Xcode para plataformas Apple.
Investiga sobre servidores web, servidores de aplicaciones y bases de datos.
Nuestros sistemas viven en una arquitectura de tres niveles, en la que conviven clientes, o capa de presentación, que solicitan recursos a través de una interfaz web de usuario; servidores de aplicaciones, o capa lógica, que proporcionan la potencia para proveer al usuario de los recursos solicitados; y servidores de datos, o capa de negocio, que proporciona la información que el servidor de aplicaciones debe convertir a la presentación al usuario.
Compara alternativas en la elección de servidores web.
Si hablamos de programas servidor de páginas web, Apache es el rey por ser el más utilizado alrededor del mundo, aunque existen otras soluciones como Nginx, IIS (propietario de Microsoft) o lightppd, un cliente ligero abierto del mundo Linux.
¿Qué tipos de Sistemas Gestores de Bases de Datos hay?
Según su manera de organizar los datos encontramos sistemas relacionales (es decir, en base a tablas con filas y columnas), jerárquicas (en la que todos los elementos dependen de otro anterior, salvo el primigenio) y orientados a objetos (en los que se introduce el concepto de herencia, es decir, determinados objetos pueden recibir atributos de otros objetos).