Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas...

15
DESARROLLO DE APLICACIONES WEB

Transcript of Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas...

Page 1: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

DESARROLLO DE APLICACIONES WEB

Page 2: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Arquitectura de las aplicaciones web

Arquitectura de las

aplicaciones web

Arquitectura de dos capas

Arquitectura de tres capas

Arquitectura de dos capasTipos de Arquitecturas de

una aplicación web

Es la más simple

Se tiene dos niveles: cliente y servidor

Utiliza un proceso de

envío llamado PostBack

Es más utilizada

para uso de aplicaciones

no muy pesadas

Gráficamente descrita

Page 3: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Estructura de tres capas

Presentación Negocio Datos

Arquitectura de tres capas

EstructuraArquitectura de tres capas

Arquitectura de tres

capas

El desarrollo de la aplicación se lleva

por niveles

Es más utilizada actualmente

El primer nivel consiste en la

capa de presentación que incluye no sólo el navegador, sino

también el servidor web que es el responsable de dar a los datos

un formato adecuado

El segundo nivel está referido

habitualmente a algún tipo de

programa o script

El tercer nivel proporciona al

segundo los datos necesarios para su

ejecución

Page 4: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Lenguajes del lado del clientePeticiones con lenguajes del lado del

cliente

Navegador Aplicación Órdenes Código HTMLEs Que

interpretaRecibidas en forma de

Navegador

Lenguajes del lado del clientev

• Se ejecutan en el navegador del cliente

• El cliente tiene acceso al código de dicho lenguaje

• Son lenguajes como: HTML, javascript, css, etc.

• Hacen uso del servidor HTTP (Aapache)

• Es independiente al servidor, por lo que no necesariamente necesita ser albergada en un servidor para que sea visible

Page 5: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Modelo de objetos con lenguaje Script

• Acompaña al HTML en el lado del cliente

• Hay dos tipos de Script que se pueden asociar: Los que se ejecutan cuando se carga e l documento y los que se ejecutan por medio de algún evento

Modelo de objetos

Objetos del

navegador

Window Object

Location Object

Screen Object

Document Object

History Object

Navigator Object

Es el de más alto nivel, contiene las propiedades de la ventana y en el supuesto de trabajar con marcos (frames), se genera un objeto window para cada uno.

Contiene las propiedades de la URL activa

Contiene información referente a la resolución de la pantalla que muestra la URL

Contiene todas las propiedades del documento actual, como son: su color de fondo, enlaces, imágenes, etc.

Contiene las propiedades que representan a las URL que el usuario ha visitado anteriormente.

Contiene las propiedades del navegador.

Page 6: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Objetos del lenguaje Script Interconstruidos

Representa el tipo de dato número.

Objetos

String Object

Math Object

Date Object

Array Object

Boolean

Object

Number Object

Permite hacer diversas manipulaciones con las cadenas.

Posee atributos y métodos asociados a las constantes y funciones matemáticas

Permiten la manipulación de datos que representen fechas.

Nos da la facilidad de construir arreglos cuyos elementos pueden contener cualquier tipo básico, y cuya longitud se modificará de forma dinámica siempre que añadamos un nuevo elemento.

Nos permite crear booleanos, esto es, un tipo de dato que es cierto o falso, tomando los valores true o false.

Page 7: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Eventos con lenguaje Scriptvalidación en la entrada de datos

• Un evento es el resultado de la interacción entre un usuario con algún elemento de la interfaz gráfica que se le presenta. Por ejemplo: hacer click sobre un botón, cambiar el contenido de un campo de texto o mover el puntero del ratón sobre un enlace!!

• Los eventos se pueden capturar de varias formas, aunque se recomienda asociar un manejador del evento al objeto a capturar el evento. Para cada tipo de evento hay que tener tres elementos: quién lo genera, cuándo ocurre y cuál es el manejador de eventos que se debe utilizar

Eventos Validación en la entrada de datos

Validación

Entrada de datos

Ejecuta

Comprueba

Mientras esta se

Errores

Enviados

Detecta

Antes de serEjemplo de

errores detectados

Qué se introduzca un tipo de dato equivocado

Que la información

esté incompleta

Que no se haya llenado

el campo

Muchos más!!!

Page 8: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Consideraciones del soporte navegador

En la Actualidad

Plugins

Capacidades

Son agregados a

Navegadores

Versátiles

La mayor parte de

Son muy Mejoran y aumentan

Navegadores

Firefox

IExplorer

Google Chrome

Opera

Zafari

Y otros menos usados

Recuerda que los navegadores tienen

diferentes características y

plugins, que pueden mostrar de manera

diferente las aplicaciones

Page 9: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Lenguajes del lado del servidor

Peticiones con lenguajes del lado del clienteLenguajes del lado del Servidor

• 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

• Es independiente del cliente por lo que es mucho menos rígido respecto al cambio de un navegador a otro o respecto a las versiones del mismo

• Es importante para hacer transacciones en base de datos

• Se hace uso de ambos lenguajes para la realización de páginas web

• Algunos lenguajes del lado del servidor: PHP, ASP, etc.

• Para hacer uso de él se necesitan lenguajes del lado del cliente

http://www.adelat.org/media/docum/nuke_publico/lenguajes_del_lado_servidor_o_cliente.html

Page 10: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Procesamiento del lado del servidor

Funcionalidad

Programas

Páginas web

Capaces de correr

habilidad

servidores

Se refiere

De los

Qué interactúan con

Funcionalidad

ScriptSon llamados

Web Hosting

Permite Ejecutar

Información dinámica

Ofrecen

LDS

Correo Electrónico

Contraseñas

Encuestas

ForosContenido Dinámico

Gestión de base de datos

Etc

Qué permite LDC??

Nuestro proyecto estará basado en

LDC y LDS, así como también tendrá un

gestor de BD

Page 11: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Conceptos básicos de la herramienta de desarrollo

Herramientas de desarrollo

Herramientas de desarrollo

Secundarias

IDE’s

Pueden ser

aplicaciones

Se refiere a

Que tienen

Como:

Compiladores

Pueden ser Vitalimportancia

Como:

Conceptos básicos

Variables

Instrucciones

Operadores

Arreglos

Sesiones

Funciones

Librerías

Formularios

Page 12: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Lenguajes LDC y LDS

LDC

html

css

Flash

Java

Javascript

vbscript

LDS

CGI

Perl

Asp.netPHP

jsp

Lenguajes

híbridosDHTML XML

Page 13: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Ambientes para el desarrollo de aplicaciones web

• Los IDE (ambientes integrados de desarrollo) para aplicaciones Web son muy numerosos.

• Considerar los que permitan trabajar con los diferentes lenguajes para Web.

• Algunos son específicos para lenguajes del lado del servidor.

• Existen IDE’s de buena cantidad, libres y gratuitos de buena calidad.

• Ejemplo de ellos: Visual Studio, Microsoft Web Developer Express, Mono (asp.net), Netbeans, jbuilder, Eclipse.

IDE

IDE

NetBeans

Visual Studio

Microsoft Web

Developer Express

Mono

Jbuilder

Eclipse

Page 14: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Aspectos de SeguridadAspectos

de Seguridad

Pc del usuario Servidor

Información en

tránsito

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

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

• 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 15: Arquitectura de las aplicaciones web Arquitectura de dos capas Arquitectura de tres capas Arquitectura de dos capas Tipos de Arquitecturas de una aplicación.

Recomendaciones de Seguridad

Aspectos de

Seguridad

Pc del usuario Servidor

Información en

tránsito

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.

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

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