- 1 Arquitectura básica de una aplicación web
- 2 Tecnologías del lado del cliente o del lado del servidor
- 3 Arquitecturas web de contenido estático o dinámico
- 4 Tecnologías estándar del lado cliente
- 5 Tecnologías no estándar para desarrollo web
- 6 Tecnologías de servidor
- 7 Bases de datos
Arquitectura básica de una aplicación web
Para que un sitio o aplicación web funcione mostrándose al público es necesaria una arquitectura que disponga como mínimo los siguientes elementos:
El navegador: Representa el concepto de cliente realizando peticiones solicitando recursos a diferentes servidores web a través de URL.
El Servidor: Almacena de forma organizada la estructura de la información del sitio web para servir los contenidos en relación a las peticiones del navegador.
El protocolo http: Es el protocolo basado en TCP/IP a través del cual el navegador realiza peticiones al servidor para que este responda.
HTML: Es el formato básico de los documentos que componen las páginas web, está basado en etiquetas y sirve para estructurar la forma de mostrar los contenidos de las páginas.
CSS: Las hojas de estilo en cascada sirven para favorecer estéticamente los elementos y contenidos estructurados a través de las etiquetas HTML,
Tecnologías del lado del cliente o del lado del servidor
Además de reunir los requisitos anteriores básicos para funcionar, un sitio o aplicación web puede crearse utilizando diferentes tecnologías que se dividen en dos grandes categorías:
Tecnologías de cliente: Son aquellas que permiten crear interfaces de usuario y establecer comunicación con el servidor basadas en HTML, CSS y JavaScript, en este caso, el navegador actúa como intérprete.
Tecnologías de servidor: Permiten implementar comportamientos de la aplicación web en el servidor, los lenguajes de programación más utilizados son Java EE, .NET, PHP, Ruby on Rails, Python, Django, Groovy, Node.js, etc…
Arquitecturas web de contenido estático o dinámico
Se dice que el contenido que muestra una determinada página o sitio web al completo es contenido estático cuando no permite la interacción del usuario de ninguna forma, por el contrario las páginas que invitan a interactuar con el visitante a través de diferentes elementos como formularios, botones, mapas, etc… ofrecen contenido dinámico.
Cliente estático y servidor estático: En este modelo el navegador hace una petición al servidor mediante el protocolo http, el servidor transforma la URL a ruta de disco y devuelve el fichero al navegador que lo dibuja o renderiza mostrando la estructura de la página en HTML y su contenido como fotos y vídeos, también la estética de su diseño gracias a los estilos CSS.
En este caso no existe ningún tipo de interacción utilizando JavaScript, el servidor devuelve siempre los mismos recursos, así que desde este punto de vista la web es estática.
Tecnologías estándar del lado cliente
El W3C (World Wide Web Consortium) es una comunidad internacional que desarrolla estándares abiertos que aseguran el crecimiento de la web a largo plazo, tales como HTML5&CSS, Scripting and AJAX, normas de accesibilidad, gráficos, audio y vídeo, web semántica, XML y muchos más.
HTML: (Hypertext Markup Languaje) proporciona la información estructurada en secciones, párrafos, título, imágenes, etc… la versión actual el HTML5, y ofrece muchas librerías avanzadas para la inserción de contenidos multimedia, canvas, comunicaciones y concurrencia.
CSS: (Cascading Style Sheets) se encarga de la distribución de los elementos y su estilo con colores, tipos de letra, fondos, efectos, etc…en documentos HTML, XML, SVG o incluso interfaces de usuario de otras tecnologías.
Scripting: Gracias al scripting las páginas pueden programarse con distintos lenguajes de script, aunque principalmente se utiliza JavaScript, que modifica la página gracias a su capacidad de ejecutar código cuando se interactúa con ella.
JavaScript inicialmente era un lenguaje interpretado pero actualmente también se ejecuta con máquinas virtuales en los navegadores aumentando la velocidad de ejecución y eficiencia de memoria. Es de tipado dinámico y funcionalmente orientado a objetos (basado en prototipos).
Existen multitud de bibliotecas (APIS) para el desarrollo web y de aplicaciones, pero las más utilizadas son JQuery y Underscore.js.
DOM: Es el modelo de objetos del documento (Document Object Model) y consta de una librería (API) para manipular el documento HTML cargado en el navegador, permitiendo la gestión de eventos, o la inserción y eliminación de elementos.
Tecnologías no estándar para desarrollo web
Durante bastante tiempo la carencia de tecnologías abiertas para realizar diferentes acciones asociadas a comportamientos y contenidos multimedia hizo que algunas tecnologías propietarias ocuparan este hueco, siempre por iniciativa de empresas de desarrollo de software, a continuación destacamos algunas de las más conocidas.
Adobe Flash: Se trata de una tecnología utilizada para incrustar contenido multimedia interactivo en páginas web que predominó durante mucho tiempo, gratuita para el usuario pero de carácter propietario y cerrado para los desarrolladores, que deben pagar licencia para poder usarla, motivo principal por el que está cada vez más en desuso.
Java Applets: Los Applets de Java fueron los precursores de Flash, pero debido a prácticas anticompetitivas de Microsoft y de Sun Microsystems estaba más centrada en los servidores de aplicaciones, así que también hace tiempo que se encuentra en desuso.
Tecnologías de servidor
Java EE: Es una tecnología basada en Java desarrollada por una coalición de empresas lideradas por Oracle, IBM, Red Hat, etc… muy utilizada a nivel empresarial, la mayoría de implementaciones y herramientas para desarrollo son software libre, y existen comunidades de desarrolladores y empresas que realizan complementos.
PHP: Es una tecnología con lenguaje propio, desarrollada por PHP Group y con licencia libre. Es la tecnología de lado de servidor con la que se han implementado más servidores en Internet, es multiplataforma y se integra normalmente con Apache y MySQL en entornos Linux gracias a un paquete llamado LAMP.
ASP.NET: Se trata de una versión evolucionada del ASP clásico, está integrada en la tecnología .NET de Microsoft junto con el lenguaje C#, tiene licencia propietaria y para plataformas Windows y una comunidad de desarrolladores má limitada que otras alternativas.
Bases de datos
Las bases de datos más populares y utilizadas para el desarrollo de aplicaciones web son las bases de datos relacionales. Hay muchas bases de datos relacionales tanto comerciales como de software libre como MySQL, Derby, Oracle, MS SQL Server, PostgreSQL.
Actualmente el sistema gestor de bases de datos más utilizado es MySQL, es multiplataforma y está desarrollado en C, tiene licencia de código abierto GPL y consta de una herramienta interactiva para hacer consultas y crear bases de datos, en su conjunto se ha hecho muy popular en el desarrollo web.
Las aplicaciones web tienen necesidad de escalabilidad y tolerancia a fallos, es por esto que se está haciendo hueco una nueva familia de bases de datos denominadas NoSQL, entre las que se encuentran Cassandra, mongoDB, riak, redis.
No hay comentarios:
Publicar un comentario