Client-Side Computing in General-Purpose Digital Shadow Applications
Master thesis
Permanent lenke
https://hdl.handle.net/11250/2781714Utgivelsesdato
2020Metadata
Vis full innførselSamlinger
Sammendrag
Den raske utviklingen av IoT-teknologi og det faktum at stadig mer data blir tilgjengelig digitalt har ført til et økt antall bruksområder for digitale tvillinger. Historisk har definisjonen av en digital tvilling forlanget at det er toveis datakommunikasjon mellom en fysisk enhet og den digitale tvillingen, slik at den digitale tvillingen kan brukes til både monitorering og styring av den fysiske enheten. Noen av de nye, mindre industrielle bruksområdene for digitale tvillinger, som for eksempel digitale tvillinger av organisasjoner, introdusert av Gartner, fokuserer hovedsakelig på den digitale tvillingens monitoreringsegenskaper. Denne typen system har historisk blitt klassifisert som en digital skygge.
Denne oppgaven tar sikte på å fylle et hull i dette nye markedet, og presenterer ideen om en universell plattform for utvikling av digital skygger som fjerner behovet for å utvikle dem fra bunnen av. Dette oppnår den ved å la brukeren definere atferd og virtuell representasjon av en enhet gjennom et frontend-kodegrensesnitt. Fordi digitale skygger (i motsetning til digitale tvillinger) bare har enveis datakommunikasjon, fra en fysisk enhet til en virtuell enhet, er de i en unik posisjon til å kjøre nesten all sin logikk i applikasjonens frontend, heller enn i applikasjonens backend, noe som gjør det mulig å bruke en generell Backend as a Service istedenfor å måtte sette opp egen backend-infrastruktur.
Denne oppgaven tar spesielt sikte på å vise at web-teknologi har utviklet seg så mye de siste årene at brukerdefinert transformasjons- og aggregeringslogikk kan håndteres i brukerens nettleser, selv om logikken er skrevet i et domenespesifikt språk som i utgangspunktet ikke er støttet av nettleseren, men må tolkes av en fortolker skrevet i JavaScript.
For testformål ble det utviklet en prototyp av en universell plattform for utvikling av digitale skygger, som kjører all sin logikk i nettleseren og gir brukeren et kodegrensesnitt for å definere atferd og visualiseringslogikk, for å mappe API-data til kontinuerlig oppdaterte widgets. For å gjøre det lettere å trygt kjøre potensielt ondsinnet brukerdefinert kode i nettleseren ble det utviklet en fortolker for et enkelt, domenespesifikt programmeringsspråk. I tillegg til å utgjøre en viktig del av prototypens functionalitet ble fortolkeren brukt til å utføre eksperimenter for å finne ut hvor mye tregere evaluering av et domenespesifikt språk som må tolkes av en fortolker skrevet i JavaScript er i forhold til å evaluere JavaScript i nettleserens JavaScript-motor direkte.
Eksperimentering med å bruke prototypen til å lage digitale skygger rettet mot ulike bruksområder antyder at det er overkommelig å utføre grunnleggende aggregering og datatransformasjon i brukerens nettleser heller enn på en dedikert server, selv om logikken er skrevet i et domenespesifikt språk som i utgangspunktet ikke er støttet av nettleseren, men må tolkes av en fortolker skrevet i JavaScript.
Oppgaven konkluderer med at den viktigste konsekvensen av å flytte logikk fra server til klient i digitale skygger ikke er den noe reduserte ytelsen, men det at den digitale skyggen blir en sluttdestinasjon for data, og ikke kan brukes av andre moduler. With the rapid development of IoT technology and having more data available digitally, we have seen an emergence of new digital twin uses-cases. Historically, the definition of the digital twin has emphasized that there be a bidirectional connection between the physical entity and the digital twin, making it possible for the digital twin to both monitor and control the physical entity. However, some of the more recent, less industrial use-cases, like the Digital Twin of the Organization (DTO), as coined by Gartner, seem to focus more on the digital twin’s monitoring capabilities, thus adhering more to the concept of a digital shadow.
Aiming to fill a gap in this emerging market, this thesis presents the idea of a general-purpose digital shadow application, an application which removes the need to develop digital shadows from scratch, by letting the user define the behavior and virtual representation of an entity through a frontend code interface. Since digital shadows (as opposed to digital twins), only have a one-way data flow, from the physical entity to the virtual entity, they are in a unique position to run nearly all of their logic on the frontend, rather than the backend, making it feasible to utilize a Backend as a Service (BaaS) in lieu of having to set up custom backend infrastructure.
This thesis specifically aims to show that web technologies have evolved so much in recent years that user-submitted transformation and aggregation logic can be handled in internet browsers, even if the logic is supplied in a domain-specific language not native to the browser and has to be interpreted by an interpreter written in JavaScript.
For testing purposes, a prototype of a general-purpose digital shadow application running all of its logic in the browser was implemented, providing the user with a code interface to write digital shadow logic, which maps API-data into live widgets. To facilitate running untrusted user-submitted code safely in the browser, an interpreter for a simple, domain-specific programming language was created. In addition to serving as a proof of concept, the interpreter was used to reason about how performance is affected by running user-submitted logic in a domain-specific language not native to the browser, rather than using the browser’s JavaScript engine directly.
Experimenting with using the application to create various digital shadows suggests that for basic aggregations and data transformations, it is feasible to calculate the necessary derived values in the user’s browser, even when having to parse and evaluate the code in a domain-specific language not native to the browser.
The thesis also concludes that the main concern with moving logic from the backend to the frontend in digital shadows is not so much the decreased performance, as it is the digital shadow limiting itself to being an end destination for data, unable to be utilized by other modules.