Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitectura de Aplicaciones Web
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.
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
Desventajas: Congestin del trafico El cliente no dispone de los recursos que pueden existir en el servidor
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 Negocio
Reglas del negocios Validaciones Clculos Flujos y procesos
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
Ejemplo
COMPONENTES DATOS C# o VB .NET
XML INFORMACIN
DB
PRESENTACION ASPX
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.
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.
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.
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
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.
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, 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
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?
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.