-
HINTERGRUND
-
Die vorliegende Erfindung betrifft digitale Signaturen und insbesondere das Verwalten digitaler Signaturen in interaktiven Dokumenten.
-
Bei einem interaktiven Dokument wie zum Beispiel einem interaktiven Webdokument (IWD) handelt es sich um ein Dokument, das Daten und eine Logik zum Anzeigen der Daten für einen Benutzer aufweist. Zum Beispiel kann ein Formular Datenfelder aufweisen, die durch einen Benutzer mit Daten ausgefüllt werden. Herkömmliche Dokumente können das Formular anzeigen und das Eintragen von Daten durch den Benutzer ermöglichen. Das Dokument kann mit den durch den Benutzer eingegebenen Daten gespeichert werden. Ein interaktives Formular kann eine Logik derart aufweisen, dass die Logik beim Öffnen des Dokuments dem Benutzer Teile des Formulars nacheinander anzeigt. Die Logik kann einem Benutzer in Abhängigkeit von seinen Eingaben verschiedene Teile des Formulars anzeigen. Ein Benutzer kann Daten in das Formular eingeben, und die Daten können in dem Dokument gespeichert werden.
-
Herkömmliche Dokumente können einem Benutzer das Hinzufügen einer digitalen Signatur zu dem Formular ermöglichen. Die digitale Signatur ist für den Benutzer individuell und wird mit einem Verschlüsselungs- oder Hash-System verwendet, um zu verhindern, dass das unterzeichnete Dokument ohne Ungültigmachung der digitalen Signatur verändert wird.
-
KURZDARSTELLUNG
-
Gemäß einer Ausführungsform der vorliegenden Erfindung weist ein Verfahren das Öffnen eines modularen interaktiven Dokuments (MID) mit einem Prozessor, das Suchen nach einem Datenobjekt in dem modularen interaktiven Dokument zum Ermitteln eingetragener digitaler Signaturen, das Prüfen der ermittelten eingetragenen digitalen Signaturen, das Erzeugen einer Signaturdatentabelle (SIT), die Knoten des Datenobjekts Signaturdaten zuordnet, die eine Anzeige eines jedem Knoten zugehörigen Status der digitalen Signatur aufweisen, das Abrufen einer Seite des modularen interaktiven Dokuments, das Abrufen der Seite zugehöriger Daten und das Ermitteln von Knoten von Daten, die Benutzeroberflächenelementen der Seite zugehörig sind, das Abrufen des Status der digitalen Signatur, der den ermittelten Knoten von Daten zugehörig ist, die den Benutzeroberflächenelementen der Seite von der Signaturdatentabelle zugeordnet wurden, und das Anzeigen der Seite des modularen interaktiven Dokuments auf einem Bildschirm für den Benutzer, wobei die dargestellte Seite Daten, die den ermittelten Knoten entsprechen, und eine Anzeige des Status der digitalen Signatur aufweist, der den Daten zugeordnet wurde, die den ermittelten Knoten entsprechen.
-
Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung weist ein System einen Bildschirm und einen über eine Datenübertragungsverbindung mit dem Bildschirm verbundenen Prozessor auf, wobei der Prozessor dazu dient, ein modulares interaktives Dokument (MID) mit einem Prozessor zu öffnen, nach einem Datenobjekt in dem modularen interaktiven Dokument zum Ermitteln eingetragener digitaler Signaturen zu suchen, die ermittelten eingetragenen Signaturen zu prüfen, eine Signaturdatentabelle (SIT) zu erzeugen, die Knoten des Datenobjekts Signaturdaten zuordnet, die eine Anzeige eines jedem der Knoten zugehörigen Status der digitalen Signatur aufweisen, eine Seite des modularen interaktiven Dokuments abzurufen, der Seite zugehörige Daten abzurufen und Knoten von Daten zu ermitteln, die Benutzeroberflächenelementen der Seite zugehörig sind, den Status der digitalen Signatur abzurufen, der den ermittelten Knoten von Daten zugehörig ist, die den Benutzeroberflächenelementen der Seite von der Tabelle der Signaturdaten zugehörig sind, und dem Benutzer die Seite des modularen interaktiven Dokuments auf einem Bildschirm darzustellen, wobei die dargestellte Seite Daten, die den ermittelten Knoten entsprechen, und eine Anzeige des Status der digitalen Signatur aufweist, der den Daten zugeordnet wurde, die den ermittelten Knoten entsprechen.
-
Gemäß noch einer weiteren Ausführungsform der vorliegenden Erfindung veranlasst ein permanentes computerlesbares Speichermedium, das durch einen Computer ausführbare Anweisungen aufweist, wenn diese auf einem Prozessor eines Datenverarbeitungsvorrichtung ausgeführt werden, den Prozessor zum Durchführen eines Verfahrens zum Anzeigen von Daten für einen Benutzer, wobei das Verfahren aufweist: das Öffnen eines modularen interaktiven Dokuments (MID) mit einem Prozessor, das Suchen nach einem Datenobjekt in dem modularen interaktiven Dokument zum Ermitteln eingetragener digitaler Signaturen, das Prüfen der ermittelten eingetragenen digitalen Signaturen, das Erzeugen einer Tabelle mit Signaturdaten (SIT), die Knoten des Datenobjekts Signaturdaten zuordnet, die eine Anzeige eines jedem der Knoten zugehörigen Status der digitalen Signatur aufweisen, das Abrufen einer Seite des modularen interaktiven Dokuments, das Abrufen der Seite zugehöriger Daten und das Ermitteln von Knoten von Daten, die Benutzeroberflächenelementen der Seite zugehörig sind, das Abrufen des Status der digitalen Signatur, der den ermittelten Knoten von Daten zugehörig ist, die den Benutzeroberflächenelementen der Seite von der Tabelle der Signaturdaten zugehörig sind, und das Anzeigen der Seite des modularen interaktiven Dokuments auf einem Bildschirm für den Benutzer, wobei die angezeigte Seite Daten, die den ermittelten Knoten entsprechen, und eine Anzeige des Status der digitalen Signatur aufweist, der den Daten zugeordnet wurde, die den ermittelten Knoten entsprechen.
-
Weitere Merkmale und Vorteile werden durch die Techniken der vorliegenden Erfindung realisiert. Hierin werden weitere Ausführungsformen und Aspekte der Erfindung detailliert beschrieben und als Teil der beanspruchten Erfindung angesehen. Zum besseren Verständnis der Erfindung mit ihren Vorteilen und Merkmalen wird auf die Beschreibung und die Zeichnungen verwiesen.
-
Gemäß einem weiteren Aspekt betrifft die Erfindung ein permanentes computerlesbares Speichermedium, das ausführbare Anweisungen aufweist, die, wenn sie auf einem Prozessor einer Datenverarbeitungsvorrichtung ausgeführt werden, den Prozessor zum Durchführen eines Verfahrens zum Anzeigen von Daten für einen Benutzer veranlassen, wobei das Verfahren aufweist:
Öffnen eines modularen interaktiven Dokuments (MID) mit einem Prozessor;
Suchen nach einem Datenobjekt in dem modularen interaktiven Dokument zum Ermitteln eingetragener digitaler Signaturen;
Prüfen der ermittelten eingetragenen digitalen Signaturen;
Erzeugen einer Tabelle mit Signaturdaten (SIT), die Knoten des Datenobjekts Signaturdaten zuordnet, die eine Anzeige eines Status der digitalen Signatur aufweisen, der jedem der Knoten zugehörig ist;
Abrufen einer Seite des modularen interaktiven Dokuments;
Abrufen der Seite zugehöriger Daten und Ermitteln von Knoten von Daten, die Benutzeroberflächenelementen der Seite zugehörig sind;
Abrufen des Status der digitalen Signatur, der den ermittelten Knoten von Daten zugehörig ist, die den Benutzeroberflächenelementen der Seite von der Signaturdatentabelle zugehörig sind; und
Anzeigen der Seite des modularen interaktiven Dokuments auf einem Bildschirm für den Benutzer, wobei die angezeigte Seite Daten, die den ermittelten Knoten entsprechen, und eine Anzeige des Status der digitalen Signatur aufweist, der den Daten zugehörig ist, die den ermittelten Knoten entsprechen.
-
Gemäß einer weiteren Ausführungsform der Erfindung weist das Verfahren ferner auf:
Ermitteln, ob ein Knoten, der einem Benutzeroberflächenelement in der Seite zugehörig ist, als Reaktion auf das Anzeigen der Seite des modularen interaktiven Dokuments für den Benutzer gekennzeichnet wurde; und
Hindern des Benutzers am Bearbeiten der Daten des Knotens mit dem Benutzeroberflächenelement als Reaktion auf das Ermitteln, dass der dem Benutzeroberflächenelement zugehörige Knoten gekennzeichnet ist.
-
Gemäß einer weiteren Ausführungsform der Erfindung weist das Verfahren ferner auf:
Empfangen von Eingabedaten vom Benutzer von einem Benutzeroberflächenelement, das einem unsignierten Knoten zugehörig ist; und
Speichern der Eingabedaten in einem Datenobjekt des modularen interaktiven Dokuments.
-
Gemäß einer weiteren Ausführungsform weist die Erfindung ein permanentes computerlesbares Speichermedium auf, wobei das Prüfen der eingetragenen digitalen Signaturen aufweist:
Durchführen eines Prüftest für jede eingetragene digitale Signatur; und
Ausgeben einer Anzeige auf dem Bildschirm für den Benutzer, dass die eingetragenen digitalen Signaturen als Reaktion auf das Fehlschlagen mindestens eines Prüftest für mindestens eine eingetragene digitale Signatur nicht geprüft werden.
-
Gemäß einer weiteren Ausführungsform der Erfindung weist das Verfahren ferner auf:
Hinzufügen einer eingetragenen digitalen Signatur zu einem Datenobjekt des MID nach dem Anzeigen der Seite des MID für den Benutzer;
Aktualisieren der SIT durch eine Zuordnung von Signaturdaten zu einem Knoten des Datenobjekts, die eine Anzeige eines dem Knoten zugeordneten Status der digitalen Signatur aufweisen;
Abrufen des Status der digitalen Signatur von der Signaturdatentabelle, der den ermittelten Knoten von Daten zugehörig ist, die den Benutzeroberflächenelementen der Seite zugehörig sind; und
Anzeigen der Seite des modularen interaktiven Dokuments auf einem Bildschirm für den Benutzer, wobei die angezeigte Seite Daten, die den ermittelten Knoten entsprechen, und eine Anzeige des Status der digitalen Signatur aufweist, der den Daten zugehörig ist, die den ermittelten Knoten entsprechen.
-
Gemäß einer weiteren Ausführungsform der Erfindung weist das Verfahren ferner auf:
Entfernen einer eingetragenen digitalen Signatur aus einem Datenobjekt des MID;
Aktualisieren der SIT, um Einträge zu entfernen, die der entfernten eingetragenen digitalen Signatur zugehörig sind;
Abrufen des Status der digitalen Signatur von der Signaturdatentabelle, der den ermittelten Knoten von Daten zugehörig ist, die den Benutzeroberflächenelementen der Seite zugehörig sind; und
Anzeigen der Seite des modularen interaktiven Dokuments auf einem Bildschirm für den Benutzer, wobei die dargestellte Seite Daten, die den ermittelten Knoten entsprechen, und eine Anzeige des Status der digitalen Signatur aufweist, der den Daten zugehörig ist, die den ermittelten Knoten entsprechen.
-
Es ist klar, dass ein oder mehrere Ansprüche und/oder Ausführungsform miteinander kombiniert werden können, solange die miteinander kombinierten Elemente sich nicht gegenseitig ausschließen.
-
KURZBESCHREIBUNG DER VERSCHIEDENEN ZEICHNUNGSANSICHTEN
-
Das als Gegenstand der Erfindung angesehene Thema wird in den Ansprüchen am Ende der Beschreibung ausführlich dargelegt und ausdrücklich beansprucht. Das oben Gesagte sowie weitere Merkmale und Vorteile der Erfindung werden aus der folgenden detaillierten Beschreibung in Verbindung mit den beiliegenden Zeichnungen klar, wobei:
-
1 eine beispielhafte Ausführungsform eines Datenverarbeitungssystems veranschaulicht.
-
2 eine beispielhafte Ausführungsform eines monolithischen interaktiven Dokuments und eines entsprechenden modularen interaktiven Dokuments veranschaulicht.
-
3 ein Blockschaubild eines beispielhaften Verfahrens veranschaulicht, das durch das System von 1 ausgeführt werden kann.
-
4 eine beispielhafte Ausführungsform einer Signaturdatentabelle veranschaulicht.
-
5 eine beispielhafte Ausführungsform einer für einen Benutzer angezeigten Seite veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
1 veranschaulicht eine beispielhafte Ausführungsform eines Datenverarbeitungssystems (System) 100. Das System 100 weist einen Prozessor 102 auf, der Daten mit einer Anzeigeeinheit 104, Eingabeeinheiten 106 und einer Speichereinheit 108 austauschen kann. Der Prozessor 102 kann auch Daten über eine Datenübertragungsverbindung, die mit einem (nicht gezeigten) Datenübertragungsnetz verbunden sein kann, an andere Verarbeitungseinheiten senden und von ihnen empfangen.
-
2 veranschaulicht eine beispielhafte Ausführungsform eines monolithischen interaktiven Dokuments 201 und eines entsprechenden modularen interaktiven Dokuments (MID) 203 für ein formularähnliches Dokument. Das modulare interaktive Dokuments 203 weist wahlweise ein Element 202 vom MIME-Typ auf, null oder mehr (als W1-5 gekennzeichnete) Assistentenseiten 204, wahlweise (als F1-4 gekennzeichnete) Formularseiten 208, wahlweise Anhänge 210, ein oder mehrere (als D1-2 gekennzeichnete) Datenobjekte 212, null oder mehr (als M1-2 gekennzeichnete) Modellelemente 214, wahlweise ein Interaktionssteuerelement (IC) 216 und wahlweise ein Inhaltsverzeichnis 218. Das Element 202 vom MIME-Typ weist eine Kennung vom Dokumenttyp auf. Der Prozessor 102 (von 1) kann gegebenenfalls vom MIME-Typ Gebrauch machen, um bei der Ermittlung behilflich zu sein, ob es sich bei dem Dokument um ein modulares interaktives Dokument handelt, oder um zu entscheiden, wie das modulare interaktive Dokument auf der Grundlage von Parametern innerhalb des MIME-Typs verarbeitet werden soll. Die gegebenenfalls vorhandenen Assistentenseiten 204 sind Komponenten des modularen interaktiven Dokuments, die zum schrittweisen Darstellen von Informationen, Anweisungen, Daten und Dateneingabefeldern für einen Benutzer nacheinander auf der Benutzeroberfläche verwendet werden können. Die Bilder 206 können Bilddateien beispielsweise der Formate PNG, GIF oder JPEG aufweisen, die durch Seitenkomponenten 204 oder 208 angezeigt werden können. Die gegebenenfalls vorhandenen Formularseiten 208 sind Komponenten des modularen interaktiven Dokuments, die zum Darstellen von Informationen, Anweisungen, Daten und Dateneingabefeldern für einen Benutzer in Benutzeroberflächendarstellungen verwendet werden können, die normalerweise mit bedruckten Papierblättern in Verbindung gebracht werden, zum Beispiel mit einer Seite eines Spesenformulars. Die Formularseiten 204 können mit Dateneingabefeldern ausgestattet sein, um Daten zu erfassen, oder sie können einfach verwendet werden, um durch Assistentenseiten 204 erfasste Daten anzuzeigen oder zu drucken. Jedes Benutzeroberflächenelement innerhalb der Seitenkomponenten 204 oder 208 kann ein durch den Benutzer bearbeitbares Dateneingabefeld oder einfach nur einen Datenwert darstellen. Die Benutzeroberflächendefinition eines MID 203 weist üblicherweise Formularseiten 208 oder Assistentenseiten 203 oder beide auf. Die Anlagen 210 können beiliegende Dokumente wie beispielsweise gescannte Bilder von Quittungen oder anderen Formularen aufweisen. Die Datenobjekte 212 weisen Daten auf, die durch einen Benutzer eingegeben werden können, darunter komplexe Datentypen wie beispielsweise digitale Signaturen. Gemäß einer beispielhaften Ausführungsform wird ein Verweismechanismus verwendet, um eine Zuordnung zwischen Benutzeroberflächenelementen von Seitenkomponenten 204 und 208 und den Knoten von Daten herzustellen, die sie anzeigen oder bearbeitbar machen. Gemäß einer weiteren Ausführungsform handelt es sich bei Datenobjekten 212 nicht um gegliederte Komponenten des MID 203, sondern nur um einen Eingrenzungsmechanismus, der zum Herstellen einer Zuordnung zwischen jedem Benutzeroberflächenelement der Seitenkomponenten 204 und 208 und dem Knoten oder den Knoten von Daten verwendet wird, die sie anzeigt oder bearbeitbar machen. Wenn ein Benutzer mit einem MID 203 umgeht, werden die vom Benutzer erfassten Daten in den Datenobjekten 212 des MID 203 gespeichert. Die Modellelemente 214 weisen eine Verhaltenslogik wie beispielsweise Regeln, Berechnungen, Algorithmen oder andere Logiken auf, die nach der Eingabe von Daten oder Anweisungen von einem Benutzer ausgeführt werden können. Ein Beispiel für eine Berechnung stellt eine Formel dar, die den Gesamtbetrag einer Spesenabrechnung auf der Grundlage der durch einen Benutzer eingegebenen Spesenposten und Zahlenwerte ermittelt. Ein Beispiel für eine Regel stellt ein Limit dar, das einen Spesengesamtbetrag oder einen Spesenposten für ungültig erklärt, der einen bestimmten Wert überschreitet. Ein Beispiel für einen Algorithmus stellt eine Folge von Aktionen dar, die nach dem Empfangen der Ergebnisse eines Internetdienstes während der Benutzersitzung durchgeführt werden. Als Beispiel für eine andere Logik stellt das IC-Element 216 logische Anweisungen zum Organisieren der Darstellung der Assistentenseiten 204, der Formularseiten 208 und der Datenobjekte 212 für den Benutzer bereit.
-
Gemäß den oben beschriebenen Ausführungsformen wird das monolithische interaktive Dokument 201 geöffnet, bearbeitet und für den Benutzer als ein einziges Dokument dargestellt. Somit analysiert ein Prozessor üblicherweise den Inhalt aller oder der meisten Elemente in dem monolithischen interaktiven Dokument 201, wenn dieses geöffnet ist, und zeigt das Dokument dem Benutzer an. Das MID 203 bietet insofern Flexibilität, als auf die meisten Elemente des MID 203 unabhängig zugegriffen werden kann und diese dem Benutzer angezeigt werden können, ohne dass dem Benutzer unbedingt das gesamte Dokument angezeigt werden muss. Teile des MID 203 können unabhängig analysiert werden, sodass zu einem bestimmten Zeitpunkt nur ein Formular oder die Ressource einer Assistentenseite und die Datenkomponenten analysiert werden, auf die verwiesen wird. Gemäß einer beispielhaften Ausführungsform führt der Prozessor 102 Dokument-Prozessorfunktionen und Seitenaufbereitungsfunktionen aus. Die Dokument-Prozessorfunktionen wenden logische Anweisungen an, die in dem MID 203 zu finden sind, um Seiten zu bearbeiten, die einem Benutzer angezeigt werden. Die Seitenaufbereitungsfunktionen empfangen Anweisungen von den Dokument-Prozessorfunktionen, um einem Benutzer eine bestimmte Seite anzuzeigen. Die Seitenaufbereitungsfunktionen erzeugen einen Syntaxanalysebaum aus den Datenobjekten 212 und bearbeiten den Syntaxanalysebaum, um dem Benutzer eine oder mehrere Seiten anzuzeigen. Obwohl die veranschaulichte Ausführungsform einen einzigen Prozessor 102 aufweist, können verschiedene Prozessoren oder eine Kombination von Prozessoren eine oder jede dieser Funktionen ausführen. Zum Beispiel kann ein Host-Prozessor die Dokument-Prozessorfunktionen ausführen, zum Beispiel auf einer Servermaschine, und Anweisungen an die Seitenbearbeitungsfunktionen senden, die durch einen Client-Prozessor ausgeführt werden, zum Beispiel in einem JavaScript-fähigen Web-Browser. Der Host-Prozessor kann über ein Datenübertragungsnetz mit dem Client-Prozessor verbunden werden.
-
Digitale Signaturen können zum Schützen von Daten verwendet werden, die in ein Dokument eingegeben werden. Zum Beispiel kann einem Benutzer ein Formular für Spesenabrechnungen angezeigt werden. Der Benutzer kann Teile des Formulars ausfüllen und eine digitale Signatur dem Dokument hinzufügen, das einige oder alle Daten enthält. Das Verarbeiten der digitalen Signatur kann zum Beispiel das Anwenden eines Signaturfilters beinhalten, das anzeigt, welcher Teil des Dokumentinhalts unterzeichnet werden soll; das kann durch Kennzeichnen des gesamten Dokuments mit Ausnahme der Teile des Dokumentinhalts geschehen, die nach dem Hinzufügen der digitalen Signatur während des Geschäftsprozesses veränderlich bleiben. Somit kann die digitale Signatur einigen der Knoten in dem Dokument (signierter Inhalt) hinzugefügt werden, während andere Knoten unsigniert bleiben. Eine eingetragene digitale Signatur weist einen Hash-Wert des signierten Inhalts auf, der unter Verwendung einer Verschlüsselungsform geschützt werden kann, die den Hashwert mit der Identität des Benutzers verknüpft. Wenn der signierte Inhalt verändert wird, kann die Veränderung somit anhand einer ungültigen Signatur erkannt werden, d. h. einer digitalen Signatur, deren Hash-Wert nach dem Entschlüsseln nicht gleich dem neu berechneten Hash-Wert des signierten Inhalts ist. Ein beispielhafter Prüftest für eine digitale Signatur beinhaltet einen Test auf Gleichheit zwischen dem Hash-Wert nach Entschlüsselung und einem neu berechneten Hash-Wert des signierten Inhalts der digitalen Signatur. Es können andere Prüftests durchgeführt werden, zum Beispiel Tests auf Verfall oder Widerruf der digitalen Identität. Bei einer gültigen digitalen Signatur handelt es sich um eine digitale Signatur, die alle definierten Prüftest bestanden hat, und bei einer ungültigen digitalen Signatur um eine digitale Signatur, die mindestens einen Prüftest nicht besteht. Oft zeigen Systeme einem Benutzer eine Meldung an, wenn sich der signierte Inhalt beim Öffnen des Dokuments als verändert herausstellt, während andere Systeme das Öffnen eines Dokuments verhindern können, wenn der signierte Inhalt verändert worden ist.
-
Bei vielen Szenarien kann es wünschenswert sein, verschiedenen Benutzern oder demselben Benutzer zu verschiedenen Zeitpunkten das Hinzufügen einer digitalen Signatur zu unterschiedlichen Teilen eines Dokuments zu ermöglichen. Zum Beispiel kann ein erster Benutzer Teile einer Spesenabrechnung ausfüllen, die eine Aufstellung der Ausgaben enthalten. Der erste Benutzer kann den Teil des Dokuments signieren, der die aufgeführten Ausgaben anzeigt. Ein zweiter Benutzer, zum Beispiel ein Vorgesetzter, kann dann das Dokument erhalten und die durch den ersten Benutzer in das Dokument eingegebenen Daten prüfen. Der zweite Benutzer kann viele, aber möglicherweise nicht alle Ausgaben genehmigen, Daten in das Dokument eingeben, die einen Hinweis auf die genehmigten Ausgaben enthalten, und den durch den zweiten Benutzer eingegebenen Daten und möglicherweise auch den Daten oder der Signatur des ersten Benutzers eine zweite digitale Signatur hinzufügen. Ein dritter Benutzer, beispielsweise ein Buchhalter, kann das signierte Dokument erhalten und ebenso Daten in das Dokument eingeben, beispielsweise die betreffenden Konten, auf denen die verschiedenen Ausgaben verbucht werden, und den durch den dritten Benutzer eingegebenen Daten und möglicherweise den Daten oder Signaturen aller vorhergehenden Benutzer eine dritte Signatur hinzufügen. In diesen Fällen braucht jeder Benutzer eine Anzeige für Benutzeroberflächenelemente, die signierte Daten anzeigen, sodass diese von Benutzeroberflächenelementen unterschieden werden können, die unsignierte Daten anzeigen. Gemäß einer beispielhaften Ausführungsform werden Bearbeitungsfunktionen von Benutzeroberflächenelementen, die signierte Daten anzeigen, deaktiviert, sodass die angezeigten Daten nur gelesen werden können. Bearbeitungsfunktionen eines Benutzeroberflächenelements können aus anwendungsspezifischen Gründen deaktiviert werden, die mit einer Zuordnung zu einem signierten Datenknoten nichts zu tun haben. Ein Beispiel beinhaltet Einschränkungen für den Zugriff des Benutzers auf das dem Prozessor 102 zugeleitete MID 203 durch die nutzende Anwendung. Ein weiteres Beispiel beinhaltet in das modulare interaktive Dokument (MID) 203 integrierte logische Regeln oder Anzeigeregeln, die den Prozessor veranlassen, bestimmten Benutzeroberflächenelementen Attribute „Nur Lesen” oder „Ausgeblendet” zuzuweisen. Die Zuordnung eines Benutzeroberflächenelements zu einem signierten Knoten eines weiteren Kanals, durch den einem Benutzeroberflächenelement eine Einschränkung „Nur Lesen” zugewiesen werden kann, und die Zuordnung eines Benutzeroberflächenelements zu einem unsignierten Knoten ermöglicht, dass sich das Benutzeroberflächenelement nach anderen Regeln richten kann, die durch den Prozessor 102 zugeordnet werden können.
-
Beim Öffnen eines monolithischen interaktiven Dokuments 201 können die Benutzeroberflächenelemente, die signierte Daten anzeigen, als solche unterschieden werden, da das gesamte Dokument bearbeitet und dem Benutzer angezeigt wird. Desgleichen können Signaturanzeigen von Benutzeroberflächenelementen eines monolithischen interaktiven Dokuments 201 als Reaktion auf das Hinzufügen oder Entfernen einer digitalen Signatur aktualisiert werden. Für ein MID 203 kann unter Umständen nur eine Seite 204 oder 208 zusammen mit den Daten aufbereitet werden, die ihren Benutzeroberflächenelementen zugehörig sind. Eine digitale Signatur, die nur einen Teil der zugeordneten Daten signiert, kann keinesfalls in den zugehörigen Daten enthalten sein. Zum Beispiel können die digitalen Signaturen des MID 203 auf einer besonderen Seite angezeigt werden, die von den Seiten verschieden ist, in denen alle anderen signaturfremden Daten enthalten sind, und desgleichen können die digitalen Signaturen in einem Datenobjekt gespeichert werden, das von den Datenobjekten verschieden ist, in denen alle anderen signaturfremden Daten des MID 203 gespeichert sind. Zum Beispiel kann es erforderlich sein, die Datenobjekte für signaturfremde Daten bestimmten Definitionen eines vorgegebenen Schemas zu unterwerfen, die das Speichern einer digitalen Signatur innerhalb der Daten nicht zulassen.
-
Die im Folgenden beschriebenen Verfahren und Systeme bieten ein Verfahren zum Erzeugen und Verwalten von Signaturdaten für eine oder mehrere digitale Signaturen, die verschiedene Teile eines modularen interaktiven Dokuments (MID) 203 signieren. Diesbezüglich veranschaulicht 3 ein Blockschaubild eines beispielhaften Verfahrens, das durch das System 100 (von 1) durchgeführt werden kann. Bezug nehmend auf 3 wird in Block 302 ein MID 203 (von 2) geöffnet, wozu die Ermittlung der verschiedenen in 2 bezeichneten Komponenten des MID 203 gehört. In Block 304 sucht der Prozessor 102 nach den Datenobjekten 212, um die in dem einen oder den mehreren Datenobjekten 212 gespeicherten eingetragenen Signaturen zu suchen und zu prüfen. Gemäß einer beispielhaften Ausführungsform wird nach allen Datenobjekten 212 in dem MID 203 gesucht. Gemäß einer alternativen Ausführungsform wird in Abhängigkeit von einer Konfiguration des Prozessors 102 nur nach einem der mehreren speziellen Datenobjekten 212 gesucht. Das Prüfen einer digitalen Signatur beinhaltet das Erkennen von Knoten von Datenobjekten 212, die signiert worden sind. In Block 306 erzeugt der Prozessor 102 eine Signaturdatentabelle (SIT). 4 veranschaulicht eine beispielhafte Ausführungsform einer SIT 402. Bezug nehmend auf 4 weist die SIT 402 eine Spalte 406 „Kennung der Datenressource” auf, die Kennungen von Datenobjekten 212 enthält. Eine Spalte 408 „Knoten” enthält Kennungen von Knoten, die in den Datenobjekten 212 zu finden sind. Eine Spalte 410 „Anzahl Signaturen” enthält eine Anzahl der Signaturen, die jedem einzelnen Knoten zugewiesen wurden. Gemäß einer beispielhaften Ausführungsform werden die Spalten 406 und 408 der SIT 402 in Form von Syntaxanalysebäumen von Datenobjekten 212 angezeigt, und die Spalte 410 wird dann dargestellt, indem die Knoten des Syntaxanalysebaums mit der Anzahl ihrer jeweiligen Signaturen beschriftet werden. Für einen bestimmten Datenknoten stellt der den Datenknoten enthaltende Verzeichnisbaum die Kennung der Datenressource 406 bereit, der Vorläuferpfad des Knotens in diesem Verzeichnisbaum stellt die Knotenkennung 408 bereit, und die am Knoten angebrachte Beschriftung stellt Signaturdaten wie beispielsweise die Anzahl der Signaturen 410 bereit. Zum Beispiel zeigt ein Knoten mit einer Anzahl von null Signaturen an, dass der Knoten nicht signiert worden ist, wobei ein Knoten mit einer zugehörigen Anzahl von Signaturen größer als null anzeigt, dass der Knoten signiert worden ist. Andere Ausführungsformen können weitere Signaturdaten für jeden Knoten enthalten, beispielsweise eine Liste digitaler Signaturen, die zur Anzahl der Signaturen des Knotens einen Anteil beitragen. Bei anderen Ausführungsformen braucht die SIT 402 die Spalte 406 „Kennung der Datenressource” nicht zu enthalten, wenn die in der Spalte 408 „Knoten” gespeicherten Knotenkennungen einen Hinweis auf die Ressourcenkennung des Datenobjekts enthalten. Zum Beispiel kann die Spalte 408 in der ersten Zeile von 4 anstelle von Knoten1 den Ausdruck Objekt('D1')/Knoten1 enthalten.
-
Bezug nehmend wiederum auf 3 wird in Block 308 eine Seite, die dem Benutzer auf einer Anzeigeeinheit 104 angezeigt wird, vom MID 203 abgerufen. Gemäß einer beispielhaften Ausführungsform empfängt eine serverseitige Komponente des Prozessors 102 eine Seitenressource vom MID 203 und sendet die Seitenressource an eine clientseitige Komponente des Prozessors 102, der Seitenbearbeitungsfunktionen aktiviert, beispielsweise einen JavaScript-fähigen Web-Browser. Die clientseitige Komponente analysiert die Seitenressource einschließlich der in der Seitenressource enthaltenen Befehle, welche die Seitenaufbereitungsfunktionen veranlassen, die durch die Seitenressource benötigten Daten sowie einen passenden Teil der SIT 402 von der serverseitigen Komponente des Prozessors 102 abzurufen. In Block 310 werden die Daten für die Seite abgerufen und die Knoten der anzuzeigenden Daten in den Benutzeroberflächenelementen der Seite ermittelt. Der Zuordnungsmechanismus wie beispielsweise ein Verweis oder eine Eingrenzung wird zur Ermittlung des Datenknotens für jedes Benutzeroberflächenelement in der Seite verwendet, um den Wert des Datenknotens in dem Benutzeroberflächenelement anzuzeigen. In Block 312 werden die Signaturdaten von der SIT für die ermittelten Datenknoten (d. h. die Knoten, die dem Benutzer angezeigt werden) abgerufen. In Block 314 von 3 wird die Seite dem Benutzer mit den ermittelten Knoten und einer Anzeige des Signaturstatus der angezeigten Knoten (d. h. eine Anzeige, ob ein Knoten signiert worden ist) angezeigt. Die Seitenaufbereitungsfunktion oder die Benutzeroberflächendefinition können so konfiguriert werden, dass sie die Signaturanzeige immer oder nur unter bestimmten Umständen zeigen, beispielsweise wenn sich der Cursor bei einer Benutzeraktion über das mit dem signierten Knoten verbundene Benutzeroberflächenelement hinweg bewegt oder wenn der Benutzer versucht, die Daten in dem mit dem signierten Knoten verbundenen Benutzeroberflächenelement zu verändern.
-
Sobald zum Beispiel eine Seite durch die Dokument-Prozessorfunktionen ermittelt oder ausgewählt wurde, um sie einem Benutzer anzuzeigen, ermittelt, erzeugt und ruft der Seitenaufbereitungsteil einen Syntaxanalysebaum für jedes der Seite zugeordnete Datenobjekt ab. Dann werden die Knoten jedes Syntaxanalysebaums mit den Knoten im Feld 408 „Knoten” (von 4) verglichen. Wenn die Seite dem Benutzer angezeigt wird, werden die Benutzeroberflächenelemente der Seite Datenknoten von mindestens einem Syntaxanalysebaum zugeordnet. Die angezeigten Daten, die einem signierten Knoten zugehörig sind, werden zusammen mit einer Anzeige des Signaturstatus der Daten (oder des Knotens) angezeigt. Wenn ein Knoten mit dem Geburtsdatum eines Benutzers signiert worden ist, kann somit das Geburtsdatum in dem Knoten einem Benutzer mit einer Anzeige wie beispielsweise einer visuellen Anzeige oder einem Text angezeigt werden, die anzeigt, dass der Knoten signiert worden ist. Die Seitenaufbereitungsfunktion oder die Benutzeroberflächendefinition der Seitenressource kann so konfiguriert werden, dass sie die Signaturanzeige immer oder nur unter bestimmten Umständen zeigt.
-
5 veranschaulicht eine beispielhafte Ausführungsform einer Seite 502, die einem Benutzer angezeigt wurde. Die Seite enthält ein Feld 503 „Name”, das dem „Knoten 2” (von 4) entspricht, und ein Feld 505 „Geburtsdatum”, das dem signierten „Knoten 6” entspricht, was durch die Signaturanzeige 504 angezeigt wird. Das Feld 507 „Adresse”, das dem „Knoten 4” entspricht, ist unsigniert, und der Signaturstatus der unsignierten Daten oder des unsignierten Knotens wird entweder durch das Fehlen der Signaturanzeige 504 oder durch eine andere Anzeige angezeigt, die einen unsignierten Status anzeigt.
-
Sobald die Seite unter Bezugnahme auf 3 in Block 314 zusammen mit einer Anzeige des Signaturstatus der angezeigten Knoten dem Benutzer angezeigt wurde, kann das anschließende Verhalten von Benutzeroberflächenelementen durch den Signaturstatus des Knotens beeinflusst werden, der diesen anzeigt. Gemäß einer beispielhaften Ausführungsform hindert insbesondere ein angezeigtes Benutzeroberflächenelement den Benutzer daran, die Daten des Knotens zu bearbeiten, wenn der Signaturstatus des Knotens besagt, dass er unsigniert ist. Wenn ein angezeigtes Benutzeroberflächenelement hingegen durch die anwendungsspezifischen Regeln nicht in den Nur-Lese-Status versetzt wurde und wenn es einem unsignierten Knoten zugehörig ist, werden die Bearbeitungsfunktionen des angezeigten Benutzeroberflächenelements aktiviert, und außer dem Hinzufügen oder Löschen einer digitalen Signatur werden alle Benutzereingaben in dem Knoten gespeichert, der dem angezeigten Benutzeroberflächenelement zugehörig ist, bis eine Speicheroperation ausgeführt wird oder bis eine Benutzeraktion mit der Seite beendet wird.
-
Die Benutzeraktion mit einer Seite kann beendet werden, indem die Anzeige einer neuen Seite des MID 203 oder das Ende der Aktion mit dem gesamten MID 203 angefordert wird. Wenn eine Speicheroperation ausgeführt oder die Aktion mit einer Seite beendet wird, finden alle Änderungen durch Benutzereingaben in den Knoten, die den Benutzeroberflächenelementen zugehörig sind, ihren Niederschlag in den Datenobjekten 212 des MID 203. Wenn der Benutzer die Anzeige einer neuen Seite angefordert hat, beinhaltet die Anzeige die Arbeitsschritte von Block 308 bis 314 von 3. Sobald die Benutzeraktion mit MID 203 beendet wird, kann ein Geschäftsprozess das MID 203 in einem Inhaltverwaltungssystem speichern oder einem anderen Benutzer die Arbeit mit dem MID 203 zu beginnen erlauben, einschließlich der hierin beschriebenen und in 3 dargestellten Prozesse.
-
Während der Benutzeraktion mit einer Seite kann der Benutzer ein Benutzeroberflächenelement bearbeiten, welches das Hinzufügen oder Entfernen einer digitalen Signatur gestattet. Gemäß einer beispielhaften Ausführungsform beinhaltet das Hinzufügen oder Entfernen einer digitalen Signatur eine Anzahl zusätzlicher Schritte. Es wird eine Speicheroperation ausgeführt, um sicherzustellen, dass die Daten einschließlich der Signaturen im MID 203 auf dem aktuellsten Stand sind. Die Signaturdatentabelle (SIT) 402 wird aktualisiert, um das Hinzufügen oder Entfernen der Signatur widerzuspiegeln. Die Anzeige der aktuellen Seite wird aktualisiert, um Änderungen in dem betreffenden Teil der SIT 402 widerzuspiegeln. Das anschließende Verhalten jedes Benutzeroberflächenelements wird entsprechend dem aktualisierten Signaturstatus des angezeigten Knotens beeinflusst.
-
Dem Fachmann ist einsichtig, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt umgesetzt werden können. Demgemäß können Aspekte der vorliegenden Erfindung die Form einer kompletten Hardwareausführungsform, einer kompletten Softwareausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte in sich vereint, die hierin im Allgemeinen sämtlich als „Schaltkreis”, „Modul” oder „System” bezeichnet werden können. Darüber hinaus können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien gespeichert sind, die einen darauf verkörperten computerlesbaren Programmcode aufweisen. Es kann eine beliebige Kombination von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder um ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich unter anderem zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder um eine beliebige geeignete Kombination derselben handeln. Spezielle Beispiele (eine nicht erschöpfende Aufzählung) des computerlesbaren Speichermediums könnten Folgendes beinhalten: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Protokoll zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen handeln.
-
Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit einem darin verkörperten computerlesbaren Programmcode aufweisen, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine Vielfalt an Formen annehmen, darunter, aber nicht darauf beschränkt, elektromagnetisch, optisch oder eine geeignete Kombination derselben. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen übertragen, weiterverbreiten oder transportieren kann.
-
Ein auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, darunter, aber nicht darauf beschränkt, drahtlos, leitungsgebunden, über Lichtwellenleiter, Hf usw. oder eine beliebige geeignete Kombination derselben.
-
Der Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder ähnliche und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann ganz auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferne Computer durch eine beliebige Art von Netzwerk mit dem Computer des Benutzers verbunden werden, darunter ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters).
-
Aspekte der vorliegenden Erfindung werden im Folgenden unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Anweisungen eines Computerprogramms umgesetzt werden können. Diese Anweisungen des Computerprogramms können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zugeführt werden, um eine Maschine derart zu erzeugen, dass die durch den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds angegebenen Funktionen/Aktionen erzeugen. Diese Anweisungen des Computerprogramms können in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten veranlassen kann, in einer bestimmten Weise wirksam zu werden, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel erzeugen, der Anweisungen aufweist, die die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds angegebene Funktion/Aktion umsetzen. Die Anweisung des Computerprogramms kann auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Folge von Arbeitsschritten zu veranlassen, die auf dem Computer, der anderen programmierbaren Vorrichtung oder anderen Einheiten ausgeführt werden sollen, um einen computergestützten Prozess derart zu schaffen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds angegebenen Funktionen/Aktionen bereitstellen. Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Funktionsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, ein Segment oder einen Abschnitt des Codes repräsentieren, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Zu beachten ist auch, dass bei einigen alternativen Implementierungen die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge auftreten können. Zum Beispiel können je nach gewünschter Funktionalität zwei nacheinander dargestellte Blöcke in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in der umgekehrten Reihenfolge ausgeführt werden. Zu beachten ist ferner, dass jeder Block der Blockschaubilder und/oder des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder dem Ablaufplan durch spezielle Hardwaresysteme umgesetzt werden können, die die angegebenen Funktionen oder Aktionen oder Kombinationen von speziellen Hardware- und Computeranweisungen ausführen.
-
Die hierin gebrauchten Begriffe dienen lediglich der Beschreibung bestimmter Ausführungsformen und sind nicht als Einschränkung der Erfindung zu verstehen. Die hierin gebrauchten Einzahlformen „ein”, „eine” und „der, die, das” sollen ebenso auch die Mehrzahlformen beinhalten, sofern aus dem Zusammenhang nicht anderes hervorgeht. Ferner ist klar, dass die in dieser Beschreibung verwendeten Begriffe „weist auf” und/oder „aufweisend” das Vorhandensein der angegebenen Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, jedoch nicht das Vorhandensein oder das Hinzukommen anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elementkomponenten und/oder deren Gruppen ausschließen.
-
Die entsprechenden Strukturen, Materialien, Aktionen und gleichwertigen Entsprechungen aller Mittel oder Schritte zuzüglich Funktionselemente in den folgenden Ansprüchen alle Strukturen, Materialien oder Aktionen zum Ausführen der Funktion in Kombination mit anderen ausdrücklich beanspruchten Elementen beinhalten sollen. Die Beschreibung der vorliegenden Erfindung ist zur Veranschaulichung und Beschreibung dargelegt worden, erhebt jedoch nicht den Anspruch auf Vollständigkeit Beschränkung auf die Erfindung in der offenbarten Form. Dem Fachmann sind viele Änderungen und Varianten offensichtlich. Die Ausführungsform wurde so gewählt und beschrieben, dass die Grundgedanken der Erfindung und deren praktische Anwendung bestmöglich erläutert werden und dass andere Fachleute die Erfindung für verschiedene Ausführungsformen mit verschiedenen Änderungen verstehen, die für die jeweils vorgesehene Verwendung geeignet sind.
-
Die hierin dargestellten Ablaufpläne stellen nur ein Beispiel dar. Für dieses Schaubild oder die darin beschriebenen Schritte (oder Operationen) kann es viele Varianten geben, ohne vom Wesensgehalt der Erfindung abzuweichen. Zum Beispiel können die Schritte in einer abweichenden Reihenfolge ausgeführt werden, oder Schritte komprimierten hinzugefügt, entfernt oder verändert werden. All diese Varianten werden als Teil der beanspruchten Erfindung angesehen.
-
Obwohl die bevorzugte Ausführungsform der Erfindung beschrieben worden ist, ist klar, dass der Fachmann sowohl jetzt als auch in Zukunft verschiedene Verbesserungen und Erweiterungen vornehmen kann, die in den Schutzumfang der folgenden Ansprüche fallen. Diese Ansprüche sind so auszulegen, dass sie den geeigneten Schutz der oben beschriebenen Erfindung gewährleisten.