Title: ARQUITECTURA DE APLICACIONES WEB
1ARQUITECTURA DE APLICACIONES WEB
2APLICACIONES 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
6Orientada 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.
7Orientada 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.
11ARQUITECTURA 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
20ARQUITECTURA DE 3 CAPAS
21Arquitectura en 3 capas
- Capa de datos
- Capa de negocios
- Capa de presentación
22La 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).
23Ejemplo
24Capa de datos
- Base de datos
- Tablas
- Procedimientos almacenados
- Componentes de datos
25Capa de datos Microsoft
- ADO .NET
- SQL SERVER 20000
- Procedimientos almacenados
- Componentes (c, vb, c, j)
- XML
26Capa de Negocio
- Reglas del negocios
- Validaciones
- Cálculos
- Flujos y procesos
27Capa 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
28Web 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
29Capa de Presentación
- Formularios
- Informes
- Respuestas al usuario
30Capa de Presentación Microsoft
- ASP .NET
- ASP
- XML, XSL
- HTML
- JAVASCRIPT , VBSCRIPT
- Vb Form
- Word, Excel
31Extensible 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
32Ejemplo
33LENGUAJES 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.
38HTML
- 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.
39JAVASCRIPT
- 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.
40APPLETS 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.
43VBScript
- 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
44FLASH
- 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.
45CSS
- CSS, es una tecnología que nos permite crear
páginas web de una manera más exacta.
46Lenguajes 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)
50CGI
- 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.
51PEARL
- 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.
52ASP.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).
53PHP
- 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.
54JAVA 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.
55AMBIENTES 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.
63METODOLOGIA 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
67Control 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.
77ASPECTOS 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).
83Recomendaciones de seguridad.
84Recomendaciones 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).
85Recomendaciones 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).
86Recomendaciones 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.
87Fallas 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