Next Article in Journal
Exploring the Architectural Composition of Cyber Ranges: A Systematic Review
Previous Article in Journal
Combining Advanced Feature-Selection Methods to Uncover Atypical Energy-Consumption Patterns
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Trusted Composition of Internet of Medical Things over Imperfect Networks

by
Ehsan Ahmad
1,*,
Brian Larson
2 and
Abdulbasid Banga
1
1
College of Computing and Informatics, Saudi Electronic University, Riyadh 13323, Saudi Arabia
2
Multitude Corporation, St. Paul, MN 55126, USA
*
Author to whom correspondence should be addressed.
Future Internet 2024, 16(7), 230; https://doi.org/10.3390/fi16070230
Submission received: 11 May 2024 / Revised: 20 June 2024 / Accepted: 26 June 2024 / Published: 28 June 2024

Abstract

:
The Internet of Medical Things (IoMT) represents a specialized domain within the Internet of Things, focusing on medical devices that require regulatory approval to ensure patient safety. Trusted composition of IoMT systems aims to ensure high assurance of the entire composed system, despite potential variability in the assurance levels of individual components. Achieving this trustworthiness in IoMT systems, especially when using less-assured, commercial, off-the-shelf networks like Ethernet and WiFi, presents a significant challenge. To address this challenge, this paper advocates a systematic approach that leverages the Architecture Analysis & Design Language (AADL) along with Behavior Language for Embedded Systems with Software (BLESS) specification and implementation. This approach aims to provide high assurance on critical components through formal verification, while using less-assured components in a manner that maintains overall system determinism and reliability. A clinical case study involving an automated opioid infusion monitoring IoMT system is presented to illustrate the application of the proposed approach. Through this case study, the effectiveness of the systemic approach in achieving trusted composition of heterogeneous medical devices over less-assured networks is demonstrated.

1. Introduction

An Internet of Things (IoT) is a collection of inter-connected programmable things with the ability to collect and exchange data [1]. Depending on the application domain, the things may include anything ranging from temperature sensors, cameras, smart phones, home appliances, cars, to medical devices, and so on. IoT systems combine functions of individual devices, communicating over a network, to perform operations impossible with individual devices. Such integration of heterogeneous things enables access from anywhere, anytime, and by anything through networks that span from Body Area Networks (BAN) to networks stretching across the globe.
The term “Internet of Medical Things” (IoMT) refers to a composition of medical devices, applications, and healthcare IT systems that are connected through computer networks. Medical devices equipped with interoperable interfaces along with the communication network form the basis of IoMT. Under the purview of IoMT, medical device composition extends data sharing for electronic health records [2,3] with therapeutic medical devices [4,5]. The application of IoMT to control patient therapy has regulatory requirements in most countries where simply storing patient monitoring in electronic health records does not.
The safety and effectiveness of IoMT systems requires both the correct functionality of individual devices and their communication with one another. Different wired and wireless technologies and protocols establish the network that provides communication between the medical devices. Common networking technologies include cellular networks (LTE, 3G, 4G, 5G, etc.), local and personal area networks (WiFi, Bluetooth), low-power wide area networks (LoRaWAN), and mesh networks (Zigbee, RFID). As non-regulated, commercial-grade networks are mostly used for availability and cost effectiveness, composition of IoMT must accommodate unreliable communication, yet still be at least safe.
A network used for IoMT may become unreliable as a result of connecting devices from various manufacturers interacting in heterogeneous environments [6]. Vulnerabilities related to security, privacy, and confidentiality present in the individual devices also affect the integrated network. Several studies, like [7,8,9], have explored different trust issues in IoMT systems. Even correctly working networks can lose packets due to contention by wire or radio, and devices can be disconnected deliberately or inadvertently.
The existing literature on the composition of medical devices for IoMT system design mostly focus on data and device interoperability assuming a secure and trusted network. Studies like [2,4,10] typically presume a trustworthy and reliable communication network when considering the safe interoperability of medical devices for application platforms and integrated clinical settings.
In the United States, safety-critical devices are regulated as Class II (i.e., infusion pumps) or Class III (i.e., implanted cardiac defibrillators). Such devices require controlled and documented designs using medical-grade components, which have stringent tracing and reporting requirements. These requirements drive up medical device costs, exacerbated by liability insurance if patients are harmed. This paper describes the means of using high-quality, yet commercial-grade, networks to achieve medical-grade safety of IoMT.
The trusted composition of IoMT aims to achieve high assurance of the system as a whole, even though certain components of the system may have lower assurance. Therefore, if we cannot verify that every execution is correct (as we can with rigorous formal verification), we can at least verify that each particular use of commercial-off-the-shelf (COTS) software and hardware is correct using loop-back. Every message is looped back to the sender to be compared with the original. If it does not match, or does not arrive in time, the sender can take other action to assure safety. In this case, an audible alarm to alert a healthcare provider that high assurance of correct interaction of interconnected medical devices has been lost.

1.1. Contributions

The major contributions of this study are as follows.
  • We present a systematic approach for achieving high assurance in IoMT systems by integrating high-assurance software with lower-assurance counterparts, thereby ensuring overall system reliability and safety.
  • We demonstrate the application of Architecture Analysis & Design Language (AADL) in facilitating the trusted composition of medical devices within IoMT systems over imperfect networks. Specifically, we address uncertainties related to the timely and reliable exchange of information among devices on a communication-to-communication basis.
  • We illustrate the use of the Behavior Language for Systems with Software (BLESS) for behavior specification, implementation, and verification of an IoMT system consisting of pulse oximeter, respiration monitor, patient-controlled analgesic (PCA) pump, and a control application, communicating over a network.

