# Towards Crowdsourcing Internet of Things (Crowd-IoT): Architectures, Security and Applications
## 3 Architectures of Crowdsourcing and Proposed Crowdsourcing Internet of Things
### Proposed Architecture of Crowd IoT  
Based on the review of architectures for crowdsourcing, the architectures were proposed for crowdsourcing, but they are not specifically designed for crowdsourcing IoT. In this section, a new architecture for crowdsourcing IoT termed Crowd-IoT is proposed. Figure 6a shows an overview of the Crowd-IoT elements and the building blocks components in the various layers. Figure 6b shows the proposed Cloud-IoT architecture. There are seven layers within the Crowd-IoT: (1) Identification Layer; (2) Crowd Object Layer; (3) Communication & Network Layer; (4) Middleware Layer; (5) Crowd Computation Layer; (6) Application and User Layer; and (7) Security, Privacy and Trust Layer. The Identification Layer gives a distinctive identity to each object within the Crowd-IoT architecture. For mobile crowdsourcing, mobile numbers are assigned to a specific subscriber station in a phone network. The mobile numbers could be either global or local. A global number begins with a country code defined by ITU-T. Local numbers can be extended by providing global uniqueness when calling outside the local area. The Crowd Object Layer gathers crowdsensing data from the IoT objects and sensing elements and sends/forwards the data onto a central server/cloud storage for information processing. In the traditional IoT, these data and object sources would be captured from sensing devices such as RFID tags, embedded, mobile and wearable sensors. The role of the communication and network layer is to provide network connectivity to the various  
Figure 4: Generic architecture of decentralized crowdsourcing [22]. Figure 5: The architecture of fog-based temporal-spatial crowdsourcing [38]. devices and components within the mobile crowdsourcing system. There are various communication networks in mobile crowdsourcing that can be utilized, such as Wi-Fi, WSNs, cellular technologies, and vehicle networks (e.g., VANETs). Figure 6: Elements and architecture for proposed Crowd-IoT. (**a**) Crowd-IoT elements; (**b**) Crowd-IoT architecture. One of the challenges of mobile crowdsourcing IoT is the requirement to handle multiple devices that can produce heterogeneous and different data types. For the challenge of heterogeneous data sources, one of the possible solutions is to have a middleware platform in the crowdsourcing architecture for information exchange and collaboration among the devices. Within the architecture of Crowd-IoT, the middleware layer provides a software layer between the network communications, operating system, and applications. As a result, our Crowd-IoT architecture will enable the efficient use of mobile crowdsourcing IoT in several applications in a smart city environment with numerous heterogeneous data sources. Such applications includes smart transportation, smart health, smart homes, and so on. The middleware service components can be classified as functional or non-functional. Examples of functional middleware components include resource discovery, data, and code management; and examples of non-functional requirements include components for scalability, reliability, and security. The Crowd Computation Layer serves as the processing layer in the Crowd-IoT architecture and contains the hardware and software components. Figure 7 shows the architecture and components of the crowd computation and processing layer. The layer consists of five components: (1) Crowd Context Database, (2) Big Data and Processing, (3) Task manager, (4) Contribution manager, (5) Workflow Management. The Application and User Layer in the Crowd-IoT provides services to the service providers and end-users for crowdsourcing applications. Examples of applications for service providers include allowing requesters to initiate the tasks and retrieve results through web-based or mobile technologies. Examples of applications for end-users include  
Figure 7: Architecture and components of crowd computation layer. allowing entities (e.g., individuals, vehicles) to send requests to the server/platform and receive the results.