arquitectura de aplicaciones web
TRANSCRIPT
![Page 1: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/1.jpg)
ARQUITECTURA DE APLICACIONES WEB
![Page 2: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/2.jpg)
APLICACIONES WEB
Aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. 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
![Page 3: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/3.jpg)
Existen aplicaciones como los webmails, wikis, weblogs, tiendas en línea son ejemplos bien conocidos de aplicaciones web.
![Page 4: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/4.jpg)
Una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Por ejemplo rellenar y enviar formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo.
![Page 5: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/5.jpg)
Una aplicación Web es una extensión dinámica de la web o una aplicación de servidor.
Existen 2 tipos de aplicaciones Web• Orientada a la presentación• Orientada al servicio
![Page 6: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/6.jpg)
Orientada a la presentación
• Genera paginas web interactivas que contienen varios tipos de lenguaje de marca (HTML, XML, etc.) y contenido dinámico en respuesta a peticiones.
![Page 7: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/7.jpg)
Orientada al servicio
• Estas paginas implementan el punto final del servicio web.
• Las aplicaciones orientadas a la presentación frecuentemente son clientes de las aplicaciones web orientadas al servicio.
![Page 8: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/8.jpg)
La iteración entre un cliente Web y una aplicación Web.
1. cliente envía una petición HTTP al servidor web 2. Las tecnologías Java server convierten la petición un objeto HTTPServetRequest3. Esta petición es deliberada a un componente Web, el cual puede interactuar con JavaBeans y otros para generar un contenido dinámico4. El componente web puede generar un objeto HTTPServletResponse5. El servidor web convierte este objeto en una respuesta HTTP y es enviada a su cliente.
![Page 9: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/9.jpg)
![Page 10: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/10.jpg)
Una Arquitectura define: un conjunto de elementos, conectores, restricciones y un sistema de control que caracterizan a un sistema o a una familia de sistemas.
![Page 11: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/11.jpg)
ARQUITECTURA DE DOS CAPAS
La WWW está basado en el modelo Cliente / Servidor.
• El Cliente principal en el WWW son los browsers onavegadores que solicitan información al Servidor.
• El Servidor son los Servidores Web que proporcionandocumentos y contenidos multimedia a los clientes através de la red
![Page 13: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/13.jpg)
• Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta.
![Page 14: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/14.jpg)
• La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa.
• Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma
![Page 15: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/15.jpg)
• La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en caso de que se este utilizando en una red mixta
![Page 16: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/16.jpg)
En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus características son:
- Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación - Espera y recibe las respuestas del servidor.- Por lo general, puede conectarse a varios servidores a la vez.- Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario.- Al contratar un servicio de redes , se tiene que tener en la velocidad de conexión que le otorga al cliente y el tipo de cable que utiliza , por ejemplo : cable de cobre ronda entre 1 ms y 50 ms.
Al receptor de la solicitud enviada por el cliente se conoce como servidor. Sus características son:
-Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación -Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.- Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado).- No es frecuente que interactúen directamente con los usuarios finales
![Page 17: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/17.jpg)
Ventajas• Centralizacion del control• Escalabilidad• Facil mantenimiento
![Page 18: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/18.jpg)
Desventajas:• Congestión del trafico• El cliente no dispone de los recursos que
pueden existir en el servidor
![Page 19: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/19.jpg)
Ejemplos• wikipedia• Juegos on line
![Page 20: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/20.jpg)
ARQUITECTURA DE 3 CAPAS
![Page 21: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/21.jpg)
Arquitectura en 3 capas
• Capa de datos• Capa de negocios• Capa de presentación
![Page 22: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/22.jpg)
La WEB
• Al conectarnos a internet estamos navegando en 3 capas.– Al abrir un formulario web de inscripción (capa de
presentación)– Después de enviar la información esta es
verificada (capa de negocios).– Finalmente la información es grabada en una base
de datos (capa de datos).
![Page 23: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/23.jpg)
Ejemplo
Capa de datos
Capa de Negocio
Capa de Presentación
![Page 24: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/24.jpg)
Capa de datos
• Base de datos• Tablas• Procedimientos almacenados• Componentes de datos
![Page 25: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/25.jpg)
Capa de datos Microsoft
• ADO .NET• SQL SERVER 20000• Procedimientos almacenados• Componentes (c#, vb, c++, j#)• XML
![Page 26: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/26.jpg)
Capa de Negocio
• Reglas del negocios• Validaciones• Cálculos• Flujos y procesos
![Page 27: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/27.jpg)
Capa de Negocios Microsoft
• Lenguajes de Componentes (c#, vb, c++, j#)– Componentes Locales– Componentes Web (Servicios web)
• Comunicación entre componentes utilizando el SOAP y XML
![Page 28: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/28.jpg)
Web Services
• Permiten publicar componentes de negocios(Web Services) en un servidor web.
• Estas componentes pueden ser llamadas desde otros servidores o clientes utilizando SOAP.
• Simple Object Access Protocol (SOAP) es un protocolo para el intercambio de la información basado en HTTP y XML
![Page 29: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/29.jpg)
Capa de Presentación
• Formularios• Informes• Respuestas al usuario
![Page 30: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/30.jpg)
Capa de Presentación Microsoft
• ASP .NET• ASP• XML, XSL• HTML• JAVASCRIPT , VBSCRIPT• Vb Form• Word, Excel
![Page 31: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/31.jpg)
Extensible Markup Language (XML)
• Meta Lenguaje de Marcación es un lenguaje estandar similar al html, que permite la comunicación entre los sistemas de información.
• Tiene una estructura de árbol.• Se recomienda usarlo en la comunicación
entre las componentes de Presentación con las de Negocios
![Page 32: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/32.jpg)
Ejemplo
DB
COMPONENTES DATOS
C# o VB .NET
XMLINFORMACIÓN
COMPONENTES NEGOCIO
C# o VB .NET WEB SERVICE
XMLINFORMACIÓNPROCESADA
PRESENTACIONASPX
XSLHOJA DE ESTILO
HTMLFORMULARIOJAVASCRIPT
![Page 33: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/33.jpg)
LENGUAJES DE PROGRAMACION DEL LADO DEL CLIENTE
![Page 34: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/34.jpg)
Un lenguaje del lado cliente es totalmente independiente del servidor, lo cual permite que la página pueda ser albergada en cualquier sitio. Para que la pagina se pueda ver bien es necesario tener instalados los plug-in adecuados.
.
![Page 35: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/35.jpg)
El navegador es una especie de aplicación capaz de interpretar las órdenes recibidas en forma de código HTML fundamentalmente y convertirlas en las páginas que son el resultado de dicha orden.
![Page 36: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/36.jpg)
![Page 37: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/37.jpg)
Los lenguajes de lado cliente (entre los cuales no sólo se encuentra el HTML sino también el Java y el JavaScript los cuales son simplemente incluidos en el código HTML) son aquellos que pueden ser directamente "digeridos" por el navegador y no necesitan un pretratamiento.
![Page 38: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/38.jpg)
HTML
El lenguaje llamado HTML indica al navegador donde colocar cada texto, cada imagen o cada video y la forma que tendrán estos al ser colocados en la página.
Este lenguaje consta de etiquetas que tienen esta forma <B> o <P>. Cada etiqueta significa una cosa.
![Page 39: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/39.jpg)
JAVASCRIPT
Javascript es un lenguaje de programación utilizado para crear pequeños programitas encargados de realizar acciones dentro del ámbito de una página web.
Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Su uso se basa fundamentalmente en la creación de efectos especiales en las páginas y la definición de interactividades con el usuario.
![Page 40: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/40.jpg)
APPLETS DE JAVA
Se trata de pequeños programas hechos en Java, que se transfieren con las páginas web y que el navegador ejecuta en el espacio de la página.
• Los applets de Java están programados en Java y precompilados.
![Page 41: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/41.jpg)
La principal ventaja consiste en que son mucho menos dependientes del navegador que los scripts en Javascript, incluso independientes del sistema operativo del ordenador donde se ejecutan. Además, Java es más potente que Javascript, por lo que el número de aplicaciones de los applets podrá ser mayor
![Page 42: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/42.jpg)
Como desventajas en relación con Javascript cabe señalar que los applets son más lentos de procesar y que tienen espacio muy delimitado en la página donde se ejecutan, es decir, no se mezclan con todos los componentes de la página ni tienen acceso a ellos.
![Page 43: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/43.jpg)
VBScript
• Es un lenguaje de programación de scripts del lado del cliente, pero sólo compatible con Internet Explorer.
• El funcionamiento de Visual Basic Script para construir efectos especiales en páginas web
![Page 44: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/44.jpg)
FLASH
Flash es una tecnología, y un programa, para crear efectos especiales en páginas web. Con Flash se hacen páginas dinámicas del lado del cliente.
![Page 45: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/45.jpg)
CSS
CSS, es una tecnología que nos permite crear páginas web de una manera más exacta.
![Page 46: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/46.jpg)
LENGUAJES DE PROGRAMACIÓN DEL LADO DEL SERVIDOR
![Page 47: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/47.jpg)
• Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo antes de que se envíe la página a través de Internet al cliente. Las páginas que se ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear la página final que verá el cliente
![Page 48: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/48.jpg)
Son aquellos lenguajes que son reconocidos, ejecutados e interpretados por el propio servidor y que se envían al cliente en un formato comprensible para él.
![Page 49: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/49.jpg)
![Page 50: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/50.jpg)
CGI
Es el sistema más antiguo que existe para la programación de las páginas dinámicas de servidor. Actualmente se encuentra un poco desfasado por la dificultad con la que se desarrollan los programas y la pesada carga que supone para el servidor que los ejecuta.
Los CGI se escriben habitualmente en el lenguaje Perl, C, C++ o Visual Basic.
![Page 51: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/51.jpg)
PEARL
Perl es un lenguaje de programación interpretado. Esto quiere decir que el código de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el código y se pone en marcha interpretando lo que hay escrito.
![Page 52: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/52.jpg)
ASP.net
ASP (Active Server Pages) es la tecnología desarrollada por Microsoft para la creación de páginas dinámicas del servidor. ASP se escribe en la misma página web, utilizando el lenguaje Visual Basic Script o Jscript (Javascript de Microsoft).
![Page 53: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/53.jpg)
PHP
PHP es el acrónimo de Hipertext Preprocesor. Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma, rápido, con una gran librería de funciones y mucha documentación.
![Page 54: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/54.jpg)
JAVA SERVER PAGES
• Es una tecnología orientada a crear páginas web con programación en Java.
• Con JSP se hacen aplicaciones web que se ejecutan en variados servidores web, de múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Por tanto, JSP se escriben con editores HTML/XML habituales.
![Page 55: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/55.jpg)
AMBIENTES PARA EL DESARROLLO DE APLICACIONES WEB
![Page 56: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/56.jpg)
• Un entorno de desarrollo integrado (IDE- Integrated Development Environment -) es una aplicación de software que ofrece servicios integrales a los programadores de computadoras para el desarrollo de software
![Page 57: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/57.jpg)
Un IDE normalmente se compone de:
• Un editor de texto• Un compilador.• Un intérprete.• Herramientas de automatización.• Un depurador.• Posibilidad de ofrecer un sistema de control de versiones.• Factibilidad para ayudar en la construcción de interfaces
gráficas de usuario.
![Page 58: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/58.jpg)
Para PHP se tienen las siguientes herramientas
• Zend Studio• Open Komodo Project• Eclipse + phpEclipse• etc
![Page 59: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/59.jpg)
Dreamweber es una herramienta que permite trabajar con
• ASP JavaScript• ASP VBScript• ASP.NET C#• ASP.NET VB• COLDFUSION• JSP• PHP MySQL
![Page 60: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/60.jpg)
Joomla es un Sistema de Gestión de Contenidos (CMS) que le ayuda a construir sitios web y otras aplicaciones online potentes.
![Page 61: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/61.jpg)
Entre los diferentes usos que la gente da a Joomla! están:
• Webs corporativas o portales• Comercio electrónico• Pequeños sitios de negocios• Webs de organizaciones o ONGs• Aplicaciones gubernamentales• Intranets y extranets corporativas• Webs de escuelas o agrupaciones• Páginas personales o familiares• Portales de comunidades• Revistas y periódicos
![Page 62: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/62.jpg)
• WordPress es un sistema de gestión de contenido enfocado a la creación de blogs (sitios web periódicamente actualizados). Desarrollado en PHP y MySQL.
![Page 63: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/63.jpg)
METODOLOGIA PARA EL DESARROLLO DE APLICACIONES
WEB
![Page 64: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/64.jpg)
Las aplicaciones Web exigen funcionalidad, confiabilidad, usabilidad y eficiencia entre otras características de calidad. La utilidad y crecimiento de las aplicaciones Web genera grandes desafíos como son los de controlar y mejorar su calidad.
![Page 65: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/65.jpg)
Aunque las aplicaciones Web están creciendo rápidamente tanto en uso como en aceptación, son las mismas metodologías de desarrollo las que no tratan de manera adecuada y profunda los atributos de calidad. Estas situaciones traen como consecuencia que los atributos de calidad de los sistemas basados en la Web tales como la funcionalidad, confiabilidad, mantenibilidad, usabilidad y portabilidad no se les da la debida consideración que se merecen durante el proceso de desarrollo.
![Page 66: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/66.jpg)
• En la ingeniería 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.
• Ingeniería Web es el proceso utilizado para crear, implantar y mantener aplicaciones y sistemas Web de alta calidad
![Page 67: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/67.jpg)
Control y garantía de la calidad
• Usabilidad• Funcionabilidad• Fiabilidad• Seguridad• Eficiencia• Mantenibilidad
![Page 68: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/68.jpg)
![Page 69: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/69.jpg)
Las actividades que forman parte del proceso son:
• Formulación identifica objetivos y establece el alcance.
• Planificación genera la estimación del costo general del proyecto, la evaluación de riesgos y el calendario del desarrollo y fechas de entrega.
• Análisis especifica los requerimientos e identifica el contenido.
![Page 70: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/70.jpg)
• Modelado se compone de dos secuencias paralelas de tareas. Una consiste en el diseño y producción del contenido que forma parte de la aplicación. La otra, en el diseño de la arquitectura, navegación e interfaz de usuario.
• Generación de páginas se integra contenido, arquitectura, navegación e interfaz para crear estética o dinámicamente el aspecto más visible de las aplicación, las páginas.
• Prueba busca errores a todos lo niveles: contenido, funcional, navegacion, rendimiento, etc.
• Finalmente, el resultado es sometido a la evaluación del cliente.
![Page 71: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/71.jpg)
Hay cuatro aspectos importantes a tener en cuenta en el desarrollo de tácticas de control de configuración para la Web.
• Contenido: Considerando la dinamicidad con la que el contenido se genera, es tarea compleja organizar racionalmente los objetos que forman la configuración y establecer mecanismos de control.
• Personal: Cualquiera realiza cambios. Hay mucho personal no especializado que no reconoce la importancia que tiene el control del cambio.
![Page 72: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/72.jpg)
• Escalabilidad: Es común encontrar aplicaciones que de un día para otro crecen considerablemente. Sin embargo, las técnicas de control no escalan de forma adecuada.
• Política: ¿Quién posee la información? ¿Quién asume la responsabilidad y coste de mantenerla?
![Page 73: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/73.jpg)
La Gestión del Proceso
En un proceso tan rápido como es el proceso de Ingeniería Web, donde los tiempos de desarrollo y los ciclos de vida de los productos son tan cortos por la gestión es impresindible. Entre los aspectos que añaden dificultad a la gestión destacamos:
• Alto porcentaje de contratación a terceros• El desarrollo incluye una gran variedad de personal
técnico y no técnico trabajando en paralelo
![Page 74: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/74.jpg)
• El equipo de desarrollo debe dominar aspectos tan varidos como, software basado en componentes, redes, diseño de arquitectura y navegación, diseño gráfico y de interfaces, lenguajes y estándares en Internet, test de aplicaciones Web, etc, lo que hace que el proceso de búsqueda y contratación de personal sea arduo.
![Page 75: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/75.jpg)
• ¿Qué marca la diferencia?
A modo de breve resumen enumeramos las siguientes diferencias:
• Confluencia de disciplinas: Sistemas de información, ingeniería software y diseño gráfico que requiere equipos multidisciplinares y polivalentes. Ciclos de vida y tiempo de desarrollo muy cortos
• Cambio continuo:
![Page 76: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/76.jpg)
• Necesidad de soluciones que permitan flexibilidad y adaptación conforme el proyecto cambia.
• Requisitos fuertes de seguridad, rendimiento y usabilidad.
![Page 77: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/77.jpg)
ASPECTOS DE SEGURIDAD
![Page 78: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/78.jpg)
Las aplicaciones Web están más expuestas a ataques.
Se pueden tener ataques en tres niveles:– A la computadora del usuario.– Al servidor.– A la información en tránsito.
![Page 79: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/79.jpg)
La seguridad en Web tiene 3 etapas primarias:
– Seguridad de la computadora del usuario.– Seguridad del servidor Web y de los datos
almacenados ahí.– Seguridad de la información que viaja entre el
servidor Web y el usuario
![Page 80: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/80.jpg)
Seguridad de la computadora del usuario
• Los usuarios deben contar con navegadores y plataformas seguras, libres de virus y vulnerabilidades. También debe garantizarse la privacidad de los datos del usuario.
![Page 81: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/81.jpg)
Seguridad del servidor Web y de los datos almacenados ahí
• Se debe garantizar la operación continua del servidor, que los datos no sean modificados sin autorización (integridad) y que la información sólo sea distribuida a las personas autorizadas (control de acceso).
![Page 82: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/82.jpg)
• Seguridad de la información que viaja entre el servidor Web y el usuario.
Garantizar que la información en tránsito no sea leída (confidencialidad), modificada o destruida por terceros. También es importante asegurar que el enlace entre cliente y servidor no pueda interrumpirse fácilmente (disponibilidad).
![Page 83: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/83.jpg)
Recomendaciones de seguridad.
![Page 84: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/84.jpg)
Recomendaciones: Asegurar el servidor
Se deben considerar los siguientes puntos:• Asegurar el servidor en una forma
fundamental: el sistema operativo, ya sea por medio de actualizaciones (parches) y habilitando los mecanismos propios de la plataforma.
• Garantizar la seguridad del servidor Web propiamente (IIS, Apache, etc.)
• Auditar las aplicaciones que interactúan en las dos capas anteriores (módulos, bibliotecas).
![Page 85: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/85.jpg)
Recomendaciones: Asegurar la información en tránsito
Esto se puede lograr por diversos medios:• Asegurando la red físicamente (switches en
lugar de hubs).• Esconder la información (esteganografía).• Cifrar la información (criptografía) por medio
de algoritmos diversos (SSL, VPNs).
![Page 86: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/86.jpg)
Recomendaciones: Asegurar el equipo del usuario
Vulnerar el equipo del usuario quizás no tenga el impacto de vulnerar el servidor, sin embargo es un problema más difícil de erradicar (1 servidor, 5000 clientes):
• Aplicar actualizaciones (parches) al sistema operativo.• Uso de antivirus, firewalls personales.• Educación de los usuarios.
![Page 87: Arquitectura de Aplicaciones Web](https://reader034.vdocuments.pub/reader034/viewer/2022051315/55cf9716550346d0338fb1fa/html5/thumbnails/87.jpg)
Fallas de seguridad mas comunes• Cross Site Scripting (XSS). Las vulnerabilidades de XSS originalmente
abarcaban cualquier ataque que permitiera ejecutar código de "scripting” en el contexto de otro sitio web
• Injection Flaws• Insecure Remote File Include• Insecure Direct Object Reference• Cross Site Request Forgery (CSRF)• Information Leakage and Improper Error Handling• Broken Authentication and Session Management• Insecure Cryptographic Storage• Insecure Communications• Failure to Restrict URL access