arquitectura cliente servidor de http

Upload: sebastian-andres-gonzalez-iturrieta

Post on 20-Jul-2015

24 views

Category:

Documents


2 download

TRANSCRIPT

La Arquitectura Cliente Servidor de HTTP

Definicin de Cliente-servidor La modalidad o arquitectura Cliente/Servidor es aquella en la que confluyen una serie de aplicaciones basadas en dos categoras que cumplen funciones diferentes (una requiere servicios y la otra los brinda) pero que a la vez, pueden realizar tanto actividades en forma conjunta como independientemente.

Definicin de Cliente Es aquel que requiere un servicio del servidor. En esta categora se realizan funciones de software basndose en el hardware pero en caso de no tener la capacidad de procesar los datos necesarios, recurre al servidor y espera a que este le brinde los servicios solicitados.

Definicin de Cliente El cliente es una estacin de trabajo o computadora que est conectada a una red a travs de la cual puede acceder al servidor.

Definicin de Servidor Es la mquina desde la que se suministran servicios y que est a la espera del requerimiento del cliente. Una vez hecho, busca la informacin solicitada y le enva la respuesta al cliente.

Definicin de Servidor Incluso, el servidor, puede enviar varios servicios a la vez, lo que es posible porque entre ellos estn conectados mediante redes LAN o WAN.

Caractersticas Fundamentales Tanto el cliente como el servidor pueden realizar tareas en forma conjunta como separada ya que el cliente tambin tiene sus propias aplicaciones, archivos y bases de datos y que adems, pueden estar en la misma plataforma o en plataformas diferentes.

Caractersticas Fundamentales Por otra parte, el servidor puede brindar varios servicios a la vez, tanto al mismo cliente como a clientes mltiples.

Protocolo de comunicacin En informtica, un protocolo es un conjunto de reglas usadas por computadoras para comunicarse unas con otras a travs de una red.

Protocolo de comunicacin Un protocolo es una convencin o estndar que controla o permite la conexin, comunicacin, y transferencia de datos entre dos puntos finales.

Protocolo de comunicacin En su forma ms simple, un protocolo puede ser definido como las reglas que dominan la sintaxis, semntica y sincronizacin de la comunicacin.

Protocolo de comunicacin Los protocolos pueden ser implementados por hardware, software, o una combinacin de ambos. A su ms bajo nivel, un protocolo define el comportamiento de una conexin de hardware.

URL URL son las siglas de Localizador de Recurso Uniforme (en ingls Uniform Resource Locator), la direccin global de documentos y de otros recursos en la World Wide Web.

URL La primera parte de la direccin indica qu protocolo utilizar, la segunda parte especifica la direccin IP o nombre de dominio donde se localiza el recurso.

URL Por ejemplo, las dos URLs especificadas ms adelante, apuntan a dos archivos diferentes en el dominio tengodeudas.com.

URL La primera especifica un fichero ejecutable que se debe encontrar usando el protocolo FTP; la segunda especifica una pgina web que se debe abrir usando el protocolo HTTP: ftp://www.tengodeudas.com/ejemplo.exe http://www.tengodeudas.com/consejos/de bo-pagar-deudas-con-ahorros

Estructura de un sitio Se refiere a la forma que tendr el Sitio Web en trminos generales con sus secciones, funcionalidades y sistemas de navegacin. No considera ni incluye elementos grficos (logotipos, vietas, etc.).

Aplicaciones Web

La Plataforma J2EE La plataforma J2EE es un conjunto de herramientas que crean un escenario ideal para el desarrollo y despliegue de aplicaciones escalables en la Web.

CaractersticasPortable La famosa frase de Sun Escribe una Vez, usa en cualquier parte, tiene un gran poder de convocatoria, tu escribes tu aplicacin en tu mquina Windows o Linux y cuando la hayas terminado puede utilizarse en cualquier plataforma para la que haya disponible una Mquina Virtual Java (JVM).

CaractersticasEscalable Si tu empresa ve incrementado su nmero de clientes, nada ms sencillo que aadir nuevos componentes J2EE a una aplicacin Web para soportar al aumento de clientes, sin tener que reescribir todo el cdigo de nuevo.

CaractersticasAltamente Soportada Prcticamente cualquier gran empresa de software tiene un contenedor de componentes (o servidor de aplicaciones) Web compatibles con J2EE, entre ellas IBM (Websphere), BEA (WebLogic), Apache (Tomcat), la propia Sun con su nuevo servidor de aplicaciones iPlanet, MacroMedia con (JRun), etc.

CaractersticasSegura Mientras que otros modelos de aplicaciones empresariales requieren medidas de seguridad especficas en cada aplicacin, el entorno de seguridad de la plataforma J2EE permite que se definan restricciones de seguridad en el momento de despliegue de la aplicacin.

