EP4393137A1 - 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 dataInfo
- Publication number
- EP4393137A1 EP4393137A1 EP22860690.1A EP22860690A EP4393137A1 EP 4393137 A1 EP4393137 A1 EP 4393137A1 EP 22860690 A EP22860690 A EP 22860690A EP 4393137 A1 EP4393137 A1 EP 4393137A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- proxy
- streaming
- proxies
- reducing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 165
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012545 processing Methods 0.000 claims description 18
- 230000001413 cellular effect Effects 0.000 claims description 7
- 238000012512 characterization method Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000003909 pattern recognition Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000009897 systematic effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000004883 computer application Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1045—Proxies, e.g. for session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/18—Service support devices; Network management devices
Definitions
- 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.
- edge technology it is customary to place processing 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 has been 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.
- 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.
- 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 transfer system in operation B), is configured to select the receiving data reducing proxy based on the computational loads of each of the data reducing systems to which the receiving data reducing proxy is attached. Computational load of the end point of the second streaming data channel is an advantageous factor when selecting the data reducing proxy.
- 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.
- 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.
- the data reducing system comprises a server computer unit comprising one or more graphics processing units.
- a graphics processing unit is an advantageous unit for performing complex, especially pattern recognition related tasks.
- 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).
- 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.
- the method comprises the steps of:
- 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 steps of the method.
- a "data transfer system” and a “transfer system” mean the same entity, as the primary purpose of the transfer system is to transfer data over at least one network and over network related entities.
- a "node” is a virtual or physical computing machine configured to perform computation and related communications into, out and within the virtual or physical machine.
- a node may be, for example, a computer, a server computer or a telecommunications unit. Two different nodes 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.
- 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.
- 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.
- artificial intelligence (Al) algorithms may be used to reduce data, for reducing data, to generate the reduced data or to process data into the reduced data.
- Al artificial intelligence
- neural network algorithms may be used to reduce data, for reducing data, to generate the reduced data or to process data into the reduced data.
- bandwidth means the rate of data transfer across a given channel, measured in bits/second (s).
- bandwidth For example, wireless LAN technology specified in IEEE standard 802.11b has a bandwidth of 11 Mbit/s, M for mega.
- 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.
- 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.
- 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”).
- OS shared operating system
- 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 a host OS.
- a containerized application may comprise the top layer of a following stack of computing resources:
- the bottom computing resource layer comprises a hardware of the infrastructure in question, including its CPU(s), disk storage and network interfaces.
- the host OS layer 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.
- the container engine layer comprises a container engine and its minimal guest OS, which are particular to the containerization technology being 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”.
- 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.
- 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.
- a “round-trip time” 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.
- Y may contribute to the derivation of X, but also other factors in addition to Y, for example Y2 and Y3, may contribute to the derivation of X without expressly stating that Y2 and Y3 may also contribute to said derivation.
- a local area network 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.
- 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.
- 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 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.
- FIGS. 1 - 2b show transfer systems according to embodiments of the current invention
- 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
- 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 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.
- 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 running an enterprise resource planning software.
- the data output system 40 may be for example a web server arranged to publish data over the internet.
- the transfer system 1 comprises also 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 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 data output system 40 may be configured to communicate with other parts of the transfer system 1 only through the data output proxy 41 attached to the data output system 40.
- 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, 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 is one of the data reducing proxies 31a, 31b, 31c.
- 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.
- 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.
- 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.
- the physical location of the data source 10a, 10b may change over time for a mobile data source 10a, 10b.
- a video feed of a surveillance camera may contain sensitive material that must be taken into account in the routing.
- 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.
- 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, 31b, 31c.
- 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.
- the service mesh 70 may be arranged to monitor the traffic loads to each of the data input systems 20a, 20b, 20c and make the selection on the receiving data input proxy 21a, 21b, 21c based on said monitoring.
- 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.
- 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.
- the data input system 20a, 20b comprises a cellular base station 22a.
- the data reducing system 30a, 30b, 30c comprises a server computer unit 22bg comprising one or more graphics processing units 22g.
- 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 are represented by the video streaming data 10 lv.
- 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 road like rocks or cobblestones, fallen cargo from other automobiles like parcels etc.
- 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.
- 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.
- the data input systems 20a, 20b are arranged to run as containerized applications.
- the data reducing systems 30a, 30b are arranged to run as containerized applications.
- the data output system 40 is arranged to run as a containerized application.
- the transfer system 1 is governed by a containerized application orchestration platform arranged to deploy and manage containerized applications.
- the selection for the receiving data input proxy 21a, 21b, 21c changes from a current receiving data input proxy 2 leu (shown at time tl) to a new receiving data input proxy 21n (shown at time t2, later than time tl), both the current receiving data input proxy 2 leu 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 of the new receiving data input proxy 21n is configured to be the same as the network identity 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 selection for the receiving data input proxy 21a, 21b, 21c changes from a current receiving data input proxy 2 leu to a new receiving data input proxy 2 In, 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 2 In is configured to use network identity 24 of the current receiving data input proxy 2 leu 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.
- DNS internet domain name service
- the network identity 24 of the receiving data input proxy 21a, 21b, 21c may be an internet domain name service (DNS) name 24n.
- DNS internet domain name service
- 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.
- the method 300 comprises, in step 311, connecting the data input proxies 21a, 21b, 21c with the data reducing proxies 31a, 31b, 31c through second streaming data channels 202.
- Said connection in step 311 may be performed e.g. with internet technologies.
- the second streaming data channel 202 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 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 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 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.
- the method 300 comprises, as step 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.
- the method 300 comprises executing the steps of the method 300 in a transfer system 1 according to the transfer system aspect and its embodiments of the invention as defined above in the present text.
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 (loT) 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 mounted on maintenance cars may observe a street during the travel of the maintenance car in a sequence of time, but the interesting data is not the video feed in itself, but instead more manageable information, e.g. the number and physical 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 reduced information, may be stored and analyzed in more detail for example in some central corporate computer system that generates data for decision making.
With the so-called "edge technology”, it is customary to place processing 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 has been 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:
- data sources configured to generate first streaming data,
- 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 transfer system comprises a service mesh, and the service mesh comprises:
- data input proxies,
- 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 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
- in operation C), transfer the reduced data from each of the data 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 first streaming data.
Advantage of the transfer system is that the processing of streaming 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 receiving data input proxy in operation A) based on
- network latency of each of the first streaming data channels; or
- network jitter of each of the first streaming data channels; or
- round-trip time of each of the first streaming data channels; or
- bandwidth of each of the first streaming data channels; or
- data access rules of each of the first streaming data channels; or
- privacy policies of each of the first streaming data channels; or
- physical locations of each of the data input proxies;
-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 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 point of the first streaming data channel is an advantageous factor when selecting the data input proxy.
In an embodiment, in operation B), the transfer system is configured to select the receiving data reducing proxy based on the computational loads of each of the data reducing systems to which the receiving data reducing proxy is attached. Computational load of the end point of the second streaming data channel is an advantageous factor when selecting the data reducing proxy.
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. 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).
In an embodiment, the data input systems are arranged to run as containerized applications. Containerized applications are a systematic and robust way to manage a life cycle of the data input systems.
In an embodiment, the data reducing systems are arranged to run as containerized applications. Containerized applications are a systematic and robust way to manage a life cycle of the data reducing systems.
In an embodiment, the data output system is arranged to run as a containerized application. Containerized applications are a systematic and robust 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 data source is then needed. The data source can send first streaming data to a same address behind which the data input system changes, as governed by the service mesh. The DNS name is a well-recognized system for establishing and operating an addressing system for data transfer in the internet.
As an aspect of the invention, a method for transferring streaming data in a transfer system is disclosed. The method comprises
- providing, to the transfer system
- data sources configured to generate first streaming data,
- 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 is attached,
- receiving, by each of the data reducing proxies, the second streaming data,
- feeding, by each of the data reducing proxies, the second streaming data to the data reducing system to which the data reducing proxy is attached,
- sending, by each of the data reducing proxies, the reduced data generated by the data reducing system to which the data reducing proxy is 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 steps of the method.
For the purposes of this text, a "data transfer system” and a "transfer system” mean the same entity, as the primary purpose of the transfer system is to transfer data over at least one network and over network related entities.
For the purposes of this text, a "node” is a virtual or physical computing machine configured to perform computation and related communications into, out and within the virtual or physical machine. A node may be, for example, a computer, a server computer or a telecommunications unit. Two different nodes 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 (Al) 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.
For the purposes of this text, "bandwidth” (also called "throughput” in the art) means the rate of data transfer across a given channel, measured in bits/second (s). For example, wireless LAN technology specified in IEEE standard 802.11b has a bandwidth of 11 Mbit/s, M for mega.
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), and RTT is the measured round-trip time for the channel.
For the purposes of this text, to "deploy” or "deploying” means starting 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 a host OS. A containerized application may comprise the top layer of a following stack of computing resources: The bottom computing resource layer comprises a hardware of the infrastructure in question, including its CPU(s), disk storage and network interfaces. Above the bottom computing resource layer, the host OS layer 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 the host OS layer, the container engine layer comprises a container engine and its minimal guest OS, which are particular to the containerization technology being 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.
For the purposes of this text, the notion of something "being based”, for example "X is based on Y” means that Y may contribute to the derivation of X, but also other factors in addition to Y, for example Y2 and Y3, may contribute to the derivation of X without expressly stating that Y2 and Y3 may also contribute to said derivation.
For the purposes of this text, a graphics processing unit (GPU) is a specialized electronic circuit designed to rapidly manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display 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 domain that presents a common, clearly defined routing policy to the Internet.
For the purposes of this text, "internet autonomous system related routing rules” mean a set of rules that are configured to route the traffic of the first streaming data channel or the second streaming data channel within the said single administrative entity or domain. This is advantageous as routing the traffic outside the administrative entity, that is, domain or autonomous system might incur extra costs or cut down the available bandwidth, or both.
For the purposes of this text, "orchestration platform” means a 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 onpremise, 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.
For the purposes of this text, to "attach” or "attaching” a proxy means to configure the proxy and the related data transfer system block, like data reducing system, data input system or data output system such that the proxy may transfer data to and from the said system, and perform as an intermediary related to said data transfer system block and the rest of the transfer system.
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 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.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention is described in detail by means of specific embodiments with reference to the enclosed drawings, in which
Figures 1 - 2b show transfer systems according to embodiments of the current invention,
Figure 3 shows an embodiment related a mobile data source,
Figure 4 shows embodiments related to data input systems,
Figure 5 shows an embodiment of a data reducing system,
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 running an enterprise resource planning software.
The data output system 40 may be for example a web server arranged to publish data over the internet.
The transfer system 1 comprises also 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.
As shown in Figure 2a, a service mesh 70 is a separate logical or physical entity that may be configured to perform the data transfer in the transfer system 1 in channels of the transfer system 1 as specified in this text.
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, 31c 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, 21c is 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 proxies 21a, 21b, 21c attached to each of the data input systems 20a, 20b, 20c.
Each of the data reducing systems 30a, 30b, 30c may be configured to communicate with other parts of the transfer system 1 only through the data reducing proxies 31a, 31b, 31c attached to each of the data reducing systems 30a, 30b, 30c.
The data output system 40 may be configured to communicate with other parts of the transfer system 1 only through the data output proxy 41 attached to the data output system 40.
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, 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 is one of the data reducing proxies 31a, 31b, 31c.
The service mesh 70 is configured, as operation C), to transfer the reduced data 103 from each of the data reducing proxies 31a, 31b, 31c to the data output proxy 41. The transfer system is configured to store the reduced data 103 in the data output system 40 as an output data 104. The output data 104 characterizes the first streaming data 101.
In an embodiment, at least one data source 10a, 10b is mobile such that its physical location changes over time.
In an embodiment, 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.
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, 21c 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 roundtrip 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).
In an embodiment, the transfer system 1 is configured to select the receiving data input proxy 21a, 21b, 21c based on data access rules of the first streaming data channel 201. In addition or as an alternative 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 the first streaming data channel 201 may also comprise rules related to data access as a data channel which is not feasible or even possible is clearly not efficient.
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 maybe 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 receiving data input proxy 21a, 21b, 21c based on internet autonomous system related routing rules of the first streaming data channel 201. 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 input proxy 21a, 21b, 21c 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 first streaming 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 roundtrip 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 data channel which is not feasible or even possible is clearly not efficient.
In an embodiment, the transfer system 1 is configured to select the receiving data reducing proxy 31a, 31b, 31c based on privacy policies of the second streaming data channel 202. In addition or as an alternative 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 of a surveillance camera may contain 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, 31b, 31c.
In an embodiment, 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. 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 be arranged to monitor the traffic loads to each of the data input systems 20a, 20b, 20c and make the selection on the receiving data input proxy 21a, 21b, 21c based 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, 31c, 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 llvi 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 lOlv generated by the video camera llvi.
Based on the video streaming data lOlv 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 llvi mounted on an automobile, the video camera llvi arranged to view surroundings 14 of the automobile. The first streaming data 101 comprises video streaming data lOlv generated by the video camera llvi.
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 are represented by the video streaming data 10 lv.
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 road like rocks or cobblestones, fallen cargo from other automobiles like parcels etc.
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 2 leu (shown at time tl) to a new receiving data input proxy 21n (shown at time t2, later than time tl), both the current receiving data input proxy 2 leu 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 proxy 21n is configured to be the same as the network identity 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 an embodiment, when, in operation A), the selection for the receiving data input proxy 21a, 21b, 21c changes from a current receiving data input proxy 2 leu to a new receiving data input proxy 2 In, 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 2 In is configured to use network identity 24 of the current receiving data input proxy 2 leu 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.
The method 300 comprises, in step 311, connecting the data input proxies 21a, 21b, 21c with the data reducing proxies 31a, 31b, 31c through second streaming data channels 202.
Said connection in step 311 may be performed e.g. with internet technologies. The second streaming data channel 202 may be e.g. an internet based connection.
The method 300 comprises, in step 312, connecting the data reducing proxies 31a, 31b, 31c with the data output proxy 41 through reduced data channels 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.
The method 300 comprises, as step 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.
The method 300 comprises, as step 340, receiving, by each of the data reducing proxies 31a, 31b, 31c, the second streaming data 102.
The method 300 comprises, as step 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.
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, 31c 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.
In an embodiment of the method 300, the method 300 comprises executing the steps of the method 300 in a transfer system 1 according to the transfer system aspect and its embodiments of the invention as defined above in the present text.
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 examples but may vary within the scope of the claims.
Claims
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 one of the data reducing systems (30a, 30b, 30c),
- the data output proxy (41) being attached to the data output system (40),
- each of the data input proxies (21a, 21b, 21c) being 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, 21c) is attached,
- each of the data input proxies (21a, 21b, 21c) being 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,
- 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
- C) 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) configured to store the reduced data (103) in the data output system (40) as an output data (104) characterizing the first streaming data (101).
2. A transfer system (1) according to claim 1, characterized in that at least one data source (10a, 10b) is mobile such that its physical location changes over time.
3. A transfer system (1) according to claim 1 or 2, characterized in 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 routing rules of each of the first streaming data channels (201), or physical locations of each of the data input proxies (21a, 21b, 21c).
7. A transfer system (1) according to any one of claims 1-6, characterized in that the transfer system (1) is configured to select the receiving data reducing proxy (31a, 31b, 31c) in operation B) based on:
- network latency of each of the second streaming data channels (202); or
- 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.
10. A transfer system (1) according to any one of claims 1 - 9, characterized in that each of the data sources (10a, 10b) comprises a video camera (llvi) 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 (lOlv) generated by the video camera (llvi).
11. A transfer system (1) according to any one of claims 1 - 10, characterized in that the data input system (20a, 20b) comprises:
- a cellular base station (22a); or
- a server computer unit (22b).
32
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 (llvi) 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 (lOlv) generated by the video camera (llvi),
- 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 (lOlv), 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.
16. A transfer system (1) according to any one of claims 1 - 15, characterized in that the data output system (40) is arranged to run as a containerized application.
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 application orchestration platform arranged to deploy and manage containerized applications.
18. A transfer system (1) according to any one of claims 1 - 17, characterized in that:
33
- 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 (2 In) being data input proxies (21a, 21b, 21c), the new receiving data input proxy (2 In) is configured to use network identity (24) of the current receiving data input proxy (2 leu) 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 (2 In), 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 (2 leu) 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),
- data reducing systems (30a, 30b, 30c) configured to generate reduced data (103) based on the second streaming data (102),
- a data output system (40);
- (303) providing, to the transfer system (1), 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 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),
34
- (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 ofthe 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 ofthe 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), the reduced data (103) generated by the data reducing system (30a, 30b, 30c) to which the data reducing proxy (31a, 31b, 31c) is attached,
- (350) receiving, by the data output proxy (41), the reduced data (103) from each of the data reducing proxies (31a, 31b, 31c) through the reduced data channels (203),
- (351) feeding, by the data output proxy (41), the reduced data (103) to the data output system (40),
- (360A) routing, by the service mesh (70), the first streaming data (101) from each ofthe 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
35 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.
Applications Claiming Priority (2)
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 |
PCT/FI2022/050544 WO2023025988A1 (en) | 2021-08-25 | 2022-08-24 | Transfer system for transferring streaming data, and method for transferring streaming data |
Publications (1)
Publication Number | Publication Date |
---|---|
EP4393137A1 true EP4393137A1 (en) | 2024-07-03 |
Family
ID=85284947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP22860690.1A Pending EP4393137A1 (en) | 2021-08-25 | 2022-08-24 | 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117418A1 (en) * | 2011-11-06 | 2013-05-09 | Akamai Technologies Inc. | Hybrid platform for content delivery and transcoding |
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 |
-
2021
- 2021-08-25 FI FI20215895A patent/FI20215895A1/en unknown
-
2022
- 2022-08-24 WO PCT/FI2022/050544 patent/WO2023025988A1/en active Application Filing
- 2022-08-24 EP EP22860690.1A patent/EP4393137A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
FI20215895A1 (en) | 2023-02-26 |
WO2023025988A1 (en) | 2023-03-02 |
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 | |
Boukerche et al. | Vehicular cloud computing: Architectures, applications, and mobility | |
Bittencourt et al. | The internet of things, fog and cloud continuum: Integration and challenges | |
EP3885908A1 (en) | A computer-readable storage medium, an apparatus and a method to select access layer devices to deliver services to clients in an edge computing system | |
Munir et al. | IFCIoT: Integrated Fog Cloud IoT: A novel architectural paradigm for the future Internet of Things | |
Chen et al. | Fog as a service technology | |
Jararweh et al. | Software-defined system support for enabling ubiquitous mobile edge computing | |
JP2021057882A (en) | Adaptive dataflow transformation in edge computing environments | |
CN113661721A (en) | V2X service for providing trip specific QoS prediction | |
CN114679449A (en) | Neutral host edge services | |
Gosain et al. | Enabling campus edge computing using GENI racks and mobile resources | |
CN111756791A (en) | Techniques for accelerated function as service network device load balancer | |
GB2526419A (en) | Method and system for testing cloud based applications and services in a production environment using segregated backend systems | |
NL2032817B1 (en) | Cross-layer automated fault tracking and anomaly detection | |
Shaer et al. | Multi-component V2X applications placement in edge computing environment | |
da Silva Barbosa et al. | A platform for cloudification of network and applications in the Internet of Vehicles | |
Sharma et al. | Cloud-based secured VANET with advanced resource management and IoV applications | |
US20230236909A1 (en) | Service mesh architecture for integration with accelerator systems | |
CN115866601A (en) | Connected device zone identification | |
CN115529677A (en) | Information-centric network unstructured data carriers | |
Iovanna et al. | 5G mobile transport and computing platform for verticals | |
Velasco et al. | Flexible fog computing and telecom architecture for 5G networks | |
EP4393137A1 (en) | Transfer system for transferring streaming data, and method for transferring streaming data | |
Abdullah et al. | Computation offloading in the internet of connected vehicles: A systematic literature survey | |
EP4393138A1 (en) | Transfer system for transferring streaming data, and method for transferring streaming data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20240322 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |