WO2023036418A1 - Apparatus, method and computer program for transferring an execution of computational function blocks from a vehicle to a personal device - Google Patents

Apparatus, method and computer program for transferring an execution of computational function blocks from a vehicle to a personal device Download PDF

Info

Publication number
WO2023036418A1
WO2023036418A1 PCT/EP2021/074799 EP2021074799W WO2023036418A1 WO 2023036418 A1 WO2023036418 A1 WO 2023036418A1 EP 2021074799 W EP2021074799 W EP 2021074799W WO 2023036418 A1 WO2023036418 A1 WO 2023036418A1
Authority
WO
WIPO (PCT)
Prior art keywords
personal device
vehicle
function blocks
computational function
personal
Prior art date
Application number
PCT/EP2021/074799
Other languages
French (fr)
Inventor
Timo Lange
Stephan Max
Pernes Panta
Wolfgang Theimer
Original Assignee
Volkswagen Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Volkswagen Aktiengesellschaft filed Critical Volkswagen Aktiengesellschaft
Priority to PCT/EP2021/074799 priority Critical patent/WO2023036418A1/en
Publication of WO2023036418A1 publication Critical patent/WO2023036418A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Definitions

  • the present invention relates to an apparatus, methods, and a computer program for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle, and to a corresponding vehicle and personal device.
  • resources are limited in the vehicle due to constraints (such as cost, robustness, liability).
  • constraints such as cost, robustness, liability
  • the user may temporarily desire to extend the resources, e.g. by adding a memory stick etc.
  • HW and SW functions there is a tight linkage between HW and SW functions, such that ad-hoc additions cannot be used to add additional resources to the vehicle.
  • some software-based functionality can be offloaded into the cloud.
  • personal devices can be used in conjunction with the vehicles, with the personal devices being accessible via the displays of the vehicle (e.g., via Android Auto or Apple CarPlay, with the connections being provided via Bluetooth, WiFi, or the Universal Serial Bus).
  • US 2019/0073840 A1 relates to a motor vehicle with multiple control units being used to provide vehicle functionality.
  • a mobile terminal being coupled to the vehicle can be used as a control unit.
  • a mobile application is executed on a smartphone.
  • a secure tunnel is established between the mobile application and the vehicle.
  • the present invention is based on the insight, that personal devices, such as smartphones or tablet computers being carried by a driver or passenger of the vehicle, can be used to extend the resources of the vehicle. Instead of executing some software-based functionality on a computation device of the vehicle, the execution of the software-based functionality is transferred to the personal device. To decrease the implementation complexity, computational function blocks are used, which are encapsulated units that can be executed, in unmodified form by a computation device of the vehicle and by the personal device.
  • the computational function blocks, of which the execution is being transferred to the personal device are specifically selected, e.g., based on whether they benefit from sensors, data, or connectivity being available on the personal device, but not in the vehicle, or whether their performance is likely to degrade due to the transfer.
  • the transfer of the execution of the computational function block(s) is initiated based on a detection of the personal device being coupled with the vehicle.
  • Various examples of the present disclosure relate to an apparatus for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle.
  • the apparatus comprises at least one interface for communicating with the computation device of the vehicle and with the personal device.
  • the apparatus comprises one or more processors, configured to determine that the personal device is coupled with the vehicle.
  • the one or more processors are configured to select one or more computational function blocks being executed by the computation device of the vehicle.
  • the one or more processors are configured to transfer execution of the one or more selected computational function blocks to the personal device.
  • the resources of the personal device can be leveraged, without requiring an independent implementation of the functionality that is tailored to the personal device.
  • the utility of the transfer can be increased, as computational function blocks can be selected that particularly benefit from the resources provided by the personal device.
  • each computational function block is configured to be executed as a container within a runtime environment.
  • the same computational function block can be used in the vehicle and on the personal device.
  • the runtime environment of the computation device and of the personal device respectively, instead of integrating the runtime environment into the computational function block. This reduces overhead when multiple containers are executed in a runtime environment.
  • the one or more processors may be configured to transfer the execution of the one or more computational function blocks from a runtime environment of the computation device to a runtime environment of the personal device.
  • the containers may be transferred with reduced overhead, without requiring a transfer of the runtime environment.
  • the one or more processors may be configured to transfer the execution environment of the computation device with the one or more computational function blocks to the personal device.
  • the runtime environment to be transferred may include multiple containers. This reduces the overhead of transferring multiple computational function blocks, and also allows functionalities that are to be made available to all containers in the runtime environment to be made available once by the runtime environment. For example, a so- called software-defined network between the containers in the runtime environment can be provided in the runtime environment, and thus transferred to the personal device together with the runtime environment.
  • the one or more processors are configured to select the one or more computational function blocks based on at least one of a computational capability of the personal device, an access to sensor data of the personal device, an access to personal information stored on the personal device, and an access to a mobile communication network by the personal device.
  • the computational function block(s) may be selected based on the personal device-specific benefits that can be accessed by the computational function block(s) being transferred to the personal device.
  • Transferring the execution of the one or more selected computational function blocks may comprise transferring runtime data of the one or more selected computational function blocks.
  • a state of the computational function block may be preserved across the transfer.
  • the one or more computational function blocks to be executed by the personal device correspond to the one or more computational function blocks being executed by the computation device of the vehicle.
  • the same computational function block(s) may be executed by the computation device of the vehicle and by the personal device.
  • Various examples of the present disclosures relate to methods for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle, with one method being performed by the vehicle, and with the other method being performed by the mobile device.
  • a method for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle comprises determining that the personal device is coupled with the vehicle.
  • the method comprises selecting one or more computational function blocks being executed by the computation device of the vehicle.
  • the method comprises transferring execution of the one or more selected computational function blocks to the personal device.
  • the method may be performed by the vehicle.
  • a method for a personal device comprises receiving, by the personal device, a request for transferring the execution of one or more computational function blocks from a computation device of the vehicle to the personal device, from the vehicle.
  • the method comprises transferring, by the personal device, the execution of one or more computational function blocks to the personal device.
  • the method comprises hosting, by the personal device, the execution of the one or more computational function blocks.
  • the method is performed by the personal device.
  • the method may be used in conjunction with the method for transferring an execution of one or more computational function blocks to transfer the execution of the one or more computational function blocks to the personal device.
  • the entire process may be controlled by the vehicle.
  • each computational function block may be configured to be executed as a container within a runtime environment.
  • Hosting the execution of the one or more computational function blocks may comprise providing the runtime environment for the execution of the one or more computational function blocks.
  • the personal device may host the runtime environment, with the one or more computational function blocks being hosted within the runtime environment.
  • the runtime environment may be provided as part of an app (short for “application”) being launched on the personal device.
  • the method may be being performed by an application being installed on top of an operating system of the personal device.
  • the one or more computational function blocks may be hosted, as one or more containers, within a runtime environment, that it itself hosted within an application being executed by the personal device.
  • the personal device being configured to perform the method for the personal device.
  • the personal device may be one of a smartphone, a tablet computer, and a computation accelerator device.
  • Smartphones and tablet computers often have ample general processing power, in addition to access to personal information and to sophisticated sensors.
  • Computation accelerator devices may be used, as plug-in solutions, to extend the computational resources of the vehicle in an ad-hoc fashion.
  • Some examples further provide a system comprising the personal device, the apparatus for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the, and the computation device of the vehicle.
  • the computation device may be configured to provide access to one or more sensors and/or actuators of the vehicle being accessible to the computation device to the personal device. This enables the transfer of computational function blocks that rely on access to sensors and/or actuators of the vehicle.
  • the personal device and the computation device are each configured to provide an interface for accessing one or more sensors and/or actuators as an abstraction of the respective physical interfaces of the respective device, such that the interface for accessing the one or more sensors and/or actuators are accessible to the one or more computation function blocks in a uniform fashion regardless of the device being used to execute the one or more computational function blocks. Accordingly, the interface can be addressed uniformly by the runtime environment on the computation device and on the personal device. Thus, the computational function units, and also the respective runtime environments, can use the respective interfaces independently of where they are hosted.
  • Various examples further provide a computer program having a program code for performing at least one of the above methods, when the computer program is executed on a computer, a processor, or a programmable hardware component.
  • Fig. 1 a shows a block diagram of an example of an apparatus for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle;
  • Fig. 1 b shows a schematic diagram of an example of a vehicle comprising an apparatus for transferring an execution of one or more computational function blocks and a computation device, with the vehicle being coupled with a personal device;
  • Fig. 1c shows a flow chart of an example of a method for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle;
  • Fig. 1d shows a flow chart of an example of a method for a personal device
  • Figs. 2a and 2b show examples of a transfer of a computation function block from a computation device of a vehicle to a personal device; and Fig. 3 shows a schematic diagram of a computation device and a personal device.
  • Fig. 1a shows a block diagram of an example of an apparatus 10 for transferring an execution of one or more computational function blocks 20 from a computation device 30a of a vehicle to a personal device 30b being coupled with the vehicle.
  • the apparatus comprises at least one interface 12 for communicating with the computation device of the vehicle and with the personal device.
  • the apparatus further comprises one or more processors 14, which are coupled to the at least one interface 12.
  • the apparatus 10 further comprises one or more storage devices 16 also coupled to the one or more processors 14.
  • the one or more processors may be configured to provide the functionality of the apparatus, in conjunction with the at least one interface (for communicating and exchanging data) and/or using the one or more storage devices (for storing and retrieving data).
  • the one or more processors are configured to determine that the personal device 30b is coupled with the vehicle 100.
  • the one or more processors are configured to select one or more computational function 20 blocks being executed by the computation device 30a of the vehicle 100.
  • the one or more processors are configured to transfer execution of the one or more selected computational function blocks 20 to the personal device 200.
  • the apparatus 10 may be integrated in the vehicle.
  • Fig. 1 b shows a schematic diagram of an example of the vehicle 10 comprising the apparatus 10 and the computation device 30a, with the vehicle 100 being coupled with the personal device 30b.
  • the personal device 30a may comprise the apparatus 10.
  • Fig. 1 b also shows a system comprising the personal device 30b, the apparatus 10 and the computation device 30a of the vehicle.
  • Figs. 1a and 1b the proposed concept is shown with respect to an apparatus that is configured to transfer the execution of the one or more computational function blocks 20.
  • the proposed concept may also be implemented as a method, or as a combination of methods.
  • Fig. 1c shows a flow chart of an example of a corresponding method for transferring the execution of one or more computational function blocks from the computation device of the vehicle to the personal device being coupled with the vehicle.
  • the method comprises determining 110 that the personal device is coupled with the vehicle.
  • the method comprises selecting 120 one or more computational function blocks being executed by the computation device of the vehicle.
  • the method comprises transferring 130 execution of the one or more selected computational function blocks to the personal device.
  • the method may be performed by the vehicle, e.g., by the apparatus 10 of the vehicle.
  • Features described in connection with the apparatus 10 of Fig 1 a may likewise be applied to the corresponding method of Fig. 1c
  • the method may be used in conjunction with a second method, which is to be performed by the personal device.
  • Fig. 1d shows a flow chart of an example of a method for a personal device.
  • the method comprises receiving 140, by the personal device, a request for transferring the execution of one or more computational function blocks from the computation device of the vehicle to the personal device, from the vehicle.
  • the method comprises transferring 150, by the personal device, the execution of one or more computational function blocks to the personal device.
  • the method comprises hosting 160, by the personal device, the execution of the one or more computational function blocks.
  • the personal device 30b shown in Figs. 1 a and/or 1 b, or the personal device 30b shown in Fig. 2 may be configured to perform the method.
  • the personal device 30b may be one of a smartphone, a tablet computer, a wearable device (such as a smartwatch) and a computation accelerator device (such as a purpose-built accelerator card).
  • the personal device 30b may be a device that is personal to a single user, i.e., carried by a particular user.
  • the proposed concept is based on an apparatus, a method, and a computer program for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle.
  • the execution of the one or more computational function blocks may be performed for two reasons - to take advantage of the additional capabilities of the personal device, such as additional sensors, additional, personal data, and increased processing power, and to relieve the computation device when a high overall processing load burdens the computation device of the vehicle.
  • the personal device may be used, in an ad-hoc fashion, to provide additional resources for executing the one or more computational function blocks.
  • the personal device might not always be available, depending on the driver or passengers of the vehicle, and also based on other factors, such as a battery level of the personal device. Moreover, if the personal device is being coupled via a cellular mobile communication system, the cell coverage may also be a factor in determining whether it can be used to provide additional resources.
  • the vehicle and the personal device may be coupled using a wireless connection (e.g., WiFi, Bluetooth, vehicular small cell, cellular mobile communication system) or a wired connection (e.g., via the Universal Serial Bus or via another wired communication standard, such as Thunderbolt).
  • a wireless connection e.g., WiFi, Bluetooth, vehicular small cell, cellular mobile communication system
  • a wired connection e.g., via the Universal Serial Bus or via another wired communication standard, such as Thunderbolt.
  • the apparatus is configured to determine that the personal device 30b is coupled with the vehicle 100. Determining, that the personal device 30b is coupled with the vehicle, may trigger the subsequent selection process. In other words, the one or more computational function blocks may be selected in response to a detection that the personal device 30b is coupled with the vehicle.
  • the selection process for selecting the one or more computational function blocks, is at the core of the proposed concept.
  • the one or more computational function blocks may be selected based on the capabilities of the personal device, e.g., based on a match between the capabilities of the personal device and requirements of the one or more computational function blocks.
  • the one or more computational function blocks may be selected to take advantage of capabilities that the personal device provides in addition to, or with a higher fidelity than, the computation device of the vehicle.
  • the one or more processors may be configured to select the one or more computational function blocks based on at least one of a computational capability of the personal device, an access to sensor data of the personal device, an access to personal information stored on the personal device, and an access to a mobile communication network by the personal device.
  • the personal device may provide access to more fine-granular health sensor data of the person carrying the personal device or provide access to an outward-facing or inward-facing camera (e.g., when the personal device, such as a smartphone, is mounted to a holder being attached to the windshield).
  • the personal device may comprise personal media files, and other personal information, such as contact’s addresses. These kinds of personal information may be put to use if the one or more computational function blocks include a media player functionality or a navigation functionality, respectively.
  • An access to a mobile communication network being provided by the personal device may be used by a computational function block that enables sharing of images or videos being generated by the vehicle (e.g., by a security camera of the vehicle).
  • the one or more computational function blocks may be selected according to the computational capability of the personal device and based on a demand for such computational capability on the computation device of the vehicle.
  • the transfer of the execution of the computational function block(s) may be initiated.
  • This transfer relies on the implementation of the computational function block(s), and their portability.
  • the computational function blocks can be implemented by, or correspond to, so-called software containers.
  • One or more services can be encapsulated with all their dependencies in such a software container.
  • These containers are particularly known for use on servers and developer devices.
  • such containers may be provided by various container engines (Docker, Podman, Crio, ).
  • the present disclosure goes beyond the already known containers by making the container concept portable so that the containers, and thus the computational function blocks, can be dynamically transferred between the computation device and the personal device.
  • the present disclosure provides means to create portable containers that can be dynamically executed on different platforms, or to transfer a complete runtime (consisting of the container engine and service containers) to other platforms on the fly.
  • each computational function block represents a vehicle functionality that is implemented by software.
  • each computational function block is configured to provide a vehicle functionality of the vehicle.
  • each computational function block represents a software-implemented vehicle functionality.
  • each computational function block is encapsulated, i.e., it includes all program code and dependencies, to be executable within a runtime environment, regardless of the runtime environment being provided on the computation device or the personal device.
  • Abstract interfaces may be provided, by the respective devices, to access sensors/actuators, communication channels and host resources from within the runtime environment.
  • the computational function blocks can be implemented, for example, as software containers that are used in runtime environments that provide standardized and abstracted interfaces for the containers.
  • each computational function block may be designed to be executed as a container within a runtime environment.
  • both the computation device and the personal device may be configured to provide a runtime environment for the execution of containers.
  • the computational function block can be executed regardless of the device hosting the runtime environment.
  • the (exact) same computational function block (e.g., comprising the same code) may be executed by the computation device and the personal device.
  • the one or more computational function blocks to be executed by the personal device may correspond to (i.e., be the same as) the one or more computational function blocks being executed by the computation device of the vehicle.
  • the implementation of the one or more computational function blocks may be the same, regardless of whether they are executed on the computation device or the personal device.
  • the computation device and the personal device are each configured to host, and thus execute, the one or more computational function blocks.
  • the computation device and the personal device may be configured to host the runtime environment for the one or more computational function blocks, with the one or more computational function blocks being executed within the runtime environments.
  • hosting the execution of the one or more computational function blocks may comprise providing the runtime environment for the execution of the one or more computational function blocks.
  • the one or more computational function blocks may be hosted within an application being executed on the personal device.
  • the eon or more computational function blocks may be hosted independent of operating system functionality, e.g., within an application being provided by a manufacturer of the vehicle. Accordingly, the method of Fig. 1d may be performed by an application being installed on top of an operating system of the personal device.
  • the personal device, and the computation device may be configured to provide one or more interfaces for the one or more computational function blocks.
  • the personal device and the computation device may each be configured to provide an interface for accessing one or more sensors and/or actuators as an abstraction of the respective physical interfaces of the respective device.
  • the access to these resources may be virtualized, and be forwarded by the computation device.
  • the computation device may be configured to provide access to one or more sensors and/or actuators of the vehicle being accessible to the computation device to the personal device.
  • each computation device may be configured to provide at least a first interface (34 in Fig 3). to the runtime environment for communication with sensors and actuators, such as one or more sensors of the vehicle and/or one or more actuators of the vehicle.
  • Each computation device may further be configured to provide the runtime environment with a second interface for communication via a communication network (37, 37a-b in Fig. 3) and/or a third interface for accessing resources of the computation device (35 in Fig. 3).
  • the respective interfaces can be used, regardless of the platform, to access the respective resources.
  • access can be virtualized by forwarding the accesses between the different computation devices via the respective second interfaces of the computation devices.
  • the computation device may be configured to provide communication with sensors and actuators provided via the first interface of the computation device to the personal device via the second interface, so that the runtime environment of the personal device can access the sensors and actuators provided via the first interface of the computation device.
  • the respective interfaces can be implemented in such a way that access to the interfaces is as identical as possible, regardless of the device or runtime environment on which the respective computational function block is executed. Therefore, the first interface, the second interface, and/or the third interface may provide an abstraction of the physical interfaces of the respective computation device such that the first interface, the second interface, and/or the third interface are uniformly addressable to the runtime environment on each computation device. In other words, the respective interfaces can provide abstracted and standardized access regardless of the physical design of the respective interfaces in the devices.
  • the execution of the one or more computational function blocks is now transferred from the computation device to the personal device.
  • the term “transferring the execution” was chosen because, in some examples, the computational function blocks may already exist in different devices. What is transferred is the execution, i.e., which of the computation device and the personal device executes which computational function block.
  • transferring the execution of a computational function block may correspond to, or comprise, changing which of the computation device and the personal device is executing the computational function block.
  • runtime data of the computational function block may be transferred.
  • transferring the execution of the one or more selected computational function blocks may comprise transferring runtime data of the one or more selected computational function blocks.
  • the runtime data may be data stored by the computation device in the computational function block or in a memory resource of the computation device. Additionally or alternatively, the contents of a volatile memory used by the computational function block on the computation device may be transferred to the personal device.
  • FIGs. 2a and 2b show examples of a transfer of a computation function block from a computation device of a vehicle to a personal device.
  • the execution of the computational function block 20 is transferred from the runtime environment 32a of the computation device 30a to the runtime environment 32b of the personal device 30b.
  • the one or more processors may be configured to transfer the execution of the one or more computational function blocks from a runtime environment of the computation device to a runtime environment of the personal device.
  • another computational function block may remain in the runtime environment 32a of the personal device.
  • the runtime environment 32b of the personal device may already comprise a further computational function block.
  • the entire runtime environment may be transferred from the computation device to the personal device.
  • the one or more processors may be configured to transfer the execution environment (or multiple execution environments) of the computation device with the one or more computational function blocks (e.g., multiple computational function blocks) to the personal device.
  • the runtime environment to be transferred may comprise multiple computational function blocks/containers to be executed.
  • the same implementation is used on both the computation device and the personal device, accommodations may be made to leverage the respective potential of the devices.
  • the respective computational functional block is executed on the vehicle, a more direct access to vehicle sensors and/or actors may be available, so that a higher sensor refresh rate can be used.
  • the respective computational function block is executed on the personal device, other kinds of sensor data may be available, e.g., image sensor data, as seen from the dashboard, or health sensor data, which is not available to the computation device within the vehicle.
  • the one or more computational functional blocks may comprise a set of basic functionality that is identical for the computation device of the vehicle and for the vehicle, and a set of advanced functionality that is platform-dependent, i.e., different in computation device and the personal device.
  • the set of advanced functionality may be integrated within the computational function block, and included based on the platform the computational function block is executed on.
  • the set of advanced functionality may be provided by the runtime environment of the respective platform, e.g., by providing a drop-in functionality extension, offering higher resolution, refresh rate etc. depending on the platform.
  • the mechanism introduced in the present disclosure operates of the intersection of the use of software container-based functionality in vehicles and the interaction with local and remote sensor data. Examples may be compliant, for example, with the Open Container Initiative (OCI) runtime specification and/or image specification.
  • OCI Open Container Initiative
  • various aspects of the present disclosure may be implemented according to, or building upon, the OCI runtime specification.
  • the runtime commands may be used to tear down and initiate the respective containers in the runtime environment.
  • namespaces and devices may be used to implement the interfaces.
  • various aspects of the present disclosure may use or extend the communication standards for intra-vehicle access to sensors and actuators, such as the Controller Area Network Bus, CAN Bus or the Local Interconnect Network, LIN.
  • Examples may provide a bridge for providing local and/or remote access to the sensors and/or actuators via the interfaces provided to the runtime environment.
  • the integration of a runtime on personal devices is relevant for media and telecommunication standards (e.g. via IEEE (Institute of Electrical and Electronics Engineers), IETF (Internet Engineering Task Force) or ETSI (European Telecommunications Standards Institute)).
  • the at least one interface 12 may correspond to one or more inputs and/or outputs for receiving and/or transmitting information, which may be in digital (bit) values according to a specified code, within a module, between modules or between modules of different entities.
  • the at least one interface 12 may comprise interface circuitry configured to receive and/or transmit information.
  • the one or more processors 14 may be implemented using one or more processing units, one or more processing devices, any means for processing, such as a processor, a computer or a programmable hardware component being operable with accordingly adapted software.
  • the described function of the one or more processors 14 may as well be implemented in software, which is then executed on one or more programmable hardware components.
  • Such hardware components may comprise a general purpose processor, a Digital Signal Processor (DSP), a micro-controller, etc.
  • DSP Digital Signal Processor
  • the one or more storage devices 16 may comprise at least one element of the group of a computer readable storage medium, such as an magnetic or optical storage medium, e.g. a hard disk drive, a flash memory, Floppy-Disk, Random Access Memory (RAM), Programmable Read Only Memory (PROM), Erasable Programmable Read Only Memory (EPROM), an Electronically Erasable Programmable Read Only Memory (EEPROM), or a network storage.
  • a computer readable storage medium such as an magnetic or optical storage medium, e.g. a hard disk drive, a flash memory, Floppy-Disk, Random Access Memory (RAM), Programmable Read Only Memory (PROM), Erasable Programmable Read Only Memory (EPROM), an Electronically Erasable Programmable Read Only Memory (EEPROM), or a network storage.
  • a personal device can be used to host computational function blocks of a vehicle by providing a runtime environment for the computational function blocks.
  • the runtime environment is provided on the personal device, e.g. within an app of the vehicle manufacturer, that allows for the execution of arbitrary functionality.
  • This functionality can be transferred over from the vehicle, e.g. within a self- contained container being used to implement the computational function block.
  • the proposed concept uses personal resources (e.g. on smartphone), which means that privacy is ensured. Also, in contrast to cloud-based approaches, a low latency and high availability is enabled when using personal devices that are located in close proximity (e.g., within) the vehicle. Furthermore, the sensors available on the target device can be used to enrich the data available in the vehicle, i.e. local sensing can give more precise data (e.g. health app moved to smartwatch of passenger).
  • the work, and thus the assignment of computational functional blocks to computation device or personal device, may be split based on the capabilities of the respective devices. Accordingly, not all of the software-based functionality may be moved to the personal device, but a partial use of other devices / eco systems and/or a part-time use may be established.
  • the vehicle may excel at monitoring the environment (i.e. the context of vehicle) while the personal devices excel at monitoring their owners (e.g., if the personal device is a smartwatch with health-monitoring functionality).
  • the same functionality and implementation may be moved to a different device class, instead of using a second other implementation provided by the personal device.
  • a framework may be provided with basic functionality that can be executed on all devices, with a specialization of some functions running only on some devices. Functionality may be moved between devices, with a common basic functionality and a platform-specific additional functionality.
  • a generic runtime environment is provided on a personal device, such as a smartphone or tablet.
  • the runtime environment may be provided within a dedicated app.
  • Generic interfaces may be provided between the vehicle and other (personal) devices, e.g. via virtualized interfaces with hardware abstraction. Since the same computational function blocks are used across devices, the basic functionality may be the same on all platforms and implemented in the container. Platform-specific functionality may be enabled depending on the platform.
  • Personal devices with an integrated runtime can serve as “viral” media and software distribution channels, allowing to distribute service updates from home I office to vehicle or from vehicle to vehicle. The data distribution can happen completely offline since the personal devices are carrying the data.
  • personalized services or settings may be be concentrated in the runtime of personal devices, leaving the generic functionality in the central vehicle runtime(s). This allows a faster user change, e.g. for vehicle fleets like car sharing or other shared vehicle concepts.
  • FIG. 3 shows a schematic diagram of a computation device and a personal device. It illustrates an example of an integration of personal devices into a vehicle, and the use of abstracted communication interfaces.
  • both the personal device 30b and the computation device 30a of the vehicle comprise a runtime environment 32 that is executed on a runtime infrastructure 31 .
  • the two devices 30a; 30b each provide three types of interfaces to the outside world: an interface to the physical environment with sensors 34a and actuators 34b, which are abstracted by the environment connector 34, an interface to the respective other device, via input channels 39 and output channels 38, with an abstracted interface denoted communication connector 37b being arranged in a modem, which is accessed via communication multiplex 37a, and an interface to the resources 36 of the device (host), denoted Host Connector 35 (e.g., providing access to mass storage, special computation devices, ).
  • Host Connector 35 e.g., providing access to mass storage, special computation devices, .
  • the respective devices 30a; 30b further each comprise a resource monitor 33 to monitor the resources used by the runtime environment 32 and to communicate them to the apparatus via the communication connector.
  • the sensors/actuators 34a/34b may also be arranged outside the computation device.
  • the network connection between the vehicle and personal devices can use abstracted communication signals (i.e., communicate via abstracted interfaces, without having to consider the specifics of the wireless or wired connection between the vehicle and the personal device) since the communication happens between the (abstracted) runtimes.
  • abstracted communication signals i.e., communicate via abstracted interfaces, without having to consider the specifics of the wireless or wired connection between the vehicle and the personal device
  • wireless communication channels may be used, but wired connections are also possible, e.g. for additional computing nodes (e.g. in the shape of USB sticks) which can be installed into the car as a HW upgrade.
  • Direct communication between the runtime on personal devices and the vehicle may be used where possible (e.g. when the devices are inside the car). This ensures privacy and low latency.
  • wide area communication cellular connectivity
  • the personal device may also be used for functionality that requires a network connection with a large throughput or to transfer large amounts of data, e.g., for uploading image data or video data being generated by the vehicle.
  • Runtimes for container software may be used for loT, personal computing and server applications. Due to the general nature of container software most other fields of applications are possible (Smart Home, Smart City, Smart Office, .
  • Examples may further be or relate to a (computer) program including a program code to execute one or more of the above methods when the program is executed on a computer, processor, or other programmable hardware component.
  • steps, operations, or processes of different ones of the methods described above may also be executed by programmed computers, processors, or other programmable hardware components.
  • Examples may also cover program storage devices, such as digital data storage media, which are machine-, processor- or computer-readable and encode and/or contain machine-executable, processor-executable or computer-executable programs and instructions.
  • Program storage devices may include or be digital storage devices, magnetic storage media such as magnetic disks and magnetic tapes, hard disk drives, or optically readable digital data storage media, for example.
  • Other examples may also include computers, processors, control units, (field) programmable logic arrays ((F)PLAs), (field) programmable gate arrays ((F)PGAs), graphics processor units (GPU), application-specific integrated circuits (ASICs), integrated circuits (ICs) or system-on-a-chip (SoCs) systems programmed to execute the steps of the methods described above.
  • FPLAs field programmable logic arrays
  • F field) programmable gate arrays
  • GPU graphics processor units
  • ASICs application-specific integrated circuits
  • ICs integrated circuits
  • SoCs system-on-a-chip
  • aspects described in relation to a device or system should also be understood as a description of the corresponding method.
  • a block, device or functional aspect of the device or system may correspond to a feature, such as a method step, of the corresponding method.
  • aspects described in relation to a method shall also be understood as a description of a corresponding block, a corresponding element, a property or a functional feature of a corresponding device or a corresponding system.

Abstract

The present disclosure relates to an apparatus, methods, and a computer program for transferring an execution of one or more computational function blocks (20) from a computation device (30a) of a vehicle (100) to a personal device (30b) being coupled with the vehicle, and to a corresponding vehicle and personal device. The apparatus (10) comprises at least one interface (12) for communicating with the computation device of the vehicle and with the personal device. The apparatus comprises one or more processors (14), configured to determine that the personal device is coupled with the vehicle. The one or more processors are configured to select one or more computational function blocks being executed by the computation device of the vehicle. The one or more processors are configured to transfer execution of the one or more selected computational function blocks to the personal device.

Description

Description
Apparatus, Method and Computer Program for Transferring an Execution of Computational Function Blocks from a Vehicle to a Personal Device
The present invention relates to an apparatus, methods, and a computer program for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle, and to a corresponding vehicle and personal device.
In modern vehicles, an ever-increasing number of functions are provided by software. These functions are usually implemented by services that run on the vehicle's computation devices. The computing requirements of services running on a platform such as a vehicle usually grow over time, for example due to the increasing flow of data from sensors and actuators. In addition, the number of functions is increasing.
In general, resources are limited in the vehicle due to constraints (such as cost, robustness, liability). On a case-by-case basis, however, the user may temporarily desire to extend the resources, e.g. by adding a memory stick etc. However, in general, in vehicles, there is a tight linkage between HW and SW functions, such that ad-hoc additions cannot be used to add additional resources to the vehicle.
In some systems, some software-based functionality can be offloaded into the cloud. Furthermore, personal devices can be used in conjunction with the vehicles, with the personal devices being accessible via the displays of the vehicle (e.g., via Android Auto or Apple CarPlay, with the connections being provided via Bluetooth, WiFi, or the Universal Serial Bus).
In this case, some functionality that is generally also provided by the vehicle, such as navigation, media playback etc., can be run as a separate instance and implementation on personal devices, without the ability to use vehicle data.
However, offloading functionality into the cloud requires a continuously available communication link. Moreover, the bandwidth used for communicating, as well as the processing power, cost money. Local interfaces (CarPlay, Android Auto, WiFi, Bluetooth) only offer a low amount of integration of the personal device - in general, the functionality of the vehicle is duplicated, using a different implementation, by the personal device. Running the same functionality in a separate implementation on the personal device lacks access to vehicle data.
US 2019/0073840 A1 relates to a motor vehicle with multiple control units being used to provide vehicle functionality. In one example, a mobile terminal being coupled to the vehicle can be used as a control unit. However, there is no assignment process for specifically assigning functionality to the mobile terminal.
In US 2017/0257345 A1 a mobile application is executed on a smartphone. To interact with functionality of the vehicle, a secure tunnel is established between the mobile application and the vehicle.
There may be a desire for an improved concept for adding resources in an ad-hoc manner to a vehicle.
This desire is addressed by the subject-matter of the independent claims.
The present invention is based on the insight, that personal devices, such as smartphones or tablet computers being carried by a driver or passenger of the vehicle, can be used to extend the resources of the vehicle. Instead of executing some software-based functionality on a computation device of the vehicle, the execution of the software-based functionality is transferred to the personal device. To decrease the implementation complexity, computational function blocks are used, which are encapsulated units that can be executed, in unmodified form by a computation device of the vehicle and by the personal device. Moreover, to increase the utility of the integration, the computational function blocks, of which the execution is being transferred to the personal device, are specifically selected, e.g., based on whether they benefit from sensors, data, or connectivity being available on the personal device, but not in the vehicle, or whether their performance is likely to degrade due to the transfer. Finally, the transfer of the execution of the computational function block(s) is initiated based on a detection of the personal device being coupled with the vehicle.
Various examples of the present disclosure relate to an apparatus for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle. The apparatus comprises at least one interface for communicating with the computation device of the vehicle and with the personal device. The apparatus comprises one or more processors, configured to determine that the personal device is coupled with the vehicle. The one or more processors are configured to select one or more computational function blocks being executed by the computation device of the vehicle. The one or more processors are configured to transfer execution of the one or more selected computational function blocks to the personal device. By transferring the execution of the one or more computational functional blocks to be personal device, the resources of the personal device, potentially including additional sensors, data or communication capabilities can be leveraged, without requiring an independent implementation of the functionality that is tailored to the personal device. By selecting the one or more computational function blocks, the utility of the transfer can be increased, as computational function blocks can be selected that particularly benefit from the resources provided by the personal device.
In various examples, each computational function block is configured to be executed as a container within a runtime environment. By implementing the computational function blocks as containers to be executed in a runtime environment, the same computational function block can be used in the vehicle and on the personal device. Furthermore, by being designed as a container, it is possible to use the runtime environment of the computation device and of the personal device, respectively, instead of integrating the runtime environment into the computational function block. This reduces overhead when multiple containers are executed in a runtime environment.
For example, the one or more processors may be configured to transfer the execution of the one or more computational function blocks from a runtime environment of the computation device to a runtime environment of the personal device. Thus, the containers may be transferred with reduced overhead, without requiring a transfer of the runtime environment.
Alternatively, the one or more processors may be configured to transfer the execution environment of the computation device with the one or more computational function blocks to the personal device. In this case, the runtime environment to be transferred may include multiple containers. This reduces the overhead of transferring multiple computational function blocks, and also allows functionalities that are to be made available to all containers in the runtime environment to be made available once by the runtime environment. For example, a so- called software-defined network between the containers in the runtime environment can be provided in the runtime environment, and thus transferred to the personal device together with the runtime environment. In various examples, the one or more processors are configured to select the one or more computational function blocks based on at least one of a computational capability of the personal device, an access to sensor data of the personal device, an access to personal information stored on the personal device, and an access to a mobile communication network by the personal device. Thus, the computational function block(s) may be selected based on the personal device-specific benefits that can be accessed by the computational function block(s) being transferred to the personal device.
Transferring the execution of the one or more selected computational function blocks may comprise transferring runtime data of the one or more selected computational function blocks. Thus, a state of the computational function block may be preserved across the transfer.
In general, the one or more computational function blocks to be executed by the personal device correspond to the one or more computational function blocks being executed by the computation device of the vehicle. In other words, the same computational function block(s) may be executed by the computation device of the vehicle and by the personal device.
Various examples of the present disclosures relate to methods for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle, with one method being performed by the vehicle, and with the other method being performed by the mobile device.
A method for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle comprises determining that the personal device is coupled with the vehicle. The method comprises selecting one or more computational function blocks being executed by the computation device of the vehicle. The method comprises transferring execution of the one or more selected computational function blocks to the personal device. For example, the method may be performed by the vehicle.
A method for a personal device comprises receiving, by the personal device, a request for transferring the execution of one or more computational function blocks from a computation device of the vehicle to the personal device, from the vehicle. The method comprises transferring, by the personal device, the execution of one or more computational function blocks to the personal device. The method comprises hosting, by the personal device, the execution of the one or more computational function blocks. As is evident, the method is performed by the personal device. For example, the method may be used in conjunction with the method for transferring an execution of one or more computational function blocks to transfer the execution of the one or more computational function blocks to the personal device. Alternatively, the entire process may be controlled by the vehicle.
As mentioned above, each computational function block may be configured to be executed as a container within a runtime environment. Hosting the execution of the one or more computational function blocks may comprise providing the runtime environment for the execution of the one or more computational function blocks. In other words, the personal device may host the runtime environment, with the one or more computational function blocks being hosted within the runtime environment.
In general, personal devices, such as smartphones, are locked down for security purposes, with little or no possibility of hosting a generic runtime environment as part of the operating system of the personal device. Therefore, the runtime environment may be provided as part of an app (short for “application”) being launched on the personal device. Accordingly, the method may be being performed by an application being installed on top of an operating system of the personal device. In other words, the one or more computational function blocks may be hosted, as one or more containers, within a runtime environment, that it itself hosted within an application being executed by the personal device.
Some examples further provide a personal device being configured to perform the method for the personal device. For example, the personal device may be one of a smartphone, a tablet computer, and a computation accelerator device. Smartphones and tablet computers often have ample general processing power, in addition to access to personal information and to sophisticated sensors. Computation accelerator devices may be used, as plug-in solutions, to extend the computational resources of the vehicle in an ad-hoc fashion.
Some examples further provide a system comprising the personal device, the apparatus for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the, and the computation device of the vehicle.
For example, the computation device may be configured to provide access to one or more sensors and/or actuators of the vehicle being accessible to the computation device to the personal device. This enables the transfer of computational function blocks that rely on access to sensors and/or actuators of the vehicle.
In various examples, the personal device and the computation device are each configured to provide an interface for accessing one or more sensors and/or actuators as an abstraction of the respective physical interfaces of the respective device, such that the interface for accessing the one or more sensors and/or actuators are accessible to the one or more computation function blocks in a uniform fashion regardless of the device being used to execute the one or more computational function blocks. Accordingly, the interface can be addressed uniformly by the runtime environment on the computation device and on the personal device. Thus, the computational function units, and also the respective runtime environments, can use the respective interfaces independently of where they are hosted.
Various examples further provide a computer program having a program code for performing at least one of the above methods, when the computer program is executed on a computer, a processor, or a programmable hardware component.
Some examples of apparatuses and/or methods will be described in the following by way of example only, and with reference to the accompanying figures, in which
Fig. 1 a shows a block diagram of an example of an apparatus for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle;
Fig. 1 b shows a schematic diagram of an example of a vehicle comprising an apparatus for transferring an execution of one or more computational function blocks and a computation device, with the vehicle being coupled with a personal device;
Fig. 1c shows a flow chart of an example of a method for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle;
Fig. 1d shows a flow chart of an example of a method for a personal device;
Figs. 2a and 2b show examples of a transfer of a computation function block from a computation device of a vehicle to a personal device; and Fig. 3 shows a schematic diagram of a computation device and a personal device.
Some examples are now described in more detail with reference to the enclosed figures. However, other possible examples are not limited to the features of these embodiments described in detail. Other examples may include modifications of the features as well as equivalents and alternatives to the features. Furthermore, the terminology used herein to describe certain examples should not be restrictive of further possible examples.
Throughout the description of the figures same or similar reference numerals refer to same or similar elements and/or features, which may be identical or implemented in a modified form while providing the same or a similar function. The thickness of lines, layers and/or areas in the figures may also be exaggerated for clarification.
When two elements A and B are combined using an 'or', this is to be understood as disclosing all possible combinations, i.e. only A, only B as well as A and B, unless expressly defined otherwise in the individual case. As an alternative wording for the same combinations, "at least one of A and B" or "A and/or B" may be used. This applies equivalently to combinations of more than two elements.
If a singular form, such as “a”, “an” and “the” is used and the use of only a single element is not defined as mandatory either explicitly or implicitly, further examples may also use several elements to implement the same function. If a function is described below as implemented using multiple elements, further examples may implement the same function using a single element or a single processing entity. It is further understood that the terms "include", "including", "comprise" and/or "comprising", when used, describe the presence of the specified features, integers, steps, operations, processes, elements, components and/or a group thereof, but do not exclude the presence or addition of one or more other features, integers, steps, operations, processes, elements, components and/or a group thereof.
Fig. 1a shows a block diagram of an example of an apparatus 10 for transferring an execution of one or more computational function blocks 20 from a computation device 30a of a vehicle to a personal device 30b being coupled with the vehicle. The apparatus comprises at least one interface 12 for communicating with the computation device of the vehicle and with the personal device. The apparatus further comprises one or more processors 14, which are coupled to the at least one interface 12. Optionally, the apparatus 10 further comprises one or more storage devices 16 also coupled to the one or more processors 14. In general, the one or more processors may be configured to provide the functionality of the apparatus, in conjunction with the at least one interface (for communicating and exchanging data) and/or using the one or more storage devices (for storing and retrieving data). The one or more processors are configured to determine that the personal device 30b is coupled with the vehicle 100. The one or more processors are configured to select one or more computational function 20 blocks being executed by the computation device 30a of the vehicle 100. The one or more processors are configured to transfer execution of the one or more selected computational function blocks 20 to the personal device 200.
In general, the apparatus 10 may be integrated in the vehicle. Fig. 1 b shows a schematic diagram of an example of the vehicle 10 comprising the apparatus 10 and the computation device 30a, with the vehicle 100 being coupled with the personal device 30b. Alternatively, the personal device 30a may comprise the apparatus 10. Fig. 1 b also shows a system comprising the personal device 30b, the apparatus 10 and the computation device 30a of the vehicle.
In Figs. 1a and 1b, the proposed concept is shown with respect to an apparatus that is configured to transfer the execution of the one or more computational function blocks 20. However, the proposed concept may also be implemented as a method, or as a combination of methods. Fig. 1c shows a flow chart of an example of a corresponding method for transferring the execution of one or more computational function blocks from the computation device of the vehicle to the personal device being coupled with the vehicle. The method comprises determining 110 that the personal device is coupled with the vehicle. The method comprises selecting 120 one or more computational function blocks being executed by the computation device of the vehicle. The method comprises transferring 130 execution of the one or more selected computational function blocks to the personal device. For example, the method may be performed by the vehicle, e.g., by the apparatus 10 of the vehicle. Features described in connection with the apparatus 10 of Fig 1 a may likewise be applied to the corresponding method of Fig. 1c
The method may be used in conjunction with a second method, which is to be performed by the personal device. Fig. 1d shows a flow chart of an example of a method for a personal device. The method comprises receiving 140, by the personal device, a request for transferring the execution of one or more computational function blocks from the computation device of the vehicle to the personal device, from the vehicle. The method comprises transferring 150, by the personal device, the execution of one or more computational function blocks to the personal device. The method comprises hosting 160, by the personal device, the execution of the one or more computational function blocks. For example, the personal device 30b shown in Figs. 1 a and/or 1 b, or the personal device 30b shown in Fig. 2, may be configured to perform the method. For example, the personal device 30b may be one of a smartphone, a tablet computer, a wearable device (such as a smartwatch) and a computation accelerator device (such as a purpose-built accelerator card). For example, the personal device 30b may be a device that is personal to a single user, i.e., carried by a particular user.
The following description relates to the apparatus of Figs. 1 a and 1 b, to the corresponding method of Fig. 1c, and to the ancillary method of Fig ,1d, which may be used in conjunction with the apparatus of Figs. 1a and/or 1 b and the method of Fig. 1c. Features described in connection with the apparatus may likewise be included in the corresponding method(s).
The proposed concept is based on an apparatus, a method, and a computer program for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle. In general, the execution of the one or more computational function blocks may be performed for two reasons - to take advantage of the additional capabilities of the personal device, such as additional sensors, additional, personal data, and increased processing power, and to relieve the computation device when a high overall processing load burdens the computation device of the vehicle. The personal device may be used, in an ad-hoc fashion, to provide additional resources for executing the one or more computational function blocks. On the other hand, the personal device might not always be available, depending on the driver or passengers of the vehicle, and also based on other factors, such as a battery level of the personal device. Moreover, if the personal device is being coupled via a cellular mobile communication system, the cell coverage may also be a factor in determining whether it can be used to provide additional resources.
In general, the vehicle and the personal device may be coupled using a wireless connection (e.g., WiFi, Bluetooth, vehicular small cell, cellular mobile communication system) or a wired connection (e.g., via the Universal Serial Bus or via another wired communication standard, such as Thunderbolt). If personal device is coupled via a wired connection, it can be charged via the same connection.
The apparatus is configured to determine that the personal device 30b is coupled with the vehicle 100. Determining, that the personal device 30b is coupled with the vehicle, may trigger the subsequent selection process. In other words, the one or more computational function blocks may be selected in response to a detection that the personal device 30b is coupled with the vehicle.
The selection process, for selecting the one or more computational function blocks, is at the core of the proposed concept. For example, the one or more computational function blocks may be selected based on the capabilities of the personal device, e.g., based on a match between the capabilities of the personal device and requirements of the one or more computational function blocks. In particular, the one or more computational function blocks may be selected to take advantage of capabilities that the personal device provides in addition to, or with a higher fidelity than, the computation device of the vehicle. For example, the one or more processors may be configured to select the one or more computational function blocks based on at least one of a computational capability of the personal device, an access to sensor data of the personal device, an access to personal information stored on the personal device, and an access to a mobile communication network by the personal device. For example, the personal device may provide access to more fine-granular health sensor data of the person carrying the personal device or provide access to an outward-facing or inward-facing camera (e.g., when the personal device, such as a smartphone, is mounted to a holder being attached to the windshield). Furthermore, the personal device may comprise personal media files, and other personal information, such as contact’s addresses. These kinds of personal information may be put to use if the one or more computational function blocks include a media player functionality or a navigation functionality, respectively. An access to a mobile communication network being provided by the personal device may be used by a computational function block that enables sharing of images or videos being generated by the vehicle (e.g., by a security camera of the vehicle).
Lastly, the one or more computational function blocks may be selected according to the computational capability of the personal device and based on a demand for such computational capability on the computation device of the vehicle.
Once the one or more computation function blocks are selected, the transfer of the execution of the computational function block(s) may be initiated. This transfer relies on the implementation of the computational function block(s), and their portability. For example, the computational function blocks can be implemented by, or correspond to, so-called software containers. One or more services can be encapsulated with all their dependencies in such a software container. These containers are particularly known for use on servers and developer devices. For example, such containers may be provided by various container engines (Docker, Podman, Crio, ...). The present disclosure goes beyond the already known containers by making the container concept portable so that the containers, and thus the computational function blocks, can be dynamically transferred between the computation device and the personal device. The present disclosure provides means to create portable containers that can be dynamically executed on different platforms, or to transfer a complete runtime (consisting of the container engine and service containers) to other platforms on the fly.
In general, each computational function block represents a vehicle functionality that is implemented by software. In other words, each computational function block is configured to provide a vehicle functionality of the vehicle. In particular, each computational function block represents a software-implemented vehicle functionality. Also, each computational function block is encapsulated, i.e., it includes all program code and dependencies, to be executable within a runtime environment, regardless of the runtime environment being provided on the computation device or the personal device. Abstract interfaces may be provided, by the respective devices, to access sensors/actuators, communication channels and host resources from within the runtime environment. For this purpose, the computational function blocks can be implemented, for example, as software containers that are used in runtime environments that provide standardized and abstracted interfaces for the containers. Accordingly, each computational function block may be designed to be executed as a container within a runtime environment. In turn, both the computation device and the personal device may be configured to provide a runtime environment for the execution of containers. Thereby, by the proposed concept, the computational function block can be executed regardless of the device hosting the runtime environment. In particular, the (exact) same computational function block (e.g., comprising the same code) may be executed by the computation device and the personal device. The one or more computational function blocks to be executed by the personal device may correspond to (i.e., be the same as) the one or more computational function blocks being executed by the computation device of the vehicle. In various examples of the present disclosures, the implementation of the one or more computational function blocks may be the same, regardless of whether they are executed on the computation device or the personal device.
The computation device and the personal device are each configured to host, and thus execute, the one or more computational function blocks. For example, if the computational function blocks are implemented as containers, the computation device and the personal device may be configured to host the runtime environment for the one or more computational function blocks, with the one or more computational function blocks being executed within the runtime environments. In other words, hosting the execution of the one or more computational function blocks may comprise providing the runtime environment for the execution of the one or more computational function blocks. On the personal device, the one or more computational function blocks may be hosted within an application being executed on the personal device. In other words, the eon or more computational function blocks may be hosted independent of operating system functionality, e.g., within an application being provided by a manufacturer of the vehicle. Accordingly, the method of Fig. 1d may be performed by an application being installed on top of an operating system of the personal device.
To provide the computational function blocks with the uniform, abstracted access to resources, such as sensors and actors, the personal device, and the computation device, may be configured to provide one or more interfaces for the one or more computational function blocks. For example, the personal device and the computation device may each be configured to provide an interface for accessing one or more sensors and/or actuators as an abstraction of the respective physical interfaces of the respective device. Moreover, to provide the personal device with access to sensors and/or actors of the vehicle, the access to these resources may be virtualized, and be forwarded by the computation device. In other words, the computation device may be configured to provide access to one or more sensors and/or actuators of the vehicle being accessible to the computation device to the personal device.
For example, as shown in Fig. 3, each computation device may be configured to provide at least a first interface (34 in Fig 3). to the runtime environment for communication with sensors and actuators, such as one or more sensors of the vehicle and/or one or more actuators of the vehicle. Each computation device may further be configured to provide the runtime environment with a second interface for communication via a communication network (37, 37a-b in Fig. 3) and/or a third interface for accessing resources of the computation device (35 in Fig. 3). The respective interfaces can be used, regardless of the platform, to access the respective resources. If certain resources are not available in a device (e.g., in the personal device or in the computation device), access can be virtualized by forwarding the accesses between the different computation devices via the respective second interfaces of the computation devices. For example, the computation device may be configured to provide communication with sensors and actuators provided via the first interface of the computation device to the personal device via the second interface, so that the runtime environment of the personal device can access the sensors and actuators provided via the first interface of the computation device.
To support the portability of the computational function blocks, the respective interfaces can be implemented in such a way that access to the interfaces is as identical as possible, regardless of the device or runtime environment on which the respective computational function block is executed. Therefore, the first interface, the second interface, and/or the third interface may provide an abstraction of the physical interfaces of the respective computation device such that the first interface, the second interface, and/or the third interface are uniformly addressable to the runtime environment on each computation device. In other words, the respective interfaces can provide abstracted and standardized access regardless of the physical design of the respective interfaces in the devices.
Based on the assignment of computational function blocks to computation devices, the execution of the one or more computational function blocks is now transferred from the computation device to the personal device. In this context, the term “transferring the execution” was chosen because, in some examples, the computational function blocks may already exist in different devices. What is transferred is the execution, i.e., which of the computation device and the personal device executes which computational function block. In other words, transferring the execution of a computational function block may correspond to, or comprise, changing which of the computation device and the personal device is executing the computational function block. Moreover, in addition to the mere execution of the computational function block, runtime data of the computational function block may be transferred. Accordingly, transferring the execution of the one or more selected computational function blocks may comprise transferring runtime data of the one or more selected computational function blocks. In this regard, the runtime data may be data stored by the computation device in the computational function block or in a memory resource of the computation device. Additionally or alternatively, the contents of a volatile memory used by the computational function block on the computation device may be transferred to the personal device.
There are two general approaches for transferring the execution of the one or more computational function blocks from the computation device to the personal device - individually, or as part of a runtime environment. Figs. 2a and 2b show examples of a transfer of a computation function block from a computation device of a vehicle to a personal device.
In Fig. 2a, the execution of the computational function block 20 is transferred from the runtime environment 32a of the computation device 30a to the runtime environment 32b of the personal device 30b. Accordingly, the one or more processors may be configured to transfer the execution of the one or more computational function blocks from a runtime environment of the computation device to a runtime environment of the personal device. In this regard, another computational function block may remain in the runtime environment 32a of the personal device. Also, the runtime environment 32b of the personal device may already comprise a further computational function block.
Alternatively, as shown in Fig. 2b, the entire runtime environment may be transferred from the computation device to the personal device. In other words, the one or more processors may be configured to transfer the execution environment (or multiple execution environments) of the computation device with the one or more computational function blocks (e.g., multiple computational function blocks) to the personal device. For example, the runtime environment to be transferred may comprise multiple computational function blocks/containers to be executed.
While, in general, the same implementation is used on both the computation device and the personal device, accommodations may be made to leverage the respective potential of the devices. For example, if the respective computational functional block is executed on the vehicle, a more direct access to vehicle sensors and/or actors may be available, so that a higher sensor refresh rate can be used. If, on the other hand, the respective computational function block is executed on the personal device, other kinds of sensor data may be available, e.g., image sensor data, as seen from the dashboard, or health sensor data, which is not available to the computation device within the vehicle. Therefore, the one or more computational functional blocks may comprise a set of basic functionality that is identical for the computation device of the vehicle and for the vehicle, and a set of advanced functionality that is platform-dependent, i.e., different in computation device and the personal device. The set of advanced functionality may be integrated within the computational function block, and included based on the platform the computational function block is executed on. Alternatively or alternatively, the set of advanced functionality may be provided by the runtime environment of the respective platform, e.g., by providing a drop-in functionality extension, offering higher resolution, refresh rate etc. depending on the platform.
The mechanism introduced in the present disclosure operates of the intersection of the use of software container-based functionality in vehicles and the interaction with local and remote sensor data. Examples may be compliant, for example, with the Open Container Initiative (OCI) runtime specification and/or image specification. In particular, various aspects of the present disclosure may be implemented according to, or building upon, the OCI runtime specification. In particular, the runtime commands may be used to tear down and initiate the respective containers in the runtime environment. Furthermore, namespaces and devices may be used to implement the interfaces. Furthermore, various aspects of the present disclosure may use or extend the communication standards for intra-vehicle access to sensors and actuators, such as the Controller Area Network Bus, CAN Bus or the Local Interconnect Network, LIN. Examples may provide a bridge for providing local and/or remote access to the sensors and/or actuators via the interfaces provided to the runtime environment. Furthermore, the integration of a runtime on personal devices is relevant for media and telecommunication standards (e.g. via IEEE (Institute of Electrical and Electronics Engineers), IETF (Internet Engineering Task Force) or ETSI (European Telecommunications Standards Institute)).
The at least one interface 12 may correspond to one or more inputs and/or outputs for receiving and/or transmitting information, which may be in digital (bit) values according to a specified code, within a module, between modules or between modules of different entities. For example, the at least one interface 12 may comprise interface circuitry configured to receive and/or transmit information.
In embodiments the one or more processors 14 may be implemented using one or more processing units, one or more processing devices, any means for processing, such as a processor, a computer or a programmable hardware component being operable with accordingly adapted software. In other words, the described function of the one or more processors 14 may as well be implemented in software, which is then executed on one or more programmable hardware components. Such hardware components may comprise a general purpose processor, a Digital Signal Processor (DSP), a micro-controller, etc.
In at least some embodiments, the one or more storage devices 16 may comprise at least one element of the group of a computer readable storage medium, such as an magnetic or optical storage medium, e.g. a hard disk drive, a flash memory, Floppy-Disk, Random Access Memory (RAM), Programmable Read Only Memory (PROM), Erasable Programmable Read Only Memory (EPROM), an Electronically Erasable Programmable Read Only Memory (EEPROM), or a network storage.
More details and aspects of the apparatus, method, computer program, vehicle, computation device and personal device are mentioned in connection with the proposed concept or one or more examples described above or below (e.g. Fig. 3). The apparatus, method, computer program, vehicle, computation device and personal device may comprise one or more additional optional features corresponding to one or more aspects of the proposed concept or one or more examples described above or below. Various examples relate to a concept for providing a runtime (environment) on personal devices. As has become evident in connection with Figs. 1 a to 2b, a personal device can be used to host computational function blocks of a vehicle by providing a runtime environment for the computational function blocks. Thus, instead of duplicating the functionality of the vehicular function on the personal device, the runtime environment is provided on the personal device, e.g. within an app of the vehicle manufacturer, that allows for the execution of arbitrary functionality. This functionality can be transferred over from the vehicle, e.g. within a self- contained container being used to implement the computational function block.
The proposed concept uses personal resources (e.g. on smartphone), which means that privacy is ensured. Also, in contrast to cloud-based approaches, a low latency and high availability is enabled when using personal devices that are located in close proximity (e.g., within) the vehicle. Furthermore, the sensors available on the target device can be used to enrich the data available in the vehicle, i.e. local sensing can give more precise data (e.g. health app moved to smartwatch of passenger).
The work, and thus the assignment of computational functional blocks to computation device or personal device, may be split based on the capabilities of the respective devices. Accordingly, not all of the software-based functionality may be moved to the personal device, but a partial use of other devices / eco systems and/or a part-time use may be established. For example, the vehicle may excel at monitoring the environment (i.e. the context of vehicle) while the personal devices excel at monitoring their owners (e.g., if the personal device is a smartwatch with health-monitoring functionality). Thus, the same functionality and implementation may be moved to a different device class, instead of using a second other implementation provided by the personal device. A framework may be provided with basic functionality that can be executed on all devices, with a specialization of some functions running only on some devices. Functionality may be moved between devices, with a common basic functionality and a platform-specific additional functionality.
In the proposed concept, a generic runtime environment is provided on a personal device, such as a smartphone or tablet. For example, the runtime environment may be provided within a dedicated app. Generic interfaces may be provided between the vehicle and other (personal) devices, e.g. via virtualized interfaces with hardware abstraction. Since the same computational function blocks are used across devices, the basic functionality may be the same on all platforms and implemented in the container. Platform-specific functionality may be enabled depending on the platform. Personal devices with an integrated runtime can serve as “viral” media and software distribution channels, allowing to distribute service updates from home I office to vehicle or from vehicle to vehicle. The data distribution can happen completely offline since the personal devices are carrying the data. Furthermore, personalized services or settings may be be concentrated in the runtime of personal devices, leaving the generic functionality in the central vehicle runtime(s). This allows a faster user change, e.g. for vehicle fleets like car sharing or other shared vehicle concepts.
An integration of a runtime on a personal device into a vehicle runtime environment may be implemented as shown in Fig .3 Fig. 3 shows a schematic diagram of a computation device and a personal device. It illustrates an example of an integration of personal devices into a vehicle, and the use of abstracted communication interfaces.
As shown in Fig. 3, both the personal device 30b and the computation device 30a of the vehicle comprise a runtime environment 32 that is executed on a runtime infrastructure 31 . The two devices 30a; 30b each provide three types of interfaces to the outside world: an interface to the physical environment with sensors 34a and actuators 34b, which are abstracted by the environment connector 34, an interface to the respective other device, via input channels 39 and output channels 38, with an abstracted interface denoted communication connector 37b being arranged in a modem, which is accessed via communication multiplex 37a, and an interface to the resources 36 of the device (host), denoted Host Connector 35 (e.g., providing access to mass storage, special computation devices, ...). The respective devices 30a; 30b further each comprise a resource monitor 33 to monitor the resources used by the runtime environment 32 and to communicate them to the apparatus via the communication connector. In case of the computation device 30a of the vehicle, the sensors/actuators 34a/34b may also be arranged outside the computation device.
The network connection between the vehicle and personal devices can use abstracted communication signals (i.e., communicate via abstracted interfaces, without having to consider the specifics of the wireless or wired connection between the vehicle and the personal device) since the communication happens between the (abstracted) runtimes. For portable devices like smartphones, typically, wireless communication channels may be used, but wired connections are also possible, e.g. for additional computing nodes (e.g. in the shape of USB sticks) which can be installed into the car as a HW upgrade. Direct communication between the runtime on personal devices and the vehicle may be used where possible (e.g. when the devices are inside the car). This ensures privacy and low latency. In some cases, wide area communication (cellular connectivity) might be used when personal devices are far away or the local communication channel cannot be established.
In some cases, the personal device may also be used for functionality that requires a network connection with a large throughput or to transfer large amounts of data, e.g., for uploading image data or video data being generated by the vehicle.
There are various types of personal devices that can be used to augment the resources of the vehicle. In many cases, personal devices are close to and move with the person (like smartphone, wearables, ...). But personal devices can also be stationary (objects with fixed installations like home equipment, desktop PC, ...). These kinds of devices can also be used for the implementation of a runtime. Runtimes on stationary personal devices have the drawback that they need to be reached via a wide area communication network (cellular network typically) since the distance between vehicle and stationary devices varies greatly. This introduces additional latencies and cost for the communication.
The proposed concept can be integrated into vehicles that carry a generic runtime. Runtimes for container software may be used for loT, personal computing and server applications. Due to the general nature of container software most other fields of applications are possible (Smart Home, Smart City, Smart Office, ...).
The aspects and features described in relation to a particular one of the previous examples may also be combined with one or more of the further examples to replace an identical or similar feature of that further example or to additionally introduce the features into the further example.
Examples may further be or relate to a (computer) program including a program code to execute one or more of the above methods when the program is executed on a computer, processor, or other programmable hardware component. Thus, steps, operations, or processes of different ones of the methods described above may also be executed by programmed computers, processors, or other programmable hardware components. Examples may also cover program storage devices, such as digital data storage media, which are machine-, processor- or computer-readable and encode and/or contain machine-executable, processor-executable or computer-executable programs and instructions. Program storage devices may include or be digital storage devices, magnetic storage media such as magnetic disks and magnetic tapes, hard disk drives, or optically readable digital data storage media, for example. Other examples may also include computers, processors, control units, (field) programmable logic arrays ((F)PLAs), (field) programmable gate arrays ((F)PGAs), graphics processor units (GPU), application-specific integrated circuits (ASICs), integrated circuits (ICs) or system-on-a-chip (SoCs) systems programmed to execute the steps of the methods described above.
It is further understood that the disclosure of several steps, processes, operations, or functions disclosed in the description or claims shall not be construed to imply that these operations are necessarily dependent on the order described, unless explicitly stated in the individual case or necessary for technical reasons. Therefore, the previous description does not limit the execution of several steps or functions to a certain order. Furthermore, in further examples, a single step, function, process, or operation may include and/or be broken up into several sub-steps, - functions, -processes or -operations.
If some aspects have been described in relation to a device or system, these aspects should also be understood as a description of the corresponding method. For example, a block, device or functional aspect of the device or system may correspond to a feature, such as a method step, of the corresponding method. Accordingly, aspects described in relation to a method shall also be understood as a description of a corresponding block, a corresponding element, a property or a functional feature of a corresponding device or a corresponding system.
The following claims are hereby incorporated in the detailed description, wherein each claim may stand on its own as a separate example. It should also be noted that although in the claims a dependent claim refers to a particular combination with one or more other claims, other examples may also include a combination of the dependent claim with the subject matter of any other dependent or independent claim. Such combinations are hereby explicitly proposed, unless it is stated in the individual case that a particular combination is not intended. Furthermore, features of a claim should also be included for any other independent claim, even if that claim is not directly defined as dependent on that other independent claim.
List of reference signs
10 Apparatus
12 Interface
14 Processor
16 Storage device
20 Computational function block
30a Computation device
30b Personal device
31 Runtime infrastructure
32 Runtime environment
33 Resource monitor
34 Environment connector
34a Sensors
34b Actors
35 Host connector
36 Host resources
37 Network interface
37a Communication multiplexer
37b Communication connector
38 Output channels
39 Input channels
100 Vehicle
110 Determining that a personal device is coupled with a vehicle
120 Selectin one or more computational function blocks
130 Transferring execution of the computational function blocks
140 Receiving a request for transferring execution of one or more computational function blocks
150 Transferring the execution of the computational function blocks
160 Hosting the execution of the computational function blocks