1.2. Outline

A summary of the related work is provided in the following section. The relevant background is detailed in Section 3. Section 4 presents clinical use case of an IoMT for system of monitoring of the patient-controlled opioid infusion. Section 5 describes the structural modeling of the clinical IoMT, while Section 6 details the behavior specification with BLESS properties. Behavior implementation using BLESS annex subclause is presented in Section 7. Section 8 discusses behavior verification conditions, and Section 9 covers the behavior correctness proof. Section 10 discusses the importance and effectiveness of the advocated design principles, and Section 11 concludes the study.

2. Related Work

Several studies explore the integration of medical devices for IoMT systems from different perspectives. For example, Jayavel et al., investigated various security vulnerabilities [11] and possible solution for IoMT thread scenarios. A thorough analysis of the advancement and development of IoMT is provided in [12], and the IoMT application along with enabling technologies for different deployment domains is reviewed in [13]. IoMT literature is also examined in [14] for the purpose of developing a smart healthcare system for early diagnosis and spread prevention. Investigation of the IoMT requirements, and challenges with respect to Healthcare 4.0, are also reported in [15]. A three-layer design framework for Healthcare Internet of Things (H-IoT) networks is provided in [16]. Important supporting technologies for IEEE 802.11 wireless real-time communication protocol [17] are also listed, along with the QoS requirements.
Virtual integration for medical device interoperability is presented in [5]. A medical device integration approach based on the IoT is described in [2]. Common features of the devices and a single protocol for data integration are discussed. In [4], Arney et al. provide a model-driven approach to the design and validation of closed-loop medical device systems. A considerable number of studies, like [18,19,20], have explored security and sustainability perspectives in the design of IoMT systems. Different Artificial Intelligence (AI) and Blockchain-based design techniques, for effective communication among medical devices and data analysis, are investigated [21,22,23]. Ding et al., in [24], present a multi-mode medical data transmission approach based on the Industrial Internet of Things (IIoT). Design of an IoMT-based healthcare monitoring system is presented in [25], while an ontology-based service for composition and interoperability of medical devices is investigated in [26].
The related studies described above generally assume a dependable and trustworthy communication network when addressing the safe interoperability and architectural specifications for medical device application platforms and integrated clinical environments. However, our study adopts a more realistic approach for the composition of medical devices, and takes into account the unreliability of the communication networks. Such imperfect networks can further intensify the challenges of security vulnerabilities and network disruptions. Our approach of achieving trusted composition in IoMT systems ensures high assurance in essential functional components while accommodating lower assurance communication infrastructure.

3. Background

The Architecture Analysis & Design Language (AADL) is SAE International standard AS5506D, and was created for systems engineering of cyber-physical systems [27]. AADL has well-defined semantics for components and their composition. In particular, AADL component types describe everything visible from outside the component (features, ports, parameters, and accesses), while component implementations describe their internals. Each component type may have several component implementations. Component implementations may be composite components containing subcomponents and connections between them, or may be hardware and/or software not further partitioned.
In AADL, logical architectures (software) are modeled with process, data, subprogram, thread, and thread group components. Process components model the protected memory space shared among thread subcomponents, which model active software which can issue and respond dynamically to events. Data components model types, persistent values directly accessible by multiple threads. Subprogram components model procedures and functions, which must be invoked by threads or other subcomponents.
Physical architectures, in AADL, are modeled with processor, memory, bus, and device components. Hardware that executes software is modeled with processor components. Memory components model data storage. Device components model other physical entities like actuators and sensors or custom logic. Bus components model the physical connections (i.e., wires) between execution platform components.
AADL also provides system components to model composition of logical and physical components, and abstract components to model interfaces without further elaboration. The Open Source AADL Tool Environment (OSATE) [28] is an IDE with analysis tools built on Eclipse to implement AADL for the modeling and analysis of real-time embedded systems.
The core AADL standard only provides support for structural modeling of embedded computing systems, and nothing related to detailed behavior of the software and physical processes which are controlled by the software can be modeled. The Behavior Language for Embedded Systems with Software (BLESS) is an annex sublanguage of AADL that augments the core architecture language to define specification and behavior implementations [29]. A BLESS plugin to OSATE allows program development and transforms programs with proof outlines into deductive proofs.
BLESS annex sublanguage uses five domain-specific languages (DSLs) edited with a plugin extension to OSATE. Each DSL is used in AADL subclauses, libraries, or properties. An Assertion language to make assertions (statements of fact), a Typedef language to define types and units, a Unit language to specify measure units, a State Machine language to express thread behavior, and an Action language to express imperative control-flow computation.
The BLESS proof assistant transforms program proof outlines into deductive proofs, given human selection of proof tactics. For more details, refer to the BLESS reference and proof assistant guide [30].
AADL facilitates system engineering to minimize problems discovered during systems integration when they are most costly to remedy. Architecture-Centric Virtual Integration (ACVI) is a design methodology for using AADL to preclude system integration issues [31]. ACVI was adapted for use to compose interoperable medical devices as medical device virtual integration (MDVI) in [5]. With MDVI, systems engineers use AADL’s property mechanism to attach assertions (predicates or expressions) to component features, expressing what is guaranteed to be true (for outputs) or assumed to be true (for inputs). Connections between features give rise to assume-guarantee contracts, which can be formally verified before the components are designed. Additionally, components may have invariants, much like loop invariants. Invariants for composite components are implied by invariants of their subcomponents.

4. Clinical Example System

To demonstrate how the trusted composition of IoMT may be achieved across an imperfect network, a clinical use case is presented in this section, and will be used throughout the paper. The use case involves automated monitoring of a patient-controlled opioid infusion after a surgical procedure. As depicted in Figure 1, the patient is connected to a respiration monitor to measure breathing rate, and a pulse oximeter to measure blood oxygen (SpO2) and heart rate. In order to administer opioids for pain management, the patient is attached to a patient-controlled analgesic (PCA) infusion pump through an infusion, usually set into a vein on the back of a hand. With a PCA pump, a patient receives opioid infusion at a basal rate, but can also request an additional bolus by pressing a button connected to the PCA pump. The typical PCA pump operates as a stand-alone device.
Overdoses are possible, even with the built-in hazard mitigation. One of the main causes of these overdoses is the PCA pump’s ignorance of the patient’s vital signs, which are tracked by devices like a pulse oximeter and respiration monitor. When the monitoring devices do not communicate with the PCA pump, infusion may continue even if the patient’s health is entering respiratory depression.
Several studies have investigated the integration of medical devices in a closed-loop with a controlling application to coordinate among the monitoring devices and the PCA pump [4,5]. Opioid infusion can be reduced or halted based on vital signs monitored by devices like a pulse oximeter or respiration monitor. However, these studies assume devices communicate through a perfect communication network. The IoMT-based automated opioid infusion system we are considering also takes into account the fact that there is a potential for data loss, unauthenticated access, and information delay due to imperfect communication networks.

5. Structural Modeling Using AADL

The goal of trusted composition of IoMT is to attain a high level of assurance within the system, acknowledging the potential presence of certain components with lower assurance. This goal is pursued by prioritizing high assurance for safety-critical components of the system and then integrating lower assurance components in a manner that upholds the overall system’s safety.
Figure 2 shows the top-level AADL model of the clinical example use case explained in the previous section. This IoMT-based automated monitoring of opioid infusion, modeled as an AADL system SysIoMT, is composed of four sub-systems and a communication network. Each system is connected to an imperfect communication network, which is modeled with an AADL virtual bus. A Patient is modeled as an abstract component. Alarms due to patient vital signs (low heart rate, respiration rate, or blood oxygenation) and warnings that assurance has been lost are sent to a Nurse_Station for human intervention. High assurance for the system as a whole is achieved by loop-back communication between formally verified threads. Although any single message will not be assured, when the sender receives a correct copy of its message back, it is assured that these two messages (original and confirmation) have been performed correctly. Pairs of connections using loop-back are shown in red in Figure 2.
Figure 3 shows the containment hierarchy of all components in the model plus bus access connections. Formally verified components have a light green background color; less-assured components, have a light yellow background. The Respiration_Monitor component models the respiration monitoring system attached to the patient for monitoring the respiration rate. It determines respiration rate from a respiration sensor usually strapped around a patient’s chest. If the respiration rate is lower than the minimum respiration rate, Respiration_Monitor sends RM_Alarm(true) to the control application Coordinator, otherwise it sends RM_Alarm(false). The RespirationMonitor then waits for message confirmation response, either RM_Alarm_Echo(true) or RM_Alarm_Echo(false). If the response is not received within the specified time limit (indicating a delay or data loss) or the received response is different from the sent notification (indicating message corruption), the Respiration_Monitor sends a lost confirmation signal through the Lost_Confirmation outgoing event port to the Nurse_Station. The Respiration_Monitor can also make a sound indicating a low respiration rate alarm or lost confirmation.
The patient’s heart rate and blood oxygenation (SpO2) are monitored by the pulse oximeter, which is modeled by the Pulse_Oximeter system component. The Pulse_Oximeter receives values of the SpO2 and heart rate from the pulse oximeter sensor attached to the patient body. Through the PO_Alarm outgoing event data port, the Nurse_Station is alerted if any of these two parameters falls below minimum limits. Additionally, the Coordinator also receives the alarm. Next, the Pulse_Oximeter waits at PO_Alarm_Echo incoming event data port for the confirmation response from the Coordinator. Nurse_Station is notified through Lost_Confirmation outgoing event data port if the response is not received within the allotted time limit.
The Coordinator system component represents the control application executed by a processor on the network (not shown). The Coordinator notifies the PCA_Pump to reduce infusion to the minimal keep-vein-open (KVO) rate when it receives alarm signals from the Pulse_Oximeter or Respiration_Monitor through PO_Alarm or RM_Alarm, respectively. The acknowledgments are sent to Pulse_Oximeter and Respiration_Monitor through PO_Alarm_Echo and RM_Alarm_Echo ports. Nurse_Station receives notification through Lost_Confirmation outgoing event data port if the response is not received within a specified time frame or does not match the notification.
PCA_Pump models the PCA pump used to infuse drug into the patient. Because patients respond to opioids so differently, a steady basal rate of drug flow can be augmented by a patient-requested bolus by pressing the bolus request button. This puts the patient in-the-loop for their pain management. Too much opioid can cause respiratory depression, which may lead to brain damage or death.
Nurse_Station system models the nursing station with human caregivers. It receives alarms and lost confirmation notifications on Patient_Alarm and Patient_Lost_Confirmation ports, respectively. Modeling the detailed functionality of the nursing station is beyond the scope of this study.
When PCA_Pump receives Pause_Infusion(true) from the Coordinator, it reduces infusion to a KVO rate until it receives Pause_Infusion(false) to resume basal rate infusion. Every message received on Pause_Infusion is sent back on Pause_Infusion_Echo.
As shown in Listing 1, the BLESS invariant << IS_SAFE() >> in the properties section of the SysIoMT system type specifies the main safety property of the systems to be proved correct. Invariant IS_SAFE() expresses that in the event that the heart rate, SpO2, or respiration rate fall below the minimal threshold, the pump infusion will be adjusted to the KVO rate or will be halted. Section 6 provides further details on the assertions and Section 9 presents the proof details of this invariant.
Listing 1. System type for IoMT system-of-systems.
Futureinternet 16 00230 i001
Listing 2 presents a partial specification of IoMT system implementation classifier. The subcomponents section of the SysIoMT.impl (system implementation) defines contained subsystems, while the connections section specifies the appropriate connections between them. Connections are functional communication pathways allocated to physical components, which actually transmit messages by Actual_Connection_Binding properties.
Listing 2. A partial specification of the IoMT system implementation.
Futureinternet 16 00230 i002

