Guía Tecnológica Caché

Capítulo cuarto:
Creación de aplicaciones web

Caché Technology Guide

"Creación de aplicaciones Web rápidas" incide doblemente en la rapidez.  Eso es porque es posible crear sofisticadas aplicaciones Web orientadas a base de datos con CSP más rápidamente que con cualquier solución tradicional, y además porque la base de datos incorporada de Caché es la más rápida del mundo, capaz de dar soporte a sistemas con decenas de miles de usuarios simultáneos.

Hay muchas formas de escribir aplicaciones Web con Caché, incluyendo todos los métodos tradicionales que utilizan SQL para acceder a la base de datos.  En este capítulo vamos a describir otra solución más directa denominada CSP.

CSP es una tecnología que se proporciona como parte del Servidor de Aplicaciones de Caché.  Es el medio más rápido para que las aplicaciones de Caché interactúen con la Web y proporciona:

  • Una solución avanzada de desarrollo orientado a objetos
  • Rendimiento y escalabilidad muy altos en tiempo de ejecución.
  • Desarrollo basado en componentes con ZEN

CSP soporta HTML, XML y otros "lenguajes de marcas" orientados a la Web.

CSP no es una herramienta de diseño Web, aunque se puede utilizar con ellas.  Mientras las herramientas de diseño Web generalmente se concentran sólo en la producción de HTML estático, CSP va más allá del aspecto de las páginas para facilitar el desarrollo de la lógica de la aplicación.  También proporciona la configuración que permite la ejecución rápida del código en el Servidor de Aplicaciones de Caché.

CSP da soporte a un potente entorno de programación por procedimientos, de modo que las aplicaciones se pueden escribir con un nivel de sofisticación y precisión que supera las posibilidades de las tecnologías centradas en la generación de aplicaciones.  También soporta el desarrollo rápido mediante su arquitectura de clases, que produce "bloques de construcción" de código que se pueden combinar y que, mediante el uso de asistentes, pueden producir con rapidez versiones sencillas de código parametrizado.  El resultado es la capacidad de desarrollar rápidamente aplicaciones Web muy sofisticadas.

Las ventajas de Caché

La programación orientada a objetos por procedimientos más los Asistentes de Caché dan como resultado el desarrollo rápido de aplicaciones sofisticadas de base de datos basadas en navegador.

 

Estas son algunas de las características de Caché Server Pages:

  • Páginas de servidor dinámicas -- Como las páginas se crean dinámicamente en el servidor de aplicaciones mediante el código de la aplicación, en lugar de tener un servidor Web que simplemente devuelve HTML estático, las aplicaciones responden rápidamente a distintos tipos de solicitudes y adaptan las páginas resultantes que se envían de vuelta al navegador.
  • Modelo de sesión -- Todo el proceso relacionado con las páginas de un solo navegador se considera parte de una sesión, desde la primera solicitud del navegador hasta que la aplicación termine o exceda el tiempo de respuesta (timeout). 
  • Conservación del estado del servidor -- En una sesión, los datos de la aplicación que están en el servidor (e incluso el contexto completo de la aplicación) se pueden conservar automáticamente en las solicitudes del navegador, facilitando el desarrollo y la ejecución de aplicaciones complejas.
  • Arquitectura de objetos -- Como cada página corresponde a una clase, el código y otras características comunes a muchas páginas se pueden incorporar fácilmente mediante herencia.  Normalmente también se hace referencia a los datos mediante objetos con todas las ventajas de la programación orientada a objetos.
  • XML -- Caché soporta totalmente XML, como alternativa potente a HTML para crear páginas Web y como formato universal para mover datos entre aplicaciones y sistemas.
  • Caché Application Tags para generación automática de código en el servidor de aplicaciones -- Estas etiquetas HTML extendidas son fáciles de utilizar como etiquetas HTML tradicionales.  Cuando se añaden a un documento HTML, generan código de aplicación sofisticado que proporciona amplia funcionalidad, como abrir objetos, ejecutar consultas y controlar el flujo del programa.  Estas etiquetas son extensibles: los desarrolladores pueden crear las suyas propias para adaptarlas a sus necesidades especificas.
  • Desarrollo basado en componentes – Con ZEN los desarrolladores pueden generar páginas utilizando un modelo de componentes que utiliza un paquete completo de componentes de objetos pre-construidos para aumentar la interactividad, la sofisticación visual y la coherencia de la interfaz de usuario.
  • Integración con herramientas conocidas de diseño Web -- CSP funciona con varias herramientas que facilitan la organización visual de una página.  Con Dreamweaver, CSP da un paso más gracias a la capacidad de añadir Caché Application Tags mediante una sencilla interacción "señalar y pulsar".  CSP también incluye un Asistente que facilita la visualización o edición de los datos de una base de datos de Caché.
  • Métodos del servidor que se pueden llamar desde el navegador -- Para facilitar el desarrollo de aplicaciones interactivas más dinámicas, CSP simplifica la llamada a métodos del servidor.  Cuando se produce un evento en el navegador, generalmente porque el usuario lleva a cabo una acción, se puede llamar al código de la aplicación en el servidor y generar una respuesta al evento, todo ello sin la carga que supone transmitir y cargar una nueva página entera.
  • Encriptado -- Caché encripta automáticamente a todos los datos del URL, para ayudar a autentificar las solicitudes y evitar la manipulación. La clave de cifrado se conserva únicamente en el servidor, y sólo es válida para el transcurso de una sesión.

Todo esto es tecnología avanzada, pero no tiene porqué ser difícil utilizarla. Nos hemos centrado en que el uso de CSP sea fácil, haciendo que todas estas posibilidades trabajen de forma automática para el usuario. Nuestra filosofía es la potencia mediante la simplicidad; la complejidad debe resolverse en nuestra implementación, no en su programación.

 

Modelo de Caché Server Pages

Tecnologías Web tradicionales
En la tecnología Web tradicional, se envía una solicitud al servidor Web y el servidor Web recupera un archivo secuencial de HTML y lo envía de vuelta al navegador.  Cuando las aplicaciones incluyen datos variables, el desarrollo se complica y los programadores normalmente utilizan CGI (Common Gateway Interface), con lenguajes como Perl o tcl, en el servidor Web y realizan consultas SQL y solicitudes de procedimientos almacenados a la base de datos.  Como entorno de programación, esto deja mucho que desear, y la ejecución (especialmente con gran número de usuarios) puede ser completamente ineficaz a medida que el servidor Web se sobrecarga.

Con CGI, cada solicitud del navegador crea habitualmente otro proceso.  Para evitar esta sobrecarga, los programadores a veces enlazan el código de la aplicación directamente con el servidor Web, con un desafortunado efecto secundario: un error de ese código puede provocar la caída del servidor.

Páginas de servidor dinámicas
CSP utiliza una solución distinta para la programación y la ejecución: Tecnología de páginas de servidor dinámicas.  El contenido (HTML, XML, hojas de estilo, imágenes y de otro tipo) se genera por programación en tiempo de ejecución en el Servidor de Aplicaciones de Caché, en lugar de proceder de archivos secuenciales, lo que permite mucha más flexibilidad al responder a las solicitudes de las páginas.

La mayoría del código de la aplicación se ejecuta en el Servidor de Aplicaciones de Caché, que puede estar o no en el mismo ordenador que el servidor Web.  Parte del código (normalmente JavaScript o Java) se puede ejecutar en el navegador, generalmente para dar soporte a operaciones como validación de datos, aplicar formato de nuevo o llamar al código del servidor.

Con esta solución, no hay porqué crear procesos para cada solicitud del navegador (como se hace en la solución CGI tradicional), lo que aumenta el rendimiento.  Y como el código de la aplicación no está enlazado con el servidor Web, un error de la aplicación no provoca la caída del servidor.

Sesiones – El modelo de ejecución
Todo el proceso relacionado con las páginas de un solo navegador se considera parte de una sesión, desde la primera solicitud del navegador hasta que la aplicación termine o se produzca un error de tiempo de espera (timeout).  Cuando el servidor Web recibe una solicitud de página (URL) con la extensión de archivo ".csp", esa solicitud se envía (mediante una fina capa de código Caché asociada al servidor Web) al Servidor de Aplicaciones de Caché adecuado, que puede estar en un ordenador distinto. 

