Arquitectura de Aplicaciones Web

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 81

Organizacin y exploracin del sitio Ma.

Teresa Garca Ramrez

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

La iteracin entre un cliente Web y una aplicacin Web.


1. 2. 3.

4.
5.

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

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.

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 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 Centralizacin del control Escalabilidad Fcil mantenimiento


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

Capa

de datos Comunicacin, Validacin Capa de negocios Interfaz de usuario Generacin de peticin Capa de presentacin Acceso a Base de Datos

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

Capa de datos

Capa de Negocio

Capa de Presentacin

Base

de datos Tablas Procedimientos almacenados Componentes de datos

ADO

.NET, SQL, SQL SERVER, MySQL Procedimientos almacenados Componentes (c#, vb, c++,Java, Servlets) XML, es una nueva tecnologa para generacin de base de datos.

Reglas

del negocios Validaciones Clculos Flujos y procesos

Lenguajes

de Componentes (c#, vb, c++,

java, jsp)

Componentes Locales Componentes Web (Servicios web)

Comunicacin

entre componentes utilizando el SOAP (Simple Object Access Protocol) y XML.

Permiten

publicar componentes de negocios(Web Services) en un servidor web. Estas componentes pueden ser llamadas desde otros servidores o clientes utilizando SOAP. SOAP es un protocolo para el intercambio de la informacin basado en HTTP y XML

Formularios
Informes Respuestas

al usuario

ASP

.NET, JSP XML, XSL HTML JAVASCRIPT , VBSCRIPT Vb Form

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

DB

COMPONENTES DATOS C# o VB .NET

XML INFORMACIN

COMPONENTES NEGOCIO C#, Java WEB SERVICE

HTML FORMULARIO JAVASCRIPT

PRESENTACION ASPX, JSP

XML INFORMACIN PROCESADA

XSL HOJA DE ESTILO

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

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 tiene un significado.

Javascript

es un lenguaje de programacin utilizado para crear pequeos programitas encargados de realizar acciones dentro del mbito de una pgina web.
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.

Se

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.
applets de Java estn programados en Java y precompilados.

Los

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.

Es

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

El

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, es una tecnologa que nos permite crear pginas web de una manera ms ordenada.

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.

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.

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

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.

Un

entorno de desarrollo integrado (IDEIntegrated Development Environment -) es una aplicacin de software que ofrece servicios integrales a los programadores 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 Dreamvewer

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.

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, mantenimiento, 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.
Web es el proceso utilizado para crear, implantar y mantener aplicaciones y sistemas Web de alta calidad.

Ingeniera

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.
Quin posee la informacin? Quin asume la responsabilidad y costo de mantenerla?

Poltica:

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.

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

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

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

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.

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, inclusin de cdigo. 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

Revisar: http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r52946.PDF

También podría gustarte