DE60127247T2 - Netzwerkeinrichtung zur dokumentengültigkeitserklärung - Google Patents

Netzwerkeinrichtung zur dokumentengültigkeitserklärung Download PDF

Info

Publication number
DE60127247T2
DE60127247T2 DE60127247T DE60127247T DE60127247T2 DE 60127247 T2 DE60127247 T2 DE 60127247T2 DE 60127247 T DE60127247 T DE 60127247T DE 60127247 T DE60127247 T DE 60127247T DE 60127247 T2 DE60127247 T2 DE 60127247T2
Authority
DE
Germany
Prior art keywords
validation
message
document
xml
accelerator
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.)
Expired - Lifetime
Application number
DE60127247T
Other languages
English (en)
Other versions
DE60127247D1 (de
Inventor
David San Diego MARLATT
John San Diego Abjanic
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE60127247D1 publication Critical patent/DE60127247D1/de
Publication of DE60127247T2 publication Critical patent/DE60127247T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein Computer und Computernetzwerke und im Besonderen eine Netzwerkvorrichtung zum Validieren von Dokumenten.
  • Stand der Technik
  • Im Zuge des zunehmenden Erfolgs von Computernetzwerken oder Computernetzen in Bezug auf deren Funktion als Speicher- und Datenweiterleitungssysteme, wie etwa dem Internet, erfahren derartige Systeme bzw. Netzwerke ein enormes Wachstum im Zuge der explosionsartigen Zunahme des Verkehrs bei transaktionsbasierten, unternehmenskritischen Anwendungen, seitens der Eigentümer bzw. Betreiber von Webseiten und auf Unternehmensservern. Anwendungsserver und andere Verarbeitungsknoten können mit der Verantwortlichkeit zur Ausführung einer Vielzahl von Funktionen überfordert bzw. überladet sein, darunter die Erzeugung von Verbindungen zu entfernten Servern oder Client-Systemen, das Verschlüsseln und Entschlüsseln übertragener Informationen bzw. Daten, das Verarbeiten der empfangenen Daten oder Transaktionsdaten (z.B. Aufträge, Webseitenaufrufe, etc.), das Formatieren von Daten bzw. Informationen für Anzeige- oder Verarbeitungszwecke, etc. Zur Behandlung des hohen Datenaufkommens und der zunehmend komplexen Anzahl von Aufgaben, die für Anwendungsserver erforderlich sind, handelte es sich bei der traditionellen Lösung darum, dass mehr Server und mehr Netzwerkbandbreite zugekauft wurden, wobei dies jedoch mit übermäßigen Kosten verbunden sein kann.
  • Die Sprache XML bzw. eXtensible Markup Language V. 1.0 wurde vom World Wide Web Consortium (W3C) am 10. Februar 1998 angenommen. XML stellt eine strukturierte Syntax für den Datenaustausch bereit. XML ist eine Dokumentenauszeichnungssprache wie auch die Sprache HTML (HTML als englische Abkürzung von Hyper-Text Markup Language). In XML werden die tatsächlichen Daten von der Präsentation bzw. Darstellung der Daten getrennt, im Gegensatz zu HTML, welche diese beiden Elemente kombiniert bzw. verknüpft. Die meisten Dokumentenauszeichnungssprachen, wie etwa HTML, sind feststehende Dokumentenauszeichnungssprachen. Das heißt, die feststehenden Dokumentenauszeichnungssprachen (einschließlich HTML) weisen eine Reihe fester Tags bzw. Identifizierungskennzeichnen zur Erstellung eines Dokuments auf. Im Gegensatz dazu definiert XML keine feste Reihe bzw. Gruppe von Tags, vielmehr definiert XML lediglich eine Syntax bzw. ein strukturiertes Format, durch das Benutzer ihre eigene Gruppe von Tags definieren bzw. festlegen können. Zurzeit gibt es eine Reihe von XML-basierten Sprachen (z.B. WML, CXML, CBL), die unter Verwendung der XML-Syntax ihre eigene Gruppe von XML-Tags definieren.
  • Der XML-Standard erfordert es lediglich, dass ein empfangenes Dokument geprüft werden muss, um zu bestätigen, dass es die grundlegende Syntax und das Format von XML erfüllt (d.h. es wird bestimmt, ob das Dokument „ordnungsgemäß gestaltet" ist). Darüber hinaus ermöglicht der XML-Standard auch die Validierung eines Dokuments, wobei es sich um eine strengere Prüfung handelt, die dazu dient, zu bestimmen, ob die Struktur oder die Grammatik des XML-Dokuments der Struktur entspricht, die gemäß der jeweiligen XML-basierten Sprache erforderlich ist. Die XML-Spezifikation setzt dies zwar nicht voraus, allerdings weisen zahlreiche Anwendungsserver oder andere Verarbeitungsknoten, die XML-Dokumente verarbeiten, einen validierenden XML-Prozessor auf (oder einen validierenden XML-Parser), um die XML-Anwendungsdaten hinsichtlich ihrer Validität im Vergleich zu einer Validierungsvorlage zu überprüfen. Die Validierung ist wichtig, da sie sicherstellen kann, dass die Anwendungsdaten (z.B. Transaktionsdaten) in dem XML-Dokument in dem richtigen Format bereitgestellt werden und durch den Anwendungsserver richtig interpretiert werden.
  • Die aktuelle XML-Verarbeitung umfasst für gewöhnlich den Empfang eines XML-Dokuments durch einen XML-Anwendungsserver von einer Quellanwendung sowie die folgende vollständige Verarbeitung des Dokuments und die optionale Bereitstellung einer Antwort an die Quellanwendung. Ein XML-Dokument wird für gewöhnlich durch drei Schritte verarbeitet:
    • 1) Es wird geprüft, ob das Dokument „ordnungsgemäß gestaltet" ist.
    • 2) Eine optionale Validierungsprüfung wird vorgenommen, um zu gewährleisten, dass die Syntax und Grammatik einer bestimmten Validierungsvorlage entsprechen.
    • 3) Das traditionelle Parsing (Syntaxanalyse) des Inhalts auf dessen Bedeutung und Anwendung auf die relevante Domäne (z.B. Verarbeitung der Anwendungsdaten oder der Transaktionsdaten).
  • Der zweite Schritt der Validierung kann sowohl auf Seiten eines Prozessors als auch hinsichtlich der abgelaufenen Zeit sehr rechenintensiv sein. Zur Validierung eines Dokuments muss eine XML-Anwendung entweder eine Validierungsvorlage irgendwo aus dem Netzwerk abrufen oder sie muss die Validierungsvorlage aus dem XML-Dokument selbst parsen bzw. analysieren (oder identifizieren) (wenn die Validierungsvorlage in dem XML-Dokument bereitgestellt ist). Wenn der Anwendungsserver die Validierungsvorlage aufweist, muss er die Anwendungsdaten parsen und prüfen, ob diese mit den Regeln für die Validierungsvorlage übereinstimmen. Als Folge dessen kann die Last bzw. Aufgabe der Ausführung der Dokumentenvalidierung die Anzahl der Dokumente oder Transaktionen, die durch den Anwendungsserver oder den Verarbeitungsknoten verarbeitet werden müssen, deutlich reduzieren.
  • Zusammenfassung der Erfindung
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung eine Netzwerkvorrichtung gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 7.
  • Bevorzugte Merkmale der vorliegenden Erfindung sind in den Unteransprüchen definiert.
  • Kurze Beschreibung der Zeichnungen
  • Die vorstehenden Ausführungen und ein besseres Verständnis der vorliegenden Erfindung werden aus der folgenden genauen Beschreibung exemplarischer Ausführungsbeispiele sowie aus den Ansprüchen deutlich, wenn diese in Verbindung mit den beigefügten Zeichnungen gelesen werden, die alle Bestandteil der vorliegenden Erfindung sind. Die vorstehenden und nachstehenden geschriebenen sowie veranschaulichten Offenbarungen fokussieren sich zwar auf die Offenbarung exemplarischer Ausführungsbeispiele der Erfindung, jedoch wird hiermit festgestellt, dass dies nur den Zwecken der Veranschaulichung und der beispielhaften Darstellung dient, und wobei die Erfindung diesbezüglich nicht beschränkt ist. Der Umfang der vorliegenden Erfindung ist lediglich durch die Definition der anhängigen Ansprüche beschränkt.
  • Zum Beispiel werden einige Techniken der Erfindung in Bezug auf eine XML-Nachricht und die XML-Verarbeitung veranschaulicht und beschrieben. Der Einsatz einer XML-Nachricht und die XML-Verarbeitung werden nur zur Erläuterung und Beschreibung der Techniken der Erfindung angewendet. Die Erfindung ist nicht auf XML oder ähnliche Sprachen beschränkt, vielmehr ist sie auf Nachrichten anwendbar, die in einer Vielzahl strukturierter Formate oder Sprachen bereitgestellt werden.
  • Es folgt eine kurze Beschreibung der Zeichnungen. In den Zeichnungen zeigen:
  • 1 ein Blockdiagramm eines Netzwerksystems gemäß einem Ausführungsbeispiel;
  • 2 ein Flussdiagramm der Funktionsweise eines Validierungsbeschleunigers gemäß einem Ausführungsbeispiel;
  • 3 ein Flussdiagramm einer beispielhaften Funktionsweise eines Validierungsbeschleunigers gemäß einem Ausführungsbeispiel;
  • 4 ein Flussdiagramm einer Funktionsweise eines Validierungsbeschleunigers gemäß eines weiteren Ausführungsbeispiels; und
  • 5 ein Blockdiagramm einer Netzwerkvorrichtung gemäß einem weiteren Ausführungsbeispiel.
  • Genaue Beschreibung der Erfindung
  • Gemäß einem Ausführungsbeispiel ist eine Netzwerkvorrichtung zwischen einem Netzwerk und einer Mehrzahl von Verarbeitungsknoten (z.B. Webservern, Anwendungsservern, XML-Servern, Routern, Switches oder anderen Vorrichtungen) bereitgestellt. Die Netzwerkvorrichtung weist einen Validierungsbeschleuniger zur Vorabvalidierung von Dokumenten auf.
  • Gemäß einem Ausführungsbeispiel wird eine Nachricht empfangen, die Validierungsanweisungen und Anwendungsdaten aufweist. Eine Validierungsvorlage kann entweder inline (z.B. in dem Dokument als Teil der Validierungsanweisungen) oder als eine externe Validierungsvorlage bereitgestellt werden. Wenn das Validierungsdokument extern ist, kann die Vorlage von einem Netzwerk abgerufen werden (oder von einem entfernten Server bzw. einem Remote Server), und es kann lokal in einem Cache-Speicher für eine zukünftige Verwendung gespeichert werden, um die Validierungsgeschwindigkeit zu verbessern. Das Dokument wird danach auf der Basis der Vorlage validiert, und die Validierungsanweisungen werden danach aus dem Dokument entfernt. Das vorab validierte Dokument wird danach an einen Verarbeitungsknoten oder einen Anwendungsserver gesendet.
  • Da die Validierungsanweisungen (einschließlich der internen Validierungvorlage und/oder eines Zeigers auf eine externe Vorlage) aus dem Dokument entfernt worden sind, validiert der Anwendungsserver das Dokument nicht und nimmt an, dass das Dokument gültig ist. Auf diese Weise kann die aufwändige Aufgabe der Dokumentenvalidierung von dem Anwendungsserver auf eine Netzwerkvorrichtung abgeladen werden, wie etwa einen Validierungsbeschleuniger.
  • Gemäß einem weiteren Ausführungsbeispiel kann die Netzwerkvorrichtung weitere Funktionen oder Blöcke aufweisen, wie etwa einen Sicherheitsbeschleuniger, einen auf Inhalten basierten Nachrichtendirektor und/oder einen Lastverteiler.
  • In Bezug auf die Abbildungen, in denen die gleichen Elemente mit den gleichen Bezugsziffern bezeichnet sind, zeigt die Abbildung aus 1 ein Blockdiagramm eines Netzwerksystems gemäß einem Ausführungsbeispiel. Gemäß der Abbildung aus 1 kann eine Vielzahl von Clients über ein Netzwerk bzw. Netz, wie etwa das Internet 130, mit einem Datenzentrum 135 gekoppelt bzw. verbunden werden. Die Clients können zum Beispiel einen Server aufweisen 110, der ein Anwendungsprogramm 112 aufweist, einen Computer 120 (wie etwa einen Personalcomputer oder einen Laptop), der einen Webbrowser 122 aufweisen kann, und eine kabellose Vorrichtung 132, wie etwa einen Personal Digital Assistant (PDA) oder ein schnurloses Telefon oder ein Mobiltelefon. Die kabellose Vorrichtung 132 kann über entsprechende Übermittlungsabschnitte 134 bzw. 136 mit dem Internet 130 oder mit einem Datenzentrum 135 gekoppelt werden. Die Übermittlungsabschnitte 134 und 136 können jeweils einen oder mehrere kabellose Überrmittlungsabschnitte (z.B. einen Mobilfunk- oder einen anderen Übermittlungsabschnitt) oder einen kabelgebundenen Übermittlungsabschnitt aufweisen. Jeder der Clients, darunter der Server 110, der Computer 120 und die Vorrichtung 132, kann Nachrichten über das Internet 130 senden und empfangen und eine Vielzahl verschiedener Protokolle oder Transportmethoden verwenden.
  • Das Datenzentrum 135 wird zum Senden, Empfangen, Verarbeiten und Ausführen einer umfassenden Vielzahl von Nachrichten und Anforderungen bereitgestellt, wie etwa von geschäftlichen Transaktionen, Aufträgen bzw. Bestellungen, Aktienkursen oder Aktienhandelstransaktionen und anderen Informationen bzw. Daten. Das Datenzentrum 135 weist mehrere Verarbeitungsknoten (z.B. Server) auf, darunter der Server 150, der Server 160 und der Server 170 zur Behandlung der verschiedenen Aufträge bzw. Bestellungen, geschäftlichen Transaktionen und sonstigen Anforderungen.
  • Gemäß einem Ausführungsbeispiel tauschen die Clients und die Objekte des Datenzentrums 135 Nachrichten aus, welche durch ein Anwendungsprogramm (wie etwa einen XMP-Prozessor) zu verarbeitende Anwendungsdaten aufweisen. Die Anwendungsdaten in der Nachricht können geschäftliche Transaktionsdaten aufweisen, die eine oder mehrere Transaktionen beschreiben oder betreffen. Gemäß einem Ausführungsbeispiel können die in einer Nachricht bereitgestellten Anwendungsdaten in vorteilhafter Weise als XML-Daten (z.B. als ein XML-Dokument) bereitgestellt werden oder in einem anderen strukturierten Format oder einer anderen Dokumentenauszeichnungssprache, um den Datenaustausch zu erleichtern. Die XML-Daten in den Nachrichten entsprechen vorzugsweise dem gemäß dem XML-Standard erforderlichen Format oder der entsprechenden Syntax. Ein Dokument, das Tag-Formate verwendet (z.B. Anfangs-Tags, End-Tags) und eine sonstige Syntax (z.B. zur Auszeichnung von Daten), die dem XML-Standard entspricht, wird als ein „ordnungsgemäß gestaltetes" XML-Dokument bezeichnet.
  • In erneutem Bezug auf die Clients aus der Abbildung aus 1. kann es sich bei dem Anwendungsprogramm 112 um ein geschäftliches Programm oder ein Programm zur Bestandsverwaltung, zur Verwaltung von Aufträgen oder anderen geschäftlichen Transaktionen handeln. Zum Beispiel kann das Anwendungsprogramm automatisch und elektronisch detektieren, dass der Bestand unter einen Schwellenwert gefallen ist, und es kann automatisch eine Bestellung an den Server eines Lieferanten bzw. Zulieferers an dem Datenzentrum 135 erzeugen und übermitteln, um eine Lieferung weiterer Waren bzw. Teile anzufordern. Der Server 110 kann zum Beispiel eine Business-to-Business (B2B) Transaktion einleiten, indem eine elektronische Bestellung an den entfernten Server des Zulieferers bzw. des Lieferanten an dem Datenzentrum 135 gesendet wird.
  • Als ein weiteres Beispiel kann der Webbrowser 122 Webseiten, geschäftliche Daten oder andere Daten von einem entfernten Server (der an dem Datenzentrum 135 angeordnet ist) anfordern. Der Webbrowser 122 kann auch Bestellungen, geschäftliche Transaktionen oder andere geschäftliche Daten an einen entfernten Server senden oder schicken, der an dem Datenzentrum 135 angeordnet sein kann. Die kabellose Vorrichtung 132 kann Informationen oder Daten in Bezug auf Bestellungen, geschäftliche Transaktionen, Webseiten, Aktienkurse, Spielstände bzw. Spielergebnisse und dergleichen von einem oder mehreren entfernten Servern (wie etwa von an dem Datenzentrum 135 angeordneten Servern) empfangen.
  • Gemäß einem Ausführungsbeispiel kommunizieren der Server 110, der Computer 120 und die kabellose Vorrichtung 132 jeweils mit einem oder mehreren entfernten Servern (z.B. den Servern 150, 160 und 170) oder tauschen mit diesen Daten aus, indem XML-Daten (d.h. Anwendungsdaten oder Daten zu geschäftlichen Transaktionen, die gemäß dem XML-Standard codiert oder formatiert sind oder gemäß einer oder mehreren XML-basierten Sprachen) gesendet und empfangen werden.
  • Gemäß einem vorteilhaften Ausführungsbeispiel weist das Datenzentrum 135 ferner einen Validierungsbeschleuniger 142 auf, um empfangene Nachrichten vorab zu validieren, bevor die Nachrichten zu einem der Anwendungsserver oder Verarbeitungsknoten gesendet werden. Gemäß einem Ausführungsbeispiel wird der Validierungsbeschleuniger 142 als eine Netzwerkvorrichtung bereitgestellt. Mit anderen Worten kann der Validierungsbeschleuniger 142 gemäß einem Ausführungsbeispiel zwischen ein Netzwerk 130 und eine Mehrzahl von Verarbeitungsknoten oder Anwendungsserver (z.B. die Server 150, 160 und 170) gekoppelt werden. Die Bereitstellung des Validierungsbeschleunigers 142 als eine Netzwerkvorrichtung (d.h. getrennt von den Anwendungsservern) ermöglicht das Abladen der rechenintensiven Aufgabe der Dokumentenvalidierung von den Anwendungsservern auf den Validierungsbeschleuniger 142. Alternativ kann eine Mehrzahl von Validierungsbeschleunigern 142 bereitgestellt werden, wobei ein Validierungsbeschleuniger 142 für einen oder mehrere Anwendungsserver oder sonstige Verarbeitungsknoten bereitgestellt wird.
  • Wie dies bereits vorstehend im Text beschrieben worden ist muss ein XML-Dokument geprüft werden, um sicherzustellen, dass es die Grundsyntax und das Format von XML erfüllt (d.h. um zu bestimmen, ob das Dokument „ordnungsgemäß gestaltet" ist). Darüber hinaus ermöglicht es der XML-Standard optional, dass ein Dokument validiert wird, wobei es sich bei einer sorgfältigeren bzw. strengeren Prüfung handelt, um zu bestimmen, ob die Struktur oder die Grammatik des XML-Dokuments der Struktur oder Grammatik entspricht, die durch die jeweilige XML-basierte Sprache erfordert wird. XML ermöglicht eine Validierung eines Dokuments im Vergleich zu einer Validierungsvorlage. Eine Validierungsvorlage definiert die Grammatik und Struktur des XML-Dokuments (einschließlich erforderlicher Elemente oder Tags, etc.).
  • Es gibt zahlreiche Arten von Validierungsvorlagen, wie zum Beispiel die Dokument-Typ-Definition (DTD) in XML oder ein Schema. Diese beiden Validierungsvorlagen werden als Beispiele verwendet, um einige Merkmale gemäß Ausführungsbeispielen zu erläutern. Viele andersartige Validierungsvorlagen sind ebenfalls möglich. Ein Schema ist einer DTD ähnlich, da es die Grammatik und die Struktur definiert, der das Dokument entsprechen muss, um gültig zu sein. Ein Schema kann jedoch spezifischer sein als eine DTD, da es auch die Möglichkeit aufweist, Datentypen zu definieren (z.B. Zeichen, Ziffern, ganze Zahlen, Gleitkomma oder individuell gestaltete Datentypen). Im Gegensatz zu einer DTD (gemäß den aktuellen Standards) kann zudem für eine ordnungsgemäße Gestaltung ein Schema erforderlich sein. Somit können sowohl die Anwendungsdaten als auch das Schema geparst und hinsichtlich der Basissyntax (oder der ordnungsgemäßen Gestaltung) geprüft werden. Somit wird für zumindest einige Anwendungen erwartet, dass Schemas zukünftig häufiger eingesetzt werden als DTDs.
  • Wie dies bereits vorstehend im Text ausgeführt ist, ist gemäß dem XML-Standard eine Validierung eines empfangenen Dokuments im Vergleich zu einer Validierungsvorlage optional. Wenn ein Dokument im Vergleich zu einer bestimmten Validierungsvorlage validiert werden soll, so weist das XML-Dokument am Anfang des Dokuments Validierungsanweisungen (oder einen Validierungscode) auf. Ein Beispiel für Validierungsanweisungen kann eine Dokumententyperklärung sein, wie dies in XML allgemein bekannt ist. Ein weiteres Beispiel ist ein Schema (oder ein Verweis auf ein externes Schema). Gemäß dem aktuellen XML stellen die Validierungsanweisungen (z.B. die Dokumententyperklärung oder ein Schema, etc.) einen optionalen Bereich des Dokuments dar, der die Struktur, die Elementtypen, Attribute, etc. der Validierungsvorlage erklärt. Damit ein Dokument gültig ist, müssen die Struktur und die Grammatik der Anwendungsdaten in dem Dokument der durch die Validierungsvorlage definierten Struktur und Grammatik entsprechen (wenn das Dokument Validierungsanweisungen enthält). Die Validierungsvorlage kann innerhalb (oder in dem) des Dokuments und/oder außerhalb des Dokuments bereitgestellt werden.
  • Die Abbildung aus 2 zeigt ein Diagramm einer beispielhaften Nachricht gemäß einem Ausführungsbeispiel. Die in der Abbildung aus 2 dargestellte beispielhafte Nachricht weist ein XML-Dokument 210 auf. Das XML-Dokument 210 weist XML-Anwendungsdaten 220 auf (z.B. etwa geschäftliche Transaktionsdaten) sowie Validierungsanweisungen 215.
  • Die Anwendungsdaten 220 stellen die Anwendungsdaten dar, die durch einen Anwendungsserver verarbeitet werden. Die Anwendungsdaten 220 können zum Beispiel geschäftliche Transaktionsdaten aufweist, wie etwa eine Aufstellung der zu kaufenden Artikel, der Preise, der Mengen oder anderer spezifischer Details einer Transaktion oder eine Anforderung von Informationen (z.B. eine Anforderung eines Aktienkurses oder von Transaktionsdetails).
  • Gemäß einem Ausführungsbeispiel zeigt das Vorhandensein einer oder mehrerer Validierungsanweisungen 215, dass das Dokument validiert werden kann (oder sollte), bevor die Anwendungsdaten 220 auf der Basis einer Validierungsvorlage verarbeitet werden können, die in den Validierungsanweisungen 215 bereitgestellt oder durch diese identifiziert wird. Gemäß einem Ausführungsbeispiel kann das Vorhandensein von Validierungsanweisungen anders ausgedrückt anzeigen, dass die Anwendungsdaten vorab an einer Netzwerkvorrichtung (wie etwa dem Validierungsbeschleuniger 142) validiert werden sollten, bevor die Daten an einen Anwendungsserver zur weiteren Verarbeitung weitergeleitet werden. Um dem Anwendungsserver anzuzeigen, dass das Dokument (oder die Anwendungsdaten) validiert worden ist bzw. sind, können die Validierungsanweisungen aus dem Dokument entfernt werden und/oder es kann eine Anzeige (wie etwa ein Hinweis oder eine Anweisung in den Daten oder ein in die Nachricht eingefügtes Feld) bereitgestellt werden, um anzuzeigen, dass die Anwendungsdaten oder die Nachricht validiert worden sind bzw. ist (d.h. vorab validiert). Gemäß dem aktuellen XML ist die Dokumentenvalidierung optional (z.B. durch den Anwendungsserver), selbst wenn Validierungsanweisungen 215 vorhanden sind. Es ist jedoch möglich, dass in Zukunft eine Validierung (in XML oder in anderen Sprachen) erforderlich ist.
  • Wenn das Dokument für eine Dokumentenvalidierung (d.h. um eine Dokumentenvalidierung zu ermöglichen) einer Validierungsvorlage zugeordnet werden soll (Dokument-Typ-Definition, Schema, etc.), so weist das Dokument für gewöhnlich eine oder mehrere Validierungsanweisungen 215 auf. Die Validierungsanweisungen 215 stellen die Validierungsvorlage (oder die Dokument-Typ-Definition) bereit oder sie identifizieren sie, welche wiederum die Dokumentenstruktur und die Grammatik definiert (z.B. Elemente, Attribute), welchen die Anwendungsdaten 220 des Dokuments 210 entsprechen müssen. Die Validierungsvorlage kann eine interne Komponente und/oder eine externe Komponente aufweisen.
  • In dem dargestellten Beispiel (z.B. für XML) werden die Validierungsanweisungen 216 (oder eine Validierungsvorlage) als eine Dokumententyperklärung bereitgestellt. Die Validierungsanweisungen 215 beginnen mit der DOCTYPE-Aussage zum Dokumententyp „<DOCTYP schweinezuverkaufen...", die anzeigt, das eine Validierungsvorlage gegeben ist, die in dem Dokument bereitgestellt werden kann (d.h. als interne Komponente 219) oder außerhalb des Dokuments (d.h. als eine externe Komponente, die als „schweine.dtd" identifiziert ist). In dem vorliegenden Beispiel stellen die Validierungsanweisungen 215 somit eine interne Komponente 219 einer Validierungsvorlage bereit sowie einen externen Komponentenbezeichner 217, der eine externe Komponente identifiziert.
  • Die interne Komponente 219 und die externe Komponente (nicht abgebildet) bilden gemeinsam die Validierungsvorlage für dieses Dokument (d.h. zum Validieren der Anwendungsdaten 220 für das Dokument 210). Wenn eine Validierung vorgenommen wird, bewirkt gemäß einem Ausführungsbeispiel das Vorhandensein der Aussage DOCTYPE (oder andere Validierungsanweisungen) für gewöhnlich, dass eine Anwendung oder ein Anwendungsserver die Anwendungsdaten 220 in der Nachricht im Vergleich zu der Validierungsvorlage validiert.
  • Die interne Komponente 219 der Validierungsvorlage definiert, das ein gültiges schweinezuverkaufen-Dokument die folgenden Elemente aufweisen muss: Typ, durchschnittliche Gewichtung, Menge und Preis/hog, etc. Dabei handelt es sich lediglich um ein Beispiel.
  • In dem vorliegenden Beispiel identifiziert der Bezeichner „schweine.dtd" ein externes Objekt oder eine Datei; die eine externe Komponente der Validierungsvorlage darstellt. Die externe Komponente kann sich an einem entfernten Server oder einer anderen Position auf der Basis des externen Komponentenbezeichners 217 befinden. Die externe Komponente der Validierungsvorlage (identifiziert als „schweine.dtd") kann zusätzliche Anforderungen bzw. Voraussetzungen hinsichtlich der Struktur oder Grammatik der Anwendungsdaten 220 des Dokuments 210 aufweisen. Der externe Komponentenbezeichner 217 kann als die vollständige Adresse bereitgestellt werden oder als relative Adresse oder Zeiger (z.B. im Verhältnis zu der Adresse oder der Position der Quelle oder des Ursprungsknotens der Nachricht). Zum Beispiel kann der in den Validierungsanweisungen 215 aufgeführte Bezeichner „schweine.dtd" tatsächlich auf die „schweine.dtd" externe Komponente 217 verweisen, die (zum Beispiel) wie folgt angeordnet sein kann: oasis.xml.org/landwirtschaft/tiere/schweine.dtd. Wie dies bereits vorstehend im Text beschrieben worden ist, zählen zu Beispielen für Validierungsvorlagen eine Dokument-Typ-Definition (z.B. für XML), ein Schema, etc.
  • Die Abbildung aus 3 zeigt ein Flussdiagramm einer beispielweisen Funktionsweise eines Validierungsbeschleunigers gemäß einem Ausführungsbeispiel. In dem Block 310 empfängt der Validierungsbeschleuniger 142 eine Nachricht. Die Nachricht kann über jeden Weg/Transport oder jedes Protokoll erfolgen, wie etwa das Transmission Control Protocol (TCP), das File Transfer Protocol (FTP), das Simple Mail Transfer Protocol (SMTP), das Wireless Application Protocol (WAP, das zum Senden und Empfangen von Daten bzw. Informationen über kabellose Vorrichtungen verwendet werden kann), das Hypertext Transfer Protocol (HTTP), etc. Die algemeinen Lehren und die Funktionsweise gemäß der Erfindung sind von keinem speziellen Transport oder Protokoll abhängig, sondern vielmehr transportunabhängig.
  • In dem Block 315 wird durch den Validierungsbeschleuniger 142 eine Validierungsvorlage erhalten, um das Dokument oder die Nachricht zu validieren (z.B. zum Validieren der Anwendungsdaten 220 in dem Dokument 210). Dies kann zum Beispiel zuerst das Bestimmen umfassen, ob Validierungsanweisungen in dem Dokument oder der Nachricht enthalten sind. Wenn Validierungsanweisungen enthalten sind, bestimmt der Validierungsbeschleuniger 142, ob die Validierungsvorlage für das Dokument als eine interne Komponente und/oder eine externe Komponente bereitgestellt wird, und zwar auf der Basis der Syntax einer oder mehrerer Aussagen in den Validierungsanweisungen 215.
  • Wenn die Validierungsvorlage in dem Dokument bereitgestellt wird (d.h. als eine interne Komponente), so wird die Validierungsvorlage von dem Fest des Dokuments geparst oder getrennt. Wenn die Validierungsanweisungen 215 einen externen Komponentenbezeichner 217 bereitstellen, so ruft der Validierungsbeschleuniger 142 die externe Komponente ab bzw. erhält diese (z.B. von einem entfernten Server oder Knoten).
  • In dem Block 320 aus 3 validiert der Validierungsbeschleuniger 142 zumindest einen Teil der Nachricht (z.B. werden die Anwendungsdaten 220 validiert), indem die Struktur und die Grammatik der Anwendungsdaten 220 mit der Struktur und der Grammatik verglichen werden, die durch die Validierungsvorlage definiert sind oder von dieser vorausgesetzt werden.
  • Wenn das Dokument oder die Nachricht in dem Block 325 gültig sind, so entfernt der Validierungsbeschleuniger 142 (vorzugsweise alle) die Validierungsanweisungen, einschließlich etwaiger Aussagen, die bewirken können, dass das Dokument validiert wird (z.B. eine DOCTYPE Aussage), etwaiger interner Komponenten der Validierungsvorlage und etwaiger Referenzen bzw. Verweise oder Bezeichner in Bezug auf externe Komponenten der Validierungsvorlage.
  • In dem Block 330 wird das validierte Dokument (mit entfernten Validierungsanweisungen) zur Verarbeitung zu einem Anwendungsserver oder einem anderen Verarbeitungsknoten gesendet.
  • Durch Validierung des Dokuments und folgendes Entfernen der Validierungsanweisungen (einschließlich der Validierungsvorlage oder Bezeichner auf diese) prüft jedes Anwendungsprogramm oder jeder Anwendungsserver, das bzw. der das Dokument empfängt, nur, ob das Dokument „ordnungsgemäß gestaltet" (auf Englisch: „well formed") ist (oder die grundlegende Syntax von XML erfüllt). Aufgrund des Fehlens der Validierungsanweisungen kann der Anwendungsserver das Dokument nicht validieren, und er nimmt an, dass das Dokument oder die Anwendungsdaten gültig ist bzw. sind. Auf diese Weise kann die Aufgabe der Durchführung der Dokumentenvalidierung von dem Anwendungsserver auf den Validierungsbeschleuniger 142 verlagert werden.
  • Die Abbildung aus 4 zeigt ein Flussdiagramm, das die Funktionsweise eines Validierungsbeschleunigers gemäß einem weiteren Ausführungsbeispiel veranschaulicht. Eine Nachricht, wie etwa ein XML-Dokument 402, wird empfangen. In der Raute 404 prüft der Validierungsbeschleuniger, ob Validierungsanweisungen in dem Dokument vorhanden sind. Wenn dies nicht der Fall ist, wird das Dokument aus dem Validierungsbeschleuniger 142 unverändert ausgegeben, da keine Validierung vorgenommen werden kann, Block 424.
  • Wenn Validierungsanweisungen in dem Dokument 402 enthalten sind, bestimmt der Validierungsbeschleuniger 142 als nächstes, ob sich die Validierungsvorlage in (oder inline) dem Dokument befindet, Raute 406. Wenn dies der Fall ist, so wird das Dokument auf der Basis der internen Validierungsvorlage in dem Block 414 validiert.
  • Wenn sich die Validierungsvorlage nicht in (oder inline) dem Dokument befindet (was anzeigt, dass die Vorlage als eine externe Komponente vorhanden sein sollte), so bestimmt der Validierungsbeschleuniger 142 danach, ob die Validierungsvorlage (z.B. eine externe Komponente) in dem Cache gespeichert ist, Raute 408. Der Validierungsbeschleuniger 142 weist einen Hochgeschwindigkeitsspeicher oder einen lokalen Vorlagen-Cache-Speicher 420 auf, in dem eine oder mehrere Validierungsvorlagen (wie zum Beispiel die Datei „schweine.dtd") gespeichert werden und später abgerufen werden kann. Wenn die Validierungsvorlage in dem Cache 420 vorhanden ist, so wird die Validierungsvorlage in dem Block 418 abgerufen und in dem Block 414 zur Validierung des Dokuments verwendet.
  • Wenn die Validierungsvorlage nicht in dem Vorlagen-Cache-Speicher 420 enthalten ist, ruft der Validierungsbeschleuniger 142 die Validierungsvorlage aus dem Netzwerk ab (z.B. von einem entfernten Server), Blöcke 410 und 405. Die abgerufene Validierungsvorlage wird danach in dem Block 412 zu dem Vorlagen-Cache-Speicher 420 hinzugefügt (oder darin gespeichert). Das Dokument wird danach in dem Block 414 validiert.
  • Nachdem das Dokument (oder die Nachricht) in dem Block 414 validiert worden ist, werden die Validierungsanweisungen (einschließlich etwaiger interner Validierungsvorlagen- oder externer Validierungsvorlagenbezeichner) aus dem Dokument gelöscht bzw. entfernt, Block 422. Der Validierungsbeschleuniger 142 gibt danach das vorab validierte Dokument oder die vorab validierte Nachricht an einen der Anwendungsserver oder Verarbeitungsknoten (z.B. einen der Server an dem Datenzentrum 135) zur Verarbeitung aus.
  • Alternativ (oder zusätzlich zum Entfernen der Validierungsanweisungen) kann eine Anzeige der Nachricht hinzugefügt werden, die dem Anwendungsserver anzeigt, dass die Anwendungsdaten oder die Nachricht bereits validiert worden sind bzw. ist (d.n. per Vorab-Validierung). Diese Vorab-Validierungsanzeige kann zum Beispiel als ein Feld in der Nachricht bereitgestellt werden, als eine Anweisung oder ein Hinweis in den Anwendungsdaten selbst oder unter Verwendung einer anderen Technik. In der XML-Spezifikation gibt es neben Element-Tags und Daten zum Beispiel ein Element, das als Verarbeitungsanweisungs-Tag bekannt ist, das ein „Escape Hatch" bereitstellt, das es ermöglicht, dass für eine Anwendung spezifische Informationen bzw. Daten in ein XML-Dokument eingebettet werden können. Verarbeitungsanweisungen gelten nicht als Bestandteil des Zeichendateninhalts eines XML-Dokuments, vielmehr werden sie immer durch den Parser an die XML-Anwendung weitergeleitet. Das Format lautet <?...?> für das Verarbeitungsanweisungs-Tag. Gemäß einem Ausführungsbeispiel kann somit nach der Entfernung der Validierungsanweisungen (oder der DTD oder des Schemas oder des Verweises darauf) der folgende Hinweis oder das Anweisungs-Tag nahe dem Anfang des Dokuments (oder an anderer Stelle) hinzugefügt werden: <? validiert durch Intel? >.
  • Durch Vorab-Validierung des Dokuments und folgendes Entfernen der Validierungsanweisungen aus dem Dokument (und/oder Hinzufügen einer Anzeige für die Vorab-Validierung des Dokuments oder der Nachricht) wird der aufwändige Schritt der Validierung aus dem Anwendungsserver auf eine Netzwerkvorrichtung, eine Netzwerkeinheit oder ein anderes System abgeladen (das zum Beispiel als der Validierungsbeschleuniger 142 bezeichnet werden kann).
  • Darüber hinaus ist ein lokaler Cache 420 vorgesehen, um eine dynamische Cache-Speicherung der zuletzt verwendeten (oder üblichsten) Anordnung von Validierungsvorlagen vorzunehmen. Somit weist jedes Dokument, das eine Validierung erfordert, für gewöhnlich eine interne Validierungsvorlage (oder in dem Dokument) auf oder weist einen Verweis oder Zeiger (z.B. einen Universal Resource Identifier oder URL) auf, um eine externe Vorlage zu identifizieren. Der lokale Cache wird abgerufen oder angefragt, um zu bestimmen, ob die erforderliche Vorlage lokal gespeichert wird. Wenn dies nicht der Fall ist, wird die Vorlage aus dem Netzwerk abgerufen und danach zur späteren Verwendung lokale im Cache gespeichert. Dies ermöglicht es dem Validierungsbeschleuniger 142, die Zeit oder Latenz für die Validierung eines Dokuments signifikant zu reduzieren, da eine Vorlage nur einmal von dem Netzwerk abgerufen werden muss. Danach wird die Vorlage intern oder inline bereitgestellt oder kann aus dem lokalen Cache abgerufen werden.
  • Gemäß einem Ausführungsbeispiel kann der Cache mit einer festen Größe als Nutzungs-basierter Stapel bzw. Stack implementiert werden, so dass Validierungsvorlagen, auf die häufiger zugegriffen wird, automatisch weniger häufig verwendete Vorlagen aus dem Stapel schieben, wenn dieser überläuft. Gemäß einem Ausführungsbeispiel kann ein LRU-Algorithmus (für die letzte Verwendung) eingesetzt werden, um die zuletzt verwendeten Validierungsvorlagen in dem lokalen Cache zu halten und um die weniger häufig verwendeten Vorlagen zu entsorgen (oder in einen anderen Speicher zu verschieben, wie etwa einen RAM-Speicher oder ein Festplattenlaufwerk). Auf diese Weise kann die Zeit für den Abruf oder das Erhalten einer externen Komponente der Validierungsvorlage (oder einer externen Validierungsvorlage) erheblich reduziert werden.
  • In erneutem Bezug auf die Abbildung aus 4 wird das Dokument in dem Block 414 validiert. Wenn das Dokument gültig ist wird das vorab validierte Dokument (gemeinsam mit der Anzeige der Vorab-Validierung) an einen Anwendungsserver weitergeleitet. Wenn das Dokument hingegen ungültig ist (d.h. es stimmt nicht mit der Struktur und Grammatik überein, welche die Validierungsvorlage voraussetzt), so gibt es verschiedene Möglichkeiten. Das ungültige Dokument kann an einen Anwendungsserver weitergeleitet werden (ohne Löschen der Validierungsanweisung und ohne Hinzufügen einer Anzeige der Vorab-Validierung). Alternativ kann die ungültige Nachricht blockiert oder nicht an einen Server weitergeleitet werden. Ob blockiert oder weitergeleitet kann der Validierungsbeschleuniger 142 eine Nachricht an den ursprünglichen Knoten (oder Sender) senden, dass die Nachricht oder das Dokument ungültig ist.
  • Wie dies bereits vorstehend im Text beschrieben worden ist, kann eine Anzeige für die Vorab-Validierung einem Dokument oder einer Nachricht hinzugefügt werden, nachdem die Nachricht oder die Daten validiert worden ist bzw. sind. Diese Anzeige für die Vorab-Validierung kann eine implizite Form fehlender (oder entfernter) Validierungsanweisungen darstellen (d.h. wenn das Fehlen der Validierungsanweisungen anzeigt, dass das Dokument gültig ist oder validiert worden ist). Alternativ kann die Anzeige für eine Vorab-Validierung in Form einer ausdrücklichen Aussage oder Anzeige vorgesehen sein (z.B. einer Aussage, einer Anweisung oder eines Hinweises, die bzw. der der Nachricht oder dem Dokument hinzugefügt wird), die anzeigt, dass die Nachricht oder die Anwendungsdaten validiert ist bzw. sind.
  • Der Validierungsbeschleuniger 142 wurde vorstehend beschrieben, dass er die Validierung unter Verwendung einer Validierungsvorlage vornimmt, wobei der Validierungsbeschleuniger 142 in einem anderen Ausführungsbeispiel lediglich das Dokument parst und bestimmt, ob die Anwendungsdaten in dem Dokument ordnungsgemäß gestaltet sind (d.h. die grundlegenden Voraussetzungen hinsichtlich der Syntax und des Formats für die Sprache erfüllen). Eine Anzeige für eine Vorab-Validierung kann danach hinzugefügt werden, um dem Anwendungsserver anzuzeigen, dass die Nachricht oder das Dokument ordnungsgemäß gestaltet ist (z.B. die erforderliche Syntax erfüllt).
  • Die Abbildung aus 5 zeigt ein Blockdiagramm, das eine Netzwerkvorrichtung gemäß einem weiteren Ausführungsbeispiel veranschaulicht. Gemäß einem Ausführungsbeispiel kann die Netzwerkvorrichtung 505 einen oder mehrere der in der Abbildung aus 5 abgebildeten Blöcke aufweisen. Zum Beispiel kann zusätzlich zu dem Validierungsbeschleuniger 142 eine Netzwerkvorrichtung 505 einen Sicherheitsbeschleuniger 515, einen Inhalts-basierten Nachrichtendirektor 545 und/oder einen Lastverteiler 550 aufweisen. Alternativ können alle vier Komponenten in einer Netzwerkvorrichtung 505 bereitgestellt werden oder jede beliebige Teilkombination.
  • Der Sicherheitsbeschleuniger 515 ist zur Verschlüsselung abgehender Nachrichten und/oder zum Entschlüsseln eingehender Nachrichten verwendet werden, die von dem Netzwerk 130 empfangen werden. Gemäß einem Ausführungsbeispiel handelt es sich bei den Sicherheitsbeschleuniger 515 um einen Secure Sockets Layer (SSL) Beschleuniger, der von der Intel Corporation erhältlich ist. Der Sicherheitsbeschleuniger 515 ermöglicht das Abladen von Aufgaben in Bezug auf die Sicherheit von den Anwendungsservern an den Sicherheitsbeschleuniger 515.
  • Der Inhalts-basierte Nachrichtendirektor 545 (z.B. ein XML-Direktor) wird bereitgestellt, um empfangene Nachrichten an einen der Verarbeitungsknoten oder Anwendungsserver zu leiten bzw. zu richten, und zwar auf der Basis des Inhalts der Anwendungsdaten in der Nachricht, einschließlich geschäftlicher Transaktionsdaten. Die Anwendungsdaten (einschließlich geschäftlicher Transaktionsdaten) können in vorteilhafter Weise als eine XML-basierte Sprache bereitgestellt werden.
  • Der Lastverteiler 550 wird bereitgestellt, um den Verkehr oder die Nachrichten unter einem oder mehreren Servern oder Verarbeitungsknoten innerhalb des Datenzentrums 135 zu verteilen, und zwar auf der Basis von einem oder mehreren Lastverteilungsalgorithmen, wie etwa einem Round Robin- oder einem anderen Algorithmus.
  • Wenn der Lastverteiler 550 und der Nachrichtendirektor 545 gemäß einem Ausführungsbeispiel gemeinsam verwendet werden, kann der Nachrichtendirektor 545 eine Umschaltentscheidung auf der Basis des Inhalts der Anwendungsdaten (einschließlich geschäftlicher Transaktionsdaten) treffen. Der Lastverteiler 550 kann danach die Nachricht auf einen Server oder Knoten umschalten, und zwar auf der Basis (teilweise) der Umschaltentscheidung. Alternativ kann der Nachrichtendirektor 545 eine Umschaltentscheidung treffen und danach lediglich die Nachricht an einen bestimmten Server oder Knoten leiten bzw. weiterleiten.
  • Hierin werden verschiedene Ausführungsbeispiele der vorliegenden Erfindung speziell veranschaulicht und/oder beschrieben. Hiermit wird jedoch festgestellt, dass Modifikationen und Abänderungen der vorliegenden Erfindung durch die vorstehenden Lehren abgedeckt sind und den Definitionen der anhängigen Ansprüche entsprechen, ohne dabei von dem beabsichtigten Umfang der Erfindung abzuweichen.

Claims (13)

  1. Netzwerkvorrichtung, die zwischen ein Netzwerk und eine Mehrzahl von Verarbeitungsknoten oder Anwendungsserver gekoppelt ist, wobei die Netzwerkvorrichtung einen Validierungsbeschleuniger (142) umfasst: a. zum Validieren mindestens eines Teils einer Nachricht; b. um Validierungsanweisungen aus der Nachricht zu entfernen, bevor die Nachricht an einen Anwendungsserver (150-170) oder einen anderen Verarbeitungsknoten übermittelt wird; und c. um in der Nachricht eine Anzeige bereitzustellen, dass mindestens ein Teil der Nachricht validiert worden ist, wobei das Fehlen von Validierungsanweisungen in der Nachricht die Anzeige bereitstellt, dass die Nachricht bereits validiert worden ist oder nicht validiert werden muss.
  2. Netzwerkvorrichtung nach Anspruch 1, wobei der Validierungsbeschleuniger einen XML-Validierungsbeschleuniger zum Validieren von XML-Nachrichten umfasst.
  3. Netzwerkvorrichtung nach Anspruch 1, wobei der Validierungsbeschleuniger ferner einen lokalen Cache zum Speichern von Validierungsvorlagen umfasst.
  4. Netzwerkvorrichtung nach einem der vorstehenden Ansprüche, wobei das Netzwerk folgendes aufweist: (i) einen Sicherheitsbeschleuniger; (ii) einen auf Inhalten basierten Nachrichtendirektor, der mit dem Sicherheitsbeschleuniger oder dem Validierungsbeschleuniger gekoppelt ist, wobei der auf Inhalten basierte Nachrichtendirektor eine Umschaltungs- oder Routingentscheidung hinsichtlich einer empfangenen Nachricht auf der Basis der in der empfangenen Nachricht enthaltenen Transaktionsinformationen trifft; und (iii) einen Lastverteiler, der mit dem auf Inhalten basierten Nachrichtendirektor gekoppelt ist, um die Nachricht an einen einer Mehrzahl von Verarbeitungsknoten oder Anwendungsservern auf der Basis der Umschaltungsentscheidung zu leiten oder umzuschalten.
  5. Netzwerkvorrichtung nach Anspruch 4, wobei die Transaktionsinformationen in XML bereitgestellte Geschäftstransaktionsinformationen umfassen, und wobei der auf Inhalten basierte Nachrichtendirektor einen XML-Direktor umfasst, um eine Routing- oder Umschaltungsentscheidung zum Leiten einer empfangenen Nachricht auf der Basis des. Inhalts der XML-Daten zu treffen.
  6. Netzwerkvorrichtung nach Anspruch 4, wobei der Sicherheitsbeschleuniger einen SSL-Beschleuniger umfasst.
  7. Verfahren zum Empfangen einer Nachricht mit Validierungsanweisungen an einer Netzwerkvorrichtung, die zwischen ein Netzwerk und eine Mehrzahl von Verarbeitungsknoten oder Anwendungsserver gekoppelt ist, wobei das Verfahren folgendes umfasst: a) das Validieren mindestens eines Teils der Nachricht; b) das Entfernen der Validierungsanweisungen aus der Nachricht, bevor die Nachricht zu einem Anwendungsserver (150-170) oder einem Verarbeitungsknoten gesendet wird; und c) das Bereitstellen einer Anzeige in der Nachricht, dass zumindest ein Teil der Nachricht bereits validiert worden ist, wobei das Fehlen von Validierungsanweisungen anzeigt, dass die Nachricht bereits validiert worden ist oder nicht validiert werden muss.
  8. Verfahren nach Anspruch 7, wobei das Bereitstellen das Hinzufügen einer Anzeige zu der Nachricht umfasst, die anzeigt, dass die Nachricht bereits validiert worden ist oder nicht validiert werden muss.
  9. Verfahren nach Anspruch 7, wobei das Verfahren ferner folgendes umfasst: das Erhalten einer Validierungsvorlage für die Nachricht auf der Basis der Validierungsanweisungen; und das Validieren mindestens eines Teils der Anwendungsdaten auf der Basis der Validierungsvorlage.
  10. Verfahren nach Anspruch 9, wobei das Erhalten einer Validierungsvorlage das Analysieren einer internen Validierungsvorlage aus den Validierungsnachrichten in der Nachricht aufweist.
  11. Verfahren nach Anspruch 9, wobei das Erhalten einer Validierungsvorlage das Erhalten einer externen Validierungsvorlage von einem Netzwerk auf der Basis eines externen Bezeichners umfasst.
  12. Verfahren nach Anspruch, implementiert als ein Computerprogramm.
  13. Verfahren nach einem der vorstehenden Ansprüche, wobei die Nachricht eine XML-Nachricht umfasst.
