<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.0 20040830//EN" "http://dtd.nlm.nih.gov/publishing/2.0/journalpublishing.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="2.0">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">JFR</journal-id>
      <journal-id journal-id-type="nlm-ta">JMIR Form Res</journal-id>
      <journal-title>JMIR Formative Research</journal-title>
      <issn pub-type="epub">2561-326X</issn>
      <publisher>
        <publisher-name>JMIR Publications</publisher-name>
        <publisher-loc>Toronto, Canada</publisher-loc>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="publisher-id">v7i1e43092</article-id>
      <article-id pub-id-type="pmid">36800219</article-id>
      <article-id pub-id-type="doi">10.2196/43092</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Original Paper</subject>
        </subj-group>
        <subj-group subj-group-type="article-type">
          <subject>Original Paper</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Development of an Open-source and Lightweight Sensor Recording Software System for Conducting Biomedical Research: Technical Report</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="editor">
          <name>
            <surname>Mavragani</surname>
            <given-names>Amaryllis</given-names>
          </name>
        </contrib>
      </contrib-group>
      <contrib-group>
        <contrib contrib-type="reviewer">
          <name>
            <surname>Baxter</surname>
            <given-names>Clarence</given-names>
          </name>
        </contrib>
        <contrib contrib-type="reviewer">
          <name>
            <surname>Manea</surname>
            <given-names>Vlad</given-names>
          </name>
        </contrib>
      </contrib-group>
      <contrib-group>
        <contrib id="contrib1" contrib-type="author">
          <name name-style="western">
            <surname>Single</surname>
            <given-names>Michael</given-names>
          </name>
          <degrees>MSc</degrees>
          <xref rid="aff1" ref-type="aff">1</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0002-4883-9484</ext-link>
        </contrib>
        <contrib id="contrib2" contrib-type="author">
          <name name-style="western">
            <surname>Bruhin</surname>
            <given-names>Lena C</given-names>
          </name>
          <degrees>MSc</degrees>
          <xref rid="aff1" ref-type="aff">1</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0002-0789-0048</ext-link>
        </contrib>
        <contrib id="contrib3" contrib-type="author">
          <name name-style="western">
            <surname>Schütz</surname>
            <given-names>Narayan</given-names>
          </name>
          <degrees>PhD</degrees>
          <xref rid="aff1" ref-type="aff">1</xref>
          <xref rid="aff2" ref-type="aff">2</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0001-5069-407X</ext-link>
        </contrib>
        <contrib id="contrib4" contrib-type="author">
          <name name-style="western">
            <surname>Naef</surname>
            <given-names>Aileen C</given-names>
          </name>
          <degrees>MSc</degrees>
          <xref rid="aff1" ref-type="aff">1</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0002-1797-9441</ext-link>
        </contrib>
        <contrib id="contrib5" contrib-type="author">
          <name name-style="western">
            <surname>Hegi</surname>
            <given-names>Heinz</given-names>
          </name>
          <degrees>MSc</degrees>
          <xref rid="aff3" ref-type="aff">3</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0001-8230-5251</ext-link>
        </contrib>
        <contrib id="contrib6" contrib-type="author">
          <name name-style="western">
            <surname>Reuse</surname>
            <given-names>Pascal</given-names>
          </name>
          <degrees>MSc</degrees>
          <xref rid="aff1" ref-type="aff">1</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0002-5996-3261</ext-link>
        </contrib>
        <contrib id="contrib7" contrib-type="author">
          <name name-style="western">
            <surname>Schindler</surname>
            <given-names>Kaspar A</given-names>
          </name>
          <degrees>MD, PhD</degrees>
          <xref rid="aff4" ref-type="aff">4</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0002-2387-7767</ext-link>
        </contrib>
        <contrib id="contrib8" contrib-type="author">
          <name name-style="western">
            <surname>Krack</surname>
            <given-names>Paul</given-names>
          </name>
          <degrees>MD</degrees>
          <xref rid="aff4" ref-type="aff">4</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0002-3508-7295</ext-link>
        </contrib>
        <contrib id="contrib9" contrib-type="author">
          <name name-style="western">
            <surname>Wiest</surname>
            <given-names>Roland</given-names>
          </name>
          <degrees>MD</degrees>
          <xref rid="aff5" ref-type="aff">5</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0001-7030-2045</ext-link>
        </contrib>
        <contrib id="contrib10" contrib-type="author">
          <name name-style="western">
            <surname>Chan</surname>
            <given-names>Andrew</given-names>
          </name>
          <degrees>MD</degrees>
          <xref rid="aff4" ref-type="aff">4</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0003-3434-7283</ext-link>
        </contrib>
        <contrib id="contrib11" contrib-type="author" equal-contrib="yes">
          <name name-style="western">
            <surname>Nef</surname>
            <given-names>Tobias</given-names>
          </name>
          <degrees>PhD</degrees>
          <xref rid="aff1" ref-type="aff">1</xref>
          <xref rid="aff4" ref-type="aff">4</xref>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0002-8069-9450</ext-link>
        </contrib>
        <contrib id="contrib12" contrib-type="author" corresp="yes" equal-contrib="yes">
          <name name-style="western">
            <surname>Gerber</surname>
            <given-names>Stephan M</given-names>
          </name>
          <degrees>PhD</degrees>
          <xref rid="aff1" ref-type="aff">1</xref>
          <address>
            <institution>Gerontechnology and Rehabilitation Group</institution>
            <institution>ARTORG Center for Biomedical Engineering Research</institution>
            <institution>University of Bern</institution>
            <addr-line>Murtenstrasse 50</addr-line>
            <addr-line>Bern, 3008</addr-line>
            <country>Switzerland</country>
            <phone>41 31 664 09 83</phone>
            <email>stephan.m.gerber@unibe.ch</email>
          </address>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0002-6730-0652</ext-link>
        </contrib>
      </contrib-group>
      <aff id="aff1">
        <label>1</label>
        <institution>Gerontechnology and Rehabilitation Group</institution>
        <institution>ARTORG Center for Biomedical Engineering Research</institution>
        <institution>University of Bern</institution>
        <addr-line>Bern</addr-line>
        <country>Switzerland</country>
      </aff>
      <aff id="aff2">
        <label>2</label>
        <institution>DomoHealth SA</institution>
        <addr-line>Lausanne</addr-line>
        <country>Switzerland</country>
      </aff>
      <aff id="aff3">
        <label>3</label>
        <institution>Department of Sport Science</institution>
        <institution>University of Bern</institution>
        <addr-line>Bern</addr-line>
        <country>Switzerland</country>
      </aff>
      <aff id="aff4">
        <label>4</label>
        <institution>Department of Neurology</institution>
        <institution>Inselspital, Bern University Hospital</institution>
        <institution>University of Bern</institution>
        <addr-line>Bern</addr-line>
        <country>Switzerland</country>
      </aff>
      <aff id="aff5">
        <label>5</label>
        <institution>Support Center for Advanced Neuroimaging (SCAN)</institution>
        <institution>University Institute of Diagnostic and Interventional Neuroradiology</institution>
        <institution>Inselspital, Bern University Hospital, University of Bern</institution>
        <addr-line>Bern</addr-line>
        <country>Switzerland</country>
      </aff>
      <author-notes>
        <corresp>Corresponding Author: Stephan M Gerber <email>stephan.m.gerber@unibe.ch</email></corresp>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2023</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>17</day>
        <month>2</month>
        <year>2023</year>
      </pub-date>
      <volume>7</volume>
      <elocation-id>e43092</elocation-id>
      <history>
        <date date-type="received">
          <day>30</day>
          <month>9</month>
          <year>2022</year>
        </date>
        <date date-type="rev-request">
          <day>25</day>
          <month>10</month>
          <year>2022</year>
        </date>
        <date date-type="rev-recd">
          <day>28</day>
          <month>11</month>
          <year>2022</year>
        </date>
        <date date-type="accepted">
          <day>3</day>
          <month>1</month>
          <year>2023</year>
        </date>
      </history>
      <copyright-statement>©Michael Single, Lena C Bruhin, Narayan Schütz, Aileen C Naef, Heinz Hegi, Pascal Reuse, Kaspar A Schindler, Paul Krack, Roland Wiest, Andrew Chan, Tobias Nef, Stephan M Gerber. Originally published in JMIR Formative Research (https://formative.jmir.org), 17.02.2023.</copyright-statement>
      <copyright-year>2023</copyright-year>
      <license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/">
        <p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work, first published in JMIR Formative Research, is properly cited. The complete bibliographic information, a link to the original publication on https://formative.jmir.org, as well as this copyright and license information must be included.</p>
      </license>
      <self-uri xlink:href="https://formative.jmir.org/2023/1/e43092" xlink:type="simple"/>
      <abstract>
        <sec sec-type="background">
          <title>Background</title>
          <p>Digital sensing devices have become an increasingly important component of modern biomedical research, as they help provide objective insights into individuals’ everyday behavior in terms of changes in motor and nonmotor symptoms. However, there are significant barriers to the adoption of sensor-enhanced biomedical solutions in terms of both technical expertise and associated costs. The currently available solutions neither allow easy integration of custom sensing devices nor offer a practicable methodology in cases of limited resources. This has become particularly relevant, given the need for real-time sensor data that could help lower health care costs by reducing the frequency of clinical assessments performed by specialists and improve access to health assessments (eg, for people living in remote areas or older adults living at home).</p>
        </sec>
        <sec sec-type="objective">
          <title>Objective</title>
          <p>The objective of this paper is to detail the end-to-end development of a novel sensor recording software system that supports the integration of heterogeneous sensor technologies, runs as an on-demand service on consumer-grade hardware to build sensor systems, and can be easily used to reliably record longitudinal sensor measurements in research settings.</p>
        </sec>
        <sec sec-type="methods">
          <title>Methods</title>
          <p>The proposed software system is based on a server-client architecture, consisting of multiple self-contained microservices that communicated with each other (eg, the web server transfers data to a database instance) and were implemented as Docker containers. The design of the software is based on state-of-the-art open-source technologies (eg, Node.js or MongoDB), which fulfill nonfunctional requirements and reduce associated costs. A series of programs to facilitate the use of the software were documented. To demonstrate performance, the software was tested in 3 studies (2 gait studies and 1 behavioral study assessing activities of daily living) that ran between 2 and 225 days, with a total of 114 participants. We used descriptive statistics to evaluate longitudinal measurements for reliability, error rates, throughput rates, latency, and usability (with the System Usability Scale [SUS] and the Post-Study System Usability Questionnaire [PSSUQ]).</p>
        </sec>
        <sec sec-type="results">
          <title>Results</title>
          <p>Three qualitative features (event annotation program, sample delay analysis program, and monitoring dashboard) were elaborated and realized as integrated programs. Our quantitative findings demonstrate that the system operates reliably on consumer-grade hardware, even across multiple months (&#62;420 days), providing high throughput (2000 requests per second) with a low latency and error rate (&#60;0.002%). In addition, the results of the usability tests indicate that the system is effective, efficient, and satisfactory to use (mean usability ratings for the SUS and PSSUQ were 89.5 and 1.62, respectively).</p>
        </sec>
        <sec sec-type="conclusions">
          <title>Conclusions</title>
          <p>Overall, this sensor recording software could be leveraged to test sensor devices, as well as to develop and validate algorithms that are able to extract digital measures (eg, gait parameters or actigraphy). The proposed software could help significantly reduce barriers related to sensor-enhanced biomedical research and allow researchers to focus on the research questions at hand rather than on developing recording technologies.</p>
        </sec>
      </abstract>
      <kwd-group>
        <kwd>sensor recording software</kwd>
        <kwd>on-demand deployment</kwd>
        <kwd>digital measures</kwd>
        <kwd>sensor platform</kwd>
        <kwd>biomedical research</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec sec-type="introduction">
      <title>Introduction</title>
      <p>Digital sensing devices have become increasingly popular in modern biomedical research. They allow researchers to gain objective insights into people’s behavior, helping them gain a deeper understanding of health and disease processes [<xref ref-type="bibr" rid="ref1">1</xref>]. Sensor-based assessment is particularly relevant in the context of chronic conditions, such as neurodegenerative diseases, which are inherently difficult to assess and have previously often relied on biased, subjective data, such as questionnaires [<xref ref-type="bibr" rid="ref2">2</xref>]. Despite the significant potential of these new digital technologies, adopting sensor-enhanced biomedical solutions is not simple. Specifically, significant barriers related to technical expertise as well as associated costs exist. As a result, their use is still largely limited to specialized research groups. One possible reason for this is that existing technologies and frameworks that could be used to record internet of things–driven real-world sensor data often require extensive technical expertise, and are frequently in the form of complex and rather expensive solutions (eg, cloud [<xref ref-type="bibr" rid="ref3">3</xref>] or on-premises deployments). Such solutions are useful on a large scale but may deter many research groups that do not have access to the necessary expertise or resources. There is therefore a strong need for simple yet reliable software to build systems that are operational on cost-efficient consumer-grade hardware as basic as a Raspberry Pi 4 (Raspberry Pi Foundation), and can integrate multiple sensing devices, all while conforming to the clinical and technical requirements of biomedical research settings.</p>
      <p>Digital sensing devices are becoming increasingly important, especially in the field of biomedical research, as their assessed measures provide objective and continuous insights into people’s everyday lives [<xref ref-type="bibr" rid="ref4">4</xref>-<xref ref-type="bibr" rid="ref7">7</xref>]. This is supported by a multitude of studies that have demonstrated how health-related digital measures can contribute to a deeper understanding of a person’s health and well-being [<xref ref-type="bibr" rid="ref8">8</xref>]. For instance, digital measures have been used to monitor the progression of neuropsychiatric disorders [<xref ref-type="bibr" rid="ref9">9</xref>-<xref ref-type="bibr" rid="ref11">11</xref>], gait abnormalities (eg, speed, stride length, and gait symmetry) [<xref ref-type="bibr" rid="ref12">12</xref>-<xref ref-type="bibr" rid="ref14">14</xref>], and cardiovascular indices such as heart rate variability in older adults with dementia [<xref ref-type="bibr" rid="ref15">15</xref>]. A key advantage of sensor-derived digital measures is the ability to obtain continuous information, as more traditional on-site clinical visits tend to provide only an often biased snapshot of a person’s health status [<xref ref-type="bibr" rid="ref16">16</xref>]. This access to timely health-relevant information could also allow for the earlier detection of health-related deterioration, which is often associated with decreased health care costs, better health outcomes, and a higher quality of life [<xref ref-type="bibr" rid="ref17">17</xref>,<xref ref-type="bibr" rid="ref18">18</xref>]. Beyond research, the availability of real-time sensor data could help lower health care costs by reducing the frequency of clinical assessments conducted by specialists and improve access to health assessments (eg, for people living in remote areas or older adults living at home).</p>
      <p>Although the use of digital sensing devices has proven straightforward in laboratory settings [<xref ref-type="bibr" rid="ref19">19</xref>], their use in the real world is associated with economic, technical, and regulatory issues, which are nontrivial and pose significant obstacles [<xref ref-type="bibr" rid="ref20">20</xref>]. These circumstances are especially relevant for researchers conducting early stage research (eg, feasibility studies) or with limited resources. Buying a complete sensor system with all devices and applications from a single vendor is not always a viable option either technically or economically. An alternative strategy, developing a dedicated data acquisition system for every research question that relies on sensing devices, can also be impractical in the context of research. In the realm of technical challenges, one major aspect is related to big data requirements, such as volume, velocity, and variety [<xref ref-type="bibr" rid="ref21">21</xref>]. Early stage research might not inherently contribute to big data, but it may eventually produce high-frequency data streams that generate large volumes of data that must be ingested in (near) real-time. Typically, such high-frequency sensor systems produce several hundred samples per second [<xref ref-type="bibr" rid="ref22">22</xref>]. These sensor streams can come from numerous sensor types, leading to a variety of data formats. Thus, ensuring high availability and fault tolerance is critical to guarantee stable and high-quality data recordings. Another consideration is that data are sometimes not processed synchronously or are lost due to latency in the network. This problem is exacerbated by the lack of standardization in communication protocols, which makes it difficult to ensure compatibility between sensing devices and related applications across different vendors. Traditionally, cloud-first solutions, thus solutions that were designed with cloud deployments in mind, have been used to tackle the aforementioned challenges in the context of biomedical research using digital sensing devices. Prominent systems that take this approach are SPHERE [<xref ref-type="bibr" rid="ref23">23</xref>], CART [<xref ref-type="bibr" rid="ref24">24</xref>], and Waggle [<xref ref-type="bibr" rid="ref25">25</xref>]. However, such cloud-first solutions, while certainly powerful for large-scale deployments, can quickly become cumbersome and expensive, which often translates into significant maintenance and configuration overhead. Lastly, on-premises deployments may be preferred, especially in the context of medical data, such as recordings in hospitals. A comprehensive listing of such on-premises solutions can be found in the systematic review of mobile and wearable sensing frameworks by Kumar et al [<xref ref-type="bibr" rid="ref26">26</xref>]. This review provides a detailed comparison of various functional (eg, data storage method) and nonfunctional (eg, extensibility, scalability) features of mobile health (mHealth) sensor systems. Although listed systems such as RADAR-base [<xref ref-type="bibr" rid="ref27">27</xref>] and AWARE [<xref ref-type="bibr" rid="ref28">28</xref>] support the integration of external sensor systems, are open source, and ensure scalability (eg, by relying on technologies such as the Apache Kafka platform), they cannot easily be deployed on consumer-grade hardware due to their complexity. However, alternative options are either too specific (ie, they can only be used for certain applications or support only certain sensors) [<xref ref-type="bibr" rid="ref29">29</xref>] or too general [<xref ref-type="bibr" rid="ref30">30</xref>], making them challenging to adapt to various uses. There is therefore a significant need for on-premises solutions that address the technical challenges, are extensible, and can be run on consumer-grade hardware.</p>
      <p>According to best practice principles on the internet of things [<xref ref-type="bibr" rid="ref31">31</xref>,<xref ref-type="bibr" rid="ref32">32</xref>], the ideal sensor system software supports a simple mechanism for integrating multiple and diverse high-frequency data streams from various sensing devices with stability guarantees and minimal development effort. To achieve such a technical solution, the gap between laboratory systems and consumer-grade installations must be bridged. This may best be achieved by an open, scalable, and flexible software infrastructure, as well as a set of tools that enables the integration of data from a wide range of technologies. To this end, we have developed a software system that offers a simple and flexible installation and supports arbitrary sensor technologies. Therefore, the objective of this work is to report on the end-to-end development, functionality, and performance evaluation of this open-source sensor recording software (SRS).</p>
    </sec>
    <sec sec-type="methods">
      <title>Methods</title>
      <sec>
        <title>Overview</title>
        <p>This section details the end-to-end development of the proposed SRS and how its performance was evaluated (<xref rid="figure1" ref-type="fig">Figure 1</xref>). The first part describes qualitative aspects of the software system, whereas the second part describes quantitative aspects in terms of system properties. The “Nonfunctional Requirements” section specifies the properties and characteristics of the developed system’s software architecture. The “Software Architecture” section describes the system’s components, how they are structured, and how they interact with each other. The “Field Experiments” section describes the acquisition of data to evaluate the SRS system, which involves running versions of the proposed software, referred to as <italic>instances</italic>. In the “System Properties” section, a documentation of the metrics to evaluate the performance of the system properties is provided.</p>
        <fig id="figure1" position="float">
          <label>Figure 1</label>
          <caption>
            <p>Outline of the qualitative and quantitative aspects of the methods section. First, a conceptualization of the system’s characteristics and properties in the form of nonfunctional requirements is provided, followed by a report on architectural components of its software and their interactions. This is followed by an explanation of the data acquisition in the field experiments; these data were used to evaluate the performance of the system’s properties by applying various metrics (error rate, throughput, latency, and usability). SRS: sensor recording software.</p>
          </caption>
          <graphic xlink:href="formative_v7i1e43092_fig1.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        </fig>
      </sec>
      <sec>
        <title>Nonfunctional Requirements</title>
        <p>The technical aspects of a software system (ie, its technical properties and constraints) can be described in terms of nonfunctional requirements. In the context of software engineering, nonfunctional requirements are defined as the constraints imposed on a system that specify the quality attributes of the software [<xref ref-type="bibr" rid="ref33">33</xref>]. These requirements therefore affect how the software architecture of a system is designed and implemented. To design the software architecture of the SRS, the nonfunctional requirements and attributes in <xref ref-type="boxed-text" rid="box1">Textbox 1</xref> were considered.</p>
        <boxed-text id="box1" position="float">
          <title>Nonfunctional requirements and attributes.</title>
          <p>
            <bold>1. Reliability</bold>
          </p>
          <list list-type="bullet">
            <list-item>
              <p>Allow the sensor recording software (SRS) to operate without failure while maintaining a specified level of performance for a prolonged period. The software should be fault tolerant, should have a low failure rate, and should be recoverable.</p>
            </list-item>
          </list>
          <p>
            <bold>2. Data integrity</bold>
          </p>
          <list list-type="bullet">
            <list-item>
              <p>Assures integrity, consistency, and correctness of the sensor data in the SRS.</p>
            </list-item>
          </list>
          <p>
            <bold>3. Scalability</bold>
          </p>
          <list list-type="bullet">
            <list-item>
              <p>Handle an increase in workload by adding resources to the system (eg, persisting measurements of high-frequency data producers).</p>
            </list-item>
          </list>
          <p>
            <bold>4. Performance</bold>
          </p>
          <list list-type="bullet">
            <list-item>
              <p>The time it takes for the SRS to accomplish a task (eg, the delay), or the number of requests the SRS completes within a given amount of time (eg, throughput).</p>
            </list-item>
          </list>
          <p>
            <bold>5. Flexibility</bold>
          </p>
          <list list-type="bullet">
            <list-item>
              <p>The degree to which the SRS can be adapted to different configurations without having to change its software, such as the integration of new sensor devices.</p>
            </list-item>
          </list>
          <p>
            <bold>6. Usability</bold>
          </p>
          <list list-type="bullet">
            <list-item>
              <p>Produce a straightforward software system for starting sensor measurements that works on a wide range of hardware solutions and requires only a minimum of technical know-how.</p>
            </list-item>
          </list>
          <p>
            <bold>7. Security</bold>
          </p>
          <list list-type="bullet">
            <list-item>
              <p>Prevent unauthorized access to measured sensor data.</p>
            </list-item>
          </list>
          <p>
            <bold>8. Privacy</bold>
          </p>
          <list list-type="bullet">
            <list-item>
              <p>Controls how sensitive data of the measured individuals are viewed and used.</p>
            </list-item>
          </list>
        </boxed-text>
      </sec>
      <sec>
        <title>Software Architecture</title>
        <sec>
          <title>Software Architecture: Design</title>
          <p>The design of the SRS architecture was derived from the specified nonfunctional requirements by attempting to fulfill several related objectives (<xref ref-type="table" rid="table1">Table 1</xref>), thus ensuring these objectives directly affect the implementation of the software architecture.</p>
          <p>To perform the actual implementation of the SRS architecture, the main technologies and frameworks listed in <xref ref-type="boxed-text" rid="box2">Textbox 2</xref> were chosen.</p>
          <table-wrap position="float" id="table1">
            <label>Table 1</label>
            <caption>
              <p>Listing of nonfunctional requirements, their objectives, the sensor recording software attempts to fulfill them, and detailed information about the strategy on how to meet the corresponding objective in the software architecture’s implementation.</p>
            </caption>
            <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
              <col width="30"/>
              <col width="470"/>
              <col width="0"/>
              <col width="500"/>
              <thead>
                <tr valign="top">
                  <td colspan="3">Nonfunctional requirement and its objectives</td>
                  <td>Implementation strategy in software architecture</td>
                </tr>
              </thead>
              <tbody>
                <tr valign="top">
                  <td colspan="4">
                    <bold>Reliability</bold>
                  </td>
                </tr>
                <tr valign="top">
                  <td>
                    <break/>
                  </td>
                  <td>Prolonged runtime using fault-tolerant policies</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>Perform system-wide exception handling and apply reactive restart strategies for critical program components in case of system crashes [<xref ref-type="bibr" rid="ref34">34</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
                <tr valign="top">
                  <td colspan="4">
                    <bold>Data integrity</bold>
                  </td>
                </tr>
                <tr valign="top">
                  <td>
                    <break/>
                  </td>
                  <td>High data quality</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>Validate all measured sensor samples before and after persisting with the data [<xref ref-type="bibr" rid="ref35">35</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
                <tr valign="top">
                  <td>
                    <break/>
                  </td>
                  <td>Reproducible experiments</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>Have replicable deployment configuration [<xref ref-type="bibr" rid="ref36">36</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
                <tr valign="top">
                  <td colspan="3">
                    <bold>Scalability</bold>
                  </td>
                  <td>
                    <break/>
                  </td>
                </tr>
                <tr valign="top">
                  <td>
                    <break/>
                  </td>
                  <td>System performs as expected under increasing or heavy workloads</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>Structure the software as a decentralized system in the form of lightweight microservices [<xref ref-type="bibr" rid="ref37">37</xref>]</p>
                      </list-item>
                      <list-item>
                        <p>Rely on technologies that have proven to be scalable [<xref ref-type="bibr" rid="ref38">38</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
                <tr valign="top">
                  <td colspan="4">
                    <bold>Performance</bold>
                  </td>
                </tr>
                <tr valign="top">
                  <td>
                    <break/>
                  </td>
                  <td>High data throughput rates for handling a large quantity of data streams</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>Use a concurrent web server capable of handling multiple connections [<xref ref-type="bibr" rid="ref39">39</xref>]</p>
                      </list-item>
                      <list-item>
                        <p>Persist with time-series data in an optimized database technology that supports fast writing operations [<xref ref-type="bibr" rid="ref40">40</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
                <tr valign="top">
                  <td colspan="4">
                    <bold>Flexibility</bold>
                  </td>
                </tr>
                <tr valign="top">
                  <td>
                    <break/>
                  </td>
                  <td>Easy integration of new sensor devices or third-party applications</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>Incorporate new sensor-data formats by adhering to the extendable data interface [<xref ref-type="bibr" rid="ref41">41</xref>]</p>
                      </list-item>
                      <list-item>
                        <p>System components are divided into functional parts with high cohesion and low coupling [<xref ref-type="bibr" rid="ref42">42</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
                <tr valign="top">
                  <td colspan="3">
                    <bold>Usability</bold>
                  </td>
                  <td>
                    <break/>
                  </td>
                </tr>
                <tr valign="top">
                  <td rowspan="3">
                    <break/>
                  </td>
                  <td>Supports a large variety of hardware systems</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>Rely on standard lightweight virtualization technique for the orchestration of microservices [<xref ref-type="bibr" rid="ref43">43</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
                <tr valign="top">
                  <td>Streamline the installation and configuration of the software</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>Follow best practices for deployment strategies, specifically through version control systems in combination with continuous integration provided by repository hosting services [<xref ref-type="bibr" rid="ref44">44</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
                <tr valign="top">
                  <td>Offers an intuitive method to control sensor measurements</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>Implement a graphical user interface designed to carry out measurement and the monitoring of the data stream [<xref ref-type="bibr" rid="ref45">45</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
                <tr valign="top">
                  <td colspan="4">
                    <bold>Security</bold>
                  </td>
                </tr>
                <tr valign="top">
                  <td>
                    <break/>
                  </td>
                  <td>Data protection concerns</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>Database is encrypted and hosted locally [<xref ref-type="bibr" rid="ref46">46</xref>]</p>
                      </list-item>
                      <list-item>
                        <p>Data can only be accessed through communication channels that use network certificates [<xref ref-type="bibr" rid="ref47">47</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
                <tr valign="top">
                  <td colspan="4">
                    <bold>Privacy</bold>
                  </td>
                </tr>
                <tr valign="top">
                  <td>
                    <break/>
                  </td>
                  <td>Protect privacy of measured individuals</td>
                  <td colspan="2">
                    <list list-type="bullet">
                      <list-item>
                        <p>No identifying information is stored in the database [<xref ref-type="bibr" rid="ref48">48</xref>]</p>
                      </list-item>
                    </list>
                  </td>
                </tr>
              </tbody>
            </table>
          </table-wrap>
          <boxed-text id="box2" position="float">
            <title>The main technologies and frameworks for the actual implementation of the sensor recording software architecture.</title>
            <p>
              <bold>1. The software-virtualization platform <italic>Docker</italic></bold>
            </p>
            <list list-type="bullet">
              <list-item>
                <p>This virtualization platform Docker [<xref ref-type="bibr" rid="ref49">49</xref>] offers a standardized, lightweight virtualization technique controlling the execution states of a program (eg, starting, stopping, or restarting a program) in the form of containers leveraging the orchestration of microservices [<xref ref-type="bibr" rid="ref43">43</xref>]. This aspect substantially simplifies the deployment process, while the level of technical expertise required is reduced, thus improving the overall usability of the sensor recording software [<xref ref-type="bibr" rid="ref44">44</xref>,<xref ref-type="bibr" rid="ref50">50</xref>]. With Docker’s ability to define restart policies for its containers, reliability can be guaranteed in the form of prolonged runtimes [<xref ref-type="bibr" rid="ref51">51</xref>].</p>
              </list-item>
            </list>
            <p>
              <bold>2. The <italic>NoSQL</italic> database <italic>MongoDB</italic></bold>
            </p>
            <list list-type="bullet">
              <list-item>
                <p>The <italic>NoSQL</italic> [<xref ref-type="bibr" rid="ref40">40</xref>] database <italic>MongoDB</italic> [<xref ref-type="bibr" rid="ref52">52</xref>] offers fast writing operations and is thus well suited to persisting high-frequency time-series data over a prolonged period, such as sensor recordings [<xref ref-type="bibr" rid="ref40">40</xref>,<xref ref-type="bibr" rid="ref53">53</xref>]. The security aspects are further enhanced by enabling MongoDB’s native encryption functionality.</p>
              </list-item>
            </list>
            <p>
              <bold>3. The reverse proxy, <italic>Nginx</italic>, in combination with the concurrent web server <italic>Node.js</italic></bold>
            </p>
            <list list-type="bullet">
              <list-item>
                <p>Using the combination of <italic>Nginx</italic> [<xref ref-type="bibr" rid="ref54">54</xref>] and Node.js [<xref ref-type="bibr" rid="ref55">55</xref>] in web development has been shown to be a reliable choice for the efficient handling of input/output operations (eg, handling a large number of transmission control protocol sockets due to incoming sensor requests) while ensuring performance [<xref ref-type="bibr" rid="ref56">56</xref>,<xref ref-type="bibr" rid="ref57">57</xref>].</p>
              </list-item>
            </list>
            <p>
              <bold>4. The column-oriented data format <italic>Apache Parquet</italic></bold>
            </p>
            <list list-type="bullet">
              <list-item>
                <p>Data in the <italic>Apache Parquet</italic> [<xref ref-type="bibr" rid="ref58">58</xref>] format are stored consecutively on the hard disk and are thus highly compression friendly. This compression aspect makes Parquet particularly useful for applications that need to store and query large amounts of data (such as those generated in the analysis of time series produced in sensors) to improve their performance [<xref ref-type="bibr" rid="ref50">50</xref>]. This aspect makes Parquet an ideal format for exported database dumps.</p>
              </list-item>
            </list>
          </boxed-text>
        </sec>
        <sec>
          <title>Software Architecture: Implementation</title>
          <p>To ensure that the SRS fulfills the previously specified nonfunctional requirements, the software is divided into modular components according to the modularity principles described by Laplante [<xref ref-type="bibr" rid="ref59">59</xref>]. The components and their intercommunication are organized according to the client-server architecture. Consequently, the SRS architecture consists of the following three high-level components (<xref rid="figure2" ref-type="fig">Figure 2</xref>): the backend, as a server representing the central resource provider; the consumers, as a client fetching data streams from the server (eg, visualization programs); and the producers, as a client sending data to the server (eg, sensors, human users, or external services).</p>
          <fig id="figure2" position="float">
            <label>Figure 2</label>
            <caption>
              <p>Schematic representation of the sensor recording software architecture and its functional components organized according to the client-server architecture. The backend represents the server abstraction and provides resources to its clients (consumers and producers). DB: Database.</p>
            </caption>
            <graphic xlink:href="formative_v7i1e43092_fig2.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
          </fig>
          <p>The backend is structured into functional components that each represent a collection of services that expose internal resources (eg, the database) to the application programming interface (API) end points to clients (ie, data-stream interfaces for producers and consumers). It further consists of a reverse proxy server, a web server with multiple APIs (WebSockets [<xref ref-type="bibr" rid="ref60">60</xref>] and RESTful [<xref ref-type="bibr" rid="ref55">55</xref>]), a database, and a data export service. Such service-oriented architecture structuring has been demonstrated to be particularly useful in the realm of web application development [<xref ref-type="bibr" rid="ref56">56</xref>]. Moreover, all of the services are run as Docker containers and are managed via Docker Compose.</p>
          <p>The reverse proxy, Nginx, is integrated into the backend to route client requests and to secure all communication channels with SSL/TLS (secure sockets layer/transport layer security) certificates [<xref ref-type="bibr" rid="ref57">57</xref>]. These client requests are served by a Node.js web server. Other important tasks of this web server are the specification of client end points, the filtering of sensor streams, the setup of database connections, the scheduling of backup triggers, and the validation of the data to persist in the database. For serving client requests, the web server exposes a RESTful and a WebSocket API. The RESTful API provides end points for creating, deleting, or retrieving database entities over http, while the WebSocket API provides an interface for streaming sensor measurements to third-party applications or sending control messages to the sensor devices (eg, for toggling or rebooting) in near-real time. Furthermore, to foster their development and integration into other systems, all public-facing APIs are documented with Swagger [<xref ref-type="bibr" rid="ref61">61</xref>]. To efficiently persist with high-frequency sensor data, the database technology MongoDB is used. Access to the end points is restricted using authentication protocols (http basic authentication and API access tokens). Data integrity constraints are guaranteed by validating the data before writing the samples into the database. The data export service is realized as a Python application that is triggered by the backend to export the acquired raw data from the database to a tabular format specified in Apache Parquet. To meet the requirements set by local ethics boards, exported files can be saved, optionally, to a long-term storage system (eg, to a network-attached storage or even a cloud storage system, such as AWS S3).</p>
          <p>The consumer abstraction represents client applications that depend on and consume backend resources (eg, front-end applications) in the form of service applications. In this regard, several front-end applications are integrated to increase the overall usability of SRS systems. First, a graphical user interface (UI), realized as a Vue.js [<xref ref-type="bibr" rid="ref62">62</xref>] web application, allows users to configure sensing devices, start and stop recordings, and dump the database. Vue.js was chosen because it is a single-page application framework that allows the creation of reusable components and, thus, makes it straightforward to extend the front-end application. Another consumer application included is a program used to annotate events in the time-series data assessed in a sensor recording. Next, a program to analyze the delays in persistent sensor recordings was integrated, which may help detect issues in the recording processes of sensing devices. The integration of the TICK (Telegraf, InfluxDB, Chronograf, Kapacitor) stack [<xref ref-type="bibr" rid="ref63">63</xref>] offers further administrative simplifications that enable the SRS system to quickly store, visualize, and alert events in time-series data by integrating the following programs: Telegraph, an agent for collecting and reporting metrics; InfluxDB, a time-series database; Chronograph, a configurable dashboard to visualize InfluxDB data; and Kapacitor, an event-processing and alerting engine with bindings to notification systems (eg, via SMS text message and email). Lastly, several data processors were preimplemented to extract specific digital measures (eg, temperature statistics) from the exported data (eg, Apache Parquet files).</p>
          <p>Regarding the security aspects, all the front-end applications are protected by means of token-based authentication techniques (eg, the OAuth2 protocol) and encrypted connections using SSL/TLS certificates, with public API requests performed over the https protocol.</p>
          <p>The producer abstraction models data-producing client applications that interact with the backend. In other words, the producer streams data to, and receives control messages from, the backend. Producers are either sensor devices installed in the same network (eg, radars or LIDARs [light detection and ranging]), external services (eg, a producer that is in a different network, such as a commercially available cloud service), or human users who manually enter data (eg, timestamp annotations). A sensor system is either an adapter that communicates with an existing sensor device and forwards measurements to the SRS system or a driver for a sensing device (eg, radar antenna) that integrates the SRS communication protocols. In both cases, the end user must implement the adapter integration and data. Consistent communication between sensors and the backend is ensured by providing a strongly typed payload specification via JSON schema and requiring every sensor device to implement a specification to transmit data packets. This specification includes the sensor type, the structure of the sensor samples, and its expected metadata, such as the sensor’s internet protocol address. The data flow from any sensor to the backend is performed over a RESTful http API, whereas the sensor control flow, which manages the state of the sensor (such as on/off), is achieved via streaming technologies using WebSockets. Examples of sensors that have been integrated into the system using this interface are radar systems to measure gait parameters and a pressure-sensing mattress for tracking activity in bed.</p>
          <p>The source code of the SRS is freely available on the project website [<xref ref-type="bibr" rid="ref64">64</xref>], along with detailed documentation resources. These resources contain an outline of the architecture, a step-by-step installation manual, a Docker Compose configuration file to install and run the SRS instances, and a tutorial that describes how to integrate a new sensor.</p>
          <p>In what follows, 3 qualitative utility programs of the SRS system are elaborated: a graphical UI to administer the SRS pipeline and mark and annotate events in a live measurement, a program to analyze delays in recorded samples, and a configurable dashboard to monitor system resources.</p>
        </sec>
        <sec>
          <title>Software Architecture—Event Annotation Program</title>
          <p>To start and stop sensor recordings, a browser-based program with a graphical UI was integrated into every SRS system. This program allows an experimenter to manually annotate events of interest in a synchronized manner across all incoming sensor recordings. Two synchronized radar recordings were continuously assessed for 15 minutes in a measurement in November 2021 (<xref rid="figure3" ref-type="fig">Figure 3</xref>). The events were annotated with labels for their measurement (M1, M2, and M3) and their repetitions were expressed as trials (T1, T2, or T3).</p>
          <fig id="figure3" position="float">
            <label>Figure 3</label>
            <caption>
              <p>A visualization of 6 walks performed by a single participant, measured by 2 Doppler radars (indicated by the green and yellow dots), together with annotated events (ie, a correspondence between timestamp ranges, experiment, and their trial numbers).</p>
            </caption>
            <graphic xlink:href="formative_v7i1e43092_fig3.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
          </fig>
        </sec>
        <sec>
          <title>Software Architecture: Sample Delay Analysis Program</title>
          <p>A program was integrated into every SRS system to analyze the delays in persistent sensor recordings. Such recordings can be used to detect indications of variations and potential delays in sensor streams. An example of a radar timestamp delay distribution produced by the SRS is shown in <xref rid="figure4" ref-type="fig">Figure 4</xref>.</p>
          <fig id="figure4" position="float">
            <label>Figure 4</label>
            <caption>
              <p>Visualization of a radar timestamp delay distribution, along with descriptive statistics of the measurement. (A) Green dots show the delay per sample and brown dots show the expected value for the delay; (B) bar chart representation of the delay distribution for 800 samples.</p>
            </caption>
            <graphic xlink:href="formative_v7i1e43092_fig4.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
          </fig>
        </sec>
        <sec>
          <title>Software Architecture: Monitoring Dashboard</title>
          <p>The TICK stack, a framework that can be used to quickly create dashboards on time-series data, was integrated to monitor various hardware and network resources of SRS systems (<xref rid="figure5" ref-type="fig">Figure 5</xref>). This resource monitor allows the observation of (1) central processing unit (CPU), (2) disk, and (3) RAM usage in combination with (4) the HTML status codes of network requests (ie, GET and POST).</p>
          <fig id="figure5" position="float">
            <label>Figure 5</label>
            <caption>
              <p>Resource monitor of the server that runs a sensor recording software instance via Chronograph dashboards: (A) CPU usage, (B) RAM usage, (C) disk usage, and (D) Nginx HTTP codes.</p>
            </caption>
            <graphic xlink:href="formative_v7i1e43092_fig5.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
          </fig>
        </sec>
      </sec>
      <sec>
        <title>Field Experiments</title>
        <p>A total of 4 SRS instances, hereafter referred to as <italic>instance 1</italic>, <italic>instance 2</italic>, <italic>instance 3</italic>, and <italic>instance 4</italic>, were used and evaluated in 3 observational studies. These studies will be broadly elaborated on to highlight how the SRS system can be used and the associated preliminary findings will be shown.</p>
        <p>First, instance 1 was used in a study, hereafter referred to as <italic>study 1</italic> (n=67 for 21 days). In this study, participants had to perform various gait-related tasks in an instrumented apartment. The purpose of this study was to create a medical data set that can be used to develop novel algorithms to extract gait parameters. Second, instance 2 and instance 3 were deployed in a study, hereafter referred to as <italic>study 2</italic> (n=43 for 20 days), in which the system was expanded to work as a mobile and portable SRS to act as a mobile gait analyzer and to track activities of daily living (ADL). The purpose of this study was to analyze these activities in a population of healthy participants using different sensors. Notably, the results of both studies, study 1 and study 2, have yet not been published. Lastly, instance 4 was used in a pilot case study, hereafter referred to as <italic>study 3</italic> (n=4 for 30 days), in which, Gerber et al [<xref ref-type="bibr" rid="ref65">65</xref>] measured ADL during a 12-hour overnight stay in an instrumented apartment. The purpose of this use case study was to demonstrate that the proposed system can be used to continuously assess digital biomarkers (eg, gait parameters and ADL) during a prolonged period and therefore represents a reliable measuring method for conducting future clinical studies in the apartment (eg, measure the change in motor functions in patients with Parkinson disease or multiple sclerosis).</p>
        <p>Study-specific demographic information, a list of installed sensors, and the hardware specifications of each SRS instance used in each study can be found in <xref ref-type="table" rid="table2">Table 2</xref>. All sensor systems were assembled using consumer-grade hardware, without the need for any connection to the internet.</p>
        <p>To date, a variety of different sensors have been tested and integrated into the SRS system, demonstrating the flexibility of the sensor interface. The sensors used to generate the data sets (<xref ref-type="table" rid="table2">Table 2</xref>) were Doppler radars, seismographs, LIDARs, magnetic door sensors, a motion tracking camera system, a pressure mattress for tracking activity in bed, an infrared camera, night and day cameras, passive infrared sensors, a microphone system, devices for measuring power consumption, and environmental sensors (eg, temperature, humidity, and water flow sensors). These sensors have been shown to be particularly useful in biomedical research concerning the analysis of motor and nonmotor functions [<xref ref-type="bibr" rid="ref65">65</xref>,<xref ref-type="bibr" rid="ref66">66</xref>] and were thus integrated into the SRS system. The performance of the SRS was statistically evaluated based on the data collected through deployed instances used in the studies. Finally, to demonstrate that the SRS has a wide area of application with respect to different hardware configurations, the software was tested on a Raspberry Pi 4 in combination with 3 radar sensors. This SRS instance was run for 24 hours with its radars configured to send 1 data packet per second from the sensors to the backend. In this proof-of-concept test, only the error rates of incoming packets and the CPU utilization were analyzed.</p>
        <table-wrap position="float" id="table2">
          <label>Table 2</label>
          <caption>
            <p>The sensor recording software instance specifications related to the demographics, sensors, and hardware used in different studies.</p>
          </caption>
          <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="30"/>
            <col width="490"/>
            <col width="0"/>
            <col width="120"/>
            <col width="0"/>
            <col width="120"/>
            <col width="0"/>
            <col width="120"/>
            <col width="0"/>
            <col width="0"/>
            <col width="120"/>
            <thead>
              <tr valign="top">
                <td colspan="3">Specifications</td>
                <td colspan="2">Study 1</td>
                <td colspan="5">Study 2</td>
                <td>Study 3</td>
              </tr>
              <tr valign="top">
                <td colspan="3">
                  <break/>
                </td>
                <td colspan="2">Instance 1</td>
                <td colspan="2">Instance 2</td>
                <td colspan="2">Instance 3</td>
                <td colspan="2">Instance 4</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td colspan="11">
                  <bold>Participants</bold>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Participants, n</td>
                <td colspan="2">67</td>
                <td colspan="2">43</td>
                <td colspan="2">43</td>
                <td colspan="3">4</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Age (years), mean (SD)</td>
                <td colspan="2">35.0 (12.0)</td>
                <td colspan="2">34.0 (10.0)</td>
                <td colspan="2">34.0 (10.0)</td>
                <td colspan="3">32.0 (2.3)</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Female, n</td>
                <td colspan="2">32</td>
                <td colspan="2">18</td>
                <td colspan="2">18</td>
                <td colspan="3">2</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Experiment duration in days, n</td>
                <td colspan="2">21</td>
                <td colspan="2">20</td>
                <td colspan="2">20</td>
                <td colspan="3">30</td>
              </tr>
              <tr valign="top">
                <td colspan="11">
                  <bold>Sensors</bold>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Radars, n</td>
                <td colspan="2">14</td>
                <td colspan="2">N/A<sup>a</sup></td>
                <td colspan="2">8</td>
                <td colspan="3">7</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>LIDARs<sup>b</sup>, n</td>
                <td colspan="2">5</td>
                <td colspan="2">2</td>
                <td colspan="2">2</td>
                <td colspan="3">4</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Seismographs, n</td>
                <td colspan="2">3</td>
                <td colspan="2">N/A</td>
                <td colspan="2">2</td>
                <td colspan="3">2</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Bed pressure sensors, n</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="2">1</td>
                <td colspan="3">1</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Door sensors, n</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="3">23</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Environmental sensors, n</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="3">6</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Waterflow meters, n</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="3">4</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Cameras, n</td>
                <td colspan="2">7</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="3">6</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Motion tracking systems, n</td>
                <td colspan="2">1</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="3">1</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Microphones, n</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="3">5</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Power meters, n</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="2">N/A</td>
                <td colspan="3">13</td>
              </tr>
              <tr valign="top">
                <td colspan="11">
                  <bold>Computer specifications</bold>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Central processing unit (GHz; number of cores/number of threads)</td>
                <td colspan="2">3.4 (16/32)</td>
                <td colspan="2">4 (9/18)</td>
                <td colspan="2">3.9 (4/8)</td>
                <td colspan="3">4 (6/12)</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>RAM (GB)</td>
                <td colspan="2">64</td>
                <td colspan="2">32</td>
                <td colspan="2">32</td>
                <td colspan="3">32</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Network bandwidth (Mbit/s)</td>
                <td colspan="2">1000</td>
                <td colspan="2">100</td>
                <td colspan="2">100</td>
                <td colspan="3">1000</td>
              </tr>
            </tbody>
          </table>
          <table-wrap-foot>
            <fn id="table2fn1">
              <p><sup>a</sup>N/A: data not applicable.</p>
            </fn>
            <fn id="table2fn2">
              <p><sup>b</sup>LIDAR: light detection and ranging.</p>
            </fn>
          </table-wrap-foot>
        </table-wrap>
      </sec>
      <sec>
        <title>System Properties</title>
        <sec>
          <title>Overview</title>
          <p>The quantitative performance of the SRS architecture was evaluated by statistically analyzing the data obtained in the field experiments. To compute these statistics, the system properties and associated metrics listed in the following sections were used.</p>
        </sec>
        <sec>
          <title>Reliability</title>
          <p>Following the analysis techniques outlined by Nagappan [<xref ref-type="bibr" rid="ref67">67</xref>], the malfunctioning rate was determined by statistically analyzing the SRS log files (error, warning, and info logs) of the web server, the reverse proxy, and the database of the backend. Descriptive statistics for the error rates were determined by examining the backend logs of all instances and counting the HTML response codes. To do this, all 4xx and 5xx status codes were aggregated and counted as an error, while all remaining status codes were counted as valid requests. Based on the work of Horner and Symons [<xref ref-type="bibr" rid="ref68">68</xref>], an acceptable error rate of 0.02% was chosen. In addition, the continuity of measurements and the potentially induced delay were calculated based on the packet timestamps of persistent samples produced by a high-frequency data producer. For this purpose, we extracted and descriptively analyzed timestamps from corresponding log files that were generated by a LIDAR sensor with a sampling rate of 40 Hz.</p>
        </sec>
        <sec>
          <title>Throughput</title>
          <p>The rate at which data were processed within a specified period was used as a performance indicator. This value was calculated by counting the number of processed SRS requests within a certain period using the program httperf [<xref ref-type="bibr" rid="ref69">69</xref>]. This standardized tool directly outputs descriptive statistics (ie, values for the minimum, maximum, median, mean, and SD) of a performance measurement. Throughput measurements were performed for 2 http request types: GET requests (ie, fetch data from the backend) and POST requests (ie, send data to the backend). Three different tests per request type and per instance were performed. In each of these tests, http requests were sent to a randomly selected number of end points corresponding to the request type. Different numbers of requests were then sent at different request rates based on the following 2 rationales: First, every SRS instance is expected to support at least 20 concurrently running sensors sending data at 1 Hz. Second, according to performance measurements reported by Nginx, 1 core of current consumer hardware CPUs (eg, Xeon CPU E5‑2699 v3 @ 2.30 GH) is expected to be able to handle more than 400 connections per second [<xref ref-type="bibr" rid="ref70">70</xref>]. Consequently, the following test scenarios were run and statistically evaluated: 10,000 requests at a rate of 400 requests per second (test A), 2000 requests at a rate of 100 requests per second (test B), and 400 requests at a rate of 20 requests per second (test C). Each test was repeated 20 times per instance and the average request time was determined via descriptive statistics. Notably, if a request time is below 0.1 seconds, users feel that the system is reacting instantaneously [<xref ref-type="bibr" rid="ref71">71</xref>]. Thus, the throughput measurements were compared with this threshold and considered tolerable if their average time per request was below this value. Finally, a 2-sided <italic>t</italic> test (paired) was performed to compare the throughput between GET and POST requests.</p>
        </sec>
        <sec>
          <title>Latency</title>
          <p>The latency of the instances was determined by measuring how long packets took to reach their destination, also known as delay, with the program Pingmesh [<xref ref-type="bibr" rid="ref72">72</xref>]. For this purpose, the 4 instances were repeatedly pinged, 10 times per day for 1 week. Each such measurement was performed for 120 seconds at a rate of 1 sample per second. As most of the integrated sensors communicate via Wi-Fi, the computer used to ping the instances was connected via the same connection type to the network (ie, it was not connected via Ethernet). To determine whether the SRS corresponds to a low-latency system, a delay of 100 ms was used, as this was the delay threshold for control traffic in smart grid defined in a study by Jiang et al [<xref ref-type="bibr" rid="ref73">73</xref>]. The system latency was determined by aggregating the individual delays introduced via the systems.</p>
        </sec>
        <sec>
          <title>Usability</title>
          <p>The usability was assessed based on the responses of 10 administrators to the System Usability Scale (SUS) questionnaire [<xref ref-type="bibr" rid="ref74">74</xref>] and the Post-Study System Usability Questionnaire (PSSUQ) [<xref ref-type="bibr" rid="ref75">75</xref>] (<xref ref-type="supplementary-material" rid="app1">Multimedia Appendices 1</xref> and <xref ref-type="supplementary-material" rid="app2">2</xref>). The SUS is scored on a scale of 0-100, where 0 represents poor performance, 71.1 represents acceptable performance, and 100 represents excellent performance. The score of the PSSUQ is on a Likert scale that ranges from 1 to 7, with lower values indicating a better test performance. An average PSSUQ score (for its overall variable) of 2.62 or less is considered to correspond to an acceptable test performance [<xref ref-type="bibr" rid="ref76">76</xref>]. Prior to completing the questionnaires, the administrators were asked to set up a new SRS instance, integrate a sensor, and start a sensor recording. The administrators were provided with step-by-step instructions, an SRS installation manual, a computer with a clean Ubuntu and Docker installation, and a radar sensor. During each test, the time that the participants needed to complete their tasks was recorded. In addition, after completing the test, participants were asked to provide feedback on what could be improved to enhance the overall user experience. The precise protocol for the usability test can be found in the project repository [<xref ref-type="bibr" rid="ref64">64</xref>].</p>
        </sec>
      </sec>
      <sec>
        <title>Ethics Approval</title>
        <p>The referred case studies were conducted according to the guidelines of the Declaration of Helsinki and approved by the Ethics Committee of the Canton of Bern, Switzerland (Kantonale Ethik Kommission [KEK] numbers 2020-02771, 2021-00965, and 2021-01420).</p>
      </sec>
    </sec>
    <sec sec-type="results">
      <title>Results</title>
      <sec>
        <title>Overview</title>
        <p>This section details the statistical aspects of the analyzed system properties and experimental findings of the SRS on a Raspberry Pi 4. Next, quantitative findings in the form of the statistical outcomes of the evaluated system properties (reliability, throughput, delay, and usability) are presented. Finally, the results of a proof-of-concept 24-hour measurement performed with a Raspberry Pi 4 are demonstrated. A summary of our main quantitative findings, together with reference values from the literature, is presented in <xref ref-type="table" rid="table3">Table 3</xref>.</p>
        <table-wrap position="float" id="table3">
          <label>Table 3</label>
          <caption>
            <p>A summary of our main findings on the analyzed system properties. For each system property, the measured average value, together with a reference value from the literature, is listed. The values of all the measured system properties were within their reference ranges.</p>
          </caption>
          <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="200"/>
            <col width="400"/>
            <col width="400"/>
            <thead>
              <tr valign="top">
                <td>System property</td>
                <td>Measured value in experiments</td>
                <td>Reference value from the literature</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td>Reliability</td>
                <td>Error rate of ≤0.012%</td>
                <td>Error rate of ≤0.02% [<xref ref-type="bibr" rid="ref68">68</xref>]</td>
              </tr>
              <tr valign="top">
                <td>Throughout</td>
                <td>Throughout of ≤60.69 ms</td>
                <td>Throughput of ≤100 ms [<xref ref-type="bibr" rid="ref71">71</xref>]</td>
              </tr>
              <tr valign="top">
                <td>Latency</td>
                <td>Delay of ≤12.21 ms</td>
                <td>Delay of ≤100 ms [<xref ref-type="bibr" rid="ref73">73</xref>]</td>
              </tr>
              <tr valign="top">
                <td>Usability</td>
                <td>SUS<sup>a</sup> score of ≥80; PSSUQ<sup>b</sup> score of ≤1.90</td>
                <td>SUS score of ≥71.1 [<xref ref-type="bibr" rid="ref74">74</xref>]; PSSUQ score of ≤2.62 [<xref ref-type="bibr" rid="ref76">76</xref>]</td>
              </tr>
            </tbody>
          </table>
          <table-wrap-foot>
            <fn id="table3fn1">
              <p><sup>a</sup>SUS: System Usability Scale.</p>
            </fn>
            <fn id="table3fn2">
              <p><sup>b</sup>PSSUQ: Post-Study System Usability Questionnaire.</p>
            </fn>
          </table-wrap-foot>
        </table-wrap>
      </sec>
      <sec>
        <title>System Properties: Reliability</title>
        <p>HTML response codes were logged and analyzed for more than 420 days to determine the reliability performance (<xref ref-type="table" rid="table4">Table 4</xref>). In total, more than 320 million requests were sent across all instances, with an average rate of approximately 9 requests per second. A total of 7342 errors occurred, and thus, the average and maximum error percentages were low (0.002% and 0.012%, respectively). Both error percentages were within the threshold for an acceptable error rate (0.02%) [<xref ref-type="bibr" rid="ref68">68</xref>].</p>
        <p>During our experiments, a total of 19.8 million LIDAR packets were processed by all instances of the SRS. Their internal processing times are listed in <xref ref-type="table" rid="table5">Table 5</xref>. The mean package processing time for all instances was 25.09 (SD 0.15) ms.</p>
        <table-wrap position="float" id="table4">
          <label>Table 4</label>
          <caption>
            <p>Descriptive statistics of HTML status codes extracted from log messages produced by our instances over 420 days. Status codes were categorized as valid (1xx, 2xx, and 3xx codes) or error (4xx and 5xx codes), and their percentage relative to the total number of received requests is reported.</p>
          </caption>
          <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="120"/>
            <col width="240"/>
            <col width="120"/>
            <col width="120"/>
            <col width="200"/>
            <col width="200"/>
            <thead>
              <tr valign="top">
                <td>Instance</td>
                <td>Requests, n (n=323,773,157)</td>
                <td>Valid, %</td>
                <td>Errors, %</td>
                <td>Runtime (days) (n=420.6)</td>
                <td>Frequency (Hz), mean</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td>1</td>
                <td>268,174,824</td>
                <td>99.998</td>
                <td>0.002</td>
                <td>126.1</td>
                <td>24.6</td>
              </tr>
              <tr valign="top">
                <td>2</td>
                <td>23,513,498</td>
                <td>99.999</td>
                <td>0.001</td>
                <td>67.4</td>
                <td>4.0</td>
              </tr>
              <tr valign="top">
                <td>3</td>
                <td>26,524,834</td>
                <td>99.988</td>
                <td>0.012</td>
                <td>225.1</td>
                <td>1.3</td>
              </tr>
              <tr valign="top">
                <td>4</td>
                <td>5,560,001</td>
                <td>100.000</td>
                <td>0.000</td>
                <td>2.0</td>
                <td>31.9</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <table-wrap position="float" id="table5">
          <label>Table 5</label>
          <caption>
            <p>Descriptive statistics of the LIDAR (light detection and ranging) packet processing time evaluated in different instances. Each LIDAR sends small but highly frequent packages (40 Hz).</p>
          </caption>
          <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="300"/>
            <col width="350"/>
            <col width="350"/>
            <thead>
              <tr valign="top">
                <td>Instance</td>
                <td>Packets, n (n=19,817,460)</td>
                <td>Time (ms), mean (SD)</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td>1</td>
                <td>8,227,508</td>
                <td>25.08 (0.15)</td>
              </tr>
              <tr valign="top">
                <td>2</td>
                <td>1,603,094</td>
                <td>25.09 (0.15)</td>
              </tr>
              <tr valign="top">
                <td>3</td>
                <td>3,830,283</td>
                <td>25.07 (0.17)</td>
              </tr>
              <tr valign="top">
                <td>4</td>
                <td>6,156,575</td>
                <td>25.10 (0.12)</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
      </sec>
      <sec>
        <title>System Properties: Throughput</title>
        <p>Test results of GET and POST throughput experiments are shown in <xref rid="figure6" ref-type="fig">Figure 6</xref>. For both request types, across all experiments, the average request time was short, ranging between 4.72 and 8.30 ms (mean 5.98 ms, SD 1.82 ms). Furthermore, independent of the instance and request type, on average, as the number of requests increased, the SD of the throughput rate increased (test A: SD 48.00 ms; test B: SD 3.84 ms; test C: SD 2.39 ms). Similarly, the average maximum throughput rate increased (test A: maximum 60.49 ms; test B: maximum 54.00 ms; test C: maximum 25.90 ms). Both request types reported very similar and low average minima (GET: minimum 3.28 ms; POST: minimum 3.29 ms). The average and maximum request times (5.98 and 60.49 ms, respectively) were below the threshold of an instantaneously reacting system (100 ms) [<xref ref-type="bibr" rid="ref71">71</xref>]. For all instances, the median was very close to the corresponding mean, with an average difference of 0.67 ms. There was no significant difference (<italic>t</italic><sub>480</sub>=–0.0571; <italic>P</italic>=.045) in throughput between GET (mean 5.97 ms, SD 3.64 ms) and POST (mean 5.99 ms, SD 3.50 ms). No packet losses were observed during the testing.</p>
        <fig id="figure6" position="float">
          <label>Figure 6</label>
          <caption>
            <p>Descriptive statistics of (A) GET and (B) POST requests. The y-axis represents the different combinations of reference instances (Instance 1 to Instance 4) and test scenarios (test A to test C). The x-axis indicates the time it took an instance to process the received request (depending on the test scenario). Horizontal lines indicate the variance, while vertical bars indicate the mean. The median is represented by a dot, and a cross indicates the minimum. Maximum values were omitted from the figure to improve the overall clarity, as these values were outside the plotted scale.</p>
          </caption>
          <graphic xlink:href="formative_v7i1e43092_fig6.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        </fig>
      </sec>
      <sec>
        <title>System Properties: Latency</title>
        <p>The evaluation of instance latency was realized via box plot representations of long-term delay measurements (<xref rid="figure7" ref-type="fig">Figure 7</xref>). Across all instances, the average delay was low (between 9.9 and 11.6 ms, mean 10.7 ms, SD 2.0 ms). Instance 3 exhibited the lowest delay (mean 9.55, SD 1.33 ms), and instance 4 exhibited the highest delay (mean 12.21 ms, SD 2.18 ms). The average delay across all instances (10.88 ms) was below the definition of a low-latency system (100 ms) [<xref ref-type="bibr" rid="ref73">73</xref>]. Moreover, there were no significant differences in delay between the instances (<italic>t</italic><sub>33,600</sub>=–1.54 × 10<sup>–15</sup>; <italic>P</italic>&#60;.001). Finally, few outliers were reported, and no packet losses were observed during the testing.</p>
        <fig id="figure7" position="float">
          <label>Figure 7</label>
          <caption>
            <p>Box plot visualization of the per-instance delay values.</p>
          </caption>
          <graphic xlink:href="formative_v7i1e43092_fig7.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        </fig>
      </sec>
      <sec>
        <title>System Properties: Usability</title>
        <p>The system usability was assessed by analyzing the responses of 10 participants to the SUS and PSSUQ (<xref rid="figure8" ref-type="fig">Figure 8</xref>). The mean participant SUS score yielded an excellent (&#62;80.3) usability rating [<xref ref-type="bibr" rid="ref74">74</xref>], with scores between 80.0 and 97.5 (mean 89.5, SD 4.8). The mean overall PSSUQ score (mean 1.62, SD 0.36), as well as its system usability (mean 1.35, SD 0.27), information quality (mean 1.80, SD 0.54), and interface quality (mean 1.90, SD 0.63) scores attained an acceptable level (overall: &#60;2.62) [<xref ref-type="bibr" rid="ref75">75</xref>,<xref ref-type="bibr" rid="ref76">76</xref>].</p>
        <p>According to the participants’ qualitative feedback, the installation script was helpful and simple to use. By contrast, the experiment UI could be made easier to use by adding colors to functional components, such as buttons and drop-down menus.</p>
        <fig id="figure8" position="float">
          <label>Figure 8</label>
          <caption>
            <p>(A) The SUS score for each participant, with the brown line indicating the average SUS score across all participants (mean 89.5, SD 4.8). A score of 100 represents excellent usability, while lower scores represent poor usability. Panels B to E represent the PSSUQ scores (ie, Overall, SU, InfQ, and IntQ) for each participant, with the brown line indicating the average value. The PSSUQ scores range between 1 (best value) and 7 (worst value). The green colored areas in the subfigures correspond to scores that are within the specified threshold values (ie, the accepted zone). InfQ: information quality; IntQ: interface quality; PSSUQ: Post-Study System Usability Questionnaire; SU: system usability; SUS: System Usability Scale.</p>
          </caption>
          <graphic xlink:href="formative_v7i1e43092_fig8.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        </fig>
      </sec>
      <sec>
        <title>Field Experiments: SRS on a Raspberry Pi 4</title>
        <p>The SRS was installed on a Raspberry Pi 4 in combination with 3 radar sensors. The resulting system was run for 24 hours. In the measurement, only reliability aspects, along with CPU usages, were analyzed. The system did not report any errors during the measurement. In total, more than 250,000 packets were processed under high load (CPU usage: mean 95%). No packets were lost during the measurement.</p>
      </sec>
    </sec>
    <sec sec-type="discussion">
      <title>Discussion</title>
      <sec>
        <title>Principal Findings</title>
        <p>In this paper, we reported the development, functional components, and performance evaluation of a novel lightweight, open-source, and cost-efficient software system. This system was built to enable sensor data collection that offers both cloud and on-premises deployment. In line with our objective, the SRS can be reliably used to integrate multiple sensors on consumer-grade hardware to perform offline measurements in clinical studies. This was shown by analyzing different performance metrics applied to various long-term measurements.</p>
        <p>To demonstrate that the SRS helps to address technical challenges that arise during multimodal sensor measurements (eg, unsynchronized sensor signals), the following three utility programs were developed and integrated: (1) a timestamp-annotation program to mark events that are synchronized across measurements; (2) resource monitoring software, called the TICK stack, to alert administrators to the presence of hardware errors related to the server, nonfunctioning sensors, or network problems; and (3) a timestamp analyzer to detect and understand delays in the recorded data due to potential sensing device issues.</p>
        <p>With respect to the quantitative findings, it was found that the SRS system operated with an acceptable error rate while running at a high request rate. This was determined by analyzing the error rates of more than 320 million requests transmitted over 420 days and relying on Horner’s definition of acceptable error rates [<xref ref-type="bibr" rid="ref68">68</xref>]. It is noteworthy that most errors arose due to problems in the power supply to the system caused by a power outage that lasted several hours. Moreover, a long-term measurement of the internal packet processing time showed a low deviation in time. This indicates that the SRS system was internally processing data packets at a stable rate. Those two findings are in line with our objective, which was to make the internal system operate reliably.</p>
        <p>Next, the throughput performance of the system was examined. The results demonstrate that, regardless of the request type, the SRS was capable of efficiently functioning at a high request rate (2000 requests per second) on consumer-grade hardware. Based on the literature, the results meet the criteria of an instantly responding system [<xref ref-type="bibr" rid="ref71">71</xref>]. This means that the SRS system can handle high-frequency data streams in real-time and on consumer-grade hardware, which makes the system promising for monitoring. Furthermore, for all the systems and request types, the average request time was determined to be close to the median request time. This is an indicator of stable request processing, suggesting that the throughput rate was stable over a prolonged period. This processing property leads to the conclusion that the throughput rate of serving incoming API requests was stable over a prolonged period.</p>
        <p>In addition to running stably, the delay results indicate that the SRS corresponds to a low-latency system, as defined by Jiang et al [<xref ref-type="bibr" rid="ref73">73</xref>], which implies that the network topology does not affect the transmission rates between the sensors and the SRS. Furthermore, the average SD was small, which indicates that the latency was stable over time. Both findings imply that the SRS did not introduce any significant delay during the sensor recordings and, thus, did not affect the measurement process.</p>
        <p>The overall usability was assessed, including through the rating of the complexity of setting up an SRS instance and its applicability for measurements. An SUS score indicating excellent usability was achieved [<xref ref-type="bibr" rid="ref74">74</xref>], suggesting that the system is highly usable. Moreover, according to the results of the PSSUQ, the usefulness, information quality, and interface quality of the SRS system are at acceptable levels [<xref ref-type="bibr" rid="ref75">75</xref>], indicating that the UI is easy to use and exhibits helpful information pertaining to its use. Furthermore, the results of the 2 usability tests show that, in line with the initial objective, the overall usability of the SRS is effective, efficient, and satisfactory. The participants particularly appreciated that the SRS can be installed via Docker, as it simplified the installation effort. However, a major weakness identified by the participants was the unintuitive nature of the UI components. If this issue is eliminated, the overall usability of the interface could be improved.</p>
        <p>Finally, to demonstrate the SRS’s broad integration capability, it was operated on a Raspberry Pi 4, in combination with several integrated sensor devices, over a period of 24 hours. During this period, no packets were lost, and no errors were reported in the logs. However, due to the exploratory nature of this test, no other system properties were analyzed. Nevertheless, this finding indicates that the SRS could be a promising software solution with which to conduct biomedical research on cost-efficient consumer-grade hardware as basic as a Raspberry Pi 4.</p>
      </sec>
      <sec>
        <title>Strengths and Limitations</title>
        <p>The SRS system offers a simple and cost-efficient solution for on-premises deployment that requires only minimal technical expertise and provides high usability. The SRS may provide numerous benefits for researchers conducting early stage research, or working with limited resources, compared with cloud-based solutions [<xref ref-type="bibr" rid="ref23">23</xref>,<xref ref-type="bibr" rid="ref24">24</xref>,<xref ref-type="bibr" rid="ref27">27</xref>] that require on-premises deployment and normally face economic, technical, and regulatory challenges. This is mainly because the SRS runs stably on a variety of consumer-grade hardware, even as basic as that on a Raspberry Pi 4. It is also due to the fact that the system supports a simple mechanism for integrating multiple and diverse high-frequency data streams from various sensing devices. The proposed system is therefore a feasible option for long-term measurements that takes into account biomedical research requirements, such as privacy protection. Integrating Docker in the system may help users of the SRS replicate studies as the utilized containers consist of replicable configurations (ie, the source code of the executed program, the execution order in form of a Dockerfile, and defined environment variables). Furthermore, by providing a digest of the data stored in the database of a particular study (eg, by exporting a database dump or hashing the persisted data), users of the SRS are not only able to replicate that study, but also able to reproduce it. Additional aspects of the system enable straightforward deployment and enhanced maintainability while easing its operationalization (ie, integration and management). It further promotes proper error handling, which reduces the complexity of the run-time diagnostics used to determine the cause and extent of errors. Consequently, this lightweight recording software system allows researchers to focus resources on research questions rather than on developing technology.</p>
        <p>Although it was successful in reaching its desired objective, the SRS system still has some limitations. For example, although a variety of different hardware combinations were tested, the extent to which these results can be extrapolated to low-cost hardware (eg, ESP32 [Espressif Systems 32 Microcontroller] microcontrollers) is not clear. From a performance perspective, this becomes particularly challenging when integrating many sensors, as the hardware specifications of low-cost systems may be too low to handle a large number of incoming requests. Furthermore, although the SRS achieved high scores for usability, the generalizability of these results is limited by the low number of participants. Another usability hurdle is the integration of new sensor types, as this currently requires adherence to interface specifications, which can be tedious.</p>
      </sec>
      <sec>
        <title>Future Work</title>
        <p>To expand the system for applications beyond clinical needs and to mitigate potential scaling issues, the SRS could be extended to scale horizontally by operating as a distributed service in the cloud. Future studies could investigate how, and to what extent, the SRS system could be extended to properly scale in multiple clinical settings, in which many SRS instances might be running simultaneously while sharing a central database. In addition, the performance could be improved using streaming technologies (eg, broker-based solutions). To benchmark the system, the methods used to measure the performance could be further improved by correlating the measurements with more system resources (eg, by comparing the throughput with the CPU and RAM usage). Finally, the sensor integration could be simplified by relying on standardized serialization mechanisms to represent structured data (eg, Google’s Protocol Buffers). This would reduce the effort to integrate new sensor devices even further.</p>
      </sec>
      <sec>
        <title>Conclusion</title>
        <p>Despite the significant potential of these new digital technologies, adopting sensor-enhanced biomedical solutions is not simple due to the complex and expensive nature of most existing SRS. This paper presents a lightweight software recording system for integrating arbitrary sensing devices on consumer-grade hardware to perform reliable long-term measurements. The system has significant potential to address the economic, technical, and data regulatory challenges associated with earlier systems, thereby enabling sensor measurements and objective assessments in the realm of biomedical research. Moreover, the system facilitates the testing of sensor systems, as well as the development and validation of algorithms for the extraction of digital measures. Overall, this allows researchers to focus on their research questions rather than on developing the technology needed to collect their data.</p>
      </sec>
    </sec>
  </body>
  <back>
    <app-group>
      <supplementary-material id="app1">
        <label>Multimedia Appendix 1</label>
        <p>SRS usability test. SRS: sensor recording software.</p>
        <media xlink:href="formative_v7i1e43092_app1.pdf" xlink:title="PDF File  (Adobe PDF File), 720 KB"/>
      </supplementary-material>
      <supplementary-material id="app2">
        <label>Multimedia Appendix 2</label>
        <p>SRS usability test protocol. SRS: sensor recording software.</p>
        <media xlink:href="formative_v7i1e43092_app2.pdf" xlink:title="PDF File  (Adobe PDF File), 117 KB"/>
      </supplementary-material>
    </app-group>
    <glossary>
      <title>Abbreviations</title>
      <def-list>
        <def-item>
          <term id="abb1">ADL</term>
          <def>
            <p>activities of daily living</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb2">API</term>
          <def>
            <p>application programming interface</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb3">CPU</term>
          <def>
            <p>central processing unit</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb4">ESP32</term>
          <def>
            <p>Espressif Systems 32 Microcontroller</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb5">LIDAR</term>
          <def>
            <p>light detection and ranging</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb6">mHealth</term>
          <def>
            <p>mobile health</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb7">PSSUQ</term>
          <def>
            <p>Post-Study System Usability Questionnaire</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb8">SRS</term>
          <def>
            <p>sensor recording software</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb9">SSL</term>
          <def>
            <p>secure sockets layer</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb10">SUS</term>
          <def>
            <p>System Usability Scale</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb11">TICK</term>
          <def>
            <p>Telegraf, InfluxDB, Chronograf, Kapacitor</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb12">TLS</term>
          <def>
            <p>transport layer security</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb13">UI</term>
          <def>
            <p>user interface</p>
          </def>
        </def-item>
      </def-list>
    </glossary>
    <ack>
      <p>We thank all participants and collaborators who facilitated the collection of the data sets used to evaluate the SRS system. The work has been funded in part by the strategic funding program of the University of Bern.</p>
    </ack>
    <notes>
      <sec>
        <title>Data Availability</title>
        <p>The data sets generated during and analyzed during this study are not publicly available due to privacy and local ethical restrictions but are available upon request.</p>
      </sec>
    </notes>
    <fn-group>
      <fn fn-type="con">
        <p>MS, SMG, and NS conceptualized this study. MS, SMG, and NS contributed to the study methodology. MS, PR, and LCB performed software development. MS, ACN, LCB, and HH performed validation. MS, SMG, LCB, ACN, HH, TN, AC, RW, PK, and KAS were responsible for formal analysis. MS, SMG, LCB, TN, AC, RW, PK, and KAS designed the study. MS and PR developed and installed the sensor network. MS, ACN, and LCB analyzed the data. All authors contributed to the writing of the manuscript. All authors have read and agreed to the published version of the manuscript.</p>
      </fn>
      <fn fn-type="conflict">
        <p>None declared.</p>
      </fn>
    </fn-group>
    <ref-list>
      <ref id="ref1">
        <label>1</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Engin</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Demirel</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Engin</surname>
              <given-names>EZ</given-names>
            </name>
            <name name-style="western">
              <surname>Fedakar</surname>
              <given-names>M</given-names>
            </name>
          </person-group>
          <article-title>Recent developments and trends in biomedical sensors</article-title>
          <source>Measurement</source>
          <year>2005</year>
          <month>3</month>
          <volume>37</volume>
          <issue>2</issue>
          <fpage>173</fpage>
          <lpage>188</lpage>
          <pub-id pub-id-type="doi">10.1016/j.measurement.2004.11.002</pub-id>
          <pub-id pub-id-type="pii">10.1016/j.measurement.2004.11.002</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref2">
        <label>2</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Maron</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Jones</surname>
              <given-names>G</given-names>
            </name>
          </person-group>
          <article-title>How sensors, devices, and biomarkers can transform precision medicine: Perspectives from a clinical and translational science institute</article-title>
          <source>Clin Ther</source>
          <year>2018</year>
          <month>02</month>
          <volume>40</volume>
          <issue>2</issue>
          <fpage>345</fpage>
          <lpage>348</lpage>
          <pub-id pub-id-type="doi">10.1016/j.clinthera.2018.01.004</pub-id>
          <pub-id pub-id-type="medline">29371003</pub-id>
          <pub-id pub-id-type="pii">S0149-2918(18)30005-5</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref3">
        <label>3</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Birkel</surname>
              <given-names>HS</given-names>
            </name>
            <name name-style="western">
              <surname>Hartmann</surname>
              <given-names>E</given-names>
            </name>
          </person-group>
          <article-title>Impact of IoT challenges and risks for SCM</article-title>
          <source>SCM</source>
          <year>2019</year>
          <month>01</month>
          <day>14</day>
          <volume>24</volume>
          <issue>1</issue>
          <fpage>39</fpage>
          <lpage>61</lpage>
          <pub-id pub-id-type="doi">10.1108/scm-03-2018-0142</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref4">
        <label>4</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Ehrenberg</surname>
              <given-names>AJ</given-names>
            </name>
            <name name-style="western">
              <surname>Khatun</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Coomans</surname>
              <given-names>E</given-names>
            </name>
            <name name-style="western">
              <surname>Betts</surname>
              <given-names>MJ</given-names>
            </name>
            <name name-style="western">
              <surname>Capraro</surname>
              <given-names>F</given-names>
            </name>
            <name name-style="western">
              <surname>Thijssen</surname>
              <given-names>EH</given-names>
            </name>
            <name name-style="western">
              <surname>Senkevich</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Bharucha</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Jafarpour</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Young</surname>
              <given-names>PNE</given-names>
            </name>
            <name name-style="western">
              <surname>Jagust</surname>
              <given-names>W</given-names>
            </name>
            <name name-style="western">
              <surname>Carter</surname>
              <given-names>SF</given-names>
            </name>
            <name name-style="western">
              <surname>Lashley</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Grinberg</surname>
              <given-names>LT</given-names>
            </name>
            <name name-style="western">
              <surname>Pereira</surname>
              <given-names>JB</given-names>
            </name>
            <name name-style="western">
              <surname>Mattsson-Carlgren</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Ashton</surname>
              <given-names>NJ</given-names>
            </name>
            <name name-style="western">
              <surname>Hanrieder</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Zetterberg</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Schöll</surname>
              <given-names>Michael</given-names>
            </name>
            <name name-style="western">
              <surname>Paterson</surname>
              <given-names>RW</given-names>
            </name>
          </person-group>
          <article-title>Relevance of biomarkers across different neurodegenerative diseases</article-title>
          <source>Alzheimers Res Ther</source>
          <year>2020</year>
          <month>05</month>
          <day>13</day>
          <volume>12</volume>
          <issue>1</issue>
          <fpage>56</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://alzres.biomedcentral.com/articles/10.1186/s13195-020-00601-w"/>
          </comment>
          <pub-id pub-id-type="doi">10.1186/s13195-020-00601-w</pub-id>
          <pub-id pub-id-type="medline">32404143</pub-id>
          <pub-id pub-id-type="pii">10.1186/s13195-020-00601-w</pub-id>
          <pub-id pub-id-type="pmcid">PMC7222479</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref5">
        <label>5</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Vemuri</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Wiste</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Weigand</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Shaw</surname>
              <given-names>L</given-names>
            </name>
            <name name-style="western">
              <surname>Trojanowski</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Weiner</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Knopman</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Petersen</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Jack</surname>
              <given-names>C</given-names>
            </name>
            <collab>Alzheimer's Disease Neuroimaging Initiative</collab>
          </person-group>
          <article-title>MRI and CSF biomarkers in normal, MCI, and AD subjects: predicting future clinical change</article-title>
          <source>Neurology</source>
          <year>2009</year>
          <month>07</month>
          <day>28</day>
          <volume>73</volume>
          <issue>4</issue>
          <fpage>294</fpage>
          <lpage>301</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://europepmc.org/abstract/MED/19636049"/>
          </comment>
          <pub-id pub-id-type="doi">10.1212/WNL.0b013e3181af79fb</pub-id>
          <pub-id pub-id-type="medline">19636049</pub-id>
          <pub-id pub-id-type="pii">73/4/294</pub-id>
          <pub-id pub-id-type="pmcid">PMC2715214</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref6">
        <label>6</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Glei</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Goldman</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Rodríguez</surname>
              <given-names>G</given-names>
            </name>
            <name name-style="western">
              <surname>Weinstein</surname>
              <given-names>M</given-names>
            </name>
          </person-group>
          <article-title>Beyond self-reports: Changes in biomarkers as predictors of mortality</article-title>
          <source>Popul Dev Rev</source>
          <year>2014</year>
          <month>06</month>
          <day>01</day>
          <volume>40</volume>
          <issue>2</issue>
          <fpage>331</fpage>
          <lpage>360</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://europepmc.org/abstract/MED/25089065"/>
          </comment>
          <pub-id pub-id-type="doi">10.1111/j.1728-4457.2014.00676.x</pub-id>
          <pub-id pub-id-type="medline">25089065</pub-id>
          <pub-id pub-id-type="pmcid">PMC4117355</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref7">
        <label>7</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Baskaran</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Milev</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>McIntyre</surname>
              <given-names>RS</given-names>
            </name>
          </person-group>
          <article-title>The neurobiology of the EEG biomarker as a predictor of treatment response in depression</article-title>
          <source>Neuropharmacology</source>
          <year>2012</year>
          <month>09</month>
          <volume>63</volume>
          <issue>4</issue>
          <fpage>507</fpage>
          <lpage>13</lpage>
          <pub-id pub-id-type="doi">10.1016/j.neuropharm.2012.04.021</pub-id>
          <pub-id pub-id-type="medline">22569197</pub-id>
          <pub-id pub-id-type="pii">S0028-3908(12)00157-8</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref8">
        <label>8</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Coravos</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Khozin</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Mandl</surname>
              <given-names>KD</given-names>
            </name>
          </person-group>
          <article-title>Developing and adopting safe and effective digital biomarkers to improve patient outcomes</article-title>
          <source>NPJ Digit Med</source>
          <year>2019</year>
          <volume>2</volume>
          <issue>1</issue>
          <fpage>1</fpage>
          <lpage>5</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://doi.org/10.1038/s41746-019-0090-4"/>
          </comment>
          <pub-id pub-id-type="doi">10.1038/s41746-019-0090-4</pub-id>
          <pub-id pub-id-type="medline">30868107</pub-id>
          <pub-id pub-id-type="pii">14</pub-id>
          <pub-id pub-id-type="pmcid">PMC6411051</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref9">
        <label>9</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Doraiswamy</surname>
              <given-names>PM</given-names>
            </name>
            <name name-style="western">
              <surname>Narayan</surname>
              <given-names>VA</given-names>
            </name>
            <name name-style="western">
              <surname>Manji</surname>
              <given-names>HK</given-names>
            </name>
          </person-group>
          <article-title>Mobile and pervasive computing technologies and the future of Alzheimer's clinical trials</article-title>
          <source>NPJ Digit Med</source>
          <year>2018</year>
          <volume>1</volume>
          <fpage>1</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://doi.org/10.1038/s41746-017-0008-y"/>
          </comment>
          <pub-id pub-id-type="doi">10.1038/s41746-017-0008-y</pub-id>
          <pub-id pub-id-type="medline">31304287</pub-id>
          <pub-id pub-id-type="pii">8</pub-id>
          <pub-id pub-id-type="pmcid">PMC6550135</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref10">
        <label>10</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Lipsmeier</surname>
              <given-names>F</given-names>
            </name>
            <name name-style="western">
              <surname>Taylor</surname>
              <given-names>KI</given-names>
            </name>
            <name name-style="western">
              <surname>Postuma</surname>
              <given-names>RB</given-names>
            </name>
            <name name-style="western">
              <surname>Volkova-Volkmar</surname>
              <given-names>E</given-names>
            </name>
            <name name-style="western">
              <surname>Kilchenmann</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Mollenhauer</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Bamdadian</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Popp</surname>
              <given-names>WL</given-names>
            </name>
            <name name-style="western">
              <surname>Cheng</surname>
              <given-names>W</given-names>
            </name>
            <name name-style="western">
              <surname>Zhang</surname>
              <given-names>Y</given-names>
            </name>
            <name name-style="western">
              <surname>Wolf</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Schjodt-Eriksen</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Boulay</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Svoboda</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Zago</surname>
              <given-names>W</given-names>
            </name>
            <name name-style="western">
              <surname>Pagano</surname>
              <given-names>G</given-names>
            </name>
            <name name-style="western">
              <surname>Lindemann</surname>
              <given-names>M</given-names>
            </name>
          </person-group>
          <article-title>Reliability and validity of the Roche PD Mobile Application for remote monitoring of early Parkinson's disease</article-title>
          <source>Sci Rep</source>
          <year>2022</year>
          <month>07</month>
          <day>15</day>
          <volume>12</volume>
          <issue>1</issue>
          <fpage>12081</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://doi.org/10.1038/s41598-022-15874-4"/>
          </comment>
          <pub-id pub-id-type="doi">10.1038/s41598-022-15874-4</pub-id>
          <pub-id pub-id-type="medline">35840753</pub-id>
          <pub-id pub-id-type="pii">10.1038/s41598-022-15874-4</pub-id>
          <pub-id pub-id-type="pmcid">PMC9287320</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref11">
        <label>11</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Kouba</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Illner</surname>
              <given-names>V</given-names>
            </name>
            <name name-style="western">
              <surname>Rusz</surname>
              <given-names>J</given-names>
            </name>
          </person-group>
          <article-title>Study protocol for using a smartphone application to investigate speech biomarkers of Parkinson's disease and other synucleinopathies: SMARTSPEECH</article-title>
          <source>BMJ Open</source>
          <year>2022</year>
          <month>06</month>
          <day>30</day>
          <volume>12</volume>
          <issue>6</issue>
          <fpage>e059871</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://bmjopen.bmj.com/lookup/pmidlookup?view=long&#38;pmid=35772829"/>
          </comment>
          <pub-id pub-id-type="doi">10.1136/bmjopen-2021-059871</pub-id>
          <pub-id pub-id-type="medline">35772829</pub-id>
          <pub-id pub-id-type="pii">bmjopen-2021-059871</pub-id>
          <pub-id pub-id-type="pmcid">PMC9247696</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref12">
        <label>12</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Verghese</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Robbins</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Holtzer</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Zimmerman</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Wang</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Xue</surname>
              <given-names>X</given-names>
            </name>
            <name name-style="western">
              <surname>Lipton</surname>
              <given-names>R</given-names>
            </name>
          </person-group>
          <article-title>Gait dysfunction in mild cognitive impairment syndromes</article-title>
          <source>J Am Geriatr Soc</source>
          <year>2008</year>
          <month>07</month>
          <volume>56</volume>
          <issue>7</issue>
          <fpage>1244</fpage>
          <lpage>51</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://europepmc.org/abstract/MED/18482293"/>
          </comment>
          <pub-id pub-id-type="doi">10.1111/j.1532-5415.2008.01758.x</pub-id>
          <pub-id pub-id-type="medline">18482293</pub-id>
          <pub-id pub-id-type="pii">JGS1758</pub-id>
          <pub-id pub-id-type="pmcid">PMC2574944</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref13">
        <label>13</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Lyons</surname>
              <given-names>BE</given-names>
            </name>
            <name name-style="western">
              <surname>Austin</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Seelye</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Petersen</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Yeargers</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Riley</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Sharma</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Mattek</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Wild</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Dodge</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Kaye</surname>
              <given-names>JA</given-names>
            </name>
          </person-group>
          <article-title>Pervasive computing technologies to continuously assess Alzheimer's disease progression and intervention efficacy</article-title>
          <source>Front Aging Neurosci</source>
          <year>2015</year>
          <month>06</month>
          <day>10</day>
          <volume>7</volume>
          <fpage>102</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://europepmc.org/abstract/MED/26113819"/>
          </comment>
          <pub-id pub-id-type="doi">10.3389/fnagi.2015.00102</pub-id>
          <pub-id pub-id-type="medline">26113819</pub-id>
          <pub-id pub-id-type="pmcid">PMC4462097</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref14">
        <label>14</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Ellis</surname>
              <given-names>RJ</given-names>
            </name>
            <name name-style="western">
              <surname>Ng</surname>
              <given-names>YS</given-names>
            </name>
            <name name-style="western">
              <surname>Zhu</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Tan</surname>
              <given-names>DM</given-names>
            </name>
            <name name-style="western">
              <surname>Anderson</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Schlaug</surname>
              <given-names>G</given-names>
            </name>
            <name name-style="western">
              <surname>Wang</surname>
              <given-names>Y</given-names>
            </name>
          </person-group>
          <article-title>A validated smartphone-based assessment of gait and gait variability in Parkinson's disease</article-title>
          <source>PLoS One</source>
          <year>2015</year>
          <volume>10</volume>
          <issue>10</issue>
          <fpage>e0141694</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://dx.plos.org/10.1371/journal.pone.0141694"/>
          </comment>
          <pub-id pub-id-type="doi">10.1371/journal.pone.0141694</pub-id>
          <pub-id pub-id-type="medline">26517720</pub-id>
          <pub-id pub-id-type="pii">PONE-D-15-09066</pub-id>
          <pub-id pub-id-type="pmcid">PMC4627774</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref15">
        <label>15</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>da Silva</surname>
              <given-names>VP</given-names>
            </name>
            <name name-style="western">
              <surname>Oliveira</surname>
              <given-names>BRR</given-names>
            </name>
            <name name-style="western">
              <surname>Mello</surname>
              <given-names>RGT</given-names>
            </name>
            <name name-style="western">
              <surname>Moraes</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Deslandes</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Laks</surname>
              <given-names>J</given-names>
            </name>
          </person-group>
          <article-title>Heart rate variability indexes in dementia: A systematic review with a quantitative analysis</article-title>
          <source>Curr Alzheimer Res</source>
          <year>2018</year>
          <volume>15</volume>
          <issue>1</issue>
          <fpage>80</fpage>
          <lpage>88</lpage>
          <pub-id pub-id-type="doi">10.2174/1567205014666170531082352</pub-id>
          <pub-id pub-id-type="medline">28558638</pub-id>
          <pub-id pub-id-type="pii">CAR-EPUB-83778</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref16">
        <label>16</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Schütz</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Saner</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Rudin</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Botros</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Pais</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Santschi</surname>
              <given-names>V</given-names>
            </name>
            <name name-style="western">
              <surname>Buluschek</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Gatica-Perez</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Urwyler</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Marchal-Crespo</surname>
              <given-names>L</given-names>
            </name>
            <name name-style="western">
              <surname>Müri</surname>
              <given-names>RM</given-names>
            </name>
            <name name-style="western">
              <surname>Nef</surname>
              <given-names>T</given-names>
            </name>
          </person-group>
          <article-title>Validity of pervasive computing based continuous physical activity assessment in community-dwelling old and oldest-old</article-title>
          <source>Sci Rep</source>
          <year>2019</year>
          <month>07</month>
          <day>04</day>
          <volume>9</volume>
          <issue>1</issue>
          <fpage>9662</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://boris.unibe.ch/id/eprint/131815"/>
          </comment>
          <pub-id pub-id-type="doi">10.1038/s41598-019-45733-8</pub-id>
          <pub-id pub-id-type="medline">31273234</pub-id>
          <pub-id pub-id-type="pii">10.1038/s41598-019-45733-8</pub-id>
          <pub-id pub-id-type="pmcid">PMC6609627</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref17">
        <label>17</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Schütz</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Saner</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Botros</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Pais</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Santschi</surname>
              <given-names>V</given-names>
            </name>
            <name name-style="western">
              <surname>Buluschek</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Gatica-Perez</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Urwyler</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Müri</surname>
              <given-names>RM</given-names>
            </name>
            <name name-style="western">
              <surname>Nef</surname>
              <given-names>T</given-names>
            </name>
          </person-group>
          <article-title>Contactless sleep monitoring for early detection of health deteriorations in community-dwelling older adults: Exploratory study</article-title>
          <source>JMIR Mhealth Uhealth</source>
          <year>2021</year>
          <month>06</month>
          <day>11</day>
          <volume>9</volume>
          <issue>6</issue>
          <fpage>e24666</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://boris.unibe.ch/id/eprint/159712"/>
          </comment>
          <pub-id pub-id-type="doi">10.2196/24666</pub-id>
          <pub-id pub-id-type="medline">34114966</pub-id>
          <pub-id pub-id-type="pii">v9i6e24666</pub-id>
          <pub-id pub-id-type="pmcid">PMC8235297</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref18">
        <label>18</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Rantz</surname>
              <given-names>MJ</given-names>
            </name>
            <name name-style="western">
              <surname>Skubic</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Popescu</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Galambos</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Koopman</surname>
              <given-names>RJ</given-names>
            </name>
            <name name-style="western">
              <surname>Alexander</surname>
              <given-names>GL</given-names>
            </name>
            <name name-style="western">
              <surname>Phillips</surname>
              <given-names>LJ</given-names>
            </name>
            <name name-style="western">
              <surname>Musterman</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Back</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Miller</surname>
              <given-names>SJ</given-names>
            </name>
          </person-group>
          <article-title>A new paradigm of technology-enabled ‘Vital Signs’ for early detection of health change for older adults</article-title>
          <source>Gerontology</source>
          <year>2015</year>
          <volume>61</volume>
          <issue>3</issue>
          <fpage>281</fpage>
          <lpage>90</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://www.karger.com?DOI=10.1159/000366518"/>
          </comment>
          <pub-id pub-id-type="doi">10.1159/000366518</pub-id>
          <pub-id pub-id-type="medline">25428525</pub-id>
          <pub-id pub-id-type="pii">000366518</pub-id>
          <pub-id pub-id-type="pmcid">PMC4444411</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref19">
        <label>19</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Liu</surname>
              <given-names>L</given-names>
            </name>
            <name name-style="western">
              <surname>Stroulia</surname>
              <given-names>E</given-names>
            </name>
            <name name-style="western">
              <surname>Nikolaidis</surname>
              <given-names>I</given-names>
            </name>
            <name name-style="western">
              <surname>Miguel-Cruz</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Rincon</surname>
              <given-names>AR</given-names>
            </name>
          </person-group>
          <article-title>Smart homes and home health monitoring technologies for older adults: A systematic review</article-title>
          <source>Int J Med Inform</source>
          <year>2016</year>
          <month>07</month>
          <volume>91</volume>
          <fpage>44</fpage>
          <lpage>59</lpage>
          <pub-id pub-id-type="doi">10.1016/j.ijmedinf.2016.04.007</pub-id>
          <pub-id pub-id-type="medline">27185508</pub-id>
          <pub-id pub-id-type="pii">S1386-5056(16)30064-8</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref20">
        <label>20</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Pramanik</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Upadhyaya</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Pal</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Pal</surname>
              <given-names>T</given-names>
            </name>
          </person-group>
          <article-title>Chapter 1 - Internet of things, smart sensors, and pervasive systems: Enabling connected and pervasive healthcare</article-title>
          <source>Healthcare Data Analytics and Management</source>
          <year>2019</year>
          <publisher-loc>Amsterdam, The Netherlands</publisher-loc>
          <publisher-name>Elsevier</publisher-name>
          <fpage>1</fpage>
          <lpage>58</lpage>
        </nlm-citation>
      </ref>
      <ref id="ref21">
        <label>21</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Casado</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Younas</surname>
              <given-names>M</given-names>
            </name>
          </person-group>
          <article-title>Emerging trends and technologies in big data processing</article-title>
          <source>Concurrency Computat: Pract Exper</source>
          <year>2014</year>
          <month>10</month>
          <day>01</day>
          <volume>27</volume>
          <issue>8</issue>
          <fpage>2078</fpage>
          <lpage>2091</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://doi.org/10.1002/cpe.3398"/>
          </comment>
          <pub-id pub-id-type="doi">10.1002/cpe.3398</pub-id>
          <pub-id pub-id-type="pii">10.1002/cpe.3398</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref22">
        <label>22</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Nittel</surname>
              <given-names>S</given-names>
            </name>
          </person-group>
          <article-title>Real-time sensor data streams</article-title>
          <source>SIGSPATIAL Special</source>
          <year>2015</year>
          <month>09</month>
          <day>17</day>
          <volume>7</volume>
          <issue>2</issue>
          <fpage>22</fpage>
          <lpage>28</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://doi.org/10.1145/2826686.2826691"/>
          </comment>
          <pub-id pub-id-type="doi">10.1145/2826686.2826691</pub-id>
          <pub-id pub-id-type="pii">10.1145/2826686.2826691</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref23">
        <label>23</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Woznowski</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Burrows</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Diethe</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Fafoutis</surname>
              <given-names>X</given-names>
            </name>
            <name name-style="western">
              <surname>Hall</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Hannuna</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Camplani</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Twomey</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Kozlowski</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Tan</surname>
              <given-names>B</given-names>
            </name>
          </person-group>
          <person-group person-group-type="editor">
            <name name-style="western">
              <surname>Angelakis</surname>
              <given-names>V</given-names>
            </name>
            <name name-style="western">
              <surname>Tragos</surname>
              <given-names>E</given-names>
            </name>
            <name name-style="western">
              <surname>Pöhls</surname>
              <given-names>HC</given-names>
            </name>
            <name name-style="western">
              <surname>Kapovits</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Bassi</surname>
              <given-names>A</given-names>
            </name>
          </person-group>
          <article-title>SPHERE: A Sensor Platform for Healthcare in a Residential Environment</article-title>
          <source>Designing, Developing, and Facilitating Smart Cities</source>
          <year>2016</year>
          <month>12</month>
          <day>06</day>
          <publisher-loc>Berlin, Germany</publisher-loc>
          <publisher-name>Springer</publisher-name>
          <fpage>315</fpage>
          <lpage>333</lpage>
        </nlm-citation>
      </ref>
      <ref id="ref24">
        <label>24</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Beattie</surname>
              <given-names>Z</given-names>
            </name>
            <name name-style="western">
              <surname>Miller</surname>
              <given-names>L</given-names>
            </name>
            <name name-style="western">
              <surname>Almirola</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Au-Yeung</surname>
              <given-names>W</given-names>
            </name>
            <name name-style="western">
              <surname>Bernard</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Cosgrove</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Dodge</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Gamboa</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Golonka</surname>
              <given-names>O</given-names>
            </name>
            <name name-style="western">
              <surname>Gothard</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Harbison</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Irish</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Kornfeld</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Lee</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Marcoe</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Mattek</surname>
              <given-names>NC</given-names>
            </name>
            <name name-style="western">
              <surname>Quinn</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Reynolds</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Riley</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Rodrigues</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Sharma</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Siqueland</surname>
              <given-names>MA</given-names>
            </name>
            <name name-style="western">
              <surname>Thomas</surname>
              <given-names>NW</given-names>
            </name>
            <name name-style="western">
              <surname>Truty</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Wall</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Wild</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Wu</surname>
              <given-names>CY</given-names>
            </name>
            <name name-style="western">
              <surname>Karlawish</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Silverberg</surname>
              <given-names>NB</given-names>
            </name>
            <name name-style="western">
              <surname>Barnes</surname>
              <given-names>LL</given-names>
            </name>
            <name name-style="western">
              <surname>Czaja</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Silbert</surname>
              <given-names>LC</given-names>
            </name>
            <name name-style="western">
              <surname>Kaye</surname>
              <given-names>J</given-names>
            </name>
          </person-group>
          <article-title>The Collaborative Aging Research Using Technology initiative: An open, sharable, technology-agnostic platform for the research community</article-title>
          <source>Digit Biomark</source>
          <year>2020</year>
          <volume>4</volume>
          <issue>Suppl 1</issue>
          <fpage>100</fpage>
          <lpage>118</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://www.karger.com?DOI=10.1159/000512208"/>
          </comment>
          <pub-id pub-id-type="doi">10.1159/000512208</pub-id>
          <pub-id pub-id-type="medline">33442584</pub-id>
          <pub-id pub-id-type="pii">dib-0004-0100</pub-id>
          <pub-id pub-id-type="pmcid">PMC7768162</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref25">
        <label>25</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Beckman</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Sankaran</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Catlett</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Ferrier</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Jacob</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Papka</surname>
              <given-names>M</given-names>
            </name>
          </person-group>
          <article-title>Waggle: An open sensor platform for edge computing</article-title>
          <year>2016</year>
          <conf-name>2016 IEEE SENSORS</conf-name>
          <conf-date>October 30 to November 3, 2016</conf-date>
          <conf-loc>Orlando, FL</conf-loc>
          <publisher-loc>New York, NY</publisher-loc>
          <publisher-name>IEEE</publisher-name>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://ieeexplore.ieee.org/document/7808975"/>
          </comment>
          <pub-id pub-id-type="doi">10.1109/ICSENS.2016.7808975</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref26">
        <label>26</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Kumar</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Jeuris</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Bardram</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Dragoni</surname>
              <given-names>N</given-names>
            </name>
          </person-group>
          <article-title>Mobile and wearable sensing frameworks for mHealth studies and applications: A systematic review</article-title>
          <source>ACM Trans Comput Healthc</source>
          <year>2020</year>
          <month>12</month>
          <day>30</day>
          <volume>2</volume>
          <issue>1</issue>
          <fpage>1</fpage>
          <lpage>28</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://dl.acm.org/doi/abs/10.1145/3422158"/>
          </comment>
          <pub-id pub-id-type="doi">10.1145/3422158</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref27">
        <label>27</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Ranjan</surname>
              <given-names>Y</given-names>
            </name>
            <name name-style="western">
              <surname>Rashid</surname>
              <given-names>Z</given-names>
            </name>
            <name name-style="western">
              <surname>Stewart</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Conde</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Begale</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Verbeeck</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Boettcher</surname>
              <given-names>S</given-names>
            </name>
            <collab>Hyve</collab>
            <name name-style="western">
              <surname>Dobson</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Folarin</surname>
              <given-names>A</given-names>
            </name>
            <collab>RADAR-CNS Consortium</collab>
          </person-group>
          <article-title>RADAR-Base: Open source mobile health platform for collecting, monitoring, and analyzing data using sensors, wearables, and mobile devices</article-title>
          <source>JMIR Mhealth Uhealth</source>
          <year>2019</year>
          <month>08</month>
          <day>01</day>
          <volume>7</volume>
          <issue>8</issue>
          <fpage>e11734</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://mhealth.jmir.org/2019/8/e11734/"/>
          </comment>
          <pub-id pub-id-type="doi">10.2196/11734</pub-id>
          <pub-id pub-id-type="medline">31373275</pub-id>
          <pub-id pub-id-type="pii">v7i8e11734</pub-id>
          <pub-id pub-id-type="pmcid">PMC6694732</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref28">
        <label>28</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Ferreira</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Kostakos</surname>
              <given-names>V</given-names>
            </name>
            <name name-style="western">
              <surname>Dey</surname>
              <given-names>A</given-names>
            </name>
          </person-group>
          <article-title>AWARE: Mobile context instrumentation framework</article-title>
          <source>Front ICT</source>
          <year>2015</year>
          <month>04</month>
          <day>20</day>
          <volume>2</volume>
          <fpage>6</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://www.frontiersin.org/articles/10.3389/fict.2015.00006/full"/>
          </comment>
          <pub-id pub-id-type="doi">10.3389/fict.2015.00006</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref29">
        <label>29</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Bent</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Wang</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Grzesiak</surname>
              <given-names>E</given-names>
            </name>
            <name name-style="western">
              <surname>Jiang</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Qi</surname>
              <given-names>Y</given-names>
            </name>
            <name name-style="western">
              <surname>Jiang</surname>
              <given-names>Y</given-names>
            </name>
            <name name-style="western">
              <surname>Cho</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Zingler</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Ogbeide</surname>
              <given-names>F</given-names>
            </name>
            <name name-style="western">
              <surname>Zhao</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Runge</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Sim</surname>
              <given-names>I</given-names>
            </name>
            <name name-style="western">
              <surname>Dunn</surname>
              <given-names>J</given-names>
            </name>
          </person-group>
          <article-title>The digital biomarker discovery pipeline: An open-source software platform for the development of digital biomarkers using mHealth and wearables data</article-title>
          <source>J Clin Transl Sci</source>
          <year>2020</year>
          <month>07</month>
          <day>14</day>
          <volume>5</volume>
          <issue>1</issue>
          <fpage>e19</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://europepmc.org/abstract/MED/33948242"/>
          </comment>
          <pub-id pub-id-type="doi">10.1017/cts.2020.511</pub-id>
          <pub-id pub-id-type="medline">33948242</pub-id>
          <pub-id pub-id-type="pii">S2059866120005117</pub-id>
          <pub-id pub-id-type="pmcid">PMC8057397</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref30">
        <label>30</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Lekić</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Gardašević</surname>
              <given-names>G</given-names>
            </name>
          </person-group>
          <article-title>IoT sensor integration to Node-RED platform</article-title>
          <source>International Symposium INFOTEH-JAHORINA (INFOTEH)</source>
          <year>2018</year>
          <conf-name>17th International Symposium INFOTEH-JAHORINA (INFOTEH)</conf-name>
          <conf-date>March 21-23, 2018</conf-date>
          <conf-loc>East Sarajevo, Bosnia and Herzegovina</conf-loc>
          <publisher-loc>New York, NY</publisher-loc>
          <publisher-name>IEEE</publisher-name>
          <pub-id pub-id-type="doi">10.1109/infoteh.2018.8345544</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref31">
        <label>31</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Slama</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Puhlmann</surname>
              <given-names>F</given-names>
            </name>
            <name name-style="western">
              <surname>Morrish</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Bhatnagar</surname>
              <given-names>RM</given-names>
            </name>
          </person-group>
          <source>Enterprise IoT: Strategies and Best Practices for Connected Products and Services</source>
          <year>2015</year>
          <publisher-loc>Sebastopol, CA</publisher-loc>
          <publisher-name>O'Reilly Media, Inc</publisher-name>
          <fpage>1</fpage>
          <lpage>449</lpage>
        </nlm-citation>
      </ref>
      <ref id="ref32">
        <label>32</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Thierer</surname>
              <given-names>AD</given-names>
            </name>
          </person-group>
          <article-title>The Internet of Things and wearable technology: Addressing privacy and security concerns without derailing innovation</article-title>
          <source>Richmond Journal of Law &#38; Technology</source>
          <year>2015</year>
          <volume>21</volume>
          <issue>2</issue>
          <fpage>1</fpage>
          <lpage>118</lpage>
          <pub-id pub-id-type="doi">10.2139/ssrn.2494382</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref33">
        <label>33</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Rahman</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Reza</surname>
              <given-names>H</given-names>
            </name>
          </person-group>
          <article-title>Systematic mapping study of non-functional requirements in big data system</article-title>
          <source>2020 IEEE International Conference on Electro Information Technology (EIT)</source>
          <year>2020</year>
          <conf-name>IEEE International Conference on Electro-Information Technology</conf-name>
          <conf-date>July 31, 2020 to August 1, 2020</conf-date>
          <conf-loc>Chicago, IL</conf-loc>
          <publisher-loc>New York, NY</publisher-loc>
          <publisher-name>IEEE</publisher-name>
          <fpage>025</fpage>
          <pub-id pub-id-type="doi">10.1109/eit48999.2020.9208288</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref34">
        <label>34</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Tikotekar</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Vallée</surname>
              <given-names>G</given-names>
            </name>
            <name name-style="western">
              <surname>Naughton</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Scott</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Leangsuksun</surname>
              <given-names>C</given-names>
            </name>
          </person-group>
          <article-title>Evaluation of fault-tolerant policies using simulation</article-title>
          <source>2007 IEEE International Conference on Cluster Computing</source>
          <year>2007</year>
          <conf-name>IEEE International Conference on Cluster Computing</conf-name>
          <conf-date>September 17-20, 2007</conf-date>
          <conf-loc>Austin, TX</conf-loc>
          <publisher-loc>New York, NY</publisher-loc>
          <publisher-name>IEEE</publisher-name>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://ieeexplore.ieee.org/document/4629244"/>
          </comment>
          <pub-id pub-id-type="doi">10.1109/clustr.2007.4629244</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref35">
        <label>35</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Groenewegen</surname>
              <given-names>DM</given-names>
            </name>
            <name name-style="western">
              <surname>Visser</surname>
              <given-names>E</given-names>
            </name>
          </person-group>
          <article-title>Integration of data validation and user interface concerns in a DSL for web applications</article-title>
          <source>Softw Syst Model</source>
          <year>2010</year>
          <month>9</month>
          <day>7</day>
          <volume>12</volume>
          <issue>1</issue>
          <fpage>35</fpage>
          <lpage>52</lpage>
          <pub-id pub-id-type="doi">10.1007/s10270-010-0173-9</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref36">
        <label>36</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Broman</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Cetinkaya-Rundel</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Nussbaum</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Paciorek</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Peng</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Turek</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Wickham</surname>
              <given-names>H</given-names>
            </name>
          </person-group>
          <article-title>Recommendations to funding agencies for supporting reproducible research</article-title>
          <source>American Statistical Association</source>
          <year>2017</year>
          <month>1</month>
          <day>18</day>
          <access-date>2023-02-03</access-date>
          <publisher-loc>Alexandria, VA</publisher-loc>
          <publisher-name>American Statistical Association</publisher-name>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://www.amstat.org/asa/files/pdfs/pol-reproducibleresearchrecommendations.pdf">https://www.amstat.org/asa/files/pdfs/pol-reproducibleresearchrecommendations.pdf</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref37">
        <label>37</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Dragoni</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Lanese</surname>
              <given-names>I</given-names>
            </name>
            <name name-style="western">
              <surname>Larsen</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Mazzara</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Mustafin</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Safina</surname>
              <given-names>L</given-names>
            </name>
          </person-group>
          <article-title>Microservices: How to make your application scale</article-title>
          <source>Perspectives of System Informatics</source>
          <year>2017</year>
          <conf-name>11th International Andrei P. Ershov Informatics Conference</conf-name>
          <conf-date>June 27-29, 2017</conf-date>
          <conf-loc>Moscow, Russia</conf-loc>
          <publisher-loc>Berlin, Germany</publisher-loc>
          <publisher-name>Springer</publisher-name>
          <fpage>95</fpage>
          <lpage>104</lpage>
          <pub-id pub-id-type="doi">10.1007/978-3-319-74313-4_8</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref38">
        <label>38</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Chieu</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Mohindra</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Karve</surname>
              <given-names>A</given-names>
            </name>
          </person-group>
          <article-title>Scalability and performance of web applications in a compute cloud</article-title>
          <source>International Conference on e-Business Engineering</source>
          <year>2011</year>
          <conf-name>2011 IEEE 8th International Conference on e-Business Engineering</conf-name>
          <conf-date>October 19-21, 2011</conf-date>
          <conf-loc>Beijing, China</conf-loc>
          <publisher-loc>New York, NY</publisher-loc>
          <publisher-name>IEEE</publisher-name>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://ieeexplore.ieee.org/document/6104635"/>
          </comment>
          <pub-id pub-id-type="doi">10.1109/icebe.2011.63</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref39">
        <label>39</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Dolan</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Eliopoulos</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Hillerström</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Madhavapeddy</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Sivaramakrishnan</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>White</surname>
              <given-names>L</given-names>
            </name>
          </person-group>
          <article-title>Concurrent system programming with effect handlers</article-title>
          <source>Trends in Functional Programming</source>
          <year>2017</year>
          <conf-name>18th International Symposium, TFP 2017</conf-name>
          <conf-date>June 19-21, 2017</conf-date>
          <conf-loc>Canterbury, UK</conf-loc>
          <publisher-loc>Berlin, Germany</publisher-loc>
          <publisher-name>Springer</publisher-name>
          <fpage>98</fpage>
          <lpage>117</lpage>
          <pub-id pub-id-type="doi">10.1007/978-3-319-89719-6_6</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref40">
        <label>40</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>van der Veen</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>va der Waaij</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Meijer</surname>
              <given-names>R</given-names>
            </name>
          </person-group>
          <article-title>Sensor data storage performance: SQL or NoSQL, physical or virtual</article-title>
          <source>2012 IEEE Fifth International Conference on Cloud Computing</source>
          <year>2012</year>
          <conf-name>International Conference on Cloud Computing</conf-name>
          <conf-date>June 24-29, 2012</conf-date>
          <conf-loc>Honolulu, HI</conf-loc>
          <publisher-loc>New York, NY</publisher-loc>
          <publisher-name>IEEE</publisher-name>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://ieeexplore.ieee.org/document/6253535"/>
          </comment>
          <pub-id pub-id-type="doi">10.1109/cloud.2012.18</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref41">
        <label>41</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Ryu</surname>
              <given-names>SH</given-names>
            </name>
            <name name-style="western">
              <surname>Casati</surname>
              <given-names>F</given-names>
            </name>
            <name name-style="western">
              <surname>Skogsrud</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Benatallah</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Saint-Paul</surname>
              <given-names>R</given-names>
            </name>
          </person-group>
          <article-title>Supporting the dynamic evolution of Web service protocols in service-oriented architectures</article-title>
          <source>ACM Transactions on the Web</source>
          <year>2008</year>
          <month>05</month>
          <day>05</day>
          <volume>2</volume>
          <issue>2</issue>
          <fpage>1</fpage>
          <lpage>46</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://doi.org/10.1145/1346337.1346241"/>
          </comment>
          <pub-id pub-id-type="doi">10.1145/1346337.1346241</pub-id>
          <pub-id pub-id-type="pii">10.1145/1346337.1346241</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref42">
        <label>42</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Sullivan</surname>
              <given-names>KJ</given-names>
            </name>
            <name name-style="western">
              <surname>Griswold</surname>
              <given-names>WG</given-names>
            </name>
            <name name-style="western">
              <surname>Cai</surname>
              <given-names>Y</given-names>
            </name>
            <name name-style="western">
              <surname>Hallen</surname>
              <given-names>B</given-names>
            </name>
          </person-group>
          <article-title>The structure and value of modularity in software design</article-title>
          <source>ACM SIGSOFT Software Engineering Notes</source>
          <year>2001</year>
          <month>09</month>
          <volume>26</volume>
          <issue>5</issue>
          <fpage>99</fpage>
          <lpage>108</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://doi.org/10.1145/503271.503224"/>
          </comment>
          <pub-id pub-id-type="doi">10.1145/503271.503224</pub-id>
          <pub-id pub-id-type="pii">10.1145/503271.503224</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref43">
        <label>43</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Rufino</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Alam</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Ferreira</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Rehman</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Tsang</surname>
              <given-names>K</given-names>
            </name>
          </person-group>
          <article-title>Orchestration of containerized microservices for IIoT using Docker</article-title>
          <source>2017 IEEE International Conference on Industrial Technology (ICIT)</source>
          <year>2017</year>
          <conf-name>IEEE International Conference on Industrial Technology (ICIT)</conf-name>
          <conf-date>March 22-25, 2017</conf-date>
          <conf-loc>Toronto, ON, Canada</conf-loc>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://ieeexplore.ieee.org/document/7915594"/>
          </comment>
          <pub-id pub-id-type="doi">10.1109/icit.2017.7915594</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref44">
        <label>44</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Duvall</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Matyas</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Glover</surname>
              <given-names>A</given-names>
            </name>
          </person-group>
          <source>Continuous integration: improving software quality and reducing risk</source>
          <year>2007</year>
          <publisher-loc>Boston, MA</publisher-loc>
          <publisher-name>Addison-Wesley</publisher-name>
        </nlm-citation>
      </ref>
      <ref id="ref45">
        <label>45</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Brajnik</surname>
              <given-names>G</given-names>
            </name>
            <name name-style="western">
              <surname>Mizzaro</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Tasso</surname>
              <given-names>C</given-names>
            </name>
          </person-group>
          <article-title>Evaluating user interfaces to information retrieval systems: a case study on user support</article-title>
          <year>1996</year>
          <conf-name>19th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval</conf-name>
          <conf-date>August 18 - 22, 1996</conf-date>
          <conf-loc>Zurich Switzerland</conf-loc>
          <fpage>128</fpage>
          <lpage>136</lpage>
          <pub-id pub-id-type="doi">10.1145/243199.243249</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref46">
        <label>46</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Bouganim</surname>
              <given-names>L</given-names>
            </name>
          </person-group>
          <article-title>Database encryption</article-title>
          <source>Encyclopedia of Cryptography and Security</source>
          <year>2009</year>
          <publisher-loc>Berlin, Germany</publisher-loc>
          <publisher-name>Springer</publisher-name>
          <fpage>307</fpage>
          <lpage>312</lpage>
        </nlm-citation>
      </ref>
      <ref id="ref47">
        <label>47</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Pettersen</surname>
              <given-names>Y</given-names>
            </name>
          </person-group>
          <article-title>The transport layer security (TLS) multiple certificate status request extension</article-title>
          <source>RFC</source>
          <year>2013</year>
          <access-date>2023-02-03</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://www.rfc-editor.org/rfc/rfc6961.html">https://www.rfc-editor.org/rfc/rfc6961.html</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref48">
        <label>48</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Jain</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Gyanchandani</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Khare</surname>
              <given-names>N</given-names>
            </name>
          </person-group>
          <article-title>Big data privacy: a technological perspective and review</article-title>
          <source>J Big Data</source>
          <year>2016</year>
          <month>11</month>
          <day>26</day>
          <volume>3</volume>
          <issue>1</issue>
          <fpage>1</fpage>
          <lpage>25</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://doi.org/10.1186/s40537-016-0059-y"/>
          </comment>
          <pub-id pub-id-type="doi">10.1186/s40537-016-0059-y</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref49">
        <label>49</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Merkel</surname>
              <given-names>D</given-names>
            </name>
          </person-group>
          <article-title>Docker: lightweight linux containers for consistent development and deployment</article-title>
          <source>Linux J</source>
          <year>2014</year>
          <fpage>1</fpage>
          <lpage>5</lpage>
          <pub-id pub-id-type="doi">10.5555/2600239.2600241</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref50">
        <label>50</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Oussous</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Benjelloun</surname>
              <given-names>F</given-names>
            </name>
            <name name-style="western">
              <surname>Lahcen</surname>
              <given-names>AA</given-names>
            </name>
            <name name-style="western">
              <surname>Belfkih</surname>
              <given-names>S</given-names>
            </name>
          </person-group>
          <article-title>Big data technologies: A survey</article-title>
          <source>Journal of King Saud University - Computer and Information Sciences</source>
          <year>2018</year>
          <month>10</month>
          <volume>30</volume>
          <issue>4</issue>
          <fpage>431</fpage>
          <lpage>448</lpage>
          <pub-id pub-id-type="doi">10.1016/j.jksuci.2017.06.001</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref51">
        <label>51</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Matthias</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Kane</surname>
              <given-names>S</given-names>
            </name>
          </person-group>
          <source>Docker: Up &#38; Running: Shipping Reliable Containers in Production</source>
          <year>2015</year>
          <publisher-loc>Sebastopol, CA</publisher-loc>
          <publisher-name>O'Reilly Media, Inc</publisher-name>
        </nlm-citation>
      </ref>
      <ref id="ref52">
        <label>52</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Bradshaw</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Brazil</surname>
              <given-names>E</given-names>
            </name>
            <name name-style="western">
              <surname>Chodorow</surname>
              <given-names>K</given-names>
            </name>
          </person-group>
          <source>MongoDB: the definitive guide: powerful and scalable data storage</source>
          <year>2019</year>
          <publisher-loc>Sebastopol, CA</publisher-loc>
          <publisher-name>O’Reilly Media, Inc</publisher-name>
        </nlm-citation>
      </ref>
      <ref id="ref53">
        <label>53</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Győrödi</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Győrödi</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Pecherle</surname>
              <given-names>G</given-names>
            </name>
            <name name-style="western">
              <surname>Olah</surname>
              <given-names>A</given-names>
            </name>
          </person-group>
          <article-title>A comparative study: MongoDB vs. MySQL</article-title>
          <year>2015</year>
          <conf-name>International Conference on Engineering of Modern Electric Systems (EMES)</conf-name>
          <conf-date>June 11-12, 2015</conf-date>
          <conf-loc>Oradea, Romania</conf-loc>
          <publisher-loc>New York, NY</publisher-loc>
          <publisher-name>IEEE</publisher-name>
          <fpage>1</fpage>
          <lpage>6</lpage>
          <pub-id pub-id-type="doi">10.1109/emes.2015.7158433</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref54">
        <label>54</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Pramono</surname>
              <given-names>L</given-names>
            </name>
            <name name-style="western">
              <surname>Buwono</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Waskito</surname>
              <given-names>Y</given-names>
            </name>
          </person-group>
          <article-title>Round-robin algorithm in HAProxy and Nginx load balancing performance evaluation: a Review</article-title>
          <source>2018 International Seminar on Research of Information Technology and Intelligent Systems (ISRITI)</source>
          <year>2018</year>
          <conf-name>International Seminar on Research of Information Technology and Intelligent Systems (ISRITI)</conf-name>
          <conf-date>November 21-22, 2018</conf-date>
          <conf-loc>Yogyakarta, Indonesia</conf-loc>
          <publisher-loc>New York, NY</publisher-loc>
          <publisher-name>IEEE</publisher-name>
          <pub-id pub-id-type="doi">10.1109/isriti.2018.8864455</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref55">
        <label>55</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Richardson</surname>
              <given-names>L</given-names>
            </name>
            <name name-style="western">
              <surname>Ruby</surname>
              <given-names>S</given-names>
            </name>
          </person-group>
          <article-title>RESTful web services</article-title>
          <source>Introduction to Middleware: Web Services, Object Components, and Cloud Computing</source>
          <year>2008</year>
          <publisher-loc>Sebastopol, CA</publisher-loc>
          <publisher-name>O'Reilly Media, Inc</publisher-name>
        </nlm-citation>
      </ref>
      <ref id="ref56">
        <label>56</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Valipour</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>AmirZafari</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Maleki</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Daneshpour</surname>
              <given-names>N</given-names>
            </name>
          </person-group>
          <article-title>A brief survey of software architecture concepts and service oriented architecture</article-title>
          <year>2009</year>
          <conf-name>2nd IEEE International Conference on Computer Science and Information Technology</conf-name>
          <conf-date>August 8-11, 2009</conf-date>
          <conf-loc>Beijing, China</conf-loc>
          <fpage>34</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://ieeexplore.ieee.org/document/5235004"/>
          </comment>
          <pub-id pub-id-type="doi">10.1109/iccsit.2009.5235004</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref57">
        <label>57</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Thomas</surname>
              <given-names>S</given-names>
            </name>
          </person-group>
          <source>SSL and TLS Essentials</source>
          <year>2000</year>
          <publisher-loc>Hoboken, NJ</publisher-loc>
          <publisher-name>Wiley</publisher-name>
        </nlm-citation>
      </ref>
      <ref id="ref58">
        <label>58</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Vohra</surname>
              <given-names>D</given-names>
            </name>
          </person-group>
          <article-title>Apache Parquet</article-title>
          <source>Practical Hadoop Ecosystem: A Definitive Guide to Hadoop-Related Frameworks and Tools</source>
          <year>2016</year>
          <publisher-loc>New York, NY</publisher-loc>
          <publisher-name>Apress</publisher-name>
          <fpage>325</fpage>
          <lpage>335</lpage>
        </nlm-citation>
      </ref>
      <ref id="ref59">
        <label>59</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Laplante</surname>
              <given-names>PA</given-names>
            </name>
          </person-group>
          <source>What Every Engineer Should Know About Software Engineering</source>
          <year>2007</year>
          <publisher-loc>Boca Raton, FL</publisher-loc>
          <publisher-name>CRC Press</publisher-name>
        </nlm-citation>
      </ref>
      <ref id="ref60">
        <label>60</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Fette</surname>
              <given-names>I</given-names>
            </name>
            <name name-style="western">
              <surname>Melnikov</surname>
              <given-names>A</given-names>
            </name>
          </person-group>
          <article-title>RFC 6455: The websocket protocol</article-title>
          <source>RFC</source>
          <year>2011</year>
          <access-date>2023-02-03</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://www.rfc-editor.org/info/rfc6455">https://www.rfc-editor.org/info/rfc6455</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref61">
        <label>61</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>De</surname>
              <given-names>B</given-names>
            </name>
          </person-group>
          <article-title>API management</article-title>
          <source>API Documentation</source>
          <year>2017</year>
          <publisher-loc>Berlin, Germany</publisher-loc>
          <publisher-name>Springer</publisher-name>
          <fpage>59</fpage>
          <lpage>80</lpage>
        </nlm-citation>
      </ref>
      <ref id="ref62">
        <label>62</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Filipova</surname>
              <given-names>O</given-names>
            </name>
          </person-group>
          <source>Learning Vue js 2</source>
          <year>2016</year>
          <publisher-loc>Birmingham, UK</publisher-loc>
          <publisher-name>Packt</publisher-name>
        </nlm-citation>
      </ref>
      <ref id="ref63">
        <label>63</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Chakraborty</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Kundan</surname>
              <given-names>A</given-names>
            </name>
          </person-group>
          <article-title>TICK Stack</article-title>
          <source>Monitoring Cloud-Native Applications</source>
          <year>2021</year>
          <publisher-loc>New York, NY</publisher-loc>
          <publisher-name>Apress</publisher-name>
          <fpage>133</fpage>
          <lpage>186</lpage>
        </nlm-citation>
      </ref>
      <ref id="ref64">
        <label>64</label>
        <nlm-citation citation-type="web">
          <article-title>Sensor Recording Software (SRS) Project Website</article-title>
          <source>Github</source>
          <year>2022</year>
          <access-date>2022-09-21</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://simplay.github.io/srs/">https://simplay.github.io/srs/</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref65">
        <label>65</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Gerber</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Single</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Knobel</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Schütz</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Bruhin</surname>
              <given-names>L</given-names>
            </name>
            <name name-style="western">
              <surname>Botros</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Naef</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Schindler</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Nef</surname>
              <given-names>T</given-names>
            </name>
          </person-group>
          <article-title>An instrumented apartment to monitor human behavior: A pilot case study in the NeuroTec loft</article-title>
          <source>Sensors (Basel)</source>
          <year>2022</year>
          <month>02</month>
          <day>20</day>
          <volume>22</volume>
          <issue>4</issue>
          <fpage>1657</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://boris.unibe.ch/id/eprint/166038"/>
          </comment>
          <pub-id pub-id-type="doi">10.3390/s22041657</pub-id>
          <pub-id pub-id-type="medline">35214560</pub-id>
          <pub-id pub-id-type="pii">s22041657</pub-id>
          <pub-id pub-id-type="pmcid">PMC8875023</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref66">
        <label>66</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Botros</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Gyger</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Schütz</surname>
              <given-names>N</given-names>
            </name>
            <name name-style="western">
              <surname>Single</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Nef</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Gerber</surname>
              <given-names>SM</given-names>
            </name>
          </person-group>
          <article-title>Contactless gait assessment in home-like environments</article-title>
          <source>Sensors (Basel)</source>
          <year>2021</year>
          <month>09</month>
          <day>16</day>
          <volume>21</volume>
          <issue>18</issue>
          <fpage>6205</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://boris.unibe.ch/id/eprint/159764"/>
          </comment>
          <pub-id pub-id-type="doi">10.3390/s21186205</pub-id>
          <pub-id pub-id-type="medline">34577412</pub-id>
          <pub-id pub-id-type="pii">s21186205</pub-id>
          <pub-id pub-id-type="pmcid">PMC8473097</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref67">
        <label>67</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Nagappan</surname>
              <given-names>M</given-names>
            </name>
          </person-group>
          <article-title>Analysis of execution log files</article-title>
          <year>2010</year>
          <conf-name>ICSE '10: 32nd International Conference on Software Engineering</conf-name>
          <conf-date>May 1-8, 2010</conf-date>
          <conf-loc>Cape Town, South Africa</conf-loc>
          <pub-id pub-id-type="doi">10.1145/1810295.1810405</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref68">
        <label>68</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Horner</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Symons</surname>
              <given-names>J</given-names>
            </name>
          </person-group>
          <article-title>Understanding error rates in software engineering: Conceptual, empirical, and experimental approaches</article-title>
          <source>Philos Technol</source>
          <year>2019</year>
          <month>2</month>
          <day>21</day>
          <volume>32</volume>
          <issue>2</issue>
          <fpage>363</fpage>
          <lpage>378</lpage>
          <pub-id pub-id-type="doi">10.1007/s13347-019-00342-1</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref69">
        <label>69</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Mosberger</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Jin</surname>
              <given-names>T</given-names>
            </name>
          </person-group>
          <article-title>httperf—a tool for measuring web server performance</article-title>
          <source>ACM SIGMETRICS Performance Evaluation Review</source>
          <year>1998</year>
          <month>12</month>
          <volume>26</volume>
          <issue>3</issue>
          <fpage>31</fpage>
          <lpage>37</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://doi.org/10.1145/306225.306235"/>
          </comment>
          <pub-id pub-id-type="doi">10.1145/306225.306235</pub-id>
          <pub-id pub-id-type="pii">10.1145/306225.306235</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref70">
        <label>70</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Rawdat</surname>
              <given-names>A</given-names>
            </name>
          </person-group>
          <article-title>Testing the performance of NGINX and NGINX Plus web servers</article-title>
          <source>NGINX</source>
          <year>2017</year>
          <access-date>2022-11-14</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://www.nginx.com/blog/testing-the-performance-of-nginx-and-nginx-plus-web-servers/">https://www.nginx.com/blog/testing-the-performance-of-nginx-and-nginx-plus-web-servers/</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref71">
        <label>71</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Nielsen</surname>
              <given-names>J</given-names>
            </name>
          </person-group>
          <source>Usability Engineering</source>
          <year>1993</year>
          <publisher-loc>Burlington, MA</publisher-loc>
          <publisher-name>Morgan Kaufmann</publisher-name>
          <fpage>1</fpage>
          <lpage>362</lpage>
        </nlm-citation>
      </ref>
      <ref id="ref72">
        <label>72</label>
        <nlm-citation citation-type="confproc">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Guo</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Yuan</surname>
              <given-names>L</given-names>
            </name>
            <name name-style="western">
              <surname>Xiang</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Dang</surname>
              <given-names>Y</given-names>
            </name>
            <name name-style="western">
              <surname>Huang</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Maltz</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Liu</surname>
              <given-names>Z</given-names>
            </name>
            <name name-style="western">
              <surname>Wang</surname>
              <given-names>V</given-names>
            </name>
            <name name-style="western">
              <surname>Pang</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Chen</surname>
              <given-names>H</given-names>
            </name>
          </person-group>
          <article-title>Pingmesh: A large-scale system for data center network latency measurement and analysis</article-title>
          <year>2015</year>
          <conf-name>SIGCOMM '15: ACM SIGCOMM 2015 Conference</conf-name>
          <conf-date>August 17-21, 2015</conf-date>
          <conf-loc>London, UK</conf-loc>
          <pub-id pub-id-type="doi">10.1145/2785956.2787496</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref73">
        <label>73</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Jiang</surname>
              <given-names>X</given-names>
            </name>
            <name name-style="western">
              <surname>Shokri-Ghadikolaei</surname>
              <given-names>H</given-names>
            </name>
            <name name-style="western">
              <surname>Fodor</surname>
              <given-names>G</given-names>
            </name>
            <name name-style="western">
              <surname>Modiano</surname>
              <given-names>E</given-names>
            </name>
            <name name-style="western">
              <surname>Pang</surname>
              <given-names>Z</given-names>
            </name>
            <name name-style="western">
              <surname>Zorzi</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Fischione</surname>
              <given-names>C</given-names>
            </name>
          </person-group>
          <article-title>Low-latency networking: Where latency lurks and how to tame it</article-title>
          <source>Proc IEEE</source>
          <year>2019</year>
          <month>2</month>
          <volume>107</volume>
          <issue>2</issue>
          <fpage>280</fpage>
          <lpage>306</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://ieeexplore.ieee.org/document/8452158"/>
          </comment>
          <pub-id pub-id-type="doi">10.1109/jproc.2018.2863960</pub-id>
          <pub-id pub-id-type="pii">10.1109/JPROC.2018.2863960</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref74">
        <label>74</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Brooke</surname>
              <given-names>J</given-names>
            </name>
          </person-group>
          <article-title>SUS: A 'Quick and Dirty' usability scale</article-title>
          <source>Usability Evaluation In Industry</source>
          <year>1996</year>
          <publisher-loc>Boca Raton, FL</publisher-loc>
          <publisher-name>CRC Press</publisher-name>
          <fpage>189</fpage>
          <lpage>194</lpage>
        </nlm-citation>
      </ref>
      <ref id="ref75">
        <label>75</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Lewis</surname>
              <given-names>JR</given-names>
            </name>
          </person-group>
          <article-title>Psychometric evaluation of the post-study system usability questionnaire: The PSSUQ</article-title>
          <source>Proceedings of the Human Factors Society Annual Meeting</source>
          <year>2016</year>
          <month>08</month>
          <day>06</day>
          <volume>36</volume>
          <issue>16</issue>
          <fpage>1259</fpage>
          <lpage>1260</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://journals.sagepub.com/doi/10.1177/154193129203601617"/>
          </comment>
          <pub-id pub-id-type="doi">10.1177/154193129203601617</pub-id>
          <pub-id pub-id-type="pii">10.1177/15419312920360161</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref76">
        <label>76</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Sauro</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Lewis</surname>
              <given-names>J</given-names>
            </name>
          </person-group>
          <source>Quantifying the User Experience: Practical Statistics for User Research</source>
          <year>2016</year>
          <month>07</month>
          <publisher-loc>Burlington, MA</publisher-loc>
          <publisher-name>Morgan Kaufmann</publisher-name>
        </nlm-citation>
      </ref>
    </ref-list>
  </back>
</article>