Cuando el Servidor de Aplicaciones de Caché recibe la solicitud, determina si ya existe una sesión abierta para ese navegador.  Si no es así, se inicia una automáticamente.  A continuación, Caché ejecuta el código de aplicación asociado a esa página concreta, llevando a cabo las acciones solicitadas por el usuario y creando mediante programación el contenido HTML, XML, de imagen o de otro tipo que se envía de vuelta al navegador.

Una sesión finaliza cuando se asigna un valor a la propiedad del objeto Session que la termina.  Las aplicaciones que se ejecutan sin información de estado pueden elegir terminar la sesión en cada página.

Conservación del estado
Uno de los retos a los que se enfrentan los desarrolladores es la inherente carencia de estado que la Web tiene por naturaleza, ya que no existe una forma sencilla de retener en el servidor la información de una petición a otra.  Las aplicaciones normalmente envían al navegador toda la información de estado que necesitan retener, ya sea en URLs o en campos de formulario ocultos.  No es una técnica muy efectiva para las aplicaciones más complejas, que pueden recurrir a guardar datos temporalmente en archivos o bases de datos.  Desafortunadamente, esto supone una carga significativa sobre el servidor y hace que la programación sea considerablemente más difícil.

El modelo de sesión de Caché permite a Caché conservar de forma automática y eficaz los datos entre llamadas de un navegador.  CSP proporciona un objeto Session que contiene la información general de la sesión y propiedades que permiten al programador controlar diversas características de la sesión.  La aplicación puede almacenar en el objeto Session sus propios datos, que se conservan automáticamente entre una solicitud y la siguiente.

La aplicación determina en qué medida se conserva el estado estableciendo la propiedad Preserve del objeto Session en 0 o en 1. (El valor por defecto es 0, y se puede modificar dinámicamente en tiempo de ejecución).

  • 0 -- Los datos almacenados en el objeto Session se retienen.  (Los datos se definen como una propiedad multidimensional que acepta datos de cualquier tipo y permite cualquier número de subíndices, incluyendo subíndices de cadena con valores, sin ningún tipo de declaración).
  • 1 -- Caché dedica un proceso a la sesión, de modo que se retiene todo el estado del proceso, incluyendo todas las variables, (no sólo las del objeto Session), los dispositivos de E/S y los bloqueos.

Un valor de 0 permite la partición lógica de todos los datos conservados y que varias sesiones compartan un solo proceso, pero conserva el estado en menor medida.  Un valor de 1 resulta más sencillo para el programador y proporciona una gama más amplia de posibilidades, a costa de utilizar más recursos del servidor.

El objeto Request
CSP proporciona automáticamente varios objetos además del objeto Session con el fin de ayudar al programador a procesar  la página.  Uno de éstos es el objeto Request.  Cuando se recibe una página, se decodifica la URL y su contenido se sitúa en el objeto Request.  El objeto Request contiene todos los pares nombre/valor y los datos del formulario, además de otra información de utilidad.  Por ejemplo, se podría obtener el valor del nombre "FilmID" mediante el código:

 

%request.Data(”FilmID”,1)

 

// el 1 indica que deseamos el 1er valor de este nombre

 

 

// en caso de que este nombre tenga varios valores

 

Las ventajas de Caché

Al conservar automáticamente la información de estado en el servidor, el tráfico de red y la carga sobre el servidor son menores, ya que la aplicación no tiene que seguir archivando y accediendo a los datos en cada solicitud de página.  Y programar la aplicación es más sencillo.

El uso de Páginas de servidor dinámicas y del Servidor de Aplicaciones de Caché aporta mayor flexibilidad a la hora de responder a las solicitudes, ejecución más rápida sin riesgo de que los errores de la aplicación provoquen la caída del servidor Web y un entorno de programación más productivo.

 

 

Previous Page

Página anterior

Tabla de contenidos

Página siguiente

Next Page