Claims

Claims An apparatus (10) for transferring an execution of one or more computational function blocks from a computation device (30a) of a vehicle (100) to a personal device (30b) being coupled with the vehicle, the apparatus comprising: at least one interface (12) for communicating with the computation device of the vehicle and with the personal device; and one or more processors (14), configured to:
Determine that the personal device (30b) is coupled with the vehicle (100), Select one or more computational function (20) blocks being executed by the computation device (30a) of the vehicle (100), and
Transfer execution of the one or more selected computational function blocks (20) to the personal device (200). The apparatus according to claim 1 , wherein each computational function block is configured to be executed as a container within a runtime environment. The apparatus according to claim 2, wherein the one or more processors are configured to transfer the execution of the one or more computational function blocks from a runtime environment of the computation device to a runtime environment of the personal device. The apparatus according to claim 2, wherein the one or more processors are configured to transfer the execution environment of the computation device with the one or more computational function blocks to the personal device. The apparatus according to one of the claims 1 to 4, wherein the one or more processors are configured to select the one or more computational function blocks based on at least one of a computational capability of the personal device, an access to sensor data of the personal device, an access to personal information stored on the personal device, and an access to a mobile communication network by the personal device. The apparatus according to one of the claims 1 to 5, wherein transferring the execution of the one or more selected computational function blocks comprises transferring runtime data of the one or more selected computational function blocks. A method for transferring an execution of one or more computational function blocks from a computation device of a vehicle to a personal device being coupled with the vehicle, the method comprising:
Determining (110) that the personal device is coupled with the vehicle;
Selecting (120) one or more computational function blocks being executed by the computation device of the vehicle; and
Transferring (130) execution of the one or more selected computational function blocks to the personal device. A method for a personal device, the method comprising:
Receiving (140), by the personal device, a request for transferring the execution of one or more computational function blocks from a computation device of the vehicle to the personal device, from the vehicle;
Transferring (150), by the personal device, the execution of one or more computational function blocks to the personal device; and
Hosting (160), by the personal device, the execution of the one or more computational function blocks. The method according to claim 9, wherein each computational function block is configured to be executed as a container within a runtime environment, wherein hosting the execution of the one or more computational function blocks comprises providing the runtime environment for the execution of the one or more computational function blocks, and/or wherein the method is being performed by an application being installed on top of an operating system of the personal device. A personal device (30b) being configured to perform the method according to one of the claims 8 or 9. The personal device according to claim 10, wherein the personal device is one of a smartphone, a tablet computer, and a computation accelerator device. A system comprising the personal device (30b) according to one of the claims 10 or 11 , the apparatus (10) according to one of the claims 1 to 6 and the computation device (30a) of the vehicle. The system according to claim 12, wherein the computation device is configured to provide access to one or more sensors and/or actuators of the vehicle being accessible to the computation device to the personal device. The system according to one of the claims 12 or 13, wherein the personal device and the computation device are each configured to provide an interface for accessing one or more sensors and/or actuators as an abstraction of the respective physical interfaces of the respective device, such that the interface for accessing the one or more sensors and/or actuators are accessible to the one or more computation function blocks in a uniform fashion regardless of the device being used to execute the one or more computational function blocks. A computer program having a program code for performing the method of claim 7 or the method of one of the claims 8 or 9, when the computer program is executed on a computer, a processor, or a programmable hardware component.
PCT/EP2021/074799 2021-09-09 2021-09-09 Apparatus, method and computer program for transferring an execution of computational function blocks from a vehicle to a personal device WO2023036418A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/074799 WO2023036418A1 (en) 2021-09-09 2021-09-09 Apparatus, method and computer program for transferring an execution of computational function blocks from a vehicle to a personal device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/074799 WO2023036418A1 (en) 2021-09-09 2021-09-09 Apparatus, method and computer program for transferring an execution of computational function blocks from a vehicle to a personal device

Publications (1)

Publication Number Publication Date
WO2023036418A1 true WO2023036418A1 (en) 2023-03-16

Family

ID=77864594

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/074799 WO2023036418A1 (en) 2021-09-09 2021-09-09 Apparatus, method and computer program for transferring an execution of computational function blocks from a vehicle to a personal device

Country Status (1)

Country Link
WO (1) WO2023036418A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016210004A1 (en) * 2015-06-25 2016-12-29 Airbiquity Inc. Motor vehicle component to utilize a font or character resource of a separate electronic device
US20170257345A1 (en) 2016-03-01 2017-09-07 Ford Global Technologies, Llc Secure tunneling for connected application security
US20170279947A1 (en) * 2017-06-13 2017-09-28 Mediatek Inc. Hybrid Telematics Enhancements With In-Vehicle Mobile Devices And Smart Sensors
US20190073840A1 (en) 2016-03-11 2019-03-07 Audi Ag Motor Vehicle Having a Communication Unit for Multiple Control Units

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016210004A1 (en) * 2015-06-25 2016-12-29 Airbiquity Inc. Motor vehicle component to utilize a font or character resource of a separate electronic device
US20170257345A1 (en) 2016-03-01 2017-09-07 Ford Global Technologies, Llc Secure tunneling for connected application security
US20190073840A1 (en) 2016-03-11 2019-03-07 Audi Ag Motor Vehicle Having a Communication Unit for Multiple Control Units
US20170279947A1 (en) * 2017-06-13 2017-09-28 Mediatek Inc. Hybrid Telematics Enhancements With In-Vehicle Mobile Devices And Smart Sensors

Similar Documents

Publication Publication Date Title
US9146716B2 (en) Automatic resource balancing for multi-device applications
CN106687975B (en) Trusted execution environment extensible computing device interface
KR101782699B1 (en) Device and method for providing multimedia data in a motor vehicle
US9223559B2 (en) Information processing apparatus, electronic control unit, information processing method, and program
US20140359006A1 (en) Dynamic local function binding apparatus and method
KR102262926B1 (en) Vehicle software control device
WO2017019284A1 (en) Computer-implemented method and system for executing android apps natively on any environment
CN114661454A (en) Method and apparatus for implementing secure multi-coherence and pooled storage in edge networks
WO2022226511A1 (en) Devices, systems, and methods for developing vehicle architecture-agnostic software
CN113553178A (en) Task processing method and device and electronic equipment
CN109343970B (en) Application program-based operation method and device, electronic equipment and computer medium
CN111654539B (en) Cloud-protogenesis-based Internet of things operating system construction method and system and electronic equipment
WO2023036418A1 (en) Apparatus, method and computer program for transferring an execution of computational function blocks from a vehicle to a personal device
CN116257320B (en) DPU-based virtualization configuration management method, device, equipment and medium
US9065829B2 (en) Automatic resource balancing for multi-device applications
CN114422436B (en) Gateway, gateway control method, gateway control device, electronic equipment and storage medium
CN117916715A (en) Apparatus, method and computer program for transferring execution of a computing function block from a vehicle to a personal device
CN111752575B (en) Vehicle-mounted application updating method, device, equipment and storage medium
US20170286181A1 (en) Deployment and execution of sensing and computational tasks in a network of computing devices
CN113703906A (en) Data processing method, device and system
CN111797160A (en) Method, system and electronic equipment for sharing intelligent contract
CN114793227B (en) Vehicle-mounted software downloading method, electronic equipment and computer readable storage medium
CN110704767B (en) Page opening method and device, electronic equipment and storage medium
US20220334878A1 (en) Generating a shared virtual resource pool
EP4020876B1 (en) Methods, systems, articles of manufacture and apparatus to certify multi-tenant storage blocks or groups of blocks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21773592

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2021773592

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2021773592

Country of ref document: EP

Effective date: 20240227