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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation 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.
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.
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.
Las desventajas arriba descritas y otras
derivadas del anterior estado de la técnica se solucionan tal como
se define en las reivindicaciones.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
| 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)
| 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 |
-
1999
- 1999-01-15 US US09/231,123 patent/US6631512B1/en not_active Expired - Fee Related
-
2000
- 2000-01-14 CA CA002358531A patent/CA2358531A1/en not_active Abandoned
- 2000-01-14 WO PCT/US2000/001016 patent/WO2000042528A1/en not_active Ceased
- 2000-01-14 EP EP00905630A patent/EP1145151B1/en not_active Expired - Lifetime
- 2000-01-14 AU AU27283/00A patent/AU768423B2/en not_active Ceased
- 2000-01-14 AT AT00905630T patent/ATE252747T1/de not_active IP Right Cessation
- 2000-01-14 ES ES00905630T patent/ES2212768T3/es not_active Expired - Lifetime
- 2000-01-14 DE DE60006065T patent/DE60006065T2/de not_active Expired - Fee Related
-
2003
- 2003-08-05 US US10/635,084 patent/US20040143591A1/en not_active Abandoned
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) | 一种基于加密数据的数据处理方法、装置、设备及介质 |