ARQUITECTURA DE APLICACIONES WEB - PowerPoint PPT Presentation

About This Presentation
Title:

ARQUITECTURA DE APLICACIONES WEB

Description:

ARQUITECTURA DE APLICACIONES WEB En la ingenier a software se denomina aplicaci n web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un ... – PowerPoint PPT presentation

Number of Views:1282
Avg rating:3.0/5.0
Slides: 88
Provided by: MARC206
Category:

less

Transcript and Presenter's Notes

Title: ARQUITECTURA DE APLICACIONES WEB


1
ARQUITECTURA DE APLICACIONES WEB
2
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

3
  • Existen aplicaciones como los webmails, wikis,
    weblogs, tiendas en línea son ejemplos bien
    conocidos de aplicaciones web.

4
  • 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.

5
  • 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

6
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.

7
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.

8
  • 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 HTTPServetRequest
  • 3. Esta petición es deliberada a un componente
    Web, el cual puede interactuar con JavaBeans y
    otros para generar un contenido dinámico
  • 4. El componente web puede generar un objeto
    HTTPServletResponse
  • 5. El servidor web convierte este objeto en una
    respuesta HTTP y es enviada a su cliente.

9
(No Transcript)
10
  • 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.

11
ARQUITECTURA DE DOS CAPAS
  • La WWW está basado en el modelo Cliente /
    Servidor.
  • El Cliente principal en el WWW son los browsers
    o
  • navegadores que solicitan información al
    Servidor.
  • El Servidor son los Servidores Web que
    proporcionan
  • documentos y contenidos multimedia a los
    clientes a
  • través de la red

12
(No Transcript)
13
  • Esta arquitectura consiste básicamente en un
    cliente que realiza peticiones a otro programa
    (el servidor) que le da respuesta.

14
  • 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

15
  • 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

16
  • 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

17
  • Ventajas
  • Centralizacion del control
  • Escalabilidad
  • Facil mantenimiento

18
  • Desventajas
  • Congestión del trafico
  • El cliente no dispone de los recursos que pueden
    existir en el servidor

19
  • Ejemplos
  • wikipedia
  • Juegos on line

20
ARQUITECTURA DE 3 CAPAS
21
Arquitectura en 3 capas
  • Capa de datos
  • Capa de negocios
  • Capa de presentación

22
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).

23
Ejemplo
24
Capa de datos
  • Base de datos
  • Tablas
  • Procedimientos almacenados
  • Componentes de datos

25
Capa de datos Microsoft
  • ADO .NET
  • SQL SERVER 20000
  • Procedimientos almacenados
  • Componentes (c, vb, c, j)
  • XML

26
Capa de Negocio
  • Reglas del negocios
  • Validaciones
  • Cálculos
  • Flujos y procesos

27
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

28
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

29
Capa de Presentación
  • Formularios
  • Informes
  • Respuestas al usuario

30
Capa de Presentación Microsoft
  • ASP .NET
  • ASP
  • XML, XSL
  • HTML
  • JAVASCRIPT , VBSCRIPT
  • Vb Form
  • Word, Excel

31
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

32
Ejemplo
33
LENGUAJES DE PROGRAMACION DEL LADO DEL CLIENTE
34
  • 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.
  • .

35
  • 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.

36
(No Transcript)
37
  • 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.

38
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 ltBgt o ltPgt. Cada etiqueta significa una
    cosa.

39
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.

40
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.

41
  • 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

42
  • 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.

43
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

44
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.

45
CSS
  • CSS, es una tecnología que nos permite crear
    páginas web de una manera más exacta.

46
Lenguajes de programación del lado del servidor
47
  • 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

48
  • 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.

49
(No Transcript)
50
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.

51
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.

52
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).

53
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.

54
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.

55
AMBIENTES PARA EL DESARROLLO DE APLICACIONES wEB
56
  • 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

57
  • 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.

58
  • Para PHP se tienen las siguientes herramientas
  • Zend Studio
  • Open Komodo Project
  • Eclipse phpEclipse
  • etc

59
  • Dreamweber es una herramienta que permite
    trabajar con
  • ASP JavaScript
  • ASP VBScript
  • ASP.NET C
  • ASP.NET VB
  • COLDFUSION
  • JSP
  • PHP MySQL

60
  • Joomla es un Sistema de Gestión de Contenidos
    (CMS) que le ayuda a construir sitios web y otras
    aplicaciones online potentes.

61
  • 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

62
  • 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.

63
METODOLOGIA PARA EL DESARROLLO DE APLICACIONES WEB
64
  • 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.

65
  • 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.

66
  • 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

67
Control y garantía de la calidad
  • Usabilidad
  • Funcionabilidad
  • Fiabilidad
  • Seguridad
  • Eficiencia
  • Mantenibilidad

68
(No Transcript)
69
  • 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.

70
  • 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.

71
  • 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.

72
  • 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?

73
  • 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

74
  • 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.

75
  • 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

76
  • Necesidad de soluciones que permitan flexibilidad
    y adaptación conforme el proyecto cambia.
  • Requisitos fuertes de seguridad, rendimiento y
    usabilidad.

77
ASPECTOS DE SEGURIDAD
78
  • 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.

79
  • 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

80
  • 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.

81
  • 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).

82
  • 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).

83
Recomendaciones de seguridad.
84
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).

85
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).

86
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.

87
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
Write a Comment
User Comments (0)
About PowerShow.com