Вы находитесь на странице: 1из 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

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

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

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
COMPONENTES DATOS C# o VB .NET
XML INFORMACIN

DB

COMPONENTES NEGOCIO C# o VB .NET WEB SERVICE

HTML FORMULARIO JAVASCRIPT

PRESENTACION ASPX

XML INFORMACIN PROCESADA

XSL HOJA DE ESTILO

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

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

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

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

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.

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

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

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

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 la informacin en trnsito

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

Recomendaciones: Asegurar el equipo del usuario

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

Вам также может понравиться