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 PDF

Info

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
Application number
DE102017109383.4A
Other languages
German (de)
Inventor
Philip Gagner
Hardy Schloer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PATENTPOOL INNOVATIONS MAN GmbH
PATENTPOOL INNOVATIONS MANAGEMENT GmbH
Original Assignee
PATENTPOOL INNOVATIONS MAN GmbH
PATENTPOOL INNOVATIONS MANAGEMENT GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PATENTPOOL INNOVATIONS MAN GmbH, PATENTPOOL INNOVATIONS MANAGEMENT GmbH filed Critical PATENTPOOL INNOVATIONS MAN GmbH
Publication of DE102017109383A1 publication Critical patent/DE102017109383A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5092Address 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 Version 4 von RFC 4122der Netzwerkarbeitsgruppe, Juli 2005 .The prior art includes the use of a UUID with an MD5 hash value derived from a URL, or a domain name, or an object identifier or a Distinguished Name (DN) as used in the Lightweight Directory Access Protocol ), such as set in Version 4 of RFC 4122 of the Network Working Group, July 2005 ,

Der Stand der Technik umfasst die Verwendung eines UUID, welche primär von zufälligen Zahlen abhängt, zum Beispiel, diejenigen, welche in Version 4 von RFC 4122 festgelegt sind (“Leach-Salz”) und Version 5 von RFC 4122 (SHA-1 Hash über einem Namensraum) .The prior art involves the use of a UUID that depends primarily on random numbers, for example, those that are in Version 4 of RFC 4122 ("Leach Salt") and Version 5 of RFC 4122 (SHA-1 hash over a namespace) are set ,

Der Stand der Technik enthält die Technologie, welche 2008 durch die Pseudonyme Satoshi Nakamoto in dem Paper mit dem Titel “Bitcoin: A Peer-to-Peer Electronic Cash System” offenbart ist, wo auch die Computertechniken des Standes der Technik, wie beispielsweise Hashing, Zeitstempelung und Lösen von Problemen mit Ausführungsnachweisen offenbart sind.The prior art contains the technology which 2008 by the pseudonyms Satoshi Nakamoto in the paper titled "Bitcoin: A Peer-to-Peer Electronic Cash System" also disclosing prior art computer techniques such as hashing, time stamping, and solving problems with design evidence.

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 WO/2015/066527 , Verfahren und Vorrichtung zum Bestimmen der Verwendung eines X2 Gateways für eine x2 Schnittstelle, wobei ein Empfänger in einem drahtlosen Kommunikationssystem Nachrichten in Reaktion auf das Entdecken eines Nachbarknotens hin empfängt, um das Verfahren der Kommunikation zu bestimmen, welches direkte Kommunikation oder indirekte Kommunikation über das Gateway sein kann, wobei bei dem indirekten Verfahren basierend auf der Adressen-Angabe ausgewählt wird.The state of the art includes WO / 2015/066527 A method and apparatus for determining the use of an X2 gateway for an x2 interface, wherein a receiver in a wireless communication system receives messages in response to detecting a neighbor node to determine the method of communication, which direct communication or indirect communication over the Gateway, which is selected in the indirect method based on the address indication.

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ähr

Figure DE102017109383A1_0002
was für kleine Exponenten
Figure DE102017109383A1_0003
ist, was grob
Figure DE102017109383A1_0004
ist, 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
Figure DE102017109383A1_0005
sein würde, was
Figure DE102017109383A1_0006
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
Figure DE102017109383A1_0002
what little exponents
Figure DE102017109383A1_0003
is what rough
Figure DE102017109383A1_0004
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
Figure DE102017109383A1_0005
what would be
Figure DE102017109383A1_0006
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 claim 1 uses 128-bit addresses. The advantage of using 128-bit addresses is that many address routing problems as well as other definition problems have been extensively studied or solved, in principle, because IPv6 networks use 128 bits.

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 claim 1, nodes must store the current address of other nodes with which they are communicating. This allows the implementation of massively parallel data processing systems, where a node is constructed to compute a particular function, then that node is instantiated and replicated multiple times, each instance having a different but identifiable network address. These multiple nodes are configured to receive broadcast messages and to compute user-defined functions on data contained within the system, thereby achieving massively parallel communication.

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 claim 1 is based on random or pseudorandom algorithms. The prior art includes methods of generating both true random and pseudo-random numbers of any desired size. Real random numbers can be generated by any number of physical processes, such as radioactive noise or photon generators. Pseudo-random numbers can be generated by any of a variety of well-known methods, such as a linear congruence generator. Since physical phenomena generally have asymmetries and systematic tendencies that do not make their results uniformly random, a preferred method that has been demonstrated in the prior art to use a cryptographic hash function to avoid uniform distribution of bits from one -uniform random source. The particular methods of generating random numbers are not a claim of this patent.

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
The nodes of the network are able to perform calculations. The preferred implementation is that the nodes execute statements in any language, preferably functional and in the manner of the Erlang language or the Lisp language. In the Erlang language: every statement is a process
  • • 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: RemoteProcessId = spawn(RemoteNode,FunctionCode,[Port,MaxCon]), In the following example, using the Erlang notation, we form a new node and perform any function within that node: RemoteProcessId = spawn (RemoteNode, FunctionCode, [Port, MaxCon]),

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 1 für einen allgemeinen Überblick verwiesen.A DFO method is a computer process that implements a function whose input data is DFO properties, and whose evaluation modifies the internal state of the DFO and may or may not cause the formation or destruction of one or more sub-DFOs, and the data may or may not communicate over one or more networks (including networks that implement IP, such as the Internet). It will open 1 for a general overview.

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.

1 stellt DFOs in ihren jeweiligen Umgebungen dar. 1 represents DFOs in their respective environments.

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 olche Schemata werden allgemein nicht in strenger Übereinstimmung mit RFC 2460, Internet Protokoll, Version 6 (IPv6) Spezifikation, herausgegeben durch die Internet Engineering Task Force (IETF) und späteren RFCs, welche die Architektur und Dienste, welche durch IPv6 unterstützt werden, beschreiben, sein. Wenn die Standard-Zuweisungen von IPv6 außer Kraft gesetzt werden, könnte das DFO System, welches mit diesem Typ von Netzwerk implementiert wird, potentiell von einer Größe von 2^128 sein, was ungefähr 3.8×10E38 ist. Für solche großen Adressenräume sind Adressenkollisionen vernachlässigbar, sogar bei sehr großen Systemen.If this address space is too small for some very large systems, then another local scheme (including FC00 :: / 7) or any other non-routed scheme could be selected. S These schemes are generally not in strict accordance with RFC 2460, Internet Protocol, Version 6 (IPv6) specification issued by the Internet Engineering Task Force (IETF) and later RFCs describing the architecture and services supported by IPv6. If the default assignments of IPv6 are overridden, the DFO system could work with this type implemented by network, potentially be of a size of 2 ^ 128, which is about 3.8 × 10E38. For such large address spaces, address collisions are negligible, even with very large systems.

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:

Figure DE102017109383A1_0007
Figure DE102017109383A1_0008
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:
Figure DE102017109383A1_0007
Figure DE102017109383A1_0008

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.
The newly formed DFO typically returns at least one value within the environment of the first DFO (DFO 1 ), which is the address and communication port [DFO created ]: port of the formed DFO, in this example, DFO created . This allows the higher level DFO to communicate with the newly formed lower level DFO.
  • 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.
Note: Before evaluating the arguments to (dfo-create ...), the environment is the default environment; therefore, any code injected by DFO 1 into DFO 2 and accepted for execution provides predictable results. It would be unusual, but still possible with the arguments to (create-dfo args), that a DFO refuses or does not evaluate expressions sent by DFO parent to the specified port. This capability would be useful in operating independent parallel processing systems.
  • 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.
where the DFO is adjusted to:
  • - 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.
