MX2010011403A - Tecnicas para modificar un documento utilizando una superficie de transferencia latente. - Google Patents

Tecnicas para modificar un documento utilizando una superficie de transferencia latente.

Info

Publication number
MX2010011403A
MX2010011403A MX2010011403A MX2010011403A MX2010011403A MX 2010011403 A MX2010011403 A MX 2010011403A MX 2010011403 A MX2010011403 A MX 2010011403A MX 2010011403 A MX2010011403 A MX 2010011403A MX 2010011403 A MX2010011403 A MX 2010011403A
Authority
MX
Mexico
Prior art keywords
transfer
document
latent
transfer surface
media content
Prior art date
Application number
MX2010011403A
Other languages
English (en)
Inventor
Paul Mcdonald
Paul Bailey
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MX2010011403A publication Critical patent/MX2010011403A/es

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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Human Computer Interaction (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (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

Se describen técnicas para modificar un documento utilizando una superficie de transferencia latente. Un aparato puede comprender un subsistema de edición de documento que comprende un módulo de creación de superficie de transferencia operativo para incorporar una superficie de transferencia latente en el documento. Un módulo de control de transferencia puede acoplarse comunicativamente al módulo de creación de superficie de transferencia. El módulo 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. Se describen y reclaman otras modalidades.

Description

TECNICAS PARA MODIFICAR UN DOCUMENTO UTILIZANDO UNA SUPERFICIE DE TRANSFERENCIA LATENTE ANTECEDENTES Los programas de aplicación, tales como programas de aplicación de procesamiento de palabras, tradicionalmente han sido programas de software independientes instalados en una computadora personal que proporcionan funcionalidad de edición y formateo rica para documentos almacenados en archivos locales o basados en red. Estos programas de aplicación generalmente son muy grandes, requiriendo de muchos megabytes de espacio de unidad para la instalación. Sin embargo, la tendencia reciente es para desarrollo colaborativo de documentos por usuarios remotamente diversos que pueden no tener acceso a los mismos programas de aplicación independientes y en donde los documentos pueden almacenarse en redes remotas accesibles a través de Internet. Esto ha llevado al desarrollo de programas de aplicación que pueden ser suministrados a través de un navegador de la Gran Red Mundial ("web") convencional, con lo cual permite que se editen documentos remotos por usuarios a través de una red sin la necesidad de instalar un programa de aplicación independiente tradicional.
Una técnica para proporcionar funcionalidad del programa de aplicación basada en web involucra desarrollar páginas web que utilizan características de edición disponibles en muchos programas del navegador web. Esta técnica tiene la ventaja de ser pequeña y rápida con poco esfuerzo de desarrollo. Las características de edición limitadas proporcionadas por estos navegadores web, sin embargo, generalmente no pueden compararse con las capacidades ricas de característica de programas de aplicación independientes tradicionales. Además, las características de edición disponibles pueden variar entre los diferentes programas de navegador web, con lo cual hacen difícil proporcionar una experiencia de usuario consistente a través de todos los navegadores web.
Otra técnica para proporcionar funcionalidad de programa de aplicación basada en web es implementar un programa de aplicación completo que se ejecuta dentro de un navegador al utilizar una tecnología de tiempo de funcionamiento del navegador transversal tal como JAVA de SUN MICROSYSTEMS, FLASH de ADOBE SYSTEMS, o JavaScript Asincrónico y XML ("AJAX"). Mientras se permite que el desarrollador tenga un control completo en las características y capacidades del programa de aplicación, este método generalmente involucra un esfuerzo de desarrollo considerable y requiere implementación de funcionalidad de edición de bajo nivel, tal como la presentación de texto en una ventana como escrita por el usuario, el movimiento de un cursor parpadeante a través del texto, o el reflujo constante de los contenidos de la ventana que escribe el usuario. Además, debido a que el programa de aplicación se ejecuta en una tecnología del tipo de funcionamiento basada en navegador, frecuentemente es lento en ejecución y puede no ser capaz de proporcionar una interfase de usuario en respuesta adecuadamente.
Es con respecto a estas y otras consideraciones que han sido necesarias las presentes mejoras.
BREVE DESCRIPCION DE LA INVENCION Esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe a continuación en la descripción detallada. Esta breve descripción no pretende identificar características clave o características esenciales del tema reclamado, ni se pretende como un auxiliar al determinar el alcance del tema reclamado.
Varias modalidades generalmente están dirigidas a técnicas para modificar, cambiar o de otra forma editar un documento en una red desde un dispositivo remoto. En una modalidad, por ejemplo, un aparato puede comprender un dispositivo de cliente que tiene un navegador web. El dispositivo de cliente puede recuperar un programa de aplicación de un servidor en una red al utilizar el navegador web, y ejecutar el programa de aplicación en el dispositivo de cliente para presentar el documento al utilizar una ventana del navegador web. Entonces un usuario puede editar el documento a través de la ventana de navegador web, y una vez modificado, almacenar el documento modificado en el servidor.
El dispositivo de cliente puede utilizar un subsistema de edición de documento novedoso y mejorado para manejar generalmente las operaciones de edición para un documento. En esta modalidad, por ejemplo, el subsistema de edición de documento puede comprender un módulo de creación de superficie de transferencia operativo para incorporar una superficie de transferencia latente en el documento. Un módulo de control de transferencia puede estar acoplado comunicativamente al módulo de creación de superficie de transferencia. El módulo 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 al utilizar la superficie de transferencia latente en respuesta a la solicitud de transferencia. Ejemplos de solicitudes de transferencia pueden incluir sin limitación copiar solicitudes de transferencia, cortar solicitudes de transferencia, pegar solicitudes de transferencia especial, y así sucesivamente. Se describen y reclaman otras modalidades.
Estas y otras características y ventajas serán evidentes a partir de una lectura de la siguiente descripción detallada y una revisión de los dibujos asociados. Se debe entender que tanto la descripción general anterior como la siguiente descripción detallada son solamente explicativas y no son restrictivas de los aspectos como se reclama.
BREVE DESCRIPCION DE LOS DIBUJOS La Figura 1 ilustra una modalidad de un primer sistema.
La Figura 2 ilustra una modalidad de un subsistema de edición de documento.
La Figura 3 ilustra una modalidad de un segundo sistema.
La Figura 4 una modalidad de un flujo lógico.
La Figura 5 lustra una modalidad una arquitectura de cómputo. La Figura 6 ilustra una modalidad de un artículo.
DESCRIPCION DETALLADA Varias modalidades incluyen estructuras físicas o lógicas dispuestas para realizar ciertas operaciones, funciones o servicios. Las estructuras pueden comprender estructuras físicas, estructuras lógicas, o una combinación de ambas. Las estructuras físicas o lógicas se implementan al utilizar elementos de hardware, elementos de software, o una combinación de ambos. Las descripciones de modalidades con referencia a elementos de hardware o software particulares, sin embargo, se pretenden como ejemplos y no limitaciones. Las decisiones para utilizar elementos de hardware o software para realmente practicar una modalidad depende del número de factores externos, tal como velocidad computacional deseada, niveles de energía, tolerancias al calor, presupuesto de ciclo de procesamiento, velocidades de datos de entrada, velocidades de datos de salida, recursos de memoria, velocidades de conductor común de datos, y otras limitaciones de diseño o desempeño. Además, las estructuras físicas o lógicas pueden tener conexiones físicas o lógicas correspondientes para comunicar información entre las estructuras en la forma de señales o mensajes electrónicos. Las conexiones pueden comprender conexiones por cable y/o inalámbricas como sea apropiado para la información o la estructura particular. Es importante notar que cualquier referencia a "una modalidad" o "una modalidad" significa que una característica, estructura, o aspecto particular descrito en conexión con la modalidad está incluido al menos en una modalidad. Las apariciones de la frase "en una modalidad" en varios lugares en la especificación no necesariamente hacen todas referencia a la misma modalidad.
Generalmente varias modalidades se dirigen a programas de aplicación basados en servidor o basados en web dispuestos para ejecución por un dispositivo de cliente al utilizar una interfase de comunicaciones adecuada tal como un navegador web. Los programas de aplicación basados en web permiten que los operadores creen y editen documentos en línea desde un dispositivo de cliente sin la necesidad de que se implementen programas de aplicación independientes por el dispositivo de cliente. Además, los programas de aplicación basados en web permiten la colaboración en tiempo real con otros operadores.
Los programas de aplicación pueden incluir cualquier tipo de programa de aplicación capaz de crear, modificar, procesar y de otra forma manejar documentos. Ejemplos de esos documentos pueden incluir sin limitación documentos de procesamiento de palabras, documentos de hoja de cálculo, documentos de administrador de información personal, documentos de presentación, documentos de nota, documentos de base de datos, documentos de publicación, documentos de entrada de datos, documentos de diagrama, documentos de proyecto, documentos de forma, documentos de Internet, documentos de lenguaje de marcación, documentos de lenguaje de marcación de hipertexto (HTML), HTML extensible (XHTML), documentos de lenguaje de marcación extensible (XML), documentos de lenguaje de marcación generalizada (GML), documentos GML estándares (SGML), documentos de lenguaje de marcación ligera (LML), lenguaje de marcación de interfase de usuario (UIML), documentos de lenguaje de marcación de gráficos de vector (VGML), documentos basados en web, documentos en línea, página web, y así sucesivamente. Ejemplos de programas de aplicación pueden incluir sin limitación cualquiera de los programas de aplicación incluidos con el conjunto de productividad de MICROSOFT® OFFICE hecho por Microsoft Corporation, Redmond, Washington. En una modalidad, por ejemplo, el programa de aplicación puede comprender un programa de procesamiento de palabras, tal como MICROSOFT WORD. El programa de aplicación de MICROSOFT WORD puede implementarse como un programa de aplicación basado en juez proporcionado por MICROSOFT OFFICE LIVE o GOOGLE® APPS. Sin embargo, las modalidades no están limitadas a este ejemplo.
En una modalidad, un programa de aplicación tal como un programa de procesamiento de palabras se implementa en una tecnología de tiempo de funcionamiento de navegador transversal y proporciona un grupo rico de características de edición comparable con programas de procesamiento de palabras independientes tradicionales. Las características de edición pueden incluir comandos, instrucciones o guías que involucran la transferencia de contenido de medios entre varios puntos finales. Ejemplos de las características de edición pueden incluir sin limitación comandos de copiar, comandos de cortar, comandos de pegar, comandos de pegado especial, y así sucesivamente. Ejemplos de transferencias entre varios puntos finales pueden incluir sin limitación la transferencia de contenido de medios entre un documento y un portapapeles de sistema, entre dos documentos diferentes, entre programas de aplicación, entre un programa de sistema y un programa de aplicación, entre objetos de software, y así sucesivamente. El programa de aplicación puede implementar las características de edición' al utilizar un subsistema de edición de /documento diseñado para soportar el programa de aplicación. "El subsistema de edición de documento puede implementarse en varias partes de una red, tal como una parte de un programa de aplicación basado en web ejecutado por un servidor, un programa de aplicación basado en web ejecutado por un dispositivo de cliente, una ínterfase de comunicaciones tal como navegador web, otro dispositivo accesible por red o accesible por cliente, o una combinación de tales opciones.
Las herramientas de edición basadas en web convencionales no son satisfactorias por un número de razones. Por ejemplo, las herramientas de edición basadas en web existentes típicamente tienen capacidades limitadas para implementar características de edición, particularmente con respecto a importar y exportar datos a un portapapeles de sistema. Esto es debido en parte a las restricciones de seguridad impuestas por el mismo navegador web. Por lo tanto, editar los documentos depende de los comandos de edición proporcionados por el navegador web. Por ejemplo, cuando se proporciona una superficie HTML editable al usuario, cualquier contenido de medio es arbitrario entonces puede pasar a la superficie. En este caso, el programa de procesamiento de palabras tiene control limitado en el estilo, formativo, y diseño de contenido de medios arbitrario pegado por un operador. Además, es difícil detectar tales operaciones de edición, y filtrar el contenido que trabaja bien en todos los navegadores web y se utiliza por aplicaciones existentes. Existen problemas similares para copiar contenido de medios en el portapapeles de sistema. El modelo de selección utilizado por un navegador web típicamente está limitado. Por ejemplo, un operador no puede hacer selecciones simultáneas de diferentes partes de un documento, o hacer una selección que transcurre a través de cualquier contenido incorporado tal como un Marco en línea (IMarco). Además, el contenido de medio es copiado desde un documento de fuente (por ejemplo, un documento presentado como una página web) puede no estar en un formato adecuado para un punto final objetivo.
Para resolver estos y otros problemas, las modalidades incluyen un subsistema de edición de documento dispuesto para proporcionar un grupo mejorado de características de edición comparable con un programa de procesamiento de palabras independiente. En lugar de utilizar las características de edición proporcionadas por el navegador web para ¡mplementar la funcionalidad de edición de bajo nivel, un programa de procesamiento de palabras puede utilizar un subsistema de edición de documento para ¡mplementar varias características de edición. En particular, el subsistema de edición de documento puede utilizar una superficie de transferencia latente para ¡mplementar las varias características de edición. La superficie de transferencia latente está incorporada en un documento y oculta de la vista por un operador. La superficie de transferencia latente puede utilizarse como una estructura de almacenamiento intermedia para el contenido de medios que se transfiere entre un documento y un portapapeles de sistema. En un aspecto, la superficie transferencia latente puede ¡mplementarse como un elemento de IMARCO de HTML, entre otros.
De acuerdo con una modalidad aquí presentada, puede editarse un documento dentro de un navegador web al utilizar la superficie de transferencia latente. Con respecto a esto, un programa de procesamiento de palabras que se ejecuta en el navegador web presenta el documento en una ventana de navegador. En cualquier momento que el subsistema de edición de documento reciba una solicitud de edición (por ejemplo, solicitud de cortar transferencia, solicitud de copiar transferencia, solicitud de pegar transferencia, solicitud de pegado especial de transferencia, etc.), utiliza la superficie de transferencia latente incorporada para facilitar o realizar la solicitud de edición. En general, el subsistema de edición de documento transfiere contenido de medios a la superficie de transferencia latente, procesa el contenido de medios, y entonces transfiere el contenido de medios procesado al objeto objetivo (por ejemplo, un documento o portapapeles de sistema). La etapa de procesamiento intermedia permite que el contenido de medios seleccionados se transforme o traduzca en varios formatos adecuados para un punto final objetivo, tal como un portapapeles de sistema en respuesta a una solicitud de transferencia de copia o una solicitud de cortar transferencia, un documento a una solicitud de pegar transferencia o una solicitud de pegado especial, y así sucesivamente. Las modalidades no están limitadas en este contexto.
Se debe apreciar que el tema antes descrito también puede implementarse como un aparato controlado por computadora, un procedimiento de computadora, un sistema de cómputo, o como un artículo de fabricación tal como un medio legible por computadora. Estas y varias otras características serán evidentes a partir de una lectura de la siguiente descripción detallada y una revisión de los dibujos asociados.
La Figura 1 ilustra un diagrama de bloques para un sistema 100. El sistema 100 puede comprender varios elementos diseñados para implementación por un ambiente de entidad individual o un ambiente distribuido de entidad múltiple. Cada elemento puede ¡mplementarse como un elemento de hardware, elemento de software, o cualquier combinación de los mismos, como se desee para un grupo dado de parámetros de diseño o limitaciones de desempeño. Ejemplos de elementos de hardware pueden incluir dispositivos, componentes, procesadores, microprocesadores, circuitos, elementos de circuito (por ejemplo, transistores, resistencias, condensadores, inductores, y así sucesivamente), circuitos integrados, circuitos integrados específicos de aplicación (ASIC), dispositivos de lógica programable (PLD), procesadores de señal lógica digital (DSP), disposición de entrada programable de campo (FPGA), unidades de memoria, accesos lógicos, registros, dispositivos de semiconductor, chips, microchips, grupos de chips, y así sucesivamente. Ejemplos de elemento de software pueden incluir cualquiera de los componentes, programas, aplicaciones de software, programas de computadora, programas de aplicación, sistemas de programa, programas de máquina, software de sistema operativo, software medio, firmware, módulos de software, rutinas, subrutinas, funciones, métodos, interfases, interfases de software, interfases de programa de aplicación (API), grupos de instrucción, código de cómputo, código de computadora, segmentos de código, segmentos de código de computadora, palabras, valores, símbolos, o cualquier combinación de los mismos.
Como se utiliza aquí los términos "sistema", "subsistema", "componente", y "módulo" pretenden hacer referencia a una entidad relacionada con computadora, que comprende hardware, una combinación de hardware y software, software, o software en ejecución. Por ejemplo, puede implementarse un componente como un procedimiento que corre en un procesador, un procesador, una unidad de disco duro, múltiples unidades de almacenamiento (de medio de almacenamiento óptico y/o magnético), un objeto, un ejecutable, una secuencia de ejecución, un programa, y/o una computadora. A manera de ilustración tanto una aplicación que corre en un servidor como el servidor puede ser un componente. Uno o más componentes pueden recibir dentro de un procedimiento y/o secuencia de ejecución, y un componente puede localizarse en una computadora y/o distribuirse entre dos o más computadoras como se desee para una implementación dada. Las modalidades no están limitadas en este contexto.
La modalidad ilustrada en la Figura 1 muestra aspectos variables de un sistema 100 para editar un documento de acuerdo con una superficie de transferencia latente 130. El sistema 100 incluye una computadora 120 que comprende un sistema de computadora de escritorio o portátil estándar capaz de ejecutar un sistema operativo y uno o más programas de aplicación. La computadora 120 está operativamente conectada a una pantalla 104, ratón 108, y teclado 110 para permitir que un usuario 102 interactue con el sistema y los programas de aplicación que se ejecutan en la computadora 120. La computadora 120 está conectada a una computadora de servidor 162 a través de una o más redes de área local y amplia, tal como la red 160. Se debe apreciar que pueden utilizarse muchas más conexiones de red a las ilustradas en la Figura 1.
La computadora 120 es operativa para ejecutar un navegador web 122 que está operativamente conectado a través de la red 160 a un navegador web 146 ejecutado por la computadora de servidor 162. En una modalidad, el navegador web 122 es un programa de aplicación capaz de presentar documentos HTML, tal como INTERNET EXPLORER® de MICROSOFT CORPORATION, FIREFOX de MOZILLA, SAFARI de APPLE INC., y otros. Se apreciará por un experto en la técnica, sin embargo, que cualquier tipo de programa de aplicación capaz de presentar un lenguaje de marcación y ejecutar lógica de escrito puede utilizarse para representar el navegador web 122. La computadora de servidor 162 puede operar como un servidor web e incluye cualquier programa de software capaz de servir documentos a un navegador web 122. La computadora de servidor 162 además está conectada a un almacenamiento de datos 168 que contiene documentos y un programa de aplicación 140, que puede describirse en más detalle a continuación. De acuerdo con una modalidad, los documentos pueden incluir un documento 128 que se va a servir por el navegador web 122. Por ejemplo, el documento 128 puede comprender un documento HTML presentado por el navegador web 122. Con la solicitud con un usuario 102 de la computadora 120, el navegador web 122 es operativo para recuperar el documento 128 del servidor web 164 y presentarlo en una ventana 106 en la pantalla 104 para presentación al usuario 102.
Como se discute brevemente en lo anterior, el sistema 100 también incluye un programa de aplicación 140, tal como un programa de procesamiento de palabras. El programa de aplicación 140 es operativo para permitir que el usuario 102 de la computadora 120 edite los contenidos del documento 128 en la ventana 106. De acuerdo con una modalidad, el programa de aplicación 140 es capaz de ejecutarse dentro de un ambiente de tiempo de funcionamiento proporcionado por el navegador web 122. Por ejemplo, el programa de aplicación 140 puede crearse al utilizar técnicas de desarrollo AJAX.
En una modalidad, el programa de aplicación 140 se percibe del servidor web 164 junto con el documento 128 que se va a editar. En modalidades alternativas, el programa de aplicación 140 puede residir localmente en la computadora 120. El programa de aplicación 140 incluye un módulo de programa de aplicación 148, que comprende la aplicación operativa para proporcionar un grupo dado de funcionalidad (por ejemplo, procesamiento de palabras) al usuario 102. En una modalidad, el programa de aplicación 140 mantiene los contenidos del documento que se edita en una imagen de documento interna 150. En otras modalidades, el programa de aplicación 140 mantiene los contenidos del documento que se edita directamente dentro del documento 128. El presentador de pantalla 124 presenta el documento 128 para presentación. Por ejemplo, el presentador de pantalla 124 puede implementarse como un presentador de HTML.
En una modalidad, el programa de aplicación 140 incluye un módulo de manejo de evento 146, que verifica los eventos de entrada de usuario desde el procesador de entrada de usuario 126. Como se describe con detalle a continuación con respecto a la Figura 2, el módulo de manejo de evento 146 es operativo al detectar la colocación y el movimiento de usuario 102 como un indicador de inserción en una o más ubicaciones dentro del documento 128 como se presenta en la ventana 106. El módulo de manejo de eventos 146 además es operativo para verificar eventos de entrada usuario durante la edición de los contenidos de documento. Por ejemplo, el módulo de manejo de evento 146 puede detectar la selección de porciones o múltiples porciones de contenido de medios dentro del documento 128 en la preparación de un comando de edición.
La computadora 120 puede utilizar un subsistema de edición de documento mejorado 200 dispuesto para manejar generalmente operaciones de edición y editar características para un documento, tal como el documento 128. En particular, el subsistema de edición de documento 200 puede utilizar una superficie de transferencia latente 130 para soportar o implementar las varias características de edición. El subsistema de edición de documento 200 incorpora la superficie de transferencia latente 130 en el documento 128 en una forma que lo mantiene invisible u oculto de la vista por el usuario 102. El subsistema de edición de documento 200 puede utilizar la superficie de transferencia latente 130 como una estructura de almacenamiento intermedia para contenido de medios que se transfiere entre el documento 128 y un portapapeles de sistema.
La superficie de transferencia latente 130 puede comprender cualquier marco editable adecuado para uso con un lenguaje de marcación dado utilizado por el presentador de pantalla 124 para presentar el documento 128 en la ventana de navegador 106 en la pantalla 104 para presentación al usuario 102. Además, la superficie de transferencia latente está oculta, latente o invisible para que el usuario 102 no pueda ver o percibir el marco editable mientras ve el documento 128 en la ventana de navegador 106. En una modalidad, por ejemplo, la superficie de transferencia latente 130 puede implementarse como elemento de IMARCO HTML, entre otros. Cualquier marco editable que es invisible para el usuario 102 y adecuado para uso con un documento particular puede utilizarse como la superficie de transferencia latente 130. Las modalidades no están limitadas en este contexto.
La superficie de transferencia latente 130 puede utilizarse como un depósito o almacenamiento temporal para contenido de almacenamiento que el usuario 102 pega en el documento 128, y un lugar para presentar contenido seleccionado para un comando de copiar o cortar. Al utilizar una superficie de transferencia invisible o latente 130 permite que cada documento 128 almacene temporalmente contenido de medios que se transfiere al documento 128 ó desde el documento 128. El subsistema de edición de documento 200 puede verificar la superficie de transferencia latente 130, y detectar cuando se depositó el contenido de medios en la superficie de transferencia latente 130. El subsistema de edición de documento 200 entonces puede transformar o traducir el contenido de medios almacenado por la superficie de transferencia latente 130 en un formato adecuado para el punto final objetivo (por ejemplo, un portapapeles o documento de sistema). De esta forma, el subsistema de edición de documento 200 y la superficie de transferencia latente 130 permiten que el programa de aplicación 140 controle el formateo de contenido de medios que se inserta en el documento 128 desde el portapapeles de sistema 142 utilizando un comando de pegar o un comando de pegado especial, así como copiado o movido desde el documento 128 hacia el portapapeles de sistema 142 utilizando un comando de copiar o un comando de cortar. La distinción entre este tipo de modelo, y el comportamiento defectuoso proporcionado por las características de edición implementadas para un navegador web típico, es que el subsistema de edición de documento 200 mantiene control completo en el contenido de medios seleccionado, que permite que el subsistema de edición de documento 200 manipule el estilo, formateo, diseño y otros aspectos de formateo del contenido de medios, en lugar de restringirse a esas características y controles de edición proporcionados por un navegador web.
En una modalidad, por ejemplo, el subsistema de edición de documento 200 puede utilizar la superficie de transferencia latente 130 para manejar los comandos de pegado y de pegado especial. En particular, el subsistema de edición de documento 200 puede implementar la superficie de transferencia latente 130 como un nuevo elemento HTML en el documento 128 presentado como una página web en una ventana 106 de la pantalla 104. Al colocar programáticamente el enfoque en la superficie de transferencia latente 130, una acción de usuario para activar un comando de pegar colocará al contenido de medios en la superficie de transferencia latente 130. El término "enfoque" se refiere a la ubicación de un punto de inserción o selección actual dentro de un documento dado. Los contenidos de la superficie de transferencia latente 130 pueden verificarse para detectar cuando ha ocurrido la operación de pegar. Cuando lo hace, los contenidos de la superficie de transferencia latente 130 pueden inspeccionarse, y transformarse en un formato adecuado para el documento 128. Después de que se transformaron los datos, se insertan en la vista de usuario del documento 128. De esta forma, el control en el contenido de medios que aparece en la página web puede mantenerse, y la información sobre las ediciones que se hicieron al documento 128 puede conservarse.
En una modalidad, por ejemplo, el subsistema de edición de documento 200 también puede utilizar la superficie de transferencia latente 130 para manejar los comandos de copiar, mover y cortar. Cuando el usuario 102 selecciona algún contenido de medios en el documento 128 al utilizar un dispositivo de entrada tal como un teclado o ratón, el subsistema de edición de documento 200 determina qué contenido de medios desea seleccionar el usuario. El subsistema de documento 200 después cambia el formateo del contenido de medios seleccionado para indicar que se seleccionó (por ejemplo, fondo azul en el texto). El subsistema de edición de documento 200 establece los contenidos de la superficie de transferencia latente 130 para hacer un funcionamiento de código HTML u otro código que representa los datos extras seleccionados por el usuario 102. El subsistema de edición de documento 200 establece programáticamente el enfoque en el documento 128 para señalar en los contenidos de la superficie de transferencia latente 130. Como un resultado, cuando el usuario 102 ejecuta el comando de copiar, el portapapeles de sistema 142 puede llenarse con el contenido de medios generado por el subsistema de edición de documento 200.
La Figura 2 ilustra un diagrama de bloques más detallado del subsistema de edición de documento 200. El subsistema de edición de documento 200 puede comprender múltiples componentes y/o módulos. En la modalidad ilustrada mostrada en la Figura 2, el subsistema de edición de documento 200 puede incluir un componente de administrador de edición 220, un componente de almacenamiento 230, y un componente de entrada/salida (l/O) 240. Los componentes y/o módulos pueden implementarse al utilizar elementos de hardware, elementos de software, o una combinación de elementos de hardware y elementos de software. Aunque el subsistema de edición de documento 200 como se muestra en la Figura 2 tiene un número limitado de elementos en cierta topología, se puede apreciar que el subsistema de edición de documento 200 puede incluir más o menos elementos en topologías alternas como se desea para una implementación dada.
Un componente de administrador de edición 220 puede disponerse para recibir varios mensajes de evento de entrada 202 en una fila de mensaje de evento 222. La fila de mensaje de evento 222 puede comprender una o más filas para manejar mensajes de evento. En una modalidad, por ejemplo, la fila de mensaje de evento 222 puede manejar mensajes de evento con distintas propiedades. El módulo de manejo de evento 146 puede utilizar la fila de mensajes de evento 222 para procesar y manejar los varios mensajes de evento 202.
El componente de manejo de edición 220 puede incluir lógica de control 224. La lógica de control 224 puede disponerse para controlar operaciones del componente de administrador de edición 220 basándose en la información de configuración 206. Por ejemplo, la lógica de control 224 puede ejecutar un algoritmo, flujo de lógica o una máquina de estado para realizar varias operaciones en datos de entrada recibidos desde varios subsistemas de entrada en respuesta a los varios mensajes de evento de entrada 202. La lógica de control 224 puede procesar los datos de entrada basándose en la información de configuración 206. La lógica de control 224 también puede generar varios mensajes de evento de salida 204, y enviar los mensajes de evento de salida 204 a un programador y distribuidor de evento 226.
El componente de administrador de edición 220 puede incluir un programador y distribuidor de evento 226. El programador y distribuidor de evento 226 puede disponerse para iniciar eventos a otras entidades externas, y distribuye eventos internos y mensajes dentro del componente de manejo de edición 220. Por ejemplo, el programador y distribuidor de evento 226 envía varios mensajes de evento de salida 204 en respuesta a los mensajes de evento de entrada 202 a otros sistemas, subsistemas, componentes o módulos del sistema 100.
En una modalidad, el subsistema de edición de documento 200 puede incluir el componente de almacenamiento 230. El componente de almacenamiento 230 puede disponerse con almacenamientos de datos y lógica para manejar operaciones de almacenamiento para editar el componente de administrador 220. El componente de almacenamiento 230 puede almacenar información temporal o sin transacción utilizada por el componente de administrador de edición 220 en un almacenamiento de datos temporal 232. Por ejemplo, la información temporal o sin transacción puede almacenarse como lenguaje de marcación extensible (XML), archivos binarios, o algún otro formato en el almacenamiento de datos temporal 232. El componente de almacenamiento 230 puede almacenar información persistente o con transacción al utilizar el componente de administrador de edición 220 en un almacenamiento de datos permanente 234. Los almacenamientos de datos 232, 234 pueden comprender almacenamientos de datos individuales, respectivamente, y múltiples almacenamientos de datos que comprenden parte de una disposición de almacenamiento de datos mayor, tal como una red de área de almacenamiento (SAN). Además, el componente de lógica 230 y los almacenamientos de datos 232, 234 pueden implementar las técnicas de memoria intermedia y memoria caché de datos apropiadas y estructuras si es necesario para satisfacer los parámetros de latencia y capacidad del sistema. El componente de almacenamiento 230 también maneja operaciones para registrar y auditar el almacenamiento.
En una modalidad, el subsistema de edición de documento 200 puede incluir el componente l/O 240. El componente i/O 240 puede disponerse con memorias intermedias y lógica para manejar el transporte y las operaciones de l/O al mover información a través del subsistema de edición de documento 200. Por ejemplo, el componente l/O 240 puede incluir una o más memorias intermedias de datos de entrada 242 para recibir y almacenar datos de entrada 208 de un subsistema de entrada. Una o más módulos del componente de administrador de edición 220 pueden procesar los datos de entrada 208 para formar datos procesados, y enviarlos a una o más memorias intermedias de datos de salida 246. Las memorias intermedias de datos de salida 246 pueden disponerse para almacenar y enviar datos de salida a un subsistema de salida. Un administrador de datos 244 pueden implementar interfases de lógica y de red (por ejemplo, interfases de servicio web) para controlar y manejar servicios de recolección de datos y servicios de distribución de datos. El componente l/O 240 puede implementar una o más memorias intermedias de transformación 248 para transformar los datos de entrada 208 y/o los datos procesados de un formato, esquema de datos o protocolo, para alternar formatos, esquemas de datos, o protocolos.
En la operación general, el subsistema de edición de documento 200 puede implementar varias características de edición para el programa de aplicación 140 al utilizar el navegador web 122 ejecutado por la computadora 120. Más particularmente, el subsistema de edición de documento 200 puede utilizar la superficie de transferencia latente 300 para soportar las características de edición. Esto puede realizarse al utilizar un número de módulos de edición 228-1-p. En la modalidad ilustrada mostrada en la Figura 2, los módulos de edición 228-1-p pueden incluir un módulo de creación de superficie de transferencia 228-1, un módulo de control de transferencia 228-2, y un módulo de transformación de contenido de medios 228-3. Aunque el número específico de módulos de edición 228-1-p se muestra en la Figura 2 a manera de ejemplo y no de limitación, se puede apreciar que pueden implementarse más o menos módulos para varios grupos de operaciones de mercado de innovación como se desee para una implementación dada. Las modalidades no están limitadas en este contexto.
El módulo de creación de superficie de transferencia 228-1 generalmente puede ser operativo para crear e incorporar la superficie de transferencia latente 130 en el documento 128. La superficie de transferencia latente 130 puede utilizarse como una estructura de almacenamiento temporal que permite que el subsistema de edición de documento 200 controle la importación y la exportación de contenido de medios hacia y desde el programa de aplicación basado en web 140. La superficie de transferencia latente 300 es un marco editable (por ejemplo, un IMarco) que está controlado por el programa de aplicación 140, pero realmente no es visible para el usuario 102 del programa de aplicación 140. La superficie de transferencia latente 130 opera como una ubicación de destino intermedia para editar comandos emitidos por el usuario 102, el navegador web 122, un programa de aplicación, o alguna otra entidad u objeto.
El módulo de creación de superficie de transferencia 228-1 puede crear la superficie transferencia latente 130 en varias etapas. Por ejemplo, el módulo de creación de superficie de transferencia 228-1 puede crear la superficie de transferencia latente 130 cuando el usuario 102 inicia el programa de aplicación 140. En otro ejemplo, el módulo de creación de superficie de transferencia 228-1 puede crear la superficie de transferencia latente 130 cuando el presentador de pantalla 124 presenta el documento 128 en la ventana de navegador 106. En ese caso, el programa de aplicación 140 mantiene una referencia a la superficie de transferencia latente 130 una vez que se crea.
La superficie de transferencia latente 130 puede comprender cualquier marco editable adecuado para usarse con un lenguaje de marcación dado utilizado por el presentador de pantalla 124 para presentar el documento 128 en el navegador web 106 en la pantalla 104 para presentación al usuario 102. En una modalidad, por ejemplo, la superficie de transferencia latente 130 puede implementarse como un elemento de IMARCO de HTML, entre otros. Además, la superficie transferencia latente está oculta o invisible para que el usuario 102 no pueda ver o percibir el marco editable mientras ve el documento 128 en la ventana de navegador 106.
El módulo de control de transferencia 228-2 puede acoplarse comunicativamente al módulo de creación de superficie de transferencia 228-1. El módulo de control de transferencia 228-2 generalmente puede disponerse para controlar operaciones de transferencia para el subsistema de edición de documento 200 al utilizar superficies de transferencia latente 130. En una modalidad, por ejemplo, el módulo de control de transferencia 228-2 puede recibir una solicitud de transferencia para transferir contenido de medios al documento 128 como se intercepta por el módulo de manejo de evento 146. El módulo de control de transferencia 228-2 entonces puede coordinar la transferencia del contenido de medios al utilizar la superficie de transferencia latente 130 en respuesta a la solicitud de transferencia. Ejemplos de solicitudes de transferencia pueden incluir sin limitación cualquiera de los comandos de edición adecuados, tal como solicitudes para copiar transferencia, solicitudes para pegar transferencia, solicitudes para pegar transferencia, solicitudes para pegado especial de transferencia, y así sucesivamente.
El módulo de control de transferencia 228-2 puede ser operativo para transferir el contenido de medios desde el documento 128 hacia la superficie de transferencia latente 130 en respuesta a una solicitud de copiar transferencia o una solicitud de cortar transferencia. El módulo de control de transferencia 228-2 proporciona selección y soporte de copia para el subsistema de edición de documento 200. El módulo de control de transferencia 228-2 rastrea acciones de teclado y de ratón por el usuario 102 y después las procesas para determinar que contenido de medios en el documento 128 se seleccionó por el usuario 102. A manera de contraste, los navegadores web convencionales típicamente seleccionan el contenido para un programa de aplicación basado en web. El módulo de control de transferencia 228-2 interviene en este punto, sin embargo, y mantiene el rastro de que objetos (texto, imágenes, etc.) en el documento 128 intenta seleccionar el usuario 102. El módulo de control de transferencia 228-2 presentará visualmente esto al usuario 102 en alguna forma perceptible, tal como el cambiar los colores de fondo en el texto, resaltar un borde alrededor de una imagen, y otras técnicas de interfase de usuario de gráficos (GUI) apropiada.
Aproximadamente al mismo tiempo, el módulo de control de transferencia 228-2 presentará el contenido de medios seleccionado en la superficie transferencia latente 130. Esto puede realizarse, por ejemplo, al crear el árbol HTML apropiado dentro de la superficie de transferencia latente 130. Esto permite que el programa de aplicación 140 presente el contenido de medios en una forma compatible con características de formato actuales utilizadas por un punto final objetivo. Por ejemplo, asumir que la selección en el documento 128 comprende un funcionamiento de texto dentro de una tabla. Dependiendo del objetivo, el módulo de control de transferencia 228-2 opcionalmente puede elegir si incluye la tabla circundante como parte del contenido de medios que se presenta en la superficie de transferencia latente 130. Por ejemplo, el módulo de control de transferencia 228-2 puede incluir la tabla circundante y se utiliza para asociación lógica de elementos en una página, al excluir la tabla circundante si se utiliza para propósitos de diseño solamente, y así sucesivamente.
Una vez que el módulo de control de transferencia 228-2 determina la presentación para el contenido seleccionado almacenado por la superficie de transferencia latente 130, el módulo de control de transferencia 228-2 puede utilizar código de JavaScript o alguna otra técnica adecuada para instruir al navegador web 122 a marcar el contenido de medio seleccionado. Visualmente, esta acción está oculta de la vista 102. En lugar de esto, el usuario 102 verá únicamente los elementos visuales de indicación de selección como se describe anteriormente. En este punto, el usuario 102 puede decidir si emite un comando de copiar o un comando de cortar al presionar un atajo de teclado, al utilizar el menú de contexto de clic derecho, el menú de edición de navegador, y así sucesivamente. Cuando el comando de copiar/cortar emite, el módulo de control de transferencia 228-2 transferirá el contenido de medios transformado desde la superficie de transferencia latente 130 al portapapeles de sistema 142. De esta forma, el módulo de control de transferencia 228-2 puede utilizarse para determinar precisamente qué contenido de medios se entrega al portapapeles de sistema 142, en lugar de ser limitado a las características de edición provistas por el navegador web 122.
El módulo de control de transferencia 228-2 puede ser operativo para transferir el contenido de medios desde un portapapeles de sistema hacia la superficie de transferencia latente 130 en respuesta a una solicitud de pegar transferencia, y al transferir cualquier contenido de medios transformado desde la superficie de transferencia latente 130 a la superficie 128. El módulo de control de transferencia 228-2 proporciona soporte de filtrado y de pegar para el subsistema de edición de documento 200. En un navegador web 122 ó programa de aplicación independiente, el enfoque del documento 128 solamente puede existir en un lugar en cualquier momento dado. Como se describió previamente, el módulo de control de transferencia 228-2 coloca el enfoque dentro de la superficie de transferencia latente 130 para permitir operaciones de copiar o cortar. Simílarmente, la superficie de transferencia latente 130 también puede servir como un objetivo para operaciones de pegar y de pegado especial. Cuando el usuario emite un comando de pegar y de pegado especial, el módulo de control de transferencia 228-2 detecta esta ocurrencia por notificación explícita o al examinar periódicamente los contenidos de la superficie de transferencia latente 130. Cuando el módulo de control de transferencia 228-2 detecta contenido de medios dentro de la superficie transferencia latente 130, el módulo de control de transferencia 228-2 puede emitir una directiva del módulo de transformación de contenido de medios 228-3.
El módulo de transformación de contenido de medios 228-3 puede acoplarse comunicativamente al módulo de control de transferencia 228-2. El módulo de transformación de contenido de medios 228-3 puede ser generalmente operativo para transformar el contenido de medios almacenado por la superficie de transferencia latente 130 desde un primer formato hacia un segundo formato. Esto puede realizarse, por ejemplo, al utilizar el administrador de datos 244 y las memorias intermedias de transformación 248.
Ya que la superficie de transferencia latente 130 es un elemento oculto del documento 128, el usuario 102 inicialmente no del contenido de medios inmediatamente después de que se proporcionó un comando de edición. Esto permite que el tiempo de módulo de transformación de contenido de medios 228-3 traduzca o transforme el contenido de medios dentro de la superficie de transferencia latente desde un formato de fuente en formato de destino. Como un resultado, el problema de aplicación 140 mantiene control sobre el estilo y diseño del documento 128 en respuesta a un comando de pegar/pegado especial, o el estilo y diseño del contenido de medios transferido desde el documento 128 al portapapeles de sistemas 142. El módulo de transformación de contenido de medios 228-3 analiza el contenido de medios transferido en la superficie de transferencia latente 130, y traduce el contenido de medios en una representación de datos apropiada de lo que representa el contenido de medios. Por ejemplo, cuando se transfiere el texto a la superficie de transferencia latente 130, se crea un Nodo de Correr Texto, en la memoria. Si el texto en el contenido de medios pegados se formatea con la etiqueta HTML <B>, que indica texto en negritas, el módulo de transformación del contenido de medios 228-3 establecerá una propiedad en el Nodo de I Correr Texto para indicar que el texto se presenta como negritas, y así sucesivamente. Esto se hace para todos los varios tipos de nodos HTML soportados por el programa de aplicación 140 en general, y el subsistema de edición de documento 200 en particular. Una vez que se completa la operación de transformación, el módulo de transformación de contenido de medios 228-3 notifica al módulo de control de transferencia 228-2, que actualizaciones subsecuentes al documento real 128 incluye el contenido de medios recientemente presentado en una forma visible por el usuario 102.
Al intervenir en la mitad de las operaciones de edición, el subsistema de edición de documento 200 proporciona la oportunidad de aplicar cualquier formateo deseado por el usuario 102 y/o el programa de aplicación 140 por ejemplo, el contenido de medios transferidos puede transformarse para coincidir con la apariencia predeterminada actual implementada para el documento 128, para desprender contenido de medios no deseado, y así sucesivamente. De esta forma, el programa de aplicación 140 puede mantener un control estricto en el diseño y formateo del documento 128.
La Figura 3 ilustra una modalidad un sistema 300. El sistema 300 ilustra un flujo de datos lógico entre algunos de los elementos involucrados al ejecutar un comando de edición.
Como se muestra en la Figura 3, el subsistema de edición de documento 200 puede recibir una solicitud de copiar transferencia 310 para contenido seleccionado 332 del usuario 102 a través del navegador web 122. El módulo de control de transferencia 228-2 puede recibir la solicitud de copiar transferencia 310, y transferir el contenido seleccionado 332 del documento 128 a la superficie de transferencia latente 130. La superficie de transferencia latente 130 puede almacenar el contenido seleccionado 332 como contenido temporal 334. Alternativamente, los controles de edición del navegador web 122 pueden utilizarse para seleccionar y transferir el contenido seleccionado 332. En este caso, el subsistema de edición de documento 200 puede interceptar las guías de control del navegador web 122 a través del módulo de manejo de evento 146. En cualquier caso, el módulo de control de transferencia 228-2 puede detectar que la superficie transferencia latente 130 tiene contenido de medios que está listo para transformación, y notifica al módulo de transformación de contenido de medios 228-3 por consiguiente.
El módulo de transformación de contenido de medios 228-3 recibe la notificación del módulo de control de transferencia 228-2, e inicia operaciones de transformación. El módulo de transformación de contenido de medios 228-3 determina un formato apropiado para el contenido temporal 334. Esto puede realizarse en un número de diferentes formas. Por ejemplo, el módulo de transformación de contenido de medios 228-3 puede almacenar diferentes módulos de transformación que corresponden a diferentes puntos finales objetivo. El módulo de transformación de contenido de medios 228-3 puede determinar el punto final objetivo del contenido temporal 334, recuperar el módulo de transformación correspondiente, y utilizar el módulo de transformación recuperado para transformar el contenido temporal 334 a diferentes formatos apropiados para los diferentes puntos finales objetivo. Esto puede ser adecuado cuando el contenido de medios no está destinado a varios puntos finales o cuando se utiliza con sistemas de legado. Adicional o alternativamente, el módulo de transformación de contenido de medios 228-3 puede transformar el contenido temporal 334 al formato estándar universal aceptable para todos los puntos finales objetivos. Esto puede ser adecuado cuando se destina contenido de medios para puntos finales que tienen las mismas capacidades. El módulo de transformación de contenido de medios 228-3 puede utilizar las memorias intermedias de transformación 248 para soportar operaciones de transformación.
Una vez que se completan las operaciones de transformación, el módulo de transformación de contenido de medios 228-3 notifica al módulo de control de transferencia 228-2. El módulo de control de transferencia 228-2 transfiere contenido de medios transformado al punto final objetivo, tal como el portapapeles de sistema 142. El portapapeles de sistema 142 ahora almacena el contenido almacenado 336 en un formato, tal como un funcionamiento del código HTML, diseñado para presentar el contenido almacenado 336 en una forma similar al contenido seleccionado 332 cuando se copia o corta originalmente del documento 128.
Similarmente, el subsistema de edición de documento 200 puede recibir una solicitud de pegar transferencia 312 para contenido almacenado 322 desde el usuario 102 a través del navegador web 122. El módulo de control de transferencia 228-2 puede recibir la solicitud de pegar 312, y transferir el contenido almacenado 332 desde portapapeles de sistema 142 hacia la superficie de transferencia latente 130. La superficie de transferencia latente 130 puede almacenar el contenido seleccionado 332 como contenido temporal 324. Alternativamente, los controles de edición del navegador web 122 pueden utilizarse para transferir el contenido almacenado 322. En este caso, el subsistema de edición del documento 200 pueden interceptar las guías de control desde el navegador web 122 a través del módulo de manejo de evento 146. En cualquier caso, el módulo de control de transferencia 228-2 puede detectar que la superficie de transferencia latente 130 tiene contenido de medios que está listo para transformación, y notifican al módulo de transformación de contenido de medios 228-3, por consiguiente.
El módulo de transformación de contenido de medios 228-3 recibe la notificación del módulo de control de transferencia 228-2, e inicia operaciones de transformación. El módulo de transformación de contenido de medios 228-3 determina un formato apropiado para el contenido temporal 324. Esto puede realizarse en una forma similar a la descrita con referencia a la solicitud de copiar transferencia 310, con algunas excepciones. Ya que el punto final objetivo para el contenido temporal 324 es el documento 128 en este caso, sin embargo, el módulo de transformación de contenido de medios 228-3 puede transformar los diferentes formatos del contenido almacenado 322 al formato particular actualmente utilizado por el documento 128. Esto puede resultar en un tipo de muchos a uno de operaciones de transformación de formato que el tipo muchos a muchos de operaciones de transformación de formato.
Una vez que se completan las operaciones de transformación, el módulo de transformación de contenido de medios 228-3 notifica al módulo de control de transferencia 228-2. El módulo de control de transferencia 228-2 transfiere contenido de medios transformado al punto final objetivo, tal como el documento 128. El documento 128 entonces presenta al usuario 102 como contenido pegado 326 en un estilo y un formato compatible con el documento 128.
Las operaciones de las modalidades antes descritas además pueden describirse con referencia a uno o más flujos lógicos. Se puede apreciar que los flujos lógicos representativos no necesariamente se han ejecutado en el orden presentado, o en cualquier orden particular, a menos que se indique de otra forma. Además, varias actividades descritas con respecto a los flujos lógicos pueden ejecutarse en una forma en serie o paralela. Los flujos lógicos pueden implementarse al utilizar uno o más elementos de hardware y/o elementos de software de las modalidades descritas de modalidades alternativas como se describe para un grupo dado de limitaciones de diseño y desempeño. Por ejemplo, los flujos lógicos pueden implementarse como lógica (por ejemplo, instrucciones de programa de computadora) para ejecución por un dispositivo lógico (por ejemplo, una computadora de propósito general o de propósito específico).
La Figura 4 ilustra una modalidad de un flujo lógico 400. El flujo lógico 400 puede ser representativo de algunas o todas las operaciones ejecutadas por una o más modalidades aquí descritas.
En la modalidad ilustrada mostrada en la Figura 4, el flujo lógico 400 puede incorporar una superficie de transferencia latente en un documento en el bloque 402. Por ejemplo, el módulo de creación de superficie de transferencia 228-1 puede crear e incorporar la superficie transferencia latente 130 en el documento 128. Esto puede ocurrir durante el inicio del programa de aplicación 140 con la generación de un nuevo documento para el programa de aplicación 140. El módulo de creación de transferencia 228-1 puede crear una referencia para la superficie de transferencia latente 130, y pasar la referencia al módulo de control de transferencia 228-2.
El flujo lógico 400 puede recibir una solicitud de transferencia para transferir contenido de medios para el documento en el bloque 404. Por ejemplo, el módulo de control de transferencia 228-1 puede recibir una solicitud de transferencia (310, 312) para transferir contenido de medios (322, 332) para el documento 128 a un punto final objetivo, tal como el documento 128, en portapapeles de sistema 142, u otros puntos finales. El módulo de control de transferencia 228-1 puede recibir la solicitud de transferencia del navegador web 122 a través del módulo de manejo de evento 146.
El flujo lógico 400 puede transferir el contenido de medios al utilizar la superficie de transferencia latente en respuesta a la solicitud de transferencia en el bloque 406. Por ejemplo, el módulo de control de transferencia 228-1 puede transferir el contenido de medios (322, 332) al utilizar la superficie de transferencia latente 130 en respuesta a la solicitud de transferencia (310, 312). En muchos casos, el contenido de medios (322, 332) puede comprender contenido de medios transformado (324, 344) que tiene un formato compatible con el punto final objetivo (128, 142).
La Figura 5 además ilustra un diagrama de bloques más detallado de arquitectura de cómputo 510 adecuada para implementar a varias modalidades, tal como computadoras 120, computadora de servidor 162, y así sucesivamente. En una configuración básica, la arquitectura de cómputo 510 típicamente incluye al menos una unidad de procesamiento 532 y memoria 534. La memoria 534 puede implementarse al utilizar cualquier medio legible por computadora o legible por máquina capaz de almacenar datos, incluyendo memoria volátil y no volátil. Por ejemplo, la memoria 534 puede incluir memoria de sólo lectura (ROM), memoria de acceso aleatorio (RAM), RAM dinámica (DRAM), DRAM de velocidad de datos doble (DDRAM), DRAM sincrónica (SDRAM), RAM estática (SRAM), ROM programable (PROM), ROM programable borrable (EPROM), ROM eléctricamente programable, borrable (EEPROM), memoria flash, memoria de polímero tal como memoria de polímero ferroeléctrico, memoria ovónica, cambio de fase o memoria ferroeléctrica, memoria de silicio-óxido-nitruro-óxido-silicio (SONOS), tarjetas magnéticas u ópticas, o cualquier otro tipo de medio adecuado para almacenar información. Como se muestra en la Figura 5, la memoria 534 puede almacenar varios programas de software, tal como uno o más programas de software 534-1 -t y datos anexos. Dependiendo de la implementación, los ejemplos de programa de software 536-1-t pueden incluir un programa de sistema 536-1 (por ejemplo, un sistema operativo), un programa de aplicación 536-2 (por ejemplo, el navegador web 122, el programa de aplicación 140, etc.), el subsistema de edición de documento 200, y así sucesivamente.
La arquitectura de cómputo 510 también puede tener características y/o funcionalidad adicional más allá de su configuración básica. Por ejemplo, la arquitectura de cómputo 510 puede incluir almacenamiento removible 538 y almacenamiento no removible 540, que también puede comprender varios tipos de medios legibles por computadora o legibles por máquina como se describe previamente. La arquitectura de cómputo 510 también puede tener uno o más dispositivos de entrada 544 tal como un teclado, ratón, pluma, dispositivo de entrada por voz, dispositivo de entrada táctil, dispositivos de medición, sensores, y así sucesivamente. La arquitectura de cómputo 510 también puede incluir uno o más dispositivos de salida 542, tal como bocinas, pantallas, impresoras, y así sucesivamente.
La arquitectura de cómputo 510 además pu,ede incluir una o más conexiones de comunicaciones 546 que permiten que la arquitectura de cómputo 510 se comunique con otros dispositivos. Las conexiones de comunicaciones 546 pueden ser representativas, por ejemplo, de las interfases de comunicación para los componentes de comunicación 116-1-v. Las comunicaciones 546 pueden incluir varios tipos de elementos de comunicación estándares, tal como una o más interfases de comunicaciones, interfases de red, tarjetas de interfase de red (NIC), radios, transmisores/receptores inalámbricos (transceptores), medios de comunicación por cable y/o inalámbricos, conectores físicos, y así sucesivamente. Los medios de comunicación típicamente representan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo o de transporte e incluye cualquier medio de entrega de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características establecidas o cambiadas de tal forma para codificar información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios de comunicación por cable y medios de comunicación inalámbricos. Ejemplos de medios de comunicación por cable pueden incluir un alambre, cable, guías metálicas, tableros de circuito impreso (PCB), placas de circuito, telas de interruptor, material semiconductor, cable de par torcido, cable coaxial, fibra óptica, una señal propagada, y así sucesivamente. Ejemplos de medios de comunicaciones inalámbricos pueden incluir medios acústicos, de espectro de radiofrecuencia (RF), infrarrojos y otros inalámbricos. Los términos medios legibles por máquina y medios legibles por computadora como se utiliza aquí pretenden incluir tanto medios de almacenamiento como medios de comunicaciones.
La Figura 6 ilustra un diagrama de un artículo de fabricación 600 adecuado para almacenar lógica para las varias modalidades, incluyendo flujo lógico 400. Como se muestra, el artículo de fabricación 600 puede comprender un medio de almacenamiento 602 para almacenar lógica 604. Ejemplos del medio de almacenamiento 602 pueden incluir una o más tipos de medios de almacenamiento legibles por computadora capaces de almacenar datos electrónicos, incluyendo memoria volátil y memoria no volátil, memoria removible o no removible, memoria borrable o no borrable, memoria escribible o no escribible, y así sucesivamente. Ejemplos de la lógica 604 pueden incluir varios elementos de software, tal como componentes de software, programas, aplicaciones, programas de computadora, programas de aplicación, programas de sistema, programas de máquina, software de sistema operativo, software medio, firmware, módulos de software, rutinas, subrutinas, funciones, métodos, procedimientos, interfases de software, interfases de programa de aplicación (API), grupos de instrucción, código de cómputo, código de computadora, segmentos de código, segmentos de código de computadora, palabras, valores, símbolos, o cualquier combinación de los mismos.
En una modalidad, por ejemplo, el artículo de fabricación 600 y/o el medio de almacenamiento legible por computadora 602 puede almacenar lógica 604 que comprende instrucciones de programa de computadora ejecutables que, cuando se ejecutan por una computadora, causan que la computadora realice métodos y/u operaciones de acuerdo con las modalidades descritas. Las instrucciones de programa de computadora ejecutables pueden incluir cualquier tipo adecuado de código, tal como código de fuente, código recopilado, código interpretado, código ejecutable, código estático, código dinámico, y similares. Las instrucciones de programa de computadora ejecutables pueden implementarse de acuerdo con un lenguaje de computadora predefinido, forma o sintaxis, para instruir una computadora para realizar cierta función. Las instrucciones pueden implementarse al utilizar cualquier lenguaje de programación orientado a objeto, visual, recopilado y/o interpretado de alto nivel, de bajo nivel adecuado, tal como C, C + + , Java, BASIC, Perl, Matlab, Pascal, Visual BASIC, lenguaje de ensamble, y otros.
Pueden implementarse en varias modalidades al utilizar elementos de hardware, elementos de software, o una combinación de ambos. Ejemplos de elementos de hardware pueden incluir cualquiera de los ejemplos como se proporcionan previamente para un dispositivo lógico, y que además incluyen microprocesadores, circuitos, elementos de circuito (por ejemplo, transistores, resistencias, condensadores, inductores, y así sucesivamente), circuitos integrados, accesos lógicos, registros, dispositivos semiconductor, chips, microchips, grupos de chip, y así sucesivamente. Ejemplos de elementos de software pueden incluir componentes de software, programas, aplicaciones, programas de computadora, programas de aplicación, programas de sistema, programas de máquina, software de sistema operativo, software medio, firmware, módulos de software, rutinas, subrutinas, funciones, métodos, procedimientos, interfases de software, ínterfases de programa de aplicación (API), grupos de instrucción, código de cómputo, código de computadora, segmento de código, segmentos de código de computadora, palabras, valores, símbolos, o cualquier combinación de los mismos, la determinación de si se implementa una modalidad al utilizar elementos de hardware y/o elementos de software puede variar de acuerdo con cualquier número de factores, tal como velocidad computacional deseada, niveles de energía, tolerancias al calor, presupuesto de ciclo de procesamiento, velocidades de datos de entrada, velocidades de datos de salida, recursos de memoria, velocidades de conductor común de datos y otras limitaciones de diseño de desempeño, como se desea para una implementación dada.
Algunas modalidades pueden describirse al utilizar la expresión "acoplado" y "conectado" junto con sus derivados. Estos términos no necesariamente se consideran como sinónimos uno del otro. Por ejemplo, pueden describirse algunas modalidades al utilizar los términos "conectado" y/o "acoplado" para indicar que dos o más elementos están en contacto físico o eléctrico directo entre sí. El término "acoplado", sin embargo, también puede significar que dos o más elementos no están en contacto directo entre sí, pero incluso cooperan o interactúan entre sí.
Se enfatiza que el resumen de la descripción se proporciona para cumplir con 37 C.F.R. Sección 1.72(b), que requiere un resumen que permitirá que el lector valore rápidamente la naturaleza de la descripción técnica. Se envía con el entendimiento de que no se utilizará para interpretar o limitar el alcance o significado de las reivindicaciones. Además, en la descripción detallada anterior, se puede ver que varias características están agrupadas en una modalidad individual para el propósito de dirigir la descripción. Este método de descripción no se interpreta como reflejando una intención de que las modalidades reclamadas requieran más características que se mencionan expresamente en cada reivindicación. En lugar de esto, como reflejan las siguientes reivindicaciones, el tema inventivo yace en menos de todas las características de una modalidad descrita individual. De esa forma, las siguientes reivindicaciones se incorporan aquí en la descripción detallada, con cada reivindicación aparece por sí sola como una modalidad separada. En las reivindicaciones anexas, los términos "que incluye" y "en donde" se utilizan como los equivalentes de inglés plano de los términos respectivos "que comprende" y "en donde", respectivamente. Además, los términos "primero", "segundo", "tercero", y así sucesivamente, se utilizan simplemente como etiquetas, y no pretenden imponer requerimientos numéricos en sus objetos.
Aunque el tema se describió en lenguaje específico a características estructurales y/o actos metodológicos, se debe entender que el tema definido en las reivindicaciones anexas no necesariamente está limitado a las características o actos específicos descritos anteriormente. En lugar de eso, las características y actos específicos descritos anteriormente se describen como formas ilustrativas para implementar las reivindicaciones.

Claims (15)

REIVINDICACIONES
1.- Un método que comprende: incorporar (402) una superficie de transferencia latente (130) en un documento (128); recibir (404) una solicitud de transferencia (310, 312) para transferir contenido de medios para el documento; y transferir (406) el contenido de medios al utilizar la superficie de transferencia latente en respuesta a la solicitud de transferencia.
2.- El método de acuerdo con la reivindicación 1, que comprende transferir el contenido de medios a la superficie de transferencia latente para operaciones de transformación de datos intermedia antes de completar la solicitud de transferencia.
3. - El método de acuerdo con la reivindicación 1 ó 2, que comprende transformar el contenido de medios almacenado por la superficie de transferencia latente de un primer formato a un segundo formato.
4. - El método de acuerdo con cualquiera de las reivindicaciones 1 a 3, que comprende recibir una solicitud de copiar transferencia para copiar el contenido de medios del documento a un portapapeles de sistema (142), o una solicitud de cortar transferencia para mover el contenido de medios del documento a un portapapeles de sistema (142).
5. - El método de acuerdo con cualquiera de las reivindicaciones 1 a 4, que comprende transferir el contenido de medios del documento a la superficie de transferencia latente en respuesta a una solicitud de copiar transferencia o una solicitud de cortar transferencia.
6. - El método de acuerdo con cualquiera de las reivindicaciones 1 a 5, que comprende transferir contenido de medios transformado de la superficie de transferencia latente a un portapapeies de sistema (142).
7. - El método de acuerdo con cualquiera de la reivindicaciones 1 a 6, que comprende recibir una solicitud de pegar transferencia para pegar el contenido de medios de un portapapeies de sistema (142) al documento.
8. - El método de acuerdo con cualquiera de las reivindicaciones 1 a 7, que comprende transferir el contenido de medios de un portapapeies de sistema (142) a la superficie de transferencia latente en respuesta a una solicitud de pegar transferencia.
9. - Un artículo que comprende un medio de almacenamiento legible por máquina o por computadora que contiene instrucciones que cuando se ejecutan permiten que un sistema implemente el método de acuerdo con cualquiera de las reivindicaciones 1 a 8.
10. - Un aparato, que comprende: un subsistema de edición de documento (200) operativo para manejar operaciones de edición para un documento (128), el subsistema de edición de documento comprende: un módulo de creación de superficie de transferencia (228-1) operativo para incorporar una superficie de transferencia latente (130) en el documento; y un módulo de control de transferencia (228-2) comunicativamente acoplado al módulo de creación de superficie de transferencia, el módulo de control de transferencia operativo para recibir una solicitud de transferencia (310, 312) 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.
11.- El aparato de acuerdo con la reivindicación 10, en donde el módulo de control de transferencia es operativo para transferir el contenido de medios a la superficie de transferencia latente para operaciones de transformación de datos intermedias antes de completar la solicitud de transferencia.
12.- El aparato de acuerdo con la reivindicación 10 u 11, que comprende un módulo de transformación de contenido de medios (228-3) comunicativamente acoplado al módulo de control de transferencia, el módulo de transformación de contenido de medio es operativo para transformar el contenido de medios almacenado por la superficie de transferencia latente desde un primer formato a un segundo formato.
13.- El aparato de acuerdo con cualquiera de las reivindicaciones 10 a 12, en donde el módulo de control de transferencia es operativo para transferir el contenido de medios desde el documento hasta la superficie de transferencia latente en respuesta a una solicitud de copiar transferencia o una solicitud de cortar transferencia, y transferir contenido de medios transformado de la superficie de transferencia latente a un portapapeles de sistema (142).
14.- El aparato de acuerdo con cualquiera de las reivindicaciones de 10 a 13, en donde el módulo de control de transferencia es operativo para transferir el contenido de medios de un portapapeles de sistema (142) a la superficie de transferencia latente en respuesta a una solicitud de pegar transferencia, y transferir contenido de medios transformado de la superficie de transferencia latente hasta el documento.
15.- El aparato de acuerdo con cualquiera de la reivindicaciones 10 a 14, que comprende un dispositivo de cliente (120) que tiene un navegador web (122), el dispositivo de cliente para recuperar un programa de aplicación (140) desde un servidor (162) a través de una red (160) al utilizar el navegador web, ejecutar el programa de aplicación en el dispositivo de cliente para presentar el documento al utilizar una ventana de navegador web, y utilizar el subsistema de edición de documento para editar el documento.
MX2010011403A 2008-04-28 2009-04-03 Tecnicas para modificar un documento utilizando una superficie de transferencia latente. MX2010011403A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
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
MX2010011403A true MX2010011403A (es) 2010-11-26

Family

ID=41216269

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2010011403A MX2010011403A (es) 2008-04-28 2009-04-03 Tecnicas 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
US9294421B2 (en) 2009-03-23 2016-03-22 Google Inc. System and method for merging edits for a conversation in a hosted conversation system
US9602444B2 (en) 2009-05-28 2017-03-21 Google Inc. Participant suggestion system
US9021386B1 (en) 2009-05-28 2015-04-28 Google Inc. Enhanced user interface scrolling 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
US9380011B2 (en) 2010-05-28 2016-06-28 Google Inc. Participant-specific markup
US9026935B1 (en) 2010-05-28 2015-05-05 Google Inc. Application user interface with an interactive overlay
CA2814950C (en) 2010-11-02 2017-06-27 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
EP1028372B1 (en) * 1994-12-13 2007-08-22 Microsoft Corporation Data transfer with expanded clipboard formats
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
JP4522650B2 (ja) 2000-06-21 2010-08-11 マイクロソフト コーポレーション スプレッドシートとワードプロセッシングの表を統合するシステムと方法
US7259753B2 (en) 2000-06-21 2007-08-21 Microsoft Corporation Classifying, anchoring, and transforming ink
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7117435B1 (en) 2000-06-21 2006-10-03 Microsoft Corporation Spreadsheet fields in text
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
US20060155821A1 (en) * 2003-06-13 2006-07-13 Luigi Pichetti 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
BRPI0909213A2 (pt) 2015-10-20
AU2009241481A8 (en) 2011-06-09
CA2718119A1 (en) 2009-11-05
JP5550636B2 (ja) 2014-07-16
WO2009134583A3 (en) 2010-01-07
ES2616659T3 (es) 2017-06-13
US10152362B2 (en) 2018-12-11
US20180196704A1 (en) 2018-07-12
CN102016833B (zh) 2013-08-14
EP2269146A4 (en) 2013-04-10
RU2010144041A (ru) 2012-05-10
EP2269146A2 (en) 2011-01-05
BRPI0909213A8 (pt) 2019-02-12
WO2009134583A2 (en) 2009-11-05
US20090271806A1 (en) 2009-10-29
BRPI0909213B1 (pt) 2020-04-14
KR101782163B1 (ko) 2017-10-23
CN102016833A (zh) 2011-04-13
US20170199773A1 (en) 2017-07-13
US9921892B2 (en) 2018-03-20
US9507651B2 (en) 2016-11-29
AU2009241481B2 (en) 2014-06-05
IL208050A0 (en) 2010-12-30
RU2507573C2 (ru) 2014-02-20
ZA201006414B (en) 2011-12-28
AU2009241481A1 (en) 2009-11-05
JP2011524033A (ja) 2011-08-25
WO2009134583A8 (en) 2010-09-10
SG190604A1 (en) 2013-06-28
CA2718119C (en) 2017-01-17
EP2269146B1 (en) 2016-11-23
KR20100135844A (ko) 2010-12-27

Similar Documents

Publication Publication Date Title
US10152362B2 (en) Techniques to modify a document using a latent transfer surface
AU2012271774B2 (en) Automated user interface object transformation and code generation
US9727538B2 (en) Editing a fragmented document
US9268868B2 (en) Group bookmarks
US9612715B2 (en) Real-time preview of uniform resource identifier addressable dynamic content
US20150012815A1 (en) Optimization schemes for controlling user interfaces through gesture or touch
AU2012271774A1 (en) Automated user interface object transformation and code generation
US20130151937A1 (en) Selective image loading in mobile browsers
AU2012271775B2 (en) Techniques for adapting an interpretive run time application to multiple clients
AU2012271775A1 (en) Techniques for adapting an interpretive run time application to multiple clients
US10742764B2 (en) Web page generation system
CN113656533A (zh) 一种树形控件处理方法、装置及电子设备
US20120216132A1 (en) Embedding User Selected Content In A Web Browser Display
WO2013016596A2 (en) System for annotating documents served by a document system without functional dependence on the document system

Legal Events

Date Code Title Description
FG Grant or registration
PD Change of proprietorship

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC