ES2212768T3 - Metodo y sistema de desarrollo, despliegue y ejecucion de paginas web a traves de base de datos. - Google Patents

Metodo y sistema de desarrollo, despliegue y ejecucion de paginas web a traves de base de datos.

Info

Publication number
ES2212768T3
ES2212768T3 ES00905630T ES00905630T ES2212768T3 ES 2212768 T3 ES2212768 T3 ES 2212768T3 ES 00905630 T ES00905630 T ES 00905630T ES 00905630 T ES00905630 T ES 00905630T ES 2212768 T3 ES2212768 T3 ES 2212768T3
Authority
ES
Spain
Prior art keywords
web page
data
computer
page
code
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
ES00905630T
Other languages
English (en)
Inventor
Gillis E. Onyeabor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Application granted granted Critical
Publication of ES2212768T3 publication Critical patent/ES2212768T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Nitrogen And Oxygen Or Sulfur-Condensed Heterocyclic Ring Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Producto de programa de ordenador que comprende un código de página Web que cuando este es ejecutado por un ordenador cliente (170) produce que el ordenador cliente (170) despliegue una página Web (1410, 1420) que se corresponde con el código de la página Web, comprendiendo en ello el código de la página Web información que describe componentes (1412, 1414, 1422, 1424) incluidos en la página Web, y código dirigido por eventos asociado a uno o varios de los componentes, siendo este código dirigido por eventos ejecutado por el ordenador cliente que despliega la página Web, caracterizado porque el código dirigido por eventos está habilitado para demandar acceder a y manipular datos en una base de datos (914) accesible por un ordenador del lado del servidor (140).

Description