6. Behavior Specification Using BLESS Properties

Behavior of an AADL component can be completely expressed by BLESS::Assertion and BLESS::Value properties on its ports and a BLESS::Invariant property of the component as a whole.
BLESS::Assertion properties are predicates defining what is true about the value sent or received by a port. Similarly, BLESS::Value properties are expressions what is true about values sent or received by a port. Outgoing ports guarantee what is true about values sent; incoming ports assume what is true about values received. The BLESS::Invariant property of a composite component must be implied by the conjunction of BLESS::Invariant properties of its subcomponents.
Thread component behavior is implemented by a state-transition machine. That the thread’s behavior upholds its specification requires a verification condition for each state and transition. Respiration Monitor system is used for illustration of verification conditions for threads.

Respiration Monitor

As depicted in Figure 4, Respiration_Monitor contains a Respiration_Sensor device to measure the respiration rate and a Respiration_Monitor_Process process (protected address space) which has two threads, Respiration_Monitor_Thread and RM_Communication_Thread.
RM_Communication_Thread models COTS software such as a TCP/IP stack and device drivers. As such, RM_Communication_Thread is less assured. Respiration_Monitor_Thread performs a safety-critical function, so is formally verified with a deductive correctness proof. The type classifier of Listing 3 declares the interfaces, in terms of in and out ports, of the Respiration_Monitor_Thread.
Listing 3. Respiration Monitor thread type.
Futureinternet 16 00230 i003
BLESS::Assertion properties define predicates within << >>, which must match the values of boolean-typed ports. Therefore, port RM_Alarm outputs true when << RM_ALARM() >> holds and false otherwise. Because RM_Alarm is an out port, thread Respiration_Monitor_Thread guarantees its BLESS::Assertion property. Conversely, BLESS::Assertion of an in port is assumed. Connections from out ports to in ports have assume-guarantee verification conditions (further explained in Section 8). BLESS::Value properties define expressions which must match the values sent or received on data ports and event data ports. Port RP_Rate expects a value of type brpm with value RESPIRATION_RATE, which is a ghost variable. Ghost variables represent the actual values sent or received by ports.

7. Behavior Implementation Using BLESS State-Transition Machine

In AADL, component implementations are separate from component types. Multiple implementations of the same component type with distinct identifiers are permitted by AADL. The names of implementations are the identifier of the type classifiers followed by a period, then the identifier of the component implementation. For example, Respiration_Monitor_Thread.impl is an implementation of the thread type Respiration_Monitor_Thread.
Inside a component implementation, a BLESS state-transition machine is written within a BLESS annex subclause. AADL allows definition of annex subclauses with the reserved word annex, followed by the identifier of the annex, the body of the annex subclause between {** and **};. OSATE can be extended with plugins to provide parsers, syntax highlighting, and error markers for an annex sublanguage in the body of an annex subclause. To include a BLESS annex subclause to express thread implementation by a state-transition machine, the annex language name BLESS must be the identifier of the annex subclause.

7.1. Invariant, Variables, and States

Listing 4 shows the assertion, invariant, and variable specification of the Respiration_Monitor_Thread. An assertion defined in the invariant section must be true whenever the thread suspends or dispatches.
The states section declares behavior states, which may have assertions which are true when the state-transition machine is in that state. There are four kinds of states: initial, final , complete, or execution if not otherwise indicated. Execution starts in the initial state and ends in a final state (if any). Computation suspends upon entering a complete state (execution is complete) until the thread is next dispatched. Execution states are transitory.
Listing 4. Repiration Monitor invariant, variables, and states sections.
Futureinternet 16 00230 i004
Local variables that hold persistent values are declared in the variables section. Variable declarations may include an assertion that defines the meaning of the variable.

7.2. Transitions

Transitions have a label, a source state, a transition condition, a destination state and, optionally, an action. Transitions leaving execution states have boolean expression for transition conditions, while transitions leaving complete states have dispatch conditions. Listing 5 shows transitions implementing the Respiration_Monitor_Thread depicted in Figure 5.
Listing 5. Repiration Monitor transitions section.
Futureinternet 16 00230 i005
  • Transition go, with empty execute condition being true, changes state from start to run.
  • Transition got_rp, with dispatch condition on dispatch, leaves the run state periodically (every 20 s), performs an action, then changes state to check_echo. Its action reads the current respiration rate, sends an alarm (true) if less than the minimum respiration rate, otherwise sends alarm false.
  • Transition got_echo, with dispatch condition on dispatch RM_Alarm_Echo, leaves the check_echo state when an event is received on port RM_Alarm_Echo, performs an action, then changes state to run. Its action compares the boolean value of RM_Alarm_Echo with the alarm value sent during the action of transition got_rp, and sends an event out port Lost_Confirmation if different.
  • Transition late_echo also leaves check_echo state, and changes state to run after sending an action out port Lost_Confirmation, but only if its timeout dispatch condition is met. The timeout starts when a value is sent from port RM_Alarm. If RM_Alarm_Echo has not been received within RM_Echo_Limit seconds later, the dispatch condition has been met.
Thus, Respiration_Monitor_Thread.impl employs three different kinds of dispatch triggers in its dispatch conditions.

8. Verification Conditions

Verification conditions are theorems that express what must be true for system behavior to meet its specification. Verification conditions are either for correctness of individual threads, or for compositions of subcomponents. Proving all verification conditions for a system constitutes correctness proof of the system.
Of course, verification conditions may be incorrectly generated, or incomplete, which would invalidate a correctness proof. Arguments that the verification conditions are both correct and complete can be found in [30].
Each verification condition (and all other theorems in a correctness proof) are Hoare triples in the form of
P S Q
where P is a precondition, S is an action, and Q is a postcondition. When there is no action, the verification condition reduces to P Q .

8.1. Thread Verification Conditions

For threads, a verification condition is generated for each state (except final states) and a verification condition is generated for each transition.
For each complete state, its assertion must imply the thread invariant. The invariant for Respiration_Monitor_Thread.impl is << RA() and MRPA() >>. State run has the the same assertion. So, the verification condition for complete state run is a tautology, as shown in Listing 6.
Listing 6. Verification condition for run complete state.
Futureinternet 16 00230 i006
For each execution state, its assertion must imply the disjunction of the transition conditions of all transitions for which that state is its source.
For each transition, a verification condition is generated as
P b S Q
where P is the assertion of the source state, Q is the assertion of the destination state, b is the transition condition, and S is the action of the transition. The verification condition for transition go is generated as shown in Listing 7.
Listing 7. Verification condition for transition go.
Futureinternet 16 00230 i007
Numbers in the square brackets are the line numbers in the program. Within IoMTwin.aadl, line 426 has definition of the start state, and line 427 has definition of the destination state run. The transition go is defined at line 431 without any behavior action.
Transitions leaving complete states have dispatch conditions which makes the transition condition b more complex. The dispatch condition holds when dispatched at time now, and dispatch has not happened since the time-of-previous-dispatch, tops. The precondition for the verification condition generated for got_echo (shown in Listing 8) includes RM_Alarm_Echo@now, which means event arrival at the RM_Alarm_Echo port in the present instant. After which, several “not exists” terms express that no other transition leaving state check_echo occurred since the thread was last dispatched. In some cases, those additional terms are pertinent; here, they are not.
Listing 8. Verification condition for transition got_echo.
Futureinternet 16 00230 i008

8.2. Composition Verification Conditions

The behavior of a system-of-systems, such as the IoMT in our case study, can be proved correct to meet its specifications based on the proved-correct specifications of its subsystems. As a result, verification conditions are generated for each connection implying assume-guarantee contracts among subsystems. Additionally, the conjunction of subcomponents’ invariants must imply the invariant of the system-of-systems.
Listing 9 presents a verification condition generated for connection rm_alarm between Respiration_Monitor and Coordinator subsystems (see Listing 2). In almost all circumstances, the source and destination of a connection have same assertions, hence generating a tautology.
Listing 9. Verification condition for connection rm_alarm.
Futureinternet 16 00230 i009
Verification condition generated for the IoMT system property << ISSAFE() >>, specified in Listing 1, is shown in Listing 10. It states that the conjunction of invariants of subsystems implies the invariant of system-of-systems (IoMT in our case study). For each verification condition and theorem, the Why created: part states the reason for generating this verification condition and the Solved by: part (only in theorems) states the proof tactics used to solve this verification condition.
Listing 10. Verification condition for system property IS_SAFE().
Futureinternet 16 00230 i010

9. Proof of Verification Conditions

Behavior correctness proof requires solving all of the verification conditions generated based on assertion specifications with ports, states, transitions, and behavior actions. The BLESS proof tool produces the formal proof of the behavior correctness as a list of theorems when all the verification conditions are solved. Each theorem is either a tautology, given, or derived from earlier theorems by applying inference rules. Like other interactive theorem provers, the BLESS proof tool requires human intervention to select proof tactics. Complete proof of the SysIoMT requires 332 theorems. Below, we present some of the proof theorems used to solve verification conditions generated for the Respiration_Monitor_Thread, and for the composition of the system-of-systems. Complete proof of the SysIoMT system with all the subsystems, processes, and threads is available as a GitHub repository at [32].

9.1. Thread Verification Condition Proof

Table 1 presents verification conditions along with proof theorems generated for each state and transition for Respiration_Monitor_Thread. For example, for complete state run verification condition [serial 1012] (shown in Listing 6) is generated and proof theorem (93) is used to solve it.
Similarly, for transition go, verification condition [serial 1014] is generated and theorem (95) is used to solve it as a tautology. For a relatively complex transition got_echo, verification condition [serial 1016] (shown in Listing 8) is generated, which becomes theorem (153), and is proven by theorems (132) to (152), which are used to solve it. Listing 11 presents a couple of sample theorems for transition got_echo.
Listing 11. First (132) and the last (153) proof theorem for transition got_echo.
Futureinternet 16 00230 i011

9.2. Composition Verification Condition Proof

For the assume-guarantee relationships on connections, the verification conditions (like the one presented in Listing 9) are easily solved as tautologies. In order to show what is true about the IoMT, the system-of-systems is derived from what is true about its subsystems. The compositional verification condition generated for the system property IS_SAFE() (presented in Listing 10) is solved using the three theorems (600), (601), and (602), as shown in Listing 12.
Listing 12. Proof theorems for system property IS_SAFE().
Futureinternet 16 00230 i012

10. Discussion

Suppose a regulator of medical devices asked manufacturers of medical devices using software seeking pre-market approval (PMA) two questions:
  • What fraction of the software state space have been tested?
  • What evidence is provided that the untested state space will be safe and effective?
Because even diligent testing can only cover a tiny fraction of software state space, the answer to the first question is “minuscule”. Software errors that cause medical device recalls invariably occur in the untested state space—otherwise the error would have been detected and fixed. Because manufacturers can give no evidence for untested state space, regulators do not ask the second question.
A manufacturer using the design principles advocated in this paper could answer thus:
  • For the software performing medical function that must be safe and effective, we have formally verified that every possible execution will conform to its safety and effectiveness specification. Here are the verification artifacts as evidence.
  • Our design conforms to an architecture that compels components to only interact through well-defined interfaces. By this (and separation kernel enforcement), we ensure that errors in only tested software cannot compromise our formally verified software.
  • The only tested software either performs functions that do not affect safety and effectiveness, or are used in such a way that failures are evident so their risk can be mitigated acceptably.
By using these design principles, the extra effort of formal verification can be focused on the small fraction of software that is truly safety-critical, minimizing the cost of formal verification while maximizing its effect.

11. Conclusions

The Internet of Medical Things (IoMT) integrates medical devices, applications, and IT systems through communication networks, enabling comprehensive monitoring and control capabilities. However, this convergence poses challenges, notably security vulnerabilities and network disruptions, due to reliance on imperfect communication networks. Crucially, achieving a trusted composition in IoMT systems involves prioritizing high assurance in critical functional components while accommodating a lower-assured communication infrastructure. Integration of AADL with BLESS behavior specification is investigated to offer a systematic approach to ensure trusted composition of heterogeneous medical devices over such imperfect networks. This approach emphasizes formal verification techniques and a message-confirmation protocol to establish assume-guarantee relationships and enhance safety properties at both individual device and system levels. A case study demonstrates the application of the proposed approach in an IoMT system of a patient-controlled opioid infusion comprising a pulse oximeter, respiration monitor, PCA pump, and coordinator application. Despite the presence of an imperfect communication network, the study illustrates the feasibility of safe and correct information exchange towards a trusted composition. Enhancing trusted composition techniques can improve IoMT system scalability and dependability, ultimately leading to better healthcare delivery. Future work is directed towards applying the proposed approach for trustworthy medical device composition to other IoMT use cases.

Author Contributions

Conceptualization, E.A. and B.L.; methodology, E.A. and B.L.; software, E.A. and B.L.; validation, E.A., B.L. and A.B.; formal analysis, E.A. and B.L.; investigation, A.B. and B.L.; resources, B.L. and A.B.; data curation, A.B.; writing—original draft preparation, E.A. and B.L.; writing—review and editing, E.A. and B.L.; visualization, B.L. and A.B.; supervision, E.A., B.L. and A.B.; project administration, A.B.; funding acquisition, E.A. and A.B. All authors have read and agreed to the published version of the manuscript.

Funding

All authors were supported with funding granted by the Deanship of Scientific Research at Saudi Electronic University (9460).

Data Availability Statement

Complete proof of the SysIoMT system with all the subsystems, processes, and threads is available as a GitHub repository at: https://github.com/brlarson/IoMT (accessed on 1 May 2024).

Acknowledgments

The authors extend their appreciation to the Deanship of Scientific Research at Saudi Electronic University for funding this research (9460).

Conflicts of Interest

Brian Larson is the CEO of Multitude Cooperation. The authors declare no conflicts of interest.

References

  1. Minerva, R.; Biru, A.; Rotondi, D. Towards a Definition of the Internet of Things (IoT); Technol Report; IEEE Internet of Things; Telecom Italia S.p.A: Italy, Rome, 2015. [Google Scholar]
  2. Hao, A.; Wang, L. Medical Device Integration Model Based on the Internet of Things. Open Biomed Eng. J. 2015, 9, 256–261. [Google Scholar] [CrossRef] [PubMed]
  3. Dinh-Le, C.; Chuang, R.; Chokshi, S.; Mann, D. Wearable Health Technology and Electronic Health Record Integration: Scoping Review and Future Directions. JMIR Mhealth Uhealth 2019, 7, e12861. [Google Scholar] [CrossRef]
  4. Arney, D.; Pajic, M.; Goldman, J.M.; Lee, I.; Mangharam, R.; Sokolsky, O. Toward patient safety in closed-loop medical device systems. In Proceedings of the 1st ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS ’10), Stockholm, Sweden, 13–15 April 2010; Association for Computing Machinery: New York, NY, USA, 2010; pp. 139–148. [Google Scholar] [CrossRef]
  5. Larson, B.R.; Zhang, Y.; Barrett, S.C.; Hatcliff, J.; Jones, P.L. Enabling Safe Interoperation by Medical Device Virtual Integration. IEEE Des. Test 2015, 32, 74–88. [Google Scholar] [CrossRef]
  6. Sicari, S.; Rizzardi, A.; Grieco, L.; Coen-Porisini, A. Security, privacy and trust in Internet of Things: The road ahead. Comput. Netw. 2015, 76, 146–164. [Google Scholar] [CrossRef]
  7. Ghubaish, A.; Salman, T.; Zolanvari, M.; Unal, D.; Al-Ali, A.; Jain, R. Recent Advances in the Internet-of-Medical-Things (IoMT) Systems Security. IEEE Internet Things J. 2021, 8, 8707–8718. [Google Scholar] [CrossRef]
  8. Ahmed, S.F.; Alam, M.S.B.; Afrin, S.; Rafa, S.J.; Rafa, N.; Gandomi, A.H. Insights into Internet of Medical Things (IoMT): Data fusion, security issues and potential solutions. Inf. Fusion 2024, 102, 102060. [Google Scholar] [CrossRef]
  9. Bharati, S.; Podder, P.; Mondal, M.R.H.; Paul, P.K. Applications and Challenges of Cloud Integrated IoMT. In Cognitive Internet of Medical Things for Smart Healthcare: Services and Applications; Hassanien, A.E., Khamparia, A., Gupta, D., Shankar, K., Slowik, A., Eds.; Springer International Publishing: Cham, Switzerland, 2021; pp. 67–85. [Google Scholar] [CrossRef]
  10. Hatcliff, J.; King, A.; Lee, I.; Macdonald, A.; Fernando, A.; Robkin, M.; Vasserman, E.; Weininger, S.; Goldman, J.M. Rationale and Architecture Principles for Medical Application Platforms. In Proceedings of the 2012 IEEE/ACM Third International Conference on Cyber-Physical Systems, Beijing, China, 17–19 April 2012; pp. 3–12. [Google Scholar] [CrossRef]
  11. Jeyavel, J.; Parameswaran, T.; Mannan, J.M.; Hariharan, U. Security Vulnerabilities and Intelligent Solutions for IoMT Systems. In Internet of Medical Things: Remote Healthcare Systems and Applications; Hemanth, D.J., Anitha, J., Tsihrintzis, G.A., Eds.; Springer International Publishing: Cham, Switzerland, 2021; pp. 175–194. [Google Scholar] [CrossRef]
  12. Dwivedi, R.; Mehrotra, D.; Chandra, S. Potential of Internet of Medical Things (IoMT) applications in building a smart healthcare system: A systematic review. J. Oral Biol. Craniofacial Res. 2022, 12, 302–318. [Google Scholar] [CrossRef] [PubMed]
  13. Huang, C.; Wang, J.; Wang, S.; Zhang, Y. Internet of medical things: A systematic review. Neurocomputing 2023, 557, 126719. [Google Scholar] [CrossRef]
  14. Ashfaq, Z.; Rafay, A.; Mumtaz, R.; Hassan Zaidi, S.M.; Saleem, H.; Raza Zaidi, S.A.; Mumtaz, S.; Haque, A. A review of enabling technologies for Internet of Medical Things (IoMT) Ecosystem. Ain Shams Eng. J. 2022, 13, 101660. [Google Scholar] [CrossRef]
  15. Osama, M.; Ateya, A.A.; Sayed, M.S.; Hammad, M.; Pławiak, P.; Abd El-Latif, A.A.; Elsayed, R.A. Internet of Medical Things and Healthcare 4.0: Trends, Requirements, Challenges, and Research Directions. Sensors 2023, 23, 7435. [Google Scholar] [CrossRef] [PubMed]
  16. Qadri, Y.A.; Jung, H.; Niyato, D. Towards the Internet of Medical Things for Real-Time Health Monitoring over Wi-Fi. IEEE Netw. 2024, 1. [Google Scholar] [CrossRef]
  17. Crow, B.; Widjaja, I.; Kim, J.; Sakai, P. IEEE 802.11 Wireless Local Area Networks. IEEE Commun. Mag. 1997, 35, 116–126. [Google Scholar] [CrossRef]
  18. Alzahrani, F.A.; Ahmad, M.; Ansari, M.T.J. Towards Design and Development of Security Assessment Framework for Internet of Medical Things. Appl. Sci. 2022, 12, 8148. [Google Scholar] [CrossRef]
  19. Bhushan, B.; Kumar, A.; Agarwal, A.K.; Kumar, A.; Bhattacharya, P.; Kumar, A. Towards a Secure and Sustainable Internet of Medical Things (IoMT): Requirements, Design Challenges, Security Techniques, and Future Trends. Sustainability 2023, 15, 6177. [Google Scholar] [CrossRef]
  20. Sadhu, P.K.; Yanambaka, V.P.; Abdelgawad, A.; Yelamarthi, K. Prospect of Internet of Medical Things: A Review on Security Requirements and Solutions. Sensors 2022, 22, 5517. [Google Scholar] [CrossRef] [PubMed]
  21. Garg, N.; Petwal, R.; Wazid, M.; Singh, D.; Das, A.K.; Rodrigues, J.J. On the design of an AI-driven secure communication scheme for internet of medical things environment. Digit. Commun. Netw. 2023, 9, 1080–1089. [Google Scholar] [CrossRef]
  22. Taherdoost, H. Blockchain-Based Internet of Medical Things. Appl. Sci. 2023, 13, 1287. [Google Scholar] [CrossRef]
  23. Abbas, A.; Alroobaea, R.; Krichen, M.; Rubaiee, S.; Vimal, S.; Almansour, F.M. Blockchain-assisted secured data management framework for health information analysis based on Internet of Medical Things. Pers. Ubiquitous Comput. 2024, 28, 59–72. [Google Scholar] [CrossRef]
  24. Ding, X.; Zhang, Y.; Li, J.; Mao, B.; Guo, Y.; Li, G. A feasibility study of multi-mode intelligent fusion medical data transmission technology of industrial Internet of Things combined with medical Internet of Things. Internet Things 2023, 21, 100689. [Google Scholar] [CrossRef]
  25. Shreya, S.; Chatterjee, K.; Singh, A. A smart secure healthcare monitoring system with Internet of Medical Things. Comput. Electr. Eng. 2022, 101, 107969. [Google Scholar] [CrossRef]
  26. Puder, A.; Schindewolf, M.; Sax, E. Ontology-Based Service Composition for Interoperable and Modular Medical Devices. In Proceedings of the 2023 IEEE 36th International Symposium on Computer-Based Medical Systems (CBMS), L’Aquila, Italy, 22–24 June 2023; pp. 791–797. [Google Scholar] [CrossRef]
  27. SAE International. SAE AS5506 Rev. D Architecture Analysis and Design Language (AADL); SAE International: Warrendale, PA, USA, 2022. [Google Scholar]
  28. Software Engineering Institute, Carnegie Mellon University. OSATE2. Available online: http://osate.org/ (accessed on 5 May 2024).
  29. Larson, B.R.; Chalin, P.; Hatcliff, J. BLESS: Formal Specification and Verification of Behaviors for Embedded Systems with Software. In NASA Formal Methods; Springer: Berlin/Heidelberg, Germany, 2013; Volume 7871, pp. 276–290. [Google Scholar]
  30. Larson, B.R. Behavior Language for Embedded Systems with Software Language Reference and Proof Assistant Guide. 2024. Available online: https://multitude.net/documentation/ (accessed on 5 May 2024).
  31. Boydston, A.; Feiler, P.H. Architecture Centric Virtual Integration Process (ACVIP): A Key Component of the DoD Digital Engineering Strategy. In Proceedings of the 22nd Annual Systems and Mission Engineering Conference, Tampa, FL, USA, 21–24 October 2019. [Google Scholar]
  32. Ahmad, E.; Larson, B. AADL Model, BLESS Behavior Specification, and Verification of IoMT-Based Opioid Infusion Monitoring. 2024. Available online: https://github.com/brlarson/IoMT (accessed on 5 May 2024).
