1. Introduction
Internet of things (IoT) is the network of physical objects embedded with software, hardware that collects and exchanges data with each other. IoT plays an important role in different domains e.g., transport, education, healthcare, and banking [
1,
2]. IoT is a promising example that combines heterogeneous and versatile objects with different communication and computational power to gain insight into the physical world of a network. With the advent of IoT, devices can interact with each other remotely using portable devices like smartphones, tablets or computers which has an Internet connection either wired or wireless. Constrained-resource embedded IoT devices are used to monitor and control the smart environment [
3]. Network bandwidth and power consumption should not be ignored. Constrained-resource IoT devices and different protocols are introduced that consume less power and low network bandwidth respectively.
Nowadays, developers are building applications to integrate the software with physical devices on a large scale, known as the IoT network [
4]. Such applications include smart grids and transportation systems. These applications require real-time controls, large scale data centers, and powerful processing capabilities. These requirements can be fulfilled by using the cloud of things (CoT). CoT provides the platform for integrating IoT devices with CoT [
5,
6].
Intelligent service provisioning in the IoT infrastructure [
7,
8] can be achieved by discovering and composing the most relevant virtual objects. Context-aware systems require learning of the system behavior through the steady association between the virtual object and the real-world object. To meet these challenges, the web of objects (WoO) enables the objects to be deployed, maintained and operated in the IoT through virtualizing the real-world objects with the use of semantic ontology.
In the past developers of scientific applications [
9] were limited to choose a platform to run their applications such as local workstations, clusters, supercomputers, and networks. Each of these options offers different compromises in terms of availability, performance, and cost. Recently, cloud computing has become another promising solution for scientific applications and is quickly gaining interest in the scientific community.
Nowadays, IoT is facing many challenges in the virtual world. The current interaction model is based on human–object interaction. One major challenge is to shift the human–object interaction model to the object-object interaction model. In this model, objects will autonomously interact with each other to provide composite services. For this purpose, objects need to be aware of the context in which they operate so that they can execute applications and interact with the surrounding environment. One of the main goals in computing is to integrate the digital world with the physical world. The latest development in the era of integrated devices has led to smart things. Smart things are capable of communicating between digital and physical objects.
A virtual object is the major element of the IoT platforms. It supports a mash-up of different services which leads to the formation of complex applications. Virtual object addresses heterogeneous and scalability issues in the IoT world. IoT encourages physical objects to integrate and communicate with each other and humans for tasks automation. In most cases, the structure of digital objects makes these objects to interact only with certain applications in a particular format. On the basis of issues discussed above, Nitti et al. [
10] have proposed a framework that is capable of creating virtual objects regardless of their integration with other applications and business logic.
The IoT platform is referred to as IoT middle-ware, which acts as a mediator between the application layer and the hardware. There are many challenges faced by the IoT platforms such as compatibility and interoperability of different IoT systems, identification, and authentication of technologies, integration of IoT products with IoT platforms, connectivity, handling unstructured data, data security and privacy issues. In this study, we have focused on the integration of IoT products with IoT platforms by introducing the IoT marketplace that provides services to the end-users by interworking with the IoT platform. The main objective of the IoT platform is to overcome the obstacles between layers and combine them to ensure efficient and seamless cooperation. The IoT platform connects hardware to the cloud by using a flexible connection and provides a security mechanism and broad data processing powers. Existing IoT platforms manage all the interaction between the hardware and the application layers. This puts a lot of load on the IoT platform. In the proposed system, the IoT platform is solely used for validation, authentication, registration of physical devices, and initialization of virtual objects. The services provided to the end-users by the IoT platform are separated, which is referred to as the IoT marketplace. The IoT marketplace provides services to the end-users by interworking with the IoT platform. The major contribution of this paper is as follows:
Design and development of IoT platform and interworking IoT marketplace based on the virtual object in CoT to provide semantic-based discovery and sharing of virtual objects. The details are explained in
Section 4.
Virtual objects on the IoT Marketplace exchange data with the physical devices and it does not have any dependency on systems using different types of operating systems and application languages. The details are explained in
Section 4.5.
The rest of this paper is organized as follows. In
Section 2, the related work is described briefly. Existing research work in the relevant field is highlighted. Different methodologies and their pros and cons are explained in detail.
Section 3 presents our proposed system design and architecture with a detailed description of each component. Configuration of the system is explained in
Section 4. The proposed systems implementation and testing are discussed in
Section 5. We have performed a case-study and discussed it in
Section 6.
Section 7 describes the experimental environment of the proposed system.
Section 8 presents performance evaluation of the proposed system. The comparison and significance of the proposed system are discussed in
Section 9. Finally, the paper is concluded in
Section 10 with an outlook on our future work.
2. Literature Review
The number of IoT application deployment has grown in industries like automotive, utility, health, logistics, and home automation at an unprecedented rate in recent years [
11]. Due to the increasing number of devices, there is a need to develop cloud middle-ware for managing a large number of sensors and actuators. There are IoT-Frameworks built on open source components to disseminate and process data [
12].
A lot of research has been conducted on the interplay of IoT and cloud computing [
13]. The main focus of the research is to obtain comprehensive knowledge on the integration of cloud computing and IoT models to fulfill the gap identified during analysis in the existing approaches. Due to the heterogeneity of different objects, IoT and cloud computing emerged to solve the issues [
14]. CoT is capable to solve challenging issues such as management, aggregation, and storage for large scale IoT platforms [
15,
16].
Researchers are moving from cloud computing to edge computing. Edge computing meet the delay requirements of IoT applications. Edge computing is a distributed computing paradigm in which computation is largely or completely performed on distributed device nodes known as smart devices or edge devices, as opposed to primarily taking place in a centralized cloud environment [
17,
18]. The fog computing architecture network (FOCAN) is a multi-tier architecture in which applications are running on things jointly compute, route, and communicate with each other via smart city environment [
19].
Kelaidonis et al. present a framework for the virtualization of real-world objects (RWO) and the management of virtual objects [
20]. The framework has three levels of functionality. Each level provides a learning module and self-management which allows smart and flexible applications. The framework summarizes the heterogeneity of a large number of different devices or objects while increasing reliability and making it easier to consider the views of different users. Integrated virtualization has become an effective way to reduce costs, improve software quality and reduce development time [
21,
22].
Intelligent provisioning of services in the IoT infrastructure can be achieved by identifying and combining the most relevant virtual objects and stand-alone changes to learn the context information of the system behavior through a stable association between the virtual objects and the real objects [
7]. To meet these challenges, the web-of-objects (WoO) enables the provision, maintenance, and manipulation of objects in IoT via the virtualization of real objects. The learning model can be represented by a composite virtual object formed by combining several functions of the virtual object [
23,
24].
IoT research is exploring ways to connect these networks and strengthen intelligence [
25]. To facilitate these connections, many low-power network protocols have been developed in recent years in the fields of research and industry [
10,
26]. However, with more and more connections, it is a difficult task to integrate smarts things into composite applications. To solve this problem, many platforms have emerged in recent years, suggesting an integrated architecture. Some of them are implemented on some devices and are largely incompatible with each other. In addition, due to their complexity and lack of known tools, they are accessible to relatively small expert developer communities, so their use in applications is very limited [
27]. The authors proposed an event-driven framework that supports the collaboration of heterogeneous distributed production resources, according to the principles of Industry 4.0 paradigm by combining various technologies such as industrial IoT, semantic web, and multi-agent-based systems. The proposed system allows the resources to be updated about changes occurred in their context [
28].
Computing devices have significant importance in the current environment but researchers and engineers are aiming to exploit the functions of pervasive systems [
29]. Pervasive systems provide different types of services that are capable of solving real-time and complex problems. Such systems lack interoperable solutions whereas human-to-machine and machine-to-machine are necessary for ubiquitous computing. Integrating resource-constraint devices into the smart environment and heterogeneous hardware, the network can provide a solution to interoperability issues.
Abdelwahab et al. have proposed CoT for sensing-as-a-service [
30]. In traditional CoT, there has been tremendous growth in various domains of IoT in the past. The developers are making IoT based applications to virtualize physical objects into virtual objects. In heterogeneous IoT networks, too many devices and services can be a hurdle for managing the tasks. The authors have presented the concept of service and virtual object management (SVOM) to monitor and control physical devices and their corresponding virtual objects and services in the IoT environment [
31].
Normal user lacks the technical knowledge required for the development of IoT applications. Do-it-yourself (DIY) vision has made it possible for a normal user to design smart and customizable IoT applications [
32]. The authors in this paper [
33] have designed and developed an application that provides a user-friendly interface and visualizes the resources in the form of virtual objects. Basic operations, like drag-and-drop and settings of properties, can be done using virtual objects to create different services.
The Internet is used in many applications to convey time-sensitive messages because of its expanding Internet coverage and easy accessibility [
34]. Embedded devices are gaining attention due to the immense use of IoT applications. The main challenge in the development of these applications is the limited capabilities of embedded devices such as power, storage, and memory [
35,
36]. In Real-Time task scheduling [
37], many algorithms like Rate Monotonic and Earliest Deadline First (EDF) compute the hyper-period of input tasks which result in more CPU cycles and power consumption. Many solutions are provided like a resource-aware approach to minimize the hyper-period of input tasks.
Open Intelligent communication platforms are on the rise [
38]. The main purpose of the IoT platform is to provide semantically analyzed and enriched data to users or devices according to their needs and context. The semantic events notifier (SEN) enables the involved smart objects to cooperate synergistically based on the shared semantic model [
39]. It also supports the fusion of a large amount of data. There are many popular open-source IoT platforms such as OpenMTC [
40], FIWARE [
41], SiteWhere, and Amazon IoT platform [
42]. Middleware for cooperative interaction of things (MinT) is an IoT middle-ware that supports thread pooling that efficiently processes IoT device requests [
43].
OpenMTC provides an implementation of the oneM2M standard. It allows the user to create IoT/M2M infrastructure and develop new IoT/M2M applications. In an OpenMTC system, all the entities are represented as resources. OpenMTC provides a mechanism to create, change, update and delete resources. FIWARE is an open-source initiative defining a universal set of standards for context information management which facilitates the development of smart solutions. The FIWARE platform provides a set of APIs and also combines components enabling the connection to the IoT with context information management and big data services on the cloud.
Mineraud et al. have evaluated different proprietary and open-source IoT platform. Evaluation is based on support for heterogeneous interconnected devices, data security and privacy, data processing and sharing. This gap analysis aims to highlight the issues and provide solutions to future IoT platforms [
44,
45]. Lysis is a cloud-based IoT platform to deploy IoT applications [
46]. The main features of Lysis are that each object is an autonomous social agent, platform as a service (PaaS) is fully exploited, data is fully controlled by the users. Cloud-based IoT platforms should have features like low latency interaction between physical objects and virtual objects, autonomous virtual agents, flexible dynamic services, mobility management to provide services [
47].
3. Proposed Architecture of IoT Platform and Control Service Based on Interworking IoT Marketplace
In this section of the paper, we describe the proposed architecture of the IoT platform and the interworking IoT marketplace.
Figure 1 shows the proposed architecture of the system. The proposed system consists of three layers: the physical layer, repository layer, and application service layer. The physical layer includes sensors and actuators or any embedded IoT device like Raspberry Pi, Arduino. Sensors are used to detect events from the surrounding environment e.g., BME280 sensor is used to sense temperature, humidity, and pressure from the environment. Actuators are used to control a device based on a command or a signal. Actuators are used to control devices like light, fan, or motor etc. The MQTT protocol is used for communication between the physical and repository layer. IoT devices in the physical layer can publish and subscribe to messages. Sensors publish data to the MQTT broker via MQTT protocol, whereas actuators are subscribed to the message against a unique topic.
Configuration, installation, and deployment of IoT platforms are performed in the repository layer. We have used Amazon web services (AWS) to deploy our application. Web server is running on Ubuntu operating system. MySQL database is used to store the information regarding IoT device registration. Only authorized users are allowed to register the IoT device on the IoT marketplace. The registration process involves the verification of an IoT device. After registration, acknowledgment is sent back to the IoT platform. The visibility mode of the IoT device can be set to the public or private mode by the user. Http protocol is used for communication between the application service and the repository layer.
The application service layer includes a user-friendly web interface to access IoT Marketplace. The application service layer provides a control service mechanism. Users can easily monitor and control registered IoT devices using the IoT marketplace.
Proposed System Sequence Diagram
Figure 2 represents the sequence diagram for the registration of an IoT device on the marketplace. The user accesses the client application and enters the credentials i.e., username and password for authorization. Authorization is required so that the user can retrieve data from the server. After the user is authorized, the server generates access token in response. The user enters IoT device metadata like device name, device type, IP address, MAC address. IoT device meta-data along with access token is sent to the webserver via a POST request for verification. The web server processes the request. If the IoT device is verified it sends back the acknowledgment to the client application. After authorization of user and verification of IoT device, it sends POST request to the IoT Marketplace for registration via RESTful API. At this stage, the visibility mode of the IoT devices can be set public or private. IoT Marketplace processes the request and stores the information in the database. It sends an acknowledgment back to the webserver. Notification is sent back to the client application for successful registration.
Figure 3 represents the sequence diagram for the discovery and accessibility of an IoT device. There are two types of visibility mode for IoT devices. Either the IoT device is made public for everyone to use or private to be used only by the owner. In the first step, the user gets access to the IoT marketplace. The user enters its credentials i.e., user name and password to log in. If credentials are invalid it means that the user has entered the wrong username or password. The user is notified with invalid credentials notification. If the user has successfully logged in, a session is created for that user. The user gets a list of the registered IoT devices. IoT devices can be monitored and controlled after discovery. If the user selects a sensor, then it retrieves the values of the corresponding sensor e.g., if the user selects BME280 sensor, it will send temperature, humidity, and pressure values to the IoT marketplace. If the user selects actuator, it will require some action to be performed e.g., turn On or turn Off the actuator. It will publish the command via MQTT protocol to the corresponding IoT device. The IoT device will be subscribed to that message against a unique topic. It will perform the required action and notify the user.
4. Configuration of the Proposed System
The proposed system works in five steps: (a) verification and authorization of embedded IoT devices. (b) Registration of the IoT device on the IoT marketplace. (c) Discovery of IoT device. (d) Access to IoT device via virtual object. (e) Data exchange.
Figure 4 shows the working of first four steps. Each step is described in the forthcoming subsections.
4.1. Authorization and Verification
Step 1 includes authorization and verification of the users and IoT devices respectively. Web services could be easily accessed by any user if the URL and input parameter are disclosed to get an output. To keep unauthorized people away from accessing the APIs, the proposed system uses the OAuth 1.0 authentication method for the authenticity of the users at a checkpoint. OAuth 1.0 authenticates the client in three steps. First, the user enters its credentials i.e., username and password, and sends a POST request to acquire a request token. In the next phase, the user will pass the token and token secret as a query parameter to the authorization URL provided by the IoT platform. If the user authorizes, it will generate an access token. The user is granted access to retrieve data from the server with the access token. After the authorization, the user can enter device information like device name, device type, device IP, device MAC address and send a POST request to the web server for verification. The web server validates by checking weather the device information is valid or not.
4.2. Registration of IoT Device
Step 2 includes registration of the IoT device to the IoT marketplace via the IoT platform. The registration request is sent to the IoT Marketplace for a verified IoT device. At this stage, the visibility of the IoT devices can be set to public or private mode. Private mode is for IoT devices used within the home, office for personal usage like monitoring or controlling any appliance. The public mode is for IoT devices to be used anywhere. In public mode, IoT devices can be monitored by the public but not controlled by the public. Only the owner of the IoT device can control the device.
4.3. Discovery of IoT Device
Step 3 includes the discovery of IoT devices. Users can have access to public mode IoT devices without logging into the IoT Marketplace. To discover private mode IoT devices, the user has to log in to the IoT marketplace. After successful login user is redirected to the IoT marketplace dashboard where users can view registered private and public IoT devices. Users can discover IoT devices by performing a search request. IoT marketplace will return the list of registered IoT devices.
4.4. Access to IoT Device
Step 4 includes the IoT platform control service mechanism. It provides accessibility to the IoT device. Public IoT devices can only be monitored by the public. Public IoT devices do not provide access to the public except the owner. Private IoT devices can be monitored and controlled by the owner after logged In to the IoT marketplace dashboard. There are two types of IoT devices i.e., sensors and actuators. The sensor is a device whose main purpose is to sense events in its surrounding environment and send the information to other devices where it can be used for some purpose. Sensors are used in everyday objects such as temperature sensors, and motion sensors. An actuator is a component of a machine that is responsible for controlling a mechanism or system. An actuator requires a control signal or command and a source of energy to operate. An actuator is a mechanism by which a control system acts upon an environment for a specific purpose. Users can monitor and read the values of the sensor e.g., user can read the temperature from the sensor installed in some environment. Users can also perform specific actions to actuators e.g., turn off the fan, turn on the LED. The command is sent to the actuator via MQTT protocol for execution. The actuator interprets the command and performs the required action.
4.5. Data Exchange
The resource description framework (RDF) is a framework for describing resources on the web [
48]. RDF is designed to be read and understood by computers. RDF is a standard model for data exchange on the web. The main purpose of using RDF in the proposed system is that information can easily be exchanged between different types of computers using different types of operating systems and application languages. The proposed system is capable of resource discovery, resource sharing, and resource data. so we used RDF for discovery, sharing, and displaying the data of the resources on the IoT marketplace. RDF is a terminology used to encode, exchange, and reuse meta-data on the web. It includes information about the physical device such as device ID, device type, device title. The meta-data about the resource can be decoded and displayed in the IoT marketplace. The data can be easily exchanged between servers and clients using RDF/XML via the IoT marketplace.
Figure 5 presents the RDF/XML format of BMP280 temperature sensor data. This example shows data being retrieved in RDF/XML format. Data gathered from the surrounding environment is transformed into RDF/XML format. This device has the ID as ‘tempbmp28001’. The unit set to retrieve the sensor value is in Fahrenheit and the value of the temperature sensor is 59 Fahrenheit. The data is then decoded and displayed on the IoT marketplace.
Figure 6 shows the graphical representation of BMP280 sensor. It is the graphical representation of RDF/XML used in
Figure 5. As explained earlier RDF/XML is used to encode, decode, and reuse the meta-data to display the data on the web or exchange data between server and clients. In this example, there is a root node. The root node is the parent node and all other nodes are children of the parent node. From
Figure 5 and
Figure 6, we can see that root node is BMP280. All other nodes are the children nodes such as temperature, pressure, and humidity. Each child node has a unique ID. The temperature sensor has an ID of 01, pressure has an ID of 02, and humidity has an ID of 03. Each child node has two child nodes that show the unit and value of that specific sensor.
5. System Development and Testing
Figure 7 represents the development model of the proposed system. The whole system is divided into two sub-systems i.e., the IoT platform and IoT marketplace. Both systems are configured, installed, and deployed on the cloud. We have used AWS for cloud computing. We have used the Amazon elastic compute cloud (EC2) for the deployment of the IoT platform and IoT Marketplace. Ubuntu 16.04 operating system is used to run a web server and host applications.
There are three layers in the proposed system i.e., application layer, repository layer, and context acquisition and control layer. In context of the acquisition and control layer, we have used two IoT devices as actuators i.e., LED and Fan and one Raspberry Pi. LED and fan are connected with Raspberry Pi on specific GPIO pins. MQTT broker is configured and installed on the ubuntu 16.04 web server. MQTT broker is used to publish and subscribe to messages against a unique topic. There are three types of topics: content-based, topic-based, and type-based. In our proposed system we have used topic-based. In topic-based there is a set of topics that are specified before. A broker is responsible for publishing and subscribing messages. We have used MQTT protocol for communication between the repository and the control layer. As there is a large number of messages being published and subscribed, we have used the concept of a distributed broker to overcome the load on the broker. The distributed broker minimizes the load on the central broker. Each distributed broker handles the request for different IoT devices.
In the context acquisition and control layer, we have used Raspberry Pi 3 Model B in the development model. LEDs and fans are acting as actuators. LED is attached to GPIO pin 23 and the fan is attached to GPIO pin 24. IoT devices are first registered to the IoT Marketplace. The registration process includes authorization and verification methods. Authorization is required to allow only to authorize people. The user requires credentials i.e., username and password for authorization. The authorization server sends an access token in response. The user enters device information along with access token for registration. Each IoT device is subscribed to a specific topic. Actuators receive commands from IoT Marketplace via MQTT protocol. The command could be to turn on or turn off the IoT device.
The repository layer includes the configuration, installation of a web server and deployment of IoT platform and IoT Marketplace. The repository layer is used for IoT devices’ metadata storage. MQTT protocol is used for communication between the physical layer and repository layer. RESTful APIs are used for the registration of IoT devices.
The application service layer has a user-friendly web interface to provide access to IoT Marketplace. With the IoT marketplace, users can monitor and control IoT devices. A case study is provided in the next section to understand the working of the IoT platform for a domestic environment.
6. Case-Study: Use of Proposed IoT Platform for Domestic Environments
In this case study, we provide the use of a proposed IoT platform for domestic environments. The proposed IoT platform provides component-based service to the end-users. In Figure 9, we can see that the user has registered three IoT devices i.e., light, fan, and temperature sensor in a smart home.
Figure 8 shows the user registration form on IoT Marketplace. User registration is necessary to provide secure and reliable services. It will keep a record of registered users and avoid unauthorized users. To create a new account on the IoT marketplace, it requires a valid email address, available user name, strong password, Role of the user, domain, and picture (optional), and time zone. There are two types of Role i.e., consumer and provider. The consumer is any user that wants to monitor public and private registered IoT devices e.g., the user wants to see the temperature of some specific location. The provider is any user that provides services to the users and can monitor and control IoT devices e.g., the user wants to monitor and control the camera. The domain can be e.g., home, or office. In local settings, the user can set the time zone of the current location. The time zone will help to discover the nearest sensors or actuators. In
Figure 8, left navigation pane, there is a tab for sensors and actuators. Users can see the list of public sensors and actuators that are registered.
6.1. Step 1: Registration and Connectivity of IoT Device
Figure 9 shows the web interface of the IoT platform in which a registered user can add IoT devices to which they can monitor and control. From this figure, we can depict that the user is adding IoT devices for a smart home environment. Users can add multiple rooms in a smart home. The user can create a bedroom and add multiple IoT devices. The user can add a light, fan, temperature sensor to which it can be monitored and controlled.
6.2. Step 2: Discovery of Virtual Object
Figure 10 shows the discovery of the IoT device. Users have access to public and private registered IoT devices. In this figure, the user can search for any IoT device in the search bar and choose the category type. It will return the list of registered IoT devices. Users can select any IoT device i.e., sensor or actuator. In this case, the user has searched for an LED. Users can perform some specific actions like turn On the LED or turn Off the LED. Users can download JSON or XML format of the IoT device to send commands to the corresponding IoT device.
Figure 11 represents the JSON format of the virtual object of IoT device on the Marketplace. user can download the virtual object in two formats i.e., JSON or XML. Virtual object meta data includes virtual object title, model, type, attributes, and supported protocols.
6.3. Step 3: Access of IoT Device
Figure 12 shows access to the IoT device. In this example, a user can turn on and turn off the registered LED device. Users can easily select required IoT devices and perform specific actions. Commands are sent from server to IoT device via MQTT protocol.
7. Experimental Environment
This section explains the experimentation performed in this study.
Figure 13 shows IoT devices connected with Raspberry Pi. We have specified GPIO pins for each IoT device. LED is attached with GPIO pin 23 and Fan is attached with GPIO pin 24. The devices are connected to a cloud-based web server. AWS is used for cloud purposes. Our proposed system is deployed on Amazon elastic cloud compute (EC2). Ubuntu 16.04 server is used to configure, install, and deploy IoT platform and IoT AppStore. MySQL database is used for data storage. Data storage includes registered users’ information, registered IoT devices and their metadata.
Table 1 summarizes the hardware services being used in experimentation. Raspberry Pi 3 Model B is used for the experiment. Raspberry Pi is a small size embedded IoT device that has all the capabilities to perform like a computer. It consumes less power. Raspbian Operating System is configured and installed on the Raspberry Pi for practical implementation. The hardware specification of Raspberry Pi is explained in
Table 1. 16 GB SD Card is used for memory.
Table 1 also explains the software tools used in our experiment. WebStorm is a software tool used for software development. WebStorm is specifically used for client-side applications in the JavaScript language. Sublime Editor is used for designing web pages for IoT platform and IoT Marketplace. In Raspberry Pi, Python programming language is used for registration, connectivity, and accessibility of IoT devices. Thonny is a software tool used to program in python language. FileZila is a software application used to transfer files from client to server. FileZila is used to upload the source code from the local system to the Amazon cloud. PuTTY is a software tool used to access devices remotely.
Different frameworks are used in this experiment. Our IoT platform is based on MVC model. The Model-View-Controller (MVC) is an architectural pattern that separates an application into three main logical components: the model, the view, and the controller. Each of these components is built to handle specific development aspects of an application. MVC is one of the most frequently used industry-standard web development frameworks to create scalable and extensible projects. Drupal is an open-source software that can be used by an individual or group of users; even those who lack technical skills. It is used to create and manage dynamic websites. It can be used to develop applications like content management platform. The IoT marketplace is based on the Drupal framework.
Table 2 presents brief summary of various protocols used in this experiment. We have used four different protocols in the proposed system i.e., HTTP, MQTT, web sockets, SSH.