Sei sulla pagina 1di 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 (IDEIntegrated 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

Potrebbero piacerti anche