Experimenting with a big data infrastructure for multimodal stream processing
Abstract
It is an important part of the Armed Forces’ activities to monitor Norwegian land areas, the airspace,
the sea and cyberspace. This surveillance supports both traditional tasks such as defending
sovereignty or crisis and conflict management, as well as civil-military tasks such as rescue services
and environmental preparedness. The overall response time of the Armed Forces, as well as the
quality of its operational decisions, depend on the ability to perceive a situation, interpret it and
understand it, that is, on the level of situational awareness.
New communication technologies and the ever-increasing availability of computing power today make
it possible to utilize data of a variety and volume that can significantly enrich situational awareness in
the future.
From a computational point of view, progress in this area depends on whether we have computational
models that are able to translate data into relevant real time intelligence, and whether we are able to
coordinate machine clusters that, working together, are capable of adapting to potentially very large
spikes in the quantity or complexity of available information (complexity being understood as the
amount of processing power it takes to convert data into actionable intelligence).
In this report we take a closer look at some general properties such a machine cluster could
reasonably be expected to have, as well as the matching characteristics a surveillance algorithm
must have in order to exploit it efficiently. Although it is not reasonable to assume that all types of
surveillance tasks and information needs can be served with identical system support, the working
hypothesis in this report is that some general systemic properties will be sufficient for most cases.
Examples include, loose coupling, scalability, fault tolerance and parallelizability.
We do not claim to have proved or refuted this hypothesis (i.e. that some general systemic properties
will be sufficient for most cases), but will be content for now to adduce some experimental evidence
in support of it. In other words, the method we adopt is empirical. More specifically, we do an
experimental case study of high velocity stream reasoning supported by a scalable coordinated
machine cluster running a variety of software components and algorithms. The various components
and algorithms will be described in more detail as we go. By stream reasoning, we shall mean the
operation of turning continuously incoming data into actionable intelligence in real time. The case
study, more specifically, attempts to detect illegal, unreported, and unregulated fishing from a stream
of AIS reports, supplemented with geographic information as well as with additional on- and offline
information about ships, landing bills and more.
The experiment was designed to see to what extent standard software components can be utilised
to build a stream processing infrastructure meeting the identified requirements. The outcome
of the experiment was a confirmation that the chosen core components essentially provided a
streaming infrastructure with the desired properties, mainly due to the characteristics of the core
component Apache Kafka. The main deviation was the infrastructure’s fault tolerance ability: During
the experiment, further study of Kafka’s handling of network partitioning casted doubt over its ability
to handle such situations. As this experiment was conducted on a robust network, the infrastructure’s
tolerance for network partitioning was not tested. This is, however, an interesting avenue for further
work, as network partitioning is a characteristic of tactical networks. Det er en viktig del av Forsvarets virksomhet å overvåke norske landområder, luftrommet, havområder
og det digitale rom. Overvåkningen skal støtte både tradisjonelle forsvarsoppgaver slik
som suverenitets- og myndighetsutøvelse eller krise- og konflikthåndtering, såvel som sivil-militære
oppgaver slik som redningstjeneste og miljøberedskap. Responstiden til Forsvaret, samt kvaliteten
på Forsvarets operative beslutninger, avhenger av situasjonsforståelsen, det vil si av evnen til å
oppfatte, tolke og forstå en situasjon.
Nye kommunikasjonsteknologier og den stadig økende tilgangen på regnekraft gjør det mulig i dag å
utnytte data av en variasjon og et volum som kan berike situasjonsforståelse i fremtiden betydelig.
Det springende punkt er hvorvidt vi har beregningsmodeller som evner å omsette data til relevant
etterretning i sann tid, og hvorvidt vi har sammenkoblede maskinklynger som tillater at datavolumet
øker avhengig av informasjonsbehov og tilgjengelighet.
I denne rapporten studerer vi hva slags systemstøtte og algoritmikk en slik løsning krever. Selv om
det ikke er rimelig å anta at alle typer overvåkingsoppgaver og informasjonsbehov kan betjenes med
identisk systemstøtte, er arbeidshypotesen her at enkelte overordnede systemegenskaper vil være
tilstrekkelig for de fleste tilfeller. Her tenker vi på slike ting som parallelliserbarhet (overvåkingsoppgaven
må være av en slik karakter at relevante beregninger kan spres over flere maskiner som
arbeider på problemet samtidig), løs sammenkopling (maskiner og kilder må kunne tilkobles uten
rekonfigurering og nedetid), skalerbarhet (systemet må kunne vokse med prosessorkraft og minne
når det er nødvendig) og feiltoleranse (systemet må tåle at en viss prosent av maskinene feiler eller
tas ut av angripere).
Vi benytter en empirisk metode for å undersøke arbeidshypotesen, der vi tar utgangspunkt i en
samtidig strøm av AIS-meldinger fra Kystverket, som formidler meldinger fra fartøy innenfor et
dekningsområde som omfatter norsk økonomisk sone og vernesonene, og forsterker disse dataene
med informasjon fra Fiskeridirektoratets Landings- og sluttseddelregister. Hensikten er å identifisere
skip som ikke rapporterer at de fisker, selv om bevegelsesmønsteret og informasjon fra
sluttseddelregisteret indikerer det motsatte.
Deteksjon av uregulert fiske allerede er et velstudert problem i forsvarssammenheng. Det som
gjør denne rapporten annerledes er sanntidighetsfokuset. Vi ønsker at systemet skal flagge og
følge et fartøy så lenge bevegelsene til fartøyet og bakgrunnsinformasjonen om fartøyet gir grunn
til det, og ikke lenger. På den måten ønsker vi å kunne overvåke samtlige ca 3500 fartøy som i
løpet av en normal virkedag rapporterer på denne AIS-strømmen i sann tid. Teknisk innebærer dette
to ting: (1) Vi utvikler en parallelliserbar algoritme vi kaller tortuosity (kurvethet) for å analysere
bevegelsesmønsteret til et skip i sann tid, og (2) vi definerer og konfigurerer en stordatarkitektur
designet spesifikt for strømmende data med redundans, skalerbarhet og feiltoleranse bygget inn
både i dataflyt og beregninger. Disse to punktene eksemplifiserer de overordnede systemegenskaper
som ble nevnt over, og er derfor egnet til å underbygge eller utfordre arbeidshypotesen.
Eksperimentet ble designet for å se i hvilken grad standard programvare kan brukes til å bygge en
strømprosesseringsinfrastruktur som oppfyller de identifiserte kravene. Utfallet av eksperimentet var
en bekreftelse på at de valgte kjernekomponentene i det vesentlige gir en streaminginfrastruktur med
de ønskede egenskapene, hovedsakelig på grunn av egenskapene til kjernekomponenten Apache
Kafka.