Caractersticas Esto permite, aislar las aplicaciones de la complejidad de las implementaciones de seguridad, la plataforma J2EE hace portables una gran complejidad de implementaciones de seguridad.

CGI La interfaz de pasarela comn (Common Gateway Interface, CGI) es un protocolo genrico que permite extender las capacidades de HTTP.

CGI Los programas en CGI aaden funcionalidad al servidor Web, funcionalidad que podra abrir agujeros de seguridad en el servidor, ya que una aplicacin en CGI mal diseada podra permitir acceso total o parcial al servidor.

CGI Cuando el World Wide Web inici su funcionamiento, (empezando a tomar popularidad aproximadamente en 1993), solo se poda apreciar texto, imgenes y enlaces.

CGI La introduccin de Plugins en los navegadores permiti mayor interactividad entre el usuario y el cliente, aunque estaba limitado por la velocidad y la necesidad de tener que bajar e instalar cada plugin que se necesitara, por lo que estos se desarrollaron mayormente en reas de vdeo, audio y realidad virtual.

CGI El CGI cambi la forma de manipular informacin en la web. En s, es un mtodo para la transmisin de informacin hacia un compilador instalado en el servidor.

CGI Su funcin principal es la de aadir una mayor interaccin a los documentos web que por medio del HTML se presentan de forma esttica.

CGI El CGI es utilizado comnmente para contadores, bases de datos, motores de bsqueda, formulrios, generadores de email automtico, comercio electrnico, rotadores y mapas de imgenes, juegos en lnea y otros.

CGI Esta tecnologa tiene la ventaja de correr en el servidor cuando el usuario lo solicita por lo que es dependiente del servidor y no del computador del usuario. Un documento HTML es esttico, lo que significa que existe en un estado constante; es un archivo de texto que no cambia.

CGI Los programas que maneja el CGI pueden estar compilados en diferentes lenguajes de programacin. El ms popular para el desarrollo de contenidos Web es el lenguaje Perl de distribucin gratuita, aunque tambin podemos mencionar: C, C++ y Java.

CGI El funcionamiento de esta tecnologa es muy sencillo. Los scripts residen en el servidor, donde son llamados, ejecutados y regresan informacin de vuelta al usuario.

Java Servlets Los servlets son objetos que corren dentro del contexto de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad. Tambin podran correr dentro de un servidor de aplicaciones (ej: OC4J Oracle), que, adems de contenedor para servlet, tendr contenedor para objetos ms avanzados.

Java Servlets La palabra servlet deriva de otra anterior, applet, que se refera a pequeos programas que se ejecutan en el contexto de un navegador web. Por contraposicin, un servlet es un programa que se ejecuta en un servidor.

Java Servlets El uso ms comn de los servlets es generar pginas web de forma dinmica a partir de los parmetros de la peticin que enve el navegador web.

Java Server Pages (JSP) Es una tecnologa Java que permite generar contenido dinmico para web, en forma de documentos HTML, XML o de otro tipo. Esta tecnologa es un desarrollo de la compaa Sun Microsystems. La Especificacin JSP 1.2 fue la primera que se liber y en la actualidad est disponible la Especificacin JSP 2.1.

Java Server Pages (JSP) Las JSP's permiten la utilizacin de cdigo Java mediante scripts. Adems, es posible utilizar algunas acciones JSP predefinidas mediante etiquetas. Estas etiquetas pueden ser enriquecidas mediante la utilizacin de Bibliotecas de Etiquetas (TagLibs o Tag Libraries) externas e incluso personalizadas.

Arquitectura de JSP JSP puede considerarse como una manera alternativa, y simplificada, de construir servlets. Es por ello que una pgina JSP puede hacer todo lo que un servlet puede hacer, y viceversa. Cada versin de la especificacin de JSP est fuertemente vinculada a una versin en particular de la especificacin de servlets.

Arquitectura de JSP El funcionamiento general de la tecnologa JSP es que el Servidor de Aplicaciones interpreta el cdigo contenido en la pgina JSP para construir el cdigo Java del servlet a generar. Este servlet ser el que genere el documento (tpicamente HTML) que se presentar en la pantalla del Navegador del usuario.

Arquitectura de JSP El rendimiento de una pgina JSP es el mismo que tendra el servidor equivalente, ya que el cdigo es compilado como cualquier otra clase Java. A su vez, la mquina virtual compilar dinmicamente a cdigo de mquina las partes de la aplicacin que lo requieran.

Arquitectura de JSP Esto hace que JSP tenga un buen desempeo y sea ms eficiente que otras tecnologas web que ejecutan el cdigo de una manera puramente interpretada.

