Sie sind auf Seite 1von 38

Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

PRINCIPIOS DE LA INGENIERIA WEB


Unidad 1

Nombre de los Integrantes:


García Cabrera Karina
Pérez González Oscar

Nombre del profesor:


Vásquez Romero Marco Antonio

Nombre de la materia:
Metodologías emergentes para la Web

Carrera:
Ingeniería en Sistemas Computacionales

Semestre:
2019-A

Fecha de entrega:
19/Marzo/2019

Horario:
18:00 – 19:00 HRS

Instituto Tecnológico De Orizaba


Metodologías emergentes para la web
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Contenido
1. Introducción .................................................................................................................... 1
1.1 Diferencias entre el software tradicional y las aplicaciones Web ............................... 2
1.2 Ingeniería Web ............................................................................................................ 7
1.2.1 Principios de la ingeniería aplicados a las aplicaciones Web ................................ 10
1.2.2 Modelos de procesos aplicables en la ingeniería Web .......................................... 12
1.3 Características de las aplicaciones Web .................................................................... 15
Aplicación de referencia: eShopOnWeb ........................................................................... 15
Hospedada en la nube y escalable .................................................................................... 15
Multiplataforma ................................................................................................................ 16
Modular y de acoplamiento flexible ................................................................................. 16
Pruebas sencillas con pruebas automatizadas ................................................................. 16
Comportamientos tradicionales y de SPA admitidos ....................................................... 16
Implementación y desarrollo simples ............................................................................... 17
ASP.NET tradicional y formularios Web Forms................................................................. 17
1.3.1 Categorías de las aplicaciones Web ....................................................................... 17
Estos son los seis tipos de aplicaciones web que existen ................................................. 18
1.3.2 Atributos de las aplicaciones Web ......................................................................... 19
Controlada por el contenido. ........................................................................................ 19
Evolución continua ........................................................................................................ 20
Inmediatez. .................................................................................................................... 20
Seguridad....................................................................................................................... 20
Estética. ......................................................................................................................... 20
informativa: ................................................................................................................... 20
descarga: ....................................................................................................................... 20
personalizable: .............................................................................................................. 20
interacción:.................................................................................................................... 20
orientada a transacciones: ............................................................................................ 21
orientado a servicios: .................................................................................................... 21
portal: ............................................................................................................................ 21
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

acceso a bases de datos: ............................................................................................... 21


