MXPA04006267A - Registros para y recuperacion de informacion de cambio de tabla de la base de datos que puede ser usada para invalidar entradas en la memoria cache. - Google Patents

Registros para y recuperacion de informacion de cambio de tabla de la base de datos que puede ser usada para invalidar entradas en la memoria cache.

Info

Publication number
MXPA04006267A
MXPA04006267A MXPA04006267A MXPA04006267A MXPA04006267A MX PA04006267 A MXPA04006267 A MX PA04006267A MX PA04006267 A MXPA04006267 A MX PA04006267A MX PA04006267 A MXPA04006267 A MX PA04006267A MX PA04006267 A MXPA04006267 A MX PA04006267A
Authority
MX
Mexico
Prior art keywords
web
cache
action
response
content
Prior art date
Application number
MXPA04006267A
Other languages
English (en)
Inventor
D Guthrie Scott
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA04006267A publication Critical patent/MXPA04006267A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Un servidor proporciona respuestas de la Web que pueden incluir el contenido de una tabla de datos de una base de datos. El servidor mantiene una memoria cache (por ejemplo, en la memoria del sistema) que puede almacenar el contenido (que incluye el contenido de las tablas de datos) como para aumentar la eficiencia para proporcionar posteriormente el mismo contenido para satisfacer solicitudes de la Web del cliente. El servidor monitorea las tablas de datos particular, invalida la entradas almacenadas en la memoria cache que dependen de la tabla de datos particular. Ademas, en respuesta a una solicitud de la Web del cliente por una respuesta de la Web del cliente por una respuesta de la Web, el servidor asigna una dependencia de la memoria cache de la base de datos a por lo menos una porcion de una respuesta de la Web construida (por ejemplo, el contenido recuperado de la tabla de datos) basada en los comandos ejecutados durante la construccion de la respuesta de la Web. Dicha al menos una porcion de la respuesta de la Web construida es almacenada posteriormente en la memoria cache en una localizacion de la memoria cache en el servidor.

Description

