ES2616659T3 - Técnicas para modificar un documento utilizando una superficie de transferencia latente - Google Patents

Técnicas para modificar un documento utilizando una superficie de transferencia latente Download PDF

Info

Publication number
ES2616659T3
ES2616659T3 ES09739385.4T ES09739385T ES2616659T3 ES 2616659 T3 ES2616659 T3 ES 2616659T3 ES 09739385 T ES09739385 T ES 09739385T ES 2616659 T3 ES2616659 T3 ES 2616659T3
Authority
ES
Spain
Prior art keywords
document
transfer
media content
latent
transfer surface
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.)
Active
Application number
ES09739385.4T
Other languages
English (en)
Inventor
Paul Mcdonald
Eric Bailey
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp, Microsoft Technology Licensing LLC filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2616659T3 publication Critical patent/ES2616659T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Data Mining & Analysis (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • Electrostatic Charge, Transfer And Separation In Electrography (AREA)
  • User Interface Of Digital Computer (AREA)
  • Combination Of More Than One Step In Electrophotography (AREA)
  • Storage Device Security (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

Un procedimiento para implementar prestaciones de edición para un programa (140) de aplicación que comprende un subsistema (200) de edición de documentos operativo para gestionar operaciones de edición para un documento (128), comprendiendo el subsistema (200) de edición de documentos un módulo (228-1) de creación de superficies de transferencia y un módulo (228-2) de control de transferencia acoplado de forma comunicativa con el módulo de creación de superficies de transferencia, ejecutado el programa (140) de aplicación en un entorno de tiempo de ejecución proporcionado por un navegador (122) web, teniendo un ordenador (120) un portapapeles del sistema y ejecutando el navegador web, llevándose a cabo el procedimiento mediante el programa de aplicación y comprendiendo el procedimiento: embeber (402) una superficie (130) de transferencia latente en un documento (128), siendo utilizada la superficie de transferencia latente como una estructura de almacenamiento temporal, siendo la superficie de transferencia latente un cuadro editable que es controlado mediante el programa de aplicación y es invisible para un usuario; recibir (404) una solicitud (310, 312) de transferencia del navegador web para transferir el contenido de medios para el documento, siendo la solicitud de transferencia una de una solicitud de transferencia de copia para copiar el contenido de medios del documento a un portapapeles (142) del sistema del ordenador, una solicitud de transferencia de corte para mover el contenido de medios del documento al portapapeles (142) del sistema y una solicitud de transferencia de pegado para pegar el contenido de medios del portapapeles (142) del sistema al documento; transferir (406) el contenido de medios del documento a la superficie de transferencia latente en respuesta a la solicitud de transferencia de copia o a la solicitud de transferencia de corte; y transferir el contenido de medios del portapapeles (142) del sistema a la superficie de transferencia latente en respuesta a la solicitud de transferencia de pegado.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Tecnicas para modificar un documento utilizando una superficie de transferencia latente Antecedentes
Los programas de aplicacion, tales como programas de aplicacion de tratamiento de texto, han sido, tradicionalmente, programas autonomos de soporte logico instalados en un ordenador personal que proporcionan una funcionalidad de edicion enriquecida y de formateado para documentos almacenados en ficheros locales o basados en red. En general, estos programas de aplicacion son muy grandes, requiriendo muchos megabytes de espacio en el disco para su instalacion. Sin embargo, la reciente tendencia es la de un desarrollo colaborativo de documentos por parte de diversos usuarios remotos que pueden no tener acceso a los mismos programas autonomos de aplicacion y pudiendose almacenar los documentos en redes remotas accesibles por Internet. Esto ha dado lugar al desarrollo de programas de aplicacion que pueden ser descargados mediante un navegador convencional de la red mundial de Internet (“Web”), permitiendo, de ese modo, que los usuarios editen documentos remotos en una red sin la necesidad de instalar un programa autonomo tradicional de aplicacion.
Una tecnica para proporcionar una funcionalidad de programa de aplicacion basado en Web implica desarrollar paginas electronicas que utilizan prestaciones de edicion disponibles en muchos programas de navegador web. Esta tecnica tiene la ventaja de ser pequena y rapida con poco esfuerzo de desarrollo. Sin embargo, las prestaciones limitadas de edicion proporcionadas por estos navegadores web no pueden compararse, en general, con la capacidad rica en prestaciones de los programas autonomos tradicionales de aplicacion. Ademas, las prestaciones de edicion disponibles pueden variar entre los distintos programas de navegador web, haciendo que sea diffcil proporcionar una experiencia de usuario coherente entre todos los navegadores web.
Otra tecnica para proporcionar una funcionalidad de programa de aplicacion basado en Web es implementar un programa completo de aplicacion que se ejecuta en un navegador utilizando una tecnologfa de tiempo de ejecucion multinavegador, tal como JAVA de SUN MICROSYSTEMS, FLASH de ADOBE SYSTEMS o JavaScript Asmcrono y XML (“AJAX”). Aunque permiten al desarrollador un control completo sobre las prestaciones y capacidades del programa de aplicacion, este procedimiento implica, en general, un esfuerzo de desarrollo considerable y requiere una implementacion de una funcionalidad de edicion de bajo nivel, tal como la presentacion de texto en una ventana segun es escrito por el usuario, el movimiento por el texto de un cursor parpadeante o la redistribucion constante del contenido de la ventana que escribe el usuario. Ademas, debido a que se ejecuta el programa de aplicacion en una tecnologfa de tiempo de ejecucion basada en navegador, a menudo es lento de ejecucion y puede no ser capaz de proporcionar una interfaz adecuadamente sensible de usuario.
Las presentes mejoras han sido necesarias con respecto a estas y otras consideraciones.
El documento US 2006/080369 A1 versa acerca de permitir automaticamente la capacidad de seguimiento de entidades numericas, alfabeticas, alfanumericas, de caracteres o cadenas, tales como constantes cnticas o calculos, ecuaciones, funciones y procedimientos clave y para determinar la procedencia de tales entidades en un documento, una hoja de trabajo, una hoja de calculo, una tabla, un fichero de datos, un fichero de medios o un programa de soporte logico. Se divulga que genera metadatos que describen la procedencia de tal informacion cntica, se embeben los metadatos de procedencia en un documento que contiene la informacion cntica, y se propagan los metadatos de procedencia junto con la informacion segun es copiada, cortada, pegada, movida, modificada y/o reutilizada. Los metadatos de procedencia incluyen informacion relacionada con el documento o la ubicacion de los que provino originalmente la informacion cntica, y el documento intermedio o la ubicacion de los provino en ultima instancia la informacion cntica.
Sumario
El objeto de la presente invencion es mejorar la fiabilidad de los sistemas de la tecnica anterior. Se soluciona este objeto mediante la materia objeto de las reivindicaciones independientes. En las reivindicaciones dependientes se definen realizaciones preferentes.
Se proporciona este Sumario para presentar una seleccion de conceptos de una forma simplificada que son descritos adicionalmente mas adelante en la Descripcion detallada. No se pretende que el presente Sumario identifique prestaciones clave o prestaciones esenciales de la materia objeto reivindicada, ni se lo considera una ayuda para determinar el alcance de la materia objeto reivindicada.
Las diversas realizaciones estan dirigidas, en general, a tecnicas para modificar, cambiar o editar de otra manera un documento en una red desde un dispositivo remoto. En una realizacion, por ejemplo, un aparato puede comprender un dispositivo cliente que tiene un navegador web. El dispositivo cliente puede recuperar un programa de aplicacion de un servidor a traves de una red utilizando el navegador web, y ejecutar el programa de aplicacion en el dispositivo cliente para presentar el documento utilizando una ventana del navegador web. Entonces, un usuario puede editar el documento mediante la ventana del navegador web y, una vez modificado, almacenar el documento modificado en el servidor.
5
10
15
20
25
30
35
40
45
50
55
El dispositivo cliente puede utilizar un subsistema novedoso y mejorado de edicion de documentos para gestionar, en general, operaciones de edicion para un documento. En una realizacion, por ejemplo, el subsistema de edicion de documentos puede comprender un modulo de creacion de superficies de transferencia operativo para embeber una superficie de transferencia latente en el documento. Un modulo de control de transferencia puede estar acoplado de forma comunicativa al modulo de creacion de superficies de transferencia. El modulo de control de transferencia puede ser operativo para recibir una solicitud de transferencia para transferir contenido de medios para el documento, y transferir el contenido de medios utilizando la superficie de transferencia latente en respuesta a la solicitud de transferencia. Ejemplos de solicitudes de transferencia pueden incluir, sin limitacion, solicitudes de transferencia de copia, solicitudes de transferencia de corte, solicitudes de transferencia de pegado, solicitudes de transferencia de pegado especial, etcetera. Se describen y reivindican otras realizaciones.
Estas y otras prestaciones y ventajas seran evidentes a partir de la lectura de la siguiente descripcion detallada y de una revision de los dibujos asociados. Se debe comprender que tanto la anterior descripcion general como la siguiente descripcion detallada son unicamente explicativas y no son restrictivas de aspectos reivindicados.
Breve descripcion de los dibujos
La FIG. 1 ilustra una realizacion de un primer sistema.
La FIG. 2 ilustra una realizacion de un subsistema de edicion de documentos.
La FIG. 3 ilustra una realizacion de un segundo sistema.
La FIG. 4 ilustra una realizacion de un flujo logico.
La FIG. 5 ilustra una realizacion de una arquitectura informatica.
La FIG. 6 ilustra una realizacion de un arffculo.
Descripcion detallada
Diversas realizaciones incluyen estructuras ffsicas o logicas dispuestas para llevar a cabo ciertos servicios, operaciones o funciones. Las estructuras pueden comprender estructuras ffsicas, estructuras logicas o una combinacion de ambas. Las estructuras ffsicas o logicas se implementan utilizando elementos de soporte ffsico, elementos de soporte logico o una combinacion de ambos. Sin embargo, se pretende que las descripciones de realizaciones con referencia a elementos particulares de soporte ffsico o de soporte logico sean ejemplos y no limitaciones. Las decisiones de utilizar elementos de soporte ffsico o de soporte logico para poner en practica realmente una realizacion depende del numero de factores externos, tales como la velocidad de computo, los niveles de potencia, las tolerancias al calor, el presupuesto del ciclo de procesamiento, las velocidades de datos de entrada, las velocidades de datos de salida, los recursos de memoria, las velocidades del bus de datos, y otras restricciones de diseno o de rendimiento deseados. Ademas, las estructuras ffsicas o logicas pueden tener conexiones ffsicas o logicas correspondientes para comunicar informacion entre las estructuras en forma de senales o mensajes electronicos. Las conexiones pueden comprender conexiones alambricas y/o inalambricas, segun sea apropiado para la informacion o la estructura particular. Merece la pena hacer notar que cualquier referencia a “una realizacion” significa que un rasgo, una estructura o una caracteffstica particular descrito en conexion con la realizacion esta incluido en al menos una realizacion. La presencia de la frase “en una realizacion” en diversos lugares en la memoria no hace referencia necesariamente en todos los casos a la misma realizacion.
Diversas realizaciones estan dirigidas, en general, a programas de aplicacion basados en servidor o basados en Web dispuestos para ser ejecutados por un dispositivo cliente utilizando una interfaz adecuada de comunicaciones, tal como un navegador web. Los programas de aplicacion basados en Web permiten que los operarios creen y editen documentos en lmea desde un dispositivo cliente sin necesidad de que el dispositivo cliente implemente programas autonomos de aplicacion. Ademas, los programas de aplicacion basados en Web permiten la colaboracion en tiempo real con otros operarios.
Los programas de aplicacion pueden incluir cualquier tipo de programa de aplicacion que sea capaz de crear, modificar, procesar y gestionar de otra manera documentos. Ejemplos de documentos pueden incluir, sin limitacion, documentos de tratamiento de textos, documentos de hoja de calculo, documentos de gestion de informacion personal, documentos de presentacion, documentos de notas, documentos de base de datos, documentos de publicacion, documentos de entrada de datos, documentos de diagrama, documentos de proyectos, documentos de formularios, documentos de Internet, documentos de lenguaje de marcado, documentos de lenguaje de marcado de hipertexto (HTML), documentos de HTML extensible (XHTML), documentos de lenguaje ampliable de marcado (XML), documentos de lenguaje generalizado de marcado (GML), documentos de GML estandar (SGML), documentos de lenguaje ligero de marcado (LML), documentos de lenguaje de marcado de interfaz de usuario (UIML), documentos de lenguaje de marcado de graficos vectoriales (VGML), documentos basados en Web, documentos en lmea, paginas electronicas, etcetera. Ejemplos de programas de aplicacion pueden incluir, sin limitacion, cualquiera de los programas de aplicacion incluidos en el grupo de productividad MICROSOFT® OFFICE, creado por Microsoft Corporation, Redmond, Washington, EE. UU. En una realizacion, por ejemplo, el programa de aplicacion puede comprender un programa de tratamiento de textos, tal como MICROSOFT WoRd. El programa de aplicacion MICROSOFT WORD puede ser implementado como un programa de aplicacion basado en Web
5
10
15
20
25
30
35
40
45
50
55
proporcionado por MICROSOFT OFFICE LIVE o GOOGLE® APPS. Sin embargo, las realizaciones no estan limitadas a este ejemplo.
En una realizacion, se implementa un programa de aplicacion, tal como un programa de tratamiento de textos en una tecnolog^a de tiempo de ejecucion multinavegador y proporciona un conjunto abundante de prestaciones de edicion comparable con el de programas autonomos tradicionales de tratamiento de textos. Las prestaciones de edicion pueden incluir cualquier orden, instruccion o directriz que impliquen la transferencia de contenido de medios entre diversos puntos finales. Ejemplos de prestaciones de edicion pueden incluir, sin limitacion, ordenes de copia, ordenes de corte, ordenes de pegado, ordenes de pegado especial, etcetera. Ejemplos de transferencias entre diversos puntos finales pueden incluir, sin limitacion, la transferencia de contenido de medios entre un documento y el portapapeles del sistema, entre dos documentos distintos, entre programas de aplicacion, entre un programa del sistema y un programa de aplicacion, entre objetos de soporte logico, etcetera. El programa de aplicacion puede implementar las prestaciones de edicion utilizando un subsistema de edicion de documentos disenado para soportar el programa de aplicacion. El subsistema de edicion de documentos puede implementarse en diversas partes de una red, tal como parte de un programa de aplicacion basado en Web ejecutado por un servidor, un programa de aplicacion basado en Web ejecutado por un dispositivo cliente, una interfaz de comunicaciones tal como un navegador web, otra red accesible o dispositivo cliente accesible, o una combinacion de tales opciones.
Las herramientas convencionales de edicion basadas en Web son insatisfactorias por varias razones. Por ejemplo, las herramientas existentes de edicion basadas en Web tienen capacidades limitadas para implementar prestaciones de edicion, en particular con respecto a la importacion y la exportacion de datos a un portapapeles del sistema. Esto es debido, en parte, a restricciones de seguridad impuestas por el propio navegador web. Por lo tanto, la edicion de documentos depende de las ordenes de edicion proporcionadas por el navegador web. Por ejemplo, cuando se proporciona al usuario una superficie editable de HTML, se puede pegar, entonces, cualquier contenido arbitrario de medios en la superficie. En este caso, el programa de tratamiento de textos tiene un control limitado sobre el estilo, el formateado y la presentacion del contenido arbitrario de medios pegado por un operario. Ademas, es diffcil detectar tales operaciones de edicion, y filtrar el contenido que funciona bien en todos los navegadores web y es utilizado por aplicaciones existentes. Existen problemas similares para copiar contenido de medios al portapapeles del sistema. Normalmente, el modelo de seleccion utilizado por un navegador web esta limitado. Por ejemplo, un operario no puede realizar selecciones simultaneas de distintas partes de un documento, o realizar una seleccion que abarque cualquier contenido embebido, tal como un cuadro en lmea (IFrame). Ademas, el contenido de medios copiado de un documento fuente (por ejemplo, un documento presentado como una pagina electronica) puede no tener un formato adecuado para un punto final diana.
Para solucionar estos y otros problemas, las realizaciones incluyen un subsistema de edicion de documentos dispuesto para proporcionar un conjunto mejorado de prestaciones de edicion comparable con un programa autonomo de tratamiento de textos. En vez de utilizar las prestaciones de edicion proporcionadas por el navegador web para implementar la funcionalidad de edicion de bajo nivel, un programa de tratamiento de textos puede utilizar un subsistema de edicion de documentos para implementar diversas prestaciones de edicion. En particular, el subsistema de edicion de documentos puede utilizar una superficie de transferencia latente para implementar las diversas prestaciones de edicion. La superficie de transferencia latente esta embebida en un documento y oculta de la vista del operario. Se puede utilizar la superficie de transferencia latente como una estructura de almacenamiento intermedio para el contenido de medios que es transferido entre un documento y un portapapeles del sistema. En un aspecto, la superficie de transferencia latente puede implementarse como un elemento iFRAME de HTML, entre otros.
Segun un aspecto presentado en la presente memoria, se puede editar un documento dentro de un navegador web utilizando la superficie de transferencia latente. En este sentido, un programa de tratamiento de textos ejecutado en el navegador web representa visualmente el documento en una ventana del navegador. Siempre que el subsistema de edicion de documentos recibe una solicitud de edicion (por ejemplo, una solicitud de transferencia de corte, una solicitud de transferencia de copia, una solicitud de transferencia de pegado, una solicitud de transferencia de pegado especial, etc.), utiliza la superficie embebida de transferencia latente para facilitar o llevar a cabo la solicitud de edicion. En general, el subsistema de edicion de documentos transfiere el contenido de medios a la superficie de transferencia latente, procesa el contenido de medios y luego transfiere el contenido procesado de medios al objeto diana (por ejemplo, un documento o el portapapeles del sistema). La etapa intermedia de procesamiento permite que se transforme o traduzca contenido seleccionado de medios a diversos formatos adecuados para un punto final diana, tal como un portapapeles del sistema en respuesta a una solicitud de transferencia de copia o una solicitud de transferencia de corte, un documento en respuesta a una solicitud de transferencia de pegado o una solicitud de pegado especial, etcetera. Las realizaciones no estan limitadas en este contexto.
Se debena apreciar que la materia objeto descrita anteriormente tambien puede ser implementada como un aparato controlado por un ordenador, un procedimiento informatico, un sistema informatico, o como un artfculo de fabricacion, tal como un medio legible por ordenador. Estas y otras diversas realizaciones seran evidentes con una lectura de la siguiente Descripcion detallada y una revision de los dibujos asociados.
5
10
15
20
25
30
35
40
45
50
55
60
La FIG. 1 ilustra un diagrama de bloques para un sistema 100. El sistema 100 puede comprender diversos elementos disenados para ser implementados por un entorno de una unica entidad o un entorno distribuido de multiples entidades. Se puede implementar cada elemento como un elemento de soporte ffsico, un elemento de soporte logico o cualquier combinacion de los mismos, segun se desee para un conjunto dado de parametros de diseno o restricciones de rendimiento. Ejemplos de elementos de soporte ffsico pueden incluir dispositivos, componentes, procesadores, microprocesadores, circuitos, elementos de circuito (por ejemplo, transistores, resistencias, condensadores, inductores, etcetera), circuitos integrados, circuitos integrados para aplicaciones espedficas (ASIC), dispositivos de logica programable (PLD), procesadores de senales digitales (DSP), matrices de puertas programables in situ (FPGA), unidades de memoria, puertas logicas, registros, dispositivos semiconductores, chips, microchips, conjuntos de chips, etcetera. Ejemplos de elementos de soporte logico pueden incluir cualquier componente de soporte logico, programas, aplicaciones, programas informaticos, programas de aplicacion, programas de sistema, programas de maquina, soporte logico de sistema operativo, soporte logico personalizado, soporte logico inalterable, modulos de soporte logico, rutinas, subrutinas, funciones, procedimientos, interfaces, interfaces de soporte logico, interfaces de programacion de aplicaciones (API), conjuntos de instrucciones, codigo informatico, codigo de ordenador, segmentos de codigo, segmentos de codigo de ordenador, palabras, valores, sfmbolos y cualquier combinacion de los mismos.
Segun se utilizan en la presente memoria, se pretende que los terminos “sistema”, “subsistema”, “componente” y “modulo” hagan referencia a una entidad de tipo ordenador, que comprende ya sea soporte ffsico, una combinacion de soporte ffsico y de soporte logico, o soporte logico que se ejecuta. Por ejemplo, se puede implementar un componente como un procedimiento que se ejecuta en un procesador, un procesador, una unidad de disco duro, multiples unidades de almacenamiento (de soporte de almacenamiento optico y/o magnetico), un objeto, un ejecutable, un hilo de ejecucion, un programa y/o un ordenador. A tftulo de ilustracion, tanto una aplicacion que se ejecuta en un servidor como el servidor pueden ser un componente. Uno o mas componentes pueden residir en un procedimiento y/o hilo de ejecucion, y se puede ubicar un componente en un ordenador y/o puede distribuirse entre dos o mas ordenadores, segun se desee para una implementacion dada. Las realizaciones no estan limitadas en este contexto.
La realizacion ilustrada en la FIG. 1 muestra diversos aspectos de un sistema 100 para editar un documento utilizando una superficie 130 de transferencia latente. El sistema 100 incluye un ordenador 120 que comprende un sistema informatico estandar de sobremesa o portatil con capacidad para ejecutar un sistema operativo y uno o mas programas de aplicacion. El ordenador 120 esta conectado operativamente con un medio 104 de visualizacion, un raton 108 y un teclado 110 para permitir a un usuario 102 interactuar con el sistema y los programas de aplicacion que se ejecutan en el ordenador 120. El ordenador 120 esta interconectado con un ordenador servidor 162 a traves de una o mas redes de area local y amplia, tal como la red 160. Se debena apreciar que se pueden utilizar muchas mas conexiones de red que las ilustradas en la FIG. 1.
El ordenador 120 es operativo para ejecutar un navegador 122 web que esta conectado operativamente por medio de la red 160 con un servidor 164 web ejecutado por el ordenador servidor 162. En una realizacion, el navegador 122 web es un programa de aplicacion con capacidad para representar visualmente documentos HTML, tal como INTERNET EXPLORER® de MICROSOFT CORPORATION, FIREFOX de MOZILLA, SAFARI de APPLE, INC. y otros. Sin embargo, una persona con un nivel normal de dominio de la tecnica apreciara que se puede utilizar cualquier tipo de programa de aplicacion con capacidad para interpretar un lenguaje de marcado y ejecutar logica de un conjunto de instrucciones para implementar el navegador 122 web. El ordenador servidor 162 puede operar como un servidor web e incluye cualquier programa de soporte logico con capacidad para servir documentos a un navegador 122 web. El ordenador servidor 162 esta conectado adicionalmente con un almacenamiento 168 de datos que contiene documentos y un programa 140 de aplicacion, que se describira con mas detalle a continuacion. Segun una realizacion, los documentos pueden incluir un documento 128 que ha de ser servido al navegador 122 web. Por ejemplo, el documento 128 puede comprender un documento HTML interpretado por el navegador 122 web. Tras una solicitud de un usuario 102 del ordenador 120, el navegador 122 web es operativo para recuperar el documento 128 del servidor 164 web y mostrarlo en una ventana 106 en el medio 104 de visualizacion para su presentacion al usuario 102.
Segun se ha descrito brevemente con anterioridad, el sistema 100 tambien incluye un programa 140 de aplicacion, tal como un programa de tratamiento de textos. El programa 140 de aplicacion es operativo para permitir al usuario 102 del ordenador 120 editar el contenido del documento 128 en la ventana 106. Segun una realizacion, el programa 140 de aplicacion tiene capacidad de ejecutarse en un entorno de tiempo de ejecucion proporcionado por el navegador 122 web. Por ejemplo, el programa 140 de aplicacion puede ser creado utilizando tecnicas AJAX de desarrollo.
En una realizacion, se recupera el programa 140 de aplicacion del servidor 164 web junto con el documento 128 que ha de ser editado. En realizaciones alternativas, el programa 140 de aplicacion puede residir localmente en el ordenador 120. El programa 140 de aplicacion incluye un modulo 148 de programa de aplicacion que comprende logica de aplicacion operativa para proporcionar un conjunto dado de funcionalidad (por ejemplo, un tratamiento de textos) al usuario 102. En una realizacion, el programa 140 de aplicacion mantiene en una imagen interna 150 del documento el contenido del documento que esta siendo editado. En otras realizaciones, el programa 140 de
5
10
15
20
25
30
35
40
45
50
55
60
aplicacion mantiene directamente en el documento 128 el contenido del documento que esta siendo editado. El interprete 124 del medio de visualizacion interpreta el documento 128 para su representacion visual. Por ejemplo, se puede implementar el interprete 124 del medio de visualizacion como un interprete HTML.
En una realizacion, el programa 140 de aplicacion incluye un modulo 146 de gestion de eventos, que monitoriza eventos de entrada del usuario procedentes del procesador 126 de entrada. Como se describira en detalle a continuacion con respecto a la FIG. 2, el modulo 146 de gestion de eventos es operativo para detectar la colocacion y el movimiento por parte del usuario 102 de un puntero de insercion en una o mas ubicaciones en el documento 128 presentado en la ventana 106. El modulo 146 de gestion de eventos es operativo, ademas, para monitorizar eventos de entrada del usuario durante la edicion del contenido del documento. Por ejemplo, el modulo 146 de gestion de eventos puede detectar la seleccion de porciones o multiples porciones del contenido de medios en el documento 128 en preparacion de una orden de edicion.
El ordenador 120 puede utilizar un subsistema mejorado 200 de edicion de documentos dispuesto para gestionar, en general, operaciones de edicion y prestaciones de edicion para un documento, tal como el documento 128. En particular, el subsistema 200 de edicion de documentos puede utilizar una superficie 130 de transferencia latente para soportar o implementar las diversas prestaciones de edicion. El subsistema 200 de edicion de documentos embebe la superficie 130 de transferencia latente en el documento 128 de forma que se mantenga invisible u oculta de la vista del usuario 102. El subsistema 200 de edicion de documentos puede utilizar la superficie 130 de transferencia latente como una estructura de almacenamiento intermedio para contenido de medios que se transfiere entre el documento 128 y un portapapeles del sistema.
La superficie 130 de transferencia latente puede comprender cualquier cuadro editable adecuado para ser utilizado con un lenguaje dado de marcado utilizado por el interprete 124 del medio de visualizacion para presentar el documento 128 en la ventana 106 del navegador en el medio 104 de visualizacion para su presentacion al usuario 102. Ademas, la superficie de transferencia latente es oculta, latente o invisible, por lo que el usuario 102 no puede ver ni percibir el cuadro editable mientras ve el documento 128 en la ventana 106 del navegador. En una realizacion, por ejemplo, se puede implementar la superficie 130 de transferencia latente como un elemento IFRAME de HTML, entre otros. Se puede utilizar cualquier cuadro editable que sea invisible al usuario 102 y adecuado para ser utilizado con un documento particular como la superficie 130 de transferencia latente. Las realizaciones no estan limitadas en este contexto.
Se puede utilizar la superficie 130 de transferencia latente como un deposito o almacenamiento temporal para el contenido de medios que el usuario 102 pega en el documento 128, y un lugar para presentar contenido seleccionado para una orden de copia o de corte. El uso de una superficie 130 de transferencia invisible o latente permite que cada documento 128 almacene temporalmente contenido de medios que esta siendo transferido al documento 128 o desde el documento 128. El subsistema 200 de edicion de documentos puede monitorizar la superficie 130 de transferencia latente, y detectar cuando se ha depositado contenido de medios en la superficie 130 de transferencia latente. Entonces, el subsistema 200 de edicion de documentos puede transformar o traducir el contenido de medios almacenado por la superficie 130 de transferencia latente en un formato adecuado para el punto final diana (por ejemplo, un portapapeles del sistema o un documento). De esta forma, el subsistema 200 de edicion de documentos y la superficie 130 de transferencia latente permiten al programa 140 de aplicacion un control sobre el formateado del contenido de medios que esta siendo insertado en el documento 128 desde el portapapeles 142 del sistema utilizando una orden de pegado o una orden de pegado especial, al igual que esta siendo copiado o movido del documento 128 al portapapeles 142 del sistema utilizando una orden de copia o una orden de corte. La distincion entre este tipo de modelo, y el comportamiento por defecto proporcionado por las prestaciones de edicion implementadas para un navegador tfpico web, es que el subsistema 200 de edicion de documentos mantiene un control completo sobre el contenido seleccionado de medios, que permite que el subsistema 200 de edicion de documentos manipule el estilo, el formateado, la presentacion y otros aspectos de formateado del contenido de medios, en vez de estar restringido a las prestaciones y los controles de edicion proporcionados por un navegador web.
En una realizacion, por ejemplo, el subsistema 200 de edicion de documentos puede utilizar la superficie 130 de transferencia latente para gestionar ordenes de pegado y de pegado especial. En particular, el subsistema 200 de edicion de documentos puede implementar la superficie 130 de transferencia latente como un nuevo elemento de HTML en el documento 128 interpretado como una pagina electronica en una ventana 106 del medio 104 de visualizacion. Al poner el foco programaticamente en la superficie 130 de transferencia latente, una accion del usuario para desencadenar una orden de pegado pondra el contenido de medios en la superficie 130 de transferencia latente. El termino “foco” hace referencia a la ubicacion de un punto de insercion o seleccion actual en un documento dado. Se puede monitorizar el contenido de la superficie 130 de transferencia latente para detectar cuando se ha producido la operacion de pegado. Cuando se hace, se puede inspeccionar el contenido de la superficie 130 de transferencia latente, y transformarlo a un formato adecuado para el documento 128. Despues de que se han transformado los datos, se insertan en la vista del usuario del documento 128. De esta forma, se puede mantener un control sobre el contenido de medios que aparece en la pagina electronica, y se puede conservar la informacion sobre las ediciones que han sido realizadas al documento 128.
5
10
15
20
25
30
35
40
45
50
55
60
En una realizacion, por ejemplo, el subsistema 200 de edicion de documentos tambien puede utilizar la superficie 130 de transferencia latente para gestionar ordenes de copia, movimiento y corte. Cuando el usuario 102 selecciona cierto contenido de medios en el documento 128 utilizando un dispositivo de entrada tal como un teclado o raton, el subsistema 200 de edicion de documentos determina que contenido de medios desea seleccionar el usuario. Entonces, el subsistema 200 de edicion de documentos cambia el formateado del contenido seleccionado de medios para indicar que ha sido seleccionado (por ejemplo, un fondo azul en el texto). El subsistema 200 de edicion de documentos configura el contenido de la superficie 130 de transferencia latente para que sea una secuencia de codigo HTML u otro codigo que represente los datos exactos seleccionados por el usuario 102. El subsistema 200 de edicion de documentos pone programaticamente el foco en el documento 128 para apuntar al contenido de la superficie 130 de transferencia latente. Como resultado, cuando el usuario 102 ejecuta la orden de copia, el portapapeles 142 del sistema se poblara con el contenido de medios generado por el subsistema 200 de edicion de documentos.
La FIG. 2 ilustra un diagrama de bloques mas detallado del subsistema 200 de edicion de documentos. El subsistema 200 de edicion de documentos puede comprender multiples componentes y/o modulos. En la realizacion ilustrada mostrada en la FIG. 2, el subsistema 200 de edicion de documentos puede incluir un componente gestor 220 de edicion, un componente 230 de almacenamiento y un componente 240 de entrada/salida (E/S). Se pueden implementar los componentes y/o modulos utilizando elementos de soporte ffsico, elementos de soporte logico o una combinacion de elementos de soporte ffsico y de elementos de soporte logico. Aunque el subsistema 200 de edicion de documentos, segun se muestra en la FIG. 2, tiene un numero limitado de elementos en una cierta topologfa, puede apreciarse que el subsistema 200 de edicion de documentos puede incluir mas o menos elementos en topologfas alternas, segun se desee para una implementacion dada.
Se puede disponer un componente gestor 220 de edicion para recibir diversos mensajes 202 de eventos de entrada en una cola 222 de mensajes de eventos. La cola 222 de mensajes de eventos puede comprender uno o mas colas para gestionar mensajes de eventos. En una realizacion, por ejemplo, la cola 222 de mensajes de eventos puede gestionar mensajes de eventos con prioridades distintas. El modulo 146 de gestion de eventos puede utilizar la cola 222 de mensajes de eventos para procesar y gestionar los diversos mensajes 202 de eventos.
El componente gestor 220 de edicion puede incluir logica 224 de control. La logica 224 de control puede estar dispuesta para controlar las operaciones del componente gestor 220 de edicion en funcion de la informacion 206 de configuracion. Por ejemplo, la logica 224 de control puede ejecutar un algoritmo, un flujo logico o una maquina de estado para llevar a cabo diversas operaciones sobre datos de entrada recibidos procedentes de diversos subsistemas de entrada en respuesta a los diversos mensajes 202 de eventos de entrada. La logica 224 de control puede procesar los datos de entrada en funcion de la informacion 206 de la configuracion. La logica 224 de control tambien puede generar diversos mensajes 204 de eventos de salida, y enviar los mensajes 204 de eventos de salida a un planificador y distribuidor 226 de eventos.
El componente gestor 220 de edicion puede incluir un planificador y distribuidor 226 de eventos. El planificador y distribuidor 226 de eventos puede estar dispuesto para iniciar eventos a otras entidades externas, y distribuye eventos internos y mensajes en el componente gestor 220 de edicion. Por ejemplo, el planificador y distribuidor 226 de eventos envfa diversos mensajes 204 de eventos de salida en respuesta a los mensajes 202 de eventos de entrada a otros sistemas, subsistemas, componentes o modulos del sistema 100.
En una realizacion, el subsistema 200 de edicion de documentos puede incluir el componente 230 de almacenamiento. El componente 230 de almacenamiento puede estar dispuesto con memorias de datos y logica para gestionar operaciones de almacenamiento para el componente gestor 220 de edicion. El componente 230 de almacenamiento puede almacenar informacion temporal o no objeto de transaccion utilizada por el componente gestor 220 de edicion en una memoria temporal 232 de datos. Por ejemplo, se puede almacenar la informacion temporal o no objeto de transaccion como lenguaje ampliable de marcado (XML), ficheros binarios o algun otro formado en la memoria temporal 232 de datos. El componente 230 de almacenamiento puede almacenar informacion persistente u objeto de transaccion utilizada por el componente gestor 220 de edicion en una memoria permanente 234 de datos. Las memorias 232, 234 de datos pueden comprender memorias individuales de datos, respectivamente, o multiples memorias de datos que comprenden parte de una matriz mayor de memoria de datos, tal como una red de area de almacenamiento (SAN). Ademas, el componente 230 de almacenamiento y las memorias 232, 234 de datos pueden implementar la antememoria de datos y las tecnicas y estructuras apropiadas de memoria intermedia si se necesitan para satisfacer los parametros de capacidad y de latencia del sistema. El componente 230 de almacenamiento tambien gestiona las operaciones para registrar y auditar el almacenamiento.
En una realizacion, el subsistema 200 de edicion de documentos puede incluir el componente 240 de E/S. El componente 240 de E/S puede estar dispuesto con memorias intermedias y logica para gestionar operaciones de transporte y de E/S en informacion que se mueve por todo el subsistema 200 de edicion de documentos. Por ejemplo, el componente 240 de E/S puede incluir una o mas memorias intermedias 242 de datos de entrada para recibir y almacenar datos 208 de entrada procedentes de un subsistema de entrada. Uno o mas modulos del componente gestor 220 de edicion pueden procesar los datos 208 de entrada para formar datos procesados, y enviarlos a una o mas memorias intermedias 246 de datos de salida. Las memorias intermedias 246 de datos de
5
10
15
20
25
30
35
40
45
50
55
60
salida pueden estar dispuestas para almacenar y enviar datos de salida a un subsistema de salida. Un gestor 244 de datos puede implementar interfaces de logica y de red (por ejemplo, interfaces de servicio web) para controlar y gestionar servicios de recogida de datos y servicios de distribucion de datos. El componente 240 de E/S puede implementar una o mas memorias intermedias 248 de transformacion para transformar los datos 208 de entrada y/o los datos procesados de un formato, un esquema o un protocolo de datos, para formatos, esquemas de datos o protocolos alternativos.
En una operacion general, el subsistema 200 de edicion de documentos puede implementar diversas prestaciones de edicion para el programa 140 de aplicacion utilizando el navegador 122 web ejecutado por el ordenador 120. Mas en particular, el subsistema 200 de edicion de documentos puede utilizar la superficie 130 de transferencia latente para soportar las prestaciones de edicion. Esto puede lograrse utilizando varios modulos 228-1-p de edicion. En la realizacion ilustrada mostrada en la FIG. 2, los modulos 228-1-p de edicion pueden incluir un modulo 228-1 de creacion de superficies de transferencia, un modulo 228-2 de control de transferencia y un modulo 228-3 de transformacion del contenido de medios. Aunque en la FIG. 2 se muestra un numero espedfico de modulos 228-1-p de edicion a modo de ejemplo y no de limitacion, puede apreciarse que se pueden implementar mas o menos modulos para diversos conjuntos de operaciones de mercado de innovacion, segun se desee para una implementacion dada. Las realizaciones no estan limitadas en este contexto.
El modulo 228-1 de creacion de superficies de transferencia puede ser operativo, en general, para crear y embeber la superficie 130 de transferencia en el documento 128. Se puede utilizar la superficie 130 de transferencia latente como una estructura de almacenamiento temporal que permite que el subsistema 200 de edicion de documentos controle la importacion y la exportacion de contenido de medios a y desde el programa 140 de aplicacion basado en Web. La superficie 130 de transferencia latente es un cuadro editable (por ejemplo, un IFrame) que es controlado por el programa 140 de aplicacion, pero no es realmente visible al usuario 102 del programa 140 de aplicacion. La superficie 130 de transferencia latente opera como una ubicacion de destino intermedio para editar ordenes emitidas por el usuario 102, el navegador 122 web, un programa de aplicacion o algun otro objeto o entidad.
El modulo 228-1 de creacion de superficies de transferencia puede crear la superficie 130 de transferencia latente en diversas etapas. Por ejemplo, el modulo 228-1 de creacion de superficies de transferencia puede crear la superficie 130 de transferencia latente cuando el usuario 102 lanza el programa 140 de aplicacion. En otro ejemplo, el modulo 228-1 de creacion de superficies de transferencia puede crear la superficie 130 de transferencia latente cuando el interprete 124 del medio de visualizacion presenta el documento 128 en la ventana 106 del navegador. En cualquier caso, el programa 140 de aplicacion mantiene una referencia a la superficie 130 de transferencia latente una vez se crea.
La superficie 130 de transferencia latente puede comprender cualquier cuadro editable adecuado para ser utilizado con un lenguaje dado de marcado utilizado por el interprete 124 del medio de visualizacion para interpretar el documento 128 en la ventana 106 del navegador en el medio 104 de visualizacion para su presentacion al usuario 102. En una realizacion, por ejemplo, la superficie 130 de transferencia latente puede implementarse como un elemento IFRAME de HTML, entre otros. Ademas, la superficie de transferencia latente esta oculta o es invisible, de forma que el usuario 102 no pueda ver ni percibir el cuadro editable mientras ve el documento 128 en la ventana 106 del navegador.
El modulo 228-2 de control de transferencia puede acoplarse de forma comunicativa con el modulo 228-1 de creacion de superficies de transferencia. El modulo 228-2 de control de transferencia puede estar dispuesto, en general, para controlar las operaciones de transferencia para el subsistema 200 de edicion de documentos utilizando la superficie 130 de transferencia latente. En una realizacion, por ejemplo, el modulo 228-2 de control de transferencia puede recibir una solicitud de transferencia para transferir el contenido de medios para el documento 128 interceptada por el modulo 146 de gestion de eventos. Entonces, el modulo 228-2 de control de transferencia puede coordinar la transferencia del contenido de medios utilizando la superficie 130 de transferencia latente en respuesta a la solicitud de transferencia. Ejemplos de solicitudes de transferencia pueden incluir, sin limitacion, cualquier orden adecuada de edicion, tal como solicitudes de transferencia de copia, solicitudes de transferencia de corte, solicitudes de transferencia de pegado, solicitudes de transferencia de pegado especial, etcetera.
El modulo 228-2 de control de transferencia puede ser operativo para transferir el contenido de medios del documento 128 a la superficie 130 de transferencia latente en respuesta a una solicitud de transferencia de copia o una solicitud de transferencia de corte. El modulo 228-2 de control de transferencia proporciona un soporte de seleccion y de copia para el subsistema 200 de edicion de documentos. El modulo 228-2 de control de transferencia realiza un seguimiento de las acciones del teclado y del raton por parte del usuario 102 y las procesa para determinar que contenido de medios en el documento 128 ha sido seleccionado por el usuario 102. En cambio, los navegadores convencionales web seleccionan normalmente el contenido para un programa de aplicacion basado en Web. El modulo 228-2 de control de transferencia interviene en este punto, sin embargo, y mantiene un seguimiento de que objetos (texto, imagenes, etc.) en el documento 128 esta intentando seleccionar el usuario 102. El modulo 228-2 de control de transferencia representara esto visualmente al usuario 102 de alguna forma perceptible, tal como cambiando los colores de fondo en el texto, resaltando un borde en torno a la imagen y otras tecnicas apropiadas de la interfaz grafica de usuario (GUI).
5
10
15
20
25
30
35
40
45
50
55
60
Aproximadamente al mismo tiempo, el modulo 228-2 de control de transferencia presentara el contenido seleccionado de medios en la superficie 130 de transferencia latente. Esto puede llevarse a cabo, por ejemplo, creando el arbol apropiado de HTML en la superficie 130 de transferencia latente. Esto permite que el programa 140 de aplicacion presente el contenido de medios de una forma compatible con las prestaciones de formateado actualmente utilizadas por un punto final diana. Por ejemplo, supongase que la seleccion en el documento 128 comprende un texto corrido dentro de una tabla. Dependiendo de la diana, el modulo 228-2 de control de transferencia puede escoger opcionalmente si incluye la tabla circundante como parte del contenido de medios que es presentado en la superficie 130 de transferencia latente. Por ejemplo, el modulo 228-2 de control de transferencia puede incluir la tabla circundante cuando es utilizada para una asociacion logica de elementos en una pagina, excluir la tabla circundante si es utilizada unicamente con fines de presentacion, etcetera.
Una vez que el modulo 228-2 de control de transferencia determina la presentacion para el contenido seleccionado almacenado por la superficie 130 de transferencia latente, el modulo 228-2 de control de transferencia puede utilizar codigo javascript o alguna otra tecnica adecuada para indicar al navegador 122 web que marque el contenido de medios como seleccionado. Visualmente, se oculta esta accion del usuario 102. En vez de ello, el usuario 102 solo vera los elementos visuales de indicacion de la seleccion, segun se ha descrito anteriormente. En este punto el usuario 102 puede decidir si emite una orden de copia o una orden de corte pulsando una combinacion de teclas en el teclado, utilizando el menu contextual del boton derecho del raton, el menu de edicion del navegador, etcetera. Cuando se emite la orden de copia/corte, el modulo 228-2 de control de transferencia transferira el contenido transformado de medios desde la superficie 130 de transferencia latente al portapapeles 142 del sistema. De esta forma, se puede utilizar el modulo 228-2 de control de transferencia para determinar con precision que contenido de medios es entregado al portapapeles 142 del sistema, en vez de estar limitado a las prestaciones de edicion proporcionadas por el navegador 122 web.
El modulo 228-2 de control de transferencia puede ser operativo para transferir el contenido de medios de un portapapeles del sistema a la superficie 130 de transferencia latente en respuesta a una solicitud de transferencia de pegado y transferir cualquier contenido transformado de medios de la superficie 130 de transferencia latente al documento 128. El modulo 228-2 de control de transferencia proporciona un soporte de pegado y de filtrado para el subsistema 200 de edicion de documentos. En un navegador 122 web o programa autonomo de aplicacion, el foco para el documento 128 solo puede existir en un lugar en cualquier momento dado. Segun se ha descrito anteriormente, el modulo 228-2 de control de transferencia pone el foco en la superficie 130 de transferencia latente para permitir operaciones de copia o de corte. De forma similar, la superficie 130 de transferencia latente tambien puede servir de diana para operaciones de pegado o de pegado especial. Cuando el usuario emite una orden de pegado o de pegado especial, el modulo 228-2 de control de transferencia detecta esta incidencia mediante una notificacion explfcita o examinando periodicamente el contenido de la superficie 130 de transferencia latente. Cuando el modulo 228-2 de control de transferencia detecta el contenido de medios en la superficie 130 de transferencia latente, el modulo 228-2 de control de transferencia puede emitir una directriz para el modulo 228-3 de transformacion del contenido de medios.
El modulo 228-3 de transformacion del contenido de medios puede estar acoplado de forma comunicativa con el modulo 228-2 de control de transferencia. El modulo 228-3 de transformacion del contenido de medios puede ser operativo, en general, para transformar el contenido de medios almacenado por la superficie 130 de transferencia latente de un primer formato a un segundo formato. Esto puede llevarse a cabo, por ejemplo, utilizando el gestor 244 de datos y las memorias intermedias 248 de transformacion.
Dado que la superficie 130 de transferencia latente es un elemento oculto del documento 128, el usuario 102 no ve inicialmente el contenido de medios inmediatamente despues de que se ha dado una orden de edicion. Esto da tiempo al modulo 228-3 de transformacion del contenido de medios para traducir o transformar el contenido de medios en la superficie de transferencia latente de un formato fuente a un formato de destino. Como resultado, el programa 140 de aplicacion mantiene un control sobre el estilo y la presentacion del documento 128 en respuesta a una orden de pegado/pegado especial, o el estilo y la presentacion del contenido de medios transferido del documento 128 al portapapeles 142 del sistema. El modulo 228-3 de transformacion del contenido de medios analiza el contenido de medios transferido a la superficie 130 de transferencia latente y traduce el contenido de medios a una representacion apropiada de datos de lo que representa ese contenido de medios. Por ejemplo, cuando se transfiere texto a la superficie 130 de transferencia latente, se crea un TextRunNode en la memoria. Si se formatea el texto en el contenido pegado de medios con la etiqueta HTML <B>, que indica texto en negrita, el modulo 228-3 de transformacion del contenido de medios establecera una propiedad en el TextRunNode para indicar que el texto se presenta en negrita, etcetera. Esto se realiza para todos los diversos tipos de nodos HTML soportados por el programa 140 de aplicacion en general, y el subsistema 200 de edicion de documentos en particular. Una vez se completa la operacion de transformacion, el modulo 228-3 de transformacion del contenido de medios notifica al modulo 228-2 de control de transferencia, que actualice, subsiguientemente, el documento 128 en sf para que incluya el contenido recien presentado de medios de una forma visible por el usuario 102.
Al intervenir en medio de las operaciones de edicion, el subsistema 200 de edicion de documentos proporciona la oportunidad de aplicar cualquier formateado deseado por el usuario 102 y/o el programa 140 de aplicacion. Por ejemplo, el contenido transferido de medios puede ser transformado para que coincida con el aspecto por defecto
5
10
15
20
25
30
35
40
45
50
55
actualmente implementado para el documento 128, para eliminar el contenido no deseado de medios, etcetera. De esta forma, el programa 140 de aplicacion puede mantener un control estricto sobre la presentacion y el formateado del documento 128.
La FIG. 3 ilustra una realizacion de un sistema 300. El sistema 300 ilustra una realizacion de un sistema 300. El sistema 300 ilustra un flujo logico de datos entre algunos de los elementos implicados en la ejecucion de una orden de edicion.
Segun se muestra en la FIG. 3, el subsistema 300 de edicion de documentos puede recibir una solicitud 310 de transferencia de copia para un contenido seleccionado 332 procedente del usuario 102 por medio del navegador 122 web. El modulo 228-2 de control de transferencia puede recibir la solicitud 310 de transferencia de copia y transferir el contenido seleccionado 332 del documento 128 a la superficie 130 de transferencia latente. La superficie 130 de transferencia latente puede almacenar el contenido seleccionado 332 como contenido temporal 334. De forma alternativa, se pueden utilizar los controles de edicion del navegador 122 web para seleccionar y transferir el contenido 332 seleccionado. En este caso, el subsistema 200 de edicion de documentos puede interceptar las directrices de control del navegador 122 web por medio del modulo 146 de gestion de eventos. En cualquier caso, el modulo 228-2 de control de transferencia puede detectar que la superficie 130 de transferencia latente tiene un contenido de medios que esta listo para su transformacion, y, en consecuencia, notifica al modulo 228-3 de transformacion del contenido de medios.
El modulo 228-3 de transformacion del contenido de medios recibe la notificacion del modulo 228-2 de control de transferencia e inicia las operaciones de transformacion. El modulo 228-3 de transformacion del contenido de medios determina un formato apropiado para el contenido temporal 334. Esto puede llevarse a cabo de varias formas distintas. Por ejemplo, el modulo 228-3 de transformacion del contenido de medios puede almacenar distintos modulos de transformacion correspondientes a distintos puntos finales diana. El modulo 228-3 de transformacion del contenido de medios puede determinar el punto final diana para el contenido temporal 334, recuperar el modulo correspondiente de transformacion y utilizar el modulo recuperado de transformacion para transformar el contenido temporal 334 a distintos formatos apropiados para los distintos puntos finales diana. Esto puede ser adecuado cuando el contenido de medios esta destinado a diversos puntos finales o cuando se utiliza con sistemas preexistentes. De forma adicional o alternativa, el modulo 228-3 de transformacion del contenido de medios puede transformar el contenido temporal 334 a un formato estandar o universal aceptable para todos los puntos finales diana. Esto puede ser adecuado cuando se destina el contenido de medios para puntos finales que tienen las mismas prestaciones. El modulo 228-3 de transformacion del contenido de medios puede utilizar memorias intermedias 248 de transformacion para soportar operaciones de transformacion.
Una vez que se completan las operaciones de transformacion, el modulo 228-3 de transformacion del contenido de medios notifica al modulo 228-2 de control de transferencia. El modulo 228-2 de control de transferencia transfiere el contenido transformado de medios al punto final diana, tal como el portapapeles 142 del sistema. El portapapeles 142 del sistema almacena ahora el contenido almacenado 336 en un formato, tal como un run de codigo HTML, disenado para presentar el contenido almacenado 336 de una forma similar al contenido seleccionado 332 cuando se copia o corta originalmente del documento 128.
De forma similar, el subsistema 200 de edicion de documentos puede recibir una solicitud 312 de transferencia de pegado para el contenido almacenado 322 procedente del usuario 102 por medio del navegador 122 web. El modulo 228-2 de control de transferencia puede recibir la solicitud 312 de transferencia de pegado y transferir el contenido almacenado 322 del portapapeles 142 del sistema a la superficie 130 de transferencia latente. La superficie 130 de transferencia latente puede almacenar el contenido seleccionado 332 como contenido temporal 324. De forma alternativa, se pueden utilizar los controles de edicion del navegador 122 web para transferir el contenido almacenado 322. En este caso, el subsistema 200 de edicion de documentos puede interceptar las directrices de control del navegador 122 web por medio del modulo 146 de gestion de eventos. En cualquier caso, el modulo 228-2 de control de transferencia puede detectar que la superficie 130 de transferencia latente tiene un contenido de medios que esta listo para su transformacion, y notifica, en consecuencia, al modulo 228-3 de transformacion del contenido de medios.
El modulo 228-3 de transformacion del contenido de medios recibe la notificacion del modulo 228-2 de control de transferencia e inicia operaciones de transformacion. El modulo 228-3 de transformacion del contenido de medios determina un formato apropiado para el contenido temporal 324. Esto puede llevarse a cabo de forma similar a las descritas con referencia a la solicitud 310 de transferencia de copia, con algunas excepciones. Dado que el punto final diana para el contenido 324 temporal es el documento 128 en este caso, sin embargo, el modulo 228-3 de transformacion del contenido de medios puede transformar los distintos formatos del contenido almacenado 322 al formato particular utilizado actualmente por el documento 128. Esto puede tener como resultado mas operaciones de transformacion de formato del tipo muchos a uno que operaciones de transformacion de formato del tipo muchos a muchos.
Una vez que se completan las operaciones de transformacion, el modulo 228-3 de transformacion del contenido de medios notifica al modulo 228-2 de control de transferencia. El modulo 228-2 de control de transferencia transfiere el
5
10
15
20
25
30
35
40
45
50
55
contenido transformado de medios al punto final diana, tal como el documento 128. Entonces, se muestra para el usuario 102 el documento 128 como un contenido pegado 326 en un estilo y formato compatibles con el documento 128.
Se pueden describir adicionalmente las operaciones para las realizaciones descritas anteriormente con referencia a uno o mas flujos logicos. Se puede apreciar que los flujos logicos representativos no tienen que ser ejecutados necesariamente en el orden presentado, o en cualquier orden particular, a no ser que se indique lo contrario. Ademas, se pueden ejecutar diversas actividades descritas con respecto a los flujos logicos en serie o en paralelo. Se pueden implementar los flujos logicos utilizando uno o mas elementos de soporte ffsico y/o elementos de soporte logico de las realizaciones descritas o elementos alternativos segun se desee para un conjunto dado de restricciones de diseno y de rendimiento. Por ejemplo, se pueden implementar los flujos logicos como logica (por ejemplo, instrucciones de programa informatico) para su ejecucion por medio de un dispositivo logico (por ejemplo, un ordenador de uso general o de uso espedfico).
La FIG. 4 ilustra una realizacion de un flujo logico 400. El flujo logico 400 puede ser representativo de algunas de las operaciones, o de todas ellas, ejecutadas por una o mas realizaciones descritas en la presente memoria.
En la realizacion ilustrada mostrada en la FIG. 4, el flujo logico 400 puede embeber una superficie de transferencia latente en un documento en el bloque 402. Por ejemplo, el modulo 228-1 de creacion de superficies de transferencia puede crear y embeber la superficie 130 de transferencia latente en el documento 128. Esto puede ocurrir durante el arranque del programa 140 de aplicacion o la generacion de un documento nuevo para el programa 140 de aplicacion. El modulo 228-1 de creacion de transferencia puede crear una referencia para la superficie 130 de transferencia latente y pasar la referencia al modulo 228-2 de control de transferencia.
El flujo logico 400 puede recibir una solicitud de transferencia para transferir contenido de medios para el documento en el bloque 404. Por ejemplo, el modulo 228-1 de control de transferencia puede recibir una solicitud de transferencia (310, 312) para transferir un contenido de medios (322, 332) para el documento 128 a un punto final diana, tal como el documento 128, el portapapeles 142 del sistema u otros puntos finales. El modulo 228-1 de control de transferencia puede recibir la solicitud de transferencia del navegador 122 web por medio del modulo 146 de gestion de eventos.
El flujo logico 400 puede transferir el contenido de medios utilizando la superficie de transferencia latente en respuesta a la solicitud de transferencia en el bloque 406. Por ejemplo, el modulo 228-1 de control de transferencia puede transferir el contenido de medios (322, 332) utilizando la superficie 130 de transferencia latente en respuesta a la solicitud de transferencia (310, 312). En muchos casos, el contenido de medios (322, 332) puede comprender contenido transformado de medios (324, 344) que tiene un formato compatible con el punto final diana (128, 142).
La FIG. 5 ilustra adicionalmente un diagrama de bloques mas detallado de arquitectura informatica 510 adecuada para implementar diversas realizaciones, tales como un ordenador 120, un ordenador servidor 162, etcetera. En una configuracion basica, la arquitectura informatica 510 incluye normalmente al menos una unidad 532 de procesamiento y memoria 534. La memoria 534 puede implementarse utilizando cualquier soporte legible por una maquina o legible por un ordenador con capacidad para almacenar datos, incluyendo tanto memoria volatil como no volatil. Por ejemplo, la memoria 534 puede incluir memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), RAM dinamica (DRAM), DRAM de doble tasa de transferencia de datos (DDRAM), DRAM smcrona (SDRAM), RAM estatica (SRAM), ROM programable (PROM), ROM programable borrable (EPROM), ROM programable borrable electricamente (EEPROM), memoria flash, memoria polimerica, tal como memoria de polfmero ferroelectrico, memoria ovonica, memoria de cambio de fase o ferroelectrica, memoria de oxido de silicio-oxido de nitruro-silicio (SONOS), tarjetas magneticas u opticas o cualquier otro tipo de soporte adecuado para almacenar informacion. Segun se muestra en la FIG. 5, la memoria 534 puede almacenar diversos programas de soporte logico, tales como uno o mas programas 536-1-t de soporte logico y datos acompanantes. Dependiendo de la implementacion, ejemplos de programas 536-1 -t de soporte logico pueden incluir un programa 536-1 de sistema (por ejemplo, un sistema operativo), un programa 536-2 de aplicacion (por ejemplo, el navegador 122 web, el programa 140 de aplicacion, etc.), el subsistema 200 de edicion de documentos, etcetera.
La arquitectura informatica 510 tambien puede tener prestaciones y/o una funcionalidad adicionales mas alla de su configuracion basica. Por ejemplo, la arquitectura informatica 510 puede incluir un almacenamiento extrafble 538 y un almacenamiento no extrafble 540, que tambien puede comprender diversos tipos de soporte legible por una maquina o legible por un ordenador, segun se ha descrito anteriormente. La arquitectura informatica 510 tambien puede tener uno o mas dispositivos 544 de entrada, tal como un teclado, un raton, un puntero, un dispositivo de entrada de voz, un dispositivo de entrada tactil, dispositivos de medicion, sensores, etcetera. La arquitectura informatica 510 tambien puede incluir uno o mas dispositivos 542 de salida, tales como medios de visualizacion, altavoces, impresoras, etcetera.
La arquitectura informatica 510 puede incluir, ademas, una o mas conexiones 546 de comunicaciones que permiten que la arquitectura informatica 510 se comunique con otros dispositivos. Las conexiones 546 de comunicaciones pueden ser representativas, por ejemplo, de las interfaces de comunicaciones para los componentes 116-1-v de comunicaciones. Las conexiones 546 de comunicaciones pueden incluir diversos tipos de elementos estandar de
11
5
10
15
20
25
30
35
40
45
50
55
60
comunicaciones, tales como una o mas interfaces de comunicaciones, interfaces de red, tarjetas de interfaz de red (NIC), radios, transmisores/receptores inalambricos (transceptores), soporte alambrico/inalambrico de comunicaciones, conectores ffsicos, etcetera. Normalmente, el soporte de comunicacion implementa instrucciones legibles por un ordenador, estructuras de datos, modulos de programa u otros datos en una senal modulada de datos, tal como una onda portadora, u otro mecanismo de transporte e incluye cualquier soporte de suministro de informacion. La expresion “senal modulada de datos” significa una senal que tiene una o mas de sus prestaciones establecidas o cambiadas de tal forma que se codifique informacion en la senal. A modo de ejemplo, y no de limitacion, el soporte de comunicacion incluye un soporte alambrico de comunicaciones y un soporte inalambrico de comunicaciones. Ejemplos de soporte alambrico de comunicaciones pueden incluir un hilo, un cable, conductores metalicos, tarjetas de circuito impreso (PCB), placas posteriores, redes de conmutadores, material semiconductor, cable de par trenzado, cable coaxial, fibra optica, una senal propagada, etcetera. Ejemplos de soporte inalambrico de comunicaciones pueden incluir medios acusticos, de espectro de radiofrecuencia (RF), infrarrojos y otros medios inalambricos. Segun se utilizan en la presente memoria, se pretende que las expresiones soporte legible por una maquina y soporte legible por un ordenador incluyan tanto soportes de almacenamiento como soportes de comunicaciones.
La FIG. 6 ilustra un diagrama de un arffculo de fabricacion 600 adecuado para almacenar logica para las diversas realizaciones, incluyendo el flujo logico 400. Segun se muestra, el arffculo de fabricacion 600 puede comprender un soporte 602 de almacenamiento para almacenar logica 604. Ejemplos del soporte 602 de almacenamiento pueden incluir uno o mas tipos de soporte de almacenamiento legible por un ordenador con capacidad para almacenar datos electronicos, incluyendo memoria volatil o memoria no volatil, memoria extrafble o no extrafble, memoria borrable o no borrable, memoria escribible o reescribible, etcetera. Ejemplos de la logica 604 pueden incluir diversos elementos de soporte logico, tales como componentes de soporte logico, programas, aplicaciones, programas informaticos, programas de aplicacion, programas de sistema, programas de maquina, soporte logico de sistema operativo, soporte logico personalizado, soporte logico inalterable, modulos de soporte logico, rutinas, subrutinas, funciones, metodos, procedimientos, interfaces de soporte logico, interfaces de programacion de aplicaciones (API), conjuntos de instrucciones, codigo informatico, codigo de ordenador, segmentos de codigo, segmentos de codigo de ordenador, palabras, valores, sfmbolos o cualquier combinacion de los mismos.
En una realizacion, por ejemplo, el arffculo de fabricacion 600 y/o el soporte 602 de almacenamiento legible por un ordenador puede almacenar logica 604 que comprende instrucciones ejecutables de programa informatico que, cuando son ejecutadas por un ordenador, hacen que el ordenador lleve a cabo procedimientos y/u operaciones segun las realizaciones descritas. Las instrucciones ejecutables de programa informatico pueden incluir cualquier tipo adecuado de codigo, tal como codigo fuente, codigo compilado, codigo interpretado, codigo ejecutable, codigo estatico, codigo dinamico, etcetera. Las instrucciones ejecutables de programa informatico pueden ser implementadas segun un lenguaje, una manera o sintaxis informaticos predeterminados para indicar a un ordenador que lleve a cabo cierta funcion. Las instrucciones pueden implementarse utilizando cualquier nivel adecuado de programacion de alto nivel, de bajo nivel, orientada a objetos, visual, compilada y/o interpretada, tal como C, C++, Java, BASIC, Perl, Matlab, Pascal, Visual BASIC, lenguaje ensamblador y otros.
Se pueden implementar diversas realizaciones utilizando elementos de soporte ffsico, elementos de soporte logico o una combinacion de ambos. Ejemplos de elementos de soporte ffsico pueden incluir cualquiera de los ejemplos proporcionados anteriormente para un dispositivo logico, e incluyen, ademas, microprocesadores, circuitos, elementos de circuito (por ejemplo, transistores, resistencias, condensadores, inductores, etcetera), circuitos integrados, puertas logicas, registros, un dispositivo semiconductor, chips, microchips, conjuntos de chips, etcetera. Ejemplos de elementos de soporte logico pueden incluir componentes de soporte logico, programas, aplicaciones, programas informaticos, programas de aplicacion, programas de sistema, programas de maquina, soporte logico de sistema operativo, soporte logico personalizado, soporte logico inalterable, modulos de soporte logico, rutinas, subrutinas, funciones, metodos, procedimientos, interfaces de soporte logico, interfaces de programacion de aplicaciones (API), conjuntos de instrucciones, codigo informatico, codigo de ordenador, segmentos de codigo, segmentos de codigo de ordenador, palabras, valores, sfmbolos o cualquier combinacion de los mismos. Determinar si se implementa una realizacion utilizando elementos de soporte ffsico y/o elementos de soporte logico puede variar segun un numero cualquiera de factores, tales como velocidad de computo, niveles de potencia, tolerancias termicas, presupuesto del ciclo de procesamiento, velocidades de datos de entrada, velocidades de datos de salida, recursos de memoria, velocidades del bus de datos deseados, y otras restricciones de diseno y de rendimiento, segun se desee para una implementacion dada.
Se pueden describir algunas realizaciones utilizando los terminos “acoplados” y “conectados” junto con sus derivados. No se pretende, necesariamente, que estos terminos sean sinonimos entre sf Por ejemplo, se pueden describir algunas realizaciones utilizando “conectados” y/o “acoplados” para indicar que dos o mas elementos hacen contacto ffsico y electrico entre sf Sin embargo, el termino “acoplados” tambien puede significar que dos o mas elementos no hacen contacto directo entre sf, pero, no obstante, siguen cooperando o interactuando entre sf
Se hace hincapie en que el Resumen de la Divulgacion sea un resumen que permitira al lector determinar rapidamente la naturaleza de la divulgacion tecnica. Se presenta con el entendimiento de que sera utilizado para interpretar o limitar el alcance o significado de las reivindicaciones. Ademas, en la anterior Descripcion detallada,
puede verse que se agrupan entre sf diversas prestaciones en una unica realizacion con el fin de simplificar la divulgacion. No debe interpretarse que este procedimiento de divulgacion refleje una intencion de que las realizaciones reivindicadas requieran mas prestaciones que las que se enumeran expresamente en cada reivindicacion. Mas bien, segun reflejan las siguientes reivindicaciones, la materia objeto inventiva se encuentra en 5 menos que la totalidad de las caractensticas de una unica realizacion divulgada. Por lo tanto, las siguientes reivindicaciones estan incorporadas por la presente en la Descripcion detallada, y cada reivindicacion depende unicamente de sf misma como una realizacion aparte. En las reivindicaciones adjuntas, se utilizan las expresiones “que incluye” y “donde” como los equivalentes en espanol coloquial de las expresiones respectivas “que comprende” y “en el que”, respectivamente. Ademas, se utilizan los terminos “primero”, “segundo”, “tercero”, etcetera, 10 simplemente como etiquetas, y no se pretende que impongan requisitos numericos sobre sus objetos.
Aunque se ha descrito la materia objeto en un lenguaje espedfico a caractensticas estructurales y/o acciones metodologicas, se debe comprender que la materia objeto definida en las reivindicaciones adjuntas no esta limitada necesariamente a las acciones ni a las caractensticas espedficas descritas anteriormente. Mas bien, se divulgan las acciones y las caractensticas espedficas descritas anteriormente como formas ejemplares de implementacion de las 15 reivindicaciones.

Claims (8)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    REIVINDICACIONES
    1. Un procedimiento para implementar prestaciones de edicion para un programa (140) de aplicacion que comprende un subsistema (200) de edicion de documentos operativo para gestionar operaciones de edicion para un documento (128), comprendiendo el subsistema (200) de edicion de documentos un modulo (228-1) de creacion de superficies de transferencia y un modulo (228-2) de control de transferencia acoplado de forma comunicativa con el modulo de creacion de superficies de transferencia, ejecutado el programa (140) de aplicacion en un entorno de tiempo de ejecucion proporcionado por un navegador (122) web, teniendo un ordenador (120) un portapapeles del sistema y ejecutando el navegador web, llevandose a cabo el procedimiento mediante el programa de aplicacion y comprendiendo el procedimiento:
    embeber (402) una superficie (130) de transferencia latente en un documento (128), siendo utilizada la superficie de transferencia latente como una estructura de almacenamiento temporal, siendo la superficie de transferencia latente un cuadro editable que es controlado mediante el programa de aplicacion y es invisible para un usuario;
    recibir (404) una solicitud (310, 312) de transferencia del navegador web para transferir el contenido de medios para el documento, siendo la solicitud de transferencia una de una solicitud de transferencia de copia para copiar el contenido de medios del documento a un portapapeles (142) del sistema del ordenador, una solicitud de transferencia de corte para mover el contenido de medios del documento al portapapeles (142) del sistema y una solicitud de transferencia de pegado para pegar el contenido de medios del portapapeles (142) del sistema al documento;
    transferir (406) el contenido de medios del documento a la superficie de transferencia latente en respuesta a la solicitud de transferencia de copia o a la solicitud de transferencia de corte; y
    transferir el contenido de medios del portapapeles (142) del sistema a la superficie de transferencia latente en respuesta a la solicitud de transferencia de pegado.
  2. 2. El procedimiento de la reivindicacion 1, que comprende, ademas, transformar el contenido de medios almacenado por la superficie de transferencia latente de un primer formato a un segundo formato.
  3. 3. El procedimiento de la reivindicacion 2, que comprende, ademas, transferir el contenido transformado de medios de la superficie de transferencia latente al portapapeles (142) del sistema.
  4. 4. Un artfculo que comprende un soporte de almacenamiento legible por una maquina o un ordenador que contiene instrucciones que, cuando son ejecutadas, permiten a un sistema implementar el procedimiento de una cualquiera de las reivindicaciones 1 a 3.
  5. 5. Un ordenador (120) adaptado para ejecutar un navegador web y que tiene un portapapeles del sistema, comprendiendo el ordenador:
    un programa (142) de aplicacion que comprende un subsistema (200) de edicion de documentos operativo para gestionar operaciones de edicion para un documento (128), siendo ejecutado el programa (140) de aplicacion en un entorno de tiempo de ejecucion proporcionado por un navegador (122) web y ejecutando el ordenador (120) el navegador web, comprendiendo el subsistema de edicion de documentos:
    un modulo (228-1) de creacion de superficies de transferencia operativo para embeber una superficie (130) de transferencia latente en el documento, siendo utilizada la superficie de transferencia latente como una estructura de almacenamiento temporal, siendo la superficie de transferencia latente un cuadro editable que es controlado por el programa de aplicacion y es invisible para un usuario; y un modulo (228-2) de control de transferencia acoplado de forma comunicativa al modulo de creacion de superficies de transferencia, siendo operativo el modulo de control de transferencia para:
    recibir una solicitud (310, 312) de transferencia para transferir un contenido de medios para el documento, siendo la solicitud de transferencia una de una solicitud de transferencia de copia para copiar el contenido de medios del documento a un portapapeles (142) del sistema del ordenador, una solicitud de transferencia de corte para mover el contenido de medios del documento al portapapeles (142) del sistema y una solicitud de transferencia de pegado para pegar el contenido de medios del portapapeles (142) del sistema al documento;
    transferir (406) el contenido de medios del documento a la superficie de transferencia latente en respuesta a la solicitud de transferencia de copia o a la solicitud de transferencia de corte; y transferir el contenido de medios del portapapeles (142) del sistema a la superficie de transferencia latente en respuesta a la solicitud de transferencia de pegado.
  6. 6. El ordenador de la reivindicacion 5, que comprende un modulo (228-3) de transformacion de contenido de medios acoplado de forma comunicativa con el modulo de control de transferencia, siendo operativo el modulo de transformacion del contenido de medios para transformar el contenido de medios almacenado por la superficie de transferencia latente de un primer formato a un segundo formato.
  7. 7. El ordenador de la reivindicacion 6, siendo operativo el modulo de control de transferencia para transferir el contenido transformado de medios de la superficie de transferencia latente al documento.
  8. 8. El ordenador de cualquiera de las reivindicaciones 5 a 7, que comprende un dispositivo cliente (120) que tiene el navegador (122) web, recuperando el dispositivo cliente el programa (140) de aplicacion de un servidor (162)
    5 por una red (160) utilizando el navegador web, ejecutandose el programa de aplicacion en el dispositivo cliente
    para presentar el documento utilizando una ventana de navegador web, y utilizando el subsistema de edicion de documentos para editar el documento.
ES09739385.4T 2008-04-28 2009-04-03 Técnicas para modificar un documento utilizando una superficie de transferencia latente Active ES2616659T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US110351 1980-01-23
US12/110,351 US9507651B2 (en) 2008-04-28 2008-04-28 Techniques to modify a document using a latent transfer surface
PCT/US2009/039388 WO2009134583A2 (en) 2008-04-28 2009-04-03 Techniques to modify a document using a latent transfer surface

Publications (1)

Publication Number Publication Date
ES2616659T3 true ES2616659T3 (es) 2017-06-13

Family

ID=41216269

Family Applications (1)

Application Number Title Priority Date Filing Date
ES09739385.4T Active ES2616659T3 (es) 2008-04-28 2009-04-03 Técnicas para modificar un documento utilizando una superficie de transferencia latente

Country Status (15)

Country Link
US (3) US9507651B2 (es)
EP (1) EP2269146B1 (es)
JP (1) JP5550636B2 (es)
KR (1) KR101782163B1 (es)
CN (1) CN102016833B (es)
AU (1) AU2009241481B2 (es)
BR (1) BRPI0909213B1 (es)
CA (1) CA2718119C (es)
ES (1) ES2616659T3 (es)
IL (1) IL208050A0 (es)
MX (1) MX2010011403A (es)
RU (1) RU2507573C2 (es)
SG (1) SG190604A1 (es)
WO (1) WO2009134583A2 (es)
ZA (1) ZA201006414B (es)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507651B2 (en) * 2008-04-28 2016-11-29 Microsoft Technology Licensing, Llc Techniques to modify a document using a latent transfer surface
US8656290B1 (en) * 2009-01-08 2014-02-18 Google Inc. Realtime synchronized document editing by multiple users
US8639762B2 (en) * 2009-03-23 2014-01-28 Google Inc. Providing access to a conversation in a hosted conversation system
US9021386B1 (en) 2009-05-28 2015-04-28 Google Inc. Enhanced user interface scrolling system
US9602444B2 (en) 2009-05-28 2017-03-21 Google Inc. Participant suggestion system
US8527602B1 (en) 2009-05-28 2013-09-03 Google Inc. Content upload system with preview and user demand based upload prioritization
US8171390B1 (en) * 2009-10-22 2012-05-01 Intuit Inc. Method and system for viewing and transferring data between documents
US9135312B2 (en) 2009-11-02 2015-09-15 Google Inc. Timeslider
US8555187B2 (en) * 2010-02-16 2013-10-08 Google Inc. Server-based data sharing in computer applications using a clipboard
US8510399B1 (en) 2010-05-18 2013-08-13 Google Inc. Automated participants for hosted conversations
US9026935B1 (en) 2010-05-28 2015-05-05 Google Inc. Application user interface with an interactive overlay
US9380011B2 (en) 2010-05-28 2016-06-28 Google Inc. Participant-specific markup
WO2012061297A1 (en) 2010-11-02 2012-05-10 Google Inc. Realtime synchronized document editing by multiple users for blogging
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US11611595B2 (en) 2011-05-06 2023-03-21 David H. Sitrick Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
US9372833B2 (en) * 2012-09-14 2016-06-21 David H. Sitrick Systems and methodologies for document processing and interacting with a user, providing storing of events representative of document edits relative to a document; selection of a selected set of document edits; generating presentation data responsive to said selected set of documents edits and the stored events; and providing a display presentation responsive to the presentation data
US10095663B2 (en) 2012-11-14 2018-10-09 Amazon Technologies, Inc. Delivery and display of page previews during page retrieval events
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US11169666B1 (en) 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
US9454515B1 (en) 2014-06-17 2016-09-27 Amazon Technologies, Inc. Content browser system using graphics commands and native text intelligence
US10318618B2 (en) * 2014-06-18 2019-06-11 Microsoft Technology Licensing, Llc Consistent views of partitioned data in eventually consistent systems
US10491685B2 (en) * 2015-03-31 2019-11-26 Microsoft Technology Licensing, Llc Session transfer between resources
RU2618945C1 (ru) * 2015-12-07 2017-05-11 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Устройство для идентификации типов научных построений
KR101724076B1 (ko) * 2016-07-07 2017-04-07 라온위즈기술 주식회사 사용자 서버를 이용한 html 제어 시스템 및 방법
RU2642409C1 (ru) * 2016-09-28 2018-01-24 Общество с ограниченной ответственностью "Аби Девелопмент" Редактирование текста на изображении документа
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
CN107943772A (zh) * 2017-11-15 2018-04-20 江苏神州信源系统工程有限公司 文档远程编辑方法及装置
CN110019279B (zh) * 2019-04-11 2020-12-04 北京字节跳动网络技术有限公司 在线文档的协同更新方法、装置、设备及存储介质
US11256855B2 (en) * 2019-08-09 2022-02-22 Zave IP, LLC Systems and methods for collation of digital content
CN112783666A (zh) * 2019-11-08 2021-05-11 珠海金山办公软件有限公司 一种电子文档中剪贴板内容编辑方法、装置和存储介质
US11611629B2 (en) * 2020-05-13 2023-03-21 Microsoft Technology Licensing, Llc Inline frame monitoring
CN112991160B (zh) * 2021-05-07 2021-08-20 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机设备及存储介质

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604858A (en) 1992-08-10 1997-02-18 International Business Machines Corporation Method and system for apparent direct editing of fixed display elements within a data processing system
US5386564A (en) 1993-02-24 1995-01-31 Hewlett-Packard Company Conversion of data and objects across classes in an object management system
CA2124624C (en) 1993-07-21 1999-07-13 Eric A. Bier User interface having click-through tools that can be composed with other tools
US5581670A (en) 1993-07-21 1996-12-03 Xerox Corporation User interface having movable sheet with click-through tools
DE69535571T2 (de) 1994-12-13 2007-12-06 Microsoft Corp., Redmond Datenaustausch mit erweiterten Zwischenablage-Datenformaten
US5870552A (en) 1995-03-28 1999-02-09 America Online, Inc. Method and apparatus for publishing hypermedia documents over wide area networks
AUPO525497A0 (en) 1997-02-21 1997-03-20 Mills, Dudley John Network-based classified information systems
US6278678B1 (en) 1999-02-12 2001-08-21 Sony Corporation Editing apparatus, editing method, and recording medium
JP2000339312A (ja) 1999-05-31 2000-12-08 Toshiba Corp 文書編集システム及びタグ情報管理テーブル作成方法
US7124360B1 (en) 1999-08-04 2006-10-17 William Drenttel Method and system for computer screen layout based on a recombinant geometric modular structure
US7117435B1 (en) 2000-06-21 2006-10-03 Microsoft Corporation Spreadsheet fields in text
EP2458511A3 (en) 2000-06-21 2014-08-13 Microsoft Corporation System and method for integrating spreadsheets and word processing tables
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7259753B2 (en) 2000-06-21 2007-08-21 Microsoft Corporation Classifying, anchoring, and transforming ink
US6662186B1 (en) 2000-07-14 2003-12-09 Hewlett-Packard Development Company, L.P. System and method for a data propagation file format
US6948134B2 (en) 2000-07-21 2005-09-20 Microsoft Corporation Integrated method for creating a refreshable Web Query
US7103838B1 (en) 2000-08-18 2006-09-05 Firstrain, Inc. Method and apparatus for extracting relevant data
TW525067B (en) 2000-09-28 2003-03-21 Fatwire Corp System and method for in-context editing
US6941507B2 (en) 2000-11-10 2005-09-06 Microsoft Corporation Insertion point bungee space tool
US7191405B1 (en) 2000-11-22 2007-03-13 Adobe Systems Incorporated System and method for editing information
JP3943830B2 (ja) 2000-12-18 2007-07-11 株式会社東芝 文書合成方法および文書合成装置
US7120868B2 (en) 2002-05-30 2006-10-10 Microsoft Corp. System and method for adaptive document layout via manifold content
US20020099717A1 (en) * 2001-01-24 2002-07-25 Gordon Bennett Method for report generation in an on-line transcription system
TWI251751B (en) * 2001-02-27 2006-03-21 Ibm Method and system in an electronic spreadsheet for handling graphical objects referring to working ranges of cells in a copy/cut and paste operation
US20070028166A1 (en) 2002-04-10 2007-02-01 Allen Hundhausen System and processes for dynamic document construction
US7260771B2 (en) 2001-04-26 2007-08-21 Fuji Xerox Co., Ltd. Internet-based system for multimedia meeting minutes
US20040205488A1 (en) 2001-11-27 2004-10-14 Fry Randolph Allan Active web page for editing with any browser
US7698636B2 (en) 2002-06-13 2010-04-13 Microsoft Corporation System and method for in-context editing of components
US7340673B2 (en) 2002-08-29 2008-03-04 Vistaprint Technologies Limited System and method for browser document editing
US7539940B2 (en) 2002-10-09 2009-05-26 Microsoft Corporation System and method for converting between text formatting or markup language formatting and outline structure
US7000184B2 (en) 2003-01-24 2006-02-14 The Cobalt Group, Inc. Remote web site editing in a standard web browser without external software
US6986105B2 (en) 2003-01-30 2006-01-10 Vista Print Limited Methods employing multiple clipboards for storing and pasting textbook components
US20040202352A1 (en) 2003-04-10 2004-10-14 International Business Machines Corporation Enhanced readability with flowed bitmaps
US7496230B2 (en) * 2003-06-05 2009-02-24 International Business Machines Corporation System and method for automatic natural language translation of embedded text regions in images during information transfer
WO2004111846A1 (en) * 2003-06-13 2004-12-23 International Business Machines Corporation A method and system for sharing information in a network of computers
US7890852B2 (en) 2003-06-26 2011-02-15 International Business Machines Corporation Rich text handling for a web application
US7478336B2 (en) 2003-11-06 2009-01-13 International Business Machines Corporation Intermediate viewer for transferring information elements via a transfer buffer to a plurality of sets of destinations
JP2005149061A (ja) 2003-11-14 2005-06-09 Ricoh Co Ltd 情報処理システム、プログラム、及び記憶媒体
US7200816B2 (en) 2004-01-21 2007-04-03 Altova, Gmbh Method and system for automating creation of multiple stylesheet formats using an integrated visual design environment
GB2426846A (en) 2004-03-04 2006-12-06 Mathsoft Engineering & Educati A method for automatically enabling traceability of engineering calculations
US7278092B2 (en) 2004-04-28 2007-10-02 Amplify, Llc System, method and apparatus for selecting, displaying, managing, tracking and transferring access to content of web pages and other sources
US20050262439A1 (en) 2004-05-20 2005-11-24 Neil Cameron Automatic web publishing
US7574048B2 (en) 2004-09-03 2009-08-11 Microsoft Corporation Freeform digital ink annotation recognition
US7509345B2 (en) 2004-09-29 2009-03-24 Microsoft Corporation Method and system for persisting and managing computer program clippings
JP4197313B2 (ja) 2004-10-15 2008-12-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 文章編集方法、文章編集方法を実行するプログラム、及び文章編集システム
US20060101139A1 (en) * 2004-11-08 2006-05-11 International Business Machines Corporation Real-time alerts within a web browser
US20060277460A1 (en) 2005-06-03 2006-12-07 Scott Forstall Webview applications
US7554576B2 (en) 2005-06-20 2009-06-30 Ricoh Company, Ltd. Information capture and recording system for controlling capture devices
US20070150477A1 (en) 2005-12-22 2007-06-28 International Business Machines Corporation Validating a uniform resource locator ('URL') in a document
US7793231B2 (en) 2006-01-19 2010-09-07 International Business Machines Corporation Method and system for providing a primary window overlay
US8930812B2 (en) * 2006-02-17 2015-01-06 Vmware, Inc. System and method for embedding, editing, saving, and restoring objects within a browser window
CN101038650B (zh) 2006-03-16 2012-06-27 印魔网股份有限公司 网络线上即时印刷服务系统与方法以及编辑器
US20070288859A1 (en) 2006-06-07 2007-12-13 Siemens Communications, Inc. Method and apparatus for selective forwarding of e-mail and document content
US7865905B2 (en) * 2006-09-11 2011-01-04 International Business Machines Corporation Context-exchange mechanism for accumulating and propagating contextual information between applications
US8370732B2 (en) * 2006-10-20 2013-02-05 Mixpo Portfolio Broadcasting, Inc. Peer-to-portal media broadcasting
US7936472B2 (en) * 2006-11-15 2011-05-03 Sharp Laboratories Of America, Inc. Driverless image printing
US20080209311A1 (en) 2006-12-29 2008-08-28 Alex Agronik On-line digital image editing with wysiwyg transparency
US20080177623A1 (en) * 2007-01-24 2008-07-24 Juergen Fritsch Monitoring User Interactions With A Document Editing System
US9128784B2 (en) * 2007-05-08 2015-09-08 At&T Intellectual Property I, L.P. Data transfer using a network clipboard
US8555200B2 (en) * 2007-08-21 2013-10-08 Wetpaint.Com, Inc. Representing editable attributes of embedded content
US8266524B2 (en) 2008-02-25 2012-09-11 Microsoft Corporation Editing a document using a transitory editing surface
US9507651B2 (en) * 2008-04-28 2016-11-29 Microsoft Technology Licensing, Llc Techniques to modify a document using a latent transfer surface
JP2011095394A (ja) 2009-10-28 2011-05-12 Sharp Corp 現像装置

Also Published As

Publication number Publication date
RU2010144041A (ru) 2012-05-10
BRPI0909213B1 (pt) 2020-04-14
MX2010011403A (es) 2010-11-26
CN102016833A (zh) 2011-04-13
SG190604A1 (en) 2013-06-28
CN102016833B (zh) 2013-08-14
AU2009241481A1 (en) 2009-11-05
EP2269146A2 (en) 2011-01-05
WO2009134583A8 (en) 2010-09-10
US20170199773A1 (en) 2017-07-13
AU2009241481A8 (en) 2011-06-09
IL208050A0 (en) 2010-12-30
BRPI0909213A8 (pt) 2019-02-12
US10152362B2 (en) 2018-12-11
EP2269146A4 (en) 2013-04-10
JP2011524033A (ja) 2011-08-25
US9921892B2 (en) 2018-03-20
CA2718119C (en) 2017-01-17
BRPI0909213A2 (pt) 2015-10-20
KR20100135844A (ko) 2010-12-27
US20180196704A1 (en) 2018-07-12
WO2009134583A2 (en) 2009-11-05
WO2009134583A3 (en) 2010-01-07
RU2507573C2 (ru) 2014-02-20
US20090271806A1 (en) 2009-10-29
KR101782163B1 (ko) 2017-10-23
JP5550636B2 (ja) 2014-07-16
ZA201006414B (en) 2011-12-28
AU2009241481B2 (en) 2014-06-05
US9507651B2 (en) 2016-11-29
CA2718119A1 (en) 2009-11-05
EP2269146B1 (en) 2016-11-23

Similar Documents

Publication Publication Date Title
ES2616659T3 (es) Técnicas para modificar un documento utilizando una superficie de transferencia latente
US9690573B2 (en) Web content management using predetermined project templates
CN104395884B (zh) 用于网页应用程序和浏览器扩展的数据存储层级
US20100318894A1 (en) Modifications to Editable Elements of Web Pages Rendered in Word Processor Applications
TWI536240B (zh) 用戶端應用程式與網頁整合
US20150317288A1 (en) Method and system to maintain a web page
CN101192152A (zh) 计算机辅助应用程序创建系统、方法和程序产品
US8495485B2 (en) System, method, and apparatus for location identification of content
TW201508639A (zh) 透過捕捉服務捕捉網站內容
CN104704468A (zh) Web应用程序的跨系统安装
US10839040B2 (en) Normalizing a page flow
US20100229081A1 (en) Method for Providing a Navigation Element in an Application
US11132418B2 (en) Systems and methods for generating floating button interfaces on a web browser
US20120036457A1 (en) Integrated development environment for rapid application development
CN102306164A (zh) 用于web服务的后期资源本地化绑定
US20120216132A1 (en) Embedding User Selected Content In A Web Browser Display
US11347381B2 (en) Dynamic synchronized image text localization
CN107533425A (zh) 跨平台命令可扩展性
EP3371715B1 (en) Generating a deferrable data flow
US9940311B2 (en) Optimized read/write access to a document object model
CN116401487A (zh) 一种简易搭建网站的方法、装置和介质