almacenes de datos:...................................................................................................... 21
1.3.3 Atributos de aplicaciones enriquecidas de Internet .............................................. 21
Qué son las Aplicaciones RIA? .......................................................................................... 22
Relación con SOA .............................................................................................................. 24
¿Qué tecnología elegir? .................................................................................................... 24
Principales tecnologías disponibles en el mercado: ......................................................... 24
Qué son los RIA Services? ................................................................................................. 25
La arquitectura de una aplicación Web tradicional sería la siguiente: ......................... 25
Una aplicación RIA sería algo así: .................................................................................. 26
¿Cuál es el objetivo de RIA Services? ................................................................................ 26
Ventajas y Desventajas de las RIA`s .................................................................................. 28
1.3.4 Calidad de las aplicaciones Web y las aplicaciones enriquecidas de Internet ...... 29
Usabilidad ......................................................................................................................... 30
Comprensión global del sitio ............................................................................................ 30
Retroalimentación (Feedback) y Ayuda ............................................................................ 30
Características de la interfaz estética ............................................................................... 30
Características especiales ................................................................................................. 31
Funcionalidad .................................................................................................................... 31
Capacidades de Búsqueda y recuperación ....................................................................... 31
Características de navegación y visualización .................................................................. 31
Características de la aplicación relacionadas con el dominio .......................................... 32
Fiabilidad ........................................................................................................................... 32
Correcto Procesamiento de vínculos ................................................................................ 32
Recuperación de errores................................................................................................... 32
Validación y recuperación de entrada del usuario ........................................................... 32
Eficiencia ........................................................................................................................... 32
Mantenibilidad .................................................................................................................. 33
Conclusión ............................................................................................................................ 34
Bibliografía ............................................................................................................................ 35
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

1. Introducción
La ingeniería web es un área que abarca procesos, técnicas y modelos orientados a los
entornos Web. Consiste en la aplicación de metodologías sistemáticas, disciplinadas y
cuantificables al desarrollo eficiente, operación y evolución de aplicaciones web de alta
calidad. La ingeniería Web toma prestado muchos de los conceptos y principios básicos de
la ingeniería del software, dando importancia a las mismas actividades técnicas y de gestión.
Existen diferencias sutiles en la forma en que se llevan a cabo estas actividades, pero la
filosofía primordial es idéntica dado que dicta un enfoque disciplinado para el desarrollo de
un Sistema basado en computadora.
En 1998, Roger Pressman moderó una mesa redonda virtual con representantes la
ingeniería software tradicional y del desarrollo software basado exclusivamente en
Internet. El debate se centró en discutir si valía la pena aplicar un proceso de ingeniería a
las aplicaciones con base en Internet. La conclusión general fue que el proceso de ingeniería
nunca es una mala idea pero que éste debería adaptarse a los requerimientos de cambio
continuo y rapidez siempre presentes en el proceso de desarrollo Web. De iniciativas como
ésta surge el nacimiento la Ingeniería Web. La Ingeniería Web surge como una nueva
disciplina orientada a solucionar los problemas derivados de una proliferación de sistemas
web de baja calidad, realizados con una carencia completa de proceso. Esta nueva disciplina
identifica nuevos elementos propios de las aplicaciones web que no se cubren en las
Ciencias de la Computación, en la Ingeniería del Software o en los Sistemas de Información.
Existen tres conceptos que fueron claves en el nacimiento de la web, HTML. (Como lenguaje
para crear los contenidos de la web), HTTP. (Encargado de la trasferencia de la página web
y demás recursos). URL. (Direccionamiento) de los distintos recursos de internet. Los
acontecimientos más importantes fue el nacimiento de la web se remontan a los años
cuarenta, el primer servidor web fue en 1991 fuera de Europa. El desarrollo de aplicaciones
web es una tarea compleja que requiere del uso de una amplia variedad de conocimientos
de tecnología, organización y comunicación. Los sistemas de información basados en web
son mucho más complejos que las aplicaciones tradicionales debido a que han de
construirse sobre componentes tecnológicos que se encuentran en continua evolución, han
de encajar en la infraestructura existente en la empresa y la interfaz de usuario debe de
ofrecer un nivel de calidad hasta ahora no exigido.
Las aplicaciones web y la ejecución de estas se realizan de forma remota a través de la
conexión a Internet; el procesamiento de los datos lo lleva a cabo el servidor web y el
usuario solo recibe los resultados en su terminal.
En la actualidad la Internet y la Web ha influido enormemente tanto en el mundo de la
informática como en la sociedad general. Si nos centramos en la Web, en poco menos de
10 años han transformado los sistemas informáticos: ha roto las barreras físicas (debido a

1
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

la distancia), económicas y lógicas (debido al empleo de distintos sistemas operativos,


protocolos, etc.) y han abierto todo un abanico de nuevas posibilidades. Las aplicaciones
Web, hacen posible el acceso impensado a recursos desde lugares remotos. Por ello, es
preciso que los desarrolladores presten atención a los requerimientos, brindar calidad,
evaluar rendimiento, considerar sistemas escalables sin perder de vista el mantenimiento y
correcta documentación.

1.1 Diferencias entre el software tradicional y las aplicaciones Web


La Ingeniería de Software, es una disciplina que ha estudiado propuestas diferentes que
permiten apoyar el proceso de desarrollo y construcción de software desde hace muchos
años. Sin embargo, algunos de los proyectos de desarrollo fracasan o el resultado final no
es el esperado, para el cliente o usuario final, inclusive para los propios desarrolladores,
debido a la complejidad inherente del programa que impacta en la calidad y retraso del
tiempo esperado o peor aún; porque el software entregado no tiene la funcionalidad
requerida que apoye en la solución de los problemas de la empresa que lo solicitó. En los
primeros días de la informática, se pensó que el principal motivo por el que los proyectos
sufrían retraso y costes excesivos era el hecho de que la programación no se llevaba a cabo
adecuadamente. La solución a esto fue la introducción de la Programación Estructurada.
Este fue sin duda un salto importante, pero pronto se comprobó que los proyectos seguían
experimentando retrasos y altos costos. Sin embargo, en la actualidad se han encontrado
varios factores que pueden conllevar al fracaso de un proyecto de desarrollo de software.
Actualmente, se distinguen 2 grandes grupos: las metodologías tradicionales y las ágiles.

Generalmente, estas distintas metodologías se han


basado en un conjunto de actividades básicamente
técnicas, perfectamente diferenciadas y relacionadas
con: análisis, diseño, programación y prueba. Lo que
diferencia a las distintas metodologías es el grado de
énfasis que ponen en las distintas actividades. Durante
mucho tiempo, se ha utilizado el tradicional modelo de
cascada, el cual, ha demostrado que no refleja
adecuadamente, la naturaleza compleja del proceso de
desarrollo de software. Esta metodología, es
muy práctica para proyectos pequeños y con muy bajos
niveles de riesgo, tales como proyectos de nuevas versiones de algún software
existente donde haya requerimientos claros y cuya arquitectura e infraestructura de
software y hardware no van a cambiar mucho respeto a la versión anterior. Pero una
metodología tan inflexible a cambios, como lo fue el modelo tradicional,
rápidamente resultó ser impráctica para el desarrollo de nuevos programas de
cómputo, que demandan una alta complejidad en su estructura y funcionalidad.

2
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Para solucionar este problema, se definieron posteriormente los métodos iterativos


o incrementales, que unidos a otras prácticas claves, como la orientación al manejo
de riesgos y la planeación adaptable, permiten de forma natural guiar
adecuadamente el proceso de desarrollo de software. Actualmente se ha adoptado
como estándar en algunas empresas de software la estructura metodológica del RUP
de IBM, que organiza el desarrollo de un proyecto informático en iteraciones guiadas
en etapas y fases para obtener una arquitectura de software más sólida, robusta,
clara y ajustable a las necesidades particulares de cada organización. El proceso
Unificado, es un proceso de software genérico que puede ser utilizado para una gran
cantidad de tipos de sistemas de software, para diferentes áreas de competencia y
diferentes tamaños de proyectos en los que el factor de riesgo tecnológico es muy
alto, y los requerimientos son inestables. Provee un enfoque disciplinado en la
asignación de tareas y responsabilidades dentro de una organización de desarrollo.
Su meta es asegurar la producción de software de muy alta calidad de los usuarios
finales dentro de un calendario y presupuesto predecible. Sin embargo, el proceso
unificado no ha sido aplicado en muchas empresas por su complejidad de
administración y el tiempo que requiere ser invertido en la documentación,
desaprovechado sus considerables ventajas.

Es así, como aparecen los defensores del desarrollo ágil del software, que resaltan la
importancia de los talentos y habilidades de los individuos, más que las metodologías y
documentación. Las metodologías ágiles que se centran especialmente en el factor humano
o el producto de software dan mayor valor al individuo, a la colaboración con el cliente y al
desarrollo incremental del software con interacciones muy cortas. Este enfoque está
mostrando su efectividad en proyectos con requisitos muy cambiantes y cuando se exige
reducir drásticamente los tiempos de desarrollo manteniendo una alta calidad. Las

3
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

metodologías ágiles, están revolucionando la manera de producir software, y a la vez


generan un amplio debate entre sus seguidores, quienes por escepticismo apoyan las
metodologías tradicionales. Su objetivo es esbozar los valores y principios que deberían
permitir a los equipos desarrollar software rápidamente y respondiendo a los cambios que
puedan surgir a lo largo del proyecto, pretendiendo ofrecer una alternativa a los procesos
de desarrollo de software tradicionales, caracterizados por ser rígidos y dirigidos por la
documentación que se genera en cada una de las actividades desarrolladas.
Según Carmen de Pablos Heredero, el software es un “conjunto de elementos en
interacción dinámica organizados para la consecución de un objetivo” y en complemento
con el hardware permiten la realización de diversas tareas de manera ágil. Por ello, el
desarrollo de software ha aumentado notablemente en diferentes ámbitos de aplicación,
es por ello por lo que antes de crear una nueva aplicación debe tomarse en cuenta un sin
números de aspectos, características y funciones que contendrá el nuevo producto. Según
Pressman “se concluye que debe hacerse un esfuerzo concentrado para entender el
problema antes de desarrollar una aplicación de software.
“Las aplicaciones Web no son más que herramientas de ofimática de la Web 2.0 que se
manejan simplemente con una conexión a internet, y en estos casos cabe la opción de
utilizar el ordenador solo como forma de procesos de la aplicación remota”. “Una aplicación
Web (Web based application) es una aplicación cliente/servidor, donde tanto el cliente (el
navegador, explorador o visualizador) como el servidor (el servidor Web) y el protocolo
mediante el que se comunican (HTTP) están estandarizados y no han de ser creados por el
programador de aplicaciones”. En la actualidad, las aplicaciones Web son cada vez más
populares y su uso ha acaparado los ámbitos científico, cultural, académico, empresarial
entre otros, y esto es debido a las múltiples ventajas que el usuario tiene respecto a los
programas de escritorio. Entre otras, las ventajas que podemos mencionar son: sistema
operativo multiplataforma, ejecutadas por cualquier dispositivo informático que tenga
conexión a internet, no requiere de la instalación de programas solo un navegador, las
copias de seguridad son almacenadas en los servidores, la información que se genera puede
ser compartida de forma simultánea por varias personas, el espacio ocupado por los datos
está a cargo del servidor y es de fácil uso.
Aplicación web. En la Ingeniería de software se denomina aplicación web a aquellas
aplicaciones que los usuarios pueden utilizar accediendo a un Servidor web a través
de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación
(Software) que se codifica en un lenguaje soportado por los navegadores web en la que se
confía la ejecución al navegador.
Las aplicaciones web son populares debido a lo práctico del navegador web como Cliente
ligero, a la independencia del Sistema operativo, así como a la facilidad para actualizar y
mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales.

4
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Es importante mencionar que una Página Web puede contener elementos que permiten
una comunicación activa entre el usuario y la información. Esto permite que el usuario
acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de
sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos
y acceder a gestores de base de datos de todo tipo.
En un principio la Web era sencillamente una colección de páginas estáticas, documentos,
etc., para su consulta o descarga. El paso inmediatamente posterior en su evolución fue la
inclusión de un método para elaborar páginas dinámicas que permitieran que lo mostrado
tuviese carácter dinámico (es decir, generado a partir de los datos de la petición). Este
método fue conocido como CGI ("Common Gateway Interface") y definía un mecanismo
mediante el que se podía pasar información entre el servidor y ciertos programas externos.
Los CGIs siguen utilizándose ampliamente; la mayoría de los servidores web permiten su
uso debido a su sencillez. Además, dan total libertad para elegir el lenguaje de
programación que se desea emplear.

El funcionamiento de los CGIs tenía


un punto débil: cada vez que se
recibía una petición, el servidor
debía lanzar un proceso para
ejecutar el programa CGI. Como la
mayoría de CGIs estaban escritos
en lenguajes interpretados, como
Perl o Python, o en lenguajes que
requerían "run-time environment",
como Java o VisualBasic, el servidor se veía sometido a una gran carga. La concurrencia de
múltiples accesos al CGI podía comportar problemas graves.
Por eso se empiezan a desarrollar alternativas a los CGIs que solucionaran el problema del
rendimiento. Las soluciones llegan básicamente por 2 vías: 1) se diseñan sistemas de
ejecución de módulos mejor integrados con el servidor, que evitan la instanciación y
ejecución de varios programas, y 2) se dota a los servidores un intérprete de algún lenguaje
de programación que permita incluir el código en las páginas de forma que lo ejecute el
servidor, reduciendo el intervalo de respuesta.
Entonces se experimenta un aumento del número de arquitecturas y lenguajes que
permiten desarrollar aplicaciones web. Todas siguen alguna de estas vías. Las más útiles y
las más utilizadas son las que permiten mezclar los 2 sistemas: un lenguaje integrado que
permita al servidor interpretar comandos "incrustados" en las páginas HTML y, además, un
sistema de ejecución de programas mejor enlazado con el servidor, que no implique los
problemas de rendimiento propios de los CGIs.

5
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Una de las más potentes es la seguida por Sun Microsystems con su Java, integrado por 2
componentes; un lenguaje que permite la incrustación de código en las páginas HTML que
el servidor convierte en programas ejecutables, JSP ("Java Server Pages" o "Páginas de
Servidor de Java"), y un método de programación muy ligado al servidor, con un
rendimiento superior a los CGIs, denominado "Java Servlet".
Otra tecnología de éxito y una de las más utilizadas es el lenguaje PHP. Se trata de un
lenguaje interpretado que permite la incrustación de HTML en los programas, con una
sintaxis derivada de C y Perl. El hecho de ser sencillo y potente ha contribuido a hacer de
PHP una herramienta muy apropiada para determinados desarrollos.
Existen otros métodos, a menudo vinculados a un Servidor web concreto, como mod_perl
para Apache o RXML para Roxen.
Las interfaces web tienen ciertas limitaciones en las funcionalidades que se ofrecen al
usuario. Hay funcionalidades comunes en las aplicaciones de escritorio como dibujar en la
pantalla o arrastrar-y-soltar que no están soportadas por las tecnologías web estándar.
Los desarrolladores web generalmente utilizan lenguajes interpretados (script) en el lado
del cliente para añadir más funcionalidades, especialmente para ofrecer una experiencia
interactiva que no requiera recargar la página cada vez (lo que suele resultar molesto a los
usuarios). Recientemente se han desarrollado tecnologías para coordinar estos lenguajes
con las tecnologías en el lado del servidor. Como ejemplo, AJAX es una técnica de desarrollo
web que usa una combinación de varias tecnologías.

Aunque existen muchas


variaciones posibles, una
aplicación web está
normalmente estructurada
como una aplicación de tres-
capas. En su forma más común,
el navegador web ofrece la
primera capa y un motor capaz
de usar alguna tecnología web
dinámica
(ejemplo: PHP, JavaServlets o ASP, ASP.NET, CGI, ColdFusion, embPerl,
Pythón (programming language) o Ruby on Rails) constituye la capa de enmedio. Por último,
una base de datos constituye la tercera y última capa. El navegador web manda peticiones
a la capa de enmedio que ofrece servicios valiéndose de consultas y actualizaciones a la
base de datos y a su vez proporciona una interfaz de usuario.

6
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

1.2 Ingeniería Web


La ingeniería web es el uso de métodos sistemáticos, disciplinados y cuantificables al
desempeño eficaz, operatividad y crecimiento de programas de muy buena calidad en la
World Wide Web.
Tim Berners-Lee inventó lo que hoy se conoce como Internet, desde entonces las páginas
web han evolucionado hasta el punto de que, en la actualidad, la web es el principal origen
de casi toda, por no decir, toda la información.

La ingeniería Web consiste en la disposición y empleo de fundamentos científicos, de


ingeniería y gestión y con orientaciones metódicas y disciplinadas del boom y desarrollo,
utilización y mantenimiento de sistemas y aplicaciones basados en el Web de alta calidad.
La ingeniería web se origina, debido al incremento sin control
que tiene la web y que causa una gran conmoción en la
sociedad y la nueva manera, de llevar la información de
diversos conceptos y la forma en cómo se presenta. Gracias a
la web y al incremento de las publicaciones y la información,
internet se convirtió en la mejor vía para obtener
conocimientos de casi cualquier disciplina, además, el
incremento de las páginas web, ocasionó que los ingenieros del software crearán nuevos
estudios con disciplina, sistemas y métodos para planteamientos de este novedoso medio.
Ingeniería web metodología

7
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

La ingeniería Web hace alusión a los procedimientos,


tecnología y herramientas que se emplean en el
desarrollo de aplicaciones Web complicadas y de gran
capacidad que sirve de apoyo a la evaluación, al
proyecto, crecimiento, ejecución y progreso de dichas
aplicaciones.
La metodología de la Ingeniería web consiste en un
procedimiento evolutivo, de seis etapas que son las
herramientas necesarias para transformar un modelo eficaz para el desarrollo de
programas para la web.
Master ingeniería web
El Máster en Ingeniería Web consiste en la especialización de ingenieros en el área de
tecnologías Web.
Se capacita a los egresados de Ingeniería Web, con un vasto adiestramiento en las
competencias de la Ingeniería Informática, proporcionándoles de las destrezas directivas
necesarias para la toma de decisiones en el ámbito empresarial e institucional en un
entorno cada vez más complejo y dinámico como es la Web.
El proceso de ingeniería web
Como ya vimos, las aplicaciones web tienen sus particularidades, y por lo tanto, requieren
de un proceso que las tome en cuenta. Es así como, una de las principales características
que se debe cumplir para ingeniería web, es que sea iterativo e incremental. Esto como
respuesta a la continua evolución de las aplicaciones web, así como el corto tiempo en el
que normalmente se requiere que sean implementadas.
En su libro anteriormente mencionado, Pressman sugiere un proceso de ingeniería web
compuesto por las siguientes fases:

•Planteamiento y formulación. Identificamos los objetivos de nuestra aplicación, y


delimitamos el alcance de la primera iteración.

•Planificación. Una vez planteado el problema, podremos estimar costos, riesgos y esfuerzo
durante el desarrollo.
Recordemos que en la planeación iterativa solamente se detalla la iteración actual, y las
iteraciones subsecuentes sólo se plantean de forma general.

8
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

•Análisis. Durante esta etapa establecemos los requerimientos técnicos, gráficos, y de


contenido, que incorporaremos en la iteración.

•Ingeniería. La actividad de ingeniería incorpora dos grupos de tareas que se realizan en


paralelo: el diseño del contenido y la producción, se enfocan en el diseño, producción y
adquisición del contenido de texto, gráfico y video que se vayan a integrar en la aplicación.
Estas tareas son realizadas por personal no técnico. Por otro lado, están el diseño
arquitectónico, de navegación e interfaz, el cual lidia con los aspectos técnicos.

•Generación de páginas y pruebas. Se prueba que el contenido dinámico se genere


correctamente, utilizando las plantillas, interfaces y contenidos diseñados en la fase de
ingeniería. Posteriormente se realizan las pruebas pertinentes, que dependerán del tipo de
aplicación y requerimientos no funcionales (por ejemplo, pruebas de desempeño, etcétera).

•Evaluación del cliente. Al final de cada iteración se debe realizar una evaluación con el
cliente, para validar el avance y determinar los cambios o mejoras –en caso de ser
necesarios–, que se aplicarán en las siguientes iteraciones.

No reinventar la rueda

Una regla de oro en el desarrollo de cualquier tipo de aplicación es: “no reinventar la rueda”.
Tal vez algo que agregaríamos al proceso sugerido por Pressmann, sería incorporar
actividades específicas para evaluar cuáles de los componentes que ya existen se pueden

9
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

reutilizar. Esto es porqué en el ambiente web existen muchos frameworks y engines que se
pueden adaptar fácilmente a nuestras necesidades. Por ejemplo: prácticamente todos los
websites y portales modernos utilizan un CMS (Content Management System). Así que
antes de lanzarnos a desarrollar desde cero, echemos un vistazo a los elementos existentes
tanto dentro como fuera de nuestra organización.

1.2.1 Principios de la ingeniería aplicados a las aplicaciones Web


El desarrollo de aplicaciones web es una tarea compleja que requiere del uso de una amplia
variedad de conocimientos de tecnología, organización y comunicación. Los sistemas de
información basados en web son mucho más complejos que las aplicaciones tradicionales
debido a que han de construirse sobre componentes tecnológicos que se encuentran en
continua evolución, han de encajar en la infraestructura existente en la empresa y la interfaz
de usuario debe de ofrecer un nivel de calidad hasta ahora no exigido.
Las aplicaciones web y la ejecución de estas se realizan de forma remota a través de la
conexión a Internet; el procesamiento de los datos lo lleva a cabo el servidor web y el
usuario solo recibe los resultados en su terminal.
Internet y la Web han influido enormemente tanto en el mundo de la informática como en
la sociedad general. Si nos centramos en la Web, en poco menos de 10 años han
transformado los sistemas informáticos: ha roto las barreras físicas (debido a la distancia),
económicas y lógicas (debido al empleo de distintos sistemas operativos, protocolos, etc.)
y han abierto todo un abanico de nuevas posibilidades.

Las aplicaciones Web, hacen posible el acceso impensado a recursos desde lugares remotos.
Por ello, es preciso que los desarrolladores presten atención a los requerimientos, brindar
calidad, evaluar rendimiento, considerar sistemas escalables sin perder de vista el
mantenimiento y correcta documentación. El desarrollo de WebApps llegó para quedarse y
se prevé un largo ciclo de vida, por lo que se puede afirmar que aquellas aplicaciones que
no se desarrollen de forma apropiada, tienen alta probabilidad de fallos y bajo rendimiento.

10
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

El desarrollo de aplicaciones Web posee determinadas características que lo hacen


diferente del desarrollo de aplicaciones o software tradicional y sistemas de información.
La ingeniería de la Web es multidisciplinar y aglutina contribuciones de diferentes áreas:

 Arquitectura de la información.
 Ingeniería de hipermedia/hipertexto.
 Ingeniería de requisitos.
 Diseño de interfaz de usuario.
 Usabilidad.
 Diseño gráfico y de presentación.
 Diseño y análisis de sistemas.
 Ingeniería de software.
 Ingeniería de datos.
 indexada recuperación de información.
 Testeo.
 Modelado y simulación.
 Despliegue de aplicaciones.
 Operación de sistemas y gestión de proyectos.
La ingeniería de la Web no es un clon o subconjunto de la ingeniería de software aunque
ambas incluyen desarrollo de software y programación, pues a pesar de que la ingeniería
de la Web utiliza principios de ingeniería de software, incluye nuevos
enfoques, metodologías, herramientas, técnicas, guías y patrones para cubrir los requisitos
únicos de las aplicaciones web. Sin embargo el término de ingeniería de la web ha sido un
término muy controvertido especialmente para profesionales en disciplinas tales como
la ingeniería del software ya que no la consideran como un campo dentro de la ingeniería.
Los principales aspectos de la ingeniería de la Web incluyen, entre otros, los siguientes
temas:

 Diseño de procesos de negocio para aplicaciones web.


 Herramientas CASE para aplicaciones web.
 Generación de código para aplicaciones web.
 Desarrollo web colaborativo.
 Modelado conceptual de aplicaciones web.
 Diseño de Modelos de datos para sistemas de información web.
 Ingeniería web empírica.
 Entornos de desarrollo de aplicaciones web integrados.
 Herramientas de autor para contenido multimedia.
 Pruebas de rendimiento de aplicaciones basadas en web.
 Personalización y adaptación de aplicaciones web.
 Herramientas y métodos de prototipado.

11
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

 Control de calidad y pruebas de sistemas.


 Ingeniería de requisitos para aplicaciones web.
 Aplicaciones para la Web Semántica.
 Factorías de software para la web.
 Métodos, herramientas y automatización de pruebas para aplicaciones web.
 Aplicaciones web móviles y ubicuas.
 Usabilidad de aplicaciones web.
 Accesibilidad para la web.
 Metodologías de diseño web.
 Formación en ingeniería de la web.
 Diseño de interfaces de usuario.
 Métricas para la web, estimación de costes y medición.
 Gestión de proyectos web y gestión de riesgos.
 Desarrollo y despliegue de servicios web.

1.2.2 Modelos de procesos aplicables en la ingeniería Web


Los métodos de Ingeniería Web dirigidos por modelos han mejorado tanto la calidad como
la eficiencia, a la hora de desarrollar aplicaciones Web. Estos métodos utilizan modelos
conceptuales para capturar, de manera abstracta, una representación detallada de la
aplicación Web a desarrollar. La ventaja más destacada de esta aproximación es que a partir
de estos modelos, ampliamente validados en entornos industriales, es factible la generación
sistemática del código que implementa la aplicación Web.
En esta línea de investigación se ha abordado el desarrollo de sistemas software para la
Web, a partir de la construcción de modelos conceptuales. En este ámbito, los resultados
de investigación abarcan tanto la descripción de los sistemas Web a nivel de modelado
como la transformación de modelos al código Web.
A nivel de modelado se ha trabajado en: mejorar la captura de requisitos inherentes a los
sistemas Web, ampliar el grado de adaptabilidad de las aplicaciones actuales, dar soporte a
las características que introducen los sitios Web Accesibles, la generación de servicios
Web/REST, e incluir aspectos colaborativos y de interfaces de usuario avanzadas propios de
la Web 2.0
A nivel de implementación, se están aplicando nuevas técnicas al desarrollo de
compiladores avanzados que transforman estos modelos conceptuales Web en código en
una plataforma Web, como puede ser PHP, J2EE o gestores CMS.
A continuación se comentan algunas de las metodologías enumeradas en el apartado
anterior:
UWE (UML-based Web Engineering) sirve para modelar aplicaciones web, y presta una
especial atención a la sistematización y personalización (sistemas adaptativos). Provee de

12
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

perfiles UML, metamodelos, un proceso de desarrollo dirigido por modelos, y herramientas


de soporte para el diseño sistemático de aplicaciones web (ArgoUWE y MagicUWE). Utiliza
notación basada en UML 2.0 (OMG): para aplicaciones Web en general y para aplicaciones
adaptativas en particular. La metodología consta de seis modelos:

 Modelo de casos de uso para capturar los requisitos del sistema.


 Modelo conceptual para el contenido (modelo del dominio).
 Modelo de usuario: modelo de navegación que incluye modelos estáticos y
dinámicos.
 Modelo de estructura de presentación, modelo de flujo de presentación. o Modelo
abstracto de interfaz de usuario y modelo de ciclo de vida del objeto.
 Modelo de adaptación.
Web Services Distributed Management (WSDM, se pronuncia wisdom) es una
especificación basada en servicios web para gestionar y monitorizar el estado de otros
servicios. Es un estándar OASIS (Organization for the Advancement of Structured
Information Standards), y WSDM consiste en dos especificaciones:

 Management Using Web Services (MUWS): define como representar y como


acceder a las interfaces de gestión de recursos expuestos como servicios web.
Define un conjunto básico de operaciones de gestión sobre los servicios, tales como
identificación, métricas, configuración y relaciones, además de un formato de
eventos estándar.
 Management Of Web Services (MOWS): define como manejar servicios web como
recursos y como describir y acceder a las capacidades de gestión utilizando MUWS.
Esta especificación permite a las aplicaciones de gestión de servicios web
interoperar entre sí.
WebML (Web Modeling Language): Es una metodología de modelado visual de aplicaciones
web, centrada especialmente en las aplicaciones de uso intensivo de datos, separando el
contenido de la información en páginas, navegación y presentación, que se pueden definir
y desarrollar de forma independiente. Permite la especificación de operaciones de
manipulación de datos para actualizar la aplicación.
Cuenta con cuatro perspectivas: el Modelo Estructural (de los datos de la aplicación), el
Modelo de Hipertexto (para cada hipertexto describe qué páginas lo componen, y cómo
navegan), el Modelo de Presentación (disposición y apariencia gráfica), y el Modelo de
Personalización (para definir operaciones específicas para usuarios ó grupos de usuarios, ya
que se almacenan como entidades en el Modelo Estructural). Dispone de una herramienta
CASE (WebRatio).
OOWS: Es una extensión del método OO-Method (ya basado en modelos), al cual se le
añaden a las técnicas de modelado conceptual, capacidades de expresar la hipermedia

13
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

inherente a las aplicaciones web. Consta de cinco modelos, que se especifican a


continuación:

 El Modelo de Objetos define la estructura y las relaciones estáticas entre clases


identificadas en el dominio del problema.
 En el Modelo Dinámico se describen las posibles secuencias de servicios y los
aspectos relacionados con la interacción entre objetos.
 El Modelo Funcional captura la semántica asociada a los cambios de estado entre
los objetos motivados por la ocurrencia de eventos o servicios.
 El Modelo de Navegación define la semántica navegacional asociada a las clases de
los objetos del modelo. Es en este modelo donde se explicita la navegación
permitida en la aplicación para cada agente del sistema, por lo que se realiza un
mapa navegacional por cada uno, en el que se definen nodos (posibles puntos de
interacción con el usuario) y arcos (posibilidad de alcanzar otro nodo). A
continuación se muestra un ejemplo:
 El Modelo de Presentación captura los requisitos básicos de presentación de
información. Está fuertemente basado en el modelo de navegación y permite
definir, de una manera abstracta, la estructura lógica de presentación de los objetos
navegacionales en la interfaz de usuario.
Esta metodología también cuenta con un entorno de desarrollo para aplicaciones web
(OOWS Suite).
Todas estas metodologías necesitan transformar los modelos para generar aplicaciones
web. Según el framework MDA, las transformaciones se pueden aplicar para establecer un
proceso de desarrollo trazable desde los modelos Todas estas metodologías necesitan
transformar los modelos para generar aplicaciones web. Según el framework MDA, las
transformaciones se pueden aplicar para establecer un proceso de desarrollo trazable
desde los modelos abstractos (CIM, PIM) a los modelos dependientes de la plataforma, ó
incluso directamente a su implementación.
La mayoría de las metodologías utilizan herramientas CASE para realizar estas
transformaciones. Estas herramientas se basan en técnicas de generación de código para
obtener aplicaciones web a partir de un reducido conjunto de modelos conceptuales ó de
diseño.
Las transformaciones se pueden dividir en Transformaciones Modelo-a-Modelo, y
Transformaciones Modelo-a-Código.
Las Transformaciones Modelo-a-Modelo se pueden separar en:
• Transformaciones verticales que convierten modelos de un mayor nivel de abstracción en
otros de un nivel menor.

14
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

• Transformaciones horizontales que describen el mapeo entre modelos del mismo nivel de
abstracción.
Las transformaciones verticales utilizan lenguajes como QVT, ATL ó AGG. A veces incluso se
definen como mecanismos de mezcla para introducir nuevos conceptos como estilos de
arquitectura, requisitos de usuario, y medida de la calidad.
Las transformaciones horizontales se utilizan para mantener la consistencia de las
especificaciones de los modelos, comprobando que estos modelos no imponen requisitos
contradictorios en sus elementos comunes. Las transformaciones Modelo-a-Código se
llevan realizando más tiempo, aunque a menudo se han utilizado lenguajes de propósito
general (C++, Java ó Python). Aunque un nuevo estándar del OMG ha establecido las
características propias de los lenguajes de transformación Modelo-a-Código, y algunas
herramientas han sido adaptadas para incluirlas.

1.3 Características de las aplicaciones Web


Las aplicaciones web modernas tienen expectativas más altas por parte del usuario y
mayores demandas que nunca. Se espera que las aplicaciones web actuales estén
disponibles 24 horas al día los siete días de la semana desde cualquier lugar del mundo y se
puedan usar desde prácticamente cualquier dispositivo o tamaño de pantalla. Las
aplicaciones web deben ser seguras, flexibles y escalables para satisfacer los picos de
demanda. Cada vez más, los escenarios complejos deben controlarse mediante
experiencias de usuario enriquecidas creadas en el cliente con JavaScript y comunicarse de
forma eficaz a través de las API web.
ASP.NET Core se ha optimizado para aplicaciones web modernas y escenarios de hospedaje
basados en la nube. Su diseño modular permite que las aplicaciones dependan solo de
aquellas características que realmente usan, lo que mejora la seguridad y el rendimiento de
la aplicación mientras se reducen los requisitos de recursos de hospedaje.

Aplicación de referencia: eShopOnWeb


En esta guía se incluye una aplicación de referencia, eShopOnWeb, en la que se muestran
algunos de los principios y las recomendaciones. La aplicación es una sencilla tienda en línea
que admite búsquedas a través de un catálogo de camisetas, tazas de café y otros productos
de marketing. La aplicación de referencia es deliberadamente sencilla para que sea fácil de
entender.

Hospedada en la nube y escalable


ASP.NET Core se ha optimizado para la nube (pública, privada, cualquier nube) debido a su
memoria baja y rendimiento alto. La superficie más pequeña de las aplicaciones ASP.NET
Core significa que se pueden hospedar más en el mismo hardware, y se paga por menos
recursos cuando se usan servicios de hospedaje en la nube de pago por uso. El rendimiento
mayor significa que se puede servir a más clientes desde una aplicación dado el mismo

15
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

hardware, reduciendo así la necesidad de invertir en infraestructura y servidores de


hospedaje.

Multiplataforma
ASP.NET Core es multiplataforma y se puede ejecutar en Linux, macOS y Windows. Esto
abre muchas opciones nuevas para el desarrollo y la implementación de aplicaciones
compiladas con ASP.NET Core. Los contenedores de Docker, tanto en Linux como en
Windows, pueden hospedar aplicaciones ASP.NET Core, lo que les permite aprovechar las
ventajas que ofrecen los contenedores y microservicios.

Modular y de acoplamiento flexible


Los paquetes NuGet son objetos de primera clase en .NET Core y las aplicaciones ASP.NET
Core se componen de muchas bibliotecas de NuGet. Esta granularidad de la funcionalidad
ayuda a garantizar que las aplicaciones solo dependen e implementan la funcionalidad que
realmente necesitan, lo que reduce su superficie y el área expuesta a vulnerabilidades de
seguridad.
ASP.NET Core también es totalmente compatible con la inserción de dependencias, tanto
de forma interna como en la aplicación. Las interfaces pueden tener varias
implementaciones que se pueden intercambiar según sea necesario. La inserción de
dependencias permite acoplar aplicaciones de forma flexible a esas interfaces en lugar de a
implementaciones específicas, lo que facilita la ampliación, el mantenimiento y las pruebas
correspondientes.

Pruebas sencillas con pruebas automatizadas


Las aplicaciones ASP.NET Core admiten las pruebas unitarias y, gracias a su acoplamiento
flexible y su compatibilidad con la inserción de dependencias, se facilita el intercambio de
intereses de infraestructura con implementaciones falsas para fines de prueba. ASP.NET
Core también incluye un TestServer que se puede usar para hospedar aplicaciones en
memoria. Después, las pruebas funcionales pueden realizar solicitudes a este servidor en
memoria, ejecutar la pila de aplicación completa (incluido el software intermedio, el
enrutamiento, el enlace de modelos, los filtros, etc.) y recibir una respuesta en una fracción
del tiempo que sería necesario para hospedar la aplicación en un servidor real y realizar
solicitudes a través de la capa de red. Estas pruebas son especialmente fáciles de escribir y
útiles para las API, que cada vez son más importantes en las aplicaciones web modernas.

Comportamientos tradicionales y de SPA admitidos


Las aplicaciones web tradicionales apenas contaban con comportamiento del lado cliente,
y en su lugar se basaban en el servidor para todas las operaciones de navegación, consultas
y actualizaciones que la aplicación tuviera que realizar. Cada operación nueva realizada por
el usuario se convertiría en una nueva solicitud web, con el resultado de una recarga de
página completa en el explorador del usuario final. Los marcos de controlador de vista de
modelos (MVC) clásicos normalmente siguen este enfoque, en el que cada solicitud nueva

16
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

se corresponde a otra acción de controlador, lo que a su vez podría funcionar con un modelo
y devolver una vista. Es posible que algunas operaciones individuales en una página
determinada se mejoraran con funcionalidad de AJAX (JavaScript asincrónico y XML), pero
la arquitectura global de la aplicación usaba muchas vistas MVC distintas y extremos de
URL. Además, ASP.NET Core MVC también admite Razor Pages, una forma más sencilla de
organizar las páginas de tipo MVC.
Las aplicaciones de página única (SPA), por el contrario, implican muy pocas cargas de
página generadas de forma dinámica en el lado de servidor (si existen). Muchas SPA se
inicializan en un archivo HTML estático que carga las bibliotecas de JavaScript necesarias
para iniciar y ejecutar la aplicación. Estas aplicaciones hacen un uso intensivo de las API web
para sus necesidades de datos y pueden proporcionar experiencias de usuario mucho más
enriquecidas.
Muchas aplicaciones web implican una combinación del comportamiento de aplicación web
tradicional (normalmente para el contenido) y SPA (para la interactividad). ASP.NET Core
admite MVC (basado en vistas o páginas) y las API web en la misma aplicación y usa el mismo
conjunto de herramientas y bibliotecas de marco subyacentes.

Implementación y desarrollo simples


Las aplicaciones ASP.NET Core se pueden escribir mediante interfaces de línea de comandos
y editores de texto simples, o bien con entornos de desarrollo completos como Visual
Studio. Las aplicaciones monolíticas normalmente se implementan en un solo punto de
conexión. Las implementaciones se pueden automatizar con facilidad para que tengan lugar
como parte de una canalización de integración continua (CI) y entrega continua
(CD). Además de las herramientas de CI/CD tradicionales, Windows Azure tiene
compatibilidad integrada para repositorios de Git y puede implementar automáticamente
las actualizaciones que se realicen en una rama o etiqueta de Git especificada.

ASP.NET tradicional y formularios Web Forms


Además de ASP.NET Core, ASP.NET 4.x tradicional sigue siendo una plataforma sólida y
confiable para compilar aplicaciones web. ASP.NET es compatible con los modelos de
desarrollo de MVC y API web, así como los formularios Web Forms, que resultan muy
adecuados para el desarrollo de aplicaciones basadas en páginas y ofrecen un ecosistema
enriquecido de componentes de terceros. Desde hace tiempo, Windows Azure ofrece una
gran compatibilidad con las aplicaciones ASP.NET 4.x y muchos desarrolladores están
familiarizados con esta plataforma.

1.3.1 Categorías de las aplicaciones Web


El desarrollo de diferentes tipos de aplicaciones web ha cambiado significativamente
nuestras vidas y es que ahora basta con tener conexión a Internet para hacer la compra,

17
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

encontrar trasporte inmediatamente o encontrar aquella información que necesitamos y


que nos interesa.
Hoy en día hay infinitas webs a nuestra disposición. Algunas de ellas son de
entretenimiento, otras sirven para comprar o vender un producto o servicio, otras para
intercambiar algo entre usuarios individuales y otras simplemente nos hacen la vida más
sencilla. Pero vamos a ver cuáles son los tipos de aplicaciones web que existen para poder
comprender cómo funcionan desde dentro.

Estos son los seis tipos de aplicaciones web que existen


 Aplicación web estática: son las más sencillas y no suelen estar sometidas a muchos cambios
porque no resulta sencillo hacerlos. Están desarrolladas con código HTML y CSS y también
pueden mostrar en algunas partes banners o vídeos, entre otras opciones. La razón que
explica que no estén sometidas a muchas variaciones es que para hacerlos hay que descargar
el HTML, modificarlo y subirlo de nuevo al servidor.
 Aplicación web dinámica: Las aplicaciones web dinámicas son mucho más complejas que las
anteriores si hablamos desde un punto de vista técnico, y la información y el contenido se
actualizan cada vez que los usuarios acceden a la web. Existen muchos lenguajes de
programación para aplicaciones web dinámicas, pero los más comunes son PHP y JavaScript.
Además de cambiar la información y el contenido, también se puede modificar el diseño de
la web. Un ejemplo de página web dinámica sería google.es.
 Tienda virtual o comercio electrónico: son conocidas como e-commerce y están pensadas
para vender productos. Son más complejas porque tienen que incluir el método de pago y
estar sincronizadas con el stock de la compañía y con la logística. Este tipo de aplicaciones
web son muy comunes y algunos ejemplos son Amazon, FNAC o cualquier web de venta de
ropa u otro producto.

18
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

 Portal web app: este tipo de aplicaciones web incluyen diferentes categorías y secciones.
Pueden tener chats, foros o buscador, entre otras opciones. InfoJobs es un portal web app.
 Aplicación web animada: estaban relacionadas con la tecnología FLASH, aunque hoy en día lo
están con CSS y SVG. Permiten presentar contenido con efectos animados. Son muy útiles
para diseñadores y desarrolladores pero, como contrapartida, presentan un problema: no
son útiles para mejorar el posicionamiento ni el SEO porque los buscadores no leen
correctamente su información. Un ejemplo es Android.com.

 Aplicación web con Gestor de contenido: son las aplicaciones más comunes para todas
aquellas webs que actualizan su contenido constantemente. Tienen un gestor de contenidos
(CMS) gracias al cual se añaden, modifican y actualizan los contenidos y algunos ejemplos de
CMS son WordPress, Drupal y Joomla, entre otros. Las páginas de periódicos digitales o los
blogs ya sean personales o corporativos, son buenos ejemplos de aplicaciones web con
gestor de contenido digital.
Por lo que respecta a los CMS, cabe destacar que WordPress es el más extendido porque,
además de ser gratuito, es el más sencillo de utilizar. Joomla, por su parte, es el segundo con
mayor número de seguidores y Drupal es muy personalizable y adaptable.
A la hora de elegir una u otra es importante que contactes con profesionales en la materia
para recibir el asesoramiento que te guíe en la dirección correcta. En Einatec podemos
ayudarte y si quieres más información, solo tienes que llamarnos. En cuanto podamos
atenderte te resolveremos todas las dudas que te puedan surgir. Al final, estarás totalmente
seguro de lo que quieres.

1.3.2 Atributos de las aplicaciones Web


No hay mucho que decir con respecto al hecho de que los sistemas y las aplicaciones'
basados en Web (nos referiremos a estas como WebApps) son muy diferentes de las otras
categorías de software informático que se tratan en el Capítulo 1. Powell resume las
diferencias básicas cuando afirma que los sistemas basados en Web «implican una mezcla
de publicación impresa y desarrollo de software, de marketing e informática, de
comunicaciones internas y relaciones externas, y de arte y tecnología». Los atributos
siguientes se van a encontrar en la gran mayoría de las WebApps.
Intensivas de Red. Por su propia naturaleza, una WebApp es intensiva de red. Reside en una
red y debe dar servicio a las necesidades de una comunidad diversa de clientes. Una
WebApp puede residir en Internet (haciendo posible así una comunicación abierta para
todo el mundo). De forma alternativa, una aplicación se puede ubicar en una Intranet
(implementando la comunicación a través de redes de una organización) o una Extranet
(comunicación entre redes).
Controlada por el contenido. En muchos casos, la función primaria de una WebApp es
utilizar hipermedia para presentar al usuario el contenido de textos, gráficos, sonido y
vídeo.

19
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Evolución continua. A diferencia del software de aplicaciones convencional, que evoluciona


con una serie de versiones planificadas y cronológicamente espaciadas, las aplicaciones
Web están en constante evolución. No es inusual que algunas WebApps (específicamente,
su contenido) se actualicen cada hora.

Un cuidado y una alimentación continua permite que un sitio Web crezca (en robustez y en
importancia). Pero a diferencia de un jardín, las aplicaciones Web deben de servir (y
adaptarse a) las necesidades de más de un jardinero, Las siguientes características de
WebApps son las que conducen el proceso:
Inmediatez. Las aplicaciones basadas en Web tienen una inmediatez [NOR99] que no se
encuentra en otros tipos de software. Es decir, el tiempo que se tarda en comercializar un
sitio Web completo puede ser cuestión de días o semanas. Los desarrolladores deberán
utilizar los métodos de planificación, análisis, diseño, implementación y comprobación que
se hayan adaptado a planificaciones apretadas en tiempo para el desarrollo de WebApps.
Seguridad. Dado que las WebApps están disponibles a través de1 acceso por red, es difícil,
si no imposible, limitar la población de usuarios finales que pueden acceder a la aplicación.
Con objeto de proteger el contenido confidencial y de proporcionar formas seguras de
transmisión de datos, deberán implementarse fuertes medidas de seguridad en toda la
infraestructura que apoya una WebApp y dentro de la misma aplicación.
Estética. Una parte innegable del atractivo de una WebApp es su apariencia e interacción.
Cuando se ha diseñado una aplicación con el fin de comercializarse o vender productos o
ideas, la estética puede tener mucho que ver con el éxito del diseño técnico.

Las características generales destacadas anteriormente se aplican a todas las WebApps,


pero con un grado diferente de influencia. Las categorías de aplicaciones que se enumeran
a continuación son las más frecuentes en el trabajo de la Web:

informativa: se proporciona un contenido solo de lectura con navegación y enlaces simples.

descarga: un usuario descarga la información desde el servidor apropiado.

personalizable: el usuario personaliza el contenido a sus necesidades específicas.

interacción: la comunicación entre una comunidad de usuarios ocurre mediante un espacio

20
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

chat (charla), tablones de anuncios o mensajería instantánea; entrada del usuario: la


entrada basada en formularios es el mecanismo primario de la necesidad de comunicación.

orientada a transacciones: el usuario hace una solicitud (por ejemplo, la realización un


pedido) que es cumplimentado por la WebApp;

orientado a servicios: la aplicación proporciona un servicio al usuario, por ejemplo, ayuda al


usuario a determinar un pago de hipoteca.

portal: la aplicación canaliza al usuario llevándolo a otros contenidos o servicios Web fuera
del dominio de la aplicación del portal.

acceso a bases de datos: el usuario consulta en una base de datos grande y extrae
información.

almacenes de datos: el usuario hace una consulta en una colección de bases de datos grande
y extrae información.

Las características y las categorías destacadas anteriormente en esta sección, y las


categorías de aplicaciones representan los hechos reales para los ingenieros de la Web. La
clave es vivir dentro de las restricciones impuestas por las características anteriores y aun
así tener éxito en la elaboración de la WebApp.

1.3.3 Atributos de aplicaciones enriquecidas de Internet


Las aplicaciones de Internet enriquecidas, o RIA (rich Internet applications"), son
aplicaciones web que tienen la mayoría de las características de las aplicaciones de
escritorio tradicionales. Estas aplicaciones utilizan un navegador web estandarizado para
ejecutarse y por medio de complementos o mediante una máquina virtual se agregan las
características adicionales.
Las RIA surgen como una combinación de las ventajas que ofrecen las aplicaciones web y
las aplicaciones tradicionales. Buscan mejorar la experiencia del usuario.
Normalmente en las aplicaciones web, hay una recarga continua de páginas cada vez que
el usuario pulsa sobre un enlace. De esta forma se produce un tráfico muy alto entre

21
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

el cliente y el servidor, llegando muchas veces a recargar la misma página con


un cambio mínimo.
En los entornos RIA, en cambio, no se producen recargas de página, ya que desde el
principio se carga toda la aplicación, y sólo se produce comunicación con el servidor cuando
se necesitan datos externos como datos de una base de datos o de otros ficheros externos.

¿Qué son las Aplicaciones RIA?


¿Cuántas veces nos hemos quejado de lo poco interactivas que son las aplicaciones web
que utilizamos habitualmente? Necesitan recargar la página cuando queremos realizar
tareas que son simples o que requieren un cambio mínimo. Esta lentitud suele
atormentarnos y hace que echemos de menos la agilidad que nos ofrecen otro tipo de
aplicaciones que ya conocemos, como las instaladas en el propio PC o las aplicaciones
cliente-servidor.
A diferencia de las aplicaciones web habituales, las RIA (Rich Internet Applications)
enriquecen la experiencia del usuario a través de interfaces propias de aplicaciones de
escritorio, que suelen ser más interactivas y con mayores
capacidades gráficas y multimedia. Éste es el caso de Gmail, la aplicación de Google para
la gestión del correo electrónico, que tiene un interfaz web que permite al usuario
efectuar acciones sobre su correo igual que si estuviera utilizando un programa cliente
instalado en su propio equipo.
En los años 90 y con el desarrollo de Internet, las aplicaciones web fueron tomando el
espacio que antes ocupaban los mainframes y las aplicaciones cliente-servidor. La razón de
este cambio estuvo en la facilidad que ofrecían estas nuevas aplicaciones para
su distribución y mantenimiento, en que conseguían llegar a más público utilizando un
único cliente (navegador web) y en que hacían uso de los protocolos de comunicación de
Internet. Pero como contraprestación, la experiencia de uso de estas aplicaciones no era
tan satisfactoria. El navegador web obligaba a las aplicaciones a tener un interfaz estático
tipo request-response, lo que redundaba en una recarga de página para obtener datos del
servidor.
RIA introduce un nuevo modelo de programación de aplicaciones que combina las ventajas
de los dos modelos predominantes hasta el momento: el de las aplicaciones cliente-
servidor y el del modelo multi-capa utilizado por las aplicaciones web, con un claro objetivo:
mejorar la experiencia del usuario.

22
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Con las RIA, los usuarios reciben respuestas instantáneas sin esperar a las conexiones de ida
y vuelta contra el servidor que requerían las aplicaciones web tradicionales. Pero además,
en muchos de los casos, las RIA pueden funcionar en cualquiera de los sistemas
operativos que tenga instalado el usuario en su equipo (son multiplataforma) y utilizan
el protocolo de comunicación de Internet, TCP/IP.
Se espera un gran desarrollo de este tipo de aplicaciones en un futuro próximo de cara al
gran público y al ámbito interno de las organizaciones. Las principales ventajas que
introducen estas aplicaciones son las siguientes:
 Agilidad en la respuesta.
 Cálculos rápidos, controles prediseñados y funciones gráficas, interactivas y
multimedia avanzadas.
 En muchos casos no requieren de instalación en el equipo del usuario (es suficiente
con disponer de un navegador web), por lo que no es necesario pensar en
distribuciones de software.
 Uso desde cualquier ordenador con acceso a Internet.
 Pero también existen ciertos retos con los que las tecnologías RIA deberán lidiar en
el futuro:
 Las RIA introducen cambios en los hábitos de navegación y en el uso de las
aplicaciones web, y el usuario tardará un tiempo en digerirlos. Además, se dan
ciertas complicaciones para el cumplimiento de los niveles de accesibilidad.
 Algunas de las tecnologías RIA que hacen uso del navegador web deberán superar
algunos aspectos no resueltos aún, como la posibilidad de introducir "Favoritos" o
la de utilizar el botón "Atrás" del navegador web.
 Las RIA deberán considerar la optimización de los motores de búsqueda o la
capacidad de los sistemas de análisis para monitorizar sitios web construidos con
esta tecnología.
 La incidencia de estas aplicaciones sobre aspectos relacionados con
la seguridad deberá estudiarse en su globalidad a la hora de definir
la arquitectura de sistemas y aplicaciones de la organización.

23
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Relación con SOA


La adopción de nuevos enfoques relacionados con SOA (Arquitectura Orientada a Servicios)
por parte de las organizaciones y por las suites de productos de software más extendidas
en el mercado de las TI, constituye un caldo de cultivo interesante para la introducción de
las tecnologías RIA.
SOA ofrece una capa de abstracción que facilita la interrelación entre los servicios ofrecidos
por las diferentes aplicaciones de una organización. Pero las ventajas de este nuevo
enfoque habitualmente se encuentran ocultas para el usuario de negocio. Una manera de
aflorar el valor que SOA reportará al usuario final será mostrando la facilidad de las
aplicaciones RIA para integrar los mash-ups y web-services desarrollados siguiendo este
enfoque.

¿Qué tecnología elegir?


Existen diferentes tecnologías de programación de aplicaciones RIA. La selección de la más
adecuada dependerá del resultado que se quiera obtener en cada caso y de las
particularidades técnicas del entorno en el que se implementará la aplicación. Se
consideran principalmente dos categorías de aplicaciones:
 Desktop
Aplicaciones que no utilizan navegador web y que se instalan en cada equipo personal.
Suelen ser adecuadas para aplicaciones que requerirán un gran nivel de interacción con el
usuario, intensivas en el uso de gráficos y con necesidad de utilizar funciones de otras
aplicaciones. Ejemplo: aplicación desktop de eBay.
 RWA (Rich Web Applications)
Aplicaciones que se ejecutan utilizando el navegador web. Suelen ser adecuadas cuando se
requiere un uso ocasional, una interacción con otras aplicaciones o servicios web y cuando
el procesamiento de información y su almacenamiento se realizan en el servidor. Ejemplo:
Google Docs and Spreadsheets.
Pero existen más variables a tener en cuenta a la hora de seleccionar la tecnología más
adecuada. Dentro del abanico de tecnologías disponibles se encuentran las que hacen uso
de estándares abiertos y las que no, así como las que resultan ser multiplataforma y las que,
por ahora, solamente funcionan en unos determinados entornos.

Principales tecnologías disponibles en el mercado:


 Ajax (por ejemplo el que genera el Google Web Toolkit)
 Flex (Adobe). Requiere tener instalado el Adobe Flash Player en el equipo del
usuario
 Silverlight (Microsoft)
 JavaFX (Sun Microsystems)

24
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

 OpenLaszlo (código abierto)

Qué son los RIA Services?


Las aplicaciones RIA (Rich Internet Application) están cada vez más de moda, ya que entre
otras nos permiten ofrecer una mejor experiencia de usuario.
A lo largo de este post voy a intentar explicar, de una manera resumida y simplificada, los
principales conceptos de RIA Services y para qué nos puede servir. Vamos a ver si lo
consigo…
La arquitectura de una aplicación Web tradicional sería la siguiente:

Exceptuando ciertas funcionales Ajax que pueden suponer una parte "menor" del total, en
las aplicaciones web tradicionales las diferentes capas lógicas (lógica de presentación,
lógica de negocio, acceso a datos.) de las que está compuesta se distribuyen generalmente
en dos capas físicas que se encuentran en el servidor.
En la parte cliente lo que tenemos es el código HTML que el servidor nos devuelve.

25
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Una aplicación RIA sería algo así:

El desarrollo de una aplicación RIA supone desplazar una de las capas lógicas de la
aplicación, la capa de presentación, a la parte cliente, convirtiéndole a éste en un "cliente
pesado"…En el cliente tenemos parte de la aplicación, no sólo HTML.
Por ejemplo, en el caso de crear una aplicación Silverligth éste sería el caso dónde nos
encontraríamos. La aplicación corre en el cliente y en este dónde se ejecuta.
Pero claro, llevar esta parte al cliente no es gratis, ya que se complican
las comunicaciones entre la lógica de presentación y la lógica de negocio.
En el caso de aplicaciones web tradicionales la lógica de presentación y de negocio suelen
estar dentro de la misma capa física, por lo que la comunicación entre ambas no supone
ninguna complejidad.
Si entre ambas capas metemos "internet", la comunicación ya no se puede hacer de manera
directa y tendremos que pensar en desarrollar una capa de servicios en el servidor que el
cliente pueda consumir, lo que complica el desarrollo, aumentando los tiempos
y problemas con los que nos podemos encontrar: Crear la capa de servicios, exponer
los métodos que necesita, crear proxys, validación, autenticación…

¿Cuál es el objetivo de RIA Services?


Pues el objetivo de RIA Services es simplificar el desarrollo de aplicaciones RIA, para que
podemos desarrollar aplicaciones de este tipo como si fuesen aplicaciones web
tradicionales, sin tener que preocuparnos de los aspectos que mencionaba en
el párrafo anterior.
Beneficiarnos de todas las bondades de tener aplicaciones RIA pero sin pagar un coste por
ello (al menos no uno excesivo), pudiendo hacerlo de una manera similar al que si
hiciésemos aplicaciones web tradicionales.
En algunos sitios he visto que definían RIA Services como las herramientas RAD de Microsoft
para la construcción de aplicaciones RIA…no sé si será para tanto :-)

26
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

RIA Services nos va a servir de pegamento entre la lógica de presentación y la lógica de


negocio para simplificar la comunicación entre ambas, permitiéndonos centrarnos en el
desarrollo de la aplicación propiamente dicha.
En la arquitectura que se presenta a continuación podéis ver dos nuevos componentes que
aporta RIA Services, uno en la parte cliente (DomainContext) y otro en la parte servidora
(DomainService).

Seguro que ya todos conocéis los DataSources que tenemos actualmente disponibles
en ASP.NET (XmlDataSource, SqlDataSource, ObjectDataSource, EntityDataSource etc…) y
lo mucho que nos facilitan el desarrollo.
Pues bien, con RIA Services tendremos uno nuevo; DomainDataSource. Este componente
es muy similar al resto de DataSources (la idea es la misma) y nos va a permitir trabajar de
una manera bastante cómoda y sencilla contra servicios de dominio que se exponen con
RIA Services.
Por ejemplo, en una aplicación RIA hecha con Silverlight podemos tener los
típicos formularios de lista/detalles, con las operaciones de selección, inserción,
actualización, borrado, filtrado y ordenación como si de una aplicación web tradicional se
tratase.
Por cierto, aunque menciono Silverlight, el componente DomainDataSource también se
puede usar en aplicaciones ASP.NET tradicionales o para montar aplicaciones con Dynamic
Data, no es algo sólo para Silverlight.

27
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Ventajas y Desventajas de las RIA`s


