DE60308325T2 - Informationswegeleitung - Google Patents

Informationswegeleitung Download PDF

Info

Publication number
DE60308325T2
DE60308325T2 DE60308325T DE60308325T DE60308325T2 DE 60308325 T2 DE60308325 T2 DE 60308325T2 DE 60308325 T DE60308325 T DE 60308325T DE 60308325 T DE60308325 T DE 60308325T DE 60308325 T2 DE60308325 T2 DE 60308325T2
Authority
DE
Germany
Prior art keywords
information
function
block
fields
output
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 - Fee Related
Application number
DE60308325T
Other languages
English (en)
Other versions
DE60308325D1 (de
Inventor
M. Jacoby THWAITES
Michaelhouse Management Limited Bimal PATEL
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.)
Abgenial Systems Inc
Original Assignee
Abgenial Systems Inc
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 Abgenial Systems Inc filed Critical Abgenial Systems Inc
Application granted granted Critical
Publication of DE60308325D1 publication Critical patent/DE60308325D1/de
Publication of DE60308325T2 publication Critical patent/DE60308325T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Saccharide Compounds (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Communication Control (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf Prozesse und Mittel, durch die mehrere Computer in vernetzten Systemen in die Lage versetzt werden, Informationen verfügbar zu machen und/oder auszutauschen. Insbesondere ist die Erfindung auf eine verbesserte Bereitstellung eines integrierten Systems für den Zugriff auf und die Verwendung von Informationen durch irgendeines oder mehrere von mehreren Computersystemen gerichtet, ohne dass speziell programmierte Antworten oder Anforderungen in oder von den Bezirkssystemen erforderlich sind.
  • Das Dokument US 6216173 offenbart ein Routing-System, das den Inhalt und die Anforderungen von Daten und Dienstanforderungen und die Fähigkeiten von über das System verfügbaren Diensten kennt. Eine Dienstanforderung wird zur Erfüllung der Anforderung zu dem am besten geeigneten Dienst oder zu der am besten geeigneten Kombination von Diensten geleitet. Die Routing-Entscheidungen beruhen auf dem Inhalt und auf den Eigenschaften der Informationen.
  • Ein Informations-Routing-Verfahren und die physikalische Implementierung eines Informations-Routers mit solchen Eigenschaften sind in der europäischen Patentanmeldung EP 01306806.9 (veröffentlicht am 13. Februar 2002 als EP 1179928 ) im Namen des Anmelders dieser Anmeldung beschrieben.
  • Die Anmeldung EP 01306806.9 beschreibt ein Verfahren zum Ermöglichen des Austauschs und der Verarbeitung von Informationen in und zwischen mehreren Blöcken (wobei ein Block als ein Informationen bereitstellendes oder Informationen verarbeitendes Element – d. h. als ein Informationsanwender oder als eine Informationsquelle oder als beides in einem integrierten Datennetz definiert ist), in dem wenigstens ein Block eine Anforderung zum Empfangen von Informationen von einem oder von mehreren weiteren Blöcken in dem Netz besitzt. Für das Management des Austauschs von Informationen zwischen Blöcken und für die Erfüllung einer spezifischen Informationsanforderung von dem Block, der eine Anforderung zum Empfangen von Informationen hat, nutzt das Verfahren eine Informations-Routing-Schicht; einzelne Blöcke, die Informationen im Netz bereitstellen oder verarbeiten können, werden bei der Informations-Routing-Schicht registriert; jede Informationseinheit wird in der Informations-Routing-Schicht als ein Feld in einem Datensatz behandelt, das eindeutig identifiziert und dem Block zugeordnet ist, der zuerst für die Bereitstellung von Informationen in einem solchen Datensatz verantwortlich ist; wobei die Informations-Routing-Schicht beim Empfang einer Informationsanforderung, die wenigstens ein Feld spezifiziert, so arbeitet, dass sie das oder jedes angeforderte Feld an eine echte Menge anpasst, die ein entsprechendes Feld (oder entsprechende Felder) umfasst, das aus einem verfügbaren Datensatz oder aus verfügbaren Datensätzen ausgewählt wird.
  • In den in der Anmeldung EP 01306806.9 beschriebenen Ausführungsformen können einer oder mehrere Blöcke außerdem eine Informationsverarbeitungsfähigkeit besitzen, um eines oder mehrere spezifizierte Ausgabefelder zu erzeugen, wenn für sie eines oder mehrere spezifizierte Eingabefelder bereitgestellt werden. Dies wird in der Informations-Routing-Schicht als eine Austauschmenge für jeden Block mit einer solchen Fähigkeit aufgezeichnet. Das Eingabefeld bzw. die Eingabefelder und das Ausgabefeld bzw. die Ausgabefelder werden für jeden solchen Block spezifiziert, und um die Erfüllung einer spezifischen Informationsanforderung zu ermöglichen, kann die Informations-Routing-Schicht eine Vereinigungsmenge eines oder mehrerer Felder von einem verfügbaren Datensatz oder von verfügbaren Datensätzen mit einer oder mit mehreren solchen Austauschmengen bilden.
  • Die Informations-Routing-Schicht schafft für einen Block die Möglichkeit, Informationen in dem Netz anzubieten oder zu befördern, Anforderungen für Informationen zu stellen und neue Informationen im Gegenzug für vorhandene Informationen auszutauschen. Die in Form von Datensätzen (Kombinationen von Feldnamen, Typen und anderen Komponenten) gespeicherten Informationen werden von einem Block zu einem anderen durch den Prozess des "Informations-Routing" befördert, so dass dort, wo es angebracht ist, ein vorhandener Datensatz ohne Programmbezugnahme oder spezifizierte Arbeitsablaufbezugnahme auf andere Blöcke unter Verwendung verfügbarer Austauschmengen bereitgestellt oder eine Vereinigungsmenge konstruiert werden kann, um eine Informationsanforderung von einem Block in dem integrierten Datennetz zu erfüllen. Dieses Merkmal schafft Vorteile hinsichtlich zweckmäßiger Skalierbarkeit, Elastizität und allgemeiner Anwendbarkeit.
  • Die Erfinder haben festgestellt, dass die Basis-Informations-Routing-Verfahren und -Vorrichtungen, die in der Anmeldung EP 01306806.9 beschrieben sind, eine Anzahl von Nachteilen und potentiellen Beschränkungen hatten.
  • Die vorliegende Erfindung schafft Verbesserungen und Entwicklungen der Informations-Routing-Verfahren und -Vorrichtungen, die in der Anmeldung EP 01306806.9 beschrieben sind, die die Vorteile verbesserter Leistung und zusätzlicher Funktionalität bieten.
  • Wenn in dem Basis-System ein Block der Informations-Routing-Schicht ein neues Feld 'a' zuführte, hatte die Informations-Routing-Schicht keine Mittel, um zu wissen, ob der Block außerdem die Absicht haben könnte, irgendein weiteres Feld oder irgendwelcher weiteren Felder bereitzustellen. Folglich berechnete die Informations-Routing-Schicht die mögliche Vereinigung verfügbarer Datensätze und Austauschmengen jedes Mal, wenn durch einen Block ein neues Feld bereitgestellt wurde, neu. Ein durch einen Block bereitgestelltes Feld 'a' könnte dann allein in einem Datensatz angeordnet werden, der sofort mit einer ersten Austauschmenge vereinigt werden könnte, die das Feld 'a' erfordert und Ausgabefelder (z. B.) 'b' und 'c', bereitstellt, die zu diesem Datensatz hinzugefügt würden. Wenn der Ursprungsblock tatsächlich plante, die Felder 'a' und 'b' selbst an die Informations-Routing-Schicht zu liefern, um zu ermöglichen, dass mit den Feldern 'a' und 'b' ein neuer Datensatz für die Vereinigung mit einer zweiten Austauschmenge erzeugt wird, um ein weiteres Ausgabefeld (z. B.) 'd' zu erhalten, würde diese Absicht unvermeidbar zunichte gemacht. (Der Anfangsdatensatz mit lediglich 'a' wäre vereinigt worden, um die Felder ('a, b, c') zu halten, und das durch den Ursprungsblock bereitgestellte zweite Feld 'b' wäre allein in einem neuen Datensatz angeordnet worden, der dann nicht beide Felder hätte, die für die Vereinigung mit einer zweiten Austauschmenge erforderlich wären.) Die vorliegende Erfindung löst dieses Problem, indem sie zulässt, dass ein Block erklärt, dass er beabsichtigt, für die Informations-Routing-Schicht eine Menge von Feldern bereitzustellen, wobei die Informations-Routing-Schicht die vollständige Menge zusammen in einem neuen Datensatz anordnen soll. Dies kann mittels einer wie unten weiter beschriebenen Anbieterfunktion erreicht werden. Dies bringt für die Informations-Routing-Schicht einen großen Leistungsvorteil, dass sie nicht jedes Mal, wenn ein Feld empfangen wird, die Leitwege zu den Vereinigungsmengen zu berechnen braucht. Stattdessen braucht die Leitwegberechnung lediglich nach dem Empfang einer vollständigen Menge von Feldern zu geschehen. Dies ist sehr wichtig, falls ein Block beabsichtigt, Hunderte von Feldern bereitzustellen. Das ursprüngliche System ermöglichte keine integrierten ausfallsicheren Mittel für die Erzeugung eines neuen Datensatzes in der Informations-Routing-Schicht im Ergebnis dessen, dass durch einen Block Informationen empfangen werden. Es waren zwei getrennte Operationen erforderlich: zunächst eine Informationsanforderung durch einen Block und daraufhin die Lieferung neuer Felder, die durch den Block nach der Erfüllung der Informationsanforderung aufgestellt wurden, an die Informations-Routing-Schicht. Allerdings würde diese Lieferung unter der Steuerung des Blocks stehen und für die Informations-Routing-Schicht immer unaufgefordert (und unverbunden mit der Informationsanforderung) erscheinen. Falls der Block intern versagen würde, so dass die vorgesehenen neuen Felder nie an die Informations-Routing-Schicht bereitgestellt würden, würde der Fehler der Informations-Routing-Schicht unbekannt sein und alle Prozesse, die diese Felder betreffen, wären nicht wieder herstellbar.
  • Die vorliegende Erfindung ermöglicht, dass die Operationen des Feldempfangs, der Feldverarbeitung und der Feldlieferung durch einen zu behandelnden Block durch die Informations-Routing-Schicht integriert betrachtet werden, d. h., entweder sind alle Operationen erfolgreich oder es werden alle als versagt betrachtet. Daraufhin kann die Informations-Routing-Schicht einen Prozess wiederherstellen, falls ein Block versagt. Ein Datensatz, der einem Block Felder zuführt, von dem dann erwartet wird, dass er Felder ausgibt, wird durch die Informations-Routing-Schicht erst in der Weise gekennzeichnet, dass er die durch einen Block angeforderten Felder zugeführt hat, nachdem der Block die zugesagten Ausgabefelder an die Informations-Routing-Schicht zurückgeliefert hat. Somit kann die Informations-Routing-Schicht den Prozess erneut versuchen oder alternative Mittel verwenden, falls der Block nichts liefert. Diese Integration wird mittels einer Benutzerfunktion erzielt, wie sie im Folgenden ausführlicher beschrieben wird. Die Informations-Routing-Schicht ist mit der Fähigkeit zur "Zeitüberschreitung" einer Funktion versehen, falls der relevante Block innerhalb einer Sollzeit nicht die vorgesehenen Ausgabefelder bereitstellt, um sie in einem neuen Datensatz anzuordnen.
  • Ferner schafft die vorliegende Erfindung Attribute, die nicht nur Datensätzen, wie in dem ursprünglichen System, sondern Austauschmengen (oder wie hier definierten Austauschfunktionen) und Benutzerfunktionen zuzuordnen sind. Das Wesen einer Funktion (z. B., ob sie als eine Austauschfunktion, deren Ausgabefelder in demselben Datensatz angeordnet werden müssen, wie er ihre Eingabefelder bereitstellt, oder als eine Benutzerfunktion, deren Ausgabefelder in einem neuen Datensatz anzuordnen sind, behandelt werden soll) kann durch ein der Funktion zugeordnetes Attribut bestimmt werden.
  • In dem ursprünglichen System gab es keine Möglichkeit, dass eine Laufzeitbedingung veranlasst, dass verschiedene Leitwege (oder Vereinigungsmengen) ausgewählt werden. Die vorliegende Erfindung schafft die Einrichtung einer Austauschmenge (oder Austauschfunktion) oder einer Benutzerfunktion, um eine Teilausgabe zu spezifizieren. Dies ist die Stelle, an der die Menge identifizierter Ausgabefunktionen durch eine Funktion tatsächlich bereitgestellt werden, wobei aber eines oder mehrere solche Ausgabefelder durch den Block zum Verwerfen beim Empfang durch die Informations-Routing-Schicht gekennzeichnet werden. Das Verwerfen kann dadurch bestimmt werden, dass der Block den Feldtyp oder ein einem Feld zugeordnetes Attribut zurücksetzt, das für die Informations-Routing-Schicht als ein Verwerf-Merker wirkt. Dies zwingt die Informations-Routing-Schicht, irgendeinen Gesamtleitweg, dessen Teil die Funktion, die die Teilausgabe bereitstellt, ist, neu zu berechnen, was bewirkt, dass ein bedingtes Routing oder eine bedingte Verzweigung ermöglicht wird.
  • Das ursprüngliche System erforderte, dass für einen zu erzeugenden Datensatz ein Feld vorhanden ist und dass ein Feld als Eingabe oder Ausgabe einer Austauschmenge (oder Austauschfunktion) spezifiziert wird. Die vorliegende Erfindung schafft die Einrichtung der Nullmengen von Feldern oder einer leeren Menge von Feldern, damit sie als Eingabe zu und/oder Ausgabe von einer Funktion bereitgestellt werden. Diese Einrichtung ermöglicht, dass eine Anzahl zusätzlicher Operationen stattfinden, was eine erhöhte Flexibilität für die Informations-Routing-Schicht und für die Blöcke schafft. Eine Austauschfunktion mit einer leeren Eingabe kann nur dann zur Lieferung von Ausgaben angefordert werden, wenn die Informations-Routing-Schicht eine leere Feldmenge bereitstellt – dies kann z. B. für Datums- oder Zeitstempel-Datensätze nützlich sein.
  • In dem ursprünglichen System gab es keine Einrichtung, durch die eine Funktion (z. B. eine Austauschmenge oder sogar eine Informationsanforderung selbst) als ein 'Terminator' wirken konnte, der die Entfernung eines Datensatzes verursacht, der die spezifizierten Eingabefelder bereitstellte. Es wird schnell unwahrscheinlicher, dass die 'Ablauf'-Einrichtung (durch die ein Datensatz entfernt wurde, wenn alle möglichen Kombinationen echter Mengen von Feldern bereitgestellt worden sind) angewendet wird, während die Anzahl von Feldern in dem Datensatz zunimmt.
  • Die vorliegende Erfindung ermöglicht, dass eine Funktion Attribute einschließlich eines Terminator-Attributs besitzt, wodurch ein Datensatz, der eine Funktion zuführt, die dieses Attribut besitzt, beim Abschluss dieser Funktion entfernt wird. Dies stellt eine wichtige praktische Organisationseinrichtung bereit, die sicherstellt, dass die Informations-Routing-Schicht und ihre Anwendungen effektiver arbeiten können, ohne dass das System durch ständig zunehmende Anzahlen praktisch redundanter Datensätze verstopft wird. Außerdem kann ein Datensatz ein Selbstzerstörungs-Attribut (oder 'Verwende-von'-Attribut) haben, um seine eigene Beseitigung sicherzustellen.
  • Folglich enthalten die durch die vorliegende Erfindung in ihren verschiedenen Aspekten gebotenen Verbesserungen z. B.:
    • – automatische ausfallsichere Verarbeitung, da irgendein Funktionsfehler dazu führt, dass es die Informations-Routing-Schicht unter Verwendung einer getrennten, gleichen Funktion oder eines neu berechneten äquivalenten Gesamtleitwegs erneut versuchen kann;
    • – automatischer Lastausgleich, da irgendein Block eine oder mehrere Funktionen bereitstellen kann, die gleich jenen sind, die bereits durch einen weiteren Block bereitgestellt worden sind. Falls jene eines Blocks zu dem Zeitpunkt, zu dem sie die Informations-Routing-Schicht aufzurufen versucht, belegt sind, können stattdessen jene eines anderen Blocks aufgerufen werden; automatische Parallelverarbeitung, da keine Funktion für ihren Betrieb von irgendeiner anderen Funktion abhängt. Die Informations-Routing-Schicht kann irgendeine Funktion verwenden, die Teil eines Gesamtleitwegs ist, sobald alle Eingabefelder für diese Funktion in einem Datensatz vorhanden sind;
    • – automatische Skalierung, da alle gleichen Funktionen einzeln oder insgesamt im Kontext getrennter Gesamtleitwege parallel ausgeführt werden können;
    • – Aktualisierung ohne Ausfallzeit, da neue Implementierungen einzelner Funktionen eingeführt werden können, ohne zunächst die alten Implementierungen abzuschalten. Außerdem können neue Funktionen eingeführt werden, die den Platz mehr als einer vorhandenen Funktion einnehmen, ohne die alten Funktionen zunächst abzuschalten – die Priorisierung oder Änderung von Funktionen kann dadurch bestimmt werden, dass relevante Funktionsattribute dementsprechend eingestellt werden.
  • In einem Aspekt schafft die Erfindung ein Verfahren zum Ermöglichen des Austauschs und der Verarbeitung von Informationen in und zwischen mehreren Blöcken, wobei jeder Block eines oder mehrere Informationen bereitstellende, Informationen verarbeitende oder Informationen benutzende Elemente in einem integrierten Datennetz umfasst, wobei das Verfahren umfasst:
    • – Bereitstellen einer Informations-Routing-Schicht für das Management des Austauschs von Informationen zwischen Blöcken und für die Erfüllung wenigstens einer Benutzerfunktion von einem Block, der eine Anforderung zum Empfangen von Informationen und eine Fähigkeit zum Bereitstellen einer Ausgabe in Reaktion auf den Empfang dieser Informationen besitzt; wobei
    • – jeder Block, der in dem Netz Informationen bereitstellen, verarbeiten oder verbrauchen kann, bei der Informations-Routing-Schicht registriert wird;
    • – einer oder mehrere Blöcke eine Informationsverarbeitungsfähigkeit haben, um eine Ausgabefeldmenge zu erzeugen, wenn für sie eine spezifizierte Eingabefeldmenge bereitgestellt wird, wobei diese Fähigkeit in der Informations-Routing-Schicht für jeden Block mit der Fähigkeit in Form einer Austauschfunktion aufgezeichnet wird, die für jeden solchen Block die Eingabefeldmenge und die Ausgabefeldmenge spezifiziert;
    • – eine Informationseinheit in der Informations-Routing-Schicht als ein Feld innerhalb eines Datensatzes behandelt wird, das eindeutig identifiziert und dem Block zugeordnet ist, der zuerst für das Bereitstellen von Informationen in einem solchen Datensatz verantwortlich ist, wobei Informationen in einen Block in einer Feldmenge eingegeben und von einem Block in einer Feldmenge ausgegeben werden;
    • – die Informations-Routing-Schicht beim Empfang einer Benutzerfunktion, die eine Eingabefeldmenge und eine Ausgabefeldmenge spezifiziert, so arbeitet, dass sie die Benutzerfunktion an eine echte Menge (die die leere Menge oder die Nullmenge sein kann), die eine entsprechende Feldmenge umfasst, die aus einem verfügbaren Datensatz oder aus verfügbaren Datensätzen ausgewählt wird, anpasst oder dass sie unter Verwendung eines Felds oder mehrerer Felder aus einem verfügbaren Datensatz oder aus verfügbaren Datensätzen mit einer Austauschfunktion oder mit mehreren Austauschfunktionen einen Gesamtleitweg bildet, um die Erfüllung der Benutzerfunktions-Eingabefeldmenge zu ermöglichen; und
    • – die Informations-Routing-Schicht nach dem Zuführen der Eingabefeldmenge zu der Benutzerfunktion die von der Benutzerfunktion gelieferte Ausgabefeldmenge in einem neuen Datensatz anordnet.
  • Eine Funktion kann ein Attribut oder mehrere zugeordnete Attribute haben, die durch die Informations-Routing-Schicht erkannt und verwendet werden, um zu bestimmen, wie die Eingabefeldmenge oder die Ausgabefeldmenge zu oder von einer solchen Funktion bereitgestellt oder verarbeitet werden soll.
  • Attribute können einen "Wert", der der Erfüllung einer Funktion (z. B. der Lieferung einer angeforderten Eingabefeldmenge) zugeordnet ist, und "Kosten", die der Lieferung einer spezifizierten Ausgabefeldmenge zugeordnet sind, enthalten. Die Informations-Routing-Schicht kann diese Attribute für die Priorisierung und für das Management ihres Betriebs entsprechend anwendbaren Ressourcenbeschränkungen verwenden.
  • Ein Attribut kann verwendet werden, um zu bestimmen, ob eine Funktion als eine Benutzerfunktion (deren Ausgabefeldmenge in einem neuen Datensatz angeordnet wird) oder als eine Austauschfunktion (deren Ausgabefeldmenge in demselben Datensatz angeordnet wird wie dem, der die relevante Eingabefeldmenge bereitstellt) behandelt werden soll.
  • Eine Funktion kann die Einrichtung zum bedingten Routing durch die Informations-Routing-Schicht zur Laufzeit ermöglichen, indem sie nur eine Teilausgabefeldmenge bereitstellt. In diesem Fall werden eines oder mehrere Felder in der Ausgabefeldmenge von einer solchen Funktion gekennzeichnet, damit es/sie durch die Informations-Routing-Schicht verworfen wird/werden.
  • Eine Eingabe- oder Ausgabefeldmenge kann eine leere Menge oder eine Nullmenge sein. Wie ausführlicher in der folgenden spezifischen Beschreibung erläutert wird, schafft die Verwendung solcher Mengen zusätzliche Flexibilität und Funktionalität.
  • Ein Block, der beabsichtigt, für die Informations-Routing-Schicht unaufgefordert eine Feldmenge bereitzustellen, deren Felder alle dafür vorgesehen sind, zusammen in einem neuen Datensatz verfügbar gemacht zu werden, kann diese Absicht der Informations-Routing-Schicht durch Aufstellen einer Anbieterfunktion, die die vorgesehenen Felder in der Anbieterfunktions-Ausgabefeldmenge und in einer Null-Eingabefeldmenge spezifiziert hat, angeben.
  • Die Informations-Routing-Schicht kann auf Anforderung instanziiert werden.
  • In einer entsprechenden Betriebsumgebung schafft die Erfindung einen Informations-Router zum Ermöglichen des Austauschs und der Verarbeitung von Informationen in und zwischen mehreren Blöcken, wobei jeder Block ein Informationen bereitstellendes, Informationen verarbeitendes oder Informationen benutzendes Element in einem integrierten Datennetz umfasst, wobei wenigstens ein Block eine Anforderung zum Empfangen von Informationen von einem oder von mehreren anderen Blöcken besitzt, wobei der Informations-Router einen Computerprozessor oder mehrere Computerprozessoren nutzt, der/die so programmiert ist/sind, dass er/sie den Austausch von Informationen zwischen Blöcken und die Erfüllung einer spezifischen Benutzerfunktion von einem Block, der eine Anforderung zum Empfangen von Informationen und eine Fähigkeit zum Bereitstellen einer Ausgabe in Reaktion auf den Empfang dieser Informationen besitzt, regelt/regeln; wobei jeder Block, der in dem Netz Informationen bereitstellen oder verarbeiten kann, durch den Informations-Router registriert ist; wobei eine Informationseinheit durch den Informations-Router als ein Feld innerhalb eines Datensatzes verarbeitet wird, das eindeutig identifiziert und dem Block zugeordnet ist, der zuerst für das Bereitstellen von Informationen in einem solchen Datensatz verantwortlich ist, wobei Informationen in einen Block in einer Feldmenge eingegeben und von einem Block in einer Feldmenge ausgegeben werden; und wobei der Informations-Router beim Erkennen einer Benutzerfunktion, die eine Eingabefeldmenge und eine Ausgabefeldmenge spezifiziert, so arbeitet, dass er die Eingabefeldmenge an eine echte Menge (oder leere Menge oder Nullmenge) anpasst, die eine entsprechende Feldmenge umfasst, die aus einem verfügbaren Datensatz oder aus verfügbaren Datensätzen ausgewählt wird, und nach dem Zuführen der Eingabefeldmenge zu der Benutzerfunktion die von der Benutzerfunktion gelieferte Ausgabefeldmenge in einem neuen Datensatz anordnet.
  • Dementsprechend können in den Betriebsausführungsformen gemäß der Erfindung zusätzliche oben in Bezug auf das Verfahren beschriebene Merkmale implementiert werden.
  • Es werden nun Aspekte der Erfindung ausführlich und beispielhaft mit Bezug auf die beigefügten Zeichnungen beschrieben, in denen:
  • 1 ein (der EP-Anmeldung 01306806.9 entnommener) Blockschaltplan ist, der die relative Hierarchie der Daten-Routing-Ebene, der Informations-Routing-Ebene, der Bezirke und der Blöcke in einem integrierten Datennetz veranschaulicht, das so ausgelegt ist, dass es die Erfindung nutzt;
  • 2 ein Blockschaltplan ist, der in einer Beispielfunktion enthaltene Elemente zeigt;
  • 3 ein Ablaufplan ist, der die an dem Informations-Routing gemäß der Erfindung beteiligten Basis-Prozesse zeigt;
  • 4 ein Ablaufplan ist, der die an der Bildung eines Gesamtleitwegs beteiligten Prozesse zeigt; und
  • 5 bis 13 die Hauptphasen in der Anwendung der vorliegenden Erfindung auf einen Primzahl-Berechnungsprozess veranschaulichen.
  • 14 anhand des Prozesses der 5 bis 13 eine Web-basierte Implementierung veranschaulicht.
  • 1 veranschaulicht Schlüsselelemente eines integrierten Datennetzes, das Basis-Merkmale, die für die vorliegende Erfindung geeignet sind, in Form der ursprünglich in der EP-Anmeldung 01306806.9 beschriebenen Struktur verkörpert. Wie in jener Anmeldung beschrieben ist, ist das integrierte Netz in Blöcke 1 geteilt, die einzelne Informationen verarbeitende, Informationen bereitstellende oder Informationen benutzende Elemente (Quellen, Prozessoren und/oder Anwender von Informationen) in dem Netz sind. Somit repräsentiert jeder Block einen einzelnen Computer, ein einzelnes lokales Netz, einen einzelnen Wandler oder eine Kombination solcher Entitäten, die innerhalb des integrierten Datennetzes als ein einheitlicher "Block" wirken oder behandelt werden können. In 1 bilden zwei Blöcke in jedem Fall einen lokalen Bezirk 2, wobei Informationen zwischen Bezirken über die Informations-Routing-Schicht 3 geleitet werden, die sie zu diesem Zweck verbindet. Die Datenverbindungen zwischen den Blöcken 1, den Bezirken 2 und der Informations-Routing-Schicht 3 sind durch herkömmliche verdrahtete oder drahtlose Verbindungen bereitgestellt. Außerdem können auf jeder Bezirksebene optional zusätzliche Informations-Routing-Schichten (IRL) 3A (in Strichlinien gezeigt) bereitgestellt sein, um Informationen direkt zwischen Blöcken in demselben Bezirk zu leiten. Die Informations-Routing-Schicht 3 ist in der Anwendungsschicht über den darunter liegenden Basis-Datennetzschichten 4 (in Übereinstimmung mit dem gut bekannten OSI-7-Schichten-Modell) implementiert, wo Daten unter Verwendung herkömmlicher Netzprotokolle wie etwa TCP-IP übertragen werden.
  • Wie in EP 01306806.9 beschrieben ist, ermöglicht die Basis-Informations-Routing-Schicht, dass Sammlungen ("Datensätze") von Informationseinheiten ("Feldern"), die von einer oder von mehreren Anwendungen, Datenanwendern oder Quellen ("Blöcken") beigetragen werden, gebildet werden, um in Reaktion auf eine "Informationsanforderung" von einem Block die Anforderungen für die gemeinsame Nutzung von Informationen oder für den Informationsaustausch zwischen Blöcken zu erfüllen. Eine "Informationsanforderung" kann direkt von einem vorhandenen Datensatz, falls das angeforderte Feld oder die angeforderten Felder verfügbar sind, oder unter Nutzung einer oder mehrerer "Austauschmengen" (die eines oder mehrere zusätzliche Ausgabefelder bereitstellen, wenn ihnen eines oder mehrere verschiedene Eingabefelder zugeführt werden) im Fortschritt einer Vereinigung, wobei der Informations-Router effektiv eine "Vereinigungsmenge" vorhandener Datensätze und Austauschmengen bildet, um das angeforderte Feld bzw. die angeforderten Felder zu erhalten, erfüllt werden. Ein Datensatz kann eines oder mehrere spezifizierte "Attribute" haben, die von der Informations-Routing-Schicht für das Prozessmanagement verwendet werden können, wobei ein Datensatz normalerweise außerdem Einzelheiten des Felds oder der Felder übermittelt, das/die in Reaktion auf irgendeine Informationsanforderung von dem Datensatz zugeführt wird/werden.
  • Die Erfinder haben erkannt, dass die Basis-Informationsanforderungsmengen- und Basis-Informationsaustausch-mengenkonfigurationen, wie sie ursprünglich definiert waren, beschränkte Funktionalität bieten, und dass es möglich ist, durch Einführung alternativer Konfigurationen (d. h. verschiedener Typen einer "Menge") zusätzliche Flexibilität zu erzielen. Da diese "Mengen" einer Vielzahl von Informations- und Operations- oder Organisationszwecken in der Informations-Routing-Schicht dienen können, ist es ebenfalls richtig, die Terminologie anzupassen. Somit werden die verschiedenen Konfigurationen hier im Allgemeinen eher als "Funktionen" als als "Mengen" bezeichnet.
  • 2 veranschaulicht graphisch die typischen Elemente, die in einer Beispielfunktion 300 enthalten sein können. Eine Funktion besitzt immer ein eindeutiges Etikett 301, das die Funktion (und den für die Funktion verantwortlichen Block) identifiziert. Die Eingabefelder 302 (1) bis (c) können Eingabedaten enthalten, die durch einen Block bereitgestellt oder verarbeitet werden können. Ein Feld ist wenigstens aus einem Identifizierer ("Feldidentifizierer") und aus einem Wert ("Feldwert") aufgebaut. Der Feldwert kann ein herkömmlicher Programmfeld-Datentyp wie etwa Integer, Float oder String sein. Er kann außerdem ein Datentyp wie etwa ein Uniform Resource Locator oder ein herstellerspezifisches Dateiformat wie etwa das für eine kommerzielle Tabellenkalkulation sein. Ein Feld ist immer in einer Funktion oder in einem Datensatz enthalten. Wenn für den für die Funktion 300 verantwortlichen Block die spezifischen Eingabefelder 302 bereitgestellt werden, kann er eine Ausgabefeldmenge bereitstellen, die die Felder 303 (1) bis (z) umfasst. Ein Ausgabefeld kann den gleichen Identifizierer wie ein Eingabefeld haben (obgleich es einen anderen Feldwert haben kann). Dies ist grundsätzlich verschieden von der Basis-Austauschmenge, die in EP-01306806.9 beschrieben ist, in der eine solche Identität von Feldern nicht zulässig war. Die Folge ist, dass die Funktion ihre Ausgabefeldmenge in solchen Fällen nicht zu dem Datensatz, der das gleiche Eingabefeld bzw. die gleichen Eingabefelder bereitgestellt hat, hinzufügen kann, sondern die Ausgabefeldmenge in einen neuen Datensatz anordnen muss. Zusätzlich ist für eine Funktion die Option zum Bereitstellen nur einer Teilausgabe verfügbar. Diese Option ist nützlich, um je nach den jeweiligen Feldern, die einer gegebenen Funktion zugeführt oder durch sie bereitgestellt werden, zur Laufzeit eine bedingte Verzweigung in dem Informations-Routing zu bewirken.
  • Normalerweise besitzt eine Funktion 300 eines oder mehrere Attribute 304, die durch die Informations-Routing-Schicht für das Prozessmanagement verwendet werden können. Die Attribute 304 können üblicherweise Parameter enthalten, die z. B. der Zeit der Erzeugung einer Funktion, einem Identifizierer des für die Funktion verantwortlichen Blocks, Betriebs-"Kosten" oder einem Betriebs-"Wert", einem "Ablaufdatum" entsprechen, die von der Informations-Routing-Schicht für administrative Zwecke einschließlich Priorisierung von Ressourcen und Abrechnung verwendet werden können. Ein Attribut kann eine spezielle Aktion angeben, die einem Aspekt der Funktion zugeordnet ist (wobei z. B. eine Benutzerfunktion ein "Löschattribut" haben kann, das spezifiziert, dass der Datensatz, der die Eingabefelder für diese Funktion bereitstellt, daraufhin von dem Informations-Router gelöscht werden sollte). Gemäß einem Attribut 304 der relevanten Funktion kann die Auswahl einer Teilausgabe (d. h. das Verwerten bestimmter Ausgabefelder) bestimmt werden. Ein weiteres Attribut kann als ein Nutzungszähler wirken – wobei z. B. eine Funktion ein Attribut haben kann, das die Anzahl, in der sie aufgerufen werden kann, z. B. auf 10-mal begrenzt, oder das eine Zeitüberschreitung bereitstellt, falls eine Operation nicht in einer spezifizierten Zeitdauer abgeschlossen wird.
  • Die Menge von Eingabefeldern 302 und/oder die Menge von Ausgabefeldern 303 kann jeweils leer oder null sein. Die mehreren verschiedenen Typen von Funktionen sind je nach dem Wesen der Eingabe- und Ausgabefelder in Tabelle 1 aufgeführt.
  • Die Austauschfunktion i), die der Basis-Austauschmenge entspricht; der Betrieb des Erzeugens eines neuen Datensatzes beim Empfang unaufgeforderter Felder von einem Block; und die (Kurzzeit-)Informationsanforderung v), die der Basis-Informationsanforderung entspricht, sind alle im Wesentlichen in EP 01306806.9 beschrieben. Die zusätzlichen Funktionskonfigurationen sind Merkmale der vorliegenden Erfindung.
  • Die Benutzerfunktion ii) ist eine Spezialfunktion, die die Informations-Routing-Schicht zwingt, für irgendwelche durch die Benutzerfunktion bereitgestellten Ausgabefelder einen neuen Datensatz zu erzeugen. Eine Benutzerfunktion erzwingt diese Erzeugung jedes Mal automatisch, wenn in ihrer Eingabefeldmenge und in ihrer Ausgabefeldmenge ein gemeinsames Feld spezifiziert ist. Sie wird so genannt, da sie eine Menge von Eingabefeldern von einem Datensatz benutzt und veranlassen muss, dass ihre Ausgabefeldmenge in einem neuen Datensatz in der Informations-Routing-Schicht angeordnet wird – d. h., sie kann in der Weise betrachtet werden, dass sie einen Datensatz benutzt und die Erzeugung eines neuen anfordert. Die Menge der bereitgestellten Eingabefelder wird daraufhin durch die Informations-Routing-Schicht als dem Anfangsdatensatz 'zugeführt' gekennzeichnet, der daraufhin diese selbe Menge von Feldern nicht für irgendeine andere Benutzerfunktion bereitstellen kann (obgleich er dieselbe Menge für eine Austauschfunktion bereitstellen kann). Sie besitzt eine wichtige Verwendung zum Ändern des Werts eines gegebenen Felds (z. B. zum Inkrementieren eines Zählers) und um zu ermöglichen, dass ein iterativer Informationsprozess fortgesetzt wird. Alternativ kann eine Benutzerfunktion als solche durch ein Attribut identifiziert werden. Die Informations-Routing-Schicht erkennt daraufhin dieses Attribut und ordnet irgendwelche Ausgabefelder von der Benutzerfunktion selbst dann in einem neuen Datensatz an, wenn es keine Gemeinsamkeit von Eingabe- und Ausgabefeldern gibt.
  • Die Benutzerfunktion iii) ist das Mittel, durch das ein Block für die Informations-Routing-Schicht seine Absicht angibt, ohne Aufforderung eine spezifische Menge von Feldern bereitzustellen, die alle zusammen in einem neuen Datensatz angeordnet werden sollen, der erst verfügbar gemacht wird, wenn alle spezifizierten Felder durch den Block bereitgestellt worden sind.
  • Die Leereingabe-Austauschfunktion iv) ist das Mittel, durch das ein Block der Informations-Routing-Schicht seine Fähigkeit angibt, spezifizierte Ausgabefelder bereitzustellen, wenn er (durch Bereitstellung einer leeren Menge von Feldern von einem [möglicherweise leeren] Datensatz) dazu aufgefordert wird, wobei sie nützlich ist, wenn ein Block – z. B. für Zeit- oder Datumstempeloperationen – bestimmte Informationen bereitstellen kann, ohne irgendwelche Eingabefelder anzufordern.
  • Wie in der obigen Einleitung angemerkt wurde, bieten die Benutzerfunktion ii) und die Leereingabe-Austauschfunktion iv) die Vorteile, dass die Informations-Routing-Schicht über die erwarteten Ausgaben von einem Block in Kenntnis gesetzt wird (zuvor wurde sie nur über erwartete Ausgaben von herkömmlichen Austauschfunktionen [Mengen] in Kenntnis gesetzt) und wiederherstellen kann, falls der relevante Block nichts liefert.
  • Eine Dauerinformationsanforderung vi) ermöglicht eine effizientere Verarbeitung von Daten, die (z. B. in Datenprotokollierungsanwendungen) häufig aufgezeichnet werden müssen. Wenn eine Kurzzeitinformationsanforderung erfüllt worden ist, werden die Felder in ihr für den Block verfügbar gemacht, der die Informationsanforderung über die Informations-Routing-Schicht aufgestellt hat, wobei die Kurzzeitinformationsanforderung vollständig aus dem System entfernt wird. Somit müsste die Informations-Routing-Schicht darauf warten, dass der Block eine weitere Kurzzeitinformationsanforderung aufstellt, bevor sie weitere ankommende Datensätze mit den relevanten angeforderten Feldern verarbeiten könnte, während eine Dauerinformationsanforderung sofort in der Informations-Routing-Schicht selbst nachgefüllt werden kann, sobald die vorhergehende Menge von Felddaten an den anfordernden Block übergeben worden ist. Dies ergibt eindeutig eine bessere Verwendung von Verarbeitungszeit.
  • Ein Block macht Informationen für den Zugriff durch weitere Blöcke in dem integrierten Datennetz über die Informations-Routing-Schicht verfügbar, indem er bestimmte Informationen in Form einer Menge von null oder mehr Feldern bereitstellt, die die Ausgabe einer Funktion sind. Falls die Funktion nicht zuvor für die Informations-Routing-Schicht bereitgestellt worden ist, kann die Informations-Routing-Schicht im Namen des Blocks, dessen Ausgabe an das bereitgestellte Feld oder an die bereitgestellten Felder angepasst ist, eine implizite Anbieterfunktion erzeugen. Der Informations-Router hängt das Feld oder die Felder in Übereinstimmung mit durch den Informations-Router angewendeten Regeln an einen vorhandenen oder neuen Datensatz an.
  • Somit gibt es jederzeit eine endliche Menge von Feldern, die irgendeinem vorhandenen Datensatz zugeordnet sind. Es ist nicht möglich, ein Feld zu einem Datensatz hinzuzufügen, falls das neue Feld den gleichen Feldidentifizierer wie ein vorhandenes Feld in diesem Datensatz hat. Dies liegt daran, dass die Menge aller Felder in irgendeinem Datensatz keine doppelten Feldidentifizierer enthalten kann (d. h. eine "echte" Menge sein muss). Ein vorhandener Datensatz kann keine Felder haben, in deren Fall die Menge der Feldidentifizierer in diesem Datensatz die leere Menge und der Datensatz ein leerer Datensatz ist. Der Informations-Router verfolgt vorhandene Datensätze. Der Informations-Router kann nach eigenem Ermessen neue leere Datensätze erzeugen.
  • Ein Block, der bestimmte Informationen anfordert, kann versuchen, diese Informationen zu erhalten, falls sie von einer Quelle in dem integrierten Datennetz verfügbar sind, indem er eine eindeutig gekennzeichnete "Benutzerfunktion" aufstellt, die eine echte Menge von Feldidentifizierern enthält, die den gesuchten Informationen entsprechen. Die Benutzerfunktion kann ein als der Benutzerfunktions-Eingabewert identifiziertes Attribut enthalten, das von dem System zur Priorisierung der Erfüllung dieser Benutzerfunktion verwendet werden kann. Der "Benutzertunktions-Eingabewert" kann durch den Block, der die Funktion aufstellt, oder durch den Informations-Router zugeordnet werden oder kann vorgegeben sein. Wenn eine Benutzerfunktion aufgestellt worden ist, wird sie bis zur Erfüllung oder bis zum Ablauf in der Informations-Routing-Schicht gehalten.
  • Eine Benutzerfunktion wird als "unerfüllt" bezeichnet, bis die spezifizierten Felder über den Informations-Router zugeführt worden sind. Bei der Vorlage einer Benutzerfunktion kann irgendein vorhandener Datensatz, der die angeforderte Benutzerfunktions-Eingabemenge besitzt, über die Informations-Routing-Schicht eine Kopie dieser Menge von Feldern freisetzen.
  • Der Informations-Router wirkt so, dass er sicherstellt, dass unabhängig davon, wie viele vorhandene Datensätze die geforderte Informationsanforderungsmenge freisetzen können, nur eine dieser Mengen verwendet wird, um die Benutzerfunktion zu erfüllen. Diese Operation erfolgt in Übereinstimmung mit durch den Informations-Router angewendeten Vorschriften. Wenn eine Benutzerfunktion erfüllt worden ist, können die Felder in ihr für den Block, der die Benutzerfunktion aufgestellt hat, über die Informations-Routing-Schicht verfügbar gemacht werden. Wenn dies erfolgt, wird die Benutzerfunktion (falls kurzzeitig) vollständig aus dem System entfernt oder kann (falls dauerhaft) nach der Lieferung der spezifizierten Ausgabemenge von Feldern (leer oder anders) an einen neuen Datensatz zur weiteren Erfüllung verfügbar werden.
  • Außer dem direkten Zuführen oder Anfordern von Informationen kann ein Block die Fähigkeit zum Verarbeiten von Informationen haben und dadurch im Austausch für besondere Eingabefelder spezifizierte Ausgabefelder bereitstellen können.
  • Falls ein Block eine Fähigkeit zum Verarbeiten von Informationen hat, macht er diese Fähigkeit der Informations-Routing-Schicht dadurch, dass er eine eindeutig gekennzeichnete "Austauschfunktion" aufstellt, die zwei echte Mengen von Feldidentifizierern (die "Eingabefeldmenge" und die "Ausgabefeldmenge") enthält, oder dadurch, dass er eine eindeutig gekennzeichnete "Benutzerfunktion" aufstellt, die gleichfalls zwei Mengen von Feldidentifizierern (Eingabe- und Ausgabefeldmenge) enthält, bekannt.
  • Die Vereinigung der Austauschfunktions-Eingabefeldmenge und der Austauschfunktions-Ausgabefeldmenge muss selbst eine echte Menge sein. Die Austauschfunktion kann ein Attribut enthalten, das als die Austauschfunktionskosten bekannt ist. Die Austauschfunktionskosten können von dem Informations-Router als ein Auswahlparameter verwendet werden, um die Priorität zu bestimmen, die dem Abschluss einer besonderen Austauschfunktion gegeben werden soll, und/oder um zu bestimmen, welcher Datensatz zur Teilnahme an einer gegebenen Austauschfunktionstransaktion ausgewählt wird. Derjenige Datensatz, der eine spezifizierte Austauschfunktions-Eingabemenge zuführt, empfängt im Austausch die spezifizierten Austauschfunktions-Ausgabefelder.
  • Wenn eine Austauschfunktion die angeforderten Eingabefelder hält, werden diese für den Block, der die Austauschfunktion aufgestellt hat, verfügbar gemacht. Daraufhin wird angefordert, dass dieser selbe Block die spezifizierten Ausgabefelder für diese Austauschfunktion bereitstellt. Die Austauschfunktions-Ausgabefelder werden an den ursprünglichen Datensatz, von dem die Austauschfunktions-Eingabefelder erhalten wurden, angehängt und die Eingabefeldwerte in der Austauschfunktion werden geleert.
  • Die Gesamtwirkung dieses Prozesses ist, dass der ursprüngliche zuführende Datensatz seine Menge von Feldern über die Hinzufügung der Austauschfunktions-Ausgabefelder erhöht oder vereinigt. Daraufhin kehrt die Austauschfunktion in ihren ursprünglichen leeren Zustand zurück. Das heißt, dass die Austauschfunktion noch einmal zur Verwendung durch den Informations-Router verfügbar gemacht wird (d. h. in der Informations-Routing-Schicht dauerhaft ist). Optional kann eine Austauschfunktion entfernt werden (falls sie z. B. ein Attribut besitzt, das eine Einzelverwendung oder dergleichen spezifiziert). Dadurch, dass der Informations-Router diesem Prozess folgt, kann er durch einen Prozess des Gesamt-Routing von Informationen wahlweise einen Gesamtdatensatz bzw. Gesamtdatensätze erzeugen, um Benutzerfunktionen zu befriedigen, die auf andere Weise direkt von einem ursprünglichen Datensatz nicht befriedigt werden können.
  • Die Vereinigung der Benutzerfunktions-Eingabefeldmenge und der Benutzerfunktions-Ausgabefeldmenge in einer Benutzerfunktion braucht selbst keine echte Menge zu sein. Die Benutzerfunktion kann ein als der Benutzerfunktions-Eingabewert bekanntes Attribut enthalten. Der Benutzerfunktions-Eingabewert wird von dem Informations-Router als ein Auswahlparameter verwendet, um die Priorität zu bestimmen, die dem Abschluss einer bestimmten Benutzerfunktion gegeben werden soll, und/oder um zu bestimmen, welche Datensätze zur Teilnahme an einer gegebenen Benutzerfunktionstransaktion ausgewählt werden. Die Benutzerfunktions-Ausgabefelder werden in einem neuen Datensatz in der Informations-Routing-Schicht angeordnet.
  • Wenn eine Benutzerfunktion die angeforderten Eingabefelder hält, werden diese für den Block, der die Benutzerfunktion aufgestellt hat, verfügbar gemacht. Daraufhin kann derselbe Block die spezifizierten Ausgabefelder für diese Benutzerfunktion bereitstellen. Die Ausgabefelder werden an einen neuen leeren Datensatz angehängt und die Eingabefeldwerte in der Benutzerfunktion geleert.
  • Die Gesamtwirkung dieses Prozesses ist, dass mit einer Anfangsmenge von Feldern, die der Benutzerfunktions-Ausgabefeldmenge entspricht, ein neuer Datensatz erzeugt wird. Daraufhin wird die Benutzerfunktion (falls kurzzeitig) entfernt oder kehrt (falls dauerhaft) in ihren ursprünglichen leeren Zustand zurück. Das heißt, dass die Benutzerfunktion noch einmal zur Verwendung durch den Informations-Router verfügbar gemacht wird. Dadurch, dass der Informations-Router diesem Prozess folgt, kann er eine Dauerbenutzerfunktion sukzessiv erfüllen.
  • Figure 00180001
  • Figure 00190001
  • Der Zweck des Informations-Routers ist das Management der Übertragung von Informationen zwischen Blöcken. Die Ziele dieses Informationsmanagements enthalten das Ermöglichen, dass Informationsanforderungen erfüllt werden, und das Liefern angeforderter Eingabefelder an Austausch- und Benutzerfunktionen. Zu diesem Zweck wirkt der Informations-Router so, dass er Informationen in Form von Datensätzen mit relevanten Feldern zwischen Blöcken "leitet", um zu ermöglichen, dass die verfügbaren Funktionen die Informationen verarbeiten und ihre verschiedenen spezifizierten Ausgabefelder erzeugen. Somit analysiert der Informations-Router die verfügbaren und potentiell verfügbaren Felder und vereinigt verfügbare Funktionen einschließlich Datensätzen, um einen geeigneten Leitweg (der mehrere scheinbare Endpunkte haben kann) zu definieren, damit ihm die verfügbaren Informationen folgen, um die Informationsverarbeitungsleistung des Systems in Übereinstimmung mit spezifizierten Parametern (z. B. Geschwindigkeit; Volumen; Aufwand usw.) zu optimieren. Die Vereinigung eines Datensatzes mit einer oder mit mehreren Funktionen zum Bereitstellen angeforderter Informationen zu einem oder zu mehreren möglichen Endpunkten (z. B. Benutzerfunktionen) wird als ein "Gesamtleitweg" bezeichnet.
  • 3 ist ein Ablaufplan, der die durch den Informations-Router in dem Prozess der Vereinigung durch Anpassung von Funktionen und einem oder mehreren Ausgabefeldern zum Erfüllen von Informationsanforderungen und zum Bereitstellen angeforderter Eingabefelder für die verfügbaren Funktionen unternommenen Basis-Schritte veranschaulicht. Wenn in Schritt 100 eine neue Funktion oder eine neue Menge von Ausgabefeldern registriert wird, entscheidet die Informations-Routing-Schicht in Schritt 102, ob ein Gesamtleitweg bestimmt werden kann. Wenn das der Fall ist, wird in Schritt 104 dem anfangs bestimmten Gesamtleitweg gefolgt. Der Gesamtleitweg kann eine Kombination eines Datensatzes und eine Sammlung von null oder mehr Austauschfunktionen, deren Ausgabefeldmengen zusammen mit dem vorhandenen Datensatzfeld bzw. mit den vorhandenen Datensatzfeldern ermöglichen, dass wenigstens eine Benutzerfunktions-Eingabefeldmenge erfüllt wird, umfassen. Der Informations-Router kann irgendeine geeignete Auswahltechnik verwenden, um eine solche Kombination zu bilden. Zum Beispiel kann irgendein bekannter Suchalgorithmus verwendet werden, um die optimale Kombination verfügbarer Funktionen und verfügbarer Datensätze zu identifizieren. Optional kann der Informations-Router die Fähigkeit haben, vorauszuschauen und die Verwendung neuer Datensätze (die als Folge des Betriebs einer verfügbaren Funktion erzeugt werden können) zur Bildung neuer potentiell effektiver Gesamtleitwege zu betrachten. In Schritt 106 werden die geeigneten Felder in einem oder in mehreren Datensätzen an Blöcke geliefert. Schließlich wird in Schritt 108 der Status aller Datensätze aktualisiert. Der Prozess kann iterativ sein und ist es häufig auch, so dass neue Gesamtleitwege definiert werden, während neue Ausgabefelder und neue Datensätze erzeugt werden.
  • 4 ist ein Ablaufplan der Hauptprozessschritte zum Erzeugen eines Gesamtleitwegs aus einem verfügbaren Datensatz und aus einer oder mehreren Austauschfunktionen zum Erfüllen einer spezifizierten Benutzerfunktion. In Schritt 200 bewertet die Informations-Routing-Schicht, ob es eine unerledigte Benutzerfunktion gibt, die nicht der Endpunkt eines aufgebauten Gesamtleitwegs ist. Diese unerfüllte Funktion kann ebenfalls eine (Kurzzeit-)Informationsanforderung sein. In Schritt 202 überprüft die Informations-Routing-Schicht ihren Vorrat verfügbarer Datensätze, um zu bestimmen, ob das geeignete Feld bzw. die geeigneten Felder zu der unerfüllten Funktion übertragen werden kann/können. Wenn das der Fall ist, veranlasst die Informations-Routing-Schicht in Schritt 204, dass ein geeigneter Gesamtleitweg gebildet wird, so dass die angeforderten Felder wie oben geliefert werden können. Wenn das nicht der Fall ist, bewertet die Informations-Routing-Schicht in Schritt 206 weiter, ob ein Datensatz einer Reihe von Austauschen ausgesetzt werden könnte, um die Eingabeanforderungen der identifizierten Funktion zu erfüllen. Wenn dies möglich ist, veranlasst die Informations-Routing-Schicht in Schritt 208, dass die geeigneten Austausche ausgeführt werden, um einen geeigneten Gesamtleitweg zu bilden. Außerdem ist es möglich, dass die Informations-Routing-Schicht diesen Schritten iterativ folgt, um zu ermöglichen, dass unter Verwendung einer Initiierungsfunktion über einen Gesamtleitweg, der eine Kombination von Informationspfaden umfasst, die sowohl den Schritten 202, 204 als auch den Schritten 206, 208 folgend bestimmt wurden, mehr als eine Funktion erfüllt wird.
  • Wie in EP 01306806.9 beschrieben ist, kann der Informations-Router spezifizierte Parameter (d. h. Attribute 304) verwenden, um Betriebsentscheidungen zu treffen, ob ein Gesamtleitweg innerhalb irgendwelcher Ressourcenbeschränkungen, die die verfügbaren Funktionen betreffen, effektiv implementiert werden kann oder nicht.
  • Falls zum Beispiel ein Gesamtleitweg mehrere Benutzerfunktionen erfüllen kann, kann der Informations-Router anhand der Maximierung der Grenze zwischen "Wert" und "Kosten", die den jeweiligen Funktionen zuzuschreiben sind, priorisieren und so wirken, dass er zunächst die Funktion erfüllt, deren Wert abzüglich der entsprechenden Gesamtkosten am höchsten ist.
  • Die Basis-Vorschriften für die Anpassung von Datensätzen an Benutzerfunktionen könnten dann sein:
    • 1. nimm jede Benutzerfunktion in der Reihenfolge des Werts, den kleinsten Wert zuerst,
    • 2. nimm jeden Datensatz in der Reihenfolge des Alters, den ältesten zuerst,
    • 3. baue den Leitweg auf, falls der Datensatz an die Benutzerfunktion angepasst werden kann (einschließlich Kosten des Leitwegs <= Wert der Benutzerfunktion),
    • 4. versuche den nächsten Datensatz,
    • 5. versuche die nächste Benutzerfunktion.
  • Ein einzelner Datensatz kann an mehrere Benutzerfunktionen angepasst werden. Gemäß diesen Vorschriften kann selbst dann, wenn ein neuer Datensatz eine Benutzerfunktion preiswerter als ein alter erfüllt, weiter der ältere verwendet werden, solange er unter dem Benutzerfunktionswert ankommt.
  • Falls unter anderen Umständen z. B. ein anderes Auswahlkriterium als der preiswerteste Leitweg angewendet werden soll, könnten alternative Ordnungsregeln geeignet sein.
  • Wie zuvor kann der Informations-Router einen Verlauf der zwischen der Lieferung der Eingabefelder an eine spezifizierte Funktion und der Bereitstellung der Ausgabefelder durch den verantwortlichen Block verstrichenen Zeit erhalten. Falls ein Block in der Vergangenheit seine Ausgabefelder schneller als ein anderer bereitgestellt hat, wird seine zugeordnete Funktion von dem Informations-Router gegenüber einer anderen Funktion von einem anderen Block, die alternativ vereinigt werden könnte, um einen möglichen Gesamtleitweg fertigzustellen, bevorzugt.
  • Die verbesserte Informations-Routing-Funktionalität gemäß der vorliegenden Erfindung fügt zu den Vorteilen des in EP 01306806.9 beschriebenen Basis-Informations-Routing-Systems zusätzliche Optionen und Flexibilität hinzu.
  • Anhand der 5 bis 13 wird nun eine Beispielanwendung beschrieben, die diese verbesserte Funktionalität für einen einfachen Primzahlberechner nutzt.
  • 5 ist eine bildliche Darstellung der Informations-Routing-Schicht 3 mit einer Anzahl von Funktionen 31, 32, 33, 34, die für die Informationsverarbeitung verfügbar sind. Diese Funktionen sind dadurch, dass sie wiederverwendbar sind, "dauerhaft" und werden nicht jedes Mal, wenn sie ihre jeweiligen Eingabefehler verarbeitet haben, aus der Informations-Routing-Schicht entfernt. Lediglich zur zweckmäßigen Darstellung zeigt 5 getrennte Bereiche der Informations-Routing-Schicht für dauerhafte und für Kurzzeitfunktionen. In der Realität gibt es in der arbeitenden Informations-Routing-Schicht keine solche physikalische Trennung.
  • Da keine Funktion verfügbar ist, um irgendeines der angeforderten Eingabefelder zum Initiieren eines Gesamtleitwegs bereitzustellen, und da es keinen Leitweg von einem leeren Datensatz zu einer der Benutzerfunktionen 33, 34 gibt, veranlassen die vier Funktionen 31, 32, 33, 34, dass keine Datensätze erzeugt werden.
  • Die Austauschfunktion 31 stellt als Antwort auf ein Eingabezahlenfeld n einfach einen Anfangsteiler 'div' mit einem Feldwert von 3 bereit. Diese Funktion kann nur dann einen Teil des Leitwegs bilden, wenn 'div' nicht bereits in irgendeinem beitragenden Datensatz vorhanden ist.
  • Die Austauschfunktion 32 ist so programmiert, dass sie drei Felder ausgibt, wobei aber durch den Block, der diese Funktion besitzt, je nach den Werten von 'n' und 'div' zwei davon zur Laufzeit zum Verwerfen gekennzeichnet werden. Der Wert des dritten Felds (je nachdem, welches es ist) ist bedeutungslos, wirkt aber einfach als ein Merker, der angibt, dass sein Zustand "WAHR" ist (d. h., die Teilausgabe der Funktion 32 ist ein Feld, das anhand des relativen Werts von div und anhand dessen, ob n durch div teilbar ist, angibt, ob der Wert von n eine Primzahl ist oder nicht oder sein kann). Die zu verwerfenden Felder können mit einem besonderen Attribut- oder Feldtyp gekennzeichnet werden, der durch die Informations-Routing-Schicht, die wie von dem Block gefordert das "Verwerfen" dieser anderen Felder ausführt, erkannt wird.
  • Die Funktion 33 ist eine Benutzerfunktion, die durch irgendeinen Datensatz erfüllt werden kann, der n, div und "maybePrime" hält. Ihre Ausgabe ist ein neues n (mit demselben Wert wie die Eingabe) und ein neues div (mit einem um 2 größeren Wert als der Eingabewert von div). Angesichts der Gemeinsamkeit zwischen Eingabe- und Ausgabefeldidentitäten müssen ihre Ausgabefelder in einem neuen Datensatz angeordnet werden.
  • Die Funktion 34 ist ebenfalls eine Benutzerfunktion, die in diesem Fall von irgendeinem Datensatz erfüllt wird, der n und "isNotPrime" hält. Sie gibt ein neues n (mit einem um 2 größeren Wert als die Eingabe) aus. Angesichts der Gemeinsamkeit von Eingabe- und Ausgabefeldern n muss das Ausgabefeld dieser Funktion wieder in einem neuen Datensatz angeordnet werden.
  • Wie in 6 veranschaulicht ist, muss ein Block, der diese verfügbaren Funktionen verwenden möchte, anfangs selbst zwei Kurzzeitfunktionen 41, 42 aufstellen. Eine ist eine neue Datensatzfunktion, die als eine Anbieterfunktion 41 wirkt, um einen Keimwert für das Feld n bereitzustellen. Bis zu dem Zeitpunkt, zu dem der Block das Feld n in diese Anbieterfunktion ausgibt, ist kein Datensatz in dem Informations-Router vorhanden. Wenn durch den Block die Ausgabe bereitgestellt wird, wird die Kurzzeitanbieterfunktion entfernt. Da die Eingabe einer Anbieterfunktion (im Gegensatz zu leer) null ist, tut der Informations-Router erst etwas, wenn der Block, der die Anbieterfunktion besitzt, die Ausgabefelder tatsächlich bereitstellt.
  • Die zweite ist eine Kurzzeitbenutzerfunktion (oder Informationsanforderung), die um die Rückgabe eines Werts für das Feld n mit dem Feld "isPrime" bittet, dessen Wert bedeutungslos ist, da das Vorhandensein des Felds selbst in diesem Fall als ein Merker wirkt, der angibt, dass der Test "WAHR" ist. Wenn diese Eingabefelder für diese Funktion bereitgestellt werden, entfernt der Informations-Router die Funktion aus der Informations-Routing-Schicht.
  • In 7 hat die Anbieterfunktion 41 ihrer Ausgabe, das Feld n, erzeugt, wobei der Wert von n in diesem Fall auf 11 eingestellt ist. Jetzt gibt es in dem Informations-Router einen neuen Datensatz 51 mit einem Feld n mit dem Wert 11 darin, wobei die Anbieterfunktion entfernt wird.
  • Der Informations-Router berechnet nun, dass er einen Gesamtleitweg bilden kann, um potentiell jede der Benutzerfunktionen 33, 34 und 42 durch Vereinigen des Datensatzes 51 mit den (potentiellen) Ausgaben der Austauschfunktionen 31 und 32 zu erfüllen. (In diesem Beispiel wird angenommen, dass die (durch ihre relevanten Attribute eingestellten) Gesamtkosten der Austauschfunktionen 31 und 32 kleiner als jeder der (durch ihre jeweiligen Attribute eingestellten) Benutzerfunktionswerte in 33, 34 und 42 ist).
  • Wie in 7 dargestellt ist, umfasst der Gesamtleitweg die Pfade A-B-F zum Erfüllen der Funktion 42; die Pfade A-B-C zum Erfüllen der Funktion 33; und die Pfade A-B-D zum Erfüllen der Funktion 34. Obgleich dies der Informations-Router nicht wissen kann und nicht zu wissen braucht, kann wegen des ausschließlichen und teilweisen Wesens der Feldausgabe von der Funktion 32 für ein gegebenes n schließlich tatsächlich nur einer dieser Pfade abgeschlossen werden.
  • 8 veranschaulicht den Zustand nach Abschluss des ersten Schritts des anfangs bestimmten Gesamtleitwegs. Der Datensatz 51 hat für die Funktion 31, die in demselben Datensatz das Ausgabefeld div mit einem Wert von 3 bereitgestellt hat, das Eingabefeld n bereitgestellt.
  • Daraufhin stellt der Datensatz 51 für die Austauschfunktion 32, die drei Ausgabefelder (isPrime, isNotPrime und maybePrime) haben kann, von denen durch den verantwortlichen Block zwei unvermeidlich zum Verwerten gekennzeichnet sind, die Eingabefelder n und div bereit. In diesem Fall bedeutet n = 11 und div = 3, dass 11 eine Primzahl sein kann. Somit werden durch den Block die Ausgabefelder isPrime und isNotPrime zum Verwerfen gekennzeichnet, wobei maybePrime das einzige Ausgabefeld ist. Nun gibt es in dem Datensatz 51 drei Felder – n, div und maybePrime. Dies ist der in 9 veranschaulichte Zustand.
  • Der Informations-Router erkennt jetzt, dass der Anfangsgesamtleitweg (aus 7) nicht abgeschlossen werden kann, da zwei der ursprünglich erwarteten Felder zum Verwerten gekennzeichnet worden sind. Es ist nicht möglich, dass der Datensatz 51 zwei Benutzerfunktionen, die Funktion 34 und die Funktion 42, die zuvor auf dem Leitweg waren, erfüllt. Somit ist der Informations-Router gezwungen, einen überarbeiteten Gesamtleitweg zu berechnen.
  • Es ist weiter möglich, dass der Datensatz 51 die Benutzerfunktion 33 erfüllt, so dass der Gesamtleitweg überarbeitet wird, um nur den ursprünglichen Pfad A-B-C abzuschließen, wobei die Pfade A-B-F und A-B-D fallengelassen werden.
  • Außerdem wird angemerkt, dass es angesichts der Erfüllung der Funktionen 34 und 42 nicht möglich ist, dass der Informations-Router versucht, den Datensatz 51 erneut in die Austauschfunktion 32 einzuspeisen, da einer Austauschfunktion kein Datensatz zugeführt werden kann, der bereits eines der Ausgabefelder besitzt, die durch die Austauschfunktion bereitgestellt werden können.
  • Wenn der Informations-Router der Benutzerfunktion 33 die Eingabefelder n, div und maybePrime zuführt, gibt diese Funktion die Felder n (mit demselben Wert wie zuvor) und div (mit einem um 2 größeren Wert als zuvor) aus. Die Ausgabe einer Benutzerfunktion muss in einem neuen Datensatz angeordnet werden, so dass der Informations-Router jetzt einen neuen Datensatz 52 mit den zwei Feldern n und div darin erzeugt. Dies ist in 9 gezeigt.
  • Der Datensatz 51 ist weiter vorhanden und durch den Informations-Router nun in der Weise gekennzeichnet worden, dass er die Menge von Feldern [n, div, maybePrime] zugeführt hat. Dieser besondere Satz von Feldern kann durch diesen Datensatz nicht erneut irgendeiner Benutzerfunktion zugeführt werden (obgleich er die Eingabe in eine andere Austauschfunktion bilden kann, falls es erforderlich ist).
  • Der Informations-Router erkennt nun, dass er unter Verwendung des Datensatzes 52 einen neuen Gesamtleitweg bilden kann, was potentiell ermöglicht, dass die Benutzerfunktionen 34, 42 und 33 (wieder) erfüllt werden. Wie in 10 angegeben ist, enthält der neue Gesamtleitweg die Pfade B-C, B-D und B-F.
  • Der Datensatz 52 stellt die Eingabefelder für die Austauschfunktion 32 bereit, die drei Felder ausgibt, von denen zwei wieder verworfen werden. Da div nun größer als die Quadratwurzel aus n ist, woraus gefolgert werden kann, dass n eine Primzahl ist, ist in diesem Fall das eine nicht zum Verwerfen gekennzeichnete isPrime. Wie in 11 gezeigt ist, wird dieses Ausgabefeld im Datensatz 52 angeordnet.
  • Der Informations-Router kann nun die Benutzerfunktion 42 mit dem Datensatz 52 erfüllen, während er die Funktionen 33 und 34 wegen der Abwesenheit der Felder isNotPrime und maybePrime von der Teilausgabe der Funktion 32 nicht erfüllen kann. Aus diesem Grund ist der Informations-Router erneut gezwungen, den Gesamtleitweg neu zu berechnen.
  • Somit wird der Gesamtleitweg auf den Pfad B-F reduziert, wobei der Datensatz 52, wie in 12 gezeigt ist, für die Benutzerfunktion 42 die Eingabefelder n und isPrime bereitstellt. Da die Benutzerfunktion 42 die Ausgabe null hat, wird die Funktion 42 daraufhin, sobald sie erfüllt worden ist, durch den Informations-Router entfernt. Der Block, der diese Funktion 42 besitzt, hat nun die Menge von Feldern [n, isPrime] mit n = 11 empfangen.
  • Wie in 13 veranschaulicht ist, ist der Zustand des Informations-Routers nun stabil, da unter Verwendung der Datensätze 51 und 52 keine Leitwege zu einer der Dauerbenutzerfunktionen 33 oder 34 aufgebaut werden können. Im Fall der Funktion 32 hat der Datensatz 51 bereits die Menge [n, div, maybePrime] bereitgestellt, wobei verboten ist, dass er dies erneut tut. Obgleich der Datensatz 52 die Felder n und div besitzt, ist die einzige Möglichkeit, dass er maybePrime bereitstellen kann, durch die Austauschfunktion 32, die nicht verwendet werden kann, da eines ihrer Ausgabefelder, isPrime, bereits im Datensatz 52 vorhanden ist.
  • Obgleich im Fall der Funktion 34 der Datensatz 51 das Feld n hat, ist die einzige Möglichkeit, dass er isNotPrime liefern kann, durch die Austauschfunktion 32 – die erneut nicht verwendet werden kann, da eines ihrer Ausgabefelder, maybePrime, bereits im Datensatz 51 vorhanden ist. Abgesehen davon, dass das gemeinsame fragliche Feld isPrime ist, betrifft dasselbe den Datensatz 52.
  • Eine praktische Möglichkeit der Implementierung eines Informations-Routers zum Ausführen dieser Funktionen auf dem Gebiet der Web-basierten Anwendungsprogrammierung ist anhand von 14 veranschaulicht. In diesem Beispiel wird das Verfahren als ein Mittel zum Programmieren der Antwort auf eine HTTP-Anforderung 61 von einem Web-Browser 60 verwendet.
  • Der Informations-Router 63 wird unter Verwendung von Java-Programmcode in einer geeigneten Web-Server-Umgebung 62 (in diesem Fall einem Tomcat-Servlet-Container) erzeugt und beim Empfang der HTTP-Anforderung 61 ausgeführt.
  • Zunächst wird durch Interpretieren des in der HTTP-Anforderung 61 enthaltenen Uniform Resource Identifiers (URL) eine Textdatei 64 identifiziert. Diese Textdatei 64 (die als die XML-Datei "Primes" bezeichnet ist) ist unter Verwendung der Extensible Markup Language XML geschrieben worden.
  • Diese besondere XML-Datei enthält in der Datei "Primes" als Fragmente von XML eine vollständige Beschreibung aller (wie oben zuvor definierten) Funktionen 31, 32, 33 usw., gegenüber denen ein neuer Informations-Router 63 erzeugt und ausgeführt werden soll.
  • Die Definition jeder Funktion 31, 32, 33 usw. enthält eine Bezugnahme auf ausführbaren Code (in diesem Fall auf eine Java-Klasse). Dieser Code bildet den Block 65, 66, der die Eingabefeldmenge (falls überhaupt) der relevanten Funktion verarbeiten und die spezifizierte Ausgabefeldmenge (falls überhaupt) erzeugen kann.
  • Daraufhin wird der Informations-Router ausgeführt, wobei er gemäß dem zuvor beschriebenen Verfahren wiederum die Funktionen 31, 32, 33 usw. ausführt. Erfährt mit der Ausführung fort, bis keine weitere in der XML-Datei spezifizierte Benutzerfunktion erfüllt werden kann.
  • Während dieser Ausführung wird eine HTTP-Antwort 67 erzeugt und an den Web-Client (d. h. in diesem Beispiel an den Web-Browser 60) gesendet. Der Inhalt dieser Antwort 67 wird als eine Wirkung der Ausführung einer oder mehrerer Funktionen durch einen oder mehrere Blöcke in der zuvor beschriebenen Weise berechnet, erzeugt und ausgegeben.
  • Die Definition der Benutzerfunktion 33 erscheint in der 'Primes' genannten XML-Datei beispielhaft wie folgt:
    Figure 00280001
  • Es ist zu sehen, dass der Block 66, der diese Funktion 33 ausführt, Programmcode ist, der in der Sprache Java geschrieben und unter dem Namen 'Java- Script' bekannt ist. Dieser Programmcode arbeitet dadurch, dass das in dem Körper der Blockdefinition eingeschlossene JavaScript-Programm interpretiert wird. Dieses JavaScript-Programm stellt eine Ausgabemenge, die das Feld 'n' umfasst, mit demselben Wert wie das Eingabefeld 'n' und das Feld 'div' mit dem Wert des Eingabefelds 'div' plus 2 bereit.
  • Außerdem ist es in dieser Implementierung möglich, mehr als eine mögliche Ausgabefeldmenge für eine Funktion zu spezifizieren. Dies bewirkt, dass der Block, der die Ausgabe erzeugt, auf eine einer kleinen Menge möglicher Teilausgabemengen beschränkt wird.
  • Zum Beispiel erscheint die Definition der Austauschfunktion 32 in der 'Primes' genannten XML-Datei wie folgt:
    Figure 00290001
    Figure 00300001
  • In diesem Fall kann nur eine von drei Teilausgabemengen erzeugt werden, wobei die Ausgabemenge nur jeweils ein einzelnes Feld enthält.
  • Der Block, der diese Funktion ausführt, ist Programmcode, der in der Sprache Java geschrieben und unter dem Namen 'TestPrime' bekannt ist. Dieser Programmcode ist im Folgenden gezeigt:
    Figure 00300002
    Figure 00310001
  • In diesem Beispiel ist zur leichten Bezugnahme die Implementierung eines einfachen Primzahlprüfers verwendet worden. Natürlich kann der Informations-Router 63 in Reaktion auf andere Anforderungen, z. B. unter Verwendung anderer XML-Dateien 68, 69, für andere Prozesse erzeugt und verwendet werden.
  • Im Allgemeinen bietet die Implementierung eines Informations-Routers gemäß den beschriebenen Verfahren mehrere Vorteile einschließlich:
  • Das Potential für beträchtliche Einsparungen an Programmierzeit und Entwurfs- und Entwicklungskosten im Vergleich zu den herkömmlichen Verfahren der Programmspezifikation, -herstellung und -verteilung.
  • Falls der Informations-Router so programmiert ist, kann der Entwickler eines Programms unter Verwendung dieses Verfahrens alle möglichen Sequenzen von Funktionen testen, ohne dass durch irgendeinen der Blöcke irgendein tatsächlicher Programmcode ausgeführt wird. Dies ist so, da sich der Informations-Router nicht auf den Inhalt irgendeines wie durch irgendeinen Block berechneten Felds stützt, wenn er die Reihenfolge der Ausführung von Funktionen entscheidet.
  • Die Fragmente von XML, die Funktionen definieren, bilden Programmspezifikationen, die jenen Programmierern gegeben werden können, die die Aufgabe haben, den Programmcode zu schreiben, der die Blöcke bildet, die diese Funktionen ausführen können. Durch Hinzufügen von Informationen (wie etwa Feldtypen, Beschreibungen usw.) zu der XML-Datei und durch Bereitstellung eines Spezialprogramms, das die Spezifikationen formatieren und verteilen kann, ist es möglich, eine vollautomatische Verteilung von Spezifikationen an Gruppen von Programmierern zu erzielen.
  • Ausgehend von diesen ausführlicheren Spezifikationen braucht der Programmierer irgendeines Blocks keinen Kontakt irgendeiner Art mit den Programmierern irgendwelcher anderen Blöcke zu haben. Dies ist so, da die vollständige XML-Definition jeder Funktion nicht auf den Betrieb oder die Definition irgendeiner anderen Funktion Bezug nimmt. Somit braucht ein Programmierer einer Funktion nicht auf die Aktivitäten des Programmierers einer anderen Funktion Bezug zu nehmen. Dies bringt im Vergleich zu herkömmlichen Verfahren, die erfordern, dass Programmierer ständig kommunizieren, beträchtliche Einsparungen in Bezug auf die Zeit und die Kosten, die für die Herstellung eines gegebenen Anwendungsprogramms erforderlich sind.
  • Ähnlich bringen die Verfahren der Erfindung im Vergleich zu anderen Programmierverfahren beträchtliche Einsparungen in Bezug auf die Zeit und die Kosten, die am Austesten, Korrigieren und Warten von Programmen beteiligt sind, die unter Verwendung dieser Verfahren geschrieben worden sind. Der Informations-Router sequentialisiert die Ausführung aller Funktionen, so dass er, wenn irgendein Fehler auftritt, nicht nur den Ort des Fehlers, sondern auch die Sequenz von Funktionen, die zu ihm geführt haben, berichten kann. Falls der Informations-Router so programmiert ist, kann dies die jeder Funktion zugeführten Eingaben und die von jeder Funktion empfangene Ausgabe enthalten.
  • Es ist möglich, den Programmcode für irgendeine Funktion in irgendeiner Sprache zu schreiben. In der vorliegenden Implementierung kann der Ausführungscode wie beschrieben unter Verwendung von JavaScript gestreckt in der XML-Datei oder in Form getrennt kompilierter und geladener Java-Klassen geschrieben werden. Irgendeine Anwendung kann dann in einer beliebigen Kombination von Sprachen geschrieben werden. Dies ermöglicht, dass beträchtliche Einsparungen in Bezug auf die Einsparung an Zeit und Kosten erzielt werden können, die zur Ausbildung von Programmierern in neuen Sprachen, beim Halten von Programmierern mit verschiedenen Fertigkeiten bei der Zusammenarbeit an einem einzelnen Projekt, bei der Nutzung von Sprachen, die für besondere Funktionen geeignet sind, usw., erforderlich sind.
  • Die Verfahren sind inhärent fehlertolerant. Die Fähigkeit des Informations-Routers, alternative Sequenzen von Funktionen zu identifizieren, um eine Benutzerfunktion zu erfüllen, bedeutet, dass das System so eingestellt werden kann, dass es Blöcke kennzeichnet, die falsch ausgeführt werden oder überhaupt nicht ausgeführt werden, und stattdessen andere verfügbare alternative Leitwege versucht. Somit kann das System unter Verwendung einer einfacheren und preiswerteren Ausrüstung implementiert werden und eher eine Redundanz ermöglichen, als teure absturzsichere Hardware zu verwenden.
  • Der Informations-Router kann Funktionen identifizieren, die gleichzeitig ausgeführt werden können. Das heißt, dass das System ohne irgendeine Überlegung von Seiten des Entwicklers oder Programmierers automatisch eine Parallelausführung implementieren kann. Somit können noch weitere Kosteneinsparungen möglich sein, da keine Notwendigkeit besteht, schnelle, teure Computer oder Spezialprodukte zu kaufen, um zu ermöglichen, dass die Arbeit eines Programms auf mehr als einen Prozessor aufgeteilt wird.
  • Es ist klar, dass eine Informations-Routing-Schicht und ein Informations-Router gemäß der vorliegenden Erfindung je nach Eignung für irgendeine besondere Anwendung unter Verwendung verteilter Komponenten von Hardware und Software oder unter Verwendung einer einzelnen Vorrichtung oder eines einzelnen Programms implementiert werden können. Somit können die Felder, Attribute und zugeführten Mengen, die einem Datensatz zugeordnet sind, in einer einzelnen Vorrichtung oder in einem einzelnen Programm gehalten werden oder auf mehr als eine/eines verteilt sein. Dies betrifft ebenfalls die Speicherung und Verarbeitung, die den verschiedenen Formen einer Funktion einschließlich Benutzerfunktionen und Austauschfunktionen oder irgendeiner Form einer Funktion zugeordnet ist.

