Investigacion Unidad 1.docx

  • Uploaded by: Oscar Pérez González
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Investigacion Unidad 1.docx as PDF for free.

More details

  • Words: 12,640
  • Pages: 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 trescapas. 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 clienteservidor 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 20142018, 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-differentbetter/

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

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

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

35

Related Documents


More Documents from "Franco Cabrera"

Cuestionario 4.docx
November 2019 81
Cuestionario 3.docx
November 2019 76
November 2019 68
November 2019 66
Los 8 Tipos De Muda O.docx
November 2019 76