REGISTROS PARA Y RECUPERACIÓN DE INFORMACIÓN DE CAMBIO DE TABLA DE LA BASE DE DATOS QUE PUEDE SER USADA PARA INVALIDAR ENTRADAS EN LA MEMORIA CACHÉ Campo de la Invención La presente invención se refiere a la administración del contenido guardado en la memoria caché, (memoria caché), más específicamente, la presente invención se refiere al registro para y recepción de notificaciones de cambio de tablas de la base de datos que puede ser utilizado para invalidar las entradas en la memoria caché. Antecedentes de la Invención Los sistemas de cómputo y la tecnología relacionada afecta muchos aspectos de la sociedad. Indudablemente, la capacidad de los sistemas de cómputo para procesar la información ha transformado la forma en que vivimos y trabajamos. Los sistemas ahora realizan generalmente una central de tareas, (por ejemplo, procesamiento de palabras, programación y administración de base de datos) que antes de la llegada del sistema de cómputo, se realizaban manualmente. Más recientemente, los sistemas de cómputo han sido acoplados entre ellos para formar, tanto redes de computadora cableadas como inalámbricas, en las cuales los sistemas de cómputo se pueden comunicar electrónicamente para compartir los datos. Como resultado, muchas de las tareas realizadas en un sistema de cómputo (por ejemplo, comunicación de voz, acceso al correo electrónico, conferencias electrónicas, búsquedas en la web), incluyen comunicación electrónica con uno o más de otros sistemas de cómputo por medio de redes de cómputo cableadas y/o inalámbricas. En particular, la Red Mundial ("WWW") ha llegado a ser un mecanismo importante para el intercambio de información. Generalmente, se tiene acceso al contenido que se encuentra en la WWW en un modelo de cliente/servidor. Un "buscador de la Web" en un sistema de cómputo del cliente envía una solicitud para acceder al contenido que es mantenido por un "servidor de la Web" en un sistema de computadora servidora. Cuando es apropiado, el servidor de la Web posteriormente proporciona el contenido solicitado al buscador de la Web. Una manera de hacer disponible el contenido para los buscadores de la Web, es que un desarrollador de la Web cree una página Web estática que incluye un número de instrucciones legibles por computadora codificadas de manera fija, tales como, por ejemplo, un Lenguaje de Marca de Hipertexto (HyperText Markup Language ("HTML")). La página estática de la Web entonces es almacenada en una localización (por ejemplo, en el sistema de cómputo del servidor, en una base de datos que se puede conectar a la red, etc.) que es accesible para el servidor de la Web. El repuesta a una solicitud del buscador de la Web, el servidor de la Web puede transferir la página Web estática al buscador de la Web (por ejemplo, como un resultado de una entrada del usuario que ocasiona que el buscador de la Web tenga acceso a un Localizador de Recurso Uniforme ("URL") que corresponde a la página Web estática). Al momento de la recepción de la página Web estática, el buscador de la Web puede presentar el contenido de la Web estática (por ejemplo, texto, gráficos, etc.) en el sistema de cómputo del cliente. Con el objeto de conservar los recursos de la Web, el buscador de la Web también puede almacenar en la memoria caché una copia de la página Web estática en el sistema de cómputo del cliente (por ejemplo, en el sistema de memoria o en un aparato de almacenamiento básico masivo). Cuando la página Web estática es solicitada posteriormente, el buscador de la Web intenta localizar la página Web estática de la memoria caché antes de iniciar una nueva solicitud de la red al servidor de la Web. Si la página Web estática está localizada en la memoria caché, el buscador de la Web recupera la página Web estática guardada en la memoria caché, en vez de iniciar una solicitud a la red. Como se puede tener acceso a los datos almacenados localmente de una manera más eficiente, guardar en la memoria caché las páginas Web estáticas en el sistema de cómputo del cliente reduce la latencia asociada con la presentación del contenido de la página Web estática. Con frecuencia, las páginas Web estáticas solicitadas también pueden ser guardadas en la memoria caché en un sistema de cómputo del servidor (al que comúnmente nos referimos como guardado en la memoria caché de salida) para reducir la latencia. Por ejemplo, una página Web estática solicitada frecuentemente puede ser guardada en la memoria caché del sistema en el sistema de cómputo del servidor, de modo que la página Web estática no tiene que ser recuperada de un aparato de almacenamiento vacío cada vez que es solicitada la página Web estática. Debido a su naturaleza estática, las páginas Web estáticas pueden ser guardadas en la memoria caché (en un sistema de cómputo del servidor o del cliente) por períodos de tiempo largos, potencialmente indefinidamente. Sin embargo, el uso de las páginas Web estáticas esencialmente evita que sean presentados datos de tiempo real o acostumbrados por un buscador de la Web. Con frecuencia es deseable presentar datos dinámicos (por ejemplo, cifras de ventas diarias, precios actuales de almacén, etc.) en un buscador de la Web. Por consiguiente, se han desarrollado mecanismos para incluir los datos dinámicos en las páginas Web dinámicas que van a ser presentadas en un buscador de la Web. Un mecanismo para incluir datos dinámicos, en páginas Web dinámicas, es el uso de piezas modulares de instrucciones ejecutables por computadora (a las que generalmente nos referimos como "escritos"). Los escritos pueden ser desarrollados utilizando lenguajes de escritura, tales como por ejemplo, JavaScrip y VBScrip, e incrustados junto con el HTML y el lenguaje de Marca Extensible ("XML"), instrucciones en un archivo de página (por ejemplo, Archivo de Páginas del Servidor Activo ("ASP")). Cuando es recibida una solicitud para una página Web dinámica, el sistema de cómputo del servidor vuelve a dirigir la solicitud a un módulo de procesamiento (por ejemplo, un módulo ASP) que procesa un archivo de página correspondiente. El módulo de procesamiento ejecuta cualesquiera escritos incluidos en el archivo de la página, y genera las instrucciones HTML apropiadas para enviarlas en respuesta a la solicitud. Los escritos pueden incluir, instrucciones ejecutables por computadora para tener el acceso de datos de localizaciones dinámicas, tales como por ejemplo, de una base de datos que mantiene las cifras actuales de ventas, o las cotizaciones de almacén. Como los escritos son ejecutados especialmente y al momento que es recibida una solicitud, los escritos pueden ser utilizados para generar páginas Web dinámicas que incluyen datos de tiempo real. De manera similar a las páginas Web estáticas, una página Web dinámica puede ser guardada en la memoria caché para proporcionar un acceso más eficiente a la página Web dinámica. Sin embargo, el contenido dinámico, (por ejemplo, una cotización de precios) incluido en una página Web dinámica es válido generalmente por un período de tiempo limitado, (por ejemplo, hasta que cambian los valores en la localización en donde fue recuperado el contenido dinámico). Con frecuencia, el contenido dinámico (por ejemplo, cotización de almacén) será válido por un período de tiempo muy corto, por ejemplo, solamente unos cuantos segundos. Cuando cambia el valor del contenido dinámico, el contenido dinámico almacenado en la memoria caché llega a ser invalido. Por ejemplo, cuando cambia un precio de almacén de $20.00 a $21.00, el valor guardado en la memoria caché de $20.00 ya no es válido (o aún correcto). Cuando el contenido inválido permanece en la memoria caché, existe un potencial para que un servidor Web proporcione un contenido dinámico incorrecto a un buscador de Web. Por ejemplo, cuando un precio de almacén inválido permanece en la memoria caché, un servidor de la Web podría recuperar el precio de almacén inválido de la memoria caché, en vez de volver a ejecutar un escrito para recuperar un precio de almacén recuperado de una base de datos. Por consiguiente, han sido desarrollados mecanismos de administración de la memoria caché que intentan asegurar la validez del contenido dinámico almacenado en la memoria caché. Algunos mecanismos de maneja de la memoria caché automáticamente eliminan el contenido dinámico de la memoria en intervalos de tiempo especificados, tales como de por ejemplo, cada diez minutos. Sin embargo, si cambia un valor de contenido dinámico entre los intervalos de tiempo especificados, todavía existe un potencial de que un valor de contenido dinámico inválido permanezca en la memoria caché. Por ejemplo, si un intervalo de tiempo especificado es de cinco minutos y un valor de contenido dinámico es actualizado un minuto después de que es guardado en la memoria caché, el valor del contenido dinámico es invalidado, pero permanecerá guardado en la memoria caché por lo menos durante cuatro minutos. Durante esos cuatro minutos, el servidor de la Web puede recuperar de manera incorrecta el valor del contenido dinámico guardado en la memoria caché, en vez de operar un escrito para recuperar el valor del contenido dinámico j actualizado. ¡, Además, remover el contenido en intervalos de tiempo especificados puede ocasionar que un valor que todavía es válido sea removido de la memoria caché. Por ejemplo, si un período de tiempo especificado es de diez minutos y un valor de contenido dinámico permanece válido diez minutos después de que fue guardado en la memoria caché, el valor del contenido dinámico todavía es removido de la memoria de caché. Por lo tanto, se evita el potencial para una recuperación más eficiente del valor del contenido dinámico en respuesta a una solicitud subsecuente. Otros mecanismos de administración de la memoria caché (por ejemplo, los archivos XML) monitorean archivos almacenados en el sistema de cómputo del servidor e invalidan los valores del contenido dinámico guardados en la memoria caché del archivo, monitoreado cuando cambia el archivo monitoreado. Todavía otros mecanismos de administración de la memoria caché monitorean las entradas en la memoria caché e invalidan una entrada en la memoria caché cuando otra entrada de la memoria caché es invalidada. Por consiguiente, algunos mecanismos de administración de la memoria de caché ocasionan la validez de las entradas en la memoria caché que dependan del tiempo, un archivo correspondiente u otra entrada correspondiente a la memoria caché. Sin embargo, los mecanismos actuales de administración de la memoria caché (incluyendo aquellos que utilizan tiempo, archivo, y dependencias de la memoria caché) no están bien adecuados para invalidar los valores del contenido dinámico guardados en la memoria caché recuperados de localizaciones que son externas al sistema de cómputo del servidor. Por ejemplo, un buscador de la Web puede solicitar una página Web que va a incluir valores de contenido dinámico de un número de tablas diferentes en una base de datos. Por consiguiente, un archivo de página con los escritos apropiados puede ser procesado en el sistema de cómputo del servidor para recuperar los valores del contenido dinámico y generar las instrucciones HTML apropiadas. Sin embargo, la recuperación de datos de una base de datos consume tanto recursos de la red, como de la base de datos. Si se van a realizar cálculos en los datos recuperados, también son consumidos recursos adicionales del sistema de cómputo del servidor. Además, puede ser que un sistema de cómputo del servidor solicite simultáneamente a una base de datos un número de porciones diferentes del contenido dinámico que será incluido en diferentes páginas Web. También puede ser que un número de sistemas de cómputo del servidor tengan acceso cada uno al contenido dinámico de la misma base de datos. De este modo, una sola base de datos puede proporcionar simultáneamente el contenido dinámico a un número de sistemas de cómputo del servidor, en donde cada sistema de cómputo del servidor solicita simultáneamente a la base de datos diferentes porciones del contenido dinámico. Como resultado, la única base de datos llega a ser una fuente que es compartida entre el número de sistemas de cómputo del servidor y por lo tanto, limita potencialmente la capacidad de escalación. Es decir, la adición de más sistemas de cómputo del servidor no aumentará necesariamente el funcionamiento, ya que cada sistema de cómputo del servidor está limitado por lo menos por el tiempo necesario para que sea recuperado el contenido de una sola base de datos,, además, cuando el contenido es eliminado de manera prematura de la memoria caché (por ejemplo, en un intervalo especificado), se le puede requerir a un sistema de cómputo del servidor que vuelva a solicitar a la base de datos, aunque el contenido dinámico que se encuentra en la memoria caché todavía sea válido. En un ambiente de servidores múltiples, la remoción prematura del contenido de la memoria caché, puede ocasionar una carga innecesaria en los recursos de la base de datos compartida, por lo que también y de manera importante, limita la capacidad de escalación. Por consiguiente, lo que sería ventajoso son los mecanismos para configurar las entradas a la memoria caché que sean dependientes de la invalidación de las entradas de la memoria caché, basadas en cambios de las tablas de la base de datos. Sumario de la Invención Los problemas anteriores con la condición anterior de la técnica son superados por los principios de la presente invención, los cuales se dirigen hacia los sistemas, métodos, productos de programas de cómputo, y estructuras de datos para registrar y recuperar la información de cambios de una tabla de la base de datos que puede ser utilizada para invalidar las entradas a la memoria caché. Un sistema de cómputo del cliente con un buscador es una red que se puede conectar a un sistema de cómputo del servidor que puede generar y proporcionar respuestas en la Web (por ejemplo, páginas Web y/o resultados de servicios de la Web) al sistema de cómputo del cliente. El sistema de cómputo del servidor accede por lo menos a algo del contenido para las respuestas de la página Web de las tablas de datos en una base de datos. El sistema de cómputo del servidor mantiene una memoria caché (por ejemplo, en la memoria del sistema) que puede almacenar siempre que el contenido aumente la eficiencia para proporcionar posteriormente el mismo contenido para satisfacer al cliente con las solicitudes de la Web. El sistema de cómputo del servidor selecciona una tabla de datos (por ejemplo, en respuesta a una entrada del usuario) el contenido en la base de datos (por ejemplo, una base de datos SQL), que va a ser monitoreada por los cambios de datos. Un registro que corresponde a la tabla de datos seleccionada es insertado dentro de una tabla de notificación de cambios (también contenida en la base de datos). El registro correspondiente incluye informaciones sobre versiones, tales como por ejemplo, una ID de cambio para la tabla de datos seleccionada. Un detonador, el cual ocasiona que la información acerca de las versiones para la tabla de datos seleccionada sea actualizada en la tabla de notificación de cambios cuando el contenido de la tabla de datos seleccionada es alterado,, y es asignado a la tabla de datos seleccionada En respuesta a la alteración del contenido (por ejemplo, inserción, borrado o actualización de un registro) en la tabla de datos seleccionada, la información de versiones correspondiente en la tabla de notificación de cambios es actualizada. De vez en cuando, o en respuesta a una solicitud para recuperar el contenido almacenado en la memoria caché, el sistema de cómputo del servidor solicita la tabla de notificación de cambios para información de versiones correspondientes a una o más tablas de la base de datos. Una solicitud puede ser configurada para solicitar la información sobre las versiones de todas las tablas de datos monitoreadas presentadas en la tabla de notificación de cambios, para solicitar información de versiones para las tablas de datos monitoreadas en dependencias sobresalientes en la memoria caché, o para solicitar información sobre versiones para tablas de datos monitoreadas que han sido cambiadas (por ejemplo, incluyendo una información de versiones actual en la solicitud). En respuesta a una solicitud, la información de versiones actualizada es regresada de la base de datos al sistema de cómputo del servidor. Basada en la configuración de la solicitud, la base de datos puede regresar, por ejemplo, la información sobre versiones para todas las tablas de datos monitoreadas, información sobre versiones para tablas de datos monitoreadas, dependencias sobresalientes en la memoria caché, o información de versiones para tablas de datos monitoreadas que han cambiado. Alternativamente, el sistema de cómputo del servidor puede emitir una solicitud a una tabla de notificación de cambios y solicitar que el bloque de solicitud emitido sea actualizado en el sistema de cómputo del servidor hasta la información de versiones para una tabla solicitada. Por ejemplo, el sistema de cómputo del servidor puede emitir una solicitud que bloquea el sistema de cómputo del servidor hasta que la información de versión actual llegue a ser más grande que un umbral especificado. La solicitud de bloqueo emitida puede ser ejecutada de manera sincrónica, de modo que una fila correspondiente en un sistema de cómputo del servidor se bloquea hasta que estén disponibles los resultados. Por otra parte, la solicitud de bloqueo emitida puede ser ejecutada de una manera asincrónica, de modo que una fila correspondiente en un sistema de cómputo del servidor no sea bloqueada y se invoque una llamada de respuesta en el sistema de cómputo del servidor (por ejemplo, una fila separada) cuando los resultados están disponibles. El sistema de cómputo del servidor determina que el contenido de la memoria caché depende de una de las tablas de datos (por ejemplo, como resultado de una dependencia previamente asignada para guardar en la memoria caché la base de datos), el sistema de cómputo del servidor compara la información de versiones actual (recibida en la lista) con la información de versiones guardadas en la sistema de cómputo (por ejemplo, información de versiones guardadas en la memoria caché, junto con una porción del contenido guardado en la memoria caché). Esto puede incluir la comparación de una ID de un cambio de ID recibido a un cambio de ID guardado en la memoria caché. Por ejemplo, cuando es apropiado el contenido en la tabla de datos cambia después que una porción del contenido basado en la tabla de datos fue guardada en la memoria caché, y la porción del contenido guardado en la memoria caché es eliminada de la memoria caché. Por consiguiente, el contenido guardado en la memoria caché que depende de una tabla de datos monitoreada puede ser invalidado de manera apropiada y removida de la memoria caché. La invalidación y remoción apropiadas del contenido guardado en la memoria caché, reduce la probabilidad de que un sistema de cómputo del servidor incluya el contenido inválido en la memoria caché en una respuesta a la Web. Además, también se reducen las oportunidades de eliminar datos válidos (por ejemplo, que puede ocurrir con una dependencia del tiempo) aumentando de este modo, la eficiencia de la generación de respuestas de la Web. En algunas modalidades, el contenido guardado en la memoria caché es en la forma de objetos o los resultados usados para generar una respuesta de la Web, tales como datos tabulares, objetos, colecciones o respuestas parciales. El guardado en la memoria caché de estos resultados provisionales es apropiado cuando los resultados pueden ser utilizados en la regeneración de más de una respuesta de la Web, en donde cada respuesta de la Web contiene información adicional de diferenciación (por ejemplo, el diseño o la inclusión de otra información relevante). En otras modalidades, una respuesta de la Web completa es guardada en la memoria caché. Guardar en la memoria caché la respuesta completa de la Web es apropiado cuando la respuesta completa de la Web puede ser compartida en múltiples solicitudes de la Web. Cuando se guarda en la memoria caché una respuesta completa de la Web, la respuesta de la Web puede ser impulsada hacia abajo para que sea guardada en la memoria caché en los niveles inferiores del sistema de cómputo del servidor, por ejemplo, una memoria caché de respuesta de modo de funcionamiento Kernel. Por consiguiente, cuando es invalidada la respuesta de la Web, es eliminada de la memoria caché del nivel más bajo. Puede ser que un sistema de cómputo del servidor reciba una solicitud de la Web del cliente para una respuesta de la Web que va a incluir el contenido solicitado contenido en una tabla de dataos. La tabla de datos puede ser una tabla de datos que es generalmente accesible a otras aplicaciones que~ pueden alterar el contenido de la tabla de datos, incl uyendo el contenido solicitado. El sistema de cóm puto del servidor determi na que por lo menos una porción del contenido que va a ser i ncluido en la respuesta de la Web no está g uardado en la memoria caché actualmente en el sistema de cómputo del servidor. El sistema de cómputo del servidor tiene acceso al conten ido solicitado de la tabla de datos y construye la respuesta de la Web para i ncluir el contenido solicitado. El sistema de cómputo del servidor asigna u na dependencia de la memoria caché a la base de datos de por lo menos una porción de la respuesta de la Web construida basada en los coma ndos ejecutados d urante la construcción de la respuesta de la Web. La asig nación de una dependencia de la memoria caché de la base de datos puede i nclu ir asignar la respuesta de la Web para q ue sea dependiente de la tabla de datos, o asig nar el contenido basado en los datos recu perados de la tabla de datos que sea dependientes en la tabla de datos. U na dependencia de la memoria caché de la base de datos o puede ser asig nada a través del uso de una instrucción o un código de programa incl uido en el archivo de páginas (por ejemplo , en un Archivo de Páginas Activas del Servidor ("AS P")) que es procesado en el sistema de cóm puto del servidor pa ra construir la respuesta de la Web. Dicha al menos una porción de la respuesta de la Web construida es guardada en la memoria caché en el sistema de cómputo del servidor. Por consiguiente, en respuesta a solicitudes posteriores de la Web para la respuesta de la Web construida, el sistema de cómputo del servidor puede recuperar la respuesta guardada en la memoria caché por lo menos una versión de la respuesta de la Web construida. El contenido recuperado de la memoria caché (potencialmente una respuesta de la Web completa) conserva, tanto los recursos del sistema de cómputo del servidor (debido a que las porciones del archivo de página no se van a volver a ejecutar), y los recursos de la red y base de datos (ya que la base de datos no se le vuelve a solicitar y por lo tanto, los datos no son transferidos por una red). Por consiguiente, se reduce la latencia reduciendo el procesamiento y los recursos requeridos para responder a una solicitud de la Web, y la capacidad de escalación es aumentada reduciendo el acceso simultáneo a recursos compartidos, tales como la base de datos. Las características adicionales y las ventajas de la presente invención serán establecidas en la descripción siguiente, y en parte serán obvios a partir de la descripción, o pueden ser aprendidos mediante la práctica de la presente invención. Las características y ventajas de la presente invención pueden ser llevadas a cabo y obtenidas por medio de los instrumentos y combinaciones particularmente señalados en las reivindicaciones adjuntas. Estas y otras características de la presente invención podrán ser apreciadas más fácilmente a partir de la siguiente descripción y las reivindicaciones adjuntas, o puede ser aprendido mediante la práctica de la invención, tal y como se establece más adelante. Breve Descripción de los Dibujos Con el objeto de describir la manera en la cual pueden ser obtenidas las ventajas y características de la presente invención mencionadas anteriormente, se presentará una descripción breve más particular de la invención descrita anteriormente, como referencia a las modalidades específicas de la misma, las cuales están ilustradas en los dibujos adjuntos. En el entendido de que estos dibujos ilustran solamente las modalidades típicas de la presente invención y por lo tanto, no deberán ser consideradas como que limitan su alcance, la presente invención será descrita y explicada con una especificidad y detalle adiciona, I a través del uso de los dibujos que la acompañan en los cuales: La figura 1 ilustra una arquitectura de red de ejemplo que facilita la configuración de entradas en la memoria caché para que sean dependientes y la invalidación de entradas en la memoria caché basadas en los cambios en las tablas de la base de datos de acuerdo con los principios de la presente invención. La figura 2 ilustra una gráfica de flujo de un método para configurar una base de datos para proporcionar notificaciones de cambio de la tabla de acuerdo con los principios de la presente invención.
La figura 3 ilustra una gráfica de flujo de ejemplo de un método para invalidar una porción del contenido guardado en la memoria caché de acuerdo con los principios de la presente invención. La figura 4 ilustra una gráfica de flujo de ejemplo para tener acceso al contenido para presentar a un sistema de cómputo del cliente solicitante de acuerdo con los principios de la presente invención. La figura 5 ilustra un ambiente de operación adecuado para los principios de la presente invención. Descripción Detallada de la Invención La presente invención se extiende a métodos, sistemas, productos de programas de cómputo, y estructuras de datos para registrar y recuperar la información de cambio de tablas en la base de datos, que podrían ser utilizadas para invalidar entradas en la memoria caché. Un sistema de cómputo del cliente con un buscador es una red que se puede conectar a un sistema de cómputo del servidor que puede generar y producir respuestas de la red (por ejemplo, páginas Web y/o resultados de los servicios de la Web) al sistema de cómputo del cliente. El sistema de cómputo del servidor tiene acceso por lo menos a algo del contenido de las respuestas de la Web de las tablas de datos en una base de datos. El sistema de cómputo del servidor mantiene una memoria caché (por ejemplo, en la memoria del sistema) que puede almacenar el contenido proporcionado (incluyendo el contenido de las tablas de datos), para aumentar la eficiencia para proporcionar posteriormente el mismo contenido para satisfacer las solicitudes del cliente de la Web. El sistema de cómputo del servidor (por ejemplo, en respuesta a un ingreso del usuario) configura una tabla de datos en la base de datos para proporcionar una tabla de notificación de cambios con información de versiones actualizadas (por ejemplo, IDs de cambio) cuando el contenido de la tabla de datos es alterado (por ejemplo, insertado, borrado, actualizado). El sistema de cómputo del servidor solicita la tabla de notificación de cambios de vez en cuando o en respuesta a una solicitud para recuperar el contenido guardado en la memoria caché, para solicitar información de versiones actualizadas para las tablas de datos correspondientes. En respuesta, la base de datos proporciona la información de versiones actualizadas para las tablas de datos correspondientes a la solicitud. El sistema de cómputo del servidor puede utilizar la información de versiones actualizadas para invalidar entradas en la memoria caché (por ejemplo, basadas en dependencias previamente asignadas de la memoria caché de la base de datos). En algunas modalidades, sistema de cómputo del servidor recibe una solicitud de página Web del cliente para una respuesta de la Web que va a incluir el contenido solicitado contenido en la tabla de datos. El sistema de cómputo del servidor determina que una porción del contenido que va a ser incluida en la respuesta de la Web no está guardado en la memoria caché actualmente en el sistema de cómputo del servidor. El sistema de cómputo del servidor accede al contenido solicitado de la tabla de datos y construye la respuesta de la Web para que incluya el contenido solicitado. El sistema de cómputo del servidor asigna una dependencia de la memoria caché de la base de datos a por lo menos una porción de la respuesta de la Web construida basada en los comandos ejecutados durante la construcción de la respuesta de la Web. Dicha al menos una porción de la respuesta de la Web construida es guardada en la memoria caché en el sistema de cómputo del servidor. Las modalidades de la presente invención pueden comprender una computadora para propósitos especiales o de uso general, que incluye varios equipos (hardware) y programas (software) de cómputo, tal y como se explicará con mayor detalle más adelante. En particular, las modalidades dentro del alcance de la presente Invención incluyen medios legibles por computadora para llevar o tener Instrucciones ejecutables por computadora o estructuras de datos almacenados en las mismas. Dichos medios legibles por computadora pueden ser cualesquiera medios adecuados a los que se pueda acceder por una computadora de uso general o para propósitos especiales. A modo de ejemplo, y no de limitación, dichos medios legibles por computadora pueden comprender memorias RAM, ROM, EEPROM, CD-ROM o cualesquiera medios de almacenamiento físico, tales como almacenamiento de disco óptico, almacenamiento de disco magnético, u otros medios de aparatos de almacenamiento magnético y cualquier otro medio que pueda ser utilizado para llevar o guardar los medios de códigos del programa deseados en la forma de instrucciones ejecutables por computadora o estructuras de datos a los cuales puede tener acceso una computadora de uso general o para propósitos especiales. Cuando la información es transferida o proporcionada por una red u otra conexión de comunicaciones (ya sea con cables duros, inalámbrica o una combinación de cables duros o inalámbricas) a una computadora, la computadora ve correctamente la conexión como un medio legible por computadora. De este modo, cualquiera de dichas conexiones es denominada de manera correcta un medio legible por computadora. Las combinaciones de las anteriores también pueden estar incluidas dentro del alcance de los medios legibles por computadora. Las instrucciones ejecutables por computadora incluyen, por ejemplo, instrucciones o datos los cuales causan que una computadora de uso general, una computadora para propósitos especiales o un aparato de procesamiento para propósitos especiales, tales como un GPU, realice una cierta función o grupo de funciones. En esta descripción y en las reivindicaciones adjuntas, un "sistema de cómputo" es definido como uno o más módulos de programa (software), uno o más módulos de equipo (hardware), o combinaciones de los mismos, que trabajan juntos para realizar operaciones sobre datos electrónicos. Por ejemplo, la definición del sistema de cómputo incluye los componentes del equipo (hardware) de una computadora personal, así como los módulos de programa (software), tales como el sistema operativo de la computadora personal. La distribución física de los módulos no es importante. Un sistema de cómputo puede incluir una o más computadoras conectadas por medio de una red. De un modo similar, un sistema de cómputo puede incluir un solo aparato físico (tal como un teléfono móvil, o un Asistente Personal Digital ("PDA")), en donde los módulos internos (tales como la memoria y el procesador) trabajan juntos para realizar las operaciones en los datos electrónicos. En esta descripción y las reivindicaciones adjuntas, una "respuesta de la Web" es definida con una página legible para los humanos, tal como por ejemplo, una página Web, y/o los resultados de un servicio de la Web. Una página Web puede ser recuperada de una Web, tal como por ejemplo, la Red Mundial (World Wide Web ("WWW")), teniendo acceso a un Localizador de Recurso Uniforme (Uniform Resourse Locator ("URL")). Una página Web puede incluir una o más instrucciones de Lenguaje de Marca de Hipertexto (HyperText Markup Language "HTML")), que se pueda presentar en un buscador de la Web, tal como, por ejemplo, el buscador 102. Un servicio de la Web proporciona un mecanismo para aplicaciones diferentes de diferentes fuentes para comunicarse (potencialmente de un modo independiente de la interacción del usuario) sin téner que desarrollar las instrucciones acostumbradas. Los servicios de la Web pueden integrar un número de tecnologías diferentes, tales como por ejemplo, el Lenguaje de Marca Extensible (Extensible Markup Language ("XML")), para el etiquetado de datos, el Protocolo de Acceso Simple de Objetos (Simple Object Access Protocol ("SOAP"")) para transferir los datos, el Lenguaje de Descripción de Servicios de la Web (Web Services Description Language ("WSDL")) para describir los servicios disponibles, y la Descripción Universal, Descubrimiento e Integración (Universal-Description, Discovery and Integration ("UDDI") para hacer una lista de los servicios disponibles. Los servicios de la Web pueden compartir lógica comercial, datos y procesos a través de una interfase programática en toda la red. En esta descripción y las reivindicaciones adjuntas, una "solicitud de la Web" es definida como una solicitud para una "respuesta de la Web". Puede ser que un usuario ingrese comandos apropiados en la interfase del usuario para iniciar una solicitud de la Web. Por ejemplo, un usuario en el sistema de cómputo del cliente 101 puede ingresar comandos apropiados en el buscador 102 para tener acceso a un URL correspondiente a una página Web. Por otra parte, puede ser que la aplicación inicie una solicitud de la Web. Por ejemplo, una aplicación de servicios de la Web en el sistema de cómputo del cliente 101 puede iniciar una solicitud de la Web a una aplicación de servicios de la Web en el sistema de cómputo del servidor 111. Aquellos expertos en la técnica apreciarán que la presente invención puede ser practicada con muchos tipos de configuraciones de sistemas de cómputo, incluyendo, computadoras personales, computadoras portátiles, sistemas de multiprocesadores, minicomputadoras, computadoras de estructura principal y similares. La presente invención también puede ser practicada en ambientes de sistema distribuidos en donde los sistemas de cómputo locales y remotos, los cuales están enlazados (ya sea por cables duros o enlaces de cables duros, enlaces inalámbricos o por una combinación de enlace de cables duros o inalámbricos) a través de una red, y ambos realizan las tareas. En un ambiente de sistema distribuido, los módulos de programa y las estructuras de datos asociados pueden estar localizados en ambos, los aparatos de almacenamiento de memoria local y remota. Regresando a la figura 1, ésta ilustra una arquitectura de red de ejemplo 100 que facilita la configuración de las entradas a la memoria caché para que dependan o invaliden las entradas de la memoria caché, basadas en los cambios en las tablas de la base de datos de acuerdo con los principios de la presente invención. Los elementos rectangulares de la arquitectura de la red 100 (por ejemplo, el buscador 102, el módulo de interfase de la memoria caché 132, el módulo de construcción de respuesta 133, el módulo de interfase de la base de datos 136, detonador 167 y el detonador 177) representan los módulos ejecutables que facilitan los principios de la presente invención. Los elementos desplazados (entradas en la memoria caché 121 y 126, contenido de respuesta 134, registros 151 y 156, y datos 163 y 164) representan los datos que son procesados por los módulos ejecutables. Por consiguiente, los módulos ejecutables y los elementos desplazados ilustrados en la arquitectura de la red 100 interactúan de manera cooperativa para implementar los principios de la presente invención. Dentro de la arquitectura de la red 100, el sistema de cómputo del cliente 101 y el sistema de cómputo del servidor 111 están conectados cada uno a la red 106 por medio de los enlaces correspondientes 103 y 104, respectivamente. La red 106 puede ser una red de área local ("LAN"), una red de área ancha ("WAN"), y aún la Internet. El sistema de cómputo del cliente 101 incluye el buscador 102, el cual puede enviar solicitudes de la Web (por ejemplo, Solicitudes de Protocolo de Transferencia de Hipertexto (HyperText Transfer Protocol ("HTTP")) para las páginas de la Web y puede recibir páginas de la Web que son regresadas al sistema de cómputo 101 en respuesta a una solicitud de la Web. El buscador 102 puede presentar también el contenido recibido de la página Web (por ejemplo, texto, gráfico, video y audio) en el sistema de cómputo del cliente 101. El sistema de cómputo del cliente 101 puede incluir también las aplicaciones de servicio de la Web que se comunican con las aplicaciones de servicio de la Web correspondientes en el sistema de cómputo del servidor 11 .
El sistema de cómputo 111 incluye los módulos de construcción de respuesta 133 que pueden construir las respuestas de la Web en respuesta a las solicitudes de la Web por parte del cliente. El módulo de construcción de respuesta 133 puede procesar archivos de páginas, tales como por ejemplo, Archivos de Páginas Activas del Servidor (Active Server Pages ("ASP")), para construir las páginas Web. Un archivo de página puede incluir instrucciones y/o comandos de una variedad de lenguajes diferentes, tales como por ejemplo, Lenguaje de Marca de Hipertexto (HyperText Markup Language ("HTML")), el Lenguaje de Marca Extensible (Extensible Markup Language ("XML")), JavaScript y VBScript. El módulo de construcción de respuesta 133 puede procesar instrucciones y/o comandos en un archivo de página para generar el contenido de una respuesta de la Web. El módulo de construcción de respuesta 133 puede ser configurado para generar páginas Web, por ejemplo, en respuesta a una solicitud de la Web de un buscador, y ser configurado para los resultados generados por el servicio de la Web, por ejemplo, en respuesta de una solicitud de la Web de una aplicación de servicio de la Web. El sistema de cómputo del servidor 111 está conectado a la base de datos 141 (por ejemplo, una base de datos SQL), por medio del enlace 107. El módulo de interfase de la base de datos 136 puede transferir los comandos de la base de datos por medio del enlace 107 a la base de datos 141. Los comandos de la base de datos pueden ser utilizados para manipular el contenido (por ejemplo, agregar, borrar o cambiar filas o registros) en o recuperar el contenido de la base de datos 141. El módulo de interfase de la base de datos 136 puede recibir el ingreso del usuario (por ejemplo, de un teclado o ratón) que son traducidos en comandos de la base de datos y transferidos a la base de datos 141. Alternativamente, el módulo de interfase de la base de datos 136 puede recibir el ingreso del módulo de construcción de respuesta 133 solicitando el contenido para la inclusión en una respuesta de la Web. En respuesta, el módulo de interfase de la base de datos136 puede recuperar el contenido de la base de datos 141 y proporcionar el contenido recuperado al módulo de construcción de respuesta 133. El módulo de construcción de respuesta 133 puede combinar el contenido recuperado con el contenido estático en el contenido de respuesta 134 para construir una respuesta de la Web apropiada. La base de datos 141 puede almacenar la información de versiones de las tablas de datos contenidas en la base de datos 141. El módulo de interfase de la base de datos 136 puede recuperar la información de versiones para las tablas de datos y. proporcionar la información de versiones recuperada al módulo de interfase de la memoria caché 132. El módulo de interfase de la memoria caché 132 puede utilizar la información de versiones recuperada para determinar cuando invalidar (y posteriormente, eliminar) las entradas de la memoria caché 112. Por ejemplo basada en el módulo de ¡nterfase de la memoria caché de la información de versiones 132 se puede determinar cuando invalidar una entrada a la memoria caché 121, o una entrada a la memoria caché 126. La memoria caché 112 puede ser una localización de almacenamiento con latencia disminuida, tal como por ejemplo, un sistema de memoria del sistema de cómputo del servidor 111. La información de versiones puede ser almacenada en las estructuras de datos de información de versiones que representan versiones de las tablas de datos contenidas en la base de datos 141. Uno de los campos de una estructura de datos de información de versiones puede ser un campo de ID de la tabla que representa la ID de la tabla que identifica una tabla de datos en la base de datos 141. Una ID de la tabla puede ser un valor, por ejemplo, incluyendo caracteres numéricos y/o alfabéticos, que identifica de manera única una tabla de datos, por ejemplo, la ID de la tabla "tabla de ventas 3" puede ser utilizada para identificar la tabla 162. Otro de los campos de la estructura de datos de información de versiones puede ser un campo de ID de cambio que representa una ID de cambio para una tabla de datos identificada por una ID de la tabla correspondiente. Una ID de cambio puede ser un valor, por ejemplo, incluyendo caracteres numéricos, que identifica una versión actual de una tabla de datos. Cuando el contenido de una tabla de datos es cambiado, la ID de cambio correspondiente puede ser actualizada (por ejemplo, incrementando la ID de cambio). Por ejemplo, cuando el contenido es insertado dentro de la tabla 172, la ID de cambio 158 puede ser incrementada. Otro de los campos de una estructura de datos de información de versión puede ser un campo de fecha que representa una fecha cuando la base de datos 141 comenzó a rastrear las versiones para una tabla de datos identificada por una ID de tabla correspondiente. Por ejemplo, la fecha 154 puede indicar cuando comenzó la base de datos 141 a rastrear la información de versiones para la tabla 162. Por consiguiente, la estructura de datos de información de versiones puede ser del formato: Versioning_lnformation { Campo de ID de Tabla, Campo de ID de Cambio, Campo de Fecha } Una o más estructuras de datos de información de versiones puede ser almacenada como registro en una tabla de notificación de cambios contenida en la base de datos 141. Por ejemplo, la tabla de notificación de cambios 142 incluye los registros 151 y 156, además, cada serié de tres períodos verticales (por ejemplo, cada elipsis vertical) dentro de la tabla de notificación de cambios 142 representa que la tabla de notificación de cambios 142 puede incluir otro registro. Cada registro en la notificación de cambios 142 corresponde a una tabla de datos que ha sido configurada para rastrear la información de versiones. Por ejemplo, los registros 151 y 156 pueden corresponder a las tablas 162 y 172, respectivamente. Por consiguiente, la ID de la tabla 152 puede almacenar una valor utilizado para identificar la tabla 162, la ID de cambio 153 puede almacenar un valor que indica la versión actual de la tabla 162, y la fecha 154 puede almacenar un valor que indica cuando comenzó la base de datos 141 a rastrear la información de versiones para la tabla 162. De un modo similar, la ID de la tabla 157 puede almacenar un valor utilizado para identificar la tabla 172, la ID de cambio 158 puede almacenar un valor que indica la versión actual de la tabla 172, y la fecha 159 puede almacenar un valor que indica cuando comenzó la base de datos 141 a rastrear la información de versiones para la tabla 172. Una tabla de datos puede ser configurada para rastrear la información de versiones a través del uso de un detonador de la base de datos correspondiente (por ejemplo, una porción de las instrucciones ejecutables por computadora) que actualiza una ID de cambio apropiada en una tabla de notificación de cambios. Cuando el contenido de la tabla de datos es alterado, el detonador de la base de datos es ejecutado y la ID de cambio apropiada es actualizada. Por ejemplo, cuando los datos de registro 164 son alterados, el detonador 167 puede ser ejecutado para actualizar el valor de la ID de cambio 153. De un modo similar, cuando el registro 176 es insertado dentro de los datos 173, el detonador 177 puede ser ejecutado para actualizar el valor de la ID de cambio 158. Un administrador o usuario de la base de datos 141 (o alternativamente del sistema de cómputo del servidor 111) puede ingresar una entrada del usuario que ocasiona que el detonador apropiado sea asociado con una tabla de datos. La tabla 162 y la tabla 172 son tablas de datos contenidas en la base de datos 141. Cada una de las tablas 162 y 172 puede incluir el contenido que es recuperado potencialmente por el módulo de interfase de la base de datos 136 para la inclusión en una respuesta de la Web. Por ejemplo, las tablas 162 y 172 pueden incluir inventario corporativo e información de ventas, respectivamente. El contenido de la tabla de datos puede ser representado por uno o más registros. Por ejemplo, los datos 163 son representados por los registros 164 y 166 (y potencialmente otros registros representados por la elipsis verticalmente). De un modo similar, los datos 173 representados por los registros 174 y 176 (y potencialmente otros registros representados por la elipsis verticalmente). El módulo de interfase de la base de datos 136 puede transferir comandos a la base de datos 141 (u otras bases de datos) que ocasionan que el contenido sea recuperado de la base de datos 141 (o las otras bases de datos). El contenido recuperado puede ser utilizado como un contenido para una respuesta de la Web que es transferido posteriormente a un sistema de cómputo solicitante. Por ejemplo, el sistema de cómputo del servidor 111 puede recibir una solicitud de la Web de un sistema de cómputo del cliente 101. La solicitud de la Web puede ser transferida al módulo de construcción de respuesta 133 que procesa un archivo de página correspondiente para construir una respuesta de la Web correspondiente. El módulo de construcción de respuesta 133 puede revisar la memoria caché 112 para determinar si la respuesta de la Web (o una porción de la misma) está almacenada en la memoria caché 112. Cuando una respuesta de la Web está almacenada en la memoria caché 112, la respuesta de la Web puede ser regresada directamente a un sistema de cómputo del cliente 101. Cuando una respuesta de la Web no está almacenada en la memoria caché 112, se pueden ejecutar escritos, incluyendo el archivo de página correspondiente para determinar una respuesta de la Web. La ejecución de un escrito puede incluir la revisión para y el uso si está disponible, de una porción de la respuesta de la Web almacenada en la memoria caché 112. Cuando el contenido no está almacenado en la memoria caché 112, los escritos ejecutados pueden solicitar el contenido de la base de datos 141. Por consiguiente, las solicitudes de contenido son transferidas al módulo de interfase de la base de datos 136, el cual puede emitir los comandos apropiados para recuperar los cambios de IDs y los IDs de las tablas, y las IDs de los cambios basados y las IDs de las tablas recuperadas solicitadas en el contenido. Por ejemplo, basados en la ID de cambios 153 y la ID de la tabla 152, el módulo de interfase de la base de datos 136 puede recuperar posteriormente los datos de la tabla 162. Puede ser que la información de versión sea recuperada antes de solicitar los datos, por ejemplo, el módulo de interfase de la base de datos 136 puede estar configurado para recuperar la información de versión (por ejemplo, uno o más IDs de cambio y una o más IDs de tabla correspondientes) antes de solicitar los datos (por ejemplo, datos 163 y/o datos 173). La recuperación de la información de versión antes de solicitar los datos reduce de manera importante la probabilidad de una condición de carrera en donde los datos de la tabla de datos son cambiados después de que los datos son solicitados, pero antes de que sea recuperada la información de versión. El módulo de construcción de respuesta 133 también puede determinar si el contenido recuperado va a ser guardado en la memoria caché, o si el contenido recuperado depende de la tabla de datos. El módulo de construcción de respuesta 133 puede transferir el contenido recuperado que va a ser guardado en la memoria caché junto con una indicación de las dependencias en cualesquiera de las tablas de datos (por ejemplo, una ID de tabla y una ID de cambio correspondiente), para el módulo de interfase de la memoria caché 132. El módulo de interfase de la memoria caché 132 puede insertar el contenido recuperado en la memoria caché 112. Con consiguiente, las solicitudes Web posteriores para el contenido recuperado pueden ser procesadas con una eficiencia aumentada. El contenido almacenado en la memoria caché puede ser almacenado en las estructuras de datos de entrada de la memoria caché que representa el contenido guardado en la memoria caché y las dependencias correspondientes. Uno de los campos de la estructura de datos de entrada de la memoria caché puede ser un campo de contenido de página que representa el contenido que fue (o va a ser) regresado a la computadora del cliente en una respuesta de la Web solicitada. El contenido de la página puede incluir una porción de una respuesta de la Web (por ejemplo, uno o más registros de una tabla de datos), o puede incluir una respuesta de la Web completa. Por ejemplo, el contenido de respuesta 122 puede incluir el contenido de los registros 164 y 166. Alternativamente, el contenido de respuesta 122 puede incluir una respuesta de la Web completa que tiene el contenido de la base de datos 141, el contenido del contenido de respuesta 134, y el contenido de otras localizaciones (por ejemplo, de otras bases de datos o de otros servicios Web). Otro de los campos de la estructura de datos de entrada de la memoria caché puede ser un campo de ID de tabla que representa una ID de tabla que identifica una tabla de datos de la base de datos 141. Una ID de tabla puede ser un valor, por ejemplo, incluyendo caracteres numéricos y/o alfabéticos, recuperado de una tabla de notificación de cambios. Por ejemplo, cuando el contenido recuperado de la tabla 162, la ID de tabla 154 también puede ser recuperada de la tabla de notificación de cambios 142. Por consiguiente, una ID de tabla en la memoria caché 112 puede corresponder a una ID de tabla en la tabla de notificación de cambios 142. Por ejemplo, cuando es recuperado el contenido de la tabla 172, la ID de tabla 128 y la ID de tabla 157 pueden identificar ambas la tabla 172. En algunas modalidades, se mantiene una sola ID de tabla/ID de cambio, tal como por ejemplo, una entrada de clave, que es mantenida en la memoria caché por cada tabla de datos que es monitoreada. Cualquier contenido que depende de una tabla se puede hacer dependiente de una entrada de clave correspondiente. Por consiguiente, puede ser que una pluralidad de entradas en la memoria caché se haga dependiente de la misma entrada de clave. Cuando la tabla identificada por la ID de tabla cambia, la ID de cambio correspondiente puede ser actualizada en la entrada de clave, o la clave puede ser removida. Al actualizar o remover la entrada de clave se ocasiona que cualesquiera entradas dependientes de la memoria caché (por ejemplo, la entrada de memoria caché 126) sea removida de la memoria caché. Teniendo una sola dependencia de clave se invalidan entradas múltiples a la memoria caché lo que reduce el número de solicitudes, y comparaciones de versión requeridas con el objeto de mantener las entradas en la memoria caché. Por consiguiente, las entradas de clave pueden ser utilizadas para aumentar la eficiencia de la determinación cuando el contenido dependiente va a ser invalidado. Otro de los cambios de la estructura de datos de entrada de la memoria caché puede ser un campo de ID de cambio que representa una ID de cambio para una tabla de datos identificada por una ID de tabla correspondiente. Una ID puede ser un valor, por ejemplo, incluyendo caracteres numéricos, recuperado de una tabla de notificación de cambios. Por ejemplo, cuando el contenido recuperado de la tabla 162, la ID de cambio 153 también puede ser recuperada de la tabla de notificación de cambios 142. Por consiguiente, una ID de cambio de la memoria caché 112 puede corresponder a una ID de cambio en la tabla de notificación de cambios 142. Por ejemplo, en los datos de tiempo son recuperados de la tabla 172, la ID de cambio 129 y la ID de cambio 158 pueden ser equivalentes. Por consiguiente, una estructura de datos de entrada en la memoria caché puede tener el formato: Cache_Entry { Contenido de Página, Campo de ID de Tabla, Campo de ID de Cambio } uno o más estructuras de datos de entrada en la memoria caché pueden ser almacenadas en la memoria caché 112. Por ejemplo, la memoria caché 112 incluye entradas a la memoria caché 121 y 126. Además, cada serie de tres períodos (por ejemplo, cada elipsis) dentro de la memoria caché 112 representa que la memoria caché 112 puede incluir otras entradas a la memoria caché. Cada entrada de la memoria caché en la memoria caché 112 corresponde a una porción del contenido que fue incluido en una respuesta de la Web construida anteriormente. Por ejemplo, las entradas en la memoria caché 121 y 126 incluyen el contenido de respuesta 122 y 127, respectivamente, el cual puede haber sido incluido en las respuestas de la Web (o pueden ser respuestas de la Web) que fueron entregadas al sistema de cómputo del cliente 101. De vez en cuando, el sistema de cómputo del servidor 111 puede solicitar a la base de datos 141 información de versiones. Por ejemplo, el módulo de interfase de la base de datos 136 puede ser configurado para solicitar a la base de datos 141 en intervalos especificados (por lo menos cada cinco segundos). En respuesta a la recepción de una solicitud, la base de datos 141 puede regresar la información de versión para cualquiera de las tablas de datos que han sido alteradas desde que se recibió la última señal de escrutinio. Una solicitud puede ser una solicitud específica para la tabla de datos que tiene información de versiones diferentes de la información de versiones incluidas en la solicitud. El módulo de interfase de la base de datos 136 puede recibir la información de versiones regresada de la base de datos 141 en respuesta a una solicitud. El módulo de interfase de la base de datos 136 puede transferir la información de versiones recibida al módulo de interfase de la memoria caché 132. El módulo de interfase de la memoria caché 132 puede procesar la información de versiones recibidas para identificar las entradas en la memoria caché que van a ser invalidadas y potencialmente eliminadas de la memoria caché 112. Alternativamente, el módulo de interfase de la memoria caché 132 puede procesar la información de versiones recibida para actualizar las entradas de clave apropiadas dentro de la memoria caché 112. En una modalidad alternativa, el sistema de cómputo del servidor 111 puede solicitar a la base de datos 141 información de versiones que han cambiado, y solicitar que la solicitud no sea regresada hasta que se determinen algunos cambios. Por ejemplo, el módulo de interfase de la base de datos 136 puede ser utilizado para emitir una solicitud de bloqueo por cada tabla que está siendo monitoreada. La solicitud de bloqueo emitida puede incluir la información de versión que se tiene actualmente para cada una de las tablas monitoreadas. Al momento de recibir la solicitud de bloqueo emitida, la base de datos 141 espera la información hasta que es actualizada la información de versión para una o más de las tablas solicitadas. En respuesta a la actualización, la base de datos 141 puede regresar la ID de tabla y la información de versión de la(s) tabla(s) cambiada(s). Las solicitudes de bloqueo pueden ser ejecutadas de manera sincrónica, de modo que la solicitud de datos no se regrese hasta que esté disponible la información de cambio. Por otra parte, las solicitudes de bloqueo pueden ser ejecutadas de manera no sincronizada, de modo que la solicitud se regrese inmediatamente, y se emite una llamada de regreso en el sistema de cómputo del servidor 111 cuando está disponible la información de cambio. La figura 2 ilustra una gráfica de flujo de ejemplo de un método para configurar una base de datos para proporcionar las notificaciones de cambio de la tabla, de acuerdo con los principios de la presente invención. El método 200 se explicará con respecto a los sistemas de cómputo y las bases de datos ilustrados en la arquitectura de red 100. El método 200 incluye una acción de selección de una tabla de datos para monitorear los cambios (acción 201). La acción 201 puede incluir un sistema de cómputo que se puede conectar a la red para (o que contiene) una base de datos que selecciona una tabla de datos de la base de datos que va a ser monitoreada por sus cambios en el contenido. La selección de la tabla de datos para monitorear los cambios puede incluir un módulo de interfase de datos 136 que recibe una entrada del usuario que identifica la tabla de datos que va a ser monitoreada. Por ejemplo, un administrador del sistema de cómputo del servidor 111 y/o la base de datos 141 puede presentar comandos que seleccionan la tabla 162 y/o la tabla 172 para el monitoreo. Cuando no existe ya una tabla de notificación de cambios, un administrador también puede ingresar comandos para crear una tabla de identificación de cambio. Por ejemplo, un administrador del sistema de cómputo del servidor 111 y/o la base de datos 141 puede presentar comandos a la base de datos 141 para ocasionar que sea creada la tabla de notificación de cambios 142. Alternativamente, el sistema de cómputo 111 puede presentar automáticamente comandos que seleccionan una tabla de datos para monitorearlos en respuesta a recibir una solicitud de la Web para una respuesta de la Web correspondiente que va a incluir el contenido de la tabla de datos seleccionada. Por ejemplo, en respuesta a la recepción de una solicitud de la Web para una respuesta de la Web correspondiente que incluirá el contenido de la tabla 162 y/o 172, el sistema de cómputo del servidor 111 puede presentar automáticamente comandos que seleccionan la tabla 162 y/o la tabla 172 para el monitoreo. Cuando no existe ya una tabla de notificación de cambios, el sistema de cómputo del servidor 111 puede presentar automáticamente, por ejemplo, basado en las instrucciones de página dentro del escrito, los comandos que ocasionan que sea creada la tabla de notificación de cambios. Por ejemplo, en respuesta a la recepción de una solicitud de la Web para una respuesta de la Web correspondiente que incluirá el contenido de una tabla de datos de la base de datos 141, el sistema de cómputo del servidor 111 puede presentar automáticamente comandos que ocasionen que sea creada una tabla de notificación de cambios 142. El módulo de interfase de la base de datos 136 puede transferir a la base de datos 141 la entrada del usuario y/o los comandos de creación de la tabla de notificación de cambios generados automáticamente, y los comandos de selección de la tabla de datos. El método 200 incluye una acción para insertar un registro que corresponde a la tabla de datos en una tabla de notificación de cambios (acción 202). La acción 202 puede incluir insertar un registro que corresponde a la tabla de datos en una tabla de notificación de cambios cuando la tabla de notificación de cambios no incluye ya un registro correspondiente a la tabla de datos. Por ejemplo, un sistema de cómputo que se puede conectar a una red (o contiene) una base de datos puede insertar un registro que corresponde a la tabla de datos seleccionada dentro de la tabla de notificación de cambios. Un registro insertado puede incluir información de versión (por ejemplo, representado por una estructura de datos de información de versión), que corresponde a la tabla de datos seleccionada. La inserción de un registro en una tabla de notificación de cambios puede incluir un módulo de interfase de la base de datos 136 que recibe la entrada del usuario que indica que un registro va a ser insertado en la tabla de notificación de cambios. Por ejemplo, un administrador del sistema de cómputo del servidor 111 y/o la base de datos 141 puede presentar comandos que ocasionan que los registros 151 y 156 sean insertados dentro de la tabla de notificación de cambios 142. Alternativamente, el sistema de cómputo 111 puede presentar automáticamente comandos que ocasionen que los registros sean insertados dentro de la tabla de notificación de cambios en respuesta a la recepción de una solicitud de la Web para una respuesta de la Web correspondiente que va a incluir el contenido de la tabla de datos seleccionada correspondiente, por ejemplo, en respuesta a la recepción de una solicitud de la Web para una respuesta de la Web correspondiente que incluirá el contenido de la tabla 162 y/o la tabla 172, el sistema de cómputo del servidor 111 puede presentar automáticamente comandos que ocasionen que los registros 151 y 152 sean insertados dentro de la tabla de notificación de cambios 142. El módulo de interfase de la base de datos 136, puede transferir la entrada del usuario o los comandos de inserción de registro generados automáticamente a la base de datos 141. El método 200, incluye una acción para asignar un detonador a la tabla de datos seleccionada (acción 203). La acción 203 puede incluir la asignación del detonador a la tabla de datos seleccionada cuando el seleccionador no está asignado ya a la tabla de datos seleccionada. Por ejemplo, un sistema de cómputo que se puede conectar a la red (o que contiene) una base de datos puede asignar un detonador a la tabla de datos seleccionada. El detonador asignado puede ocasionar que la información de versión para la tabla de datos seleccionados sea actualizada en la tabla de notificación de cambios cuando es alterado el contenido en la tabla de datos seleccionada. Por ejemplo, el detonador 167 puede ocasionar que la ID de cambio 153 sea actualizada (por ejemplo, incrementada) cuando es alterado el contenido de la tabla 162 (es decir, cuando un registro es insertado, eliminado o cambiado en los datos 163). De un modo similar, el detonador 177 puede ocasionar que la ID de cambio 158 sea actualizada (por ejemplo, incrementada) cuando el contenido de la tabla 172 es alterado (por ejemplo, cuando un registro es insertado, eliminado o cambiado en los datos 173). La asignación de un detonador puede incluir que el módulo de interfase de la base de datos 136 recibe la entrada del usuario que indica que un detonador va a ser asignado a la tabla de datos seleccionada. Un administrador del sistema de cómputo del servidor 111 y/o la base de datos 141 puede presentar comandos que ocasionen que un detonador sea asignado a la tabla de datos seleccionada. Por ejemplo, un administrador puede presentar una entrada que ocasiona que el detonador 167 sea asignado a la tabla 162 y el detonador 177 sea asignado a la tabla 172. Alternativamente, el sistema de cómputo 111 puede asignar automáticamente un detonador en respuesta a la recepción de una solicitud de la Web para una respuesta de la Web correspondiente que va a incluir el contenido de la tabla de datos seleccionada correspondiente. Por ejemplo, en respuesta a la recepción de una solicitud de la Web para una respuesta de la Web correspondiente que incluirá los datos de la tabla 162 y/o la tabla 172, el sistema de cómputo del servidor 111 puede presentar automáticamente, comandos que ocasionen que el detonador 167 sea asignado a la tabla 162 y/o que ocasione que el detonador 177 sea asignado a la tabla 172. El módulo de interfase de la base de datos 136 puede transferir la entrada del usuario a los comandos de asignación del detonador generados automáticamente a la base de datos 141. Un detonador puede Incluir una porción de las instrucciones ejecutables por computadora que está adherida a la tabla. Un detonador puede ser un evento conducido de modo que la porción de las instrucciones ejecutables por computadora sean ejecutadas cuando ocurra el evento. Por ejemplo, el detonador 167 puede estar configurado para activarse cuando el contenido de los datos 163 son alterados, y puede incluir una porción de las instrucciones ejecutables por computadora que ocasionen que una ID de cambio 153 sea incrementada. El método 200 incluye una acción de actualización de la información de versiones en respuesta al contenido de la tabla de datos seleccionada que está siendo cambiada (acción 204). La acción 204 puede incluir que un sistema de cómputo que se puede conectar a la red para (o contiene) una información de versión de actualización de la base de datos, en respuesta a la tabla de datos seleccionada que está siendo cambiada. Por ejemplo, cuando el contenido de los datos 162 es alterado (ya sea automáticamente como resultado de la entrada del usuario) un sistema de cómputo puede ejecutar la porción de instrucciones ejecutables por computadora incluidas en el detonador 167 para ocasionar que sea incrementada la ID de cambio 153.
El método 200 incluye una acción para regresar la información de versiones actualizada a un sistema de cómputo del servidor solicitante (acción 205). La acción 205 puede incluir el regreso de la información de versión actualizada a un sistema de cómputo del servidor solicitante, de modo que la información de versión actualizada pueda ser utilizada para determinar la validez del contenido en una entrada de la memoria caché en el sistema de cómputo del servidor. Por ejemplo, la base de datos 141 puede enviar los registros 151 y 156 (o porciones de los mismos) al sistema de cómputo del servidor 111 en respuesta a una solicitud del sistema de cómputo del servidor 111. El módulo de interfase de la base de datos 136 puede recibir el registro de datos de la base de datos 141. El módulo de interfase de la base de datos 136 puede transferir datos de los registros 151 y 156 (por ejemplo, las IDs de tablas 152 y 157, y las IDs de cambio 153 y 158) al módulo de interfase de la memoria caché 132 para utilizarlo para la identificación de las entradas de la memoria caché que van a ser invalidadas. En algunas modalidades, el contenido de la memoria caché se encuentra en la forma de objetos o resultados, utilizados para generar una respuesta de la Web, tales como datos tabulares, objetos, colecciones o respuestas de la Web parciales. Se puede utilizar la opción de guardar en la memoria caché estos resultados provisionales, según sea apropiado, cuando los resultados pueden ser utilizados en la generación de más de una respuesta de la Web, en donde cada respuesta de la Web contiene información adicional de diferenciación (por ejemplo, el diseño o inclusión de otra información relevante). En otras modalidades, la respuesta de la Web completa se guarda en la memoria caché. Guardar en la memoria caché una respuesta de la Web completa es apropiado cuando la respuesta de la Web completa puede ser compartida en múltiples solicitudes de la Web diferentes. Cuando se guarda la memoria Web una respuesta de la Web completa, la respuesta de la Web puede ser impulsada hacia abajo para que sea guardada en la memoria caché en los niveles inferiores del sistema de cómputo del servidor, por ejemplo, la memoria caché de respuesta, en un modo de funcionamiento Kernel. Por consiguiente, cuando la respuesta de la Web es invalidada, es eliminada del nivel inferior de la memoria caché. La figura 3 ilustra una gráfica de flujo de ejemplo del método 300 para invalidar una porción del contenido guardado en la memoria caché, de acuerdo con los principios de la presente invención. El método 300 será explicado con respecto a los sistemas de cómputo y la base de datos ilustrada en la arquitectura de red 100. El método 300 incluye una acción para solicitar una tabla de notificación de cambios para la información de versiones correspondientes a una o más tablas de datos (acción 301). La acción 301 puede incluir un sistema de cómputo el servidor, el cual construye respuestas de la Web que incluyen el contenido de una o más tablas de datos, solicitando a la tabla de notificación de ca m bios la información de versión correspondiente a la u na o más tablas de datos, por ejem plo, el módu lo de interfase de la base de datos 1 36 puede sol icitar la tabla de notificación de cam bios 142 pa ra la información de versiones correspondiente a las tablas 162 y 1 63. El módu lo de interfase de la base de datos 1 36 puede solicitar a la tabla de notificación de cambios 142 como resultado de haber reci bido una entrada del usuario, la ocu rrencia de un i ntervalo de escruti nio especificado, en respuesta a una solicitud para recuperar el contenido de la memoria caché, o una solicitud de bloqueo in iciada antes de solicitar los datos de la tabla depend iente . U na solicitud puede estar configurada para solicitar i nformación de versiones para todas las tablas de datos monitoreadas representadas en la tabla de notificación de cambios, para solicitar información de versiones para las tablas de datos monitoreadas con dependencias sobresalientes en la memoria caché o para solicitar información de versiones para tablas de datos monitoreadas que han cambiado (por ejemplo, incl uyendo la información de versiones actual en la solicitud). En respuesta a una solicitud , la información de versiones actualizadas es reg resada de la base de datos al sistema de cómputo del servidor. Basada en la configuración de la solicitud , la base de datos puede regresar, por ejemplo , la i nformación de versiones para todas las tablas de datos mon itoreadas, i nformación de versiones pa ra tablas de datos monitoreadas con dependencias sobresalientes en la memoria caché, o información de versiones para tablas de datos monitoreadas que han cambiado. Alternativamente, el sistema de cómputo del servidor puede emitir una solicitud a la tabla de notificación de cambios y solicitar el bloque de solicitud emitido en el sistema de cómputo del servidor hasta que la información de versiones para las tablas solicitadas sea actualizada. Por ejemplo, el sistema de cómputo del servidor puede emitir una solicitud que bloquee el sistema de cómputo del servidor hasta que la información de versión actual sea más grande que un umbral especificado. La solicitud de bloqueo emitida puede ser ejecutada de manera sincrónica, de modo que una línea correspondiente al sistema de cómputo del servidor se bloquea hasta que están disponibles los resultados. Por otra parte, la solicitud de bloqueo emitida puede ser ejecutada de manera no sincronizada, de modo que la fila correspondiente en el sistema de cómputo del servidor no sea bloqueada y se invoque el regreso de una llamada en el sistema de cómputo del servidor (por ejemplo, en una línea separada) cuando los resultados están disponibles. El método 300 incluye una acción para recibir una lista de por lo menos una tabla de datos que ha cambiado desde que la tabla de notificación de cambios fue solicitada la última vez (acción 302). La acción 302 puede incluir un sistema de cómputo del servidor, el cual construye respuestas de la Web que incluyen el contenido de por lo menos una tabla de datos, la recepción de una lista de por lo menos una tabla de datos que ha cambiado desde la última vez que fue solicitada la tabla de notificación de cambios en el sistema de cómputo del servidor. Una lista de al menos una tabla de datos puede incluir información de versiones actual para dicha al menos una tabla de datos. Por ejemplo, la base de datos 141 puede regresar una lista de tablas de datos que incluyen información de versiones para la tabla 162 (por ejemplo, la ID de tabla 152, y la ID de cambio 153). y la información de versión para la tabla 172 ( por ejemplo, la ID de la tabla 157 y la ID de cambio 158) al sistema de cómputo del servidor 111. El módulo de interfase de la base de datos 136 puede recibir una lista de tablas de datos regresados de la base de datos 141. El método 300 incluye una acción para determinar el contenido almacenado en la memoria caché que depende de por lo menos una tabla de datos (acción 303). La acción 303 puede incluir un sistema de cómputo del servidor, el cual construye respuestas de la Web que incluyen el contenido de por lo menos una tabla de datos, determinando que el contenido almacenado en la memoria caché depende de por lo menos una tabla de datos. Por ejemplo, el sistema de cómputo del servidor 111 puede determinar que el contenido de la respuesta 122 depende de la tabla 162, y el contenido de la respuesta 127 depende de la tabla 172. El módulo de interfase de la memoria caché 132 se puede comparar las IDs de tablas recibidas (IDs de tablas 152 y 157), y las IDs de tablas almacenadas en la memoria caché correspondientes (IDs de tablas 123 y 128). Cuando así lo indica una comparación de las IDs de tabla (por ejemplo, cuando una ID de tabla recibida y una ID de tabla que identifica la misma tabla de datos, están guardadas en la memoria caché), el módulo de interfase de la memoria caché 132 determina que el contenido almacenado en la memoria caché depende de la tabla de datos. Por ejemplo, cuando el valor de la ID de la tabla de datos 123 coincide con el valor de la ID de la tabla 152, el módulo de interfase de la memoria caché 132 puede determinar si el contenido de la respuesta 122 depende de la tabla 162. De un modo similar, cuando el valor de la ID de la tabla 128 coincide con el valor de la ID de la tabla 157, el módulo de interfase de la memoria caché 132 puede determinar si el contenido de la respuesta 127 depende de la tabla 172. El método 300 incluye una acción de comparación de la información de versión actual con la información de versión almacenada a la memoria caché (acción 304). La acción 304 puede incluir un sistema de cómputo del servidor, el cual construye respuestas de la Web que incluyen el contenido de por lo menos una tabla de datos, comparando la información de versión actual con la información de versión almacenada en la memoria caché. Por ejemplo, un sistema de cómputo del servidor 111 puede comparar la información de versión de una lista regresada a la información de versión contenida en la memoria caché 112. El módulo de interfase de la memoria caché 132 puede comparar las IDs de cambio recibidas (IDs de cambio 153 y 158), almacenadas en la memoria caché correspondientes (IDs de cambio 124 y 129). El método incluye una acción para eliminar una porción del contenido almacenado en la memoria caché basado en los resultados de la comparación (acción 305). La acción 305 puede incluir un sistema de cómputo del servidor, el cual construye respuestas de la Web que incluyen el contenido de al menos una tabla de datos, eliminando una porción del contenido guardado en la memoria caché basado en los resultados de la comparación. Por ejemplo, un sistema de cómputo del servidor 111 puede eliminar el contenido almacenado en la memoria caché de la memoria caché 112 basado en una comparación de la información de versión actual con la información de versión almacenada en la memoria caché. Cuando una indicación de IDs de cambio lo indica así (por ejemplo, cuando el valor de la ID de cambio recibida es mayor que el valor de la ID de cambio guardada en la memoria caché), el módulo de interfase de la memoria caché 132 elimina el contenido almacenado en la memoria caché. Por ejemplo, cuando la ID de cambio 153 es mayor que la ID de cambio 124, el módulo de interfase de la memoria caché 132 puede eliminar la entrada a la memoria caché 121 de la memoria caché 112. De un modo similar, cuando una ID de cambio 158 es mayor que la ID de cambio 129, el módulo de interfase de la memoria caché 132 puede eliminar la entrada a la memoria caché 126 proveniente de la memoria caché 112. Cuando las IDs de cambio son iguales al contenido almacenado en la memoria caché no se remueven de la memoria caché 112. Por consiguiente, a través del uso de las dependencias de la memoria caché de la base de datos, existe una probabilidad aumentada de invalidar de manera correcta el contenido almacenado en la memoria caché. Cuando una tabla de datos no ha cambiado, existe una posibilidad disminuida de remover prematuramente un contenido dependiente de la memoria caché válido. Por lo tanto, el contenido dependiente válido de la memoria caché puede ser utilizado para construir de una manera más eficiente la respuesta. Por otra parte, cuando ha cambiado una tabla de datos, existe una oportunidad aumentada de eliminar el contenido dependiente inválido correspondiente de la memoria caché. De este modo, se evita potencialmente que el contenido dependiente inválido sea incluido en una respuesta de la Web. La figura 4 ilustra un ejemplo de la gráfica de flujo del método 400 para tener acceso al contenido para presentarlo a un sistema de cómputo del cliente solicitante de acuerdo con los principios de la presente invención. El método 400 se explicará con respecto a los sistemas de computo y la base de datos ilustrados en la arquitectura de red 100. El método 400 incluye una acción de recepción de una solicitud de la Web de un sistema de cómputo del cliente (acción 401). La acción 401 puede incluir un sistema de cómputo del servidor, el cual construye respuestas de la Web que incluyen el contenido de al menos una tabla de datos, la recepción de una solicitud de la Web de un cliente. Por ejemplo, un sistema de cómputo del servidor 111 puede recibir una solicitud de la Web de un sistema de cómputo de cliente 101 (por ejemplo, se origina como resultado de una entrada del usuario recibida en el buscador 102). Una solicitud de la Web puede resultar, por ejemplo, cuando el buscador 102 tiene acceso al Localizador de Recurso Uniforme ("URL") correspondiente a una respuesta de la Web. Una solicitud de la Web puede solicitar la entrega de una respuesta de la Web que va a incluir el contenido solicitado que se encuentra en una tabla de datos. Por ejemplo, una solicitud de la Web de un sistema de cómputo del cliente 101 puede ser una solicitud para una respuesta de la Web que va incluir el contenido de la tabla 162 y/o la tabla 172. Las tablas 162 y 172 generalmente pueden ser accesibles a otras aplicaciones (por ejemplo, al flujo de trabajo o aplicaciones de inventarios) que pueden alterar el contenido de las tablas 162 y 172 (incluyendo el contenido que va a ser incluido en la respuesta de la Web solicitada). Por consiguiente, puede ser que el contenido incluido en los datos 163 y los datos 173 sean alterados por estas otras aplicaciones entre las de solicitudes de la Web. En respuesta a la recepción de una solicitud de la Web, el sistema de cómputo del servidor 111 puede determinar que está almacenada una respuesta de la Web completa correspondiente en la memoria caché 112 (o en una memoria caché de nivel más bajo).
Cuando la respuesta de la Web completa correspondiente está almacenada en la memoria caché, el sistema de cómputo del servidor 111 puede regresar la respuesta de la Web completa almacenada en la memoria caché de la memoria caché 112, sin requerir procesamiento adicional alguno como resultado de la solicitud de la Web. Por consiguiente, cuando una respuesta de la Web completa está almacenada en la memoria caché, la latencia asociada con el cumplimiento de una solicitud de la Web puede ser reducida de manera importante. Por otra parte, en respuesta a la recepción de una solicitud de la Web, el sistema de cómputo del servidor 111 puede determinar que por lo menos una porción de una respuesta de la Web correspondiente no está almacenada en la memoria caché actualmente. El método 400 incluye una acción para determinar que al menos una porción del contenido que va a ser incluido en una respuesta de la Web correspondiente no está almacenada actualmente en la memoria caché (acción 402). La acción 402 puede incluir un sistema de cómputo del servidor, el cual construye respuestas de la Web que incluyen el contenido de al menos una tabla de datos, determinando que al menos una porción del contenido que va a ser incluido en la respuesta de la Web, no está almacenado en la memoria caché actualmente en el sistema de cómputo del servidor. Por ejemplo, el sistema de cómputo del servidor 111 puede determinar que por lo menos una porción del contenido que va a ser incluido en una respuesta de la Web para ser entregado a un sistema de cómputo de cliente 101, no está almacenado actualmente en la memoria caché en el sistema de cómputo 111. Una solicitud de la Web recibida en el sistema de cómputo del servidor 111 puede ser transferida al módulo de construcción de respuestas 133. Por consiguiente, el módulo de construcción de respuestas 133 puede recuperar una página o un archivo de página apropiado (por ejemplo, un archivo ASP), y procesar el archivo de página para construir una respuesta de la Web correspondiente. Los escritos incluidos en el archivo de página pueden solicitar el contenido almacenado en localizaciones externas al sistema de cómputo del servidor 111 (por ejemplo, en las tablas 162 y/o 163). Cuando es procesada una solicitud de contenido externo, el módulo de construcción de respuesta 133 puede enviar instrucciones apropiadas al módulo de interfase de la memoria caché 132 para ocasionar que el módulo de interfase almacenado en la memoria caché 132 intente localizar el contenido externo en la memoria caché 112. Cuando el contenido externo es almacenado en la memoria caché 112, el módulo de interfase de la memoria caché 132 puede responder al módulo de construcción de respuestas 133 indicando que el contenido externo está almacenado en la memoria caché 112. Por otra parte, cuando el contenido externo no está almacenado en la memoria caché 112, el módulo de interfase de la memoria caché 132 puede responder al módulo de construcción de respuesta 133 indicando que el contenido externo no está almacenado en la memoria caché 112. Cuando se ha determinado que por lo menos una porción del contenido que va a ser incluido en una respuesta de la Web no está almacenado en la memoria caché, el sistema de cómputo del servidor 111 puede determinar además, si por lo menos una porción del contenido depende de cualquiera de las tablas de datos de la base de datos 141. Cuando por lo menos una porción del contenido es dependiente de una tabla de datos de la base de datos 141, el sistema de cómputo del servidor 111 puede determinar adicionalmente si la entrada de clave correspondiente para la tabla de datos está almacenada en la memoria caché 112. Cuando la clave de entrada correspondiente no está almacenada en la memoria caché 112, el sistema de cómputo del servidor 111 puede recuperar la información de versión apropiada para la tabla de datos (por ejemplo, de la tabla de notificación de cambios 142) y almacenar la entrada de clave correspondiente incluyendo la información de versión apropiada, en la memoria caché 112. El método 400 incluye una acción para acceder al contenido solicitado de una tabla de datos (acción 403). La acción 403 puede incluir un sistema de cómputo del servidor, el cual construye las respuestas de la Web incluido el contenido de al menos una tabla de datos, accediendo al contenido solicitado de la tabla de datos. Por ejemplo, un sistema de cómputo del servidor 111 puede acceder al contenido solicitado de la tabla de datos de la base de datos 141. En respuesta a una indicación de que el contenido solicitado no está almacenado en la memoria caché 112, el módulo de construcción de respuesta 133 puede enviar instrucciones apropiadas (por ejemplo, emitiendo una solicitud) al módulo de interfase de la base de datos 136 para ocasionar que el módulo de interfase de la base de datos 136 intente localizar el contenido solicitado en la base de datos 141. La base de datos 141 puede localizar el contenido solicitado (por ejemplo, en los registros 164, 166, 174 y/o 176), y regresar el contenido solicitado al módulo de interfase de la base de datos 136. Él módulo de interfase de la base de datos 136 puede transferir entonces el contenido solicitado al módulo de construcción de respuestas 133. El método 400 incluye una acción de construcción de una respuesta de la Web correspondiente, incluyendo la respuesta de la Web del contenido solicitado (acción 404). La acción 404 puede incluir un sistema de cómputo del servidor, el cual construye respuestas de la Web que incluyen el contenido de al menos una tabla de datos, construyendo la respuesta de la Web. Por ejemplo, el sistema de cómputo del servidor 111 puede incluir el contenido de la base de datos 141 en una respuesta de la Web que va a ser regresada a un sistema de cómputo del cliente 101. El módulo de construcción de respuesta 133 puede incluir el contenido solicitado (por ejemplo, de los registros 164, 166, 174 y/o 176) recibidos del módulo de interfase de la base de datos 136 para satisfacer una solicitud de la Web. Basado en el contenido solicitado (así como potencialmente en otros comandos HTML y XML y los escritos incluidos en un archivo de página apropiado) el módulo de construcción de respuesta 133 puede generar una respuesta de la Web apropiada . El método 400 incluye un paso funcional orientado a los resultados para almacenar el contenido solicitado, de modo que se pueda acceder de manera eficiente al contenido solicitado para satisfacer posteriormente solicitudes de la Web (paso 407). El paso 407 puede incluir cualesquiera acciones correspondientes para almacenar el contenido solicitado, de modo que se pueda acceder de manera eficiente al contenido solicitado para satisfacer solicitudes de la Web posteriores. Sin embargo, en el método de ejemplo de la figura 4, el paso 407 incluye una acción correspondiente de asignación de dependencia de la memoria caché de la base de datos a por lo menos una porción de la respuesta de la Web construida (acción 405). La acción 405 puede incluir un sistema de cómputo del servidor, el cual construye respuestas de la Web que incluyen el contenido de al menos una tabla de datos, asignando una dependencia de la memoria caché de la base de datos a por lo menos una porción de la respuesta de la Web construida. El paso 407 también incluye una acción correspondiente al almacenamiento en la memoria caché de por lo menos una porción de la respuesta de la Web construida (acción 406). La acción 406 puede incluir un sistema de cómputo del servidor, el cual construye respuestas de la Web que incluyen el contenido de por lo menos una tabla de datos, almacenando en la memoria caché por lo menos una porción de la respuesta de la Web construida. El sistema de cómputo del servidor puede almacenar en la memoria caché al menos una porción de la respuesta de la Web construida en una localización de la memoria caché en el sistema de cómputo del servidor. Por ejemplo, el módulo de interfase de la memoria caché 132 puede ocasionar que por lo menos una porción de la respuesta de la Web construida por el módulo de construcción de respuesta 133 sea almacenada en la memoria caché 112 antes de que sea entregada la respuesta de la Web construida al sistema de cómputo del cliente101. Cuando se almacena en la memoria caché una respuesta de la Web completa, las respuestas de la Web pueden ser impulsadas hacia abajo para que sean almacenadas en la memoria caché en los niveles inferiores de un sistema de cómputo del servidor, tales como en una memoria caché de respuesta de modo de funcionamiento Kernel. Por ejemplo, una respuesta de la Web completa podría ser impulsada a una localización de la memoria caché mantenida por un módulo del Servidor de Información de Internet ("US"). Por consiguiente, cuando es invalidada una respuesta de la Web, ésta es eliminada del nivel inferior de la memoria caché. Una dependencia de la memoria caché de la base de datos puede ser asignada a por lo menos una porción del contenido almacenado en la memoria caché como resultado de los comandos ejecutados durante la construcción de la respuesta de la Web. En algunas modalidades, se asigna una dependencia de la base de datos de la memoria caché a una porción del contenido en una respuesta de la Web. Las instrucciones del primer ejemplo siguiente pueden ser incluidas en un archivo de página para ocasionar que una porción del contenido de una respuesta de la Web sea asignado a una dependencia de la memoria caché de la base de datos. 1. <HTML> 2. <Script> 3. Sq 1 CacheDependency c; 4. c - new Sq1 CachéDependency(pubs, producís); 5. ProductCollection p = getproducts (); 6. Cache. lnsert("Pinfo", p,c); 7. </Script> 8. </HT L> La línea 3 de las primeras instrucciones de ejemplo crea una variable "c" de Sq1 CacheDepebndency del tipo de datos. La Sq 1 CacheDependency puede ser un tipo de datos que ha sido previamente establecido para representar dependencias de la memoria caché de la base de datos. La línea 4 de las primeras instrucciones de ejemplo asigna la variable c para representar una dependencia sobre la tabla "products" contenida en la base de datos "pubs". Esto podría representar, por ejemplo, una dependencia sobre la tabla 162 contenida en la base de datos 141. La línea 5 de las primeras instrucciones de ejemplo crea una variable "p" de la "ProductCollection" del tipo de datos. La ProductCollection puede ser un tipo de datos que ha sido previamente establecido para representar listas de productos recuperados de una base de datos de productos. La función "getproducts()" es ejecutable en la linea 5 para regresar una lista de productos (por ejemplo, de la tabla 162 y/o 163) y que están almacenadas en la variable p. La línea 6 de las primeras entradas de ejemplo crea una entrada a la memoria caché (por ejemplo, en la memoria caché 112). La entrada a la memoria caché es creada con una clave de "Pinfo", la cual puede ser utilizada para una referencia posterior a la entrada en la memoria caché. La entrada a la memoria caché es creada para almacenar la lista de productos representados por la variable p (por ejemplo, como un contenido de respuesta 122) y la entrada a la memoria caché depende de la tabla de productos en la base de datos "pubs" y representa la variable c (por ejemplo, como la ID de tabla 123). Las primeras instrucciones de ejemplo pueden ser particularmente provechosas cuando una pluralidad de respuestas de la Web van a incluir la misma porción del contenido. Las siguientes instrucciones de ejemplo pueden ser incluidas en un archivo de página para recuperar una lista de productos almacenados en la memoria caché. ProductCollection p = cache("Pinfo"); Cuando es detectado que la tabla de productos de la base de datos "pubs" es alterada, la entrada a la memoria caché a la que se hizo referencia por la clave "Pinfo" es invalidada. En otras modalidades, una dependencia de la memoria caché de la base de datos es asignada a una respuesta de la Web completa. Las siguientes segundas instrucciones de ejemplo pueden ser incluidas en el archivo de página para ocasionar que una respuesta de la Web completa sea asignada a una dependencia de la memoria caché de la base de datos: 1. <% Output Cache Sq1 TableDepend = "pubs:products"%> 2. <HTML> 3. <Script> 4. 5. </Script> 6. </HTML> La línea 1 de las segundas instrucciones de ejemplo es una instrucción para ocasionar que la respuesta de la Web completa resultante del archivo de página sea dependiente de la tabla "products" contenida en la base de datos "pubs". Se puede crear una entrada a la memoria caché para guardar en la memoria caché la respuesta de la Web completa (por ejemplo, como un contenido de respuesta 127) que es el resultado del archivo de página. En la línea 4 una elipsis indica que otras instrucciones del escrito pueden ser ejecutadas, tales como por ejemplo, para acceder a la tabla de productos en la base de datos "pubs", cuando el archivo de pág i na es procesado . Las segundas i nstrucciones de ejem plo pueden ser particularmente ventajosas cuando una pl ural idad de clientes solicita la misma respuesta de la Web. Puede ser que la dependencia de la memoria caché de la base de datos sea util izada en combinación con una o más de otras dependencias en la memoria caché, tales como por ejemplo, un tiempo, archivo, clave , y/o dependencia de la memoria caché de servicios Web o todavía una dependencia de la memoria caché de otra base de datos. Por ejemplo, la siguiente instrucción de ejem plo puede ser inclu ida en el archivo de pági na para ocasionar que sea asignada una respuesta de la Web completa tanto a la dependencia de la memoria caché de la base de datos como a una dependencia de tiempo: <%Output Cache Duration = 600s Sq1 TableDepend = "pu bs: customers"%> La instrucción de ejemplo ocasionaría que la respuesta de la Web correspond iente permaneciera almacenada en la memoria caché d urante 600 segu ndos desde el momento en que la respuesta de la Web correspondiente fue creada o hasta que la tabla "customers" en la base de datos "pu bs" fuera alterada. En alg unas modalidades, una o más entradas en la memoria caché son entradas en la memoria caché depend ientes de claves q ue dependen de (por ejem plo , están enlazadas a ) una entrada de la memoria caché dependiente de la base de datos (resultando por lo tanto , u na dependencia de clave). Por consig uiente, la invalidación de la entrada de la memoria caché dependiente de la base de datos ocasiona también que sean invalidadas cada una de las entradas en la memoria caché dependientes de la clave. Debido a que las entradas de la memoria caché dependientes de la clave son dependientes de otros datos en la memoria caché (por ejemplo, en la memoria del sistema), la invalidación de la entrada en la memoria caché dependiente de la clave es más eficiente que la invalidación de la entrada en la memoria caché dependiente de la base de datos (la cual puede requerir una solicitud de la base de datos, comunicación de red, formación de serie de datos, etc.). Por consiguiente, para aumentar la eficiencia de la invalidación de las entradas a la memoria caché, puede ser configurada una primera entrada en la memoria caché que tiene un contenido dependiente para que dependa de una segunda entrada en la memoria caché (a través de una dependencia de clave). Cuando es detectado un cambio en la tabla de datos correspondiente, la segunda entrada de la memoria caché invalida cualesquiera entradas en la memoria caché dependientes. En respuesta a un cambio detectado, la segunda entrada en la memoria caché también puede ser eliminada de la memoria caché, o puede ser actualizada la información de versión apropiada para la tabla de datos correspondiente. Por ejemplo, pudiera ser que la entrada en la memoria caché 121 y la entrada en la memoria caché 126 ambas dependan de la tabla 162 (por ejemplo, la ID de tabla 123 y la ID de tabla 128 corresponden ambas a la ID de tabla 152). Con el objeto de optimizar la eficiencia de determinación cuando el contenido de respuesta 122 y el contenido de respüesta 127 van a ser invalidados, se puede insertar una clave de entrada dependiente de la tabla 162 en la memoria caché 112 (por ejemplo, en la memoria del sistema). Las entradas en la memoria caché 121 y 126 pueden hacerse dependientes de la entrada de clave insertada. Cuando es alterada la tabla 162, una solicitud posterior de la base de datos 141 puede ejemplificar esa ID de cambio 153 que es actualizada e invalidar la entrada de clave insertada. La invalidación de la entrada de la clave insertada invalida automáticamente las entradas en la memoria caché 121 y 126, en vez de requerir que ambas la ID de cambio 124 y ID de cambio 129 sean comparadas directamente contra la ID de cambio 153. Por consiguiente, el número de solicitudes a la base de datos y comparaciones de versión pueden ser reducidas, y conservarse los recursos de la red, base de datos y procesamiento. El método 400 incluye una acción para entregar una respuesta de la Web construida al sistema de cómputo del cliente en respuesta a una solicitud de la Web (acción 408). La acción 408 puede incluir un sistema de cómputo del servidor, la cual construye respuestas de la Web que incluyen el contenido de al menos una tabla de datos, entregando la respuesta de la Web construida al sistema de cómputo del cliente. Por ejemplo, el sistema de cómputo del servidor 111 puede entregar una respuesta de la Web al sistema de cómputo del cliente 101 en respuesta a la solicitud de la Web del sistema de cómputo del cliente 101. La respuesta de la Web entregada puede ser una respuesta de la Web construida por el módulo de construcción de respuesta 133. La figura 5 ilustra un ambiente operativo adecuado para los principios de la presente invención. La figura 5 y la siguiente explicación pretenden proporcionar una descripción general breve de un sistema de cómputo adecuado en el cual puede ser implementada la presente invención. Aunque no se requiere, la presente invención será descrita en el contexto general de instrucciones ejecutables por computadora, tales como módulos del programa, siendo ejecutados por los sistemas de cómputo. Generalmente, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos y similares, los cuales realizan tareas particulares o implementan tipos de datos abstractos particulares. Las instrucciones ejecutables por computadora asociadas con las estructuras de datos y los módulos de programa representan los ejemplos de los medios de código de programa para ejecutar las acciones de los métodos aquí descritos. Haciendo referencia a la figura 5, un sistema de ejemplo para implementar la presente invención incluye, un aparato de computadora de uso general en la forma de un sistema de cómputo 520, que incluye una unidad de procesamiento 521, una memoria del sistema 522, y un bus del sistema 523 que conecta varios componentes del sistema, incluyendo la memoria del sistema 522 a la unidad de procesamiento 521. La unidad de procesamiento 521 puede ejecutar instrucciones ejecutables por computadora diseñadas para ¡mplementar las características del sistema de cómputo 520, incluyendo las características de la presente invención. El bus del sistema 523 puede ser cualquiera de varios tipos de estructuras de bus que incluyen un bus de memoria o un controlador de memoria, un bus periférico, y un bus local que utiliza cualquiera de una variedad de arquitecturas del bus. Él sistema de memoria incluye una memoria sólo de lectura ("ROM") 524, y una memoria de acceso aleatorio ("RAM") 525. Un sistema de entrada/salida básico ("BIOS") 526, que contiene las rutinas básicas que ayudan a transferir la información entre los elementos dentro de la computadora 520, tales como durante el arranque, puede ser almacenada en la memoria ROM 524. El sistema de cómputo 520 puede incluir también un disco duro magnético 527 para leer y escribir en un disco duro magnético 539, un disco duro magnético 528 para leer de o escribir a un disco magnético removible 529, y un disco opcional 530 para leer de o escribir en un disco óptico removible 531, tal como por ejemplo, un CD-ROM u otro medio óptico. El disco duro magnético 527, el disco duro magnético 528, y el disco duro óptico 530 son conectados al bus del sistema 523 por la interfase del disco duro 552, la interfase del disco duro magnético 533, y la interfase del disco óptico 534, respectivamente. Los drives y sus medios legibles por computadora asociados proporcionan el almacenamiento no volátil de las instrucciones ejecutables por computadora, estructuras de datos, módulos del programa, y otros datos para el sistema de cómputo 520. Aunque el ambiente de ejemplo aquí descrito emplea un disco duro magnético 539, un disco magnético removible 529 y un disco óptico removible 531, se pueden utilizar otros tipos de medios legibles por computadora para el almacenamiento de datos incluyendo, cassettes magnéticos, tarjetas de memoria instantánea, discos versátiles digitales, cartuchos Bernoulli, memorias RAM, memorias ROM, y similares. Los medios de código de programa comprenden uno o más módulos de programa que pueden ser almacenados en el disco duro 539, el disco magnético 529, o el disco óptico 531, la memoria ROM 524 o la memoria RAM 525, incluyendo un sistema operativo 535, uno o más programas de aplicación 536, otros módulos del programa 537, y los datos del programa 538. El usuario puede ingresar comandos e información en el sistema de cómputo 520 a través del teclado 540, el aparato señalador 542, u otros aparatos de entrada (no mostrados) tales como por ejemplo, un micrófono, una palanca, una almohadilla de juegos, un scanner o similares. Estos y otros aparatos de entrada pueden ser conectados a la unidad de procesamiento 521 a través de la interfase del puerto de serie 546 conectado al bus del sistema 523. Alternativamente, los aparatos de entrada pueden ser conectados por otras ¡ nterfases, tales como por ejem plo, un puerto paralelo , un puerto de juego, u n puerto de bus de serie u niversal ("U SB"), o un puerto de Cable de Fuego. Tam bién son conectados un mon itor 547 u otro aparato de pantal la al sistema del bus 523 por medio del adaptador de vídeo 548. El sistema de cómputo 520 también puede ser conectado a otros aparatos de sa lida periféricos (no mostrados), tales como por ejemplo, boci nas e impresoras . El sistema de cóm puto 520 se puede conectar a redes, tales como por ejemplo , una red de cóm puto a m plia de oficina, o amplia de empresa, una intranet y/o la I nternet. El sistema de cómputo 520 puede intercambiar los datos con fuentes externas, tales como por ejem plo, sistemas de cóm puto remotos , apl icaciones remotas y/o bases de datos remotas por dicha red . El sistema de cómputo 520 incl uye la interfase de red 553 , a través de la cual , el sistema de cómputo 520 recibe los datos de las fuentes externas y/o transmite datos a fuentes externas. Tal y como se ilustra en la figu ra 5, la i nterfase de red 553 facilita el intercambio de datos con un sistema de cómputo remoto 583 por medio del enlace 551 . El enlace 551 representa una porción de una red, un sistema de cómputo remoto 583 representa un nodo de la red. Por ejemplo , el sistema de cómputo remoto 583 puede mantener u na base de datos que proporciona el contenido para las respuestas de la Web construidas en el sistema de cómputo 520. Por otra parte, el sistema de cómputo 583 puede ser una computadora de servidor que sol icitó el contenido de una base de datos manten ida en el sistema de cómputo 520. De un modo similar, el sistema de cómputo 520 incluye una interfase de puerto de serie 546, a través de la cual el sistema de cóm puto 520 recibe datos de fuentes externas y/o transmite datos a fuentes externas. La interfase de puerto de serie 546 está conectada al módem 554 , a través del cual , el sistema de cómputo 520 recibe datos de y/o transmite datos a fuentes externas. Alternativa mente, el módem 554 puede ser un módem de Especificación de Fase de Servicio de Cable por Datos ("DOCSI S") o un módem de líneas de suscriptor d igital (" DSL") que está conectado al sistema de cómputo 520 a través de una interfase apropiada . Sin embargo, tal y como se ilustró en la figura 5, la interfase de puerto de serie 546 y el módem 554 facilitan el i ntercambio de datos con el sistema de cómputo remoto 593 por medio del en lace 552. El enlace 552 representa una porción de una red, y el sistema de cómputo remoto 593 representa u n nodo de la red. Por ejemplo , el sistema de cómputo remoto 593 puede ser un sistema de cóm puto del cliente que solicita respuestas de la Web del sistema de cómputo 520. Por otra parte , el sistema de cómputo 593 puede ser un sistema de cómputo del servidor que proporciona respuestas de la Web al sistema de cómputo 520. Au nque la fig ura 5 representa un ambiente operativo adecuado para la presente invención , los pri ncipios de la presente invención pueden ser empleados en cualq uier sistema que tenga la capacidad de im plementar, de ser necesario, con una mod ificación adecuada los principios de la presente invención. El ambiente mostrado en la figura 5, es solamente ilustrativo y de ningún modo representa ni siquiera una porción pequeña de una variedad amplia de ambientes en los cuales los principios de la presente invención pueden ser implementados. Los módulos de la presente invención, así como los datos asociados, pueden ser almacenados y se puede acceder a ellos desde cualquier medio legible por computadora asociado con un sistema de cómputo 520. Por ejemplo, se pueden incluir porciones de dichos módulos y porciones de datos de programa asociados en el sistema operativo 535, programas de aplicación 536, módulos del programa 537 y/o datos del programa 538, para el almacenamiento en la memoria del sistema 522. Cuando un aparato de almacenamiento masivo, tal como por ejemplo, un disco duro magnético 539 está conectado al sistema de cómputo 520, dichos módulos y los datos de programas asociados también pueden ser almacenados en el aparato dé memoria de almacenamiento masivo. En un ambiente que tiene redes, los módulos de programa y los datos asociados ilustrados en relación con el sistema de cómputo 520 o porciones de los mismos pueden ser almacenados en aparatos de almacenamiento de memoria remotos, tales como por ejemplo, sistemas de memoria y/o aparatos de almacenamiento masivos asociados con el sistema de cómputo remoto 583 y/o el sistema de cómputo remoto 593. La ejecución de dichos módulos puede ser realizada en un ambiente distribuido tal y como se describió anteriormente. La presente i nvención puede ser incorporada de otras formas específicas si n sal irse de su espíritu o características esenciales. Las modal idades descritas deberán ser consideradas en todos los aspectos solamente como il ustrativas y no como restrictivas . Por lo tanto, el alcance de la presente invención está indicado por las reivi nd icaciones adjuntas, en vez de estar i ndicado por la descripción anterior. Todos los cam bios que se encuentren dentro del sig nificado y rango de equivalencia de las reivindicaciones estarán comprendidos dentro de su alcance.

Claims (1)

  1. RE IVIN DI CACION ES 1 . En un sistema de cómputo que tiene acceso a una base de datos q ue tiene una o más tablas de datos , u n método para configura r la base de datos para proporcionar u na notificación de cam bio de tabla cuando el conten ido de u na de las tablas de datos es a lterado, comprend iendo, el método lo sigu iente: una acción de selección de la tabla de datos que va a ser monitoreada por sus cambios en el conten ido ; una acción para i nsertar u n reg istro que corresponde a la tabla de datos seleccionada dentro de la tabla de notificación de cambios , i ncluyendo el registro correspondiente a la información de versión para la tabla de datos seleccionada; una acción de asignación de un detonador a la tabla de datos seleccionada , ocasionado el detonador que la información de versión para la tabla de datos seleccionada sea actualizada en la tabla de notificación de cambios cuando el contenido de la tabla de datos seleccionada es alterado; una acción de actualización de la información de versión en la tabla de notificación de cambios en respuesta al contenido de la tabla de datos seleccionada que está siendo alterada ; y una acción de retorno de la información de versión actual izada a un sistema de cómputo del servidor solicitante de modo que la i nformación de versión actual izada pueda ser utilizada para determinar la validez del contenido en una entrada en la memoria caché en el sistema de cómputo del servidor. 2. El método tal y como se describe en la reivindicación 1, caracterizado porque la acción de selección de una tabla de datos que va a ser monitoreada por cambios en el contenido comprende una acción de recepción de una entrada del usuario que selecciona una tabla de datos que va a ser monitoreada por sus cambios en el contenido. 3. El método tal y como se describe en la reivindicación 1, caracterizado porque la acción de selección de una tabla de datos que va a ser monitoreada por cambios en el contenido comprende una acción de seleccionar automáticamente en el sistema de cómputo una tabla de datos en respuesta a una solicitud de la Web recibida. 4. El método tal y como se describe en la reivindicación 1, caracterizado porque la acción de inserción de un registro que corresponde a la tabla de datos seleccionada en la tabla de notificación de cambios comprende una acción de inserción de registro en respuesta a una entrada del usuario. 5. El método tal y como se describe en la reivindicación 1, caracterizado porque la acción de inserción de un registro que corresponde a la tabla de datos seleccionada en la tabla de notificación de cambios comprende una acción de inserción del registro automático en el sistema de cómputo en respuesta a una solicitud de la Web. 6. El método tal y como se describe en la reivindicación 1, caracterizado porq ue la acción de inserción de un registro que corresponde la ta bla de datos seleccionada en la tabla de notificación de cambios comprende una acción de inserción del reg istro en u na tabla SQL. 7. El método tal y como se describe en la reivindicación 1 , ca racterizado porque la acción de asignación de un detonador a la tabla de datos seleccionada comprende u na acción de recepción de una entrada del usuario que i nstruye que sea asig nado un detonador a la tabla de datos seleccionada. 8. El método tal y como se describe en la reivindicación 1 , caracterizado porque la acción de asignación de u n detonador para la tabla de datos seleccionada comprende una acción de asignación automática del sistema de cómputo de u n detonador a la tabla de datos seleccionada en respuesta a la recepción de u na sol icitud de la Web por el contenido que se encuentra en la tabla seleccionada . 9. El método tal y como se describe en la reivindicación 1 , caracterizado porq ue la acción de asignación de un detonador para la tabla de datos seleccionada comprende una acción de asignación de un detonador que, cuando es ejecutado en respuesta al contenido de la tabla de datos seleccionada que está siendo alterada , actualizará u na I D de cambio correspondiente en la tabla de notificación de cam bios de la tabla. 1 0. El método tal y como se describe en la reivi nd icación 1 , caracterizado porque la acción de actualización de la información de versión en la tabla de notificación de cambios en respuesta al contenido en la tabla de datos seleccionada q ue está siendo alterada , com prende u na acción de ejecución del detonador. 1 1 . El método tal y como se describe en la reivindicación 1 , caracterizado porque la acción de retorno de la información de versión actualizada a un sistema de cómputo del servidor solicitante com prende una acción de retorno de una i nformación de versión actualizada a un sistema de cómputo del servidor solicitante que construye respuestas de la Web incluyendo el contenido de la ta bla de datos seleccionada. 12. En un sistema de cómputo del servidor q ue proporciona respuestas de la Web al sistema de cómputo del cl iente solicitante, incluyendo potencialmente las respuestas de la Web el contenido de u na o más tablas de datos de una base de datos , e incluyendo el sistema de cóm puto del servidor u na localización de memoria caché que al macena una porción del conten ido almacenado en la memoria caché recibido anteriormente de la tabla de datos y la i nformación de versión almacenado en la memoria caché q ue corresponde al contenido almacenado en la memoria caché, un método para invalidar la porción del conten ido almacenado en la memoria caché, comprendiendo el método lo sig u iente: u na acción de sol icitud de una tabla de notificación de cambios para la información de versión correspondiente a una o más tablas de datos; una acción de recepción de una lista de por lo menos una tabla de datos q ue ha cambiado desde la última solicitud del sistema de cómputo del servidor a la tabla de datos de notificación de cambios, incluyendo la lista de por lo menos u na tabla de datos la información de versión actual para dicha al menos una tabla de datos; un acción de determinación de que el contenido almacenado en la memoria caché depende de al menos una tabla de datos; una acción de comparación de la información de versión actual con la información de versión almacenada en la memoria caché; y una acción de el im inación de la porción del conten ido almacenado en la memoria caché de la localización de la memoria caché basada en los resultados de la comparación . 1 3. El método tal y como se descri be en la reivindicación 1 2, caracterizado porque la acción de solicitar una tabla de notificación de cambios para la información de versión correspondiente a d icha una o más tablas de datos comprende una acción de envío de una sol icitud a la base de datos. 14. El método tal y como se describe en la reivindicación 1 3 , caracterizado porque la acción de envío de una sol icitud de la base de datos comprende una acción de envío de una solicitud que específica la información de versión almacenada en la memoria caché y selecciona solamente aquellas tablas y la i nformación de versión que ya no coinciden con la información almacenada en la memoria caché. 15. El método tal y como se describe en la reivindicación 14, el cual comprende además: una acción de recepción de un resultado vacío como resultado de que no existe información de versión de tabla que esté siendo alterada. 16. El método tal y como se describe en la reivindicación 14, caracterizado porque la acción de envío de una solicitud a la base de datos comprende una acción de envío de una solicitud que se bloquea en la base de datos hasta que se haya hecho un cambio a la información de versión de tabla solicitada. 17. El método tal y como se describe en la reivindicación 16, caracterizado porque la acción de envío de una solicitud que bloquea la base de datos hasta que se haya hecho un cambio a la información de versión de la tabla solicitada, comprende una acción de envío de una solicitud que bloquea una fila correspondiente en el sistema de cómputo del servidor hasta que se ha detectado un cambio en la información de versión de la tabla solicitada. 18. El método tal y como se describe en la reivindicación 16, caracterizado porque la acción de envío de una solicitud que bloquea la base de datos hasta que se haya hecho un cambio a la información de versión de la tabla solicitada comprende una acción de registro del retorno de llamada en el sistema de cómputo del servidor, estando configurado el retorno de llamada para efectuar la llamada cuando se detecta un cambio a la información de versión de la tabla solicitada. 19. El método tal y como se describe en la reivindicación 13, caracterizado porque la acción de envío de una solicitud a la base de datos comprende una acción de envío de una solicitud que solicita la información de versión para todas las tablas que están siendo monitoreadas por el sistema de cómputo del servidor. 20. El método tal y como se describe en la reivindicación 19, el cual comprende además: una acción de recepción de la información de versión solicitada para todas las tablas monitoreadas; y una acción del sistema de cómputo del servidor que compara la información de versión recibida con la información de versión mantenida en el sistema de cómputo del servidor. 21. El método tal y como se describe en la reivindicación 12, caracterizado porque la acción de solicitar una tabla de notificación de cambios para la información de versión correspondiente a dicha una o más tablas de datos comprende una acción de solicitar una tabla de notificación de cambios para las IDs de cambio correspondientes a dicha una o más tablas de datos. 22. El método tal y como se describe en la reivindicación 12, caracterizado porque la acción de recepción de una lista de al menos una tabla de datos que ha cambiado desde que fue solicitada por última vez por el sistema de cómputo del servidor la tabla de notificación de cambios comprende una acción de recepción de una lista de una o más estructuras de datos de información de versión. 23. El método tal y como se describe en la reivindicación 12, caracterizado porque la acción de determinación de que el contenido almacenado en la memoria caché depende de por lo menos una tabla de datos que comprende una acción de determinación de que la entrada en la memoria caché depende de una entrada de clave, siendo dependiente la entrada de clave en la tabla de datos de modo que la invalidación de la entrada de clave invalida automáticamente la entrada a la memoria caché. 24. El método tal y como se describe en la reivindicación 12, caracterizado porque la acción de comparación de la información de versión actual con la información de versión almacenada en la memoria caché comprende una acción de comparación de una ID de cambio recibida con una ID de cambio almacenada en la memoria caché. 25. El método tal y como se describe en la reivindicación 12, caracterizado porque la acción de eliminación de la porción del contenido almacenado en la memoria caché de la localización de la memoria caché basada en los resultados de la comparación comprende una acción de invalidación automática de una entrada dependiente en la memoria caché, en respuesta a la invalidación i de la entrada de clave. 26. En un sistema de cómputo del servidor que proporciona respuestas de la Web para solicitar a los sistemas de cómputo del cliente solicitante, incluyendo potencia lmente las respuestas de la Web el conten ido de una o más tablas de datos de una base de datos, e incluyendo el sistema de cómputo del servidor una localización de memoria caché que al macena u na porción del conten ido al macenado a la memoria caché anteriormente recibido de la tabla de datos, y la información de versión almacenada en la memoria caché q ue corresponde a los datos almacenados en la memoria caché , un método para tener acceso al contenido q ue va a ser presentado a un sistema de cóm puto del cliente solicitante, comprendiendo el método lo sigu iente: una acción de recepción de una solicitud de la Web de u n sistema de cómputo del cl iente, solicitando la respuesta de una solicitud de la Web de una respuesta de la Web q ue va a i ncluir el contenido solicitado que se encuentra en la tabla de datos, siendo general mente accesi ble la tabla de datos a otras apl icaciones que pueden alterar el contenido en d icha tabla de datos, incl uyendo la alteración del contenido solicitado ; una acción de determinación de que al menos una porción del contenido que va a ser incluido en la respuesta de la Web no está al macenado actual mente en la memoria caché en el sistema de cómputo del servidor; una acción para tener acceso al conten ido solicitado desde la tabla de datos; una acción de construcción de una respuesta de la Web, i ncluyendo la respuesta de la Web construida el conten ido sol icitado; u na acción de asignación de una dependencia de la memoria caché de la base de datos pa ra al menos u na porción de la respuesta de la Web construida basada en los comandos ejecutados d urante la construcción de la respuesta de la Web, i nd icando la dependencia de la memoria caché de la base de datos q ue dicha al menos una porción de la respuesta de la Web construida depende de la tabla de datos; y u na acción de almacena miento en la memoria caché de al menos una porción de la respuesta de la Web construida en una localización de la memoria caché en el sistema de cómputo del servidor; y una acción de entrega de la respuesta de la Web construida al sistema de cómputo del cliente en respuesta a la sol icitud de la Web . 27. El método tal y como se describe en la reivindicación 26 , caracterizado porque la acción de recepción de una solicitud de la Web del sistema de cómputo del cliente comprende una acción de recepción de u na sol icitud HTTP como un resu ltado de un buscador en el sistema del cómputo del cl iente que tiene acceso a una U RL correspondiente. 28. El método tal y como se describe en la reivi ndicación 26 , caracterizado porque la acción de asig nación de dependencia de la memoria caché de la base de datos a por lo menos u na porción de la respuesta de la Web construida basada en los comandos ejecutados d urante la construcción de la respuesta de la Web comprende una acción de ejecución de u na i nstrucción que ocasiona que la respuesta de la Web construida sea dependiente de la tabla de datos en la base de datos. 5 29. El método tal y como se describe en la reivindicación 26 , caracterizado porque la acción de asig nación de u na dependencia de la memoria caché de la base de datos a por lo menos una porción de la respuesta de la Web construida basada en los comandos ejecutados d urante la construcción de la 10 respuesta de la Web comprende u na acción de ejecución de instrucciones ejecutables por computadora de un escrito que ocasiona q ue el contenido de una tabla de datos dependa de la tabla de datos. 30. El método tal y como se describe en la reivindicación 15 26 , caracterizado porque la acción de asig nación de una dependencia de la memoria caché de la base de datos a por lo menos una porción de la respuesta de la Web construida basada en los comandos ejecutados d urante la con strucción de la respuesta de la Web comprende una acto de asig nación de una 20 entrada en la memoria caché para que dependa de una entrada de clave, dependiendo la entrada de la clave de la tabla de datos de modo que cuando la entrada de la clave es invalidada la entrada en la memoria caché es inva lidada automáticamente . 31 . El método tal y como se descri be en la reivi ndicación 25 26 , caracterizado porque la acción de almacenamiento en la memoria caché de al menos una porcióri de la respuesta de la Web construida en la localización de la memoria caché en el sistema de cómputo del servidor comprende una acción de almacenamiento en la memoria caché de la respuesta de la Web completa. 32. El método tal y como se describe en la reivindicación 31, caracterizado porque la acción de almacenamiento en la memoria caché de la respuesta de la Web completa comprende una acción de impulso de la respuesta de la Web completa a un segundo nivel más bajo en la localización de la memoria caché. 33. El método tal y como se describe en la reivindicación 32, el cual comprende además: una acción del sistema de cómputo del servidor que elimina la respuesta de la Web completa de la segunda localización de la capa más baja de la memoria caché cuando la respuesta de la Web es invalidada. 34. El método tal y como se describe en la reivindicación 32, caracterizado porque la acción de impulsar la respuesta de la Web completa a la segunda localización del nivel más bajo de la memoria caché comprende una acción de impulsar la respuesta de la Web completa a una memoria caché de respuesta del sistema optimizada. 35. En un sistema de cómputo del servidor que proporciona respuestas de la Web a sistemas de cómputo del cliente solicitante, incluyendo potencialmente las respuestas de la Web el contenido de una o más tabla de datos de una base- de datos, incluyendo el sistema de cómputo del servidor una localización de memoria caché que almacena una porción del contenido almacenado en la memoria caché anteriormente recibido de la tabla de datos y la información de versión almacenada en la memoria caché que corresponde a los datos almacenados en la memoria caché, un método para tener acceso al contenido que va a ser presentado a un sistema de cómputo del cliente solicitante, comprendiendo el método lo siguiente: una acción de recepción de una solicitud de la Web de un sistema de cómputo del cliente, solicitando la solicitud de la Web la entrega de una respuesta de la Web que va incluir el contenido solicitado que se encuentra en una tabla de datos, siendo generalmente accesible la tabla de datos a otras aplicaciones que pueden alterar el contenido de la tabla de datos, incluyendo la alteración del contenido solicitado; una acción de determinación de que al menos una porción del contenido que va a ser incluido en la respuesta de la Web no está almacenado actualmente en la memoria caché en el sistema de cómputo del servidor; una acción de acceso al contenido solicitado de la tabla de datos; una acción de construcción de la respuesta de la Web, incluyendo la respuesta de la Web construida en el contenido solicitado; y un paso de almacenamiento del contenido solicitado de modo que se pueda acceder de manera eficiente al contenido solicitado para satisfacer solicitudes de la Web posteriores; y una acción de entrega de la respuesta de la Web construida al sistema de cóm puto del cliente en respuesta a la sol icitud de la Web. 36. U n prod ucto de programa de cómputo para utilizarlo en u n sistema de cómputo que tiene acceso a una base de datos que tiene u na o más tablas de datos, para que el prod ucto del prog rama de cómputo implemente un método para config urar la base de datos para proporcionar una notificación de cambio de tabla cuando los datos en una de las tablas es alterado, comprendiendo el prod ucto del programa de cómputo uno o más medios leg ibles por computadora q ue tienen al macenados en los mismos i nstrucciones ejecutables por computadora que, cuando son ejecutadas por un procesador, ocasionan que el sistema de cómputo real ice lo siguiente: seleccionar u na tabla de datos q ue va a ser mon itoreada por cambios de datos; i nsertar u n reg istro que corresponde a la tabla de datos seleccionada en la tabla de notificación de cam bios, incl uyendo el registro correspondiente la información de versión para la tabla de datos seleccionada ; asignar u n detonador a la tabla de datos seleccionada, ocasionado el detonador q ue la información de versión para la tabla de datos seleccionada sea actualizada en la tabla de notificación de cambios cuando son alterados los datos de la tabla de datos seleccionada; la actualización de la información de versión en la tabla de notificación de cambios en respuesta a los datos que están siendo alterados de la tabla de datos seleccionada; y el envío de la información de versión actualizada a un sistema de cómputo del servidor solicitante de modo que la información de versión actualizada pueda ser utilizada para determinar la validez de los datos en una entrada en la memoria caché en el sistema de cómputo del servidor. 37. El producto de programa de cómputo tal y como se describe en la reivindicación 36, caracterizado porque el uno o más medios legibles por computadora son medios físicos. 38. El producto de programa de cómputo tal y como se describe en la reivindicación 36, caracterizado porque el uno o más medios legibles por computadoras incluyen memorias del sistema. 39. Un producto de programa de cómputo para utilizarlo en un sistema de cómputo del servidor que proporciona respuestas de la Web a sistemas de cómputo del cliente solicitantes, incluyendo potencialmente las respuestas de la Web el contenido de una o más tablas de datos de una base de datos, incluyendo el sistema de cómputo del servidor una localización de memoria caché que almacena una porción del contenido almacenado en la memoria caché anteriormente recibido de la tabla de datos y la información de versión almacenada en la memoria caché que corresponde al contenido almacenado en la memoria caché, para implementar el producto del programa de cómputo un método para invalidar la porción del contenido almacenado en la memoria caché, comprendiendo el producto del programa de cómputo uno o más medios legibles por computadora que tienen almacenados en los mismos instrucciones ejecutables por computadora que, cuando son ejecutadas por un procesador, ocasionan que el sistema de cómputo del servidor realice lo siguiente: solicitar una tabla de notificación de cambios para la información de versión correspondiente a la una o más tablas de datos; recibir una lista de al menos una tabla de datos que ha cambiado desde que fue solicitada por última vez al sistema de cómputo del servidor la tabla de notificación de cambios, incluyendo la lista de al menos una tabla de datos la información de versión actual para al menos una tabla de datos; determinar que el contenido almacenado en la memoria caché depende de por lo menos una tabla de datos; comparar la información de versión actual con la información de versión almacenada en la memoria caché; y eliminar la porción del contenido almacenado en la memoria caché de la localización de la memoria caché basada en los resultados de la comparación. 40. El producto de programa de cómputo tal y como se describe en la reivindicación 39, caracterizado porque dicho uno o más medios legibles por computadora son medios físicos. 41. El producto del programa de cómputo tal y como se describe en la reivindicación 39, caracterizado porque dicho uno o más medios legibles por computadora incluyen la memoria del sistema. 42. Un producto de programa de cómputo para utilizarlo en un sistema de cómputo del servidor que proporciona respuestas de la Web a sistemas de cómputo del cliente solicitantes, incluyendo potencialmente las respuestas de la Web el contenido de una o más tablas de datos de una base de datos, e incluyendo el sistema de cómputo del servidor una localización de memoria caché que almacena una porción del contenido almacenado en la memoria caché anteriormente recibido de una tabla de datos, y la información de versión almacenada en la memoria caché que corresponde a los datos almacenados en la memoria caché, para que el producto de programa de cómputo implemente un método para tener acceso al contenido que va a ser presentado a un sistema de cómputo del cliente solicitante, comprendiendo el producto de programa de cómputo uno o más medios legibles por computadora que tienen almacenados en los mismos instrucciones ejecutables por computadora que, cuando son ejecutados por un procesador, ocasionan que el sistema de cómputo del servidor realice lo siguiente: recibir una solicitud de la Web de un sistema de cómputo del cliente, solicitando la solicitud de la Web la entrega de una respuesta de la Web que va a incluir un contenido solicitado que se encuentra en una tabla de datos, siendo generalmente accesible la tabla de datos a otras aplicaciones que pueden alterar el contenido de la tabla de datos, incluyendo la alteración del contenido solicitado; determinar que al menos una porción del contenido que va a ser incluido en la respuesta de la Web no está almacenado actualmente en la memoria caché en el sistema de cómputo del servidor; acceder al contenido solicitado de la tabla de datos; construir la respuesta de la Web, incluyendo la respuesta de la Web construida el contenido solicitado; asignar una dependencia de la memoria caché de la base de datos a por lo menos una porción de la respuesta de la Web construida basada en comandos ejecutados durante la construcción de la respuesta de la Web, indicando la dependencia de la memoria caché de la base de datos que al menos una porción de la respuesta de la Web construida depende de la tabla de datos; el almacenamiento en la memoria caché de al menos una porción de la respuesta de la Web construida en una localización de la memoria caché en el sistema de cómputo del servidor antes de entregar la respuesta de la Web construida al sistema de cómputo del cliente; y entregar la respuesta de la Web construida al sistema de cóm puto del cliente en respuesta a la sol icitud de la Web. 43. El producto de prog rama de cómputo tal y como se describe en la reivindicación 42 , caracterizado porq ue dichos uno o más medios legibles por computadora son medios físicos. 44. El producto de prog rama de cóm puto tal y como se describe en la reivindicación 42 , caracterizado porq ue dichos uno o más medios legibles por computadora incluyen memorias del sistema. 45. Él producto de prog rama de cómputo tal y como se describe en la reivi ndicación 42, caracterizado porque las instrucciones ejecutables por computadora q ue , cuando son ejecutadas por un procesador, ocasionan q ue el sistema de cómputo del servidor asig ne una dependencia de la memoria caché de la base de datos a por lo menos una porción de la respuesta de la Web construida basada en los comandos ejecutados durante la construcción de la respuesta de la Web que comprenden instrucciones que, cuando son ejecutadas por un procesador ocasionan que el sistema de cóm puto del servidor asig ne u na dependencia de la memoria caché de la base de datos a la respuesta de la Web construida completa. 46. El prod ucto de programa de cómputo tal y como se descri be en la reivind icación 42, caracterizado porque las instrucciones ejecutables por computadora que, cuando son ejecutadas por un procesador, ocasionan que el sistema de cómputo del servidor asignen una dependencia de la memoria caché de la base de datos a por lo menos u na porción de la respuesta de la Web constru ida basada en los comandos ejecutados d urante la construcción de la respuesta de la Web comprende instrucciones ejecutables por computadora de un escrito que, cuando es ejecutado por un procesador, ocasiona q ue el sistema de cómputo del servidor asigne u na dependencia de la memoria caché de la base de datos al conten ido recuperado de u na tabla de datos. 47. Uno o más medios legibles por computadora que tienen almacenados en los mismos una estructu ra de datos q ue representa información de versiones para la tabla de datos, comprendiendo la estructu ra de datos: una campo de I D de la tabla q ue representa la I D de la tabla que puede ser utilizada para identificar una tabla de datos; y un campo de ID de cambio q ue representa una I D de cambio para la tabla de datos identificada por la I D de tabla representada en el campo de I D de tabla , siendo utilizada la I D de cam bio para determ inar si u na entrada a la memoria caché va a ser invalidada. 48. El u no o más medios legi bles por computadora que tienen almacenados en los mismos una estructura de datos que representa información de versiones para una ta bla de datos tal y como se descri be en la reivindicación 47 , caracterizado además porque la estructura de datos comprende: un campo de fecha que representa una fecha cuando la estructura de datos q ue representa la información de versión para la tabla de datos identificada por la I D de ta bla representada en el campo de I D de tabla fue insertado dentro de una tabla de notificación de cambios. 49. El uno o más med ios legibles por computadora que tienen almacenados en los mismos una estructu ra de datos que representa la información de versión para la tabla de datos tal y como se describen en la reivi ndicación 47, caracterizada además porq ue la estructura de datos comprende: un campo de contenido de pág i na que representa el contenido de página que depende de la tabla de datos identificada por la I D de tabla representada en el campo de I D de tabla.
MXPA04006267A 2003-06-25 2004-06-24 Registros para y recuperacion de informacion de cambio de tabla de la base de datos que puede ser usada para invalidar entradas en la memoria cache. MXPA04006267A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/603,532 US7624126B2 (en) 2003-06-25 2003-06-25 Registering for and retrieving database table change information that can be used to invalidate cache entries

Publications (1)

Publication Number Publication Date
MXPA04006267A true MXPA04006267A (es) 2005-03-31

Family

ID=33418662

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04006267A MXPA04006267A (es) 2003-06-25 2004-06-24 Registros para y recuperacion de informacion de cambio de tabla de la base de datos que puede ser usada para invalidar entradas en la memoria cache.

Country Status (12)

Country Link
US (1) US7624126B2 (es)
EP (2) EP1492027B1 (es)
JP (1) JP4578160B2 (es)
KR (1) KR20050001422A (es)
CN (2) CN101452484B (es)
AT (1) ATE444531T1 (es)
AU (1) AU2004202508A1 (es)
BR (1) BRPI0402506A (es)
CA (1) CA2471813A1 (es)
DE (1) DE602004023355D1 (es)
MX (1) MXPA04006267A (es)
RU (1) RU2380748C2 (es)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7624126B2 (en) * 2003-06-25 2009-11-24 Microsoft Corporation Registering for and retrieving database table change information that can be used to invalidate cache entries
US20070038889A1 (en) * 2005-08-11 2007-02-15 Wiggins Robert D Methods and systems to access process control log information associated with process control systems
US20070088700A1 (en) * 2005-10-13 2007-04-19 International Business Machines Corporation Sending keys that identify changes to clients
KR100789771B1 (ko) * 2005-12-08 2007-12-28 한국전자통신연구원 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법
US7856455B2 (en) * 2006-03-01 2010-12-21 International Business Machines Corporation System, method and program product for generating triggers for a relational database
KR100791628B1 (ko) * 2006-06-09 2008-01-04 고려대학교 산학협력단 이동망 시스템의 능동적 캐쉬 제어 방법, 그 기록 매체 및그 시스템
US10296629B2 (en) * 2006-10-20 2019-05-21 Oracle International Corporation Server supporting a consistent client-side cache
US9697253B2 (en) * 2006-10-20 2017-07-04 Oracle International Corporation Consistent client-side cache
EP2084628A4 (en) * 2006-11-20 2011-11-02 Yapta Inc DATA COLLECTION AND PRICE PURCHASE OF GOODS AND SERVICES IN ELECTRONIC TRADE
US8095618B2 (en) 2007-03-30 2012-01-10 Microsoft Corporation In-memory caching of shared customizable multi-tenant data
EP2009638A1 (en) 2007-06-28 2008-12-31 THOMSON Licensing Video copy prevention if the difference betweeen the fingerprints before and after its modification is above a threshold
US20090024916A1 (en) * 2007-07-20 2009-01-22 Burckart Erik J Seamless Asynchronous Updates of Dynamic Content
EP2631822A1 (en) * 2007-12-21 2013-08-28 Thomson Reuters Global Resources Systems, methods, and software for entity relationship resolution
US8170213B1 (en) * 2007-12-27 2012-05-01 Emc Corporation Methodology for coordinating centralized key management and encryption keys cached through proxied elements
US8239416B2 (en) 2008-05-30 2012-08-07 Armanta, Inc. System, method, and computer program product for modeling changes to large scale datasets
KR101023622B1 (ko) * 2008-12-16 2011-03-22 지에스네오텍(주) 적응적 고성능 프락시 캐시 서버 및 캐싱방법
US8380930B2 (en) * 2009-01-06 2013-02-19 Disney Enterprises, Inc. Refreshing cached data based on content identifier map
JP5395532B2 (ja) * 2009-06-22 2014-01-22 日本電信電話株式会社 クライアント装置、サーバ装置、コンピュータシステム、および、ファイルシステムアクセス方法、並びに、クライアントプログラムおよびサーバプログラム
US9292587B2 (en) * 2010-07-21 2016-03-22 Citrix System, Inc. Systems and methods for database notification interface to efficiently identify events and changed data
US8543554B1 (en) 2010-08-10 2013-09-24 ScalArc Inc. Method and system for transparent database query caching
US9275165B2 (en) * 2010-09-17 2016-03-01 Oracle International Corporation Method and apparatus for defining an application to allow polymorphic serialization
US8627448B2 (en) 2010-11-02 2014-01-07 Jose Renato Santos Selective invalidation of packet filtering results
US9319263B2 (en) * 2011-01-10 2016-04-19 Telefonaktiebolaget Lm Ericsson (Publ) Caching of announcements at the edge of a packet switched telecommunication network
CN102622381B (zh) * 2011-03-14 2013-11-13 小米科技有限责任公司 一种网页重排版的方法和系统
CN102741843B (zh) * 2011-03-22 2014-03-26 青岛海信传媒网络技术有限公司 从数据库中读取数据的方法及装置
US20130086323A1 (en) * 2011-09-30 2013-04-04 Oracle International Corporation Efficient cache management in a cluster
EP2751694A4 (en) * 2011-11-07 2015-03-04 Square Enix Holdings Co Ltd INFORMATION PROCESSING SYSTEM, CONTROL METHOD, PROGRAM, AND RECORDING MEDIUM
US8935480B1 (en) * 2012-01-09 2015-01-13 Amazon Technologies, Inc. Efficiently caching data at a client device
KR101436049B1 (ko) 2012-06-01 2014-09-01 에스케이텔레콤 주식회사 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
US10146885B1 (en) * 2012-12-10 2018-12-04 Emc Corporation Method and system for deciding on ordering of scripting language source code for dependency resolution
US8990205B2 (en) * 2013-01-28 2015-03-24 International Business Machines Corporation Data caveats for database tables
BR112015022115A2 (pt) * 2013-03-14 2017-07-18 Koninklijke Philips Nv dispositivo para obter informações de sinais vitais de um indivíduo, método para obter informações de sinais vitais de um indivíduo, aparelho de processamento para obter informações de sinais vitais de um indivíduo, método de processamento para obter informações de sinais vitais de um indivíduo, e, programa de computador
CN103246696A (zh) * 2013-03-21 2013-08-14 宁波公众信息产业有限公司 高并发数据库的访问方法及应用于多服务器系统的方法
CN103336789A (zh) * 2013-06-06 2013-10-02 华为技术有限公司 一种数据库系统的锁操作方法及设备
US9420056B2 (en) 2013-06-26 2016-08-16 International Business Machines Corporation Analytics caching based on users connected
US9648125B2 (en) * 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
US9641640B2 (en) 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
US9813515B2 (en) 2013-10-04 2017-11-07 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation with extension to clients
US20160267293A1 (en) * 2013-10-29 2016-09-15 Hewlett Packard Enterprise Development Lp Validating a Query Execution
US9954948B2 (en) * 2014-07-11 2018-04-24 Microsoft Technology Licensing, Llc Private content distribution network
CN104156233B (zh) * 2014-07-21 2016-05-18 小米科技有限责任公司 轻应用离线更新方法、装置及终端
US9672026B2 (en) 2014-07-21 2017-06-06 Xiaomi Inc. Light app offline updating method, device and terminal
US9753904B2 (en) * 2014-07-25 2017-09-05 Qualcomm Incorporated Fast rendering of websites containing dynamic content and stale content
CN104202360B (zh) * 2014-08-13 2015-12-30 小米科技有限责任公司 访问网页的方法、装置及路由器
US9654576B2 (en) * 2014-09-12 2017-05-16 Sap Se Database triggered push notification
GB201505067D0 (en) * 2015-03-25 2015-05-06 Advanced Risc Mach Ltd Rendering systems
WO2016183556A1 (en) * 2015-05-14 2016-11-17 Walleye Software, LLC Dynamic code loading
US10311229B1 (en) 2015-05-18 2019-06-04 Amazon Technologies, Inc. Mitigating timing side-channel attacks by obscuring alternatives in code
US10868665B1 (en) * 2015-05-18 2020-12-15 Amazon Technologies, Inc. Mitigating timing side-channel attacks by obscuring accesses to sensitive data
US10061852B1 (en) * 2015-05-19 2018-08-28 Amazon Technologies, Inc. Transparent proxy tunnel caching for database access
US10185744B2 (en) * 2015-06-23 2019-01-22 Sap Se Caching views on historical data
CN104965935B (zh) * 2015-08-06 2018-10-12 上海携程商务有限公司 网络监控日志的更新方法
US9876873B1 (en) 2015-10-21 2018-01-23 Perfect Sense, Inc. Caching techniques
US10353895B2 (en) * 2015-11-24 2019-07-16 Sap Se Atomic visibility switch for transactional cache invalidation
US9916465B1 (en) * 2015-12-29 2018-03-13 Palantir Technologies Inc. Systems and methods for automatic and customizable data minimization of electronic data stores
US9591047B1 (en) * 2016-04-11 2017-03-07 Level 3 Communications, Llc Invalidation in a content delivery network (CDN)
CN108280097B (zh) * 2017-01-06 2022-09-09 阿里云计算有限公司 一种数据库系统的故障处理方法和装置
US10866943B1 (en) 2017-08-24 2020-12-15 Deephaven Data Labs Llc Keyed row selection
US11567934B2 (en) 2018-04-20 2023-01-31 Oracle International Corporation Consistent client-side caching for fine grained invalidations
US11403366B2 (en) * 2018-09-30 2022-08-02 Hewlett Packard Enterprise Development Lp On-demand retrieval of information from databases
US10977244B2 (en) * 2018-11-06 2021-04-13 Snowflake Inc. Tracking intermediate changes in database data
US10922229B2 (en) 2019-03-11 2021-02-16 Microsoft Technology Licensing, Llc In-memory normalization of cached objects to reduce cache memory footprint
KR102027823B1 (ko) * 2019-04-24 2019-10-02 주식회사 리앙커뮤니케이션즈 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템
CN110413679B (zh) * 2019-07-31 2023-01-24 深圳前海微众银行股份有限公司 数据库信息处理方法、装置、设备及可读存储介质
EP4292254A1 (en) * 2021-02-13 2023-12-20 Oracle International Corporation Invalidating cached flow information in a cloud infrastructure
US20220382680A1 (en) * 2021-05-28 2022-12-01 Zoom Video Communications, Inc. Versioning Group Cache System
CN116016397B (zh) * 2023-03-28 2023-05-30 湖南毂梁微电子有限公司 一种报文传输缓冲区快速检索方法和电路

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5897634A (en) * 1997-05-09 1999-04-27 International Business Machines Corporation Optimized caching of SQL data in an object server system
US6256712B1 (en) * 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
JPH1165905A (ja) * 1997-08-22 1999-03-09 Nec Corp HomePage更新履歴情報の利用によるwwwサービス方式
JPH11149405A (ja) * 1997-11-14 1999-06-02 Hitachi Ltd Wwwキャッシュシステムおよびwwwデータの先読み方法
US6493720B1 (en) * 1998-01-26 2002-12-10 International Business Machines Corporation Method and system for synchronization of metadata in an information catalog
EP0959416A3 (en) 1998-05-08 2005-08-10 International Business Machines Corporation Using database query technology for message subscriptions in messaging systems
US6185608B1 (en) * 1998-06-12 2001-02-06 International Business Machines Corporation Caching dynamic web pages
JP2000089996A (ja) * 1998-09-16 2000-03-31 Nec Corp 情報処理装置およびデータベースシステム
US6466949B2 (en) * 1998-11-23 2002-10-15 Myway.Com Corporation Performing event notification in a database having a distributed web cluster
US6516327B1 (en) * 1998-12-24 2003-02-04 International Business Machines Corporation System and method for synchronizing data in multiple databases
US6487641B1 (en) * 1999-04-19 2002-11-26 Oracle Corporation Dynamic caches with miss tables
US6405191B1 (en) * 1999-07-21 2002-06-11 Oracle Corporation Content based publish-and-subscribe system integrated in a relational database system
US6757708B1 (en) * 2000-03-03 2004-06-29 International Business Machines Corporation Caching dynamic content
JP4735909B2 (ja) * 2000-04-28 2011-07-27 株式会社指月電機製作所 情報表示器
US8060389B2 (en) * 2000-06-07 2011-11-15 Apple Inc. System and method for anonymous location based services
US6591266B1 (en) * 2000-07-14 2003-07-08 Nec Corporation System and method for intelligent caching and refresh of dynamically generated and static web content
EP1178402A1 (en) * 2000-08-03 2002-02-06 Hsing Tech Enterprises Co., Ltd. Method and apparatus for actively updating program file(s) of a client computer
JP2002073401A (ja) * 2000-08-28 2002-03-12 Mitsubishi Electric Corp Wwwコンテンツ配信システム、プロキシサーバ装置、wwwサーバ装置、wwwコンテンツ配信方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6732237B1 (en) * 2000-08-29 2004-05-04 Oracle International Corporation Multi-tier caching system
US7139973B1 (en) * 2000-11-20 2006-11-21 Cisco Technology, Inc. Dynamic information object cache approach useful in a vocabulary retrieval system
US20020116582A1 (en) * 2000-12-18 2002-08-22 Copeland George P. Batching of invalidations and new values in a web cache with dynamic content
EP1227667A1 (en) * 2001-01-18 2002-07-31 Sony Service Centre (Europe) N.V. Method and device for providing downloaded objects to an application
JP2002312218A (ja) * 2001-04-10 2002-10-25 Ricoh Co Ltd レプリケーションデータベースシステム及びその制御プログラムが記録されたコンピュータ読取り可能な記録媒体
US6917922B1 (en) * 2001-07-06 2005-07-12 Amazon.Com, Inc. Contextual presentation of information about related orders during browsing of an electronic catalog
US7269648B1 (en) * 2001-09-27 2007-09-11 Emc Corporation Resolving multiple master node conflict in a DDB
US8290909B2 (en) * 2001-11-15 2012-10-16 International Business Machines Corporation Access manager for databases
US6970981B2 (en) * 2001-12-21 2005-11-29 Tibco Software, Inc. Method and apparatus to maintain consistency between an object store and a plurality of caches utilizing transactional updates to data caches
US6871268B2 (en) * 2002-03-07 2005-03-22 International Business Machines Corporation Methods and systems for distributed caching in presence of updates and in accordance with holding times
US7089228B2 (en) * 2002-04-18 2006-08-08 International Business Machines Corporation Computer apparatus and method for caching results of a database query
US6996584B2 (en) 2002-05-14 2006-02-07 Pervasive Software, Inc. System and method of maintaining functional client side data cache coherence
US7136885B2 (en) * 2002-12-20 2006-11-14 International Business Machines Corporation Free space management
US6950823B2 (en) * 2002-12-23 2005-09-27 International Business Machines Corporation Transparent edge-of-network data cache
US7765196B2 (en) * 2003-06-23 2010-07-27 Dell Products L.P. Method and apparatus for web cache using database triggers
US7624126B2 (en) * 2003-06-25 2009-11-24 Microsoft Corporation Registering for and retrieving database table change information that can be used to invalidate cache entries
US7318074B2 (en) * 2003-11-17 2008-01-08 International Business Machines Corporation System and method for achieving deferred invalidation consistency

Also Published As

Publication number Publication date
CA2471813A1 (en) 2004-12-25
US7624126B2 (en) 2009-11-24
JP4578160B2 (ja) 2010-11-10
AU2004202508A1 (en) 2005-01-20
JP2005018787A (ja) 2005-01-20
EP1492027A1 (en) 2004-12-29
BRPI0402506A (pt) 2005-05-31
DE602004023355D1 (de) 2009-11-12
EP1492027B1 (en) 2009-09-30
EP2096555A3 (en) 2009-12-02
CN1577327A (zh) 2005-02-09
EP2096555A2 (en) 2009-09-02
ATE444531T1 (de) 2009-10-15
US20040267824A1 (en) 2004-12-30
CN100461162C (zh) 2009-02-11
KR20050001422A (ko) 2005-01-06
CN101452484B (zh) 2011-10-05
RU2380748C2 (ru) 2010-01-27
CN101452484A (zh) 2009-06-10
RU2004119359A (ru) 2006-01-10

Similar Documents

Publication Publication Date Title
MXPA04006267A (es) Registros para y recuperacion de informacion de cambio de tabla de la base de datos que puede ser usada para invalidar entradas en la memoria cache.
US20200250102A1 (en) Extending usages of cached data objects beyond cache expiration periods
US6615235B1 (en) Method and apparatus for cache coordination for multiple address spaces
US6507891B1 (en) Method and apparatus for managing internal caches and external caches in a data processing system
US6457103B1 (en) Method and apparatus for caching content in a data processing system with fragment granularity
US6584548B1 (en) Method and apparatus for invalidating data in a cache
US6523032B1 (en) Servicing database requests using read-only database servers coupled to a master database server
US20090018998A1 (en) Performance Of An Enterprise Service Bus By Decomposing A Query Result From The Service Registry
US9081869B2 (en) System, method and computer program product for communicating data between a database and a cache
US8825700B2 (en) Paging hierarchical data
JP2004303211A (ja) データベース結果および導出オブジェクトをキャッシュし、無効にするためのシステムおよび方法
US7765196B2 (en) Method and apparatus for web cache using database triggers
US20100274795A1 (en) Method and system for implementing a composite database
JP2005502966A (ja) ネットワーク内で動的情報を送り届けるための方法およびシステム
EP2210177A1 (en) Statistical applications in oltp environment
US20120324480A1 (en) Efficient serialization of mutable objects
US8266392B2 (en) Cache access mechanism
US7805422B2 (en) Change notification query multiplexing
US8489644B2 (en) System and method for managing virtual tree pages
JP2000137689A (ja) 共用データキャッシュ処理方法及びその実施装置並びにその処理プログラムを記録した媒体
KR100532340B1 (ko) 페이지 구축기 툴을 사용하여 메세지를 발행하는 방법 및 시스템과 컴퓨터 판독가능한 기록 매체
Chen et al. Knowledge-based multimedia information retrieval in hyperspace

Legal Events

Date Code Title Description
FG Grant or registration