Claims (15)

  1. Verfahren zum Ermöglichen des Austauschs und der Verarbeitung von Informationen in und zwischen mehreren Blöcken (1), wobei jeder Block ein Informationen bereitstellendes, Informationen verarbeitendes oder Informationen benutzendes Element in einem integrierten Datennetz umfasst, wobei wenigstens ein Block eine Anforderung zum Empfangen von Informationen von einem oder von mehreren Blöcken besitzt, wobei das Verfahren umfasst: – Bereitstellen einer Informations-Routing-Schicht (3) für das Management des Austauschs von Informationen zwischen Blöcken und für die Erfüllung wenigstens einer Benutzerfunktion (33, 34, 42) von einem Block (1), der eine Anforderung zum Empfangen von Informationen und eine Fähigkeit zum Bereitstellen einer Ausgabe in Reaktion auf den Empfang dieser Informationen besitzt; wobei – jeder Block (1), der in dem Netz Informationen bereitstellen oder verarbeiten kann, bei der Informations-Routing-Schicht (3) registriert wird; – einer oder mehrere Blöcke (1) eine Informationsverarbeitungsfähigkeit haben, um eine Ausgabefeldmenge zu erzeugen, wenn für sie eine spezifizierte Eingabefeldmenge bereitgestellt wird, wobei diese Fähigkeit in der Informations-Routing-Schicht für jeden Block mit der Fähigkeit in Form einer Austauschfunktion (31, 32) aufgezeichnet wird, die für jeden solchen Block die Eingabefeldmenge und die Ausgabefeldmenge spezifiziert; – eine Informationseinheit in der Informations-Routing-Schicht (3) als ein Feld (301, 303) innerhalb eines Datensatzes (51) behandelt wird, das eindeutig identifiziert und dem Block zugeordnet ist, der zuerst für das Bereitstellen von Informationen in einem solchen Datensatz verantwortlich ist, wobei Informationen in einen Block in einer Feldmenge eingegeben und von einem Block in einer Feldmenge ausgegeben werden; – die Informations-Routing-Schicht (3) beim Erkennen einer Benutzerfunktion (33, 34, 42), die eine Eingabefeldmenge und eine Ausgabefeldmenge spezifiziert, so arbeitet, dass sie die für die Benutzerfunktion angeforderte Eingabefeldmenge an eine echte Menge, die eine entsprechende Feldmenge umfasst, die aus einem verfügbaren Datensatz oder aus verfügbaren Datensätzen ausgewählt wird, anpasst oder dass sie unter Verwendung eines Felds oder mehrerer Felder aus einem verfügbaren Datensatz oder aus verfügbaren Datensätzen mit einer Austauschfunktion oder mit mehreren Austauschfunktionen einen Gesamtleitweg (A-B-C, A-B-D, A-B-F) bildet, um die Erfüllung der Benutzerfunktions-Eingabefeldmenge zu ermöglichen; und – die Informations-Routing-Schicht (3) nach dem Zuführen der Eingabefeldmenge zu der Benutzerfunktion die von der Benutzerfunktion gelieferte Ausgabefeldmenge in einem neuen Datensatz anordnet.
  2. Verfahren nach Anspruch 1, in dem für eine Funktion ein Attribut oder mehrere zugeordnete Attribute bereitgestellt werden, wobei die Informations-Routing-Schicht das Attribut bzw. die Attribute bei der Bestimmung nutzt, wie die Eingabefeldmenge oder die Ausgabefeldmenge zu oder von der Funktion bereitgestellt oder verarbeitet werden soll.
  3. Verfahren nach Anspruch 2, in dem eine Benutzerfunktion einen Benutzerfunktionswert als ein zugeordnetes Attribut spezifiziert und/oder eine Austauschfunktion Austauschfunktionskosten als ein zugeordnetes Attribut spezifiziert, wobei jeder dieser Werte und/oder Kosten ein repräsentatives Maß einer kritischen Ressource sind, die als ein bestimmender Faktor im Betrieb der Informations-Routing-Schicht relevant ist, und in dem die Informations-Routing-Schicht den spezifizierten Benutzerfunktionswert und/oder die spezifizierten Austauschfunktionskosten verwendet, um zu bestimmen, ob eine besondere Benutzerfunktions-Eingabefeldmenge durch mögliche Austausche innerhalb der anwendbaren Ressourcenbeschränkungen geeignet bereitgestellt werden kann oder sollte.
  4. Verfahren nach Anspruch 2, in dem ein einer Funktion zugeordnetes Attribut (304) bestimmt, ob die Informations-Routing-Schicht diese Funktion als eine Benutzerfunktion oder als eine Austauschfunktion behandelt.
  5. Verfahren nach einem vorangehenden Anspruch, in dem ein Feld in einer Ausgabefeldmenge von einer Funktion gekennzeichnet werden kann, damit es durch die Informations-Routing-Schicht verworfen wird.
  6. Verfahren nach einem vorangehenden Anspruch, in dem eine Eingabefeldmenge oder eine Ausgabefeldmenge eine leere Menge oder eine Nullmenge ist.
  7. Verfahren nach einem vorangehenden Anspruch, in dem ein Block, der beabsichtigt, für die Informations-Routing-Schicht unaufgefordert eine Feldmenge bereitzustellen, deren Felder alle dafür vorgesehen sind, zusammen in einem neuen Datensatz verfügbar gemacht zu werden, diese Absicht der Informations-Routing-Schicht durch Aufstellen einer Anbieterfunktion, die die vorgesehenen Felder in der Anbieterfunktions-Ausgabefeldmenge und in einer Null-Eingabefeldmenge spezifiziert hat, angibt.
  8. Informations-Router zum Ermöglichen des Austauschs und der Verarbeitung von Informationen in und zwischen mehreren Blöcken, wobei jeder Block ein Informationen bereitstellendes, Informationen verarbeitendes oder Informationen benutzendes Element in einem integrierten Datennetz umfasst, wobei wenigstens ein Block eine Anforderung zum Empfangen von Informationen von einem oder von mehreren anderen Blöcken besitzt, wobei der Informations-Router einen Computerprozessor oder mehrere Computerprozessoren nutzt, der/die so programmiert ist/sind, dass er/sie den Austausch von Informationen zwischen Blöcken und die Erfüllung einer spezifischen Benutzerfunktion von einem Block, der eine Anforderung zum Empfangen von Informationen und eine Fähigkeit zum Bereitstellen einer Ausgabe in Reaktion auf den Empfang dieser Informationen besitzt, regelt/regeln; wobei jeder Block, der in dem Netz Informationen bereitstellen oder verarbeiten kann, durch den Informations-Router registriert ist; wobei einer oder mehrere Blöcke eine Informationsverarbeitungsfähigkeit haben, um eine spezifizierte Ausgabefeldmenge zu erzeugen, wenn für sie eine spezifizierte Eingabefeldmenge bereitgestellt wird, und wobei der Informations-Router so programmiert ist, dass er für jeden Block mit dieser Fähigkeit diese Fähigkeit in Form einer Austauschfunktion aufzeichnet, die die Eingabefeldmenge und die Ausgabefeldmenge für jeden solchen Block spezifiziert, wobei eine Informationseinheit durch den Informations-Router als ein Feld innerhalb eines Datensatzes verarbeitet wird, das eindeutig identifiziert und dem Block zugeordnet ist, der zuerst für das Bereitstellen von Informationen in einem solchen Datensatz verantwortlich ist, wobei Informationen in einen Block in einer Feldmenge eingegeben und von einem Block in einer Feldmenge ausgegeben werden; und wobei der Informations-Router beim Erkennen einer Benutzerfunktion, die eine Eingabefeldmenge und eine Ausgabefeldmenge spezifiziert, so arbeitet, dass er die für die Benutzerfunktion angeforderte Eingabefeldmenge an eine echte Menge anpasst, die eine entsprechende Feldmenge umfasst, die aus einem verfügbaren Datensatz oder aus verfügbaren Datensätzen ausgewählt wird, oder dass er unter Verwendung eines Felds oder mehrerer Felder aus einem verfügbaren Datensatz oder aus verfügbaren Datensätzen mit einer Austauschfunktion oder mit mehreren Austauschfunktionen einen Gesamtleitweg bildet, um die Erfüllung des Benutzerfunktions-Eingabefeldmenge zu ermöglichen; und nach dem Zuführen der Eingabefeldmenge zu der Benutzerfunktion die von der Benutzerfunktion gelieferte Ausgabefeldmenge in einem neuen Datensatz anordnet.
  9. Informations-Router nach Anspruch 8, der so programmiert ist, dass er ein Attribut verwendet, das einer gegebenen Funktion bei der Bestimmung zugeordnet wird, wie die Eingabefeldmenge oder die Ausgabefeldmenge zu der oder von der Funktion bereitgestellt oder verarbeitet werden soll.
  10. Informations-Router nach Anspruch 9, der so programmiert ist, dass er ein als ein Benutzerfunktionswert identifiziertes Attribut, wenn es in einer Benutzerfunktion spezifiziert ist, und/oder ein als Austauschfunktionskosten identifiziertes Attribut, wenn es in einer Austauschfunktion spezifiziert ist, verwendet, wobei jeder dieser Werte und/oder Kosten ein repräsentatives Maß einer kritischen Ressource ist, die als ein bestimmender Faktor im Betrieb des Informations-Routers relevant ist, und wobei der Informations-Router im Betrieb den spezifizierten Benutzerfunktionswert und/oder die spezifizierten Austauschfunktionskosten verwendet, um zu bestimmen, ob eine besondere Benutzerfunktions-Eingabefeldmenge durch mögliche Austausche innerhalb der anwendbaren Ressourcenbeschränkungen geeignet bereitgestellt werden kann oder sollte.
  11. Informations-Router nach Anspruch 9, der so programmiert ist, dass er ein Attribut verwendet, das einer Funktion zugeordnet ist, um zu bestimmen, ob diese Funktion als eine Benutzerfunktion oder als eine Austauschfunktion behandelt werden soll.
  12. Informations-Router nach einem der Ansprüche 8 bis 11, der so programmiert ist, dass er erkennt, dass ein Feld in einer Ausgabefeldmenge von einer Funktion durch den Informations-Router verworfen werden soll.
  13. Informations-Router nach einem der Ansprüche 8 bis 12, der so programmiert ist, dass er eine Eingabefeldmenge oder eine Ausgabefeldmenge annimmt, die eine leere Menge oder eine Nullmenge ist.
  14. Informations-Router nach einem der Ansprüche 8 bis 13, der so programmiert ist, dass er ermöglicht, dass ein Block, der dafür vorgesehen ist, unaufgefordert eine Feldmenge bereitzustellen, deren Felder alle durch den Informations-Router zusammen in einem neuen Datensatz verfügbar gemacht werden sollen, diese Absicht durch Aufstellen einer Anbieterfunktion, die die vorgesehenen Felder in der Anbieterfunktions-Ausgabefeldmenge und in einer Null-Eingabefeldmenge spezifiziert hat, angibt.
  15. Verfahren nach einem der Ansprüche 1 bis 7, in dem die Informations-Routing-Schicht auf Anforderung instanziiert wird.