Actualmente, con la masificación de Ajax y el desarrollo de plataformas como Flex u Open
Lazlo las RIA"s ("Rich Internet Apliccations", o aplicaciones web de comportamiento similar
a las de escritorio) se están tomando la web agresivamente. El objetivo de estas tecnologías
es torcerles la mano a las limitaciones de HTTP y construir interfaces "fluidas" y más usables
que imiten la inmediatez del escritorio. HTTP, a diferencia del escritorio, no
mantiene estado. Esto quiere decir que, entre una página y otra, no hay "memoria" de las
acciones efectuadas anteriormente por el usuario. Cada vez que presionamos un link,
nuestro navegador envía una petición ("request") al servidor, quien a su vez procesa los
datos enviados y responde adecuadamente. El navegador recibe y despliega esta respuesta
y la comunicación termina hasta la siguiente interacción del usuario. Esta es la arquitectura
que nos ha acostumbrado a entender la internet como una serie de "páginas"
o documentos individuales, relacionados entre sí por hipervínculos.
Las aplicaciones de escritorio, por el contrario, mantienen un contacto permanente entre
los procesos internos del programa y lo que sucede en la interfaz de usuario. Es por esto
por lo que no requieren del paradigma de páginas de la web y tienden a ofrecer una
experiencia de usuario más fluida entre una acción y otra.
Flash, JavaScript y las tecnologías citadas al comienzo tienen la virtud de mantener estado,
al menos en la interfaz. Si bien la comunicación con el servidor se sigue haciendo a intervalos
discretos mediante HTTP, estas aplicaciones evitan la parcelación de la interacción en
"páginas" y logran una experiencia mucho más cercana al escritorio. Pero hay ocasiones
donde las virtudes de HTTP y HTML, el modelo tradicional, son esenciales. En el modelo de
petición y respuesta de HTTP, cada documento HTML - de hecho cada imagen y cada
elemento que incluyamos en la página - es un recurso. Cada recurso tiene su propia URI en
la Red y en virtud de eso puede ser visitado individualmente y utilizado en múltiples
contextos.
Los recursos son reutilizables y se pueden agregar a los favoritos del navegador. Pero lo más
importante es que los recursos son indexables. Eso significa que los motores de búsqueda,

28
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

vitales para organizar los millones de datos que circulan en la Red, pueden llegar a ellos,
analizarlos y categorizarlos, facilitando la búsqueda para nosotros los usuarios y abriendo
la posibilidad de generar nueva información a partir de la recombinación de recursos.
Incluso las RIA"s que respetan los estándares tecnológicos y aquellas accesibles suelen
generar el contenido dinámicamente, en base a las opciones tomadas por el usuario o
cargada internamente desde ubicaciones desconocidas. En las aplicaciones Flash o cargadas
al JavaScript -y especialmente Ajax-, los datos que ves en pantalla son totalmente invisibles
para los motores de búsqueda, que sólo entienden información estructurada en formatos
conocidos.
En muchos casos las RIA"s se han hecho imprescindibles. Aplicaciones innovadoras como
Gmail facilitan el manejo de grandes volúmenes de información junto con la ubicuidad de
la Web. En otros, los comportamientos "de escritorio" en la web perjudican la usabilidad y
reducen el valor de los datos al suprimir su calidad de recursos. Para entender esto hay que
diferenciar entre sitios web de difusión de datos - aquellos en que navegamos los datos de
forma pasiva, en calidad de lector - como blogs o sitios informativos, y aplicaciones
utilitarias donde el usuario, en calidad de autor, modifica los datos e interactúa con la
interfaz de forma activa. Estas últimas comúnmente pueden prescindir del paradigma de
páginas porque están orientada al uso privado de usuarios.
Sin embargo hay muchos "sitios" informativos que echan mano a efectos de movimiento o
configuración à la Escritorio. Es importante que en estos casos los desarrolladores
mantengan un ojo en la accesibilidad -para usuarios y buscadores- y que utilicen
metodologías existentes para lograr un balance entre los dos aspectos. Como mostraré en
el siguiente artículo, una de las claves es separar los recursos de su comportamiento en la
interfaz.

1.3.4 Calidad de las aplicaciones Web y las aplicaciones


enriquecidas de Internet
Se suele definir como propiedades de un objeto, producto, servicio, o en realidad, casi
cualquier cosa; que permite caracterizarla y valorarla con respecto a las restantes de su
categoría, sector o especie. La industria del software se ha guiado de ciertos estándares
para asegurar la calidad. Sin embargo, con el crecimiento exponencial de la aplicación web,
se han fragmentados algunos de estos aspectos para asegurar "la calidad". No es lo mismo
hacer un sistema tradicional, que desarrollar una aplicación web, y por lo tanto, hemos de
considerar los conceptos que más influyen en la calidad de una aplicación web.

Las características más relevantes -usabilidad, funcionalidad, fiabilidad, eficiencia y


capacidad de mantenimiento- proporcionan una base verdaderamente útil para evaluar la

29
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

calidad de los sistemas basados en Web. Olsina y sus colaboradores [OSL99] han preparado
un «árbol de requisitos de calidad» que identifica un conjunto de atributos que conduce a
WebApps de alta calidad.

Usabilidad
Es la característica que mide la eficacia en la consulta de información de una aplicación Web
para el público al que va dirigida. Osease la facilidad de uso.

Comprensión global del sitio


Es la facilidad con la que se puede entender la estructura de la aplicación, la navegación, la
lógica del negocio u organización y sus funcionalidades.

