Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sesion3 Tenologias Web
Sesion3 Tenologias Web
Aplicaciones Web
En ingeniería de software una aplicación web es aquella
que los usuarios usan accediendo a un servidor web a
través de Internet o de una intranet. Las aplicaciones
web son populares debido a la practicidad del
navegador web como cliente ligero. La habilidad para
actualizar y mantener aplicaciones web sin distribuir e
instalar software en miles de potenciales clientes es otra
razón de su popularidad. Aplicaciones como los
webmail, wikis, weblogs, MMORPGs, tiendas en línea
son ejemplos bien conocidos de aplicaciones web.
Una aplicación Web consta de una o más páginas conectadas entre sí. Un buen punto de partida sería
decir que una página Web es un archivo de texto que contiene lenguaje de marcas de hipertexto
(HTML), etiquetas de formato y vínculos a archivos gráficos y a otras páginas Web.
El archivo de texto se almacena en un servidor de Web al que pueden acceder otras computadoras
conectadas ese servidor, vía Internet o una LAN. Al archivo se puede acceder utilizando exploradores
Web que no hacen otra cosa que efectuar una transferencia de archivos e interpretación de las
etiquetas y vínculos HTML, y muestran el resultado en el monitor.
muestra información en una ventana del navegador (por ejemplo, las oportunidades actuales de
empleo cuando el usuario selecciona un anuncio de trabajo) o un programa complicado con
funcionalidades extendidas (por ejemplo, la aplicación bookordering en Amazon.com o en la
aplicación de licitación en eBay).
Una aplicación Web de base de datos consta de sólo dos piezas:
• Base de datos: La base de datos es la memoria a largo plazo de su aplicación de base de datos
Web. La aplicación no puede cumplir su propósito sin la base de datos. Sin embargo, la base de
datos por sí sola no es suficiente.
• Aplicación: La aplicación es el programa o grupo de programas que realizan las tareas. Los
programas creados muestran lo que el usuario ve en la ventana del navegador, ellos aseguran
que la aplicación interactúe mediante la aceptación y procesamiento de la información que el
usuario escribe en la ventana del navegador, ellos almacenan y recuperan la información en la
base de datos.
Tecnologías front-end
Son todas aquellas tecnologías que corren del lado del cliente, es decir, todas aquellas tecnologías
que corren del lado del navegador web, generalizándose más que nada en tres lenguajes, HyperText
Markup Language (HTML) que estructura los contenidos de las páginas web, hojas de estilo en
cascada (CSS) para describir el aspecto y el formato de la página web más algo de código ejecutable
realizado en lenguaje de script del navegador (JavaScript), la persona encargada del front-end, se
dedica solo a estas tres tecnologías, aunque esto no significa que no sepa cómo trabaja el back-end,
ya que es necesario para que pueda consumir datos y pueda estructurar correctamente un
maquetado en HTML y CSS para su mejor comodidad y la comodidad del back-end a la hora de
colocarlo sobre un servidor.
Desarrollo front-end
El desarrollo front-end es el que se encarga de la parte visible con la que interactúa el usuario, es
decir el desarrollo front-end desarrolla las interfaces de la aplicación web; es el responsable de
mostrar los contenidos, de controlar la interacción del usuario y de las peticiones al servidor. Los
contenidos deben ser presentados estéticamente a los usuarios, las interfaces que se construyen
deben ser fáciles de usar para ello los desarrolladores front-end deben utilizar adecuadamente las
tecnologías front-end y además conocer otras tecnologías relacionadas a fin de lograr interfaces
agradables visualmente, pero a su vez que permitan la interacción exitosa del usuario con la
aplicación web.
Código HTML
HTML, sigla en inglés de HyperText Markup Language (lenguaje de marcas de hipertexto), hace
referencia al lenguaje de marcado para la elaboración de páginas web. Es un estándar que sirve de
referencia del software que conecta con la elaboración de páginas web en sus diferentes versiones,
define una estructura básica y un código (denominado código HTML) para la definición de contenido
de una página web, como texto, imágenes, videos, juegos, entre otros. Es un estándar a cargo del
World Wide Web Consortium (W3C) o Consorcio WWW, organización dedicada a la estandarización
de casi todas las tecnologías ligadas a la web, sobre todo en lo referente a su escritura e
interpretación. Se considera el lenguaje web más importante siendo su invención crucial en la
aparición, desarrollo y expansión de la World Wide Web (WWW). Es el estándar que se ha impuesto
en la visualización de páginas web y es el que todos los navegadores actuales han adoptado.
El lenguaje HTML basa su filosofía de desarrollo en la diferenciación. Para añadir un elemento externo
a la página (imagen, vídeo, script, entre otros.), este no se incrusta directamente en el código de la
página, sino que se hace una referencia a la ubicación de dicho elemento mediante texto. De este
modo, la página web contiene solamente texto mientras que recae en el navegador web
(interpretador del código) la tarea de unir todos los elementos y visualizar la página final. Al ser un
estándar, HTML busca ser un lenguaje que permita que cualquier página web escrita en una
determinada versión, pueda ser interpretada de la misma forma (estándar) por cualquier navegador
web actualizado.
Sin embargo, a lo largo de sus diferentes versiones, se han incorporado y suprimido diversas
características, con el fin de hacerlo más eficiente y facilitar el desarrollo de páginas web compatibles
con distintos navegadores y plataformas (PC de escritorio, portátiles, teléfonos inteligentes, tabletas,
vipers etc.) No obstante, para interpretar correctamente una nueva versión de HTML, los
desarrolladores de navegadores web deben incorporar estos cambios y el usuario debe ser capaz de
usar la nueva versión del navegador con los cambios incorporados. Normalmente los cambios son
aplicados mediante parches de actualización automática (Firefox, Chrome) u ofreciendo una nueva
versión del navegador con todos los cambios incorporados, en un sitio web de descarga oficial
(Internet Explorer). Por lo que un navegador desactualizado no será capaz de interpretar
correctamente una página web escrita en una versión de HTML superior a la que pueda interpretar, lo
que obliga muchas veces a los desarrolladores a aplicar técnicas y cambios que permitan corregir
problemas de visualización e incluso de interpretación de código HTML. Así mismo, las páginas
escritas en una versión anterior de HTML deberían ser actualizadas o reescritas, lo que no siempre se
cumple. Es por ello que ciertos navegadores todavía mantienen la capacidad de interpretar páginas
web de versiones HTML anteriores. Por estas razones, todavía existen diferencias entre distintos
navegadores y versiones al interpretar una misma página web.
Estructura HTML
<html>
<head>
Información técnica para el navegador
</head>
<body>
Contenido que se mostrará en la página
</body>
</html>
El lenguaje JavaScript
JavaScript es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define
como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico.
Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de
un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas, aunque
existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en
aplicaciones externas a la web, por ejemplo, en documentos PDF, aplicaciones de escritorio
(mayoritariamente widgets) es también significativo.
JavaScript fue desarrollado originalmente por Brendan Eich de Netscape en 1995 con el nombre de
Mocha, el cual fue renombrado posteriormente a LiveScript, para finalmente quedar como JavaScript.
Desde entonces JavaScript se ha convertido en uno de los lenguajes de programación más populares
en internet. Al principio, sin embargo, muchos desarrolladores renegaban del lenguaje porque el
público al que va dirigido lo formaban publicadores de artículos y demás aficionados, entre otras
razones. La llegada de Ajax devolvió JavaScript a la fama y atrajo la atención de muchos otros
programadores. Como resultado de esto hubo una proliferación de un conjunto de frameworks y
librerías de ámbito general, mejorando las prácticas de programación con JavaScript, y aumentado el
uso de JavaScript fuera de los navegadores web, como se ha visto con la proliferación de entornos
JavaScript del lado del servidor. En enero de 2009, el proyecto CommonJS fue inaugurado con el
objetivo de especificar una librería para uso de tareas comunes principalmente para el desarrollo
fuera del navegador web.
En junio de 2015 se cerró y publicó el estándar ECMAScript 62021 con un soporte irregular entre
navegadores y que dota a JavaScript de características avanzadas que se echaban de menos y que son
de uso habitual en otros lenguajes como, por ejemplo, módulos para organización del código,
verdaderas clases para programación orientada a objetos, expresiones de flecha, iteradores,
generadores o promesas para programación asíncrona.
La versión 7 de ECMAScript se conoce como ECMAScript 2016, y es la última versión disponible,
publicada en junio de 2016. Se trata de la primera versión para la que se usa un nuevo procedimiento
de publicación anual y un proceso de desarrollo abierto.
GIF
El formato GIF (Graphic Interchange Format) es un formato de archivos gráficos de mapa de bits
(una trama) desarrollado por Compuserve. Existen dos versiones de este formato de archivos: GIF
87a y GIF 89a, desarrolladas en 1987 y 1989 respectivamente.
GIF 87a soporta la compresión LZW, el entrelazado (posibilidad de una visualización progresiva), una
paleta de 256 colores y la posibilidad de crear imágenes animadas (GIF animados) almacenando
varias imágenes en un mismo archivo. GIF 89a añade la posibilidad de definir un color transparente
en la paleta y precisar el tiempo de las animaciones.
PNG
El formato PNG (Portable Network Graphics) es un formato de archivos de gráficos de mapa de
bits (una trama). Fue desarrollado en 1995 como una alternativa gratuita al formato GIF, cuyos
derechos pertenecen a Unisys (propietario del algoritmo de compresión LZW) y a quien los
editores de software deben pagar regalías por usar este formato.
SVG
SVG (Scalable Vector Graphics) es abierto y está basado en los gráficos XML, un formato que se
está incorporando a los estándares Web. Muchos buscadores ya soportan SVG en cierto grado.
Puede ser utilizado tanto para imágenes como para animaciones. Dado que SVG es un formato de
gráficos vectorizados, las imágenes puedes ser redimensionadas y transformadas sin sufrir
pérdidas de calidad ni deformaciones.
Web API
La interfaz de programación de aplicaciones (API: Application Programming Interface), es un conjunto
de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que
ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.
Una API es una “llave de acceso” a funciones que nos permiten hacer uso de un servicio web provisto
por un tercero, dentro de una aplicación web propia, de manera segura.
Fuentes Web
Se refiere al tipo de letra usada en la World Wide Web. Cuando fue creado HTML, tanto la fuente
tipográfica como el estilo venían determinados exclusivamente por las preferencias del navegador
web utilizado. No existió ningún mecanismo para el control del tipo de letra en las páginas web hasta
que en 1995 Netscape introdujo la etiqueta <font></font>, la cual fue estandarizada en HTML 2. No
obstante, la fuente especificada por esta etiqueta tenía que estar instalada en el ordenador del
usuario o tener una fuente de reserva como la predeterminada para la web; Sans-serif o un tipo de
letra monoespaciado. La primera especificación de hojas de estilo en cascada (CSS en sus siglas en
inglés) fue publicada en 1996 y proporcionaba las mismas prestaciones.
En 1998 fue publicado el estándar de CSS2, que intentaba mejorar el proceso de elección de fuentes
tipográficas por medio de procedimientos como el de coincidencia de fuentes, síntesis y descarga.
Estas técnicas no se llegaron a utilizar demasiado y fueron eliminadas de la especificación en CSS2.1.
Sin embargo, Internet Explorer agregó soporte para descarga de fuentes en la versión 4.0, publicada
en 1997. Más tarde se incluyó la descarga de fuentes en el módulo de fuentes de CSS3, y desde
entonces ha sido implementada en Safari versión 3, Firefox versión 3,5 y Opera. Subsecuentemente,
se ha incrementado el interés sobre la tipografía para la web, así como el uso de descarga de fuentes.
Tecnologías back-end
La parte servidor de las aplicaciones web está formada por páginas estáticas que siempre muestran el
mismo contenido y por programas o scripts que son ejecutados por el servidor web cuando el
navegador del cliente solicita algunas páginas. La salida de este script suele ser una página HTML
estándar que se envía al navegador del cliente. Tradicionalmente este programa o script que es
ejecutado por el servidor web se basa en la tecnología Common Gateway Interface (CGI).
La programación del servidor mediante CGI es compleja y laboriosa. El protocolo HTTP no almacena el
estado entre una conexión y la siguiente (es un protocolo sin estado), por lo que es el programador el
que se tiene que encargar de conservarlo. Esto conduce a que el programador tenga que dedicar
parte de su tiempo a programar tareas ajenas al objetivo de la aplicación, lo que suele ser origen de
diversos problemas.
Sin embargo, con la entrada en 1995 de Microsoft en el mundo Internet y la salida al mercado de su
servidor web (Internet Information Services) se abrió un nuevo campo para las aplicaciones web:
Internet Server Application Program Interface (ISAPI). Se trata de un conjunto de funciones que el
servidor web pone a disposición de los programadores de aplicaciones web. Con ISAPI, los
programadores pueden crear Dynamic Link Library (DLL) con funciones que son invocadas para
determinados archivos (se ejecutan cuando el cliente solicita un archivo con una determinada
extensión).
Todo el sistema Active Server Pages (ASP), no es más que una DLL del tipo ISAPI que es invocada
automáticamente para los archivos cuya extensión sea .asp. La DLL ASP preprocesa el archivo .asp
interpretando su código como un script a ejecutar en el servidor. Sin embargo, ella no interpreta
directamente el código, sino que en función del lenguaje en el que está escrito, invoca a otra DLL que
se encarga de ejecutar el script. Después recoge la salida y se la envía al servidor web, el cual a su vez
la reenvía al cliente.
Las ventajas que presenta ASP frente a CGI son:
Las páginas basadas en CGI resultan difíciles de mantener, ya que las instrucciones HTML se
encuentran insertadas en el propio código del programa CGI, mezclándose sus funcionalidades.
La ejecución de un programa CGI es muy ineficiente, debido al proceso de carga del código en
memoria que se realiza cada vez que un usuario requiere su ejecución. La existencia de múltiples
clientes simultáneos supone múltiples copias del programa en memoria del servidor.
La unión de ISAPI con el servidor web es más “fuerte” (están más integrados), su ejecución es más
rápida, con lo que se logra que las aplicaciones
basadas en ISAPI tengan un mayor rendimiento
que las basadas en CGI.
Además de ASP, existen otras tecnologías
destinadas a programar la parte servidor de las
aplicaciones web: ColdFusion, Java Server Pages
(JSP), serv-lets, PHP, etc. Todas ellas son muy
similares, se basan en los mismos principios y
ofrecen resultados equivalentes.
Lenguajes de servidor
Los Lenguajes de programación del lado del servidor son especialmente útiles en trabajos que se tiene
que acceder a información centralizada, situada en una base de datos en el servidor, y cuando por
razones de seguridad los cálculos no se pueden realizar en la computadora del usuario.
Es importante destacar que los lenguajes de programación del lado del servidor son necesarios
porque para hacer la mayoría de las aplicaciones web se debe tener acceso a muchos recursos
externos a la computadora del cliente, principalmente bases de datos alojadas en servidores de
Internet.
Las páginas dinámicas del servidor se suelen escribir en el mismo archivo HTML, mezclado con el
código HTML, al igual que ocurría en las páginas del cliente. Cuando una página es solicitada por parte
de un cliente, el servidor ejecuta los scripts y se genera una página resultado, que solamente contiene
código HTML. Este resultado final es el que se envía al cliente y puede ser interpretado sin lugar a
errores ni incompatibilidades, puesto que sólo contiene HTML.
Luego es el servidor el que maneja toda la información de las bases de datos y cualquier otro recurso,
como imágenes o servidores de correo y luego envía al cliente una página web con los resultados de
todas las operaciones. Las ventajas de este tipo de programación son que el cliente no puede ver los
scripts, ya que se ejecutan y transforman en HTML antes de enviarlos. Además, son independientes
del navegador del usuario, ya que el código que reciben es HTML fácilmente interpretable.
Para escribir páginas dinámicas de servidor existen varios lenguajes, entre estos tenemos:
Practical Extraction and Report Language ( PERL): es un lenguaje de programación desarrollado
por Larry Wall inspirado en otras herramientas de UNIX. PERL es el lenguaje más utilizado para
la creación de programas CGI en los servidores web. Es más rápido que los programas shell script
de UNIX, puede leer y escribir ficheros binarios, y puede procesar ficheros grandes. La ventaja
más importante de PERL sobre C es que PERL no necesita ser recompilado, es un lenguaje
interpretado.
Active Server Pages (ASP): es una tecnología del lado servidor de Microsoft para páginas web
generadas dinámicamente, que ha sido comercializada como un anexo a Internet Information
Services (IIS). EL estándard ASP permite poder utilizar cualquier lenguaje para la programación, si
bien Microsoft favorece que se utilice el VBScript, y en segundo término el JScript (versión del
Servicios en la nube
La computación en la nube (cloud computing), conocida también como servicios en la nube,
informática en la nube, nube de cómputo, nube de conceptos o simplemente "la nube", es un
paradigma que permite ofrecer servicios de computación a través de una red, que usualmente es