Master of Science in Software Engineering September 2019

WebAssembly for Video Analysis An Explorative Multi-method study

Sainath Kaluva and Abdullah Hossain

Faculty of Computing, Blekinge Institute of Technology, 371 79 Karlskrona, Sweden

This thesis is submitted to the Faculty of Computing at Blekinge Institute of Technology in partial fulfilment of the requirements for the degree of Master of Science in Software Engineering. The thesis is equivalent to 20 weeks of full time studies.

The authors declare that they are the sole authors of this thesis and that they have not used any sources other than those listed in the bibliography and identified as references. They further declare that they have not submitted this thesis at any other institution to obtain a degree.

Contact Information: Author(s): Lakshmi Venkata Sainath Kaluva [email protected]

Abdullah Hossain [email protected]

Industry advisor: Rikard Tegnander Axis Communications AB

University advisor: Javier Gonzalez Huerta Department of Software Engineering

Faculty of Computing Internet : www.bth.se Blekinge Institute of Technology Phone : +46 455 38 50 00 SE-371 79 Karlskrona, Sweden Fax : +46 455 38 50 57 ii

ABSTRACT

Context: WebAssembly(wasm) language has gained popularity across the web-development domain for its niche characterises that differentiate from JavaScript. Several non-web developers are also showing interest in this technology to run their native applications on . However, it is challenging for practitioners to identify whether this technology fits with their needs and processes. There is a lack of research that helps practitioners make this choice. Objective: Our study aims to determine the potential for adopting wasm in industry by analysing the existing knowledge on wasm with the knowledge of development practices in video analysis domain. Method: We conducted case study and SLR using snowballing and interviews. The obtained data is coded using Thematic analysis. A classification schema is modelled after UTAUT for presenting the factors that determine adoptability in the given context. Results: 16 potential factors are found that determine the adoption of wasm in the video analysis. We have also reported the current state of research on wasm and analysed the practitioner’s view points on the wasm. Conclusion: Our study provides the first systematic study on state-of-the-art Wasm literature. It can help the Software Engineering researchers to understand the current state of research on wasm and providing directions to future studies. Our study helps the practitioners in decision-making of adopting wasm. This study serves as a road map for both researchers and practitioners to understand the pre- adoption perspective on WebAssembly.

Keywords: WebAssembly, Video analytics, Image processing, Technology Adoption, Case study

iii

ACKNOWLEDGEMENT

First and foremost, we thank our university supervisor Prof. Javier Gonzalez Huerta for his immense support, motivation, and mentorship. His perseverance and resilience have guided us towards the completion of our thesis. He is always flexible with his schedules and accompanying our problems whenever required. We reserve deep gratitude for his efforts.

We thank our Industry supervisor, Rikard Tegnander for his constant support and being accommodating to all our questions and enquiries. We immensely thank him for all his time and effort towards the thesis work. We thank Steven Vancouille for the initial guidance and research help. We thank Nina Steneram and Erik D Nilsson for their support and integration during our time at Axis.

We are grateful to each, and every interview participant for their invaluable insights into the topic. Without their support, we could not imagine the final output. We thank all examiners for their valuable comments that helped in the construction of the thesis. We thank all our lecturers at BTH for contributing to our personal and professional growth.

We thank all researchers who worked towards the exploratory research in Software Engineering field, whose work helped us to base our research upon. Special thanks to Prudhvi Kanumuri, Ashish Kunche and Akhilesh Nimmakayala for their support.

Finally, we are immensely indebted to our family and friends who have been eternally caring, supportive, and encouraging in our lives. This accomplishment is not even possible without their love.

iv

CONTENTS ABSTRACT ...... III

ACKNOWLEDGEMENT ...... IV

CONTENTS ...... V

1 INTRODUCTION ...... 3

2 RELATED WORK ...... 6

3 METHOD ...... 8 3.1 SELECTION OF RESEARCH METHOD ...... 8 3.1.1 Theoretical Stance ...... 11 3.1.2 Multi-Method Triangulation ...... 11 3.1.3 Process-based Theory vs Variance-based Theory ...... 11 3.2 SYSTEMATIC LITERATURE REVIEW DESIGN ...... 11 3.2.1 Literature Search ...... 12 3.2.2 Data Extraction ...... 15 3.2.3 Data Analysis ...... 16 3.3 CASE STUDY ...... 16 3.3.1 Case Description ...... 16 3.3.2 Objectives of Interviews ...... 17 3.3.3 Selection of Interview Subjects ...... 17 3.3.4 Interview Specification ...... 17 3.4 DATA ANALYSIS (THEORETICAL MODEL CREATION) ...... 19 3.4.1 Chain of evidence and Coding strategy...... 21 4 METHOD EXECUTION ...... 23 4.1 SLR METHOD EXECUTION ...... 23 4.1.1 Finalised Start set ...... 23 4.1.2 Iteration 1 ...... 24 4.1.3 Iteration 2 ...... 25 4.2 CASE STUDY EXECUTION ...... 25 4.2.1 Sample size and Demographics ...... 25 4.2.2 Transcription of Data and Coding ...... 26 4.3 DATA ANALYSIS EXECUTION ...... 27 4.3.1 Data Statements and Codes ...... 27 4.3.2 Fitting codes into themes ...... 28 5 RESULTS ...... 30 5.1 OVERVIEW OF RESULTS ...... 30 5.2 SUB THEMES (UTAUT MODEL) ...... 31 5.3 CHARACTERISTIC THEMES ...... 32 5.3.1 Performance Expectancy ...... 34 5.3.2 Facilitating Conditions ...... 36 5.3.3 Social Influence ...... 40 5.3.4 Effort Expectancy ...... 43 6 DISCUSSION ...... 46 6.1 NATURE OF DATA OBTAINED ...... 46 6.2 POTENTIAL USE OF WASM IN VIDEO ANALYSIS DOMAIN (RQ1) ...... 47 6.3 POTENTIAL FACTORS THAT INFLUENCE THE ADOPTION OF WASM IN VIDEO ANALYSIS DOMAIN (RQ2) . 48 6.4 AN ATTEMPT AT THIRD DATA POINT TOWARDS ADOPTION ...... 50 6.5 LIMITATIONS OF THE STUDY ...... 50 6.6 THREATS TO VALIDITY ...... 51

v

7 CONCLUSION AND FUTURE WORK ...... 53

REFERENCES ...... 54

APPENDIX ...... 64

vi

Faculty of Computing, Blekinge Institute of Technology, 371 79 Karlskrona, Sweden

1 INTRODUCTION

WebAssembly (wasm) is a low-level binary format language this is gaining much popularity among software developers in recent period. It is introduced by W3C consortium with main contributions from , , , and Apple. It facilitates high-performance computing on web platform. WebAssembly aims to achieve portability, speed, and security [1]. Recently different domains of software engineering such as cryptographic algorithms, simulation software, healthcare software, gaming etc. have shown interest in adopting WebAssembly [1]–[5]. Practitioners quote the better security and performance as some of the key factors that make them use wasm [6].

Video analysis is commonly referred to the process of obtaining specific information from the video content. Video analysis is performed for the purposes such as detection, classification, search, and summarization [7]. Video analysis software development is characterised as development of the software artefacts that analyse the visual content along with metadata such as time and audio feed; to generate meaningful insights or evaluate pre-determined hypotheses [7], [8]. Some examples of video analysis software are, motion detection, object tracking, collision detection, facial recognition, gait tracking, object detection, and heat mapping. The use of video analysis solutions is rapidly increasing among different sections of industry such as Automobile, Security, Business analytics and Healthcare [9]–[12]. And there is a constant demand from these industries for more complex video analysis solutions. The security industry is interested in the real-time analysis, and real-time data transmission with reliable network infrastructures for effective surveillance [11]. Newer use cases in video analysis perform not just automating physical tasks, but also performing complex predictive analyses such as facial expressions changes in police investigations, running predictive models of certain diseases on observation patients in medicine [13], [14]. This rapid progress in Video analysis domain has been driven by adoption of several software and hardware technological advancements in various areas such as computer vision, Networking, and Image processing. In a similar notion, WebAssembly might have its own place in video analysis domain.

The scope and requirements of video analysis spans across a vast scale. In a typical home security setup, the video analysis such as motion detection and object tracking. shall be run real-time at the device level, and possibly alerts should be sent to the security control. On the other hand, business analytics such as Vehicle parking automation, customer behaviour analysis etc. might require transmitting huge data to a different place for post-event analysis. In certain scenarios it is acceptable to store the video data at the location itself. But in some scenarios, the data shall be moved to different location. Some scenarios require real-time analysis, and in some others, the analysis is performed later. In some scenarios the video analysis is too complex to perform within-device, but in others it is efficient to perform within-device. There are different approaches in designing video analysis software for a given context. The context of video analysis development could be roughly modelled into 3 levels, 1. Source level 2. Transmission level 3. User level. Design and development decisions of the video analysis software must be made at each level, regarding processing power, network bandwidth, memory limits, input and output abilities, to name a few. And this complexity is further accelerated in the cases of large-scale video analysis development. A pictorial representation of the video analysis context is presented in figure 1.

3

Fig 1: Video Analysis Software Domain context

Practitioners need to integrate different source level devices with different architectures, different language implementations and may even follow different communication protocols [15], [16]. Different devices provide different output data, and it must be verified and processed into uniform data. Moreover, if the video analysis is performed across multiple devices, we shall establish the cross-device, cross-language computation frameworks. Some of these devices might not necessarily follow open-access protocols [17]. Another challenge is the transmission of data from the device to user. Transmission networks are usually limited by attributes such as latency, bandwidth, reliability, and security [18], [19]. These limitations are further amplified for real-time analysis involving large distance between devices and user. In some scenarios, video analysis involves cloud computing, and the data is transmitted between device to cloud and cloud to device, thus increasing the movement of data. At user level, for each scenario the design decisions shall be made in consideration to the type or users and type of analysis. In surveillance and high-security systems, significance is much higher for security, reliability, and functionality [11]. In Personal care user, significance is higher for ease-of-use and reliability [20]. In cases where video analysis is performed for a computer that acts as user (spatial analysis, collision detection for a self-driving car), significance of reliability and low- error rate is high [20], [21].

On the other hand, WebAssembly is designed as a cross-compiling language with high- degree of interoperability with other popular languages. Languages such as C/C++, Rust and Go are being natively supported to cross-compile the code into WebAssembly [1], [22], [23]. WebAssembly is designed as a portable language to run across different platforms with less resistance [1]. It has native support of compilers across different platforms such as web and Linux Kernel. The code is written in binary format, and the semantics and design implementations aim for high level of security, portability, and performance [1], [24]. The features of wasm are aligned with some of the above discussed needs of video analysis industry to an extent. The language could improve the cross-device, cross-language, cross-platform communication. The security features of wasm could be beneficial for the scenarios with importance

4

for security and data confidentiality. The characteristics of wasm might outweigh the limitations in existing languages for certain scenarios.

Though these notions are interesting, the technology is new. The maturity of language certainly plays an important role in its adoption, especially for large-scale industrial development [25]. The amount of research and industrial experimentation and objective views shall be assessed before the adoption. And the amount of research on the technology is also low. We did not come across any systematic studies on wasm and especially in our context, video analysis. And there is a lack of studies that explored the potential use of wasm for video analysis. Therefore, in this thesis, we aim to perform a preliminary/base study to understand the phenomenon of adopting WebAssembly technology in video analysis domain. The main aims of this research are,

- Determining the potential use of wasm for video analysis industry - Extracting and analysing the factors that influence the adoption of wasm in video analysis domain.

And we formulate the following research questions to guide our research.

1. What is the potential use of WebAssembly in video analysis domain? 2. What are the potential factors that influence the adoption of WebAssembly in video analysis domain?

For this purpose, a literature review is conducted on previous literature, and a case study is conducted at a video analysis company, Axis Communications AB for gaining deeper knowledge.

In the section 2 we will discuss the previous research related to our objectives and provide the support to our research decisions. In section 3 we provide the design of research methodology, and section 4 discusses the method execution. In section 5 we provide the results of the research. In section 6 we will discuss the findings of the study and provide discussion on limitations and validity threats. In section 7 we provide the conclusion and future work.

5

2 RELATED WORK

Chow et al. [26] has performed an organisational study on the adoption of open standards. The study is exploratory and have tested 7 factors that could influence the adoption. Results show that internal factors such as “technological barriers” were more influential than external factors of an organisation such as “market uncertainty” and the correlation with other factors is weak.

Dybå et al. [27] proposed EBSE as a tool for practitioners and industries to evaluate the technology for industrial use/adoption. This model is based on Evidence based medicine and is regarded for its proven success. EBSE focuses on state-of-art research, practice and human values in decision making.

Hardgrave et al. [28] aims at formulating an acceptance model of object-oriented software processes at organisations, ISDAM. Their research focused on understanding the individual level and performed the survey on 150 practitioners. Different attributes of preceding model such as TAM/TAM2, TPB and Goal-setting models were reviewed and included in their proposed model. Out of the attributes, “subjective norm”, “Organisational usefulness”, “Personal usefulness”, “External perceived behavioural control” and “Internal perceived behavioural control”, only “perceived organisational usefulness” is found to be correlated with adoption decision. “Subjective norm” and “Internal perceived behavioural control” are indirectly influencing the organisational usefulness. Authors have also agreed upon the need for practical validation of their theoretical model.

Petersen et al. [29] studied the adoption of incremental software development from traditional development in a large-scale organisation. Authors investigated the benefits and issues before the adoption via interviewing practitioners. These factors are further triangulated with the development data such as test faults and requirements wastage to discuss the post-adoption. This study is an exploratory research based on qualitative analysis in a single company.

Alégroth et al. [30] presented an exploratory study on industrial adoption of Visual GUI Testing (VGT), a testing technique. The authors performed a case study at a single company to understand from its adoption process till its abandonment. They gathered information via expert interviews followed by a questionnaire. The data is analysed via grounded theory and presented as a synthesis of information that answers research questions.

Hauge et al. [31] presents a systematic literature review to understand the adoption of Open source software technologies at industry. Though the topic of research is technology adoption in industries per se, they were aiming to summarise the existing literature and its classification and commonalities. The results bring little information on actual adoption process itself.

Technology adoption models help in understanding the adoption of technologies by its users. The research on technology adoption is not new. Different research studies in the past have studied the influence of internal and external factors on the adoption of technology by its users and organisations. Some researchers studied the pre-conditions and post-conditions of the adoption decision [32]–[34]. Some studies focused on the actual adoption process [35]. Others focused on the individual and/or organisational levels [26], [30], [36]. Some studies focused on individual’s perceptions to answer the intention or usage of technology [37], [38]. Some studies focused on success factors learnt from past experiences [31], [39]. Some focused on internal task-technology fit [40].We could see these different types of literature translate into different attributes inside the context of industrial technology adoption. With the presence of all these factor-oriented models, there needs to be a comparative study to assess the commonalities and differences and make a conclusive proposal towards technology adoption. Such study is made by Venkatesh et al. [36] and proposed a combined model named UTAUT. This model is also widely accepted across various industrial domains and across different

6

contexts. Collectively, the literature on factor-oriented models gives balanced coverage in individual and organisational factors in adoption decisions in software development. And emphasizes the importance to the individual’s behaviour within organisations for a successful adoption.

Remarks:

Overall, the research on technology adoption at industry could be summarised into three types. First type aims to find the factors (measurable/non-measurable) that explains technology adoption at industry. Second type aims to analyse the past experiences to explain technology adoption at industry. Third type aims to provide best practices and procedures that could lead to successful technology adoption at industry. All these three types of research provide significance, and it is preferable to do synthesis of the existing knowledge that could lead to a better strategy for successful adoption of technology. In our research area, since the wasm technology is new, there is little to no research on past experiences in industrial adoption and as mentioned earlier in introduction section, there is no research particular to video analysis. Therefore, second type of research is not feasible. And the factor-oriented models are formulated in different contexts and validation samples, which may not be applicable to our research focus. Moreover, the correlation of factors found in these models is not much higher (TPB – 40 to 50%, ISDAM – 63%, UTAUT – 65 to 70%). Therefore, the factor-oriented approach alone could not be a good strategy. There is an emphasis on literature review and prototyping as preliminary steps in EBSE towards adoption of technology, which could be feasible in our thesis. We also observe the trend of industrial case studies and especially using interviews as a data collection mechanism to synthesize the research results. Most of the studies are also exploratory. Most of the literature captured pre-adoption or post-adoption rather than the adoption phase. And as mentioned above in factor-oriented models, importance of individuals within organisation for successful adoption, must be noted. Related work also introduces a model based on the practitioner’s perceptions to assess the industrial adoption of technology [36].

With these takeaways from the related work, we proceed to design of research method in next section.

7

3 METHOD

This chapter gives an overview of the research methodology of our thesis. We present our method selection and elaborate the appropriate data collection and analysis techniques for achieving our thesis goals.

3.1 Selection of Research Method

It is very important to make sure the research method of a thesis fits the objectives of the study and nature of the research questions. Easterbrook et al. mentioned that the selection of method depends on multiple factors such as the theoretical stance of authors, access to the resources, and how closely the method aligns with the research questions [9]. We will first decode the aspects related to our thesis and then map them to the popular research methods used in software engineering.

As we discussed in section 1, the goal of our thesis is to understand the industrial adoption of WebAssembly in video analysis domain. As wasm is a new technology, we could make anecdotal assumptions about the results, but as an overall topic, authors are not able to hypothesize the outcomes in the context of our research. This is because of 1) Lack of similar studies, 2) Time constraints, 3) Novice experience of authors in the domain. Therefore, we can reach our goal by exploring the views and perceptions from different actors that are involved in this subject. Those are: previous research or experimentation happening around it, and their observations. Second, to understand the video analysis industry and their requirements and their perceptions on this new technology. All these aspects are not evident in previous studies, making it a kind of unknown territory. So, we need to answer based on the collective data we have from all different possible streams, and we need to do all the necessary effort to find the relations and understand the underlying meanings behind the actual data. All these steps make this study a complete exploratory study. Exploratory study is studying objects in their natural setting and results emerge from the observations [41]. Whereas Explanatory study is studying the cause-effect relation between two or more variables [41]. Our views are also supported by the relevant work on technology adoption. Where the authors indicated the importance of literature review as a preliminary step for evaluating technology adoption at industry [27]. Therefore, in our thesis we will combine the information from both the industry and research to reach our research goal. This makes our study a multi- method research.

8

Fig 2: Overview of research Area of the Thesis

We started our thesis work in collaboration with Axis communications, which is one of the key players in video analysis products. Our thesis work is performed on-site at the Axis headquarters, enabling us to interact in person with practitioners. The location has around 2000 employees. It is situated with many different departments working on specific aspects of video analysis software development. This opportunity enabled us to collect credible, relevant, in- depth and diverse views from a single company. Though our study started as an industrial collaboration, the company has given us complete freedom to design our thesis. And our selection of research method and design of research is authors’ own formulation, justified based on the similar adoption studies and existing body of knowledge.

