ESTIMACION DE DATOS DE CONTROL DE PRESENTACION DINAMICA INICIAL
ANTECEDENTES
La tecnología de cómputo ha contribuido enormemente al avance de la raza humana. Los sistemas de cómputo vienen en una gran variedad de formas físicas que incluyen computadoras de escritorio, computadoras portátiles, asistentes digitales personales, teléfonos, e incluso dispositivos que con vencionalmente no se pensaban como sistemas de cómputo como tales, por ejemplo, refrigeradores y automóviles. De esa forma, un sistema de cómputo puede ser cualquier dispositivo o sistema que tenga un procesador y una memoria de cualquier tipo. Frecuentemente los sistemas de cómputo están en red juntos para que los sistemas de cómputo puedan comunicarse. Una red puede ser tan simple como un enlace por cable o inalámbrico individual que acopla dos computadoras o tan complejo como Internet. Muchas de las aplicaciones muy comúnmente utilizadas confían en tecnologías de red. Tales aplicaciones incluyen, por ejemplo, correo electrónico, transmisión de mensajes instantáneos, navegación web, acceso de red remoto, pizarrón blanco electrónico, comunicación de teléfono de voz a través de IP, conferencia de video, sincronización remota, y muchos otros. La tecnología de navegación web, un sistema de cómputo (frecuentemente
denominado ligeramente como un "cliente") envía una solicitud para una página a otro sistema de cómputo (denominado ligeramente como un "servidor"). El servidor entonces responde con una representación de la página al cliente, en donde se presenta en la pantalla. Existen varias técnicas amplias para descargar una página tal como se puede presentar en el cliente. Una técnica involucra que el servidor genere instrucciones de presentación completas para la página, y entonces descargue las instrucciones de presentación al cliente. El cliente entonces analiza y ejecuta las instrucciones de presentación. Un ejemplo de instrucciones de presentación seria una página de Lenguaje de Marcación de HiperTexto (HTML). Una ventaja de esta técnica es que la página completa puede descargarse en un viaje redondo de solicitud-respuesta individual. Una desventaja de esta técnica es que si página va a cambiar de cualquier forma (por ejemplo, cuando el usuario selecciona una porción de la página), cuando el cliente envía una nueva solicitud al servidor, el servidor envía otro grupo completo de instrucciones de presentación al cliente. Esto requiere de recursos de procesamientos significativos en el servidor para formular instrucciones de presentación cada vez que la página se va a alterar de cualquier forma. Otra técnica es muy diferente y no requiere que la página completa pueda descargarse cada vez que la página va a cambiar. Cuando un servidor recibe una solicitud por una página, el servidor solo genera parte de las instrucciones de presentación que se
necesitarán para presentar la página. Por ejemplo, el servidor puede generar HTML representando el andamiaje para la página. El servidor descarga el HTML junto con controles que se ejecutan en el cliente. Los controles incluyen lógica que permite que el cliente realice una o más funciones. Con el fin de realizar su función(es), el control puede ¡nteractuar potencialmente con los controles laterales de cliente, o incluso con un servidor. Un tipo de control (también denominado aquí como un "control de presentación dinámica") presenta instrucciones de presentación tal como, por ejemplo, HTML. Los controles de presentación dinámica permiten que la lógica considere información de estado que se conoce por el cliente, pero no necesariamente el servidor, cuando presentan un control. Si la información de estado cambia, la forma presentada del control también puede cambiar sin volver a solicitar una página de un servidor. De esa forma, en muchos casos, el uso de controles de presentación dinámica insertados dentro del andamiaje de HTML permite mayor flexibilidad.
Desafortunadamente, algunas veces el cliente no siempre tiene toda la información necesaria por el control de presentación dinámica con el fin de presentar apropiadamente en la presentación. En ese caso, el control de presentación dinámica causa que el cliente solicite la información en una red, ya sea del servidor que originalmente descargó la página al cliente, o de un servidor diferente o grupo de servidor junto. De esa forma, aunque el uso de tecnología de control de presentación dinámica puede ser más flexible, también puede requerir un segundo viaje redondo de
solicitud-respuesta con lo cual introduce latencia adicional y requerimiento de anchura de banda de red cuando presenta una página.
BREVE DESCRIPCION DE LA INVENCION
Aunque no se requiere, las modalidades de la presente invención se refieren a descargar una página a un cliente. Cuando un servidor recibe una solicitud de la página del cliente, el servidor identifica una representación de la página que corresponde a la solicitud de red, la representación que incluye un control de presentación dinámica que puede utilizarse para presentar una porción de la página. En lugar de dejarlo al cliente para obtener acceso en una red a datos iniciales que se van utilizar por el control de presentación dinámica para presentar apropiadamente su porción de la página inicial, el servidor estima al menos algunos de estos datos iniciales. El servidor entonces transmite una respuesta de red que incluye todos o algunos datos iniciales. Cuando se ejecuta el control de presentación dinámica, el cliente simplemente puede utilizar los datos iniciales proporcionados en la respuesta de red para presentar la porción de la página, en lugar de tener que obtener acceso a los datos iniciales desde una fuente de red en un segundo viaje redondo. Esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se
describe posteriormente en la descripción detallada. Esta breve descripción no pretende identificar características clave o características esenciales del tema reclamado, ni pretende utilizarse como un auxiliar al determinar el alcance del tema reclamado.
BREVE DESCRIPCION DE LOS DIBUJOS
Los dibujos anexos se utilizan con el fin de describir más particularmente modalidades de la presente invención. Se debe entender que estos dibujos ilustran solamente modalidades típicas de la invención y por lo tanto no deben considerarse que limiten su alcance, las modalidades se describirán y explicarán con especificación adicional y detalle a través del uso de los dibujos anexos en donde: La Figura 1 ilustra un sistema de cómputo en el cual las modalidades de los principios de la presente invención pueden operar; La Figura 2 ilustra un flujo de solicitud-respuesta entre un cliente y servidor en el cual la respuesta incluye datos iniciales para un componente de presentación dinámica de acuerdo con modalidades de la presente invención; La Figura 3A ilustra un cuadro de flujo de un método para presentar inicialmente una página utilizando datos iniciales proporcionados por el servidor de acuerdo con modalidades de la presente invención;
La Figura 3B ilustra un cuadro de flujo de un método para un control de presentación dinámica para volver a presentar su porción asociada de la página; La Figura 4 ilustra esquemáticamente una representación de una página con una estructura de datos de fuente datos inicial asociada; y La Figura 5 ilustra un cuadro de flujo de un método para que el servidor acceda a los datos iniciales desde otra fuente de red utilizando la estructura de datos de fuente datos inicial.
DESCRIPCIÓN DETALLADA
La modalidad de la presente invención se extiende a facilitar la presentación de página web por un servidor al proporcionar datos iniciales para un control de presentación dinámica cuando descarga la página web inicial que contiene el control de presentación dinámica al cliente. De esa forma, en lugar de que el cliente además solicite datos iniciales para el control de presentación dinámica para presentar su porción de la página inicial, el control de presentación dinámica simplemente puede utilizar los datos iniciales proporcionados en la respuesta a la solicitud de página original para presentar su porción de la página web De esa forma, la página puede presentarse inicialmente al utilizar un viaje redondo de solicitud-respuesta individual que aún permite el uso de controles de presentación dinámica para actualizar la página web mientras
actualiza como se advirtió. Las modalidades de la presente invención pueden comprender una computadora de propósito especial o propósito general que incluye varios hardwares de computadora, como se discutió en mayor detalle posteriormente. La Figura 1 muestra un diagrama esquemático de un sistema de cómputo ilustrativo 100 que puede utilizarse para implementar características de la presente invención. El sistema de cómputo descrito solo es un ejemplo de tal sistema de cómputo adecuado y no pretende sugerir ninguna limitación al alcance de uso o funcionalidad de la invención. La invención tampoco debe interpretarse como teniendo ninguna dependencia o requerimiento que se relaciona con cualquiera o combinación de componentes ilustrados en la Figura 1. Los sistemas de cómputo ahora toman crecientemente una amplia variedad de formas. Los sistemas de cómputo pueden, por ejemplo, ser dispositivos portátiles, aparatos, computadoras portátiles, computadoras de escritorio, macrocomputadoras, sistemas de cómputo distribuidos, o incluso dispositivos que no se consideraron con vencionalmente un sistema de cómputo. En esta descripción y en las reivindicaciones, el término "sistema de cómputo" se define ampliamente como incluyendo cualquier dispositivo o sistema (o combinación de los mismos) que incluye al menos un procesador, y una memoria capaz de tener en ella instrucciones ejecutables por computadora que pueden ejecutarse por el procesador. La memoria puede tomar cualquier forma y puede
depender de la naturaleza y forma del sistema de cómputo. Un sistema de cómputo puede distribuirse en un ambiente de red y puede incluir múltiples sistemas de cómputo constituyentes. Haciendo referencia a la Figura 1. en su configuración muy básica, un sistema de cómputo 100 típicamente incluye al menos una unidad de procesamiento 102 y memoria 104. La memoria 104 puede ser memoria de sistema, que puede ser volátil, y no volátil, o alguna combinación de los dos. Un ejemplo de memoria volátil incluye Memoria de Acceso Aleatorio (RAM). Ejemplos de memoria no volátil incluye Memoria de Sólo de Lectura (ROM), memoria flash, o similares. El término "memoria" también puede utilizarse aquí para hacer referencia a almacenamiento masivo no volátil tal como medios de almacenamiento físicos. Tal almacenamiento puede ser removible o no removible, y puede incluir (pero no se limita a) tarjetas de PCMCIA, discos magnéticos y ópticos, cinta magnética, y similares. Como se utiliza aquí, el término "módulo" o "componente" puede referirse a objetos de software o rutinas que se ejecutan en el sistema de cómputo. Los diferentes componentes, módulos, máquinas, y servicios aquí descritos pueden implementarse como objetos o procedimientos que se ejecutan en el sistema de cómputo (por ejemplo, como secuencias separadas). Mientras los sistemas y métodos aquí descritos pueden implementarse en software, implementaciones en hardware, y en combinaciones de software y hardware también son posibles y se contemplan. En la descripción que sigue, las modalidades de la invención se
describen con referencia a actos que se realizan por uno o más sistemas de cómputo. Si tales actos implementan el software, uno o más procesadores del sistema de cómputo asociado que realiza el acto directo a la operación del sistema de cómputo en respuesta a tener instrucciones ejecutables por computadora ejecutadas. Un ejemplo de tal operación involucra la manipulación de datos. Las instrucciones ejecutables por computadora (y los datos manipulados) pueden almacenarse en la memoria 104 del sistema de cómputo 100. El sistema de cómputo 100 también puede contener canales de comunicación 108 que permiten al sistema de cómputo 100 comunicarse con otros sistemas de cómputo, por ejemplo, en la red 110. Los canales de comunicación 108 son ejemplos de medios de comunicación. Los medios de comunicación típicamente representan instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluye cualquier medio de entrega de información. A manera de ejemplo, y no de limitación, los medios de comunicaciones incluyen medios por cable, tal como redes por cable y conexiones por cable directas, y medios inalámbricos tal como medios acústicos, de radio, infrarrojos, y otros inalámbricos. El término medios legibles por computadora como se utiliza aquí incluye tanto medios de almacenamiento como medios de comunicación. Las modalidades dentro del alcance de la presente invención también incluyen medios legibles por computadora para transportar o
tener instrucciones ejecutables por computadora o estructuras de datos almacenadas en este. Tales medios legibles por computadora puede ser cualquier medio disponible que pueda accederse por una computadora de propósito general o de propósito especial. A manera de ejemplo, y no de limitación, tales medios legibles por computadora pueden comprender almacenamiento físico y/o medios de memoria tal como RAM, RAM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otro dispositivo de almacenamiento magnético, o cualquier otro medio que puede utilizarse para transportar o almacenar medios de código de programa deseados en la forma de instrucciones ejecutables por computadora o estructuras de datos y que pueden accederse por una computadora de propósito general o de propósito especial. Cuando la información se transfiere o proporciona en una red u otra conexión de comunicaciones (por cable duro, inalámbrico, o una combinación de cable duro o inalámbrico) a una computadora, la computadora apropiadamente observa la conexión como un medio legible por computadora. De esa forma, cualquier tal conexión se denomina apropiadamente un medio legible por computadora. También se deben incluir combinaciones de los anteriores dentro del alcance de medios legibles por computadora. Las instrucciones ejecutables por computadora comprenden, por ejemplo, instrucciones y datos que causan que una computadora de propósito general, computadora de propósito especial, o dispositivo de procesamiento de propósito especial realice cierta
función o grupo de funciones. Aunque el tema se describió en lenguaje específico a características estructurales y/o actos metodológicos, se debe entender que el tema definido en las reivindicaciones anexas no necesariamente se limita a las características o actos específicos descritos aquí. En lugar de eso, las características y actos específicos aquí descritos se describen como formas ilustrativas para ¡mplementar las reivindicaciones. La Figura 2 ilustra un flujo de lógica de comunicaciones entre un cliente 210 y un servidor 220 con el fin de facilitar la descarga de una página de acuerdo con los principios de la presente invención. La página, por ejemplo, puede ser una página, que puede incluir lenguaje de marcación basado en texto que representa instrucciones de presentación estáticas que el cliente puede analizar y ejecutar con el fin de presentar una porción estática de la página. Por ejemplo, las páginas web frecuentemente se formulan al utilizar Lenguaje de Marcación de HiperTexto (HTML) como su andamiaje básico, con componentes de conjunto de instrucciones (script) u otros componentes de lenguaje de marcación (tal como componentes de Lenguaje de Marcación Extensible (XML)). La página también puede incluir uno o más controles de presentación dinámica. Cuando se inicia, el control de presentación dinámica presenta dinámicamente una porción de la página que utiliza datos relevantes. Tales datos relevantes pueden estar presentes dentro de control de presentación dinámica proporcionado del servidor, puede estar presente en el cliente, o puede obtenerse
por el cliente en una red. Si los datos relevantes deben cambiar, el control de presentación dinámica puede volver a presentar la porción de la página sin que el cliente tenga que volver a solicitar una página web actualizada. De esa forma, los controles de presentación dinámicas son dinámicos y flexiblemente responden a datos cambiantes. En esta descripción y en las reivindicaciones, puede haber referencia ocasional a un sistema de cómputo de "cliente" y un sistema de cómputo de "servidor". En esta descripción y en las reivindicaciones, los términos "cliente" y "servidor" pretenden interpretarse ampliamente. El término "servidor" o "sistema de cómputo de servidor" de esa forma es cualquier sistema de cómputo que ofrece un servicio o cualquier clase de otro sistema de cómputo. El término "cliente" o "sistema de cómputo de cliente" es cualquier sistema de cómputo que consume cualquier clase de servicio ofrecido por otro sistema de cómputo. Aquellos expertos en la técnica reconocerán que las tecnologías en red pueden volverse más complejas que las topologías de cliente-servidor simples del pasado. De esa forma, un sistema de cómputo individual puede consumir y proporcionar servicios, y de esa forma puede ser un sistema de cómputo de cliente y de servidor. La Figura 3A ilustra un cuadro de un método 300A para descargar una página web en una forma que controla la presentación dinámica que se facilita sin requerir que los controles de presentación dinámica hagan su propia solicitud para datos
adicionales requeridos para presentar. De esa forma, la página web inicial puede presentarse al utilizar una combinación de solicitud-respuesta de viaje redondo individual, con lo cual mejora la eficiencia y desempeño en la presentación de la página inicial. Los actos realizados por el cliente 210 de la Figura 2 se enlistan en la mitad izquierda de la Figura 3A bajo el encabezado "Cliente". Los actos realizados por el servidor 220 de la Figura 2 se enlistan en la mitad derecha de la Figura 3A bajo el encabezado "Servidor". El método 300 puede realizarse al utilizar el flujo lógico 200 de la Figura 2. Por consiguiente, la Figura 2 y Figura 3A ahora se describirán con referencia frecuente una de otra. El cliente determina que una página va a presentarse (acto 311). Por ejemplo, un usuario puede interconectarse con un navegador web, y seleccionar un hipervínculo dentro de una página web actual, o tal vez seleccionar un Localizador de Recurso Uniforme (URL). Por ejemplo, un URL puede seleccionarse al escribir en un URL en el campo de dirección del navegador web. En respuesta, el cliente entonces envía una solicitud por la página al asociada (acto 312). Esta solicitud (también llamada aquí "solicitud de red") se representa en la Figura 2 como solicitud 211 , mientras su transmisión se representa al utilizar la fecha A. La solicitud puede conformarse a cualquier versión del Protocolo de Transporte de HiperTexto (HTTP) y puede ser, por ejemplo, una solicitud de OBTENER HTTP. Sin embargo, la solicitud puede ser cualquier solicitud de acuerdo con cualquier protocolo que permite
que la solicitud se comunique entre el cliente y el servidor. Al recibir la solicitud de red de la página del cliente (acto 331), el servidor identifica una representación de la página que corresponde a la solicitud de red (acto 332). Por ejemplo, el servidor puede acceder y/o formular instrucciones de presentación para el cliente para ejecutarse cuando presenta la página. La Figura 4 ilustra abstractamente una estructura de datos de representación de página 400 que puede estar presente, accederse por, o formularse por el servidor. La representación de página incluye instrucciones de presentación estáticas 401 , que puede ser, por ejemplo, un código de HTML que define el andamiaje básico de la página. La representación de página 400 también puede incluir opcionalmente un conjunto de instrucciones (script) 402, que puede ejecutarse por el cliente para presentar porciones dinámicas de la página. La representación de página 400 también puede incluir al menos un control de presentación dinámica 403, casos de los cuales permitirán que el cliente presente dinámicamente una porción correspondiente de la página que utiliza datos relevantes presentes en el control de presentación dinámica, en el cliente y/o en una red. La representación de página 400 puede incluir otros artículos así como representados por elipses verticales 404. En lugar de dejarlo al cliente para acceder en una red a cualquiera de los datos iniciales para el control de presentación dinámica para presentarse apropiadamente, el servidor estima datos iniciales que el control de presentación dinámica necesita presentar
¡nicialmente la porción de la página (acto 333). Esta estimación puede realizarse de cualquier forma que proporciona datos iniciales necesarios para presentar una porción asociada de la página inicial. En una modalidad, el autor de la página simplemente incluye una estructura de datos (por ejemplo, denominada aquí posteriormente como una "estructura de datos de fuente datos inicial" para claridad) que se asocia con la página en el servidor. Por ejemplo, la estructura de datos de fuente datos inicial 410 se ilustra con una asociación 411 con la representación de página 400 de la página deseada. La estructura de datos de fuente datos inicial 410 incluso puede incluirse inicialmente dentro de la representación de página 400. Los datos iniciales pueden incluirse dentro de la estructura de datos de fuente datos iniciales. En ese caso, estimar los datos iniciales simplemente involucrará acceder a la estructuras de datos de fuente datos inicial 410, y asegurar que los datos iniciales incluidos dentro de la estructura de datos de fuente de datos inicial se incluya dentro de la respuesta. Alternativamente, si los datos iniciales para el componente de presentación dinámica no están dentro de la estructura de datos de fuente de datos inicial 410, la estructura de datos de fuente de datos inicial 410 puede incluir instrucciones al servidor sobre cómo acceder a los datos iniciales. Para este último escenario, la Figura 5 ilustra un método 500 para estimar los datos iniciales cuando se requiere que el servidor accederá a los datos iniciales en una red. Específicamente, el servidor accede a la estructura de datos de
fuente datos inicial asociada con la representación de página (acto 501). En este caso, la estructura de datos de fuente datos inicial proporciona una fuente de red de la cual pueden obtenerse datos iniciales. El servidor entonces solicita los datos iniciales de la fuente de red especificada en la estructura de datos de fuente de datos inicial (acto 502), en donde se reciben datos iniciales de la fuente de red (acto 503). Por ejemplo, la estructura de datos de fuente datos inicial puede aparecer como sigue como se representó en el seudocódigo de XML en el servidor: <asp:Datoslniciales CorrerEn = " Servidor" FuenteURL = "MYSVC.ASMX" Fuente de Datos Asociada = "DS1"/> En esta estructura de datos, la estructura de datos se titula "Datos iniciales", y el atributo "Correr en" tiene un valor "Servidor" que indica que la estructura de datos se va a resolver en este servidor, en lugar de enviarse al cliente para ejecución. El elemento de Fuente URL especifica que los datos iniciales pueden encontrarse en la ubicación que corresponde al URL "MYSVC. ASMX". El elemento de Fuente de datos asociada especifica que los datos iniciales corresponden al elemento de fuente de datos que se incluye dentro de la página. De esa forma, cuando los datos iniciales se acceden, los datos iniciales pueden colocarse dentro o asociarse con el elemento de fuente. El cliente entonces puede conocer en donde encontrar los datos iniciales.
Regresando a la Figura 3, los datos iniciales de esa forma pueden estimarse (acto 323). En esta descripción y en las reivindicaciones, "estimación" de datos iniciales también puede incluir la identificación determinante de los datos iniciales. Por consiguiente, el uso del término "estimado" no debe interpretarse como requiriendo que exista cierta incertidumbre de si los datos iniciales son o no correctos. Sin embargo, los principios de la presente invención se extienden a situaciones en las cuales puede estar en duda la veracidad de los datos iniciales. Sin importar cómo se estimen los datos iniciales, el servidor entonces transmite una solicitud de red que corresponde a la solicitud al cliente (acto 334). En la Figura 2, la respuesta de red se representa por la respuesta 212, mientras su transmisión se representa por la fecha B. La respuesta de red 212 incluye al menos una versión transformada de la representación de la página y los datos iniciales estimados para su componente de presentación dinámica. Estos datos iniciales se representan esquemáticamente por los datos iniciales 213 que se incluyen dentro o se asocian con el control de presentación de datos dinámica 214 dentro de la respuesta de red 212 de la Figura 2. La representación de página puede ser, por ejemplo, una representación basada en texto (tal como una página web de HTML) que se transforma en un formato adecuado para transmisión. Por ejemplo, la página web puede comprimirse y/o codificase crípticamente, y colocarse en serie. Los datos iniciales pueden estimarse e incluirse en la respuesta de red
para más de uno de los controles de presentación dinámica incluidos en la respuesta de red. Una vez que el cliente recibe la respuesta de red (acto 313), el cliente entonces presenta la página web. Con el fin de hacer eso, el cliente ejecuta cualquiera de las instrucciones de presentación estática (ver 401 de Figura 4) y conjunto de instrucciones (ver 402 de Figura 4) incluido dentro de la representación de página proporcionada por el servidor. Además, el cliente comienza a ejecutar cada control de presentación dinámica (acto 314). Con el fin de ejecutar el control de presentación dinámica, el cliente primero inicia el control de presentación dinámica que utiliza información relevante presente en el cliente. El control de presentación dinámica puede ser un modo en el árbol de control de presentación. Por ejemplo, el control de presentación puede ser un control de "Vista de Lista", aunque los principios de la presente invención no se limitan al tipo de control. El control de presentación dinámica después determina si los datos iniciales adicionales se necesitan con el fin de presentar completamente su porción de la página web (bloque de decisión 315). Si no (No en bloque de decisión 315), la porción correspondiente de la página web puede presentarse al utilizar el control de presentación dinámica (acto 316). Si es así (Si en el bloque de decisión 315), el control de presentación dinámica entonces determina si la respuesta de red incluye un estimado de los datos iniciales (bloque de decisión 317). Si los datos iniciales están
presentes en la respuesta de red (Si en el bloque de decisión 317), después el control de presentación dinámica entonces determina si ahora tiene todos los datos iniciales necesarios para presentar su porción de la página inicial (de regreso al bloque de decisión 315) en vista de los datos iniciales adicionales encontrados en la respuesta de red. En una modalidad, los datos iniciales pudieron adquirirse de una estructura de datos de fuente datos dentro de la representación de página. En este caso, los datos iniciales pudieron accederse por el control de presentación dinámica que consulta el componente de fuente de datos para los datos iniciales, en donde el componente de fuente de datos proporciona los datos iniciales al componente de presentación . Por ejemplo, supongamos que el control de presentación dinámica fue un control de "Vista de Lista". El control de presentación dinámica puede aparecer como sigue: <Vista de Lista Fuente de datos asociadas = "D1" OTROS ATRIBUTOS Y ESTADO DE VISTA DE LISTA /> El control de Vista de Lista identifica que la fuente de datos a la cual va a acceder datos iniciales se identifica por " D 1 " . Lo siguiente representa un ejemplo de un control de fuente de datos correspondiente identificado como " D 1 " : <ID de Fuente datos = " D 1 " > <Datos>
DATOS INICIALES </Datos> </Fuente de Datos> Aquí los datos iniciales se incluyen dentro del elemento de Datos de control de Fuente de Datos. El control de fuente de datos incluye un atributo "ID" que identifica el componente de fuente de datos como " D 1 " . De esa forma, el componente de Vista de Lista accederá a datos iniciales dentro del control de fuente de datos. Los datos iniciales pueden ser datos estructurados (tal como pueden representarse al utilizar XML) o pueden ser datos no estructurados, mientras los datos pueden interpretarse por el control de presentación dinámica o alterarse por el cliente para ser interpretables por el control de presentación dinámica. En este caso (Si en el bloque de decisión 317 seguido por No en el bloque de decisión 315), los datos iniciales incluidos en la respuesta de red, y de esa forma el control de presentación dinámica fue capaz de presentar sin tener que realizar un segundo viaje redondo de solicitud-respuesta. Si hay datos iniciales para uno o más controles de presentación dinámica que normalmente requerirán uno o más viajes redondos de solicitud-respuesta adicionales, el procedimiento de presentación puede guardarse de esos viajes redondos adicionales, con lo cual mejora el desempeño al presentar la página web inicial. Los ahorros son especialmente evidentes cuando uno considera que puede existir un número de controles de presentación dinámica en una página web, y que cada uno de esos
controles de presentación dinámica puede requerir más de un viaje redondo adicional con el fin de obtener todo los datos requeridos para presentar su porción respectiva de la presentación. Por ejemplo, si la respuesta de red no incluyó los datos iniciales (No en el bloque de decisión 317), el cliente entonces solicitará los datos de otra fuente de red (acto 318). Por ejemplo, en la Figura 2, el cliente envía una solicitud 221 para datos como se representó por la transmisión C. Esa otra fuente de red puede ser el servidor 220 o puede ser algún otro servidor. Esta solicitud puede involucrar el control de presentación dinámica que consulta el control de fuente datos para los datos. En respuesta, el control de fuente datos puede solicitar los datos adicionales de una fuente de red que se identifica en el control de fuente datos. Por ejemplo, el control de fuente datos a su vez puede estructurarse como sigue: <Fuente de datos Servicio URL = "MYSBC.ASMX" ID = "D1"> Una vez que los datos se regresan al control de fuente datos en la red (ver transmisión D que incluye la segunda respuesta 222 que contiene los datos 223 en la Figura 2), el control de fuente de datos entonces regresará los datos al control de presentación dinámica. El control de presentación dinámica entonces puede utilizar los datos adquiridos de la otra fuente de red para presentar la porción de la página web que utiliza el componente de presentación (acto 316). Esto permite que la página web inicial se presente con una solicitud individual y respuesta en el caso en donde se regresan datos iniciales en respuesta a la solicitud de página web inicial. La
Figura 3B ilustra un procedimiento 300B que ocurrirá en el cliente si la página web se actualizará una vez que el control de presentación dinámica determina que su porción asociada de la página web se va a actualizar. Específicamente, al detectar que su porción de la página web se va actualizar (acto 320), el control de presentación dinámica accede a datos actualizados necesarios para presentar la página actualizada (acto 321). Esto puede involucrar el control de presentación dinámica que accede a los datos actualizados en una red. El control de presentación dinámica entonces utiliza los datos actualizados para actualizar su porción de la página de web (acto 322). Aunque se describieron métodos con respecto a las Figura 3A y 3B, los principios de la presente invención de extiende a producto de programa de computadora que comprende uno o más medios legibles por computadora que tienen en ellos una o más instrucciones ejecutables por computadora que, cuando se ejecutan por uno o más procesadores del servidor de sistema de cómputo, causan que el sistema de cómputo realice todas sus porciones de cualquiera o ambos de estos métodos. Por ejemplo, al hacer referencia a la Figura 1, la memoria 104 y los canales de comunicación 108 pueden representar ejemplos de tales medios legibles por computadora. La memoria 104 representa un ejemplo de medios legibles por computadora físicos en la forma de almacenamiento físico y/o medios de memoria. Los principios de la presente invención también se extienden a sistemas de cómputo por si mismos que se configuran a
través de hardware, software, o una combinación de hardware y software, para realizar todos o porciones de los métodos de la Figura 3A y/o Figura 3B. Por consiguiente, los principios de la presente invención permiten que un mecanismo utilice controles de presentación dinámica en páginas mientras evita cualquiera de las necesidades para los controles de presentación dinámica para utilizar ancho de banda de red adicional para adquirir información necesaria para que el control de presentación dinámica inicialmente presente. Esto mejora con ello la eficiencia en páginas web de presentación. La presente invención puede representarse en otras formas específicas sin apartarse de su espíritu o características esenciales. Las modalidades descritas se van a considerar en todos los aspectos solo como ilustrativas y no restrictivas. El alcance de la invención, por lo tanto, se indica por la reivindicaciones anexas en lugar de por la descripción anterior. Todos los cambios que vienen dentro del significado y alcance de equivalencia de las reivindicaciones se van abarcar dentro de su alcance.