DE60308325T 2002-02-08 2003-02-07 Informationswegeleitung Expired - Fee Related DE60308325T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0203057 2002-02-08
GB0203057A GB2385235B (en) 2002-02-08 2002-02-08 Information routing
PCT/GB2003/000568 WO2003067846A2 (en) 2002-02-08 2003-02-07 Information routing

Publications (2)

Publication Number Publication Date
DE60308325D1 DE60308325D1 (de) 2006-10-26
DE60308325T2 true DE60308325T2 (de) 2007-04-05

Family

ID=9930740

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60308325T Expired - Fee Related DE60308325T2 (de) 2002-02-08 2003-02-07 Informationswegeleitung

Country Status (7)

Country Link
US (1) US20050193142A1 (de)
EP (1) EP1474904B1 (de)
AT (1) ATE339844T1 (de)
AU (1) AU2003207300A1 (de)
DE (1) DE60308325T2 (de)
GB (1) GB2385235B (de)
WO (1) WO2003067846A2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8509724B2 (en) 2006-11-29 2013-08-13 Telecom Italia S.P.A. Switched beam antenna with digitally controlled weighted radio frequency combining
US8825715B1 (en) 2010-10-29 2014-09-02 Google Inc. Distributed state/mask sets

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216173B1 (en) * 1998-02-03 2001-04-10 Redbox Technologies Limited Method and apparatus for content processing and routing
GB2366160B (en) * 2000-08-09 2004-03-17 Michaelhouse Man Ltd Information routing
US7167448B2 (en) * 2002-02-04 2007-01-23 Sun Microsystems, Inc. Prioritization of remote services messages within a low bandwidth environment

Also Published As

Publication number Publication date
GB2385235A (en) 2003-08-13
AU2003207300A1 (en) 2003-09-02
WO2003067846A3 (en) 2003-12-31
GB2385235B (en) 2004-07-14
WO2003067846A2 (en) 2003-08-14
ATE339844T1 (de) 2006-10-15
US20050193142A1 (en) 2005-09-01
EP1474904B1 (de) 2006-09-13
GB0203057D0 (en) 2002-03-27
EP1474904A2 (de) 2004-11-10
DE60308325D1 (de) 2006-10-26

Similar Documents

Publication Publication Date Title
DE69530734T2 (de) System und Verfahren zur Workflow-Verwaltung
DE102005029744B4 (de) Verfahren zum Updaten von Kartendaten
DE4235193C2 (de) Netzwerksystem und zugehöriges Softwareverwaltungsverfahren
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
EP0849666B1 (de) Verfahren zum Instantiieren einer versionsbehafteten Klasse
DE69637436T2 (de) Objektorientiertes Kommunikationssystem mit Unterstützung für mehrere entfernte Maschinentypen
DE112010003144T5 (de) Erweiterbare Grundstruktur zur Unterstützung verschiedener Einsatzarchitekturen
DE10059796A1 (de) Steuerung der Lebensdauer von Aktivitäten für die Datenverarbeitung
EP1589416A2 (de) Verfahren und System zum Erzeugen eines Quellcodes für ein Computerprogramm
DE19617976A1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE19838055A1 (de) Kommunikationssystem
DE69814697T2 (de) Vorrichtung, methode und computer programm produkt für client/server rechner mit vom client auswählbarer lokalisierung von transaktionsobjekten
DE69636993T2 (de) Informationsverarbeitungssystem und Kommunikationsverfahren
EP2648094B1 (de) Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses
DE69826126T2 (de) Verfahren und vorrichtung zur berechnung einer erforderlichen werkstoffmenge
DE60114949T2 (de) Leitweglenkung
DE602004006630T2 (de) Verfahren zur Durchführung eines Softwaredienstes in einer Systemlandschaft
EP1374119A2 (de) Verfahren und einrichtung zur erzeugung eines abbildes eines netzwerkartigen herstellungsprozesses
EP4002098A1 (de) Verfahren zur bereitstellung der funktionalität von mehreren mikrodiensten und/oder der funktionalität von mehreren software-containern mittels einer cloud-infrastruktur, system, verwendungssystem, computerprogramm und computerlesbares medium
DE60308325T2 (de) Informationswegeleitung
DE102005018864B4 (de) Verfahren und System zum Erzeugen eines Quellcodes für ein Computerprogramm
DE10244459A1 (de) Rechner- und/oder Software-Architektur unter Verwendung von Micro-Kernel- und Multi-Tier-Konzept mit Komponententechnik
DE112021000619T5 (de) Adaptive zustandsverwaltung für statusunabhängige services
WO2020200806A1 (de) Verfahren und vorrichtung zum ansteuern eines technischen geräts mit einem optimalen modell
WO2020178091A1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee