Professional Documents
Culture Documents
Andrs Vignaga, Daniel Perovich Universidad de la Repblica, Facultad de Ingeniera, Instituto de Computacin Montevideo, Uruguay
{avignaga,perovich}@fing.edu.uy
Resumen
En la actualidad, es cada vez ms comn la aplicacin de tecnologas Web en el desarrollo de aplicaciones de porte empresarial. Por su gran cantidad y diferente naturaleza, dichas tecnologas se pueden aplicar tanto para compartir archivos en una intranet, como para desarrollar la interfaz de usuario de un sistema de software. Esta ltima aplicacin de las tecnologas Web es el contexto de este trabajo. Justamente debido a la gran diversidad de opciones, conjuntamente con la dificultad que presenta cada una para su comprensin, es que puede resultar complicado elegir una alternativa, sobre todo para quien no posea un conocimiento profundo en cada tecnologa. Este trabajo se centra principalmente en las soluciones provistas por Microsoft y Sun Microsystems. Ms que estudiar individualmente cada una de las diferentes tecnologas disponibles, el enfoque seguido es realizar un estudio abstracto de familias de tecnologas que presentan caractersticas comunes. El objetivo de esto es comprender la esencia de un modelo tecnolgico previo a investigar los detalles de una tecnologa particular. Asimismo, se presenta un relevamiento de aquellos aspectos de la arquitectura, incluyendo una clara separacin entre arquitectura fsica y lgica, que definen la infraestructura, de cuya configuracin depende la aplicabilidad de un determinado modelo tecnolgico. Palabras clave: Tecnologas Web, Arquitectura de Software, Desarrollo en Capas, Cliente/Servidor, Intranet
Indice
Introduccin Capitulo 1 Arquitectura Cliente/Servidor
1.1 Introduccin 1.2 Qu es Cliente/Servidor? 1.2.1 Definicin, 4 1.2.2 Cliente y Servidor, 4 1.2.3 Middleware, 5 1.2.4 Caractersticas del modelo Cliente/Servidor, 5 1.2.5 Ventajas y desventajas del modelo Cliente/Servidor, 6 1.3 Uso de la Tecnologa Web 1.3.1 Definiciones, 7 1.3.2 Motivacin, 7 4 4
3 4
11
13
17
18
2 22
4.4 Modelo deComponentes Grficos 4.4.1 Descripcin del modelo, 22 4.4.2 Tecnologas, 23 4.4.3 Middleware, 23 4.4.4 Cualidades, 23 4.5 Modelo de Contenido Dinmico 4.5.1 Descripcin del modelo, 25 4.5.2 Tecnologas, 26 4.5.3 Middleware, 26 4.5.4 Cualidades, 26
25
29
30
31
34
36
44
45
Referencias Bibliogrficas
48
Introduccin
El objetivo principal de este informe es la presentacin y estudio de las caractersticas generales de las tecnologas que brindan Microsoft y Sun Microsystems para el desarrollo de aplicaciones de tipo empresarial con arquitectura cliente/servidor. Este trabajo no debe ser entendido como una referencia para el uso de las tecnologas tratadas. Por el contrario, debe ser un medio para conocer los detalles particulares de la filosofa de cada una, de forma de brindar elementos de juicio para la toma de decisiones en una realidad particular. El tratamiento dado en este trabajo a las tecnologas es general, aunque en ciertos casos el enfoque se ajusta a aplicaciones de tipo empresarial. Existe actualmente una fuerte tendencia al uso de tecnologas web en este tipo de aplicaciones. Esta tendencia se debe a que resulta un medio sencillo y conocido, en comparacin a otros, para implementar ciertos aspectos de una aplicacin con arquitectura cliente/servidor. El uso de tecnologas web en redes privadas, como por ejemplo de rea local, hace de stas lo que se conoce como intranets. Desarrollar para intranets permite la utilizacin de todas las tecnologas disponibles para el desarrollo para Internet. Muchas de las tecnologas tratadas en este trabajo sirven para desarrollar tanto para Internet como para intranets, aunque son estudiadas tambin otro tipo de tecnologas. Por otra parte, en lo referente al diseo de aplicaciones, el trmino arquitectura en capas est actualmente muy difundido, aunque su significado no est estandarizado. El desarrollo de aplicaciones de mediano o mayor porte no deben quedar ajenos a este tema. En este trabajo se confronta la arquitectura cliente/servidor con la arquitectura en capas, buscando un relacionamiento entre ambos conceptos. Como se ver, las tecnologas aplicables al desarrollo de una aplicacin cambian en funcin del diseo global de la arquitectura de la aplicacin. En este contexto, el estudio se centra en los aspectos arquitectnicos y tecnolgicos de los componentes responsables de la presentacin de la aplicacin. Estos componentes son los que residen en el cliente junto con los que interactan con ellos desde el lado del servidor. Las tecnologas que no se apliquen a este aspecto no son tratadas aqu. Debido a que la arquitectura condiciona la aplicabilidad de ciertas tecnologas se considera necesario dedicar atencin a este tema. Arquitectura cliente/servidor y en capas son trminos no estandarizados y algo confusos, la bibliografa no es uniforme respecto a ellos e inclusive en ocasiones confunde ambos trminos. Aqu se los define por separado y se determina una relacin entre ambos conceptos que representa nuestra visin sobre el tema ya que no se encontr una referencia adecuada. El tratamiento de estos temas sirve adems para uniformizar la terminologa a lo largo del trabajo y permite abstraer las caractersticas comunes que puedan tener un grupo de tecnologas. Una vez comprendidas estas caractersticas, resulta ms sencillo comprender los detalles. Este documento est organizado de la siguiente forma: los captulos 1 y 2 definen los conceptos de arquitectura cliente/servidor y arquitectura en capas respectivamente; el captulo 3 describe la relacin de correspondencia entre los componentes de las arquitecturas de los dos captulos anteriores. En el captulo 4 se distinguen los modelos tecnolgicos posibles de acuerdo a las tecnologas disponibles actualmente y su correspondencia con la relacin definida en el captulo 3. El captulo 5 estudia las tecnologas concretas correspondientes a cada modelo y el captulo 6 resume aplicaciones reales de algunas de las tecnologas tratadas.
1.2 Qu es Cliente/Servidor?
1.2.1 Definicin
No hay un consenso sobre el significado exacto del trmino. Diferentes autores proponen diferentes definiciones. La siguiente definicin introduce el concepto en forma simple: El modelo cliente/servidor es un modelo de comunicacin de computadores en el cual el computador cliente solicita servicios al computador servidor por medio de mensajes. La diferencia entre el cliente y el servidor es que el cliente es el que inicia el contacto y el servidor es el que responde a dicha solicitud de conexin.
Cliente
Servidor
Figura 1.1
1.2.3 Middleware
El middleware abarca todo el software distribuido necesario para el soporte de interacciones entre clientes y servidores. Es el enlace que permite que un cliente obtenga un servicio del servidor. Empieza en el mdulo de API de la parte del cliente que se emplea para invocar un servicio y comprende la transmisin de la solicitud por la red y la respuesta resultante. No incluye al software que presta el servicio real ni a la interfaz del usuario. El middleware puede clasificarse como de bajo o alto nivel. Bajo nivel: Brinda las primitivas y servicios usuales de bajo nivel. Un ejemplo se servicio de bajo nivel son los sockets, mientras que un ejemplo de middleware de bajo nivel es TCP/IP. Alto nivel: Se emplea para cumplir un tipo particular de servicio, y est usualmente implementado sobre middleware de bajo nivel. Ejemplos:
Para base de datos: ODBC y JDBC Para objetos: CORBA, DCOM y RMI Para Internet/Intranet: HTTP
Encapsulamiento de servicios Un mensaje le indica al servidor que servicio se solicita. Los servidores pueden ser sustituidos sin afectar a los clientes, siempre y cuando la interfaz implementada por el servidor no cambie. Ver figura 1.2.
Cliente IServ
Servidor
client
server
Figura 1.2
Facilidad de Escalabilidad Los sistemas cliente/servidor pueden escalarse horizontal o verticalmente. Por escalabilidad horizontal se entiende el agregar o eliminar estaciones de trabajo de cliente con apenas un ligero impacto en la performance. Escalabilidad vertical significa migrar el servidor actual a un servidor ms potente o a mltiples servidores. Integridad El cdigo del servidor y los datos se conservan centralmente, lo que resulta en un mantenimiento de menor costo y en la proteccin de los datos de la integridad de los datos compartidos. A su vez, los clientes mantienen su individualidad e independencia.
Desventajas Falta de profesionales calificados. Necesidad de reimplementacin de software existente, ya que el software monoltico no suele ser compatible con la arquitectura cliente/servidor. Necesidad de entrenamiento de usuarios, debido al cambio de las aplicaciones existentes.
1.3.1 Definiciones
Internet Conocida como la red de redes, es una red de alcance mundial integrada por miles de redes y millones de computadores con fines comerciales, educativos, gubernamentales, personales, todas conectadas entre s. Intranet Una red autocontenida que utiliza los mismos protocolos de comunicacin y formato de archivos que Internet. Una intranet puede, aunque no necesariamente debe, estar conectada a Internet. Muchas empresas usan intranets para su comunicacin interna.
1.3.2 Motivacin
Las empresas se han estandarizado en TCP/IP para contar con soporte de HTTP (HyperText Transfer Protocol) en sus redes principales de cliente/servidor. HTTP permite el uso de software de cliente y servidor web de muy bajo costo. Los browsers resultan muy sencillos y amigables para los usuarios, y corren en cualquier plataforma. Los servidores web brindan gateways (punto de entrada) a todas las plataformas conocidas, lo que los convierte en un punto estratgico para la recopilacin y distribucin de informacin. El hecho de llevar las tecnologas web a las LANs ha permitido aplicar las tecnologas de desarrollo web a aplicaciones empresariales, las que heredan todos los beneficios de estas tecnologas, de su modelo, y de su implementacin.
Presentacin + Lgica
Persistencia
Figura 2.1
Presentacin
Lgica + Persistencia
Figura 2.2
10
Presentacin + Lgica
Lgica + Persistencia
Figura 2.3
11
Presentacin
Lgica
Persistencia
Figura 2.4
En esta seccin, a diferencia de la anterior, no se trata la correspondencia de cada capa con respecto a los nodos fsicos. En la arquitectura en 2 capas esta correspondencia es directa, pero en este caso no lo es. Esta correspondencia es estudiada en detalle en el captulo siguiente.
12
Capa de persistencia Es responsable del almacenamiento de los datos Es comn reusar sistemas existentes de bases de datos en esta capa Actualmente se usan manejadores relacionales: son avanzados, permiten el uso de triggers y paquetes. Existen manejadores Orientados a Objetos
Otras ventajas dependen de la distribucin de los componentes lgicos sobre los nodos fsicos. Estas sern discutidas en el siguiente captulo.
13
Presentacion
Logica
Persistencia
Figura 3.1
El diseo fsico fue introducido en el captulo 1. Las ventajas del modelo lo hacen muy atractivo para aplicaciones de gran porte donde numerosas estaciones de trabajo deben trabajar en el mismo sistema.
Cliente
Servidor
Figura 3.2
14
Optar por la utilizacin de ambos modelos en el desarrollo de una aplicacin de software es razonable, aunque debe realizarse consideraciones acerca de como distribuir los componentes lgicos sobre los nodos fsicos. El presente captulo presenta consideraciones de diseo para el desarrollo de aplicaciones en 3 capas sobre un modelo cliente/servidor.
3.2 Distribuciones
3.2.1 Monoltica
La distribucin bsica no considera una arquitectura cliente/servidor. Refiere a una aplicacin que reside en un nico nodo fsico. Como se dijo anteriormente, esta distribucin no tiene las ventajas que aporta un modelo cliente/servidor. El siguiente diagrama presenta esta distribucin:
Presentacion
Cliente Logica
Persistencia
Figura 3.3
3.2.2 Lineal
La distribucin lineal consiste en ubicar cada componente lgico en un nodo fsico. La forma usual es ubicar la capa de presentacin en el nodo cliente, y ubicar la capa lgica y de datos en el nodo servidor, ver figura 3.4. Otra variante es ubicar la capa de datos en un segundo servidor, accedido desde el nodo fsico donde reside la capa lgica. Esta distribucin cuenta con las ventajas del modelo cliente/servidor y la distribucin se realiza en forma sencilla, ya que solo se necesita implementar un mecanismo de conexin entre las capas, ver figura 3.5.
Presentacion Cliente
Logica Servidor
Persistencia
Figura 3.4
15
Puede considerarse al conjunto de servidores como un paquete de servidores, indicando que cada componente reside en el paquete, sin explicitar si esta en uno u en otro. Es decir, podemos abstraer el conjunto de servidores, y considerarlo como un nodo fsico. El siguiente diagrama presenta esta nocin:
Cliente Presentacion
Persistencia Servidor de BD
Figura 3.5
Nodo1
Componente
Nodo2
Figura 3.6
Esta distribucin no aparece en forma natural. Dado que el problema se resuelve fcilmente con una distribucin lineal, sin mayor esfuerzo de desarrollo, por qu considerar el caso donde es necesario distribuir uno de los componentes. Limitaciones tecnolgicas, mejora en la performance y modularizacin pueden ser razones que motiven a distribuir un componente. Se debe considerar que para distribuir un componente, ste debe ser rediseado, o ser diseado originalmente con tal filosofa. El componente quedar compuesto por dos o ms componentes, cada uno con sus propias responsabilidades (asignadas en el diseo). Estos componentes se correspondern a un nodo fsico. El diagrama de la figura 3.7 presenta el concepto anterior.
16
Nodo1 Comp1
Figura 3.7
Un ejemplo tpico de distribucin de la capa de datos (D) es un manejador de base de datos distribuidas. Otra aplicacin de este concepto es modularizar en subsistemas la capa lgica (L) de la aplicacin. Un caso de distribucin de la capa de presentacin (P), al cual denominamos distribucin orientada al web, ser tratado en la siguiente subseccin.
Cliente Presentacion
Servidor Logica
Servidor Web
Persistencia
Servidor de Aplic.
Servidor de BD
Figura 3.8
17
3.3 Consideraciones
La distribucin monoltica carece de las ventajas que brinda el modelo cliente/servidor. Tal distribucin puede tentar a llevar el motor de base de datos a un servidor, dejando las otras dos capas en el cliente. Como ya fue explicado, esto presenta serias desventajas. La distribucin lineal y de componente distribuido son las ms aplicables. La primera no implica un trabajo de desarrollo extra, salvo la comunicacin de las capas utilizando el middleware disponible. Es ms fcil y rpido intercambiar un componente en un servidor que en muchas estaciones de trabajo. Los servidores son sistemas confiables por lo que es ms fcil de obtener proteccin y seguridad. Tiene sentido entonces ejecutar procesos de negocios crticos y que trabajan con datos importantes, en el servidor Sin embargo presenta una desventaja; si la aplicacin presenta un cambio (por ejemplo un cambio en los requerimientos), el mismo se ver reflejado en todas las capas, lo que implica llevar a cada estacin de trabajo una nueva versin del componente de presentacin. La distribucin de componente distribuido presenta muchas variantes con respecto a la ubicacin de los subcomponentes en los nodos fsicos. La distribucin del componente de persistencia est fuera del alcance de este documento ya que no influye sobre el nodo cliente. La distribucin del componente de lgica es un caso muy usual, en particular cuando el sistema notoriamente puede dividirse en subsistemas. Si la distribucin se realiza en forma horizontal, es decir que todos los componentes residen a nivel de servidor, no presenta grandes dificultades. Si la distribucin se hace vertical, es decir, se lleva parte de la lgica al nodo cliente, la aplicacin presentar las desventajas de la arquitectura en 2 capas P+L/D y P+L/L+D. La distribucin del componente de presentacin permite centralizar la generacin de la interfaz de usuario en el nodo del servidor. La distribucin orientada al web adopta el enfoque de distribuir el componente de presentacin, llevando la tarea de la generacin de interfaz al servidor (o a uno de sus componentes). En este caso el desarrollo extra necesario es pequeo ya que se cuenta con una aplicacin en el cliente capaz de interpretar cualquier interfaz de usuario, otra en el servidor capaz de generarla, y el middleware capaz de transportarla. Es necesario la implementacin de la parte que brinda el contenido.
18
4.2 Modelos
Se presenta a continuacin tres modelos o categoras.
Modelo Clsico Este modelo consiste en dos aplicaciones, donde una reside en el cliente y la otra en el servidor, como se ilustra en la figura 4.1.
Cliente
P
ORB
server
Aplicacion
L
xDBC
server
BD
D
Figura 4.1
Modelo de Componentes Grficos Este modelo consiste de una aplicacin conocida como cliente universal (web browser), que reside en el cliente, un servidor web y una aplicacin que residen en el servidor, ver figura 4.2.
19
Cliente
P1
ORB
server
Aplicacion
L
xDBC
server
BD
D
HTTP
server
Web
P2
Figura 4.2
Modelo de Contenido Dinmico Este modelo consiste en una aplicacin conocida como cliente universal (web browser), que reside en el cliente, un servidor web que reside en el servidor. Ver figura 4.3.
Cliente
P1
server
Aplicacion
L
xDBC
server
BD
D
HTTP
ORB
server
Web
P2
Figura 4.3
20
: Cliente : Usuario
: Logica
ingresarInformacion(i)
enviarInformacion(i)
r := procesarInformacion(i)
enviarResultado(r)
presentarResultado(r)
Figura 4.4
Un segundo enfoque es distribuir el componente de la lgica, poniendo parte del mismo en la aplicacin en el cliente y parte en la aplicacin en el servidor. Notar que este enfoque presenta una distribucin de componente distribuido, donde lo que se distribuye es el componente de la lgica, llevndolo al cliente. Este enfoque presenta las caractersticas vistas en la seccin 3.2. Un tercer enfoque es distribuir el componente de la presentacin. La aplicacin en el cliente se encarga del despliegue de la interfaz de usuario, mientras que el servidor se encarga de generarla. Notar que este enfoque presenta distribucin de componente distribuido, donde lo que se distribuye es el componente de la presentacin. En particular, hereda varias de las ventajas de la distribucin orientada al web. Sin embargo exige un esfuerzo de desarrollo grande ya que las aplicaciones a implementar deben brindar iguales funcionalidades que la tecnologa web. Existen otras tecnologas que facilitan el desarrollo mediante este enfoque. Las mismas se tratarn en los modelos siguientes.
4.3.2 Tecnologas
En este modelo las aplicaciones son aplicaciones tradicionales desarrolladas en lenguajes de programacin tradicionales como C++, Java, Visual Basic, entre otros. Los aspectos de interoperabilidad entre las aplicaciones van a depender directamente del middleware utilizado. Esto es, no todos los lenguajes soportan todos los tipos de middleware disponibles.
4.3.3 Middleware
El middleware empleado por este modelo conecta la presentacin que reside en el cliente con la lgica que reside en el servidor. Esta conexin puede implementarse utilizando sockets o un recurso de ms alto nivel como ORBs (Object Request Broker).
21
4.3.4 Cualidades
Legibilidad Mantenibilidad Directamente proporcional al buen estilo de programacin aplicado. La utilizacin de sockets hace que la implementacin sea difcil de mantener. Utilizar ORB puede simplificar esta tarea. Un cambio, en particular en la presentacin, implica un deployment. Una extensin implica el deployment de la aplicacin cliente completa. Si se utiliza ORBs no hay problema ya que es una invocacin a un nuevo objeto; en cambio, si se utiliza sockets, implica una modificacin en el protocolo entre los componentes. Llevar una nueva versin de un componente de la aplicacin cliente a cada estacin de trabajo no es una tarea automatizada. Puede tenerse problema de versiones en los componentes en la misma estacin y deployment parciales puede llevar a tener estaciones de trabajo con varias versiones de atraso. En el primer enfoque viaja por la red solamente la informacin necesaria, ya que la interfaz reside, por completo, en el cliente. Dependiendo del protocolo, cada pieza de informacin puede significar uno o ms solicitudes a travs de ORB. Se debe tener serias consideraciones en el diseo para minimizar esta importante carga. No es simple desarrollar una aplicacin servidor capaz de atender gran cantidad de clientes sin que el sistema sufra saturacin en el servicio. El middleware puede influir sobre el tiempo de respuesta. Utilizar cierto ORB puede hacer que el tiempo de respuesta aumente significativamente. El desarrollo de la interfaz grfica puede resultar complicado en algunos lenguajes. Depende adems de las virtudes del IDE utilizado. El middleware determina si se puede o no intercambiar el desarrollo de una aplicacin hecho en un lenguaje por otro. El middleware y el lenguaje puede determinar la plataforma sobre la cual correr la aplicacin. Depende de las limitaciones que presente el servidor. Implica adems exigir a cada nuevo cliente que corra la aplicacin que se ejecute la aplicacin correspondiente, con las consecuencias de deployment que esto conlleva. El modelo en s es robusto, pero depende de la robustez del ORB, de la plataforma y de la aplicacin propiamente. Requiere de un equipo potente en el cliente capaz de correr una aplicacin con alto contenido visual. Se debe contar con los mdulos requeridos para utilizar el middleware elegido.
Extensibilidad
Deployment
Carga de la red
Tiempo de respuesta
Robustez
Requerimientos
22
: Browser : Usuario
c : Componente
: WebServer
: Logica
accion() solicitudPagina()
enviarComponente(c)
ingresarInformacion(i)
enviarInformacion(i)
r := procesarInformacion(i)
enviarResultado(r)
presentarResultado(r)
Figura 4.5
Este modelo es muy similar al modelo clsico. Se cambia la aplicacin cliente por un cliente universal capaz de ejecutar componentes. En el servidor se cuenta con una aplicacin brindando servicios de lgica de negocios, al igual que en el modelo clsico. Los componentes utilizan los mismos mecanismos para conectarse a la aplicacin servidor. La novedad en el modelo es la presencia de un servidor web sirviendo al cliente pginas y componentes embebidos en ellas. Adems, se cuenta en el cliente de una aplicacin conocida por los usuarios, estndar, y de distribucin gratuita. El servidor web y la aplicacin servidor no estn comunicados. El cliente utiliza el web server para acceder a los componentes que brindan la interfaz, y accede a la aplicacin servidor para utilizar los servicios de lgica de negocios mediante mecanismos diferentes.
23
Notar que este enfoque presenta una distribucin orientada a web, por lo que tiene las caractersticas vistas en la seccin 3.2.
4.4.2 Tecnologas
Tanto el web server como el web browser son dependientes de la plataforma. Sin embargo, existen distribuciones gratuitas de ambos prcticamente para cualquier plataforma. Se aplican las mismas consideraciones que en modelo clsico para la aplicacin corriendo en el servidor. Para el desarrollo del componente puede optarse por dos tecnologas similares en funcionalidad, de diferentes proveedores; estas son ActiveX (Microsoft) y Java Applet (Sun). La eleccin de la tecnologa en el cliente puede determinar el cliente universal (Netscape Navigator no soporta ActiveX), la plataforma del cliente (ActiveX corre sobre plataforma Windows), y el middleware a utilizar entre el componente y la aplicacin en el servidor (a no ser que se utilicen bridges que enmascaren una tecnologa sobre otra). Dependiendo de la tecnologa utilizada la aplicacin servidor deber residir en el mismo nodo que el servidor web. Esto se debe a restricciones en las tecnologas que limitan al componente alojado en el cliente a comunicarse nicamente con el servidor desde el cual fue descargado. Otras limitaciones incluyen acceso a disco del cliente.
4.4.3 Middleware
Este modelo utiliza dos tipos de middleware diferentes. Uno conecta el cliente universal con el servidor web, y el otro conecta el componente con la aplicacin en el servidor. El primero es el protocolo HTTP (HyperText Transfer Protocol), estndar del web actual, en uso en Internet e intranets. Para el segundo tipo de middleware, puede encontrar informacin en la subseccin 4.3.3.
4.4.4 Cualidades
Legibilidad Mantenibilidad Directamente proporcional al buen estilo de programacin aplicado. La utilizacin de sockets hace que la implementacin sea difcil de mantener. Utilizar ORB puede simplificar esta tarea. Un cambio, en particular en la presentacin, implica un deployment. Si se utiliza ORBs no hay problema ya que es una invocacin a un nuevo objeto; en cambio, si se utiliza sockets, implica una modificacin en el protocolo entre los componentes. Una extensin implica un deployment. El mismo es relativamente automtico, aunque depender de la tecnologa. Aqu se cuenta con la ventaja de que si solamente uno de los componentes fue actualizado, solamente se requerir el deployment del mismo, y no de toda la aplicacin. Puede tenerse problema de versiones en los componentes en la misma estacin y
Extensibilidad
Deployment
24
deployment parciales puede llevar a tener estaciones de trabajo con varias versiones de atraso. Segn este modelo el desarrollo se realiza exclusivamente del lado del servidor y es necesario visitar las estaciones de trabajo solamente cuando se desee actualizar el cliente universal. Carga de la red Este modelo tiene algo ms de carga en la red que el clsico. Cuando el cliente se conecta al servidor, como parte de la interfaz en HTML viaja tambin el control, aunque nicamente la vez que es descargado ya que en sucesivos pedidos se emplear la versin que qued almacenada en el cliente. Al igual que en el modelo clsico, deben tenerse las mismas consideraciones de diseo para economizar solicitudes ORB. En este modelo se emplean dos servidores. La mayora de los servidores web, que sirven la presentacin, son capaces de atender miles de solicitudes en paralelo. Sin embargo el otro servidor (la aplicacin), que sirve la lgica, es anlogo a la aplicacin servidor del modelo clsico. Notar que es ste ltimo quien recibir la mayor parte del flujo de solicitudes. Para obtener la interfaz, no slo es necesario descargar la pgina HTML correspondiente, sino que adems hay que obtener el control, ya sea descargndolo desde el servidor o cargndolo desde el disco local. Este modelo se ve favorecido por no tener que implementar una aplicacin que controle a toda la interfaz grfica, ya que esta est formada por un conjunto de componentes. El desarrollo de los componentes de la interfaz grfica puede resultar complicado en algunos lenguajes. Depende adems de las virtudes del IDE utilizado. El middleware determina si se puede o no intercambiar el desarrollo de la aplicacin hecho en un lenguaje por otro. El middleware y el lenguaje puede determinar la plataforma sobre la cual correr la aplicacin. La tecnologa utilizada en el componente puede determinar la plataforma y el cliente universal. Depende de las limitaciones que presente el servidor de la lgica. Puede implicar que el cliente este restringido a utilizar cierto cliente universal, o que tenga un equipo de potencia considerable. Implica adems realizar deployment hacia los nuevos clientes. Las consideraciones respecto a la robustez del modelo, en trminos de la comunicacin del componente con la aplicacin servidora, son anlogas a las del modelo clsico. El punto dbil del modelo es la ejecucin del componente en el entorno brindado por el cliente universal. Si la tecnologa del componente y el cliente universal provienen del mismo fabricante se puede esperar el comportamiento deseado, no necesariamente as en caso contrario. Requiere de un equipo potente en el cliente capaz de correr cliente universal con un componente grfico embebido. Requiere un servidor web y mdulos para utilizar el middleware elegido.
Tiempo de respuesta
Tiempo de desarrollo
Portabilidad
Robustez
Requerimientos
25
: Browser : Usuario
: WebServer
: Logica
accion()
solicitudPagina()
enviarPagina()
ingresarInformacion(i)
enviarInformacion(i)
enviarInformacion(i)
Figura 4.6
Este modelo difiere de los modelos anteriores en que el cliente no se comunica directamente con el servidor de lgica. La parte de la presentacin que reside en el servidor web se comunica con la lgica a travs de la ejecucin de aplicaciones (CGI Common Gateway Interface) o instanciando objetos en el entorno de la pgina generada, los cuales se comunicarn con la lgica utilizando ORB. Adems, a diferencia del modelo de componentes grficos, no depende de la capacidad del browser de ejecutar componentes. La informacin que llega al cliente puede ser HTML y Forms. En los casos en que la capacidad de HTML no sea suficiente, ya sea por altos requerimientos de manejo grfico, o por la complejidad de alguna interfaz de usuario, podra utilizarse componentes. Estos, en este caso, son utilizados con fines
26
de resolver problemas de interfaz, y aunque no contienen lgica de negocios, si deben comunicarse con tal servicio segn el modelo de componentes grficos. Notar que este enfoque presenta una distribucin orientada a web, por lo que tiene las caractersticas vistas en la seccin 3.2.
4.5.2 Tecnologas
Tanto el web server como el web browser son dependientes de la plataforma. Sin embargo, existen distribuciones gratuitas de ambos prcticamente para cualquier plataforma. A nivel de cliente no hay tecnologas especiales a utilizar. Las virtudes de los web browser actuales son suficientes para este modelo, ya que su nica funcin es interpretar HTML. En cambio el servidor web debe ser ms potente que el del modelo de componentes grficos. Debe soportar tecnologas cuya funcin es generar contenido dinmico a ser enviado al cliente. Las tecnologas varan en su funcionamiento. El primer enfoque utilizado fue CGI. La evolucin del web llev a servidores ms potentes, capaces de ser extendidos para lograr funcionalidades especficas. Surgieron entonces nuevos enfoques como Servlets, JSP (JavaServer Pages) y ASP (Active Server Pages).
4.5.3 Middleware
Este modelo utiliza nicamente HTTP como protocolo. El mismo se utiliza para conectar el cliente universal con el servidor web. Una consideracin de inters es que la parte de presentacin que reside en el servidor web debe conectarse, por algn medio, al componente lgico de la aplicacin. Esta comunicacin es mediante un middleware, pero interno al servidor. Esto es, no refiere al middleware que conecta al cliente con el servidor, sino el que conecta componentes diferentes a nivel de servidor. Puede adoptarse dos enfoques diferentes para resolver esta comunicacin. Un primer enfoque es que el servidor web utilice el mismo middleware que se indic para el modelo clsico. Un segundo enfoque, ms sencillo en la implementacin, es utilizar el componente de la lgica en el propio servidor web; aqu el servidor web instancia objetos del componente lgico para resolver las solicitudes.
4.5.4 Cualidades
Legibilidad El buen estilo de programacin no garantiza la legibilidad. Algunas tecnologas permiten definir el documento original que contiene tanto informacin esttica como los mecanismos de generacin de contenido dinmico. El mismo en interpretado o precompilado. De todas formas, la legibilidad se dificulta ya que un mismo documento tiene informacin de inters tanto para el diseador (de la pgina) como para el programador. La falta de legibilidad hace que el mantenimiento se dificulte. Por otro lado, por cada interfaz desarrollada se tiene un documento diferente, lo que facilita la localizacin. Un cambio no implica un deployment de componentes, ya que la informacin de la
Mantenibilidad
27
generacin de la interfaz viaja en cada solicitud. Extensibilidad Agregar nuevas funcionalidades implica desarrollar un nuevo documento (o aplicacin) con las indicaciones de cmo generar el contenido, y publicarlo en el servidor. No hay deployment como tal. En cada solicitud del cliente, el servidor devuelve la informacin de cmo generar la interfaz adecuada. Notar que este contenido es significativamente liviano, ya que lo que viaja es la informacin (en HTML) de cmo generarlo, no la interfaz generada. Segn este modelo el desarrollo se realiza exclusivamente del lado del servidor y es necesario visitar las estaciones de trabajo solamente cuando se desee actualizar el cliente universal. A diferencia del modelo de componentes grficos, asegura que las estaciones de trabajo tienen siempre la ltima versin de la interfaz. Presenta una carga extra ya que en cada transferencia se enva, adems de los datos, la informacin de generacin de la interfaz. Sin embargo no se utiliza ORB que es ms pesado que el protocolo HTTP. El tiempo de respuesta de los servidores web es aceptable. Sin embargo, el servidor web debe conectarse con la lgica a travs de los mecanismos mencionados antes. Esta comunicacin puede hacerse por ORB mediante invocacin remota (como sucede en los casos anteriores) o mediante invocacin local, haciendo coincidir al servidor web y al componente de lgica en el mismo nodo. Una mejora en la performace puede obtenerse embebiendo la lgica en el servidor web, en cuyo caso no se utiliza ORB y la invocacin es directa. Al igual que el modelo de componentes grficos, ste se ve favorecido por no tener que implementar una aplicacin que controle toda la interfaz grfica. El desarrollo de la interfaz grfica se realiza en forma sencilla utilizando un editor HTML con manejo de Forms. Sin embargo, en algunos casos es dificultoso el desarrollo de la parte de la presentacin que genera el contenido dinmico. Usualmente esta implementacin va embebida en el archivo HTML (el cual recibe otro nombre: ASP, JSP, etc.). Para alguna de las tecnologas existen IDEs adecuados, lo que facilita el desarrollo. Actualmente estn apareciendo en el mercado IDEs para desarrollar utilizando las otras tecnologas. Portabilidad A nivel de cliente es totalmente portable. Puede optarse por cualquier cliente universal y cualquier plataforma. A nivel de servidor web, no todos los servidores soportan todas las tecnologas. Algunos estn optimizados para una tecnologa en particular. Actualmente existen en el mercado productos de terceros fabricantes que permiten utilizar ciertas tecnologas en servidores que no la soportan nativamente. Un servidor web tradicional es capaz de soportar miles de clientes sin sufrir baja de performance. No implica realizar deployment ni configuraciones especiales en los nuevos clientes, ni en el servidor. Notar, sin embargo, que la performance puede bajar por aumentar la cantidad de solicitudes que realiza el servidor web al servidor de lgica.
Deployment
Carga de la red
Tiempo de respuesta
Tiempo de desarrollo
28
Robustez
Las consideraciones de robustez del modelo clsico se aplican en este caso a la comunicacin entre el servidor web y el servidor de lgica. Con respecto a la comunicacin entre el cliente y el servidor web, utiliza un protocolo de uso masivo optimizado para tal fin. El cliente universal y el servidor web son productos utilizados por miles de compaas para brindar y acceder a servicios, lo que hace que el modelo sea confiable en este aspecto. Requiere de un servidor web capaz de generar contenido dinmico. No hay requerimientos especficos para los clientes, ya que se necesita solamente un cliente universal interpretando HTML.
Requerimientos
29
5.2 Middleware
Una de las dificultades que presenta el desarrollo de una aplicacin distribuida es atravesar la barrera que representa la red que comunica a sus componentes.
5.2.1 Sockets
Esta barrera puede ser cruzada a travs de RPCs y programacin directa sobre la red. El uso de RPC presenta como desventaja que no es orientado a objetos. Por otra parte, la programacin directa sobre la red se realiza usualmente en base a sockets, que es una interfaz de comunicaciones de red de bajo nivel. Las aplicaciones basadas en sockets son costosas de desarrollar y modificar.
30
CORBA es el ms general de los tres ya que conecta objetos implementados en cualquier lenguaje corriendo sobre cualquier plataforma. Red DCOM RMI CORBA Plataforma Lenguaje
Tabla 5.1
31
Las caractersticas principales del mismo son: Es orientado a objetos, soporta interfaces pero no tiene herencia. El polimorfismo se da a travs de las interfaces y tiene binding dinmico. El lenguaje y su entorno de desarrollo estn pensados para el desarrollo de aplicaciones basadas en GUI.
32
33
34
La potencia de los applets es la que brinda el lenguaje Java, mientras que la potencia de un control ActiveX depende del lenguaje utilizado para la implementacin. Como ltima consideracin, la experiencia indica que no todos los web browser despliegan los applet de la misma forma, por lo que el desarrollador no puede asegurar que la interfaz diseada se presente de la misma forma en todas los clientes.
> le > l> it le tm /t > t < l i <h o l </t tm > <h ead emp lo "> <h ad> e>Ej emp te j E <he itl hi > e"> > "w le > it nt <t = t h r i d w fo o =" t> <t hea </ > ol on r a d c f o c a g / </ l i < e b o bs ca </h ody bgc b bsi > > <b we 5" ody ter b " b > a > e = < w en er ize "5" gin <c s e= p na ent <c ont siz una pgi f t < on s una <f to ee s r> Es o t te > s n E ce ter n </ e y> </c bod > dy > </ o b l </ htm > m </ t l h / <
Figura 5.1
35
5.5.2 Formularios
Los formularios de HTML son una de las formas posibles de permitir una interaccin entre un usuario y el servidor web. Estos formularios permiten visualizar los widgets ms comunes en las interfaces de usuario de los lenguajes de programacin. Un usuario completa el formulario modificando los widgets, esto es, ingresando texto, seleccionando tem de mens, etc., para luego enviar la informacin ingresada a un servidor web para su proceso. El formulario esta definido en trminos de tags de HTML y la interpretacin de stos es responsabilidad del cliente web, quien muestra los widgets correspondientes a cada tag. La figura 5.2 muestra un formulario visualizado en un cliente web y la figura 5.3 muestra el cdigo fuente (en HTML) de la pgina web que contiene el formulario.
Figura 5.2
<html> <head> <meta http-equiv="Content-Language" content="es"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Pagina nueva 1</title> </head> <body> <form method="POST" action="--WEBBOT-SELF--"> <p>Nombre: <input type="text" name="T1" size="20"></p> <p>Apellido: <input type="text" name="T2" size="20"></p> <p>e -mail: <input type="text" name="T3" size="20"></p> <p><input type="radio" value="V1" checked name="R1">Masculino</p> <p><input type="radio" name="R1" value="V2">Femenino</p> <p><input type="submit" value="Enviar" name="B1"> <input type="reset" value="Restablecer" name="B2"> </p> </form> </body> </html>
Figura 5.3
36
37 5.6.1.2 Funcionamiento
El cliente solicita la pgina web con un formulario e ingresa la informacin en el mismo. La informacin es enviada al servidor web quien dispara una aplicacin CGI, encargada de procesar esa informacin y generar la pgina web resultado. Esta pgina es enviada por el servidor web al cliente web. Ver figura 5.4.
: Browser
: WebServer
app : CGI
solicitudPagina()
enviarPagina()
enviarInformacion(i)
enviarInformacion(i)
r := procesarInformacion(i)
enviarResultado(r) enviarResultado(r)
Figura 5.4
Como se indic antes el protocolo HTTP no presenta estado. El enfoque brindado por CGI Scripts no agrega esta funcionalidad. Por lo tanto no puede guardar a nivel del servidor el estado de la interaccin con el cliente. Para resolver este problema, guarda el estado a nivel de cliente. La pgina que causa la invocacin al programa CGI contiene atributos ocultos (parte de un formulario, pero no visible para el usuario) donde guarda los datos de la sesin.
5.6.2 Servlets
5.6.2.1 Definiciones tcnicas En trminos simples un servlet es un objeto que agrega nuevas funcionalidades a un servidor (tpicamente a un servidor web). Un servlet es una clase de Java que usa el API (Application Programming Interface) llamado Servlet. Este API consiste en un conjunto de clases e interfaces que definen mtodos que permiten procesar solicitudes HTTP en forma independiente al servidor web. As como un servlet se implementa en Java, el desarrollador puede verse tentado a embeber aqu la lgica. Como se fundament antes, esto no es recomendable. Se utiliza tecnologa JavaBean para implementar la lgica; stos componentes JavaBean son accedidos desde el servlet para generar el contenido dinmico.
38
5.6.2.2 Funcionamiento Cuando un servidor web recibe una solicitud web que deba ser manejada por un servlet primero verifica si una instancia de la clase del servlet existe. Sino, crea una. Esto es conocido como cargar un servlet. Luego indica al servlet que procese la solicitud. Una vez que ste ha sido cargado la misma instancia es utilizada para procesar solicitudes sucesivas. Eventualmente el servidor web necesita detener el servlet (shutdown), tpicamente cuando el mismo servidor tiene que detenerse. ste, informa primero al servlet y le da la chance de realizar operaciones de limpieza, por ejemplo cerrar una conexin a una base de datos, sockets o archivos abiertos, etc. Una solicitud al servlet se traduce en una invocacin a un mtodo del mismo donde recibe dos objetos como parmetro: request que contiene la informacin de la solicitud, y response donde se carga el contenido de la respuesta, tpicamente una pgina web generada dinmicamente. Ver figura 5.5.
: Browser : WebServer : Servlet
solicitudPagina()
enviarPagina()
enviarInformacion(i)
service(i,r)
enviarResultado(r)
Figura 5.5
39
El hecho de tener que utilizar invocaciones a out.println() para la generacin de cada lnea de cdigo HTML se convirti en un problema para el uso real de servlets. JSP permite extraer del cdigo fuente del servlet el cdigo HTML. El mecanismo mostrado en la figura 5.6 sintetiza esta mejora la cual inspir la tecnologa JSP.
Servlet
public class MiServlet...{ public void doGet(...){ ... if(bean.miCondicion(...)){ bean.miFuncion(); ... forward(conf.jsp); } } }
Servlet Puro
public class MiServlet...{ public void doGet(...){ if(miCondicion(...)){ miFuncion(...); out.println(<html>); out.println(<body>); } ... } private boolean miCondicion(...){ ... } private void miFuncion(...){ ... } }
procesamiento
JSP
presentacin <html> <body> <ora:loop name=nombre> ... </body> </html>
JavaBeans
miCondicion()
lgica de negocios
miFuncion()
Figura 5.6
As como en el servlet poda embeberse la lgica en el cdigo del servlet, puede embeberse tal funcionalidad en la pgina JSP. Como se dijo, esto hace que se pierdan todas las ventajas de una aplicacin en 3 capas. Puede utilizarse en JSP, al igual que con servlets, tecnologa JavaBean para la lgica. JSP brinda funcionalidades extra para entregar al bean la informacin ingresada por el usuario. En la siguiente subseccin se trata el procesamiento de una pgina JSP.
5.6.3.2 Funcionamiento Una pgina JSP no puede ser mandada directamente a un web browser. Todos los elementos JSP deben ser procesados primero por el servidor. Esto se hace convirtiendo una pgina JSP en un servlet, y luego ejecutando el servlet. Primero llega la solicitud de la pgina JSP al servidor web. Este accede al archivo JSP local y extrae el cdigo Java generando el fuente del servlet. El servlet es compilado y ejecutado, para luego enviar el resultado al servidor. En el caso de que el servlet de la pgina JSP ya haya sido construido (generado y compilado), el servidor web solamente ejecuta el servlet. Notar que si se hubiera optado por interpretar el fuente de la pgina JSP esto degradara la performance. Ver figura 5.7.
40
: Browser
: WebServer
ejjsp : JSP
ejjava : Java
ejclass : Class
solicitudPagina(i,ej.jsp) recuperar()
create(ejjsp)
create(ejjava)
service(i,r)
enviararResultado(r)
Figura 5.7
5.6.4.2 Funcionamiento El funcionamiento es ms sencillo que el de JSP, pagando el precio de interpretar el scripting de las pginas ASP en cada solicitud. Los scripts en la pgina ASP son interpretados cuando el web browser realiza la solicitud al web server. El servidor web procesa la pgina ASP de principio a fin, interpretando los comandos en los scripts. Tal proceso resulta en fragmentos de cdigo HTML el cual es sustituido por el script en la pgina, resultando cdigo HTML puro. Ver figura 5.8.
41
: Browser
pag : ASP
: WebServer
solicitudPagina(pag.asp,i)
recuperar()
interpretar(pag,i)
enviarResultado(r)
Figura 5.8
5.6.5.1 CGI Scripts vs. Servlets En los comienzos de la web, CGI Script era la nica herramienta para lograr contenido dinmico. Sin embargo, por cada solicitud el servidor web tiene que crear un nuevo proceso en el sistema operativo, cargar el intrprete y el script, ejecutar el script, y luego liberar los recursos. Esto es demasiado costoso para el servidor y no es escalable a mayor trfico. Numerosas alternativas aparecieron en el mercado, tales como mod_perl de Apache, NSAPI de Netscape, ISAPI de Microsoft, Java Servlets de Sun Microsystems. Dado que Java Servlets fue diseado para satisfacer Write Once, Run Anywhere heredado del lenguaje Java, los servlets pueden ser ejecutados sin modificacin en cualquier plataforma. Servlets presenta varias ventajas sobre CGI Scripts. Como se indic, CGI Script requiere que un nuevo proceso sea creado por cada solicitud, consumiendo recursos del servidor y aumentando el tiempo de respuesta. Adems los scripts CGI son dependientes de la plataforma y no pueden aprovechar las funcionalidades del servidor web, ya que corren en un proceso separado (por ejemplo, no pueden escribir en el log del servidor web). Los servlets son eficientes y escalables porque no requieren de un nuevo proceso para ejecutar, sino que corren en un nuevo hilo en el mismo proceso del servidor. 5.6.5.2 Servlets vs. JSP Un servlet contiene procesos de solicitudes y acceso a la lgica de negocios (usualmente a travs de beans), y tambin el cdigo HTML de respuesta embebido directamente en el cdigo del servlet a travs de llamadas a out.println(), como muestra la figura 5.6.
42
Una aplicacin basada en servlets ms estructurada asla las diferentes piezas de procesamiento en varias clases utilitarias reutilizables y puede tambin utilizar una biblioteca de clases separada para generar los elementos HTML de la respuesta. Aun as, el enfoque basado en servlets puros tiene los siguientes inconvenientes: Se necesita un detallado conocimiento del lenguaje Java para mantener todos los aspectos de la aplicacin ya que el cdigo de procesamiento y los elementos de HTML estn juntos. Cambiar la apariencia de una aplicacin o agregar soporte para nuevos tipos de cliente, por ejemplo WML, requiere la actualizacin y recompilacin del cdigo del servlet. Es difcil aprovechar herramientas de desarrollo de pginas web al disear la interfaz. Si esas herramientas se utilizan para desarrollar la estructura del documento el cdigo HTML generado debe ser luego embebido en el cdigo del servlet. Este proceso consume mucho tiempo, es propenso a errores, y extremadamente tedioso. JSP no brinda funcionalidades extras sobre servlets pero es ms conveniente escribir HTML que cientos de sentencias println. Adems, separar la apariencia del contenido permite asignar personal especfico a tareas especficas. Una pgina web puede ser diseada por expertos en diseo, quien dejan espacios que los programadores completarn con contenido dinmico.
5.6.5.3 JSP vs. ASP Debido a sus similitudes, ninguna de las dos tecnologas es superior a la otra. Ambas tienen sus puntos fuertes y dbiles. Ambas son una excelente eleccin para desarrollar contenido dinmico. Las principales consideraciones para optar entre ASP y JSP depende de los siguientes factores: El tamao del proyecto La experticia del equipo de desarrollo Dnde y cmo se va a publicar el sitio web La cantidad de usuarios concurrentes esperados Tamao del proyecto Para proyectos grandes JSP es claramente superior. Si se usa en forma adecuada, puede asignarse los recursos humanos en forma ms sencilla en un proyecto JSP. Parte del equipo se concentra en la construccin de los JavaBeans mientras los otros miembros se concentran en el desarrollo de la presentacin. Adems, como Java es orientado a objetos, es ms fcil separar lgicamente el proyecto y asignarlo a distintos miembros del staff. En proyectos grandes el cdigo de ASP se torna confuso con facilidad, y cuestiones de mantenimiento pueden hacer fracasar el proyecto. JSP es ms legible y fcil de mantener en proyectos grandes. Para proyectos pequeos ASP es preferible. Esto se debe a que el IDE de ASP es simple. Adems presenta menos inconvenientes en poner en funcionamiento y mantener el sitio web. La integracin de ASP con Microsoft IIS es armoniosa. Por ltimo, el acceso a fuentes de informacin utilizando ADO (ActiveX Data Object) es simple y eficiente. Esta caracterstica le da potencia para completar rpidamente proyectos de menor porte. Experticia del equipo de desarrollo No hay razn particular para descartar ASP por JSP si el equipo de desarrollo presenta experticia en ASP. Si no se cuenta con experticia en ninguna tecnologa, es razonable optar por ASP, ya que la curva de aprendizaje lo favorece. Si el equipo presenta experticia en Java, entonces JSP es preferible.
Si la publicacin del sitio se har fuera de la empresa ASP es preferible, ya que la oferta de hosting para ASP es ampliamente superior a la de JSP. Dos aos atrs la oferta para ASP tambin era pobre, pero eso cambi rpidamente. Se espera que ocurra lo mismo para JSP. En el caso de que la publicacin se haga en la misma empresa, que es el caso de las intranets por ejemplo, esta limitacin no existe. Incluso si el servidor web a utilizar no es IIS, se recomienda JSP. Esto se debe a que JSP es independiente del servidor y ASP est pensado bsicamente para funcionar con IIS, a pesar de que existan productos de terceros que resuelvan esta limitacin. Cantidad de usuarios concurrentes esperados En sitios con baja carga de solicitudes concurrentes, tanto ASP como JSP funcionan adecuadamente. Cuando se trata de configuraciones mayores con alta carga de accesos concurrentes la situacin es diferente. JSP tiene mayor capacidad para manejar sitios de gran porte. Tendencias actuales de uso Puede medirse la popularidad de las tecnologas segn su presencia en los buscadores de Internet. La ventaja de este mtodo es que aproxima de buena manera la distribucin en Internet. La desventaja es que las pginas que no son accesibles desde los buscadores no son consideradas. Tampoco se considera el uso corporativo en intranets. La tabla 5.2 muestra los resultados del test realizado el 23 de febrero de 2001 por los autores del documento. JSP 226.436 pginas 2.020.000 pginas 57.301 pginas 52.893 pginas 142 pginas ASP 15.224.295 pginas 33.900.000 pginas 154.669 pginas 5.688.560 pginas 4564 pginas
Tabla 5.2
Segn cifras obtenidas del buscador Altavista, relacin de aumento en el nmero de pginas publicadas desde el 12 de octubre de 2000 hasta la fecha de escritura de este informe es de 1:926 para JSP y 1:480 para ASP. Conclusin Es de esperarse que el mercado se divida en predileccin por ambas tecnologas. Salvando variaciones regionales, a nivel global es previsible un balance entre ambas. JSP se perfila como la alternativa para sitios corporativos, mientras que ASP mantendr su liderazgo entre sitios de pequeo porte.
44
45
6.2.2 Applets
LandRover www.landrover.com Sin dejar sus teclados, los clientes de LandRover pueden ver como lucir su nuevo vehculo modificndole diferentes propiedades del mismo. Utilizan un applet para mostrar al cliente vehculos personalizados, segn las opciones que elige el cliente.
[Informacin tomada de http://java.sun.com/features/1997/oct/applets.html octubre de 1997 Ver Aplicaciones reales de JSP por informacin actualizada.]
Cruise Molecular Structures www.cherwell.com Cherwell Scientific ha desarrollado ChemSymphony, un conjunto de applets para la visualizacin de molculas y el procesamiento de datos qumicos. El tiempo de desarrollo fue de aproximadamente 18 meses por O. Krassavine.
[Informacin tomada de http://java.sun.com/features/1997/oct/applets.html octubre de 1997 Cherwell Scientific tiene su homepage en http://www.cherwell.com/]
Coloring Book www.coloring.com Permite al usuario elegir un conjunto de imgenes, y colorearlas. Este es un buen ejemplo de la interaccin con el usuario utilizando scripting en el cliente y CGI en el servidor
[Informacin tomada de CGI Programming on the World Wide Web]
46
6.3.2 Servlets
Marquette Banks http://www.marquette.com/ Marquette Banks est implementando su producto Total Web Banking que permite a los clientes a utilizar todos los servicios a travs de Internet Utilizan en este proyecto tecnologa Java Servlet.
[Informacin tomada de http://java.sun.com/products/servlet/success.html]
Sapient Health Network http://www.beasys.com/customers/weblogic/server/shn.shtml Es un servicio de informacin de salud, gratuito, basado en el web, para personas con enfermedades crnicas y de tratamiento permanente. Utilizan en este proyecto tecnologa Java Servlet.
[Informacin tomada de http://java.sun.com/products/servlet/success.html]
6.3.3 JSP
LandRover www.landrover.com Utiliza un conjunto de pginas JSP para que el usuario pueda personalizar su nuevo vehculo. Antes utilizaban applets para este servicio. Utilizan en este proyecto tecnologa JSP.
[Informacin tomada de http://www.landrover.com/]
The Works http://www.theworksusa.com/ Herramienta de bsqueda escalable de alta performance que provee acceso a ms de 400.000 listas de empleo y curriculums de potenciales empleados. Han licenciado su herramienta de bsqueda, Excalibur RetrievalWare WebExpress, para proveer la informacin en tiempo real. Utilizan en este proyecto tecnologa JSP.
[Informacin tomada de http://industry.java.sun.com/javanews/stories/story2/0,1072,19240,00.html]
47
6.3.4 ASP
Unisys www.unisys.com Cool ICE es un servidor de aplicaciones de Internet de Unisys. Permite a desarrolladores crear, organizar y administrar aplicaciones y servicios de negocios basadas en generacin dinmica de contenido web. Utilizan tecnologa ASP para su proyecto.
[Informacin tomada de http://www.chilisoft.com/allaboutasp/compapps.htm]
Concur Technologies http://www.concur.com/solutions/default.stm Su producto EmployeeDesktop automatiza procesos de negocios ineficientes, en funcin de los empleados, socios de negocios, proveedores y proveedores de servicios. Este producto se integra al suite de aplicaciones para el web y provee un portal de negocios. Utilizan en este proyecto tecnologa ASP.
[Informacin tomada de http://www.chilisoft.com/allaboutasp/compapps.htm]
48
Referencias Bibliogrficas
Arquitectura Cliente/Servidor
Cliente/Servidor Gua de supervivencia ISBN: 0-471-15325-7 Robert Orfali Dan Harkey Jeri Edwards McGraw-Hill Segunda edicin: 1999 http://www.landfield.com/faqs/client-server-faq/ Client/Server Frequently Asked Questions Artculo que da respuesta a preguntas usuales acerca de la arquitectura cliente/servidor
Tecnologas
Programming Web Components ISBN: 0-07-912316-3 Reaz Hoque Tarun Sharma McGraw-Hill Primera edicin: 1998 CGI Programming on the World Wide Web ISBN: 1-56592-168-2 Shishir Gundavaram OReilly & Associates, Inc. Primera edicin: marzo 1996 JavaServer Pages ISBN: 1-56592-746-X Hans Bergsten OReilly & Associates, Inc. Primera edicin: enero 2001
49 JavaServer Pages Specification Version 1.1 diciembre 1999 Sun Microsystems. Especificacin formal de JaveServer Pages
Tecnologas Java Martn Varela Daniel Perovich Introduce los conceptos de orientacin a objetos. Presenta el lenguaje de programacin Java. Presenta un comparativo con respecto a los lenguajes C++ y Visual Basic. http://java.sun.com Principal fuente de informacin en Internet sobre tecnologa Java http://java.sun.com/servlet Home de la tecnologa Java Servlet http://java.sun.com/applet Home de la tecnologa Java Applet http://java.sun.com/products/jsp Home de la tecnologa JSP http://java.sun.com/products/jdk/1.1/docs/guide/misc/applet.html The APPLET Tag Sun Microsystems 1996 http://serverwatch.internet.com/articles/servlets/overview_d.html Artculo bsico que presenta algunas ventajas de la tecnologa JSP con respecto a otras tecnologas de generacin de contenido dinmico http://www.servlets.com/soapbox/problems-jsp.html Artculo que presenta un estudio detallado de los problemas que presenta JSP http://www.servlets.com/soapbox/problems-jsp-reaction.html Artculo del mismo autor que el anterior, que presenta la reaccin de los lectores a lo presentado en el artculo original http://www.inforingpress.com/computer_information/activex.htm Artculo sobre tecnologa ActiveX http://members.tripod.com/cuinl/tutorials/ocx-11.htm Artculo sobre tecnologa ActiveX http://msdn.microsoft.com/workshop/server/asp/asptutorial.asp Active Server Pages Tutorial Microsoft Corp. diciembre 2000 http://msdn.microsoft.com/workshop/server/asp/ASPover.asp An ASP You Can Grasp: The ABCs of Active Server Pages Microsoft Corp. mayo 1997 http://msdn.microsoft.com/workshop/server/asp/comtutorial.asp COM Objects in ASP Wayne Berry 15 Seconds enero 1998
50
http://java.sun.com/products/jsp/jsp-asp.html Comparing JavaServer PagesTM and Microsoft Active Server PagesTM Technologies Artculo publicado por Sun Microsystems presentando una comparacin de las tecnologas JSP y ASP http://www.geocities.com/gslender/ ASP vs. JSP Test Page Presenta dos casos de estudio implementados con ambas tecnologas. Muestra grficas de tiempo de respuesta en funcin de la cantidad de solicitudes concurrentes al servidor web http://www.orionserver.com/benchmarks/benchmark.html Benchmarks de su producto Orion Application Server contra IIS de Microsoft. Presenta grficos comparativos segn el nivel de stress del servidor http://php.weblogs.com/popularity Fuente de informacin de popularidad de las tecnologas. Se utiliz los buscadores de sitios para informacin actualizada http://www.chilisoft.com/ Home site de la empresa que desarrolla mdulos para poder utilizar tecnologa ASP en mltiples plataformas http://www.mhsoftware.com/resources/iisjserv.html Comparing IIS/ASP and JavaTM Servlets: A Developer's Perspective George Sexton MH Software, Inc. http://www.execpc.com/~gopalan/misc/compare.html A Detailed Comparison of CORBA, DCOM and Java/RMI Gopalan Suresh Raj setiembre 1998 http://webopedia.internet.com/ Definicin de trminos tcnicos de informtica http://www.w3c.org/ World Wide Web Consortium