Retroalimentación (Feedback) y Ayuda


La retroalimentación es una herramienta enfocada a la aplicación terminada, en la interfaz
de usuario final, en donde se permite a este él envió de errores, fallas o sugerencias en
cuanto a la aplicación. Ha de ser considerada para posibles mantenimientos. La
retroalimentación ha evolucionado a reportes de errores y fallas. Suele ir en el mismo lugar
que la sección de “Ayuda", esta permite consultar información sobre la funcionalidad, lógica
o alguna característica de la aplicación web.

Características de la interfaz estética


Para mejorar comprensión global del sitio se debe de diseñar y elaborar una interfaz
estética, dependiendo de la intención de la aplicación, también, se debe de considerar el
usuario final, que permitirá establecer tiempos de respuesta ya que, usuarios con mayores
recursos, cargaran mas rápido la aplicación web, por lo tanto podremos agregar mas

30
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

contenido visual, animaciones sin preocuparnos por los tiempos de respuesta, pero si
nuestro usuario final, tiene un ancho de banda muy limitado, lo mejor sera diseñar una
interfaz con pocas, o ningunas animaciones. Actualmente hay herramientas que permiten
identificar navegadores, por lo que podemos limitar los componentes visuales de la
aplicación para determinados dispositivos o navegadores. A pesar de esto, se sigue
recomendando interfaces limpias, ya que normalmente son mas rápidas en cargar y de
entender.

