Está en la página 1de 87

ARQUITECTURA DE

APLICACIONES WEB

APLICACIONES WEB
Aplicaciones que los usuarios pueden
utilizar accediendo a un servidor web
a travs de Internet o de una intranet
mediante un navegador.
Es una aplicacin software que se
codifica en un lenguaje soportado
por los navegadores web en la que
se confa la ejecucin al navegador

Existen aplicaciones como los


webmails, wikis, weblogs, tiendas en
lnea son ejemplos bien conocidos
de aplicaciones web.

Una pgina Web puede contener


elementos que permiten una
comunicacin activa entre el usuario
y la informacin.
Por ejemplo rellenar y enviar
formularios, participar en juegos
diversos y acceder a gestores de
base de datos de todo tipo.

Una aplicacin Web es una extensin


dinmica de la web o una aplicacin
de servidor.
Existen 2 tipos de aplicaciones Web
Orientada a la presentacin
Orientada al servicio

Orientada a la presentacin
Genera paginas web interactivas
que contienen varios tipos de
lenguaje de marca (HTML, XML, etc.)
y contenido dinmico en respuesta a
peticiones.

Orientada al servicio
Estas paginas implementan el punto
final del servicio web.
Las aplicaciones orientadas a la
presentacin frecuentemente son
clientes de las aplicaciones web
orientadas al servicio.

La iteracin entre un cliente Web y una


aplicacin Web.
1. cliente enva una peticin HTTP al servidor
web
2. Las tecnologas Java server convierten la
peticin un objeto HTTPServetRequest
3. Esta peticin es deliberada a un componente
Web, el cual puede interactuar con JavaBeans y
otros para
generar un contenido dinmico
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.

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.

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 informacin al Servidor.
El Servidor son los Servidores Web que proporcionan
documentos y contenidos multimedia a los clientes a
travs de la red

Esta arquitectura consiste


bsicamente en un cliente que
realiza peticiones a otro programa (el
servidor) que le da respuesta.

La separacin entre cliente y servidor es una


separacin de tipo lgico, donde el servidor no
se ejecuta necesariamente sobre una sola
mquina ni es necesariamente un slo
programa.
Los tipos especficos de servidores incluyen
los servidores web, los servidores de archivo,
los servidores del correo, etc. Mientras que
sus propsitos varan de unos servicios a
otros, la arquitectura bsica seguir siendo la
misma

La red cliente-servidor es aquella red de


comunicaciones en la que todos los clientes estn
conectados a un servidor, en el que se centralizan
los diversos recursos y aplicaciones con que se
cuenta; y que los pone a disposicin 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 pblico y los que son de
uso restringido, los archivos que son de slo 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

En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus


caractersticas son:
- Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la
comunicacin
- Espera y recibe las respuestas del servidor.
- Por lo general, puede conectarse a varios servidores a la vez.
- Normalmente interacta directamente con los usuarios finales mediante una
interfaz grfica de usuario.
- Al contratar un servicio de redes , se tiene que tener en la velocidad de
conexin 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
caractersticas son:
-Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempean
entonces un papel pasivo en la comunicacin
-Tras la recepcin de una solicitud, la procesan y luego envan la respuesta al
cliente.
- Por lo general, aceptan conexiones desde un gran nmero de clientes (en
ciertos casos el nmero mximo de peticiones puede estar limitado).
- No es frecuente que interacten directamente con los usuarios finales

Ventajas
Centralizacion del control
Escalabilidad
Facil mantenimiento

Desventajas:
Congestin del trafico
El cliente no dispone de los recursos
que pueden existir en el servidor

Ejemplos
wikipedia
Juegos on line

ARQUITECTURA DE 3 CAPAS

Arquitectura en 3 capas
Capa de datos
Capa de negocios
Capa de presentacin

La WEB
Al conectarnos a internet estamos
navegando en 3 capas.
Al abrir un formulario web de inscripcin
(capa de presentacin)
Despus de enviar la informacin esta
es verificada (capa de negocios).
Finalmente la informacin es grabada en
una base de datos (capa de datos).

Ejemplo
Capa de datos

Capa de Negocio

Capa de Presentacin

Capa de datos

Base de datos
Tablas
Procedimientos almacenados
Componentes de datos

Capa de datos Microsoft

ADO .NET
SQL SERVER 20000
Procedimientos almacenados
Componentes (c#, vb, c++, j#)
XML

Capa de Negocio

Reglas del negocios


Validaciones
Clculos
Flujos y procesos

Capa de Negocios Microsoft


Lenguajes de Componentes (c#, vb,
c++, j#)
Componentes Locales
Componentes Web (Servicios web)

Comunicacin entre componentes


utilizando el SOAP y XML

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 informacin basado en HTTP y XML

Capa de Presentacin
Formularios
Informes
Respuestas al usuario

Capa de Presentacin
Microsoft

ASP .NET
ASP
XML, XSL
HTML
JAVASCRIPT , VBSCRIPT
Vb Form
Word, Excel

Extensible Markup
Language (XML)
Meta Lenguaje de Marcacin es un
lenguaje estandar similar al html,
que permite la comunicacin entre
los sistemas de informacin.
Tiene una estructura de rbol.
Se recomienda usarlo en la
comunicacin entre las componentes
de Presentacin con las de Negocios

Ejemplo

DB

COMPONENTES
DATOS
C# o VB .NET

HTML
FORMULARIO
JAVASCRIPT

XML
INFORMACIN

COMPONENTES
NEGOCIO
C# o VB .NET
WEB SERVICE

PRESENTACION
ASPX

XSL
HOJA DE ESTILO

XML
INFORMACIN
PROCESADA

LENGUAJES DE
PROGRAMACION DEL
LADO DEL CLIENTE

Un lenguaje del lado cliente es totalmente


independiente del servidor, lo cual permite que
la pgina pueda ser albergada en cualquier
sitio.
Para que la pagina se pueda ver bien es
necesario tener instalados los plug-in
adecuados.
.

El navegador es una especie de


aplicacin capaz de interpretar las
rdenes recibidas en forma de cdigo
HTML fundamentalmente y
convertirlas en las pginas que son
el resultado de dicha orden.

Los lenguajes de lado cliente (entre


los cuales no slo se encuentra el
HTML sino tambin el Java y el
JavaScript los cuales son
simplemente incluidos en el cdigo
HTML) son aquellos que pueden ser
directamente "digeridos" por el
navegador y no necesitan un
pretratamiento.

HTML
El lenguaje llamado HTML indica al
navegador donde colocar cada texto,
cada imagen o cada video y la forma
que tendrn estos al ser colocados en
la pgina.
Este lenguaje consta de etiquetas que
tienen esta forma <B> o <P>. Cada
etiqueta significa una cosa.

JAVASCRIPT
Javascript es un lenguaje de programacin
utilizado para crear pequeos programitas
encargados de realizar acciones dentro del
mbito de una pgina web.
Se trata de un lenguaje de programacin del
lado del cliente, porque es el navegador el que
soporta la carga de procesamiento. Su uso se
basa fundamentalmente en la creacin de
efectos especiales en las pginas y la definicin
de interactividades con el usuario.

APPLETS DE JAVA
Se trata de pequeos programas hechos
en Java, que se transfieren con las pginas
web y que el navegador ejecuta en el
espacio de la pgina.
Los applets de Java estn programados en
Java y precompilados.

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.
Adems, Java es ms potente que
Javascript, por lo que el nmero de
aplicaciones de los applets podr ser
mayor

Como desventajas en relacin con


Javascript cabe sealar que los
applets son ms lentos de procesar y
que tienen espacio muy delimitado
en la pgina donde se ejecutan, es
decir, no se mezclan con todos los
componentes de la pgina ni tienen
acceso a ellos.

VBScript
Es un lenguaje de programacin de
scripts del lado del cliente, pero slo
compatible con Internet Explorer.
El funcionamiento de Visual Basic
Script para construir efectos
especiales en pginas web

FLASH
Flash es una tecnologa, y un
programa, para crear efectos
especiales en pginas web. Con
Flash se hacen pginas dinmicas
del lado del cliente.

CSS
CSS, es una tecnologa que nos
permite crear pginas web de una
manera ms exacta.

LENGUAJES DE
PROGRAMACIN DEL
LADO DEL SERVIDOR

Un lenguaje del lado del servidor es


aquel que se ejecuta en el servidor
web, justo antes de que se enve la
pgina a travs de Internet al cliente.
Las pginas que se ejecutan en el
servidor pueden realizar accesos a
bases de datos, conexiones en red, y
otras tareas para crear la pgina final
que ver el cliente

Son aquellos lenguajes que son


reconocidos, ejecutados e
interpretados por el propio servidor y
que se envan al cliente en un
formato comprensible para l.

CGI
Es el sistema ms antiguo que existe para
la programacin de las pginas dinmicas
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.

PEARL
Perl es un lenguaje de programacin
interpretado. Esto quiere decir que el
cdigo de los scripts en Perl no se
compila sino que cada vez que se
quiere ejecutar se lee el cdigo y se
pone en marcha interpretando lo que
hay escrito.

ASP.net
ASP (Active Server Pages) es la
tecnologa desarrollada por Microsoft
para la creacin de pginas
dinmicas del servidor. ASP se
escribe en la misma pgina web,
utilizando el lenguaje Visual Basic
Script o Jscript (Javascript de
Microsoft).

PHP
PHP es el acrnimo de Hipertext
Preprocesor. Es un lenguaje de
programacin del lado del servidor
gratuito e independiente de
plataforma, rpido, con una gran
librera de funciones y mucha
documentacin.

JAVA SERVER PAGES


Es una tecnologa orientada a crear
pginas web con programacin en Java.
Con JSP se hacen aplicaciones web que
se ejecutan en variados servidores web,
de mltiples plataformas, ya que Java es
en esencia un lenguaje multiplataforma.
Por tanto, JSP se escriben con editores
HTML/XML habituales.

AMBIENTES PARA EL
DESARROLLO DE
APLICACIONES WEB

Un entorno de desarrollo integrado


(IDE- Integrated Development
Environment -) es una aplicacin de
software que ofrece servicios
integrales a los programadores de
computadoras para el desarrollo de
software

Un IDE normalmente se compone de:

Un editor de texto
Un compilador.
Un intrprete.
Herramientas de automatizacin.
Un depurador.
Posibilidad de ofrecer un sistema de control de
versiones.
Factibilidad para ayudar en la construccin de
interfaces grficas de usuario.

Para PHP se tienen las siguientes


herramientas

Zend Studio
Open Komodo Project
Eclipse + phpEclipse
etc

Dreamweber es una herramienta que


permite trabajar con

ASP JavaScript
ASP VBScript
ASP.NET C#
ASP.NET VB
COLDFUSION
JSP
PHP MySQL

Joomla es un Sistema de Gestin de


Contenidos (CMS) que le ayuda a
construir sitios web y otras
aplicaciones online potentes.

Entre los diferentes usos que la gente da a


Joomla! estn:

Webs corporativas o portales


Comercio electrnico
Pequeos sitios de negocios
Webs de organizaciones o ONGs
Aplicaciones gubernamentales
Intranets y extranets corporativas
Webs de escuelas o agrupaciones
Pginas personales o familiares
Portales de comunidades
Revistas y peridicos

WordPress es un sistema de gestin de


contenido enfocado a la creacin de blogs
(sitios web peridicamente actualizados).
Desarrollado en PHP y MySQL.

METODOLOGIA PARA EL
DESARROLLO DE
APLICACIONES WEB

Las aplicaciones Web exigen


funcionalidad, confiabilidad,
usabilidad y eficiencia entre otras
caractersticas de calidad.
La utilidad y crecimiento de las
aplicaciones Web genera grandes
desafos como son los de controlar y
mejorar su calidad.

Aunque las aplicaciones Web estn creciendo


rpidamente tanto en uso como en aceptacin,
son las mismas metodologas 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 consideracin que se merecen
durante el proceso de desarrollo.

En la ingeniera software se denomina


aplicacin web a aquellas aplicaciones que
los usuarios pueden utilizar accediendo a un
servidor web a travs de Internet o de una
intranet mediante un navegador.
Ingeniera Web es el proceso utilizado para
crear, implantar y mantener aplicaciones y
sistemas Web de alta calidad

Control y garanta de la
calidad

Usabilidad
Funcionabilidad
Fiabilidad
Seguridad
Eficiencia
Mantenibilidad

Las actividades que forman parte del


proceso son:
Formulacin identifica objetivos y
establece el alcance.
Planificacin genera la estimacin del
costo general del proyecto, la evaluacin
de riesgos y el calendario del desarrollo y
fechas de entrega.
Anlisis especifica los requerimientos e
identifica el contenido.

Modelado se compone de dos secuencias paralelas de


tareas. Una consiste en el diseo y produccin del
contenido que forma parte de la aplicacin. La otra, en
el diseo de la arquitectura, navegacin e interfaz de
usuario.
Generacin de pginas se integra contenido,
arquitectura, navegacin e interfaz para crear esttica
o dinmicamente el aspecto ms visible de las
aplicacin, las pginas.
Prueba busca errores a todos lo niveles: contenido,
funcional, navegacion, rendimiento, etc.
Finalmente, el resultado es sometido a la evaluacin
del cliente.

Hay cuatro aspectos importantes a tener en cuenta


en el desarrollo de tcticas de control de
configuracin para la Web.
Contenido: Considerando la dinamicidad con la que
el contenido se genera, es tarea compleja organizar
racionalmente los objetos que forman la
configuracin 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.

Escalabilidad: Es comn encontrar


aplicaciones que de un da para otro
crecen considerablemente. Sin embargo,
las tcnicas de control no escalan de
forma adecuada.
Poltica: Quin posee la informacin?
Quin asume la responsabilidad y coste
de mantenerla?

La Gestin del Proceso


En un proceso tan rpido como es el proceso
de Ingeniera Web, donde los tiempos de
desarrollo y los ciclos de vida de los productos
son tan cortos por la gestin es impresindible.
Entre los aspectos que aaden dificultad a la
gestin destacamos:
Alto porcentaje de contratacin a terceros
El desarrollo incluye una gran variedad de
personal tcnico y no tcnico trabajando en
paralelo

El equipo de desarrollo debe dominar


aspectos tan varidos como, software
basado en componentes, redes, diseo de
arquitectura y navegacin, diseo grfico
y de interfaces, lenguajes y estndares en
Internet, test de aplicaciones Web, etc, lo
que hace que el proceso de bsqueda y
contratacin de personal sea arduo.

Qu marca la diferencia?
A modo de breve resumen enumeramos las
siguientes diferencias:
Confluencia de disciplinas: Sistemas de
informacin, ingeniera software y diseo
grfico que requiere equipos
multidisciplinares y polivalentes. Ciclos de
vida y tiempo de desarrollo muy cortos
Cambio continuo:

Necesidad de soluciones que


permitan flexibilidad y adaptacin
conforme el proyecto cambia.
Requisitos fuertes de seguridad,
rendimiento y usabilidad.

ASPECTOS DE SEGURIDAD

Las aplicaciones Web estn ms


expuestas a ataques.
Se pueden tener ataques en tres
niveles:
A la computadora del usuario.
Al servidor.
A la informacin en trnsito.

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 informacin que viaja
entre el servidor Web y el usuario

Seguridad de la computadora del


usuario
Los usuarios deben contar con
navegadores y plataformas seguras,
libres de virus y vulnerabilidades.
Tambin debe garantizarse la
privacidad de los datos del usuario.

Seguridad del servidor Web y de los


datos almacenados ah
Se debe garantizar la operacin
continua del servidor, que los datos no
sean modificados sin autorizacin
(integridad) y que la informacin slo
sea distribuida a las personas
autorizadas (control de acceso).

Seguridad de la informacin que


viaja entre el servidor Web y el
usuario.
Garantizar que la informacin en trnsito
no sea leda (confidencialidad),
modificada o destruida por terceros.
Tambin es importante asegurar que el
enlace entre cliente y servidor no pueda
interrumpirse fcilmente (disponibilidad).

Recomendaciones de
seguridad.

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 interactan en
las dos capas anteriores (mdulos,
bibliotecas).

Recomendaciones:
Asegurar la informacin
en trnsito

Esto se puede lograr por diversos


medios:
Asegurando la red fsicamente
(switches en lugar de hubs).
Esconder la informacin
(esteganografa).
Cifrar la informacin (criptografa) por
medio de algoritmos diversos (SSL,
VPNs).

Recomendaciones:
Asegurar el equipo del
usuario
Vulnerar el equipo del usuario quizs no
tenga el impacto de vulnerar el servidor,
sin embargo es un problema ms difcil de
erradicar (1 servidor, 5000 clientes):
Aplicar actualizaciones (parches) al sistema
operativo.
Uso de antivirus, firewalls personales.
Educacin de los usuarios.

Fallas de seguridad mas


comunes
Cross Site Scripting (XSS). Las vulnerabilidades de XSS
originalmente abarcaban cualquier ataque que permitiera
ejecutar cdigo 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

También podría gustarte