Service Virtualisation of Internet-of-Things Devices: Techniques and Challenges
Zeinab Farahmandpour, Steve Versteeg, Anand Kameswaran, Jun Han

TL;DR
This paper explores the potential and challenges of applying service virtualization techniques to IoT devices, aiming to facilitate automated testing and development in IoT environments.
Contribution
It analyzes the structural differences between IoT and enterprise protocols and identifies key technical challenges for IoT service virtualization.
Findings
Identifies protocol differences impacting virtualization
Highlights technical challenges in IoT virtualization
Suggests directions for future research
Abstract
Service virtualization is an approach that uses virtualized environments to automatically test enterprise services in production-like conditions. Many techniques have been proposed to provide such a realistic environment for enterprise services. The Internet-of-Things (IoT) is an emerging field which connects a diverse set of devices over different transport layers, using a variety of protocols. Provisioning a virtual testbed of IoT devices can accelerate IoT application development by enabling automated testing without requiring a continuous connection to the physical devices. One solution is to expand existing enterprise service virtualization to IoT environments. There are various structural differences between the two environments that should be considered to implement appropriate service virtualization for IoT. This paper examines the structural differences between various IoT…
Click any figure to enlarge with its caption.
Figure 1
Figure 2
Figure 1
Figure 2
Figure 2
Figure 6| Enterprise Protocol | IoT Protocols | |||||||||||
| \hlxvh | LDAP | MQTT | CoAP | DDS | ZigBee | Z-WAVE | ||||||
| \hlxvh UDP/TCP | TCP | TCP | UDP | TCP/UDP | TCP/UDP | TCP/UDP | ||||||
| \hlxvhv Architecture | Client-server | Pub-sub | Client-server | Pub-sub | Client-server | Client-server | ||||||
| Client-server* | Client-server* | |||||||||||
| \hlxvhv State(ful/less) | Stateful | Stateful | Stateless | Stateless | Configurable | Configurable | ||||||
| \hlxvhv Communication | Unidirectional** | Unidirectional | Unidirectional | Unidirectional | Bidirectional | Bidirectional | ||||||
| direction | Bidirectional* | Bidirectional* | Bidirectional* | |||||||||
| \hlxvhv Header Size | Not limited | 2 max 5 bytes | 4 bit fixed header | 8 bytes | 15 bytes | Not specified | ||||||
| + binary options | ||||||||||||
| \hlxvhv coordination | Asynchronous | Asynchronous | Asynchronous | Asynchronous | Synchronous | Asynchronous | ||||||
| Synchronous | Synchronous | |||||||||||
| \hlxvhv Network layer | Application | Session layer | Session layer | Session layer | Sub-application | Sub-application | ||||||
| (application interface) | ||||||||||||
| \hlxvhv Real-time | Yes | No | No | Yes | Yes | No | ||||||
| * IoT protocols have standard and non-standard versions with different structures and properties to meet their environmental needs. Therefore, each | ||||||||||||
| protocol may cover different schemes for each property simultaneously. This highlights the demand for virtualization service environment for IoT. | ||||||||||||
| ** There is one exception for the LDAP server, which acts as an initiator and can be ignored when the LDAP server sends ”Notice of Disconnection” | ||||||||||||
| to advise the client that the server is going to terminate the LDAP session on its own initiative [4]. | ||||||||||||
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware-Defined Networks and 5G · IoT and Edge/Fog Computing · Software System Performance and Reliability
Service Virtualisation of Internet-of-Things Devices:
Techniques and Challenges
Zeinab Farahmandpour1, Steve Versteeg2, Jun Han1, Anand Kameswaran3
1Swinburne University of Technology, Melbourne, Australia. Email: {zfarahmandpour,jhan}@swin.edu.au
2CA Technologies, Melbourne, Australia. Email: [email protected]
3CA Technologies, Plano, TX, USA. Email: [email protected]
Abstract
Service virtualization is an approach that uses virtualized environments to automatically test enterprise services in production-like conditions. Many techniques have been proposed to provide such a realistic environment for enterprise services. The Internet-of-Things (IoT) is an emerging field which connects a diverse set of devices over different transport layers, using a variety of protocols. Provisioning a virtual testbed of IoT devices can accelerate IoT application development by enabling automated testing without requiring a continuous connection to the physical devices. One solution is to expand existing enterprise service virtualization to IoT environments. There are various structural differences between the two environments that should be considered to implement appropriate service virtualization for IoT. This paper examines the structural differences between various IoT protocols and enterprise protocols and identifies key technical challenges that need to be addressed to implement service virtualization in IoT environments.
Index Terms:
Service Virtualisation; Internet-of-Things; Continuous Delivery;
I Introduction
The Internet-of-Things (IoT) is an emerging field, which connects a diverse set of devices over different transport layers, using a variety of protocols. Gartner predicts that by 2020, IoT elements will be incorporated in more than half of major new business processes and systems [1]. And yet, there are many challenges to readily deliver IoT systems. As such, there is a pressing need to develop techniques to address these challenges.
As the IoT continues to emerge, there will be a growing number of software applications communicating with IoT devices. The IoT connected software components and applications can be categorised into tiers (as depicted in Figure 1):
- •
Device gateways (GW): responsible for interfacing directly with an IoT device and providing an API (such as REST) to other applications and services
- •
Monitors and data aggregators which collect data from IoT devices (edge nodes)
- •
Applications and services for managing IoT devices
- •
Analytics engines which data mine aggregated IoT data
- •
End user applications viewable on the web or mobile devices
Software developers writing IoT applications face challenges, which can delay the release of their application and affect software quality. In particular, to test their application requires interfacing with IoT devices. This may require the physical devices to be present every time the application is fully tested. Furthermore, IoT protocols are very diverse and fragmented, which makes developing and testing for this widespread set of protocols a challenge.
Continuous Delivery (CD) [2] is the industry best practice for accelerating software delivery and increasing software quality. At its core, this includes automating each step of the development release cycle and bringing production-like conditions to every test phase. Due to the physical nature of IoT devices as well as their diversity, this poses a challenge to automation.
For enterprise software development, service virtualisation [3] has been applied as a means of emulating all the other services on which an application under test depends. The key idea of service virtualisation is to observe and log the network communication between an application under test and each other service that it interacts with in its production environment. These logged network traces can then be used to build an interactive model, called a virtual service, for each dependency service. The virtual service is then deployed in an emulation environment, allowing the application under test to send requests to and receive responses from the virtual service, as if it were communicating with the real service. This facilitates the automated testing of a software application in production-like conditions, as is required for continuous delivery.
This paper explores whether service virtualisation could be applied to IoT devices to support the realisation of CD for IoT. IoT DevOps problems include heterogeneous hardware, multiple communication layers, lack of industry standards, and skill sets requiring both operations and development. IoT virtualization can remove constraints for IoT solutions development. Provisioning a virtual testbed of IoT devices can accelerate IoT application development by enabling automated testing without requiring a continuous connection to the physical devices. Figure 1 illustrates the points at which IoT applications could be virtualised. In this paper, we survey a sample of IoT protocols to examine their technical differences to enterprise protocols. On this basis, we examine how service virtualisation would need to be adapted to support IoT protocols.
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1] Gartner. (2016) By 2020, more than half of major new business processes and systems will incorporate some element of the internet of things. [Online]. Available: http://www.gartner.com/newsroom/id/3185623
- 2[2] J. Humble and D. Farley, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation . Pearson Education, 2010.
- 3[3] J. Michelsen and J. English, “What is service virtualization?” in Service Virtualization . Springer, 2012, pp. 27–35.
- 4[4] J. Sermersheim. (2006) Lightweight Directory Access Protocol (LDAP): The protocol. [Online]. Available: https://tools.ietf.org/html/rfc 4511.html
- 5[5] J. Hodges and R. B. Morgan. (2002) Lightweight Directory Access Protocol (V 3): Technical specification, RFC 3377. [Online]. Available: https://tools.ietf.org/html/rfc 3377.html
- 6[6] A. Stanford-Clark and H. L. Truong. (2013) MQTT for sensor networks (MQTT-SN) protocol specification (V 1.2). [Online]. Available: http://mqtt.org/new/wp-content/uploads/2009/06/MQTT-SN_spec_v 1.2.pdf
- 7[7] Z. Shelby, K. Hartke, and C. Bormann. (2014) The Constrained Application Protocol (Co AP), RFC 7252. [Online]. Available: https://tools.ietf.org/html/rfc 7252
- 8[8] Object Management Group. (2015) Data Distribution Service (DDS) (V 1.4). [Online]. Available: http://www.omg.org/spec/DDS/1.4/PDF/
