DE112020004859T5 - UPDATE MANAGEMENT FOR TRANSPORT SOFTWARE - Google Patents
UPDATE MANAGEMENT FOR TRANSPORT SOFTWARE Download PDFInfo
- Publication number
- DE112020004859T5 DE112020004859T5 DE112020004859.4T DE112020004859T DE112020004859T5 DE 112020004859 T5 DE112020004859 T5 DE 112020004859T5 DE 112020004859 T DE112020004859 T DE 112020004859T DE 112020004859 T5 DE112020004859 T5 DE 112020004859T5
- Authority
- DE
- Germany
- Prior art keywords
- conveyances
- software update
- subset
- blockchain
- conveyance
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Traffic Control Systems (AREA)
Abstract
Ein beispielhafter Betrieb kann eines oder mehrere von Folgendem umfassend: Empfangen eines Software-Updates in einem Beförderungsmittel einer Teilmenge von Beförderungsmitteln, Validieren des Software-Updates auf der Grundlage eines oder mehrerer von Folgendem: eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel, Verbreiten des Software-Updates auf der Grundlage des Validierens an eine weitere Teilmenge von Beförderungsmitteln, wobei die weitere Teilmenge der Beförderungsmittel größer ist als die Teilmenge der Beförderungsmittel. An example operation may include one or more of the following: receiving a software update in a conveyance of a subset of conveyances, validating the software update based on one or more of: a time period in which the software update is deployed, and a number of usages of the software update by the subset of conveyances, propagating the software update based on the validating to another subset of conveyances, wherein the further subset of conveyances is greater than the subset of conveyances.
Description
HINTERGRUNDBACKGROUND
Fahrzeuge oder Beförderungsmittel, wie zum Beispiel Pkw, Motorräder, Lastwagen, Flugzeuge, Züge usw., erfüllen allgemein auf vielfältigste Weise die Beförderungsbedürfnisse in Bezug auf Fahrgäste und/oder Güter. Funktionen, die sich auf Beförderungsmittel beziehen, können durch verschiedene Computervorrichtungen identifiziert und genutzt werden, wie zum Beispiel ein Smartphone oder ein Computer oder ein Tablet.Vehicles or conveyances, such as automobiles, motorcycles, trucks, airplanes, trains, etc., generally meet the transportation needs of passengers and/or goods in a variety of ways. Functions related to conveyances can be identified and used by various computing devices, such as a smartphone or a computer or a tablet.
Software-Updates für Beförderungsmittel werden allgemein von einem zentralen Server aus durchgeführt, der die Software-Updates an jeden einzelnen Beförderungsmittel-Client-Computer übermittelt. Dazu ist allgemein eine Netzwerkverbindung zur Cloud erforderlich. Die weitreichende Nutzung eines WAN zur Verteilung von Software-Updates ist jedoch ineffizient und möglicherweise nicht sicher. Außerdem wird das Software-Update möglicherweise nicht durch eine hinreichend große Anzahl von Beförderungsmitteln im notwendigen Umfang getestet, bevor es durch den Server versendet wird. Es gibt kein zentralisiertes System, das Software-Update-bezogene Informationen von Millionen Beförderungsmitteln erfassen und sicher und effizient nachverfolgen kann.Software updates for conveyances are generally performed from a central server that pushes the software updates to each individual conveyance client computer. This generally requires a network connection to the cloud. However, extensive use of a WAN to distribute software updates is inefficient and may not be secure. In addition, the software update may not be tested by a sufficiently large number of vehicles to the extent necessary before it is sent through the server. There is no centralized system that can capture and securely and efficiently track software update-related information from millions of vehicles.
Dementsprechend besteht Bedarf an einer gesicherten Verbreitung von Software-Updates für Beförderungsmittel, die auf umfangreichen Tests durch eine große Anzahl von Beförderungsmitteln beruht. Außerdem besteht Bedarf an einer Aufzeichnung Software-Update-bezogener Informationen in einem gemeinsam genutzten Speicher.Accordingly, there is a need for an assured distribution of software updates for conveyances based on extensive testing by a large number of conveyances. There is also a need for a record of software update related information in shared storage.
KURZDARSTELLUNGEXECUTIVE SUMMARY
Eine beispielhafte Ausführungsform kann ein Verfahren bereitstellen, das eines oder mehrere von Folgendem umfasst: Empfangen eines Software-Updates in einem Beförderungsmittel einer Teilmenge von Beförderungsmitteln; Validieren des Software-Updates auf der Grundlage eines oder mehrerer von Folgendem: eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel; Verbreiten des Software-Updates auf der Grundlage des Validierens an eine weitere Teilmenge von Beförderungsmitteln, wobei die weitere Teilmenge der Beförderungsmittel größer ist als die Teilmenge der Beförderungsmittel.An example embodiment may provide a method, comprising one or more of: receiving a software update in a conveyance of a subset of conveyances; validating the software update based on one or more of: a time period in which the software update is deployed and a number of usages of the software update by the subset of conveyances; propagating the software update based on the validating to another subset of conveyances, wherein the further subset of conveyances is greater than the subset of conveyances.
Eine andere beispielhafte Ausführungsform kann ein Verfahren bereitstellen, das eines oder mehrere von Folgendem umfasst: Senden, durch ein Master-Beförderungsmittel, eines ersten Teils eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln, Senden, durch ein Master-Beförderungsmittel, eines zweiten Teils des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln, wenn ein erstes Beförderungsmittel der Teilmenge von Beförderungsmitteln und ein zweites Beförderungsmittel der weiteren Teilmenge von Beförderungsmitteln in der Nähe sind: Veranlassen, dass das erste Beförderungsmittel den ersten Teil des Software-Updates an das zweite Beförderungsmittel sendet, und Veranlassen, dass das zweite Beförderungsmittel den zweiten Teil des Software-Updates an das erste Beförderungsmittel sendet.Another exemplary embodiment may provide a method comprising one or more of: sending, by a master vehicle, a first portion of a software update to a vehicle of a first subset of vehicles, sending, by a master vehicle, a second part of the software update to a means of transport of a further subset of means of transport if a first means of transport of the subset of means of transport and a second means of transport of the further subset of means of transport are in the vicinity: causing the first means of transport to carry out the first part of the software update sends to the second conveyance, and causing the second conveyance to send the second portion of the software update to the first conveyance.
Eine weitere beispielhafte Ausführungsform kann ein Verfahren bereitstellen, das eines oder mehrere von Folgendem umfasst: Empfangen eines Software-Updates in einem Beförderungsmittel, Durchführen einer ersten Validierung des Software-Updates in einer ersten Umgebung, wobei die erste Umgebung eine geringste Menge potenzieller Interaktionen umfasst, und Durchführen einer weiteren Validierung des Software-Updates, wenn die erste Validierung erfolgreich ist, in einer weiteren Umgebung, wobei die weitere Umgebung eine größere Menge potenzieller Interaktionen umfasst als die erste Umgebung.Another example embodiment may provide a method comprising one or more of: receiving a software update in a conveyance, performing a first validation of the software update in a first environment, the first environment including a lowest set of potential interactions, and if the first validation succeeds, performing further validation of the software update in a further environment, wherein the further environment includes a greater set of potential interactions than the first environment.
Eine weitere beispielhafte Ausführungsform kann ein System bereitstellen, das einen Prozessor und einen Speicher umfasst, wobei der Prozessor eines Beförderungsmittels einer Teilmenge von Beförderungsmitteln dafür eingerichtet ist, eines oder mehrere von Folgendem durchzuführen: Empfangen eines Software-Updates; Validieren des Software-Updates auf der Grundlage eines oder mehrerer von Folgendem: eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel; Verbreiten des Software-Updates auf der Grundlage des Validierens an eine weitere Teilmenge von Beförderungsmitteln, wobei die weitere Teilmenge der Beförderungsmittel größer ist als die Teilmenge der Beförderungsmittel.Another exemplary embodiment may provide a system comprising a processor and memory, wherein the processor of a vehicle of a subset of vehicles is configured to perform one or more of: receiving a software update; validating the software update based on one or more of: a time period in which the software update is deployed and a number of usages of the software update by the subset of conveyances; propagating the software update based on the validating to another subset of conveyances, wherein the further subset of conveyances is greater than the subset of conveyances.
Eine weitere beispielhafte Ausführungsform kann ein System bereitstellen, das einen Prozessor und einen Speicher umfasst, wobei der Prozessor eines Master-Beförderungsmittels dafür eingerichtet ist, eines oder mehrere von Folgendem durchzuführen: Senden eines ersten Teils eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln, Senden eines zweiten Teils des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln, wenn ein erstes Beförderungsmittel der Teilmenge von Beförderungsmitteln und ein zweites Beförderungsmittel der weiteren Teilmenge von Beförderungsmitteln in der Nähe sind: Veranlassen, dass das erste Beförderungsmittel den ersten Teil des Software-Updates an das zweite Beförderungsmittel sendet, und Veranlassen, dass das zweite Beförderungsmittel den zweiten Teil des Software-Updates an das erste Beförderungsmittel sendet.Another example embodiment may provide a system comprising a processor and memory, wherein the processor of a master vehicle is configured to perform one or more of: sending a first portion of a software update to a vehicle of a first subset of conveyances, sending a second part of the software update to a conveyance of a further subset of conveyances if a first conveyance of the subset of conveyances and a second conveyance of the further subset of Proximity conveyances are: causing the first conveyance to send the first part of the software update to the second conveyance, and causing the second conveyance to send the second part of the software update to the first conveyance.
Eine weitere beispielhafte Ausführungsform kann ein System bereitstellen, das einen Prozessor und einen Speicher umfasst, wobei der Prozessor dafür eingerichtet ist, eines oder mehrere von Folgendem durchzuführen: Empfangen eines Software-Updates in einem Beförderungsmittel, Durchführen einer ersten Validierung des Software-Updates in einer ersten Umgebung, wobei die erste Umgebung eine geringste Menge potenzieller Interaktionen umfasst, und Durchführen einer weiteren Validierung des Software-Updates, wenn die erste Validierung erfolgreich ist, in einer weiteren Umgebung, wobei die weitere Umgebung eine größere Menge potenzieller Interaktionen umfasst als die erste Umgebung.Another example embodiment may provide a system comprising a processor and memory, the processor configured to perform one or more of: receiving a software update in a conveyance, performing an initial validation of the software update in a vehicle first environment, wherein the first environment includes a lowest set of potential interactions, and if the first validation succeeds, performing further validation of the software update in a further environment, wherein the further environment includes a greater set of potential interactions than the first environment .
Eine weitere beispielhafte Ausführungsform stellt ein nicht-transitorisches computerlesbares Medium zur Verfügung, das Instruktionen umfasst, die, wenn sie durch einen Prozessor eines Beförderungsmittels einer Teilmenge von Beförderungsmitteln gelesen werden, den Prozessor veranlassen, eines oder mehrere von Folgendem durchzuführen: Empfangen eines Software-Updates, Validieren des Software-Updates auf der Grundlage eines oder mehrerer von Folgendem: eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel; Verbreiten des Software-Updates auf der Grundlage des Validierens an eine weitere Teilmenge von Beförderungsmitteln, wobei die weitere Teilmenge der Beförderungsmittel größer ist als die Teilmenge der Beförderungsmittel.Another exemplary embodiment provides a non-transitory computer-readable medium comprising instructions that, when read by a processor of a vehicle of a subset of vehicles, cause the processor to perform one or more of the following: receive a software update , validating the software update based on one or more of: a time period in which the software update is used and a number of times the software update is used by the subset of conveyances; propagating the software update based on the validating to another subset of conveyances, wherein the further subset of conveyances is greater than the subset of conveyances.
Eine weitere beispielhafte Ausführungsform stellt ein nicht-transitorisches computerlesbares Medium bereit, das Instruktionen umfasst, die, wenn sie durch einen Prozessor gelesen werden, den Prozessor veranlassen, eines oder mehrere von Folgendem durchzuführen: Senden eines ersten Teils eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln, Senden eines zweiten Teils des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln, wenn ein erstes Beförderungsmittel der Teilmenge von Beförderungsmitteln und ein zweites Beförderungsmittel der weiteren Teilmenge von Beförderungsmitteln in der Nähe sind: Veranlassen, dass das erste Beförderungsmittel den ersten Teil des Software-Updates an das zweite Beförderungsmittel sendet, und Veranlassen, dass das zweite Beförderungsmittel den zweiten Teil des Software-Updates an das erste Beförderungsmittel sendet.Another exemplary embodiment provides a non-transitory computer-readable medium comprising instructions that, when read by a processor, cause the processor to perform one or more of the following: send a first portion of a software update to a conveyance of a first subset of conveyances, sending a second part of the software update to a conveyance of a further subset of conveyances when a first conveyance of the subset of conveyances and a second conveyance of the further subset of conveyances are nearby: causing the first conveyance send the first part of the software update to the second conveyance, and cause the second conveyance to send the second part of the software update to the first conveyance.
Eine weitere beispielhafte Ausführungsform stellt ein nicht-transitorisches computerlesbares Medium bereit, das Instruktionen umfasst, die, wenn sie durch einen Prozessor gelesen werden, den Prozessor veranlassen, eines oder mehrere von Folgendem durchzuführen: Empfangen eines Software-Updates, Durchführen einer ersten Validierung des Software-Updates in einer ersten Umgebung, wobei die erste Umgebung eine geringste Menge potenzieller Interaktionen umfasst, und Durchführen einer weiteren Validierung des Software-Updates, wenn die erste Validierung erfolgreich ist, in einer weiteren Umgebung, wobei die weitere Umgebung eine größere Menge potenzieller Interaktionen umfasst als die erste Umgebung.Another exemplary embodiment provides a non-transitory computer-readable medium comprising instructions that, when read by a processor, cause the processor to perform one or more of: receiving a software update, performing an initial validation of the software - updates in a first environment, the first environment comprising a lowest set of potential interactions, and if the first validation is successful, performing further validation of the software update in a further environment, the further environment comprising a larger set of potential interactions as the first environment.
Figurenlistecharacter list
-
1A veranschaulicht ein Beförderungsmittel-Netzschaubild gemäß den beispielhaften Ausführungsformen.1A 12 illustrates a conveyance network diagram in accordance with exemplary embodiments. -
1B veranschaulicht ein beispielhaftes Netzschaubild, das einen Beförderungsmittelknoten umfasst, gemäß beispielhaften Ausführungsformen.1B 12 illustrates an example network diagram that includes a conveyance node, according to example embodiments. -
1C veranschaulicht ein weiteres beispielhaftes Netzschaubild, das einen Beförderungsmittelknoten umfasst, gemäß beispielhaften Ausführungsformen.1C 12 illustrates another example network diagram that includes a conveyance node, according to example embodiments. -
1D veranschaulicht ein weiteres beispielhaftes Netzschaubild, das einen Beförderungsmittelknoten umfasst, gemäß beispielhaften Ausführungsformen.1D 12 illustrates another example network diagram that includes a conveyance node, according to example embodiments. -
2A veranschaulicht eine Blockchain-Architekturausgestaltung gemäß beispielhaften Ausführungsformen.2A 1 illustrates a blockchain architecture layout according to example embodiments. -
2B veranschaulicht eine weitere Blockchain-Ausgestaltung gemäß beispielhaften Ausführungsformen.2 B FIG. 11 illustrates another blockchain configuration, according to example embodiments. -
2C veranschaulicht eine Blockchain-Ausgestaltung zum Speichern von Blockchain-Transaktionsdaten gemäß beispielhaften Ausführungsformen.2C 10 illustrates a blockchain configuration for storing blockchain transaction data, according to example embodiments. -
3A veranschaulicht ein Flussdiagramm gemäß beispielhaften Ausführungsformen.3A Figure 12 illustrates a flow chart according to example embodiments. -
3B veranschaulicht ein weiteres Flussdiagramm gemäß beispielhaften Ausführungsformen.3B Figure 12 illustrates another flow chart according to example embodiments. -
3C veranschaulicht ein weiteres Flussdiagramm gemäß beispielhaften Ausführungsformen.3C Figure 12 illustrates another flow chart according to example embodiments. -
3D veranschaulicht ein weiteres Flussdiagramm gemäß beispielhaften Ausführungsformen.3D Figure 12 illustrates another flow chart according to example embodiments. -
3E veranschaulicht ein weiteres Flussdiagramm gemäß beispielhaften Ausführungsformen.3E Figure 12 illustrates another flow chart according to example embodiments. -
3F veranschaulicht ein weiteres Flussdiagramm gemäß beispielhaften Ausführungs formen.3F FIG. 11 illustrates another flow chart according to example embodiments. -
4A veranschaulicht eine beispielhafte Blockchain-Fahrzeugausgestaltung zum Managen von Blockchain-Transaktionen, die einem Fahrzeug zugeordnet sind, gemäß beispielhaften Ausführungsformen.4A 12 illustrates an example blockchain vehicle configuration for managing blockchain transactions associated with a vehicle, according to example embodiments. -
4B veranschaulicht eine weitere beispielhafte Blockchain-Fahrzeugausgestaltung zum Managen von Blockchain-Transaktionen zwischen einem Service-Center und einem Fahrzeug gemäß beispielhaften Ausführungsformen.4B 12 illustrates another example blockchain vehicle configuration for managing blockchain transactions between a service center and a vehicle, according to example embodiments. -
4C veranschaulicht eine weitere beispielhafte Blockchain Fahrzeugausgestaltung zum Managen von Blockchain-Transaktionen, die zwischen verschiedenen Fahrzeugen durchgeführt werden, gemäß beispielhaften Ausführungsformen.4C FIG. 12 illustrates another example blockchain vehicle configuration for managing blockchain transactions conducted between different vehicles, according to example embodiments. -
5 veranschaulicht beispielhafte Datenblöcke gemäß beispielhaften Ausführungsformen.5 12 illustrates example data blocks according to example embodiments. -
6 veranschaulicht ein beispielhaftes System, das eine oder mehrere der beispielhaften Ausführungen unterstützt.6 illustrates an example system that supports one or more of the example implementations.
DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION
Es versteht sich, dass die vorliegenden Komponenten, wie sie in den Figuren im vorliegenden Text allgemein beschrieben und veranschaulicht sind, in einer breiten Vielzahl verschiedener Ausgestaltungen angeordnet und ausgelegt werden können. Daher soll die folgende detaillierte Beschreibung der Ausführungsformen mindestens eines Verfahrens, einer Vorrichtung, eines nicht-transitorischen computerlesbaren Mediums und eines Systems, wie sie in den beigefügten Figuren dargestellt sind, nicht den Geltungsbereich der beanspruchten Anmeldung einschränken, sondern ist lediglich für ausgewählte Ausführungsformen repräsentativ.It should be understood that the present components, as generally described and illustrated in the figures herein, can be arranged and configured in a wide variety of different configurations. Therefore, the following detailed description of the embodiments of at least one method, apparatus, non-transitory computer-readable medium, and system as illustrated in the accompanying figures is not intended to limit the scope of the claimed application, but is merely representative of selected embodiments.
Die vorliegenden Merkmale, Strukturen oder Eigenschaften, wie sie in dieser Spezifikation beschrieben sind, können auf beliebige geeignete Weise in einer oder mehreren Ausführungsformen kombiniert werden. Zum Beispiel bezieht sich die Verwendung der Ausdrücke „beispielhafte Ausführungen“, „einige Ausführungsformen“ oder anderer ähnlicher Formulierungen in der gesamten Spezifikation auf die Tatsache, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform enthalten sein kann. Daher bezieht sich das Vorkommen der Ausdrücke „beispielhafte Ausführungsformen“, „in einigen Ausführungsformen“, „in anderen Ausführungsformen“ oder anderer ähnlicher Formulierungen in dieser Spezifikation nicht unbedingt alle auf dieselbe Gruppe von Ausführungsformen und die beschriebenen Merkmale, Strukturen oder Eigenschaften können auf beliebige geeignete Weise in einer oder mehreren Ausführungsformen kombiniert werden. In den Schaubildern kann jede Verbindung zwischen Elementen eine Einweg- und/oder Zweiwegkommunikation erlauben, selbst wenn die gezeigte Verbindung durch einen Einweg- oder einen Zweiwegpfeil dargestellt ist. In der vorliegenden Anmeldung kann ein Beförderungsmittel eines oder mehrere von Pkws, Lastwagen, Motorrädern, Motorrollern, Fahrrädern, Booten, Freizeitfahrzeugen, Flugzeugen und beliebigen Objekten sein, die verwendet werden können, um Menschen und/oder Güter von einem Ort zum anderen zu befördern.Present features, structures, or characteristics as described in this specification may be combined in any suitable manner in one or more embodiments. For example, use of the phrase "exemplary implementations," "some embodiments," or other similar language throughout the specification refers to the fact that a particular feature, structure, or characteristic described in connection with the embodiment , may be included in at least one embodiment. As such, appearances in this specification of the phrases "example embodiments," "in some embodiments," "in other embodiments," or other similar language are not necessarily all referring to the same group of embodiments, and the feature, structure, or characteristic described may refer to any appropriate one Way be combined in one or more embodiments. In the diagrams, each connection between elements may allow for one-way and/or two-way communication, even if the connection shown is represented by a one-way or a two-way arrow. In the present application, a conveyance can be one or more of automobiles, trucks, motorcycles, scooters, bicycles, boats, recreational vehicles, airplanes, and any object that can be used to move people and/or goods from one location to another.
Des Weiteren kann in der Beschreibung von Ausführungsformen zwar der Begriff „Nachricht“ verwendet werden, doch kann die Anwendung auf viele Arten von Netzwerkdaten angewendet werden, wie zum Beispiel ein Paket, einen Frame, ein Datagramm usw. Der Begriff „Nachricht“ umfasst auch Paket, Frame, Datagramm und jegliche Äquivalente davon. Des Weiteren können bestimmte Arten von Nachrichten und Zeichengaben zwar in beispielhaften Ausführungsformen dargestellt sein, jedoch sind sie nicht auf eine bestimmte Art von Nachricht beschränkt und die Anwendung ist nicht auf eine bestimmte Art von Zeichengaben beschränkt.Furthermore, while the term "message" can be used in the description of embodiments, the application can be applied to many types of network data, such as a packet, a frame, a datagram, etc. The term "message" also includes packet , frame, datagram and any equivalent thereof. Furthermore, while particular types of messages and signaling may be illustrated in example embodiments, they are not limited to any particular type of message and the application is not limited to any particular type of signaling.
Beispielhafte Ausführungsformen stellen Verfahren, Systeme, Komponenten, nicht-transitorische computerlesbare Medien, Vorrichtungen und/oder Netzwerke bereit, die mindestens eines von Folgendem bereitstellen: ein Beförderungsmittel (hier auch als ein Fahrzeug bezeichnet), ein Datenerfassungssystem, ein Datenüberwachungssystem, ein Verifizierungssystem, ein Autorisierungssystem, und ein Fahrzeugdatenverteilungssystem. Die Fahrzeugstatuszustandsdaten, die in Form von Kommunikationsaktualisierungsnachrichten, wie zum Beispiel drahtloser Datennetzkommunikation und/oder drahtgebundener Kommunikationsnachrichten, empfangen werden, können empfangen und verarbeitet werden, um Fahrzeug-/Beförderungsmittelstatuszustände zu identifizieren und Rückmeldungen hinsichtlich der Zustandsänderungen eines Beförderungsmittels bereitzustellen. In einem Beispiel kann ein Benutzerprofil auf ein bestimmtes Beförderungsmittel/Fahrzeug angewendet werden, um ein momentanes Fahrzeugereignis, Service-Stopps an Tankstellen und anschließende Fahrzeugmietdienste zu autorisieren.Example embodiments provide methods, systems, components, non-transitory computer-readable media, devices, and/or networks that provide at least one of the following: a conveyance (also referred to herein as a vehicle), a data collection system, a data monitoring system, a verification system authorization system, and a vehicle data distribution system. The vehicle status condition data, received in the form of communication update messages, such as wireless data network communication and/or wired communication messages, may be received and processed to identify vehicle/conveyance status conditions and provide feedback regarding condition changes of a conveyance. In one example, a user profile can be applied to a particular conveyance/vehicle to indicate a current vehicle event, service stops Authorize gas stations and subsequent vehicle rental services.
Innerhalb der Kommunikationsinfrastruktur ist eine dezentralisierte Datenbank ein verteiltes Speichersystem, das mehrere Knoten umfasst, die miteinander kommunizieren. Eine Blockchain ist ein Beispiel einer dezentralisierten Datenbank, die eine unveränderliche, nur Hinzufügungen gestattende Datenstruktur (das heißt ein Distributed Ledger) umfasst, die eingerichtet ist, Datensätze zwischen nicht-vertrauenswürdigen Parteien zu verwalten. Die nicht-vertrauenswürdigen Parteien werden hier als Peers, Knoten oder Peer-Knoten bezeichnet. Jeder Peer verwaltet eine Kopie der Datenbank-Datensätze und kein einzelner Peer kann die Datenbank-Datensätze modifizieren, ohne dass zwischen den verteilten Peers ein Konsens erzielt wird. Zum Beispiel können die Peers ein Konsensprotokoll ausführen, um Blockchain-Speichereinträge zu validieren, die Speichereinträge in Blöcken zu gruppieren und über die Blöcke eine Hash-Kette aufzubauen. Dieser Prozess bildet das Ledger, indem er die Speichereinträge nach Notwendigkeit ordnet, um Konsistenz zu gewährleisten. An einer öffentlichen oder erlaubnisfreien Blockchain kann jeder ohne eine spezielle Identität teilnehmen. Öffentliche Blockchains können Kryptowährungen umfassen und einen Konsens verwenden, der auf verschiedenen Protokollen wie zum Beispiel Proof of Work (PoW) basiert. Andererseits stellt eine erlaubnisbasierte Blockchain-Datenbank ein System bereit, das Interaktionen zwischen einer Gruppe von Entitäten absichern kann, die ein gemeinsames Ziel verfolgen, sich aber gegenseitig nicht vollständig vertrauen oder vertrauen können, wie zum Beispiel Unternehmen, die Geldmittel, Waren, Informationen und dergleichen austauschen. Die vorliegende Anmeldung kann in einer erlaubnisbasierten und/oder einer erlaubnisfreien Blockchain-Umgebung funktionieren.Within the communications infrastructure, a decentralized database is a distributed storage system that includes multiple nodes that communicate with each other. A blockchain is an example of a decentralized database that includes an immutable, addition-only data structure (i.e., a distributed ledger) that is set up to maintain records between untrusted parties. The untrusted parties are referred to herein as peers, nodes or peer-nodes. Each peer maintains a copy of the database records, and no single peer can modify the database records without consensus being reached among the distributed peers. For example, the peers can run a consensus protocol to validate blockchain memory entries, group the memory entries into blocks, and build a hash chain across the blocks. This process forms the ledger by ordering the memory entries as necessary to ensure consistency. Anyone can participate in a public or permissionless blockchain without a specific identity. Public blockchains can include cryptocurrencies and use consensus based on various protocols such as Proof of Work (PoW). On the other hand, a permission-based blockchain database provides a system that can secure interactions between a group of entities that share a common goal but do not or cannot fully trust each other, such as businesses that hold funds, goods, information, and the like exchange. The present application can function in a permission-based and/or a permissionless blockchain environment.
„Intelligente Verträge“ (Smart Contracts) sind vertrauenswürdige verteilte Anwendungen, die manipulationssichere Eigenschaften der gemeinsam genutzten oder verteilten Ledger-Datenbank (das heißt, das Ledger kann in Form einer Blockchain vorliegen) und eine zugrunde liegende Vereinbarung zwischen Mitgliedsknoten synergistisch nutzen, was als eine „Befürwortung“ (Endorsement) oder „Befürwortungsrichtlinie“ (Endorsement Policy) bezeichnet wird. Im Allgemeinen werden Blockchain-Einträge „befürwortet“ (endorsed), bevor sie an die Blockchain überstellt (committed) werden, während Einträge, die nicht befürwortet werden, unbeachtet bleiben. Eine typische Befürwortungsrichtlinie erlaubt es dem ausführbaren Code eines intelligenten Vertrages, Befürworter (Endorser) für einen Eintrag in Form eines Satzes von Peer-Knoten anzugeben, die für die Befürwortungsfunktion erforderlich sind. Wenn ein Client den Eintrag an die in der Befürwortungsrichtlinie angegebenen Peers sendet, so wird der Eintrag ausgeführt, um den Eintrag zu validieren. Nach der Validierung treten die Einträge in eine Ordnungsphase ein, in der ein Konsensprotokoll verwendet wird, um eine geordnete Abfolge von befürworteten Einträgen zu erstellen, die in Blöcken gruppiert sind.“Smart contracts” are trusted distributed applications that synergistically leverage tamper-resistant properties of the shared or distributed ledger database (that is, the ledger may be in the form of a blockchain) and an underlying agreement between member nodes, which is known as a “Endorsement” or “Endorsement Policy”. In general, blockchain entries are "endorsed" before being committed to the blockchain, while entries that are not endorsed are ignored. A typical endorsement policy allows the executable code of a smart contract to specify endorsers for an entry in the form of a set of peer nodes required for the endorsement function. When a client sends the entry to the peers specified in the endorsement policy, the entry is run to validate the entry. After validation, entries enter an ordering phase in which a consensus protocol is used to create an ordered sequence of endorsed entries grouped into blocks.
Knoten sind die Kommunikationseinheiten des Blockchain-Systems. Ein „Knoten“ kann eine logische Funktion in dem Sinne erfüllen, dass mehrere Knoten unterschiedlichen Typs auf demselben physischen Server arbeiten können. Knoten werden in Vertrauensdomänen gruppiert und sind mit logischen Entitäten verknüpft, die sie auf verschiedene Weise kontrollieren. Knoten können verschiedene Typen umfassen, wie zum Beispiel einen Client- oder Vorlage-Client-Knoten, der einem Befürworter (zum Beispiel Peer) eine Eintragsaufruf vorlegt und Eintragsvorschläge an einen Ordnungsdienst (zum Beispiel Ordnungsknoten) rundsendet. Eine andere Art von Knoten ist ein Peer-Knoten, der durch einen Client vorgelegte Einträge empfangen kann, die Einträge überstellt und einen Status und eine Kopie des Ledgers der Blockchain-Einträge verwaltet. Peers können auch die Rolle eines Befürworters haben, obwohl dies keine Bedingung ist. Ein Ordnungsdienstknoten oder Ordner ist ein Knoten, der den Kommunikationsdienst für alle Knoten ausführt und der eine Übermittlungsgarantie implementiert, wie zum Beispiel eine Rundsendung an jeden der Peer-Knoten in dem System, wenn er Einträge überstellt und einen Weltzustand der Blockchains modifiziert, was ein anderer Name für den anfänglichen Blockchain-Eintrag ist, der normalerweise Steuerungs- und Einrichtungsinformationen umfasst.Nodes are the communication units of the blockchain system. A "node" can perform a logical function in the sense that multiple nodes of different types can operate on the same physical server. Nodes are grouped into trust domains and are associated with logical entities that control them in various ways. Nodes can be of various types, such as a client or template client node that submits an entry request to an advocate (e.g., peer) and broadcasts entry proposals to an ordering service (e.g., ordering node). Another type of node is a peer node that can receive entries submitted by a client, submit the entries, and maintain a status and copy of the ledger of blockchain entries. Peers can also have an advocate role, although this is not a requirement. A stewardship node or steward is a node that performs the communications service for all nodes and that implements a delivery guarantee, such as broadcasting to each of the peer nodes in the system when it submits entries and modifies a world state of the blockchains that another Name for the initial blockchain entry, which typically includes control and setup information.
Ein Ledger ist ein sequenzierter, manipulierungssicherer Datensatz aller Zustandsübergänge einer Blockchain. Zustandsübergänge können aus Aufrufen (das heißt Einträgen) von ausführbarem Codes eines intelligenten Vertrages resultieren, die durch beteiligte Parteien (zum Beispiel Client-Knoten, Ordnungsknoten, Befürworter-Knoten, Peer-Knoten usw.) übermittelt werden. Ein Eintrag kann dazu führen, dass ein Satz von Asset-Schlüssel-Wert-Paaren als ein oder mehrere Operanden, wie zum Beispiel Erstellungen, Aktualisieren, Löschen usw., an das Ledger überstellt wird. Das Ledger umfasst eine Blockchain (auch als eine Kette bezeichnet), die zum Speichern eines unveränderlichen, sequenzierten Datensatzes in Blöcken verwendet wird. Das Ledger umfasst auch eine Zustandsdatenbank, die einen momentanen Zustand der Blockchain verwaltet. In der Regel gibt es ein Ledger pro Kanal. Jeder Peer-Knoten verwaltet eine Kopie des Ledgers für jeden Kanal, dem er zugehört.A ledger is a sequenced, tamper-proof record of all state transitions in a blockchain. State transitions may result from calls (ie, entries) of smart contract executable code communicated by involved parties (e.g., client nodes, ordering nodes, advocate nodes, peer nodes, etc.). An entry can result in a set of asset key-value pairs being passed to the ledger as one or more operands, such as creates, updates, deletes, etc. The ledger comprises a blockchain (also known as a chain) used to store an immutable, sequenced record in blocks. The ledger also includes a state database that maintains a current state of the blockchain. Usually there is one ledger per channel. Each peer node maintains a copy of the ledger for each channel to which it belongs.
Eine Kette ist ein Eintrags-Log, das als Hash-verknüpfte Blöcke strukturiert ist, und jeder Block umfasst eine Abfolge von N Einträgen, wobei N mindestens eins ist. Der Block-Header umfasst einen Hash der Einträge des Blocks sowie einen Hash des Headers des vorherigen Blocks. Auf diese Weise können alle Einträge im Ledger sequenziert und kryptografisch miteinander verknüpft werden. Dementsprechend ist es nicht möglich, die Daten des Ledgers zu manipulieren, ohne die Hash-Verknüpfungen aufzubrechen. Ein Hash eines zuletzt hinzugefügten Blockchain-Blocks repräsentiert jeden Eintrag in der Kette, der vor ihm kam, wodurch sichergestellt werden kann, dass sich alle Peer-Knoten in einem gleichbleibenden und vertrauenswürdigen Zustand befinden. Die Kette kann in einem Peer-Knoten-Dateisystem gespeichert werden (das heißt lokal, in angeschlossenem Speicher, in der Cloud usw.), wodurch die „Append-Only“-Beschaffenheit der Blockchain-Arbeitslast effizient unterstützt wird (Append-Only: nur Hinzufügungen zulässig).A chain is a log of entries structured as hashed blocks, and each block comprises a sequence of N entries, where N min at least one is. The block header includes a hash of the block's entries and a hash of the previous block's header. In this way, all entries in the ledger can be sequenced and cryptographically linked. Accordingly, it is not possible to manipulate the ledger's data without breaking the hash links. A hash of a recently added blockchain block represents every entry in the chain that came before it, which can ensure that all peer nodes are in a consistent and trusted state. The chain can be stored in a peer node file system (i.e. local, attached storage, cloud, etc.), efficiently supporting the append-only nature of the blockchain workload additions allowed).
Der momentane Zustand des unveränderlichen Ledgers stellt die neuesten Werte für alle Schlüssel dar, die in dem Ketteneintrags-Log enthalten sind. Da der momentane Zustand die neuesten Schlüsselwerte darstellt, die einem Kanal bekannt sind, wird er manchmal auch als Weltzustand bezeichnet. Aufrufe von ausführbarem Codes eines intelligenten Vertrages führen Einträge anhand der Momentanzustandsdaten des Ledgers aus. Um diese Interaktionen mit ausführbarem Codes eines intelligenten Vertrages effizient zu gestalten, können die neuesten Werte der Schlüssel in einer Zustandsdatenbank gespeichert werden. Die Zustandsdatenbank kann einfach eine indizierte Ansicht des Eintrags-Logs der Kette sein, weshalb sie jederzeit aus der Kette regeneriert werden kann. Die Zustandsdatenbank kann automatisch wiederhergestellt (oder bei Bedarf generiert) werden, wenn der Peer-Knoten gestartet wird und bevor Einträge entgegengenommen werden.The current state of the immutable ledger represents the most recent values for all keys contained in the chain entry log. Because the current state represents the most recent key values known to a channel, it is sometimes referred to as the world state. Calls to smart contract executable code execute entries based on the current state data of the ledger. In order to make these interactions with executable code of a smart contract efficient, the most recent values of the keys can be stored in a state database. The state database can simply be an indexed view of the chain's entry log, so it can be regenerated from the chain at any time. The state database can be restored automatically (or generated on demand) when the peer node starts up and before any entries are accepted.
Eine Blockchain unterscheidet sich von einer herkömmlichen Datenbank dadurch, dass die Blockchain kein zentraler Speicher ist, sondern vielmehr ein dezentralisierter, unveränderlicher und sicherer Speicher, bei dem sich die Knoten an Änderungen der Datensätze im Speicher allesamt beteiligen müssen. Zu einigen Eigenschaften, die der Blockchain inhärent sind und die bei der Implementierung der Blockchain helfen, gehören unter anderem ein unveränderliches Ledger, intelligente Verträge, Sicherheit, Datenschutz, Dezentralisierung, Konsens, Befürwortung, Zugänglichkeit und dergleichen.A blockchain differs from a traditional database in that the blockchain is not a central store, but rather a decentralized, immutable, and secure store where the nodes must all participate in changes to the records in the store. Some properties inherent in the blockchain that help to implement the blockchain include, but are not limited to, an immutable ledger, smart contracts, security, privacy, decentralization, consensus, advocacy, accessibility, and the like.
Beispielhafte Ausführungsformen bieten eine Möglichkeit zur Erbringung eines Fahrzeug-Service für ein bestimmtes Fahrzeug und/oder einen anfragenden Benutzer, der mit einem Benutzerprofil verknüpft ist, das auf das Fahrzeug angewendet wird. Zum Beispiel kann ein Benutzer der Halter eines Fahrzeugs oder der Lenker eines Fahrzeugs sein, das einer anderen Partei gehört. Das Fahrzeug muss möglicherweise in bestimmten Intervallen einem Service unterzogen werden und die Service-Erfordernisse verlangen möglicherweise eine Autorisierung, bevor die Dienste in Anspruch genommen werden können. Außerdem können Service-Zentren in der Nähe befindlichen Fahrzeugen auf der Grundlage des momentanen Routenplans des Fahrzeugs und eines relativen Niveaus der Service-Anforderungen (zum Beispiel sofort, schwer, mittel, gering usw.) Dienste anbieten. Die Fahrzeugerfordernisse können über einen oder mehrere Sensoren überwacht werden, welche die Sensordaten an eine zentrale Controller-Computervorrichtung in dem Fahrzeug melden, was wiederum an einen Management-Server zum Begutachten und Veranlassen von Maßnahmen weitergeleitet wird.Example embodiments provide a way to provide a vehicle service to a particular vehicle and/or a requesting user associated with a user profile applied to the vehicle. For example, a user may be the owner of a vehicle or the operator of a vehicle owned by another party. The Vehicle may require service at certain intervals and service requirements may require authorization before the Services can be accessed. Additionally, service centers may offer services to nearby vehicles based on the vehicle's current route plan and a relative level of service needs (e.g., immediate, heavy, medium, light, etc.). Vehicle needs may be monitored via one or more sensors that report the sensor data to a central controller computing device in the vehicle, which in turn is forwarded to a management server for review and action.
Ein Sensor kann sich in bzw. an einem oder mehreren von einem Innenraum des Beförderungsmittels, einer Außenseite des Beförderungsmittels, einem festen Gegenstand außerhalb des Beförderungsmittels und einem anderen Beförderungsmittel in der Nähe des Beförderungsmittels befinden. Der Sensor kann auch mit der Geschwindigkeit des Beförderungsmittels, dem Bremsen des Beförderungsmittels, der Beschleunigung des Beförderungsmittels, dem Kraftstoffstand, den Service-Erfordernissen, der Gangschaltung des Beförderungsmittels, der Lenkung des Beförderungsmittels und dergleichen in Verbindung stehen. Als ein „Sensor“ ist sich auch eine Vorrichtung zum Beispiel eine mobile Vorrichtung vorstellbar. Außerdem können Sensorinformationen verwendet werden, um festzustellen, ob das Fahrzeug sicher arbeitet und ob der Fahrzeuglenker unerwartete Fahrzeugzustände herbeigeführt hat, wie zum Beispiel während der Phase des Einsteigens in das Fahrzeug. Fahrzeuginformationen, die vor, während und/oder nach dem Betrieb eines Fahrzeugs erfasst werden, können identifiziert und in einer Transaktion in einem gemeinsam genutzten/verteilten Ledger gespeichert werden; diese kann durch ein erlaubniserteilendes Konsortium, und somit auf „dezentralisierte“ Weise, wie zum Beispiel über eine Blockchain-Beteiligungsgruppe, generiert und an das unveränderliche Ledger überstellt werden. Jede interessierte Partei (das heißt Unternehmen, Behörde usw.) möchte möglicherweise die Offenlegung privater Informationen einschränken, weshalb die Blockchain und ihre Unveränderlichkeit die Offenlegung einschränken und Erlaubnisse für jedes konkrete Benutzerfahrzeugprofil verwalten kann. Ein intelligenter Vertrag kann verwendet werden, um eine Vergütung bereitzustellen, eine Benutzerprofilwertung/-einstufung/-begutachtung zu quantifizieren, Fahrzeugereigniserlaubnisse anzuwenden, zu bestimmen, wann ein Service benötigt wird, ein Kollisions- und/oder Verschlechterungsereignis zu identifizieren, ein sicherheitsrelevantes Ereignis zu identifizieren, Parteien des Ereignisses zu identifizieren und eine Verteilung an registrierte Entitäten vorzunehmen, die Zugang zu solchen Fahrzeugereignisdaten suchen. Außerdem können die Ergebnisse identifiziert werden und die notwendigen Informationen können zwischen den registrierten Unternehmen und/oder Personen auf der Grundlage eines „Konsens“-Ansatz, der mit der Blockchain verknüpft ist, gemeinsam genutzt werden. Ein solcher Ansatz ließe sich in einer herkömmlichen zentralisierten Datenbank nicht implementieren.A sensor may be located in one or more of an interior of the vehicle, an exterior of the vehicle, a solid object outside the vehicle, and another vehicle proximate to the vehicle. The sensor may also be associated with vehicle speed, vehicle braking, vehicle acceleration, fuel level, service requirements, vehicle gear shifting, vehicle steering, and the like. A device, for example a mobile device, is also conceivable as a “sensor”. In addition, sensor information may be used to determine whether the vehicle is operating safely and whether the vehicle operator has induced unexpected vehicle conditions, such as during the vehicle boarding phase. Vehicle information collected before, during and/or after operation of a vehicle may be identified and stored in a shared/distributed ledger transaction; this can be generated by a permitting consortium, and thus in a “decentralized” way, such as via a blockchain stakeholder group, and submitted to the immutable ledger. Any interested party (i.e. company, government agency, etc.) may wish to restrict disclosure of private information, which is why the blockchain and its immutability can restrict disclosure and manage permissions for each concrete user vehicle profile. A smart contract can be used to provide compensation, quantify a user profile score/ranking/review, apply vehicle event permits, determine when service is needed, identify a collision and/or degradation event, identify a safety-related event to identify parties to the event and distribute to registered entities seeking access to such vehicle event data. Also, the results can be identified and the necessary information can be shared between the registered companies and/or individuals based on a “consensus” approach linked to the blockchain. Such an approach could not be implemented in a traditional centralized database.
Jedes autonome Fahrsystem basiert auf einem ganzen Software-Paket und einer Anordnung von Sensoren. Maschinelles Lernen, Lidar-Projektoren, Radar und Ultraschallsensoren arbeiten alle zusammen, um eine lebendige Karte der Welt zu erstellen, in der ein selbstfahrendes Auto navigieren kann. Die meisten Unternehmen, die sich am Wettlauf um die vollständige Autonomie beteiligen, stützen sich auf die gleichen technologischen Grundlagen von Lidar + Radar + Kameras + Ultraschall, mit einigen wenigen bemerkenswerten Ausnahmen.Every autonomous driving system is based on an entire software package and an array of sensors. Machine learning, lidar projectors, radar and ultrasonic sensors all work together to create a living map of the world for a self-driving car to navigate. Most companies entering the race to full autonomy rely on the same technological foundations of lidar + radar + cameras + ultrasound, with a few notable exceptions.
In einer anderen Ausführungsform werden GPS, Karten und andere Kameras und Sensoren in einem autonomen Fahrzeug ohne Lidar verwendet, da Lidar oft als teuer und unnötig angesehen wird. Forscher haben festgestellt, dass Stereokameras eine kostengünstige Alternative zur teureren Lidar-Funktionalität sind.In another embodiment, GPS, maps, and other cameras and sensors are used in an autonomous vehicle without lidar, since lidar is often considered expensive and unnecessary. Researchers have found that stereo cameras are a cost-effective alternative to more expensive lidar functionality.
Die vorliegende Anmeldung umfasst in bestimmten Ausführungsformen die Autorisierung eines Fahrzeugs für einen Service über ein automatisiertes und schnelles Authentifizierungsregime. Zum Beispiel kann das Heranfahren an eine Ladestation oder eine Zapfsäule durch einen Fahrzeuglenker durchgeführt werden, und die Autorisierung zum Empfangen von Ladung oder Kraftstoff kann ohne Verzögerungen erfolgen, sofern die Autorisierung durch die Tankstelle empfangen wird. Ein Fahrzeug kann ein Kommunikationssignal bereitstellen, das als eine Identifikation eines Fahrzeugs dient, das ein momentan aktives Profil aufweist, das mit einem Account verknüpft ist, der autorisiert ist, einen Fahrzeugservice zu akzeptieren, der später durch eine Vergütung beglichen werden kann. Es können zusätzliche Maßnahmen ergriffen werden, um eine weitere Authentifizierung vorzunehmen. Zum Beispiel kann ein weiterer Identifikator von der Vorrichtung des Benutzers drahtlos an das Service-Center gesendet werden, um den ersten Autorisierungsvorgang zwischen dem Beförderungsmittel und dem Service-Center durch einen zusätzlichen Autorisierungsvorgang zu ersetzen oder zu ergänzen.The present application, in certain embodiments, includes authorizing a vehicle for a service via an automated and rapid authentication regime. For example, approaching a charging station or fuel pump can be performed by a vehicle operator and authorization to receive charge or fuel can be done without delays, provided authorization is received by the fuel station. A vehicle may provide a communication signal that serves as an identification of a vehicle having a currently active profile associated with an account authorized to accept vehicle service that may later be paid for through a fee. Additional measures can be taken to perform further authentication. For example, another identifier can be wirelessly sent from the user's device to the service center to replace or supplement the initial authorization process between the conveyance and the service center with an additional authorization process.
Gemeinsam genutzte und empfangene Daten können in einer Datenbank gespeichert werden, die Daten in einer einzigen Datenbank (zum Beispiel einem Datenbankserver) und allgemein an einem einzelnen speziellen Ort verwaltet. Dieser Ort ist oft ein Zentralcomputer, zum Beispiel eine zentrale Desktop-Verarbeitungseinheit (CPU), eine Server-CPU oder ein Großrechner. Auf Informationen, die in einer zentralisierten Datenbank gespeichert sind, kann in der Regel von mehreren verschiedenen Punkten aus zugegriffen werden. Eine zentralisierte Datenbank ist einfach zu verwalten, zu pflegen und zu kontrollieren, insbesondere für Sicherheitszwecke, da sie sich nur an einem einzigen Ort befindet. Innerhalb einer zentralisierten Datenbank wird die Datenredundanz minimiert, da ein einziger Speicherort aller Daten auch bedeutet, dass ein gegebener Datensatz nur einen einzigen primären Datensatz aufweist.Shared and received data can be stored in a database that manages data in a single database (e.g., a database server) and generally in a single dedicated location. This location is often a central computer, such as a desktop central processing unit (CPU), server CPU, or mainframe. Information stored in a centralized database can typically be accessed from several different points. A centralized database is easy to manage, maintain and control, especially for security purposes, as it is in a single location. Within a centralized database, data redundancy is minimized because a single location for all data also means that any given record has only a single primary record.
Gemäß den beispielhaften Ausführungsformen wird die Verbreitung eines Software-Updates an Fahrzeuge ohne den Einsatz von WAN-Technologie bereitgestellt. Eine beispielhafte Ausführungsform erlaubt es, dass das Software-Update erst nach der Durchführung eines Tests durch eine erste Menge von Beförderungsmitteln verbreitet wird. Der Test kann über einen Zeitraum oder über eine Anzahl von Ausführungen des Software-Update-Codes hinweg durchgeführt werden. Wenn ein Test der Software fehlschlägt, so werden die Beförderungsmittel alarmiert und die Software in den Beförderungsmitteln kann auf eine frühere Softwareversion zurückgesetzt werden.According to the exemplary embodiments, the distribution of a software update to vehicles is provided without using WAN technology. An exemplary embodiment allows the software update to be propagated through a first set of conveyances only after a test has been performed. The test can be run over a period of time or over a number of executions of the software update code. If a test of the software fails, the conveyances are alerted and the software in the conveyances can be rolled back to a previous software version.
In einer anderen Ausführungsform kann ein Master-Beförderungsmittelsystem zusätzliche Sicherheit bei der Verbreitung von Software-Updates an Fahrzeuge bieten, indem es das Software-Update in mindestens zwei Teile aufteilt und die Teile des Software-Updates zu verschiedenen Zeiten und/oder von verschiedenen Quellen versendet. In einer beispielhaften Ausführungsform kann das Software-Update zuerst von einem Master-Beförderungsmittelsystem gesendet werden. Die beispielhafte Ausführungsform kann eine dezentralisierte Verbreitung der Software-Updates mit Authentifizierung des Updates über eine Blockchain-Technologie bereitstellen.In another embodiment, a master conveyance system may provide additional security in propagating software updates to vehicles by splitting the software update into at least two parts and sending the parts of the software update at different times and/or from different sources . In an exemplary embodiment, the software update may be sent first from a master conveyance system. The exemplary embodiment may provide decentralized distribution of the software updates with authentication of the update via blockchain technology.
Gemäß den beispielhaften Ausführungsformen kann ein Master-Beförderungsmittel anhand der Eigenschaften des Beförderungsmittels (zum Beispiel der Sicherheitsstufe des Beförderungsmittels, des Alters des Beförderungsmittels, der Hardware in dem Beförderungsmittel, die eingerichtet ist, die Software ordnungsgemäß auszuführen, des Zustands des Beförderungsmittels, der Eigenschaften der Benutzer/Insassen des Beförderungsmittels, der Nutzung von Funktionsmerkmalen in dem oder im Zusammenhang mit dem Beförderungsmittel) bestimmen, welcher Teil des Software-Updates an welches Beförderungsmittel gesendet wird. Das Update kann auf der Grundlage der wahrscheinlichen Nutzung des Updates bereitgestellt werden, zum Beispiel, welches Beförderungsmittel das Software-Update besser testen/verwenden kann. In einem Beispiel kann ein Fahrzeug 1 einen ersten Teil des Updates (ABC) und ein Fahrzeug 2 einen anderen Teil des Updates (ABC') von demselben Master-Beförderungsmittel erhalten. Das Software-Update kann in mehr als 2 Teile aufgeteilt werden. Zum Beispiel können einige Beförderungsmittel 2 Teile, einige 3 Teile und einige n Teile erhalten. Das Master-Beförderungsmittel kann eine höhere Sicherheitsstufe aufweisen als die Teilmenge von Beförderungsmitteln und die weitere Teilmenge von Beförderungsmitteln. Jegliche Probleme mit dem Software-Update können an das Master-Beförderungsmittel zurückgemeldet werden (das sie an einen zentralen Server zurückmelden kann). Wenn ein Problem mit einem beliebigen Teil oder mit dem zusammengesetzten ersten und zweiten Teil des Updates auftritt, so kann das Master-Beförderungsmittel in eine Nähe des problembehafteten Beförderungsmittels gebracht werden und kann das Beförderungsmittel überwachen, um das Problem zu ermitteln und zu lösen.According to the exemplary embodiments, a master conveyance can be determined based on the characteristics of the conveyance (for example, the security level of the conveyance, the age of the conveyance, the hardware in the conveyance that is set up to run the software properly, the state of the conveyance, the characteristics of the users/occupants of the conveyance, the use of functional features in or in connection with the conveyance) determine which part of the software update which means of transport is sent. The update may be provided based on the likely usage of the update, for example which means of transport is better able to test/use the software update. In an example, a vehicle 1 may receive a first part of the update (ABC) and a vehicle 2 another part of the update (ABC') from the same master conveyance. The software update can be divided into more than 2 parts. For example, some conveyances may receive 2 pieces, some 3 pieces, and some n pieces. The master conveyance may have a higher security level than the subset of conveyances and the further subset of conveyances. Any problems with the software update can be reported back to the master vehicle (which can report them back to a central server). If a problem occurs with any part or with the composite first and second parts of the update, the master vehicle can be brought into close proximity to the problematic vehicle and can monitor the vehicle to determine and solve the problem.
In einer weiteren beispielhaften Ausführungsform arbeitet das Beförderungsmittel, nachdem die Software-Updates empfangen, zusammengestellt und ausgeführt wurden, weiterhin mit der alten Software-Version und verwendet zeitweise die neue aktualisierte Software in den potenziell am wenigsten problematischen Situationen. Wenn zum Beispiel das Update zum Aktualisieren einer Bremssoftware dient, so kann das Beförderungsmittel die aktualisierte Software verwenden, wenn in der Fahrumgebung nur sehr wenig Verkehr herrscht (und keine Fußgänger und/oder Objekte präsent sind). Sobald die aktualisierte Software in dieser Fahrumgebung validiert ist, kann das Beförderungsmittel die aktualisierte Software in einer anderen, potenziell problematischen Fahrumgebung (zum Beispiel mit mehr Verkehr, Fußgängern und/oder Objekten) verwenden. Gemäß der beispielhaften Ausführungsform kann es sein, dass der Fahrer des Beförderungsmittels die Funktionalität der Software-Update-Management-Anwendung gar nicht kennt. Das System des Beförderungsmittels kann die Software-Updates in verschiedenen Umgebungen schrittweise testen und kann bei Bedarf zur früheren Version der Software zurückkehren.In another exemplary embodiment, after the software updates are received, assembled, and implemented, the vehicle continues to operate with the old software version and intermittently uses the new updated software in potentially least problematic situations. For example, if the update is to update braking software, the vehicle may use the updated software when the driving environment is very light traffic (and no pedestrians and/or objects are present). Once the updated software is validated in that driving environment, the vehicle may use the updated software in another potentially problematic driving environment (e.g., with more traffic, pedestrians, and/or objects). According to the exemplary embodiment, the vehicle driver may not be aware of the functionality of the software update management application. The vehicle system can gradually test the software updates in different environments and can revert to the previous version of the software if necessary.
In einer weiteren Ausführungsform bestimmt das Master-Beförderungsmittel anhand der Eigenschaften des Beförderungsmittels (zum Beispiel der Sicherheitsstufe des Beförderungsmittels, des Alters des Beförderungsmittels, der Hardware in dem Beförderungsmittel, die eingerichtet ist, die Software ordnungsgemäß auszuführen, des Zustands des Beförderungsmittels, der Eigenschaften der Benutzer/Insassen des Beförderungsmittels, der Nutzung von Funktionsmerkmalen in dem oder im Zusammenhang mit dem Beförderungsmittel), welcher Teil an welches Beförderungsmittel gesendet wird. Das Update kann auf der wahrscheinlichen Nutzung des Updates basieren, zum Beispiel, welches Beförderungsmittel die Software besser testen/verwenden kann.In another embodiment, the master conveyance determines based on the characteristics of the conveyance (e.g., the security level of the conveyance, the age of the conveyance, the hardware in the conveyance that is set up to run the software properly, the state of the conveyance, the characteristics of the user/occupants of the means of transport, the use of functional features in or in connection with the means of transport), which part is sent to which means of transport. The update may be based on the likely usage of the update, for example which means of transport is better able to test/use the software.
In einer weiteren Ausführungsform können verschiedene Fahrzeuge die Teile der Software anhand der Uhrzeit oder des Tages ihrer Übermittlung oder anhand von Eigenschaften des Fahrzeugs und/oder der Software und/oder des Benutzers zusammenstellen. Zum Beispiel kann Fahrzeug 1 einen ersten Teil (ABC) erhalten und gleich die nächste Übertragung an Fahrzeug 2 kann einen ersten Teil (ABC') vom selben Master-Beförderungsmittel erhalten (das heißt, der erste Teil kann ein anderer sein).In another embodiment, different vehicles may assemble the pieces of software based on the time or date of their submission or based on characteristics of the vehicle and/or the software and/or the user. For example, vehicle 1 may receive a first part (ABC) and the same next transmission to vehicle 2 may receive a first part (ABC') from the same master conveyance (ie the first part may be different).
In einer weiteren Ausführungsform kann das Software-Update in mehr als 2 Teile aufgeteilt werden. Manche Beförderungsmittel könnten 2 Teile erhalten, manche 3, manche n.In another embodiment, the software update can be divided into more than 2 parts. Some conveyances could get 2 parts, some 3, some n.
In einer weiteren Ausführungsform umfasst das Master-Beförderungsmittel eine oder mehrere von einer Sicherheitsstufe, die höher ist als die Teilmenge von Beförderungsmitteln und die weitere Teilmenge von Beförderungsmitteln, der erste Teil des Software-Updates und der zweite Teil des Software-Updates.In a further embodiment, the master carriage comprises one or more of a security level higher than the subset of carriages and the further subset of carriages, the first part of the software update and the second part of the software update.
In einer weiteren Ausführungsform werden alle Probleme mit der Software an das Master-Beförderungsmittel zurückgemeldet (das sie an einen zentralen Server zurückmelden kann).In another embodiment, any problems with the software are reported back to the master vehicle (which can report them back to a central server).
In einer weiteren Ausführungsform kann sich das Master-Beförderungsmittel - wenn ein Problem mit einem Teil des Updates oder mit dem zusammengesetzten ersten und zweiten Teil auftritt - in einer Nähe des problembehafteten Beförderungsmittels befinden und das Problem überwachen und darauf zugreifen.In a further embodiment, when a problem occurs with a part of the update or with the assembled first and second parts, the master vehicle can be located in a vicinity of the problem vehicle and monitor and access the problem.
Gemäß einer weiteren beispielhaften Ausführungsform kann der Prozessor 104 eines Master-Beförderungsmittels 102 dafür eingerichtet sein, einen ersten Teil eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln 105 zu senden. Der Prozessor 104 des Master-Beförderungsmittels 102 kann einen zweiten Teil des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln 107 senden. Wenn sich dann ein erstes Beförderungsmittel der Teilmenge der Beförderungsmittel 105 und ein zweites Beförderungsmittel der weiteren Teilmenge der Beförderungsmittel 107 in einer Nähe befinden, so kann der Prozessor 104 einen Befehl an das erste Beförderungsmittel 105 senden, den ersten Teil des Software-Updates an das zweite Beförderungsmittel 107 zu senden. Anschließend kann der Prozessor 104 einen Befehl an das zweite Beförderungsmittel senden, den zweiten Teil des Software-Updates an das erste Beförderungsmittel 105 zu senden. Auf diese Weise können die Prozessoren 104' und 104" der jeweiligen Beförderungsmittel 105 und 107 ein vollständiges Software-Update zusammenstellen.According to another exemplary embodiment, the
Gemäß einer weiteren beispielhaften Ausführungsform kann der Prozessor 104' (oder 104") dafür eingerichtet sein, ein Software-Update (zum Beispiel von dem Master-Beförderungsmittelknoten 102) zu empfangen und eine erste Validierung des Software-Updates in einer ersten Umgebung durchzuführen. Die erste Umgebung kann einen kleinsten Betrag potenzieller Interaktionen umfassen (minimaler Verkehr, keine Fußgänger, normale Wetterbedingungen usw.). Dann kann der Prozessor 104' (oder 104") eine weitere Validierung des Software-Updates durchführen, wenn die erste Validierung in einer weiteren Umgebung erfolgreich ist. Die weitere Umgebung kann einen größeren Betrag potenzieller Interaktionen umfassen als die erste Umgebung (zum Beispiel mehr Verkehr, Fußgänger, schwierige Wetterbedingungen usw.).According to another exemplary embodiment, the processor 104' (or 104'') may be configured to receive a software update (e.g., from the master conveyance node 102) and perform a first validation of the software update in a first environment The first environment may include a minimal amount of potential interactions (minimal traffic, no pedestrians, normal weather conditions, etc.). Then the processor 104' (or 104") may perform another validation of the software update if the first validation is in another environment is successful. The wider environment may include a greater amount of potential interactions than the first environment (e.g., more traffic, pedestrians, difficult weather conditions, etc.).
Obgleich dieses Beispiel nur einen einzelnen Beförderungsmittelknoten 102 detailliert beschreibt, können auch mehrere solcher Knoten mit der Blockchain 106 verbunden sein. Es versteht sich, dass der Beförderungsmittelknoten 102 zusätzliche Komponenten umfassen kann und dass einige der hier beschriebenen Komponenten weggelassen und/oder modifiziert werden können, ohne vom Geltungsbereich des hier offenbarten Beförderungsmittelknotens 102 abzuweichen. Der Beförderungsmittelknoten 102 kann eine Computervorrichtung oder einen Servercomputer oder dergleichen aufweisen und kann einen Prozessor 104 umfassen, der ein halbleiterbasierter Mikroprozessor, eine zentrale Verarbeitungseinheit (CPU), ein anwendungsspezifischer integrierter Schaltkreis (ASIC), ein feldprogrammierbares Gate-Array (FPGA) und/oder eine andere Hardware-Vorrichtung sein kann. Obgleich nur ein einziger Prozessor 104 gezeigt ist, versteht es sich, dass der Beförderungsmittelknoten 102 auch mehrere Prozessoren, mehrere Kerne oder dergleichen umfassen kann, ohne vom Geltungsbereich des Beförderungsmittelknotensystems 102 abzuweichen.Although this example only details a single conveyance node 102, multiple such nodes may be connected to the
Der Beförderungsmittelknoten 102 kann auch ein nicht-transitorisches computerlesbares Medium 112 umfassen, auf dem maschinenlesbare Instruktionen gespeichert sein können, die durch den Prozessor 104 ausgeführt werden können. Beispiele für maschinenlesbare Instruktionen sind als 114-118 gezeigt und werden unten noch näher besprochen. Beispiele für das nicht-transitorische computerlesbare Medium 112 können eine elektronische, magnetische, optische oder sonstige physische Speichervorrichtung sein, die ausführbare Instruktionen umfasst oder speichert. Zum Beispiel kann das nicht-transitorische computerlesbare Medium 112 ein RAM-Speicher (Random Access Memory), ein EEPROM-Speicher (Electrically Erasable Programmable Read-Only Memory), eine Festplatte, eine optische Disk oder eine andere Art von Speichervorrichtung sein.Conveyance node 102 may also include a non-transitory computer-
Der Prozessor 104 kann die maschinenlesbaren Instruktionen 114 ausführen, um ein Software-Update in dem Beförderungsmittel 104 zu empfangen. Jedes der Beförderungsmittel 102 und 105 kann als Netzwerk-Peer (das heißt Knoten) in einer Blockchain 106 dienen. Wie oben besprochen, kann das Blockchain-Ledger 108 Software-Update-bezogene Transaktionen speichern. Das Blockchain 106-Netzwerk kann dafür eingerichtet sein, einen oder mehrere intelligente Verträge zu verwenden, die sich in den Beförderungsmitteln (das heißt Knoten) 102 befinden, die Transaktionen für andere teilnehmende Beförderungsmittelknoten 105 verwalten können. Der Beförderungsmittelknoten 102 kann die Informationen an die Blockchain 106 übermitteln, um im Ledger 108 gespeichert zu werden.The
Der Prozessor 104 kann die maschinenlesbaren Instruktionen 116 ausführen, um das Software-Update zu validieren. Das Software-Update kann auf der Grundlage eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel 102 validiert werden. Der Prozessor 104 kann die maschinenlesbaren Instruktionen 118 ausführen, um das Software-Update auf der Grundlage der Validierung an eine weitere Teilmenge von Beförderungsmitteln (zum Beispiel 105) zu verbreiten. Die weitere Teilmenge der Beförderungsmittel 105 ist größer als die Teilmenge der Beförderungsmittel 102.The
Der Master-Beförderungsmittelknoten 102 kann auch ein nicht-transitorisches computerlesbares Medium 112' umfassen, auf dem maschinenlesbare Instruktionen gespeichert sein können, die durch den Prozessor 104 ausgeführt werden können. Beispiele für maschinenlesbare Instruktionen sind als 113-117 gezeigt und werden unten noch näher besprochen. Beispiele für das nicht-transitorische computerlesbare Medium 112' können eine elektronische, magnetische, optische oder sonstige physische Speichervorrichtung sein, die ausführbare Instruktionen umfasst oder speichert. Zum Beispiel kann das nicht-transitorische computerlesbare Medium 112' ein RAM-Speicher (Random Access Memory), ein EEPROM-Speicher (Electrically Erasable Programmable Read-Only Memory), eine Festplatte, eine optische Disk oder eine andere Art von Speichervorrichtung sein.Master conveyance node 102 may also include a non-transitory computer-readable medium 112' on which machine-readable instructions executable by
Der Prozessor 104 kann die maschinenlesbaren Instruktionen 112' ausführen, um einen ersten Teil eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln 113 zu senden. Die Blockchain 106 kann dafür eingerichtet sein, einen oder mehrere intelligente Verträge zu verwenden, die Transaktionen für mehrere beteiligte Knoten (zum Beispiel 105 und 107) managen. Der Master-Beförderungsmittelknoten 102 kann Software-Update-bezogene Informationen an die Blockchain 106 übermitteln und diese Transaktion kann im Ledger 108 gespeichert werden.The
Der Prozessor 104 kann die maschinenlesbaren Instruktionen 115 ausführen, um einen zweiten Teil des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln (zum Beispiel 107) zu senden. Der Prozessor 104 kann die maschinenlesbaren Instruktionen 117 ausführen, um, wenn ein erstes Beförderungsmittel der Teilmenge der Beförderungsmittel 105 und ein zweites Beförderungsmittel der weiteren Teilmenge der Beförderungsmittel 107 in einer Nähe sind: das erste Beförderungsmittel zu veranlassen, den ersten Teil des Software-Updates an das zweite Beförderungsmittel zu senden, und das zweite Beförderungsmittel 107 zu veranlassen, den zweiten Teil des Software-Updates an das erste Beförderungsmittel 105 zu senden.
Der Beförderungsmittelknoten 102 kann auch ein nicht-transitorisches computerlesbares Medium 112" umfassen, auf dem maschinenlesbare Instruktionen gespeichert sein können, die durch den Prozessor 104 ausgeführt werden können. Beispiele für maschinenlesbare Instruktionen sind als 132-136 gezeigt und werden unten noch näher besprochen. Beispiele für das nicht-transitorische computerlesbare Medium 112" können eine elektronische, magnetische, optische oder sonstige physische Speichervorrichtung sein, die ausführbare Instruktionen umfasst oder speichert. Zum Beispiel kann das nicht-transitorische computerlesbare Medium 112" ein RAM-Speicher (Random Access Memory), ein EEPROM-Speicher (Electrically Erasable Programmable Read-Only Memory), eine Festplatte, eine optische Disk oder eine andere Art von Speichervorrichtung sein.Conveyor node 102 may also include a non-transitory computer-readable medium 112'' on which may be stored machine-readable instructions executable by
Der Prozessor 104 kann die maschinenlesbaren Instruktionen 132 ausführen, um ein Software-Update in dem Beförderungsmittel 102 zu empfangen. Die Blockchain 106 kann dafür eingerichtet sein, einen oder mehrere intelligente Verträge zu verwenden, die Transaktionen für mehrere teilnehmende Beförderungsmittelknoten 105 managen. Das Beförderungsmittel 102 kann Software-Update-bezogene Validierungsinformationen an die Blockchain 106 übermitteln und diese Transaktion kann im Ledger 108 gespeichert werden.The
Der Prozessor 104 kann die maschinenlesbaren Instruktionen 134 ausführen, um eine erste Validierung des Software-Updates in einer ersten Umgebung durchzuführen, wobei die erste Umgebung einen geringsten Betrag potenzieller Interaktionen umfasst. Der Prozessor 104 kann die maschinenlesbaren Instruktionen 136 ausführen, um eine weitere Validierung des Software-Updates in einer weiteren Umgebung durchzuführen, wenn die erste Validierung erfolgreich ist. Die weitere Umgebung kann einen größeren Betrag potenzieller Interaktionen umfassen als die erste Umgebung.The
Die Blockchain-Transaktionen 220 werden im Speicher von Computern gespeichert, wenn die Transaktionen empfangen und durch das Konsensmodell genehmigt werden, das durch die Knoten der Beteiligten vorgegeben wird. Genehmigte Transaktionen 226 werden in momentanen Blöcken der Blockchain gespeichert und an die Blockchain durch ein Bereitstellungsverfahren überstellt, das die Durchführung eines Hashes der Dateninhalte der Transaktionen in einem momentanen Block und das Rückgreifen auf einen früheren Hash eines früheren Blocks umfasst. Innerhalb der Blockchain können ein oder mehrere intelligente Verträge (Smart Contracts) 230 existieren, welche die Konditionen von Transaktionsvereinbarungen und -aktionen definieren, die in ausführbarem Smart-Contract-Anwendungscode 232 enthalten sind, wie zum Beispiel registrierte Empfänger, Fahrzeugmerkmale, Anforderungen, Erlaubniserteilungen, Sensorschwellen usw. Der Code kann dafür eingerichtet sein zu identifizieren, ob anfragende Entitäten für den Empfang von Fahrzeugdiensten registriert sind, welche Dienstmerkmale sie gemäß ihrem Profilstatus empfangen dürfen/müssen und ob ihre Aktionen bei anschließenden Ereignissen überwacht werden sollen. Wenn zum Beispiel ein Service-Ereignis eintritt und ein Benutzer in dem Beförderungsmittel fährt, so kann die Überwachung der Sensordaten ausgelöst werden und es kann bestimmt werden, dass ein bestimmter Parameter, wie zum Beispiel der Ladezustand eines Fahrzeugs, während eines bestimmten Zeitraums über oder unter einer bestimmten Schwelle liegt. Das Ergebnis kann dann eine Änderung des momentanen Zustands sein, was es erforderlich macht, einen Alarm an die managende Partei (das heißt den Fahrzeughalter, den Beförderungsmittel-Lenker, den Server usw.) zu senden, damit der Service erkannt und als Referenz gespeichert werden kann. Die erfassten Fahrzeugsensordaten können auf Arten von Sensordaten basieren, die zum Erfassen von Informationen über den Status des Fahrzeugs verwendet werden. Die Sensordaten können auch die Grundlage für die Fahrzeugereignisdaten 234 sein, wie zum Beispiel zu erreichende Orte, Durchschnittsgeschwindigkeit, Höchstgeschwindigkeit, Beschleunigungsraten, ob es Zusammenstöße gab, ob die erwartete Route genommen wurde, was das nächste Ziel ist, ob Sicherheitsmaßnahmen eingerichtet sind, ob das Fahrzeug genügend Ladung/Kraftstoff hat usw. Alle diese Informationen können die Grundlage der Konditionen des intelligenten Vertrages 230 bilden, die dann in einer Blockchain gespeichert werden. Zum Beispiel können die in dem intelligenten Vertrag gespeicherten Sensorschwellen als Grundlage dafür verwendet werden, ob ein detektierter Service notwendig ist und wann und wo der Service durchgeführt werden soll.The
Der Anwendungscode 254 für intelligente Verträge bildet eine Grundlage für die Blockchain-Transaktionen, indem er Anwendungscode generiert, der, wenn er ausgeführt wird, veranlasst, dass die Bestimmungen und Bedingungen der Transaktion aktiv werden. Der intelligente Vertrag 230 bewirkt, wenn er ausgeführt wird, dass bestimmte genehmigte Transaktionen 226 generiert werden, die dann an die Blockchain-Plattform 262 weitergeleitet werden. Die Plattform umfasst eine Sicherheit/Autorisierung 268, Computervorrichtungen, die das Transaktionsmanagement 266 ausführen, und einen Speicherabschnitt 264 als einen Speicher, der Transaktionen und intelligente Verträge in der Blockchain speichert.The smart
Die Blockchain-Plattform kann verschiedene Schichten von Blockchain-Daten, Diensten (zum Beispiel kryptografische Vertrauensdienste, virtuelle Ausführungsumgebung usw.) und eine zugrunde liegende physische Computerinfrastruktur umfassen, die zum Empfangen und Speichern neuer Einträge und zum Gewähren des Zugangs für Prüfer, die auf Dateneinträge zugreifen möchten, verwendet werden kann. Die Blockchain kann eine Schnittstelle anbieten, die Zugriff auf die virtuelle Ausführungsumgebung ermöglicht, die für die Verarbeitung des Programmcodes und die Nutzung der physischen Infrastruktur erforderlich ist. Kryptografische Vertrauensdienste können verwendet werden, um Einträge wie zum Beispiel Asset-Austauscheinträge zu verifizieren und den Datenschutz von Informationen zu wahren.The blockchain platform may include various layers of blockchain data, services (e.g., cryptographic trust services, virtual execution environment, etc.), and underlying physical computing infrastructure used to receive and store new entries and provide access to validators looking for data entries want to access can be used. The blockchain can offer an interface that allows access to the virtual execution environment required for processing the program code and using the physical infrastructure. Cryptographic trust services can be used to verify entries such as asset exchange entries and to protect the privacy of information.
Die Blockchain-Architekturausgestaltung der
Innerhalb des ausführbaren Codes eines intelligenten Vertrages kann ein intelligenten Vertrag über eine unspezifische Anwendung und Programmiersprache erstellt und dann in einen Block in der Blockchain geschrieben werden. Der intelligente Vertrag kann ausführbaren Code umfassen, der bei einer Blockchain (zum Beispiel einem verteilten Netzwerk von Blockchain-Peers) registriert, gespeichert und/oder repliziert wird. Ein Eintrag ist eine Ausführung des Codes für einen intelligenten Vertrag, der in Reaktion auf die Erfüllung von Bedingungen, die mit dem intelligenten Vertrag verknüpft sind, ausgeführt werden kann. Die Ausführung des intelligenten Vertrages kann eine oder mehrere vertrauenswürdige Modifizierungen eines Zustands eines digitalen Blockchain-Ledgers auslösen. Die durch die Ausführung des intelligenten Vertrages verursachten Modifizierungen des Blockchain-Ledgers können automatisch in dem gesamten verteilten Netzwerk von Blockchain-Peers durch ein oder mehrere Konsens-Protokolle repliziert werden.Within the executable code of a smart contract, a smart contract created via a non-specific application and programming language and then written to a block in the blockchain. The smart contract may include executable code that is registered, stored, and/or replicated with a blockchain (e.g., a distributed network of blockchain peers). An entry is an execution of smart contract code that may be executed in response to the satisfaction of conditions associated with the smart contract. Execution of the smart contract may trigger one or more trusted modifications of a state of a blockchain digital ledger. The blockchain ledger modifications caused by the execution of the smart contract can be automatically replicated throughout the distributed network of blockchain peers through one or more consensus protocols.
Der intelligente Vertrag kann Daten im Format von Schlüssel-Wert-Paaren in die Blockchain schreiben. Darüber hinaus kann der Code eines intelligenten Vertrages die in einer Blockchain gespeicherten Werte lesen und sie in Anwendungsoperationen verwenden. Der Code eines intelligenten Vertrages kann die Ausgabe verschiedener Logikoperationen in die Blockchain schreiben. Der Code kann verwendet werden, um eine temporäre Datenstruktur in einer virtuellen Maschine oder einer anderen Rechenplattform zu erstellen. Daten, die in die Blockchain geschrieben werden, können öffentlich sein und/oder können verschlüsselt und unter Datenschutz gehalten werden. Die temporären Daten, die durch den intelligenten Vertrag verwendet/generiert werden, werden durch die bereitgestellte Ausführungsumgebung im Speicher verwahrt und dann gelöscht, sobald die für die Blockchain benötigten Daten identifiziert wurden.The smart contract can write data to the blockchain in the format of key-value pairs. In addition, smart contract code can read the values stored in a blockchain and use them in application operations. Smart contract code can write the output of various logic operations to the blockchain. The code can be used to create a temporary data structure in a virtual machine or other computing platform. Data written to the blockchain may be public and/or may be encrypted and kept private. The temporary data used/generated by the smart contract is kept in memory by the provided execution environment and then deleted once the data needed for the blockchain has been identified.
Ein ausführbarer Code eines intelligenten Vertrages kann die Code-Interpretation eines intelligenten Vertrages mit zusätzlichen Leistungsmerkmalen umfassen. Wie im vorliegenden Text beschrieben, kann der ausführbare Code des intelligenten Vertrags ein Programmcode sein, der in einem Computernetzwerk verwendet wird, wo er durch Kettenvalidatoren zusammen während eines Konsensprozesses ausgeführt und validiert wird. Der ausführbare Code des intelligenten Vertrages empfängt einen Hash und ruft aus der Blockchain einen Hash ab, der mit der Datenvorlage verknüpft ist, die durch Verwendung eines zuvor gespeicherten Merkmalsextraktors erstellt wurde. Falls der Hash des Hash-Identifizierers und der Hash, der aus den gespeicherten Daten der Identifizierer-Vorlage erstellt wurde, übereinstimmen, so sendet der ausführbare Code des intelligenten Vertrages einen Autorisierungsschlüssel an den angefragten Dienst. Der ausführbare Code des intelligenten Vertrages kann in die Blockchain Daten schreiben, die mit den kryptografischen Details verknüpft sind.Executable smart contract code may include smart contract code interpretation with additional features. As described herein, the smart contract executable code may be program code used on a computer network where it is executed and validated by chain validators together during a consensus process. The smart contract executable code receives a hash and retrieves from the blockchain a hash associated with the data template created using a previously stored feature extractor. If the hash of the hashed identifier and the hash created from the stored identifier template data match, then the smart contract executable code sends an authorization key to the requested service. The smart contract executable code can write to the blockchain data associated with the cryptographic details.
In Bezug auf
In Block 324 kann der Prozessor 104, wenn ein negatives Ergebnis auf der Grundlage der Validierung bestimmt wird, eines oder mehrere von Folgendem ausführen: Ändern eines oder mehrerer der Teilmenge der Beförderungsmittel, der weiteren Teilmenge der Beförderungsmittel und der Menge aller verbleibenden Beförderungsmittel und Zurücksetzen eines oder mehrerer der Teilmenge der Beförderungsmittel, der weiteren Teilmenge der Beförderungsmittel und der Menge aller verbleibenden Beförderungsmittel auf eines oder mehrere von einer ursprünglichen Software-Version und einem früheren Software-Update. In Block 326 kann der Prozessor 104 das Software-Update verwenden für: eine erste Zeitdauer durch die Teilmenge der Beförderungsmittel und eine zweite Zeitdauer durch die weitere Teilmenge der Beförderungsmittel, wobei die erste Zeitdauer größer ist als die zweite Zeitdauer. Die Teilmenge der Beförderungsmittel kann zu einem Blockchain-Netzwerk gehören. In Block 328 kann der Prozessor 104 einen intelligenten Vertrag des Blockchain-Netzwerks ausführen, um das Software-Update zu validieren und das Software-Update durch mehrere der Beförderungsmittel zu verbreiten.At
In Bezug auf
In Block 346 kann der Prozessor 104 das erste Beförderungsmittel in eine Nähe des zweiten Beförderungsmittels leiten, wenn seit dem Empfang des ersten Teils des Software-Updates ein Zeitraum verstrichen ist, und kann das zweite Beförderungsmittel in eine Nähe des ersten Beförderungsmittels leiten, wenn seit dem Empfang des ersten Teils des Software-Updates ein Zeitraum verstrichen ist. In Block 348 kann der Prozessor 104 den ersten Teil und den zweiten Teil des Software-Updates durch einen Transceiver in dem Master-Beförderungsmittel senden, kann durch einen Transceiver den ersten Teil und den zweiten Teil des Software-Updates in einem oder mehreren des ersten Beförderungsmittels und des zweiten Beförderungsmittels empfangen, kann den ersten Teil und den zweiten Teil des Software-Updates in einem Speicher in einem oder mehreren des ersten Beförderungsmittels und des zweiten Beförderungsmittels speichern und kann durch Prozessoren in dem ersten Beförderungsmittel und dem zweiten Beförderungsmittel den ersten Teil und den zweiten Teil kombinieren.At block 346, the
Es ist zu beachten, dass das Master-Beförderungsmittel, die Teilmenge der Beförderungsmittel und die weitere Teilmenge der Beförderungsmittel über ein Blockchain-Netzwerk verbunden sein können. In Block 350 kann der Prozessor 104 einen Smart Contract ausführen, um Teile der Software-Updates zwischen den Beförderungsmitteln auszutauschen.It should be noted that the master conveyance, the subset of conveyances and the further subset of conveyances may be connected via a blockchain network. At block 350, the
In Bezug auf
Das vorliegende System umfasst eine Blockchain, die unveränderliche, sequenzierte Datensätze in Blöcken speichert, und eine Zustandsdatenbank (momentaner Weltzustand), die einen momentanen Zustand der Blockchain verwaltet. Pro Kanal kann ein verteiltes Ledger existieren und jeder Peer verwaltet seine eigene Kopie des verteilten Ledgers für jeden Kanal, dem er zugehört. Die vorliegende Blockchain ist ein Eintrags-Log, das als Hash-verknüpfte Blöcke strukturiert ist, wobei jeder Block eine Folge von N Einträgen umfasst. Die Blöcke können verschiedene Komponenten umfassen, wie zum Beispiel die in
Der momentane Zustand der Blockchain und des verteilten Ledgers kann in der Zustandsdatenbank gespeichert werden. Dabei stellen die Momentanzustandsdaten die neuesten Werte für alle Schlüssel dar, die jemals in das Ketteneintrags-Log der Blockchain aufgenommen wurden. Aufrufe von ausführbarem Code eines intelligenten Vertrages führen Einträge vor dem Hintergrund des momentanen Zustands in der Zustandsdatenbank aus. Um diese Interaktionen von ausführbarem Code eines intelligenten Vertrages möglichst effizient zu gestalten, werden die neuesten Werte aller Schlüssel in der Zustandsdatenbank gespeichert. Die Zustandsdatenbank kann eine indizierte Ansicht des Eintrags-Logs der Blockchain umfassen, weshalb sie jederzeit aus der Kette regeneriert werden kann. Die Zustandsdatenbank kann automatisch wiederhergestellt (oder bei Bedarf generiert) werden, wenn der Peer gestartet wird, bevor Einträge entgegengenommen werden.The current state of the blockchain and the distributed ledger can be stored in the state database. The current state data represents the most recent values for all keys that have ever been included in the chain entry log of the blockchain. Smart contract executable code calls make entries against the current state in the state database. In order to make these interactions of executable code of a smart contract as efficient as possible, the latest values of all keys are stored in the state database. The state database can include an indexed view of the blockchain's entry log, so it can be regenerated off-chain at any time. The state database can be restored automatically (or generated on demand) when the peer starts before accepting entries.
Befürwortende Knoten empfangen Einträge von Clients und befürworten den Eintrag auf der Grundlage simulierter Ergebnisse. Befürwortende Knoten speichern intelligente Verträge, welche die Eintragsvorschläge simulieren. Wenn ein befürwortender Knoten einen Eintrag befürwortet, so erstellt der befürwortende Knoten eine Eintragsbefürwortung, die eine signierte Antwort von dem befürwortenden Knoten an die Client-Anwendung ist und die Befürwortung des simulierten Eintrags anzeigt. Das Verfahren des Befürwortens eines Eintrags hängt von einer Befürwortungsrichtlinie ab, die in ausführbarem Code des intelligenten Vertrages spezifiziert sein kann. Ein Beispiel für eine Befürwortungsrichtlinie ist: „Die Mehrheit der befürwortenden Peers muss den Eintrag befürworten.“ Verschiedene Kanäle können unterschiedliche Befürwortungsrichtlinien aufweisen. Befürwortete Einträge werden durch die Client-Anwendung an einen Ordnungsdienst weitergeleitet.Endorsing nodes receive entries from clients and endorse the entry based on simulated results. Promoting nodes store smart contracts that simulate the entry proposals. When an endorsing node endorses an entry, the endorsing node creates an entry endorsement, which is a signed response from the endorsing node to the client application indicating endorsement of the simulated entry. The method of endorsing an entry depends on an endorsement policy, which may be specified in executable code of the smart contract. An example of an endorsement policy is: "The majority of endorsement peers must endorse the entry." Different channels may have different endorsement policies. Approved entries are forwarded to a stewardship service by the client application.
Der Ordnungsdienst nimmt befürwortete Einträge entgegen, ordnet sie zu einem Block und übermittelt die Blöcke an die bereitstellenden Peers. Der Ordnungsdienst kann zum Beispiel einen neuen Block initiieren, wenn eine Schwelle von Einträgen erreicht wurde, ein Timer abläuft oder eine andere Bedingung vorliegt. In diesem Beispiel ist der Blockchain-Knoten ein bereitstellender (committing) Peer, der einen Datenblock 602A zur Speicherung in der Blockchain empfangen hat. Der Ordnungsdienst kann aus einem Cluster von Ordnern bestehen. Der Ordnungsdienst verarbeitet weder Einträge noch intelligente Verträge, noch verwaltet er das gemeinsam genutzte Ledger (shared ledger). Vielmehr kann der Ordnungsdienst die befürworteten Einträge entgegennehmen und spezifiziert die Reihenfolge, in der diese Einträge an das verteilte Ledger (distributed ledger) überstellt (committed) werden. Die Architektur des Blockchain-Netzwerks kann so gestaltet werden, dass die spezifische Implementierung der „Ordnung“ (zum Beispiel Solo, Kafka, BFT usw.) zu einer plug-fähigen Komponente wird.The stewardship service accepts approved entries, arranges them into a block, and transmits the blocks to the providing peers. For example, the security service can initiate a new block when a threshold of entries has been reached, a timer expires, or some other condition. In this example, the blockchain node is a committing peer that has received a block of data 602A for storage on the blockchain. The security service can consist of a cluster of folders. The security service does not process entries or smart contracts, nor does it manage the shared ledger. Rather, the security service can accept the approved entries and specify the order in which these entries are committed to the distributed ledger. The architecture of the blockchain network can be designed in such a way that the specific implementation of the “Order” (e.g. Solo, Kafka, BFT, etc.) becomes a pluggable component.
Einträge werden in einer gleichbleibenden Reihenfolge in das verteilte Ledger geschrieben. Die Reihenfolge der Einträge wird so festgelegt, dass sichergestellt ist, dass die Aktualisierungen der Statusdatenbank gültig sind, wenn sie an das Netzwerk überstellt werden. Im Gegensatz zu einem Kryptowährungs-Blockchain-System (zum Beispiel Bitcoin usw.), bei dem die Ordnung durch das Lösen eines kryptografischen Puzzles oder durch Datenschürfen (Mining) erfolgt, können in diesem Beispiel die Parteien des verteilten Ledgers den Ordnungsmechanismus wählen, der an dem besten zu diesem Netzwerk passt.Entries are written to the distributed ledger in a consistent order. The order of the entries is set to ensure that the state database updates are valid when pushed out to the network. Unlike a cryptocurrency blockchain system (e.g., bitcoin, etc.) where ordering occurs by solving a cryptographic puzzle or by data mining (mining), in this example, the distributed ledger parties can choose the ordering mechanism that that best fits this network.
Unter Bezug auf
Die Blockdaten 510A können Eintragsinformationen jedes Eintrags speichern, der innerhalb des Blocks aufgezeichnet wird. Zum Beispiel können die Eintragsdaten eines oder mehrere von Folgendem umfassen: einen Typ des Eintrags, eine Version, einen Zeitstempel, eine Kanal-ID des verteilten Ledgers, eine Eintrags-ID, eine Epoche, eine Nutzlastsichtbarkeit, einen Pfad für den ausführbaren Code eines intelligenten Vertrages (deploy tx), einen Namen für den ausführbaren Code eines intelligenten Vertrages, eine Version von ausführbarem Code für einen intelligenten Vertrag, Eingaben (ausführbarer Code und Funktionen eines intelligenten Vertrages), eine Client (Erzeuger)-Identifikation, wie zum Beispiel ein öffentlicher Schlüssel und ein Zertifikat, eine Signatur des Clients, Identitäten von Befürwortern, Befürworter-Signaturen, ein Vorschlags-Hash, Ereignisse von ausführbarem Code eines intelligenten Vertrages, Antwortstatus, Namensraum, einen Lesesatz (Liste der Schlüssel und Version, die durch den Eintrag gelesen wurde, usw.), einen Schreibsatz (Liste der Schlüssel und Wert usw.), einen Startschlüssel, einen Endschlüssel, eine Liste von Schlüsseln, eine Hash-Baum-Abfragezusammenfassung und dergleichen. Die Eintragsdaten können für jeden der N Einträge gespeichert werden.The
In einigen Ausführungsformen können die Blockdaten 510A auch transaktionsspezifische Daten 506A speichern, was zusätzliche Informationen zu der Hash-verknüpften Kette von Blöcken in der Blockchain hinzufügt. Dementsprechend können die Daten 506A in einem unveränderlichen Log von Blöcken in dem verteilten Ledger gespeichert werden. Einige der Vorteile des Speicherns solcher Daten 506A sind in den verschiedenen im vorliegenden Text offenbarten und gezeigten Ausführungsformen widergespiegelt. Die Block-Metadaten 508A können mehrere Felder von Metadaten speichern (zum Beispiel als ein Byte-Array usw.). Die Metadatenfelder können eine Signatur bei Erstellung des Blocks, einen Verweis auf einen letzten Konfigurationsblock, einen Eintragsfilter, der gültige und ungültige Einträge innerhalb des Blocks identifiziert, den letzten fortbestehenden Versatz eines Ordnungsdienstes, der den Block geordnet hat, und dergleichen umfassen. Die Signatur, der letzte Konfigurationsblock und die Ordner-Metadaten können durch den Ordnungsdienst hinzugefügt werden. Des Weiteren kann ein Bereitsteller des Blocks (zum Beispiel ein Blockchain-Knoten) Informationen zur Gültigkeit/Ungültigkeit auf der Grundlage einer Befürwortungsrichtlinie, einer Verifizierung von Lese-/Schreibsätzen und dergleichen hinzufügen. Der Eintragsfilter kann ein Byte-Array einer Größe, die gleich der Anzahl der Einträge in den Blockdaten 510A ist, sowie einen Validierungscode, der angibt, ob ein Eintrag gültig/ungültig war, umfassen.In some embodiments,
Die anderen Blöcke 502B bis 502n in der Blockchain weisen ebenfalls Header, Dateien und Werte auf. Im Gegensatz zu dem ersten Block 502A umfasst jedoch jeder der Header 504A bis 504n in den anderen Blöcken den Hash-Wert eines unmittelbar vorangehenden Blocks. Der Hash-Wert des unmittelbar vorherigen Blocks braucht nur der Hash-Wert des Headers des vorherigen Blocks zu sein oder kann der Hash-Wert des gesamten vorherigen Blocks sein. Durch Einbinden des Hash-Wertes eines vorherigen Blocks in jeden der verbleibenden Blöcke kann eine Rückverfolgung von dem N-ten Block zurück zum Entstehungsblock (und der zugehörigen Originaldatei) Block für Block durchgeführt werden, wie durch Pfeile 512 angedeutet, um eine überprüfbare und unveränderliche Obhutskette zu bilden.The
Die obigen Ausführungsformen können in Hardware, in einem durch einen Prozessor ausgeführten Computerprogramm, in Firmware oder in einer Kombination des oben Genannten implementiert werden. Ein Computerprogramm kann auf einem computerlesbaren Medium, wie zum Beispiel einem Speichermedium, verkörpert sein. Ein Computerprogramm kann sich zum Beispiel in einem Direktzugriffsspeicher („RAM“), einem Flash-Speicher, einem Nurlesespeicher („ROM“), einem löschbaren programmierbaren Nurlesespeicher („EPROM“), einem elektrisch löschbaren programmierbaren Nurlesespeicher („EEPROM“), Registern, einer Festplatte, einem Wechseldatenträger, einem Compact-Disk-Nurlesespeicher („CD-ROM“) oder einer anderen Form von Speichermedium befinden, die im Stand der Technik bekannt ist.The above embodiments may be implemented in hardware, in a computer program executed by a processor, in firmware, or in a combination of the above. A computer program may be embodied on a computer-readable medium, such as a storage medium. For example, a computer program may reside in random access memory ("RAM"), flash memory, read-only memory ("ROM"), erasable programmable read-only memory ("EPROM"), electrically erasable programmable read-only memory ("EEPROM"), registers , hard drive, removable media, compact disk read-only memory ("CD-ROM"), or any other form of storage media known in the art.
Ein beispielhafte Speichermedium kann so mit dem Prozessor gekoppelt werden, dass der Prozessor Informationen aus dem Speichermedium lesen und in das Speichermedium schreiben kann. Alternativ kann das Speichermedium in den Prozessor integriert sein. Der Prozessor und das Speichermedium können sich in einem anwendungsspezifischen integrierten Schaltkreis („ASIC“) befinden. Alternativ können der Prozessor und das Speichermedium auch als diskrete Komponenten vorhanden sein. Zum Beispiel veranschaulicht
In dem Computerknoten 600 befindet sich ein Computersystem/Server 602, das bzw. der mit zahlreichen anderen Allzweck- oder Spezial-Computersystemumgebungen oder -konfigurationen arbeiten kann. Zu Beispielen bekannter Computersysteme, -umgebungen und/oder -konfigurationen, die für die Verwendung mit dem Computersystem/Server 602 geeignet sein können, gehören unter anderem Personalcomputersysteme, Servercomputersysteme, Thin Clients, Thick Clients, handgehaltene oder Laptop-Vorrichtungen, Mehrprozessorsysteme, mikroprozessorbasierte Systeme, Set-Top-Boxen, programmierbare Konsumelektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der oben genannten Systeme oder Vorrichtungen umfassen, und dergleichen.Within the
Das Computersystem/der Server 602 kann im allgemeinen Kontext mit durch ein Computersystem ausführbaren Instruktionen, wie zum Beispiel Programmmodulen, beschrieben werden, die durch ein Computersystem ausgeführt werden. Allgemein können Programmmodule Routinen, Programme, Objekte, Komponenten oder Datenstrukturen und so weiter umfassen, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Das Computersystem/der Server 602 kann in verteilten Cloud-Computing-Umgebungen praktiziert werden, wo Aufgaben durch räumlich abgesetzte Vorrichtungen ausgeführt werden, die über ein Kommunikationsnetzwerk vernetzt sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule sowohl in lokalen als auch in räumlich abgesetzten Computersystem-Speichermedien, einschließlich Arbeitsspeichervorrichtungen, angeordnet sein.Computer system/
Wie in
Der Bus repräsentiert eine oder mehrere von beliebigen verschiedenen Arten von Busstrukturen, einschließlich eines Speicherbusses oder Speichercontrollers, eines Peripheriebusses, eines beschleunigten Grafikports und eines Prozessors oder lokalen Busses, der eine beliebige aus einer Vielzahl verschiedener Busarchitekturen verwendet. Zu diesen Architekturen gehören zum Beispiel der Industry Standard Architecture (ISA)-Bus, der Micro Channel Architecture (MCA)-Bus, der Enhanced ISA (EISA)-Bus, der lokale Video Electronics Standards Association (VESA)-Bus und der Peripheral Component Interconnects (PCI)-Bus.The bus represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of different bus architectures. These architectures include, for example, the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Video Electronics Standards Association (VESA) local bus, and the Peripheral Component Interconnects (PCI) bus.
Das Computersystem/der Server 602 umfasst in der Regel eine Vielzahl verschiedener durch das Computersystem lesbare Medien. Solche Medien können beliebige verfügbare Medien sein, auf die das Computersystem/der Server 602 zugreifen kann, und sie umfassen sowohl flüchtige als auch nicht-flüchtige Medien sowie wechselfähige und nicht-wechselfähige Medien. Der Systemspeicher 606 implementiert in einer Ausführungsform die Flussdiagramme der anderen Figuren. Der Systemspeicher 606 kann durch das Computersystem lesbare Medien in Form von flüchtigem Speicher, wie zum Beispiel Direktzugriffsspeicher (RAM) 608 und/oder Cache-Speicher 610, umfassen. Das Computersystem/der Server 602 kann des Weiteren andere wechselfähige/nicht-wechselfähige, flüchtige/nicht-flüchtige Computersystem-Speichermedien umfassen. Lediglich als Beispiel kann der Speicher 606 zum Lesen und Beschreiben eines nicht-wechselfähigen, nicht-flüchtigen magnetischen Mediums (nicht gezeigt und in der Regel als eine „Festplatte“ bezeichnet) vorgesehen sein. Obgleich nicht gezeigt, können ein Magnetplattenlaufwerk zum Lesen und Beschreiben einer wechselfähigen, nicht-flüchtigen Magnet-Disk (zum Beispiel einer „Floppy-Disk“) und ein optisches Disk-Laufwerk zum Lesen und Beschreiben einer wechselfähigen, nicht-flüchtigen optischen Disk, wie zum Beispiel einer CD-ROM, DVD-ROM oder eines anderen optischen Mediums, vorhanden sein. In solchen Fällen kann jedes über eine oder mehrere Datenträgerschnittstellen mit dem Bus verbunden sein. Wie weiter unten noch gezeigt und beschrieben wird, kann der Speicher 606 mindestens ein Programmprodukt mit einem Satz (zum Beispiel mindestens einem) von Programmmodulen umfassen, die dafür eingerichtet sind, die Funktionen verschiedener Ausführungsformen der Anmeldung ausführen.The computer system/
Ein Programm/Dienstprogramm mit einem Satz (mindestens einem) von Programmmodulen kann beispielhaft und ohne Einschränkung in dem Speicher 606 gespeichert werden, wie auch ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination davon kann eine Implementierung einer Netzwerkumgebung umfassen. Programmmodule führen allgemein die Funktionen und/oder Methodologien verschiedener Ausführungsformen der Anmeldung, wie im vorliegenden Text beschrieben, aus.By way of example and without limitation, a program/utility having a set (at least one) of program modules may be stored in
Wie dem Fachmann einleuchtet, können Aspekte der vorliegenden Anmeldung als ein System, ein Verfahren oder ein Computerprogrammprodukt verkörpert sein. Dementsprechend können Aspekte der vorliegenden Anmeldung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardware-Aspekte kombiniert, annehmen, die alle im vorliegenden Text allgemein als ein „Schaltkreis“, ein „Modul“ oder ein „System“ bezeichnet werden können. Darüber hinaus können Aspekte der vorliegenden Anmeldung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen ein computerlesbarer Programmcode verkörpert ist.As will be appreciated by those skilled in the art, aspects of the present application may be embodied as a system, method, or computer program product. Accordingly, aspects of the present application may take the form of a hardware-only embodiment, a software-only embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects, all of which are discussed herein can be referred to generically as a "circuit", a "module" or a "system". Furthermore, aspects of the present application may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
Das Computersystem/der Server 602 kann auch mit einer oder mehreren externen Vorrichtungen über einen E/A-Adapter 612, wie zum Beispiel eine Tastatur, eine Zeigevorrichtung, ein Display usw., mit einer oder mehreren Vorrichtungen, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 602 zu interagieren, und/oder mit beliebigen Vorrichtungen (zum Beispiel Netzwerkkarte, Modem usw.), die es dem Computersystem/Server 602 ermöglichen, mit einer oder mehreren anderen Computervorrichtungen zu kommunizieren, kommunizieren. Eine solche Kommunikation kann über E/A-Schnittstellen des Adapters 612 erfolgen. Des Weiteren kann das Computersystem/der Server 602 über einen Netzwerkadapter mit einem oder mehreren Netzwerken wie zum Beispiel einem Nahbereichsnetz (LAN), einem allgemeinen Fernbereichsnetz (WAN) und/oder einem öffentlichen Netzwerk (zum Beispiel dem Internet) kommunizieren. Wie gezeigt, kommuniziert der Adapter 612 mit den anderen Komponenten des Computersystems/Servers 602 über einen Bus. Es versteht sich, dass, obgleich nicht gezeigt, auch andere Hardware- und/oder Softwarekomponenten in Verbindung mit dem Computersystem/Server 602 verwendet werden könnten. Zu Beispielen hierfür gehören unter anderem: Mikrocode, Gerätetreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungssysteme usw.Computer system/
Obgleich eine beispielhafte Ausführungsform von mindestens einem von einem System, einem Verfahren und einem nicht-transitorischen computerlesbaren Medium in den beigefügten Zeichnungen gezeigt und in der vorangehenden detaillierten Beschreibung beschrieben wurde, versteht es sich, dass die Anmeldung nicht auf die offenbarten Ausführungsformen beschränkt ist, sondern dass zahlreiche Umgestaltungen, Modifizierungen und Ersetzungen vorgenommen werden können, wie durch die folgenden Ansprüche dargelegt und definiert ist. Zum Beispiel können die Fähigkeiten des Systems der verschiedenen Figuren durch eines oder mehrere der im vorliegenden Text beschriebenen Module oder Komponenten oder in einer verteilten Architektur ausgeführt werden und können einen Sender, einen Empfänger oder ein Paar von beiden umfassen. Zum Beispiel kann die gesamte oder ein Teil der Funktionalität, die durch die einzelnen Module ausgeführt wird, durch ein oder mehrere dieser Module ausgeführt werden. Des Weiteren kann die hier beschriebene Funktionalität zu verschiedenen Zeiten und in Bezug auf verschiedene Ereignisse, innerhalb oder außerhalb der Module oder Komponenten, ausgeführt werden. Außerdem können die zwischen verschiedenen Modulen gesendeten Informationen zwischen den Modulen über mindestens eines von Folgendem gesendet werden: ein Datennetzwerk, das Internet, ein Sprachnetzwerk, ein Internet Protocol-Netzwerk, eine Drahtlosvorrichtung, eine leitungsgebundene Vorrichtung und/oder über mehrere Protokolle. Außerdem können die durch beliebige der Module gesendeten oder empfangenen Nachrichten direkt und/oder über eines oder mehrere der anderen Module gesendet oder empfangen werden.Although an exemplary embodiment of at least one of a system, a method, and a non-transitory computer-readable medium has been shown in the accompanying drawings and described in the foregoing detailed description, it should be understood that the application is not limited to the disclosed embodiments, but rather that numerous rearrangements, modifications and substitutions can be made as set forth and defined by the following claims. For example, the capabilities of the system of the various figures may be implemented by one or more of the modules or components described herein, or in a distributed architecture, and may include a transmitter, a receiver, or a pair of both. For example, all or a portion of the functionality performed by each module may be performed by one or more of those modules. Furthermore, the functionality described herein may be performed at different times and in relation to different events, inside or outside the modules or components. Additionally, information sent between different modules may be sent between modules over at least one of a data network, the Internet, a voice network, an Internet Protocol network, a wireless device, a wired device, and/or multiple protocols. Additionally, the messages sent or received by any of the modules may be sent or received directly and/or through one or more of the other modules.
Dem Fachmann ist klar, dass ein „System“ als ein Personalcomputer, ein Server, eine Konsole, ein persönlicher digitaler Assistent (PDA), ein Mobiltelefon, eine Tablet-Rechenvorrichtung, ein Smartphone oder eine andere geeignete Computervorrichtung oder eine Kombination von Vorrichtungen verkörpert werden kann. Die Darstellung der oben beschriebenen Funktionen als durch ein „System“ ausgeführt, soll den Geltungsbereich der vorliegenden Anmeldung in keiner Weise einschränken, sondern soll ein konkretes Beispiel von vielen Ausführungsformen darstellen. Die hier offenbarten Verfahren, Systeme und Vorrichtungen können vielmehr in lokalisierten und verteilten Formen implementiert werden, die mit der Computertechnologie vereinbar sind.Those skilled in the art will appreciate that a "system" can be embodied as a personal computer, server, console, personal digital assistant (PDA), cell phone, tablet computing device, smartphone, or other suitable computing device or combination of devices can. The depiction of the functions described above as being performed by a "system" is not intended in any way to limit the scope of the present application, but is intended to provide a specific example of many embodiments. Rather, the methods, systems, and apparatus disclosed herein may be implemented in localized and distributed forms consistent with computing technology.
Es ist anzumerken, dass einige der in dieser Spezifikation beschriebenen Systemmerkmale als Module präsentiert wurden, um ihre Implementierungsunabhängigkeit besonders hervorzuheben. Zum Beispiel kann ein Modul als ein Hardware-Schaltkreis implementiert werden, der spezielle Very Large-Scale Integration (VLSI)-Schaltkreise oder Gate-Arrays, handelsübliche Halbleiter wie zum Beispiel Logikchips, Transistoren oder andere diskrete Komponenten umfasst. Ein Modul kann auch in programmierbaren Hardware-Vorrichtungen implementiert werden, wie zum Beispiel feldprogrammierbaren Gate-Arrays, programmierbarer Array-Logik, programmierbaren Logikvorrichtungen, Grafikverarbeitungseinheiten oder dergleichen.It should be noted that some of the system features described in this specification have been presented as modules to emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising special purpose Very Large Scale Integration (VLSI) circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module can also be implemented in programmable hardware devices, such as field programmable gate arrays, more programmable array logic, programmable logic devices, graphics processing units, or the like.
Ein Modul kann auch mindestens teilweise in Software zum Ausführen durch verschiedene Arten von Prozessoren implementiert werden. Eine identifizierte Einheit von ausführbarem Code kann zum Beispiel einen oder mehrere physische oder logische Blöcke von Computerinstruktionen umfassen, die zum Beispiel als ein Objekt, eine Verfahrensweise oder eine Funktion organisiert sein können. Ungeachtet dessen müssen die ausführbaren Elemente eines identifizierten Moduls nicht physisch zusammen angeordnet zu sein, sondern können disparate Instruktionen umfassen, die an verschiedenen Orten gespeichert sind, die, wenn sie logisch miteinander verbunden werden, das Modul bilden und den angegebenen Zweck für das Modul erreichen. Darüber hinaus können Module auf einem computerlesbaren Medium gespeichert werden, zum Beispiel auf einer Festplatte, einer Flash-Vorrichtung, einem Direktzugriffsspeicher (RAM), einem Band oder einem sonstigen Medium, das zum Speichern von Daten verwendet wird.A module can also be implemented, at least in part, in software for execution by various types of processors. An identified unit of executable code may include, for example, one or more physical or logical blocks of computer instructions, which may be organized as an object, a procedure, or a function, for example. Notwithstanding, the executable elements of an identified module need not be physically co-located, but may comprise disparate instructions stored in different locations which, when logically linked together, form the module and achieve the stated purpose for the module. Additionally, modules may be stored on a computer-readable medium, such as a hard drive, flash device, random access memory (RAM), tape, or any other medium used to store data.
Ein Modul von ausführbarem Code kann praktisch eine einzelne Instruktion oder viele Instruktionen sein und kann sogar über mehrere verschiedene Codesegmente, zwischen verschiedenen Programmen und über mehrere Speichervorrichtungen hinweg verteilt sein. In ähnlicher Weise können Betriebsdaten im vorliegenden Text innerhalb von Modulen identifiziert und veranschaulicht werden und können in jeder geeigneten Form verkörpert und in jeder geeigneten Art von Datenstruktur organisiert sein. Die Betriebsdaten können als ein einzelner Datensatz erfasst werden oder können über verschiedene Standorte, einschließlich über verschiedene Speichervorrichtungen, verteilt sein und brauchen - wenigstens teilweise - lediglich als eine elektronische Signale in einem System oder Netzwerk vorzuliegen.A module of executable code can be virtually a single instruction or many instructions, and can even be distributed across multiple different code segments, between different programs, and across multiple storage devices. Similarly, operational data herein may be identified and illustrated within modules and may be embodied in any suitable form and organized in any suitable type of data structure. The operational data may be collected as a single set of data, or may be distributed across different locations, including across different storage devices, and need exist—at least in part—only as an electronic signal in a system or network.
Es versteht sich, dass die Komponenten der Anmeldung, wie sie in den Figuren im vorliegenden Text allgemein beschrieben und veranschaulicht sind, in einer breiten Vielzahl verschiedener Ausgestaltungen angeordnet und ausgelegt werden können. Die detaillierte Beschreibung der Ausführungsformen soll daher nicht den Schutzumfang der Anmeldung in seiner beanspruchten Form einschränken, sondern ist lediglich für ausgewählte Ausführungsformen der Anmeldung repräsentativ.It should be understood that the components of the application, as generally described and illustrated in the figures herein, can be arranged and configured in a wide variety of different configurations. The detailed description of the embodiments is therefore not intended to limit the scope of protection of the application as claimed, but is merely representative of selected embodiments of the application.
Dem Durchschnittsfachmann leuchtet ohne Weiteres ein, dass die obigen Ausführungen mit Schritten in einer anderen Reihenfolge und/oder mit Hardware-Elementen in anderen Ausgestaltungen als den offenbarten ausgeführt werden kann. Obgleich die Anmeldung auf der Grundlage dieser bevorzugten Ausführungsformen beschrieben wurde, ist dem Fachmann darum klar, dass bestimmte Modifizierungen, Variationen und alternative Bauweisen möglich sind.One of ordinary skill in the art will readily appreciate that the above embodiments may be practiced using steps in a different order and/or using hardware elements in configurations other than those disclosed. Therefore, while the application has been described in terms of these preferred embodiments, those skilled in the art will recognize that certain modifications, variations, and alternative constructions are possible.
Obgleich bevorzugte Ausführungsformen der vorliegenden Anmeldung beschrieben wurden, versteht es sich, dass die beschriebenen Ausführungsformen nur veranschaulichend sind und dass der Schutzumfang der Anmeldung ausschließlich durch die beigefügten Ansprüche definiert wird, die vor dem Hintergrund der vollen Bandbreite ihrer Äquivalente und Modifizierungen (zum Beispiel Protokolle, Hardware-Vorrichtungen, Software-Plattformen usw.) zu interpretieren sind.While preferred embodiments of the present application have been described, it should be understood that the described embodiments are illustrative only and that the scope of the application is defined solely by the appended claims, which should be considered in light of the full breadth of their equivalents and modifications (e.g., protocols, hardware devices, software platforms, etc.).
Claims (10)
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/597,796 | 2019-10-09 | ||
US16/597,786 | 2019-10-09 | ||
US16/597,770 US11169795B2 (en) | 2019-10-09 | 2019-10-09 | Management of transport software updates |
US16/597,786 US11422792B2 (en) | 2019-10-09 | 2019-10-09 | Management of transport software updates |
US16/597,770 | 2019-10-09 | ||
US16/597,796 US11294662B2 (en) | 2019-10-09 | 2019-10-09 | Management of transport software updates |
PCT/US2020/055151 WO2021072324A1 (en) | 2019-10-09 | 2020-10-09 | Management of transport software updates |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112020004859T5 true DE112020004859T5 (en) | 2022-07-28 |
Family
ID=75437761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112020004859.4T Pending DE112020004859T5 (en) | 2019-10-09 | 2020-10-09 | UPDATE MANAGEMENT FOR TRANSPORT SOFTWARE |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP7376695B2 (en) |
CN (1) | CN114341801A (en) |
DE (1) | DE112020004859T5 (en) |
WO (1) | WO2021072324A1 (en) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0619699A (en) * | 1992-07-02 | 1994-01-28 | Toshiba Corp | Software release time estimating device and method |
JP4264254B2 (en) * | 2002-12-19 | 2009-05-13 | 株式会社小松製作所 | In-vehicle program rewrite control system |
WO2011135629A1 (en) * | 2010-04-28 | 2011-11-03 | 株式会社日立製作所 | Distribution management method of software in computer system, and computer system for distribution management of software |
US10185550B2 (en) * | 2016-09-28 | 2019-01-22 | Mcafee, Inc. | Device-driven auto-recovery using multiple recovery sources |
US10069860B1 (en) * | 2017-02-14 | 2018-09-04 | International Business Machines Corporation | Protection for computing systems from revoked system updates |
US10503427B2 (en) * | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
US10303460B2 (en) * | 2017-07-25 | 2019-05-28 | Aurora Labs Ltd. | Self-healing learning system for one or more vehicles |
JP6861615B2 (en) * | 2017-11-30 | 2021-04-21 | 株式会社日立製作所 | In-vehicle software distribution system, in-vehicle software distribution server, and in-vehicle software distribution method |
EP3743835B1 (en) * | 2018-01-25 | 2022-09-28 | Fortress Cyber Security, LLC | Secure storage of data and hashes via a distributed ledger system |
-
2020
- 2020-10-09 CN CN202080062979.9A patent/CN114341801A/en active Pending
- 2020-10-09 JP JP2022515514A patent/JP7376695B2/en active Active
- 2020-10-09 WO PCT/US2020/055151 patent/WO2021072324A1/en active Application Filing
- 2020-10-09 DE DE112020004859.4T patent/DE112020004859T5/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2022551560A (en) | 2022-12-12 |
JP7376695B2 (en) | 2023-11-08 |
WO2021072324A1 (en) | 2021-04-15 |
CN114341801A (en) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102020106368A1 (en) | SHARE VEHICLE DATA WITH INTERESTED PARTIES | |
US20230322114A1 (en) | Transport-based energy allocation | |
US11615200B2 (en) | Providing video evidence | |
US11755314B2 (en) | Management of transport software updates | |
DE102021123067A1 (en) | Secure means of transport data exchange | |
US11868764B2 (en) | Management of transport software updates | |
US11954952B2 (en) | Processing of accident report | |
DE112021003364T5 (en) | Demand-based power distribution | |
US11868757B2 (en) | Management of transport software updates | |
US20230118100A1 (en) | Wirelessly notifying a transport to provide a portion of energy | |
US11853358B2 (en) | Video accident reporting | |
US11571983B2 (en) | Distance-based energy transfer from a transport | |
DE102021109015A1 (en) | CARGO TRANSFER MANAGEMENT FOR A MEANS OF TRANSPORT | |
DE102021109009A1 (en) | LOAD IMPACT ON THE ENERGY OF A MEANS OF TRANSPORT | |
US11615381B2 (en) | Geo-fence responsibility creation and management | |
US20210061201A1 (en) | Adjustment of environment of transports | |
DE112020004859T5 (en) | UPDATE MANAGEMENT FOR TRANSPORT SOFTWARE | |
US11062605B1 (en) | Transport damage data gathering | |
US11788852B2 (en) | Sharing of transport user profile | |
US11388582B2 (en) | Providing media based on profile sharing | |
US20210291867A1 (en) | Transport safety | |
US20240257288A1 (en) | Transport user profile-based service | |
US11529918B2 (en) | Adjustment of environment of transports | |
DE112021003665T5 (en) | DYNAMIC ADJUSTMENT OF SAFETY CONTROLS IN DRIVING MODE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R083 | Amendment of/additions to inventor(s) | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0008600000 Ipc: G06F0021570000 |