DE102017109383A1 - Method for data communication using random network addresses and corresponding device - Google Patents
Method for data communication using random network addresses and corresponding device Download PDFInfo
- Publication number
- DE102017109383A1 DE102017109383A1 DE102017109383.4A DE102017109383A DE102017109383A1 DE 102017109383 A1 DE102017109383 A1 DE 102017109383A1 DE 102017109383 A DE102017109383 A DE 102017109383A DE 102017109383 A1 DE102017109383 A1 DE 102017109383A1
- Authority
- DE
- Germany
- Prior art keywords
- node
- network
- address
- dfo
- nodes
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000004891 communication Methods 0.000 title claims abstract description 29
- 230000006870 function Effects 0.000 claims abstract description 36
- 230000008569 process Effects 0.000 claims description 14
- 238000011156 evaluation Methods 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 11
- 230000027455 binding Effects 0.000 claims description 5
- 238000009739 binding Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 2
- 230000006907 apoptotic process Effects 0.000 claims 2
- 230000014509 gene expression Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 150000003839 salts Chemical class 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- IGXGTNBLVPCUNT-UHFFFAOYSA-N 5-[2-(2-butoxyethoxy)ethoxymethyl]-6-propyl-1,3-benzodioxole;[cyano-(3-phenoxyphenyl)methyl] 3-(2,2-dichloroethenyl)-2,2-dimethylcyclopropane-1-carboxylate;diethoxy-sulfanylidene-(3,5,6-trichloropyridin-2-yl)oxy-$l^{5}-phosphane Chemical compound CCOP(=S)(OCC)OC1=NC(Cl)=C(Cl)C=C1Cl.C1=C(CCC)C(COCCOCCOCCCC)=CC2=C1OCO2.CC1(C)C(C=C(Cl)Cl)C1C(=O)OC(C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 IGXGTNBLVPCUNT-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002285 radioactive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5092—Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use
Abstract
Verfahren zur Datenkommunikation und Berechnung über ein Netzwerk, wobei Knoten des Netzwerks in der Lage sind, Funktionen in der lokalen Umgebung des Knotens zu evaluieren, und wobei die Adressen von neu gebildeten oder neu verbundenen Netzwerkknoten zufällig zugewiesen werden, wobei eine nahezu Einmaligkeit der Knoten-Adressen erzielt wird durch Verwenden eines zufälligen oder pseudo-zufälligen Verfahrens des Auswählens einer Adresse aus einem ausreichend großen Pool von Netzwerkadressen.A method of data communication and computation over a network, wherein nodes of the network are capable of evaluating functions in the node's local environment, and where the addresses of newly formed or newly connected network nodes are randomly assigned, with an almost uniqueness of nodes Addressing is achieved by using a random or pseudo-random method of selecting an address from a sufficiently large pool of network addresses.
Description
In einem ersten Aspekt ist die vorliegende Erfindung ein Verfahren zum Bilden von Computermaschinerie aus mehreren separaten vernetzten Komponenten, wobei das Verfahren des Zuweisens von Adressen an individuelle Netzwerkknoten konfiguriert ist, um die Möglichkeit, dass ein Knoten in dem Netzwerk oder Sub-Netzwerk die gleiche Adresse wie ein weiterer Knoten in dem Netzwerk oder Sub-Netzwerk hat, bis zu jeglichem erforderlichen Grad an Sicherheit unwahrscheinlich zu machen, und zum Kommunizieren von Nachrichten an und von solchen Knoten mit zugewiesenen Adressen an andere und möglicherweise unterschiedliche Knoten mit möglicherweise unterschiedlichen Adressen in dem Computer-Netzwerk. Die mehreren separaten Netzwerkknoten sind in der Lage, Funktionen auf den Daten, welche ihnen gesandt wurden, zu berechnen, und mit den Daten, welche aus den Berechnungen resultieren, zu antworten, oder solche Resultate zu anderen Knoten in dem Netzwerk zu übertragen.In a first aspect, the present invention is a method of forming computer machinery from a plurality of separate networked components, wherein the method of assigning addresses to individual network nodes is configured to address the possibility of a node in the network or subnet having the same address as another node in the network or subnet has to render unlikely to any required degree of security, and to communicate messages to and from such nodes with assigned addresses to other and possibly different nodes with possibly different addresses in the computer -Network. The plurality of separate network nodes are capable of computing functions on the data sent to them, of responding to the data resulting from the calculations, or of transmitting such results to other nodes in the network.
Der Stand der Technik für die vorliegende Erfindung umfasst die Verwendung von Universally Unique Identifiers (UUID), was ein numerischer Wert ist, typischerweise 128 Bits, wobei die Bedeutung von jedem Bit durch irgendeine von mehreren Varianten definiert wird. In kanonischer Form, wie beispielsweise diejenige, welche durch das IPv6 Netzwerk-Protokoll verwendet wird, wird ein UUID von 128 Bits durch 32 kleingeschriebene hexadezimale Ziffern repräsentiert, angezeigt in fünf Gruppen, welche durch Trennstriche getrennt sind. Ein Beispiel von solch einem UUID ist fd30:0000:0000:0001:ff4e:003e:0009:000e.The prior art for the present invention involves the use of Universally Unique Identifiers (UUID), which is a numeric value, typically 128 bits, with the meaning of each bit being defined by any of several variants. In canonical form, such as the one used by the IPv6 network protocol, a 128-bit UUID is represented by 32 lower-case hexadecimal digits, displayed in five groups separated by hyphens. An example of such a UUID is fd30: 0000: 0000: 0001: ff4e: 003e: 0009: 000e.
Der Stand der Technik umfasst die Verwendung eines UUID mit einem MD5-Hashwert, welche von einem URL abgeleitet wird, oder einem Domain-Namen, oder einem Objekt-Identifizierer oder einem unterscheidbaren Namen (Distinguished Name – DN, wie im Lightweight Directory Access Protocol verwendet), wie beispielsweise festgelegt in
Der Stand der Technik umfasst die Verwendung eines UUID, welche primär von zufälligen Zahlen abhängt, zum Beispiel, diejenigen, welche in
Der Stand der Technik enthält die Technologie, welche
Der Stand der Technik enthält WIPO 1020140106871, Verfahren zur Konvergenz-Kommunikation unter Verwendung eines virtuellen privaten Netzwerks und eine entsprechende Vorrichtung, welche lehrt, dass zufällig zugewiesene IP Adressen in einer Vorrichtung verwendet werden können, wobei die zufälligen Adressen gesammelt werden und an Nutzerterminals gebunden werden, dann werden die Bindungen an einen Bindungsserver übertragen, wo sie zum Abrufen durch Call Sessions gespeichert werden.The prior art includes WIPO 1020140106871, convergence communications using a virtual private network and related apparatus which teaches that randomly assigned IP addresses can be used in a device, wherein the random addresses are collected and bound to user terminals then the bindings are transferred to a binding server where they are stored for retrieval by call sessions.
Der Stand der Technik umfasst WIPO 201410100927.2, welche ein Verfahren und eine Vorrichtung zur Datenübertragung über ein Backbone-Computernetzwerk lehrt, welches aus einem Routing-Knoten und zumindest zwei Datenservern besteht, wobei der erste Server eine Nachricht überträgt, welche Kommunikationsinformation an den Routing Knoten durch das Backbone-Netzwerk überträgt. Dann bestimmt der Routing Knoten die Adresse des Zielservers gemäß der ersten Nachricht und überträgt die Kommunikationsinformation an den Zielserver.The prior art includes WIPO 201410100927.2, which teaches a method and apparatus for data transmission over a backbone computer network consisting of a routing node and at least two data servers, the first server transmitting a message conveying communication information to the routing node the backbone network is transmitting. Then, the routing node determines the address of the destination server according to the first message, and transmits the communication information to the destination server.
Der Stand der Technik umfasst auch WIPO 1020120090701, Nutzer-Autentifizierungssystem und -verfahren in einer mobilen Vorrichtung, welche die Verwendung von Zufallszahlen lehrt, um Nutzer zu authentifizieren, die über mobile Vorrichtungen verfügen, ein Broadcast-Senden der Zufallszahlen an die Vorrichtung und ein Auffordern des Nutzers, sich zu authentifizieren durch Eingeben der Nummer, wobei eine derartige Authentifizierungsüberprüfung mit einer gespeicherten Datenbank aus diesen Zufallszahlen durchgeführt wird, welche dem Nutzer und der Vorrichtungs-Authentifizierung entsprechen.The prior art also includes WIPO 1020120090701, a user authentication system and method in a mobile device that teaches the use of random numbers to authenticate users having mobile devices, broadcasting the random numbers to the device, and requesting the user to authenticate by entering the number, wherein such an authentication check with a stored database of these random numbers is performed, which correspond to the user and the device authentication.
Die vorliegende Erfindung ist ein Verfahren zur Kommunikation zwischen Knoten in einem Netzwerk, wobei Netzwerkknoten zufällig ausgewählten Netzwerkadressen zugewiesen werden. In einer bevorzugten Implementierung des Verfahrens gibt es kein zentrales Speichersystem oder Repository der verfügbaren Netzwerkadressen. Somit können Kollisionen auftreten, wobei zwei oder mehr Netzwerkknoten die gleiche Adresse innerhalb des Netzwerks aufweisen.The present invention is a method of communicating between nodes in a network by assigning network nodes to randomly selected network addresses. In a preferred implementation of the method, there is no central storage system or repository of available network addresses. Thus, collisions may occur where two or more network nodes have the same address within the network.
Der Stand der Technik hat auch einige Verfahren zum Zuweisen von Netzwerk-Kennungen aufgewiesen, welche sich von der vorliegenden Erfindung dadurch unterscheiden, dass (1) es nicht zufällig ist, oder (2) zufällig ist, jedoch mit einem oder mehreren Speichern, welche abgestimmt sind, um sicherzustellen, dass nicht zwei Knoten der gleichen Netzwerk-Adresse zugewiesen werden (eine Kollision), oder dass, wenn solch eine Zuweisung getätigt wird, dann der eine oder der andere Knoten sofort einer neuen Adresse zugewiesen wird. The prior art has also shown some methods of assigning network identifiers, which differ from the present invention in that (1) it is not random, or (2) random, but with one or more memories tuned are to ensure that two nodes are not assigned to the same network address (a collision), or that if such an assignment is made, then one or the other node is immediately assigned to a new address.
Dieses Verfahren des Verwendens eines separaten Speichers oder einer Datenbank von verfügbaren (oder äquivalent, nicht verfügbaren) Netzwerk-Adressen hat den Vorteil, dass sichergestellt wird, dass es keine Kollisionen gibt, oder wenn Kollisionen detektiert werden, sie schnell aufgelöst werden, so dass sie nicht wieder auftreten. Da Netzwerk-Adressen eindeutig sind, können Nachrichten leicht von einem zum anderen Knoten gesendet werden.This method of using a separate memory or database of available (or equivalent, unavailable) network addresses has the advantage of ensuring that there are no collisions, or if collisions are detected, they are resolved quickly so that they do not occur again. Because network addresses are unique, messages can be easily sent from one node to another.
Um die Verfahren des Standes der Technik zu implementieren, muss jeder Konten, welcher Information an einen empfangenden Knoten senden möchte, eine Anfrage des zentralen Speicherknotens tätigen, um die Destinationsadresse von jedem Datenpaket zu bestimmen, welches von demjenigen sendenden Knoten zu demjenigen empfangenden Knoten zu senden ist. Dieser Prozess des Anfragens bezüglich der Knoten-Adressen nimmt eine signifikante Menge an Zeit in Anspruch, welche zumindest linear mit der Anzahl von Knoten in dem Netzwerk wächst. Dies verhindert, dass Netzwerke mehr als eine Milliarde oder dergleichen an Netzwerkknoten aufweist, welche zur Interkommunikation fähig sind.In order to implement the prior art methods, each account wishing to send information to a receiving node must make a request from the central storage node to determine the destination address of each data packet to send from the sending node to the receiving node is. This process of requesting for the node addresses takes a significant amount of time, which increases at least linearly with the number of nodes in the network. This prevents networks from having more than a billion or so at network nodes capable of intercommunication.
Der Stand der Technik umfasst
Der Stand der Technik lehrt, dass neu gebildete Netzwerk-Knoten ihre Identifikation an existierende Netzwerkknoten Broadcast-senden oder anderweitig übertragen müssen, einschließlich ihrer Netzwerk-Adresse oder einer eindeutigen Hardware-Kennung. Einer oder mehrere der empfangenden Knoten speichert/speichern dann die zugewiesene Netzwerk-Adresse in dem Speicher, wobei sie durch einen Kommunikationspfad von beliebiger Länge für andere Knoten verfügbar sind. Dieses Verfahren hat den Nachteil, dass die Menge an Speicher, welcher erforderlich ist, um diese Netzwerkadressen zu speichern, zumindest linear mit der Anzahl von Knoten in dem Netzwerk wächst. Dieses Verfahren weist weiterhin den Vorteil auf, dass die Zeitverzögerung, welche ein Knoten benötigt, um die Netzwerkadresse von einem anderen Knoten zu entdecken, zumindest linear zunimmt, wenn die Anzahl an Knoten zunimmt.The prior art teaches that newly formed network nodes must broadcast or otherwise transmit their identification to existing network nodes, including their network address or a unique hardware identifier. One or more of the receiving nodes then store / store the assigned network address in the memory, being available to other nodes through a communication path of arbitrary length. This method has the disadvantage that the amount of memory required to store these network addresses grows at least linearly with the number of nodes in the network. This method further has the advantage that the time delay required for a node to discover the network address from another node increases at least linearly as the number of nodes increases.
Die vorliegende Erfindung ersetzt allgemein einen zentralen Adressen-Speicher, welcher Netzwerkadressen-Kollisionen detektiert, durch einen Netzwerkadressen-Raum, welcher ausreichend groß ist, dass die Wahrscheinlichkeit von Kollisionen von zufällig zugewiesenen Netzwerkadressen so gering wie gewünscht gemacht werden kann.The present invention generally replaces a central address memory which detects network address collisions with a network address space which is sufficiently large that the probability of collisions of randomly assigned network addresses can be made as small as desired.
Ein Vorteil der vorliegenden Erfindung ist, dass kein Speicherplatz in den sendenden oder empfangenden Knoten zum Zwecke des Speichers der Adressen der anderen Knoten erforderlich ist.An advantage of the present invention is that no storage space is required in the sending or receiving nodes for the purpose of storing the addresses of the other nodes.
Ein weiterer Vorteil der vorliegenden Erfindung ist, dass der zentrale Speicher der Netzwerkadressen eliminiert wird und niemals eine Anfrage des zentralen Speichers getätigt werden muss.Another advantage of the present invention is that the central memory of the network addresses is eliminated and no request of the central memory needs to be made.
Die Wahrscheinlichkeit einer Kollision (nicht eindeutige Adresse, welche verschiedenen Netzwerkknoten zugewiesen ist), kann leicht durch Verwenden der Wahrscheinlichkeits-Theorie berechnet werden, ist jedoch ungefährwas für kleine Exponentenist, was grobist, wobei n die Anzahl von UUIDs ist, welche erzeugt wurden, und x die Anzahl von Bits ist. Dies bedeutet zum Beispiel, dass bei der Verwendung von = 128 Bitnummern für UUIDs, und einem Erzeugen von einer Million UUIDs pro Sekunde für die nächsten 100 Jahre (100 Jahre sind ungefähr 3,153,600,000 oder 3·1010 Sekunden), die Anzahl von UUIDs, welche erzeugt wurden, ungefähr n ≈ 3·1016 sein würde. Wird in die obige Formel n2 ≈ 1033 eingefügt, so dass die Wahrscheinlichkeit des zweimaligen Zuweisens der gleichen UUID bei einer Million von Trillionen von UUIDs, welche erzeugt wurden, ungefähr sein würde, was ist oder eine Wahrscheinlichkeit von Zehnmillionen, dass eine einzige Kollision auftritt. Zum Vergleich beträgt die durchschnittliche Ausfallrate von nicht korrigierbaren Speicherfehlern pro Jahr ungefähr 1,3 %, so dass die Wahrscheinlichkeit einer Adress-Kollision mit 128 Bit Adressen ungefähr ein Milliardstel der Wahrscheinlichkeit der heutigen CPU Ausfallrate ist. The probability of a collision (non-unique address assigned to different network nodes) can be easily calculated by using Probability Theory, but is approximate what little exponents is what rough where n is the number of UUIDs that were generated and x is the number of bits. This means, for example, that when using = 128 bit numbers for UUIDs, and generating one million UUIDs per second for the next 100 years (100 years is approximately 3,153,600,000 or 3 × 10 10 seconds), the number of UUIDs is would be about n ≈ 3 · 10 16 . Is inserted in the above formula n 2 ≈ 10 33 , so that the probability of assigning the same UUID twice to a million of trillions of UUIDs generated approximately what would be or a ten million chance that a single collision will occur. By comparison, the average failure rate of uncorrectable memory errors per year is about 1.3%, so the probability of an address collision with 128-bit addresses is about one-billionth of the probability of today's CPU failure rate.
Eine Implementierung des vorliegenden Verfahrens des Anspruchs 1 verwendet 128 Bit Adressen. Der Vorteil des Verwendens von 128 Bit Adressen ist, dass viele Adress-Routing-Probleme sowie andere Definitionsprobleme ausgiebig studiert oder gelöst wurden, im Prinzip, weil IPv6 Netzwerke 128 Bits verwenden.An implementation of the present method of
In einer Implementierung eines Systems, wie dasjenige, welches in Anspruch 1 beschrieben ist, müssen Knoten die aktuelle Adresse von anderen Knoten speichern, mit welchen sie kommunizieren. Dies erlaubt die Implementierung von massiv parallelen Datenverarbeitungssystemen, wobei ein Knoten konstruiert wird, um eine bestimmte Funktion zu berechnen, dann dieser Knoten instanziiert wird und mehrere Male repliziert wird, wobei jede Instanz eine unterschiedliche, jedoch kenntliche, Netzwerkadresse hat. Diese mehrfachen Knoten sind konfiguriert, um Broadcast-Nachrichten zu empfangen und Nutzer-definierte Funktionen auf Daten zu berechnen, welche innerhalb des Systems enthalten sind, wodurch eine massiv parallele Kommunikation erreicht wird.In one implementation of a system such as that described in
Das System, welches durch Anspruch 1 beschrieben wird, beruht auf zufälligen oder pseudo-zufälligen Algorithmen. Der Stand der Technik enthält Verfahren des Generierens sowohl echter zufälliger als auch pseudozufälliger Zahlen von jeglicher gewünschter Größe. Echte zufällige Zahlen können durch jegliche Anzahl von physikalischen Prozessen erzeugt werden, wie beispielsweise radioaktives Rauschen oder Photonen-Generatoren. Pseudo-zufällige Zahlen können durch jegliches aus einer Vielzahl von gut bekannten Verfahren erzeugt werden, wie beispielsweise ein linearer Kongruenzgenerator. Da physikalische Phänomene im Allgemeinen Asymmetrien und systematische Tendenzen aufweisen, die ihre Ergebnisse nicht einheitlich zufällig machen, ist ein bevorzugtes Verfahren, welches in dem Stand der Technik demonstriert wurde, eine kryptographische Hash-Funktion zu verwenden, um eine einheitliche Verteilung von Bits aus einer nicht-einheitlichen Zufalls-Quelle zu erhalten. Die besonderen Verfahren des Erzeugens von Zufallszahlen sind kein Anspruch dieses Patents.The system described by
Die Knoten des Netzwerks sind in der Lage, Berechnungen durchzuführen. Die bevorzugte Implementierung ist, dass die Knoten Statements in irgendeiner Sprache ausführen, vorzugsweise funktional und nach Art der Erlang Sprache oder der Lisp Sprache. In der Erlang Sprache: Jedes Statement ist ein Prozess
- • Prozesse sind streng isoliert
- • Prozesse sind leicht zu bilden und zu zerstören
- • Nachrichtenaustausch ist die Art, wie die Prozesse interagieren
- • man kann Nachrichten nur zu Prozessen senden, deren Namen einem bekannt sind
- • Prozesse teilen Ressourcen nicht
- • Fehlerbehandlung ist nicht lokal
- • Processes are strictly isolated
- • Processes are easy to form and destroy
- • Message exchange is the way the processes interact
- • You can only send messages to processes whose names are known to you
- • Processes do not share resources
- • Error handling is not local
In Lisp oder anderen funktionalen Sprachimplementierungen der vorliegenden Erfindung müssen die obigen Erfordernisse dennoch erfüllt werden.In Lisp or other functional voice implementations of the present invention, the above requirements still have to be met.
Die Knoten des Netzwerks tauschen vorzugsweise Nachrichten durch ein asynchrones Shared-Nothing-Nachrichtenaustausch-System aus, wobei jeder Knoten eine Warteschlange von Nachrichten aufweist, die durch andere Knoten gesendet worden sind und noch nicht konsumiert wurden. Nachrichten werden konsumiert, wenn der Knoten das „Empfangen“-Primitiv aufruft, um Nachrichten zu empfangen, welche gewünschten Mustern entsprechen. Der Konsum von solchen Nachrichten kann die Ausführung von Teilen der Nachrichten als Code in der Computersprache involvieren und tut dies oft auch. Preferably, the nodes of the network exchange messages through an asynchronous shared-nothing messaging system, each node having a queue of messages that have been sent by other nodes and have not yet been consumed. Messages are consumed when the node calls the "receive" primitive to receive messages that correspond to desired patterns. Consuming such messages can and does involve often executing pieces of the messages as code in the computer language.
In dem folgenden Beispiel, unter Verwendung der Erlang Notation, bilden wir einen neuen Knoten und führen irgendeine beliebige Funktion innerhalb dieses Knotens aus:
Es ist für die Erfindung nicht notwendig, dass die verwendete Computersprache Erland ist, es muss jedoch eine Sprache sein, die die oben erwähnten Restriktionen implementiert.It is not necessary for the invention that the computer language used is Erland, but it must be a language that implements the above-mentioned restrictions.
In einem zweiten Aspekt bezieht sich die Erfindung auf ein Datenfusionsobjekt und auf ein vernetztes System für die Evaluierung von berechenbaren Funktionen mit Einrichtungen für lokale oder parallele funktionale Evaluierung, gefilterte Dateneingabe und -ausgabe und Prozess-abhängige Eingabe und Ausgabe von einem oder mehreren gekapselten funktionalen Objekten zu anderen solchen Objekten, und auf Computer- und Datenverarbeitungs-Vorrichtungen und Systeme, welche lokal oder auf dem Internet vorgesehen sind.In a second aspect, the invention relates to a data fusion object and a networked system for the evaluation of calculable functions with means for local or parallel functional evaluation, filtered data input and output, and process dependent input and output of one or more encapsulated functional objects to other such objects, and to computer and computing devices and systems provided locally or on the Internet.
Das System gemäß der Erfindung umfasst sogenannte Datenfusionsobjekte (DFOs), welche in der Lage sind, mit anderen DFOs durch ein Netzwerk (N) zu kommunizieren, wobei das Netzwerk N eine große Anzahl von verfügbaren Netzwerkadressen aufweist. Ein DFO ist ein physisches (Hardware-implementiertes) oder logisches (Softwareimplementiertes) Objekt, welches:The system according to the invention comprises so-called data fusion objects (DFOs) which are capable of communicating with other DFOs through a network (N), the network N having a large number of available network addresses. A DFO is a physical (hardware-implemented) or logical (software-implemented) object that:
- (1) in einer externen Umgebung existiert;(1) exists in an external environment;
- (2) eine interne Umgebung aufweist, umfassend (i) als DFO Verfahren und (ii) Eigenschaften; (2) has an internal environment comprising (i) as a DFO procedure and (ii) properties;
- (3) einen Ausdrucksevaluierer implementiert(3) implements a term evaluator
- (4) in der Lage ist, neue DFOs innerhalb der Umgebung zu bilden;(4) is able to form new DFOs within the environment;
- (5) in der Lage ist, neue DFOs innerhalb der Umgebung zu zerstören; und(5) is able to destroy new DFOs within the environment; and
- (6) in der Lage ist, mit DFOs innerhalb seiner internen und externen Umgebung zu kommunizieren.(6) is able to communicate with DFOs within its internal and external environment.
Einige weitere Aspekte der Erfindung sind in den angehängten Ansprüchen definiert. Diese Aspekte sowie weitere Aspekte der Erfindung sind in der Beschreibung und der Zeichnung angegeben und erläutert.Some further aspects of the invention are defined in the appended claims. These aspects as well as further aspects of the invention are given and explained in the description and the drawing.
Der Terminal-Knoten (höchstes Level) eines DFO-Systems ist eine externe Umgebung, das heißt, seine eigene interne Umgebung.The terminal node (highest level) of a DFO system is an external environment, that is, its own internal environment.
Ein DFO Verfahren ist ein Computer-Prozess, welcher eine Funktion implementiert, deren Eingabedaten DFO Eigenschaften sind, und deren Evaluierung den inneren Zustand des DFO modifiziert und die die Bildung oder Zerstörung von einer oder mehreren Sub-DFOs verursachen kann, aber nicht muss, und die Daten über eines oder mehrere Netzwerke (einschließlich von Netzwerken, welche IP implementieren, wie beispielsweise das Internet) kommunizieren können, aber nicht müssen. Es wird auf
DFO Eigenschaften sind Daten, welche durch DFO Funktionen evaluiert werden können.DFO properties are data that can be evaluated by DFO functions.
Die externe Umgebung eines DFO ist selbst die interne Umgebung irgendeines anderen DFO, ausgenommen die externe Umgebung des höchsten Levels, dessen externe Umgebung es selbst ist.The external environment of a DFO is itself the internal environment of any other DFO, except the highest level external environment whose external environment it is itself.
Notationnotation
Im Folgenden werden Beispiele von Implementierungsdetails präsentiert, um die textliche Erläuterung klarzustellen. Diese Beispiele sind allgemein in der Computersprache Scheme geschrieben und sind durch eine Schriftart gekennzeichnet, wie beispielsweise: „Dies ist ein Beispiel eines Implementierungsdetails." Es gibt kein Erfordernis, dass solch ein System in Scheme oder in jeglicher anderer funktionalen Sprache geschrieben sein muss, vorausgesetzt, dass die verwendete Sprache in der Lage ist, finit rekursive Funktionen zu berechnen.In the following, examples of implementation details are presented to clarify the textual explanation. These examples are generally written in the computer language Scheme and are identified by a font such as: "This is an example of an implementation detail." There is no requirement that such a system be written in a schema or in any other functional language, provided that the language used is capable of calculating finite recursive functions.
Eigenschaften und VerfahrenProperties and procedures
Eigenschaften können selbst als Daten repräsentiert werden und Daten können als Verfahren evaluiert werden. Verfahren werden als Daten verwendet, wenn sie an ein DFO weitergeleitet werden und Daten sind Verfahren, wenn sie durch ein DFO empfangen werden und dekonstruiert werden, um Verfahren zu implementieren. Bei dem Obigen können das Weiterleiten und Empfangen von DFOs die gleichen DFOs sein oder unterschiedliche DFOs.Properties can themselves be represented as data and data can be evaluated as a method. Methods are used as data when forwarded to a DFO and data are methods when they are received by a DFO and deconstructed to implement procedures. In the above, forwarding and receiving DFOs may be the same DFOs or different DFOs.
In den Beschreibungen und Beispielen, welche hier verwendet werden, werden sowohl Verfahren (Code) und Eigenschaften (Daten) als S-Ausdrücke in einer Lisp-ähnlichen Sprache geschrieben. Dies ist kein notwendiges oder essentielles Merkmal: ein DFO System kann jegliche Computersprache verwenden, welche in der Lage ist, rekursive Funktionen zu berechnen.In the descriptions and examples used herein, both methods (code) and properties (data) are written as S-expressions in a Lisp-like language. This is not a necessary or essential feature: a DFO system can use any computer language capable of calculating recursive functions.
Ein Beispiel eines Verfahrens, welches als Daten verwendet wird, ist ein DFO, welches als seine Eingabe ein Verfahren nimmt, um log10(x) zu berechnen und durch Modifizieren des Codes durch dieses Verfahren als Ausgabe ein Verfahren zurück liefert, um log2(x) zu berechnen. In diesem Beispiel sind die Eingabedaten selbst ein Verfahren.An example of a method used as data is a DFO which takes as its input a method to compute log 10 (x) and returns by modifying the code by this method as a method to return log 2 (FIG. x) to calculate. In this example, the input data itself is a method.
Für ein DFO gibt es keine grundlegende Unterscheidung zwischen Verfahren und Eigenschaften (Daten), obwohl, wenn man von DFO System spricht, es oft nützlich ist, die internen Rechenfunktionen als Verfahren zu klassifizieren und Ausdrücke, welche als DFO Eingaben und Ausgaben oder als Argumente zu Verfahren verwendet werden, als Eigenschaften zu klassifizieren.For a DFO, there is no fundamental distinction between procedure and properties (data), although, when talking about the DFO system, it is often useful to classify the internal arithmetic functions as procedures and expressions used as DFO inputs and outputs or as arguments Procedures used to classify properties.
DFO UmgebungenDFO environments
Die Umgebung eines DFO ist ähnlich zu einem Closure in der Programmiersprache Scheme. Ein Unterschied ist, dass Umgebungen zur Selbstprüfung verfügbar sind, und nicht versteckt sind, wie sie es typischerweise in Common Lisp oder Scheme sind. Dies bedeutet, dass Umgebungen als First Class Objekte behandelt werden, welche in der Lage sind, an ein weiteres DFO gesendet zu werden, im Ganzen oder in Teilen. Das empfangende DFO kann daher berechenbare Funktionen innerhalb der Umgebung des sendenden DFO evaluieren, ohne die Notwendigkeit weiterer Kommunikation zwischen diesen zwei DFOs.The environment of a DFO is similar to a Closure in the Scheme programming language. One difference is that self-checking environments are available, not hidden, as they are typically in Common Lisp or Scheme. This means that environments are treated as First Class objects that are able to be sent to another DFO, in whole or in part. The receiving DFO can therefore evaluate computable functions within the environment of the transmitting DFO without the need for further communication between these two DFOs.
DFO Verfahren DFO procedure
Verfahren (typischerweise als Funktionen und typischerweise als Lamda-Ausdrücke implementiert), welche in einem DFO als First Class Objekte eingebettet sind. Da ein DFO Verfahren als ein Lamda-Ausdruck implementiert wird, kann es als Liste ausgedrückt werden, dann auch wieder als Verfahren interpretiert werden. Dies macht es möglich, einen selbst-modifizierenden Code zu schreiben und DFOs zu bilden, welche Verfahren modifizieren, welche ihnen übermittelt werden.Methods (typically implemented as functions and typically as lamda expressions) embedded in a DFO as first class objects. Since a DFO procedure is implemented as a lambda expression, it can be expressed as a list and then interpreted as a procedure again. This makes it possible to write a self-modifying code and form DFOs which modify methods which are transmitted to them.
Ergebnisse der Anwendung von Verfahren beeinflussen die lokale Umgebung und können auch Nebeneffekte haben. Ein solcher Nebeneffekt ist, dass ein Verfahren das Ergebnis seiner Berechnung an ein weiteres DFO senden kann, einen Rückruf-Mechanismus implementierend.
(send-message :to Another-DFO ‘(send to `[*self*] some-stuff-to-evaluate))
wobei, wie in Lisp oder Scheme üblich, das Symbol einfacher Anführungsstrich (‘) den folgenden Ausdruck angibt und das Symbol invertiertes Hochkomma (`) (das heißt, es bewirkt eine Evaluierung von) den folgenden Ausdruck beendet.Results of applying procedures affect the local environment and may also have side effects. One such side effect is that one method may send the result of its calculation to another DFO, implementing a callback mechanism.
(send-message: to another-DFO '(send to `[self *] some-stuff-to-evaluate))
where, as is common in Lisp or Scheme, the single quote symbol (') indicates the following expression, and the symbol inverted apostrophe (`) (that is, it evaluates to) ends the following expression.
DFO Adressieren und EinbettenDFO addressing and embedding
Eingaben und Ausgaben von DFOs sind Pakete, welche durch Netzwerk-Adressen in der Form von [addr]:port gesendet und empfangen werden. Dies wird vorzugsweise implementiert unter Verwendung von IPv6. Ein DFO leitet eine Nachricht an ein anderes DFO weiter durch Senden eines Satzes von IP Paketen auf einen bestimmten Port und empfängt Nachrichten von anderen DFOs durch Empfangen von IPv6 Paketen von einem bestimmten Port des anderen DFO.Inputs and outputs of DFOs are packets sent and received through network addresses in the form of [addr]: port. This is preferably implemented using IPv6. A DFO forwards a message to another DFO by sending a set of IP packets to a specific port and receives messages from other DFOs by receiving IPv6 packets from a specific port on the other DFO.
Ein DFO kann in einem weiteren DFO eingebettet sein. Dies wird in IPv6 durch Sub-Vernetzung implementiert. Typischerweise werden die sub-vernetzten DFO Adressen hierarchisch nicht oberhalb des eingebetteten DFO ausgedrückt; vielmehr werden Nachrichten zu und von dem sub-vernetzten DFO an das Mutter-DFO gesendet, welches Kind-DFOs als Subroutinen oder Sub-Prozesse verwendet. A DFO can be embedded in another DFO. This is implemented in IPv6 by sub-networking. Typically, the sub-networked DFO addresses are not hierarchically expressed above the embedded DFO; rather, messages to and from the sub-linked DFO are sent to the mother DFO using child DFOs as subroutines or sub-processes.
Ein DFO selbst kann als Daten an ein weiteres DFO weitergeleitet werden, entweder durch Weiterleiten der IPv6 Adresse [DFO] oder durch Weiterleiten der Umgebung (einschließlich Verfahren und Eigenschaften) des weiterzuleitenden DFO. In dem ersten Fall ist das DFO vom Typ eines Co-Prozesses. In dem zweiten Fall wird eine neue Kopie des DFO gebildet, dessen Adressraum und Umgebung unabhängig von dem ersten DFO ist.A DFO itself can be forwarded as data to another DFO, either by forwarding the IPv6 address [DFO] or by forwarding the environment (including procedures and properties) of the DFO to be forwarded. In the first case, the DFO is a co-process type. In the second case, a new copy of the DFO is formed whose address space and environment is independent of the first DFO.
Ein Beispiel ist ein DFO, das als seine Eingabe eine Liste von numerischen Werten nimmt, dann eine Liste von englischen Wörten für diese Zahlen zurückgibt. Dieses DFO könnte an ein weiteres DFO geleitet werden, welches englische Wörter als Eingabe nimmt und entsprechende französische Wörter ausgibt. Dies kann auf zwei Arten erfolgen.An example is a DFO that takes as its input a list of numeric values, then returns a list of English words for those numbers. This DFO could be directed to another DFO, which takes English words as input and outputs corresponding French words. This can be done in two ways.
Der erste Weg ist, das Englisch-in-Französisch DFO zu bilden, mit irgendeiner IPv6 Adresse [English-to-French] sowie, auf dem gleichen hierarchischen Level, das DFO mit der Adresse [Numbers-to-English]. Dann wird ein DFO Zahl-in-Französisch gebildet, welches einen Stream von Zahlen empfängt und die zwei DFOs, welche oben definiert sind, mit den Adressen aufruft, einen Stream von französischen Wörtern ausgebend. Ein weiterer Weg, um dies zu bewerkstelligen ist es, Zahlen-in-Französisch innerhalb der Umgebung Zahlen-in-Englisch zu definieren, wobei ihm (zum Beispiel) eine unterschiedliche und neu gebildete Adresse zugewiesen wird.The first way is to form the English-to-French DFO with any IPv6 address [English-to-French] and, at the same hierarchical level, the DFO with the address [Numbers-to-English]. Then a DFO number-in-French is formed which receives a stream of numbers and which calls the two DFOs defined above with the addresses, issuing a stream of French words. Another way to accomplish this is to define numbers-in-French within the numbers-in-English environment, with (for example) a different and newly formed address assigned to it.
Jedes DFO hat seine eigene interne Umgebung und ist in der Lage, irgendeinen Satz von Ausdrücken {Sj} von sich selbst oder von anderen DFOs zu akzeptieren und Ausdrücke{Si} zu evaluieren. Jedes DFO ist in der Lage, den berechneten Wert Rj,n(fj(Si)) auszudrücken, welcher Sj ist, evaluiert in der Umgebung des DFOi Each DFO has its own internal environment and is able to accept some set of expressions {S j } from itself or from other DFOs and to evaluate expressions {S i }. Each DFO is capable of expressing the calculated value R j, n (f j (S i )) which is S j evaluated in the vicinity of the DFO i
und ausgedrückt (verfügbar gemacht für den Zugriff über irgendeinen Ausgangsport n durch einen weiteren Satz von DFOs, welche oft die aufrufenden DFOs sind).and expressed (made available for access via any output port n by another set of DFOs, which are often the calling DFOs).
Eine Implementierung des Datenfusion-Objekt-Systems kann unter Verwendung von IPv6 ausgeführt werden. Solch ein System kann als ein Satz von IPv6 Objekten implementiert werden, welche miteinander und mit anderen Vorrichtungen oder Personen kommunizieren können. Jedes DFO hat seine eigene (üblicherweise eindeutige) IPv6 Adresse, welche als Griff (handle) oder als Kennung für dasjenige DFO verwendet wird. Hinsichtlich der Notation ist die Kennung [<DFOx>]:port die IPv6 Adresse für DFOx mit einer IPv6 Port Spezifikation des Ports.An implementation of the data fusion object system can be performed using IPv6. Such a system can be implemented as a set of IPv6 objects that can communicate with each other and with other devices or people. Each DFO has its own (usually unique) IPv6 address, which is used as a handle or as an identifier for the DFO. In terms of notation, the identifier [<DFO x >]: port is the IPv6 address for DFO x with an IPv6 port specification of the port.
Einige DFO Adressen [<DFOx>] werden im Internet öffentlich verfügbar sein. Diese Adressen werden für die Kommunikation des DFO Systems mit anderen Nutzern oder mit Maschinen verwendet werden, welche sich im Internet befinden. Andere werden lokal sein.Some DFO addresses [<DFO x >] will be publicly available on the Internet. These addresses will be used for communication of the DFO system with other users or with machines located on the Internet. Others will be local.
Lokale DFO Adressen werden entweder durch DFOcreator spezifiziert oder durch irgendeinem Hash-Algorithmus ausgewählt. Der Hash-Algorithmus könnte möglicherweise ein sequentieller Zähler sein oder könnte durch eine DFO Funktion zugewiesen werden, oder könnte durch irgendein anderes Verfahren ausgewählt werden, welches in der Lage ist, eindeutige DFO Kennungen zu erzeugen, einschließlich möglicherweise eine zufällige Zahl sein.Local DFO addresses are either specified by DFO creator or selected by some hash algorithm. The hash algorithm could possibly be a sequential counter or could be assigned by a DFO function, or could be selected by any other method capable of generating unique DFO identifiers, including possibly a random number.
Eine zufällige Zahl kann als eine DFO Adresse verwendet werden, wenn Schnelligkeit der Bildung erforderlich ist. Aufgrund der großen Größe des FD00::/8 (lokalen) Adressenraums (2^40 oder ungefähr 10^12, was eine Billion ist), ist die Wahrscheinlichkeit einer DFO Adresskollision verschwindend gering in den meisten realisierbaren Systemen, weit geringer als die Wahrscheinlichkeit eines Hardware Ausfalls für die meisten solcher Systeme.A random number can be used as a DFO address if speed of education is required. Due to the large size of the FD00 :: / 8 (local) address space (2 ^ 40 or about 10 ^ 12, which is one trillion), the probability of a DFO address collision is negligible in most viable systems, far less than the probability of one Hardware failure for most such systems.
Wenn dieser Adressenraum für einige sehr große Systeme zu klein ist, dann könnte ein anderes lokales Schema (einschließlich FC00::/7) oder jegliches andere nicht geroutete Schema ausgewählt werden. S
Innerhalb des DFO Rahmens gibt es keine Unterscheidung (neben dem Adressenerzeugungsalgorithmus) zwischen lokalen und anderen Adressen. Dies erlaubt eine nahtlose Integration von DFO Systemen, die irgendwo anders im Internet und irgendwo anders in der physischen Welt lokalisiert sind.Within the DFO frame, there is no distinction (besides the address generation algorithm) between local and other addresses. This allows seamless integration of DFO systems located elsewhere on the Internet and elsewhere in the physical world.
Innerhalb des DFO Systems bedeutet der Ausdruck (evali S), dass der Ausdruck S innerhalb der Umgebung eines DFOj evaluiert wird. Die Umgebung von zwei unterschiedlichen DFOs kann ziemlich unterschiedlich sein. Eine Umgebung enthält funktionale und Daten-Bindungen sowie einen Ausdruck-Evaluierer. Als Beispiel wird der Ausdruck (evaldfo-1 V) TRUE evaluieren, wenn V auf TRUE in dem DFO1 gesetzt ist, jedoch wird (evaldfo-2 V) auf FALSE zurückkehren, wenn V auf FALSE in DFO2 gesetzt ist.Within the DFO system, the expression (evali S) means that the term S is evaluated within the environment of a DFOj. The environment of two different DFOs can be quite different. An environment contains functional and data bindings as well as an expression evaluator. As an example, the expression (evaldfo-1 V) will evaluate TRUE if V is set to TRUE in DFO 1 , but (evaldfo-2 V) will return to FALSE if V is set to FALSE in DFO 2 .
Umgebungen sind nicht statisch. Eine Evaluierung von DFO Funktionen kann die Zustände der Variablen innerhalb der Umgebung ändern. Ein DFOset kann eine Variable in einem weiteren DFOget setzen durch Aufrufen einer Funktion, wie beispielsweise
(dfo-evaluate [DFOget]:0 (setf × value))Environments are not static. An evaluation of DFO functions can change the states of the variables within the environment. A DFO set can be a variable in another DFO get set by calling a function such as
(dfo-evaluate [DFO get ]: 0 (setf × value))
Ein DFO kann selbst ein Datenobjekt sein, wie zuvor erwähnt. Das angegebene Beispiel (Ändern der Sprache der Wörter, welche eine Liste von Zahlen repräsentieren) könnte pseudo-kodiert sein, wie folgt: A DFO can itself be a data object, as previously mentioned. The example given (changing the language of the words representing a list of numbers) could be pseudo-coded as follows:
In diesem Beispiel ist [DFOtranslate] als eine Eingabe an das DFO gegeben worden, und wird als ein ‘sub-dfo’ verwendet, um die Übersetzung auszuführen. Das DFO des höheren Levels weiß nichts vonIn this example, [DFO translate ] has been given as an input to the DFO, and is used as a 'sub-dfo' to perform the translation. The higher level DFO knows nothing about
1. BILDUNG EINES DFOs1. EDUCATION OF A DFO
- a. DFOs werden durch andere DFOs gebildet. Ein DFO System beginnt mit einem oder mehreren vordefinierten DFOs, welche in der Lage sind, andere DFOs zu bilden. DFOs haben eindeutige Adressen und haben an jeder Adresse eine Anzahl von Eingangs-/Ausgangs-Ports. Die Ports werden für eine Kommunikation zwischen DFOs verwendet.a. DFOs are made by other DFOs. A DFO system begins with one or more predefined DFOs capable of forming other DFOs. DFOs have unique addresses and have a number of input / output ports at each address. The ports are used for communication between DFOs.
- b. Um ein neues DFO zu bilden, ruft eines der vordefinierten DFOs, zum Beispiel DFO1 mit der Adresse [DFO1] die Funktion (dfo-create args) auf, wobei args irgendein Satz von Argumenten ist, um initiale Werte und Funktions-Bindungen zu setzen.b. To form a new DFO, one of the predefined DFOs, for example DFO1 with the address [DFO1], calls the function (dfo-create args), where args is any set of arguments to set initial values and function bindings.
- c. (dfo-create args) weist einige Speicher- und Prozessor-Ressourcen zu und lädt eine Kopie des DFOdefault Codes in diese Ressourcen.c. (dfo-create args) allocates some memory and processor resources and loads a copy of the DFO default code into these resources.
- d. Ein DFO könnte diese Aktion außer Kraft setzen durch Spezifizieren einer anderen Quelle für das initiale Laden durch Liefern von Argumenten an dfo-create wie beispielsweise (dfo-create :default (new-load) args).d. A DFO could override this action by specifying another source for the initial load by supplying arguments to dfo-create, such as (dfo-create: default (new-load) args).
- e. Zum Beispiel kann ein DFO ein weiteres DFO bilden, welches eine Kopie seiner selbst ist durch Zuführen von Argumenten an dfo-create, wie beispielweise (dfo-create :default *myself* args). In diesem Fall, wo *myself* die Repräsentation des aktuellen Zustands des bildenden DFOs ist, ist DFOcreated genau gleich mit DFOcreating in jeder Hinsicht, außer dass jegliche Aktivität von DFOcreated unterbrochen wird, bis die Argumente an (dfo-create args) evaluiert sind.e. For example, a DFO can make another DFO which is a copy of itself by supplying arguments to dfo-create, such as (dfo-create: default * myself * args). In this case, where * myself * is the representation of the current state of the forming DFO, DFO created is exactly the same as DFO creating in all respects, except that any activity is interrupted by DFO created until the arguments (dfo-create args) are evaluated.
- f. Vor jeglicher anderen Aktivität, einschließlich I/O Aktivität, wird ein neues DFO die Argumente evaluieren, welche an die (dfo-create args) Funktion gegeben wurden.f. Before any other activity, including I / O activity, a new DFO will evaluate the arguments given to the (dfo-create args) function.
2. Evaluierung innerhalb eines DFO 2. Evaluation within a DFO
- a. Wenn ein DFO ein weiteres DFO bildet, zum Beispiel durch Aufruf eines Verfahrens, welches wir “(dfo-create args)” nennen könnten.a. If a DFO forms another DFO, for example, by calling a method that we could call "(dfo-create args)".
Das neu gebildete DFO gibt typischerweise zumindest einen Wert zurück, innerhalb der Umgebung des ersten DFOs (DFO1), welcher die Adresse und der Kommunikations-Port [DFOcreated]:port des gebildeten DFO ist, in diesem Beispiel, DFOcreated. Dies erlaubt es dem DFO des höheren Levels, mit dem neu gebildeten DFO des niedrigeren Levels zu kommunizieren.
- b. Eines der möglichen Argumente für den Aufruf, ein neues DFO zu bilden (benannt wie oben “dfo-create”), ist die Spezifikation eines Kommunikations-Ports, über welchen DFOcreated erwartet, Nachrichten mit DFOcreating auszutauschen. Eine mögliche Implementierung ist (dfo-create :comport-in value1 :comport-out value2 rest-of-args) welche abgekürzt werden kann (dfo-create :comport value ...), wenn value1 gleich value2 ist. Dieser Kommunikations-Port ist typischerweise gleich Null für lokale DFOs, muss jedoch für DFOs spezifiziert werden, auf welche extern zugegriffen werden kann.
- c. Evaluierung der Argumente an (dfo-create args) bewirkt typischerweise die folgenden Schritte: i. DFO2‘s IPv6 Adresse [DFOself] wird gesetzt, entweder durch Spezifizieren eines Adressbereichs (dfo-create :myself range) oder durch eine Hash-Funktion (für lokale DFOs typischerweise zufällig). [DFOself] wird daher unterschiedliche Werte innerhalb unterschiedlicher DFOs aufweisen. ii. Der Adressbereich wird typischerweise eine einzelne IPv6 Adresse sein. Ansonsten wird die Hash-Funktion eine geeignete Adresse innerhalb des Bereichs auswählen. iii. Die Adresse [DFOparent] von ‘parent’ (hier [DFO1]) ist an eine geeignete vordefinierte globale Variable gebunden. Der Term ‘global’ bedeutet global innerhalb des neu gebildeten DFOs. iv. Die Ergebnisse der Evaluierung innerhalb DFO2 des Evaluierens der Argumente an das (dfo-create ...). v. Die Argumente können einen Port setzen, auf welchem der Übergeordnete einen Code S zur beliebigen Ausführung kommuniziert sowie den initialen Firewall Code. vi. Die Argumente setzen typischerweise den Port, an welchem der Übergeordnete (parent) den zurückgegebenen Wert (evaldfo-2 S) akzeptieren wird. Der Port ist typischerweise der gleiche Port, wie direkt oberhalb.
- d. Die Firewall von DFO2 ist typischerweise mit initialen Berechtigungen eingerichtet, welche die Injektion von Code und Daten in das DFOcreated durch DFOcreating erlauben. Diese Injektion erfolgt typischerweise in irgendeinen Port (möglicherweise Port 0). Der injizierte Code wird danach ausgeführt und typischerweise ist ein Nebeneffekt der Ausführung, dass auf einigen Sätzen von Ports (möglicherweise Port 0) die Werte verfügbar gemacht werden, welche von der Berechnung des injizierten Codes erlangt wurden.
- b. One of the possible arguments for invoking a new DFO (named as above "dfo-create") is the specification of a communication port over which DFO created expects to exchange messages with DFO creating . One possible implementation is (dfo-create: comport-in value1: comport-out value2 rest-of-args) which can be abbreviated (dfo-create: comport value ...) if value1 is value2. This communication port is typically zero for local DFOs, but must be specified for DFOs that can be accessed externally.
- c. Evaluating the arguments (dfo-create args) typically involves the following steps: i. DFO2's IPv6 address [DFO self ] is set either by specifying an address range (dfo-create: myself range) or by a hash function (typically random for local DFOs). Therefore, [DFO self ] will have different values within different DFOs. ii. The address range will typically be a single IPv6 address. Otherwise, the hash function will select a suitable address within the range. iii. The address [DFO parent ] of 'parent' (here [DFO 1 ]) is bound to an appropriate predefined global variable. The term 'global' means globally within the newly formed DFO. iv. The results of the evaluation within DFO 2 of evaluating the arguments to the (dfo-create ...). v. The arguments can set a port on which the parent communicates a code S for arbitrary execution as well as the initial firewall code. vi. The arguments typically set the port where the parent will accept the returned value (evaldfo-2 S). The port is typically the same port as directly above.
- d. The firewall of DFO 2 is typically set up with initial permissions that allow injection of code and data into the DFO created by DFO creating . This injection is typically done in any port (possibly port 0). The injected code is then executed and typically a side effect of the execution is that on some sets of ports (possibly port 0) the values obtained from the calculation of the injected code are made available.
Anmerkung: Vor der Evaluierung der Argumente an (dfo-create ...), ist die Umgebung die Standard-Umgebung; daher liefert jeglicher Code, welcher durch DFO1 in DFO2 injiziert wurde und zur Ausführung akzeptiert wurde, vorhersagbare Ergebnisse. Es wäre ungewöhnlich, aber dennoch durch die Argumente an (create-dfo args) möglich, dass ein DFO Ausdrücke, welche von DFOparent auf den spezifizierten Port gesendet werden, ablehnt oder nicht evaluiert. Diese Fähigkeit würde beim Betreiben von unabhängigen parallelen Verarbeitungssystemen nützlich sein.
- e. Aufgrund des direkt vorangehenden Absatzes wird DFOi typischerweise S akzeptieren und anschließend evaluieren, welches von [DFOcreating] stammt und auf [DFOcreated]:parent erhalten wurde.
- f. DFO1 injiziert Initialisierungscode in DFO2
- g. Dieser Initialisierungscode wird ausgeführt (wird evaluiert) durch DFO2.
- h. Das Ergebnis der Evaluierung wird auf dem spezifizierten Ausgangs-Port präsentiert.
- e. Due to the preceding paragraph, DFO i will typically accept and then evaluate S, which originates from [DFO creating ] and was obtained on [DFO created ]: parent.
- f. DFO 1 injects initialization code in DFO 2
- G. This initialization code is executed (evaluated) by DFO 2 .
- H. The result of the evaluation is presented on the specified output port.
3. NACHRICHTENFORMATE3. NEWS FORMATS
- a. Typischerweise werden Nachrichten von einem DFO an ein weiteres als ausführbare Objekte, wie beispielswiese als LISP S-Ausdrücke, weitergeleitet.a. Typically, messages from one DFO are forwarded to another as executable objects, such as LISP S expressions.
- b. Daher kann ein DFO irgendeine Variabel (soweit es Berechtigungen erlauben) in einem anderen DFO setzen, einfach durch Weiterleiten einer Nachricht (SETF Wert in Variabel-Form).b. Therefore, a DFO can set any variable (as far as allow permissions) in another DFO, simply by passing a message (SETF value in variable form).
- c. Setzen einer Variabel in einem anderen DFO kann durch eine Funktion implementiert werden, wie beispielsweise (dfo-send address args). Die Syntax zum Setzen der Variabel ‘color’ auf ‘red’ kann so einfach sein, wie folgt (dfo-send DFO (SETF color red))c. Setting a variable in another DFO can be implemented by a function such as (dfo-send address args). The syntax for setting the variable 'color' to 'red' can be as simple as follows (dfo-send DFO (SETF color red))
4. DFO Kommunikationszuverlässigkeit 4. DFO communication reliability
Kommunikationen zwischen unterschiedlichen DFOs unter Verwendung von IPv6 als Übertragungsprotokoll sind probabilistisch. Das heißt, eine Nachricht, welche von einem [DFO] gesendet wird, wird zu einem weiteren [DFO] geroutet, jedoch, wie bei beiden IPv4 und IPv6 Protokollen, können Nachrichten eine beliebig lange Zeit benötigen oder vollständig fallen gelassen werden. IPv6 Optionen, wie beispielsweise Lebensdauer-Felder (lifetime fields), werden verwendet, um die Zeitplanung und kontinuierliche Existenz von Inter-DFO-Kommunikationen zu steuern. Ein DFO, das eine hohe Zuverlässigkeit der Kommunikation benötigt, implementiert ein Protokoll wie beispielsweise TCP, wo Quittierungs- und Bestätigungs-Nachrichten eine erfolgreiche Übertragung und Empfang anzeigen.Communications between different DFOs using IPv6 as a transmission protocol are probabilistic. That is, a message sent from one [DFO] will be routed to another [DFO], however, as with both IPv4 and IPv6 protocols, messages may take an arbitrarily long time or be completely dropped. IPv6 options, such as lifetime fields, are used to control the timing and continued existence of inter-DFO communications. A DFO that requires high reliability of communication implements a protocol such as TCP, where acknowledgment and acknowledgment messages indicate successful transmission and reception.
Gemäß dem zweiten Aspekt wird ein Computer-implementiertes Datenfusionsobjekt, DFO, bereitgestellt, welches in der Lage ist, mit zumindest einem weiteren DFO über ein Kommunikationsnetzwerk (N) zu kommunizieren, wobei das Kommunikationsnetzwerk (N) eine Anzahl von verfügbaren Netzwerkadressen bereitstellt, wobei jedes DFO eine separate und unabhängige Adresse auf dem Kommunikationsnetzwerk aufweist.According to the second aspect, there is provided a computer implemented data fusion object, DFO, capable of communicating with at least one other DFO over a communication network (N), the communication network (N) providing a number of available network addresses, each DFO has a separate and independent address on the communication network.
wobei das DFO angepasst ist, um:
- – in einer externen Rechnerumgebung zu existieren;
- – einen Ausdruck-Evaluierer zu implementieren;
- – zumindest eine Adresse aufzuweisen, welche es für eine Kommunikation innerhalb der Umgebung identifiziert, und
- – eine interne Rechnerumgebung zu umfassen mit vorbestimmten Verfahren und Eigenschaften,
- – in der Lage zu sein, neue Verfahren und neue Datenstrukturen seiner internen Rechnerumgebung hinzuzufügen, und in der Lage ist: neue DFOs innerhalb seiner Umgebung zu bilden; neue DFOs innerhalb seiner Umgebung zu zerstören; und mit DFOs innerhalb seiner internen Umgebung oder innerhalb der externen Umgebung zu kommunizieren.
- - to exist in an external computing environment;
- To implement an expression evaluator;
- To have at least one address identifying it for communication within the environment, and
- To include an internal computing environment with predetermined methods and properties,
- - be able to add new procedures and new data structures to its internal computing environment, and be able to: create new DFOs within its environment; to destroy new DFOs within its environment; and to communicate with DFOs within its internal environment or within the external environment.
Das DFO kann weiterhin eine interne Rechnerumgebung umfassen, welche zumindest ein weiteres DFO, wie oben definiert, umfasst.The DFO may further comprise an internal computing environment comprising at least one other DFO as defined above.
Hier ist ein vorbestimmtes Verfahren ein Computerprozess, welcher eine vorbestimmte Funktion implementiert, deren Eingabedaten Eigenschaften des DFO sind und deren Evaluierung einen inneren Zustand des DFO modifiziert.Here, a predetermined method is a computer process which implements a predetermined function whose input data are characteristics of the DFO and whose evaluation modifies an inner state of the DFO.
Hier ist das Verfahren in der Lage eine Bildung oder eine Zerstörung von einem oder mehreren DFOs zu bewirken und eine Kommunikation von Daten und Umgebung zu zumindest einem weiteren DFO zu bewirken, und Daten über ein Kommunikationsnetzwerk kommunizieren.Here, the method is capable of causing formation or destruction of one or more DFOs and causing communication of data and environment to at least one other DFO and communicating data over a communication network.
Hierbei werden Eigenschaften als Daten repräsentiert und Daten werden als Verfahren evaluiert. Here, properties are represented as data and data is evaluated as a method.
Hierbei werden Verfahren als Daten verwendet, wenn sie an ein DFO weitergegeben werden, und Daten sind Verfahren, wenn sie durch ein DFO empfangen werden und dekonstruiert werden, um Verfahren zu implementieren, so dass das DFO in der Lage ist:
- – von anderen DFOs deren interne Rechnerumgebung zu empfangen und diese empfangene Umgebung zu verwenden, um Verfahren des sendenden DFOs und Verfahren, welche dem empfangenden DFO innewohnen, zu berechnen
- – und in der Lage ist, zu evaluierende Ausdrücke und Daten für diejenigen Ausdrücke von anderen DFOs zu empfangen unter Verwendung entweder einer empfangenen Umgebung oder der internen Umgebung des empfangenden DFOs.
- Receive from other DFOs their internal computing environment and use this received environment to compute methods of the sending DFO and procedures inherent in the receiving DFO
- And is able to receive terms and data to evaluate for those terms from other DFOs using either a received environment or the internal environment of the receiving DFO.
Das DFO kann in Hardware und/oder in logischer Software implementiert sein.The DFO can be implemented in hardware and / or in logical software.
Hierbei sind Eingaben an das DFO und Ausgaben von den DFOs Pakete, welche unter Verwendung von Netzwerkadressen gesendet und empfangen werden.Here are inputs to the DFO and outputs from the DFOs packets sent and received using network addresses.
Das DFO kann angepasst sein, um Nachrichten an ein zweites DFO zu senden durch Senden eines Satzes von IP Paketen auf einen vorbestimmten Port und/oder Empfangen von Nachrichten von dem zweiten DFO durch Empfangen von Paketen von einem vorbestimmten Port des zweiten DFO. The DFO may be adapted to send messages to a second DFO by sending a set of IP packets to a predetermined port and / or receiving messages from the second DFO by receiving packets from a predetermined port of the second DFO.
Die DFO Adressen können im Format eines IPv6 Verfahrens sein und das Verfahren und die Datentransportmechanismen des DFOs werden in den IPv6 Spezifikationen und unter Verwendung von TCP/IP Protokollen implementiert.The DFO addresses can be in the format of an IPv6 procedure and the DFO's procedure and data transport mechanisms are implemented in IPv6 specifications and using TCP / IP protocols.
Auch ist gemäß dem zweiten Aspekt ein System zum Evaluieren berechenbarer Funktionen definiert, wobei das System zumindest ein DFO, wie oben definiert, umfasst.Also, according to the second aspect, there is defined a system for evaluating calculable functions, the system comprising at least one DFO as defined above.
Auch definiert gemäß dem zweiten Aspekt ist eine berechenbare Evaluierungsfunktion mit Einrichtungen zur lokalen oder parallelen funktionalen Evaluierung, einer gefilterten Dateneingabe und -ausgabe, und prozessabhängiger Eingabe und Ausgabe von einem oder mehreren eingekapselten funktionalen Objekten an andere derartige Objekte und für Computer- und Datenverarbeitungsvorrichtungen und Systeme, welche lokal oder im Internet lokalisiert sind, wobei das Verfahren durch das zuvor definierte System ausgeführt wird.Also defined according to the second aspect is a computable evaluation function having means for local or parallel functional evaluation, filtered data input and output, and process-dependent input and output of one or more encapsulated functional objects to other such objects and for computer and data processing devices and systems which are located locally or on the Internet, the method being carried out by the previously defined system.
ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- WO 2015/066527 [0013] WO 2015/066527 [0013]
Zitierte Nicht-PatentliteraturCited non-patent literature
- Version 4 von RFC 4122der Netzwerkarbeitsgruppe, Juli 2005 [0003] Version 4 of RFC 4122 of the Network Working Group, July 2005 [0003]
- Version 4 von RFC 4122 festgelegt sind (“Leach-Salz”) und Version 5 von RFC 4122 (SHA-1 Hash über einem Namensraum) [0004] Version 4 of RFC 4122 ("Leach Salt") and Version 5 of RFC 4122 (SHA-1 hash over a namespace) [0004]
- 2008 durch die Pseudonyme Satoshi Nakamoto in dem Paper mit dem Titel “Bitcoin: A Peer-to-Peer Electronic Cash System” [0005] 2008 by the pseudonyms Satoshi Nakamoto in the paper titled "Bitcoin: A Peer-to-Peer Electronic Cash System" [0005]
- olche Schemata werden allgemein nicht in strenger Übereinstimmung mit RFC 2460, Internet [0054] Generally, these schemes are not strictly in accordance with RFC 2460, Internet [0054]
Claims (11)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016108093.4 | 2016-05-02 | ||
DE102016108093 | 2016-05-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102017109383A1 true DE102017109383A1 (en) | 2017-11-02 |
Family
ID=60081736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102017109383.4A Pending DE102017109383A1 (en) | 2016-05-02 | 2017-05-02 | Method for data communication using random network addresses and corresponding device |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102017109383A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019086638A1 (en) * | 2017-11-02 | 2019-05-09 | Prisma Analytics Gmbh | Method for data communication using random network addresses and apparatus thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015066527A1 (en) | 2013-11-01 | 2015-05-07 | Qualcomm Incorporated | Method and apparatus for determining to use x2 gateway for x2 interface |
-
2017
- 2017-05-02 DE DE102017109383.4A patent/DE102017109383A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015066527A1 (en) | 2013-11-01 | 2015-05-07 | Qualcomm Incorporated | Method and apparatus for determining to use x2 gateway for x2 interface |
Non-Patent Citations (4)
Title |
---|
2008 durch die Pseudonyme Satoshi Nakamoto in dem Paper mit dem Titel "Bitcoin: A Peer-to-Peer Electronic Cash System" |
olche Schemata werden allgemein nicht in strenger Übereinstimmung mit RFC 2460, Internet |
Version 4 von RFC 4122 festgelegt sind ("Leach-Salz") und Version 5 von RFC 4122 (SHA-1 Hash über einem Namensraum) |
Version 4 von RFC 4122der Netzwerkarbeitsgruppe, Juli 2005 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019086638A1 (en) * | 2017-11-02 | 2019-05-09 | Prisma Analytics Gmbh | Method for data communication using random network addresses and apparatus thereof |
US11277377B2 (en) | 2017-11-02 | 2022-03-15 | Prisma Analytics Gmbh | Method for data communication using random network addresses and apparatus thereof |
US11563716B2 (en) | 2017-11-02 | 2023-01-24 | Prisma Analytics Gmbh | Method for data communication using random network addresses and apparatus thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102017125649A1 (en) | Method for data communication using random network addresses and a corresponding device | |
DE60317925T2 (en) | CONTROLLING NETWORK TRAFFIC IN A PEER-TO-PEER ENVIRONMENT | |
EP3652656B1 (en) | Devices to provide a quantity of cryptographically protected and filtered as well as sorted transaction datasets of a link of a block chain | |
DE102015102871B4 (en) | Distributed routing table lookup technologies | |
EP0825524B1 (en) | Method for naming of objects | |
DE60310347T2 (en) | Method and system for rule association in communication networks | |
DE69937248T2 (en) | ROUTERS AND METHOD FOR OPTIMAL CONDUCTIVE TABLE COMPRESSION | |
DE69836271T2 (en) | MULTI-STAGE FIREWALL SYSTEM | |
DE112010003149B4 (en) | Collaborative encryption and decryption by agents | |
DE602004004601T2 (en) | Distribution of membership information for multi-user sessions at the application level | |
DE602004009819T2 (en) | INSTRUMENTATION SYSTEM AND METHOD FOR ESTIMATING THE CHARACTERISTICS OF A DECENTRALIZED NETWORK | |
DE102019210229A1 (en) | Method and device for the analysis of service-oriented communication | |
DE102017109383A1 (en) | Method for data communication using random network addresses and corresponding device | |
DE602004005059T2 (en) | COMPUTER NETWORK FOR IDENTIFYING MULTIPLE NODES, ACCORDING TO THE SAME LABEL | |
DE112011104020T5 (en) | Validate access to a shared record for read and write access by multiple requestors | |
EP1709764A1 (en) | Circuit arrangement and method for securing communication within communication networks | |
WO2023025764A1 (en) | Device and method for processing data units | |
WO2006048363A1 (en) | Method for initializing a peer-to-peer data network | |
CN106789666A (en) | A kind of method and apparatus for determining conversion rear port | |
EP3945702A1 (en) | Channel-based communication in an iot network | |
DE10018288A1 (en) | Transmitted protocol data unit analysis method uses 3 stage decoding with initialization phase for listing interface definitions, learning phase for reducing possibilities and decoding phase | |
DE102020134185A1 (en) | Process for routing service requests and real-time computer for implementing the process for routing service requests | |
DE102016205467B4 (en) | SWITCHING HUBS AND COMMUNICATION NETWORK | |
WO2020038820A1 (en) | Method for establishing a stream, method for providing stream identification information, use of a dns server, device, computer program, and computer-readable medium | |
DE102019210225A1 (en) | Method and device for the analysis of service-oriented communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R082 | Change of representative |
Representative=s name: REICH, JOCHEN, DIPL.-INF. UNIV. DR. RER. NAT., DE Representative=s name: 2S-IP SCHRAMM SCHNEIDER BERTAGNOLL PATENT- UND, DE |
|
R130 | Divisional application to |
Ref document number: 102017012365 Country of ref document: DE |
|
R082 | Change of representative |
Representative=s name: REICH, JOCHEN, DIPL.-INF. UNIV. DR. RER. NAT., DE |
|
R012 | Request for examination validly filed |