Método y sistema de desarrollo, despliegue y ejecución de páginas web a través de base de datos.
Campo del invento
El presente invento se refiere en general a un acceso a bases de datos a través de la Internet y más especialmente a un desarrollo, despliegue y ejecución de páginas web que conlleva el acceso a bases de datos y su manipulación a través de Internet.
Fondo del invento
La "World Wide Web", referida comúnmente como la "Web" se ha convertido en un valioso recurso para los negocios, la promoción e investigación científica y personal. Tanto individuos como empresas crean y publican páginas web que contienen todo tipo de información. Los archivos que definen tales páginas personales se guardan habitualmente en un ordenador "servidor" teniendo a éste acceso unos ordenadores "clientes" vía Internet o cualquier otra red interna. Una vez asociada al servidor, una página web puede ser accedida y visionada en un ordenador cliente utilizando navegadores que pueden obtenerse comercialmente tales como Netscape Navigator y Microsoft Explorer.
A medida que la Web se hacía popular, las páginas web se hacían cada vez más complejas y las empresas exigían a los desarrolladores de páginas web que les suministrasen éstas con más capacidad de despliegue de contenidos. Una de estas capacidades que se ha convertido en una aplicación web altamente apreciada es la capacidad de acceder remotamente y manipular remotamente datos. Por ejemplo, una compañía puede querer que su personal de ventas tenga acceso a las bases de datos de las compañías mientras ese personal de venta esté incluido en el campo. Tal como se describe abajo en detalle, los sistemas del anterior estado de la técnica están reñidos con las aplicaciones de bases de datos, especialmente en el área de la eficacia, seguridad, manejo de estado y data "briefcasing".
En el sentido en el que aquí se usa, una "base de datos" se refiere a un conjunto de información organizada en tablas y guardado en un servidor o accesible por un servidor a través de la red mediante un manejador de bases de datos. Una "tabla" se refiere a un colección de datos que organiza conjuntamente cosas similares. Por ejemplo, en una base de datos de una compañía, una tabla puede seguir la pista de información acerca de los empleados y otra tabla puede hacerle el seguimiento a las actividades de venta. Cada tabla contiene columnas y filas. En lo concerniente a los propósitos de la presente descripción, una columna define que tipo de información es recogida (por ejemplo, nombre, fecha de adquisición, salario) y una fila guarda esta información (es decir, que existe una fila para cada comercial). Nos referimos de aquí en adelante a fila de datos como un "registro", y a una columna como un "campo". Una "base de datos relacional" es una base de datos de múltiples tablas cuyos registros se conectan entre sí mediante unas claves de enlace.
En los primeros tiempos de la historia de la Web se desarrolló el Lenguaje de Marcación de Hipertexto (HyperText Markup Language), comúnmente conocido como "HTML". Este es un lenguaje que describe una página Web, y puede interpretarse mediante prácticamente todos los navegadores Web que puedan obtenerse en el mercado.
Hay una desventaja al usar un documento HTML para aplicaciones de acceso es que el propio acceso basado en documentos HTML es muy ineficiente. Si se está usando un documento HTML para desplegar información resultante de una búsqueda en una base de datos, entonces cada vez que el usuario demanda un conjunto distinto de datos, el servidor debe de valerse de un conjunto de instrucciones en texto (script) del tipo "Interfaz de Enlace Común" (Common Gateway Interface) o "CGI" que interactúa con el manejador de la base de datos para obtener los datos. Después el servidor debe mandar toda la información de la página al navegador. Incluso si solamente es distinta la información existente en u solo campo (es decir, que el campo contenga un conjunto diferente de datos). también se tiene que cargar todo el resto de información estática y no alterada. Esta limitación del HTML lleva a un acceso lento e ineficiente a la base de datos. Adicionalmente, los scripts CGI añaden una etapa de procesamiento entre el servidor y la base de datos, añadiendo con ello un nivel de ineficiencia al sistema.
Otro problema al usar documentos de HTML puro para aplicaciones de bases de datos se deriva de la naturaleza interactiva de tales aplicaciones. El acceso a una base de datos se considera una aplicación interactiva porque frecuentemente requiere un ordenador cliente para intercambiar muchos mensajes con el servidor. Esto es especialmente cierto cuando el usuario desea un acceso, vía una página web, a una gran cantidad de registros dentro de una tabla de base de datos.
HTML fue desarrollado primordialmente como un lenguaje que facilita el despliegue de texto, y no es demasiado apropiado para aplicaciones interactivas, inclusive bases de datos y aplicaciones de manipulación. Por ello, muchas páginas web, incluso páginas orientadas a bases de datos han añadido controles Java, JavaScript y ActiveX a sus documentos HTML para proporcionar mejores capacidades interactivas. Desgraciadamente, no obstante, el uso de controles Java, JavaScript y ActiveX acarrean serios problemas de seguridad respecto a la integridad de los ordenadores y redes de ordenadores.
Java es un lenguaje de programación que apropiado especialmente par el soporte del desarrollo de aplicaciones Internet. Java le facilita al desarrollador de aplicaciones el transporte de objetos por toda Internet, con ello haciendo posible el acceso a bases de datos. En el trascurso de una sesión interactiva con una página web, los scripts Java, JavaScript y ActiveX operan de un modo similar. Para ser breves, aquí solamente se discutirá Java, aunque los problemas de seguridad inherentes a Java también existen en JavaScript y ActiveX.
Un "applet" Java es un pequeño programa en Java específicamente diseñado para ser incorporado en un documento HTML. Más que incluir el código actual de applet dentro de una documento HTML, frecuentemente se descarga de algún otro lugar en la red un código de applet "empaquetado" siendo luego este ejecutado en la máquina cliente. Tal applet es denominado genéricamente "un ejecutable descargado". Para poder bajarse de la red un applet, un documento HTML incluiría entre otras cosas el localizador (Uniform Resource Locator) o "URL" que es el que identifica la ubicación en la Red del applet. Por ejemplo, un documento HTML podría llegar a llamar a ejecución un applet llamado "Reloj" almacenado en "http//java.sun.com/openstudio/index.html". Durante la operación de una página web que invoca este applet, descarga código compilado del applet "Reloj" desde "java.sun.com" a la máquina cliente. El navegador del cliente entonces ejecuta el applet en la máquina del cliente.
Un enorme problema de seguridad que encaran los usuarios de la página web son los riesgos de seguridad creados al permitir que corran en la máquina cliente programas ejecutables descargados. El applet de Java es el mayor culpable, aunque existen problemas similares con JavaScript y Active X. Los applets Java que pueden ser descargados desde cualquier lugar pueden incorporar código "malicioso". Tras la ejecución del applet descargado, este podría por ejemplo ejecutar en la máquina cliente una operación de archivos no autorizada.
Se han desarrollado varias soluciones para manejar la amenaza de applets Java maliciosos, pero ninguno aún ha podido ser calificado de totalmente eficaz o a toda prueba. Por ejemplo, Finjan Software ha desarrollado la herramienta "SurfinShield Xtra" la cuál cuando un navegador intenta descargar un controlador o applet, ésta realiza un barrido del contenido del mismo de un modo similar a un programa antivirus. Desafortunadamente, muchas páginas web incorporan numerosos applets, y la operación de barrido incrementa sustancialmente el tiempo necesario para descargar y desplegar la página. Además, cualquier herramienta de tipo antivirus es solamente tan buena como el nivel de ingenuidad de los creadores de código malicioso en el momento de la publicación o actualización de la herramienta antivirus. Por ello, es de pensar que un usuario tenga que actualizar regularmente su herramienta de tipo antivirus.
Microsoft recientemente ha sacado una solución similar parecida a un antivirus llamada "Dynamic HTML" o "DHTML", la cual pretende reemplazar el ActiveX. DHTML es más seguro que Active X porque es el navegador el que lo interpreta, el cual puede saltarse el código y así evitar violaciones del sistema. DHTML hace posible la introducción de efectos dinámicos del lado del ordenador cliente con menos requisitos en el servidor web. Como ilustrado en un artículo por Rick Dobson, titulado "Jump Starting your Site with Dynamic HTML", en Web Techniques, Dec. 1997 (vol. 2, nº 12, páginas 34-41), DHTML capacita a los desarrolladores para crear la impresión de contenido dinámico exponiendo nuevo texto que inicialmente no se muestra. Este nuevo texto es accedido y mostrado por código oculto que es ejecutado cuando se recibe la entrada de un usuario en particular (por ejemplo un clic del ratón sobre un componente de la página web). Este nuevo texto es almacenado en el ordenador cliente, y por ello no requiere que el navegador acceda al servidor para conseguir el nuevo contenido de página. Aunque esta aplicación de DHTML evita en efecto el uso de ejecutables descargados (por ejemplo applets Java o controles Active X), este está limitado en su tarea de solamente acceder y mostrar en pantalla texto empaquetado asociado al código oculto. Este no concierne a las complejidades asociadas con el acceso a datos dentro de una base de datos.
Igual que con el HTML, otras aplicaciones de DHTML requieren un servidor para crear dinámicamente una página Web cada vez que se requiera una actualización sobre la página. Por ejemplo si un usuario que está interactuando con una página generada por DHTML requiere una nueva serie de datos en un único campo dentro de la página, se llamaría a un script CGI en el servidor para regenerar la página entera, incluso si un solo trozo de datos ha cambiado, Por ello, el DHTML podría reducir algunos riesgos de seguridad, pero ello requiere que los desarrolladores creen unos scripts CGI en el servidor, y DHTML también tiene problemas de eficiencia cuando se usa en aplicaciones de bases de datos.
A parte de los riesgos de seguridad asociados con el uso de ejecutables descargados de la red dentro de un documento HTML, otro reto que plantea proporcionar acceso interactivo a bases de datos es que la naturaleza de las comunicaciones Web hace difícil el manejo de estado. El "manejo de estado" se refiere al mantenimiento de información que describe el estado en particular en el que un programa se encuentra. En una aplicación de bases de datos, el manejo del estado capacita al sistema para mantener un seguimiento de quién está accediendo a la base de datos, que registros ha accedido este usuario, y que registros serían los siguientes.
Para ilustrar el problema del manejo del estado relacionado con Internet, se describe un breve escenario de acceso a datos por Internet. Cuando la máquina cliente de un usuario demanda acceso, vía una página Web, a un conjunto de datos inicial accesible desde un servidor remoto, el navegador cliente establece una conexión con el servidor remoto y envía una petición, recibe los datos demandados (si están disponibles), y cierra la conexión. Cuando la máquina cliente pide el siguiente conjunto de datos, el navegador tiene que reestablecer la conexión con el servidor remoto y envía una nueva petición. Sin embargo, el servidor remoto ve la petición en un vacío y por ello no tiene ni idea de que el cliente había ya pedido registros previamente, que registros había pedido previamente, o qué registros serían los siguientes para ese cliente. El navegador tampoco mantiene un seguimiento del estado de la información. Por ello, los sistemas del anterior estado de la técnica no mantenían ninguna información acerca del manejo del estado o estos realizaban un manejo del estado de una manera ineficiente ubicando recursos para cada cliente, esperando que el cliente volviese. Este último tipo de intento de acceso consume grandes cantidades de recursos del servidor y también limita la cantidad de usuarios posibles.
En las situaciones de redes locales ("LAN") y de redes de largo alcance ("WAN") se mantiene una conexión persistente con el servidor, proporcionando con ello un fácil acceso y manejo del estado por el servidor. De este modo, no existe nunca duda laguna acerca de a que tabla de base de datos está conectado un usuario, a cual de los registros está accediendo actualmente el usuario, a cual de los registros acaba de acceder el usuario previamente, o que registro será el próximo. En la situación LAN/WAN es fácil proporcionar un manejo del estado para uno o varios usuarios simultáneos. No obstante una conexión persistente sería ineficiente para aplicaciones de Internet porque consumiría demasiado ancho de banda y otros recursos del sistema.
Debido a que los servidores del anterior estado de la técnica eran incapaces de mantener una información del estado, se han creado muchas aplicaciones para proporcionar algo parecido a un manejo del estado con el interés de facilitar al usuario poder hojear información dentro de una base de datos. Una de estas aplicaciones es "IntraBuilder" de Inprise Corporation (a.k.a. Borland International). IntraBuilder es una herramienta que se ejecuta en la máquina servidor. Cuando un nuevo usuario pide acceso a la base de datos, la herramienta IntraBuilder crea un "agente" en el servidor para dicho usuario. El agente es responsable de saber con que usuario este está asociado y de proporcionar un manejo del estado para dicho usuario. Una desventaja de este concepto de agente es que cientos o incluso miles de agentes podrían existir simultáneamente en un servidor que proporciona acceso a una o varias bases de datos especialmente populares. La presencia de una cantidad sustanciosa de agentes es una carga en el servidor y limita la capacidad del servidor de proporcionar acceso a la base de datos.
Otro problema que se encontró originalmente con la herramienta IntraBuilder era que el navegador presentaba dificultades al posicionar un componente de página activo (es decir, un elemento de una página Web que incluye datos) en el sitio adecuado en la página. El navegador calcularía independientemente la posición del componente. Mas frecuentemente de lo debido, la posición calculada por el navegador era diferente de la deseada.
Para aliviar este problema, Netscape modificó aparentemente su navegador haciéndole reconocer los mensajes que provienen del servidor cuando se publica la página Web. Esto mejoró la capacidad del navegador de Netscape de publicar la información en una posición relativamente próxima a la deseada. No obstante, la modificación de Netscape no ha resultado ser una solución óptima ya que solamente trabaja para una página Web con una cantidad relativamente pequeña de componentes (es decir, aproximadamente 20). Muchos desarrolladores de páginas Web incorporan numerosos componentes, en algunos casos cientos de ellos. Por ejemplo, una base de datos en particular puede llegar a tener sesenta o más campos que el diseñador querría desplegar. Así la página Web requeriría sesenta o más componentes. El navegador actual de Netscape estaría mal equipado para manejar ese tipo de página.
Otra herramienta para proveer acceso a una base de datos es "Empty Visions" de Emrys Solution, Inc. La herramienta Emrys Visions esta ubicada y se ejecuta en la máquina cliente. La herramienta Emrys Visions también busca solucionar el problema del manejo del estado inherente al protocolo de creación- transferencia-interrupción de datos forzando al navegador a mantener una conexión persistente con el servidor durante la sesión entera de búsqueda en la base de datos. Aunque esto hace posible el mantenimiento del manejo de estado, una principal desventaja de la solución propuesta por Emrys Visión es que esta obliga al cliente a consumir continuamente ancho de banda, tanto de lado del cliente como del lado del servidor. Como anteriormente expuesto, semejante conexión persistente no es deseable para una aplicación Internet debido a que esta consume sustancialmente mas anchura de banda de lo que sería necesario.
Otra desventaja de los sistemas del anterior estado de la técnica es que estos no proporcionan adecuadamente la capacidad de realizar un "briefcasing" de los datos. "Briefcasing" se refiere a la capacidad del usuario de descargar datos de un servidor a su máquina cliente, manipularlos estando fuera de conexión, reconectar con el servidor en otro momento, y enviarle sus modificaciones a la base de datos. La incapacidad de poder realizar "briefcasing" está relacionada con la incapacidad de mantener apropiadamente información acerca del estado. En los sistemas del anterior estado de la técnica, debido a la falta de capacidad de manejo del estado, el servidor no tenía idea alguna de como reconciliar los cambios del usuario con los registros existentes o con los cambios enviados por otros usuarios. Aunque una solución podría ser permitir al servidor o administrador de bases de datos bloquear los registros para evitar que otros usuarios puedan realizar modificaciones tras haber descargado un usuario estos registros, tal intento sería impracticable en una situación en la que muchos usuarios necesiten estar manipulando datos.
Una desventaja adicional de los sistemas es que los actuales navegadores permiten al usuario saltar de página en página, pero una sola ejecución del navegador no mostrará simultáneamente múltiples páginas Web. Por ello, si un usuario quiere ver simultáneamente varias páginas, el usuario debe lanzar otra ejecución del navegador Web. Esto consume recursos adicionales del ordenador cliente y complica la interacción del usuario con los navegadores. Adicionalmente, no existe ningún mecanismo para enlazar las páginas simultáneamente desplegadas. El usuario interactúa con cada página independientemente.
Lo que se necesita es una vía de acceso a datos a través de Internet que sea eficiente y proporcione un manejo del estado sin consumir innecesariamente ancho de banda u otros recursos del servidor. Lo que además se necesita es una herramienta de acceso a la base de datos que elimine riesgos de seguridad impuestos por código malicioso sin una reducción en la eficacia de descarga y despliegue en pantalla. Lo que además se necesita es una vía para proporcionar una capacidad de "briefcasing" basado en Internet para acceso a y modificación en bases de datos. Además se necesita un modo con el que los usuarios de páginas Web puedan visionar y/o interactuar simultáneamente con varias páginas, haciendo uso de las relaciones entre tablas de bases de datos sin tener que lanzar otra ejecución del navegador Web.
Resumen del invento
Las desventajas arriba descritas y otras derivadas del anterior estado de la técnica se solucionan tal como se define en las reivindicaciones.
Breve descripción de los dibujos
Fig. 1 ilustra un diagrama simplificado de hardware de un sistema según una realización preferente del presente invento.
Fig. 2 ilustra un despliegue en pantalla de un editor de página según una realización preferente del presente invento.
Fig. 3 ilustra un diagrama de flujo de un método para crear y desplegar una página Web según una realización preferente del presente invento.
Fig. 4 ilustra un despliegue en pantalla de un editor ejemplar de código según una realización preferente del presente invento.
Fig. 5 ilustra una diagrama de flujo de un método para añadir un componente de bases de datos a una página Web según una realización preferente del presente invento.
Fig. 6 ilustra un diagrama simplificado de bloques del hardware de un ordenador de desarrollo de página Web según una realización preferente del presente invento.
Fig. 7 ilustra un diagrama de flujo de un método para recibir, almacenar, y suministrar páginas Web según una realización preferente del presente invento.
Fig. 8 ilustra un diagrama de flujo de un método para controlar el acceso a una página Web o datos según una realización preferente del presente invento.
Fig. 9 ilustra un diagrama simplificado de bloques del hardware de un ordenador del lado del servidor según una realización preferente del presente invento.
Fig. 10 ilustra un diagrama de flujo de un método para pedir, recibir, y desplegar en pantalla una página Web y/o datos según una realización preferente del presente invento.
Fig. 11 ilustra un diagrama de flujo para enviar a publicación datos modificados a una base de datos remota según una realización preferente del presente invento.
Fig. 12 ilustra un diagrama de bloques simplificado del hardware de un ordenador del lado del cliente según una realización preferente del presente invento.
Fig. 13 ilustra un diagrama de flujo de un método para enlace multi-páginas según una realización preferente del presente invento
Fig. 14 ilustra un despliegue en pantalla de una página Web de ejemplo enlazada según una realización preferente del presente invento, y
Fig. 15 ilustra un diagrama de flujo de un método para hojear por los datos asociados a las páginas enlazadas según una realización preferente del presente invento.
Descripción de la realización preferente
En resumen, las realizaciones del presente invento y las reivindicaciones independientes proporcionan un documento de página Web que resulta en que el ordenador del lado cliente despliegue en pantalla una página web que se corresponde con el documento de página Web. El documento de página web incluye información que describe componentes incluidos en la página Web, y código gobernado por eventos asociado a uno o más de los componentes. El código gobernado por eventos es ejecutado por el ordenador de lado cliente, el cuál despliega en pantalla la página Web, y el código gobernado por eventos es capaz de pedir acceso a datos en una base de datos.
Las realizaciones también proporcionan un aparato para desarrollo de página Web que incluye un procesador que inicializa y ejecuta una herramienta de desarrollo de página Web. La herramienta de desarrollo de página Web inicializa y ejecuta una página Web, recibe entradas de usuario e incorpora código gobernado por eventos, tal como arriba descrito, al documento de página Web asociado. También se ha provisto un servidor que recibe mensajes de, y envía mensajes hacia un ordenador del lado cliente vía medios de comunicación. El mensaje recibido incluye una petición de información generada por un código gobernado por eventos, como arriba descrito, el cuál está incluido en un documento de página Web ejecutado por el ordenador del lado cliente. También se ha provisto un aparato cliente, que ejecuta un documento de página Web que incluye la ejecución de código gobernado por eventos, como arriba descrito, el cuál está asociado con uno o varios componentes de página web incluidos dentro del documento de página web.
Las realizaciones del presente invento también proporcionan un método para desarrollar páginas Web, que incluye la adición de código gobernado por eventos, tal como arriba descrito, a un documento de página. Además se ha provisto un método para proporcionar acceso a información almacenada, el cuál incluye recibir una petición desde un ordenador del lado cliente. La petición de información es generada en respuesta a la ejecución de código gobernado por eventos, tal como arriba descrito, por el ordenador del lado cliente. El método comprende el despliegue en pantalla de una página web asociada a un documento de página Web, en donde el documento de página Web incluye código gobernado por eventos, tal como arriba descrito, y la ejecución del código gobernado por eventos.
Finamente, unas realizaciones del presente invento proporcionan un sistema para desarrollo, despliegue, descarga y ejecución de páginas Web. El sistema incluye un ordenador para desarrollo de páginas Web, un ordenador del lado servidor, y un ordenador del lado cliente, todo como arriba se describe.
El método y aparato del presente invento proporciona un modo de acceso a datos por Internet en tanto que proporciona un manejo del estado eficiente y exacto sin consumir indebidamente anchura de banda u otros recursos del servidor. El método y aparato del presente invento además proporciona una manera de proveer una capacidad de "briefcasing" basada en Internet para acceso a y modificación en bases de datos. El método y aparato del presente invento además proporciona una herramienta de acceso a bases de datos que elimina riesgos de seguridad impuestos por código malicioso sin reducir la eficacia de descarga y despliegue en pantalla.
En una realización preferente, el método y aparato del presente invento incluye una herramienta de desarrollo de páginas web que permite que un desarrollador cree un documento de página Web que incorpore código ejecutable, eliminando con ello la necesidad de descargarse ejecutables ajenos durante el despliegue y manipulación de una página. Esto virtualmente elimina el riesgo de que código malicioso se descargue y se permita que en la máquina cliente se causen estragos.
Las páginas creadas según una realización preferente son particularmente aptas para manejar acceso a y manipulación de bases de datos, en parte porque la máquina cliente lleva a cabo las tareas de manejo de estado. esto reduce la carga sobre el servidor que significa mantener numerosos "agentes" y también elimina la necesidad de mantener una conexión persistente durante la sesión del usuario de acceso a la base de datos. Finalmente, permite al usuario fácilmente realizar un "briefcasing" de los datos, editarlos off-line, y reconciliar mas tarde los datos modificados con las entradas de base de datos.
En una realización preferente, el método y aparato del presente invento utilizan una versión modificada de un lenguaje de software orientado a objetos para proporcionar una curva de aprendizaje muy corta y una probabilidad de que la mayoría de las plataformas soporten este lenguaje. En una realización preferente, el lenguaje es Pascal orientado a objetos con algunas extensiones, aunque otros lenguajes también pueden usarse como por ejemplo C++.
Finalmente, una realización preferente de un método y aparato del presente invento proporciona encriptación y descifrado para aumentar la seguridad del sistema. En una realización preferente, tal encriptación y descifrado se realiza en páginas Web, peticiones de datos, y mensajes de datos.
Fig. 1 ilustra un diagrama simplificado de hardware de un sistema de acuerdo con la realización preferente del presente invento. El sistema 100 incluye un ordenador 110 para desarrollo de páginas Web, un ordenador del lado servidor 140, y un ordenador del lado cliente 170. Se muestra el ordenador de desarrollo de páginas Web 110 y el ordenador del lado cliente 170 conectados por Internet 102 al ordenador 140 del lado servidor. En unas realizaciones alternativas, el método y aparato del presente invento también pueden usarse en un sistema en donde cada uno o ambos ordenadores 110, 170 están conectados al ordenador 140 del lado servidor a través de LAN, WAN u otro tipo de red o enlace, pudiendo ser este ser electrónico, óptico, inalámbrico, o una combinación de estos.
El ordenador 110 de desarrollo de páginas Web y el ordenador 170 del lado cliente pueden ser la misma o distintas máquinas. Debido a que las funciones de desarrollo de páginas Web y las de cliente son diferentes, estas son mostradas para facilitar la ilustración como ordenadores separados. Además, solamente el ordenador 110 de desarrollo de páginas Web y un ordenador 170 del lado cliente se muestran conectados a un ordenado 140 del lado servidor. En algunos casos, sustancialmente más de uno de los ordenadores 110 y/o 170 pueden conectarse al ordenador 140 del lado servidor.
Seguidamente se da un breve explicación de la interacción entre ordenadores 110, 140, y 170. En primer lugar, según una realización preferente un ordenador de desarrollo de páginas web es usado por un desarrollador humano para crear una página Web. En una realización preferente, el ordenador 110 de desarrollo de páginas Web después cifra la página, aunque este paso de cifrado no es esencial. El ordenador 110 de desarrollo de páginas Web entonces envía la página Web al ordenador 140 del lado servidor a través de Internet u otro medio de enlace. Cuando el ordenador 170 del lado cliente realiza la petición de la página Web, el ordenador 140 del lado servidor manda la página Web al ordenador 170 del lado cliente para su uso. La página Web entonces puede realizar peticiones de datos al ordenador 140 del lado servidor. La página Web mantiene la información de estado durante la sesión de interacción con la base de datos, y posiblemente después.
En una realización alterna, las páginas Web creadas por el ordenador 110 pueden ser enviadas al servidor de algún otro modo antes de enviar la información por un enlace físico al servidor. Por ejemplo, una o más páginas Web podrían ser almacenadas en un disco o otros medios de almacenamiento, y las páginas Web guardadas en ese medio de almacenamiento podría ser cargadas en el ordenado del lado servidor 140.
La funcionalidad, el método, y el aparato más detallado asociado al ordenador 110 de desarrollo de páginas Web se describen en conjunción con las Figs.2 - 6.
La funcionalidad, el método, y el aparato más detallado asociado al ordenador 14 0 del lado servidor se describen en conjunción con las Figs.7 - 9. Finalmente, la funcionalidad, el método, y el aparato más detallado asociado al ordenador 170 del lado cliente se describen en conjunción con las Figs.10 - 15.
Para configurar una página Web, o editar una página previamente creada, el desarrollador de páginas Web, vía el ordenador 110 de desarrollo de páginas Web llama a un programa que proporciona las funciones abajo descritas. Tras ser llamado, el programa muestra en pantalla un "editor de página" que incluye varios campos que el usuario manipula para crear una página Web.
Fig. 2 ilustra una "pantalla editora de página" según una realización preferente del presente invento. La pantalla editora de página 200 muestra tres campos 210, 220, 230. El campo de configuración 220 de página muestra la página web que actualmente se está diseñando. Tras crear una nueva página, el campo de configuración de página añadirá componentes a la página en blanco para crear una nueva página. En una realización preferente, un diseñador podría editar simultáneamente varias páginas usando esta herramienta. En una realización preferente, al ser editadas múltiples páginas, la página actualmente activa se mostraría en el campo 220 del de configuración de página, y se ocultarían las otras páginas. En una realización alternativa estás páginas se mostrarían "en cascada" dentro del campo 200 de configuración de página.
Los campos 230 de propiedades de componentes comprenden una lista de propiedades que un componente en particular puede tener. En el ejemplo arriba mostrado, el desarrollador ha seleccionado un componente 222 de caja de edición, dentro del campo 200 de configuración de página. El componente seleccionado es usado para mostrar en pantalla el "Nombre" de un empleado. Las propiedades particulares de componente para tal componente de texto se listan en la columna izquierda del campo 230 de propiedades del componente, y el valor para cada propiedad de componente se lista en la columna de la derecha. Podrían incluir las propiedades de los componentes, por ejemplo, una información acerca de la posición del componente, información acerca del tamaño, color, características de texto, y otras propiedades relevantes. Originalmente, las propiedades de componente serían propiedades por defecto para cada caso particular de componente. Si así se desea, el desarrollador puede editar las entradas en la columna de la derecha del campo 230 de propiedades de componente para especificar diferentes valores de las propiedades de componente para el componente selecto.
El campo 210 de la barra de herramientas incluye iconos 212 que permiten que el desarrollador pueda llevar a cabo funciones tales como añadir un nuevo componente a la página, editar código fuente o propiedades para un componente, enlazar un componente con un componente en la misma página u otra página, y alinear componentes, entre otras cosas.
En una realización preferente, para añadir un componente a la página semejante icono 212 produce un menú desplegable de componentes que pueden añadirse a la página (por ejemplo mediante arrastre). Estos componentes seleccionables podrían incluir, por ejemplo un botón, una caja de edición para introducir texto, una etiqueta, una imagen, un icono audio, una caja de despliegue de datos, un menú, un panel, un hiperenlace, aunque también se pueden seleccionar más o menos cantidad de componentes. Se pueden añadir componentes tal como descrito en conjunción con la fig. 3, pasos 320-324.
En una realización preferente, el desarrollador también puede añadir a una página componentes tanto visibles como ocultos. Un componente visible puede ser, por ejemplo un botón o imagen con el cual o con la cual el usuario puede o no interactuar. Un componente oculto puede por ejemplo ser invisible al usuario, pero puede iniciar código ejecutable al ocurrir un determinado evento. Por ejemplo un componente oculto podría ser un componente que permite que la página incremente o reduzca su resolución de pantalla automáticamente, dependiendo de que tipo de resolución la página tenga que emplear para mostrarse en pantalla, Este tipo de código sería llamado a ejecutar al recibirse el documento de página Web en el ordenador del lado cliente. El código determinaría la resolución de pantalla del ordenador y, si esta no coincidiese con la resolución actual de la página, el código multiplicaría o dividiría el número de píxels y la resolución necesarias para mostrar la página Web a la resolución adecuada en la máquina cliente.
También en una realización preferente, un desarrollador podría incluir componentes desarrollados CUSTOM que actualmente aún no pueden obtenerse en el estado de la técnica. Por ejemplo, en una realización preferente, un componente novedoso que puede incluirse en una página es un componente de "generación de informe". Un componente de generación de informes podría aparecer en forma de un botón, por ejemplo, que el desarrollador agrega a la página web. Cuando un usuario hace clic en el componente de generación de informes, la página podría ejecutar un código que extrae datos e información de la página web, da formato a esos datos en una plantilla de informe, y crea un documento de informe que el usuario entonces podría guardar, visionar, y/o imprimir. En una realización preferente, una plantilla de informe sería definida por el desarrollador al desarrollar la página. En una realización alterna, se podría emplear una plantilla por defecto. En otra realización preferente, el usuario podría especificar el formato en el momento que el usuario pide el informe. El componente de "generación de informes" proporciona una ventaja distinta frente a los métodos actuales del estado de la técnica que pueden proporcionar un volcado de pantalla de una página Web, pero no pueden dar formato preciso a información en la página convirtiéndola en un informe bien formateado u otro tipo de documento. El método y aparato del presente invento permite que el usuario cree a partir de una página Web tales informes bien formateados u otro tipo de documentos.
En referencia otra vez a la Fig. 2, otro icono 212 podría causar que la herramienta llame a una pantalla de edición de código, lo que permite a un desarrollador asociar código a un componente en particular y especificar qué eventos producen que ese código se ejecute. Por ejemplo, cuando se "hace clic" en un componente de botón en particular, un desarrollador podría querer que cierto código se ejecute causando la petición del próximo registro de bases de datos. El desarrollador de páginas podría usar la pantalla del editor de código para especificar, para ese componente de botón, que tras ser "clicado" el evento se ejecutará código, lo que produciría que se realizase la petición del siguiente registro. Se discute en detalle la pantalla del editor de código, en conjunción con la Fig. 4, y el proceso de editar código se discute en detalle en conjunción con la Fig. 3, pasos 340 - 344. En una realización preferente, el editor de código utiliza un lenguaje orientado al objeto como el Pascal, preferentemente con algunas extensiones. En realizaciones alternas se puede usar por ejemplo C++.
Otro icono 212 podría permitir que los componentes se enlazasen dentro de la misma página o en diferentes. Cuando dos componentes se enlazan según una realización preferente, un usuario podría moverse por los datos dentro de un primer componente y el segundo componente automáticamente se actualizaría para mostrar la correspondiente información. El enlace de componentes se describe en detalle en conjunción con la Fig. 3, pasos 330 - 336.
Una vez que un desarrollador ha seleccionado y colocado todos los componentes deseados en la página, el desarrollador indica que ha terminado, y la herramienta de desarrollo de página web enlaza los componentes dentro de la página, compila la página y la guarda en memoria. La página Web puede editarse entonces volviendo a llamar a la herramienta de desarrollo, o la página Web podría ser desplegada tal como se discute en conjunción con la fig. 7.
La fig. 3 ilustra un diagrama de flujo de un método para crear y desplegar una página web según una realización preferente del presente invento. En una realización preferente, el método se lleva a cabo en un computador tal como el ordenador 110 de desarrollo de página web, Fig. 1.
El método comienza llevando a cabo el paso 301 de inicializar la herramienta de desarrollo de página. Como previamente se ha descrito, un desarrollador inicializa la herramienta de desarrollo cuando este quiere crear una nueva página, o editar una página previamente creada. Tras recibir el comando de inicialización, el ordenador 110 extrae de la memoria el código ejecutable de la herramienta e inicia la ejecución del código. En una realización preferente, la herramienta muestra en pantalla un editor de página (es decir pantalla 200, fig. 2) y le da al desarrollador la opción en paso 302 de o bien comenzar una nueva aplicación o una aplicación previamente creada. En una realización preferente, esta opción podría ofrecerse como un ítem seleccionable. En una realización alterna, la opción puede darse vía una caja de dialogo de la herramienta.
Todas las páginas Web se crean como parte de un concepto de aplicación, en donde cada concepto de aplicación es representado por un archivo de aplicación que puede agrupar dentro información acerca de uno o varios archivos de página web. Por ello, la información acerca de una página previamente creada existiría dentro de un archivo previamente creado. Si un desarrollador desea crear una nueva página, el desarrollador debe asociar la nueva página con el archivo previamente creado, o el desarrollador debe de arrancar un nuevo archivo.
Si, en el paso 302, el desarrollador indica que desea abrir una aplicación nueva, entonces en el paso 304 se arranca un nuevo archivo de aplicación. El nuevo archivo de aplicación entonces puede ser usado como vehículo para guardar información acerca de páginas Web. Tras el paso 304, la herramienta ofrece al desarrollador la opción de crear una nueva página o editar una página previamente editada en paso 305. En una realización preferente esta opción puede ofrecerse como ítem seleccionable de menú. En una realización alterna, esta opción puede darse por medio de un dialogo de la herramienta. En algunos casos, puede ser posible para un desarrollador abrir directamente el archivo de página Web, sin primero abrir su archivo de aplicación asociado.
Si, en el paso 305, el desarrollador toma la decisión de que desea crear una nueva página, la herramienta muestra en pantalla en el monitor en el paso 306 una página en blanco, un campo de barra de herramientas, y un campo de propiedades de componente. En el paso 308, la herramienta también crea un "documento de página" similar a un documento HTML, el cual la herramienta editará al editar el desarrollador la página. Inicialmente, el documento de página se estructurará como si describiera un página Web en blanco.
Si, en el paso 305, se toma la determinación de que el desarrollador desea editar un nueva página, la herramienta en paso 310 recupera de la memoria una copia del documento de página asociado, y la muestra en pantalla conjuntamente con el campo de barra de herramientas y campo de propiedades de componente en paso 312.
La herramienta entonces aguarda una entrada adicional del desarrollador en paso 314. Una vez que se ha recibido la entrada del desarrollador, se toma la determinación en paso 316 de qué tipo de entrada del desarrollador se ha recibido. En una realización preferente, son posibles los siguientes tipos de entrada del desarrollador: 1) se ha añadido un nuevo componente a la página; o 2) el desarrollador desea enlazar componentes; o 3) el desarrollador desea editar el código del componente; o 4) el desarrollador desea eliminar un componente; o 5) el desarrollador desea editar una propiedad del componente; o 6) el desarrollador desea guardar la página y salir del programa; o 7) el desarrollador desea salir del programa sin guardar la página; o 8) el desarrollador desea entrar en un nueva aplicación, o en una ya existente. Cada una de las entradas del desarrollar se describe a continuación mas abajo. Para facilitar la ilustración de, el diagrama de flujo incluye pasos y decisiones que solamente son relevantes para crear, compilar, y almacenar una página Web. No contempla todas las posibles entradas de un desarrollador. En realizaciones alternas, son posibles otro tipo de entradas del desarrollado, adicionales o diferentes.
1. Añadir un nuevo componente
Cuando la entrada del desarrollador indica, en el paso 316, que el desarrollador ha colocado un componente nuevo en la página (es decir, usando el menú desplegable de los iconos 212, Fig.2), en el paso 320 la herramienta coloca el componente seleccionado dentro de la página, y en el paso 322 recupera el código por defecto asociado a este componente. El código de componente es similar en funciones a un ejecutable descargable de la red (por ej, un applet de Java), excepto en que el código de componente eventualmente se compilará como parte de página Web según el presente invento, mas que ser accedido por Internet durante la ejecución como lo sería un archivo ejecutable descargado. La incorporación de código de componente en la página web elimina el riesgo de que para ese componente se descargue código malicioso y se ejecute.
El código por defecto es incorporado en el documento de página en el paso 324, incluyendo toda la información relevante respecto al tipo, posición, y otras propiedades del componente. En una realización preferente, la posición del componente se determina por la ubicación en donde el desarrollado a arrastrado y soltado el componente, o una posición especificada por desarrollador en el campo de propiedades de componente (Fig. 2, campo 230). En una realización preferente, la posición del componente podría ser una posición por defecto que el desarrollador podría mas tarde modificar vía el campo de propiedades de componente o usando el ratón.
Como se ha discutido previamente, podrían añadirsee a la página Web una cantidad de distintos tipos de componentes. Debido a que la adición de componentes de datos comprende varios detalles importantes, se discute en detalle la adición de componentes de datos en conjunción con la Fig. 5. Tras el paso 324, el método después vuelve al paso 314 para esperar una entrada adicional del desarrollador.
2. Componentes de enlace
Cuando dos componentes son enlazados según una realización preferente, un desarrollador podría hacer un barrido por los datos dentro de la primera página, y los datos mostrados en pantalla en una segunda página se actualizarían automáticamente para mostrar la correspondiente información. Al propósito de esta descripción los componentes han sido enlazados entre páginas, aunque estos también pueden enlazarse dentro de la misma página.
La capacidad de enlace de la herramienta de desarrollo de página Web es muy adecuada para enlazar componentes de datos. En unas realizaciones alternas, la capacidad de enlace podría usarse para enlazar otro tipo de componentes. En el área de datos, la capacidad de enlace podría usarse por ejemplo para enlazar uno o varios campos dentro de una tabla a un conjunto de campos diferente pero correspondiente dentro de otra tabla dentro de una base de datos relacional. Alternativamente, la capacidad de enlace podría usarse para enlazar campos dentro de la misma tabla.
Por ejemplo, un desarrollador podría desear que en una primera página se incluyan componentes de datos que especifiquen el DNI, la dirección, y el teléfono de un cliente, de una tabla de "información del cliente" de una base de datos relacional. El desarrollador también podría desear diseñar una segunda página que incluya un componente de datos que muestre una lista histórica de pedidos de clientes, habiéndose almacenado esta información en una tabla de "pedidos de clientes" de la misma o de otra base de datos relacional. Usando el método y el aparato del presente invento, el desarrollador podría enlazar el componente de DNI del cliente en la primera página con el componente de historial de pedidos en la segunda página. Después, cuando un usuario de las páginas primera y segunda repasa en pantalla los números de DNI de clientes en la primera página, la información de pedidos para cada cliente asociado aparecería automáticamente en la segunda página. Un ejemplo similar se describe más detalladamente en conjunción con las figs. 13 - 15.
Cuando el desarrollador indica en el paso 316, que el desarrollador desea enlazar dos componentes, el desarrollador identifica en el paso 330, qué componentes deben enlazarse. La identificación de los componentes enlazados podría llevarse a cabo mediante unos diálogos de la herramienta de desarrollo de páginas Web, o podría realizarla el desarrollador seleccionando los componentes que el desea enlazar, y después haciendo clic sobre un icono de "enlazar componentes" (es decir, icono 212, Fig. 2).
En una realización preferente, se le pide al desarrollador especificar una página "maestra" y una página de "detalles". En una realización alterna, la identidad de las páginas maestra o de detalles podría ser algo por defecto (es decir, el primer componente seleccionado podría definir la página maestra). Una página maestra es una página que muestra en pantalla la información "maestra" a la cuál está enlazada la información de los "detalles" en una página de "detalles". O bien una o ambas contienen código que formulará y enviará una petición de datos al servidor tanto para datos asociados a la página maestra como para datos asociados a la de "detalles". Empleando el ejemplo de arriba, si la pagina maestra fuese la página que tiene el componente de DNI del cliente (es decir, la información "master") y el número de DNI del cliente fuese enlazado a un campo de datos del historial de pedidos de una página de detalle (es decir la información de "detalle", entonces el código asociado a bien la página maestra o bien la página de detalle pediría durante la operación el próximo número de DNI del cliente y los datos de historial de pedidos cuando están abiertas tanto la página maestra como la página de detalles. Si la página maestra pidiese los datos, entonces tras recibir el próximo número de DNI del cliente y ese su historial de pedidos, el código de página maestra enviaría los datos del historial de pedidos a la página de detalles. Si la página de detalles pidiese los datos, entonces tras recibir el próximo número de DNI del cliente y ese su historial de pedidos, el código de la página de detalles "enviaría" el próximo número de DNI de cliente a la página maestra. En una realización alterna, ambas páginas podrían incluir código que por separado pediría los datos asociados a cada componente enlazado.
Después de haber identificado las páginas maestra y de detalles, se crea el código de enlace en el paso 334. Durante la operación, el código de enlace permite que una página formule una petición de datos que identifica los campos mostrados en esta página y que identifica los campos que se despliegan en otras páginas enlazadas. Adicionalmente, el código de enlace causa que se interpreten los datos recibidos, y que se envíen los datos de página enlazada a la página enlazada. El código de enlace también permite que una página reciba los datos de otra página, y muestre automáticamente los datos (por ejemplo, en el componente de información de pedidos).
En el paso 336, el código de enlace es añadido a los documentos de página para las páginas maestra y de detalles. El método vuelve después al paso 314 para esperar la entrada adicional del desarrollador.
3. Editar código fuente para componente
Cuando la entrada de desarrollador indica en el paso 316 que el desarrollador desea editar el código fuente para un componente seleccionado, la herramienta muestra en pantalla, en el paso 340, un editor de código en el cuál se incluye el código fuente actual para dicho componente. En el paso 342, el desarrollador después edita el código fuente vía la pantalla del editor de código.
Fig. 4 ilustra una pantalla ejemplar de editor de código según una realización preferente del presente invento. La pantalla de editor de código 400 incluye una línea de comando 410, una lista de acciones seleccionables 412, y una zona de despliegue 414 de código fuente. Después de que un componente es seleccionado y se invoque la pantalla 400 de editor de código, el área de despligue 414 de código fuente inicialmente incluye el código fuente actual para ese componente. El desarrollador después puede editar el código fuente desplegado. Via una lista de acciones seleccionables 412, el desarrollador puede especificar qué acción invocará este código en particular. Por ejemplo, el desarrollador puede especificar que el código debería ser invocado cuando se "entra" información en un campo de texto. Como otro ejemplo, el desarrollador puede especificar que un golpe de tecla "hacia arriba" haga que el componente se desplace hacia arriba por la lista de datos.
La línea de comandos 410 incluye campos que ayudan al desarrollador en el proceso de edición. Por ejemplo una entrada en la línea de comando 410 puede permitir al desarrollador acceder a rutinas estándar (por ejemplo, valores absolutos o "Abs"), e incluir dichas rutinas estándar en el código.
El código de componente puede incluir muchos diferentes tipos de instrucciones, Por ejemplo, cuando se entra un número de cliente en una caja de edición, el código podría causar que se crease una petición de datos y se mandase a un servidor. Tras la recepción de los datos, el código podría causar que los datos se desplegasen en otros varios componentes.
Un desarrollador también puede proporcionar como parte del código de componente protección frente a acceso. Por ejemplo, si una base de datos en particular tiene acceso restringido, el desarrollador puede hacer que la página presente un dialogo al usuario pidiéndole información de acceso (por ejemplo, nombre de usuario y/o clave de acceso) antes de que la página pida los datos deseados. Tal acceso de usuario podría ser controlado por ejemplo mediante inclusión de una lista de usuarios válidos, perfiles de usuario, y/o claves dentro del documento de página o ser almacenados en un ordenador del lado servidor. Si la información de acceso introducida no coincide con un nombre de usuario, perfil, y/o clave almacenados. entonces la página podría informar al usuario que se le ha denegado el acceso. En caso contrario, la página le pedirá y proporcionara los datos especificados.
Aparte de protección frente acceso, un desarrollador puede incorporar otros privilegios de usuario en el código del documento de página o código de componente. Por ejemplo, podría un desarrollador incorporar código que controla a que usuarios se les permite realizar un "briefcasing" de una página Web. Si un usuario no posee tales privilegios, al usuario no se le permitiría guardar una página Web y/o código asociado en su ordenador cliente. Un desarrollador también puede incorporar código que controla a qué usuario le está permitido modificar datos dentro de una base de datos. Si un usuario no tiene privilegios de modificación, la página no permitirá al usuario publicar cambios en los registros dentro de la base de datos.
Una vez que el desarrollador ha finalizado la edición del código fuente para el componente en particular, este puede guardar los cambios y salir del editor.
En referencia de nuevo a la Fig. 3, el código modificado reemplaza la versión previa del código en el documento de página en el paso 344. El método después vuelve al paso 314 para esperar una entrada adicional del desarrollador.
4. Eliminar un componente
Cuando el desarrollador indica, en el paso 316, que el desarrollador desea eliminar un componente que existe actualmente en la página, la herramienta retira el componente de la página que se muestra en pantalla, en el paso 350, y el código fuente asociado al componente es borrado del documento de página en el paso 352. El método después vuelve al paso 314 para esperar una entrada adicional del desarrollador.
5. Editar propiedades de componente
Un desarrollador puede editar un componente vía un campo de propiedades de componente 230 (Fig. 2) de acuerdo con una realización preferente. En una realización preferente, el desarrollador simplemente modificaría el valor de la propiedad en la columna de la derecha del campo 230. Cuando lo indica la entrada del desarrollador, en el paso 316, que el desarrollador desea editar un propiedad de componente (por ejemplo, el desarrollador ha introducido un nuevo valor de propiedad), entonces se modifica el código de componente dentro del documento de página en el paso 358. Tal modificación podría por ejemplo ser mostrada en pantalla en una posición distinta, podría tener un tamaño, o podría tener una fuente distinta o color distinto. El método después vuelve al paso 314 para esperar una entrada adicional del desarrollador.
6. Guardar la página y salir
Cuando la entrada del desarrollador indica en el paso 316 que el desarrollador desea guardar la página y salir, la herramienta guarda en memoria el documento de página en el paso 360. En una realización preferente, al desarrollador se le ofrece la opción de desplegar la página en un servidor de destino. Si, en el paso 362, se ha tomado la decisión de que el desarrollador no quiere desplegar la página, entonces se cierra la herramienta en el paso 370 (a no ser que se editen otras páginas), finalizando así el método.
Si en el paso 362, se toma la decisión de que el desarrollador elige desplegar la página, entonces al desarrollador se le pide mediante un dialogo identificar (por ejemplo por su URL) un servidor de destino en el paso 364. Tras haber identificado un servidor de archivos, se compila el fichero de página, y, en una realización preferente, se encripta en el paso 366. En una realización alterna, no se lleva a cabo ningún cifrado. El ordenador de desarrollo de página Web 110 entonces establece un enlace con el servidor de destino y envía la página encriptada por Internet (u otro enlace) en paso 368. Se toma una decisión si el desarrollador quiere o no cerrar la herramienta en paso 370. Si es afirmativo, la herramienta se cierra en el paso 374 (salvo que se estén editen otras páginas), y finaliza el método. Si no, se toma un determinación, en el paso 372, si el desarrollador quiere o no cerrar la aplicación en curso. Si es así, el procedimiento se ramifica al paso 301. Si no es el caso, entonces el procedimiento se desvía al paso 314.
7. Salir sin guardar
Cuando una entrada del desarrollador indica, en el paso 316, que el desarrollador desea salir sin salvar, la herramienta se cierra, en el paso 370 (salvo que se estén editando otras páginas), sin salvar en memoria el archivo de página, y finaliza el método.
8. Abrir una aplicación nueva o existente
Cuando la entrada del desarrollador indica, en el paso 316, que el desarrollador desea abrir una aplicación nueva o existente, entonces el proceso se ramifica de vuelta al paso 302, en donde la herramienta determina si la aplicación deseada es nueva o existente. El procedimiento entonces continúa, tal como mostrado en la fig. 3.
Fig. 5 ilustra un diagrama de flujo de un método para añadir un componente de bases de datos de acuerdo con una realización preferente del presente invento. Semejante componente se añadiría a una página, por ejemplo, de acuerdo con el paso 320 de fig. 3.
El método comienza, en el paso 502, cuando un desarrollador indica que desearía colocar un componente de datos en una página. En el paso 504, la herramienta de desarrollo de página Web pregunta al desarrollador por el alias de la base de datos. Por ejemplo, el alias de la base de datos podría ser un nombre que la herramienta usa para identificar el sendero (path) de la base de datos.
Una vez que la herramienta conoce el alias, la herramienta despliega en pantalla los nombres de las tablas asociadas con esa base de datos en el paso 506. Se le Una caja de dialogo insta entonces al desarrollador a seleccionar una o varias tablas de la base de datos, y la herramienta espera la elección del desarrollador en el paso 508. Una vez que el desarrollador ha seleccionado la tabla (o tablas), la herramienta añade cada campo de la tabla como un componente por separado a la página en el paso 510. En una realización preferente, la herramienta podría mostrar en pantalla todo los campos y permitir que el desarrollador seleccione qué campo o campos) el desarrollador desearía ver añadido a la página.
Cuando son añadidos componentes de datos a la página, la herramienta crea el código de componente para cada componente en el paso 512. En una realización preferente, el código de componente incluiría la información necesaria para pedir, recibir, y mostrar los datos en pantalla. Típicamente, si varios componentes incluyen datos de la misma tabla, solamente uno de los componentes necesita llevar a cabo la petición de datos actual. Tal petición pediría datos para cada uno de los componentes de campo relacionados. La creación de código de componente es análoga a la de código de acceso en el paso 322, fig.3
El método después aguarda un entrada adicional del desarrollador en el paso 514. Una vez que se ha recibido esa entrada del desarrollador, se toma un determinación, en el paso 516, de qué tipo de entrada de desarrollador se ha recibido. En una realización preferente, son posibles los siguientes tipos de entrada de desarrollador: 1) el desarrollador desea modificar el formato de pantalla; o 2) el desarrollador desea borrar un campo; o 3) el desarrollador desea especificar un vínculo de campo; o 4) el desarrollador indica que ha terminado. Cada una de las posibles entradas del desarrollador se describe mas adelante. Para facilitar la ilustración, el diagrama de flujo no contempla todas las entradas posibles del desarrollador. En una realización alterna, son posibles entradas del desarrollador adicionales o diferentes.
1. Modificar el formato de pantalla
Cuando la entrada del desarrollador indica, en el paso 516, que el desarrollador quiere modificar el formato de pantalla o un componente (o componentes) de datos en particular, entonces, en el paso 518, se cambia de sitio o de tamaño el formato de pantalla, o se modifica de cualquier otra forma de acuerdo con las instrucciones del desarrollador. Por ejemplo, un desarrollador puede desear alinear todos los componentes de datos de modo distinto a la alineación actual. El desarrollador puede especificar este cambio en el formato de pantalla, en una realización preferente, seleccionando un icono de alineación (por ejemplo icono 212, fig. 2), y especificando la alineación deseada. Alternativamente, el desarrollador podría cambiar el formato de pantalla manipulando el campo de propiedades del componente en 230 (Fig.2). El método entonces vuelve al paso 514 para esperar un entrada adicional del desarrollador.
2. Borrar un campo
Cuando la entrada del desarrollador indica, en el paso 516, que el desarrollador desea especificar un vínculo de campo en particular, la herramienta modifica el código de componente para este campo en particular para reflejar el vínculo correspondiente en el paso 524. Por ejemplo, en un campo de datos que recibe datos de texto, el desarrollador podría especificar que el componente solamente mostrase en pantalla los items de datos que poseen la "A" como primera letra. Este vínculo sería añadido al código de componente, y tras la ejecución, el componente solamente mostraría en pantalla las entradas de tabla que poseen la "A" como primera letra. El método después vuelve al paso 514 para esperar un entrada adicional del desarrollador.
4. Terminado
Cuando la entrada del desarrollador indica, en el paso 516, que el desarrollador ha terminado se incorpora el código de componente para el campo (o campos) en el documento de página en el paso 526, y termina el proceso.
Fig. 6 ilustra un diagrama de bloques simplificado de hardware de un ordenador 110 de desarrollo de páginas Web según una realización preferente del presente invento. El ordenador de desarrollo de páginas Web 110 podría ser por ejemplo, una estación de trabajo SUN o cualquier otro ordenador personal de escritorio o portátil. En una realización preferente, el ordenador 110 incluye medios de procesador 612, medios de entrada del usuario 614, medios de almacenamiento de datos 616, y monitor 618. Adicionalmente, el ordenador 110 incluye unos medios de encriptación 620 y/o hardware de comunicación 622, aunque estos dos elementos no son esenciales para archivar muchas de las desventajas del presente invento.
Los medios de procesamiento 612 podrían ser, por ejemplo, un procesador Intel Pentium u otro procesador apropiado para realizar las funciones de procesamiento del ordenador 110 de desarrollo de páginas Web. Estas funciones de procesamiento se describen en detalle en conjunción con las figs. 3 y 5, pero incluyen, por ejemplo, la inicialización de la herramienta de desarrollo de página (paso 301, Fig.3), crear o acceder a un documento de página (pasos 306, 310, Fig. 3), colocar un componente seleccionado en, o retirar un componente seleccionado de una página (pasos 320, 350, Fig. 3), editar propiedades de componente (pasos 358, Fig. 3). editar código de componente (paso 342, fig. 3) y editar/desplegar páginas (pasos 360 - 368, Fig. 3).
Los medios de entrada de usuario 614 están acoplados a los medios de procesador 612, o bien directamente o bien a través de varios interfaces y hardware. Los medios de entrada del usuario 612 podrían ser, por ejemplo, un teclado, un ratón, un micrófono, un altavoz, un dispositivo digital de vídeo, o cualquier combinación de los anteriores. Los medios 614 de entrada del usuario son la vía con la que el desarrollado da órdenes y/o información a la herramienta de desarrollo de página. Tales comandos incluirían por ejemplo, una instrucción para inicializar la herramienta (paso 301, Fig.3), arrastrar y soltar un nuevo componente, editar una propiedad del componente, editar código fuente del componente, eliminar un componente, salvar en memoria un documento de página, salir de la herramienta de desarrollo de página, o publicar la página.
Los medios de almacenamiento 616 están acoplados a los medios de procesador 612, o bien directamente o bien a través de varios interfaces o hardware. Los medios de almacenamiento de datos 616 se usan para guardar el código de herramienta de desarrollo de página Web, documentos de página, código fuente y ejecutable para componentes, y otros ítems de datos. Los medios de almacenamiento 616 podrían incluir cualquier tipo de memoria de solo lectura (ROM) y/o memoria de acceso aleatorio (RAM), y pueden ser en forma de medios de almacenamiento magnético o óptico, como por ejemplo discos duros, discos compactos, discos magnéticos, o cualquier combinación de estos. Para facilitar la ilustración, solamente se muestra un medio de almacenamiento de datos 616. Sería obvio para cualquier experto en la materia, no obstante, que serían deseables varios tipos de almacenamiento para efectuar el método del presente invento.
El monitor 618 es acoplado a los medios de procesador 612, o bien directamente o a través de varios interfaces de hardware. El monitor 618 se usa para mostrar pantallas asociadas a la herramienta de desarrollo de páginas Web, incluyendo, por ejemplo, despliegues del editor de página (por ejemplo, pantalla 200 Fig. 2) y pantallas de editor de código (por ejemplo, pantalla 400, Fig. 4). El monitor 618 es el mecanismo primordial para proporcionar al desarrollador una regeneración visual durante una sesión de desarrollo de página, aunque también pueden usarse otros tipos de regeneración (por ejemplo, un altavoz).
En una realización preferente, los medios de encriptación 620 se acoplan a los medios de procesador 612, o bien directamente a través de interfaces o hardware. En una realización preferente, los medios de encriptación 620 se acoplan al hardware de comunicación 622. Los medios de encriptación 620 se emplean en una realización preferente para cifrar mensajes, documentos de página, y/o otro tipo de información antes de la transmisión por vía del hardware de comunicación 622. Los medios de encriptación 620 también se usan en una realización preferente para descifrar mensajes, y/o otro tipo de información recibida por vía del hardware de comunicación 622. Los medios de encriptación 620 podrían utilizar por ejemplo casi cualquier algoritmo de encriptación aprobado, incluyendo algoritmos de clave pública o privada, SCRAMBLING, o cualquier otro algoritmo de propietario. Los medios 620 de encriptación no son esenciales para el método y aparato del presente invento, pero proporcionan una mejor medida de seguridad de la información.
En una realización preferente, el hardware de comunicación 622 está acoplado a los medios de procesador 612 y/o encriptación, o bien directamente o bien a través de varios interfases de hardware. El hardware de comunicación 622 puede ser por ejemplo un módem utilizado para modular o desmodular información transmitida o recibida respectivamente a través de un enlace externo. Tal información podría estar cifrada o descifrada. Alternativamente, el hardware de comunicación 622 podría ser una tarjeta de red, USB, o cualquier otro dispositivo de comunicación.
Aunque solamente se muestran un medio de procesador 612, medio de entrada 614 del usuario, y medios de almacenamiento 616 de datos, se podrían emplear cualquier cantidad de procesadores, medios de entrada del usuario, y dispositivos de almacenamiento de datos, en conjunción con el ordenador 110 de desarrollo de páginas Web.
Como se ha descrito previamente en conjunción con fig. 3, los pasos 362 - 328, tras la creación de una página Web por el ordenador 110, un desarrollador puede podría pedir después que el ordenador "despliegue" la página Web nueva. "Despliegue" de una página Web se refiere al acto de enviar una página Web a un servidor el cuál proporcionará después acceso a ordenadores cliente por vía Internet. El ordenador de desarrollo de páginas Web podría mandar la página Web al servidor por vía Internet, una LAN, una WAN, cualquier otro tipo de conexión (o enlaces) óptico(s), inalámbrico(s), por via de un medio tangible de almacenamiento de datos.
La Fig. 7 ilustra un diagrama de flujo de un método para recibir, almacenar, y entregar páginas Web de acuerdo con la realización preferente del presente invento. En una realización preferente, el método se lleva a cabo en un ordenador tal como el ordenador del lado servidor 140 (Fig.1).
El método comienza, en el paso 702, cuando el ordenador del lado servidor recibe una o más páginas Web. En una realización preferente, estas página Web son recibidas desde un ordenador tal como un ordenador 110 (Fig. 1) de desarrollo de páginas Web por Internet o a través de cualquier otras conexión. Las páginas Web recibidas pueden estar en forma cifrada o descifrada.
En el paso 704, el ordenador del lado servidor guarda las páginas Web recibidas para un acceso posterior. En una realización preferente, si una página Web se recibe en forma cifrada, el ordenador del lado servidor almacena la página de forma cifrada. En una realización alterna el ordenador del lado servidor podría descifrar la página Web antes de guardarla.
Una página Web en particular podría ser guardada por cualquier período de tiempo antes de que un cliente pida que esta página sea enviada al ordenador del lado cliente. Adicionalmente, los servidores frecuentemente almacenan bases de datos que pueden ser accedidas por una aplicación de página Web.
Las peticiones de datos de páginas Web vienen en forma de mensajes cliente que pueden estar o no estar cifrados.
En el paso 706, el ordenador del lado cliente recibe una petición de datos o una petición de página Web, el ordenador del lado servidor descifra la petición, si es necesario. Se toma una determinación en el paso 708, si la página y/o datos requieren autorización de acceso. La autorización podría ser necesaria para ambos casos, tanto para el usuario como para el servidor. En una realización preferente, la autorización del usuario se lleva a cabo en el ordenador cliente por la página Web que invoca la petición de datos u otra página Web. Tal intento es deseable porque elimina la necesidad de enviar mensajes de autorización de vuelta y así seguido entre el ordenador cliente y el ordenador servidor. El paso de autorización 708 se refiere a la autorización del servidor de acuerdo con la realización preferente. Si es necesario, este tipo de autorización también podría llevarse a cabo por el usuario.
Fig. 8 ilustra un diagrama de flujo de un método de un método para controlar el acceso a una página Web o datos de acuerdo con una realización preferente del presente invento. El método comienza, el paso 802, determinando si la página pedida o los datos pedidos son "seguros", o estos requieren autorización. Si no es así, entonces en el paso 810 se determina que el acceso está aprobado y termina el procedimiento.
Si en el paso 802 se determina que la página pedida o los datos pedidos no requieren autorización del usuario, entonces en el paso 804 se pide información de acceso. Si el servidor tiene que proporcionar información de acceso, el servidor podría mandar su información de autorización (por ej. una clave de acceso) al manejador de la base de datos que controla el acceso a la página o a los datos. El manejador de la base de datos entonces compararía en el paso 806 la información de acceso con una lista de acceso, o en el caso de una autorización de usuario, una lista de perfiles de usuario.
Se hace una determinación en el paso 808, si el servidor (o el usuario) está autorizado a acceder a los datos basada en la comparación realizada en el paso 806. Si es así, entonces se determina que se ha aprobado el acceso en el paso 810 y se termina el procedimiento. Si no es así se determina que se ha denegado el acceso en el paso 812 y el procedimiento termina.
En referencia de nuevo a la Fig. 7, si en el paso 708 se determina que el acceso se ha denegado (o bien al usuario, o bien al servidor), el ordenador del lado servidor envía un mensaje de denegación de acceso al ordenador cliente en el paso 710, y el programa entra en iteración como mostrado en Fig. 7.
Si, en el paso 708, el ordenador del lado servidor determina que la autorización de acceso no es necesaria o que se permite el acceso, entonces el ordenador del lado servidor recupera la página pedida o datos pedidos en el paso 714. En el paso 716, una vez recuperados los datos o recuperada la página, el ordenador del lado servidor envía la página o los datos (en forma cifrada o no cifrada) al ordenador del lado cliente. Después el programa entra en iteración como se muestra en Fig. 7.
La fig. 9 ilustra un diagrama de bloques simplificado de hardware de un ordenador del lado servidor 140 de acuerdo con una realización preferente del presente invento. El ordenador 140 del lado servidor podía ser, por ejemplo, un estación de trabajo SUN u otro ordenador de sobremesa o un portátil. En una realización preferente, el ordenador del lado servidor 140 incorpora primer hardware de comunicación, medios de procesador 912, y medios de almacenamiento de datos 914. Adicionalmente, el ordenador 140 comprende medios de cifrado / descifrado 920 y segundo hardware de comunicación 930, aunque estos dos elementos no son esenciales para lograr muchas de las ventajas del presente invento.
Los medios de procesador 912 podrían ser por ejemplo, un procesador Intel Pentium o cualquier otro procesador apropiado para realizar y procesar funciones en un ordenador del lado servidor 140. Las funciones de procesamiento se describen en detalle en conjunción con la Fig. 7, pero incluyen, por ejemplo, recibir y almacenar páginas Web (pasos 702, 704), peticiones de procesamiento del cliente (paso 706), determinar privilegios de acceso (paso 708) y recuperar y enviar datos y páginas (paso 716).
Los medios de almacenamiento de datos 914 están acoplados con los medios de procesador 912, o bien directamente o bien a través de varios interfaces y hardware. Los medios de almacenamiento 914 de datos se utilizan para guardar páginas Web, o bien cifradas o bien sin cifrar, mensajes, y bases de datos. Frecuentemente no obstante, las bases de datos son almacenadas remotamente y son accesibles por un servidor por via de un manejador de bases de datos. Los medios 914 de almacenamiento de datos podrían incluir cualquier tipo de memoria de solo lectura (ROM) y/o memoria de acceso aleatorio (RAM), y podrían ser en forma de medios de almacenamiento magnéticos o ópticos, como por ejemplo discos duros, discos compactos, o discos magnéticos, Para facilitar la ilustración se muestra solamente un medios de almacenamiento 914 de datos. Se hará obvio para cualquier entendido en la materia, no obstante, que pueden emplearse varios tipos de almacenamiento para llevar a cabo el método del presente invento.
En una realización preferente, los medios de cifrado / descifrado 920 se acoplan a los medios de procesador 912, o bien directamente o a través de varios interfases y hardware. En una realización preferente, los medios de cifrado / descifrado 920 se acoplan a un primer hardware de comunicaciones 910 y/o un segundo hardware de comunicaciones 930. Los medios de cifrado / descifrado 920 se usan en una realización preferente para cifrar mensajes, datos, páginas Web y/o otro tipo de información antes de la transmisión por vía del primer o segundo hardware de comunicaciones 910, 930. Los medios de cifrado /descifrado 920 también se usan en una realización preferente para descifrar mensajes y/o otra información recibida por vía del primer o segundo hardware de comunicaciones 922, 924. Los medios de cifrado / descifrado 920 podrían emplear por ejemplo casi cualquier algoritmo de cifrado aprobado, incluyendo algoritmos de clave pública / privada, clave aleatoria, u otro algoritmo de propietario. Los medios de cifrado /descifrado 920 no son esenciales para el método y aparato del presente invento, pero proporcionan una medida mejorada de seguridad de información. En una realización preferente, el primer hardware 910 de comunicaciones y el segundo hardware 930 de comunicaciones se acoplan a unos medios de procesador 912 y/o medios de cifrado / descifrado 920, o bien directamente, o bien a través de varios interfaces y hardware. Los primeros medios de comunicación 910 podrían ser por ejemplo un módem utilizado para modular y desmodular la información transmitida o recibida respectivamente, a través de una enlace externo con un ordenador tal como un ordenador de desarrollo de páginas Web 110 (Fig. 1). El segundo hardware de comunicaciones 930 podría ser por ejemplo un módem utilizado para modular y desmodular la información transmitida o recibida respectivamente, a través de un enlace externo con un ordenador tal como un ordenador del lado cliente 170 (Fig. 1). Esta información podría ser transmitida o recibida en forma cifrada o descifrada. El hardware de comunicaciones 910, 930 podría ser alternativamente unas tarjetas de red, USB, u otro tipo de dispositivo de comunicaciones. En una realización preferente, el ordenador 140 podría incluir solamente un solo dispositivo de comunicaciones que se comunique con ambos, los ordenadores de desarrollo de páginas Web y los ordenadores del lado cliente. En otra realización ulterior, el ordenador 140 podría incluir un banco de hardware de comunicaciones y/o módems para comunicarse con múltiples ordenadores.
Aunque solamente se muestra un medio de procesador 912, medio de almacenamiento de datos 914, y primer y segundo hardware de comunicación 910, 930, cualquier cantidad de procesadores, dispositivos de almacenamiento de datos, y hardware de comunicación puede usarse en conjunción con el ordenador del lado servidor 140.
La fig. 10 ilustra un diagrama de flujo de un método de petición, recepción u despliegue de página Web de acuerdo con el presente invento. En una realización preferente, el método se lleva a cabo en un ordenador como el ordenador del lado cliente 170 (Fig. 1).
El método comienza en el paso 1004 cuando se recibe un comando de inicialización de un usuario de un ordenador del lado cliente 170. El comando de inicialización del navegador indica que el usuario quiere abrir el navegador asociado con el método y aparato del presente invento.
En el paso 1004 se inicializa el navegador y este crea y envia peticiones para recibir la página web principal asociada con el navegador. En una realización preferentela petición está cifrada, aunque esto no es esencial para el método o aparato del presente invento. El navegador entonces espera a recibir del servidor la página principal. Si no se recibe en un cierto período de tiempo, el navegador puede desplegarle al usuario un mensaje de tiempo agotado y terminar.
Cuando se recibe la página principal, en el paso 1006, se descifra la página, si es necesario, y se despliega en un monitor de usuario. Tras haber desplegado la página Web, el ordenador del lado cliente mantiene esta en pantalla hasta que se recibe una entrada de usuario o un comando de página, en el paso 1008. La entrada de usuario podría ser en forma de una entrada de teclado, un clic con el ratón, un comando audio, por ejemplo. Un comando de página podría ser un comando de una página web activa par llevar a cabo alguna función.
Una vez que se recibe un comando de página o una entrada de usuario se toma una determinación en el paso 1010 de que tipo de entrada se ha recibido. En una realización preferente son posibles los siguientes tipos de entrada de usuario: 1) se ha pedido una página; o 2) se han pedido datos; o 3) se ha realizado algún tipo de petición que no es ni de datos ni de página; o 4) el usuario ha pedido que se realice un "briefcasing" con los datos o las páginas; o 5) el usuario desea salir del programa. se describen a continuación cada una de las entradas de usuario y comandos de página: para facilitar la ilustración, el diagrama de flujo pasos y decisiones solamente relevantes a recibir, desplegar y guardar en memoria una página web o datos. No contempla todas las entradas posibles de usuario y páginas de comando. No contempla todas las entradas posibles de usuario y páginas de comando. En realizaciones preferentes, son posibles entradas de usuario diferentes o adicionales.
1. Petición de página
Si en al paso 1010 se determina que el usuario ha pedido un página Web, entonces se hace una petición en el paso 1012, acerca si el usuario tiene derechos de acceso. Se realiza la determinación sobre los derechos de acceso en una realización preferente por la página Web desde la cuál el usuario pide acceso a la nueva página. En otras palabras, la página Web incluye código que le permite determinar si se autoriza o no al usuario acceder al página pedida. Chequear los privilegios de acceso de usuario podría por ejemplo requerir que el usuario introduzca una palabra clave o algún otro tipo de información, y la palabra clave entonces podría ser chequeada con información almacenada dentro del documento de página. Tal determinación de acceso podría hacerse mediante un algoritmo similar al descrito en detalle en conjunto con la fig. 8, por ejemplo, excepto que todos los pasos serían llevados a cabo por el ordenador del lado cliente. En una realización preferente, los derechos de acceso podría ser determinados a través de algún otro método.
Si se realiza la determinación, en el paso 1012, este acceso está denegado, entonces un mensaje de acceso denegado es enviado al usuario en el paso 1014 (por ejemplo mostrando en pantalla el mensaje). Si se aprueba el acceso, entonces la página Web formula la petición de página y la manda al servidor apropiado en el paso 1016. El servidor apropiado podría ser un servidor remoto, en algunos casos, podría ser un servidor local.
Una vez que se recibe la página, el ordenador cliente descifra la página, si es necesario, y muestra en pantalla la página Web en el paso 108. La página Web entonces se hace "activa", y ciertas porciones de código de componente se ejecutarían. Si la página Web incluye componentes de datos, entonces la página podría pedir que se muestren en pantalla el primer conjunto de datos de entre esos componentes de datos. Si, como indicado en el paso 1020, la página Web no incluye componentes de datos, entonces el método vuelve al paso 1008 para esperar una entrada adicional del usuario. Si la página Web incluye componentes de datos, entonces el método determina en el paso 1021, si esos datos se han almacenado localmente. Si no es así, entonces el método ejecuta los pasos 1026 a 1034 que son necesarios para la página Web para pedir los datos apropiados. Si en el paso 1201 el método determina que los datos se han almacenado localmente, entonces el método ejecuta los pasos 1028 - 1034. En tal caso, el servidor apropiado en el paso 1030 sería el servidor local, más que el servidor remoto. Los pasos 1026 - 1034 se discuten en detalle abajo.
En ciertos casos, se puede pedir un página sin realizar los pasos 1002- 1010. por ejemplo, un usuario podría invocar una página web creada de acuerdo con la realización preferente tecleando la URL de la página en un navegador. Este navegador podría ser el navegador de acuerdo con el presente invento, o podría ser un navegador del anterior estado de la técnica. Si se accede accidentalmente a un página, al servidor podría serle necesario realizar una autorización de acceso, ya que la página no fue invocada por otra página que tuviese conocimiento de los derechos de acceso del usuario. Alternativamente, la página podría realizar una autorización de acceso tras ser descargada al ordenador cliente.
2. Petición de datos
Si, en el paso 1010 se determina que el usuario ha pedido datos, entonces se toma una determinación en paso 1022 de si los datos están almacenados localmente. Los datos pueden estar almacenados localmente, por ejemplo, si los datos se han obtenido previamente del servidor y se han guardado en la máquina cliente. Por ejemplo, el usuario puede haber descargado varios conjuntos de datos durante la interacción con alguna página en particular. El usuario quizás desee hacer un SCROLL hacia atrás por los datos que el usuario previamente a descargado de la red. Alternativamente, el usuario puede haber realizad un briefcasing de la página y de un conjunto de datos, y quizás quiera ver los datos comprimidos. En cualquier evento, si los datos están, localmente almacenados, entonces los datos son ubicados y almacenados en el paso 1024 por el ordenador cliente.
Si los datos no están almacenados localmente, entonces se toma la determinación en el paso 1026 de si tiene el usuario derechos de acceso. Esta determinación podría hacerse de una manera similar en el paso 1012, excepto que los derechos de acceso sirviesen para acceder a los datos, más que para acceder a una página. Si el usuario no tiene derechos de acceso, entonces se envía un mensaje de acceso denegado al usuario en el paso 1014 y el procedimiento entra en iteración tal como se muestra.
Si el usuario sí tiene derechos de acceso, entonces en el paso 1028 se determinan los criterios necesarios para describir los datos. También puede invocarse el paso 1028 tal como se ha descrito antes cuando una página Web determina automáticamente que necesita pedir un conjunto de datos (paso 1020). Los criterios de datos identifican la base de datos, tablas, y registro (o registros) que el usuario desearía ver. En una realización preferente, el registro en particular que se ha de ver se identifica por variables de estado que realizan una evaluación almacenadas por la página Web. Estas variables de estado indican a que registros ha accedido la página, y que registros serían los siguientes.
El almacenamiento de variables de estado por la página Web representa una ventaja significativa respecto al método del presente invento. Tal almacenamiento elimina la necesidad de tener inteligencia en el servidor para mantener la información de estado (por ejemplo "agentes"), y también elimina la necesidad de mantener una conexión persistente con el servidor durante toda la sesión de acceso a la base de datos. Además, el mantenimiento de las variables de estado da como resultado una menor complicación del servidor y también requerimientos de una ancho de banda mas bajo, a parte de otras ventajas.
Tras haberse determinado los criterios, en el paso 1028, se formula entonces una petición de datos y la petición se envía al servidor apropiado en el paso 1030. El servidor apropiado podría ser un servidor remoto, o en algunos casos, podría ser un servidor local. En una realización preferente, se cifra la petición antes de ser enviada, aunque esto no es esencial. Se reciben los datos pedidos en el paso 1024, se actualizan las variables de estado asociadas a los datos para reflejar el hecho de que el usuario ha seguido avanzando por la base de datos (o a diferentes registros en la base de datos). El método retorna al paso 1008 para esperar una entrada del usuario adicional.
3. Petición de no-página, o no-datos
Si en el paso 1010 se determina que el usuario (o la página Web) ha realizado una petición que no es una petición de datos o de página, entonces el ordenador cliente realiza una función asociada a la petición, en el paso 1036, y el método vuelve al paso 1008 para esperar una entrada adicional del usuario. Las peticiones de no-página y no-datos podrían incluir por ejemplo una petición para usar un hiperenlace a otro sitio Web, una petición para ejecutar una fichero de audio o vídeo, una petición para mandar un correo electrónico, o muchos otros tipos de peticiones.
4. Petición de realizar un "briefcasing"
Si en al paso 1010 se determina que el usuario ha pedido que se realiza un briefcasing de una página o datos, entonces se toma en el paso 1038 una determinación de si la página es o no almacenable. En una realización preferente, esta determinación se realiza por la página Web (tal como discutido en conjunción con la Fig. 3, paso 342). La determinación de si la página y/o los datos son almacenables también podrían incluir una determinación de derechos de acceso.
Si se determina que la página y/o datos son almacenables, entonces el documento de página o datos que se han descargado de la red en conjunción con la página, y las actuales variables de estado se almacenan en el ordenador cliente en el paso 1040. Es deseable el almacenamiento de las variables de estado, ya que cuando un usuario decide invocar de nuevo una página, el usuario puede comenzar a acceder los datos allí donde el usuario lo dejó previamente. Si el paso 1041 indica que el desarrollador desea salir, entonces el método se ramifica al paso 1050. Si en el paso 1050 se toma una determinación de que el desarrollador quiere cerrar el navegador, entonces se cierra el navegador y termina el método. De otro modo, el método se ramifica al paso 1002. Si el paso 1041 indica que el desarrollador no quiere salir, el método vuelve al paso 1008 para esperar una entrada adicional del usuario.
Si, en el paso 1038, se determina que el editor de página y/o los datos no son almacenables, se le notifica entonces al usuario en el paso 1042. Si el paso 1043 indica que el desarrollador desea salir, entonces se borran en el paso 1044 el documento de página, los datos, y las variables de estado. Entonces el método vuelve al paso 1008 para esperar una entrada adicional del usuario. Si el paso 1043 indica que el desarrollador no deseaba salir, entonces el método vuelve al paso 1008 para esperar una entrada adicional del usuario.
5. Salir
Si, en el paso 1010, se determina que el usuario desea salir, entonces en una realización preferente, se le pregunta al usuario si quiere realizar un briefcasing de la página y/o datos. Si el usuario indica que quiere realizar un briefcasing de los datos y/o de la página, entonces se llevan a cabo los pasos 1038 - 1044. Si el usuario indica que no desea realizar un briefcasing de la página y/o datos, entonces en el paso 1048 se borran tanto el documento de página como las variables de estado, y se toma una decisión en el paso 1050, si el desarrollador desea cerrar el navegador. Si ese es el caso, el navegador se cierra y termina el método. Si no, el método se ramifica al paso 1002 y continua.
Una ventaja del presente invento es que el navegador asociado a las páginas Web de la realización preferente puede ser mucho más pequeño que las páginas Web del anterior estado de la técnica. Una razón para esto es que cada página Web desarrollada de acuerdo con la invención presente es capaz de comunicarse directamente con servidores remotos. Las páginas Web del anterior estado de la técnica no lo hacen. Por ello, es posible cerrar el navegador del presente invento durante una sesión interactiva entre página Web y servidor. De hecho, una página Web creada según el presente invento podría pedir que se cerrase el navegador tras haber invocado la página.
Si un editor de página y/o datos ha sido comprimido y editado off-line por un usuario, el usuario querría mas tarde colocar su modificación de los datos en la base de datos. La Fig. 11 ilustra una diagrama de flujo de un método para mandar por la red datos modificados a una base de datos remota de acuerdo con una realización preferente del presente invento.
El método comienza en el paso 1102, cuando un usuario inicializa el navegador. La inicialización del navegador ya se ha discutido más en detalle en conjunción con la Fig. 10, paso 1002. Una vez que el navegador se ha inicializado, entonces el usuario puede causar que la página Web localmente almacenada sea cargada y desplegada en el paso 1104. En este paso, el usuario podría llevar a cabo ediciones adicionales si así se desea.
Una vez que el usuario haya modificado sus datos, este informa a la página que tiene que conectarse al servidor y mandarle los cambios. En una realización preferente, la página determina si el usuario tiene o no derechos de acceso para realizar tales cambios en la base de datos en el paso 1106. La determinación de derechos de acceso puede haberse hecho por ejemplo de un modo similar al fig. 10, en el paso 1026. Durante el desarrollo de la página, el desarrollador podría incorporar código a la página Web lo que indica quién tiene privilegios de modificación, como se ha discutido previamente en conjunción con la Fig. 3, paso 342. Si el usuario no tiene derechos de acceso, entonces se envía un mensaje de acceso denegado al usuario en el paso 1108, y termina el procedimiento.
Si el usuario tiene derechos de acceso, entonces la página, en el paso 1110 formula un mensaje que identifica la base de datos y la tabla, y que también incluye los antiguos registros de datos (es decir, los datos que se descargaron originalmente desde el servidor) y los registros modificados de datos. El servidor después determina en el paso 1112 si el servidor tiene derechos de acceso para modificar los datos contenidos en la base de datos. Si no es así, entonces el servidor envía un mensaje de acceso denegado al ordenador cliente, en el paso 1114, y el procedimiento termina.
Si el servidor tiene derechos de acceso, entonces en el paso 1116 el servidor compara los viejos registros recibidos del ordenador cliente con los registros actualmente existentes en la base de datos. Se toma una determinación en el paso 1118, si coinciden o no los viejos registros y los existentes. Si no coinciden, esto indica que la base de datos ha sido modificada por otro usuario desde que el usuario actual descargó lo datos. En tal caso, el servidor envía los registros existentes de vuelta al ordenador cliente, en el paso 1120, de modo que el ordenador cliente pueda consultar al usuario si ahora quiere modificar la base de datos. Si el usuario indica, en el paso 1122, que no se desea el reemplazo, entonces termina el procedimiento.
Si el usuario indica que se desea este reemplazo, o si los registros antiguos y existentes coinciden, entonces se reemplazan los registros existentes con los registros modificados en el paso 1124, y termina el procedimiento. Algunos de los pasos 1112 - 1124 pueden requerir que el servidor interactúe con el manejador de bases de datos asociado a la base de datos.
Fig. 12 ilustra un diagrama de bloques simplificado de hardware de un ordenador 170 del lado cliente de acuerdo con un realización preferente del presente invento. El ordenador del lado cliente 170 podría ser , por ejemplo, una estación de trabajo SUN o cualquier otro ordenador de escritorio u ordenador personal portátil. En una realización preferente, el ordenador del lado cliente 170 podría incluye medios de procesador 1212, medios de entrad de usuario 1214, medios de almacenamiento de datos 1216, hardware de comunicaciones 1222, y monitor 1218. Adicionalmente, el ordenador 170 incluye medios de cifrado 7 descifrado 1220, aunque este elemento no es esencial para lograr muchas de las ventajas del presente invento.
Los medios de procesador 1212 podrían ser, por ejemplo, un procesador Intel Pentium o un procesador apropiado para realizar las funciones de procesamiento del ordenador del lado cliente 170. Estas funciones de procesamiento se describen en detalle en conjunción con la Fig. 10, pero incluyen por ejemplo, inicializar el navegador (paso 1002, Fig. 10), pedir la página principal (paso 1004, Fig. 10), pedir páginas adicionales (pasos 1012-1020, Fig. 10) pedir datos (pasos 1022-1034), Fig.10), y páginas con briefcasing y datos, (pasos 1038-1044, Fig. 10)
Se ha acoplado un medio de entrada de usuario 1214 al medio de procesador 1212, o bien directamente o bien a través de varios interfaces y hardware. Pueden ser medios de entrada 1214 de usuario por ejemplo un teclado, un ratón, un micrófono, dispositivos digitales de vídeo, o cualquier combinación de todos estos. El medio de entrada 1214 es la vía por la que un usuario imparte ordenes al navegador.
Se ha acoplado un medio de almacenamiento 1216 de datos al medio de procesador 1212, o bien directamente o bien a través de varios interfaces y hardware. Los medios de almacenamiento 1216 se usan para guardar el navegador, los documentos de página, los datos de bases de datos remotas, y otros ítems de datos. Los medios de almacenamiento 1216 podrían incluir cualquier tipo de memoria de solo lectura (ROM) y/o memoria de acceso aleatorio (RAM), y podrían estar en forma de un medio de almacenamiento óptico o magnético como por ejemplo discos duros, discos compactos y discos magnéticos. Para facilitar la ilustración solamente se muestra en 1216 un medio de almacenamiento. No obstante, se hace obvio a cualquier experto en la materia que varios tipos de almacenamiento serían deseables para llevar a cabo el método del presente invento.
El monitor 1218 está acoplado a los medios de procesador 1212, o bien directamente o a través de varios interfaces o hardware. El monitor 1218 se usa para desplegar páginas Web al usuario.
En una realización preferente, los medios de cifrado / descifrado 1220 se acoplan al medio de procesador 1212, o bien directamente o a través de varios interfaces y hardware. En una realización preferente, el medio de cifrado / descifrado 1220 se acopla al hardware de comunicaciones 1222. El medio de cifrado / descifrado 1220 se usa en una realización preferente para cifrar mensajes, peticiones, y/o otra información antes de la transmisión por vía del hardware de comunicaciones 1222.
El medio de cifrado / descifrado 1220 también se emplea en una realización preferente para descifrar mensajes, páginas Web y/o otra información recibida por vía del hardware de comunicaciones 1222. Los medios de cifrado /descifrado 1222 podrían usar por ejemplo casi cualquier algoritmo aprobado de encriptación, incluyendo los de clave pública o privada, clave aleatoria, u otro algoritmo de propietario. El medio de cifrado 1220 no es esencial para el método y aparato del presente invento, pero proporciona una medida mejorada de seguridad de la información.
En una realización preferente, el hardware de comunicaciones 1222 se acopla al medio de procesador 1212 y/o medio de cifrado / descifrado 1220, o bien directamente o a través de varios interfaces y hardware. El hardware de comunicaciones 1222 podría ser por ejemplo un módem utilizado para modular o desmodular información transmitida o recibida, respectivamente, a través de una link externo. Tal información podría presentarse en forma cifrada o descifrada. Alternativamente, el hardware de comunicaciones 1222 podría ser una tarjeta de red, USB, y otro dispositivo de comunicaciones.
Aunque solamente se muestran un medio de procesador 1212, un medio de entrada de usuario 1214, y un medio de almacenamiento de datos 1216, cualquier cantidad de procesadores, dispositivos de entrada de usuario, y dispositivos de almacenamiento de datos podría usarse en conjunción con el ordenador del lado cliente 170.
Como se describe previamente, el método y aparato del presente invento proporciona la ventaja de facilitar al usuario poder repasar los datos en una primera página abierta mientras que los datos en una segunda página se actualizan automáticamente. La creación de páginas con componentes enlazados desde la perspectiva del desarrollador se describieron en detalle en conjunción con la Fig. 3, pasos 330 - 336. El enlace de datos se describe ahora desde la perspectiva del ordenador del lado cliente.
Como previamente se ha descrito, el enlace de datos en múltiples páginas se refiere a enlazar varios conjuntos de datos por múltiples páginas Web. Por ejemplo, en una realización preferente, una primera página Web puede incluir un componente que contiene datos por los que este puede ojear. El usuario podría abrir una segunda página Web que contiene un componente que contiene datos a los cuales está relacionado, pero diferente de los datos desplegados por la primera página. En una realización preferente estas dos páginas se enlazan de tal modo que cuando el usuario abre la segunda página, los datos allí desplegados se corresponderán con los datos desplegados en la primera página. Adicionalmente, cuando el usuario recorre los datos en una de las páginas, la otra se actualiza automáticamente para mostrar en pantalla los datos correspondientes.
Un ejemplo ilustrará mejor la realización preferente. Se asume que una primera página Web permite el acceso a cierta información sobre los empleados que se encuentra almacenada en una base de datos de información accesible al servidor. En el presente ejemplo, la base de datos podría ser una base de datos relacional, en donde únicos números de empleado son las claves utilizadas para enlazar registros juntándolos a partir de varias tablas. La base de datos podría incluir el número de empleado y múltiples tipos de información como por ejemplo:
a)
información laboral, incluyendo el nombre del supervisor, de la secretaria, ubicación de la oficina, números de teléfono y de fax, un título profesional.
b)
información de índole personal, incluyendo salario, nivel de grado profesional, datos de actuación laboral, y fecha de contratación.
c)
información personal, incluyendo el nombre, número de seguridad social, dirección y teléfono particular, estado civil, sexo, y edad.
Se asume que una primera página Web incluye un componente para desplegar el nombre del empleado, conjuntamente con el primer tipo de información del empleado, a saber la relacionada con el trabajo. Tras seleccionar el usuario un nombre de empleado en particular, el ordenador del lado cliente mandaría una petición al servidor para la información relacionada con lo laboral de dicho empleado. El ordenador del lado servidor recuperaría información de la base de datos de información de empleados y mandaría esa información de vuelta al ordenador del lado cliente. En una realización preferente, el ordenador del lado cliente entonces desplegaría la información en el componente o los componentes de la primera página Web correspondiente a la información y actualizaría las variables de estado que identifican a que registro de la base de datos ha accedido el usuario.
Se asume además que el usuario tiene una opción (y privilegios de acceso) a abrir una segunda página Web relacionada que incluye un componente para desplegar la información de índole personal del empleado. En una realización preferente del presente invento, el ordenador del lado cliente mandaría una petición al servidor de la misma información de indole personal del empleado, pero sin pedir al usuario que introduzca el nombre del empleado otra vez. El servidor entonces accedería a y enviaria la información de índole personal apropiada, que sería desplegada en la segunda página.
Si el usuario mantiene ambas páginas abiertas y, en la primera página, introdujese otro nombre de usuario, entonces el método del presente invento causaría que automáticamente se actualizasen los datos tanto en la primera como en la segunda página Web para reflejar la información de índole laboral y personal del segundo empleado. De ese modo, los datos entre las dos páginas Web están enlazados. Al actualizarse los datos en la primera página los datos relacionados también se actualizan y en la segunda página.
La fig. 13 ilustra un diagrama de flujo de un método para enlace de datos en múltiples páginas de acuerdo con una realización preferente del presente invento. En una realización preferente, el método se lleva a cabo en un ordenador tal como un ordenador cliente 170, Fig. 1. El método comienza en el paso 1302, mostrando una primera página y un conjunto de datos asociado. Para facilitar la ilustración, la primera página se considerará la página Master, tal como este termina ya ha sido previamente definido.
El paso 1302 dice que no existen restricciones de acceso, o que el usuario tiene aprobado el acceso a desplegar la primera página y/o conjunto de datos. En el paso 1304, se guardan en memoria las variables de estado que identifican el primer conjunto de datos. En el ejemplo arriba descrito, el segundo conjunto de datos podría incluir una información de índole laboral.
En el paso 1306 se recibe una petición del usuario de desplegar una segunda página que tenga un segundo conjunto de datos relacionados. Para facilitar la ilustración se considera la segunda página como la página de detalles, tal como se ha definido el término ya anteriormente. En el ejemplo arriba descrito, el segundo conjunto de datos podría ser un información de índole personal o estrictamente personal del empleado. Se recibe la segunda página, en el paso 1310, y después de hacerse activo se usan las variables de estado asociadas con la primera página para formular una petición de los datos de la segunda página en el paso 1312.
Se envía la segunda petición de datos al servidor en el paso 1314, y se reciben los datos de la segunda página, en el paso 1316. Si la segunda página incluye componentes de datos que no están relacionados con los datos de la primera página, también podrían necesitarse inicializar las variables de estado para aquellos nuevos componentes de datos. En el paso 1318, la segunda página y los datos de la segunda página son mostrados en pantalla por el ordenador del lado cliente. En una realización alterna, la segunda página puede ser desplegada antes del paso 1318.
Si el usuario pide otra página con datos relacionados (por ejemplo una página que despliegue la información personal del empleado) se repiten los pasos 1306 - 1318. Si el usuario pide datos adicionales en cualquiera de las páginas (por ejemplo, datos sobre cualquier otro empleado), entonces la variables de estado relacionadas también se usan para formular las peticiones de datos para cada página que tiene datos relacionados, y una vez que los datos se han recibido del servidor se actualizan los componentes de datos correspondientes para cada página 4.
En algunos casos, una página Web en particular de acuerdo con el presente invento puede haber pedido y guardado múltiples registros de datos (por ejemplo, información sobre múltiples empleados), incluso aunque la página muestre en pantalla información contenida en solamente uno o varios de tales registros. Tras abrir una segunda página, al servidor se podrían pedir los datos relacionados para los múltiples registros de datos y almacenarlos, y la segunda página también podría mostrar información contenida en solamente uno o varios de estos registros.
Si el usuario desea repasar en pantalla los datos localmente almacenados, no sería necesario pedir los datos al servidor (pasos 1312 - 1316). A cambio, el ordenador del lado cliente accedería a y mostraría en pantalla los datos anteriormente almacenados para cada una de las páginas. Solamente son necesarias las peticiones de datos al servidor cuando una página Web (o páginas) quieren acceso a datos que no han descargado o mantenido. Adicionalmente, las variables de estado necesitan actualizarse solamente cuando se reciben desde el servidor nuevos conjuntos de datos.
La fig. 14 ilustra como se ve en pantalla una página Web ejemplarmente enlazada de acuerdo con una realización preferente del presente invento. Una pantalla 1405 del navegador es asociada a un navegador el cual es usado inicialmente para ganar acceso a un ordenador del lado servidor y desplegar una página Web inicial. De cuerdo con el presente invento, el navegador tras esto puede ser cerrado según la opción del usuario, ya que el navegador no es esencial para el usuario par interactuar con las páginas Web que han sido diseñadas según el presente invento. Una primera página 1410 y una segunda página 1420 despliegan cada una ítems en particular de datos relacionados. En el ejemplo mostrado, la primera página 1410 despliega los datos del número de cliente 1412, compañía 1414 y otra información sobre este número de cliente en particular. La segunda página 1420 también despliega el número de cliente 1422 y compañía 1424, pero también muestra diferente, aunque relacionada información, específicamente el historial de ventas al cliente 1426.
En una realización preferente, en el momento en el que el usuario abrió la segunda página 1420, el método del presente invento utilizaba las variables de estado identificando los datos de la primera página para formular una petición de los datos de ventas del cliente 1426. También en una realización preferente, si el usuario modificase el número de clientes 1412 ó 1422 en o bien la primera página 1410 o bien en la segunda página 1420, el método del presente invento actualizaría los datos de la compañía 1414, 1424, ventas de cliente 1426, y otros datos relacionados desplegados en ambas páginas 1410 y 1420.
La fig. 15 ilustra un diagrama de flujo de un método para repasar en pantalla los datos en asociación con las páginas enlazadas de acuerdo con el presente invento. En una realización preferente, el método se lleva a cabo en un ordenador como un ordenador del lado cliente. 170, Fig. 1.
Cuando el método comienza, se asume que múltiples páginas enlazadas de datos ya han sido descargadas de acuerdo con el método descrito en la Fig. 13. Por ello, tras la iniciación del método de la Fig. 15, además se asume que muchas páginas enlazadas que incluyen componentes enlazados de datos actualmente se están mostrando en pantalla, y que las variables de estado para aquellas páginas han sido almacenadas por las páginas Web.
En el paso 1502, una de las páginas enlazadas recibe la entrada del usuario indicando que el usuario desearía mostrar en pantalla un conjunto de datos diferente de dentro de uno o varios componentes en esta página. Tras recibir la petición se toma una determinación en el paso 1504 de si los datos pedidos están actualmente almacenados en la máquina cliente. Por ejemplo una máquina cliente podría haber recibido y haber almacenado solo los primeros veinte registros de datos de personal empleado en respuesta a una o varias peticiones al servidor. En una realización preferente, estos veinte registros estarían almacenados en la máquina cliente y el usuario podría repasarlos en pantalla sin con ello tener que iniciar otra petición al servidor. Siguiendo el mismo ejemplo, si el usuario intenta repasar en pantalla los registros hasta el registro veintiuno, el documento Web necesitaría realizar otra petición de datos y enviar esta petición de datos al servidor, en una realización preferente. Mientras se repasan los datos a través de los primeros veintiún registros, el paso 1504 determinaría que los datos no están almacenados localmente. Si el paso 1504 determina que los datos están almacenados localmente, entonces los datos son recuperados y desplegados en el paso 1506.
Si el paso 1504 determina que los datos no están guardados localmente, entonces se toma una determinación en el paso 1508 de si los datos están siendo repasados en una componente de página enlazado. Si los datos están siendo repasados en un componente de página enlazado, entonces en el paso 1510 la primera página envia una petición a la página enlazada la cuál obtiene datos del servidor para la primera página, en donde la petición indica qué datos querría ver la primera página.
Si la primera página es capaz de crear y enviar sus propias peticiones de datos al servidor, o tras haber recibido la petición la página enlazada desde la primera página, entonces en el paso 1512, la máquina cliente crea una petición de los datos desplegados por ambas, la primera y las páginas enlazadas, usando las variables de estado. La máquina cliente entonces envía los datos al servidor en el paso 1514. Tras haber recibido los datos del servidor en el paso 1516, la página que pidió los datos dl servidor envía los datos a la página que despliega estos datos, y esta página despliega los datos en el paso 1518. Las variables de estado afectadas por los nuevos datos son entonces actualizadas en el paso 1520, y el procedimiento entra en iteración, tal como se muestra.
Por ello, se ha descrito un método y aparato para desarrollar, desplegar, descargar y ejecutar páginas Web el cual soluciona problemas específicos y complementa ciertas ventajas respecto a métodos y mecanismos del anterior estado de la técnica. Una ventaja del método y aparato del presente invento es que durante las aplicaciones de bases de datos, estos no necesitan que se genere dinámicamente una página entera en el servidor cada vez que el usuario hace una petición de un nuevo conjunto de datos. En vez de eso, de acuerdo con el presente invento, el servidor solamente envía la nueva pieza de datos y la página Web actualiza el campo apropiado. Una ventaja adicional es que el método y aparato del presente invento permiten que se lleve a cabo un manejo de estado por parte del ordenador del lado cliente utilizando código insertado en un página Web. Esta capacidad de manejo de estado también le permite al método y aparato del presente invento proporcionar "briefcasing" en una página Web. como ventaja adicional del presente invento. Adicionalmente, el código de página Web insertado del método y aparato del presente invento reduce fuertemente los riesgos de seguridad asociados a los ejecutables descargados de la red del anterior estado de la técnica, que podrían contener código malicioso. Otra ventaja del presente invento es que este permite que usuarios de páginas Web puedan ver e interactuar simultáneamente con múltiples páginas web enlazadas, sin tener que lanzar otra aplicación del navegador Web.
Las descripciones anteriores de las realizaciones específicas revelarán así la naturaleza general del invento con la que otros podrán, aplicando sus actuales conocimientos, modificar y/o adaptar adecuadamente las realizaciones para varias aplicaciones sin con ello salirse del concepto genérico. Por ello, tales adaptaciones y modificaciones deberían y se pretende que estén dentro del significado y de un rango de equivalentes de las realizaciones discutidas. En particular, mientras que se ha descrito una realización preferente en términos de un sistema en el cual el ordenador del lado cliente y el ordenador de desarrollo de páginas Web se comunican por Internet con un ordenador del lado servidor, los expertos en la materia comprenderán basándose en la presente descripción que el método y aparato del presente invento también puede usarse en sistema en el cual ambos, tanto ordenador del lado cliente y ordenador de desarrollo de páginas Web se comunican con el ordenador de lado servidor a través de una LAN, WAN u otro tipo de red. Es más, los profesionales en la materia se darán cuenta que los diagramas de flujo aquí presentados pretenden enseñar el presente invento y que pueden apreciarse diferentes técnicas para implementar un flujo de programa que no necesariamente se prestan a un diagrama de flujo. Por ejemplo, cada tarea aquí discutida puede ser interrumpida para permitirle al flujo de programa que lleve a cabo tareas en un segundo plano u otras. Adicionalmente puede cambiarse el orden específico de la tareas, y las técnicas específicas usadas para implementar las tareas pueden diferir según el sistema.
Se da a entender que la fraseología y terminología aquí empleada es con el propósito de descripción, y no de limitación. De acuerdo con esto, se pretende que el invento abarque todas aquellas alternativas, modificaciones, equivalentes y variaciones que caen dentro del ancho margen de las siguientes reivindicaciones.

