-
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.
-
-
-
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:
-
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:
-
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:
-
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.