Figure 1. A clinical use case of opioid infusion monitoring.
Figure 1. A clinical use case of opioid infusion monitoring.
Futureinternet 16 00230 g001
Figure 2. Top-level AADL model.
Figure 2. Top-level AADL model.
Futureinternet 16 00230 g002
Figure 3. Component containment hierarchy.
Figure 3. Component containment hierarchy.
Futureinternet 16 00230 g003
Figure 4. Respiration Monitor system structure.
Figure 4. Respiration Monitor system structure.
Futureinternet 16 00230 g004
Figure 5. Respiration Monitor state machine.
Figure 5. Respiration Monitor state machine.
Futureinternet 16 00230 g005
Table 1. Respiration Monitor thread verification conditions and theorems.
Table 1. Respiration Monitor thread verification conditions and theorems.
IdentifierVerification ConditionsProof Theorems
Statesstart101394
run101293
check_echo101192
Transitionsgo101495
got_rp101596–131
got_echo1016132–153
late_echo1017154–159
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Ahmad, E.; Larson, B.; Banga, A. Trusted Composition of Internet of Medical Things over Imperfect Networks. Future Internet 2024, 16, 230. https://doi.org/10.3390/fi16070230

AMA Style

Ahmad E, Larson B, Banga A. Trusted Composition of Internet of Medical Things over Imperfect Networks. Future Internet. 2024; 16(7):230. https://doi.org/10.3390/fi16070230

Chicago/Turabian Style

Ahmad, Ehsan, Brian Larson, and Abdulbasid Banga. 2024. "Trusted Composition of Internet of Medical Things over Imperfect Networks" Future Internet 16, no. 7: 230. https://doi.org/10.3390/fi16070230

APA Style

Ahmad, E., Larson, B., & Banga, A. (2024). Trusted Composition of Internet of Medical Things over Imperfect Networks. Future Internet, 16(7), 230. https://doi.org/10.3390/fi16070230

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop