Sunteți pe pagina 1din 11

Unidad 1: El lenguaje de marcado HTML y las tecnologas de aplicaciones web

Aprendizaje esperado 1.2: Reconoce los distintos tipos y arquitecturas de aplicaciones Web y sus caractersticas asociadas.
Paola A. Cifuentes Berros Ingeniero en Computacin e Informtica paola.cifuentes02@inacapmail.cl Docente Universidad Tecnolgica de Chile INACAP ARICA

Criterios de evaluacin:
Reconoce conceptos propios de la arquitectura cliente servidor y las caractersticas de su funcionamiento. Reconoce los distintos tipos de aplicaciones Web dando ejemplos de cada uno de ellos. Reconoce los distintos tipos arquitecturas de aplicaciones Web ejemplificando las caractersticas de su funcionalidad.

Contenidos
1. La arquitectura cliente Servidor de HTTP Cliente-Servidor, protocolo de comunicacin, URL, estructura de un sitio WEB 2. Aplicaciones Web Qu es la plataforma J2EE Qu es y para qu sirven los programas CGI Qu es y para qu sirven los Java Servlet Qu es y para qu sirven las Java Server Page (jsp) 3. Arquitecturas en aplicaciones Web Arquitectura de 3 Capas Arquitectura MVC (Modelo, Vista, Controlador)

1. La arquitectura cliente/servidor de HTTP


Internet puede ser definida como una red de redes:

Stack de protocolos de red para aplicaciones WEB

Normalizacin
En los primeros aos las grandes compaas: IBM y Digital, crearon su propio estndar de cmo las computadoras deban conectarse. Estos primeros estndares, sin embargo, no eran enteramente compatibles. En aos posteriores, la Organizacin Internacional de Estandarizacin (ISO) y el Instituto de Ingenieros Elctricos y Electrnicos (IEEE), desarrollaron modelos globalmente reconocidos y aceptados para el diseo de cualquier red de computadoras.

El modelo OSI
Son normas que deben seguir distintos sistemas para poder comunicarse entre s. Un Sistema Abierto es cualquiera que cumple con las normas OSI.
Sem Semntica de datos Representaci Representacin datos Di Dilogo ordenado Extremo a extremo Encaminamiento Punto a Punto El Elctrico/Mec ctrico/Mecnico

El propsito de cada capa es proveer los servicios para la capa superior. Las capas son abstradas de tal manera que cada capa cree que se est comunicando con la capa asociada en la otra computadora, cuando realmente cada capa se comunica slo con las capas adyacentes de las misma computadora.

La interaccin entre capas adyacentes se llama interface. La interface define que servicios la capa inferior ofrece a su capa superior y como estos servicios son accesados. Las reglas que se usan para la comunicacin entre las capas se llama protocolo.

Stack o pila de protocolos de red


Conjunto de normas y convenciones par enviar informacin a travs de una red. Estas normas rigen el contenido, el formato, la temporizacin , la secuencia y el control de errores de los mensajes intercambiados entre los dispositivos de la red. El protocolo estndar para la comunicacin en la red mundial, Internet, es TCP/IP.

1.1 Protocolo de comunicacin TCP/IP


TCP/IP es un conjunto de protocolos que permiten compartir recursos en una red. Permite la comunicacin entre redes interconectadas formadas por equipos con distintas arquitecturas de hardware y sistemas operativos. Incluye estndares para la comunicacin entre equipos y convenciones para conectar redes y enrutar las transmisiones. Transport Control Protocol, es un protocolo de nivel de Transporte (Modelo OSI). Internet Protocol, es un protocolo de nivel de red (Modelo OSI).

TCP/IP puede ser configurado utilizando herramientas provistas por los sistemas operativos. El Protocolo de control de transporte/Protocolo Internet (TCP/IP, Transport Control Protocol/Internet Protocol) es el protocolo de red ms utilizado y la base de Internet. Una red TCP/IP, tiene que proporcionar direcciones IP a los clientes. Puede que los clientes tambin necesiten un servicio de nombres o un mtodo de resolucin de nombres. TCP/IP incluye las herramientas FTP y Telnet.

