DE202015009309U1 - Systems for processing a file in a non-native application using an application engine - Google Patents

Systems for processing a file in a non-native application using an application engine Download PDF

Info

Publication number
DE202015009309U1
DE202015009309U1 DE202015009309.4U DE202015009309U DE202015009309U1 DE 202015009309 U1 DE202015009309 U1 DE 202015009309U1 DE 202015009309 U DE202015009309 U DE 202015009309U DE 202015009309 U1 DE202015009309 U1 DE 202015009309U1
Authority
DE
Germany
Prior art keywords
file
engine
format
application
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202015009309.4U
Other languages
German (de)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202015009309U1 publication Critical patent/DE202015009309U1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

System für die Bearbeitung von Dokumenten in einem nativen Format, mit einem Prozessor, für Folgendes konfiguriert: das Empfangen, während des Ausführens einer ersten Applikation, einer Anforderung von einem Benutzer zum Öffnen einer Datei, die mit einer zweiten Applikation in einem ersten Format erstellt wurde; das Ermitteln des ersten Formats der Datei; das Auswählen einer Engine aus der Vielzahl von Engines, die der ersten Applikation zugeordnet sind, worin die ausgewählte Engine so konfiguriert ist, dass sie das erste Format bearbeitet; das Öffnen der Datei unter Verwendung der ausgewählten Engine in der ersten Applikation, ohne das Format der Datei in ein zweites, der ersten Applikation zugeordnetes Format umzuwandeln; das Rendern, unter Verwendung der in der ersten Applikation ausgewählten Engine, des Inhalts der Datei für die Anzeige auf einem Benutzergerät für den Benutzer; das Verarbeiten, unter Verwendung der in der ersten Applikation ausgewählten Engine, einer Bearbeitung der Datei im ersten Format; und das Speichern, in einer Datenbank, der bearbeiteten Datei unter Verwendung der ersten Applikation im ersten Format.A system for processing documents in a native format, with a processor, configured for: receiving, while executing a first application, a request from a user to open a file created with a second application in a first format ; determining the first format of the file; selecting an engine of the plurality of engines associated with the first application, wherein the selected engine is configured to process the first format; opening the file using the selected engine in the first application without converting the format of the file into a second format associated with the first application; rendering, using the engine selected in the first application, the content of the file for display on a user device to the user; processing, using the engine selected in the first application, processing of the file in the first format; and saving, in a database, the edited file using the first application in the first format.

Description

Gebiet der Erfindung Field of the invention

Allgemein bezieht sich diese Offenbarung auf den Zugriff auf eine Datei unter Verwendung einer Applikation, die sich von der Applikation unterscheidet, mit der die Datei erstellt wurde. In general, this disclosure relates to accessing a file using an application that is different from the application with which the file was created.

Hintergrund background

Eine Applikation hat im Allgemeinen ein eigenes natives Dateiformat, das die Codierung der Merkmale spezifiziert, die die Applikation unterstützt. Applikationen laden normalerweise nur die Merkmale, die vom nativen Format der Applikation unterstützt werden. Alle Merkmale, die vom nativen Format der Applikation nicht unterstützt werden, erzeugen beim Laden Probleme oder werden fehlerhaft geladen. Aus diesem Grund verursacht die Verwendung einer Software-Applikation für die Bearbeitung und das Speichern einer Datei, die mit einer anderen Software-Applikation erstellt wurde, häufig einen Datenverlust, wenn Datei und Dateiformat Merkmale aufweisen, die von der Applikation nicht unterstützt werden. Eine Möglichkeit, dies zu kompensieren, ist, dass die Applikation die Datei in ein anderes Format umwandelt – ihr natives Format. Wenn die Applikation die Datei speichert, werden nur die geladenen Merkmale gespeichert, die nicht unterstützten Merkmale werden also nicht gespeichert. Dieser Datenverlust kann Probleme verursachen, wenn eine Datei von mehreren Benutzern bearbeitet wird, oder von einem Benutzer mit mehreren Applikationen. An application generally has its own native file format that specifies the encoding of the features that the application supports. Applications typically load only those features that are supported by the native format of the application. Any features that are not supported by the native format of the application create problems when loaded or are loaded incorrectly. Because of this, using a software application to edit and save a file created with another software application often causes data loss if the file and file format have features that the application does not support. One way to compensate for this is to have the application convert the file to another format - its native format. When the application saves the file, only the loaded features are saved, so the unsupported features are not saved. This data loss can cause problems when a file is being edited by multiple users or by a user with multiple applications.

Kurzdarstellung Summary

Dementsprechend sind in diesem Dokument Systeme und Verfahren beschrieben, die Zugriff auf die Datei bieten und den Einsatz einer nicht nativen Applikation mit mehreren Engines verwenden. In bestimmter Hinsicht beziehen sich die in diesem Dokument beschriebenen Systeme und Verfahren auf die Bearbeitung eines Dokuments in einem nativen Format unter Verwendung einer nicht nativen Applikation. Ein Prozessor, der eine erste Applikation ausführt, erhält eine Anforderung von einem Benutzer, eine Datei unter Verwendung einer zweiten Applikation in einem ersten Format zu öffnen. Der Prozessor kann das erste Format der Datei bestimmen. Der Prozessor kann eine Engine aus mehreren Engines auswählen, die der ersten Applikation zugeordnet sind, worin die ausgewählte Engine so konfiguriert ist, dass sie das erste Format bearbeitet. Der Prozessor kann die Datei unter Verwendung der ausgewählten Engine in der ersten Applikation öffnen, ohne das Format der Datei in ein zweites, der ersten Applikation zugeordnetes Format umzuwandeln. Der Prozessor kann die in der ersten Applikation ausgewählte Engine veranlassen, den Inhalt der Datei für die Anzeige für den Benutzer auf einem Benutzergerät zu rendern. Der Prozessor kann die in der ersten Applikation ausgewählte Engine veranlassen, eine Bearbeitung der Datei im ersten Format zu verarbeiten. Anschließend kann der Prozessor die bearbeitete Datei unter Verwendung der ersten Applikation im ersten Format in einer Datenbank speichern. einigen Implementierungen kann der Prozessor dem Benutzer eine Benutzeroberfläche anzeigen, die Tools für die Bearbeitung von Merkmalen der ausgewählten Engine enthält. Accordingly, this document describes systems and methods that provide access to the file and use a non-native multi-engine application. In certain respects, the systems and methods described in this document relate to the processing of a document in a native format using a non-native application. A processor executing a first application receives a request from a user to open a file using a second application in a first format. The processor can determine the first format of the file. The processor may select an engine of multiple engines associated with the first application, wherein the selected engine is configured to process the first format. The processor can open the file using the selected engine in the first application without converting the format of the file to a second format associated with the first application. The processor may cause the engine selected in the first application to render the contents of the file for display to the user on a user device. The processor may cause the engine selected in the first application to process a processing of the file in the first format. Then the processor can save the edited file in a database using the first application in the first format. In some implementations, the processor may display to the user a user interface that includes tools for editing features of the selected engine.

Einigen Implementierungen kann der Prozessor feststellen, dass die ausgewählte Engine so konfiguriert ist, dass sie ein Merkmal der Datei bearbeitet. Der Prozessor kann dann die in der ersten Applikation ausgewählte Engine veranlassen, das Merkmal für die Anzeige auf einer Benutzeroberfläche für den Benutzer zu rendern. Der Prozessor kann dann die ausgewählte Engine in der ersten Applikation veranlassen, eine Bearbeitung des gerenderten Merkmals im ersten Format zu verarbeiten. Anschließend kann der Prozessor das in der Datei bearbeitete Merkmal unter Verwendung der ersten Applikation im ersten Format in einer Datenbank speichern. In some implementations, the processor may determine that the selected engine is configured to process a feature of the file. The processor may then cause the engine selected in the first application to render the feature for display on a user interface for the user. The processor may then cause the selected engine in the first application to process processing of the rendered feature in the first format. The processor can then store the feature edited in the file in a database using the first application in the first format.

Einigen Implementierungen kann der Prozessor feststellen, dass die ausgewählte Engine nicht so konfiguriert ist, dass sie ein erstes Merkmal der Datei bearbeitet. Der Prozessor kann dann die in der ersten Applikation ausgewählte Engine veranlassen, das erste Merkmal für die Anzeige für den Benutzer auf einem Benutzergerät zu rendern. Der Prozessor kann dann die Änderung des ersten Merkmals durch den Benutzer verhindern. Der Prozessor kann feststellen, dass die ausgewählte Engine so konfiguriert ist, dass sie ein zweites Merkmal der Datei bearbeitet. Der Prozessor kann dann die in der ersten Applikation ausgewählte Engine veranlassen, das zweite Merkmal für die Anzeige für den Benutzer auf einem Benutzergerät zu rendern. Der Prozessor kann dann die ausgewählte Engine in der ersten Applikation veranlassen, eine Bearbeitung des zweiten Merkmals im ersten Format zu verarbeiten. Anschließend kann der Prozessor das in der Datei bearbeitete zweite Merkmal unter Verwendung der ersten Applikation im ersten Format in der Datenbank speichern. In some implementations, the processor may determine that the selected engine is not configured to process a first feature of the file. The processor may then cause the engine selected in the first application to render the first feature for display to the user on a user device. The processor can then prevent the user from changing the first feature. The processor may determine that the selected engine is configured to process a second feature of the file. The processor may then cause the engine selected in the first application to render the second feature for display to the user on a user device. The processor may then cause the selected engine in the first application to process processing of the second feature in the first format. Thereafter, the processor may store the second feature processed in the file using the first application in the first format in the database.

Einigen Implementierungen kann der Prozessor die ausgewählte Engine veranlassen, Daten, die dem ersten Merkmal entsprechen, in einem Knoten eines Dokumentobjektmodells abzulegen, und dem Knoten die Eigenschaft zuordnen, für die die ausgewählte Engine nicht konfiguriert ist, um das erste Merkmal zu bearbeiten. Anschließend kann der Prozessor die in der Datei unter Verwendung der ersten Applikation im ersten Format abgelegten Daten in der Datenbank speichern. In some implementations, the processor may cause the selected engine to place data corresponding to the first feature in a node of a document object model and associate the node with the property for which the selected engine is not configured to process the first feature. Subsequently, the processor can store in the database the data stored in the file using the first application in the first format.

Einigen Implementierungen kann der Prozessor feststellen, dass die ausgewählte Engine nicht so konfiguriert ist, dass sie ein Merkmal der Datei rendert. Der Prozessor kann dann die Daten, die dem ersten Merkmal entsprechen, in einem Knoten eines Dokumentobjektmodells ablegen, und dem Knoten die Eigenschaft zuordnen, für die die ausgewählte Engine nicht konfiguriert ist, um das erste Merkmal zu rendern. Anschließend kann der Prozessor die in der Datei unter Verwendung der ersten Applikation im ersten Format abgelegten Daten in der Datenbank speichern. In some implementations, the processor may determine that the selected engine is not configured to render a feature of the file. The processor may then place the data corresponding to the first feature in a node of a document object model and associate the node with the property for which the selected engine is not configured to render the first feature. Subsequently, the processor can store in the database the data stored in the file using the first application in the first format.

Einigen Implementierungen kann die Datei auf einem vom Benutzer entfernten Server gespeichert werden. einigen Implementierungen kann der Prozessor für die Auswahl einer Engine das erste Format in einer Datenbank ermitteln, feststellen, ob dem ersten Format eine Engine zugeordnet ist, und die entsprechende Engine auswählen. einigen Implementierungen kann der Prozessor, um das erste Format der Datei zu bestimmen, einen Teil der Datei lesen, einen Dateityp aus dem gelesenen Teil extrahieren und das erste Format der Datei basierend auf dem extrahierten Dateityp bestimmen. In some implementations, the file may be stored on a server remote from the user. In some implementations, the engine selection engine may determine the first format in a database, determine if an engine is associated with the first format, and select the appropriate engine. In some implementations, to determine the first format of the file, the processor may read a portion of the file, extract a file type from the portion read, and determine the first format of the file based on the extracted file type.

Einigen Implementierungen kann der Prozessor feststellen, dass dem Dateiformat mehrere Engines zugeordnet sind. Der Prozessor kann dann dem Benutzer mehrere Namen anzeigen, wobei jeder Name einer der mehreren Engines entspricht. Der Prozessor kann dann vom Benutzer einen aus den mehreren Namen ausgewählten Namen empfangen. Der Prozessor kann dann die dem ausgewählten Namen zugeordnete Engine auswählen. einigen Implementierungen kann der Prozessor die Datei in einem dritten Format speichern. In some implementations, the processor may determine that the file format has multiple engines associated with it. The processor may then display multiple names to the user, each name corresponding to one of the multiple engines. The processor may then receive from the user a name selected from the multiple names. The processor can then select the engine associated with the selected name. In some implementations, the processor may store the file in a third format.

Kurze Beschreibung der Zeichnungen Brief description of the drawings

Die vorgenannten und anderen Merkmale der vorliegenden Offenbarung, einschließlich ihrer Natur und verschiedenen Vorteile, werden verständlicher, wenn man die folgende detaillierte Beschreibung unter Hinzuziehung der zugehörigen Zeichnungen berücksichtigt: The foregoing and other features of the present disclosure, including its nature and various advantages, will become more apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings:

1 ist ein Blockdiagramm eines Benutzergeräts, gezeigt anhand einer exemplarischen Implementierung; 1 FIG. 10 is a block diagram of a user device shown by way of an example implementation; FIG.

2 zeigt eine Benutzeroberfläche einer Applikation, die eine Engine ausführt, die so konfiguriert ist, dass sie ein Textverarbeitungsdokument bearbeitet, gezeigt anhand einer exemplarischen Implementierung; 2 FIG. 12 illustrates a user interface of an application executing an engine configured to process a word processing document, shown by way of an example implementation; FIG.

3 zeigt eine Benutzeroberfläche einer Applikation, die eine Engine ausführt, die so konfiguriert ist, dass sie ein Tabellenkalkulationsdokument bearbeitet, gezeigt anhand einer exemplarischen Implementierung; 3 10 depicts a user interface of an application executing an engine configured to process a spreadsheet document, shown by way of an example implementation;

4 ist ein Blockdiagramm eines Benutzergeräts, das über ein Netzwerk mit einem Server kommuniziert, gezeigt anhand einer exemplarischen Implementierung; 4 Figure 10 is a block diagram of a user device communicating over a network with a server, shown by way of an example implementation;

5 ist ein Blockdiagramm einer Datenbank, die Zuordnungen von Engines zu Dateiformaten enthält, gezeigt anhand einer exemplarischen Implementierung; 5 Figure 10 is a block diagram of a database containing engine-to-file mappings shown by way of an example implementation;

6 ist ein Blockdiagramm eines Dokument-Objektmodells, gezeigt anhand einer exemplarischen Implementierung; 6 FIG. 10 is a block diagram of a document object model shown by way of an example implementation; FIG.

7 ist ein Ablaufdiagramm eines Verfahrens, mit dem eine Applikation eine Engine startet, die so konfiguriert ist, dass sie das Format einer angeforderten Datei bearbeitet, gezeigt anhand einer exemplarischen Implementierung; 7 FIG. 10 is a flow chart of a method by which an application launches an engine configured to process the format of a requested file, shown by way of an example implementation;

8A8B zeigen ein Ablaufdiagramm eines Verfahrens, mit dem eine Engine Daten aus einer Datei liest, Daten in Knoten eines Dokument-Objektmodells ablegt und am Dokument vorgenommene Bearbeitungen verarbeitet, gezeigt anhand einer exemplarischen Implementierung; 8A - 8B 12 show a flow chart of a method by which an engine reads data from a file, stores data in nodes of a document object model, and processes edits made to the document, shown by way of an example implementation;

9 ist ein Ablaufdiagramm eines Verfahrens, mit dem eine Engine eine Datei in einem von einem Benutzer vorgegebenen Format erzeugt, gezeigt anhand einer exemplarischen Implementierung; 9 FIG. 10 is a flow chart of a method by which an engine generates a file in a user-specified format, shown by way of an example implementation; FIG.

10 ist ein Blockdiagramm eines Cloud-Rechenservice, gezeigt anhand einer exemplarischen Implementierung; und 10 Figure 10 is a block diagram of a cloud computing service, shown by way of an example implementation; and

11 ist ein Blockdiagramm eines Rechengeräts für einen beliebigen der in diesem Dokument beschriebenen Prozesse, gezeigt anhand einer exemplarischen Implementierung. 11 FIG. 10 is a block diagram of a computing device for any of the processes described in this document, shown by way of example implementation.

Ausführliche Beschreibung Detailed description

Für ein allgemeines Verständnis der Offenbarung sind nachfolgend einige exemplarische Implementierungen beschrieben, einschließlich eines Systems für die Bearbeitung von Dateien in einem nativen Format. Insbesondere ist ein System beschrieben, in dem Dateien mit einer nicht nativen Applikation in einem nativen Format bearbeitet werden können, oder in einer anderen Applikation als der Applikation, mit der die Datei erstellt wurde. Ein sachverständiger Leser wird jedoch verstehen, dass die in diesem Dokument beschriebenen Systeme und Verfahren nach Bedarf angepasst und abgeändert werden können, wie es für die jeweilige Applikation erforderlich ist, und dass die in diesem Dokument beschriebenen Systeme und Verfahren in anderen geeigneten Applikationen eingesetzt werden können, und dass solche andere Ergänzungen und Abänderungen nicht vom hier beschriebenen Umfang abweichen. Im Allgemeinen können die in diesem Dokument beschriebenen computergestützten Systeme aus einer oder mehreren Komponenten bestehen, die ein Verarbeitungsgerät oder mehrere Verarbeitungsgeräte beinhaltet bzw. beinhalten, wie beispielsweise einen Computer, einen Mikroprozessor, ein Logikgerät oder ein anderes Gerät oder einen anderen Prozessor, die unter Verwendung von Hardware, Firmware und Software so konfiguriert sind, dass sie ein oder mehrere der in diesem Dokument beschriebenen computergestützten Verfahren ausführen. For a general understanding of the disclosure, some exemplary implementations are described below, including a system for manipulating files in a native format. In particular, a system is described in which files can be edited with a non-native application in a native format, or in an application other than the application with which the file was created. However, it will be understood by one of skill in the art that the systems and methods described herein may be adapted and modified as necessary for the particular application and as described in this document described systems and methods can be used in other suitable applications, and that such other additions and modifications do not deviate from the scope described here. In general, the computerized systems described in this document may consist of one or more components including one or more processing devices, such as a computer, microprocessor, logic device, or other device or processor, using Hardware, firmware, and software are configured to perform one or more of the computer-aided procedures described in this document.

1 zeigt ein Benutzergerät 100, das verwendet werden kann, um ein Dokument in einem nativen Format zu bearbeiten. Das Benutzergerät 100 kann einen Prozessor 105, ein Display 110, ein Benutzereingabegerät 115 und eine oder mehrere Datenbanken 120 mit einer oder mehreren Dateien 125, beispielsweise Dateien 125a125n, umfassen. Das Benutzergerät 100 kann eine oder mehrere Applikationen 130 enthalten, beispielsweise Applikationen 130a130n. Ein Prozessor kann einen oder mehrere Computer, Mikroprozessoren, Logikgeräte, Server oder andere Geräte enthalten, konfiguriert mit Hardware, Firmware und Software, um eine oder mehrere der in diesem Dokument beschriebenen computergestützten Techniken auszuführen. Prozessoren und verarbeitende Geräte können ebenfalls ein oder mehrere Speichergeräte zum Speichern von Eingaben, Ausgaben und Daten umfassen, die aktuell verarbeitet werden. Jedes Benutzergerät 100 kann ein Gerät beinhalten, wie beispielsweise einen PC, einen Laptop-Computer, ein Tablet, ein Smartphone, einen Organizer oder einen anderen Computer oder ein anderes Kommunikationsgerät eines geeigneten Typs. 1 shows a user device 100 , which can be used to edit a document in a native format. The user device 100 can be a processor 105 , a display 110 , a user input device 115 and one or more databases 120 with one or more files 125 such as files 125a - 125n , include. The user device 100 can be one or more applications 130 included, for example, applications 130a - 130n , A processor may include one or more computers, microprocessors, logic devices, servers, or other devices configured with hardware, firmware, and software to perform one or more of the computer-assisted techniques described in this document. Processors and processing devices may also include one or more storage devices for storing inputs, outputs, and data that is currently being processed. Each user device 100 may include a device such as a personal computer, a laptop computer, a tablet, a smartphone, an organizer or other computer, or another communication device of a suitable type.

