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
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 237
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000004044 response Effects 0.000 claims abstract description 18
- 230000009466 transformation Effects 0.000 claims description 39
- 238000003860 storage Methods 0.000 claims description 24
- 238000013501 data transformation Methods 0.000 claims 2
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 16
- 238000013461 design Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000031864 metaphase Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- UGODCLHJOJPPHP-AZGWGOJFSA-J tetralithium;[(2r,3s,4r,5r)-5-(6-aminopurin-9-yl)-4-hydroxy-2-[[oxido(sulfonatooxy)phosphoryl]oxymethyl]oxolan-3-yl] phosphate;hydrate Chemical compound [Li+].[Li+].[Li+].[Li+].O.C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP([O-])(=O)OS([O-])(=O)=O)[C@@H](OP([O-])([O-])=O)[C@H]1O UGODCLHJOJPPHP-AZGWGOJFSA-J 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/106—Display of layout of documents; Previewing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote 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)
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.
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)
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)
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 | 現像装置 |
-
2008
- 2008-04-28 US US12/110,351 patent/US9507651B2/en active Active
-
2009
- 2009-04-03 CN CN2009801157110A patent/CN102016833B/zh active Active
- 2009-04-03 JP JP2011507516A patent/JP5550636B2/ja active Active
- 2009-04-03 MX MX2010011403A patent/MX2010011403A/es active IP Right Grant
- 2009-04-03 ES ES09739385.4T patent/ES2616659T3/es active Active
- 2009-04-03 KR KR1020107023870A patent/KR101782163B1/ko active IP Right Grant
- 2009-04-03 AU AU2009241481A patent/AU2009241481B2/en active Active
- 2009-04-03 CA CA2718119A patent/CA2718119C/en active Active
- 2009-04-03 EP EP09739385.4A patent/EP2269146B1/en active Active
- 2009-04-03 RU RU2010144041/08A patent/RU2507573C2/ru active
- 2009-04-03 SG SG2013032693A patent/SG190604A1/en unknown
- 2009-04-03 WO PCT/US2009/039388 patent/WO2009134583A2/en active Application Filing
- 2009-04-03 BR BRPI0909213A patent/BRPI0909213B1/pt not_active IP Right Cessation
-
2010
- 2010-09-07 ZA ZA2010/06414A patent/ZA201006414B/en unknown
- 2010-09-07 IL IL208050A patent/IL208050A0/en unknown
-
2016
- 2016-10-13 US US15/293,056 patent/US9921892B2/en active Active
-
2018
- 2018-02-06 US US15/889,428 patent/US10152362B2/en active Active
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 |