RFC
Las solicitudes de comentarios (RFC, Requests for Comments) son un conjunto de informes tcnicos avanzados, propuestas de protocolos y estndares de protocolos que utiliza la comunidad de Internet. Los estndares de enrutamiento estn definidos en los documentos RFC publicados por el grupo de trabajo de ingeniera de internet (IETF, Internet Engineering Task Force) y otros grupos de trabajo.

TCP/IP est documentado en RFC 1180.

Caractersticas de TCP/IP
Independencia del fabricante Soporta mltiples tecnologas Puede funcionar en mquinas de cualquier tamao Estndar de EEUU desde 1983

IP
Protocolo de enrutamiento del conjunto de protocolos TCP/IP responsable de la asignacin de direcciones IP, el enrutamiento y la fragmentacin y ensamblaje de paquetes IP.

Enrutamiento: proceso que consiste en reenviar un paquete a travs de redes interconectadas desde un host de origen a un host de destino. El protocolo IP es el elemento que permite integrar distintas redes entre si. El protocolo IP enlaza las diferentes piezas (distintas redes: FDDI, RDSI, X.25, lneas dedicadas, Token Ring, Ethernet, lneas telefnicas,...) de la Internet.

Otros protocolos de red: Netbeui PPP (RFC 1661) IPX/SPX

1.2 Arquitectura cliente/servidor


Diagrama genrico de la arquitectura Internet

HTTP
Hypertext Transfer Protocol o HTTP (en espaol protocolo de transferencia de hipertexto) es el protocolo usado en cada transaccin de la World Wide Web. HTTP brinda soporte a HTML. Los documentos HTML incluyen enlaces a otros documentos en la red, formularios para traspasar datos del usuario al web server, etc. HTTP puede servir cualquier tipo de documento.

Web Browser y Web Servers

Arquitectura cliente/servidor HTTP

1.3 Estructura de un sitio WEB


Un Web Site es una jerarqua de documentos HTML, archivos de medios, y los directorios que forman la estructura:

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

Ejemplo de una HTTP URL: http://www.soccer.org/league/Spring2001.html

Ejemplos:
Las siguientes URLs apuntan a dos archivos diferentes en el dominio tengodeudas.com Especifica un fichero ejecutable que se debe encontrar usando el protocolo FTP: ftp://www.tengodeudas.com/ejemplo.exe Especifica una pgina web que se debe abrir usando el protocolo HTTP: http://www.tengodeudas.com/consejos/debopagar-deudas-con-ahorros

2. Aplicaciones de WEB
Tecnologas de aplicaciones WEB: HTML sobre HTTP Common Gateway Interface (CGI) Servlets JavaServer Pages (JSP) technology JSP Standard Tag Library (JSTL) XML Struts JavaServer Faces

2.1 Qu es la plataforma J2EE?


Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2 Platform, Enterprise Edition o J2EE hasta la versin 1.4), es una plataforma de programacin (parte de la Plataforma Java) para desarrollar y ejecutar software de aplicaciones en Lenguaje de Programacin Java con arquitectura de N niveles distribuida, basndose ampliamente en componentes de software modulares ejecutndose sobre un servidor de aplicaciones.

Java EE es tambin considerada informalmente como un estndar debido a que los suministradores deben cumplir ciertos requisitos de conformidad para declarar que sus productos son conformes a Java EE; estandarizado por The Java Community Process /JCP. Java EE es la industria estndar para el desarrollo de aplicaciones Java portables, robustas, escalables y seguras por el lado del servidor. Java EE est construida sobre Java Platform, Standard Edition (Java SE).

Java EE 5 SDK
Java EE es un conjunto tecnologas que incluyen: Java Servlet 2.5 (Java Specification Requests [JSR] 154) JavaServer Pages 2.1 (JSR 245) JavaServer Pages Standard Tag Library (JSR 52) JavaServer Faces 1.2 (JSR 252)

2.2 Qu es y para qu sirven los

programas CGI?
Interfaz de entrada comn (en ingls Common Gateway Interface, abreviado CGI) es una importante tecnologa de la World Wide Web que permite a un cliente (navegador web) solicitar datos de un programa ejecutado en un servidor web. CGI especifica un estndar para transferir datos entre el cliente y el programa. Es un mecanismo de comunicacin entre el servidor web y una aplicacin externa cuyo resultado final de la ejecucin son objetos MIME. Las aplicaciones que se ejecutan en el servidor reciben el nombre de CGIs.

Las aplicaciones CGI fueron una de las primeras maneras prcticas de crear contenido dinmico para las pginas web. En una aplicacin CGI, el servidor web pasa las solicitudes del cliente a un programa externo. Este programa puede estar escrito en cualquier lenguaje que soporte el servidor, aunque por razones de portabilidad se suelen usar lenguajes script. La salida de dicho programa es enviada al cliente en lugar del archivo esttico tradicional. CGI ha hecho posible la implementacin de funciones nuevas y variadas en las pginas web, de tal manera que esta interfaz rpidamente se volvi un estndar, siendo implementada en todo tipo de servidores web.

Ejecucin de un CGI (1 requerimiento)

Ejecucin de un CGI (varios requerimientos)

2.3 Qu es y para qu sirven los Java

Servlet?
Un servlet es un componente de la tecnologa de Java que se ejecuta en el servidor. Los servlets realizan tareas similares a las realizadas por programas CGI, pero los servlets ejecutan en un ambiente diferente. Los servlets realizan el siguiente proceso: Procesan la peticin HTTP Generan la respuesta HTTP dinmicamente

Un web container es una implementacin de la JVM Java responsable de mantener el ciclo vital de los servlets, as como los hilos de cada requerimiento. 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. 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.

Web server con web container

Ejecucin de un Servlet (1 requerimiento)

Ejecucin de un Servlet (varios requerimientos)

2.3.1 Ciclo de vida de un servlet


El ciclo de vida de un Servlet se divide en los siguientes puntos: El cliente solicita una peticin a un servidor va URL. El servidor recibe la peticin. Si es la primera, se utiliza el motor de Servlets para cargarlo y se llama al mtodo init(). Si ya est iniciado, cualquier peticin se convierte en un nuevo hilo. Un Servlet puede manejar mltiples peticiones de clientes.

2.3.2 Procesos separados o hilos


Se llama al mtodo service() para procesar la peticin devolviendo el resultado al cliente. Cuando se apaga el motor de un Servlet se llama al mtodo destroy(), que lo destruye y libera los recursos abiertos. Ventajas de ejecutar programas en procesos separados sobre los hilos: Los programas se pueden escribir en una variedad de idiomas. Los diseadores del web pueden referirse fcilmente a los programas que funcionan en procesos separados.

2.3.3 Aspectos tcnicos


Ventajas de funcionar con programas de servlet en hilos: Los requisitos de la CPU son ms bajos. Las tecnologas de Java separan el proceso de cdigo (lgica de negocio) del HTML (lgica de la presentacin). El lenguaje Java es ms robusto y orientado al objeto. El lenguaje Java es plataforma-independiente. Un servlet es un objeto que se ejecuta en un servidor o contenedor JEE, especialmente diseado para ofrecer contenido dinmico desde un servidor web, generalmente HTML. Otras opciones que permiten generar contenido dinmico son los lenguajes ASP, PHP, JSP (un caso especial de servlet), Ruby y Python. Los servlet forman parte de JEE (Java Enterprise Edition), que es una ampliacin de JSE (Java Standard Edition).

2.4 Qu es y para qu sirven las Java

Server Page (jsp)?


Un servlet implementa la interfaz javax.servlet.Servlet o hereda alguna de las clases ms convenientes para un protocolo especfico. Por ejemplo: javax.servlet.HttpServlet. Al implementar esta interfaz el servlet es capaz de interpretar los objetos de tipo HttpServletRequest y HttpServletResponse quienes contienen la informacin de la pgina que invoc al servlet. JavaServer 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. Las pginas JSP 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.

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

En una aplicacin web con tecnologa Java, las pginas JSP son de uso frecuente conjuntamente con servlets y objetos de negocio en un patrn Model-View-Controller.

3. Arquitecturas en aplicaciones Web

3.1 Arquitectura de 3 Capas

3.2 Arquitectura MVC (Modelo, Vista, Controlador)

Web container utilizando arquitectura de 2 niveles

Frameworks
Los Frameworks son implementaciones parciales sobre las cuales es posible construir nuevos componentes. Frameworks model 2 disponibles: Struts del grupo Jakarta JavaServer Faces de Sun Velocity de Apache

Java EE containers
El diseo modular facilita las modificaciones de la lgica de negocios (business logic). Los componentes Enterprise pueden utilizar contenedores (container) que proveen servicios tales como presentacin, seguridad, persistencia y administracin del ciclo de vida.

Arquitectura Java EE

3.3 Roles de trabajo


La modularidad de las aplicaciones con arquitectura Java EE claramente distingue los siguientes roles: Web Designer (crea elementos view) Web Component Developer (crea elementos controller) Business Component Developer (crea elementos model) Data Access Developer (crea elementos database access)

Anlisis de casos 1
1. En una arquitectura "Model 2" los servlet actan como controller? a) Verdadero b) Falso 2. Un contenedor web es: a) Un servidor web que soporta JSP y Servlet b) Un servidor web c) Un servidor de aplicaciones

3. Un jsp es un archivo de texto? a) Verdadero b) Falso 4. Un servlet es: a) Un programa en Java b) Un html mejorado c) Un archivo de texto 5. En una arquitectura "Model 2" los "JSP" actan como: a) View b) Model c) Controller

Anlisis de casos 2
Desarrollar Gua 8 HTML y Tecnologas

Anlisis de casos 3
Lectura complementaria 1 Desarrollar Gua 9 Tecnologas WEB

10

Referencias y recursos
Wikipedia (cgi, servlets, jsp, jee), en http://es.wikipedia.org/wiki/, acceso el 30/03/2010. Web Component Development With Servlet and JSP Technologies, curso SL-314-EE5 Revision C.1, manual de la asignatura.

Anexo
NetBEUI (NetBIOS Extended User Interface, en espaol Interfaz extendida de usuario de NetBIOS), es un protocolo de nivel de red sin encaminamiento y bastante sencillo utilizado como una de las capas en las primeras redes de Microsoft. NetBIOS sobre NetBEUI es utilizado por muchos sistemas operativos desarrollados en los 90, como LAN Manager, LAN Server, Windows 3.x, Windows 95 y Windows NT. REF.: http://es.wikipedia.org/wiki/NetBEUI, acceso 20/03/2011.

Anexo
IPX/SPX (del ingls Internetwork Packet Exchange/Sequenced Packet Exchange), Protocolo Novell o simplemente IPX es una familia de protocolos de red desarrollados por Novell y utilizados por su sistema operativo de red NetWare. REF.: http://es.wikipedia.org/wiki/IPX/SPX, acceso 20/03/2011.

Anexo
El NCSA HTTPd era un Servidor web desarrollado originalmente en el National Center for Supercomputing Applications por Robert McColl y una lista de colaboradores. El desarrollo del NCSA HTTPd se suspendi en 1998, pero el cdigo sobrevivi durante un tiempo en manos del Proyecto Apache, el cual es utilizado actualmente por dos terceras partes de los servidores web de internet. Prcticamente todo el cdigo de NCSA se ha ido reescribiendo progresivamente en versiones de Apache. REF.: http://es.wikipedia.org/wiki/NCSA_HTTPd, acceso 20/03/2011.

Anexo
Multipurpose Internet Mail Extensions o MIME (en espaol "extensiones multipropsito de correo de internet") son una serie de convenciones o especificaciones dirigidas al intercambio a travs de internet de todo tipo de archivos (texto, audio, vdeo, etc.) de forma transparente para el usuario. REF.: http://es.wikipedia.org/wiki/MIME, acceso 20/03/2011.

11

S-ar putea să vă placă și