Here, methods are used as data when passed to a DFO, and data are methods when they are received by a DFO and deconstructed to implement methods so that the DFO is able to:
  • 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)

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 local environment of the node, and wherein the addresses of newly formed or newly connected network nodes are randomly assigned, with a near uniqueness of the nodes Addresses are achieved by using a random or pseudo-random method of selecting an address from a sufficiently large pool of network addresses. Verfahren gemäß Anspruch 1, bei welchem kein Knoten oder Sammlung von Knoten in einem Netzwerk oder einem Sub-Netzwerk die Netzwerk-Adressen oder Kennung von allen anderen Knoten im Speicher speichert, obwohl ein Knoten die Adressen von Knoten, welche unter seiner Aufsicht gebildet wurden, oder die Adressen von denjenigen Knoten, welche ihn gebildet haben, oder die Knoten-Adressen, welche ihm durch einen weiteren Knoten zugeführt wurden, im Speicher speichern kann.The method of claim 1, wherein no node or collection of nodes in a network or subnet stores the network addresses or identifier of all other nodes in memory, although a node stores the addresses of nodes formed under its supervision, or store the addresses of those nodes that have formed it or store the node addresses supplied to it by another node in memory. Verfahren gemäß Anspruch 1 oder 2, wobei das Netzwerk in zwei oder mehr Sub-Netze unterteilt ist, mit einem Gateway zwischen den Sub-Netzen, über welches Daten zu einem weiteren Sub-Netz gesendet werden können, und wobei dem Gateway eine nicht zufällige Adresse auf zumindest einer Seite des Gateways zugewiesen ist, welches mit einem oder mehr der multiplen Sub-Netze verbunden wird, jedoch nicht das Sub-Netz enthaltend, in welchem das Verfahren gemäß Anspruch 1 verwendet wird, wobei die zumindest eine Adresse durch eine oder mehr feste Adressen bestimmt wird, oder durch Adressen, welche durch eine feste Eigenschaft des Knotens in den Sub-Netzen auf den Seiten des Gateways bestimmt werden, in welchen das Verfahren gemäß Anspruch 1 nicht verwendet wird, um Adressen zuzuweisen.The method of claim 1 or 2, wherein the network is divided into two or more sub-networks, with a gateway between the sub-networks over which data can be sent to another sub-network, and wherein the gateway is a non-random address is assigned on at least one side of the gateway, which is connected to one or more of the multiple sub-networks, but not containing the sub-network in which the method is used according to claim 1, wherein the at least one address by one or more fixed Addresses is determined, or by addresses, which are determined by a fixed property of the node in the sub-networks on the pages of the gateway, in which the method is not used according to claim 1 to assign addresses. Verfahren gemäß Anspruch 1 oder Anspruch 2 oder Anspruch 3, wobei das Netzwerk in zwei oder mehr Sub-Netze unterteilt ist, mit einem Gateway zwischen den Sub-Netzen, über welches Daten zu einem weiteren Sub-Netz gesendet werden können, und wobei dem Gateway eine nicht zufällige Adresse auf zumindest einer Seite des Gateways zugewiesen ist, welche mit einem oder mehr der multiplen Sub-Netze verbunden ist, jedoch nicht das Sub-Netz enthaltend, in welchem das Verfahren gemäß Anspruch 1 verwendet wird, wobei die zumindest eine Adresse durch einen Server bestimmt wird, welcher von dem Knoten unterscheidbar ist, für welchen eine Adresse bestimmt wird, wobei der Server die Netzwerkadressen von denjenigen Knoten bestimmt, welche noch keine Netzwerk-Adresse haben.A method according to claim 1 or claim 2 or claim 3, wherein the network is divided into two or more sub-networks, with a gateway between the sub-networks over which data can be sent to another sub-network, and the gateway a non-random address is assigned on at least one side of the gateway, which is connected to one or more of the multiple sub-networks, but not containing the sub-network in which the method is used according to claim 1, wherein the at least one address by determining a server which is distinguishable from the node for which an address is determined, the server determining the network addresses from those nodes which do not yet have a network address. Verfahren gemäß den Ansprüchen 1–4, wobei die Einmaligkeit der Knotenadresse sichergestellt wird durch eine Broadcast-Nachricht von einem sendenden Knoten, welcher eine Bestätigungsnachricht anfordert, welche ausreicht, um die Adresse des sendenden Knotens zu identifizieren, und welche durch das Netzwerk oder durch das Sub-Netz übertragen wird, in welchem der Knoten lokalisiert ist und durch, auf ein Empfangen einer Bestätigungsnachricht hin, erneutes Zuweisen, wiederum mit einer zufälligen Auswahl, der Netzwerk-Adresse von entweder dem sendenden Knoten oder dem empfangenden Knoten oder von beiden. The method of claims 1-4, wherein the uniqueness of the node address is ensured by a broadcast message from a sending node requesting an acknowledgment message sufficient to identify the address of the sending node and which are transmitted through the network or through the network Subnet is transmitted in which the node is located and by, on receiving an acknowledgment message, reassigning, again with a random selection, the network address of either the sending node or the receiving node or both. Verfahren gemäß den Ansprüchen 1–4, angewandt auf ein existierendes Netzwerk mit einem Verfahren zum Hinzufügen von neu gebildeten Knoten mit Adressen, so dass Einmaligkeit der neuen Adresse sichergestellt wird durch eine Broadcast-Nachricht, welche von dem neu gebildeten Knoten ausgeht (der „sendende Knoten“), wobei die Sendenachricht ein Datenpaket enthält, welches von jedem empfangenden Knoten eine Bestätigungsnachricht anfordert, welche ausreichend ist, um die Adresse eines Netzwerk-Knotens zu identifizieren, die mit derjenigen des sendenden Knotens konfliktiert oder diejenige des sendenden Knotens dupliziert, wobei die Broadcast-Nachricht und Antwortnachricht durch das Netzwerk oder durch das Sub-Netz übertragen werden, in welchem der sendende Knoten lokalisiert ist und, auf ein Empfangen einer Bestätigungsnachricht hin, die angibt, dass ein existierender Knoten diese Adresse hat, der sendende Knoten eine Knoten-Apoptose auslöst, wobei der sendende Knoten als Ergebnis davon aus dem System entfernt wird, wobei ein Fehler an denjenigen Prozess zurückgeben wird, welcher den sendenden Knoten gebildet hat, wobei die Broadcast-Nachricht aus einer Adresse besteht, welche eine Broadcast-Nachricht spezifiziert und einem Datenanteil, welcher eine möglicherweise unterschiedliche passende Adresse enthält, so dass jeder Knoten, welcher die Sendenachricht empfängt, die Adresse auf Übereinstimmung überprüft und, wenn Übereinstimmung mit der Adresse des Knotens gefunden wird, welcher den Broadcast empfängt, eine Rück-Nachricht sendet, welche anzeigt, dass diese Adresse bereits durch die Netzwerke in Verwendung ist.Method according to claims 1-4, applied to an existing network with a method for adding newly formed nodes to addresses so that uniqueness of the new address is ensured by a broadcast message originating from the newly formed node (the "sending") Node), the send message containing a data packet requesting from each receiving node an acknowledgment message sufficient to identify the address of a network node that conflicts with or duplicates that of the sending node, the duplicate node Broadcast message and response message are transmitted through the network or subnet in which the sending node is located and, upon receiving an acknowledgment message indicating that an existing node has this address, the sending node Apoptosis triggers, with the sending node as result is removed therefrom from the system, wherein an error is returned to the process which has formed the sending node, the broadcast message consisting of an address specifying a broadcast message and a data portion containing a possibly different matching address such that each node receiving the broadcast message checks the address for correspondence and, if it matches the address of the node receiving the broadcast, sends a return message indicating that this address is already through the networks in use. Verfahren gemäß den Ansprüchen 1–4, wobei die Eindeutigkeit einer neu gebildeten Knotenadresse durch eine Broadcast-Nachricht von einem neu gebildeten Knoten (dem „sendenden Knoten“) sichergestellt wird, welcher eine Bestätigungsnachricht anfordert, welche ausreichend ist, um die Adresse eines Netzwerkknotens zu identifizieren, welche mit derjenigen des sendenden Knotens konfliktiert oder diejenige des sendenden Knotens dupliziert, wobei die Bestätigungsnachricht durch das Netzwerk oder das Sub-Netz übertragen wird, in welchem der Knoten lokalisiert ist, und, auf ein Empfangen einer Bestätigungsnachricht hin, die angibt, dass ein anderer Knoten diese Adresse hat, der sendende Knoten eine Knoten-Apoptose auslöst, wobei der sendende Knoten als Ergebnis davon aus dem System entfernt wird, wobei ein Fehler an den Prozess zurückgegeben wird, welcher den sendenden Knoten gebildet hat.A method according to claims 1-4, wherein the uniqueness of a newly formed node address is ensured by a broadcast message from a newly formed node (the "sending node") requesting an acknowledgment message sufficient to address a network node identify which is conflicting with that of the sending node or that of the sending node Node is duplicated, whereby the acknowledgment message is transmitted through the network or subnet in which the node is located and, upon receiving an acknowledgment message indicating that another node has this address, the sending node As a result, the sending node is removed from the system, and an error is returned to the process that formed the sending node. Verfahren gemäß den Ansprüchen 1–4, wobei die gebildeten Knoten Nachrichten gemäß einem wohldefinierten Schichtenprotokoll, wie beispielsweise TCP oder UDP, austauschen, wobei solche Nachrichten zu existierenden Knoten gesendet werden, um zu bewirken, dass die existierenden Knoten neue Knoten bilden, um Knoten-Apoptose zu verursachen, um Netzwerk-Verkehr weiterzuleiten und um Rechner-Prozeduren zu evaluieren.The method of claims 1-4, wherein the formed nodes exchange messages according to a well-defined layer protocol, such as TCP or UDP, such messages being sent to existing nodes to cause the existing nodes to form new nodes in order to create nodes. Induce apoptosis to relay network traffic and to evaluate computational procedures. Verfahren gemäß Anspruch 8, wobei ein Knoten in einem Netzwerk einen internen Zustand aufrecht erhält, und wobei es innerhalb dieses Zustands eine Umgebung gibt, die den Wert und funktionale Bindungen von internen Zustandsvariablen enthält, wie beispielsweise Werte oder Funktionsnamen oder Funktionsdefinitionen, und innerhalb der Umgebungsfunktionen evaluiert werden können zusammen mit einem Verfahren der Kommunikation, wie in den Ansprüchen 6 und 7 beschrieben, so dass eine Funktion zusammen mit ihrer funktionalen Domain dem Knoten an seiner Knoten-Adresse präsentiert werden kann und die Evaluierung von dieser Funktion zusammen mit ihrer Umgebung von dem Knoten abgerufen werden kann.The method of claim 8, wherein a node in a network maintains an internal state, and wherein within that state there is an environment containing the value and functional bindings of internal state variables, such as values or function names or function definitions, and within the environment functions can be evaluated together with a method of communication as described in claims 6 and 7, so that a function can be presented together with its functional domain to the node at its node address and the evaluation of this function together with its environment of the Node can be retrieved. Verfahren gemäß Anspruch 9, wobei die Funktionen, die zu evaluieren sind, den Knoten auf bestimmten Ports präsentiert werden und die Evaluierungen der Funktionen anderen Knoten auf bestimmten Ports, welche zu diesem Zweck bestimmt sind, präsentiert werden.The method of claim 9, wherein the functions to be evaluated are presented to the node on particular ports, and the evaluations of the functions are presented to other nodes on particular ports designated for that purpose. Verfahren gemäß Anspruch 9 oder Anspruch 10, wobei zu evaluierende Funktionen in dem Format des Lamda-Kalküls in einer Variablenfreien Art präsentiert werden unter Verwendung von Indizes des Auftretens und durch Bilden von Links zwischen Anzahlen des Auftretens und Argumenten der Funktionen mit geeigneter Datenverriegelung auf den Links.A method according to claim 9 or claim 10, wherein functions to be evaluated are presented in the format of the lambda calculus in a variable-free manner using indices of occurrence and by forming links between numbers of occurrences and arguments of the functions with appropriate data locking on the links ,
DE102017109383.4A 2016-05-02 2017-05-02 Method for data communication using random network addresses and corresponding device Pending DE102017109383A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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