To sum up all the things discussed in above paragraphs, our thesis is exploratory in nature, lacks a proper hypothesis, involves less-evident or less-popular territory of study, has access to practitioners and requirement of performing multi-method study. For performing literature review, we will be conducting an SLR aiming to achieve the research aims. The other popular alternative for SLR is Systematic Mapping Studies (SMS). Both these are considered secondary research studies. The main difference between SLR and SMS is that SMS is used for structuring the literature and SLR is used for deep understanding on a subject [42]. As we are aiming to explore deep into the literature across the knowledge spectrum, we choose the latter in our thesis.

For the primary research method: Experiments, Case study and Surveys are the three common research methods used in empirical studies in software engineering. Experiments are performed in the studies where all the variables are existing and then observes the change in one variable on the rest of the variables [43]. In our study variables are unknown and we are exploring for variables that could influence the adoption of wasm in video analysis domain. In experiments, variables are studied in controlled setting, where there is a chance for replication in future [43]. But in our study, we cannot replicate controlled setting as we are observing a phenomenon. And even if we are to able to identify variables, it is not feasible to perform or replicate the video analysis development at industry. The absence of quantified results, unknown hypotheses make Experiment a false choice for our thesis. Surveys are performed in the studies to gather systematic data from a large sample [44]. The main purpose of surveys is to generalise all the findings from a representative set of samples to

9

entire population it represents [43]. It provides a snapshot of the current situation [45]. In our thesis we are aiming to observe the phenomenon of video analysis development at a company, which is an in-depth investigation and provide insights on adoption of wasm. The results depend on the context of research, and not all findings applicable across the entire population. Survey could be useful in gaining objective information from a large population, but we are aiming for in-depth understanding of phenomenon at a company. Other factors such as: lack of diverse sample, lack of quantifiable objectives, investigative nature of study make Survey inappropriate choice for our thesis. Case study is suitable in the studies where the researchers aim for an in-depth observation of the phenomenon of a particular case [46]. Cases study is a good choice for our thesis because: 1) We do not have existing variables to test, but to identify the variables from observing the phenomenon. 2) The research area is less popular and therefore low level of existing validated claims to base our research upon. Thus, demands a bottom-up analysis of the case to make any claims. 3) Our research involves exploratory questions and analysing qualitative data, making case study suitable for our thesis. 4) Case studies help in analysing real-life scenarios better than other methods, thus being suitable for our thesis [43]. 5)Case studies are good in observing the interactions of humans with the given case [46], [47]. Many industrial studies in software engineering prefer case study due to the flexibility in design and execution [29], [30], [48]. One of the main reason for selecting case study for our research is that case study is much suitable for comparing the results of one case against a different case or scenario and highlights the changes in variables [46]. In our thesis we are also trying to not only explore the variables of technology adoption, but also on discussing these variables in relation to the current development scenario. As Runeson et al. [49] mentioned, “case study adds to existing knowledge by being based on previously established theory, if such exist, or by building theory.”- which is perfect for our thesis.

Hence, we opted to perform an exploratory research based on SLR and Case study using qualitative data. More information on our decision-making process in method selection are discussed in next sections. A brief explanation of research methods connected with research question is presented in fig 3.

Fig 3: Research Design of the Thesis

10

3.1.1 Theoretical Stance Easterbrook et al. [50] discussed 4 types of theoretical stances- Positivism, Constructivism, Critical theory, and Pragmatism. They observed one of these stances could be noticed in research studies, though the researchers would not specifically mention it. We are taking a theoretical stance for our thesis to make our intentions visible thus, making it easier for the reader to follow our thesis. Saying that, the authors consensually preferred Constructivism. As this stance is naturally visible in our thesis work even before reading this article. Constructivism deals with a belief that the theories cannot be separated from the human context [50]. Constructivists generate scientific theories from mainly understanding how humans play in the given context. Thus, also making these theories highly depend on the given context. A similar style is also discussed with different terms such as interpretive case study in the Klein and Myers’ [51], and as exploratory and descriptive study in Robson’s [52].

3.1.2 Multi-Method Triangulation Multi-Method triangulation is performed when the author would like to use two research methods for the same research objectives (or) research aims [53]. In our study we are having two different data points for the same research questions and objectives. This will be the suitable triangulation procedure when comparing the data from multiple methods, thereby mitigating the internal validity of the results. Moreover, in our thesis there is a fundamental limitation of lack of similar work, that we could compare the results of the thesis. And SLR provide evidences and case study we will be gathering the perceptions, which are two different kinds of qualitative data. Therefore, both Case study and SLR are performed in our thesis.

3.1.3 Process-based Theory vs Variance-based Theory We would like to clarify our readers that the end results of our thesis produce a variance- based theory and not a process-based theory. Variance theory is independent from temporal influences whereas process-based theory is related to the temporal structure [54]. The qualitative data we obtain from our research methods, is very much suitable for producing the variance-based theory. In this thesis, while investigating the adoption process of wasm in video analysis, produces variance theory. That is, we present a model of factors that influence the adoption of the given technology in the given context. But we do not offer any procedural model or concrete steps to follow per se, but the factors that lead to adopting a technology at the company. Moreover, we are conducting a horizontal research. We are basically exploring in all directions of a video analysis development for finding the adoption factors. Thus, our results would not have the temporal characteristics.

3.2 Systematic Literature Review Design

Systematic literature review (SLR) is a common approach in software engineering research now a days. It is a useful tool for collecting evidences from the past research. SLR not only useful for aggregating past research, but also suggests virtual guidelines for the ongoing research [55]. The past research studies play an important role to make aware of the existing knowledge of a research domain. The guidelines for performing SLR in SE [42], points out an eight-step plan for performing SLRs on a smaller scale, (such as dissertations, or PhD studies). We are taking these steps for consideration and these steps could be further summarized into three main categories: 1) Literature Search, 2) Data Extraction and 3) Data Analysis. We will first present the SLR protocol here in section 3.2, and we will report the execution process of the SLR protocol in section 4.1. Each category is individually detailed within the SLR protocol before executed. The main aim of our study with SLR is to gather only the required information for our thesis and not to perform a broader literature review on the research area itself. We will be developing our SLR

11

protocol keeping this in our mind. Therefore, some of the steps in guidelines for performing SLR such as: “evaluation of SLR protocol and validation of results” are avoided for the sake of limiting the SLR process. The outline of the SLR review we perform in our thesis is described in the figure 4.

Fig 4: Outline of SLR

3.2.1 Literature Search Literature Search is one of the key aspects in literature review studies. Because, the results of a literature review depend on the actual literature that’s being reviewed in that study. In the studies that provide guidelines to perform literature reviews such as Kitchenham et al. [42] and Cochrane handbook [56], we could commonly identify the theme of first-“shaping a plan for literature search”, and then- “proceeding to their synthesis”. Therefore, the identified literature studies could directly influence the results of the literature review. Also, it is common for SLRs to report the limitations in literature search in their validity threats [57], [58]. Therefore, care must be taken in defining protocol for the literature search. This step is also important for our thesis as the resultant literature is used in combination with practitioner’s data to synthesize the research findings. A good protocol for Literature search shall be able to find most of the relevant literature.

3.2.1.1 Selection of Search Technique Researchers use different types of search techniques such as manual review of relevant journals, consulting peers and experts in the topic, gathering information from grey literature, to name a few. Among these, Keyword-based search and Snowballing are popular for their traceability and accountability. These techniques are commonly used by researchers in the software engineering and other SLR studies. They are also among the most evaluated methods by the researchers in the software engineering field [59]. In Keyword-based search, we perform search on the multiple databases using a set of well-defined keywords to retrieve the list of articles to consider for the further research [59]. In Snowballing, first we consider a start set of papers from some of the relevant journals and then review the citations and references in forward and backward snowballing [60]. The resultant final set of papers is considered for further research.

12

Though, it is argued to use both these methods to obtain the complete data, researchers usually perform either one of these [61] and it is rare to see studies that perform multiple search strategies (if the focus is not on identifying all possible literature). Some researchers argue this is due to the amount of time, effort, and availability of resources [61]. Given our primary aim of the study is not performing an SLR to evaluate the research area, rather focusing on specific objectives inside the research area, we think it is appropriate to perform one of the better search methods. And our resources are also limited to perform two literature search approaches. Studies that compared both the methods are also contradictory and shown that there is no absolute winner of the two techniques - for identifying all the relevant literature. Several studies have compared the efficiency of both these techniques, by applying them on same set of research questions [62], [63]. Two interesting ideas were found in these studies. MacDonell et al. [63] has found that an SLR study is less impacted by the process and people. And the second is, the efficiency of the search technique rather depend on the research context [64]. Another important information we found in the studies, is that the snowballing has more precision than keyword-based searching. In our SLR, the technology wasm, is quite new and the preliminary research on the topic shows small amount of literature. Hence, there can be a chance we could possibly skip more amount of related literature, by designing the search strings in keyword- based technique. And on the other hand, studies show snowballing could be effective in such scenarios to identify all relevant literature that can be hard to find via traditional databases (because of different use of keywords, lack of standardized set of keywords related to topic…) with improved precision [59]. Keeping all these things in mind, we selected snowballing would be an appropriate technique against keyword-based searching for our thesis. We followed the guidelines to snowballing recommended by Claes Wohlin to perform the snowballing in this thesis [65]. The process of snowballing recommended by Wohlin is described in figure 5.

Fig 5: Snowballing Process for Liteature Search [65]

13

3.2.1.2 Selection of Search Database for Start set It is argued in the research performed by Deepika et al. [66] that the reliability of the snowballing is related to the design of starting set. Wohlin [65] discussed some guidelines on how to select a good start set for the snowballing. Based on his guidelines, we are selecting Google Scholar because of the following reasons: - It provides cumulative and extensive index of other databases. This could be helpful for our topic, wasm. - It includes an unbiased mix of popular and less popular publishing houses. - Quality of publications is of less important, since we are dealing with a limited number of papers and a newer area of research. Moreover, quality could be controlled via the inclusion and exclusion and quality criteria checks.

3.2.1.3 Start set A start set is a set of papers that qualifies the inclusion and exclusion criteria for the selection into the research. The initial search performed on the 28 February 2019 on google scholar. We performed search with the keyword “WebAssembly” in the title. We added additional filter of starting year 2017. Since, this is the official year WebAssembly is released to the public [1]. The main aim of using independent databases such as Google Scholar is to avoid any publishing bias. We found 59 results before applying inclusion and exclusion criterion. We have used the keyword “WebAssembly” because it is the official term coined by the team since its introduction. The scrutiny in selection of our keywords is low, since we are performing a snowball strategy, which helps us identify the relevant articles in research area in the subsequent iterations. We could equate the risk involved in our selection of start set to the risk involved in search-string based literature search [65]. Other iterations of snowballing could mitigate these risks.

3.2.1.4 Inclusion and Exclusion criteria for selecting literature Inclusion and exclusion criteria for literature is formulated by the authors to judge the inclusion or exclusion of each article found. Inclusion and Exclusion is applied at every iteration of the literature search, i.e., for selecting initial start set and then on each iteration of forward and backward snowballing. On the search results, first exclusion criteria is applied and then inclusion criteria is applied. Therefore, the literature is first processed for exclusion, eliminated without further steps, remaining papers are then processed for inclusion. Then rest of the studies that does not satisfy inclusion criteria are also excluded. The papers that satisfy inclusion criteria have been manually evaluated before they are finally selected in the snowballing method. As recommended by Wohlin [65] in his guidelines, manual evaluation is carried out in a series of steps, first reading the title, then reading the abstract, and then parts of paper. A full-paper study is done before finalising the selection of the paper for subsequent analysis. Our inclusion and exclusion criteria were on leaner side, as the resultant literature in the research area is also on lower side. If the literature is vast, this literature search could further be narrowed using criteria such as “excluding articles that do not focus on the process of developing software artefact using WebAssembly”. We also supported our inclusion and exclusion criteria with the manual evaluation. The broader inclusion criteria make our search liberal to inclusion. A clear idea of the literature selection is presented in fig 6.

Articles are included if it satisfies all the following criteria: • Study discusses software development aspects or activities such as (requirements, testing, quality, performance, programming) • Study reports an empirical research

14

• Study is mainly focused on WebAssembly (articles presenting review of wasm, or discussing programming in wasm, or discussing executing wasm code in practice) • Study is within the scope of the thesis’ research area

Articles are excluded if it matches at least one of the following criteria: • Studies written in languages other than English. (Used Google Scholar to filter the results) • Patents, Thesis, Citations, and other articles that are not peer-reviewed. (Used Google Scholar to filter the results) • Duplicate studies and studies whose Full text are inaccessible for review • Studies that are published before 2017. (Used Google Scholar to filter the results) • Studies not related to software engineering or computer science. (manual search is applied)

Fig 6: Selection of literature based on Snowballing approach

3.2.1.5 Snowballing Method We conducted a forward and backward snowballing [65] on the given start set and as well as on any new papers found in snowballing iterations. The backward snowballing is performed on the list of references found in the article. The forward snowballing is performed on the list of citations in the Google scholar as of the date 04 April 2019. The process of snowballing is performed in iterations until no new papers are found.

3.2.2 Data Extraction

After finishing the literature search, we have a set of studies that are chosen for SLR. These papers are ready to be studied in detail for the evidences and observations related to our thesis.

15

Our focus for Data Extraction is based on our research objectives and research design. We are aiming to extract following information from each of the articles.

1. Type of the study 2. Results of implementing wasm in practice 3. Types of applications using wasm 4. Views/Experiences of researchers on wasm technology 5. Views/Experiences of researchers on using wasm in practice

The extracted data is not a static step and gives absolute result. Data extraction is first performed and then data analysis is performed on the previously extracted data. Authors refer to original document while performing the coding, in case required for any reference or recall. Hence, our Data extraction and processes are evolutionary till a final consensus is reached in Data analysis phase.

3.2.3 Data Analysis

The data analysis part of the SLR is based on the extracted data of literature. The data analysis part is performed in combination with Case study data using Thematic Analysis. The detailed plan for data analysis, that is combined with Case study is discussed in 3.4.

3.3 Case Study

Case study is well defined as “an empirical inquiry that investigates a contemporary phenomenon within it’s real-life context, especially when the boundaries between phenomenon and context are not clearly evident.” [47]. Thus, making it a good fit for our thesis. We select Axis communications as our case/unit-of-analysis in this study. We select Interviews as our data collection method. Interviews are one of the most popularly used tools for collecting data from a complex subject/phenomenon [46]. We are using interviews because of the involvement of humans in the context; exploratory nature; qualitative data; need for grouping of information; observing a phenomenon; novice experience in given domain; and suitability to the nature of research questions. Other popular data collection mechanisms [49] such as documentation, are not possible in our research as we are studying the perceptions and viewpoints from the practitioners and observing the larger development phenomenon. Due to the scale of observation and exploratory nature, the collection of data could be done faster, concise, and relevant by means of interviews.

3.3.1 Case Description

The video analysis development at Axis communications involves multiple teams that are self-structured based on their team’s function. Teams are free to implement their own development practices, and decide upon the choice of tools, for the projects they take up. The development scenario at Axis communications consists of multiple layers of abstraction, with multiple teams working at each layer. Based on our understanding, we could summarise these layers and teams as follows, • Services Team, handles the client-side interactions and providing the different client functionalities for example: retrieving data from database, managing cloud systems (there are multiple teams inside services team)

16

• Applications team provides direct support for the specific video analysis applications and responsible for development and maintenance of the applications. • Algorithms team provides necessary algorithmic support for the applications. They work on efficient algorithms that run inside the video analysis applications of Axis communications. • Service provider team is responsible for developing firmware related service hooks to the layers above it. • Firmware team handles the firmware development for the hardware involved in video analysis. The video analysis software contains a lot of legacy code and so the code often has dependency issues. And the practitioners at Axis communications use open source tools as much as possible.

3.3.2 Objectives of Interviews

Following are the objectives of interviews, • To understand the current development process of video analysis at the case company. • To find various challenges, bottlenecks, personal concerns in the current development environment from the views of practitioners. • To perceive and discuss the idea of using wasm in the current development. • To understand the technological and managerial aspects involved in using wasm for development at the case company.

3.3.3 Selection of Interview Subjects

We have chosen convenience sampling for our interviews [67]. As our unit of analysis is a large-scale organisation, we have searched for the appropriate set of subjects from the list of many different departments at Axis. With the help of our industrial supervisor, we personally approached various departments at Axis currently working on the Video analysis software development. We arranged meetings with some key individuals at Axis and discussed various aspects of thesis and tried to understand an overview of some of the departments working on video analysis at the company. It is not easier for authors to have full picture on the departments before the selection decision. Therefore, we approached some of the new participants as we took interviews. And based on the suggestions of current participants.

The main aspect of our selection of interview subjects is diversity and inclusion. We must make sure our end selection set comprises of individuals from all the teams and responsible for different roles in the teams. It can be either a manager, or developer or maybe a tester. We are trying to count in all possible views. Another main aspect for the selection is to make sure the individuals in the team have a good knowledge on the project. So, we have approached a manager, or a team lead in each department for identifying the individuals who are highly experienced and has relatively high amount of knowledge on the projects. We planned to take interviews from the key individuals, as most of our study is mainly perceptions and views. We anticipated these subjects are very much capable of accessing the scenarios with the amount of knowledge they possess on the development.

3.3.4 Interview Specification

17

The first step of our interview is preparing interview questions. We have formulated our questions based on the focus areas we defined. We chose to implement semi-structured questions for our interviews. Our interview is structured in five parts. 4 parts contains the questions that are based on the four objectives that are defined in 3.3.2 and one part is where the authors introduce and show an example of the WebAssembly technology to the practitioners. The interview questionnaire is presented in Appendix 4.

These questions were not only reviewed and discussed beforehand but also reviewed and updated while taking the interviews. Some of the questions were also slightly adjusted according to the background of the interviewing subject. The transcription of the interviews was made through the audio recording on two separate devices and with the additional step of sending the transcribed data back to the candidate for the review. We have planned to take this interview in 5 parts which are more like phases of interview. First step after identifying candidates is to send the invitation of our interviews. We introduced ourselves and wrote about our objectives for the interview and scheduled interview in a face-to- face approach. Before the interview starts, we have communicated the important aspects such as data consent, how the data is handled and said we will be preparing the transcript and sending them for review. Also said that the participants are free to review the content of the transcript and able to add additional details, remove or change before we process them. For the introduction of the technology, first we gave the participant some brief on the WebAssembly technology, on aspects such as the main objectives for wasm, who are working on the technology – founding team, examples of different use cases and experiments conducted by different persons, the procedure to write or cross-compile in WebAssembly, tool support and the current status of fulfilment from the founding team. We then showed a live project called WebSight [68]. It is a demonstration that runs facial recognition algorithm, entirely on the browser. The project uses face recognition function from OpenCV [69] algorithm and runs it in three different languages: asm.js, JavaScript and WebAssembly in separate web workers. The example also indicates the framerates of each to compare. The intention of this demonstration is only to introduce the technology to the participants and shall not be misunderstood with the demonstration of wasm technology itself. We have used the demonstration as only a visual tool for practitioners to experience. After making this introduction we asked our final part of questions about the technology. The intention of this demonstration is only to introduce the technology to the participants and shall not be misunderstood with the demonstration of wasm technology itself. We have used the demonstration as only a visual tool for practitioners to experience. Figures 7 and 8 shows the screenshot of WebSight.

18

Fig 7: WebSight – Demonstration of face recognition implementation on a Video

Fig 8: WebSight – Demosntration of Face recognition implementation on an Image

3.4 Data Analysis (Theoretical Model Creation)

As we have previously discussed in section 3.1.3, the contribution of our thesis is going to be a variance-based theoretical model that indicate the factors that influence the adoption of wasm at video analysis software development industries. The data from the SLR and Interviews is analysed using Thematic Analysis. The usual coding process is followed using Braun and Clarke guidelines [70] to separately analyse the codes that emerge from SLR and Interviews, before combining them to form high-level themes.

19

The usual coding process is resulted into certain codes and themes connected to the research questions. Through this process we are making some high-level themes, but we expect it cannot be better explained in terms of adoption of a technology. Hence, we would be connecting these codes to the high-level themes inspired by UTAUT model [36] . The themes from these codes are made using the UTAUT factors, that influence the adoption of a technology. And a supplementary discussion is also made regarding the differences between the types of results from both the data points. The overview of the Acceptance model and UTAUT factors are presented in figures 9 and 10.

What is UTAUT, Why its suitable? - UTAUT model is a culmination of different models suggested for understanding the phenomenon of technology acceptance on user level. - It consists of four key factors (performance expectancy, facilitating conditions, social influence, and effort expectancy) that are empirically proven to predict the individual behaviour towards use of technology. - Several studies in various domains of research implements UTAUT model for predicting the adoption behaviour of the users [71], [72]. - This model is verified to show 77% of variance in predicting behavioural intention and 52% of variance in predicting use of technology [73] (predictability of UTAUT (65 to 70%) is higher than the existing models TPB – 40 to 50%, ISDAM - 63%) . - In software engineering several studies such as [28], [74], [75] also used UTAUT to explain the developer’s intention to adopt a certain technology. - UTAUT is found to be effectively predicting pre-adoption user behaviour better than other models [76]. - UTAUT is intended to study the adoption behaviour at individual level [76].

Fig 9: Understanding the User Acceptance Models [36]

20

Fig 10: Actual UTAUT model [36]

3.4.1 Chain of evidence and Coding strategy

We perform coding on the interview transcripts and extracted data from SLR. These codes are then grouped into themes in a 3-level hierarchy. The codes are first grouped into appropriate Characteristic Themes. These themes are further connected with Sub themes – which are factors identified in UTAUT i.e, Performance Expectancy, Facilitating conditions, Social influence, and Effort Expectancy. These subthemes are then connected to our main of the research i.e, “Factors influencing adoption of wasm in video analysis development”.

21

Fig 11: Chain of Evidence and Coding Strategy

_

22

4 METHOD EXECUTION

4.1 SLR Method Execution

4.1.1 Finalised Start set As stated in 3.2.1.3, we performed search on Google Scholar with the keyword “WebAssembly” in the title. The search returned with 59 (including citations) and 41 (excluding citations). The citations are removed using the search filter in Google Scholar. The actual search was performed on 28 Feb 2019. These search results are extracted and stored locally, due to the dynamic nature of the Google Scholar’s search index [77]. The resultant set of Keyword search is reported in Appendix 1. On this resultant set we have performed exclusion criteria. First the results in non- English language are removed (15 results). Next, non-peer reviewed articles such as thesis, lectures and drafts are removed (4 results). Next, duplicate studies in the set are removed (2 results). Next, studies that are published before 2017 are removed (0 since we already applied this filter in the search). Next, any results that are not related to software engineering and computer science domains are removed (0 results). After the exclusion steps, the search results are now reduced to 20 results. The resultant candidate set is presented in table 1.

Table 1: Candidate set after performing exclusion on Keyword search Candidate Title Reference C1 A Program Logic for First-Order Encapsulated WebAssembly [78] C2 Accelerate JavaScript applications by cross-compiling to [79] WebAssembly C3 Bringing the web up to speed with WebAssembly [1] C4 Chromatic: WebAssembly-Based Cancer Genome Viewer [80] C5 Compiling Faust audio DSP code to WebAssembly [81] C6 Constant-time [82] C7 Efficient two-level homomorphic encryption in prime-order bilinear [3] groups and a fast implementation in webassembly C8 Faust domain specific audio dsp language compiled to webassembly [83] C9 Mechanising and verifying the WebAssembly specification [24] C10 Poster: Towards WebAssembly for Wireless Sensor Networks. [84] C11 ReWaMP: rapid web migration prototyping leveraging webAssembly [85] C12 Schism: A Self-Hosting Scheme to WebAssembly Compiler [86] C13 Sparse matrices on the web: Characterizing the performance and [87] optimal format selection of sparse -vector multiplication in JavaScript and WebAssembly C14 Taint tracking for webassembly [88] C15 Taintassembly: Taint-based information control tracking for [89] webassembly C16 Technical perspective: WebAssembly: A quiet revolution of the Web [90] C17 Wasabi: A framework for dynamically analyzing webassembly [91] C18 WATT: A novel web-based toolkit to generate WebAssembly-based [92] libraries and applications C19 WebAssembly and JavaScript Challenge: Numerical program [93] performance using modern browser technologies and devices C20 WebAssembly AudioWorklet Csound [94]

23

These papers are scrutinised with inclusion criteria. Only two papers (C1 and C16) are eliminated after applying inclusion criteria, as all other candidates satisfy the inclusion criteria. C1 is failed for inclusion because, it is a technical paper without any discussion on the research area’s scope. C16 is failed because the paper is not an empirical study. Next, a manual review of full paper is performed on this candidate set. The manual evaluation is performed independently by both the authors, and we also asked our supervisor to review these articles. After the review, we reached on a consensus to eliminate one article. C5 is an old version of C8, and both the papers report mostly same set of results by same set of authors on same project. Hence C5 is removed. The finalised start set contain 17 papers (presented in table 2). These papers are directly included for the Data Extraction.

Table 2: Start set for Snowballing ID Title Accelerate JavaScript applications by cross-compiling to S1 WebAssembly S2 Bringing the web up to speed with WebAssembly S3 Chromatic: WebAssembly-Based Cancer Genome Viewer S4 Constant-time webassembly Efficient two-level homomorphic encryption in prime-order bilinear groups and a fast implementation in webassembly S6 Faust domain specific audio dsp language compiled to webassembly S7 Mechanising and verifying the WebAssembly specification S8 Poster: Towards WebAssembly for Wireless Sensor Networks. S9 ReWaMP: rapid web migration prototyping leveraging webAssembly S10 Schism: A Self-Hosting Scheme to WebAssembly Compiler Sparse matrices on the web: Characterizing the performance and optimal format selection of sparse matrix-vector multiplication in S11 JavaScript and WebAssembly S12 Taint tracking for webassembly Taintassembly: Taint-based information flow control tracking for S13 webassembly S14 Wasabi: A framework for dynamically analyzing webassembly WATT: A novel web-based toolkit to generate WebAssembly-based S15 libraries and applications WebAssembly and JavaScript Challenge: Numerical program S16 performance using modern browser technologies and devices S17 WebAssembly AudioWorklet Csound

4.1.2 Iteration 1

4.1.2.1 Backward Snowballing In iteration 1, we examined in total 430 results in backward snowballing. After applying inclusion and exclusion criteria, we found one paper to add to our research (see table 3 below).

Table 3: Literature added to SLR after backward snowballing in Iteration 1 ID Title Reference S18 Efficient Pose Tracking from Natural Features in Standard Web [95] Browsers

24

4.1.2.2 Forward Snowballing In the forward snowballing process, we examined in total 105 results. After applying inclusion and exclusion criteria, we found 6 new papers. These papers are approved for adding to our research. The papers we found are reported in table 4 below:

Table 4: Literature added to SLR after backward snowballing in Iteration 1 ID Title Reference S19 Efficient Pose Tracking from Natural Features in Standard Web [96] Browsers S20 CT-Wasm: Type-Driven Secure Cryptography for the Web [4] Ecosystem S21 Numerical Computing on the Web: Benchmarking for [97] the Future S22 Universal Web-Based Tracking for Augmented Reality [5] Applications S23 Madoop: Improving Browser-Based Volunteer [98] Computing Based on Modern Web Technologies S24 Not so fast: [99] Analyzing the Performance of WebAssembly vs. Native Code

4.1.3 Iteration 2

4.1.3.1 Basis of Backward In iteration 2, we examined in total 310 results in backward snowballing. After applying inclusion and exclusion criteria, we did not find any relevant papers for review.

4.1.3.2 Basis of Forward During the forward snowballing, we examined 11 papers. After applying inclusion and exclusion criteria, we were not able to consider any relevant papers for review.

4.2 Case study Execution 4.2.1 Sample size and Demographics

We took 10 interview sessions with 13 practitioners working currently in video analysis development projects at Axis. The average length of the interview session is one hour. We took some interviews face-to-face and we took some interviews via . The participants of the interviews are briefly communicated about some of the aspects (like the focus areas) we would like to cover in our study in the invitation mail. After the start of the interview, we introduced ourselves and introduced the study area. Participants are then given information on data confidentiality and the ability of the participants to access their transcript and to review them. We conducted the interviews as detailed in Interview specification (section 3.3.4). • Interview 1 took place with participant P1. Participant 1 is from department D1 at Axis. He is a front-end developer working for 3 years in the current department and previously worked at another departments at Axis. Previously worked at another

25

reputed electronics company developing mobile browsers software. In total the participant has around 7 years of experience at Axis and around 10 years of experience in his professional career. • Interview 2 is conducted with participant P2. P2 is from department D1 at Axis. This participant is also a front-end developer with focus on UI design among other roles. P2 is working at his current department for more than 2 years. Participant has previously worked as freelancer developing web applications. • Interview 3 is conducted with participant P3. P3 is from department D2 at Axis. Participant is a backend developer at the current department at Axis. The participant is working in current department in Axis from 2 years. And he/she previously worked as an embedded developer at a prominent wireless network infrastructure company. In total he/she has a professional experience of 7 years. • Interview 4 is conducted with participant P4. P4 is a manager for the department D2 at Axis. Working as a manager to the current company from 6 months. Previously worked as a service manager at an e-commerce solutions development company. In total the participant has an experience of 5 years. • Interview 5 is conducted with participant P5. P5 is a frontend developer at department D2 at Axis. Participant is working at current department for 2 years. Previously worked at a government organisation developing web-based e-learning portal for students as a full stack developer. And has freelancing experience of 1.5 year. In total the professional experience of the participant is 4.5 years. • Interview 6 is conducted with participant P6. P6 is a backend developer at department D3 at Axis. Participant is working at current department for 1 year. Participant has started his professional career at Axis in the current department. The total experience of participant is 1 year. • Interview 7 is conducted with participant P7. P7 is a backend developer at Department D4 at Axis. Participant has been working for different projects at the same company as a consultant and now as an engineer from 2011. Participant has started his professional career at Axis after graduation. • Interview 8 is conducted with participants P8, P9, P10. These participants are from department D5 at Axis. The participants are backend developers working mainly with core development activities related to video analysis application at Axis. • Interview 9 is conducted with the participant P11. P11 is a backend developer at department D2. The participant is mainly a developer coordinating the development of a video analysis application at Axis. • Interview 10 is conducted with the participant P12. P12 is a backend developer at department D6 at Axis. D6 provides the under-the-hood services for developing video analysis applications at Axis.

Table 5: Demographics of Interview Sample Department Participants Interview D1 P1, P2 1, 2 D2 P3, P4, P5, P11 3, 4, 5, 9 D3 P6 6 D4 P7 7 D5 P8, P9. P10 8 D6 P12 10

4.2.2 Transcription of Data and Coding

After making the interview transcriptions, we had to manually perform the transcription of

26

the audio clips we recorded in the interviews. We would like to do it manually as it would make us think about the possible themes or connections while transcribing the text and give us some idea on how to proceed further with data analysis. We made note of some of the themes that arise during transcription. An example of transcription and coding on a sample data is shown in table 6.

Table 6: Example of Transcription and Coding Transcript Coding Speaker: So I think but it would be nice to write it in a Rewriting code in another language is necessary. different language. But we’re using some legacy code and some new code, so it’s hard to know if it could be The project is nearing its end. worth to rewrite. Author: So have you planned anything through The Team is aiming to deliver the best model as they can for the release deadline of the client. meetings or discussion for this in future or what happens? Team aims to withdraw support for the Speaker: No, this project is nearing its end, so right application. now we have decided to just work on the models and then we’re preparing for the release of the new applications from the video analytics. Our deadline is to get the best model that we can before they [other department] release the application and then we’ll come back to this project in the future, so we’ll not continue working on it forever, we want to stop as soon as we can.

4.3 Data Analysis Execution

4.3.1 Data Statements and Codes

Statements are the units of data that are extracted from the literature study and the interview transcripts that are analysed. We assign the codes that are relevant to each statement. Codes are the unique identifiers of the type of data inside the statements they are representing. Each statement is sometimes coded to multiple codes. And in case of difficulties in fitting a statement in certain code, it was mapped to all the possible codes, even if it is partially satisfying. In this method we coded all the found statements to any of the codes. This way we could avoid any loss of evidence at the initial stage. We have extracted 67 codes from the literature and 54 codes from the interviews.

27

Fig 12: Working example of theming SLR statements to codes

Fig 13: Working example of theming Interview statements to codes 4.3.2 Fitting codes into themes We are creating 3 levels of hierarchies in the themes. The MAIN THEME is “Factors that influence adoption in wasm”. Main theme corresponds to the our Research Question. The main theme “factors of adoption” is further classified into 4 SUB THEMES. They represent the factors of UTAUT, Performance Expectancy, Facilitating conditions, Social influence, and Effort Expectancy. The subthemes are further classified into CHARACTERISTIC THEMES. These are the themes formed from the grouping of certain codes that explain a common phenomenon. The obtained codes from SLR and Interviews are presented in Appendix 2 and 3. The full mind map of theming is presented in Appendix 5.

28

Fig 14: Working example of fitting codes into themes

_

29

5 RESULTS In this section we will present the end results of our thesis. First, we will discuss the nature of the data sample in more detail for each data collection method. Then, we will then define the subcategories of data for each aspect of our research and describe the coded data for each category in detail. Appropriate quotations and references of data behind the codes is presented inside the categories.

5.1 Overview of Results As we explained in section 3.4. (Data analysis design), we have categorized the data from literature and interviews into various sub themes and characteristic themes. In fig 14, we present the final themes to answer the factors to consider for adopting wasm in industry. We have obtained 121 codes that are organized into 16 characteristic themes and 4 subthemes that are inspired from the UTAUT model.

Fig 15: SubThemes and Characteristic Themes pertaining to “Factors to consider for adopting wasm”

30

5.2 Sub Themes (UTAUT Model)

As discussed in the 3.4, Here we will present the UTAUT model and let the reader understand how we will be utilizing this model to cohesively synthesize the findings for research question 1. Next we will discuss the factors of UTAUT model, that are directly adapted as the sub themes in our study for the factors involved in adoption of wasm. First, we define these subthemes, before proceeding to discuss the findings in section 5.3.

5.2.1.1 Performance Expectancy Venkatesh et al. [36] defined the performance expectancy in UTAUT as the “degree to which an individual believes that using the system will help him/her to attain gains in job performance”. The original definition in UTAUT has been worked around “gaining job performance”, could be due to the need for generalising the technology user, that may not be necessarily a software developer. In our thesis, we shall be required to keep the “individual gains in job performance” as a constant for making it easier to analyse the actual benefits/limitations of wasm comparatively with the existing software development techniques. The other reason is because the study is in pre-adoption phase and the developers might not be ready to assess the “individual gains in job performance”. Moreover, usually in software engineering studies, productivity of developers is correlated to the performance gains of actual technology that they are using [100]. Thus, we define the Performance Expectancy as “the degree to which an individual (practitioner/researcher) believes that using the system/technology (wasm) could improve the performance of the resultant software artefact (Video analysis)”. This definition could hold well for our research context to study the adoption of a technology to develop a given artefact from the view of practitioners.

5.2.1.2 Facilitating Conditions Facilitating conditions is defined in UTAUT model as “the degree to which an individual believes that an organizational and technical infrastructure exists to support use of the system”. This definition is formed by combining three constructs, perceived behavioural control, facilitating conditions, and compatibility, as described in the [36]. The common idea behind all these constructs is to observe the opportunities in the workspace that basically facilitate towards the use of given technology. To explain it better, we use a familiar example. Facilitating conditions are the different opportunities involved in the context of the world, that enable the use of smartphone by the humans. Such as: cellular network speeds, size of processors and demand for portable computing. In the context of our research, only the “existence of organisational and technical infrastructure to support the use of given technology” might not able to capture the attributes of both the technology that’s being used and the artefact that’s being developed. To simply put, the existing definition could enable us to study only one phenomenon, while keeping the other constant. Hence, to completely capture the Facilitating conditions, we need to observe both aspects while keeping the other constant. Hence, we define Facilitating conditions in two definitions. 1. “the degree to which an individual (practitioner/researcher) believes that attributes of the system (wasm) supports the development of software artefacts for the given organisational and technical constraints”. 2. “the degree to which the individual (practitioner/researcher) believes that the given organisational and technical constraints support the use of the system (wasm) to develop the software artefacts (video analysis)”

5.2.1.3 Effort Expectancy The original definition of UTAUT model for Effort expectancy is the “degree of ease associated with the use of the system” [36]. Though this is an easy and straight forward definition to categorise with, we shall also look at how it will align with the previous definitions and verify how it fits current research context, or if we are missing something in this definition. In performance expectancy, we changed the “gains in job performance” to “gains in

31

performance of final software artefact”. In Facilitating conditions, we changed the “support from organisational and technical infrastructure” with “support from system (wasm) attributes towards organisational and technical constraints” and vice-versa. Similarly, in the case of effort expectancy, “ease of using the system” itself might be not possible to explain without considering other variables involved in the research context. Studies such as [101] that used UTAUT in software engineering context observed that performance expectancy and effort expectancy are often interchanged. In our research context, the effort expectancy can be well defined by “the degree to which the individual (practitioner/researcher) believes that using the system/technology (wasm) could reduce the effort in developing the resultant software artefact (video analysis)”. To elaborate a bit more, Effort expectancy consists of factors such as: ease of using the actual system/technology, the programming effort involved in development scenario, ease of testing and degree of automatization.

5.2.1.4 Social Influence The original definition of Social influence in UTAUT model is [36] “the degree to which the individual perceives that [it’s] important, others believe he or she should use the new system”. In the context of our thesis, we are reworking on the original definition as “the degree to which the individual (practitioner) perceives that [it’s] important, others believe he or she should use the new system/technology (wasm) for developing the software artefact (video analysis)” The “others” in the definition could simply either the colleagues, cross-functional teams, management, competitors, or other organisations. To simply put, we collect the information on the aspects of people or organisations that endorse the development of software artefacts using the given technology.

5.3 Characteristic Themes

Based on the definitions given for the Sub themes, we have mapped the codes with the appropriate subthemes. Based on the Braun and Clarke thematic analysis guidelines [70], we have then commenced our iterations for moving the codes around, - created characteristic themes based on the definitions of sub themes - created characteristic themes based on the data grouping formed from codes - added additional codes from the statements found based on the sub themes and characteristic themes - Noted down new codes that are evolved from the existing data - Copied the codes under original characteristic theme to other characteristic themes if they are relevant to facilitate the evidence in that characteristic theme.

This process is performed till it reached saturation.

In table 7, we presented definitions/descriptions of the characteristic themes and then we proceed to discuss the codes and the information found in the gathered data.

Table 7: Descriptions of Characteristic Themes Sub Theme Characteristic Description/Definition Theme Performance Performance The degree to which an individual Expectancy Improvement (practitioner/researcher) believes that using the system/technology (wasm) could improve the end performance of the resultant software artefact (video analysis)

32

Performance The degree to which an individual Consistency (developer/practitioner/researcher) believes that using the system/technology (wasm) could improve the performance consistency of the resultant software artefact (video analysis) Facilitating Suitability The attributes that identify the match between the Conditions characteristics of the system/technology (wasm) to the characteristics of the organisational and technical constrains for developing software artefacts (video analysis) Portability Characteristic of a programming language (wasm) to (Cross- easily cross-compile into other programming languages. compiling) Tools The abundance of development tools for the certain Availability programming language (wasm) to facilitate its adoption for developing software artefacts (video analysis) Portability We refer to offloading as “moving the execution of (Offloading) programs from one hardware platform to the other”. For example, moving certain parts of the code that was initially designed to run on a specific processor cores, or platforms, or hardware, but the code also has the ability to run on different platforms, without much effort.

Security The degree to which the individual (researcher/practitioners) believe the use of wasm could provide better security features in the resultant software artefact. Cross- Cross-functional development refers to the development functional paradigm where the otherwise siloed development teams Development shall need to collaborate with each other for developing same software artefact (video analysis). Cross functional teams work with a common, software design, architecture and using same tools for developing the software artefact. Compatibility Compatibility of a technology (wasm) for adoption shall be also judged based on its compatible features. Where suitability is matching certain traits or properties to the appropriate situation (macro level), compatibility looks whether an absolute match is present or not (micro level).

Social Competitor Competitor analysis is to identify the strengths and Influence Analysis weaknesses of the competitors (to wasm) in a field (video analysis) and understand the potential opportunities and threats. User sentiment User perceptions are the personal views of the researchers/practitioners who would be using the technology (wasm) that is under test for adoption. Community Outlook of the community of contributors for an open- Outlook source technology (wasm) is also an important factor to determine the social influence. This theme would collect the information related to the community functioning, stakeholders involved, activities, objectives, and goals – to name a few.

33

User Outlook Another side of the coin for any successful open source project is the outlook of the users and user base. In this theme we collect the information related to the users of the language. What use cases they utilize wasm for and size of the userbase – to name a few. Effort Complexity Complexity refers to the difficulty of accomplishing a Expectancy certain task. In the context of our thesis, complexity refers to the ease of developing video analysis software using WebAssembly language. Testing Effort Testing effort is the amount of effort required for testing a software artefact. In the context of our thesis, testing effort collects all the information related to the ease of testing the software artefact, if wasm is used to develop video analysis software. Maintenance Maintenance effort is the is effort required for maintaining Effort a software artefact. In the context of out thesis, this characteristic theme collects all the information related to maintenance of video analysis software developed using wasm

5.3.1 Performance Expectancy

5.3.1.1 Performance Improvement Performance improvement is defined as “the degree to which an individual (developer/practitioner/researcher) believes that using the system/technology (wasm) could improve the end user performance of the resultant software artefact (video analysis)”.

Data from SLR: In the SLR, performance improvement is discussed in the forms of: “Frontend page load time”, and “Difference in runtime between same software written in different languages”. Performance improvement is extensively studied in the literature.

S1 evaluated the performance between “optimized version of js code using wasm” and “normal js” execution. The evaluations show consistent performance levels in running multiple instances. And some kinds of code showed more improvement than others. Some reasons for higher performance (on wasm implementation) was proven to be the “ability of identifying data types” and “ignored array boundary checks”. S2 evaluated the performance between “native execution” to “wasm code run on Chrome and ”. The evaluation on a benchmark suite shows all the benchmarks were below 2-times the speed of native execution and 7 out of 24 benchmarks were within the delta of 10% of the native execution. S6 has observed the performance of wasm code when executed natively is significantly slower than C++ and LLVM IR codes. And the Authors did not specify any reasons for this and left this to be studied later. Similar results were drawn in [102], with the difference varying from 2X to 30X the speeds of native code (C++ code on computer’s OS). S24 has performed a study on executing Unix software applications on web- platform using wasm. They studied the difference in performance between both platforms. They found that the applications running on web are slower by 50% - 89% margin on browsers; with the peak slowdown of 3.14x the native execution. Their study also analysed the difference in performance, that showed three main reasons for the slowdown: increase in code size, increase in register pressure, and the increase in branches. S22 is a study conducted on performance of AR applications on native and browser environments. The results show the similar difference as seen in other literature. On an average, the performance of browsers is 36.9% slower than the native execution.

34

S16 reports the extensive benchmarking performed across various platforms and devices. The testing used Emscripten to convert the native C code into web assembly and run on built-in/default compilers and interpreters in the browsers. Results show 5 out of 12 tests did run faster than native C execution. On average the web-assembly code is executed at the minimum 0.75X the speed of native C across the different devices.

Data from Case Study: In the case study, performance is discussed in the forms of latency between the frontend and backend systems. The practitioners are interested in investigating whether wasm could reduce the latency while handling the calls with backend systems. Few practitioners like P2 and P5 also viewed that trading off Javascript for wasm is not a good idea as they consider the developments in frameworks of JavaScript provide much better support and performance. They explained the role of web computing in current development is not computation heavy; thus, making it unpractical to use wasm for existing development scenario. Practitioners have also mentioned certain software code is executed on a dedicated embedded chip on the devices for greater performance that cannot be achieved by using other methods. Also, practitioners prioritized having reliability and maintainability qualities of the code more than the performance jump. “no not really, we are working with react and there are many react libraries out there so whenever there is something very specific we want to do, usually it’s just a matter of figuring out what to google in order to find what you are looking for, but there are libraries out there that help with almost everything. I think use case for web assembly might have been if you were doing lets say a plug in for Firefox or Chrome or may be if you were doing , like you said just now very complex real-time rendering and you know like video games or if you were making really complicated things then you might have performance issues with JavaScript in which you would prefer web assembly but, you know 0.01% improvement in performance you are not going to notice it anyway. So in 99% of all the projects you'll work on maybe you'll be fine with Java Script, 1% you might need web assembly.” – Interview 5

5.3.1.2 Performance consistency Performance consistency is defined as “the degree to which an individual (developer/practitioner/researcher) believes that using the system/technology (wasm) could improve the performance consistency of the resultant software artefact (video analysis)”. Performance consistency deals with the consistency levels in the performance output. Data from SLR: Evidences show that wasm has outputted consistent performance in terms of processing when compared to the other languages such as JavaScript, asm.js and other frontend technologies. The improved consistency is the essential factor for determining the usability of the frontend applications such as videos, games, simulations and encoding. Literature has shown that wasm is less affected by the JIT optimizations that the browsers use to run the frontend code on the user computers. This could mean more consistent and expected performance across the variety of computing devices and browsers.

Data from Case Study: Practitioner P7 indicated that user experience and performance consistency are important aspects in their video analysis development. He indicated current issues in providing consistent stream of video to the user and the limitations in existing solutions such as flash and JavaScript.

35

5.3.2 Facilitating Conditions

5.3.2.1 Suitability Suitability is defined as “the attributes that identify the match between the characteristics of the system/technology (wasm) to the characteristics of the organisational and technical constrains for developing software artefacts (video analysis).” Since, there are not any relevant literature found to that studied the developing video analysis software using wasm, we did not find any codes that relate to suitability from SLR. Data from Case Study: Practitioners have made several arguments relevant to suitability. Participants P3 and P5 has pointed out that the hardware used for video analysis are semi-embedded and they can run complex software. Thus, they do not have any need for using WebAssembly (for additional processing power), by doing things any differently. They expressed that the requirements of client and the use cases mainly determine the suitability of the given technology. P5 also reported that the "increased performance" of wasm might be less important considering the "enough capabilities of latest chips" in the existing development scenario. P2 and P5 viewed the "running video analysis software on frontend" using wasm could lead to "moving large amounts of data" between backend and frontend, which is "expensive". P5 also pointed out that "increased performance" of wasm is less important considering the equally good "performance of react framework" that is currently being used for video analysis s/w development. P7 also expressed the difficulty levels of cross compiling the software code to wasm. We discuss this aspect in better way at the effort expectancy. Some practitioners also viewed that they could utilize the wasm as a development tool in the "existing process" of developing video analysis software. P1 mentioned that suitability would be affected by the "share of process intensive code" inside the actual software. P12 and P6 stated that by using wasm as an emulator of device, they could "speed up" the debugging process in the current development process. Some practitioners put their opinions that, using wasm for video analysis software require both the hardware devices and the client systems (where this code is executed) to run simultaneously and continuously, in certain use cases, which is not feasible. Participants of D3 also has concerns over the idea of implementing sensitive video analysis on the client side. “As an experiment it would be cool. If these are all the algorithms that are implemented in hardware for the camera and then we can just run them by compiling it somehow for web assembly instead, if we could have a mapping in between there that would be really cool, but I'm not sure if it be doable. So at least for the like production application I don’t think more computations in the browser would help us.” – Interview 6 “I don't think so, because the back end so to speak, they are already developing in C & C++ which is already very low level. So, web assembly would be something equivalent to that. No. I do not really see a reason to move that there. I think web assembly has a very niche area where you want to do things on the front-end, but the task demands very high performance for something that is complex. That is what I think. And I think either we are already doing it on the back end with C++ or other low-level languages or there is no need for something on the front to be done that is complex.” – Interview 5

5.3.2.2 Portability (Cross-compiling) Definition: It is defined in our thesis as the “characteristic of a programming language to be able to easily execute the programs across different kinds of hardware or software platforms”. Each programming language is designed to make sure it is accessible across a certain device spectrum with certain specifications. For example, separate JVM compilers shall be designed for different processors to run the code written in Java [103]. This compatibility determines the share of the hardware and OS platforms the written language code can be executed upon.

36

Context: In the context of our current thesis, the adoptability of wasm shall be determined by verifying whether the specifications provided by the wasm will be compatible to the hardware that is used for executing the video analysis software. Data from SLR: Authors in S2, discussed that the code written in wasm is mainly designed to be executed on the Web platform. They also mention that other low-level language implementations are generally based on particular architectures – therefore limiting the code portability. The designers of the wasm language has kept portability as one of the four main goals of the language design. Wasm allows the code to be executed across most popular browsers. One more important information we have known from the literature review, is there is a possibility of running wasm also in background platforms such as node.js. “While WebAssembly is initially designed to run on the Web, it may be deployed in non-Web environnement like NodeJS, or even in standalone Virtual Machines like WAVM, developed in C++, which JIT compile WebAssembly to native code using the LLVM technology. Thus, WebAssembly becomes a portable binary format that can be used in a large variety of situations. This is especially of interest for a DSL language like FAUST.” – S6 S6 has also pointed out the variation of performance across the different and platforms under same scenarios, i.e., same code run on different platforms, but on same hardware. Sometimes this difference is 8 times the worst case to the best case. This kind of inequality should be concerning when dealing with security systems such as video analysis. One reason mentioned by the Authors is the missing of Float denormal handling in browser platforms. The Authors noted the current performance of browser platform is satisfactory and were expecting to improve with the maturity of wasm specifications. Though the wasm gives the ability to cross-compile to different platforms, literature identified the effort required to make this possible is high. We presented further discussion in the characteristic theme “complexity”.

Data from Case Study: Cross-compiling is not directly linked with any codes from Case study. From our experience, we did not infer any development problems that stem from the cross-compiling viewpoint.

5.3.2.3 Tools Availability Definition: We define tools availability as “the amount of availability of development tools for the certain programming knowledge (wasm)” to facilitate it’s adoption for developing software artefacts (video analysis)”. Authors et al has shown that the rate of adoption of a programming language is correlated to the individual perception on the number of tools available for the language. The availability of tools could be the frameworks, libraries, cross-compiling tools, SDKs, and . Context: In the context of our current thesis, the availability of tools is important considering the maturity of the programming language, and the use case safety requirements. The presence of right tools is required for the industry to be able to adopt it. Data from SLR: Literature discusses some tools that are currently introduced for the use in wasm, such as speedy.js, FAUST and Web DSP for the specific purposes of wasm applications. Optimized versions of the language such as speedy.js and CT-wasm are designed for certain use cases. A type checker tool is also introduced for the purposes of static analysis [4]. Other languages such as Rust [22], and Go [104] has natively supported the wasm compilation target. Tools such as Emscripten is also available to cross-compile other low-level languages such as C and C++ [79]. Wasabi is a dynamic analysis tool for WebAssembly language [91]. The working group of the language is working on providing additional tooling support [105]. Another kind of s/w development tools that are developed based on wasm for specific use cases. Also tool known as “WAVM” is available to able to use the language for

37

variety of situations [83]. “Browsix-wasm” is a tool for running Unix code on the browsers based on wasm [99]. “Currently there exists no tool that automatically accelerates web applications through WebAssembly compilation. Therefore, we present Speedy.js, a cross-compiler that translates performance-critical JavaScript/TypeScript code to WebAssembly and generates the necessary glue code to integrate the WebAssembly code inside the conventional JavaScript application.” – S1 “The WebAssembly approach promises near native performances for C/C++ written code compiled to WebAssembly using the Emscripten tool chain. Other languages like Rust (using the mir2wasm 20 tool) experiment with direct WebAssembly generation. It seems clear that as the WebAssembly specification and its implementation stabilizes, more and more languages will directly generate wasm to be deployed in browsers. The question of the code generation quality at each step of the compilation chain will rapidly emerge.” – S6 An interesting observation is made in S6, that the performance (measured in MBs/sec) is decreased when optimized with Binaryen (official tool provided by Working group) against their own tool WAVM. Moreover, they reported optimizing with Binaryen resulted in negligible benefits, as it resulted in only 5% of improvement, compared to unoptimized code.

Data from Case Study: Practitioners mentioned that availability of tools could be one of the important criteria in the evaluation.

5.3.2.4 Offloading Definition: We refer to offloading as “moving the execution of programs from one platform to the other”. For example, moving certain parts of the code that was allocated to run on a specific processor cores, or platforms, or hardware to others. Context: As we discussed in section 1, Video analysis involves cross device and cross-platform software design architecture. So, in this theme, we will explore the information related to offloading such as: possibility of offloading, consequences of offloading and suitability of wasm language for offloading. Data from SLR: One of the main advantages of wasm languages as pointed out in [1] is that how easy it is to run native software written in low level languages such as C/C++ on the web platform by cross compiling the code to wasm. Also, a study performed by the [85] on the practical experience of migrating low-level code written on desktop to web platform using wasm. Author’s experience shows that, the migration is not automated, and requires high-expertise and knowledge on the software [85]. “The experiment showed that C++ experience and knowledge of the legacy UI framework are important. Basic web engineering expertise is helpful but not required. The most difficult task were the expert changes due to required legacy code comprehension.” – S9 Data from Case Study: On the overall aspect of “offloading the current model of development for utilizing wasm for video analysis”, practitioners had mixed opinions. Some practitioners perceive that offloading could decrease the stability of the current software and would not provide any significant benefits by doing so. On the other hand, some practitioners perceive, there could be certain areas of video analysis that could take advantage of wasm but were uncertain on the feasibility. Some practitioners identified exactly where the wasm could be useful in the video analysis. They mentioned that offloading configuration related code to client side could be possible. A richer configuration portal for clients is also possible with wasm. The different perspectives of practitioners on the offloading originate from the different product solutions and different use cases in the company. In our experience, we found two kinds of products one of the products do not have the requirements of performing large-scale video analytics, and the client deploys and uses the whole solution. Here the role

38

of the company is only to provide after support and maintenance. While in other large-scale video analytics, the company manages the devices by retrieving the data to the cloud, performs video analysis, stores, retrieves and connect device data to client. Here, the role of the company is to actively provide the whole video analysis solutions in real-time. The practitioners from former projects are fine with current development as the existing technologies are mature and robust for the given use cases. While the practitioners from later projects, are identifying real challenges in terms of efficiency and real-time analysis of the data, supporting large client base, scaling issues, data storage and data retrieval strains on cloud systems. “no I can’t really see that we could have done that any differently. Some offloading might have been possible, possibly in some situations but, no I think it makes sense to keep the firmware that we have been developing in.” – Interview 3 “Not for our product, I think, because the whole idea is that you do not have a browser, you don't have somebody watching everything. You use the browser as a reactive tool.” – Interview 7

5.3.2.5 Security Outlook In this theme, we will be exploring the information gathered that is related to the security features of wasm language for developing video analysis software. Definition: The degree to which the individual/researcher/practitioners believe the use of wasm could improve the security of the resultant software artefact. Context: In the context of our current thesis, the main use cases of video analysis at the Axis are security companies that deal with the large number of security cameras and other surveillance devices. Hence, security of final product is the most important aspect of its development. Data leaks or compromised security systems will be devastating for the company and its clients. Data from SLR: Literature shows that the security features of wasm language are on par with the other low-level languages and significantly better than JavaScript features. Conrad et al. [4] has introduced a wasm-based cryptography language known as Constant Time – wasm (CT-Wasm). They were mainly motivated by the design features of wasm, and how they might suit the cryptography applications. Features of wasm such as low-level binary code, module system, strong type system, and structured programming are the fundamental blocks for writing secure applications according to them. Micha et al [79] has also introduced a modified version of wasm language, that focused on better performance. Authors have argued that they could be able to further improve the performance by avoiding “array boundary checks and memory default initialization” that are critical for language safety [79]. “Wasm is a low-level bytecode language. This alone provides a firmer foundation for cryptography than JavaScript: Wasm’s close-to-the-metal instructions give us more confidence in its timing characteristics than JavaScript’s unpredictable optimizations. WebAssembly also distinguishes itself through its strong, static type system, and principled design. Specifically, Wasm has a formal small-step semantics [Haas et al. 2017]; well-typed Wasm programs enjoy standard progress and preservation properties [Wright and Felleisen 1994], which have even been mechanically verified [Watt 2018]. These formal foundations are a crucial first step towards developing in-browser crypto with guarantees of security.” – S20 Data from Case Study: When asked about the criteria they would use to evaluate a language, participants showed concerns over the “sensibility of the code that’s written on client-side” and consequences of writing “sensitive code on client side”.

39

5.3.2.6 Cross-functional development Cross-functional development refers to the development paradigm where the otherwise siloed development teams shall need to collaborate with each other for developing same software artefact. Cross functional teams work with a common, software design, architecture and using same tools for developing the software artefact [106]. Context: Developers at Axis are organised into various departments at Axis. Development of a certain video analysis is not a vertical. Different teams contribute different elements of the software and frameworks, that shall be assembled by another team that owns the code and maintains the final product. A dedicated team for maintenance and bug fixing is also involved. For example, one of the video analysis software suites at Axis involves object detecting code written by another team, testing process involves a person assigned to the project from different team. Data from SLR: Literature from SLR has not discussed on the cross-functional development aspect. Data from Case Study: Participants were excited by the new opportunities wasm would present them if it is feasible to develop video analysis software at the company. And when a sizeable number of teams use it as a programming language. They were excited by the opportunities for the backend-skilled developers to try and test their own code in front- end without much knowledge of front-end. The developers would be able to collaborate between different teams that are involved in the entire stack of the video analysis system and might reduce the dependencies between various languages and versions. “I think it's very interested to see just like unifying what language we can write in, so instead of having dedicated people writing. If you need do something like accelerator then you need to have a C++ developer or something and you need to write this list of application instead, so I think like the use case having like one language you are writing, I find it really interesting” -Interview 6

5.3.2.7 Compatibility Compatibility of a technology for adoption shall be also judged based on its compatible features. Where suitability is matching certain traits or properties to the appropriate situation, compatibility is looks whether an absolute match is present or not. Data from Case Study: Practitioner P6 is interested in the concepts of how efficiently the wasm could handle the databases. The development of video analysis software involves retrieving huge data from the databases for presenting the content to the client, and huge datasets are used to produce the object detection models. If wasm could show better computational performance in handling databases than the current development scenario, its chances for adoption might increase. Practitioners P8, P9 and P10 are interested in knowing whether WebAssembly could access GPUs of the systems. Also, they were interested in knowing whether wasm could support all kinds of processors, since there will be a variety of processors, video analysis is implemented on. P7 is interested to know the support wasm could provide for video streaming and performance of video encoding on the browsers. These concerns are not clearly addressed in literature.

5.3.3 Social Influence

5.3.3.1 Competitor Analysis Definition: Competitor analysis is to identify the strengths and weaknesses of the competitors in a field and understand the potential opportunities and threats [107]. Context: In the context of our thesis, competitor analysis is focused on the techniques or systems that shall be used for accomplishing a task, and what alternatives are present for the given task. To simply put, analysing the alternatives to wasm language.

40

Data from SLR: Literature clearly identifies the areas where the existing technologies are problematic and how exactly wasm can bridge that gaps. The existing technologies are mainly found to be slow, and unsecure [4], [79]. The existing technologies that are available for running software on the web platform such as: Java, Flash have been discontinued due to the major vulnerabilities [1]. Technologies such as ActiveX and NaCL are platform dependent [108], [109]. JavaScript is one of the most widely accepted and supported language currently used in web platform. Asm.js is a highly modified version of JavaScript that is optimized for running process intensive programs on web platform, and with the help of Emscripten the developers could able to port the native C/C++ code to run on web-platform using asm.js. But there are limitations in asm.js such as: overhead due to ahead-of-time compilation, and unpredictable performance due to different JIT compilers. These are a concern for end user experience [79]. Literature has identified, the main design problems with JavaScript such as “focus on ease-of-use”, “larger code size”, “runtime leakage”, “memory leaks”, “multiple implementations of JIT compilers and garbage collectors” and “exposing timing side channels” [[4], [79]. “WebAssembly is a low-level bytecode language newly implemented by all major browsers. The stack-machine language is designed to allow developers to efficiently and safely execute native code in the browser, without having to resort to browser-specific solutions (e.g., Native Client) or subsets of JavaScript (e.g., asm.js).” – S20 “WebAssembly provides near-native and predictable performance, unlike managed languages, such as JavaScript and Java. As of last year, WebAssembly support is enabled in all major browsers, making it portable across different vendors, architectures, and devices, after prior attempts to establish low-level code on the web have failed, e.g., ActiveX, (Portable) Native Client, or asm.js.” – S14 “Modern JavaScript runtimes are extremely complex software systems, incorporating just-in-time (JIT) compilation and garbage collection (GC) techniques that almost inherently expose timing side-channels” – S20 WebAssembly is introduced to overcome the current issues and provide a better alternative, especially for web-platform. Some of the features of wasm are: “low-level binary code”, “type checking”, “focus on performance and security”, “formal semantic structures”, “structured control flows”, lead to the adoption of language for different purposes, despite its young age [4], [79], [91]. Literature also contains comparative studies that analysed the differences in performance of wasm against alternatives. Run time differences between unoptimized code and optimized code (i.e., replacing process intensive functions to wasm) show around 98% – 464% on Firefox and chrome browsers [79]. When deployed the same code on non- frontend platforms using WAVM, we could see wasm is slower by 5% when compared to C++ and LLVM implementations [83]. When normally compiled wasm code is compared with the equivalent C code (without any optimizations), there is not a significant improvement, and slower than the C implementation by around 5% to 40%. And moreover, the specific implementations run with optimizations show slightly better results [83].

On average, previous study show a difference of 10% between the runtimes of wasm vs native execution [4], [93], [99]. This number is also sometimes higher, and there are some limitations that shall be improved for bridging this gap [99]. Experiences of the multi-platform applications such as Csound [94] could be studied in detail for introspection of the competitor technologies such as asm.js or NaCl. Data from Case Study: Based on the interview with practitioners, we came to know they were mostly satisfied with the existing technologies available for developing video analysis software. They did not put forward any major technical limitations that could seek for any new technologies to replace with. Practitioners are majorly using C for backend code to run on the hardware device and using JavaScript and its frameworks such as React for client-side code. The practitioners pointed out that the C has large set of existing libraries and tools and large market of dedicated developers. They also pointed out that the performance of JavaScript is satisfactory for running client-side code (P5). One area of

41

concern reported by D4, is they have been actively looking for technologies that could improve video streaming and video processing areas, and to replace the outdated flash with some other technology. They are trying WebRTC with JavaScript but having scaling problem with number of devices connected per service. They are interested to look at WebAssembly. “Web assembly is also very new, whereas C++ has you know all these libraries, there is a big market with developers already, so I think a migration would be kind of difficult. I don't think you would win much by doing so either. May be in other projects but not the ones I'm part of anyway.” – Interview 5 “Yeah and still streaming from the cloud to the browser and to try to display. We used to have a flash player to display all the video, and that's not that's not a good solution anymore. So, we kind of in a hurry or replacing the flash player with JavaScript you but that's the only thing that was available at the time. We are now using WebRTC but that cannot support streaming more than 16 devices at a time. So, it's always good to be on the lookout for more than these two Alternatives and to evaluate pros and cons” – Interview 7

5.3.3.2 User sentiment Definition: User perceptions are the personal views of the researchers/practitioners who would be using the technology that is under test for adoption. In this theme we will collect all the codes and statements that consists of general opinions, views, and ideas around the wasm technology. By collecting these codes, we could identify the overall individual attitude towards the adoption. Data from SLR: The perceptions of researchers, just from the literature that is considered for SLR is positive. Researchers are interested in the technology. This can be seen because of the number of experimental studies that are already done based on WebAssembly despite it is very new. Researchers performed a variety of studies to evaluate the language against alternatives, and reviewed its design, and taken advantage of migration ability. Data from Case Study: The perceptions of most of the practitioners at Axis is negative. This is because of the lack of need for change in existing development scenario, and lack of major limitations in existing development scenario. Most of the practitioner’s state that wasm is not useful for their current project. And some of them state that there is no scope for using wasm in current project, when some others hint at possible areas which could utilize the wasm in same project. There are contradicting views among participants from same department where some practitioners shared negative views, whereas other participants shared the interest in testing and prototyping. Some participants are interested in the technology and would be interested to experiment with the technology whereas, some are not interested. Some participants also view the technology as something not going to be popular right now. Readers should note that, here we are only reporting the general sentiment of the practitioners without considering the reasons or context behind these views. “But to me, it seemed like it’s very very niche or you know, specific use cases where you would want to use it. Its nothing that will ever replace java script or anything like that except in very very specific high-performance cases. I think, that’s why also I haven't had any really interesting looking it up because I know that’s probably not anything, I’m gonna be working on for the near future, so I’m not very up to date I guess with it.” – Interview 5 “As an experiment it would be cool. If these are all the algorithms that are implemented in hardware for the camera and then we can just run them by compiling it somehow for web assembly instead, if we could have a mapping in between there that would be really cool, but I'm not sure if it be doable.” – Interview 6

42

5.3.3.3 Community Outlook Outlook of the community of contributors is also an important factor to determine the social influence. Community outlook would collect the information related to the community functioning, stakeholders involved, activities, objectives, and goals – to name a few. Data from SLR: WebAssembly is backed by the W3C, and the working group contains the developers from the four major browser vendors: , Mozilla Firefox, and [1]. Initially the idea for WebAssembly is conceptualised by the developers of asm.js at Mozilla and PNaCl at Google chrome [1]. The team is also committed to open source the language. From the literature, we could identify the main design aims of Wasm, i.e., Speed, Compactness, portability, and Safety [1]. The language is currently released to the public, and the working group has been actively working towards several proposals and specifications. Some of the future features that the language is going to support are threading, garbage collection and reference types [105]. Data from Case Study: Practitioners in the interview are concerned over the working group’s commitment to Open source, and the speed of improvements of the language.

5.3.3.4 User outlook Another side of the coin for any successful open source project is the outlook of the users and user base. In this theme we collect the information related to the users of the language. What use cases they utilize wasm for and size of the userbase – to name a few. Data from the SLR: Researchers used wasm to create different kinds of tools such as modified languages (CT-Wasm, speedy.js, Browsix-wasm, TaintAssembly), dynamic analysis tools (Wasabi), serverless cloud architectures (Se-Lambda), audio specific tools (FAUST, Csound), Cancer genome viewer (Chromatic), Augmented reality [5]. Usage of wasm already covers a large spectrum of areas such as health, cloud computing, , Augmented reality, Testing, and semantic reviews. Data from the Internet: From the internet we were able to also collect information about the large users (which we refer to as queen bees) of the technology. Besides, Google, Mozilla, Apple and Microsoft, WebAssembly is also used by eBay [110] and AutoCAD [111] – to name a few.

5.3.4 Effort Expectancy

5.3.4.1 Complexity Complexity refers to the amount of difficulty in accomplishing a certain task. In the context of our thesis, complexity refers to the ease of developing video analysis software using WebAssembly language. Data from the SLR: To run WebAssembly on the web-platform, the code should be instantiated via JavaScript compiler; though the code is run as binary code on the browser [79]. The functions of wasm called as “modules” shall be called using JavaScript. This additional code of JavaScript is called “Glue code”. The wasm file is shipped separately for execution in a binary file in addition to JavaScript files. This binary file is generated via different methods. One method is writing the wasm code in a textual format with extension “.wast”. Another way is to write the program in other languages and cross-compile the original code to wasm binary file with the extension “.wasm”. There is a compilation pipeline that is supported by wasm working team, with the help of Emscripten compiler called “Binaryen”. This pipeline is based on the existing asm.js compilation pipeline. There are also other kinds of tools for optimizing the code for specific applications [79], [83]. Literature also introduces tools such as speedy.js, FAUST, BROWSIX-WASM, [79], [83], [99] show that as if the compilation of the textual code is easier process that

43

could less care about. But this actual step of converting code, i.e., migrating the native code to web-platform is much complex according to the literature [99]. Researchers point out that there is a huge degree of manual intervention for able to execute the code on the browser.

“The Emscripten integration with BROWSIX-WASM required a complete rewrite to support programs compiled to WebAssembly.” – S24

In S9, the author has studied the conversion of a simple desktop software to run on web. Author’s results show around 29% of manual intervention in the total cross-compilation effort. This process is barely autonomous and shows the manual intervention at multiple stages of cross-compilation. This experiment also involves an expert who is also previous developer of the software, which might be influencing the time and effort measurements. The Author mainly points out that the feasibility of migration is highly dependent on the expertise and the development knowledge of the software. S24 also identifies that the cross-compiling process to WebAssembly requires a complete rework to the Emscripten tool. The limitations that were highlighted in [102] have also been strongly emphasized in this study. Applications such as Csound [94] also shares their experience of difficulties in Cross-compiling. It also explains the less amount of dependencies have led to faster cross- compiling process of Csound library into wasm.

Data from the Case Study: Practitioners also point out the same concerns and stressed the importance of cross-compiling external C libraries to wasm.

As part of our case study, we have tried to cross-compile and execute a sample video analysis code into the WebAssembly, before taking the interviews. Doing this cross- compilation was very much beneficial for the succeeding interviews. Our practical experiences with cross-compiling could be a useful source for the practitioners to reflect upon. During this cross-compiling process, we faced several challenges. We took much effort in even setting up cross-compiling environment and were not able to succeed in cross- compiling the final code. We were novice developers without any knowledge of the development at Axis. Our experience could be related to the findings of the S9, where the author has emphasized the importance of having prior development knowledge for the practitioners that are involved in cross-compiling. As we are novice to the domain, our task cannot be completed. Therefore, just from our experience, the practitioners could not comment much on this topic.

5.3.4.2 Testing Effort Testing effort is the amount of effort required for testing a software artefact. In the context of our thesis, testing effort collects all the information related to the ease of testing the software artefact, if wasm is used to develop video analysis software. Data from the SLR: Dynamic analysis tools “wasabi” and “TaintAssembly” are the major developments for testing the wasm code [89], [91]. The structured control flow characteristics of wasm would make the static analysis of the code easier [4]. “Specifically, Wasm provides high-level control flow constructs for branching (e.g., if-else blocks) and looping (e.g., loop construct with the br_if conditional branch). The structured control flow approach has many benefits. For example, it ensures that Wasm code can be validated and compiled in a single pass. This provides a strong foundation for our extension: we can enforce a constant-time leakage model via type checking, in a single pass, instead of a more complex static analysis” – S20 Data from the Case Study: Practitioners were also concerned over the difficulty level of testing before being able to evaluate the adoption of wasm for their use case.

44

5.3.4.3 Maintenance Effort Maintenance effort is the is effort required for maintaining a software artefact. In the context of out thesis, this characteristic theme collects all the information related to maintenance of video analysis software developed using wasm. Data from the SLR: Literature does not include studies that mainly observed the maintainability aspect of wasm. Data from the Case Study: From the case study we came to know how important the maintainability factor for the practitioners at the Axis is. They clearly prioritized maintainability over the performance. “The efficiency and Suitability for language is one part. The other part is what kind of libraries already exists. How much do we have to do [on] our own even if we gain 10% performance if it means 10 times to develop in time, it might not still not be worth it and if it makes maintenance harder.” – Interview 7

45

6 DISCUSSION 6.1 Nature of Data obtained The main goal of performing SLR is to gather the evidence from literature for answering the different facets of Research objectives/research questions that help us to understand the phenomenon of adopting WebAssembly. As described in sections 1 and 3 (introduction and method) we have explained that the data we would like to obtain from SLR is related to the experiences of various researchers on the behaviour of WebAssembly technology in facets of (including but not limited) to such as - experimenting, prototyping, validating, understanding, and theorizing. Out of the 67 codes obtained, 31 are related to the WebAssembly features. We could see codes such as functions, safety features, page load time, difficulty of cross compiling, and comparisons to JavaScript and other existing frontend technologies are discussed more – compared to the rest. Overall, the data obtained from SLR gives the reader an idea on the programming skeleton of wasm, the implementation experiences of wasm, how researchers could be able to use wasm for different use cases. And even for these studies, it is harder to validate since, the findings are limited and the amount of argumentation on the thesis-related aspects is limited, or rarely discussed. Hence, it is harder for us to conclude and discuss with supporting evidences. This is adding more significance and scrutiny to the data analysis. So, we tried our best to report the final data from SLR as clearly as possible with clear objective argumentation on the validity of the statements. The data from SLR is mainly skewed towards the above-mentioned aspects, and to the best of our knowledge, we did not come across a study with a main objective of studying adoption of wasm at the industrial setting. Nor the study with a main objective of analysing the practical implementation of wasm on a certain use case. Also, many of the use case related research papers such as [80], [112] discussed from the point of view of their application, and discussed about the wasm anecdotally, and gave limited insight into the actual development process (especially WebAssembly parts). Literature is majorly discussing: 1. Language semantic analysis and exploring the language features from the perspectives such as security and programming efficiency [24] 2. Papers that present the cross compilers that could translate code written in other language to WebAssembly (schism, wasm16, WATT) [84], [86], [92] 3. Papers that present techniques and tools that could help in development of software in WebAssembly (Speedy.js, Constant-time WebAssembly, Faust, Taint tracking, TaintAsssembly, wasabi, WAAW Csound, CT-Wasm and Browsix-Wasm). [4], [79], [82]–[84], [88], [89], [91], [94], [99] 4. Papers that present the applications of wasm language in different use cases (chromatic, Encryption, efficient pose, WABT, Madoop) [3], [5], [80], [95], [96], [98] 5. Benchmarking/Comparison studies that evaluate wasm with alternative languages [Bringing web up to speed, numerical computing) [1], [87], [93], [97], [99]. 6. Papers that report the actual process of converting a native software on web using wasm [85].

Interviews has helped us understand the scale of video analysis development at the case company. We have absorbed a simplified view of the development at the company and tried to understand the actual software development process. Based on our objectives for interviews, we have collected a total of 54 codes. The codes mainly covered the practical experiences of the video analysis development that SLR is lacking. The data from interviews highlighted the issues such as testability, maintainability, cross-functional development, actual needs of the practitioners, actual limitations in the current development, view on wasm and practitioner’s sentiment – to name a few. We have obtained a diverse data from the company by planning

46

interviews with different departments. The functionality of each department is different and therefore their needs and issues are different. Moreover, it has been interesting to find that these requirements and issues contradicting each other in the development aspects, which we did not expect to happen. The participants come from different backgrounds such as testing, C/C++ developer, frontend developer and Manager, working at different solutions in the video analysis vertical highlights its diversity. The data from the interviews is diverse since we have set basic narrative and obtained more unplanned insights, through semi-structured interviews.

6.2 Potential use of wasm in video analysis domain (RQ1)

From our research we have identified that the use cases requirements define the potential use of WebAssembly in video analysis software development. The use of edge computing, server less architectures, internet of things and 5G proliferation could challenge the traditional video analysis development practices [112], [113]. We have identified several potential uses of WebAssembly in video analysis where the research and Practice can investigate further. WebAssembly as a cross-compiling facilitator: WebAssembly has enabled the path for native applications to execute their code in a binary format, rather than JavaScript. WebAssembly provides more control to the practitioner in the process execution and optimizing their software, thereby increasing efficiency [1]. Several applications such as Faust, Csound, Chromatic and Madoop from the SLR and various projects such as AutoCAD web [111] and Gaming engine Unity [114]. We identified from our case company that the development of video analysis is solution-oriented, and teams focus on specific solution. From the knowledge we have gathered from the interviews, we do not see any major issues that can be solved by running native applications on the web, although practitioners (P2, P3, P5) are interested in utilizing the cross-compatibility for extra performance optimization if possible. WebAssembly as a testing facilitator: Practitioners (P6 and P12) identified the use of wasm as a hardware emulation tool on the web, where the practitioners can test their code without the need for actual devices. WebAssembly for developing complex configuration tool: Practitioners (P3, P5, P19 and P12) identified the use of wasm for developing richer configuration portals for the devices, that run video analysis on a camera and the client interface is responsible for viewing the device responses and configuring the devices. They argued the use of wasm could improve the responsiveness and usability of the client due to the performance advantages of wasm compared to existing technologies. This view of practitioners is also supported by experiences of researchers [4], [83], [94]. WebAssembly for in-browser video analysis applications: Given the performance benefits of the WebAssembly on the web, video analysis applications can be offered as a product for specific applications that target the web platform. Such solutions eliminate the need for any additional installation or platform-specific devices. WebAssembly for offloading certain processes to client side: Practitioners (P6 and P12) has identified that when the video analysis applications are not real-time, or when there is no infrastructure deployed on the client side; there is a possibility to offload or share processing with the client system, for presenting video analysis data as per the client requests and response. They viewed this solution could eliminate the constraints on the devices with limited processing power or running multiple video analysis at a time. WebAssembly as an alternative to Flash and JavaScript: P7 introduced the current front- end implementation of a particular video analysis use case, where they were investigating at alternate technologies such as WebRTC and WebAssembly, for video streaming purposes on client-side.

47

The literature and evidences on the potential use cases in SLR is limited as there is no extensive research done in this regard. Hence, we are limited by the ideas that emerged from the interviews.

6.3 Potential factors that influence the adoption of wasm in video analysis domain (RQ2)

In our thesis, we identified 67 codes from SLR and 54 codes from Interviews that are mapped to the UTAUT model to explain the influence of using wasm in video analysis domain. The data we have collected has their limitations in triangulating the data for each aspect. From the SLR, we have obtained a small set of papers that are focused on only some specific objectives. The variety of papers is presented in 6.1. The results of the using wasm in practice is primarily related to the performance comparisons; but not in the aspects of software development, or actual issues of developing with wasm, or on the concerns that practitioners shared with us in the interviews. There is no discussion found in literature on the themes such as - Testability, Maintainability, Suitability to video analysis domain, cross-functional teams, and cross-compilation issues. On the other hand, from the interviews, we obtained comparatively less data on the themes such as – performance expectancy and security features. In the “performance improvement” theme, we identified the practical performance of the wasm in comparison to other alternatives on various platforms and devices. Overall, studies show negligible performance gains using wasm in some scenarios. And in other major cases, the improved performance of wasm over JavaScript and other web technologies is significant- whereas the performance is low when compared with native execution. Whereas from the interviews we realised the lack of requirement for performance in existing development systems at the case company. In the “Performance consistency” theme, we have obtained the knowledge from SLR regarding the volatile performance of alternatives technologies across different browsers and platforms [97]; when compared with wasm non-volatile performance on the web platform. Practitioners at the video analysis development also identified the need for consistent performance in their use cases. In the “suitability” theme, we identified the overall suitability of the wasm technology to the organisational and technical aspects in video analysis development. The main data in this theme is limited to interviews since, there is no studies on the past experiences of using wasm for video analysis. Based on the views of majority of practitioners at the organisation, Developing video analysis s/w using wasm could be theoretically possible, but it might not a unanimous suit. This is because the attributes of the current development and technical constraints and the attributes of the wasm are not actually the most essential aspects to consider the adoption. In the “Portability (cross compiling)” theme, we do not find any codes linked from the case study. Also, from interviews we did not infer any potential issues in current video analysis development that are related to cross compiling. In the “Tools Availability” theme, we could see the researchers anticipating the availability of more development tools as the specifications and the use of wasm increases. We could also observe that a variety of tools for certain use cases are already available, because of the unique characteristics of wasm on web platform. We could observe this growth as the technology matures. The growth of the tools could be driven by the users of wasm, whose demands are not met by alternatives. In the “Portability (offloading)” theme, we understand that offloading is arguable and highly tied to the context of the development use case. Therefore, we could understand that even though the portability features of the wasm code is a positive sign, other factors such as the “requirements for running 2 devices at the same time”, “performance of wasm for communication latencies”, would be a concern for adopting the wasm for video analysis.

48

In the “Security outlook” theme, Although SLR has presented insights into the security features of wasm, literature could not find an absolute answer to the concerns of the practitioners. Since the current research is based on prototype experiments, and not a practical implementation on large-scale, the concerns over the “sensibility of the code that’s written on client side” cannot be fully answered. Overall, wasm provides better security features when compared to JavaScript. In the “Cross-functional development” theme, we did not find any codes from the SLR. But we have found interesting insights from the participants and individual factors that could influence the adoption of wasm. In the “competitor analysis” theme, we have compared several results and features of wasm with the alternatives. From the observation, we could see the main choice for adopting wasm would lie between using native solution on the device or using wasm on the web platform. In the “User sentiment” theme, we observed the mixed sentiments of the practitioners and researchers. The perceptions of researchers are positive pointing out the performance, new capabilities, choices offered, and features of wasm. Whereas the sentiment of practitioners stem from the maturity of the language and actual use case’s needs. In the “Community outlook” theme, we observed that the commitment of the working group is satisfactory since the stakeholders involved in the language are leading players in the tech industry. We expect the unique features of wasm, its ubiquity and use would further accelerate the progress of the language. In the “User outlook” theme, we observed the growth of user base due to the web-specific features of wasm. In the “complexity” theme, we observed the process of developing software using wasm. Specific issues in cross-compiling, migration, and toolchains are discussed from the viewpoints of the case company and the literature. In the “Testing effort” theme, we observed the practitioner’s need for developing testable code but the actual evidence on the testability of wasm code is not found in literature. In the “Maintenance effort” theme, we observed the practitioner’s views on the importance of maintainable code, but no discussion on maintenance is found in literature.

The key implications from our research study are presented below: Performance Expectancy: Implication 1: Improved performance might not be always a crucial factor for adopting wasm in video analysis software development. Implication 2: Maintainability, Testability and lower development effort are much crucial factors for video analysis development. Facilitating Conditions: Implication 3: The adoption of wasm language for video analysis is greatly dependent on the client requirements and Software design. Implication 4: The current availability of tools allows the development of deployable video analysis code using WebAssembly. Implication 5: Offloading chances are is less in current video analysis development model. Implication 6: The Security features of wasm are if not more, comparable to the security features provided by the languages used in current video analysis development. Implication 7: There is no clear evidence on the cross-functional development aspect of wasm for video analysis software development. Implication 8: There is no clear evidence on the compatibility aspect of wasm for video analysis, as it is mainly used for “running native code on web platform” in all the studies in SLR. Social Influence Implication 9: Pre-adoption user sentiment on wasm is mixed and contradicting for video analysis development. Implication 10: The current outlook of community and user base could accelerate the growth of the language.

49

Effort Expectancy Implication 11: It is difficult to estimate the effort required for cross-compiling native programs to WebAssembly and running it on web-platform. Implication 12: There is no enough evidence to evaluate the maintenance and testing efforts for developing video analysis software using wasm.

6.4 An Attempt at Third data point towards adoption

Experiences of developing a WebAssembly prototype: Initially, the aim for “interview demonstration” is to develop a working application, by running certain parts of the Axis code inside a browser and show case it to the interview participants. We would like to discuss the process we followed for developing the WebAssembly prototype and reflect our views with the interview participants, for extending the discussion. We searched for different type of codes in the Axis that could be suitable for our project by consulting the experts in teams. But unfortunately, we are not able to accomplish this goal in successful manner. The main reason for rejection of certain codes for our prototype is the dependencies which could not be easily solved for the compilation. Different types of video analysis software have different dependencies as they run on multiple layers of abstraction. We have been facing several dependency issues during cross compiling one small sample of code using Emscripten. This is the first steps of the planned prototyping process, and we are also not sure what could be the experiences of next steps. The amount of time spent on understanding the code, and the processes running in the application, breaking down the code, and choosing right parts of the code to run in isolation is also been harder for us, since the code and development scenario are new for us. So, we reworked our focus of demonstration for interviews with practitioner from “prototype” to a “Working example” of WebAssembly. As the technology is new, we anticipated the knowledge on the WebAssembly would be low for practitioners, so we thought we could introduce the practitioners to WebAssembly with an example and proceed discussion from there. From the Interviews, we identified, another team at Axis who also made a similar attempt to convert video analysis code into WebAssembly was failed due to similar reasons. They have adopted alternatives to the wasm. Our experiences are also backed by the evidences found from SLR. A similar study that investigated the effort of migrating – highlighted the importance of having prior experience of developing the same software for reducing the effort required for web migration [85]. Practitioners identify dependencies of the software code as an issue to the migration problem. To find a clear answer to this issue, a separate research study with focus on this objective could be necessary. It shall be able to investigate the past experiences of the cross-compiling of different projects into wasm, and gather more opinions from the actual practitioners, who performed such activities. This kind of study will determine the actual effort required for cross- compiling and migrating software code to Web using WebAssembly.

6.5 Limitations of the Study

The crucial limitation we have faced from “literature review” is the lack of articles that mainly focused anywhere near to our research context. We neither found studies that studied the development process aspect of wasm, adoption process of wasm, development related to the industrial setting – basically the studies with primary focus on the software engineering aspects of wasm language. So, we tried to extract as much of secondary or tertiary information on the

50

language that could help us answer our research questions using multiple extraction criteria as defined in 3.2.3. We are not able to collect more interviews due to the time constraints of the project. Having more time could result in more interviews and therefore increased support for our results. The literature review of our study involves fast growing research area, the amount of new literature on the technology is growing. This challenge cannot be addressed due to the time constraints, although we provided the snapshot of the literature as on the February-April 2019 timeline. Therefore, future readers shall observe the findings of our thesis from the lens of retrospection. The use of UTAUT model to map our theme has led us to identify its limitations in our study. As it is based on individual level. By selecting UTAUT to explain the factors that influence adoption, we were not able to highlight themes such as “future industry trends”, “End user behaviour”, “development cost analysis”, “Personnel Training effort”, though it did not affect the mapping of codes found from our study. Our thesis results reflect the actual data that we collected but not the data that we might have missed. This bias is unavoidable in scientific research. We studied the pre-adoption perceptions of practitioners, A repeated study after the adoption of technology is beneficial for validation. Some of the themes explored in the thesis are left unanswered due to lack of availability of appropriate data collected in the given development context. Several of the research results identified from the data points are novel. To the best of our knowledge this study is the first exploratory study with qualitative results in the research area. As we mentioned in 3.1, we are not providing a quantitative model approach, this is left to the future studies. The variables introduced in our model reflect the actual perceptions and secondary inferences from the literature. Our model of variables could be further tested upon a different case to understand its validity.

6.6 Threats to validity

Conclusion Validity:

The results of explorative case studies usually suffer with generalization issues. To mitigate these issues, we have presented as much detail as possible wherever necessary. We have documented the case description, provided the “context of the case” inside the results for each theme and clear definitions and descriptions are assigned to the themes. Also, we provided all the references to the methods we have used in this study with appropriate argumentation and comparison with alternatives. We have included the actual search results of the Google Scholar, due to the dynamic nature of the database. The outcomes of the thesis could be biased when a single data point is used. Hence, in our thesis, we have triangulated the results from multiple data points, such as interview and SLR to identify the overlapping themes and having necessary argumentation. We have also added our own experiences of prototyping method to increase the strength of conclusions.

Construct Validity:

The interview questions could be wrongly interpreted by the participants of the interview. Hence, before the interview in our invitation mail, we have sent the details of our research area and the interview questions in advance to the participants. The interview questions might be not properly formulated according to the requirements of the research study. To mitigate this bias, we have formulated interview objectives and

51

formulated the questions in a phased manner that helps to create a narrative. We have discussed our questions with the supervisors and conducted pilot interviews to test our preliminary data. The interview questions are not static. We have been constantly adopting to the responses we previously gathering from participants and keep changing questions based on the demographics of the participants. We performed data transcribing and coding in parallel, to guide our interview sessions and questionnaire modifications.

Internal validity

Our study possesses the risk of researcher’s bias in coding, transcribing, data extraction, literature selection and data analysis process. So, both the authors have performed these steps independently, and we have compared each other’s work to gain new insights and identify mistakes. We have approached for external consultation of supervisors whenever issues or conflicts in the data arise. We took third opinion from our supervisors, in key areas of concern such as snowballing start set, interview questionnaire, keyword search and research method design. The transcriptions of our interviews are also sent to the participants for feedback and review. We had a follow-up discussion if we require any further clarification on the transcribed data.

External Validity

Generalization of the results to other population in the same industry might be effective considering our results reflect practitioner’s concerns related to the technology as of current state, and since we have done a deep study in the domain. There are no similar studies on the area to compare our results. Generalization of the results to other population in another domain is uncertain. We considered the highest degree of diversity available for us in the company to mitigate the external validity.

52

7 CONCLUSION AND FUTURE WORK

In this thesis, we have reported a variance-theory based model of technology adoption at industry by combining the principles of Evidence based Software Engineering (EBSE) and the User Acceptance models proposed on technology adoption in the Software Information systems body of knowledge. The thesis is an initial attempt at the area of study that is new. We have limited literature to work with to give a direction towards reaching our thesis goal. So, we were hoping this thesis would give a preliminary idea on the area and help the future studies to reach their goal in possible directions from the spectrum of aspects discussed in this thesis. We researched in our thesis the several factors that are involved in making a decision on using wasm in video analysis domain. We have answered the question with the help of current situation of literature studies, and the data collection resources that are available to us within the timeframe available for the thesis. We also presented the status of the literature on WebAssembly and analysed for potential uses and issues in practice. These factors have been triangulated from various sources like practitioners and own experiences of using wasm in practice. The outcomes of our research help practitioners gain insights on the WebAssembly and making selection decision in their development context. Our thesis makes a significant contribution towards the research on the WebAssembly technology and video analysis software development. This study also sheds light on the unusual factors of technology adoption in software engineering studies that are not discussed in previous technology adoption models. This study provides a general contribution towards the industrial case studies performed on technology adoption in the software engineering body of knowledge. In our future work, we aim to validate the adoption model on a different technology and on different industrial contexts. A validation of resultant factors and implications shall be performed on a large sample for improving generalizability. A study on analysing the impact of each factors so that practitioners and researchers can determine the priorities. The main gap in the past literature such as evaluating important factors such as testability, maintainability, and cross-compilation shall be addressed in future literature. Since the research area is evolving, future studies shall be replicated with up-to-date literature. A follow-up study on the post-adoption perceptions of a wasm shall be performed to compare the factors and implications found.

53

REFERENCES (References are in IEEE style)

[1] A. Haas et al., ‘Bringing the Web up to Speed with WebAssembly’, p. 16.

[2] M. Jacobsson and J. Willén, ‘Virtual Machine Execution for Wearables Based on WebAssembly’, in 13th EAI International Conference on Body Area Networks, C. Sugimoto, H. Farhadi, and M. Hämäläinen, Eds. Cham: Springer International Publishing, 2020, pp. 381–389.

[3] N. Attrapadung, G. Hanaoka, S. Mitsunari, Y. Sakai, K. Shimizu, and T. Teruya, ‘Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and A Fast Implementation in WebAssembly’, in Proceedings of the 2018 on Asia Conference on Computer and Communications Security - ASIACCS ’18, Incheon, Republic of Korea, 2018, pp. 685–697, doi: 10.1145/3196494.3196552.

[4] C. Watt, J. Renner, N. Popescu, S. Cauligi, and D. Stefan, ‘CT-wasm: type-driven secure cryptography for the web ecosystem’, Proc. ACM Program. Lang., vol. 3, no. POPL, pp. 1–29, Jan. 2019, doi: 10.1145/3290390.

[5] Y. Bonenberger, J. Rambach, A. Pagani, and D. Stricker, ‘Universal Web-Based Tracking for Augmented Reality Applications’, in Virtual Reality and Augmented Reality, vol. 11162, P. Bourdot, S. Cobb, V. Interrante, H. kato, and D. Stricker, Eds. Cham: Springer International Publishing, 2018, pp. 18–27.

[6] A. Szanto, T. Tamm, and A. Pagnoni, ‘Taint Tracking for WebAssembly’, ArXiv180708349 Cs, Jul. 2018, Accessed: Oct. 05, 2020. [Online]. Available: http://arxiv.org/abs/1807.08349.

[7] A. Hauptmann, ‘Video Content Analysis’, in Encyclopedia of Database Systems, L. LIU and M. T. ÖZSU, Eds. Boston, MA: Springer US, 2009, pp. 3271–3276.

[8] Weiming Hu, Nianhua Xie, Li Li, Xianglin Zeng, and S. Maybank, ‘A Survey on Visual Content-Based Video Indexing and Retrieval’, IEEE Trans. Syst. Man Cybern. Part C Appl. Rev., vol. 41, no. 6, pp. 797–819, Nov. 2011, doi: 10.1109/TSMCC.2011.2109710.

[9] ‘Guide to Video Analytics: Applications and Opportunities | Tryolabs Resources’. ://tryolabs.com/resources/video-analytics-guide/#industry-applications (accessed Oct. 05, 2020).

[10] A. Voulodimos, N. Doulamis, A. Doulamis, and E. Protopapadakis, ‘Deep Learning for Computer Vision: A Brief Review’, Comput. Intell. Neurosci., vol. 2018, pp. 1– 13, 2018, doi: 10.1155/2018/7068349.

[11] T. Ko, ‘A survey on behavior analysis in video surveillance for homeland security applications’, in 2008 37th IEEE Applied Imagery Pattern Recognition Workshop, Oct. 2008, pp. 1–8, doi: 10.1109/AIPR.2008.4906450.

54

[12] C. Yang, A. Kerr, V. Stankovic, L. Stankovic, P. Rowe, and S. Cheng, ‘Human Upper Limb Motion Analysis for Post-Stroke Impairment Assessment Using Video Analytics’, IEEE Access, vol. 4, pp. 650–659, 2016, doi: 10.1109/ACCESS.2016.2523803.

[13] A. M. Burton, S. Wilson, M. Cowan, and V. Bruce, ‘Face Recognition in Poor- Quality Video: Evidence From Security Surveillance’, Psychol. Sci., vol. 10, no. 3, pp. 243–248, May 1999, doi: 10.1111/1467-9280.00144.

[14] S. Borel, P. Schneider, and C. J. Newman, ‘Video analysis software increases the interrater reliability of video gait assessments in children with cerebral palsy’, Gait Posture, vol. 33, no. 4, pp. 727–729, Apr. 2011, doi: 10.1016/j.gaitpost.2011.02.012.

[15] G. L. Foresti, P. Mähönen, and C. S. Regazzoni, Multimedia video-based surveillance systems: Requirements, Issues and Solutions, vol. 573. Springer Science & Business Media, 2012.

[16] G. F. Shidik, E. Noersasongko, A. Nugraha, P. N. Andono, J. Jumanto, and E. J. Kusuma, ‘A Systematic Review of Intelligence Video Surveillance: Trends, Techniques, Frameworks, and Datasets’, IEEE Access, vol. 7, pp. 170457–170473, 2019, doi: 10.1109/ACCESS.2019.2955387.

[17] G. Walker, ‘Open or Closed Protocols - which is best choice for your business?’, BUSINESSFIRST, Nov. 15, 2017. https://www.businessfirstonline.co.uk/articles/open-closed-protocols-best-choice- business/ (accessed Oct. 05, 2020).

[18] H. Zhang, G. Ananthanarayanan, P. Bodik, M. Philipose, P. Bahl, and M. J. Freedman, ‘Live Video Analytics at Scale with Approximation and Delay- Tolerance’, 2017, pp. 377–392, Accessed: Oct. 05, 2020. [Online]. Available: https://www.usenix.org/conference/nsdi17/technical-sessions/presentation/zhang.

[19] K. Lee, K. Yim, and M. A. Mikki, ‘A secure framework of the surveillance video network integrating heterogeneous video formats and protocols’, Comput. Math. Appl., vol. 63, no. 2, pp. 525–535, Jan. 2012, doi: 10.1016/j.camwa.2011.08.048.

[20] G. Ananthanarayanan et al., ‘Real-Time Video Analytics: The Killer App for Edge Computing’, Computer, vol. 50, no. 10, pp. 58–67, 2017, doi: 10.1109/MC.2017.3641638.

[21] P. Kohli and A. Chadha, ‘Enabling Pedestrian Safety Using Computer Vision Techniques: A Case Study of the 2018 Uber Inc. Self-driving Car Crash’, in Advances in Information and Communication, Cham, 2020, pp. 261–279, doi: 10.1007/978-3-030-12388-8_19.

[22] ‘Announcing Rust 1.14 | Rust Blog’. https://blog.rust-lang.org/2016/12/22/Rust- 1.14.html (accessed Oct. 05, 2020).

[23] ‘WebAssembly architecture for Go’, Google Docs. https://docs.google.com/document/d/131vjr4DH6JFnb- blm_uRdaC0_Nv3OUwjEY5qVCxCup4/edit?usp=embed_facebook (accessed Oct. 05, 2020).

55

[24] C. Watt, ‘Mechanising and verifying the WebAssembly specification’, in Proceedings of the 7th ACM SIGPLAN International Conference on Certified Programs and Proofs - CPP 2018, Los Angeles, CA, USA, 2018, pp. 53–65, doi: 10.1145/3167082.

[25] F. Sultan and L. Chan, ‘The adoption of new technology: the case of object-oriented computing in software companies’, IEEE Trans. Eng. Manag., vol. 47, no. 1, pp. 106–126, Feb. 2000, doi: 10.1109/17.820730.

[26] P. Y. K. Chau and K. Y. Tam, ‘Factors Affecting the Adoption of Open Systems: An Exploratory Study’, MIS Q., vol. 21, no. 1, p. 1, Mar. 1997, doi: 10.2307/249740.

[27] T. Dyba, B. A. Kitchenham, and M. Jorgensen, ‘Evidence-based software engineering for practitioners’, IEEE Softw., vol. 22, no. 1, pp. 58–65, Jan. 2005, doi: 10.1109/MS.2005.6.

[28] B. C. Hardgrave and R. A. Johnson, ‘Toward an information systems development acceptance model: The case of object-oriented systems development’, IEEE Trans. Eng. Manag., vol. 50, no. 3, pp. 322–336, Aug. 2003, doi: 10.1109/TEM.2003.817293.

[29] K. Petersen and C. Wohlin, ‘The effect of moving from a plan-driven to an incremental software development approach with agile practices: An industrial case study’, Empir. Softw. Eng., vol. 15, no. 6, pp. 654–693, Dec. 2010, doi: 10.1007/s10664-010-9136-6.

[30] E. Alégroth and R. Feldt, ‘On the long-term use of visual gui testing in industrial practice: a case study’, Empir. Softw. Eng., vol. 22, no. 6, pp. 2937–2971, Dec. 2017, doi: 10.1007/s10664-016-9497-6.

[31] Ø. Hauge, C. Ayala, and R. Conradi, ‘Adoption of open source software in software- intensive organizations – A systematic literature review’, Inf. Softw. Technol., vol. 52, no. 11, pp. 1133–1154, Nov. 2010, doi: 10.1016/j.infsof.2010.05.008.

[32] M. Obal, ‘What drives post-adoption usage? Investigating the negative and positive antecedents of disruptive technology continuous adoption intentions’, Ind. Mark. Manag., vol. 63, pp. 42–52, May 2017, doi: 10.1016/j.indmarman.2017.01.003.

[33] L. Williams and K. Tao, ‘Information technology adoption: using classical adoption models to predict AEI software implementation’, J. Bus. Logist., vol. 19, no. 1, p. 5, 1998.

[34] S. A. Brown, A. R. Dennis, and V. Venkatesh, ‘Predicting collaboration technology use: Integrating technology adoption and collaboration research’, J. Manag. Inf. Syst., vol. 27, no. 2, pp. 9–54, 2010.

[35] H. U. Khan, H. A. Artail, Z. Malik, and M. Niazi, ‘Information technology adoption, possible challenges, and framework of supply chain management: A case study of a leading gulf economy’, in 2014 4th International Conference on Engineering Technology and Technopreneuship (ICE2T), Aug. 2014, pp. 1–5, doi: 10.1109/ICE2T.2014.7006207.

56

[36] Venkatesh, Morris, Davis, and Davis, ‘User Acceptance of Information Technology: Toward a Unified View’, MIS Q., vol. 27, no. 3, p. 425, 2003, doi: 10.2307/30036540.

[37] T. Oliveira, M. Faria, M. A. Thomas, and A. Popovič, ‘Extending the understanding of mobile banking adoption: When UTAUT meets TTF and ITM’, Int. J. Inf. Manag., vol. 34, no. 5, pp. 689–703, Oct. 2014, doi: 10.1016/j.ijinfomgt.2014.06.004.

[38] S. Rahi and M. Abd. Ghani, ‘The role of UTAUT, DOI, perceived technology security and game elements in internet banking adoption’, World J. Sci. Technol. Sustain. Dev., vol. 15, no. 4, pp. 338–356, Jan. 2018, doi: 10.1108/WJSTSD-05- 2018-0040.

[39] D. Leonard-Barton and I. Deschamps, ‘Managerial influence in the implementation of new technology’, Manag. Sci., vol. 34, no. 10, pp. 1252–1265, 1988.

[40] D. L. Goodhue and R. L. Thompson, ‘Task-technology fit and individual performance’, MIS Q., pp. 213–236, 1995.

[41] J. W. Anastas, Research design for social work and the human services. Columbia University Press, 1999.

[42] K. Barbara, C. Stuart, B. David, B. Pearl, T. Mark, and L. Steve, ‘Guidelines for performing systematic literature reviews in software engineering’, Department of Computer Science, University of Durham, Durham, UK, EBSE Technical Report Ver. 2.3, 2007.

[43] C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslén, Experimentation in Software Engineering. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012.

[44] E. Babbie, Survey Research Methods (2"’^ ed.). Belmont, CA: Wadsworth. Inc, 1990.

[45] C. Wohlin, M. Höst, and K. Henningsson, ‘Empirical Research Methods in Web and Software Engineering’, in Web Engineering, E. Mendes and N. Mosley, Eds. Berlin/Heidelberg: Springer-Verlag, 2006, pp. 409–430.

[46] P. Runeson and M. Höst, ‘Guidelines for conducting and reporting case study research in software engineering’, Empir. Softw. Eng., vol. 14, no. 2, pp. 131–164, Apr. 2009, doi: 10.1007/s10664-008-9102-8.

[47] R. Yin, ‘Case Study Research: Design and Methods, 4th edn Sage Publications’, Thousand Oaks, 2009.

[48] K. Wnuk, K. Manikas, P. Runeson, M. Lantz, O. Weijden, and H. Munir, ‘Evaluating the Governance Model of Hardware-Dependent Software Ecosystems – A Case Study of the Axis Ecosystem’, in Software Business. Towards Continuous Value Delivery, vol. 182, C. Lassenius and K. Smolander, Eds. Cham: Springer International Publishing, 2014, pp. 212–226.

57

[49] P. Runeson, M. Host, A. Rainer, and B. Regnell, Case study research in software engineering: Guidelines and examples. John Wiley & Sons, 2012.

[50] S. Easterbrook, J. Singer, M.-A. Storey, and D. Damian, ‘Selecting empirical methods for software engineering research’, in Guide to advanced empirical software engineering, Springer, 2008, pp. 285–311.

[51] H. K. Klein and M. D. Myers, ‘A set of principles for conducting and evaluating interpretive field studies in information systems’, MIS Q., pp. 67–93, 1999.

[52] C. Robson, ‘Real World Research: A Resource for Social Scientists and Practitioner- Researchers’, undefined, 1993. /paper/Real-World-Research%3A-A-Resource-for- Social-and-Robson/313c59605af8232ff3983bcf556bbef4ccb3a8b5 (accessed Oct. 06, 2020).

[53] P. C. Meijer, N. Verloop, and D. Beijaard, ‘Multi-method triangulation in a qualitative study on teachers’ practical knowledge: An attempt to increase internal validity’, Qual. Quant., vol. 36, no. 2, pp. 145–167, 2002.

[54] L. B. Mohr, Explaining organizational behavior. Jossey-Bass, 1982.

[55] R. E. Santos and F. Q. Da Silva, ‘Motivation to perform systematic reviews and their impact on software engineering practice’, in 2013 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, 2013, pp. 292– 295.

[56] B. C. Reeves, J. J. Deeks, and J. Higgins, ‘13 Including non-randomized studies’, Cochrane Handb. Syst. Rev. Interv., vol. 1, p. 391, 2008.

[57] W. Afzal, R. Torkar, and R. Feldt, ‘A systematic review of search-based testing for non-functional system properties’, Inf. Softw. Technol., vol. 51, no. 6, pp. 957–976, Jun. 2009, doi: 10.1016/j.infsof.2008.12.005.

[58] M. D. Williams, N. P. Rana, and Y. K. Dwivedi, ‘The unified theory of acceptance and use of technology (UTAUT): a literature review’, J. Enterp. Inf. Manag., vol. 28, no. 3, pp. 443–488, Apr. 2015, doi: 10.1108/JEIM-09-2014-0088.

[59] H. Zhang, M. A. Babar, and P. Tell, ‘Identifying relevant studies in software engineering’, Inf. Softw. Technol., vol. 53, no. 6, pp. 625–637, 2011.

[60] J. Webster and R. T. Watson, ‘Analyzing the past to prepare for the future: Writing a literature review’, MIS Q., pp. xiii–xxiii, 2002.

[61] S. Jalali and C. Wohlin, ‘Systematic literature studies: database searches vs. backward snowballing’, in Proceedings of the 2012 ACM-IEEE international symposium on empirical software engineering and measurement, 2012, pp. 29–38.

[62] B. Kitchenham, P. Brereton, Z. Li, D. Budgen, and A. Burn, ‘Repeatability of systematic literature reviews’, in 15th Annual Conference on Evaluation & Assessment in Software Engineering (EASE 2011), 2011, pp. 46–55.

58

[63] S. MacDonell, M. Shepperd, B. Kitchenham, and E. Mendes, ‘How reliable are systematic reviews in empirical software engineering?’, IEEE Trans. Softw. Eng., vol. 36, no. 5, pp. 676–687, 2010.

[64] M. Skoglund and P. Runeson, ‘Reference-based search strategies in systematic reviews’, in 13th International Conference on Evaluation and Assessment in Software Engineering (EASE) 13, 2009, pp. 1–10.

[65] C. Wohlin, ‘Guidelines for snowballing in systematic literature studies and a replication in software engineering’, in Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering - EASE ’14, London, England, United Kingdom, 2014, pp. 1–10, doi: 10.1145/2601248.2601268.

[66] D. Badampudi, C. Wohlin, and K. Petersen, ‘Software component decision-making: In-house, OSS, COTS or outsourcing - A systematic literature review’, J. Syst. Softw., vol. 121, pp. 105–124, Nov. 2016, doi: 10.1016/j.jss.2016.07.027.

[67] P. Sedgwick, ‘Convenience sampling’, BMJ, vol. 347, no. oct25 2, pp. f6304–f6304, Oct. 2013, doi: 10.1136/bmj.f6304.

[68] Web-Sight/WebSight. WebSight, 2020.

[69] ‘OpenCV (Open Source Computer Vision Library is an open source vision and machine learning software library...’, OpenCV. https://opencv.org/about/ (accessed Sep. 18, 2019).

[70] V. Braun and V. Clarke, ‘Using thematic analysis in psychology’, Qual. Res. Psychol., vol. 3, no. 2, pp. 77–101, Jan. 2006, doi: 10.1191/1478088706qp063oa.

[71] C. Martins, T. Oliveira, and A. Popovič, ‘Understanding the Internet banking adoption: A unified theory of acceptance and use of technology and perceived risk application’, Int. J. Inf. Manag., vol. 34, no. 1, pp. 1–13, 2014.

[72] J. Lu, C.-S. Yu, and C. Liu, ‘Mobile data service demographics in urban China’, J. Comput. Inf. Syst., vol. 50, no. 2, pp. 117–126, 2009.

[73] Venkatesh, Thong, and Xu, ‘Consumer Acceptance and Use of Information Technology: Extending the Unified Theory of Acceptance and Use of Technology’, MIS Q., vol. 36, no. 1, p. 157, 2012, doi: 10.2307/41410412.

[74] E. C. Idemudia, S. I. Dasuki, and P. Ogedebe, ‘Factors that influence students’ programming skills: a case study from a Nigerian university’, Int. J. Quant. Res. Educ., vol. 3, no. 4, pp. 277–291, 2016.

[75] S. Doukakis, M. N. Giannakos, C. Koilias, and P. Vlamos, ‘Measuring Students’ Acceptance and Confidence in Algorithms and Programming: The Impact of Engagement with CS on Greek Secondary Education.’, Inform. Educ., vol. 12, no. 2, pp. 207–219, 2013.

[76] H. Gangwar, H. Date, and A. D. Raoot, ‘Review on IT adoption: insights from recent technologies’, J. Enterp. Inf. Manag., vol. 27, no. 4, pp. 488–502, Jan. 2014, doi: 10.1108/JEIM-08-2012-0047.

59

[77] P. Jacsó, ‘Google Scholar: the pros and the cons’, Online Inf. Rev., 2005.

[78] C. Watt, P. Maksimović, N. R. Krishnaswami, and P. Gardner, ‘A Program Logic for First-Order Encapsulated WebAssembly’, ArXiv181103479 Cs, p. 30 pages, 2019, doi: 10.4230/LIPIcs.ECOOP.2019.9.

[79] M. Reiser and L. Bläser, ‘Accelerate JavaScript applications by cross-compiling to WebAssembly’, in Proceedings of the 9th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages - VMIL 2017, Vancouver, BC, Canada, 2017, pp. 10–17, doi: 10.1145/3141871.3141873.

[80] R. Finney and D. Meerzaman, ‘Chromatic: WebAssembly-Based Cancer Genome Viewer’, Cancer Inform., vol. 17, p. 117693511877197, Jan. 2018, doi: 10.1177/1176935118771972.

[81] S. Letz, Y. Orlarey, and D. Fober, Compiling Faust audio DSP code to WebAssembly. qmro.qmul.ac.uk, 2017.

[82] J. Renner, S. Cauligi, and D. Stefan, ‘Constant-Time WebAssembly’, p. 3.

[83] S. Letz, Y. Orlarey, and D. Fober, ‘FAUST Domain Specific Audio DSP Language Compiled to WebAssembly’, in Companion of the The Web Conference 2018 on The Web Conference 2018 - WWW ’18, Lyon, France, 2018, pp. 701–709, doi: 10.1145/3184558.3185970.

[84] J. Ellul, ‘Poster: Towards WebAssembly for Wireless Sensor Networks.’, EWSN. sites.google.com, 2017, [Online]. Available: https://sites.google.com/a/ewsn.org/ewsn/file- repository/ewsn2017/208_209_ellul.pdf.

[85] S. Heil, V. Siegert, and M. Gaedke, ‘ReWaMP: Rapid Web Migration Prototyping Leveraging WebAssembly’, in Web Engineering, vol. 10845, T. Mikkonen, R. Klamma, and J. Hernández, Eds. Cham: Springer International Publishing, 2018, pp. 84–92.

[86] E. Holk, ‘Schism: A Self-Hosting Scheme to WebAssembly Compiler’, Proceedings of the Scheme and Functional …. easychair.org, 2018, [Online]. Available: https://easychair.org/publications/preprint_download/pW5s.

[87] P. Sandhu, D. Herrera, and L. Hendren, ‘Sparse matrices on the web: Characterizing the performance and optimal format selection of sparse matrix-vector multiplication in JavaScript and WebAssembly’, Proc. 15th Int. …, 2018, [Online]. Available: https://dl.acm.org/doi/abs/10.1145/3237009.3237020.

[88] A. Szanto, T. Tamm, and A. Pagnoni, ‘Taint tracking for webassembly’, ArXiv Prepr. ArXiv180708349, 2018, [Online]. Available: https://arxiv.org/abs/1807.08349.

[89] W. Fu, R. Lin, and D. Inge, ‘Taintassembly: Taint-based information flow control tracking for webassembly’, ArXiv Prepr. ArXiv180201050, 2018, [Online]. Available: https://arxiv.org/abs/1802.01050.

60

[90] A. Møller, ‘Technical perspective: WebAssembly: a quiet revolution of the web’, Commun. ACM, vol. 61, no. 12, pp. 106–106, Nov. 2018, doi: 10.1145/3282508.

[91] D. Lehmann and M. Pradel, ‘Wasabi: A framework for dynamically analyzing webassembly’, Proc. Twenty-Fourth Int. …, 2019, [Online]. Available: https://dl.acm.org/doi/abs/10.1145/3297858.3304068.

[92] H. Jeong, J. Jeong, S. Park, and K. Kim, ‘WATT : A novel web-based toolkit to generate WebAssembly-based libraries and applications’, in 2018 IEEE International Conference on Consumer Electronics (ICCE), Las Vegas, NV, Jan. 2018, pp. 1–2, doi: 10.1109/ICCE.2018.8326230.

[93] D. Herrera, H. Chen, E. Lavoie, and ..., ‘WebAssembly and JavaScript Challenge: Numerical program performance using modern browser technologies and devices’, University of McGill …. sable.mcgill.ca, 2018, [Online]. Available: http://www.sable.mcgill.ca/publications/techreports/2018-2/techrep.pdf.

[94] S. Yi, V. Lazzarini, and E. Costello, ‘WebAssembly AudioWorklet Csound’, 4th Web Audio Conference, TU …. webaudioconf.com, 2018, [Online]. Available: https://webaudioconf.com/_data/papers/pdf/2018/2018_24.pdf.

[95] F. Göttl, P. Gagel, and J. Grubert, ‘Efficient pose tracking from natural features in standard web browsers’, in Proceedings of the 23rd International ACM Conference on 3D Web Technology - Web3D ’18, Poznań, Poland, 2018, pp. 1–4, doi: 10.1145/3208806.3208815.

[96] R. K. Konoth et al., ‘MineSweeper: An In-depth Look into Drive-by Cryptocurrency Mining and Its Defense’, in Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, Toronto Canada, Jan. 2018, pp. 1714– 1730, doi: 10.1145/3243734.3243858.

[97] D. Herrera, H. Chen, E. Lavoie, and L. Hendren, ‘Numerical computing on the web: benchmarking for the future’, in Proceedings of the 14th ACM SIGPLAN International Symposium on Dynamic Languages - DLS 2018, Boston, MA, USA, 2018, pp. 88–100, doi: 10.1145/3276945.3276968.

[98] H. Matsuo, S. Matsumoto, Y. Higo, and S. Kusumoto, ‘Madoop: Improving Browser-Based Volunteer Computing Based on Modern Web Technologies’, in 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER), Hangzhou, China, Feb. 2019, pp. 634–638, doi: 10.1109/SANER.2019.8668014.

[99] A. Jangda, B. Powers, E. Berger, and A. Guha, ‘Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code’, ArXiv190109056 Cs, May 2019, doi: 10.5555/3358807.3358817.

[100] A. N. Meyer, T. Fritz, G. C. Murphy, and T. Zimmermann, ‘Software Developers’ Perceptions of Productivity’, in Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, New York, NY, USA, 2014, pp. 19–29, doi: 10.1145/2635868.2635892.

61

[101] W. Hong, J. Y. L. Thong, L. C. Chasalow, and G. Dhillon, ‘User Acceptance of Agile Information Systems: A Model and Empirical Test’, J. Manag. Inf. Syst., vol. 28, no. 1, pp. 235–272, Jul. 2011, doi: 10.2753/MIS0742-1222280108.

[102] E. Kusmenko, B. Rumpe, S. Schneiders, and M. von Wenckstern, ‘Highly- Optimizing and Multi-Target Compiler for Embedded System Models: C++ Compiler Toolchain for the Component and Connector Language EmbeddedMontiArc’, in Proceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems - MODELS ’18, Copenhagen, Denmark, 2018, pp. 447–457, doi: 10.1145/3239372.3239388.

[103] ‘Chapter 1. Introduction’. https://docs.oracle.com/javase/specs/jvms/se8/html/jvms- 1.html#jvms-1.2 (accessed Oct. 06, 2020).

[104] gopherjs/gopherjs. GopherJS, 2020.

[105] ‘WebAssembly/design’, GitHub. https://github.com/WebAssembly/design (accessed Oct. 12, 2020).

[106] J. C. Huang and S. Newell, ‘Knowledge integration processes and dynamics within the context of cross-functional projects’, Int. J. Proj. Manag., vol. 21, no. 3, pp. 167– 176, Apr. 2003, doi: 10.1016/S0263-7863(02)00091-1.

[107] G. Hamel and C. K. Prahalad, ‘Strategic intent’, Harv. Bus. Rev., vol. 83, no. 7, pp. 148–161, 2005.

[108] ‘Welcome to Native Client - Google Chrome’. https://developer.chrome.com/native- client (accessed Oct. 11, 2020).

[109] mcleanbyron, ‘ActiveX Controls - Win32 apps’. https://docs.microsoft.com/en- us/windows/win32/com/activex-controls (accessed Oct. 11, 2020).

[110] ‘WebAssembly at eBay: A Real-World Use Case’, May 22, 2019. https://tech.ebayinc.com/engineering/webassembly-at-ebay-a-real-world-use-case/ (accessed Oct. 11, 2020).

[111] ‘AutoCAD & WebAssembly: Moving a 30 Year Code Base to the Web’, InfoQ. https://www.infoq.com/presentations/autocad-webassembly/ (accessed Oct. 11, 2020).

[112] W. Qiang, Z. Dong, and H. Jin, ‘Se-Lambda: Securing Privacy-Sensitive Serverless Applications Using SGX Enclave’, in Security and Privacy in Communication Networks, vol. 254, R. Beyah, B. Chang, Y. Li, and S. Zhu, Eds. Cham: Springer International Publishing, 2018, pp. 451–470.

[113] B. T. Murari, ‘Impact of Internet of Things on Software Business Model and Software Industry’, p. 75.

[114] ‘WebAssembly is here!WebAssembly が WebGL ビルドのスタンダードに! - Unity Technologies Blog’, Aug. 15, 2018. https://blogs.unity3d.com/2018/08/15/webassembly-is-here/ (accessed Oct. 11, 2020).

62

63

APPENDIX

Appendix 1 - Results of Keyword Search (Performed on 28 Feb 2019)

S. No References are in Chicago style 1 A Haas, A Rossberg, DL Schuff, BL Titzer and ..., "Bringing the web up to speed with WebAssembly", Proceedings of the 38th … (dl.acm.org, 2017). 2 C Watt, "Mechanising and verifying the WebAssembly specification", Proceedings of the 7th ACM SIGPLAN International … (dl.acm.org, 2018). 3 D Lehmann and M Pradel, "Wasabi: A framework for dynamically analyzing webassembly", Proceedings of the Twenty-Fourth International … (dl.acm.org, 2019). 4 S Letz, Y Orlarey and D Fober, "Compiling Faust audio DSP code to WebAssembly" (qmro.qmul.ac.uk, 2017). 5 A Rossberg, BL Titzer, A Haas, DL Schuff and ..., "Bringing the web up to speed with webassembly", Communications of the … (dl.acm.org, 2018). 6 S Letz, Y Orlarey and D Fober, "Faust domain specific audio dsp language compiled to webassembly", Companion Proceedings of the The Web … (dl.acm.org, 2018). 7 M Reiser and L Bläser, "Accelerate JavaScript applications by cross-compiling to WebAssembly", Proceedings of the 9th ACM SIGPLAN International … (dl.acm.org, 2017). 8 N Attrapadung, G Hanaoka, S Mitsunari and ..., "Efficient two-level homomorphic encryption in prime-order bilinear groups and a fast implementation in webassembly", Proceedings of the … (dl.acm.org, 2018). 9 A Szanto, T Tamm and A Pagnoni, "Taint tracking for webassembly", arXiv preprint arXiv:1807.08349 (arxiv.org, 2018). 10 W Fu, R Lin and D Inge, "Taintassembly: Taint-based information flow control tracking for webassembly", arXiv preprint arXiv:1802.01050 (arxiv.org, 2018). 11 A Møller, "Technical perspective: WebAssembly: A quiet revolution of the Web", Communications of the ACM (dl.acm.org, 2018). 12 R Finney and D Meerzaman, "Chromatic: WebAssembly-Based Cancer Genome Viewer", Cancer informatics (journals.sagepub.com, 2018). 13 M Jacobsson and J Willén, "Virtual machine execution for wearables based on WebAssembly", EAI International Conference on Body Area … (Springer, 2018). 14 H Jeong, J Jeong, S Park and K Kim, "WATT: A novel web-based toolkit to generate WebAssembly-based libraries and applications", 2018 IEEE International … (ieeexplore.ieee.org, 2018). 15 S Heil, V Siegert and M Gaedke, "ReWaMP: rapid web migration prototyping leveraging webAssembly", International Conference on Web … (Springer, 2018). 16 C Watt, P Maksimović, NR Krishnaswami and ..., "A Program Logic for First-Order Encapsulated WebAssembly", arXiv preprint arXiv … (arxiv.org, 2018). 17 PL WebAssembly, "ReWaMP: Rapid Web Migration Prototyping Leveraging WebAssembly", … , ICWE 2018, Cáceres, Spain, June 5-8, 2018 … (books.google.com, 2018). 18 P Sandhu, D Herrera and L Hendren, "Sparse matrices on the web: Characterizing the performance and optimal format selection of sparse matrix-vector multiplication in JavaScript and WebAssembly", Proceedings of the 15th International … (dl.acm.org, 2018). 19 ИП Иванов, "Повышение скорости исполнения кода JavaScript с помощью технологии WebAssembly", Концепции устойчивого развития науки в … (elibrary.ru, 2017).

64

20 J Sreš, "Uporaba programskega okolja WebAssembly pri razvoju spletnih aplikacij" (dk.um.si, 2019). 21 万益民, 张峰 and 王鹏, "基于 WebAssembly 的边缘计算研究", 电信科学 (cnki.com.cn, 2019). 22 A Laakso, "Qt for WebAssembly" (theseus.fi, 2019). 23 L Matěj, "Použití technologie WebAssembly a frameworku Blazor pro vývoj webových aplikací" (dspace.cvut.cz, 2019). 24 M Kamm and M Marti, "JavaScript to WebAssembly Cross Compiler" (eprints.hsr.ch, 2018). 25 薛超, "基于 WebAssembly 的 JavaScript 性能优化方案研究与实现" (cdmd.cnki.com.cn, 2019). 26 R Rundelin, "Mitä uutta WebAssembly tuo web-ympäristöön?" (jyx.jyu.fi, 2019). 27 M Horáček, "Aplikace demonstrující možnosti webového standardu WebAssembly a webového frameworku Blazor" (digilib.k.utb.cz, 2018). 28 DR Wulan, "Pembangunan Media Pembelajaran Sistem Tubuh Manusia Menggunakan Teknologi Webassembly" (elibrary.unikom.ac.id, 2018). 29 万益民, 张峰 and 王鹏, "关于基于 WebAssembly 的边缘计算研究", 2019 全国边缘计算学术研讨会论文集 (cpfd.cnki.com.cn, 2019). 30 K Štrāls, "WebAssembly iespēju izpēte, veicot klienta puses lietotnes salīdzinājumu. Net un JS vidēs" (dspace.lu.lv, 2018). 31 匡开圆, "基于 WebAssembly 的 JavaScript 代码虚拟化保护方法研究与实现" (cdmd.cnki.com.cn, 2018). 32 松尾裕幸, 柗本真佑 and 楠本真二, "Madoop: MapReduce と WebAssembly を用いた Web ブラウザベース分散処理フレームワーク", … シンポジウム 2018 論文集 (ipsj.ixsq.nii.ac.jp, 2018). 33 M Rourke, "Learn WebAssembly: Build web applications with native performance using Wasm and C/C++" (books.google.com, 2018). 34 R Battagline, "Hands-On Game Development with WebAssembly: Learn WebAssembly C++ programming by building a retro space game" (books.google.com, 2019). 35 A Rossberg, "Webassembly core specification", W3C First Public Working Draft, Feb (2018). 36 L Clark, "What makes WebAssembly fast", … /hacks. mozilla. org/2017/02/what-makes- webassembly … (2017). 37 A Rossberg, "Reference Types Proposal for WebAssembly" (2018). 38 A Zakai, "Why webassembly is faster than asm. js", … . org/2017/03/why-webassembly- is-fasterthan-asm-js (2017). 39 E Elliott, "What is webassembly" (2017). 40 R Neumann and A Toro, "In-browser mining: Coinhive and WebAssembly", Forcepoint Security Labs (2018). 41 C Hammacher, "Liftoff: A new baseline compiler for webassembly in v8" (Aug, 2018). 42 L Wagner, "A WebAssembly Milestone: Experimental Support in Multiple Browsers", Mozilla Hacks (14 March 2016).© Иванов ИП (2017). 43 J McConnell, "Webassembly support now shipping in all major browsers", … https://blog. mozilla. org/blog/2017/11/13/webassembly … (2017). 44 R Andreas, R Andreas, DL Schuff, BL Titzer and M Holman, "Bringing the Web Up to Speed with WebAssembly J", Communications of the ACM (2018). 45 L Wagner, "WebAssembly consensus and end of Browser Preview", Retrieved August (2017). 46 I Can, "use WebAssembly?", Viewed on (2018).

65

47 A Danilo, "Webassembly threads ready to try in chrome 70" (Oct, 2018). 48 CH Shin, JH Yeo and SM Moon, "IAnalysis of Process and Performance in WebAssembly,"", Korean Institute of Information Scientists and Engineers (2018). 49 B Nelson, "Goodbye PNaCl, hello WebAssembly!", Google Inc (2017). 50 K Varda, "WebAssembly on Cloudflare workers" (Dec, 2018). 51 J DeMocker, "WebAssembly support now shipping in all major browsers", Mozilla Blog (2017). 52 C Watt, "WebAssembly.", Arch. Formal Proofs (2018). 53 D Herrera, H Chen, E Lavoie and ..., "WebAssembly and JavaScript Challenge: Numerical program performance using modern browser technologies and devices", University of McGill … (sable.mcgill.ca, 2018). 54 J Renner, S Cauligi and D Stefan, "Constant-time webassembly", Principles of Secure … (pdfs.semanticscholar.org, 2018). 55 S Yi, V Lazzarini and E Costello, "WebAssembly AudioWorklet Csound", 4th Web Audio Conference, TU … (webaudioconf.com, 2018). 56 E Holk, "Schism: A Self-Hosting Scheme to WebAssembly Compiler", Proceedings of the Scheme and Functional … (easychair.org, 2018). 57 J Ellul, "Poster: Towards WebAssembly for Wireless Sensor Networks.", EWSN (sites.google.com, 2017). 58 AHARD Schuff, BTDGL Wagner and AZJFBM Holman, "Bringing the Web up to Speed with WebAssembly [Draft]", people.mpi-sws.org. 59 АА Лымарев, "Использование технологии React Native и WebAssembly для разработки мобильных приложений", Информационные технологии и автоматизация … (itiau.sci-conf.ru, 2019).

Appendix 2 – Codes obtained from SLR

Code no. Name 1 page loadtime 2 Runtime difference 3 difficulty of cross-compiling 4 Main aims of wasm 5 faster on web 6 low level code on web (compact code) 7 portable code 8 safer code 9 observations made from the comparision studies 10 Proior attempts at low-level code on web 11 Emscripten asm.js 12 java, flash 13 microsoft active x 14 NACL 15 Reasons for using wasm

66

16 blend of convenience of web and security of low level lang 17 Detecting websites that perform in-browser cryptography 18 in-browser cryptography 19 better security features when compared to js 20 compute intense web code could run faster 21 freedom to choose right language for the application 22 Glue code for wasm in js 23 JS problems 24 asm.js 25 Inherent JS features 26 inherently expose timing side channels 27 runtime fluctuation reduced 28 Security in wasm is relatable to assembly language leakage models 29 Tools availability 30 A type checker to ensure constant-time (CTwasm) 31 automated cross compiler 32 CTwasm Modified wasm for cryptographic and security purposes 33 advances idea of asm.js 34 Browser specific JIT optimizations 35 Designed with formal semantics from the start 36 Formal small step semantics 37 Functions 38 cannot be nested 39 code in modules is organized as functions 40 functions can call each other; even recusively 41 future wasm specifications and proposals 42 Garbage collection 43 gives near-native perfromance 44 Global variables 45 Instructions 46 integer computations 47 Isolated memory spaces 48 loading wasm module in JS is async 49 Local variables 50 Machine types 51 Modules 52 definitions can be exproted or imported orreexported 53 module corresponds to static representation, but instance of module coresponds to dynamic representation 54 Modules contain definitions for functions, globals, tables, and memories 55 safety features 56 array boundary checks 57 memory default-initialization 58 structured high-level control flow

67

59 Supported by many other languages 60 supports only passing primitive values 61 traps 62 Type checking 63 wasm could be used in non web context 64 wasm vs typical assembly language 65 wasm vs js in chrome 66 wasm vs js in firefox 67 wasm vs typescript

Appendix 3 – Codes obtained from Case Study

Code no. code 1 fusing logical-non-logical code inside a same application 2 Depends on client's requirement 3 New embedded devices are capable to run complex S/W 4 React libraries solves the frontend complexity 5 moving data is expensive 6 Difficulty in cross-compiling 7 No need for more power in client side 8 helpful as development tool 9 Functionality of S/w does not suit frontend development 10 latency between frontend and backend 11 C code on dedicated chip 12 whole S/w runs inside a dedicated chip 13 Adding additional infrastructure 14 No scope to run in current project 15 NO computing is currently run on frontend 16 creates 2 servers 17 Could it benefit in reducing latency and handling calls with backend? 18 WASM needs JS, whereas JS does not need WASM 19 Compatibility with embedded devices 20 chance to offload but do not make overall sense 21 Frontend is very basic 22 Tool chain availability 23 no chance to offload 24 Yields less benefit for non-process intensive s/w 25 open factor of WASM team 26 chance to offloading 27 Deployment 28 Offloading conceptually possible 29 Unifying language for front and backend developers 30 handle large databases 31 C has large set of libraries

68

32 Empowering backend developers to write frontend 33 Not useful for current project 34 C has big market of developers 35 Empowering backend dev 36 GPU access 37 Clients do not necessarily have computing infrastructure 38 Communicate instantly with large database 39 Sensibility of written code 40 Experimentation 41 niche area 42 Testing some parts of project 43 difficulty level in testing 44 JS is satisfactory for frontend 45 Prototyping 46 VA software has many dependencies 47 Configuration code 48 Could access device remotely when required 49 Helpful to migrate some computations from embedded device 50 S/W can be independent from embedded device 51 Could help faster debugging 52 Maintenance over Performance 53 testing is much harder than programming for VA 54 Is it easier to cross compile external libraries into wasm?

Appendix 4 – Interview Questionnaire

=====Part 1===== (Personal questions) (Just answer in short) What is your current designation (main tasks) in the Axis that you are working? For how many years are you working in this organization? What are the other organisations that you have worked in the past? How many years of experience you have in total from all these organisations? What are the product domains that you have worked in the past? (Oil and gas, telecom, health etc...) Have you partnered with any research studies before?

=====Part 2===== (Technical background of the interviewee) Have you, currently or in the past, been involved in the projects of video analysis domain? (projects that are related to video analysis software (video analysis product domain)) If yes, please elaborate a bit about these video analysis projects. Some details we want to cover: (answer them in short) What languages/tools/frameworks did you use in these projects? What are the end products of the projects? How long did you spend on these projects? What is the team size? Are there multiple teams working on this project? How did you collaborate with these teams/team members? (co-located, partially dispersed, distributed teams,...) Is the product built from scratch? (Or transferred from another department, or modified on the existing artefact,....)

69

Is it completely an in house product? or what parts of it are outsourced?

What is your role in these video analysis projects? (what are the main tasks that you perform in these projects?) (Development, Maintenance, testing, Architecture, integration, system administration, team management, team leading, etc..)

Have you worked on any web development related projects, currently or in the past? If yes please elaborate a bit about these projects.. Some details we want to cover: (answer them in short) What languages/tools/frameworks did you use in these projects? What are the end products of the projects? What is your role (main tasks) in these projects? How long in total did you spend on these projects? what is the team size? Are there multiple teams working on these projects? How do you collaborate with these teams/team members? Is the product built from scratch? (Or transferred from another department, or modified on the existing artefact,...) Is it a complete in-house project? or what parts of it are outsourced?

=====Part 3===== (Here we will talk about just expereiences, working with VA applications) Can you give us some idea on how a security video analytic app at Axis is developed from planning to release.. what is your role in the project's development? What would be your typical day-to-day tasks related to the project?

What are the typical challenges you have encountered in your project? Did you face any technical challenges? Did you face any organisation challenges? Do you face any team challenges?

Do you see any bottlenecks in the current development for VA applications?

Do you see any technical limitations for developing VA applications?

What kind of changes have been made to the project in the development process? what kind of improvements would you do in the project?

======Part 4======WebAssembly introduction

======Part 5======(Questions on technology) so we would like to know how you would react typically to such kind of technologies as a manager? what kind of risk evaluations you would propose? or what do you basically do to test this technology?

Are you thinking on any preconceived notions or expectations from using wasm?

What do you think would be the general use cases for Wasm in video analysis domain?

Do you foresee any advantages or opportunities with Wasm in the video analysis domain?

70

Do you foresee any challenges with using Wasm in the video analysis domain?

Do you think you could have used Wasm in your previous video analysis projects? How do you think it would have affected the overall project?

Appendix 5 – Theming Mindmap

Online Sources available at - https://studentbth- my.sharepoint.com/personal/laka16_student_bth_se/Documents/Thesis%20Documents%20(Shared)

71