Eine Beispieldatei 125a kann ein Dateiformat haben, das festlegt, wie die Dateiinformation in Bits im Speicher codiert wird, und außerdem, wie diese Information aus dem Speicher decodiert und einem Benutzer präsentiert wird. Allgemein ausgedrückt, eine Datei hat ein Dateiformat, das auf der Applikation basiert, mit der die Datei erstellt wurde, wie beispielsweise dem nativen Dateiformat der Applikation. Dateiformate können einfach oder komplex sein. Ein einfaches Dateiformat ist ASCII (American Standard Code for Information Interchange), das einfachen Text und ein paar einfache Zeichen codiert. Ein Beispiel für eine komplexe Datei ist das Format für die Codierung von Informationen in einem Textverarbeitungsdokument. Ein Textverarbeitungsformat kann beispielsweise das Codierungsverfahren für Schriften, Schriftgrößen, Schriftarten, Schriftfarben, Tabulatoren, Absätze, Stichpunktlisten, nummerierte Listen, Tabellen, Textumbruch, Textausrichtung, Texthervorhebung, Zeilenabstände, Seitenumbrüche, Seitengröße, Ränder, Spalten, Kopfzeilen, Fußzeilen, Fußnoten, Endnoten, Querverweise, Inhaltsverzeichnisse, Indizes und eingebetteten Inhalt wie Bilder und Video spezifizieren. Ein Tabellenkalkulationsformat ist ebenfalls komplex und kann das Codierungsverfahren für Zellinhalte, Formeloperationen, Schriften, Schriftgrößen, Schriftarten, Schriftfarben, Zellenrahmen, Zellenfarben und Diagramme spezifizieren. Ein Präsentationsformat ist ebenfalls komplex und kann Verfahren für Schriften, Schriftgrößen, Schriftarten, Schriftfarben, Textfelder, Formen, Foliengröße, Position und Anordnung von Elementen auf einer Folie, Folienreihenfolge, Folienübergänge, Animationen und eingebetteten Inhalt wie Bilder, Videos und Tabellenkalkulationen spezifizieren. Dateiformate können andere Formate beinhalten. Beispielsweise können Textverarbeitungs-, Tabellenkalkulations- und Präsentationsformate alle das ASCII-Format für die Codierung von Text beinhalten, aber zusätzliche, für das Format spezifische Codierungsverfahren zur Codierung von anderen Merkmalen als Text verwenden. Eine Datei, die ein Dokument enthält, kann in einem für das Dokument geeigneten Format codiert werde. Eine Datei kann ein Textverarbeitungsdokument, ein Tabellenkalkulationsdokument, ein Präsentationsdokument, ein Zeichnungsdokument, ein Datenbankdokument, ein HTML-Dokument (HyperText Markup Language), ein XML-Dokument (Extensible Markup Language), ein Bilddokument, ein Textdokument oder ein beliebiges anderes Dokument mit Benutzerdaten enthalten. Beim Öffnen und Bearbeiten einer Datei verwendet eine Applikation das Format der Datei, um die im Speicher abgelegten Bits zu decodieren und einem Benutzer die decodierten Informationen zu präsentieren. An example file 125a may have a file format that determines how the file information is encoded into bits in memory, as well as how that information is decoded from memory and presented to a user. Generally speaking, a file has a file format based on the application with which the file was created, such as the native file format of the application. File formats can be simple or complex. A simple file format is American Standard Code for Information Interchange (ASCII) that encodes plain text and a few simple characters. An example of a complex file is the format for encoding information in a word processing document. A word processing format may include, for example, the encoding method for fonts, font sizes, fonts, font colors, tabs, paragraphs, bulleted lists, numbered lists, tables, text wrapping, text alignment, text highlighting, line spacing, page breaks, page size, margins, columns, headers, footers, footnotes, endnotes, Specify cross-references, tables of contents, indexes, and embedded content such as images and video. A spreadsheet format is also complex and can specify the encoding method for cell contents, formula operations, fonts, font sizes, fonts, font colors, cell borders, cell colors, and charts. A presentation format is also complex and can specify methods for fonts, font sizes, fonts, font colors, text boxes, shapes, slide size, position and placement of elements on a slide, slide order, slide transitions, animations, and embedded content such as images, videos, and spreadsheets. File formats may include other formats. For example, word processing, spreadsheet, and presentation formats may all include the ASCII format for encoding text, but may use additional format specific coding techniques to encode features other than text. A file containing a document may be encoded in a format appropriate to the document. A file may be a word processing document, a spreadsheet document, a presentation document, a drawing document, a database document, a HyperText Markup Language (HTML) document, Extensible Markup Language (XML) document, an image document, a text document, or any other user data document contain. When opening and editing a file, an application uses the format of the file to decode the bits stored in memory and present the decoded information to a user.

Zum Beispiel kann die Applikation 130 eine Browser-Erweiterung sein, nämlich eine Applikation, die darauf ausgelegt ist, die Funktionalität einer Browser-Applikation zu ergänzen. Die Applikation 130 enthält mehrere Engines 135, die jeweils so konfiguriert sind, dass sie ein oder mehrere Dateiformate bearbeiten. Ein Benutzer des Benutzergeräts 100 kann Eingaben über das Eingabegerät des Benutzers 115 für die Applikation 130 zum Öffnen einer Datei 125a bereitstellen. Zum Beispiel kann die Eingabe sein, dass der Benutzer ein Dateisymbol per Drag&Drop in ein Browser-Fenster verschiebt. In einem anderen Beispiel kann der Benutzer eine Datei öffnen, die einer E-Mail als Anhang beigefügt ist, auf die über einen Browser zugegriffen wird, um mit einem webbasierten E-Mail-Service zu kommunizieren. In einem anderen Beispiel kann der Benutzer eine Datei öffnen, die einer E-Mail als Anhang beigefügt ist, auf die über eine E-Mail-Applikation auf dem Desktop-Computer zugegriffen wird. In einem anderen Beispiel kann der Benutzer einen Browser verwenden, um zu einem webbasierten Hostingservice für die Zusammenarbeit an Dokumenten zu navigieren, und eine von dem Service gehostete Datei zu öffnen. In einem anderen Beispiel kann der Benutzer mit der Benutzeroberfläche einer Applikation arbeiten, um unter Verwendung der Applikation eine Datei zu öffnen. Diese Beispiele sind exemplarisch und ein Benutzer kann eine andere Eingabemethode verwenden, um eine Datei zu öffnen, ohne vom Umfang der Erfindung abzuweichen. Die Applikation 130 kann unabhängig von der Form der Eingabe beim Empfang der Eingabe das Format der Datei 125a unter Verwendung eines von mehreren Verfahren bestimmen. Zum Beispiel kann die Applikation 130 das Dateiformat abhängig von der Dateinamenerweiterung der Datei 125a bestimmen. In einem anderen Beispiel kann die Applikation 130 die Header-Information der Datei 125a verwenden, um das Format zu bestimmen. In diesem Beispiel kann die Applikation 130 einen Teil der Header-Information der Datei 125a lesen. Die Applikation 130 kann dann den gelesenen Teil des Headers der Datei 125a interpretieren, um das Format der Datei 125a zu bestimmen. Die Applikation 130 kann die Bestimmung basierend auf einer im Header enthaltenen Zeichenkette durchführen, die den Dateityp angibt. Ein Beispiel für einen Dateityp ist MIME (Multipurpose Internet Mail Extensions). Basierend auf der Bestimmung des Dateiformats kann die Applikation 130 eine Engine 135a auswählen, die so konfiguriert ist, dass sie das für die Datei 125a bestimmte Format bearbeitet. Eine Engine, die so konfiguriert ist, dass sie ein Format bearbeitet, ist dafür konfiguriert, Daten aus dem Speicher zu lesen und Daten in den Speicher zu schreiben, wobei die Daten in Übereinstimmung mit dem Format codiert sind. Eine Engine, die so konfiguriert ist, dass sie ein Format bearbeitet, muss das Format nicht vollständig unterstützen. Die Engine kann so konfiguriert werden, dass sie nur eine Untermenge einer Datei liest, die in Übereinstimmung mit dem Format codiert ist. Außerdem kann eine Engine, die für die Bearbeitung eines Formats konfiguriert ist, so konfiguriert werden, dass sie Daten nur unter Verwendung einer Untermenge der Codierungsverfahren des Formats schreibt. Die Applikation 130 kann dann die ausgewählte Engine 135a starten, die die Datei 125a öffnet, anzeigt und ihre Bearbeitung zulässt. For example, the application 130 be a browser extension, namely an application that is designed to complement the functionality of a browser application. The application 130 contains several engines 135 , each configured to handle one or more file formats. A user of the user device 100 can input via the input device of the user 115 for the application 130 to open a file 125a provide. For example, the input may be for the user to drag and drop a file icon into a browser window. In In another example, the user may open a file attached to an e-mail that is accessed via a browser to communicate with a web-based e-mail service. In another example, the user may open a file attached to an e-mail that is accessed via an e-mail application on the desktop computer. In another example, the user may use a browser to navigate to a web-based document collaboration hosting service and open a file hosted by the service. In another example, the user may work with the user interface of an application to open a file using the application. These examples are exemplary and a user may use a different input method to open a file without departing from the scope of the invention. The application 130 regardless of the form of input when receiving the input the format of the file 125a using one of several methods. For example, the application 130 the file format depends on the filename extension of the file 125a determine. In another example, the application 130 the header information of the file 125a use to determine the format. In this example, the application 130 a part of the header information of the file 125a read. The application 130 can then read the read part of the header of the file 125a interpret to the format of the file 125a to determine. The application 130 can perform the determination based on a string contained in the header indicating the file type. An example of a file type is MIME (Multipurpose Internet Mail Extensions). Based on the determination of the file format, the application can 130 an engine 135a which is configured to do this for the file 125a edited certain format. An engine configured to handle a format is configured to read data from memory and write data to memory, the data being encoded in accordance with the format. An engine that is configured to handle a format does not need to fully support the format. The engine can be configured to read only a subset of a file encoded in accordance with the format. In addition, an engine configured to process a format may be configured to write data using only a subset of the encoding methods of the format. The application 130 can then select the selected engine 135a start the file 125a opens, displays and allows editing.

Wenn eine Engine 135a ein in einer Datei 125a enthaltenes Dokument öffnet, decodiert die Engine 135a die Daten der Datei 125a in Übereinstimmung mit dem nativen Format der Datei und rendert das in den decodierten Daten enthaltene Dokument, um es einem Benutzer anzuzeigen. Das Rendern des Dokuments kann die Umwandlung von Daten aus der Datei 125a in ein zweidimensionales Bild für die Anzeige auf einem Benutzergerät 100 über ein Display 110 umfassen. Der Benutzer kann das gerenderte Dokument ansehen und Benutzereingaben vornehmen, um das Dokument über das Benutzereingabegerät 115 zu ändern. Die Änderung des Dokuments kann eine oder mehrere Texteingaben oder Löschoperationen, Änderungen des Textstils, das Einfügen von Bildern und anderen Medien oder andere Bearbeitungsoperationen des Dokuments umfassen. Der Benutzer kann das gerenderte Dokument beispielsweise in der Datei 125a speichern, und die Engine 135a kann das Dokument in der Datei 125a in Übereinstimmung mit dem nativen Format der Datei 125a speichern. Durch das Speichern im nativen Format verhindert die Engine 135a einen Datenverlust aufgrund der Formatumwandlung. Die Engine 135a kann das Dokument in vordefinierten Intervallen ohne Eingaben vom Benutzer automatisch in der Datei 125a speichern. Ein solches automatisches Speichern reduziert den Datenverlust aufgrund von Fehlfunktionen des Benutzergeräts 100 oder der Applikation 130. Wenn sich das Benutzergerät 100 oder die Applikation 130 fehlerhaft verhalten, kann die Applikation 130 dem Benutzer über das Display 110 einen Dialog für die Wiederherstellung im Fehlerfall anzeigen. Ein solcher Dialog für die Wiederherstellung im Fehlerfall kann einen Überblick über die Fehlfunktion enthalten, eine Ansicht des zuletzt bearbeiteten Dokuments an der Seitenposition unmittelbar vor der Fehlfunktion sowie Statusinformationen einschließlich der zuletzt geöffneten Menüs und Dialoge, sodass der Benutzer einen Maßnahmenverlauf vorgeben kann, um Konflikte aufzulösen, die sich aus der Fehlfunktion ergeben. Durch Verwendung der geeigneten Engine 135a für die Bearbeitung einer Datei 125a stellt die Applikation 130 einem Benutzer eine Bearbeitungsmöglichkeit für ein Dokument bereit, ohne dass ein Datenverlust aufgrund der Umwandlung zwischen Formaten auftritt. If an engine 135a one in a file 125a contained document opens, decodes the engine 135a the data of the file 125a in accordance with the native format of the file and renders the document contained in the decoded data to display to a user. The rendering of the document may be the conversion of data from the file 125a in a two-dimensional image for display on a user device 100 via a display 110 include. The user can view the rendered document and make user input to the document via the user input device 115 to change. The modification of the document may include one or more text inputs or deletions, changes to the text style, the insertion of images and other media, or other editing operations of the document. For example, the user can view the rendered document in the file 125a save, and the engine 135a can the document in the file 125a in accordance with the native format of the file 125a to save. Saving in native format prevents the engine 135a a data loss due to the format conversion. The engine 135a The document can be automatically added to the file at predefined intervals without any input from the user 125a to save. Such automatic saving reduces data loss due to user device malfunction 100 or the application 130 , When the user device 100 or the application 130 behave incorrectly, the application can 130 the user via the display 110 Display a dialog for recovery in case of error. Such an error recovery dialog may include an overview of the malfunction, a view of the last edited document at the page position immediately before the malfunction, and status information including the most recently opened menus and dialogues, so that the user can specify a course of action to resolve conflicts that result from the malfunction. By using the appropriate engine 135a for editing a file 125a represents the application 130 Provide a user with editing capability for a document without loss of data due to conversion between formats.

Die Applikation 130 kann einem Benutzer Dateimanagementfunktionen bereitstellen. Wenn eine Engine 135a gestartet und ein Dokument bearbeitet wird, kann die Engine 135a eine Benutzereingabe empfangen, um das Dokument in einer anderen Datei in der Datenbank 120 zu speichern. Zum Beispiel kann die Engine 135a die Datei im selben Format wie die Originaldatei 125a speichern, aber an einem anderen Dateispeicherort, wie beispielsweise in der Datei 125b. In einem anderen Beispiel kann die Engine 135a eine Benutzereingabe erhalten, um die Datei 125a umzubenennen. In diesem Beispiel ändert die Engine 135a den Dateinamen der Datei 125a. In diesem Beispiel kann der Inhalt der Datei 125a unverändert bleiben, oder er kann aktualisiert werden, um Aktualisierungen in dem der Datei 125a zugeordneten Dokument zu reflektieren. In einigen Beispielen empfängt die Applikation 130 eine Benutzereingabe, um die Datei 125a umzubenennen, und ändert den Dateinamen der Datei 125 a ab. In einem anderen Beispiel kann die Engine 135a eine Benutzereingabe erhalten, um die geänderte Datei 125a einer E-Mail als Anhang hinzuzufügen. In diesem Beispiel kann die E-Mail, der die geänderte Datei 125a als Anhang hinzugefügt ist, eine Antwort an einen anderen Benutzer sein, der das Dokument ursprünglich erstellt hat. Auf diese Weise kann ein empfangender Benutzer die Applikation 130 verwenden, um ein in einer E-Mail von einem sendenden Benutzer empfangenes Dokument zu öffnen, das empfangene Dokument ändern und das geänderte Dokument zurück an den sendenden Benutzer senden, selbst wenn der empfangende Benutzer nicht über die Applikation verfügt, mit der der sendende Benutzer das Dokument ursprünglich erstellt hat. Alternativ muss die E-Mail, der die geänderte Datei 125a als Anhang hinzugefügt wurde, auch keine Antwort-E-Mail sein, sondern kann eine neue E-Mail an einen anderen Benutzer sein. In diesem Beispiel kann die geänderte Datei 125a lokal auf dem Benutzergerät 100 und auch auf einem Server-Gerät 420 im Cache abgelegt werden. Diese Dateimanagementfunktion kann mit anderen in diesem Dokument beschriebenen Funktionen kombiniert werden. Durch die Bereitstellung von Funktionen für die Umbenennung von Dateien und das Speichern neuer Dateien gestattet die Applikation 130 einem Benutzer, Dateien auf einem Benutzergerät 100 zu verwalten. The application 130 can provide a user with file management features. If an engine 135a Started and edited a document, the engine can 135a receive a user input to the document in another file in the database 120 save. For example, the engine 135a the file in the same format as the original file 125a save, but at a different file location, such as in the file 125b , In another example, the engine 135a received a user input to the file 125a rename. In this example, the engine changes 135a the file name of the file 125a , In this example, the contents of the file 125a remain unchanged, or it can be updated to updates in the file 125a to reflect the associated document. In some examples, the application receives 130 a user input to the file 125a rename and change the filename of the file 125 a. In another example, the engine 135a received a user input to the modified file 125a to add an e-mail as an attachment. In this example, the e-mail containing the changed file 125a Attached as attachment is a reply to another user who originally created the document. In this way, a receiving user can view the application 130 to open a document received from a sending user in an e-mail, modify the received document, and send the changed document back to the sending user, even if the receiving user does not have the application that the sending user uses Originally created the document. Alternatively, the e-mail containing the changed file 125a added as an attachment, also not be a reply email, but may be a new email to another user. In this example, the modified file 125a locally on the user device 100 and also on a server device 420 be stored in the cache. This file management function can be combined with other functions described in this document. The application allows you to rename files and save new files 130 a user, files on a user device 100 manage.

Die Applikation 130 kann einem Benutzer Funktionen zur Umwandlung des Dateiformats bereitstellen. Wenn eine Engine 135a gestartet und ein Dokument bearbeitet wird, kann die Engine 135a eine Benutzereingabe empfangen, um das Dokument in einem anderen Format in der Datenbank 120 zu speichern. Zum Beispiel kann die Engine 135a die Datei in einem anderen Format als die Originaldatei 125a speichern, und an einem anderen Dateispeicherort, wie beispielsweise in der Datei 125b. Diese Funktion für die Umwandlung des Dateiformats kann mit anderen in diesem Dokument beschriebenen Funktionen kombiniert werden. Durch die Bereitstellung von Funktionen, um ein Speichern in einem anderen Format vorzunehmen, gestattet die Applikation 130 einem Benutzer, eine Datei von einem Format in ein anderes Format umzuwandeln. The application 130 can provide a user with file format conversion capabilities. If an engine 135a Started and edited a document, the engine can 135a receive a user input to the document in a different format in the database 120 save. For example, the engine 135a the file in a different format than the original file 125a save and in a different file location, such as the file 125b , This file format conversion feature may be combined with other functions described in this document. By providing functions to save in a different format, the application allows 130 a user to convert a file from one format to another.

In einigen Beispielen können mehrere Engines hintereinander verknüpft werden, um eine Datei von einem Format in ein anderes umzuwandeln. In diesen Beispielen veranlasst die Applikation 130 zwei oder mehr der Engines 135, Dateien nacheinander umzuwandeln, um schließlich das gewünschte Format zu erreichen. Beispielsweise kann die Engine 135a die Datei vom Format 125a in das Format von 125b umwandeln, und dann kann eine andere Engine, wie beispielsweise 135b, gestartet werden, die Datei 125b öffnen, und die darin enthaltenen Daten in einer anderen Datei 125c in einem anderen Format speichern. Diese Verkettung kann beliebig oft wiederholt werden, um schließlich eine Datei in dem gewünschten Format zu erhalten. In some examples, multiple engines may be linked in tandem to convert a file from one format to another. In these examples, the application causes 130 two or more of the engines 135 To convert files one by one to finally reach the desired format. For example, the engine 135a the file from the format 125a in the format of 125b convert, and then another engine, such as 135b , start the file 125b open and the data it contains in another file 125c save in a different format. This chaining can be repeated as often as desired to finally obtain a file in the desired format.

Die Applikation 130 kann einem Benutzer Funktionen zum Erstellen von Dateien bereitstellen. Zum Beispiel kann die Applikation 130 eine Benutzereingabe empfangen, um eine Datei zu erstellen, und nach dem Empfang der Eingabe dem Benutzer ein oder mehrere Dateiformate anzeigen. Die angezeigten Dateiformate können Formate sein, die den Engines 135 der Applikation 130 zugeordnet sind. Die Applikation 130 kann eine Benutzerauswahl eines der angezeigten Dateiformate empfangen und eine dem ausgewählten Dateiformat zugeordnete Engine 135a starten. Nachdem die entsprechende Engine 135a gestartet wurde, kann der Benutzer das Dokument ändern und das Dokument in einer Datei 125a speichern. Ein Benutzer kann entscheiden, eine Datei in einem bestimmten Format zu erstellen, wenn er ein Dokument generiert, um es an andere Benutzer zu senden. In dieser Situation kann der Benutzer ein Format auswählen, das kompatibel mit Applikationen ist, mit denen die Empfänger möglicherweise die Datei öffnen und bearbeiten. Diese Funktion zum Erstellen von Dateien kann mit anderen in diesem Dokument beschriebenen Funktionen kombiniert werden. Auf diese Weise bietet die Applikation dem Benutzer die Möglichkeit, eine Datei in einem bestimmten Format zu erstellen. The application 130 can provide a user with functions for creating files. For example, the application 130 receive a user input to create a file and, upon receiving the input, display to the user one or more file formats. The displayed file formats can be formats that correspond to the engines 135 the application 130 assigned. The application 130 For example, a user selection may receive one of the displayed file formats and an engine associated with the selected file format 135a start. After the appropriate engine 135a started, the user can change the document and save the document in a file 125a to save. A user may choose to create a file in a particular format when generating a document to send to other users. In this situation, the user can select a format that is compatible with applications that the recipients may use to open and edit the file. This function for creating files can be combined with other features described in this document. In this way, the application offers the user the ability to create a file in a specific format.

Die Applikation 130 kann eine Anforderung empfangen, eine Datei 125a zu öffnen, die als schreibgeschützt gekennzeichnet ist. Eine solche Kennzeichnung als schreibgeschützt kann vorgeben, dass die Datei 125a geöffnet und angezeigt werden kann, aber dass die Datei 125a nicht geändert werden kann. Zum Beispiel kann die Applikation 130 die geeignete Engine 135a auswählen, wie in diesem Dokument beschrieben, und die Applikation 130 kann die ausgewählte Engine 135a im schreibgeschützten Modus starten. Im schreibgeschützten Modus kann die Engine 135a die Datei 125a öffnen und ihren Inhalt für die Anzeige auf dem Display 110 rendern, aber Änderungen an der Datei 125a verhindern. Die Engine 135a kann einem Benutzer gestatten, das gerenderte Dokument wie hier beschrieben zu bearbeiten, aber kann das aktualisierte Dokument in einer anderen Datei 125b speichern. Die Applikation 130 kann Dokumente erstellen, öffnen, nativ bearbeiten und an anderen Dateistandorten und in anderen Formaten speichern. Diese Funktion für eine schreibgeschützte Bearbeitung kann mit anderen in diesem Dokument beschriebenen Funktionen kombiniert werden. Durch die Bereitstellung von mehreren Engines 135, wobei jede Engine so konfiguriert ist, dass ein oder mehrere Dateiformate bearbeitet werden können, kann die Applikation 130 mehrere Dateiformate nativ bearbeiten, wie in diesem Dokument beschrieben. The application 130 can receive a request, a file 125a open, which is marked as read-only. Such labeling as read-only may dictate that the file 125a can be opened and viewed, but that the file 125a can not be changed. For example, the application 130 the appropriate engine 135a select as described in this document and the application 130 can the selected engine 135a start in read-only mode. In read-only mode, the engine 135a the file 125a open and display their contents for display 110 render, but changes to the file 125a prevent. The engine 135a may allow a user to edit the rendered document as described here, but may save the updated document in a different file 125b to save. The application 130 can create, open, natively edit and save documents to other file locations and other formats. This function for read-only editing can be combined with other functions described in this document. By providing multiple engines 135 , where each engine is configured to handle one or more file formats, the application can 130 natively edit multiple file formats as described in this document.

2 zeigt ein Beispiel für eine Benutzeroberfläche 200 der Applikation 130. In diesem Beispiel enthält die Datei 125a ein Textverarbeitungsdokument 205, und die Engine 135a ist so konfiguriert, dass sie das Format der Datei 125a bearbeitet. Die Benutzeroberfläche 200 kann in einem Browser 210 bereitgestellt werden. Der Browser 210 kann eine oder mehrere Registerkarten 215 haben, die die Auswahl eines anzuzeigenden Dokuments 205 aus mehreren geöffneten Dokumenten oder Webseiten ermöglicht. Die Oberfläche 200 kann Symbole 220 beinhalten, die die gerade verwendete Engine anzeigen. Der Text 225 des Dokuments 205 wird in der Mitte der Benutzeroberfläche 200 angezeigt. In einigen Beispielen befindet sich der Text 225 nicht in der Mitte, sondern in einem anderen Bereich der Benutzeroberfläche 200. Zum Beispiel kann es sein, dass einige oder alle der dem Text 225 zugeordneten Merkmale nicht von der Engine 135a unterstützt werden. In diesem Beispiel werden die nicht unterstützten Merkmale möglicherweise nicht korrekt angezeigt oder überhaupt nicht angezeigt. Die Engine 135a behält jedoch die nicht unterstützten Merkmale bei, wenn sie die Datei 125a speichert, sodass die Merkmale anderen Applikationen oder Engines weiterhin zur Verfügung stehen, die die Merkmale unterstützen. In diesem Beispiel gestattet die Engine 135a keine Bearbeitung nicht unterstützter Merkmale, um sicherzustellen, dass solche Merkmale beibehalten werden. 2 shows an example of a user interface 200 the application 130 , This example contains the file 125a a word processing document 205 and the engine 135a is configured to match the format of the file 125a processed. The user interface 200 can in a browser 210 to be provided. The browser 210 can one or more tabs 215 have the selection of a document to be displayed 205 from several open documents or web pages. The surface 200 can symbols 220 which indicate the currently used engine. The text 225 of the document 205 will be in the middle of the user interface 200 displayed. In some examples, the text is located 225 not in the middle, but in another area of the user interface 200 , For example, it may be that some or all of the text 225 Attributes not assigned by the engine 135a get supported. In this example, the unsupported features may not be displayed correctly or may not be displayed at all. The engine 135a however, it retains the unsupported features when viewing the file 125a stores the features to other applications or engines that support the features. In this example, the engine allows 135a No editing of unsupported features to ensure that such features are preserved.

Die Benutzeroberfläche 200 enthält Tools 230 für die Bearbeitung der Merkmale des Dokuments 205. Beispielsweise kann die Schrift, in der der Text 225 angezeigt wird, mit dem Tool 230a ausgewählt werden. Die Schriftgröße kann mit Tool 230b ausgewählt werden. Die Schriftart kann mit den Tools 230c–e ausgewählt werden. Die Schriftfarbe kann mit Tool 230f ausgewählt werden. Die Textausrichtung kann mit den Tools 230g–i ausgewählt werden. Nummerierte Listen können mit dem Listen-Tool 230j erstellt und bearbeitet werden. Stichpunktlisten können mit dem Listen-Tool 230k erstellt und bearbeitet werden. Das Dokument kann mit dem Druck-Tool 235 ausgedruckt werden. Die letzten vom Benutzer an dem Dokument vorgenommenen Änderungen können mit dem Rückgängig-Tool 240 rückgängig gemacht werden. Diese und andere Tools können auch in Menüs 245 bereitgestellt werden. Der Name des Dokuments kann im Dokumenttitel 250 angezeigt werden. Die Bearbeitungs-Tools 230 für Merkmale, die von der Applikation 130 angezeigt werden, wenn die Engine 135a verwendet wird, können nur solche Tools sein, die Merkmalen des Dateiformats entsprechen, die die Engine 135a unterstützt. Somit kann die Applikation 130 die Bearbeitung von weniger als allen in der Datei 125a enthaltenen Merkmalen unterstützen. Eine andere Engine 135b kann so konfiguriert werden, dass sie ein anderes Dateiformat für einen ähnlichen Dokumenttyp bearbeitet. Die Applikation 130 kann eine andere Menge Tools auf der Benutzeroberfläche 210 anzeigen, wenn die Engine 135b verwendet wird, als die Applikation 130 anzeigt, wenn die Engine 135a verwendet wird. Die Benutzeroberfläche 200 ist für exemplarische Zwecke gezeigt, aber andere Konfigurationen der Oberfläche können eine vergleichbare Funktionalität bereitstellen. Durch die Bereitstellung der Bearbeitungs-Tools 230 für Merkmale für den Benutzer, die den Merkmalen des Dateiformats entsprechen, für dessen Bearbeitung die Engine 135a konfiguriert ist, gestattet die Applikation 130 nur die Bearbeitung von Merkmalen, die die verwendete Engine unterstützt. The user interface 200 contains tools 230 for editing the characteristics of the document 205 , For example, the font in which the text 225 is displayed with the tool 230a to be selected. The font size can be with tool 230b to be selected. The font can be used with the tools 230c -E are selected. The font color can be with tool 230f to be selected. The text alignment can be done with the tools 230g -I are selected. Numbered lists can be used with the list tool 230j be created and edited. Stichpunktlisten can with the list tool 230k be created and edited. The document can be used with the printing tool 235 be printed out. The last changes made by the user to the document can be made using the undo tool 240 be undone. These and other tools can also be found in menus 245 to be provided. The name of the document can be found in the document title 250 are displayed. The editing tools 230 for features by the application 130 be displayed when the engine 135a can only be those tools that match the file format characteristics that the engine uses 135a supported. Thus, the application can 130 editing less than all in the file 125a support contained features. Another engine 135b can be configured to handle a different file format for a similar document type. The application 130 can use a different set of UI tools 210 show when the engine 135b is used as the application 130 indicates when the engine 135a is used. The user interface 200 is shown for exemplary purposes, but other surface configurations may provide comparable functionality. By providing the editing tools 230 for features for the user that match the characteristics of the file format that the engine processes for 135a configured, allows the application 130 just editing features that the engine used supports.

3 zeigt ein Beispiel für eine Benutzeroberfläche 300 der Applikation 130. In diesem Beispiel enthält die Datei 125a ein Tabellenkalkulationsdokument 305, und die Engine 135a ist so konfiguriert, dass sie das Format der Datei 125a bearbeitet. Die Benutzeroberfläche 300 kann in einem Browser 310 bereitgestellt werden. Der Browser 310 kann eine oder mehrere Registerkarten 315 haben, die die Auswahl einer anzuzeigenden Tabellenkalkulation 305 aus mehreren geöffneten Dokumenten oder Webseiten ermöglicht. Die Benutzeroberfläche 300 kann Symbole 320 beinhalten, um die gerade verwendete Engine anzuzeigen. Die Zellen 325 der Tabellenkalkulation 305 werden in der Mitte der Benutzeroberfläche 300 angezeigt. Daten können in bestimmten Zellen 355 enthalten sein. Die Formelleiste 360 kann eine in einer Zelle enthaltene Formel anzeigen. Beispielsweise enthält die ausgewählte Zelle 365 die Formel „= B9-C9“. Die Daten in der Tabellenkalkulation 305 können mit einem Diagramm 370 angezeigt werden. Das Diagramm 370 kann Referenzen auf in Zellen 355 enthaltene Daten enthalten. Das Diagramm 370 kann unter Verwendung der Referenzen automatisch aktualisiert werden, wenn die Daten in den Zellen 355 aktualisiert werden. Zum Beispiel kann es sein, dass einige oder alle der dem Diagramm 370 zugeordneten Merkmale nicht von der Engine 135a unterstützt werden. In diesem Beispiel werden die nicht unterstützten Merkmale möglicherweise nicht korrekt angezeigt oder überhaupt nicht angezeigt. Die Engine 135a behält jedoch die nicht unterstützten Merkmale bei, wenn sie die Datei 125a speichert, sodass die Merkmale anderen Applikationen oder Engines weiterhin zur Verfügung stehen, die die Merkmale unterstützen. In diesem Beispiel gestattet die Engine 135a keine Bearbeitung nicht unterstützter Merkmale, um sicherzustellen, dass solche Merkmale beibehalten werden. 3 shows an example of a user interface 300 the application 130 , This example contains the file 125a a spreadsheet document 305 and the engine 135a is configured to match the format of the file 125a processed. The user interface 300 can in a browser 310 to be provided. The browser 310 can have one or more tabs 315 have the selection of a spread sheet to display 305 from several open documents or web pages. The user interface 300 can symbols 320 include to display the currently used engine. The cells 325 the spreadsheet 305 be in the middle of the user interface 300 displayed. Data can be in certain cells 355 be included. The formula bar 360 can display a formula contained in a cell. For example, the selected cell contains 365 the formula "= B9-C9". The data in the spreadsheet 305 can with a diagram 370 are displayed. The diagram 370 can references in cells 355 contained data included. The diagram 370 can be automatically updated using the references when the data is in the cells 355 to be updated. For example, it may be that some or all of the diagram 370 Attributes not assigned by the engine 135a get supported. In this example, the unsupported features may not be displayed correctly or may not be displayed at all. The engine 135a however, it retains the unsupported features when viewing the file 125a stores the features to other applications or engines that support the features. In this example, the engine allows 135a No editing of unsupported features to ensure that such features are preserved.

Die Benutzeroberfläche 300 enthält Tools 330 für die Bearbeitung der Merkmale der Tabellenkalkulation 305. Beispielsweise kann die Schrift, in der der Zellentext 355a angezeigt wird, mit dem Tool 330a ausgewählt werden. Die Schriftgröße kann mit Tool 330b ausgewählt werden. Die Schriftart kann mit den Tools 330c–e ausgewählt werden. Die Schriftfarbe kann mit Tool 330f ausgewählt werden. Die Zellenhintergrundfarbe kann mit Tool 330g ausgewählt werden. Die Textausrichtung kann mit dem Tool 330h ausgewählt werden. Die letzten vom Benutzer an der Tabellenkalkulation vorgenommenen Änderungen können mit dem Rückgängig-Tool 340 rückgängig gemacht werden. Diese und andere Tools können auch in Menüs 345 bereitgestellt werden. Die Bearbeitungs-Tools 330 für Merkmale, die von der Applikation 130 angezeigt werden, wenn die Engine 135a verwendet wird, können nur solche Tools sein, die Merkmalen des Dateiformats entsprechen, die die Engine 135a unterstützt. Somit kann die Applikation 130 die Bearbeitung von weniger als allen in der Datei 125a enthaltenen Merkmale unterstützen. Eine andere Engine 135b kann so konfiguriert werden, dass sie ein anderes Dateiformat für einen ähnlichen Dokumenttyp bearbeitet. Die Applikation 130 kann eine andere Menge Tools auf der Benutzeroberfläche 310 anzeigen, wenn die Engine 135b verwendet wird, als die Applikation 130 anzeigt, wenn die Engine 135a verwendet wird. Die Benutzeroberfläche 300 ist für exemplarische Zwecke gezeigt, aber andere Konfigurationen der Oberfläche können eine vergleichbare Funktionalität bereitstellen. Durch die Bereitstellung der Bearbeitungs-Tools 330 für Merkmale für den Benutzer, die den Merkmalen des Dateiformats entsprechen, für dessen Bearbeitung die Engine 135a konfiguriert ist, gestattet die Applikation 130 nur die Bearbeitung von Merkmalen, die die verwendete Engine unterstützt. The user interface 300 contains tools 330 for editing the features of the spreadsheet 305 , For example, the font in which the cell text 355a is displayed with the tool 330a to be selected. The font size can be with tool 330b to be selected. The font can be used with the tools 330c -E are selected. The font color can be with tool 330f to be selected. The cell background color can with tool 330g to be selected. The text alignment can be done with the tool 330h to be selected. The last changes made by the user to the spreadsheet can be made using the undo tool 340 be undone. These and other tools can also be in menus 345 to be provided. The editing tools 330 for features by the application 130 be displayed when the engine 135a can only be those tools that match the file format characteristics that the engine uses 135a supported. Thus, the application can 130 editing less than all in the file 125a support features. Another engine 135b can be configured to handle a different file format for a similar document type. The application 130 can use a different set of UI tools 310 show when the engine 135b is used as the application 130 indicates when the engine 135a is used. The user interface 300 is shown for exemplary purposes, but other surface configurations may provide comparable functionality. By providing the editing tools 330 for features for the user that match the characteristics of the file format that the engine processes for 135a configured, allows the application 130 just editing features that the engine used supports.

Die Applikation 130 kann die Bearbeitung von anderen Dokumenttypen als Textverarbeitungsdokumenten unterstützen, wie in 3 gezeigt, oder Tabellenkalkulationsdokumenten, wie in 4 gezeigt. Die Applikation 130 kann die Bearbeitung von Präsentationsdokumenten, Zeichnungsdokumenten, Datenbankdokumenten, HTML-Dokumenten, XML-Dokumenten, Bilddokumenten, Textdokumenten oder anderen Dokumenten mit Benutzerdaten unterstützen. Die Applikation 130 kann Engines 135 bereitstellen, die so konfiguriert sind, dass sie manche oder alle diesen Dokumenttypen zugeordneten Dateiformate bearbeiten. The application 130 can support editing of document types other than word processing documents, as in 3 shown, or spreadsheets, as in 4 shown. The application 130 May support the editing of presentation documents, drawing documents, database documents, HTML documents, XML documents, image documents, text documents or other documents containing user data. The application 130 can Engines 135 configured to work on some or all of the file formats associated with these document types.

In einer Offline-Anordnung kann eine Engine 135a ein Dokument 125a bearbeiten, ohne mit anderen Geräten als dem Benutzergerät 100 zu kommunizieren. In einer Online-Anordnung kann eine Engine 135a ein Dokument 125a bearbeiten, während das Benutzergerät 100 mit anderen Geräten oder einem Server kommuniziert. Die Applikation 130 und die Engines 135 können sowohl in der Offline-Anordnung als auch in der Online-Anordnung arbeiten. Zum Beispiel dafür kann die Applikation 130 in der Offline-Anordnung arbeiten, wenn keine Netzwerkverbindung zur Verfügung steht, und in die Online-Anordnung umschalten, wenn die Netzwerkverbindung wieder zur Verfügung steht. Die Möglichkeit, zwischen der Online- und der Offline-Anordnung umzuschalten, bietet einen verbesserten Zugriff auf Dokumente für Benutzer beispielsweise von Mobilgeräten. In an offline arrangement, an engine 135a a document 125a without using devices other than the user device 100 to communicate. In an online arrangement, an engine 135a a document 125a edit while the user device 100 communicates with other devices or a server. The application 130 and the engines 135 can work both offline and online. For example, the application can do this 130 work offline when no network connection is available, and switch to the online arrangement when the network connection is available again. The ability to switch between online and offline placement provides improved access to documents for users, for example, from mobile devices.

4 zeigt ein System 400, das einem Benutzergerät 401 ermöglichen kann, über ein Netzwerk 415 mit einem Server 420 zu kommunizieren. Das Benutzergerät 401 kann eine Netzwerkschnittstelle 410 haben, die so konfiguriert ist, dass sie als Vermittler zwischen dem Netzwerk 415 und dem Benutzergerät 401 agiert. Der Server 420 kann eine Netzwerkschnittstelle 430 haben, die so konfiguriert ist, dass sie als Vermittler zwischen dem Netzwerk 415 und dem Server 420 agiert. Mehrere 401 ähnliche Benutzergeräte können mit dem Server 420 genauso kommunizieren, wie ein Benutzergerät 401 mit dem Server 420 kommuniziert. Der Übersichtlichkeit halber ist in der 4 nur ein Benutzergerät 401 gezeigt. Benutzergeräte 100 und 401 können ähnliche Funktionen ausführen und ähnliche Merkmale haben. Beispielweise können die Merkmale 406, 41, 416, 421, 426a–n, 431 und 436a–n eines Benutzergeräts 401 ähnliche Funktionen ausführen wie die Merkmale 105, 110, 115, 120, 125a–n, 130 und 135a–n eines Benutzergeräts 100. 4 shows a system 400 that is a user device 401 can enable over a network 415 with a server 420 to communicate. The user device 401 can be a network interface 410 that is configured to act as an intermediary between the network 415 and the user device 401 acts. The server 420 can be a network interface 430 that is configured to act as an intermediary between the network 415 and the server 420 acts. Several 401 Similar user devices can be connected to the server 420 communicate the same way as a user device 401 with the server 420 communicated. For the sake of clarity is in the 4 only one user device 401 shown. user devices 100 and 401 can perform similar functions and have similar features. For example, the features 406 . 41 . 416 . 421 . 426a -n, 431 and 436a -N of a user device 401 perform similar functions as the features 105 . 110 . 115 . 120 . 125a -n, 130 and 135a -N of a user device 100 ,

In einer Implementierung kann der Server 420 als webbasiertes Speichersystem dienen, indem er als Host für Dateien agiert, und so den Benutzern ermöglicht, Daten zu speichern, abzurufen und zu ändern. Der Benutzer kann die auf dem Server 420 gespeicherte Datei 440 bearbeiten. Die Applikation 431 kann die Datei 440 lesen und darauf zugreifen, indem sie mit dem Server 420 über das Netzwerk 415 und die Netzwerkschnittstellen 410 und 430 mit dem Netzwerk kommuniziert. Die Applikation 431 kann die auf dem Server 420 gespeicherte Datei 440 in einer Datenbank 435 speichern. Um die Leistung zu verbessern, wie beispielsweise einer langsamen oder intermittierenden Netzwerkverbindung 415, kann die Applikation 431 optional eine Datei 125a auf dem Benutzergerät 401 als lokale Kopie der Datei 440 beibehalten. Wird also die Netzwerkverbindung 415 unterbrochen, sodass das Benutzergerät 401 in einen Offline-Status übergeht, kann die Applikation 431 weiterhin Eingaben vom Benutzer erhalten und die Datei 125a entsprechend aktualisieren, und die Applikation 431 kann solche Aktualisierungen an den Server 420 übertragen, wenn die Netzwerkverbindung 415 wieder hergestellt ist und das Benutzergerät 401 in einen Online-Status zurückkehrt. Das System 400 kann einem Benutzer gestatten, die Applikation 431 zu verwenden, um eine auf dem Server 420 befindliche Datei 440 zu bearbeiten. In one implementation, the server can 420 serve as a web-based storage system by acting as a host to files, allowing users to store, retrieve, and modify data. The user can do that on the server 420 saved file 440 to edit. The application 431 can the file 440 read and access it by contacting the server 420 over the network 415 and the network interfaces 410 and 430 communicates with the network. The application 431 can be on the server 420 saved file 440 in a database 435 to save. To improve performance, such as a slow or intermittent network connection 415 , the application can 431 optionally a file 125a on the user device 401 as a local copy of the file 440 maintained. So is the network connection 415 interrupted, causing the user device 401 goes into an offline status, the application can 431 continue to receive input from the user and the file 125a update accordingly, and the application 431 can do such updates to the server 420 transmit when the network connection 415 is restored and the user device 401 returns to an online status. The system 400 can allow a user the application 431 to use one on the server 420 located file 440 to edit.

In einer anderen Implementierungen kann der Server 420 als E-Mail-Server agieren, indem er E-Mails überträgt und Dateien speichert, die den übertragenen E-Mails hinzugefügt wurden. In einer anderen Implementierung kann der Server sowohl als webbasiertes Speichersystem als auch als E-Mail-Server agieren, wie in diesem Dokument beschrieben. In another implementations, the server may 420 act as an e-mail server by transmitting e-mails and saving files added to the e-mails being sent. In another implementation, the server may act as both a web-based storage system and an e-mail server, as described in this document.

In einer Anordnung kann das System 400 ermöglichen, eine auf einem Benutzergerät 401 gespeicherte Datei 426a über ein Netzwerk 415 mit einer anderen auf einem Server 420 gespeicherten Datei 440 zu synchronisieren. Das Benutzergerät 401 kann einen Sync-Client 405 enthalten. Die Datei 440 auf dem Server 420 kann von einem anderen Benutzer oder vom selben Benutzer auf einem anderen Benutzergerät bearbeitet werden. In dieser Situation kann die externe Datei 440 geändert werden, wie beispielsweise durch einen anderen Benutzer. Der Server kann Änderungen, die der geänderten Datei 440 entsprechen, an das Benutzergerät 401 übertragen. Der Sync-Client kann die Datei 426a basierend auf den übertragenen Änderungen aktualisieren. Auf diese Weise kann die Datei 426a auf dem Benutzergerät 401 mit der externen Datei 440 auf dem Server 420 synchronisiert werden. In dieser Anordnung kann die Applikation 431 die Datei 426a lesen und darauf zugreifen, indem sie mit der Datenbank 421 kommuniziert. Die Applikation 431 kann Änderungen an der Datei 426a in der Datenbank 421 speichern. Der Sync-Client 405 kann Änderungen erkennen, die an der Datei 426a auf dem Benutzergerät 401 vorgenommen wurden, und die Änderungen über das Netzwerk 415 an den Server 420 übertragen. Der Sync-Client 405 kann ausgeführt werden, während die Applikation 431 die Datei 426a bearbeitet. Diese Operation kann die Übertragung lokaler Änderungen an der Datei 426a an den Server 420 umfassen, den Empfang von Änderungen vom Server 420 sowie die Aktualisierung einer lokalen Datei 426a, oder beides. Diese Anordnung kann mit anderen Anordnungen und Implementierungen kombiniert werden, die in diesem Dokument beschrieben sind. Durch die Synchronisierung der Datei 426a auf dem Benutzergerät 401 mit der Datei 440 auf dem Server 420 kann der Benutzer ein Dokument auf mehreren Geräten bearbeiten und gemeinsam mit anderen Benutzern daran arbeiten. In one arrangement, the system can 400 enable one on a user device 401 saved file 426a over a network 415 with another on a server 420 saved file 440 to synchronize. The user device 401 can be a sync client 405 contain. The file 440 on the server 420 can be edited by another user or by the same user on a different user device. In this situation, the external file 440 be changed, such as by another user. The server can make changes to the changed file 440 correspond to the user device 401 transfer. The sync client can save the file 426a update based on the transferred changes. That way the file can be 426a on the user device 401 with the external file 440 on the server 420 be synchronized. In this arrangement, the application 431 the file 426a read and access it by using the database 421 communicated. The application 431 can make changes to the file 426a in the database 421 to save. The sync client 405 can detect changes to the file 426a on the user device 401 have been made and the changes made over the network 415 to the server 420 transfer. The sync client 405 Can be run while the application 431 the file 426a processed. This operation can transfer local changes to the file 426a to the server 420 include, receiving changes from the server 420 and updating a local file 426a , or both. This arrangement may be combined with other arrangements and implementations described in this document. By synchronizing the file 426a on the user device 401 with the file 440 on the server 420 The user can edit a document on multiple devices and collaborate with other users.

In einigen Beispielen kann sich die Applikation 431 auf dem Server 420 befinden und über das Netzwerk 415 mit dem Benutzergerät kommunizieren. Die Applikation 431 kann die Datei 426 öffnen, die auf dem lokalen Gerät 401 gespeichert ist, oder eine Datei 440, die auf dem Server 420 gespeichert ist. Die Applikation 431 kann den Prozessor 425 des Servers verwenden, um den Inhalt der Datei 426a oder der Datei 440 zur Anzeige auf dem Benutzergerät 401 über das Display 411 zu rendern, und dieses Rendern über das Netzwerk 415 an das Benutzergerät 401 übertragen. Durch die Verwendung des Netzwerks 415 für die Kommunikation zwischen dem Server 420 und dem Benutzergerät 401 ermöglicht das System einem Benutzer, ein Dokument zu bearbeiten, unabhängig davon, ob die Applikation 431 auf dem Benutzergerät 401 installiert ist oder nicht. In some examples, the application may 431 on the server 420 are located and over the network 415 communicate with the user device. The application 431 can the file 426 open on the local device 401 is saved, or a file 440 on the server 420 is stored. The application 431 can the processor 425 the server use the contents of the file 426a or the file 440 for display on the user device 401 over the display 411 render and render over the network 415 to the user device 401 transfer. By using the network 415 for communication between the server 420 and the user device 401 The system allows a user to edit a document, regardless of whether the application 431 on the user device 401 is installed or not.

Es kann eine Zugriffskontrolle für die Datei 426a, die Datei 440 oder beide bereitgestellt werden. Der Server 420 oder eine darauf ausgeführte Applikation kann eine Zugriffskontrolle für eine auf dem Server 420 gespeicherte Datei 440 bieten. Eine Applikation, die auf dem Benutzergerät 401 läuft, wie beispielsweise der Sync-Client 405, kann eine Zugriffskontrolle für eine Datei 426a bereitstellen, die auf dem Benutzergerät 401 gespeichert ist. Alternativ können der Server 420 oder eine darauf ausgeführte Applikation eine Zugriffskontrolle für eine auf dem lokalen Gerät 401 gespeicherte Datei 426a bieten, indem sie über das Netzwerk 415 kommunizieren. Die Zugriffskontrolle für eine Datei kann eine Anforderung umfassen, dass sich ein Benutzer authentifizieren muss, damit er die Datei öffnen, bearbeiten oder speichern kann. Die Zugriffskontrolle für die Datei 426a oder die Datei 440 kann weiterhin eine Kommunikation über das Netzwerk 415 mit einem Server oder einem anderen Server 420, wie beispielsweise einem Authentifizierungsserver, beinhalten. Ein Benutzer kann sich durch Eingabe von Benutzername und Passwort (oder andere identifizierende Informationen) über eine Benutzeroberfläche authentifizieren, sodass dasselbe Benutzergerät zu unterschiedlichen Zeiten von unterschiedlichen Benutzern verwendet werden kann. Benutzer können unterschiedliche Zugriffsstufen auf eine Datei erhalten. Beispielsweise kann ein Benutzer schreibgeschützten Zugriff auf eine Datei haben, sodass er die Datei öffnen und anzeigen kann, sie aber nicht bearbeiten oder speichern darf. Alternativ kann ein Benutzer Lese- und Schreibzugriff auf eine Datei haben, sodass es dem Benutzer möglich ist, die Datei zu öffnen, zu bearbeiten und zu speichern. Ein Benutzer kann als Eigentümer einer Datei festgelegt werden und anderen Benutzern Zugriff auf die Datei erteilen. Benutzer können Zugriff auf individueller Basis erhalten, oder der Zugriff kann Benutzergruppen erteilt werden. Eine der Datei zugeordnete Zugriffskontrollliste kann die Zugriffsrechte der Benutzer bestimmen, die versuchen, auf die Datei zuzugreifen. Durch die Bereitstellung einer Zugriffskontrolle für Dateien bietet das System eine erhöhte Sicherheit. It can be an access control to the file 426a , the file 440 or both. The server 420 or an application running on it may have an access control for one on the server 420 saved file 440 Offer. An application running on the user device 401 is running, such as the sync client 405 , can be an access control for a file 426a deploy on the user device 401 is stored. Alternatively, the server 420 or an application running on it has an access control for one on the local device 401 saved file 426a offer by going over the network 415 communicate. The access control for a file may include a request that a user must authenticate to open, edit, or save the file. The access control for the file 426a or the file 440 Can continue to communicate over the network 415 with a server or another server 420 , such as an authentication server. A user can authenticate by entering a user name and password (or other identifying information) through a user interface so that the same user device can be used by different users at different times. Users can get different levels of access to a file. For example, a user may have read-only access to a file so that it can open and view the file, but not edit or save it. Alternatively, a user may have read and write access to a file so that the user is able to open, edit, and save the file. A user can be designated as the owner of a file and give other users access to the file. Users may be granted access on an individual basis, or access may be granted to user groups. An access control list associated with the file may determine the access rights of the users attempting to access the file. By providing file access control, the system provides increased security.

5 zeigt eine Datenbank 500, die Einträge 505 enthält, die Namen von Dateiformaten 510 Namen von Engines 515 zuordnen, die für eine Bearbeitung der Formate konfiguriert sind. Die Datenbank 500 kann sich auf dem Benutzergerät 100 oder auf dem Server 420 befinden. Ein Eintrag 505 kann auch einen oder mehrere Dateitypen 515 enthalten, denen der Formatname 510 zugeordnet ist. Ein Beispiel für einen Dateityp ist MIME. Ein Eintrag 505 kann einen Formatnamen 510 und mehrere zugeordnete Engine-Namen 520 enthalten. Alternativ kann ein Eintrag 505 mehrere Formatnamen 510 und einen zugeordneten Engine-Namen 520 enthalten. Alternativ kann ein Eintrag 505 mehrere Formatnamen 510 und mehrere zugeordnete Engine-Namen 520 enthalten. Zum Beispiel kann die Datenbank 500 nach dem Formatnamen abgefragt werden. In diesem Beispiel können die Ergebnisse einer Abfrage alle Einträge enthalten, die den abgefragten Formatnamen enthalten. In einem anderen Beispiel kann die Datenbank 500 nach dem Dateityp abgefragt werden. In diesem Beispiel können die Ergebnisse einer Abfrage alle Einträge enthalten, die den abgefragten Dateityp enthalten. In einem dritten Beispiel kann die Datenbank 500 nach dem Engine-Namen abgefragt werden. In diesem Beispiel können die Ergebnisse einer Abfrage alle Einträge enthalten, die den abgefragten Engine-Namen enthalten. Auf diese Weise bieten die Einträge 505 Zuordnungen von Dateiformaten für Bearbeitungs-Engines. Durch die Zuordnung von Dateiformaten zu Bearbeitungs-Engines ermöglicht die Datenbank 500 die Auswahl einer Engine 135a, die so konfiguriert ist, dass sie das Format einer Datei 125a bearbeitet. 5 shows a database 500 , the entries 505 contains the names of file formats 510 Names of Engines 515 assign that are configured to edit the formats. Database 500 can be on the user device 100 or on the server 420 are located. An entry 505 can also have one or more file types 515 contain the format name 510 assigned. An example of a file type is MIME. An entry 505 can be a format name 510 and several associated engine names 520 contain. Alternatively, an entry 505 several format names 510 and an associated engine name 520 contain. Alternatively, an entry 505 several format names 510 and several associated engine names 520 contain. For example, the database 500 queried for the format name. In this example, the results of a query can all the entries containing the queried format name. In another example, the database 500 be queried for the file type. In this example, the results of a query may include all entries that contain the queried file type. In a third example, the database 500 queried for the engine name. In this example, the results of a query may include all entries that contain the queried engine name. In this way, the entries provide 505 Associations of file formats for editing engines. By mapping file formats to editing engines, the database allows 500 the selection of an engine 135a which is configured to match the format of a file 125a processed.

6 zeigt schematisch ein Dokumentobjekt-Modell (DOM) 600, das von einer Engine 135a verwendet wird, wenn eine Dokumentdatei angezeigt oder bearbeitet wird. Eine Dokumentdatei kann auf eine Datei mit einem Textverarbeitungsdokument, einem Tabellenkalkulationsdokument, einem Präsentationsdokument, einem Zeichnungsdokument, einem Datenbankdokument, einem HTML-Dokument, einem XML-Dokument, einem Bilddokument, einem Textdokument oder einem beliebigen anderen Dokument mit Benutzerdaten verweisen. Im DOM sind Objekte des Dokuments 605 als Knoten in einer Hierarchie angeordnet. Ein Objekt kann ein Merkmal der Datei sein. Ein Knoten kann einen oder mehrere darunter liegende Knoten in der Hierarchie aufweisen und ein Knoten kann einen oder mehrere übergeordnete Knoten in der Hierarchie haben. Beispielsweise liegt Knoten 615 über Knoten 620 und unter Knoten 610. Ähnliche Knoten können auf der gleichen Ebene in der Hierarchie sein. Beispielsweise können sich die Knoten 630, 640 und 650 auf derselben Hierarchiestufe befinden. In einem Beispiel wird die MVC-Implementierung (Modell-View-Controller (Modell-Präsentation-Steuerung)) verwendet, um das DOM 600 zu erstellen und zu bearbeiten, und einem Benutzer den Inhalt des DOM 600 anzuzeigen. In diesem Beispiel durchsucht der Modellanteil des MVC eine Datei und platziert Abschnitte der Datei, die Objekten des Dokuments 605 entsprechen, in Knoten des DOM 600. Beispielsweise kann im Knoten 650 des DOM ein Absatz platziert werden, und im Knoten 655 kann ein Satz aus dem Absatz platziert werden. Ein Wort des Satzes kann in Knoten 660 platziert werden, ein weiteres Wort kann in Knoten 665 platziert werden. Ein weiterer Satz des Absatzes kann in Knoten 670 platziert werden, während seine Wörter in den Knoten 675 und 680 platziert werden. Zur Klarheit der Darstellung sind nur zwei Satzknoten und vier Wortknoten oben und in 6, aber ein Absatz kann beliebig viele Sätze und entsprechende Satzknoten haben, und ein Satz kann eine beliebige Anzahl von Wörtern und entsprechende Wortknoten haben. In einem anderen Beispiel kann eine Tabelle im Knoten 650 des DOM 600 platziert werden, wobei die Zeilenelemente der Tabelle in den Knoten 655 und 670 platziert sind. Der Inhalt jeder Zelle in den Tabellenzeilen kann in den Knoten 660, 665, 675 bzw. 680 platziert werden. Tabellen können eine beliebige Anzahl von Zeilen und Zeilenknoten aufweisen, und Zeilen können eine beliebige Anzahl von Zellknoten aufweisen, aber zwei Zeilenknoten und vier Zellknoten werden hier zur Klarheit der Darstellung beschrieben. In einem anderen Beispiel können Tabellen mit den Spalten als Primärindex im DOM 660 platziert werden. In diesem Beispiel entsprechen die Knoten 655 und 670 den Spalten der Tabelle, und die Knoten 660, 665, 675 und 680 entsprechen dem Inhalt der einzelnen Zellen in den Tabellenspalten. Zum Beispiel kann Knoten 610 Header-Informationen des Dokuments enthalten. Knoten 615 kann einen Satz aus dem Header enthalten, und Knoten 620 kann ein Wort aus dem Header-Satz enthalten. Der übersichtlichen Darstellung halber hat Knoten 610 nur einen untergeordneten Knoten 615, der wiederum selbst einen untergeordneten Knoten 620 hat. Darüber hinaus hat das DOM 600, wie gezeigt, vier Hierarchiestufen. Jedoch kann jeder Knoten in einem DOM eine beliebige Anzahl von untergeordneten Knoten aufweisen und ein DOM kann eine beliebige Anzahl von Hierarchieebenen aufweisen. 6 schematically shows a document object model (DOM) 600 that of an engine 135a is used when viewing or editing a document file. A document file may refer to a file containing a word processing document, a spreadsheet document, a presentation document, a drawing document, a database document, an HTML document, an XML document, an image document, a text document, or any other user data document. In the DOM are objects of the document 605 arranged as a node in a hierarchy. An object can be a feature of the file. A node may have one or more underlying nodes in the hierarchy, and a node may have one or more parent nodes in the hierarchy. For example, there is node 615 over knots 620 and under nodes 610 , Similar nodes can be at the same level in the hierarchy. For example, the nodes can become 630 . 640 and 650 at the same hierarchy level. In one example, the MVC implementation (Model View Controller) is used to construct the DOM 600 to create and edit a user and the contents of the DOM 600 display. In this example, the model part of the MVC searches a file and places sections of the file, the objects of the document 605 correspond, in nodes of the DOM 600 , For example, in the node 650 of the DOM be placed a paragraph, and in the node 655 a sentence can be placed from the paragraph. A word of the sentence may be in knots 660 can be placed, another word can be in nodes 665 to be placed. Another sentence of the paragraph may be in node 670 be placed while his words in the knot 675 and 680 to be placed. For clarity of illustration, only two sentence nodes and four word nodes are top and bottom 6 but a paragraph may have any number of sentences and corresponding sentence nodes, and a sentence may have any number of words and corresponding word nodes. In another example, a table may be in the node 650 of the DOM 600 be placed, with the row elements of the table in the nodes 655 and 670 are placed. The contents of each cell in the table rows may be in the node 660 . 665 . 675 respectively. 680 to be placed. Tables may have any number of rows and row nodes, and rows may have any number of cell nodes, but two row nodes and four cell nodes are described here for clarity of illustration. In another example, tables can use columns as the primary index in the DOM 660 to be placed. In this example, the nodes match 655 and 670 the columns of the table, and the nodes 660 . 665 . 675 and 680 correspond to the content of each cell in the table columns. For example, node 610 Contain header information of the document. node 615 can contain a sentence from the header, and node 620 can contain a word from the header record. For clarity, has nodes 610 only one child node 615 which itself is a subordinate node 620 Has. In addition, the DOM has 600 as shown, four hierarchical levels. However, each node in a DOM can have any number of child nodes, and a DOM can have any number of hierarchy levels.