Claims (37)

1. Producto de programa de ordenador que comprende un código de página Web que cuando este es ejecutado por un ordenador cliente (170) produce que el ordenador cliente (170) despliegue una página Web (1410, 1420) que se corresponde con el código de la página Web, comprendiendo en ello el código de la página Web
información que describe componentes (1412, 1414, 1422, 1424) incluidos en la página Web, y
código dirigido por eventos asociado a uno o varios de los componentes, siendo este código dirigido por eventos ejecutado por el ordenador cliente que despliega la página Web, caracterizado porque el código dirigido por eventos está habilitado para demandar acceder a y manipular datos en una base de datos (914) accesible por un ordenador del lado del servidor (140).
2. Producto de programa informático según la reivindicación 1, en el cuál los componentes además están caracterizados porque son componentes relacionados a la base de datos concebidos para mostrar datos de la base de datos (914) y produciendo el código dirigido por eventos la creación de demandas de información que se envían (1030) al ordenador del lado del servidor lo que permite que el ordenador del lado del servidor reciba (1032) información que se corresponde con las demandas de información y se muestre la información en conjunto con los componentes relacionados a la base de datos.
3. Producto de programa de ordenador según la reivindicación 1, además caracterizado porque hay un componente de los componentes que están asociados a código de generación de reportes que al ser ejecutado por el ordenador cliente (170) crea un documento de reporte que incluye información asociada a la página web.
4. Aparato de desarrollo de página web (110) para desarrollar el producto de programa de computadora de la reivindicación 1, 2 y 3, que tiene:
un monitor (618) para mostrar la página Web para ser visionada por un desarrollador;
medios de entrada por un usuario (814) para permitir que el desarrollador introduzca información relacionada con el desarrollo de la página web, que es ejecutable por el ordenador del lado cliente, y medios de procesamiento (612) para inicializar y ejecutar una herramienta de desarrollo de página Web, causando que la página Web se muestre en pantalla del monitor, recibiendo la información del usuario desde los medios de entrada del usuario y causando modificaciones en el documento de página Web basada en la información, caracterizado porque las modificaciones incluyen la incorporación en el documento de página Web de código gobernado por eventos asociado a uno o varios componentes de página Web, siendo capaz el código gobernado por eventos de pedir acceso a y manipulación en la base datos.
5. Aparato para desarrollo de páginas Web según la reivindicación 4, además caracterizado porque posee unos medios de comunicación (622) acoplados a medios de procesador usándose los medios de comunicación para enviar el documento de página Web a un ordenador del lado cliente (140).
6. Aparato para desarrollo de páginas Web según la reivindicación 4, además caracterizado porque posee unos medios de almacenamiento de datos (616) acoplados a los medios de procesador, usándose los medios de almacenamiento de datos para almacenar el documento de página Web.
7. Aparato para desarrollo de páginas Web según la reivindicación 4, además caracterizado porque posee medios de cifrado (620) acoplados a los medios de procesador, usándose los medios de cifrado para cifrar el documento de página Web.
8. Aparato servidor (140) que comprende:
Por lo menos unos medios de comunicación (910, 930) que reciben un primer mensaje de y envían un segundo mensaje a un ordenador del lado cliente (170), en donde el primer mensaje incluye una petición de información generada por un código gobernado por eventos incluido en la página Web, caracterizado porque el código gobernado por eventos es capaz de pedir acceso a y manipulación de datos en una base de datos, y el segundo mensaje incluye información accesible al aparato del lado servidor, y
por lo menos medios de procesador (912) acoplados a por lo menos un medio de comunicación para procesar la petición de información para identificar la información almacenada, para crear el segundo mensaje que incluye la información almacenada, y para causar que el segundo mensaje se envíe al ordenador del lado cliente de modo que el ordenador del lado cliente pueda desplegar en pantalla la información almacenada en respuesta a la ejecución del código gobernado por eventos.
9. Aparato servidor según la reivindicación 8, además caracterizado porque medios de almacenamiento (914) acoplados a los medios de procesador, usándose en ello los medios de almacenamiento de datos para almacenar la información almacenada.
10. Aparato cliente (170) que comprende:
un monitor (1218) que despliega una página Web definida por un documento de página Web ejecutado por el aparato cliente,
medios de comunicación (1222) que envían primeros mensajes a, y reciben segundos mensajes de un ordenador del lado servidor (140); y medios de procesador (1212) acoplados al monitor y a los medios de comunicación, que ejecutan el documento de página Web, incluyendo la ejecución de código gobernado por eventos asociado con uno o varios componentes de página Web incorporados dentro del documento de página Web, caracterizado porque el código gobernado por eventos es capaz de pedir acceso a, y manipular de datos en una base de datos (914) accesible al ordenador del lado servidor.
11. Aparato cliente según la reivindicación 10, además caracterizado porque posee medios de cifrado (1220) acoplados a los medios de procesador para cifrar los primeros mensajes
12. Aparato cliente según la reivindicación 10, además caracterizado porque posee medios de descifrado (1220) acoplados a los medios de procesador para descifrar los segundos mensajes.
13. Aparato cliente según la reivindicación 10, además caracterizado porque posee medios de almacenamiento de datos (1216) acoplados a los medios de procesador, para almacenar información asociada a la página Web.
14. Método de desarrollo de un producto de programa de ordenador según la reivindicación 1, 2 ó 3 caracterizado porque comprende los pasos de:
crear (308) un documento de página Web que defina la página Web:
recibir (314) entradas de un desarrollador, en donde por lo menos algunas de las entradas indican que se debe añadir un componente a la página Web, y
editar el documento de página Web en respuesta a las entradas, en donde editar el documento de página incluye la adición (324) de código gobernado por eventos al documento, siendo el código gobernado por eventos asociado al componente e incluyendo código que es ejecutado por el ordenador del lado cliente (170), caracterizado porque el código gobernado por eventos es capaz de pedir acceso a y manipular datos en la base de datos.
15. Método según la reivindicación 14, además caracterizado porque posee al menos algunos de las entradas que indican que el código gobernado por eventos previamente creado debe editarse, incluyendo además el método la edición (342) del código gobernado por eventos previamente creado para crear nuevo código que se añade (344) al documento de página.
16. Método según la reivindicación 14, además caracterizado porque posee por lo menos algunas de las entradas que indican que una propiedad de los componentes debe tener un valor en particular, incluyendo además la modificación (358) del código gobernado por eventos para especificar el valor en particular.
17. Método según la reivindicación 14, además caracterizado porque se envía (368) el documento de página a un ordenador del lado servidor (140)
18. Método según la reivindicación 17, además caracterizado porque se cifra (366) el documento de página antes de mandar el documento de página al ordenador del lado servidor.
19. Método según la reivindicación 14, además caracterizado porque por lo menos algunas de las entradas que indican que el componente debería enlazarse con un segundo componente de un segundo documento de página para actualizarse automáticamente cuando se muestre en pantalla la segunda página Web conjuntamente con la primera página Web.
20. Método para proporcionar acceso a información almacenada caracterizado porque comprende:
la recepción (706) en un ordenador del lado servidor (140), de una petición desde un ordenador del lado cliente (170), habiéndose en ello generado la petición de información en respuesta a la ejecución por parte del ordenador del lado cliente de código gobernado por impulsos incluido dentro de un documento de página Web, caracterizado porque el código gobernado por impulsos es capaz de pedir acceso a y manipular datos en una base de datos (914) accesible por el ordenador del lado servidor,
procesar (714) la petición de identificación de la información almacenada correspondiente a la petición
crear (714) un mensaje que incluya la información almacenada, y
enviar (716) el mensaje al ordenador del lado cliente de modo que el ordenador del lado cliente pueda mostrar en pantalla la información almacenada en respuesta a la ejecución del código gobernado por eventos.
21. Método según la reivindicación 20, además caracterizado porque la petición es una petición para un segundo documento de página Web, y el procesamiento (714) supone también identificar la información almacenada como segundo documento de página Web, y crear el mensaje supone también incluir el segundo documento de página Web en el mensaje.
22. Método según la reivindicación 23, además caracterizado porque comprende:
determinar (708) si un usuario del ordenador del lado servidor tiene derechos a acceder al segundo documento de página Web
y si el usuario no tiene el acceso, el método obviando la creación del mensaje y el envío del mensaje.
23. Método según la reivindicación 20, además caracterizado porque la petición es una petición de datos asociados a la base de datos, y procesar (714) comprende identificar la base de datos y obtener los datos de la base datos, y crear el mensaje comprende incluir los datos dentro del mensaje.
24. Método según la reivindicación 23 además caracterizado porque este comprende
determinar (708) si un usuario del ordenador del lado cliente tiene privilegios de acceso a los datos y
si el usuario no tiene esos derechos, el método puentea la creación del mensaje y el envío el mensaje.
25. Método para interactuar con una página Web desplegada en pantalla en un ordenador del lado cliente (170, caracterizado porque el método comprende:
mostrar en pantalla (1018) una página Web asociada a un documento de página Web, en donde el documento de página Web comprende código gobernado por eventos asociado a uno o varios componentes de página Web del documento de página Web, caracterizado porque el código gobernado por eventos es capaz de realizar una petición de acceso a y de manipulación de datos en una base de datos (914) accesible por un ordenador (14) del lado cliente, y
ejecutar (1030, 1032) el código gobernado por eventos incluido en el documento de página Web.
26. Método según la reivindicación 25, además caracterizado porque se ejecuta el código gobernado por eventos en respuesta a la recepción (1008) de una entrada.
27. Método según la reivindicación 26, además caracterizado porque la entrada indica que se ha realizado la petición de una segunda página Web (1420), incluyendo además el método la petición (1308) de la segunda página Web por parte de un ordenador (140) del lado cliente.
28. Método según la reivindicación 27, además caracterizado porque la segunda página Web es recibida (1310) y mostrada (1318) por el ordenador del lado servidor.
29. Método según la reivindicación 28, además caracterizado porque la primera página Web y la segunda página Web muestran un componente (1412) enlazado con la primera página y un componente (1425) enlazado con la segunda página Web, los cuales están enlazados entre la primera página Web (1410) y la segunda página Web (1420).
30. Método según la reivindicación 29, además caracterizado porque:
se recibe (1502) una entrada adicional que indica que el usuario desea que la primera página Web indique datos adicionales que están asociados al componente enlazado con la primera página
se crea (1512) una petición de información que pide datos adicionales y aquellos datos enlazados que están asociados al componente enlazado con la primera página
se envía (1514) la petición de información al ordenador del lado servidor,
se recibe (1516) los datos adicionales y los datos enlazados
se muestran en pantalla (1518) los datos adicionales conjuntamente con el componente enlazado con la primera página, y
se muestran (1518) los datos enlazados conjuntamente con el componente enlazado con la segunda página.
31. Método según la reivindicación 26, además caracterizado porque la entrada indica que se ha realizado una petición de datos, incluyéndo en ello el método además la petición (1514) de los datos a un ordenador del lado servidor.
32. Método según la reivindicación 31, además caracterizado porque los datos son recibidos en (1516) y mostrados (1518) por el ordenador del lado servidor, mostrándose en la página Web los datos conjuntamente con un componente relacionado con la base de datos.
33. Método según la reivindicación 32, además caracterizado porque las variables de estado almacenadas en el ordenador del lado servidor, en donde las variables de estado indican que registros en una base de datos asociada a los datos, incluyen datos que deberían de ser accedidos próximamente en caso de recibir el ordenador del lado cliente una petición suplementaria de datos por parte del usuario.
34. Procedimiento según la reivindicación 26, además caracterizado porque la entrada (1010) indica que el usuario desea almacenar la página web y los datos asociados en un ordenador del lado cliente, comprendiendo en ello el procedimiento además el almacenamiento (1040) de la página Web y los datos asociados en el ordenador del lado cliente
35. Procedimiento según la reivindicación 34, además caracterizado porque las etapas consisten en:
determinar (1038) si la página Web y los datos asociados pueden guardarse en el ordenador del lado cliente, y
si no existe autorización para guardar la página Web y los datos asociados en el ordenador del lado cliente, ignorar el almacenamiento de la página Web y de los datos asociados.
36. Procedimiento según la reivindicación 25, además caracterizado porque comprende
la creación (1030) basada en el código dirigido por eventos, de una petición de información;
el envío (1030) de la demanda de información en el ordenador del lado servidor;
la recepción (1032) que proviene del ordenador del lado servidor, de un mensaje que comprende las informaciones almacenadas correspondiendo a la petición de información; y
el despliegue (1032) de la información guardada en respuesta a la ejecución del código dirigido por eventos.
37. Sistema de desarrollo, publicación, descarga y ejecución de páginas Web caracterizado porque que comprende
un ordenador de desarrollo (110) de acuerdo con la reivindicación 4 que tiene primeros medios de procesador (612), un primer monitor (618), un primer dispositivo de almacenamiento de datos (616), un primer dispositivo de entrada del usuario (614), y un primer dispositivo de comunicaciones (622), en el cuál el primer procesador puede inicializar (301) una herramienta de desarrollo de páginas Web, gracias al cuál un desarrollador humano, con la ayuda del primer dispositivo puede crear un documento de página Web colocando (320) un componente en una página Web desplegada en el primer monitor, de la cuál la herramienta de desarrollo recupera código dirigido por eventos correspondiente al componente del primer medio de almacenamiento de datos, ejecutándose este código dirigido por eventos por el ordenador del lado cliente, el desplegará la página Web, siendo capaz el código dirigido por eventos de pedir acceso a y manipulación de datos en la base de datos, y la herramienta de desarrollo de páginas Web también accede (324) a información de base de datos si el componente es un componente relacionado con la base de datos, crea (334) código de enlace si el desarrollador humano indica que el componente relacionado con la base da datos debería ser enlazado con un segundo componente relacionado con la base de datos en una segunda página Web, y coloca (324) el código dirigido por eventos, la información de base de datos, y código de enlace en el documento de página Web, y cuando el desarrollador humano indica que la página Web definida por el documento de página Web debería publicarse, el ordenador de desarrollo de páginas Web, por vía del primer medio de comunicaciones, envía (368) el documento de página Web a un ordenador del lado servidor (140) a través de un primer sistema de red;
el ordenador del lado servidor (14) que tiene por lo menos un medio de comunicaciones (910), un segundo medio de procesador (912), un segundo medio de almacenamiento de datos (914), en donde se recibe (702) el primer documento de página Web desde el primer sistema de red por vía de por lo menos un medios de comunicaciones y se almacena (704) en el segundo medio de almacenamiento, y cuando un ordenador del lado cliente (170) pide (706) el documento de página Web, el ordenador del lado servidor recupera (714) el documento de página Web desde el segundo medio de almacenamiento de datos y envía (716) por vía de por lo menos un medio de comunicaciones el documento de página Web al ordenador del lado cliente a través de un segundo sistema de red (102) que podría ser el primer sistema de red, y cuando la página Web en el ordenador del lado cliente pide (706) los datos de una base de datos, el ordenador del lado servidor recupera (714) y envía (716) los datos, por vía de por lo menos un medio de comunicaciones al ordenador del lado cliente, y
el ordenador del lado cliente (170) que posee un tercer medio de procesador (1212), un segundo monitor (1218), un tercer medio de almacenamiento de datos (1216), y un segundo medio de comunicaciones (1222), en donde el tercer medio de procesador inicializa (1002) un navegador que pide (1016) por vía de un segundo medio de comunicaciones el documento de página del ordenador del lado servidor, y, después de que el segundo medio de comunicaciones recibe (1018) el documento de página Web, el tercer medio de procesador permite desplegarse (1018) a la página Web que se corresponde con el documento de página Web por vía del segundo monitor, y, si (1020) la página Web incluye el componente relacionado con la base de datos, el procesador ejecuta el código gobernado por impulsos que se corresponde con el componente relacionado con la base de datos, causando que el ordenador del lado cliente envíe (1030) una petición de datos, por vía del tercer medio de comunicaciones al ordenador del lado servidor a través del segundo sistema de red, y, después de recibir (1032) los datos correspondientes a esa petición, el procesador causa que los se desplieguen (1032) dentro del componente relacionado con la base de datos en la página Web y guarda en memoria (1034) las variables de estado, para su uso si se piden datos adicionales, que indican qué datos han sido desplegados, y, si el usuario humano pide que el documento de página Web se almacene localmente en el ordenador del lado cliente, el tercer procesador produce que el documento de página Web, los datos y datos adicionales, y las variables de estado se guarden (1040) en memoria en el tercer medio de almacenamiento, de modo que el usuario humano puede modificar off-line los datos y los datos adicionales, volver a conectar mas tarde con el ordenador del lado servidor y descargar (110) los datos modificados en el ordenador del lado servidor, el cuál después modificaría (1124) la base de datos usando los datos modificados.
ES00905630T 1999-01-15 2000-01-14 Metodo y sistema de desarrollo, despliegue y ejecucion de paginas web a traves de base de datos. Expired - Lifetime ES2212768T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/231,123 US6631512B1 (en) 1999-01-15 1999-01-15 Method and system for database-driven, scalable web page development, deployment-download, and execution
US231123 1999-01-15

Publications (1)

Publication Number Publication Date
ES2212768T3 true ES2212768T3 (es) 2004-08-01

Family

ID=22867823

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00905630T Expired - Lifetime ES2212768T3 (es) 1999-01-15 2000-01-14 Metodo y sistema de desarrollo, despliegue y ejecucion de paginas web a traves de base de datos.

Country Status (8)

Country Link
US (2) US6631512B1 (es)
EP (1) EP1145151B1 (es)
AT (1) ATE252747T1 (es)
AU (1) AU768423B2 (es)
CA (1) CA2358531A1 (es)
DE (1) DE60006065T2 (es)
ES (1) ES2212768T3 (es)
WO (1) WO2000042528A1 (es)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8418131B2 (en) * 1998-11-25 2013-04-09 Helmut Emmelmann Interactive server side components
US6714219B2 (en) * 1998-12-31 2004-03-30 Microsoft Corporation Drag and drop creation and editing of a page incorporating scripts
US6631512B1 (en) * 1999-01-15 2003-10-07 Gillis E Onyeabor Method and system for database-driven, scalable web page development, deployment-download, and execution
US6356933B2 (en) 1999-09-07 2002-03-12 Citrix Systems, Inc. Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
US6594691B1 (en) * 1999-10-28 2003-07-15 Surfnet Media Group, Inc. Method and system for adding function to a web page
GB2361341A (en) * 2000-03-03 2001-10-17 Knowhow Systems Ltd Document creation and delivery
US20090100168A1 (en) * 2000-05-24 2009-04-16 Harris Scott C Automatic location detection in a computing environment
CA2322594C (en) * 2000-10-06 2005-01-11 Ibm Canada Limited-Ibm Canada Limitee System and method for managing web page components
US7051084B1 (en) * 2000-11-02 2006-05-23 Citrix Systems, Inc. Methods and apparatus for regenerating and transmitting a partial page
US7346842B1 (en) 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US6823359B1 (en) * 2000-11-21 2004-11-23 Pfs Trader Tools, Llc System and method for continually updating dynamic data
US7130889B2 (en) * 2000-11-29 2006-10-31 Ncr Corporation Method of printing information by a network kiosk
US7194743B2 (en) * 2000-12-12 2007-03-20 Citrix Systems, Inc. Methods and apparatus for communicating changes between a user interface and an executing application using property paths
DE50111786D1 (de) * 2000-12-15 2007-02-15 Siemens Ag Verschlüsselung von Steuerungsprogrammen
US20020078103A1 (en) * 2000-12-20 2002-06-20 Gorman William Phillip Wizard development kit
ATE497214T1 (de) * 2000-12-22 2011-02-15 Research In Motion Ltd System und verfahren zum navigieren durch information mit einem drahtlosen kommunikationsgerät
US7165088B2 (en) * 2001-01-24 2007-01-16 Microsoft Corporation System and method for incremental and reversible data migration and feature deployment
US7739590B2 (en) * 2001-03-01 2010-06-15 Accenture Llp Automatic generation of personal homepages for a sales force
US7150001B1 (en) * 2001-03-19 2006-12-12 Microsoft Corporation System and method to facilitate design-time component discovery
US7325047B2 (en) * 2001-05-23 2008-01-29 International Business Machines Corporation Dynamic undeployment of services in a computing network
US6862620B2 (en) * 2001-06-07 2005-03-01 International Business Machines Corporation Web page monitoring system and methods therefor
US7406664B1 (en) * 2001-06-15 2008-07-29 Microsoft Corporation System for integrating HTML Web site views into application file dialogs
US7287227B2 (en) * 2001-06-29 2007-10-23 Ve Enterprises Llc System and method for editing web pages in a client/server architecture
US20090006543A1 (en) * 2001-08-20 2009-01-01 Masterobjects System and method for asynchronous retrieval of information based on incremental user input
DE20212755U1 (de) * 2001-08-20 2002-11-28 Softworks AG, 80797 München Daten-Kommunikationssystem, sowie zentraler Rechner zur Verwendung in einem Daten-Kommunikationssystem
EP1296251A1 (en) * 2001-09-19 2003-03-26 Kreter, Martin Document creation system
US7278161B2 (en) 2001-10-01 2007-10-02 International Business Machines Corporation Protecting a data processing system from attack by a vandal who uses a vulnerability scanner
WO2003062985A1 (en) * 2002-01-17 2003-07-31 Simdesk Technologies, Inc. On line presentation software using website development tools
US7194473B1 (en) * 2002-02-15 2007-03-20 Oracle International Corporation Application platform development environment
US7444410B1 (en) * 2002-02-15 2008-10-28 Oracle International Corporation Application platform execution environment
US20030187968A1 (en) * 2002-03-28 2003-10-02 Gateway, Inc. Layer menus and multiple page displays for web GUI
US7200645B2 (en) 2002-06-26 2007-04-03 International Business Machines Corporation Running dynamic web pages off-line with a wizard
US7249313B2 (en) 2002-06-26 2007-07-24 International Business Machines Corporation Creating and utilizing a wizard to capture an application's interdependencies between web pages and data accesses for running the application's downloadable dynamic web pages off-line
US8046682B2 (en) * 2002-12-02 2011-10-25 Siebel Systems, Inc. Method and system for accessing business applications via a standard interface
US7958186B2 (en) * 2003-03-14 2011-06-07 Sap Ag Restructuring integration system
JP2005122377A (ja) * 2003-10-15 2005-05-12 Konica Minolta Business Technologies Inc 制御装置、制御指示装置、制御プログラムおよび制御指示プログラム
US8527943B1 (en) * 2004-02-12 2013-09-03 Raju V. Chiluvuri System and method of application development
US8782200B2 (en) * 2004-09-14 2014-07-15 Sitespect, Inc. System and method for optimizing website visitor actions
CN101297268B (zh) * 2005-03-03 2016-05-25 汤姆森路透社全球资源公司 用于设计自动业务过程应用程序的集成系统、工具和方法
US9632758B2 (en) * 2005-08-24 2017-04-25 International Business Machines Corporation System and method for generating content rules for a website
US7881999B2 (en) * 2005-12-29 2011-02-01 Sap Ag System and method for generating a reimbursement request
US7783985B2 (en) * 2006-01-04 2010-08-24 Citrix Systems, Inc. Systems and methods for transferring data between computing devices
US9454734B2 (en) 2006-02-21 2016-09-27 International Business Machines Corporation Heuristic assembly of a component based application
US20070232333A1 (en) * 2006-03-30 2007-10-04 Sap Ag Method and system for providing work related information in a mobile environment
US20080120723A1 (en) * 2006-10-31 2008-05-22 Bellsouth Intellectual Property Corporation Methods, systems and computer program products for authorizing access to features of software applications
US8095910B2 (en) * 2007-04-10 2012-01-10 Microsoft Corporation Interruptible client-side scripts
US20080263142A1 (en) * 2007-04-20 2008-10-23 Computer Associates Think, Inc. Meta Data Driven User Interface System and Method
US20090013245A1 (en) * 2007-04-27 2009-01-08 Bea Systems, Inc. Enterprise web application constructor xml editor framework
US8201096B2 (en) 2007-06-09 2012-06-12 Apple Inc. Browsing or searching user interfaces and other aspects
US8190707B2 (en) 2007-10-20 2012-05-29 Citrix Systems, Inc. System and method for transferring data among computing environments
US9635135B1 (en) 2008-04-21 2017-04-25 United Services Automobile Association (Usaa) Systems and methods for handling replies to transaction requests
CN101350822B (zh) * 2008-09-08 2011-06-15 南开大学 一种Internet恶意代码的发现和追踪方法
WO2010043024A1 (en) * 2008-10-19 2010-04-22 Research In Motion Limited Web application framework for enabling optimum rendering performance on a client based upon detected parameters of the client
WO2010043025A1 (en) * 2008-10-19 2010-04-22 Research In Motion Limited Web application framework for enabling the creation of applications that provide an interface with clients that is independent of scripting capability
US20100169169A1 (en) * 2008-12-31 2010-07-01 International Business Machines Corporation System and method for using transaction statistics to facilitate checkout variance investigation
US8515979B2 (en) * 2010-06-18 2013-08-20 Verizon Patent And Licensing, Inc. Cross application execution service
KR101689745B1 (ko) * 2010-09-06 2016-12-27 삼성전자주식회사 스크립트에 의한 동적 리소스 정보를 처리하는 웹 브라우징 시스템 및 방법
US8689181B2 (en) * 2010-11-23 2014-04-01 Axeda Corporation Scripting web services
CN103858121B (zh) * 2012-10-09 2017-07-21 华为技术有限公司 使Web应用获取数据库变化的方法和系统
CN115481341A (zh) * 2021-06-15 2022-12-16 博泰车联网科技(上海)股份有限公司 页面导航方法及计算机存储介质
CN114969474A (zh) * 2022-03-31 2022-08-30 安徽希施玛数据科技有限公司 网页数据采集方法、网页数据采集装置和存储介质
CN115473939B (zh) * 2022-07-27 2025-10-10 北京仁科互动网络技术有限公司 基于客户关系管理crm系统的页面通信方法和装置
CN116361748B (zh) * 2023-04-03 2023-09-15 武汉金力软件有限公司 一种软件供应链安全检测方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835712A (en) * 1996-05-03 1998-11-10 Webmate Technologies, Inc. Client-server system using embedded hypertext tags for application and database development
US5784058A (en) * 1996-05-28 1998-07-21 Sun Microsystems, Inc. User-controllable persistent browser display pages
US5961601A (en) * 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
US5742768A (en) 1996-07-16 1998-04-21 Silicon Graphics, Inc. System and method for providing and displaying a web page having an embedded menu
US6225995B1 (en) * 1997-10-31 2001-05-01 Oracle Corporaton Method and apparatus for incorporating state information into a URL
US6247056B1 (en) * 1997-02-03 2001-06-12 Oracle Corporation Method and apparatus for handling client request with a distributed web application server
US6105012A (en) 1997-04-22 2000-08-15 Sun Microsystems, Inc. Security system and method for financial institution server and client web browser
US6085120A (en) * 1997-11-17 2000-07-04 International Business Machines Corporation Data system processing and method for creating application extension
US6460071B1 (en) * 1997-11-21 2002-10-01 International Business Machines Corporation System and method for managing client application state in a stateless web browser environment
US6353839B1 (en) * 1998-04-30 2002-03-05 Openwave Systems Inc. Method for inline variables management in a hypermedia display language
US6529910B1 (en) * 1998-09-18 2003-03-04 David E. Fleskes Apparatus and method for automatically generating worldwide web pages based on real world domain data
US6631512B1 (en) * 1999-01-15 2003-10-07 Gillis E Onyeabor Method and system for database-driven, scalable web page development, deployment-download, and execution
US6397217B1 (en) * 1999-03-04 2002-05-28 Futuretense, Inc. Hierarchical caching techniques for efficient dynamic page generation

Also Published As

Publication number Publication date
EP1145151A1 (en) 2001-10-17
DE60006065D1 (de) 2003-11-27
US6631512B1 (en) 2003-10-07
WO2000042528A1 (en) 2000-07-20
EP1145151B1 (en) 2003-10-22
ATE252747T1 (de) 2003-11-15
US20040143591A1 (en) 2004-07-22
AU768423B2 (en) 2003-12-11
DE60006065T2 (de) 2004-07-08
AU2728300A (en) 2000-08-01
CA2358531A1 (en) 2000-07-20

Similar Documents

Publication Publication Date Title
AU768423B2 (en) Method and system for database-driven, scalable web page development, deployment-download, and execution
US9591000B2 (en) Methods, systems, and computer readable media for authorization frameworks for web-based applications
US7379977B2 (en) System and method for display of multiple electronic pages
US5966441A (en) Method and apparatus for creating a secure autonomous network entity of a network component system
US9069869B1 (en) Storing on a client device data provided by a user to an online application
US7552482B2 (en) Data security system and method
US8701173B2 (en) System and method for providing silent sign on across distributed applications
US9015858B2 (en) Graphical user interface for seamless secure private collaboration
US8572757B1 (en) Seamless secure private collaboration across trust boundaries
US6188400B1 (en) Remote scripting of local objects
US20040255289A1 (en) Remote access software solution for rapidly deploying a desktop
US7130888B1 (en) Method and apparatus for controlling a computer over a TCP/IP protocol network
US7188240B1 (en) Method and system for encryption of web browser cache
EP2000926A2 (en) Web application configuration method and system
CN101785243A (zh) 可传递受限安全令牌
JP2007133871A (ja) ポートレット構成データを交換するための方法、ポータル、およびコンピュータ・プログラム
US7448032B2 (en) Method and apparatus for integration of URL into standard file systems
JP2003515199A (ja) アクティブ・ファイル・システムのための方法および装置
US20050050455A1 (en) Method and apparatus for supporting object caching in a web presentation architecture
TW487879B (en) Internet document creation system and document-format generator therefor
JP2002229452A (ja) 情報画像ファイルを記憶したデータ構造記憶媒体、当該情報画像ファイルを取り扱うシステム、当該システムを動作させる動作方法と動作させるプログラム、当該プログラムを記録した記録媒体、および情報端末装置、当該端末装置を動作させるためのプログラム、当該プログラムを記録した記録媒体。
US20260141109A1 (en) Dynamic obfuscation of information
JP2002014963A (ja) データベース管理システム及びその開発システム
JP2003044432A (ja) プログラム開発システム
CN119720251A (zh) 一种基于加密数据的数据处理方法、装置、设备及介质