stringtranslate.com

marco web

Un marco web ( WF ) o marco de aplicación web ( WAF ) es un marco de software diseñado para respaldar el desarrollo de aplicaciones web , incluidos servicios web, recursos web y API web . Los marcos web proporcionan una forma estándar de crear e implementar aplicaciones web en la World Wide Web . Los marcos web tienen como objetivo automatizar los gastos generales asociados con las actividades comunes realizadas en el desarrollo web . Por ejemplo, muchos marcos web proporcionan bibliotecas para el acceso a bases de datos , marcos de plantillas y gestión de sesiones y, a menudo, promueven la reutilización de código . [1] Aunque a menudo apuntan al desarrollo de sitios web dinámicos , también son aplicables a sitios web estáticos . [2]

Historia

Como el diseño de la World Wide Web no era inherentemente dinámico, los primeros hipertextos consistían en archivos de texto HTML codificados a mano que se publicaban en servidores web . Cualquier modificación de las páginas publicadas debe ser realizada por el autor de las páginas. En 1993, se introdujo el estándar Common Gateway Interface (CGI) para interconectar aplicaciones externas con servidores web, para proporcionar una página web dinámica que reflejara las entradas de los usuarios. [3]

Sin embargo, las implementaciones originales de la interfaz CGI generalmente tenían efectos adversos en la carga del servidor, porque cada solicitud iniciaba un proceso separado . [4] Las implementaciones más recientes utilizan procesos persistentes, entre otras técnicas, para reducir la huella en los recursos del servidor y ofrecer un aumento general del rendimiento. [ cita necesaria ]

En 1995, surgieron por primera vez entornos de desarrollo de lenguaje/servidor totalmente integrados y se introdujeron nuevos lenguajes específicos de la web, como ColdFusion , PHP y Active Server Pages . [ cita necesaria ]

Aunque la gran mayoría de los lenguajes para crear páginas web dinámicas tienen bibliotecas para ayudar con tareas comunes, las aplicaciones web a menudo requieren bibliotecas específicas para tareas particulares, como la creación de HTML (por ejemplo, Jakarta Faces ). [ cita necesaria ]

A finales de la década de 1990, comenzaron a aparecer marcos maduros de "pila completa", que a menudo reunían múltiples bibliotecas útiles para el desarrollo web en una única pila de software cohesiva para que la usaran los desarrolladores web. [ cita necesaria ]

Tipos de arquitecturas framework

La mayoría de los marcos web se basan en el patrón modelo-vista-controlador (MVC) . [ cita necesaria ]

Modelo-vista-controlador (MVC)

Muchos marcos siguen el patrón arquitectónico MVC para separar el modelo de datos en reglas comerciales (el "controlador") y la interfaz de usuario (la "vista"). Esto generalmente se considera una buena práctica ya que modulariza el código , promueve la reutilización del código y permite aplicar múltiples interfaces. En las aplicaciones web, esto permite presentar diferentes vistas, por ejemplo, ofreciendo diferentes páginas web para navegadores móviles frente a navegadores de escritorio, o proporcionando interfaces de servicios web legibles por máquina .

Basado en push versus pull

La mayoría de los marcos MVC siguen una arquitectura basada en push, también llamada "basada en acciones". Estos marcos utilizan acciones que realizan el procesamiento requerido y luego "envían" los datos a la capa de vista para representar los resultados. [5] Una alternativa a esto es la arquitectura basada en pull, a veces también llamada "basada en componentes". Estos marcos comienzan con la capa de vista, que luego puede "extraer" resultados de múltiples controladores según sea necesario. En esta arquitectura, se pueden involucrar múltiples controladores con una sola vista.

Organización de tres niveles

En una organización de tres niveles , las aplicaciones se estructuran en torno a tres niveles físicos: cliente, aplicación y base de datos. [6] [7] [8] [9] La base de datos normalmente es un RDBMS . La aplicación contiene la lógica empresarial, se ejecuta en un servidor y se comunica con el cliente mediante HTTP . [10] El cliente en las aplicaciones web es un navegador web que ejecuta HTML generado por la capa de aplicación. [11] [12] El término no debe confundirse con MVC, donde, a diferencia de la arquitectura de tres niveles, se considera una buena práctica mantener la lógica empresarial alejada del controlador, la "capa intermedia". [13] [14]

Aplicaciones marco

Los marcos están diseñados para respaldar la construcción de aplicaciones de Internet basadas en un único lenguaje de programación, y su enfoque abarca desde herramientas de propósito general como Zend Framework y Ruby on Rails, que aumentan las capacidades de un lenguaje específico, hasta paquetes programables en lenguaje nativo creados alrededor de una aplicación de usuario específica, como sistemas de gestión de contenidos (CMS), algunas herramientas de desarrollo móvil y algunas herramientas de portal. [15]

Marcos de sitios web de propósito general

Los marcos web deben funcionar de acuerdo con las reglas arquitectónicas de los navegadores y protocolos como HTTP , que no tiene estado . Las páginas web son proporcionadas por un servidor y luego el navegador puede modificarlas mediante JavaScript . Cualquiera de los dos enfoques tiene sus ventajas y desventajas. [ cita necesaria ]

Los cambios en la página del lado del servidor normalmente requieren que la página se actualice, pero permiten utilizar cualquier idioma y utilizar más potencia informática. Los cambios del lado del cliente permiten que la página se actualice en pequeñas partes, lo que parece una aplicación de escritorio, pero se limita a JavaScript y se ejecuta en el navegador del usuario, que puede tener una potencia informática limitada. Normalmente se utiliza alguna combinación de los dos. [16] Las aplicaciones que hacen un uso intensivo de JavaScript y solo actualizan partes de la página se denominan aplicaciones de una sola página y normalmente utilizan un marco web JavaScript del lado del cliente para organizar el código. [ cita necesaria ]

Lado del servidor

Lado del cliente

Los ejemplos incluyen Backbone.js , AngularJS , Angular , Ember.js , ReactJS , jQuery UI , Svelte y Vue.js. [17]

Foros de discusión, wikis y blogs

Características

Los marcos generalmente establecen el flujo de control de un programa y permiten al usuario del marco "conectarse" a ese flujo exponiendo varios eventos. [18] Este patrón de diseño de " inversión de control " se considera un principio definitorio de un marco y beneficia al código al imponer un flujo común para un equipo que todos pueden personalizar de manera similar. [18] Por ejemplo, algunos "microframeworks" populares como Sinatra de Ruby (que inspiró Express.js ) permiten enlaces de "middleware" antes y después de las solicitudes HTTP. Estas funciones de middleware pueden ser cualquier cosa y permiten al usuario definir el registro, la autenticación y la gestión de sesiones, y el redireccionamiento. [19]

Sistema de plantillas web

Almacenamiento en caché

El almacenamiento en caché web es el almacenamiento en caché de documentos web para reducir el uso del ancho de banda , la carga del servidor y el " retraso " percibido. Un caché web almacena copias de los documentos que pasan por él; Las solicitudes posteriores pueden satisfacerse desde la memoria caché si se cumplen ciertas condiciones. Algunos marcos de aplicaciones proporcionan mecanismos para almacenar en caché documentos y omitir varias etapas de la preparación de la página, como el acceso a la base de datos o la interpretación de plantillas. [ cita necesaria ]

Seguridad

Algunos marcos web vienen con marcos de autenticación y autorización , que permiten al servidor web identificar a los usuarios de la aplicación y restringir el acceso a las funciones según algunos criterios definidos. Drupal es un ejemplo que proporciona acceso a páginas basado en roles y proporciona una interfaz basada en web para crear usuarios y asignarles roles. [ cita necesaria ]

Acceso, mapeo y configuración de bases de datos.

Muchos marcos web crean una API unificada para el backend de una base de datos, lo que permite que las aplicaciones web funcionen con una variedad de bases de datos sin cambios de código y permite a los programadores trabajar con conceptos de nivel superior. Además, algunos marcos orientados a objetos contienen herramientas de mapeo para proporcionar mapeo relacional de objetos , que asigna objetos a tuplas . [20]

Algunos marcos minimizan la configuración de la aplicación web mediante el uso de introspección y/o siguiendo convenciones bien conocidas. Por ejemplo, muchos marcos de Java utilizan Hibernate como capa de persistencia, que puede generar un esquema de base de datos en tiempo de ejecución capaz de conservar la información necesaria. Esto permite al diseñador de aplicaciones diseñar objetos comerciales sin necesidad de definir explícitamente un esquema de base de datos. Los marcos como Ruby on Rails también pueden funcionar a la inversa, es decir, definir propiedades de los objetos del modelo en tiempo de ejecución en función de un esquema de base de datos. [20]

Otras características que los marcos web pueden proporcionar incluyen soporte transaccional [21] y herramientas de migración de bases de datos . [20]

mapeo de URL

La función de enrutamiento o mapeo de URL de un marco es el mecanismo mediante el cual el marco interpreta las URL. Algunos marcos, como Drupal y Django, comparan la URL proporcionada con patrones predeterminados utilizando expresiones regulares , mientras que otros utilizan técnicas de reescritura para traducir la URL proporcionada a una que el motor subyacente reconozca. Otra técnica es la del recorrido de gráficos , como la que utiliza Zope , donde una URL se descompone en pasos que atraviesan un gráfico de objetos (de modelos y vistas). [ cita necesaria ]

Un sistema de mapeo de URL que utiliza coincidencia de patrones o reescritura para enrutar y manejar solicitudes permite utilizar URL más cortas y " amigables ", lo que aumenta la simplicidad del sitio y permite una mejor indexación por parte de los motores de búsqueda. Por ejemplo, una URL que termina en "/page.cgi?cat=science&topic=physics" podría cambiarse a simplemente "/page/science/physics". Esto hace que la URL sea más fácil de recordar, leer y escribir para las personas, y proporciona a los motores de búsqueda mejor información sobre el diseño estructural del sitio. Un enfoque transversal de gráficos también tiende a dar como resultado la creación de URL amigables. Una URL más corta como "/página/ciencia" tiende a existir de forma predeterminada, ya que es simplemente una forma más corta del recorrido más largo hasta "/página/ciencia/física". [ cita necesaria ]

AJAX

Ajax , abreviatura de " JavaScript y XML asincrónicos ", es una técnica de desarrollo web para crear aplicaciones web. La intención es hacer que las páginas web se sientan más receptivas intercambiando pequeñas cantidades de datos con el servidor detrás de escena, de modo que no sea necesario recargar toda la página web cada vez que el usuario solicite un cambio. Esto tiene como objetivo aumentar la interactividad, velocidad, mantenibilidad y usabilidad de una página web . [22]

Debido a la complejidad de la programación Ajax en JavaScript, existen numerosos marcos Ajax que se ocupan exclusivamente del soporte Ajax. Algunos marcos Ajax incluso están integrados como parte de marcos más grandes. Por ejemplo, la biblioteca jQuery JavaScript está incluida en Ruby on Rails. [ cita necesaria ]

Con el creciente interés en desarrollar aplicaciones web ricas " Web 2.0 " , la complejidad de programar directamente en Ajax y JavaScript se ha vuelto tan evidente que ha intervenido la tecnología de compilación para permitir a los desarrolladores codificar en lenguajes de alto nivel como Java, Python y Rubí. El primero de estos compiladores fue Morfik, seguido de Google Web Toolkit , y algún tiempo después le siguieron adaptaciones a Python y Ruby en forma de Pyjs y RubyJS. Estos compiladores y sus bibliotecas de conjuntos de widgets asociados hacen que el desarrollo de aplicaciones Ajax de medios enriquecidos sea mucho más parecido al desarrollo de aplicaciones de escritorio. [ cita necesaria ]

servicios web

Algunos marcos proporcionan herramientas para crear y proporcionar servicios web. Estas utilidades pueden ofrecer herramientas similares al resto de la aplicación web. [23]

Recursos web

Varios marcos RESTful Web 2.0 más nuevos ahora proporcionan una infraestructura de arquitectura orientada a recursos (ROA) para crear colecciones de recursos en una especie de ontología de Web Semántica , basada en conceptos del Marco de descripción de recursos (RDF). [ cita necesaria ]

Ver también

Referencias

  1. ^ Múltiples (wiki). "Marco de aplicaciones web". Docforge . Archivado desde el original el 23 de julio de 2015.
  2. ^ "Principales generadores de sitios estáticos de código abierto". Generación estática .
  3. ^ "CGI: interfaz de puerta de enlace común". Archivado desde el original el 9 de abril de 2009.
  4. ^ "CGI". www.ibm.com . Consultado el 7 de mayo de 2021 .
  5. ^ Thomson, Kris (29 de octubre de 2003). "Aclaración sobre MVC = Pull y MVC Push" . Consultado el 29 de julio de 2007 .
  6. ^ Microsoft. "Distribución en tres niveles" . Consultado el 19 de septiembre de 2011 .
  7. ^ Oráculo. "clustering_concepts_10en" (PDF) . Consultado el 19 de septiembre de 2011 .
  8. ^ Robert R. Perkoski. "Introducción al Desarrollo Web". Archivado desde el original el 7 de noviembre de 2013.
  9. ^ IBM. "Uso de Client Access Express en un entorno de tres niveles" . Consultado el 19 de septiembre de 2011 .
  10. ^ Oráculo. "Comprensión de la arquitectura de tres niveles" . Consultado el 19 de septiembre de 2011 .
  11. ^ Microsoft. "Arquitectura pragmática: capas" . Consultado el 19 de septiembre de 2011 .
  12. ^ Arokia. "Arquitectura web de 3 niveles" . Consultado el 19 de septiembre de 2011 .
  13. ^ "Prácticas recomendadas del controlador ASP.NET MVC". Archivado desde el original el 11 de octubre de 2011 . Consultado el 19 de septiembre de 2011 .
  14. ^ Jamis Buck. "Controlador flaco, modelo gordo". Archivado desde el original el 16 de mayo de 2015.
  15. ^ "Introducción a los marcos web". Revista cableada . Consultado el 2 de abril de 2018 .
  16. ^ KLIMUSHYN, Mel (6 de abril de 2015). "Arquitectura de aplicaciones web: del lado del cliente frente al lado del servidor". Giro atómico . Consultado el 6 de marzo de 2016 .
  17. ^ "AngularJS frente a Backbone.js frente a Ember.js". www.airpair.com . Consultado el 4 de junio de 2016 .
  18. ^ ab Fowler, Martín. "bliki: Inversión de control". martinfowler.com . Consultado el 6 de marzo de 2016 .
  19. ^ Xue, Qiang. "Capital One Engineering: filosofías que dieron forma a marcos exitosos". www.capitalone.io . Consultado el 6 de marzo de 2016 .
  20. ^ abc "Conceptos básicos de Active Record". Ruby on Rails . Consultado el 20 de marzo de 2021 . El Mapeo Relacional de Objetos, comúnmente conocido como su abreviatura ORM, es una técnica que conecta los objetos enriquecidos de una aplicación con tablas en un sistema de administración de bases de datos relacionales... Active Record crea automáticamente métodos para permitir que una aplicación lea y manipule los datos almacenados dentro. sus tablas.
  21. ^ "Transacciones de registro activo". Ruby on Rails . Consultado el 20 de marzo de 2021 .
  22. ^ "¿Qué es AJAX?". www.dlsweb.rmit.edu.au . Consultado el 7 de mayo de 2021 .
  23. ^ Maximilien, EM (2006). "Tutorial 4: Servicios web sobre Rails: uso de Ruby y Rails para el desarrollo de servicios web y mashups". Conferencia internacional IEEE 2006 sobre servicios web (ICWS'06) . págs. xliii. doi :10.1109/ICWS.2006.139. ISBN 0-7695-2669-1.