Arquitectura de JSP La principal ventaja de JSP frente a otros lenguajes, es que el lenguaje Java es un lenguaje de propsito general que excede el mundo web y que es apto para crear clases que manejen lgica de negocio y acceso a datos de una manera prolija.

Arquitectura de JSP Otra ventaja es que JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en mltiples plataformas sin cambios. Es comn incluso que los desarrolladores trabajen en una plataforma y que la aplicacin termine siendo ejecutada en otra.

Arquitectura de JSP Los servlets y Java Server Pages (JSPs) son dos mtodos de creacin de pginas web dinmicas en servidor usando el lenguaje Java. En ese sentido son similares a otros mtodos o lenguajes tales como el PHP, ASP o los CGIs, programas que generan pginas web en el servidor. Sin embargo, se diferencian de ellos en otras cosas.

Arquitectura de JSP Para empezar, los JSPs y servlets se ejecutan en una mquina virtual Java, lo cual permite que, en principio, se puedan usar en cualquier tipo de ordenador, siempre que exista una mquina virtual Java para l.

Arquitectura de JSP Cada servlet se ejecuta en su propia hebra, es decir, en su propio contexto; pero no se comienza a ejecutar cada vez que recibe una peticin, sino que persiste de una peticin a la siguiente, de forma que no se pierde tiempo en invocarlo (cargar programa + intrprete).

Arquitectura de JSP La principal diferencia entre los servlets y los JSPs es el enfoque de la programacin: un JSP es una pgina Web con etiquetas especiales y cdigo Java incrustado, mientras que un servlet es un programa Java puro que recibe peticiones y genera a partir de ellas una pgina web

Arquitectura en Aplicaciones WebArquitectura de Tres Capas

Arquitectura de Tres Capas La programacin por capas es un estilo de programacin en el que el objetivo primordial es la separacin de la lgica de negocios de la lgica de diseo; un ejemplo bsico de esto consiste en separar la capa de datos de la capa de presentacin al usuario.

Arquitectura de Tres Capas

Arquitectura de Tres Capas La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algn cambio, slo se ataca al nivel requerido sin tener que revisar entre cdigo mezclado.

Arquitectura de Tres Capas Adems, permite distribuir el trabajo de creacin de una aplicacin por niveles; de este modo, cada grupo de trabajo est totalmente abstrado del resto de niveles, de forma que basta con conocer la API que existe entre niveles.

Capa de Presentacin Es la que ve el usuario, presenta el sistema al usuario, le comunica la informacin y captura la informacin del usuario en un mnimo de proceso. Esta capa se comunica nicamente con la capa de negocio. Tambin es conocida como interfaz grfica y debe tener la caracterstica de ser "amigable" (entendible y fcil de usar) para el usuario.

Capa de Negocio Es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envan las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lgica del negocio) porque es aqu donde se establecen todas las reglas que deben cumplirse.

Capa de Negocio Esta capa se comunica con la capa de presentacin, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos para almacenar o recuperar datos de l. Tambin se consideran aqu los programas de aplicacin.

Capa de Datos Es donde residen los datos y es la encargada de acceder a los mismos. Est formada por uno o ms gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperacin de informacin desde la capa de negocio.

Modelo Vista Controlador(MVC) Es un estilo de arquitectura de software que separa los datos de una aplicacin, la interfaz de usuario, y la lgica de control en tres componentes distintos. El patrn MVC se ve frecuentemente en aplicaciones web, donde la vista es la pgina HTML y el cdigo que provee de datos dinmicos a la pgina.

Modelo Vista Controlador(MVC) El modelo es el Sistema de Gestin de Base de Datos y la Lgica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.

Modelo Vista Controlador(MVC)

Descripcin del Patron Modelo Esta es la representacin especfica de la informacin con la cual el sistema opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas.

Descripcin del Patron Vista Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.

Descripcin del Patron Controlador Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista.

Modelo Vista Controlador(MVC) Muchos sistemas informticos utilizan un Sistema de Gestin de Base de Datos para gestionar los datos:en lneas generales del MVC al modelo. corresponde

Modelo Vista Controlador(MVC) La unin entre capa de presentacin y capa de negocio conocido en el paradigma de la Programacin por capas representara la integracin entre Vista y su correspondiente Controlador de eventos y acceso a datos.

Modelo Vista Controlador(MVC) MVC no pretende discriminar entre capa de negocio y capa de presentacin pero si pretende separar la capa visual grfica de su correspondiente programacin y acceso a datos, algo que mejora el desarrollo y mantenimiento de la Vista y el Controlador en paralelo, ya que ambos cumplen ciclos de vida muy distintos entre s.