Características especiales
Son características diseñadas para personas con características especiales, son
consideradas para la accesibilidad, que enfoca a las aplicaciones web, y en general al
software, en llegar cubrir a la mayoría de los usuarios para los cuales está diseñada. Además,
en algunos países se ha comenzado un proceso de inclusión de personas con discapacidades
con la red de redes. Por ejemplo, en México el 30 de abril de 2014, se publicó en el Diario
Oficial de la Federación el Programa Nacional para la Igualdad y No Discriminación 2014-
2018, en el cual se establece la “Estrategia 1.3. Consistente en generar y aplicar la normativa
que garantice progresivamente la accesibilidad universal en el quehacer de la
Administración Pública Federal (APF) junto con las siguientes líneas de acción: 1.3.4. Emitir
instrumentos jurídicos para establecer progresivamente la obligatoriedad de contar con
páginas web y servicios electrónicos institucionales accesibles y 1.3.10. Impulsar la emisión
de normas y especificaciones técnicas obligatorias sobre accesibilidad universal en los
servicios de telecomunicaciones y radiodifusión.
La implementación de nuevas tecnologías y el desarrollo de aplicaciones web tiene que ser
más incluyente, además de implementar estrategias para mejorar la accesibilidad en las
aplicaciones web, por lo que, en definitiva es un aspecto que debemos de tomar en cuenta
para la facilitar el uso de nuestra aplicación.