Nachdem der Modellanteil das DOM 600 erzeugt hat und Inhalt auf die Knoten verteilt hat, kann der Präsentationsanteil eines MVC dann die Knoten des DOM 600 einzeln durchlaufen und einige oder alle der in den Knoten des DOM 600 enthaltenen Objekte rendern. Der Präsentationsanteil kann eine Rendering-Engine sein, und eine Komponente einer Engine 135a. Wenn der Präsentationsanteil alle Knoten des DOM 600 durchläuft, rendert er den Inhalt eines Knotens, wenn er entsprechend konfiguriert ist. Der Ansichtsteil kann eine hartcodierte Logik verwenden, um den Inhalt jedes Knotens zu dekodieren oder zu analysieren, während er beim Durchlaufen auf den Knoten trifft. Wenn die hartcodierte Logik so konfiguriert ist, um den Inhalt des Knotens zu decodieren oder zu analysieren, stellt der Ansichtsteil den Inhalt des Knotens zur Anzeige einem Benutzer dar. Wenn die hartcodierte Logik nicht so konfiguriert ist, um den Inhalt des Knotens zu decodieren oder analysieren, wird der Ansichtsteil den Inhalt des Knotens nicht wiedergeben und zu einem anderen Knoten übergehen. Zum Beispiel kann der Präsentationsanteil das DOM 600 durchlaufen, während gleichzeitig der Modellanteil das DOM 600 erzeugt oder aktualisiert. After the model share the DOM 600 and has distributed content to the nodes, the presentation portion of an MVC may then be the nodes of the DOM 600 go through individually and some or all of the nodes in the DOM 600 render contained objects. The presentation portion may be a rendering engine and a component of an engine 135a , If the presentation share all nodes of the DOM 600 it renders the contents of a node if it is configured accordingly. The view part may use hard-coded logic to decode or analyze the contents of each node as it encounters the node as it passes through. If the hard-coded logic is configured to decode or analyze the contents of the node, the view portion presents the contents of the node to a user for display. If the hard-coded logic is not configured to decode or parse the contents of the node , the view part will not play the contents of the node and move to another node. For example, the presentation share may be the DOM 600 go through while at the same time the model share the DOM 600 created or updated.

Der Steuerungsanteil eines MVC kann mit dem Präsentationsanteil und dem Modellanteil des MVC interagieren, um die Bearbeitung des vom DOM 600 präsentierten Dokuments 605 zu vereinfachen. Der Steuerungsanteil kann eine Komponente der Engine 135a sein. Wenn ein Benutzer eine bearbeitende Eingabe vornimmt, empfängt der Controller die Eingabe, bestimmt den Knoten des DOM 600, für den die Eingabe vorgesehen ist, und aktualisiert den entsprechenden Knoten. Der Controller weist dann den Ansichtsteil des MVC an, den aktualisierten Knoten zu rendern. Die Aktualisierung des DOM 600 muss auf Korrektheit überprüft werden. Diese Validierung kann auftreten, bevor oder nachdem der Ansichtsteil den aktualisierten Knoten rendert. Zum Beispiel kann der Controller eine optimistische Aktualisierung des DOM 600 durchführen. In diesem Beispiel sendet der Steuerungsanteil die Aktualisierung direkt an den Präsentationsanteil für ein unmittelbares Rendern und aktualisiert und überprüft asynchron das DOM 600. Wenn die Validierung erfolgreich ist, werden keine weiteren Maßnahmen in Bezug auf die Aktualisierung ergriffen. Ergibt die Überprüfung ein negatives Ergebnis, wird die Aktualisierung des DOM 600 rückgängig gemacht und der Präsentationsanteil rendert das DOM 600, wie es vor der Aktualisierung vorlag. Eine solche optimistische Aktualisierung ermöglicht eine schnellere Anzeige von Benutzerbearbeitungen. The control portion of an MVC may interact with the presentation portion and the model portion of the MVC in order to process that from the DOM 600 presented document 605 to simplify. The control portion may be a component of the engine 135a be. When a user makes an editing input, the controller receives the Input, determines the node of the DOM 600 for which the input is intended and updates the corresponding node. The controller then instructs the view portion of the MVC to render the updated node. The update of the DOM 600 must be checked for correctness. This validation may occur before or after the view part renders the updated node. For example, the controller may be optimistic about updating the DOM 600 carry out. In this example, the controller portion sends the update directly to the presentation portion for immediate rendering and updates and asynchronously checks the DOM 600 , If the validation is successful, no further action will be taken in relation to the update. If the check results in a negative result, the update of the DOM 600 Undo the presentation part and render the DOM 600 as it was before the upgrade. Such an optimistic update allows faster viewing of user edits.

Zum Beispiel ist die Engine 135a möglicherweise nicht so konfiguriert, dass sie alle Knoten des DOM 600 bearbeiten kann. In diesem Beispiel kann ein Benutzer eine Eingabe bereitstellen, um ein Merkmal des Dokuments 605 zu bearbeiten, das einem Knoten des DOM 600 entspricht, für dessen Bearbeitung die Engine 135a konfiguriert ist. Dies kann auch dann auftreten, wenn der Präsentationsanteil des MVC für das Rendern des Knotens konfiguriert ist. Der Steuerungsanteil des MVC kann die Benutzereingabe empfangen. Nachdem festgestellt wurde, dass der Steuerungsanteil nicht für eine Bearbeitung des Knotens konfiguriert wurde, kann der Knoten nicht geändert werden. Die Engine 135a kann optional den Benutzer darüber informieren, dass das gewünschte Merkmal nicht bearbeitet werden kann. In einigen Beispielen kann der Präsentationsanteil den Inhalt des Knotens fehlerhaft rendern, wenn der Präsentationsanteil so konfiguriert ist, dass er den Knoten rendern kann, aber die Engine 135a nicht für eine Bearbeitung des Knotens konfiguriert ist. Weil jedoch der Steuerungsanteil keine solchen Knoten bearbeitet, wird der ursprüngliche Inhalt dieser Knoten beibehalten. Auf diese Weise ist sichergestellt, dass eine nachfolgende Applikation oder Engine, die das in diesen Knoten enthaltene Merkmal vollständig unterstützt, den ursprünglichen unveränderten Inhalt der Knoten ohne Datenverlust rendern und bearbeiten kann. For example, the engine 135a may not be configured to use all nodes of the DOM 600 can edit. In this example, a user may provide input to a feature of the document 605 to work on that one node of the DOM 600 corresponds to the engine for its processing 135a is configured. This can occur even if the presentation portion of the MVC is configured to render the node. The controller portion of the MVC may receive the user input. After determining that the control portion was not configured to handle the node, the node can not be changed. The engine 135a Optionally, inform the user that the desired feature can not be edited. In some examples, the presentation portion may render the contents of the node incorrectly if the presentation portion is configured to render the node, but the engine 135a not configured to handle the node. However, because the control portion does not handle such nodes, the original content of these nodes is retained. In this way, it is ensured that a subsequent application or engine that fully supports the feature contained in this node can render and manipulate the original unmodified contents of the nodes without data loss.

Wenn das Dokument 605 gespeichert wird, kann die Engine 135a die DOM-Hierarchie 600 verwenden, um das Speichern in Übereinstimmung mit dem Format von Dokument 605 durchzuführen. Zum Beispiel können die Knoten des DOM 600 Daten enthalten, die bereits in dem Format der Datei codiert sind, die ursprünglich das Dokument 605 enthielt. In diesem Beispiel werden die in den Knoten des DOM 600 enthaltenen Daten vor dem Speichern nicht geändert oder in ein anderes Format umgewandelt. In einem anderen Beispiel kann die Engine 135a unterstützte Merkmale und ihre entsprechenden Knoten des DOM 600 in Übereinstimmung mit dem Format des Dokuments 605 codieren. In diesem Beispiel enthalten Knoten des DOM 600, die Merkmale enthalten, für deren Rendering oder Bearbeitung die Engine 135a nicht konfiguriert ist, Daten, die in Übereinstimmung mit dem ursprünglichen Format der Datei codiert sind, und sie werden vor dem Speichern nicht weiter codiert. Wenn Knoten, für deren Rendering oder Bearbeitung die Engine 135a nicht konfiguriert ist, neu formatiert würden, gingen alle Daten in den Knoten verloren, weil die Engine 135a nicht dafür konfiguriert ist, das Format der Knoten ordnungsgemäß zu decodieren. Würden darüber hinaus diese Knoten beim Speichern einfach verworfen, würden die Daten der Knoten ebenfalls verlorengehen. Durch den Beibehalt des Formats der Knoten mit Merkmalen, für deren Rendering oder Bearbeitung die Engine 135a nicht konfiguriert ist, werden nicht unterstützte Merkmale der ursprünglichen Datei beibehalten, während andere Merkmale bearbeitet werden. If the document 605 stored, the engine can 135a the DOM hierarchy 600 use to save in accordance with the format of document 605 perform. For example, the nodes of the DOM 600 Contain data that is already encoded in the format of the file that originally contained the document 605 contained. In this example, those in the nodes of the DOM 600 data that has been saved before saving or converted into another format. In another example, the engine 135a supported features and their corresponding nodes of the DOM 600 in accordance with the format of the document 605 encode. This example contains nodes of the DOM 600 that contain features for rendering or editing the engine 135a is not configured, data that is encoded in accordance with the original format of the file, and they are not further encoded before saving. If node, for rendering or editing the engine 135a not configured to be reformatted, all data in the node went lost because of the engine 135a is not configured to properly decode the format of the nodes. Moreover, if these nodes were simply dropped on storage, the data of the nodes would also be lost. By preserving the format of the nodes with features for rendering or editing the engine 135a is not configured, unsupported features of the original file are preserved while other features are being edited.

7 zeigt ein Ablaufdiagramm 700 eines Verfahrens für die Auswahl einer Engine, die gestartet werden soll, wenn eine angeforderte Datei geöffnet wird. Ein Benutzer kann eine Anforderung auf einem Client-Gerät eingeben, um eine Datei zu öffnen, die einen bestimmten Dateityp hat. Die Anforderung wird von einer Applikation empfangen, wie beispielsweise Applikation 130, was beispielsweise in Schritt 705 stattfindet. Die Anforderung kann eine Datei-ID enthalten, die der zu öffnenden Datei zugeordnet ist. In Schritt 710 bestimmt ein Prozessor, der die Applikation 130 ausführt, den Speicherort der angeforderten Datei abhängig von den in der Anforderung enthaltenen Informationen. Die angeforderte Datei kann sich auf dem Benutzergerät 100 befinden, auf einem Server 420 oder an einem anderen Standort. Der Standort kann bestimmt werden, indem ein Dateiindex in einer Datenbank oder in einem Speicher überprüft wird. In Schritt 715 bestimmt die Applikation das Format der angeforderten Datei. Die Applikation kann das Format basierend auf einer Dateinamenerweiterung, der Header-Information oder anderen der Datei zugeordneten Informationen bestimmen. Wenn die Dateinamenerweiterung verwendet wird, um das Format zu bestimmen, kann die Applikation die Dateinamenerweiterung der angeforderten Datei, der gefundenen Datei oder von beidem verwenden. Wenn Header-Information verwendet wird, um das Format zu bestimmen, kann die Applikation einen Teil des Headers der gefundenen Datei lesen und eine Zeichenkette extrahieren, die den Dateityp aus dem Header angibt. Bei der Zeichenkette für den Dateityp kann es sich um eine MIME-Zeichenkette handeln. In einigen Beispielen können sowohl die Header-Information als auch die Information über die Dateinamenerweiterung verwendet werden, um das Format einer Datei zu bestimmen. Wenn beide Bestimmungen ähnliche Hinweise auf das Dateiformat ergeben, besteht eine erhöhte Wahrscheinlichkeit, dass die Bestimmungen korrekt sind. Ergeben jedoch die Bestimmungen unterschiedliche Hinweise auf das Format, besteht ein Konflikt. Ein solcher Konflikt kann auftreten, wenn eine Dateinamenerweiterung von einem Benutzer in eine andere Dateinamenerweiterung geändert wurde. 7 shows a flowchart 700 a method for selecting an engine to start when a requested file is opened. A user can enter a request on a client device to open a file that has a particular file type. The request is received by an application, such as application 130 What, for example, in step 705 takes place. The request may contain a file ID associated with the file to be opened. In step 710 determines a processor that the application 130 executes the location of the requested file depending on the information contained in the request. The requested file may be on the user device 100 are located on a server 420 or at another location. The location can be determined by examining a file index in a database or in memory. In step 715 the application determines the format of the requested file. The application may determine the format based on a file name extension, header information, or other information associated with the file. If the file name extension is used to determine the format, the application may use the file name extension of the requested file, the found file, or both. If header information is used to determine the format, the application can read part of the header of the found file and extract a string indicating the file type from the header. The string for the file type can be a MIME string. In some examples Both the header information and the file name extension information can be used to determine the format of a file. If both clauses give similar clues to the file format, there is an increased likelihood that the clauses will be correct. However, if the clauses give different clues to the format, there is a conflict. Such a conflict can occur if a file name extension has been changed from one user to another file name extension.

In Entscheidungsblock 720 fragt die Applikation 130 eine Datenbank 500 ab, um festzustellen, ob eine Engine für das Öffnen und Bearbeiten der Datei konfiguriert ist, die der Applikation zugeordnet ist. Die Applikation 130 bestimmt, ob Einträge in der Datenbank 500 das Format der gefundenen Datei enthalten. Enthalten keine Einträge in der Datenbank das Format der gefundenen Datei, fährt das Verfahren fort mit Schritt 725 und zeigt dem Benutzer eine Meldung an, dass die angeforderte Datei nicht geöffnet werden kann. Existiert darüber hinaus ein Konflikt zwischen mehreren Bestimmungen des Formats, wie oben beschrieben, kann das Verfahren mit Schritt 725 fortfahren, und als Teil von Schritt 725 den Benutzer über den Konflikt bei der Bestimmung des Formats informieren. Alternativ kann das Verfahren im Falle eines solchen Konflikts direkt mit Schritt 740 fortfahren und den Benutzer auffordern, direkte eine Engine auszuwählen. Die Aufforderung kann eine Auflistung einiger oder aller Engines 135 enthalten. Nach Schritt 725 wird das Verfahren 700 beendet. Wenn ein oder mehrere Einträge in der Datenbank 500 das Format der gefundenen Datei enthalten, fährt das Verfahren fort mit Entscheidungsblock 730. In decision block 720 asks the application 130 a database 500 to determine if an engine is configured to open and edit the file associated with the application. The application 130 determines whether entries in the database 500 contain the format of the found file. If no entries in the database contain the format of the found file, the procedure goes to step 725 and displays a message to the user that the requested file can not be opened. In addition, if there is a conflict between multiple determinations of the format, as described above, the method can be used with step 725 continue, and as part of step 725 inform the user about the conflict in determining the format. Alternatively, in the case of such a conflict, the process may step directly 740 continue and prompt the user to select an engine directly. The prompt can be a listing of some or all engines 135 contain. After step 725 becomes the procedure 700 completed. If one or more entries in the database 500 If the format of the found file is included, the procedure continues with decision block 730 ,

In Entscheidungsblock 730 bestimmt die Applikation 130, ob dem Format der gefundenen Datei mehrere Engine zugeordnet sind. Die Datenbank 500 enthält einen oder mehrere Einträge 505, die Zuordnungen von Engines zu Dateiformaten enthalten. Ein Eintrag 505 kann einen Formatnamen 510 und mehrere zugeordnete Engine-Namen 520 enthalten. Alternativ kann ein Eintrag 505 mehrere Formatnamen 510 und einen zugeordneten Engine-Namen 520 enthalten. Alternativ kann ein Eintrag 505 mehrere Formatnamen 510 und mehrere zugeordnete Engine-Namen 520 enthalten. Stellt die Applikation 130 durch Abfrage der Datenbank fest, dass dem Format der gefundenen Datei nur eine Engine zugeordnet ist, fährt das Verfahren fort mit Schritt 735, in dem die eine Engine ausgewählt wird, die dem Format der gefundenen Datei zugeordnet ist. Stellt die Applikation durch Abfrage der Datenbank fest, dass dem Format der gefundenen Datei mehrere Engines zugeordnet sind, fährt das Verfahren fort mit Schritt 740. In decision block 730 determines the application 130 whether the format of the found file is assigned to multiple engines. Database 500 contains one or more entries 505 that contain engine-to-file mappings. An entry 505 can be a format name 510 and several associated engine names 520 contain. Alternatively, an entry 505 several format names 510 and an associated engine name 520 contain. Alternatively, an entry 505 several format names 510 and several associated engine names 520 contain. Represents the application 130 by querying the database that only one engine is associated with the format of the found file, the method goes to step 735 in which an engine is selected which is associated with the format of the found file. If the application determines by querying the database that there are multiple engines associated with the format of the found file, then the method continues with step 740 ,

In Schritt 740 präsentiert die Applikation 130 dem Benutzer über ein Display-Gerät 110 auf dem Benutzergerät 100 eine Liste aller zugeordneten Engines. In Schritt 745 empfängt die Applikation 130 vom Benutzer über das Benutzereingabegerät 115 eine Auswahl einer der mehreren zugeordneten Engines. In Schritt 750 startet die Applikation 130 die ausgewählte Engine, die verwendet werden kann, um die angeforderte Datei zu bearbeiten. In step 740 presents the application 130 the user via a display device 110 on the user device 100 a list of all associated engines. In step 745 receives the application 130 from the user via the user input device 115 a selection of one of several dedicated engines. In step 750 starts the application 130 The selected engine that can be used to edit the requested file.

8A8B zeigen ein Ablaufdiagramm 800 eines Verfahrens für die Verwendung einer Engine 135a, um ein Merkmal einer Datei 125a zu laden und zu bearbeiten. Wenn ein Benutzer anfordert, eine Datei zu öffnen, und beispielsweise unter Verwendung der Schritte in Ablaufdiagramm 700 eine Engine identifiziert wurde, können die Daten der Datei unter Verwendung der Schritte in Ablaufdiagramm 800 verarbeitet werden. Die Applikation 130 kann die ausgewählte Engine 135a starten, nachdem sie eine Benutzereingabe von einem Browser empfangen hat, wie beispielsweise dem Browser 210. Die Engine 135a kann das Dokument über den Browser 210 auf einer Benutzeroberfläche anzeigen, wie beispielsweise der Benutzeroberfläche 200. Beginnend in 8A in Schritt 805 liest die Engine 135a Daten aus der Datei 125a in Übereinstimmung mit dem Format der Datei. In Schritt 810 bestimmt der Prozessor, der die Engine 135a ausführt, wie beispielsweise der Prozessor 105, ob die gelesenen Daten ein Merkmal enthalten. In Schritt 815 platziert die Engine 135a das Merkmal in einem Knoten des DOM, wie beispielsweise DOM 600, der der Datei 125a zugeordnet ist. In Schritt 820 bestimmt die Engine 135a, ob das Ende der Datei 125a erreicht ist. Wurde das Ende von Datei 125a nicht erreicht, kehrt das Verfahren zurück zu Schritt 805, um weitere Daten aus der Datei 125a zu lesen. Ist das Ende von Datei 125a erreicht, fährt das Verfahren mit Schritt 825 fort. Der Modellanteil der Engine 135a kann einen oder mehrere Schritte 805, 810, 815 und 820 ausführen. 8A - 8B show a flowchart 800 a method for using an engine 135a to a feature of a file 125a to load and edit. When a user requests to open a file and, for example, using the steps in the flowchart 700 If an engine has been identified, the data of the file can be retrieved using the steps in Flowchart 800 are processed. The application 130 can the selected engine 135a after receiving a user input from a browser, such as the browser 210 , The engine 135a can the document through the browser 210 on a UI, such as the UI 200 , Starting in 8A in step 805 reads the engine 135a Data from the file 125a in accordance with the format of the file. In step 810 the processor that determines the engine determines 135a performs, such as the processor 105 whether the read data contains a characteristic. In step 815 places the engine 135a the feature in a node of the DOM, such as DOM 600 of the file 125a assigned. In step 820 determines the engine 135a whether the end of the file 125a is reached. Became the end of file 125a not reached, the process returns to step 805 to get more data from the file 125a to read. Is the end of file 125a reached, the method goes to step 825 continued. The model part of the engine 135a can take one or more steps 805 . 810 . 815 and 820 To run.

In Schritt 825 liest die Engine 135a einen Knoten des DOM 600, während sie das DOM 600 durchläuft. In Entscheidungsblock 830 bestimmt die Engine 135a, ob sie für das Rendern des Knotens oder des im Knoten enthaltenen Dateimerkmals konfiguriert ist. Eine Engine, die für ein Rendern eines Merkmals einer Datei konfiguriert ist, ist so konfiguriert, dass sie Daten aus dem dem Merkmal zugeordneten Speicher liest, in dem die Daten in Übereinstimmung mit dem Format der Datei codiert sind. In einigen Beispielen führt die Engine 135a diese Bestimmung basierend auf Informationen durch, die explizit in der Engine 135a fest codiert sind. Stellt die Engine 135a fest, dass sie nicht für ein Rendern des Merkmals konfiguriert ist, fährt das Verfahren mit Schritt 835 fort, wo die Engine 135a das Merkmal nicht rendert, und fährt dann mit Entscheidungsblock 845 fort. Stellt die Engine 135a fest, dass sie das Merkmal rendern kann, fährt das Verfahren mit Schritt 840 fort. An Schritt 840 rendert Engine 135a das in dem Knoten enthaltene Merkmal. Anschließend fährt das Verfahren mit Entscheidungsblock 845 fort, wo die Engine 135a feststellt, ob das Ende des DOM 600 erreicht ist. Die Engine 135a kann diese Bestimmung vornehmen, indem sie feststellt, ob alle Knoten des DOM durchlaufen wurden. Wurde das Ende des DOM nicht erreicht, kehrt das Verfahren zurück zu Schritt 825, wo die Engine 135a damit fortfährt, das DOM 600 zu durchlaufen. Ist das Ende des DOM erreicht, fährt das Verfahren mit Schritt 855 fort. Der Präsentationsanteil der Engine 135a kann einen oder mehrere Schritte 825, 830, 835, 840 und 845 ausführen. In step 825 reads the engine 135a a node of the DOM 600 while she's the DOM 600 passes. In decision block 830 determines the engine 135a whether it is configured to render the node or the file feature contained in the node. An engine configured to render a feature of a file is configured to read data from the memory associated with the feature in which the data is encoded in accordance with the format of the file. In some examples, the engine performs 135a This determination is based on information provided explicitly in the engine 135a are hard coded. Represents the engine 135a determines that it is not configured to render the feature, the method continues with step 835 away, where the engine 135a does not render the feature, and then moves to decision block 845 continued. Represents the engine 135a that they are the feature the procedure moves to step 840 continued. At step 840 renders engine 135a the feature contained in the node. Then the procedure moves with decision block 845 away, where the engine 135a determines if the end of the DOM 600 is reached. The engine 135a can make this determination by determining if all nodes of the DOM have been traversed. If the end of the DOM has not been reached, the procedure returns to step 825 where the engine 135a so that continues the DOM 600 to go through. When the end of the DOM is reached, the procedure goes to step 855 continued. The presentation share of the engine 135a can take one or more steps 825 . 830 . 835 . 840 and 845 To run.

In 8B in Schritt 855 empfängt die Engine 135a eine Benutzereingabe, um ein Merkmal des von DOM 600 dargestellten Dokuments zu ändern. Der Benutzer kann diese Eingabe über eine grafische Benutzeroberfläche vornehmen, wie beispielsweise die Oberflächen 200 und 300. Handelt es sich bei dem Merkmal beispielsweise um einen Absatz, kann die Eingabe eine Ergänzung des Texts des Absatzes beinhalten. Als weiteres Beispiel kann die Eingabe Anweisungen für die Änderung des Darstellungsstils enthalten, wie beispielsweise die Änderung der Schriftart des Absatzes in eine Fettauszeichnung. Diese Beispiele erheben keinen Anspruch auf Vollständigkeit und bei den Benutzereingaben kann es sich um beliebige Benutzereingaben handeln, die das Merkmal ändern. In Entscheidungsblock 860 bestimmt die Engine 135a, ob sie für die Bearbeitung des Merkmals konfiguriert ist. Eine Engine, die so konfiguriert ist, dass sie ein Merkmal einer Datei bearbeitet, ist dafür konfiguriert, Daten aus dem Speicher zu lesen und Daten in den Speicher zu schreiben, worin die Daten dem Merkmal zugeordnet sind und in Übereinstimmung mit dem Format der Datei codiert sind. Zum Beispiel stellt die Engine 135a dies fest, indem sie den Inhalt des Knotens des DOM decodiert, der dem zu bearbeitenden Merkmal entspricht. Wenn die Engine 135a in diesem Beispiel den Inhalt des Knotens erfolgreich decodieren kann, stellt die Engine 135a fest, dass sie das Merkmal bearbeiten kann; sie stellt fest, dass sie das Merkmal nicht bearbeiten kann, wenn sie den Inhalt des Knotens nicht decodieren kann. Stellt die Engine 135a fest, dass sie nicht für die Bearbeitung des Merkmals konfiguriert ist, fährt das Verfahren mit Schritt 865 fort, wo die Engine 135a das Merkmal nicht ändert, und fährt dann direkt mit Schritt 880 fort. Stellt die Engine 135a fest, dass sie für eine Bearbeitung des Merkmals konfiguriert ist, fährt das Verfahren mit Schritt 870 fort. In Schritt 870 ändert die Engine 135a den Knoten in DOM 600, der dem Merkmal entspricht. Die Engine 135a kann das DOM 600 überprüfen, nachdem sie den Knoten geändert hat. In Schritt 875 rendert Engine 135a das Merkmal basierend auf dem Inhalt des geänderten Knotens. In einem Beispiel für eine optimistische Aktualisierung können die Schritte 870 und 875 nebenläufig oder asynchron ausgeführt werden. In diesem Beispiel kann der Steuerungsanteil der Engine 135a Aktualisierungen direkt an den Präsentationsanteil senden, und später das DOM 600 aktualisieren und überprüfen. In 8B in step 855 receives the engine 135a a user input to a feature of the DOM 600 changed document. The user can make this input via a graphical user interface, such as the interfaces 200 and 300 , For example, if the feature is a paragraph, the input may include a supplement to the text of the paragraph. As another example, the input may include instructions for changing the style of presentation, such as changing the font of the paragraph to a bold. These examples are not exhaustive and the user input may be any user input that changes the feature. In decision block 860 determines the engine 135a whether it is configured to process the feature. An engine configured to handle a feature of a file is configured to read data from memory and write data to memory wherein the data is associated with the feature and encoded in accordance with the format of the file are. For example, the engine provides 135a This is determined by decoding the contents of the node of the DOM corresponding to the feature to be processed. If the engine 135a In this example, the engine can successfully decode the contents of the node 135a that she can edit the feature; she finds that she can not handle the feature if she can not decode the contents of the node. Represents the engine 135a If it is determined that it is not configured to process the feature, then the method goes to step 865 away, where the engine 135a the feature does not change, and then moves directly to step 880 continued. Represents the engine 135a If it is determined that it is configured for processing the feature, the method moves to step 870 continued. In step 870 changes the engine 135a the node in DOM 600 that corresponds to the characteristic. The engine 135a can the DOM 600 after changing the node. In step 875 renders engine 135a the characteristic based on the content of the changed node. In an example of an optimistic update, the steps 870 and 875 running concurrently or asynchronously. In this example, the control share of the engine 135a Send updates directly to the presentation portion, and later the DOM 600 update and check.

In Entscheidungsblock 880 bestimmt die Engine 135a, ob ein Speichern erforderlich ist. Ein Speichern ist erforderlich, wenn der Benutzer eine Eingabe macht, um das Dokument zu speichern, oder wenn eine abgelaufene Zeit einen vordefinierten Schwellenwert überschritten hat. Stellt die Engine 135a fest, dass ein Speichern erforderlich ist, fährt das Verfahren mit Schritt 885 fort, wo die Engine 135a die im DOM 600 enthaltenen Daten in einer Datei in Übereinstimmung mit dem Format der gefundenen Datei 125a speichert. Für die Knoten des DOM 600, für deren Bearbeitung die Engine 135a nicht konfiguriert ist, speichert die Engine 135a die in diesen Knoten enthaltenen Daten unverändert im Hinblick auf den Originalzustand der Daten. Daten, die in den Knoten des DOM 600 enthalten sind, für deren Bearbeitung die Engine 135a konfiguriert ist, können gegenüber ihrem Originalzustand verändert werden, und die Engine 135a speichert diese Daten in Übereinstimmung mit dem Originalformat der gefundenen Datei 125a. In Schritt 880 kann die Engine 135a alle Knoten im DOM 600 in einer Datei speichern, oder nur einen Teil der Knoten speichern, wie beispielsweise die aktualisierten Knoten. In Schritt 880 kann die Engine 135a alternativ die im DOM 600 enthaltenen Daten in einem anderen Format speichern, als dem Originalformat der Datei 125a. Die Auswahl des Formats kann basierend auf der Auswahl eines Benutzers über das Benutzereingabegerät 115 bestimmt werden. Wenn die Engine 135a in Entscheidungsblock 880 feststellt, dass kein Speichern erforderlich ist, fährt das Verfahren 800 mit Schritt 855 fort, wo die Engine 135a eine weitere Benutzereingabe empfängt. Nach dem Speichern in Schritt 885 kehrt das Verfahren zu Schritt 855 zurück, wo die Engine 135a eine weitere Benutzereingabe erhält. Das Verfahren 800 kann diese Schleife fortsetzen, bis sie vom Benutzer unterbrochen wird. Der Benutzer kann das Verfahren 800 unterbrechen, indem er das Dokument über eine Benutzeroberfläche schließt, oder indem er einfach eine Benutzeroberfläche schließt. Zum Beispiel kann der Steuerungsanteil der Engine 135a die Schritte 855, 860, 865, 870, 880 und 885 ausführen. In diesem Beispiel kann der Präsentationsanteil der Engine 135a Schritt 875 ausführen. Durch Beibehalt nicht unterstützter Merkmale in den Knoten des DOM 600 und die Verhinderung von Änderungen an diesen Knoten werden die nicht unterstützten Merkmale der Datei von der Engine 135a beibehalten, wenn das DOM 600 gespeichert wird. In decision block 880 determines the engine 135a whether storage is required. Saving is required when the user makes an entry to save the document, or when an elapsed time has exceeded a predefined threshold. Represents the engine 135a determines that a save is required, the method goes to step 885 away, where the engine 135a those in the DOM 600 contained data in a file in accordance with the format of the found file 125a stores. For the nodes of the DOM 600 , for the processing of which the engine 135a is not configured, stores the engine 135a the data contained in these nodes is unchanged with respect to the original state of the data. Data in the nodes of the DOM 600 are included for their editing the engine 135a configured, can be changed from their original state, and the engine 135a stores this data in accordance with the original format of the found file 125a , In step 880 can the engine 135a all nodes in the DOM 600 save to a file, or store only a portion of the nodes, such as the updated nodes. In step 880 can the engine 135a alternatively in the DOM 600 save data in a different format than the original format of the file 125a , The selection of the format may be based on the selection of a user via the user input device 115 be determined. If the engine 135a in decision block 880 determines that no saving is required, the procedure continues 800 with step 855 away, where the engine 135a receives another user input. After saving in step 885 the procedure returns to step 855 back to where the engine 135a receives another user input. The procedure 800 can continue this loop until it is interrupted by the user. The user can do the procedure 800 by closing the document through a UI, or by simply closing a UI. For example, the control share of the engine 135a the steps 855 . 860 . 865 . 870 . 880 and 885 To run. In this example, the presentation share of the engine 135a step 875 To run. By keeping unsupported features in the nodes of the DOM 600 and preventing changes to these nodes will be the unsupported features of the file from the engine 135a maintained when the DOM 600 is stored.

9 zeigt ein Ablaufdiagramm 900 eines Verfahrens, das von einer Applikation 130 verwendet wird, um eine Datei zu erstellen. Ein Benutzer kann eine Eingabe über eine Benutzeroberfläche bereitstellen, wie beispielsweise die Benutzeroberfläche 200, um eine Datei mit einem spezifischen Dateiformat zu erstellen. In Schritt 905 empfängt ein Prozessor, der Applikation 130 ausführt, eine Anforderung von einem Benutzer, eine Datei zu erstellen. In Schritt 910 stellt der Prozessor fest, dass eine oder mehrere der Engines 135 für die Erstellung einer Datei konfiguriert sind. Diese Bestimmung kann erfolgen, indem eine Datenbank abgefragt wird, wie beispielsweise Datenbank 500. In Schritt 915 zeigt die Applikation 130 dem Benutzer eine Liste mit Formaten an, die einer oder mehreren der Engines zugeordnet sind, die für das Erstellen einer Datei konfiguriert sind. In Schritt 920 empfängt die Applikation 130 vom Benutzer eine Auswahl eines Formats aus der angezeigten Liste. In Entscheidungsblock 925 bestimmt die Applikation 130, ob mehrere Engines für das Erstellen von Dokumenten in dem ausgewählten Format konfiguriert sind. Die Applikation 130 kann eine Datenbank 500 abfragen, um festzustellen, ob eine oder mehrere Engines für das Erstellen von Dateien in dem ausgewählten Format konfiguriert und der Applikation zugeordnet sind. Ist nur eine Engine für das Erstellen von Dokumenten in dem ausgewählten Format konfiguriert, fährt das Verfahren mit Schritt 935 fort, wo diese eine Engine ausgewählt wird. Sind mehrere Engines für das Erstellen von Dokumenten in dem ausgewählten Format konfiguriert, fährt das Verfahren mit Schritt 930 fort, wo die Applikation 130 dem Benutzer eine Liste der Engines anzeigt, die dem ausgewählten Format zugeordnet sind. In Schritt 940 empfängt die Applikation 130 eine Auswahl einer Engine 135a aus der angezeigten Liste der Engines. In Schritt 945 startet die Applikation 130 die ausgewählte Engine 135a. In Schritt 950 erzeugt die gestartete Engine 135a ein Dokument im ausgewählten Format und rendert das Dokument für die Anzeige für den Benutzer über das Display 110. In Schritt 955 empfängt die gestartete Engine 135a vom Benutzer Bearbeitungen an dem gerenderten Dokument. Diese Bearbeitungen können in Übereinstimmung mit den Schritten des Verfahrens 800 empfangen werden. In Schritt 960 speichert die gestartete Engine 135a das Dokument in einer Datei 125a in Übereinstimmung mit dem ausgewählten Format. In einigen Implementierungen kann das Verfahren 900 vereinfacht werden. In diesen Implementierungen kann die Applikation 130 dem Benutzer in Schritt 915 eine Liste der Engines anzeigen, in Schritt 920 eine Auswahl einer Engine empfangen und direkt mit Schritt 945 fortfahren, wo die Applikation 130 die ausgewählte Engine öffnet. In einigen Implementierungen kann die Engine 135a eine leere Vorlagedatei öffnen oder kopieren, statt eine neue Instanz einer Datei zu erstellen. 9 shows a flowchart 900 a procedure that comes from an application 130 is used to create a file. A user can provide input through a user interface, such as the user interface 200 to create a file with a specific file format. In step 905 receives a processor, the application 130 executes a request from a user to create a file. In step 910 the processor determines that one or more of the engines 135 are configured to create a file. This determination can be made by querying a database, such as database 500 , In step 915 shows the application 130 provides the user with a list of formats associated with one or more of the engines configured to create a file. In step 920 receives the application 130 the user selects a format from the displayed list. In decision block 925 determines the application 130 Whether multiple engines are configured to create documents in the selected format. The application 130 can be a database 500 to determine if one or more engines are configured to create files in the selected format and associated with the application. If only one engine is configured to create documents in the selected format, the method goes to step 935 where this one engine is selected. If multiple engines are configured to create documents in the selected format, the procedure goes to step 930 away, where the application 130 Displays to the user a list of engines associated with the selected format. In step 940 receives the application 130 a selection of an engine 135a from the displayed list of engines. In step 945 starts the application 130 the selected engine 135a , In step 950 generates the started engine 135a a document in the selected format and renders the document for display to the user via the display 110 , In step 955 receives the started engine 135a User edits to the rendered document. These edits can be made in accordance with the steps of the procedure 800 be received. In step 960 saves the started engine 135a the document in a file 125a in accordance with the selected format. In some implementations, the method may 900 be simplified. In these implementations, the application can 130 the user in step 915 View a list of Engines, in step 920 Received a selection of an engine and go directly to step 945 continue where the application 130 the selected engine opens. In some implementations, the engine may 135a open or copy an empty template file instead of creating a new instance of a file.

10 zeigt ein Client/Server-System 1000, das einen Cloud-Rechenservice 1002 und mehrere Client-Computer 1004a bis 1004d beinhaltet. Der Cloud-Rechenservice 1002 kann einen oder mehrere Server beinhalten, die zusammen Cloud-Rechenservices für mehrere Client-Computer bereitstellen. Der Cloud-Rechenservice 1002 speichert mehrere Dateien, auf die Client-Computer 1004a1004d zugreifen können, einschließlich einer exemplarischen Tabellenkalkulation 1006, die gemeinsam bearbeitet werden kann. Benutzer können die im Cloud-Rechenservice 1002 gespeicherten Daten erstellen, bearbeiten, kopieren, teilen und löschen. Beispielsweise können die Client-Computer 1004a1004d unter Verwendung eines Web-Browsers gleichzeitig auf die Tabellenkalkulation 1006 auf dem Cloud-Rechenservice 1002 zugreifen. Der Cloud-Rechenservice 1002 stellt jedem Client-Computer eine lokale Kopie der Tabellenkalkulation 1006 zur Verfügung, die die Benutzer auf den Client-Computern anzeigen und bearbeiten können. Bearbeitungen, auch als Mutationen bezeichnet, die von Client-Computer 1004a durchgeführt werden, werden automatisch an den Cloud-Rechenservice 1002 gesendet und an die anderen Client-Computer 1004b1004d übertragen. Demnach werden Änderungen durch einen Mitarbeiter unmittelbar von anderen Mitarbeitern gesehen. 10 shows a client / server system 1000 that has a cloud computing service 1002 and several client computers 1004a to 1004d includes. The cloud computing service 1002 may include one or more servers that together provide cloud computing services to multiple client computers. The cloud computing service 1002 stores multiple files on the client computer 1004a - 1004d including a sample spreadsheet 1006 that can be edited together. Users can use the cloud computing service 1002 create, edit, copy, share and delete stored data. For example, the client computers 1004a - 1004d using a web browser at the same time on the spreadsheet 1006 on the cloud computing service 1002 access. The cloud computing service 1002 makes each client computer a local copy of the spreadsheet 1006 that users can view and edit on the client computers. Edits, also referred to as mutations, by client computers 1004a are performed automatically to the cloud computing service 1002 sent and sent to the other client computer 1004b - 1004d transfer. Thus, changes by an employee are seen directly by other employees.

Bei den Client-Computern 1004a1004d kann es sich um Desktop-Computer, Laptops, Tablets, Smartphones, mobile elektronische Geräte oder beliebige andere Geräte handeln, die über ein externes Netzwerk mit dem Cloud-Rechenservice 1002 verbunden werden können. Das System 1000 kann viele Client-Computer beinhalten, die mit dem Cloud-Rechenservice 1002 verbunden sind. Der Cloud-Rechenservice 1002 und die Client-Computer 1004a1004d von System 1000 sind über ein externes Netzwerk verbunden, wie beispielsweise das Internet. Die Netzwerkverbindung kann über ein LAN, WAN, Ethernet, Glasfasernetzwerk, Funknetzwerk, Funktelefonnetzwerk, interaktives TV-Netzwerk, Telefonnetzwerk, drahtloses Datenübertragungssystem, Zwei-Wege-Kabelsystem, spezielle private oder öffentliche Computer-Netzwerk, interaktives Kiosk-Netzwerk, einen direkten Link, ein Satelliten-Netzwerk und/oder eine beliebige andere drahtgebundene oder drahtlose Verbindung vereinfacht werden. At the client computers 1004a - 1004d These can be desktop computers, laptops, tablets, smartphones, mobile electronic devices, or any other device that uses an external network with the cloud computing service 1002 can be connected. The system 1000 Can include many client computers that use the cloud computing service 1002 are connected. The cloud computing service 1002 and the client computer 1004a - 1004d from system 1000 are connected via an external network, such as the Internet. The network connection can be over a LAN, WAN, Ethernet, fiber optic network, wireless network, cellular telephone network, interactive TV network, telephone network, wireless data transmission system, two-way cable system, special private or public computer network, interactive kiosk network, a direct link, a satellite network and / or any other wired or wireless connection.

11 ist ein Blockdiagramm eines Rechengeräts, wie jede der Komponenten der Systeme der 110 für die Durchführung einer der in diesem Dokument beschriebenen Prozesse. Jede der Komponenten dieser Systeme kann in einem oder mehreren Rechengeräten 1100 implementiert werden. In bestimmten Situationen können mehrere der Komponenten dieser Systeme in ein Rechengerät 1100 aufgenommen werden. In bestimmten Implementierungen können eine Komponente und ein Speichergerät über mehrere Rechengeräte 1100 implementiert werden. 11 is a block diagram of a computing device, such as each of the components of the systems 1 - 10 to carry out any of the processes described in this document. Each of the components of these systems may be in one or more computing devices 1100 be implemented. In certain situations, several of the components of these systems can be used in a computing device 1100 be recorded. In certain implementations, a component and a storage device may have multiple computing devices 1100 be implemented.

Das Rechengerät 1100 enthält mindestens eine Kommunikationsschnittstelleneinheit, einen Eingabe/Ausgabe-Controller 1110, Systemspeicher und ein oder mehrere Datenspeichergeräte. Der Systemspeicher beinhaltet mindestens einen Speicher mit wahlfreiem Zugriff (RAM 1102) und mindestens einen schreibgeschützten Speicher (ROM 1104). Alle diese Elemente kommunizieren mit der zentralen Verarbeitungseinheit (CPU 1106), um den Betrieb des Rechengeräts 1100 zu vereinfachen. Das Rechengerät 1100 kann auf viele verschiedene Arten konfiguriert werden. So kann es sich beispielsweise bei dem Rechengerät 1100 um einen konventionellen eigenständigen Computer handeln, oder alternativ können die Funktionen des Rechengeräts 1100 über mehrere Computersysteme und Architekturen verteilt sein. Alternativ kann ein Computersystem kann virtualisiert werden, um die Funktionen mehrere Rechengeräte 1100 bereitzustellen. In 11, das Rechengerät 1100 ist über das Netzwerk oder das lokale Netzwerk mit anderen Servern oder Systemen verbunden. The computing device 1100 includes at least one communication interface unit, an input / output controller 1110 , System memory and one or more data storage devices. The system memory includes at least one random access memory (RAM 1102 ) and at least one read-only memory (ROM 1104 ). All these elements communicate with the central processing unit (CPU 1106 ) to the operation of the computing device 1100 to simplify. The computing device 1100 can be configured in many different ways. This may be the case with the computing device, for example 1100 to handle a conventional stand-alone computer, or alternatively, the functions of the computing device 1100 distributed across multiple computer systems and architectures. Alternatively, a computer system can be virtualized to feature multiple computing devices 1100 provide. In 11 , the computing device 1100 is connected to other servers or systems via the network or local network.

Das Rechengerät 1100 kann in einer verteilten Architektur konfiguriert werden, worin Datenbanken und Prozessoren auf separate Einheiten oder Standorte verteilt sein können. Manche Einheiten führen primäre Verarbeitungsfunktionen aus und enthalten mindestens ein allgemeines Steuergerät oder einen Prozessor und einen Systemspeicher. In Implementierungen mit verteilter Architektur kann jede dieser Einheiten über die Kommunikationsschnittstelleneinheit 1108 mit einem Kommunikations-Hub oder -Port (nicht gezeigt) angeschlossen werden kann, die als primäre Kommunikationsverbindung zu anderen Servern, Client- oder Benutzercomputern oder anderen zugehörigen Geräten dient. Der Kommunikationsknotenpunkt oder -port kann selbst über eine minimale Verarbeitungskapazität verfügen und dient primär als Kommunikationsrouter. Eine Reihe von Kommunikationsprotokollen können ein Teil des Systems darstellen, einschließlich, jedoch nicht ausschließlich: Ethernet, SAP, SASTM, ATP, BLUETOOTHTM, GSM und TCP/IP. The computing device 1100 can be configured in a distributed architecture where databases and processors can be distributed to separate units or locations. Some units perform primary processing functions and contain at least one common controller or processor and system memory. In distributed architecture implementations, each of these units can communicate over the communication interface unit 1108 can be connected to a communication hub or port (not shown) that serves as the primary communication link to other servers, client or user computers, or other associated devices. The communication hub or port may itself have minimal processing capacity and serves primarily as a communications router. A number of communication protocols may form part of the system, including, but not limited to, Ethernet, SAP, SAS , ATP, BLUETOOTH , GSM and TCP / IP.

Die CPU 1106 beinhaltet einen Prozessor, wie beispielsweise einen oder mehrere konventionelle Mikroprozessoren und einen oder mehrere ergänzende Co-Prozessoren, wie beispielsweise mathematische Co-Prozessoren für die Entlastung der CPU 1106. Die CPU 1106 kommuniziert mit der Kommunikationsschnittstelleneinheit 1108 und dem Eingabe/Ausgabe-Controller 1110, über den die CPU 1106 mit anderen Geräten kommuniziert, wie beispielsweise anderen Servern, Benutzerendgeräten oder Geräten. Die Kommunikationsschnittstelleneinheit 1108 und der Eingabe/Ausgabe-Controller 1110 können mehrere Kommunikationskanäle für die gleichzeitige Kommunikation mit beispielsweise anderen Prozessoren, Servern oder Client-Endgeräten beinhalten. The CPU 1106 includes a processor, such as one or more conventional microprocessors, and one or more ancillary co-processors, such as mathematical co-processors for relieving the CPU 1106 , The CPU 1106 communicates with the communication interface unit 1108 and the input / output controller 1110 about which the CPU 1106 communicates with other devices, such as other servers, user terminals, or devices. The communication interface unit 1108 and the input / output controller 1110 may include multiple communication channels for simultaneous communication with, for example, other processors, servers, or client terminals.

Die CPU 1106 kommuniziert auch mit dem Datenspeichergerät. Das Datenspeichergerät kann eine geeignete Kombination aus Magnet-, optischem oder Halbleiterspeicher enthalten, und beispielsweise RAM 1102, ROM 1104, Flash-Laufwerk, einen optischen Datenträger, wie beispielsweise eine Compact-Disk oder eine Festplatte oder ein Laufwerk. Die CPU 1106 und das Datenspeichergerät können jeweils beispielsweise vollständig in einem einzigen Computer oder anderem Rechengerät enthalten sein, oder sie können über ein Kommunikationsmedium miteinander verbunden sein, wie beispielsweise einen USB-Anschluss, ein serielles Anschlusskabel, ein Koaxialkabel, ein Ethernet-Kabel, eine Telefonleitung, einen Funkfrequenz-Transceiver oder ein ähnliches drahtloses oder drahtgebundenes Medium oder eine Kombination der oben genannten. Beispielsweise kann die CPU 1106 über die Kommunikationsschnittstelleneinheit 1108 mit dem Datenspeichergerät verbunden werden. Die CPU 1106 kann so konfiguriert werden, dass sie eine oder mehrere spezielle Verarbeitungsfunktionen ausführt. The CPU 1106 also communicates with the data storage device. The data storage device may include a suitable combination of magnetic, optical or semiconductor memory, and for example RAM 1102 , ROME 1104 , Flash drive, an optical disk, such as a compact disk or a hard disk or a drive. The CPU 1106 and the data storage device may each be completely contained in a single computer or other computing device, for example, or may be interconnected via a communication medium such as a USB port, a serial port cable, a coaxial cable, an Ethernet cable, a telephone line, a Radio frequency transceiver or similar wireless or wired medium or a combination of the above. For example, the CPU 1106 via the communication interface unit 1108 be connected to the data storage device. The CPU 1106 can be configured to perform one or more special processing functions.

Das Datenspeichergerät kann beispielsweise speichern (i) ein Betriebssystem 1112 für das Rechengerät 1100; (ii) eine oder mehrere Applikationen 1114 (z. B. Computerprogrammcode oder ein Produkt eines Computerprogramms), so angepasst, dass die CPU 1106 in Übereinstimmung mit den hier beschriebenen Systemen und Verfahren gesteuert werden kann, und insbesondere in Übereinstimmung mit den im Hinblick auf die CPU 1106 detailliert beschriebenen Prozessen; oder (iii) Datenbank(en) 1116, die so angepasst sind, dass sie Informationen speichern, die verwendet werden können, um vom Programm benötigte Informationen zu speichern. The data storage device may, for example, store (i) an operating system 1112 for the computing device 1100 ; (ii) one or more applications 1114 (eg computer program code or a product of a computer program), adapted to the CPU 1106 can be controlled in accordance with the systems and methods described herein, and in particular in accordance with those with regard to the CPU 1106 detailed processes; or (iii) database (s) 1116 , which are adapted to store information that can be used to store information needed by the program.

Das Betriebssystem 1112 und Applikationen 1114 können beispielsweise in einem komprimierten, einem unkompilierten und in einem verschlüsselten Format gespeichert werden und können Computerprogrammcode enthalten. Die Befehle des Programms können von einem computerlesbaren Medium außer dem Datenspeichergerät, wie beispielsweise vom ROM 1104 oder vom RAM 1102, in einen Hauptspeicher des Prozessors eingelesen werden. Während der Ausführung von Befehlsabfolgen im Programm die CPU 1106 veranlasst, die hier beschriebenen Prozessschritte auszuführen, können fest verdrahtete Schaltungen anstelle oder in Kombination mit Softwarebefehlen für die Implementierungen der Prozesse der vorliegenden Erfindung verwendet werden. Daher sind die hier beschriebenen Systeme und Methoden nicht auf eine spezifische Kombination aus Hardware und Software beschränkt. The operating system 1112 and applications 1114 For example, they may be stored in a compressed, an uncompiled, and an encrypted format and may contain computer program code. The instructions of the program may be from a computer-readable medium other than the data storage device, such as the ROM 1104 or from the RAM 1102 , are read into a main memory of the processor. While executing command sequences in the program, the CPU 1106 to perform the process steps described herein, hardwired circuits may be used in place of or in combination with software instructions for the implementations of the processes of the present invention. Therefore, the systems and methods described herein are not limited to a specific combination of hardware and software.

Geeigneter Computerprogrammcode kann für die Ausführung einer oder mehrerer Funktionen im Hinblick auf die in diesem Dokument beschriebenen Prozesse bereitgestellt werden. Das Programm kann auch Programmelemente enthalten, wie beispielsweise ein Betriebssystem 1112, ein Datenbankmanagementsystem und „Gerätetreiber“, die dem Prozessor gestatten, über den Eingabe/Ausgabe-Controller 1110 mit Peripheriegeräten des Computers zusammenzuarbeiten (z. B. einer Grafikanzeige, einer Tastatur, einer Maus usw.). Suitable computer program code may be provided for the performance of one or more functions with respect to the processes described in this document. The program may also contain program elements, such as an operating system 1112 , a database management system, and "device drivers" that allow the processor through the input / output controller 1110 to work with computer peripheral devices (such as a graphic display, keyboard, mouse, etc.).

Der Begriff „computerlesbares Medium“, wie in diesem Dokument verwendet, bezieht sich auf alle nicht flüchtigen Medien, die Anweisungen für den Prozessor des Rechengeräts 1100 (oder einen anderen Prozessor eines in diesem Dokument beschriebenen Geräts) zur Ausführung bereitstellen oder an dieser Bereitstellung beteiligt sind. Dieses Medium kann viele Formen annehmen, einschließlich unter anderem nichtflüchtige und flüchtige Medien. Nichtflüchtige Medien umfassen zum Beispiel optische, magnetische oder optomagnetische Datenträger oder integrierte Speicherschaltung, wie zum Beispiel Flash-Speicher. Zu den flüchtigen Medien gehören dynamisches RAM (DRAM), welches gewöhnlich als Hauptspeicher dient. Gebräuchliche Formen von computerlesbaren Medien beinhalten beispielsweise Disketten, Floppy-Disks, Festplatten, Magnetband, jedes andere magnetische Medium, CD-ROMs, DVDs oder jedes andere optische Medium, Lochkarten, Papierband und andere physische Medien mit Lochmustern, RAM, PROM, EPROM oder EEPROM („Electronically Erasable Programmable Read-Only Memory“), FLASH-EEPROM oder einen anderen Speicherchip oder Kassetten, oder ein beliebiges anderes nicht flüchtiges Medium, von dem ein Computer lesen kann. The term "computer-readable medium" as used in this document refers to all non-volatile media containing instructions for the processor of the computing device 1100 (or another processor of a device described in this document) for execution or involved in this deployment. This medium can take many forms, including nonvolatile and volatile media, among others. Non-volatile media include, for example, optical, magnetic or opto-magnetic media or integrated memory circuitry, such as flash memory. The volatile media include dynamic RAM (DRAM), which usually serves as main memory. Common forms of computer-readable media include, for example, floppy disks, floppy disks, hard disks, magnetic tape, any other magnetic media, CD-ROMs, DVDs or any other optical media, punched cards, paper tape and other physical media with hole patterns, RAM, PROM, EPROM or EEPROM ("Electronically Erasable Programmable Read Only Memory"), FLASH EEPROM or other memory chip or cassettes, or any other non-volatile medium that a computer can read from.

Verschiedene Formen computerlesbarer Medien können daran beteiligt sein, ein oder mehrere Sequenzen mit einer oder mehreren Anweisungen für die CPU 1106 (oder einen anderen Prozessor eines in diesem Dokument beschriebenen Geräts) zur Ausführung zu enthalten. So können die Anweisungen zum Beispiel zunächst auf einer magnetischen Disk eines Ferncomputers getragen werden (ohne Abbildung). Der Ferncomputer kann diese Anweisungen in seinen dynamischen Speicher laden und die Anweisungen anschließend über eine Ethernet-Verbindung, ein Kabel oder sogar über eine Telefonleitung mit Modem senden. Ein lokales Kommunikationsgerät für ein Rechengerät 1100 (z. B. ein Server) kann die Daten auf der zugehörigen Kommunikationsleitung empfangen und die Daten für den Prozessor auf einen Systembus stellen. Der Systembus transportiert die Daten dann an den Hauptspeicher, von dem der Prozessor die Anweisungen anschließend abruft und ausführt. Die vom Hauptspeicher empfangenen Anweisungen können optional entweder vor oder nach der Ausführung durch den Prozessor gespeichert werden. Darüber hinaus können Anweisungen über einen Kommmunikationsport als elektrische, elektromagnetische oder optische Signale empfangen werden; dies sind Beispiele der drahtlosen Kommunikation oder Datenstreams, die diverse unterschiedliche Arten von Informationen übertragen. Various forms of computer-readable media may be involved in one or more sequences having one or more instructions for the CPU 1106 (or any other processor of a device described in this document) for execution. For example, the instructions may first be carried on a magnetic disk of a remote computer (not shown). The remote computer can load these instructions into its dynamic memory and then send the instructions over an Ethernet connection, a cable, or even over a telephone line with a modem. A local communication device for a computing device 1100 (eg, a server) may receive the data on the associated communication line and place the data for the processor on a system bus. The system bus then transports the data to main memory, from which the processor subsequently retrieves and executes the instructions. The instructions received from main memory may optionally be stored either before or after execution by the processor. In addition, instructions may be received over a communication port as electrical, electromagnetic or optical signals; these are examples of wireless communication or data streams that carry a variety of different types of information.

Es ist offensichtlich, dass Aspekte der in diesem Dokument beschriebenen Systeme und Verfahren in vielen verschiedenen Formen von Software, Firmware und Hardware in den in den Zeichnungen dargestellten Implementierungen implementiert werden können. Der tatsächliche Software-Code oder die tatsächliche spezialisierte Steuerungs-Hardware zur Implementierung von Aspekten in Übereinstimmung mit den hier beschriebenen Prinzipien der System und Verfahren ist nicht beschränkend. Der Betrieb und das Verhalten der Aspekte der Systeme und Verfahren wurden demnach ohne Bezugnahme auf den speziellen Software-Code beschrieben – es versteht sich, dass ein Durchschnittsfachmann in der Lage sein würde, Software zu entwerfen und Hardware zu kontrollieren, um die Aspekte auf der Grundlage der hiesigen Beschreibungen zu implementieren.  It will be understood that aspects of the systems and methods described herein may be implemented in many different forms of software, firmware and hardware in the implementations depicted in the drawings. The actual software code or actual specialized control hardware for implementing aspects in accordance with the principles of the systems and methods described herein is not limiting. Thus, the operation and behavior of the aspects of the systems and methods have been described without reference to the specific software code - it should be understood that one of ordinary skill in the art would be able to design software and control hardware based on the aspects to implement the descriptions here.

Analog gilt, dass die Operationen auf den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt sind, dies jedoch nicht so verstanden werden sollte, dass solche Operationen in der speziellen gezeigten Reihenfolge oder in einer sequentiellen Reihenfolge ausgeführt werden müssen, oder dass alle gezeigten Operationen ausgeführt werden müssen, um die gewünschten Ergebnisse zu erhalten. Unter bestimmten Umständen können Multitasking und eine Parallelbearbeitung vorteilhaft sein. Similarly, while the operations on the drawings are presented in a particular order, it should not be construed that such operations must be performed in the particular order shown or in a sequential order, or that all operations shown must be performed to get the desired results. Under certain circumstances, multitasking and parallel processing can be beneficial.

Claims (12)

System für die Bearbeitung von Dokumenten in einem nativen Format, mit einem Prozessor, für Folgendes konfiguriert: das Empfangen, während des Ausführens einer ersten Applikation, einer Anforderung von einem Benutzer zum Öffnen einer Datei, die mit einer zweiten Applikation in einem ersten Format erstellt wurde; das Ermitteln des ersten Formats der Datei; das Auswählen einer Engine aus der Vielzahl von Engines, die der ersten Applikation zugeordnet sind, worin die ausgewählte Engine so konfiguriert ist, dass sie das erste Format bearbeitet; das Öffnen der Datei unter Verwendung der ausgewählten Engine in der ersten Applikation, ohne das Format der Datei in ein zweites, der ersten Applikation zugeordnetes Format umzuwandeln; das Rendern, unter Verwendung der in der ersten Applikation ausgewählten Engine, des Inhalts der Datei für die Anzeige auf einem Benutzergerät für den Benutzer; das Verarbeiten, unter Verwendung der in der ersten Applikation ausgewählten Engine, einer Bearbeitung der Datei im ersten Format; und das Speichern, in einer Datenbank, der bearbeiteten Datei unter Verwendung der ersten Applikation im ersten Format. A system for processing documents in a native format, with a processor, configured for: receiving, while executing a first application, a request from a user to open a file created with a second application in a first format ; determining the first format of the file; selecting an engine of the plurality of engines associated with the first application, wherein the selected engine is configured to process the first format; opening the file using the selected engine in the first application without converting the format of the file into a second format associated with the first application; rendering, using the engine selected in the first application, the content of the file for display on a user device to the user; processing, using the engine selected in the first application, processing of the file in the first format; and saving, in a database, the edited file using the first application in the first format. System nach Anspruch 1, worin der Prozessor weiterhin dafür konfiguriert ist, dem Benutzer eine Benutzeroberfläche anzuzeigen, die Tools für die Bearbeitung von Merkmalen der ausgewählten Engine enthält.  The system of claim 1, wherein the processor is further configured to display to the user a user interface containing tools for editing features of the selected engine. System nach Anspruch 1, worin der Prozessor weiterhin für Folgendes konfiguriert ist: das Feststellen, ob die ausgewählte Engine so konfiguriert ist, dass sie ein Merkmal der Datei bearbeitet; das Rendern, unter Verwendung der in der ersten Applikation ausgewählten Engine, des Merkmals für die Anzeige auf einem Benutzergerät für den Benutzer; das Verarbeiten, unter Verwendung der in der ersten Applikation ausgewählten Engine, einer Bearbeitung des gerenderten Merkmals im ersten Format; und das Speichern, in einer Datenbank, des bearbeiteten Merkmals unter Verwendung der ersten Applikation im ersten Format in der Datei.  The system of claim 1, wherein the processor is further configured to: determining if the selected engine is configured to handle a feature of the file; rendering, using the engine selected in the first application, the feature for display on a user device to the user; processing, using the engine selected in the first application, a processing of the rendered feature in the first format; and saving, in a database, the edited feature using the first application in the first format in the file. System nach Anspruch 1, worin der Prozessor weiterhin für Folgendes konfiguriert ist: das Feststellen, ob die ausgewählte Engine nicht so konfiguriert ist, dass sie ein Merkmal der Datei bearbeitet; das Rendern, unter Verwendung der in der ersten Applikation ausgewählten Engine, des Inhalts der Datei für die Anzeige auf einem Benutzergerät für den Benutzer; das Verhindern der Änderung des ersten Merkmals durch den Benutzer; das Feststellen, ob die ausgewählte Engine so konfiguriert ist, dass sie ein zweites Merkmal der Datei bearbeitet; das Rendern, unter Verwendung der in der ersten Applikation ausgewählten Engine, des zweiten Merkmals für die Anzeige auf einem Benutzergerät für den Benutzer; das Verarbeiten, unter Verwendung der in der ersten Applikation ausgewählten Engine, einer Bearbeitung des zweiten Merkmals im ersten Format; und das Speichern, in der Datenbank, des bearbeiteten zweiten Merkmals unter Verwendung der ersten Applikation im ersten Format in der Datei.  The system of claim 1, wherein the processor is further configured to: determining if the selected engine is not configured to handle a feature of the file; rendering, using the engine selected in the first application, the content of the file for display on a user device to the user; preventing the user from changing the first feature; determining if the selected engine is configured to process a second feature of the file; rendering, using the engine selected in the first application, the second feature for display on a user device to the user; processing, using the engine selected in the first application, a processing of the second feature in the first format; and saving, in the database, the edited second feature using the first application in the first format in the file. System nach Anspruch 4, worin der Prozessor weiterhin für Folgendes konfiguriert ist: das Platzieren der Daten, unter Verwendung der ausgewählten Engine, entsprechend dem ersten Feature in einem Knoten eines Dokumentenobjektmodells; das Zuweisen, dem Knoten, der Eigenschaft, dass die ausgewählte Engine nicht für die Bearbeitung des ersten Merkmals konfiguriert ist; und das Speichern, in der Datenbank, der platzierten Daten in der Datei unter Verwendung der ersten Applikation im ersten Format.  The system of claim 4, wherein the processor is further configured to: placing the data, using the selected engine, according to the first feature in a node of a document object model; assigning, the node, the property that the selected engine is not configured to handle the first feature; and saving, in the database, the placed data in the file using the first application in the first format. System nach Anspruch 1, worin der Prozessor weiterhin für Folgendes konfiguriert ist: das Feststellen, ob die ausgewählte Engine nicht so konfiguriert ist, dass sie ein Merkmal der Datei rendert; das Platzieren von Daten, die dem Merkmal entsprechen, in einem Knoten eines Dokumentenobjektmodells; und das Zuweisen, dem Knoten, der Eigenschaft, dass die ausgewählte Engine nicht für das Rendern des ersten Merkmals konfiguriert ist; das Speichern, in der Datenbank, der platzierten Daten in der Datei unter Verwendung der ersten Applikation im ersten Format.  The system of claim 1, wherein the processor is further configured to: determining if the selected engine is not configured to render a feature of the file; placing data corresponding to the feature in a node of a document object model; and assigning, the node, the property that the selected engine is not configured to render the first feature; saving, in the database, the placed data in the file using the first application in the first format. System nach Anspruch 1, worin die Datei auf einem vom Benutzer entfernten Server gespeichert wird.  The system of claim 1, wherein the file is stored on a server remote from the user. System nach Anspruch 1, worin der Prozessor weiterhin für Folgendes konfiguriert ist: das Finden des ersten Formats in einer Datenbank; das Feststellen, ob eine Engine dem ersten Format zugeordnet ist; und das Auswählen der zugeordneten Engine;  The system of claim 1, wherein the processor is further configured to: finding the first format in a database; determining if an engine is associated with the first format; and selecting the associated engine; System nach Anspruch 1, worin der Prozessor weiterhin für Folgendes konfiguriert ist: das Lesen eines Teils der Datei; das Extrahieren eines Dateityps aus dem gelesenen Teil; und das Bestimmen des ersten Formats der Datei basierend auf dem extrahierten Dateityp.  The system of claim 1, wherein the processor is further configured to: reading a part of the file; extracting a file type from the read part; and determining the first format of the file based on the extracted file type. System nach Anspruch 8, worin der Prozessor weiterhin für Folgendes konfiguriert ist: das Feststellen, dass mehrere Engines dem Dateiformat zugeordnet sind; das Anzeigen einer Vielzahl von Namen für den Benutzer, wobei jeder Name einer der Vielzahl von Engines entspricht; das Empfangen, vom Benutzer, eines ausgewählten Namens von der Vielzahl von Namen; und das Auswählen der Engine, die dem ausgewählten Namen zugewiesen ist.  The system of claim 8, wherein the processor is further configured to: determining that multiple engines are associated with the file format; displaying a plurality of names to the user, each name corresponding to one of the plurality of engines; receiving, from the user, a selected name from the plurality of names; and selecting the engine assigned to the selected name. System nach Anspruch 1, worin der Prozessor weiterhin dafür konfiguriert ist, die Datei in einem dritten Format zu speichern.  The system of claim 1, wherein the processor is further configured to store the file in a third format. System zum Erstellen von Dokumenten in einem Format, mit einem Prozessor, für Folgendes konfiguriert: das Empfangen, an einem Prozessor, der eine Applikation ausführt, einer Anforderung von einem Benutzer, eine Datei zu erstellen; das Feststellen, ob eine oder mehrere Engines, die der Applikation zugeordnet sind, für das Erstellen einer Datei konfiguriert sind; das Anzeigen, dem Benutzer, einer Liste von Formaten, die dem einen oder den mehreren Engines zugeordnet sind; das Empfangen, vom Benutzer, einer Auswahl eines Formats aus der angezeigten Liste; das Erstellen eines Dokument, unter Verwendung einer der Applikation zugeordneten Engine, die dem ausgewählten Format zugeordnet ist; und das Speichern, in einer Datenbank, des erstellten Dokuments unter Verwendung der ersten Applikation im ausgewählten Format. A system for creating documents in a format, with a processor, configured for: receiving, at a processor executing an application, a request from a user to create a file; determining if one or more engines associated with the application are configured to create a file; displaying, the user, a list of formats associated with the one or more engines; receiving, by the user, a selection of a format from the displayed list; creating a document using an engine associated with the application associated with the selected format; and storing, in a database, the created document using the first application in the selected format.
DE202015009309.4U 2014-11-24 2015-11-20 Systems for processing a file in a non-native application using an application engine Active DE202015009309U1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/552,384 2014-11-24
US14/552,384 US9639511B2 (en) 2014-11-24 2014-11-24 Systems and methods for editing a file in a non-native application using an application engine

Publications (1)

Publication Number Publication Date
DE202015009309U1 true DE202015009309U1 (en) 2017-01-30

Family

ID=54979919

Family Applications (2)

Application Number Title Priority Date Filing Date
DE202015009309.4U Active DE202015009309U1 (en) 2014-11-24 2015-11-20 Systems for processing a file in a non-native application using an application engine
DE112015002695.9T Pending DE112015002695T5 (en) 2014-11-24 2015-11-20 Systems and methods for manipulating a file in a non-native application using an application engine

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE112015002695.9T Pending DE112015002695T5 (en) 2014-11-24 2015-11-20 Systems and methods for manipulating a file in a non-native application using an application engine

Country Status (4)

Country Link
US (1) US9639511B2 (en)
CN (1) CN106471487B (en)
DE (2) DE202015009309U1 (en)
WO (1) WO2016085822A1 (en)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11210455B2 (en) * 2014-06-11 2021-12-28 Red Hat, Inc. Shareable and cross-application non-destructive content processing pipelines
US11347762B2 (en) 2015-03-23 2022-05-31 Dropbox, Inc. Intelligent scrolling in shared folder back integrated workspaces
US10108688B2 (en) 2015-12-22 2018-10-23 Dropbox, Inc. Managing content across discrete systems
JP6432500B2 (en) * 2015-12-24 2018-12-05 ブラザー工業株式会社 Display device and printing device
CN106406889B (en) * 2016-09-22 2019-10-25 广州华克力信息科技有限公司 Heterogeneous applications system for content intelligent conversion engine suitable for mobile client
US9998551B1 (en) * 2016-10-24 2018-06-12 Palantir Technologies Inc. Automatic discovery and registration of service application for files introduced to a user interface
CN106776511A (en) * 2016-11-11 2017-05-31 郑州云海信息技术有限公司 One kind editor document storage method and device
US10719807B2 (en) 2016-12-29 2020-07-21 Dropbox, Inc. Managing projects using references
US10970656B2 (en) 2016-12-29 2021-04-06 Dropbox, Inc. Automatically suggesting project affiliations
US10402786B2 (en) 2016-12-30 2019-09-03 Dropbox, Inc. Managing projects in a content management system
US10747728B2 (en) 2017-08-10 2020-08-18 Microsoft Technology Licensing, Llc Edit and share unsupported files through instantly generated preview
CN107632905A (en) * 2017-09-05 2018-01-26 江苏神州信源系统工程有限公司 A kind of file anti-loss method and device for safe U disc
US11295060B2 (en) * 2017-12-12 2022-04-05 Google Llc Managing comments on binary files preview view in a cloud-based environment
US11226939B2 (en) 2017-12-29 2022-01-18 Dropbox, Inc. Synchronizing changes within a collaborative content management system
US10949272B2 (en) 2018-06-14 2021-03-16 Microsoft Technology Licensing, Llc Inter-application context seeding
US10754827B2 (en) 2018-11-06 2020-08-25 Dropbox, Inc. Technologies for integrating cloud content items across platforms
CN109726379B (en) * 2018-12-28 2023-01-10 腾讯科技(深圳)有限公司 Content item editing method and device, electronic equipment and storage medium
CN111414627A (en) * 2019-01-04 2020-07-14 珠海金山办公软件有限公司 File opening mode conversion method and device, electronic equipment and storage medium
US12001402B2 (en) * 2021-08-02 2024-06-04 Dell Products L.P. Dynamically selecting an application to open a file
WO2024102004A1 (en) * 2022-11-10 2024-05-16 Xero Limited Methods, systems and computer program products for synchronising data between multiple applications
DE102022213859A1 (en) 2022-12-19 2024-06-20 Robert Bosch Gesellschaft mit beschränkter Haftung Method for operating a fuel cell arrangement
CN117312434B (en) * 2023-10-08 2024-03-19 北京皓宽网络科技有限公司 Data exchange method and platform

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7322013B1 (en) * 2001-10-25 2008-01-22 Adobe Systems Incorporated Launch and edit user interface improvements
US7409405B1 (en) * 2002-12-06 2008-08-05 Adobe Systems Incorporated File dispatcher for multiple application targets
US20050187756A1 (en) 2004-02-25 2005-08-25 Nokia Corporation System and apparatus for handling presentation language messages
US7752600B2 (en) * 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US8214439B2 (en) * 2005-12-06 2012-07-03 Microsoft Corporation Document object model API for MIME
US7788290B2 (en) * 2007-03-27 2010-08-31 Microsoft Corporation Automatic file conversion to a target format
US8316358B2 (en) * 2007-05-31 2012-11-20 Research In Motion Limited Method and apparatus for processing XML for display on a mobile device
US9176754B2 (en) * 2008-07-16 2015-11-03 Google Inc. Method and system for executing applications using native code modules
US20110252312A1 (en) * 2010-04-12 2011-10-13 Google Inc. Real-Time Collaboration in a Hosted Word Processor
US20110258535A1 (en) 2010-04-20 2011-10-20 Scribd, Inc. Integrated document viewer with automatic sharing of reading-related activities across external social networks
CN102541939B (en) * 2010-12-30 2016-08-24 上海量明科技发展有限公司 A kind of document method for building up based on input method and system
US8892994B2 (en) 2011-03-18 2014-11-18 Google Inc. System, method, and architecture for displaying a document
CN102156709B (en) * 2011-02-28 2020-01-03 奇智软件(北京)有限公司 Method for switching browser engine modes
US20130111336A1 (en) * 2011-11-01 2013-05-02 Griffin Dorman Platform and application independent system and method for networked file access and editing
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US8751493B2 (en) * 2012-04-23 2014-06-10 Google Inc. Associating a file type with an application in a network storage service
US9489430B2 (en) 2013-05-14 2016-11-08 Google Inc. System and method for identifying applicable third-party applications to associate with a file

Also Published As

Publication number Publication date
CN106471487B (en) 2021-03-09
DE112015002695T5 (en) 2017-03-16
WO2016085822A1 (en) 2016-06-02
US9639511B2 (en) 2017-05-02
US20160147722A1 (en) 2016-05-26
CN106471487A (en) 2017-03-01

Similar Documents

Publication Publication Date Title
DE202015009309U1 (en) Systems for processing a file in a non-native application using an application engine
DE10135445B4 (en) Integrated procedure for creating an updatable network query
DE3853274T2 (en) Method and device for dividing data processing functions between several processors.
DE202015009293U1 (en) Efficient copy and paste into a collaborative spreadsheet
EP2691873B1 (en) Techniques to create structured document templates using enhanced content controls
DE202018107014U1 (en) Generate slide presentations using a collaborative multi-content application
DE3586273T2 (en) IMPLICIT GENERATION OF A SUPER BLOCK STRUCTURE IN A VARIO-DATA EDITOR.
DE112010004652B4 (en) Reliable high-throughput replication of transformed data in data systems
DE60001931T2 (en) METHOD AND SYSTEM FOR AUTOMATIC TRANSLATION OF CONFIGURATION SETTINGS BETWEEN COMPUTER SYSTEMS
DE68926745T2 (en) INTERMEDIATE STRUCTURE FOR A TABLE SHEET
DE60121430T2 (en) CHANGING THE HYPERMAL CONTENT OF A WEBSITE
DE202013012501U1 (en) Recognize relationships between edits and affect a subset of edits
DE202013012465U1 (en) End-to-end exposure of native data types to third-party applications
DE202011110867U1 (en) Rich-text and browser-based word processor
DE202011110894U1 (en) Server-based data sharing in computer applications
DE212017000257U1 (en) Systems for applying a layout to documents
DE10048940A1 (en) Production of document contents by transcoding with Java (RTM) server pages
DE112007001940T5 (en) Drawing interoperability between various computer-aided design applications
DE112010003948T5 (en) Evaluate GUI objects to check standards
US9875228B1 (en) Systems and methods for preserving conditional styles when copying and pasting between applications
US11334644B2 (en) Methods and systems for three-way merges of object representations
DE102013203831A1 (en) Method and system for master page based integrated editing and dynamic layout activation
DE112010004914T5 (en) Indexing documents
DE202013012665U1 (en) Method for implementing structured and unstructured data in XML documents
DE112007002327T5 (en) Persistent locks on concurrency control resources

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: MAIKOWSKI & NINNEMANN PATENTANWAELTE PARTNERSC, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0017220000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017220000

Ipc: G06F0040120000

R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years