Arquitectura de Aplicaciones Web
Arquitectura de Aplicaciones Web
Arquitectura de 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 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.
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.
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.
Capa
de datos Comunicacin, Validacin Capa de negocios Interfaz de usuario Generacin de peticin Capa de presentacin Acceso a Base de Datos
Al
Capa de datos
Capa de Negocio
Capa de Presentacin
Base
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
Lenguajes
java, jsp)
Comunicacin
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
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
XML INFORMACIN
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
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.
Joomla es un Sistema de Gestin de Contenidos (CMS) que le ayuda a construir sitios web y otras aplicaciones online potentes.
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
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.
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
usuarios deben contar con navegadores y plataformas seguras, libres de virus y vulnerabilidades. Tambin debe garantizarse la privacidad de los datos del usuario.
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
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
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