Funcionalidad
Básicamente es lo que una aplicación web (hablando de Ingeniería web) puede hacer.

Capacidades de Búsqueda y recuperación


Es la facilidad con la que se puede buscar y obtener la información y/o contenidos de la
aplicación. Por ejemplo, para la búsqueda se debe facilitar una categorización de búsqueda,
ya sea por fecha, etiquetas o categorías.

Características de navegación y visualización


La navegación del sitio debe de ser lo más intuitiva posible, de preferencia simple y limpia.
Para la visualización de contenidos se recomienda lo mismo. Las paginas más simples suelen
ser más fáciles de navega.

31
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Características de la aplicación relacionadas con el dominio


El dominio es una cuestión con bastante peso en cuanto al posicionamiento en los
buscadores de Internet, ya sea de la marca, empresa o producto. Para elegir el dominio se
suele recomendar que sea el nombre del producto o marca, en lugar de palabras claves, sin
que este sea muy extenso para facilitar a los usuarios su búsqueda y localización. Además
de elegirá la terminación correspondiente al ámbito respecto al contenido.

Fiabilidad
Capacidad de un sistema para mantener su nivel de rendimiento, en condiciones
establecidas y durante un periodo de tiempo determinado. Madurez, tolerancia a fallos,
capacidad de recuperación.

Correcto Procesamiento de vínculos


Es el correcto redireccionamiento de los enlaces, que se envié, al usuario, a los sitios
requeridos. Cuando de suele eliminar una página o sección, normalmente se deben
modificar varios enlaces, por lo que se debe de llevar a cabo un prueba completa de
validación de enlaces para no dejar enlaces "caídos" o "rotos".

Recuperación de errores
Es la capacidad del sistema para recuperarse ante fallos o errores, ya sea la recuperación
de datos, que se vuelva a estar en línea o se recupere el control de la aplicación. La
importancia radica en que la web, basada en la inmediatez, requiere de una recuperación
lo más inmediata posible.

Validación y recuperación de entrada del usuario


La seguridad de la aplicación entra en este aspecto, de suma importancia, para asignar los
permisos o limitaciones a los usuarios.

Eficiencia
Relación entre el nivel de prestaciones de un sistema y el volumen de recursos utilizados en
condiciones declaradas, comportamiento temporal y utilización de recursos. Es decir si
consume una cantidad de recursos se espera una proporción de resultados, entre menor
inversión se realice y mayores resultados, de la misma forma, se obtengan, más nos
beneficiaremos, entonces se dice que tendremos mejor eficacia. Los puntos que la
determinan son:
 Desempeño en tiempo respuesta
 Rapidez de generación de página
 Rapidez de generación de gráficos

32
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Mantenibilidad
La facilidad de mantenimiento, se refiere la facilidad para realizar modificaciones
específicas, así como su capacidad para ser analizado, para ser cambiado, su estabilidad y
su capacidad para ser probado.
 Facilidad de corregir
 Adaptabilidad
 Extensibilidad
Las Aplicaciones Enriquecidas para Internet ofrecen una serie de ventajas sobre las
aplicaciones web, pero como toda tecnología y como todo paradigma, estas poseen ciertas
características que pueden representar una desventaja, por lo que es necesario conocer
cuáles son y evaluar si el paradigma es el adecuado para ser implementado.
A lo largo del capítulo se han mostrado cuáles son las capacidades que tienen las
Aplicaciones Enriquecidas para Internet, pero es necesario conocer en dónde se encuentran
sus desventajas, ya que solamente conociendo el estado real de este paradigma se podrá
discernir respecto del uso de este paradigma para la construcción de una aplicación web.
• Mejora del consumo de ancho de banda para la comunicación con el servidor web. Esta
es una de las ventajas más importantes de las 40 Aplicaciones Enriquecidas para Internet,
ya que utiliza el ancho de banda de la red de forma óptima, puesto que únicamente se
envían y reciben los paquetes de datos que son completamente necesarios para el
funcionamiento de la aplicación, pues existe una parte de la aplicación que ya se encuentra
cargada en el navegador web del cliente.
• Comunicación asíncrona con el servidor web. Esto permite brindar a los usuarios una
mejor experiencia de uso que las aplicaciones web, debido a que se optimiza el tiempo de
uso de la aplicación para el usuario, ya que al realizar una acción dentro de la aplicación que
necesite entablar comunicación con el servidor, no congela toda la aplicación, sino que
utiliza una interfaz de comunicación transparente al usuario que es la que se encarga de
solicitar la información, recibirla y presentarla de forma asíncrona, permitiendo así la
optimización de tiempo.
• Amplia mejora en interfaces multimedia. Brinda grandes capacidades multimedia al
usuario, permitiendo reproducir streaming de datos sin necesidad de utilizar ninguna otra
utilidad en la computadora cliente, sino que utiliza reproductores embebidos en la
herramienta utilizada para construir la aplicación. Esto permite también brindar al usuario
un ambiente familiar y cómodo para realizar el tipo de actividades que se realizan
comúnmente en aplicaciones de escritorio.

33
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Conclusión
Las Aplicaciones Enriquecidas para Internet son una mejora a las aplicaciones web
convencionales, que les permite ofrecer una interfaz de usuario enriquecida y un mejor
rendimiento. Las Aplicaciones Enriquecidas para Internet conservan las mismas
características que las aplicaciones web tradicionales, además de permitir heredar
responsabilidades al cliente, comunicación asíncrona con el servidor, reproducción
multimedia no dependiente del cliente y mejores interfaces de usuario, ya que tienen como
objetivo el brindar un ambiente de uso similar a las aplicaciones de escritorio.
Las Aplicaciones Enriquecidas para Internet, hacen uso de otras herramientas o utilidades
para su ejecución. Entre estas se encuentran el uso de comunicación asíncrona con el
servidor, el uso de rich clients, el aislamiento de procesos como medida de seguridad, y el
uso de plug-ins, los cuales permiten la ejecución de herramientas como Adobe Flash o
Microsoft Silverlight. Las ventajas que ofrecen las Aplicaciones Enriquecidas para Internet
son principalmente mejora en el desempeño de la aplicación minimizando la comunicación
cliente-servidor mediante la comunicación asíncrona y la capacidad de brindar interfaces
de usuario con capacidades similares a las interfaces de las aplicaciones de escritorio. Las
desventajas de las Aplicaciones Enriquecidas para Internet son el tiempo de carga inicial de
la aplicación y la falta de estandarización en cuanto al uso de estas aplicaciones. Al comparar
las ventajas que provee el paradigma contra sus desventajas, tienen mayor importancia sus
ventajas puesto que estas pueden ayudar a resolver problemas que se presentan en
determinadas circunstancias y mejoran la presentación de las aplicaciones web; mientras
que sus desventajas vienen heredadas desde generaciones anteriores de paradigmas de
aplicaciones web que son causadas por factores externos a la aplicación, dependientes del
funcionamiento de las redes de computadoras y del crecimiento no estandarizado de
tecnologías para la construcción de la web.

34
Metodologías emergentes para la Web Unidad 1 Principios de la ingeniería Web

Bibliografía

https://docs.microsoft.com/aspnet/core/

https://blog.trigent.com/six-key-benefits-of-asp-net-core-1-0-which-make-it-different-
better/

https://docs.microsoft.com/aspnet/core/testing/

http://rubioharosd.blogspot.com/2017/05/calidad-en-aplicaciones-web-web-apps.html

https://es.scribd.com/document/175803709/Calidad-de-Las-Aplicaciones-Web

35

Das könnte Ihnen auch gefallen