FI20215895A1 - Transfer system for transferring streaming data, and method for transferring streaming data - Google Patents

Transfer system for transferring streaming data, and method for transferring streaming data Download PDF

Info

Publication number
FI20215895A1
FI20215895A1 FI20215895A FI20215895A FI20215895A1 FI 20215895 A1 FI20215895 A1 FI 20215895A1 FI 20215895 A FI20215895 A FI 20215895A FI 20215895 A FI20215895 A FI 20215895A FI 20215895 A1 FI20215895 A1 FI 20215895A1
Authority
FI
Finland
Prior art keywords
data
proxy
streaming
proxies
reducing
Prior art date
Application number
FI20215895A
Other languages
Finnish (fi)
Swedish (sv)
Inventor
Eemil Lagerspetz
Original Assignee
Lempea Oy
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 Lempea Oy filed Critical Lempea Oy
Priority to FI20215895A priority Critical patent/FI20215895A1/en
Priority to EP22860690.1A priority patent/EP4393137A1/en
Priority to PCT/FI2022/050544 priority patent/WO2023025988A1/en
Publication of FI20215895A1 publication Critical patent/FI20215895A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

A transfer system (1) for transferring streaming data is disclosed. The transfer system comprises data sources (10a, 10b) configured to generate first streaming data (101), data input systems (20a, 20b, 20c) configured to generate second streaming data (102) based on the first streaming data (101), data reducing systems (30a, 30b, 30c) configured to generate reduced data (103) based on the second streaming data (102), and a data output system (40). The transfer system comprises also a service mesh (70) with data input proxies (21a, 21b, 21c), data reducing proxies (31a, 31b, 31c), and a data output proxy (41). Data transfer in the transfer system (1) is arranged through said proxies into and from the data input systems (20a, 20b, 20c), the data reducing systems (30a, 30b, 30c) and the data output system (40). A related method (300) is also disclosed.

Description

TRANSFER SYSTEM FOR TRANSFERRING STREAMING DATA, AND METHOD FOR
TRANSFERRING STREAMING DATA
FIELD OF THE INVENTION
The present invention relates to a transfer system for transferring streaming data, and particularly to a system according to preamble of claim 1. The present invention relates also to a method for transferring streaming data, and particularly to a method according to preamble of claim 19.
BACKGROUND OF THE INVENTION
In a modern society, generating, transferring and processing streaming data is an important field of technology. The advent of the so-called internet of things (IoT) and its various implementations and applications generate massive amounts of streaming data. As will be defined in more detail later, streaming data is any digitally generated data that has no distinct ending, but instead is generated and processed incrementally and being meaningful without having access to all of — the data generated. Examples of streaming data vary and include, for example, a video feed of a surveillance or on-board camera, accurate position information of an autonomous car updated 100s of times in one second, and temperature readings of temperature sensors in remote places.
As the amounts of data generated in a unit of time can be massive (for example video feeds from one or more surveillance cameras), it is customary to attempt to process the streaming data into a reduced data. The reduced data is data which is significantly smaller (for example in terms of bytes) per unit of time than the streaming data in the same unit of time. For example, surveillance cameras
N mounted on maintenance cars may observe a street during the travel of the
S 25 maintenance car in a sequence of time, but the interesting data is not the video feed <Q in itself, but instead more manageable information, e.g. the number and physical
W location (coordinates or addresses) of anomalies viewed by the video camera. As ° an example of such anomalies are potholes at the paved surface of the street in any & moment of time at the route of the car. Said more manageable information, the
O 30 reduced information, may be stored and analyzed in more detail for example in 3 some central corporate computer system that generates data for decision making.
N With the so-called "edge technology”, it is customary to place processing
N the streaming data into reduced data as close to the origin of the streaming data as possible, as moving the sometimes massive streaming data consumes a lot of transfer system or transfer network bandwidth, that is, transfer capacity in a time unit.
One of the problems associated with the prior art is that while the edge technology makes it possible to process large quantities of data close to the source, deploying, configuring and managing data transfer and communications systems hasbeen problematic. In particular, allowing for a moving source of data has been challenging. This is because it is advantageous to keep the source of information as simple and off-the-shelf as possible. This makes it possible to transfer streaming information with known and inexpensive ways from the mobile data source.
However, the streaming data transfer system must be operated so that the — streaming data is processed (e.g. reduced) as close to the source as possible. This has been problematic especially when no edge-technology specific features are used also in the data source. Also the management of complex transfer systems is challenging if the system operates in a distributed fashion in different transfer network units. — BRIEF DESCRIPTION OF THE INVENTION
An object of the present invention is to provide a system and a method for an improved or even optimal placement of data processing of streaming data.
The objects of the invention are achieved by a transfer system and method for transfer which are characterized by what is stated in the independent claims 1 and 19, respectively.
The preferred embodiments of the invention are disclosed in the dependent claims.
As an aspect of the invention, a transfer system is disclosed. The transfer system comprises:
N 25 - data sources configured to generate first streaming data,
N - data input systems configured to generate second streaming data 3 based on the first streaming data,
O - data reducing systems configured to generate reduced data based on r the second streaming data, and & 30 - a data output system.
O The transfer system comprises a service mesh, and the service mesh
D comprises:
S - data input proxies,
N - data reducing proxies, and - a data output proxy.
The data sources are connected with the data input proxies through first streaming data channels. The data input proxies are connected with the data reducing proxies through second streaming data channels. The data reducing proxies are connected to the data output proxy through reduced data channels.
Each of the data input proxies is attached to one of the data input systems, each of the data reducing proxies is attached to one of the data reducing systems, and the data output proxy is attached to the data output system. Each of the data input proxies is configured to receive the first streaming data and feed the first streaming data to the data input system to which the data input proxy is — attached. Each of the data input proxies is configured to send the second streaming data generated by the data input system to which the data input proxy is attached.
Each of the data reducing proxies is configured to receive the second streaming data and feed the second streaming data to the data reducing system to which the data reducing proxy is attached. Each of the data reducing proxies is configured to send the reduced data generated by the data reducing system to which the data reducing proxy is attached.
The data output proxy is configured to receive the reduced data from each of the data reducing proxies through the reduced data channels, and the data output proxy is configured to feed the reduced data to the data output system,
The service mesh is configured to: - in operation A), route the first streaming data from each of the data sources to a receiving data input proxy by selecting, for each of the data sources, the receiving data input proxy for the first streaming data, the receiving data input proxy being one of the data input proxies, - in operation B), route the second streaming data from each of the data
N input proxies to a receiving data reducing proxy by selecting, for each of the data
N input proxies, the receiving data reducing proxy for the second streaming data, the 3 receiving data reducing proxy being one of the data reducing proxies, and
S - in operation C), transfer the reduced data from each of the data
E 30 reducing proxies to the data output proxy, the transfer system configured to store > the reduced data in the data output system as an output data characterizing the 3 first streaming data.
O Advantage of the transfer system is that the processing of streaming
S data can be automated and performed, by selecting the routing by the service mesh, efficiently.
Purpose of the transfer system is to allow an efficient and maintainable system for streaming data transfer to the data output system and reduce the streaming data for e.g. easier decision making and faster transfer such that the reduced data features the essential decision making details of the streaming data.
Each of the data input proxies may be configured to receive the first streaming data from the first streaming data channel.
Each of the data reducing proxies may be configured to receive the second streaming data from the second streaming data channel.
In an embodiment, at least one data source is mobile such that its physical location changes over time. The invention is suited well for mobile data — sources such as dash cams producing video streaming feed, installed in cars, e.g. maintenance cars.
In an embodiment, the first streaming data channels comprise a local area network, a wide area network, a wireless local area network, a cellular network, a computer bus, or any combination thereof. These are advantageous first streaming data channels with high efficiency for high streaming data bandwidth requirements.
In an embodiment, the second streaming data channels comprise a local area network, a wide area network, a computer bus, a computer memory, or any combination thereof. These are advantageous second streaming data channels — with high efficiency for high streaming data bandwidth requirements.
In an embodiment, the reduced data channels comprise a local area network, a wide area network, a wireless local area network, a mobile phone network, or any combination thereof. These are advantageous reduced data channels with suitable efficiency for reduced data bandwidth requirements.
In an embodiment, the transfer system is configured to select the
N receiving data input proxy in operation A) based on
N - network latency of each of the first streaming data channels; or 3 - network jitter of each of the first streaming data channels; or
S - round-trip time of each of the first streaming data channels; or
E 30 - bandwidth of each of the first streaming data channels; or > - data access rules of each of the first streaming data channels; or 3 - privacy policies of each of the first streaming data channels; or
O - physical locations of each of the data input proxies;
S -internet autonomous system related routing rules of each of the first — streaming data channels; or any combination of network latency, network jitter, round-trip time,
bandwidth, data access rules, privacy policies, internet autonomous system related routing rules of each of the first streaming data channels, or physical locations of each of the data input proxies. These figures of merit for network performance are well suited for characterising the network performance of each of the first 5 streaming data channels.
In an embodiment, the transfer system is configured to select the receiving data reducing proxy in operation B) based on: - network latency of each of the second streaming data channels; or - network jitter of each of the second streaming data channels; or - round-trip time of each of the second streaming data channels; or - bandwidth of each of the second streaming data channels; or - data access rules of each of the second streaming data channels; or - privacy policies of each of the second streaming data channels; or - physical locations of each of the data reducing proxies; or - internet autonomous system related routing rules of each of the second streaming data channels; or any combination of network latency, network jitter, round-trip time, bandwidth, data access rules, privacy policies, internet autonomous system related routing rules of each of the second streaming data channels, or physical locations of each of the data reducing proxies. These figures of merit for network performance are well suited for characterising the network performance of each of the second streaming data channels.
In an embodiment, in operation A), the transfer system is configured to select the receiving data input proxy based on traffic loads of each of the data input systems to which the receiving data input proxy is attached. Traffic load of the end
N point of the first streaming data channel is an advantageous factor when selecting
N the data input proxy. 3 In an embodiment, in operation B), the transfer system is configured to
S select the receiving data reducing proxy based on the computational loads of each
E 30 of the data reducing systems to which the receiving data reducing proxy is > attached. Computational load ofthe end point ofthe second streaming data channel 3 is an advantageous factor when selecting the data reducing proxy.
O [In an embodiment, each of the data sources comprises a video camera
S mounted on an automobile, the video camera arranged to view surroundings of the automobile, the first streaming data comprising video streaming data generated by the video camera. Video camera is an advantageous source of streaming data with a wealth of poorly organized information on the surroundings of the video camera, from and along the path the automobile travels or moves.
In an embodiment, the data input system comprises: - a cellular base station; or - a server computer unit.
These data input systems are advantageous data input systems for first streaming data capable of receiving data with wide bandwidth.
In an embodiment, the data reducing system comprises a server computer unit comprising one or more graphics processing units. A graphics — processing unit (GPU) is an advantageous unit for performing complex, especially pattern recognition related tasks.
In an embodiment, - each of the data sources comprises a video camera mounted on an automobile, the video camera arranged to view surroundings of the automobile, — the first streaming data comprising video streaming data generated by the video camera, - the data reducing system is configured to detect and characterize one or more anomalies in the surroundings, the one or more anomalies represented by the video streaming data, and - the reduced data comprises characterization of the one or more anomalies. This embodiment features an advantageous complete train of data transfer from data source (an automobile mounted camera, e.g. a so-called dashcam) to final representation of data in the data output system (characterization of the anomalies, for example the location and size of potholes in — the paved surfaces of streets).
N In an embodiment, the data input systems are arranged to run as
N containerized applications. Containerized applications are a systematic and robust 3 way to manage a life cycle of the data input systems.
S In an embodiment, the data reducing systems are arranged to run as
E 30 containerized applications. Containerized applications are a systematic and robust > way to manage a life cycle of the data reducing systems. 3 In an embodiment, the data output system is arranged to run as a
O containerized application. Containerized applications are a systematic and robust
S way to manage a life cycle of the data output systems.
In an embodiment, the transfer system is governed by a containerized application orchestration platform arranged to deploy and manage containerized applications. Containerized applications and their orchestration platforms are a systematic and robust way to manage the deployment and invocation of the entire transfer system.
In an embodiment, when, in operation A), the selection for the receiving data input proxy changes from a current receiving data input proxy to a new receiving data input proxy, both the current receiving data input proxy and the new receiving data input proxy being data input proxies, the new receiving data input proxy is configured to use network identity of the current receiving data input proxy for the first streaming data channel to receive the first streaming data from — the first streaming data channel. Because the data source may be configured with a static network address, e.g. a domain name, it is advantageous to change the recipient address to represent another data input system, as no further configuration for the data source is then needed. The data source can send the first streaming data to a same address. The data input system behind this address may — change, as governed by the service mesh.
In an embodiment, when, in operation A), the selection for the receiving data input proxy changes from a current receiving data input proxy to a new receiving data input proxy, both the current receiving data input proxy and the new receiving data input proxy being data input proxies, the new receiving data input proxy is configured to use network identity of the current receiving data input proxy for the first streaming data channel to receive the first streaming data from the first streaming data channel, the network identity being an internet domain name service (DNS) name. Because the data source may be configured with a static network address, e.g. a domain name, it is advantageous to change the recipient address to represent another data input system, as no further configuration for the
N data source is then needed. The data source can send first streaming data to a same
N address behind which the data input system changes, as governed by the service 3 mesh. The DNS name is a well-recognized system for establishing and operating an
S addressing system for data transfer in the internet.
E 30 As an aspect of the invention, a method for transferring streaming data > in a transfer system is disclosed. The method comprises 3 - providing, to the transfer system
O - data sources configured to generate first streaming data,
S - data input systems configured to generate second streaming data based on the first streaming data, - data reducing systems configured to generate reduced data based on the second streaming data, and - a data output system.
The method comprises providing, to the transfer system, a service mesh. The service mesh comprises: - data input proxies, - data reducing proxies, and - a data output proxy,
The method comprises the steps of: - connecting the data sources with the data input proxies — through first streaming data channels, - connecting the data input proxies with the data reducing proxies through second streaming data channels, - connecting the data reducing proxies with the data output proxy through reduced data channels, - attaching each of the data input proxies to one of the data input systems, - attaching each of the data reducing proxies to one of the data reducing systems, - attaching the data output proxy to the data output system, - receiving, by each of the data input proxies, the first streaming data, - feeding, by each of the data input proxies, the first streaming data to the data input system to which the data input proxy is attached, - sending, by each of the data input proxies, the second streaming data generated by the data input system to which the data input proxy
N is attached,
N - receiving, by each of the data reducing proxies, the second 3 streaming data,
S - feeding, by each of the data reducing proxies, the second
E 30 streaming data to the data reducing system to which the data reducing proxy is = attached, 3 - sending, by each of the data reducing proxies, the reduced
O data generated by the data reducing system to which the data reducing proxy is
S attached, - receiving, by the data output proxy, the reduced data from each of the data input proxies through the reduced data channels,
- feeding, by the data output proxy, the reduced data to the data output system, - routing, by the service mesh, the first streaming data from each of the data sources to a receiving data input proxy by selecting, for each of the data sources, the receiving data input proxy for the first streaming data, the receiving data input proxy being one of the data input proxies, - routing, by the service mesh, the second streaming data from each of the data input proxies to a receiving data reducing proxy by selecting, for each of the data input proxies, the receiving data reducing proxy for the second — streaming data, the receiving data reducing proxy being one of the data reducing proxies, and - transferring, by the service mesh, the reduced data from each of the data reducing proxies to the data output proxy, - storing, by the transfer system, the reduced data in the data output system as an output data characterizing the first streaming data. Advantage of the method is that the processing of streaming data can be automated and performed, by selecting the routing by the service mesh, efficiently.
Purpose of the method for transferring streaming data in a transfer system is to allow an efficient and maintainable method and related system for streaming data transfer to the data output system and reduce the streaming data for e.g. easier decision making and faster transfer such that the reduced data features the essential decision making details of the streaming data.
In an embodiment, the method comprises executing the steps of the method in a transfer system according to the transfer system and its embodiments — as defined above. Said transfer system is an advantageous system to execute the
N steps of the method.
N For the purposes of this text, a "data transfer system” and a "transfer 3 system” mean the same entity, as the primary purpose of the transfer system is to
O transfer data over at least one network and over network related entities.
E 30 For the purposes of this text, a “node” is a virtual or physical computing > machine configured to perform computation and related communications into, out 3 and within the virtual or physical machine. A node may be, for example, a
O computer, a server computer or a telecommunications unit. Two different nodes
S and different types of nodes (for example a data input node and a data reducing node) may be executed in the same physical computing machine.
For the purposes of this text, a “host” or “to host” means that a virtual or physical computing machine, for example a node, is configured to perform computation and related communications. A “host” may provide computing services and input and output services to enable operations of a system within the virtual or physical computing machine, for example the node.
For the purposes of this text, to “reduce data”, “reducing data”, “reduced data” and “process data into reduced data” means that a large unit of data is processed in a computing machine, for example a node or a data reducing system, and through said processing, a smaller, reduced unit of data is generated, the smaller unit representing some aspect or aspects of the information represented — in the large unit of data, said information relevant e.g. for decision making and originating e.g. from the first streaming data.
For example, artificial intelligence (AI) algorithms, neural network algorithms and machine learning algorithms may be used to reduce data, for reducing data, to generate the reduced data or to process data into the reduced — data.
As an example, the large unit of data may be a static image of a camera feed at a moment of time, and the smaller unit of data may be the number of persons detected in the static image of the camera feed, as detected by a pattern recognition algorithm. As another example, the large unit of data may be a measurement of a temperature over time, and the smaller unit of data may be a set of statistical variables of the temperature. As yet another example, the large unit of data may be a camera feed at a moment of time and the smaller unit of data may be the number of automobiles and their types (a lorry, a truck, a car, bike etc.) and register plates detected in the static image of the camera feed, as detected by a — pattern recognition algorithm.
N For the purposes of this text, “bandwidth” (also called “throughput” in
N the art) means the rate of data transfer across a given channel, measured in 3 bits/second (s). For example, wireless LAN technology specified in [EEE standard
S 802.11b has a bandwidth of 11 Mbit/s, M for mega.
E 30 Bandwidth BW may be measured, for example, as a ratio of RWIN and > RTT such that BW = RWIN/RTT, where RWIN is the TCP Receive Window (size), 3 and RTT is the measured round-trip time for the channel. 0 For the purposes of this text, to “deploy” or “deploying” means starting
S one or more computer programs in a node or computing machine and maintaining and monitoring performance of the one or more computer programs. The deployed computer program or programs may be one or more service computer programs,
which serve other service computer programs by taking input data as input, possibly provided by other service computer programs, and providing output data as output data.
For the purposes of this text, a “computer application”, an “application”, a “computer program” or a “program” mean the same thing, a set of computer instructions that, when executed in a computer, cause the computer to perform the instructions contained in the computer application or in the computer program.
For the purposes of this text, to “containerized” or “container” means an operating system virtualization, through which one or more applications are executed in isolated user spaces called containers, all using the same shared operating system (“OS”). A container is essentially a fully packaged and portable computing environment. The container comprises everything an application needs to run, that is, the container comprises binaries, libraries, configuration files and dependencies such that they are is encapsulated and isolated in its container. The container itself is abstracted away from the host operating system, with only limited access to underlying resources.
The containerized application may be run on various types of infrastructure or various types of nodes, within a server computer system, an embedded computer system, within virtual machines, and in the cloud.
Containerized applications are more efficient than pure virtualized applications as they do not need to set up a separate guest OS for each application.
This is because containerized applications share the same OS kernel. Because of this high efficiency, containerization is commonly used for packaging up the many individual microservices that make up modern apps.
Each container is an executable package of software, running on top of
N a host OS. A containerized application may comprise the top layer of a following
N stack of computing resources: The bottom computing resource layer comprises a 3 hardware of the infrastructure in question, including its CPU(s), disk storage and
O network interfaces. Above the bottom computing resource layer, the host OS layer
I 30 comprises the host OS and its kernel, the kernel arranged to serve as a bridge = between the software of the OS and the hardware of the underlying system. Above 3 the host OS layer, the container engine layer comprises a container engine and its 0 minimal guest OS, which are particular to the containerization technology being
S used. The top layer comprises binaries and libraries for each application and the applications themselves, running in their isolated user spaces that are also called the “containers”.
For the purposes of this text, “streaming data” means data that is continuously generated in at least one source. Streaming data is processed incrementally without having access to all of the data (which is a case for example with a downloaded data file). An example of streaming data is a video streaming data feed, fed from an internet web camera.
For the purposes of this text, “latency” or “network latency” means to the total end-to-end delay within a data transfer network, due to the combination of time of flight and processing delays within the transfer system, for example network adapters and switches.
For the purposes of this text, “jitter” or “network jitter” is the variance in network latency due to network state. The jitter is caused by two sources: changes in routes of the data transfer and congestion of the data transfer.
Congestion causes queuing delays at routers, and thus packets transferring the data will be delayed. Data transfer messages may be sent at a regular rate, but they may arrive at irregular intervals.
For the purposes of this text, a “round-trip time” (“RTT”) is the amount of time it takes for a data transfer to be sent between two communicating units, plus the amount of time it takes for acknowledgement of that signal having been received. This time delay includes propagation times for the paths between the two communication endpoints.
In the context of data transfer systems, the signal is typically a data packet. RTT is also known as “ping” time. RTT can be determined with the ping command of various operating systems. End-to-end delay is the length of time it takes for a signal to travel in one direction and is often approximated as half the
RTT.
N For the purposes of this text, the notion of something "being based”, for
N example "X is based on Y” means that Y may contribute to the derivation of X, but 3 also other factors in addition to Y, for example Y2 and Y3, may contribute to the
O derivation of X without expressly stating that Y2 and Y3 may also contribute to said
I 30 derivation. > For the purposes of this text, a graphics processing unit (GPU) is a 3 specialized electronic circuit designed to rapidly manipulate and alter memory to
O accelerate the creation of images in a frame buffer intended for output to a display
S device. GPUs are used in embedded systems, mobile phones, personal computers, workstations, and game consoles. Modern GPUs are very efficient at manipulating computer graphics and image processing. Their highly parallel structure makes them more efficient than general-purpose central processing units (CPUs) for algorithms that process large blocks of data in parallel. In a personal computer, a
GPU can be present on a video card or embedded on the motherboard. In certain
CPUs, GPUs are embedded on the CPU die.
For the purposes of this text, “transfer”, unless otherwise specified, means “data transfer”.
For the purposes of this text, “transferring”, unless otherwise specified, means “transferring data”.
For the purposes of this text, a local area network (LAN), means a — telecommunications system or a computer network that comprises cables, access points, switches, routers, and other components that enable devices to connect to internal servers, web servers, and other LANs via wide area networks.
For the purposes of this text, a wide area network (WAN), means a telecommunications system or a computer network that spans regions, countries, or even the World. A WAN may comprise computer networking technologies used to transmit data over long distances, and between different networks.
For the purposes of this text, a wireless LAN (WLAN) means a wireless computer network or telecommunications system that links two or more devices using wireless communication to form a local area network (LAN) within a limited area such as a home, school, computer laboratory, campus, or office building. This gives users the ability to move around within the area and remain connected to the network.
For the purposes of this text, an “internet autonomous system” means a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or
N domain that presents a common, clearly defined routing policy to the Internet.
N For the purposes of this text, "internet autonomous system related 3 routing rules” mean a set of rules that are configured to route the traffic of the first
S streaming data channel or the second streaming data channel within the said single
E 30 administrative entity or domain. This is advantageous as routing the traffic outside > the administrative entity, that is, domain or autonomous system might incur extra 3 costs or cut down the available bandwidth, or both.
O For the purposes of this text, “orchestration platform” means a
S collection of computer programs that automates many of the manual processes involved in deploying, managing, and scaling containerized applications. With an orchestration platform, groups of hosts running containers, may be combined, and the orchestration platform aids in manage said containerized applications that may be combined in one or more clusters. The clusters may span hosts across on- premise, public, private, or hybrid computing systems or computing clouds.
For the purposes of this text, a “service mesh” is a dedicated mesh of interconnected data processing entities for facilitating system-to-system communications between said systems using a mesh of proxies. A dedicated mesh of interconnected data processing entities can provide a number of benefits, such as providing observability into communications, providing secure connections, or automating retries and backoff for failed requests in the communication between — said interconnected data processing entities.
The service mesh comprises a network proxies paired or attached with each system in an application and a set of task management processes. The proxies may be interconnected through a "data plane” and the management processes are called the "control plane”. The data plane intercepts calls between different — services and processes them. The control plane coordinates the operations of proxies and provides an application programming interface and information access means to manipulate and observe the entire network.
For the purposes of this text, a “proxy” means a data transfer entity that acts as an intermediary between a client system, requesting a resource and a server providing that resource. Instead of connecting directly to a system that can fulfill a requested resource, such as data input system, data reducing system or a data output system, the client system may direct the request to the proxy, which evaluates the request and performs the required network transactions. This simplifies and limits the complexity of the request, and provides additional benefits such as load balancing, privacy, and security.
N For the purposes of this text, to “attach” or “attaching” a proxy means to
N configure the proxy and the related data transfer system block, like data reducing 3 system, data input system or data output system such that the proxy may transfer
S data to and from the said system, and perform as an intermediary related to said
E 30 — data transfer system block and the rest of the transfer system. > To “attach”, “be attached” or “attaching” the data input proxy to the data 3 input system may mean that the data input proxy and the data input system are
O configured to run in the same computer hardware or in the same cluster, and the
S data input system is configured to communicate with other parts of the transfer — system through the data input proxy.
To “attach”, “be attached” or “attaching” the data reducing proxy to the data reducing system may mean, for example, that the data reducing proxy and the data reducing system are configured to run in the same computer hardware or in the same cluster, and the data reducing system is configured to communicate with other parts of the transfer system through the data reducing proxy.
To “attach”, “be attached” or “attaching” the data output proxy to the data output system may also mean, for example, that the data output proxy and the data output system are configured to run in the same computer hardware or in the same cluster, and the data output system is configured to communicate with other parts of the transfer system through the data output proxy.
To “attach”, “be attached” or “attaching” the data input proxy to the data input system may mean that the data input proxy and the data input system are configured to run in the same computer hardware or in the same cluster, and the data input system is configured to communicate with other parts of the transfer system only through the data input proxy.
To “attach”, “be attached” or “attaching” the data reducing proxy to the data reducing system may mean, for example, that the data reducing proxy and the data reducing system are configured to run in the same computer hardware or in the same cluster, and the data reducing system is configured to communicate with other parts of the transfer system only through the data reducing proxy.
To “attach”, “be attached” or “attaching” the data output proxy to the data output system may also mean, for example, that the data output proxy and the data output system are configured to run in the same computer hardware or in the same cluster, and the data output system is configured to communicate with other parts of the transfer system only through the data output proxy.
N
N BRIEF DESCRIPTION OF THE DRAWINGS
3 The invention is described in detail by means of specific embodiments
O with reference to the enclosed drawings, in which
I Figures 1 - 2b show transfer systems according to embodiments of the
E 30 — currentinvention,
O Figure 3 shows an embodiment related a mobile data source,
D Figure 4 shows embodiments related to data input systems,
S Figure 5 shows an embodiment of a data reducing system,
N Figure 6 shows an embodiment related to a car mounted video camera generating first streaming data,
Figure 7 shows an embodiment of a moving data source changing physical location and changing the sending of the first streaming data from one data input system to another, and
Figure 8 shows an embodiment of the method aspect of the invention.
DETAILED DESCRIPTION OF THE INVENTION
In the following description, like numbers (for example 20) or labels (for example 10a) denote like elements.
Referring to Figure 1, a transfer system 1 for transferring streaming — data is shown. The transfer system 1 comprises data sources 10a, 10b configured to generate first streaming data 101, data input systems 20a, 20b, 20c configured to generate second streaming data 102 based on the first streaming data 101, and data reducing systems 30a, 30b, 30c configured to generate reduced data 103 based on the second streaming data 102.
The data source 10a, 10b may be e.g. a video camera comprising a device for mobile network communications, mounted on a moving vehicle like a car, van or bike.
The data source 10a, 10b may also be a sensor like temperature sensor or microphone mounted on a moving airborne vehicle, e.g. unmanned aerial vehicle, comprising a device for mobile network communications.
The transfer system 1 comprises a data output system 40. Purpose of the data output system 40 is to collect the reduced data 103 from the data reducing systems 30a, 30b, 30c for further analysis and output purposes.
The data output system 40 may be for example a computer system
N 25 running an enterprise resource planning software.
N The data output system 40 may be for example a web server arranged & to publish data over the internet. 0 The transfer system 1 comprises also a service mesh 70. The service
T mesh 70 comprises data input proxies 21a, 21b, 21c, data reducing proxies 31a,
E 30 31b,31c,andadata output proxy 41.
O As shown in Figure 2a, a service mesh 70 is a separate logical or physical
O entity that may be configured to perform the data transfer in the transfer system 1
N in channels of the transfer system 1 as specified in this text.
N The data input proxies 21a, 21b, 21c, the data reducing proxies 31a, 31b,31c,and the data output proxy 41 may be interconnected also directly to one another with direct communications channels to control the operation of the service mesh 70.
The direct communications channels may comprise e.g. internet technologies like WLAN or LAN equipment and their interconnections.
The data sources 10a, 10b are connected with the data input proxies 21a, 21b, 21c through first streaming data channels 201.
The data input proxies 21a, 21b, 21c are connected with the data reducing proxies 31a, 31b, 3 1c through second streaming data channels 202.
The data reducing proxies 31a, 31b, 31c are connected to the data output proxy 41 through reduced data channels 203.
Thus, the transfer of data in transfer system 1 is arranged through proxies that input and output data from the data processing system to which the proxies are attached.
Each of the data input proxies 21a, 21b, 21c is attached to one of the — data input systems 20a, 20b, 20c, as illustrated in Figure 2b.
Each of the data reducing proxies 31a, 31b, 31c is attached to one of the data reducing systems 30a, 30b, 30c, as also illustrated in Figure 2b.
The data output proxy 41 is attached to the data output system 40, as shown in Figure 2b.
As in Figure 2b, each of the data input proxies 21a, 21b, 21c is configured to receive the first streaming data 101 and feed the first streaming data 101 to the data input system 20a, 20b, 20c to which the data input proxy 21a, 21b, 21cis attached.
Each of the data input systems 20a, 20b, 20c may be configured to communicate with other parts of the transfer system 1 only through the data input
N proxies 21a, 21b, 21c attached to each of the data input systems 20a, 20b, 20c.
N Each of the data reducing systems 30a, 30b, 30c may be configured to 3 communicate with other parts of the transfer system 1 only through the data
S reducing proxies 31a, 31b, 31c attached to each of the data reducing systems 30a,
I 30 30b,30c. > The data output system 40 may be configured to communicate with 3 other parts of the transfer system 1 only through the data output proxy 41 attached
O to the data output system 40.
S As in Figure 2b, each of the data input proxies 21a, 21b, 21c is configured to send the second streaming data 102 generated by the data input system 20a, 20b, 20c to which the data input proxy 21a, 21b, 21c is attached.
As in Figure 2b, each of the data reducing proxies 31a, 31b, 31c is configured to receive the second streaming data 102 and feed the second streaming data 102 to the data reducing system 30a, 30b, 30c to which the data reducing proxy 31a, 31b, 31c is attached.
As in Figure 2b, each of the data reducing proxies 31a, 31b, 31c is configured to send the reduced data 103 generated by the data reducing system 30a, 30b, 30c to which the data reducing proxy 31a, 31b, 31c is attached.
The data output proxy 41 is configured, as indicated in Figure 2b, to receive the reduced data 103 from each of the data reducing proxies 31a, 31b, 31c — through the reduced data channels 203. Further, the data output proxy 41 is configured to feed the reduced data 103 to the data output system 40.
The purpose of the service mesh 70 is to govern the routing and transfer of data in the transfer system 1.
Thus, the service mesh 70 is configured, as operation A), to route the first streaming data 101 from each of the data sources 10a, 10b to a receiving data input proxy 21a, 21b, 21c by selecting, for each of the data sources 10a, 10b, the receiving data input proxy 21a, 21b, 21c for the first streaming data 101. The receiving data input proxy 21a, 21b, 21c is one of the data input proxies 21a, 21b, 21c.
The service mesh 70 is configured, as operation B), to route the second streaming data 102 from each of the data input proxies 21a, 21b, 21c to a receiving data reducing proxy 31a, 31b, 3 1c by selecting, for each of the data input proxies 21a, 21b, 21c, the receiving data reducing proxy 31a, 31b, 31c for the second streaming data 102. The receiving data reducing proxy 31a, 31b, 31c is one of the datareducing proxies 31a, 31b, 31c.
N The service mesh 70 is configured, as operation C), to transfer the
N reduced data 103 from each of the data reducing proxies 31a, 31b, 31c to the data 3 output proxy 41. The transfer system is configured to store the reduced data 103
O in the data output system 40 as an output data 104. The output data 104
I 30 characterizes the first streaming data 101. + In an embodiment, at least one data source 10a, 10b is mobile such that 3 its physical location changes over time.
O In an embodiment, the first streaming data channels 201 comprise a
S local area network, a wide area network, a wireless local area network or a cellular — network, a computer bus, or any combination thereof.
E.g. with a cellular network, it is possible to provide a mobile data source 10a, 10b.
In an embodiment, the second streaming data channels 202 comprise a local area network, a wide area network, a computer bus, or a computer memory, or any combination thereof.
In an embodiment, the reduced data channels 203 comprise a local area network, a wide area network, a wireless local area network or a mobile phone network, or any combination thereof.
In an embodiment, the transfer system 1 is configured to select the receiving data input proxy 21a, 21b, 21c based on based on network latency of the first streaming data channel 201, network jitter of the first streaming data channel 201, or round-trip time of the first streaming data channel 201. These time-based figures of merit are easy to measure with various network technologies.
The smaller (shorter) the network latency of the first streaming data channel 201, network jitter of the first streaming data channel 201, or round-trip time of the first streaming data channel 201 is, the more preferred the data input proxy 21a, 21b, 21c may be in the selection in operation A).
In an embodiment, the transfer system 1 is configured to select the receiving data input proxy 21a, 21b, 2 1c based on bandwidth of the first streaming data channel 201. The bandwidth BW of the first streaming data channel 201 may be measured, for example, as a ratio of RWIN and RTT such that BW = RWIN/RTT, where RWIN is the TCP Receive Window (size), and RTT is the measured round- trip time for the first streaming data channel 201.
The higher the bandwidth of the first streaming data channel 201 is, the more preferred the data input proxy 21a, 21b, 21c is in the selection in operation
A).
N In an embodiment, the transfer system 1 is configured to select the
N receiving data input proxy 21a, 21b, 21c based on data access rules of the first 3 streaming data channel 201. In addition or as an alternative to transfer speed and
O bandwidth related selection, in an embodiment, data must not be routed through
I 30 paths and network infrastructure that must not have access to the data. Thus, = efficiency of the first streaming data channel 201 may also comprise rules related 3 to data access as a data channel which is not feasible or even possible is clearly not 0 efficient.
S In an embodiment, the transfer system 1 is configured to select the receiving data input proxy 21a, 21b, 21c based on privacy policies of the first streaming data channel 201. In addition to transfer speed and bandwidth related selection, in an embodiment, data must not be routed through paths and network infrastructure that must not have access to the data due to privacy constraints.
For example, a video feed as the first streaming data 101 of a mobile dash cam mounted inside a car as the data source 10a, 10b may contain sensitive material that must be taken into account in the routing.
Thus, efficiency of first streaming data transfer may also comprise rules related to privacy, as a data channel which is not feasible or even possible is clearly not efficient. Efficiency of first streaming data transfer may also comprise rules related to data privacy.
In an embodiment, the transfer system 1 is configured to select the receiving data input proxy 21a, 21b, 21c based on the physical locations of each of the data input proxies 21a, 21b, 21c.
Each of the data input proxies 21a, 21b, 21c may be configured to maintain information on its physical location, e.g. geographical coordinates indicated by a global positioning system.
The data source 10a, 10b may be configured to maintain or measure the physical location of the data source, e.g. geographical coordinates indicated by a global positioning system.
The physical location of the data source 10a, 10b may change over time for a mobile data source 10a, 10b.
The shorter the physical distance between the physical location of the data input proxy 21a, 21b, 21c and the physical location of the data source 10a, 10b is, the more preferred the data input proxy 21a, 21b, 21c is in the selection of the receiving data input proxy 21a, 21b, 21c in operation A).
In an embodiment, the transfer system 1 is configured to select the
N receiving data input proxy 21a, 21b, 21c based on internet autonomous system
N related routing rules of the first streaming data channel 201. This is advantageous 3 as crossing the borders of the internet autonomous systems in data routing often
O incurs extra costs for data transfer or slows down the data transfer, or both.
I 30 In an embodiment, the transfer system 1 is configured to select the = receiving data input proxy 21a, 21b, 21c based on any combination of network 3 latency, network jitter, round-trip time, bandwidth, data access rules, privacy 0 policies, internet autonomous system related routing rules of the first streaming
S data channel 201, or physical locations of each of the data input proxies 21a, 21b, 21c.
In an embodiment, the transfer system 1 is configured to select the receiving data reducing proxy 31a, 31b, 31c based on network latency of the second streaming data channel 202, network jitter of the second streaming data channel 202, or round-trip time of the second streaming data channel 202. These time-based figures of merit are easy to measure with various network technologies.
The smaller (shorter) the network latency of the second streaming data channel 202, network jitter of the second streaming data channel 202, or round- trip time of the second streaming data channel 202 is, the more preferred the data reducing proxy 31a, 31b, 31c is in the selection in operation B).
In an embodiment, the transfer system 1 is configured to select the receiving data reducing proxy 31a, 31b, 31c based on bandwidth of the second streaming data channel 202. The bandwidth BW of the second streaming data channel 202 may be measured, for example, as a ratio of RWIN and RTT such that
BW = RWIN/RTT, where RWIN is the TCP Receive Window (size), and RTT is the measured round-trip time for the second streaming data channel 202.
The higher the bandwidth of the second streaming data channel 202 is, the more preferred the data reducing proxy 31a, 31b, 31c is in the selection in operation B).
In an embodiment, the transfer system 1 is configured to select the receiving data reducing proxy 31a, 31b, 31c based on data access rules of the second streaming data channel 202. In addition to transfer speed and bandwidth related selection, in an embodiment, data must not be routed through paths and network infrastructure that must not have access to the data. Thus, efficiency of second streaming data transfer may also comprise rules related to data access as a
N data channel which is not feasible or even possible is clearly not efficient.
N In an embodiment, the transfer system 1 is configured to select the 3 receiving data reducing proxy 31a, 31b, 31c based on privacy policies of the second
O streaming data channel 202. In addition or as an alternative to transfer speed and
I 30 bandwidth related selection, in an embodiment, data must not be routed through = paths and network infrastructure that must not have access to the data due to 3 privacy constraints. 0 For example, a video feed of a surveillance camera may contain
S sensitive material that must be taken into account in the routing.
Thus, efficiency of second streaming data transfer and the related location of the data reducing proxy 31a, 31b, 31c may also comprise rules related to privacy policies, as a data channel which is not feasible or even possible is clearly not efficient. Efficiency of second streaming data transfer may also comprise rules related to data privacy.
In an embodiment, the transfer system 1 is configured to select the receiving data reducing proxy 31a, 31b, 31c based on the physical locations of each of the data reducing proxies 31a, 31b, 31c.
The data reducing proxies 31a, 31b, 31c may be configured to maintain information on their physical locations, e.g. geographical coordinates indicated by a global positioning system.
The shorter the physical distance between the physical location of the data reducing proxy 31a, 31b, 31c and the physical location of the receiving data input proxy 21a, 21b, 21c is, the more preferred the data reducing proxy 31a, 31b, 31c is in the selection of the receiving data reducing proxy 31a, 31b, 31c in operation B).
In an embodiment, the transfer system 1 is configured to select the receiving data reducing proxy 31a, 31b, 31c based on internet autonomous system related routing rules of the second streaming data channel 202. This is advantageous as crossing the borders of the internet autonomous systems in data routing often incurs extra costs for data transfer or slows down the data transfer, or both.
In an embodiment, the transfer system 1 is configured to select the receiving data reducing proxy 31a, 31b, 31c based on any combination of network latency, network jitter, round-trip time, bandwidth, data access rules, privacy policies, internet autonomous system related routing rules of the second streaming data channel 202, or physical locations of each of the data reducing proxies 31a,
N 31b, 31c.
N In an embodiment, in operation A), the transfer system 1 is configured 3 to select the receiving data input proxy 21a, 21b, 21c based on traffic loads of each
O of the data input systems 20a, 20b, 20c to which the receiving data input proxy 21a,
I 30 21b, 21cis attached. As the service mesh 70 is connected to the data input systems + 20a, 20b, 20c through data input proxies 21a, 21b, 21c, the service mesh 70 may 3 be arranged to monitor the traffic loads to each of the data input systems 20a, 20b, 0 20c and make the selection on the receiving data input proxy 21a, 21b, 21c based
S on said monitoring.
In an embodiment, in operation B), the transfer system 1 is configured to select the receiving data reducing proxy 31a, 31b, 31c based on the computational loads of each of the data reducing systems 30a, 30b, 30c to which the receiving data reducing proxy 31a, 31b, 31c is attached. As the service mesh 70 is connected to the data reducing systems 30a, 30b, 30c through data reducing proxies 31a, 31b, 3 1c, the service mesh 70 may be arranged to monitor the traffic loads to each of the data reducing systems 30a, 30b, 30c and make the selection on the receiving data reducing proxy 31a, 31b, 31c based on said monitoring.
Referring next to Figure 3, in an embodiment, each of the data sources 10a, 10b comprises a video camera 11vi mounted on an automobile, the video camera 11lvi arranged to view surroundings 14 of the automobile, the first — streaming data 101 comprising video streaming data 101v generated by the video camera 11vi.
Based on the video streaming data 101v from the surroundings 14 and the transfer of data through the transfer system 1, information on the condition of the surroundings, e.g. road surface, may be generated in the transfer system 1.
In reference to Figure 4, in an embodiment, the data input system 20a, 20b comprises a cellular base station 22a.
In an embodiment, the data input system 20a, 20b comprises a server computer unit 22b.
Referring next to Figure 5, in an embodiment, the data reducing system 30a, 30b, 30c comprises a server computer unit 22bg comprising one or more graphics processing units 22g.
Referring next to Figure 6, in an embodiment, each of the data sources 10a, 10b comprises a video camera 11vi mounted on an automobile, the video camera 11vi arranged to view surroundings 14 of the automobile. The first streaming data 101 comprises video streaming data 101v generated by the video
N camera 11vi.
N The data reducing system 30a, 30b, 30c is configured to detect and 3 characterize one or more anomalies 15 in the surroundings 14. The one or more
S anomalies 15 are represented by the video streaming data 101v.
I 30 The one or more anomalies 15 may comprise potholes at the road > surface, cracks on the pawed surface of the road, large debris from the side of the 3 road like rocks or cobblestones, fallen cargo from other automobiles like parcels 0 etc.
S The detection and characterization of the one or more anomalies 15 may be performed with pattern recognition, artificial intelligence or machine learning algorithms, or any combination thereof.
Generalizing, the first streaming data 101 produced by the data source 10a may comprise a video feed of one or more anomalies 15.
The reduced data 103 may comprise characterization of the one or more anomalies 15.
The characterization may be performed with pattern recognition, artificial intelligence or machine learning algorithms, or any combination thereof.
In an embodiment, the data input systems 20a, 20b are arranged to run as containerized applications.
In an embodiment, the data reducing systems 30a, 30b are arranged to run as containerized applications.
In an embodiment, the data output system 40 is arranged to run as a containerized application.
In an embodiment, the transfer system 1 is governed by a containerized application orchestration platform arranged to deploy and manage containerized applications.
As illustrated in Figure 7, in an embodiment, when, in operation A) of the transfer system 1, the selection for the receiving data input proxy 21a, 21b, 21c changes from a current receiving data input proxy 21cu (shown at time t1) to a new receiving data input proxy 21n (shown at time t2, later than time t1), both the — current receiving data input proxy 21cu and the new receiving data input proxy 21n being data input proxies 21a, 21b, 21c, the new receiving data input proxy 21n is configured to use network identity 24 of the current receiving data input proxy 21cu for the first streaming data channel 201 to receive the first streaming data 101 from the first streaming data channel 201.
In other words, the network identity of the new receiving data input
N proxy 21n is configured to be the same as the network identity of the current
N receiving data input proxy 2 1cu for the first streaming data channel 201 to receive 3 the first streaming data 101 from the first streaming data channel 201.
O In an embodiment, when, in operation A), the selection for the receiving
I 30 data input proxy 21a, 21b, 21c changes from a current receiving data input proxy = 21cu toa new receiving data input proxy 21n, both the current receiving data input 3 proxy 21cu and the new receiving data input proxy 21n being data input proxies 0 21a, 21b, 21c, the new receiving data input proxy 21n is configured to use network
S identity 24 of the current receiving data input proxy 21cu for the first streaming — data channel 201 to receive the first streaming data 101 from the first streaming data channel 201, the network identity being an internet domain name service (abbreviated as "DNS”) name 24n.
Thus, the network identity 24 of the receiving data input proxy 21a, 21b, 21c may be an internet domain name service (DNS) name 24n.
As another aspect of the present invention, referring to Figure 8, a method 300 for transferring streaming data in a transfer system 1 is disclosed.
The method 300 comprises, as step 302, providing, to the transfer system 1 data sources 10a, 10b. The data sources 10a, 10b are configured to generate first streaming data 101. The method 300 comprises, also in step 302, — providing, to the transfer system 1 data input systems 20a, 20b, 20c which are configured to generate second streaming data 102 based on the first streaming data 101. The method 300 comprises, also in step 302, providing, to the transfer system 1, data reducing systems 30a, 30b, 30c configured to generate reduced data 103. The reduced data 103 is based on the second streaming data 102. The method 300 comprises, also in step 302, providing, to the transfer system 1, a data output system 40.
The method 300 comprises, as step 303, providing, to the transfer system 1, a service mesh 70. The service mesh 70 comprises data input proxies 21a, 21b, 21c, data reducing proxies 31a, 31b, 31c, and a data output proxy 41.
The method 300 comprises, in step 310, connecting the data sources 10a, 10b with the data input proxies 21a, 21b, 21c through first streaming data channels 201.
Said connection in step 310 may be performed e.g. with internet technologies. The first streaming data channel 201 may be e.g. an internet based connection.
N The method 300 comprises, in step 311, connecting the data input
N proxies 21a, 21b, 21c with the data reducing proxies 31a, 31b, 31c through second 3 streaming data channels 202.
O Said connection in step 311 may be performed e.g. with internet
I 30 technologies. The second streaming data channel 202 may be e.g. an internet based = connection. 3 The method 300 comprises, in step 312, connecting the data reducing 0 proxies 31a, 31b, 3 1c with the data output proxy 41 through reduced data channels
S 203.
Said connection in step 312 may be performed e.g. with internet technologies. The reduced data channel 203 may be e.g. an internet based connection.
The method 300 comprises, as step 320, attaching each of the data input proxies 21a, 21b, 21c to one of the data input systems 20a, 20b, 20c.
The method 300 may comprise, in step 320, e.g. configuring the data input system 20a, 20b, 20c to communicate with the transfer system 1 only through the data input proxy 21a, 21b, 21c attached to the respective data input system 20a, 20b, 20c.
The method 300 comprises, as step 321, attaching each of the data reducing proxies 31a, 31b, 31c to one of the data reducing systems 30a, 30b, 30c.
The attaching, in step 321, may comprise e.g. configuring the data reducing system 30a, 30b, 30c to communicate with the transfer system 1 only through the data reducing proxy 31a, 31b, 31c attached to the respective data reducing system 30a, 30b, 30c.
The method 300 comprises, as step 322, attaching the data output proxy 41 to the data output system 40.
The attaching, in step 322, may comprise e.g. configuring the data output system 40 to communicate with the transfer system 1 only through the data output proxy 41 to the data output system 40.
The method 300 comprises, as step 330, receiving, by each of the data input proxies 21a, 21b, 21c, the first streaming data 101.
The method 300 comprises, as step 331, feeding, by each of the data input proxies 21a, 21b, 21c, the first streaming data 101 to the data input system 20a, 20b, 20c to which the data input proxy 21a, 21b, 21c is attached.
N The method 300 comprises, as step 332, sending, by each of the data
N input proxies 21a, 21b, 21c, the second streaming data 102 generated by the data 3 input system 20a, 20b, 20c to which the data input proxy 21a, 21b, 21c is attached.
O The method 300 comprises, as step 340, receiving, by each of the data
I 30 reducing proxies 31a, 31b, 31c, the second streaming data 102. = The method 300 comprises, as step 341, feeding, by each of the data 3 reducing proxies 31a, 31b,31c, the second streaming data 102 to the data reducing 0 system 30a, 30b, 30c to which the data reducing proxy 31a, 31b, 31c is attached.
S The method 300 comprises, as step 342, sending, by each of the data reducing proxies 31a, 31b, 31c, the reduced data 103 generated by the data reducing system 30a, 30b, 30c to which the data reducing proxy 31a, 31b, 31c is attached.
The method 300 comprises, as step 350, receiving, by the data output proxy 41, the reduced data 103 from each of the data reducing proxies 31a, 31b, 3lc through the reduced data channels 203.
The method 300 comprises, as step 351, feeding, by the data output proxy 41, the reduced data 103 to the data output system 40.
The method 300 comprises, as step 360A, routing, by the service mesh 70, the first streaming data 101 from each of the data sources 10a, 10b to a receiving data input proxy 21a, 21b, 21c by selecting, for each of the data sources 10a, 10b, the receiving data input proxy 21a, 21b, 21c for the first streaming data 101, the receiving data input proxy 21a, 21b, 21c being one of the data input proxies 21a, 21b, 21c.
The method 300 comprises, as step 360B, routing, by the service mesh 70, the second streaming data 102 from each of the data input proxies 21a, 21b, 21c to a receiving data reducing proxy 31a, 31b, 31c by selecting, for each of the data input proxies 21a, 21b, 21c, the receiving data reducing proxy 31a, 31b, 31c for the second streaming data 102, the receiving data reducing proxy 31a, 31b, 31c being one of the data reducing proxies 31a, 31b, 31c.
The method 300 comprises, as step 360C, transferring, by the service mesh 70, the reduced data 103 from each of the data reducing proxies 31a, 31b, 31c to the data output proxy 41.
The method 300 comprises, as step 370, storing, by the transfer system 1, the reduced data 103 in the data output system 40 as an output data 104 characterizing the first streaming data 101.
N In an embodiment of the method 300, the method 300 comprises
N executing the steps of the method 300 in a transfer system 1 according to the 3 transfer system aspect and its embodiments of the invention as defined above in
O the present text.
E 30 The invention has been described above with reference to the examples > shown in the figures. However, the invention is in no way restricted to the above 3 examples but may vary within the scope of the claims.
O a
N

Claims (1)

1. A transfer system (1) for transferring streaming data, characterized in that the transfer system (1) comprises: - data sources (10a, 10b) configured to generate first streaming data (101), - data input systems (20a, 20b, 20c) configured to generate second streaming data (102) based on the first streaming data (101), - data reducing systems (30a, 30b, 30c) configured to generate reduced data (103) based on the second streaming data (102), - a data output system (40); - the transfer system (1) comprising a service mesh (70), the service mesh (70) comprising: - data input proxies (21a, 21b, 21c), - data reducing proxies (31a, 31b, 31c), -a data output proxy (41); - the data sources (10a, 10b) being connected with the data input proxies (21a, 21b, 21c) through first streaming data channels (201), - the data input proxies (21a, 21b, 21c) being connected with the data reducing proxies (31a, 31b, 31c) through second streaming data channels (202), - the data reducing proxies (31a, 31b, 31c) being connected to the data output proxy (41) through reduced data channels (203), - each of the data input proxies (21a, 21b, 21c) being attached to one of the data input systems (20a, 20b, 20c), - each of the data reducing proxies (31a, 31b, 31c) being attached to 3 one of the data reducing systems (30a, 30b, 30c), > - the data output proxy (41) being attached to the data output system ? (40), a - each of the data input proxies (21a, 21b, 21c) being configured to = 30 receive the first streaming data (101) and feed the first streaming data (101) to the so data input system (20a, 20b, 20c) to which the data input proxy (21a, 21b, 21c) is 2 attached, = - each of the data input proxies (21a, 21b, 21c) being configured to send S the second streaming data (102) generated by the data input system (20a, 20b, 20c) to which the data input proxy (21a, 21b, 21c) is attached,
- each of the data reducing proxies (31a, 31b, 31c) being configured to receive the second streaming data (102) and feed the second streaming data (102) to the data reducing system (30a, 30b, 30c) to which the data reducing proxy (31a, 31b, 31c) is attached, - each of the data reducing proxies (31a, 31b, 31c) being configured to send the reduced data (103) generated by the data reducing system (30a, 30b, 30c) to which the data reducing proxy (31a, 31b, 31c) is attached, - the data output proxy (41) being configured to receive the reduced data (103) from each of the data reducing proxies (31a, 31b, 31c) through the — reduced data channels (203), the data output proxy (41) being configured to feed the reduced data (103) to the data output system (40), - the service mesh (70) being configured to: - A) route the first streaming data (101) from each of the data sources (10a, 10b) to a receiving data input proxy (21a, 21b, 21c) by selecting, for each of — the data sources (10a, 10b), the receiving data input proxy (21a, 21b, 21c) for the first streaming data (101), the receiving data input proxy (21a, 21b, 21c) being one of the data input proxies (21a, 21b, 21c), - B) route the second streaming data (102) from each of the data input proxies (21a, 21b, 21c) to a receiving data reducing proxy (31a, 31b, 31c) by selecting, for each of the data input proxies (21a, 21b, 21c), the receiving data reducing proxy (31a, 31b, 31c) for the second streaming data (102), the receiving data reducing proxy (31a, 31b, 31c) being one of the data reducing proxies (31a, 31b, 31c), and - €) transfer the reduced data (103) from each of the data reducing proxies (31a, 31b, 31c) to the data output proxy (41), the transfer system (1) N configured to store the reduced data (103) in the data output system (40) as an N output data (104) characterizing the first streaming data (101). &
O 2. Atransfer system (1) according to claim 1, characterized in that I 30 atleast one data source (10a, 10b) is mobile such that its physical location changes = over time. 3
O 3. Atransfer system (1) according to claim 1 or 2,characterized in S that the first streaming data channels (201) comprise a local area network, a wide — area network, a wireless local area network or a cellular network, a computer bus, or any combination thereof.
4. A transfer system (1) according to any one of claims 1-3, characterized in that the second streaming data channels (202) comprise a local area network, a wide area network, a computer bus, or a computer memory, or any combination thereof.
5. A transfer system (1) according to any one of claims 1-4, characterized in that the reduced data channels (203) comprise a local area network, a wide area network, a wireless local area network or a mobile phone — network, or any combination thereof.
6. A transfer system (1) according to any one of claims 1-5, characterized in that the transfer system (1) is configured to select the receiving data input proxy (21a, 21b, 21c) in operation A) based on - network latency of each of the first streaming data channels (201); or - network jitter of each of the first streaming data channels (201); or - round-trip time of each of the first streaming data channels (201); or - bandwidth of each of the first streaming data channels (201); or - data access rules of each of the first streaming data channels (201); or - privacy policies of each of the first streaming data channels (201); or - physical locations of each of the data input proxies (21a, 21b, 21c); or -internet autonomous system related routing rules of each of the first streaming data channels (201); or any combination of network latency, network jitter, round-trip time, bandwidth, data access rules, privacy policies, internet autonomous system related N routing rules of each of the first streaming data channels (201), or physical N locations of each of the data input proxies (21a, 21b, 21c). &
O 7. A transfer system (1) according to any one of claims 1-6, I 30 characterized in that the transfer system (1) is configured to select the = receiving data reducing proxy (31a, 31b, 31c) in operation B) based on: 3 - network latency of each of the second streaming data channels (202); 0 or S - network jitter of each of the second streaming data channels (202); or - round-trip time of each of the second streaming data channels (202); or
- bandwidth of each of the second streaming data channels (202); or - data access rules of each of the second streaming data channels (202); or - privacy policies of each of the second streaming data channels (202); or - physical locations of each the data reducing proxies (31a, 31b, 31c); or - internet autonomous system related routing rules of each of the second streaming data channels (202); or any combination of network latency, network jitter, round-trip time, bandwidth, data access rules, privacy policies, internet autonomous system related routing rules of each of the second streaming data channels (202), or physical locations of each of the data reducing proxies (31a, 31b, 31c).
8. A transfer system (1) according to any one of claims 1 - 7, characterized in that in operation A), the transfer system (1) is configured to select the receiving data input proxy (21a, 21b, 21c) based on traffic loads of each of the data input systems (20a, 20b, 20c) to which the receiving data input proxy (21a, 21b, 21c) is attached.
9. A transfer system (1) according to any one of claims 1 - 8, characterized in that in operation B), the transfer system (1) is configured to select the receiving data reducing proxy (31a, 31b, 31c) based on the computational loads of each of the data reducing systems (30a, 30b, 30c) to which the receiving data reducing proxy (31a, 31b, 31c) is attached. N 10. A transfer system (1) according to any one of claims 1 - 9, N characterized in that each of the data sources (10a, 10b) comprises a video 3 camera (11vi) mounted on an automobile, the video camera (11vi) arranged to S view surroundings (14) of the automobile, the first streaming data (101) E 30 comprising video streaming data (101v) generated by the video camera (11vi). a 3 11. A transfer system (1) according to any one of claims 1 - 10, O characterized in that the data input system (20a, 20b) comprises: S - a cellular base station (22a); or - a server computer unit (22b).
12. A transfer system (1) according to any one of claims 1 - 11, characterized in that the data reducing system (30a, 30b, 30c) comprises a server computer unit (22bg) comprising one or more graphics processing units (22g).
13. A transfer system (1) according to any one of claims 1 - 12, characterized in that: - each of the data sources (10a, 10b) comprises a video camera (11vi) mounted on an automobile, the video camera (llvi) arranged to view surroundings (14) of the automobile, the first streaming data (101) comprising video streaming data (101v) generated by the video camera (11vi), - the data reducing system (30a, 30b, 30c) is configured to detect and characterize one or more anomalies (15) in the surroundings (14), the one or more anomalies (15) represented by the video streaming data (101v), and - the reduced data (103) comprises characterization of the one or more anomalies (15).
14. A transfer system (1) according to any one of claims 1 - 13, characterized in that the data input systems (20a, 20b) are arranged to run as — containerized applications.
15. A transfer system (1) according to any one of claims 1 - 14, characterized in that the data reducing systems (30a, 30b) are arranged to run as containerized applications. N 16. A transfer system (1) according to any one of claims 1 - 15, N characterized in that the data output system (40) is arranged to run as a 3 containerized application. N E 30 17. A transfer system (1) according to any one of claims 1 - 16, > characterized in that the transfer system (1) is governed by a containerized 3 application orchestration platform arranged to deploy and manage containerized O applications. S N 35 18. A transfer system (1) according to any one of claims 1 - 17, characterized in that:
- when, in operation A), the selection for the receiving data input proxy (21a, 21b, 21c) changes from a current receiving data input proxy (21cu) to a new receiving data input proxy (21n), both the current receiving data input proxy (21cu) and the new receiving data input proxy (21n) being data input proxies (21a, 21b,21c), the new receiving data input proxy (21n) is configured to use network identity (24) of the currentreceiving data input proxy (2 1cu) for the first streaming data channel (201) to receive the first streaming data (101) from the first streaming data channel (201); or - when, in operation A), the selection for the receiving data input proxy (21a, 21b, 21c) changes from a current receiving data input proxy (21cu) to a new receiving data input proxy (21n), both the current receiving data input proxy (21cu) and the new receiving data input proxy (21n) being data input proxies (21a, 21b, 21c), the new receiving data input proxy (21n) is configured to use network identity (24) of the current receiving data input proxy (21cu) for the first streaming data channel (201) to receive the first streaming data (101) from the first streaming data channel (201), the network identity being an internet domain name service name (24n).
19. A method (300) for transferring streaming data in a transfer system (1),characterized in that the method (300) comprises - (302) providing, to the transfer system (1): - data sources (10a, 10b) configured to generate first streaming data (101), - data input systems (20a, 20b, 20c) configured to generate second streaming data (102) based on the first streaming data (101), N - data reducing systems (30a, 30b, 30c) configured to generate N reduced data (103) based on the second streaming data (102), 3 - a data output system (40); O - (303) providing, to the transfer system (1), a service mesh (70), the I 30 — service mesh (70) comprising: = - data input proxies (21a, 21b, 21c), 3 - data reducing proxies (31a, 31b, 31c), 0 - a data output proxy (41); S - the method (300) comprising the steps of: - (310) connecting the data sources (10a, 10b) with the data input proxies (21a, 21b, 21c) through first streaming data channels (201),
- (311) connecting the data input proxies (21a, 21b, 21c) with the data reducing proxies (31a, 31b, 31c) through second streaming data channels (202),
- (312) connecting the data reducing proxies (31a, 31b, 31c) with the data output proxy (41) through reduced data channels (203),
- (320) attaching each of the data input proxies (21a, 21b, 21c) to one of the data input systems (20a, 20b, 20c),
- (321) attaching each of the data reducing proxies (31a, 31b, 31c) to one of the data reducing systems (30a, 30b, 30c),
- (322) attaching the data output proxy (41) to the data output system (40),
- (330) receiving, by each of the data input proxies (21a, 21b, 21c), the first streaming data (101),
- (331) feeding, by each of the data input proxies (21a, 21b, 21c), the
— first streaming data (101) to the data input system (20a, 20b, 20c) to which the data input proxy (21a, 21b, 21c) is attached,
- (332) sending, by each of the data input proxies (21a, 21b, 21c), the second streaming data (102) generated by the data input system (20a, 20b, 20c) to which the data input proxy (21a, 21b, 21c) is attached,
- (340) receiving, by each of the data reducing proxies (31a, 31b, 31c), the second streaming data (102) and
- (341) feeding, by each of the data reducing proxies (31a, 31b, 31c), the second streaming data (102) to the data reducing system (30a, 30b, 30c) to which the data reducing proxy (31a, 31b, 31c) is attached,
- (342) sending, by each of the data reducing proxies (31a, 31b, 31c), N the reduced data (103) generated by the data reducing system (30a, 30b, 30c) to N which the data reducing proxy (31a, 31b, 31c) is attached, 3 - (350) receiving, by the data output proxy (41), the reduced data O (103) from each of the data reducing proxies (31a, 31b, 31c) through the reduced I 30 data channels (203), = - (351) feeding, by the data output proxy (41), the reduced data 3 (103) to the data output system (40), 0 - (360A) routing, by the service mesh (70), the first streaming data S (101) from each of the data sources (10a, 10b) to a receiving data input proxy (21a, 21b, 21c) by selecting, for each of the data sources (10a, 10b), the receiving data input proxy (21a, 21b, 21c) for the first streaming data (101), the receiving data input proxy (21a, 21b, 21c) being one of the data input proxies (21a, 21b, 21c), - (360B) routing, by the service mesh (70), the second streaming data (102) from each of the data input proxies (21a, 21b, 21c) to a receiving data reducing proxy (31a, 31b, 31c) by selecting, for each of the data input proxies (21a, 21b, 21c), the receiving data reducing proxy (31a, 31b, 31c) for the second streaming data (102), the receiving data reducing proxy (31a, 31b, 31c) being one of the data reducing proxies (31a, 31b, 31c), - (360C) transferring, by the service mesh (70), the reduced data (103) from each of the data reducing proxies (31a, 31b, 31c) to the data output proxy (41), and - (370) storing, by the transfer system (1), the reduced data (103) in the data output system (40) as an output data (104) characterizing the first streaming data (101).
20.A method (300) according to claim 19, characterized in that the method (300) comprises executing the steps of the method (300) in a transfer system (1) according to any one of claims 1-18. N O N © G LO N I = 0 O co O N O N
FI20215895A 2021-08-25 2021-08-25 Transfer system for transferring streaming data, and method for transferring streaming data FI20215895A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FI20215895A FI20215895A1 (en) 2021-08-25 2021-08-25 Transfer system for transferring streaming data, and method for transferring streaming data
EP22860690.1A EP4393137A1 (en) 2021-08-25 2022-08-24 Transfer system for transferring streaming data, and method for transferring streaming data
PCT/FI2022/050544 WO2023025988A1 (en) 2021-08-25 2022-08-24 Transfer system for transferring streaming data, and method for transferring streaming data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FI20215895A FI20215895A1 (en) 2021-08-25 2021-08-25 Transfer system for transferring streaming data, and method for transferring streaming data

Publications (1)

Publication Number Publication Date
FI20215895A1 true FI20215895A1 (en) 2023-02-26

Family

ID=85284947

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20215895A FI20215895A1 (en) 2021-08-25 2021-08-25 Transfer system for transferring streaming data, and method for transferring streaming data

Country Status (3)

Country Link
EP (1) EP4393137A1 (en)
FI (1) FI20215895A1 (en)
WO (1) WO2023025988A1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9432704B2 (en) * 2011-11-06 2016-08-30 Akamai Technologies Inc. Segmented parallel encoding with frame-aware, variable-size chunking
US10536533B2 (en) * 2015-08-13 2020-01-14 Acronis International Gmbh Optimization of packetized data transmission in TCP-based networks
US11044162B2 (en) * 2016-12-06 2021-06-22 Cisco Technology, Inc. Orchestration of cloud and fog interactions
US10944804B1 (en) * 2017-11-22 2021-03-09 Amazon Technologies, Inc. Fragmentation of time-associated data streams

Also Published As

Publication number Publication date
WO2023025988A1 (en) 2023-03-02
EP4393137A1 (en) 2024-07-03

Similar Documents

Publication Publication Date Title
US11637872B2 (en) Systems and methods for allocating and managing resources in an internet of things environment using location based focus of attention
Bittencourt et al. The internet of things, fog and cloud continuum: Integration and challenges
Boukerche et al. Vehicular cloud computing: Architectures, applications, and mobility
Chen et al. Fog as a service technology
US20210243247A1 (en) Service mesh offload to network devices
JP2021057882A (en) Adaptive dataflow transformation in edge computing environments
WO2023151500A1 (en) Wireless communication method, gateway, device, and system
Amento et al. FocusStack: Orchestrating edge clouds using location-based focus of attention
Gosain et al. Enabling campus edge computing using GENI racks and mobile resources
GB2526419A (en) Method and system for testing cloud based applications and services in a production environment using segregated backend systems
Shaer et al. Multi-component V2X applications placement in edge computing environment
US20230236909A1 (en) Service mesh architecture for integration with accelerator systems
Li et al. Integrating NFV and ICN for advanced driver-assistance systems
Abdulkadhim et al. RETRACTED ARTICLE: Design and development of a hybrid (SDN+ SOM) approach for enhancing security in VANET
Sharma et al. Cloud-based secured VANET with advanced resource management and IoV applications
da Silva Barbosa et al. A platform for cloudification of network and applications in the Internet of Vehicles
CN115529677A (en) Information-centric network unstructured data carriers
Dai et al. A software-defined-networking-enabled approach for edge-cloud computing in the internet of things
Iovanna et al. 5G mobile transport and computing platform for verticals
Velasco et al. Flexible fog computing and telecom architecture for 5G networks
Dang et al. Integrated service discovery and placement in information-centric vehicular network slices
FI20215895A1 (en) Transfer system for transferring streaming data, and method for transferring streaming data
Aslani et al. Rethinking blockchain integration with the industrial Internet of Things
Yassein et al. Combining software-defined networking with Internet of Things: Survey on security and performance aspects
Houari et al. Improving V2X-6G network capacity using a new UAV-based approach in a Cloud/ICN architecture, case Study: VANET network