DE60127247T 2000-05-01 2001-04-03 Netzwerkeinrichtung zur dokumentengültigkeitserklärung Expired - Lifetime DE60127247T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US562104 2000-05-01
US09/562,104 US7146422B1 (en) 2000-05-01 2000-05-01 Method and apparatus for validating documents based on a validation template
PCT/US2001/010917 WO2001084358A1 (en) 2000-05-01 2001-04-03 A network apparatus for validating documents

Publications (2)

Publication Number Publication Date
DE60127247D1 DE60127247D1 (de) 2007-04-26
DE60127247T2 true DE60127247T2 (de) 2007-08-23

Family

ID=24244809

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60127247T Expired - Lifetime DE60127247T2 (de) 2000-05-01 2001-04-03 Netzwerkeinrichtung zur dokumentengültigkeitserklärung

Country Status (8)

Country Link
US (1) US7146422B1 (de)
EP (1) EP1279115B1 (de)
CN (1) CN100407194C (de)
AT (1) ATE357024T1 (de)
AU (1) AU2001249840A1 (de)
DE (1) DE60127247T2 (de)
TW (1) TW583557B (de)
WO (1) WO2001084358A1 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732175B1 (en) 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
US20040220815A1 (en) * 2000-08-18 2004-11-04 Johanne Belanger Apparatus and method for the compilation, assembly, and distribution of product documentation and associated information
US7831655B2 (en) * 2001-10-18 2010-11-09 Bea Systems, Inc. System and method for implementing a service adapter
US7516447B2 (en) 2002-02-22 2009-04-07 Bea Systems, Inc. Methods and apparatus for building, customizing and using software abstractions of external entities
US8135772B2 (en) 2002-05-01 2012-03-13 Oracle International Corporation Single servlets for B2B message routing
US7155438B2 (en) 2002-05-01 2006-12-26 Bea Systems, Inc. High availability for event forwarding
US7676538B2 (en) 2002-05-02 2010-03-09 Bea Systems, Inc. Systems and methods for application view transactions
US7222148B2 (en) 2002-05-02 2007-05-22 Bea Systems, Inc. System and method for providing highly available processing of asynchronous service requests
US20030236813A1 (en) * 2002-06-24 2003-12-25 Abjanic John B. Method and apparatus for off-load processing of a message stream
US6988099B2 (en) 2002-06-27 2006-01-17 Bea Systems, Inc. Systems and methods for maintaining transactional persistence
US7774831B2 (en) * 2002-12-24 2010-08-10 International Business Machines Corporation Methods and apparatus for processing markup language messages in a network
US7584474B2 (en) 2003-02-25 2009-09-01 Bea Systems, Inc. Systems and methods for transaction chaining
US7752599B2 (en) 2003-02-25 2010-07-06 Bea Systems Inc. Systems and methods extending an existing programming language with constructs
US7774697B2 (en) 2003-02-25 2010-08-10 Bea Systems, Inc. System and method for structuring distributed applications
US7293038B2 (en) 2003-02-25 2007-11-06 Bea Systems, Inc. Systems and methods for client-side filtering of subscribed messages
US20040167915A1 (en) * 2003-02-25 2004-08-26 Bea Systems, Inc. Systems and methods for declaratively transforming data objects between disparate representations
US8032860B2 (en) 2003-02-26 2011-10-04 Oracle International Corporation Methods for type-independent source code editing
US7707564B2 (en) 2003-02-26 2010-04-27 Bea Systems, Inc. Systems and methods for creating network-based software services using source code annotations
US7650276B2 (en) 2003-02-26 2010-01-19 Bea Systems, Inc. System and method for dynamic data binding in distributed applications
US7650592B2 (en) 2003-03-01 2010-01-19 Bea Systems, Inc. Systems and methods for multi-view debugging environment
US7472413B1 (en) 2003-08-11 2008-12-30 F5 Networks, Inc. Security for WAP servers
US7657832B1 (en) * 2003-09-18 2010-02-02 Adobe Systems Incorporated Correcting validation errors in structured documents
US20050114148A1 (en) * 2003-11-20 2005-05-26 International Business Machines Corporation System, apparatus and method of automatically verifying conformance of documents to standardized specifications
TW200523762A (en) * 2004-01-05 2005-07-16 Via Tech Inc An electronic form system and corresponding method
US7451211B2 (en) * 2004-01-23 2008-11-11 Microsoft Corporation Message exchange pattern tracking to avoid invalid message exchange
GB0413034D0 (en) * 2004-06-10 2004-07-14 Scient Generics Ltd Secure workflow engine
US7555708B2 (en) * 2004-09-17 2009-06-30 Microsoft Corporation Mechanism for converting text output into objects
US20060085451A1 (en) * 2004-10-15 2006-04-20 Microsoft Corporation Mapping of schema data into data structures
US7475093B2 (en) * 2004-10-15 2009-01-06 Microsoft Corporation Memory cache management in XML/relational data mapping
US7665016B2 (en) 2005-11-14 2010-02-16 Sun Microsystems, Inc. Method and apparatus for virtualized XML parsing
US7665015B2 (en) 2005-11-14 2010-02-16 Sun Microsystems, Inc. Hardware unit for parsing an XML document
US7596745B2 (en) 2005-11-14 2009-09-29 Sun Microsystems, Inc. Programmable hardware finite state machine for facilitating tokenization of an XML document
US7716577B2 (en) 2005-11-14 2010-05-11 Oracle America, Inc. Method and apparatus for hardware XML acceleration
US9495356B2 (en) * 2006-03-30 2016-11-15 International Business Machines Corporation Automated interactive visual mapping utility and method for validation and storage of XML data
US7711755B2 (en) * 2006-05-17 2010-05-04 Topcoder, Inc. Dynamic XSD enumeration
US9535912B2 (en) * 2006-09-15 2017-01-03 Oracle International Corporation Techniques for checking whether a complex digital object conforms to a standard
US8266630B2 (en) * 2007-09-03 2012-09-11 International Business Machines Corporation High-performance XML processing in a common event infrastructure
US8271870B2 (en) 2007-11-27 2012-09-18 Accenture Global Services Limited Document analysis, commenting, and reporting system
US8266519B2 (en) * 2007-11-27 2012-09-11 Accenture Global Services Limited Document analysis, commenting, and reporting system
US8412516B2 (en) 2007-11-27 2013-04-02 Accenture Global Services Limited Document analysis, commenting, and reporting system
EP2362333A1 (de) 2010-02-19 2011-08-31 Accenture Global Services Limited System zur Anforderungsidentifikation und Analyse basierend auf einer Fähigkeitsmodellstruktur
US8434134B2 (en) 2010-05-26 2013-04-30 Google Inc. Providing an electronic document collection
US8566731B2 (en) 2010-07-06 2013-10-22 Accenture Global Services Limited Requirement statement manipulation system
US9374437B2 (en) * 2010-12-30 2016-06-21 Sap Se Schema validation proxy
US9400778B2 (en) 2011-02-01 2016-07-26 Accenture Global Services Limited System for identifying textual relationships
US8935654B2 (en) 2011-04-21 2015-01-13 Accenture Global Services Limited Analysis system for test artifact generation
US8856640B1 (en) 2012-01-20 2014-10-07 Google Inc. Method and apparatus for applying revision specific electronic signatures to an electronically stored document
US11308037B2 (en) 2012-10-30 2022-04-19 Google Llc Automatic collaboration
US9529916B1 (en) 2012-10-30 2016-12-27 Google Inc. Managing documents based on access context
US9384285B1 (en) 2012-12-18 2016-07-05 Google Inc. Methods for identifying related documents
US9495341B1 (en) 2012-12-18 2016-11-15 Google Inc. Fact correction and completion during document drafting
US9501456B2 (en) * 2013-03-15 2016-11-22 Altova Gmbh Automatic fix for extensible markup language errors
US9514113B1 (en) 2013-07-29 2016-12-06 Google Inc. Methods for automatic footnote generation
US9842113B1 (en) 2013-08-27 2017-12-12 Google Inc. Context-based file selection
US9529791B1 (en) 2013-12-12 2016-12-27 Google Inc. Template and content aware document and template editing
US9703763B1 (en) 2014-08-14 2017-07-11 Google Inc. Automatic document citations by utilizing copied content for candidate sources
JP6903892B2 (ja) * 2016-10-12 2021-07-14 富士通株式会社 検証プログラム、検証装置、検証方法、符号化プログラム、符号化装置および符号化方法
US11194783B2 (en) * 2018-09-05 2021-12-07 International Business Machines Corporation Multiple parameter based composite rule wise data validation in cloud hybrid model
US11816662B2 (en) 2019-12-06 2023-11-14 Mastercard International Incorporated Method and system for enabling communication between blockchains on heterogeneous blockchain networks
US11954678B2 (en) 2019-12-06 2024-04-09 Mastercard International Incorporated Method and system for communication between blockchains on heterogeneous blockchain networks

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4216462A (en) 1978-03-06 1980-08-05 General Electric Company Patient monitoring and data processing system
US5396613A (en) 1992-11-05 1995-03-07 University Of Utah Research Foundation Method and system for error recovery for cascaded servers
US5951300A (en) 1997-03-10 1999-09-14 Health Hero Network Online system and method for providing composite entertainment and health information
US5473691A (en) 1993-11-05 1995-12-05 Microsoft Corporation System and method for computer data transmission
US5634010A (en) 1994-10-21 1997-05-27 Modulus Technologies, Inc. Managing and distributing data objects of different types between computers connected to a network
US6571279B1 (en) * 1997-12-05 2003-05-27 Pinpoint Incorporated Location enhanced information delivery system
US5550984A (en) 1994-12-07 1996-08-27 Matsushita Electric Corporation Of America Security system for preventing unauthorized communications between networks by translating communications received in ip protocol to non-ip protocol to remove address and routing services information
US6076107A (en) 1995-05-09 2000-06-13 International Business Machines Corporation Method for reducing SNMP instrumentation message flows
US5678010A (en) 1995-06-07 1997-10-14 Compuserve Incorporated Automated routing of messages over a network
US5862344A (en) 1995-08-28 1999-01-19 Ncr Corporation Apparatus and methods for routing data packets through a processing system network
AR003524A1 (es) * 1995-09-08 1998-08-05 Cyber Sign Japan Inc Un servidor de verificacion para ser utilizado en la autenticacion de redes de computadoras.
GB2305270A (en) 1995-09-15 1997-04-02 Ibm Bridge for a client-server environment
WO1997014236A1 (en) 1995-09-25 1997-04-17 Motorola Inc. Method and apparatus for relaying digitally signed messages
US5778178A (en) 1995-11-13 1998-07-07 Arunachalam; Lakshmi Method and apparatus for enabling real-time bi-directional transactions on a network
US5870605A (en) 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
US6018721A (en) 1996-05-20 2000-01-25 Citibank, N.A. Method and system for improved collateral monitoring and control
US5987132A (en) 1996-06-17 1999-11-16 Verifone, Inc. System, method and article of manufacture for conditionally accepting a payment method utilizing an extensible, flexible architecture
US6002767A (en) 1996-06-17 1999-12-14 Verifone, Inc. System, method and article of manufacture for a modular gateway server architecture
US6026379A (en) 1996-06-17 2000-02-15 Verifone, Inc. System, method and article of manufacture for managing transactions in a high availability system
US5875242A (en) 1996-07-26 1999-02-23 Glaser; Lawrence F. Telecommunications installation and management system and method
US5896379A (en) 1996-08-26 1999-04-20 Motorola, Inc. Network node for packet switching with selective data processing and method therefor
US5937165A (en) 1996-09-10 1999-08-10 Ganymede Software, Inc Systems, methods and computer program products for applications traffic based communications network performance testing
US5931917A (en) 1996-09-26 1999-08-03 Verifone, Inc. System, method and article of manufacture for a gateway system architecture with system administration information accessible from a browser
JPH10126439A (ja) 1996-10-17 1998-05-15 Fujitsu Ltd パケット交換通信網のルート選択装置
US5951650A (en) 1997-01-31 1999-09-14 International Business Machines Corporation Session traffic splitting using virtual internet protocol addresses associated with distinct categories of application programs irrespective of destination IP address
US6038488A (en) * 1997-02-27 2000-03-14 Bertec Corporation Catheter simulation device
US5995625A (en) 1997-03-24 1999-11-30 Certco, Llc Electronic cryptographic packing
US5943478A (en) 1997-04-04 1999-08-24 Flash Communications, Inc. System for immediate popup messaging across the internet
US6011910A (en) 1997-04-08 2000-01-04 3Com Corporation Supporting authentication across multiple network access servers
US6167523A (en) * 1997-05-05 2000-12-26 Intel Corporation Method and apparatus for forms data validation and processing control
US6167438A (en) 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6366663B1 (en) * 1997-07-21 2002-04-02 Mci Communications Corporation System for achieving local number portability
US6006264A (en) 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6061734A (en) * 1997-09-24 2000-05-09 At&T Corp System and method for determining if a message identifier could be equivalent to one of a set of predetermined indentifiers
US6621505B1 (en) 1997-09-30 2003-09-16 Journee Software Corp. Dynamic process-based enterprise computing system and method
US6032190A (en) 1997-10-03 2000-02-29 Ascend Communications, Inc. System and method for processing data packets
US6105008A (en) 1997-10-16 2000-08-15 Visa International Service Association Internet loading system using smart card
US6219691B1 (en) 1997-11-19 2001-04-17 At&T Corporation Communication circulation system and method for communication in a network
US6091724A (en) 1997-11-20 2000-07-18 International Business Machines Corporation Routing messages within a network using the data content of the message
US6567853B2 (en) * 1997-12-08 2003-05-20 International Business Machines Corporation Scalable I/O system for the efficient transfer of storage device data by a non-server reconnection
US6266335B1 (en) 1997-12-19 2001-07-24 Cyberiq Systems Cross-platform server clustering using a network flow switch
US6018801A (en) 1998-02-23 2000-01-25 Palage; Michael D. Method for authenticating electronic documents on a computer network
US6012098A (en) 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
IE980959A1 (en) * 1998-03-31 1999-10-20 Datapage Ireland Ltd Document Production
US6167448A (en) 1998-06-11 2000-12-26 Compaq Computer Corporation Management event notification system using event notification messages written using a markup language
JP2000048024A (ja) * 1998-07-28 2000-02-18 Hitachi Ltd 構造化文書処理装置
US6512824B1 (en) * 1998-08-10 2003-01-28 Adc Services Fulfillment, Inc. Proxy database for element management system of telephone switching network
US6442588B1 (en) 1998-08-20 2002-08-27 At&T Corp. Method of administering a dynamic filtering firewall
US6480865B1 (en) 1998-10-05 2002-11-12 International Business Machines Corporation Facility for adding dynamism to an extensible markup language
US6584459B1 (en) 1998-10-08 2003-06-24 International Business Machines Corporation Database extender for storing, querying, and retrieving structured documents
EP1038251A2 (de) * 1998-10-16 2000-09-27 Commerce One, Inc. Dokumente für den handel in partnernetzwerken und schnittstellen-definitionen auf basis der dokumente
US6226675B1 (en) 1998-10-16 2001-05-01 Commerce One, Inc. Participant server which process documents for commerce in trading partner networks
US6256676B1 (en) * 1998-11-18 2001-07-03 Saga Software, Inc. Agent-adapter architecture for use in enterprise application integration systems
US6507856B1 (en) 1999-01-05 2003-01-14 International Business Machines Corporation Dynamic business process automation system using XML documents
US6480860B1 (en) 1999-02-11 2002-11-12 International Business Machines Corporation Tagged markup language interface with document type definition to access data in object oriented database
US6507857B1 (en) 1999-03-12 2003-01-14 Sun Microsystems, Inc. Extending the capabilities of an XSL style sheet to include components for content transformation
US6766305B1 (en) * 1999-03-12 2004-07-20 Curl Corporation Licensing system and method for freely distributed information
US6519617B1 (en) * 1999-04-08 2003-02-11 International Business Machines Corporation Automated creation of an XML dialect and dynamic generation of a corresponding DTD
US6343738B1 (en) 1999-05-15 2002-02-05 John W. L. Ogilvie Automatic broker tools and techniques
US6654914B1 (en) 1999-05-28 2003-11-25 Teradyne, Inc. Network fault isolation
US6400381B1 (en) * 1999-06-11 2002-06-04 International Business Machines Corporation Web places
JP2001005778A (ja) * 1999-06-22 2001-01-12 Fujitsu Ltd 選別仲介装置、送信装置、選別仲介プログラム記憶媒体および送信プログラム記憶媒体
US6408311B1 (en) 1999-06-30 2002-06-18 Unisys Corp. Method for identifying UML objects in a repository with objects in XML content
US6477646B1 (en) 1999-07-08 2002-11-05 Broadcom Corporation Security chip architecture and implementations for cryptography acceleration
US6631497B1 (en) * 1999-07-19 2003-10-07 International Business Machines Corporation Binding data from data source to cells in a spreadsheet
US6675219B1 (en) * 1999-11-01 2004-01-06 Nokia Corporation Technique for improving throughput of a gateway interface
US6591260B1 (en) * 2000-01-28 2003-07-08 Commerce One Operations, Inc. Method of retrieving schemas for interpreting documents in an electronic commerce system
US20020099734A1 (en) 2000-11-29 2002-07-25 Philips Electronics North America Corp. Scalable parser for extensible mark-up language
US6925631B2 (en) 2000-12-08 2005-08-02 Hewlett-Packard Development Company, L.P. Method, computer system and computer program product for processing extensible markup language streams
EP1227385A3 (de) 2001-01-24 2005-11-23 Matsushita Electric Industrial Co., Ltd. Integrierte Halbleiterschaltung
US6658260B2 (en) 2001-09-05 2003-12-02 Telecommunication Systems, Inc. Inter-carrier short messaging service providing phone number only experience

Also Published As

Publication number Publication date
CN100407194C (zh) 2008-07-30
WO2001084358A1 (en) 2001-11-08
EP1279115A1 (de) 2003-01-29
AU2001249840A1 (en) 2001-11-12
EP1279115B1 (de) 2007-03-14
CN1439132A (zh) 2003-08-27
US7146422B1 (en) 2006-12-05
ATE357024T1 (de) 2007-04-15
DE60127247D1 (de) 2007-04-26
TW583557B (en) 2004-04-11

Similar Documents

Publication Publication Date Title
DE60127247T2 (de) Netzwerkeinrichtung zur dokumentengültigkeitserklärung
DE60028561T2 (de) Bereitstellung von kundendiensten, die daten aus datenquellen abrufen, wobei die datenquellen die vom kunden geforderten formate nicht notwendigerweise unterstützen
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE69825649T2 (de) Verfahren und System zur Übergabe von Informationen über Schmalbandübertragungsstrecken
DE69926940T2 (de) Verfahren und System zum Auslagern der Konversionen von Nachrichtenanhängen
DE60208786T2 (de) Übertragungskontrolle für objekte in einem kommunikationsnetzwerk
EP1887484B1 (de) Verfahren zum vorabübertragen strukturierter datenmengen zwischen einer clienteinrichtung und einer servereinrichtung
DE69728182T2 (de) Verfahren und gerät zum entfernten netzwerkzugriffseintrag und netzwerkzugriffsbericht
DE69732605T2 (de) Dynamisches Cachespeicher-Vorladen über lose gekoppelte administrative Bereiche
DE69838262T2 (de) Allgemeine benutzer-authentifizierung für netz-rechner
DE69832786T2 (de) Vorrichtung und verfahren zur identifizierung von klienten die an netzwer-sites zugreifen
DE69833899T2 (de) Dynamische Datenübertragungsvorrichtung und Verfahren
DE202008013034U1 (de) System zum Beschleunigen von Browsing-Sitzungen
DE10135444A1 (de) Verfahren für die Neuausrichtung der Quelle eines in einem HTML-Dokument dargestellten Datenobjekts
DE60314748T2 (de) Kommunikationssystem, Mobileinrichtung und Verfahren zur Speicherung von Seiten in einer Mobileinrichtung
DE112011103526T5 (de) Zwischenspeichern von Inhalt mit entfernt angeordneten Filterdiensten in einem Funkzugangsnetz
DE60032168T2 (de) Verfahren zur erhöhung des durchsatzes eines wap-gateways
EP1620810B1 (de) Verfahren und anordnung zur einrichtung und aktualisierung einer benutzeroberfl che zum zugriff auf informationsseiten in ein em datennetz
DE10352400A1 (de) Netzwerkdienst-Abfangvorrichtung
DE10118064A1 (de) Erweiterung Browser-Bezogener Internetseiteninhaltskennzeichen und Kennwortüberprüfung auf Kommunikationsprotokolle
DE202022106163U1 (de) Ein blockchain-basiertes System für Datensicherheit und -verwaltung im Internet der Dinge
EP3528473A1 (de) Verfahren, client-computer und computerprogramm zur ausführung von quellcode an einem client-computer
WO2002043365A2 (de) Verfahren und vorrichtung zum darstellen eines aus pixeln aufgebauten bildes
DE69834647T2 (de) System, verfahren und program zur dynamischen transkodierung von zwischen rechnern uebertragenen daten
DE102012025351B4 (de) Verarbeitung eines elektronischen Dokuments

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806