aplicaciones web

13
UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERÍA CARRERA PROFESIONAL DE INGENIERÍA DE SISTEMAS TEMA CURSO: Ingeniería de la Informacion 2 DOCENTE: Ing. Ramiro Mora Jimenez ALUMNO: Cesar Jordano Moscoso Yarín CUSCO 2014 Página de 13 1 Arquitecturas de Aplicaciones de Sistemas Web

Upload: jordano-moscoso

Post on 06-Nov-2015

11 views

Category:

Documents


0 download

DESCRIPTION

A brief of web applications.

TRANSCRIPT

  • UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERA

    CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS

    TEMA

    CURSO: Ingeniera de la Informacion 2

    DOCENTE: Ing. Ramiro Mora Jimenez

    ALUMNO: Cesar Jordano Moscoso Yarn

    CUSCO 2014

    Pgina de 131

    Arquitecturas de Aplicaciones de Sistemas Web

  • Indice Indice 2

    Introduccin 3

    Desarrollo 4

    Concepto 4

    Funcionamiento 4

    Ventajas y Desventajas 5 Ventajas 5

    Desventajas 7

    Web-Enabled o Web-Based? 8

    Arquitecturas en el desarrollo Web 8 Nueva Arquitectura de aplicaciones web 9

    Modelo 1: aplicacin Web clsica 9

    Modelo 2: aplicacin web AJAX 9

    Modelo 3: del lado del cliente MV * aplicacin web 10

    Por qu fueron estas arquitecturas no implementadas antes? 11

    Frameworks para aplicaciones web 12

    Conclusiones 12

    Referencias y Bibliografa 13

    Pgina de 132

  • Introduccin La idea fundamental es que los navegadores, browsers, presentan documentos escritos en HTML que han obtenido de un servidor Web. Estos documentos HTML habitualmente presentan informacin de forma esttica, sin ms posibilidad de interaccin con ellos.

    El modo de crear los documentos HTML ha variado a lo largo de la corta vida de las tecnologas Web pasando desde las primeras pginas escritas en HTML almacenadas en un fichero en el servidor Web hasta aquellas que se generan al vuelo como respuesta a una accin del cliente y cuyo contenido vara segn las circunstancias.

    Adems, el modo de generar pginas dinmicas ha evolucionado, desde la utilizacin del CGI ,Common Gateway Interface, hasta los servlets pasando por tecnologas tipo JavaServer Pages. Todas estas tecnologas se encuadran dentro de aquellas conocidas como Server Side, ya que se ejecutan en el servidor web.

    Otro aspecto que completa (complica?) el panorama son las inclusiones del lado del cliente, Client Side, que se refieren a las posibilidades de que las pginas lleven incrustado cdigo que se ejecuta en el cliente, como por ejemplo JavaScript y programas Java.

    Pgina de 133

  • Desarrollo Concepto Una aplicacin de sistema web es una solucin de desarrollo de software implementado con tecnologas de internet, de tal manera que todos los usuario puedan acceder a las funcionalidades del software usando un navegador como Firefox o Safari.

    Una aplicacin web suele combinar un sitio Front-end con una funcionalidad back-office. Esta integracin entre un punto de acceso publico en el sitio web y el centro de proceso (back-office) permite crear nuevos complejos negocios o mejorar y evolucionar procesos actuales de una organizacin.

    Desde el punto de vista tcnico, la web es un ambiente de programacin que permite un acceso masivo a travs del internet. Dos importantes componentes de un sitio web moderno son la flexibilidad de buscadores y aplicaciones web. Por tanto hoy en da los las organizaciones competitivas tiene que experimentar e invertir en aplicaciones web, y aplicaciones de sistemas web par unificar procesos, de la mera que se pueda interpretar todos los procesos de manera directa.

    Aplicaciones web por lo tanto son programas de computadora que permiten a los visitantes de un sitio web enviar y recibir informacion desde una base de datos implementada en el servidor usando un navegador.

    Funcionamiento En la figura de la parte inferior se explica las 3 capas del modelo de aplicaciones web. L primera capa es normalmente el navegador o la interfaz de usuario; la segunda capa es utiliza una herramienta de generacin de contenido dinmica como Java Servlets (JSP) o Active Server Pages (ASP) y la tercera capa es el contenido de la base de datos.

    Pgina de 134

  • La imagen inferior muestra como la peticin inicial es lanzada por el usuario a traer de un navegador a travs de internet hacia la el servidor de la aplicacin web. La aplicacin web accede a la base de datos de los servidores para realizar la peticin que se transmiti desde el usuario. La aplicacin web entrences presenta la informacion de respuesta al usuario a travs del navegador.

    Ventajas y Desventajas

    Ventajas Con las aplicaciones basadas en la web, los usuarios acceden al sistema a travs de un

    entorno sin el navegador web uniforme. Mientras que la interaccin del usuario con la aplicacin necesita ser probado a fondo en distintos navegadores web, la aplicacin en s slo necesita ser desarrollado para un solo sistema operativo. No hay necesidad de desarrollar y probar en todas las posibles versiones de sistemas operativos y configuraciones. Esto hace que el desarrollo y la solucin de problemas mucho ms fcil, y para aplicaciones web que utilizan una interfaz de Flash, pruebas y resolucin de problemas es an ms fcil.

    Pgina de 135

  • A diferencia de las aplicaciones tradicionales, sistemas web son accesibles en cualquier momento y en cualquier lugar, a travs de un PC con conexin a Internet, poniendo al usuario a cargo de dnde y cuando tienen acceso a la aplicacin.

    La interfaz de usuario de las aplicaciones basadas en la web es ms fcil de personalizar que en las aplicaciones de escritorio. Esto hace que sea ms fcil para actualizar la apariencia de la aplicacin, o para personalizar la presentacin de la informacin a los diferentes grupos de usuarios.

    Adems de personalizar el contenido para los grupos de usuarios, el contenido tambin se puede personalizar para su presentacin en cualquier dispositivo conectado a Internet, incluyendo PDAs, telfonos mviles, etc., ampliando an ms la capacidad del usuario para recibir e interactuar con la informacin.

    El uso de las tecnologas de Internet basado en los estndares de toda la industria, es posible lograr un mucho mayor nivel de interoperabilidad entre las aplicaciones que con los sistemas de escritorio aislados. Por ejemplo, es mucho ms fcil de integrar un sistema de carrito de la compra basada en la web con un paquete de contabilidad basado en la web que es conseguir dos sistemas propietarios a hablar unos con otros. Arquitectura basada en Web permite integrar rpidamente sistemas de la empresa, mejorando el flujo de trabajo y otros procesos de negocio.

    Instalacin y mantenimiento se hace menos complicado. Una vez que una nueva versin o actualizacin se ha instalado en el servidor host, todos los usuarios pueden acceder a ella de inmediato. No hay necesidad de actualizar cada PC cliente. El despliegue de un nuevo software se puede lograr con mayor facilidad, que slo requiere que los usuarios tienen hasta a la fecha de los navegadores y plugins. Y a medida que las mejoras slo se llevan a cabo por un profesional con experiencia para un solo servidor, los resultados son ms predecible y fiable.

    El aumento de la capacidad del procesador tambin se convierte en una operacin mucho ms sencilla. Si una aplicacin requiere ms energa para realizar las tareas, slo el hardware de servidor necesita ser mejorado. La capacidad de software basado en web se puede aumentar mediante "agrupacin" o ejecutar el software en varios servidores simultneamente. A medida que aumenta la carga de trabajo, servidores nuevos se pueden aadir al sistema fcilmente-Google, por ejemplo, se ejecuta en miles de servidores Linux de bajo costo. Si falla un servidor, que puede ser reemplazado sin afectar el rendimiento global de la aplicacin.

    Aplicaciones basadas en la Web normalmente se implementan en servidores dedicados, que son controlados y mantenidos por los administradores de servidores experimentados.

    Pgina de 136

  • Esto es mucho ms efectivo que el seguimiento de cientos o incluso miles de equipos cliente, como es el caso de las nuevas aplicaciones de escritorio.

    Cualquiera de las tres tecnologas bsicas se pueden utilizar para crear aplicaciones basadas en la web, en funcin de los requerimientos de la aplicacin. Las soluciones basadas en Java (J2EE) de Sun Microsystems implican tecnologas como JSP y servlets. La plataforma Microsoft .NET ms reciente que utiliza pginas Active Server, SQL Server y lenguajes de script .NET. La tercera opcin es la plataforma Open Source (predominantemente PHP y MySQL), que es el ms adecuado para pequeos sitios web y aplicaciones de bajo presupuesto.

    Desventajas

    Los sitios web y aplicaciones web relacionadas deben estar disponibles las 24 horas del da, los 7 das de la semana, para prestar el servicio requerido a los clientes, empleados, proveedores y otras partes interesadas.

    Los cortafuegos y SSL no proporcionan proteccin contra la piratera de aplicaciones web, simplemente porque el acceso a la pgina web tiene que ser hecha pblica - Todos los sistemas de bases de datos modernas (por ejemplo, Microsoft SQL Server, Oracle y MySQL) se puede acceder a travs de puertos especficos (por ejemplo, el puerto 80 y 443 ) y cualquiera puede intentar conexiones directas a las bases de datos sin pasar efectivamente los mecanismos de seguridad utilizados por el sistema operativo. Estos puertos permanecen abiertos para permitir la comunicacin con el trfico legtimo y, por tanto, constituyen una importante vulnerabilidad.

    Aplicaciones web a menudo tienen acceso directo a los datos de back-end, tales como bases de datos de clientes y, por tanto, controlar los datos valiosos y son mucho ms difciles de conseguir. Aquellos que no tienen acceso tendr algn tipo de script que permite la captura y transmisin de datos. Si un hacker se hace consciente de las debilidades de una secuencia de comandos, puede redirigir fcilmente el trfico involuntario a otra ubicacin e ilegtimamente desincorporar datos personales.

    La mayora de las aplicaciones web son por encargo y, por lo tanto, implican un menor grado de las pruebas de software off-the-shelf. En consecuencia, las aplicaciones personalizadas son ms susceptibles al ataque.

    Pgina de 137

  • Web-Enabled o Web-Based? Cuando nos referimos a las aplicaciones desarrolladas para la web comn mente hacemos referencia al termino Web-Enabled, pero es este el termino correcto?

    Empecemos por mirar unas definiciones:

    Web-Enabled: producto o servicio que se puede utilizar a travs de, o en conjuncin con, la WWW.

    Web-Based: aplicaciones que no hacen procesamiento en el computador del usuario, en su lugar se utilizan a travs de Internet gracias a un navegador web.

    Basado en esto podemos concluir que Web-Enabled es un concepto ms global y es por eso que es usado por muchas personas para describir aplicaciones que usan un navegador web, sin embargo es claro que cuando nos referimos a aplicaciones que usan el navegador es ms adecuado referirse a ellas como aplicaciones Web-Based.

    De la misma forma podemos entender como muchas aplicaciones dicen ser Web-Enabled teniendo aplicaciones que corren en la estacin de trabajo del usuario, esta debido a que se conectan a servicios expuestos en Internet que son bsicos para su funcionamiento.

    Arquitecturas en el desarrollo Web

    Las aplicaciones web han ido evolucionando, desde sitios HTML estticas primero a las aplicaciones AJAX, ms recientemente, a travs de mltiples tecnologas dinmicas (PHP, ASP, Java, Ruby on Rails ...), las arquitecturas de aplicaciones Web y sus herramientas dedicadas experimentar regularmente grandes avances y descubrimientos.

    Durante dos aos, hemos visto una nueva ola de tecnologas que vienen, transformando el paisaje de las aplicaciones Web. A diferencia de RIA o AJAX antes, se nombre bien definido an para esta nueva tendencia. Lo llamaremos "MV * arquitecturas del lado del cliente".

    Aqu est el principio fundamental: el servidor ya no gestiona toda la pgina, pero slo enva datos en bruto para el cliente; toda la gestin de generacin de pginas y las interacciones del usuario se realiza en el lado del cliente, es decir en el navegador.

    Pgina de 138

  • Nueva Arquitectura de aplicaciones web

    El siguiente diagrama ilustra la evolucin de las arquitectura de aplicaciones web.

    Modelo 1: aplicacin Web clsica

    En el primer diagrama, la aplicacin Web se ejecuta principalmente en el lado del servidor. Se enva directamente al navegador HTML pginas, CSS y JavaScript, posiblemente, mejorar el comportamiento. Luego, para cada accin del usuario que requiere nuevos datos, el servidor se consulta y devuelve una nueva pgina HTML.

    Modelo 2: aplicacin web AJAX

    El segundo diagrama muestra el patrn de AJAX, para Asynchronous JavaScript And XML, que apareci a mediados de la dcada de 2000.

    Pgina de 139

  • Este principio arquitectura puede hacer la aplicacin ms sensible mediante la reduccin de los intercambios entre el navegador y el servidor. Cuando una accin de usuario genera una llamada del cliente para recuperar los nuevos datos, el servidor slo devuelve _ fragmentos de vista. Por lo tanto, slo una pequea parte de la pantalla se actualiza, en lugar de toda la pgina. Esto requiere el desarrollo de JavaScript en el cliente con el fin de gestionar refrescos parciales, por ejemplo mediante el uso de la biblioteca jQuery y sus funciones u otros $ .ajax herramientas ms integrado con las plataformas de servidor (como Java Server Faces o Google Web Toolkit para entornos Java ).

    Esta arquitectura trajo ms reactividad, pero tambin ms complejidad. Tiene muchas trampas:

    El amplio uso de jQuery puede hacer imposible el mantenimiento de aplicaciones, sin la aplicacin de normas tcnicas complejas (ofrecido hoy por MV * frameworks como Backbone.js y AngularJS) a pesar que su objetivo es facilitar la evolucin, los marcos del lado del servidor como Java Server Faces resultaron ser muy pesado y complejo, lo que lleva a muchos errores y problemas de rendimiento.

    Modelo 3: del lado del cliente MV * aplicacin web

    El tercer diagrama muestra la nueva arquitectura del lado del cliente MV *, cuyo interrumpe con las anteriores principio: ahora el servidor enva datos sin formato slo primas y el cliente es responsable de generar la pantalla fuera de l.

    El trmino MV * se refiere al patrn MVC, para el Modelo Vista Controlador, ampliamente utilizado en el servidor para separar los datos y la gestin de puntos de vista. Cada vez ms utilizamos este trmino MV *, con el fin de resaltar las pequeas diferencias con respecto a las implementaciones de MVC puros. Pero esto es un debate de expertos ...

    El punto importante en esta nueva arquitectura es el cambio de toda la lgica de la interfaz de usuario desde el servidor al cliente.

    Esta separacin de intereses entre el servidor y el cliente no es un fenmeno nuevo. Ha sido devueltos por las aplicaciones mviles nativas, consumiendo API independientes del cliente. Las nuevas arquitecturas de aplicaciones Web llevar esta posibilidad a las aplicaciones Web.

    Pgina de 1310

  • Por qu fueron estas arquitecturas no implementadas antes?

    Bsicamente, el lenguaje JavaScript est all ya que existe la Web. El principio no parece tan revolucionaria, ya que es muy similar a las aplicaciones cliente-servidor clsicos que ya existan antes de la Web. As que por qu no pensamos en esta nueva arquitecturas anteriores?

    La respuesta es simple: no era posible; excepto si usted es Google!

    De hecho, dos factores fueron la limitacin de la posibilidad de desarrollar con JavaScript:

    limitaciones del navegador, en trminos de capacidad y el rendimiento la falta de industrializacin del desarrollo de JavaScript

    Pgina de 1311

  • Frameworks para aplicaciones web

    El ms conocido patrn de diseo de aplicaciones web es la arquitectura Model-View-Controller (MVC: Modelo-Vista-Controlador). Un Modelo es un objeto que representa datos o incluso una actividad en forma de tabla en base de datos. Una Vista es algn tipo de visualizacin del estado del modelo, y un Controlador ofrece funciones (herramientas) para cambiar el estado del modelo. Hay una amplia gama de frameworks para aplicaciones web disponibles para Linux que son distribuidos bajo licencia Open Source. Para proporcionar una visin en el software que actualmente est disponible, hemos compilado una lista de 10 frameworks de alta calidad. Los que hemos seleccionado cubren un nmero de lenguajes de programacin incluyendo Ruby, PHP y Python. Ahora, exploremos los 10 frameworks en cuestin. Para cada ttulo se ha incluido un hipervnculo hacia el propio portal, una descripcin completa con un anlisis en profundidad de sus caractersticas, junto con enlaces a recursos y revisiones relevantes.

    Conclusiones

    El desarrollo web ha contribuido con poder proveer de servicios a una gran cantidad de usuarios de un misma herramienta de software. Para poder hacerlo ha ido evolucionando desde sus inicios, as con todo tipo de arquitecturas como la clsica, Ajax o MV hoy en da como tambin con todo tipo de frameworks preparadas para todo tipo de lenguajes de generacin de contenido web.

    Por lo tanto dependiendo de que lenguaje de generacin de contenido tengamos en mente, tendremos que elegir el framework a trabajar , y por lo tanto este nos proveer de las arquitecturas a las cuales esta preparada.

    Pgina de 1312

  • Referencias y Bibliografa http://elbauldelprogramador.com/los-10-mejores-frameworks-gratis-de-aplicaciones-web/ Tema: Los 10 mejores frameworks para aplicaciones Web Autor: Ing. Computacin Alejandro Alcalde Fecha de Ingreso: 24/11/2014

    http://blog.octo.com/en/new-web-application-architectures-and-impacts-for-enterprises-1/ Tema: The new Web application architectures and their impacts for enterprises Autores: Franois Petitit , Mickal Tricot Fecha de Ingreso: 24/11/2014

    http://www.magicwebsolutions.co.uk/blog/the-benefits-of-web-based-applications.htm Tema: The benefits of web-based applications Autor: Magic Web Solutions Fecha de Ingreso: 24/11/2014

    http://www.bluesky-e.co.uk/webapplications.php Tema: Web Application Development Autor: Bluesky-e Fecha de Ingreso: 24/11/2014

    http://www.acunetix.com/websitesecurity/web-applications/ Tema: Web Applications: What are They? What of Them? Autor: Acunetix Fecha de Ingreso: 24/11/2014

    Pgina de 1313