A Comprehensive Framework for Analyzing IoT Platforms: A Smart City Industrial Experience
Abstract
:1. Introduction
2. Research Background
- The user interface layer provides interactivity between users and platform services via providing dashboards, reports, message boards, 3D spaces, and 2D maps so that users can get access services based on the subject of interest and send queries.
- The application layer places software systems such as mission-critical business systems, e.g., ERP (enterprise resource planning), mobile applications, business analytics applications/reports, back-end services, and management and monitoring applications. The layer enables users to receive data from smart objects, perform processing algorithms over the data, and send the results back to users or other objects.
- The service layer provides IoT backend services and application programming interfaces (APIs) required for end-to-end application development that are positioned in the application layer. E-government services, traffic control, citizen security, water conservation, social services, and environmental protection are examples of services. Adequately designed, the layer reduces the cost and effort for implementing applications for the application layer.
- The data layer keeps data from various data sources floating across the operational environment such as real-time data from sensors, geospatial data, historical data, and social media.
- The infrastructure layer provides hardware for data processing, storing, computing, and interconnectivity among data centers, servers, and smart objects via different network communication protocols.
3. Research Approach
3.1. Design
3.2. Domain Expert Review
3.3. IoT-PA
4. Evaluation Framework
4.1. Functional-Related Criteria
- (i)
- Resource discovery. This criterion examines if an IoT platform can identify objects connecting to the network in both automatic and manual ways. The criterion can be assessed by checking the platform if it provides mechanisms such as publish/subscribe, semantic match-making, or virtual objects to enable users in discovering objects or subscribe to the network.
- (ii)
- Data accumulation. A primary function of an IoT platform is to collect data from various sources such as applications, sensors, social networks, video surveillance systems, or city maps, which are installed across all layers or connected to the platform network. This criterion is to check the availability of mechanisms in the platform for the data collection from the environment.
- (iii)
- Data cleaning. All generating data in the environment may not be equally of interest to the users. This criterion checks the capability of a platform in providing mechanisms for users to extract data that meet their requirements, e.g., air temperature after a specific threshold value or comparison of measured values.
- (iv)
- Data storing. IoT platforms voluminously collects various types of both structured, e.g., user profiles, as well as unstructured data, e.g., video streams implying the need to have multiple types of data storage technologies to save data. In an IoT platform, typically, two types of relational SQL-based and No-SQL data storages are used. Relational databases are a common option if atomicity, consistency, isolation, durability constraints, and support for complicated queries are required. In addition, No-SQL databases like Hadoop, CouchDB, CouchBase, MongoDB, and HBase support mechanisms for horizontal scalability, memory and distributed index, and dynamic data schema modification.
- (v)
- Data analysis. An IoT platform is expected to provide sophisticated mechanisms for performing classification, mining, regression, and clustering over both stream and batch data. The platform capability in utilizing enabling technologies such as Apache Storm, Apache Spark, or Hadoop MapReduce is an indicator of this criterion support.
- (vi)
- Query processing. This criterion examines the availability of languages provided by the platform enabling users to send and perform queries over data sources connected to the platform.
- (vii)
- Generating meta-data. Meta-data, which can be associated with different hardware and software components of an IoT platform, is a means to facilitate the classification, identification, and retrieval of the data. Generating meta-data can be conducted, for instance, by users where a platform may enable annotating the components as well as platform internally during data collection and processing. This criterion considers mechanisms to handle meta-data generation in a platform.
- (viii)
- Data visualization. Providing data visualization in a variety of form is an important function of an IoT platforms which can be examined in terms of availability of icons, diagrams, and tables to represent data analysis results and signals to users.
- (ix)
- Continuous monitoring. This criterion examines if the platform provides mechanisms to monitor environmental fluctuations and ensure the performance of its components. To support this criterion, a platform needs to provide supports to keep the track of platform components’ behavior, e.g., applications, services, smart objects, and network elements, to identify anomalies, correlations, or similar patterns of divergence. Platform’s components related to the monitoring function provide this information to other services.
- (x)
- Service composition. Different platform components may offer individual services/functionalities that can be combined to create cross-platform composite services to build complex IoT applications. This implies a need for APIs and tools for building composite services via using other existing fine-granular services.
- (xi)
- Event processing. This criterion examines if the platform has mechanisms for representation, capturing, and quickly reacting to important internal events, e.g., system events and external ones, e.g., city events, peak-time vehicle speed, and geographic events. An event is an observable change in the state of the environment, which can be triggered by platform components, e.g., smart objects. Event processing in the platform should be handled in real-time so that users receive accurate and timely platform services.
4.2. Non-Functional-Related Criteria
- (i)
- Security. In an operational environment where smart objects dynamically join and leave the network, robust security mechanisms should be addressed across all layers in a way that newly joining smart objects to the network still satisfy the expected platform security requirements.
- (ii)
- Privacy. Checking this criterion is to ensure if personal user data in interactions with the platform is properly protected and restricted from unauthorized access during saving and processing.
- (iii)
- Interoperability. The need for interoperability support is ubiquitous across all the different layers of an IoT platform to enable interaction of heterogeneous software and hardware components, e.g., smart objects, services, and applications, to ensure service delivery to users. One form of required interoperability is related to data as the platform interacts with a variety of heterogeneous data formats coming from different sources when collecting, storing, and processing data. The interoperability is also needed at the application and service layers where different platforms may need to interact with services to identify and react swiftly to events and trends. This criterion should be assessed for this layer if end users need support for service composition from heterogeneous components. The user may be interested in the platform support of exchanging and processing heterogeneous events coming from multiple sources. Moreover, the interoperability criterion should be investigated in the view of the infrastructure layer providing hardware for data storage and computation as well as physical interconnectivity among data centers, servers, networks, and devices. As presented in Table 4, in assessing platform compliance to this criterion, the user can check mechanisms and techniques such as ontologies, semantic annotation, semantic web services, linked data standards, and virtual objects in a platform, which are commonly used to address interoperability in software systems. A key principle in addressing interoperability is to define abstraction levels supported by interfaces/APIs to connect disparate technologies.
- (iv)
- Reusability. A platform’s services should be designed in such a way that users can reuse them for other purposes than the one originally offered. For example, a platform performs some fixed functions for data collection, filtering, saving, and processing. The end-user may need to modify and reuse these functions to build custom-specific applications or composite services for different applications deployed on the same platform. As shown in Table 4, for example, a platform can support the reusability criterion if it provides fine granular services (e.g., microservices) and APIs with minimum functions instead of large and coarse-grained services.
- (v)
- Reliability. Reliability is the extent to which an IoT platform keeps its expected functions with the required precision. At the application/service layer, this criterion is meant as the capability of the platform to predict, detect, and fix unforeseen failures if they occur in its components to continue their operations. One can realize the support for this criterion through mechanisms such as replicating and distributing platform components over different servers. The criterion can be subjective in terms of the data layer. The data coming from sensors might be noisy and abnormal which affects the derived data analysis results. Due to reasons such as a low battery or broken repeater, a sensor may report a temperature that is out of the expected range or may stop reporting altogether. From the data reliability point of view, a platform needs to provide mechanism for data anomaly detection, reconciliation, semantic consistency, and normalization.
- (vi)
- Recoverability. This criterion is to check the existence of mechanisms across different layers of a platform which restore components to a correct state to continue their operations after experiencing an unexpected incidence leading to failure.
- (vii)
- Availability. This criterion investigates implemented mechanisms in the platform to guarantee the expected percentage of time in which the platform’s services/data are in operation and accessible when required to use. The same mechanisms such as component replications, distributions, and fault resilience that are accommodated for the platform reliability can also be equally applied to improve availability. For instance, once a platform component fails to continue service provisioning, an alternative component should start working that service.
- (viii)
- Extensibility. This criterion, which concerns with the application and service layers, refers to the extent to which a platform’s services are easy to be extended to new functionalities with minimum modifications. Adherence to the extensibility criterion is required to support continuous changes in requirements of users.
- (ix)
- Adaptability. Dynamic capability of a platform to adapt to new settings by swapping or combining its components is necessary to respond to frequent changes occur in the environment. The adaptability criterion can be supported in a platform by providing the learning ability in components to acquire knowledge from the environment and to dynamically reconfigure or optimize themselves to new situations.
- (x)
- Scalability. Without degrading the quality criteria, the platform should be able to operate effectively when there is an increase in (a) received requests from users (b) volume of data collected, stored, and processed, and (c) number of components, e.g., smart objects interacting with the platform. If the platform cannot process requests within a threshold, more resources, e.g., adding new servers, should be allocated to the platform components to maintain the expected rate of response time. To realize the scalability, IoT platforms leverage enabling technologies such as cloud computing, data analytics, and microservices. Therefore, the evaluation of this criterion depends on the availability of mechanisms such as vertical and horizontal scalability in these technologies.
- (xi)
- Performance. This criterion is to check the existence of designed mechanisms, e.g., effective processing algorithms, to guarantee the best possible response time, i.e., task completion time, and throughput, i.e., the number of processed requests per time unit.
- (xii)
- Usability. This criterion evaluates the quality of a user’s experience in interacting with the platform’s services. This criterion assesses how easy and simple it is to understand, control communications, get information, and interpret presented information by the platform. The criterion can be checked at the different levels of architecture layer, for example the simplicity of smart object configuration, wherever a user can interact with one.
- (xiii)
- Configurability. A platform should provide mechanisms for setting its functions, services, interfaces, and connecting smart objects to operate and communicate in a specific way at a certain point in time. The configurability, which may be, for example, setting sensors, congestion threshold parameters, or service priority, happens in two stages of development and execution. The former is related to configure platform layers before a user starts interacting with the platform, whilst the latter is related to a run-time reconfiguration/self-reconfiguration capability of the platform in dynamic assembling or disassembling of its components to guarantee QoS. This criterion is important to assess since deploying platform components on different infrastructures may demand different security or performance requirements.
- (xiv)
- Mobility. In the dynamic environment of platform operation, components like smart objects change their locations and move from a platform to another platform which can be at the level of suburb, state, city, or country. This criterion is to check if the platform provides adequate support for the safe movements of smart objects without the degradation of other non-functional requirements, specifically security.
- (xv)
- Efficiency. A platform is expected to provide effective resource management and energy consumption in its components. Internal resource management concerns with mechanisms defined in the platform to keep a record of execution of threads, track of available and utilizing resources, resource allocation algorithms, task scheduling, and performance information. In addition, at the application and physical layers, the data collection, storage, and processing functions should be resource efficient as they are typically battery powered. Furthermore, the external resource management is related to the platform support for the extensive data collection about energy consumption from houses, buildings, the number of installed devices, electric consumption, water consumption, and gas consumption.
- (xvi)
- Maintainability. IoT platforms need to respond to frequent run-time changes in their hardware and software components. The maintainability is the ease with which its component can be modified to change or add new capabilities, correct defects, and improve other non-functional requirements. As such, platform maintenance should not be difficult and costly in fulfilment of new business requirements. Applying proper and adequate design principles such as low coupling, high cohesion, and separation concerns in platform architecture and interacting components aids maintainability. Likewise, clear and detailed documentation of the architecture, e.g., in diagrams or formal specifications, facilitates handling changes to components.
5. Application of Framework
5.1. Case Study 1: Single-Platform Analysis
“My questions revolve around the maturity of platform architectures, i.e., the ROSE project, which is positioned to be a template and a test case for IoT-based smart city architecture. How does the ROSE architecture stack up against developing smart city platform architecture standards? What are the pragmatic compromises to be made to accommodate real-world implementations today? …. there were no explicit architectural requirements for ROSE”.
5.2. Case Study 2: Multi-Platform Analysis
5.2.1. AHP Procedure
5.2.2. Example Scenario
6. Discussion
6.1. Research Implications
6.2. Research Limitations
6.3. Related Work
7. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
Appendix A
Literature Source Used to Develop the Framework Evaluation Criteria | ||||
ID | Authors and Title | Acronym | Source | Year |
[S1] | Eduardo Santana, Zambom Felipe, et al., “Software platforms for smart cities: Concepts, requirements, challenges, and a unified reference architecture” | RASCP | ACM Computing Surveys | 2017 |
[S2] | Riccardo Petrolo, Valeria Loscri, et al., “Towards a Smart City based on Cloud of Things, a survey on the smart city vision and paradigms” | VITAL | IEEE | 2014 |
[S3] | Bin Cheng, Salvatore Longo, et al., “Building a Big Data Platform for Smart Cities: Experience and Lessons from Santander” | CiDAP | IEEE | 2015 |
[S4] | Zaheer Khan, Ashiq Anjum, et al., “Cloud Based Big Data Analytics for Smart Future Cities” | - | IEEE/ACM | 2013 |
[S5] | Jayavardhana Gubbi, Rajkumar Buyya, et al., “Internet of Things (IoT): A Vision, Architectural Elements, and Future Directions” | - | Elsevier | 2013 |
[S6] | Cisco, “The Internet of Things Reference Model” | Cisco | Cisco | 2014 |
[S7] | Federico Ciccozzi, Crnkovic Ivica, “Model-driven engineering for mission-critical IoT systems” | MC-IoT | IEEE | 2017 |
[S8] | Sebastian Lange, Andreas Nettsträter, et al., “Introduction to the architectural reference model for the Internet of Things” | IoT-ARM | IoT-A | 2013 |
[S9] | John Soldatos, Nikos Kefalakis, “OpenIoT: Open source Internet-of-Things in the cloud” | OpenIoT | Springer | 2015 |
[S10] | Jasmin Guth, Uwe Breitenbucher, et al., “Comparison of IoT Platform Architectures: A Field Study based on a Reference Architecture” | - | IEEE | 2016 |
[S11] | Ivan Ganchev, Zhanlin Ji, et al., “A Generic IoT Architecture for Smart Cities” | - | IEEE | 2014 |
[S12] | “FIWARE (also called Open & Agile Smart Cities (OASC))” | FIWARE/OASC | FIWARE Community | 2014 |
[S13] | Ignasi Vilajosana, Jordi Llosa, et al., “Bootstrapping smart cities through a self-sustainable model based on big data flows” | - | IEEE | 2013 |
[S14] | Kohei Takahashi, Shintaro Yamamoto, et al., “Design and implementation of service API for large-scale house log in smart city cloud” | Scallop4SC | IEEE | 2012 |
[S15] | Zaheer Khan, Ashiq Anjum, et al., “Towards cloud based big data analytics for smart future cities” | - | Springer Open Journal | 2015 |
[S16] | Catherine E. A. Mulligan, Magnus Olsson, “Architectural Implications of Smart City Business Models: An Evolutionary Perspective” | - | IEEE | 2013 |
[S17] | George Kakarontzas, Leonidas Anthopoulos, et al. “A Conceptual Enterprise Architecture Framework for Smart Cities, A Survey Based Approach” | EADIC | IEEE | 2014 |
[S18] | David Díaz Pardo de Vera, Álvaro Sigüenza Izquierdo, et al. “A Ubiquitous sensor network platform for integrating smart devices into the semantic sensor web” | Telco USN-Platform | Sensors | 2014 |
[S19] | Sotiris Zygiaris, “Smart City Reference Model: Assisting Planners to Conceptualize the Building of Smart City Innovation Ecosystems” | SCRM | Springer | 2012 |
[S20] | Dennis Pfisterer, Kay Romer, “SPITFIRE: Towards a Semantic Web of Things” | SPITFIRE | IEEE | 2011 |
[S21] | Nam K Giang, Rodger Lea, et al., “On Building Smart City IoT Applications: a Coordination-based Perspective” | - | ACM | 2016 |
[S22] | Rong Wenge, Xiong Zhang, et al., “Smart City Architecture: A Technology Guide for Implementation and Design Challenges” | - | IEEE | 2014 |
[S23] | Paul Fremantle, “A reference architecture for the internet of things” | WSO2 | WSO2 | 2015 |
[S24] | Andrea Zanella, Senior Member, “Internet of Things for Smart Cities” | Padova | IEEE | 2014 |
[S25] | Wolfgang Apolinarski, Umer Iqbal, et al., “The GAMBAS Middleware and SDK for Smart City Applications” | GAMBAS | IEEE | 2014 |
[S26] | Nader Mohamed, Jameela Al-Jardoodi, “SmartCityWare: A Service-Oriented Middleware for Cloud and Fog Enabled Smart City Services” | SmartCityWare | IEEE | 2017 |
[S27] | Jiong Jin, Jayavardhana Gubbi, “An information framework for creating a smart city through internet of things” | Noise mapping | IEEE | 2013 |
[S28] | Panagiotis Vlacheas, Vera Stavroulaki, et al., “Enabling Smart Cities through a Cognitive Management Framework for the Internet of Things” | - | IEEE | 2013 |
[S29] | Aditya Gaura, Bryan Scotneya, et al., “Smart City Architecture and its Applications based on IoT” | MLSC | Elsevier | 2015 |
[S30] | Zhihong Yang, Yufeng Peng, et al., “Study and Application on the Architecture and Key Technologies for IOT” | - | IEEE | 2011 |
[S31] | Miao Wu, Ting-lie Lu, et al. “Research on the architecture of Internet of things” | TMN | IEEE | 2010 |
[S32] | Henrich C. Pohls, Vangelis Angelakis, “RERUM: Building a Reliable IoT upon Privacy- and Security- enabled Smart Objects” | RERUM | IEEE | 2014 |
[S33] | ZAEI, “Reference Architecture Model Industry 4.0 (RAMI 4.0)” | RAMI | ZAEI | 2015 |
[S34] | Pieter Ballon, Julia Glidden, “EPIC Platform and Technology Solution” | EPIC | EPIC | 2013 |
[S35] | Kenji Tei, Levent G¨urgen, “ClouT: Cloud of Things for Empowering the Citizen Clout in Smart Cities” | ClouT | IEEE | 2014 |
[S36] | Arup, “Solutions for Cities: An analysis of the feasibility studies from the Future Cities Demonstrator Programme” | TSB | Smart City Strategies A Global Review-ARUP | 2013 |
[S37] | Liviu-Gabriel Cretu, Alexandru Ioan, “Smart Cities Design using Event-driven Paradigm and Semantic Web” | EdSC | Inforec Association | 2012 |
[S38] | Luca Filipponi, Andrea Vitaletti, “Smart City: An Event Driven Architecture for Monitoring Public Spaces with Heterogeneous Sensors” | SOFIA | IEEE | 2010 |
[S39] | Dan Puiu, Payam Barnaghi, et al., “CityPulse: Large Scale Data Analytics Framework for Smart Cities” | CityPulse | IEEE | 2016 |
[S40] | ISO, “ISO/IEC 30182: Smart city concept model—Guidance for establishing a model for data interoperability” | SCCM | ISO (International Organization for Standardization) | 2017 |
[S41] | Open Geospatial Consortium, “OGC Smart Cities Spatial Information Framework” | OGC | Open Geospatial Consortium | 2015 |
[S42] | Roland Stühmer, Yiannis Verginadis, “PLAY: Semantics-Based Event Marketplace” | PLAY | Springer | 2013 |
[S43] | M. Nitti, “IoT Architecture for a Sustainable Tourism Application in a Smart City Environment” | - | Hindawi | 2017 |
[S44] | Carlos Costa, Maribel Yasmina Santos, “BASIS: A Big Data Architecture for Smart Cities” | BASIS | IEEE | 2016 |
[S45] | BSI, “Smart city framework–Guide to establishing strategies for smart cities and communities” | BSI | British Standards Institution | 2014 |
[S46] | S. J. Clement, D. W. McKee, “Service-Oriented Reference Architecture for Smart Cities” | SORASC | IEEE | 2017 |
[S47] | Arundhati Bhowmick, Eduardo Francellino, et al., “IBM Intelligent Operations Center for Smarter Cities Administration Guide” | - | IBM | 2012 |
[S48] | Andy Cox, Peter Parslow, et al., “ESPRESSO (systEmic Standardisation apPRoach to Empower Smart citieS and cOmmunities)” | ESPRESSO | ESPRESSO community | 2016 |
[S49] | Arthur de M. Del Esposte, Fabio Kon, “InterSCity: A Scalable Microservice-based Open Source Platform for Smart Cities” | InterSCity | Scitepress digital library | 2017 |
[S50] | Raffaele Giaffreda, “iCore: a cognitive management framework for the internet of things” | iCore | Springer | 2013 |
[S51] | Andreas Kamilaris, Feng Gao, “Agri-IoT: A Semantic Framework for Internet of Things-enabled Smart Farming Applications” | Agri-IoT | IEEE | 2016 |
[S52] | Yong Woo Lee, Seungwoo Rho, “U-City Portal for Smart Ubiquitous Middleware” | U-City | IEEE | 2010 |
[S53] | Chayan Sarkar,Akshay Uttama Nambi S. N., “DIAT: A Scalable Distributed Architecture for IoT” | DIAT | IEEE | 2015 |
[S54] | Gilles Privat, et al. “Towards a Shared Software Infrastructure for Smart Homes, Smart Buildings and Smart Cities” | SmartSantander | - | 2014 |
[S55] | Tom Collins, “A Methodology for Building the IoT” | Collins | - | 2014 |
[S56] | Frank Puhlmann, Dirk Slama, “An IoT Solution Methodology” | Ignite | - | Not stated |
[S57] | C. Savaglio, “A Methodology for the Development of Autonomic and Cognitive Internet of Things Ecosystems” | ACOSO-Meth | - | 2017 |
[S58] | G. Fortino, R. Gravina, et al., “A Methodology for Integrating Internet of Things Platforms” | INTER-METH | IEEE | 2018 |
[S59] | Marcello A. Gómez Maureira, Daan Oldenhof, et al., “ThingSpeak–an API and Web Service for the Internet of Things” | ThingSpeak | World Wide Web | 2011 |
[S60] | Venticinque Salvatore, Alba Amato, “A methodology for deployment of IoT application in fog” | BET | Springer | 2019 |
[S61] | Amany Sarhan, “Cloud-based IoT Platform: Challenges and Applied Solutions” | Galliot | IGI Global | 2019 |
[S62] | Alvaro Luis Bustamante, Miguel A. Patricio, “Thinger.io: An Open Source Platform for Deploying Data Fusion Applications in IoT Environments” | Thinger.io | Sensor | 2019 |
[S63] | Fernando Terroso-Saenz, Aurora González, et al., “An open IoT platform for the management and analysis of energy data” | IoTEP | Elsevier | 2019 |
Appendix B
Appendix C
References
- Fahmideh, M.; Zowghi, D. An exploration of IoT platform development. Inf. Syst. 2020, 87, 101409. [Google Scholar] [CrossRef]
- Shin, D.-H. Conceptualizing and measuring quality of experience of the internet of things: Exploring how quality is perceived by users. Inf. Manag. 2017, 54, 998–1011. [Google Scholar] [CrossRef]
- Li, L.; Rong, M.; Zhang, G. An Internet of Things QoE evaluation method based on multiple linear regression analysis. In Proceedings of the 2015 10th International Conference on Computer Science & Education (ICCSE), Cambridge, UK, 22–24 July 2015; IEEE: Piscataway, NJ, USA, 2015; pp. 925–928. [Google Scholar]
- Bergman, J.; Olsson, T.; Johansson, I.; Rassmus-Gröhn, K. An exploratory study on how Internet of Things developing companies handle User Experience Requirements. In International Working Conference on Requirements Engineering: Foundation for Software Quality; Springer: Berlin/Heidelberg, Germany, 2018; pp. 20–36. [Google Scholar]
- Henver, A.; March, S.T.; Park, J.; Ram, S. Design science in information systems research. MIS Q. 2004, 28, 75–105. [Google Scholar]
- Myers, M.D.; Venable, J.R. Management A set of ethical principles for design science research in information systems. Inf. Manag. 2014, 51, 801–809. [Google Scholar] [CrossRef] [Green Version]
- Bass, L.; Clements, P.; Kazman, R. Software Architecture in Practice; Addison-Wesley Professional: Boston, MA, USA, 2003. [Google Scholar]
- Komninos, N. The Architecture of Intelligent Cities; IET: London, UK, 2006. [Google Scholar]
- Al-Hader, M.; Rodzi, A.; Sharif, A.R.; Ahmad, N. Smart city components architicture. In Proceedings of the Computational Intelligence, Modelling and Simulation, CSSim’09, International Conference on 2009, Brno, Czech Republic, 7–9 September 2009; IEEE: Piscataway, NJ, USA, 2019; pp. 93–97. [Google Scholar]
- Dobrica, L.; Niemela, E. A survey on software architecture analysis methods. Softw. Eng. IEEE Trans. 2002, 28, 638–653. [Google Scholar] [CrossRef] [Green Version]
- Bastidas, V.; Helfert, M.; Bezbradica, M. A Requirements Framework for the Design of Smart City Reference Architectures. In Proceedings of the 51st Hawaii International Conference on System Sciences, Hilton Waikoloa Village, HI, USA, 3–6 January 2018. [Google Scholar]
- Santana, E.F.Z.; Chaves, A.P.; Gerosa, M.A.; Kon, F.; Milojicic, D.S. Software platforms for smart cities: Concepts, requirements, challenges, and a unified reference architecture. ACM Comput. Surv. (CSUR) 2017, 50, 78. [Google Scholar] [CrossRef]
- Kitchenham, B.; Brereton, O.P.; Budgen, D.; Turner, M.; Bailey, J.; Linkman, S. Systematic literature reviews in software engineering—A systematic literature review. Inf. Softw. Technol. 2009, 51, 7–15. [Google Scholar] [CrossRef]
- Kitchenham, B.; Linkman, S.; Law, D. DESMET: A methodology for evaluating software engineering methods and tools. Comput. Control Eng. J. 1997, 8, 120–126. [Google Scholar] [CrossRef]
- Taromirad, M.; Ramsin, R. An appraisal of existing evaluation frameworks for agile methodologies. In Proceedings of the 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ecbs 2008), Belfast, UK, 31 March–4 April 2008; IEEE: Piscataway, NJ, USA, 2008; pp. 418–427. [Google Scholar]
- Fahmideh, M. [Online: Auxiliary Review Material] A Comprehensive Framework for Analyzing IoT Platforms: A Smart City Industrial Experience. Available online: https://www.researchgate.net/publication/350579905_Auxiliary_material_-_a_list_of_IoT-specific_architecture_evaluation_criteria (accessed on 1 April 2021).
- Wohlin, C. Guidelines for snowballing in systematic literature studies and a replication in software engineering. In Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, London, UK, 13–14 May 2014; ACM: New York, NY, USA, 2014; p. 38. [Google Scholar]
- Kakarontzas, G.; Anthopoulos, L.; Chatzakou, D.; Vakali, A. A conceptual enterprise architecture framework for smart cities: A survey based approach. In Proceedings of the e-Business (ICE-B), 2014 11th International Conference on 2014, Vienna, Austria, 28–30 August 2014; IEEE: Piscataway, NJ, USA, 2014; pp. 47–54. [Google Scholar]
- da Silva, W.M.; Alvaro, A.; Tomas, G.H.; Afonso, R.A.; Dias, K.L.; Garcia, V.C. Smart cities software architectures: A survey. In Proceedings of the 28th Annual ACM Symposium on Applied Computing, Coimbra, Portugal, 18–22 March 2013; ACM: New York, NY, USA, 2013; pp. 1722–1727. [Google Scholar]
- Al-Fuqaha, A.; Guizani, M.; Mohammadi, M.; Aledhari, M.; Ayyash, M. Internet of things: A survey on enabling technologies, protocols, and applications. IEEE Commun. Surv. Tutor. 2015, 17, 2347–2376. [Google Scholar] [CrossRef]
- Triantaphyllou, E. Multi-criteria decision making methods. In Multi-Criteria Decision Making Methods: A Comparative Study; Springer: Berlin/Heidelberg, Germany, 2000; pp. 5–21. [Google Scholar]
- Saaty, T.L. The Analytic Hierarchy Process: Planning, Priority Setting, Resources Allocation; M cGraw-Hill: New York, NY, USA, 1980. [Google Scholar]
- van Looy, A.; de Backer, M.; Poels, G.; Snoeck, M. Choosing the right business process maturity model. Inf. Manag. 2013, 50, 466–488. [Google Scholar] [CrossRef]
- Ngai, E. Selection of web sites for online advertising using the AHP. Inf. Manag. 2003, 40, 233–242. [Google Scholar] [CrossRef]
- Liu, D.-R.; Shih, Y.-Y. Integrating AHP and data mining for product recommendation based on customer lifetime value. Inf. Manag. 2005, 42, 387–400. [Google Scholar] [CrossRef]
- Benlian, A. Is traditional, open-source, or on-demand first choice? Developing an AHP-based framework for the comparison of different software models in office suites selection. Eur. J. Inf. Syst. 2011, 20, 542–559. [Google Scholar] [CrossRef]
- Crawford, G. The geometric mean procedure for estimating the scale of a judgement matrix. Math. Model. 1987, 9, 327–334. [Google Scholar] [CrossRef] [Green Version]
- Gill, A.Q.; Chew, E. Configuration information system architecture: Insights from applied action design research. Inf. Manag. 2019, 56, 507–525. [Google Scholar] [CrossRef]
- Clements, P.; Kazman, R.; Klein, M. Evaluating Software Architectures: Methods and Case Studies; Addison-Wesley Reading: Boston, MA, USA, 2002. [Google Scholar]
- Lassing, N.; Bengtsson, P.; van Vliet, H.; Bosch, J. Experiences with ALMA: Architecture-level modifiability analysis. J. Syst. Softw. 2002, 61, 47–57. [Google Scholar] [CrossRef]
- Dolan, T.J. Architecture Assessment of Information-System Families. Ph.D. Thesis, Department of Technology Management, Eindhoven University of Technology, Eindhoven, The Netherlands, 2002. [Google Scholar]
- Ahmad, A.; Fahmideh, M.; Altamimi, A.B. Software Engineering for IoT-Driven Data Analytics Applications. IEEE Access 2021, 9, 48197–48217. [Google Scholar] [CrossRef]
- Garg, S.K.; Versteeg, S.; Buyya, R. A framework for ranking of cloud computing services. Future Gener. Comput. Syst. 2013, 29, 1012–1023. [Google Scholar] [CrossRef]
- Khajeh-Hosseini, A.; Sommerville, I.; Bogaerts, J.; Teregowda, P. Decision support tools for cloud migration in the enterprise. In Proceedings of the Cloud Computing (CLOUD), 2011 IEEE International Conference on 2011, Washington, DC, USA, 4–9 July 2011; IEEE: Piscataway, NJ, USA, 2011; pp. 541–548. [Google Scholar]
- Guth, J.; Breitenbücher, U.; Falkenthal, M.; Fremantle, P.; Kopp, O.; Leymann, F.; Reinfurt, L. A Detailed Analysis of IoT Platform Architectures: Concepts, Similarities, and Differences. In Internet of Everything; Springer: Berlin/Heidelberg, Germany, 2018; pp. 81–101. [Google Scholar]
- Guth, J.; Breitenbücher, U.; Falkenthal, M.; Leymann, F.; Reinfurt, L. Comparison of IoT platform architectures: A field study based on a reference architecture. In Proceedings of the Cloudification of the Internet of Things (CIoT), Paris, France, 23–25 November 2016; IEEE: Piscataway, NJ, USA, 2016; pp. 1–6. [Google Scholar]
- Kyriazopoulou, C. Smart city technologies and architectures: A literature review. In Proceedings of the Smart Cities and Green ICT Systems (SMARTGREENS), 2015 International Conference on 2015, Lisbon, Portugal, 20–22 May 2015; IEEE: Piscataway, NJ, USA, 2015; pp. 1–12. [Google Scholar]
- Choi, J.; Kim, S. An AHP Approach toward Evaluating IoT Business Ecosystem in Korea. In Proceedings of the 29th European Regional Conference of the International Telecommunications Society (ITS), Trento, Italy, 1–4 August 2018. [Google Scholar]
- Huang, Y.-L.; Sun, W.-L. An AHP-Based Risk Assessment for an Industrial IoT Cloud. In Proceedings of the 2018 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C), Lisbon, Portugal, 16–20 July 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 637–638. [Google Scholar]
- Mahdi, F.; Didar, Z. IoT Architectures: An analytical review. In Proceedings of the 9th IEEE Annual Information Technology, Electronics and Mobile Communication Conference, Vancouver, BC, Canada, 1–3 November 2018; IEEE: Piscataway, NJ, USA, 2018. [Google Scholar]
- Kondratenko, Y.; Kondratenko, G.; Sidenko, I. Multi-criteria decision making for selecting a rational IoT platform. In Proceedings of the 2018 IEEE 9th International Conference on Dependable Systems, Services and Technologies (DESSERT), Kyiv, Ukraine, 24–27 May 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 147–152. [Google Scholar]
- Contreras-Masse, R.; Ochoa-Zezzatti, A.G. Selection of IoT Platform with Multi-Criteria Analysis: Defining Criteria and Experts to Interview. Res. Comput. Sci. 2019, 148, 9–19. [Google Scholar] [CrossRef]
- Silva, E.M.; Jardim-Goncalves, R. IoT Ecosystems Design: A Multimethod, Multicriteria Assessment Methodology. IEEE Internet Things J. 2020, 7, 10150–10159. [Google Scholar] [CrossRef]
MC1 (Simplicity) | A criterion should be clear and easy to understand by IoT architecture assessors. |
MC2 (Preciseness) | A criterion should be detailed, unambiguous, and measurable to highlight the similarities and differences between different instances of an IoT architecture. |
MC3 (Minimum overlapping) | Criteria should be distinct and have a minimum dependency or likeness to each other. |
MC4 (Soundness) | Criteria should make sense for IoT experts and have a semantic link to IoT domain. The soundness of criteria can be assessed if it is mandatory or only desirable. |
MC5 (Generality) | Criteria should be sufficiently generic and be applicable to evaluate all IoT architecture regardless of underlying implementation technologies. |
MC6 (Consistency) | Criteria should not have a conflict with each other and contrast. |
MC7 (Balance) | Criteria should consider as many aspects of an IoT architecture design. |
MC8 (Measurability) | A criterion should provide a means as possible to measure it either or both in qualitative or quantitative ways. It should be noted that our framework inclines to be on qualitative measurements as quantities were not realistic at the early stage of IoT architecture design. |
MC9 (Comprehensiveness) | Though it is unrealistic, criteria should be inclusive as much as possible and cover all important facets relevant to IoT architecture design with respect to the evaluation objectives. |
SQ1 | “Platform”, “Architecture” OR “Reference” OR “Reference architecture” OR “Layer” OR “Reference Model” OR “Layered architecture” OR “Stack” OR “Concept” OR “Model”, OR “Platform” AND [SQ2 OR SQ3 OR SQ4] |
SQ2 | “Smart city” OR “IoT” OR “Smart IoT” |
SQ3 | “Evaluation” OR “Assessment” OR “Framework” OR “Methodology” OR “Approach” |
SQ4 | “Requirements” OR “Challenges” OR “Concerns” OR “Issues” OR “Needs” OR “Quality” |
Criterion | Leading Evaluation Question(s) for Measuring Criterion | Layers | ||||
---|---|---|---|---|---|---|
UL | AL | SL | DL | PL | ||
Resource discovery | Does the platform provide the mechanisms (e.g., service discovery protocols, electronic product codes (EPC), and ubiquitous codes (uCode)) to dynamically and automatically identify new resources (e.g., devices, sensors, actuators, services, and applications that connect to the smart city network) at any time? | × | √ | √ | × | √ |
Data accumulation | Does the platform provide mechanisms for continuous data collection from various objects for processing across all layers? | × | √ | √ | × | √ |
Data cleaning | Does the platform provide mechanisms for identifying and correcting inaccurate or incomplete data before storing them into data storage? | × | √ | √ | × | √ |
Data storing | Does the platform use proper data storage mechanisms for storing various structured and unstructured data collected from the environment? | × | × | × | √ | × |
Data analysis | Does the platform implement mechanisms for identifying useful knowledge from data and predicting the environment’s behavior? | × | × | √ | × | × |
Query processing | Does the platform provide a language so that user is enabled to send their query over data sources connected to the platform for data retrieval? | × | √ | √ | × | √ |
Generating meta-data | Does the platform provide mechanisms to store data and meta-data associated with objects, users, applications, and SLAs for better management and reflection on platform performance? | × | √ | √ | × | √ |
Data visualization | Does the platform provide proper visualizations such as diagrams, tables, charts, and icons for presenting data analysis results to users? | √ | × | × | × | × |
Continuous monitoring | Does the platform define mechanisms for internally monitoring and assessing its components to detect violations from quality factors across all the layers? Does the platform have mechanisms for externally monitoring the environment to detect unexpected behaviors? | × | √ | √ | √ | √ |
Service composition | Does the platform provide APIs to enable users to compose individual services offering by the platforms or other applications with respect to their needs? | × | √ | √ | √ | √ |
Event processing | Does the platform define mechanisms for responding to internal events happening inside the platform components? Does the platform define mechanisms for responding to external events happening in the environment? | × | √ | √ | √ | √ |
Criterion | Leading Evaluation Question(s) for Measuring Criterion | Layers | ||||
---|---|---|---|---|---|---|
UL | AL | SL | DL | PL | ||
Security | Does the architecture implement mechanisms to keep the security of data and objects across the platform layers? | √ | √ | √ | √ | √ |
Does the platform limit the data acquisition from users’ device and smart objects to keep security and privacy of users? | √ | √ | √ | √ | √ | |
Does the platform enable a user to define customized smart objects discoverability at different levels? These levels can be, for example, public where an object can be discovered to all users, private where an object is discoverable by the object owner, and friends where the object is discoverable by a friend key provided by the virtual object. | × | × | × | × | √ | |
Does the platform provide mechanisms and techniques for a safe exchange of data and interactions among technical objects across layers? | √ | √ | √ | √ | √ | |
Does the platform define an access control list on routers, packet filters, firewalls, and network-based intrusion detection systems across layers? | × | × | × | × | √ | |
Does the platform define authentication and authorization mechanisms? | √ | √ | √ | √ | √ | |
Does the platform define encryption/decryption mechanisms across layers? | √ | √ | √ | √ | √ | |
Does the platform define functional decomposition (separating functional components) to avoid propagating security issues to other platform components? | × | √ | √ | × | × | |
Privacy | Does the platform provide mechanisms such as encryption/decryption for protecting the personal data of users such as citizens or organizations using the platform or data collected from them by the platform? Does the platform have proper authentication and authorization mechanisms to protect unauthorized access? | √ | √ | √ | √ | √ |
Interoperability | Does the platform provide integration mechanisms, protocols, or middleware such as HTTP, MQTT (message queuing telemetry transport which is a broker-based publishing/subscribing), and AMQP (advanced message queuing protocol) for integrating applications? | × | √ | × | × | × |
Does the platform use mechanisms to exchange and process heterogeneous events coming from multiple sources at different levels of the system? | × | √ | √ | √ | √ | |
Does the platform have mechanisms, e.g., ontologies, to unify interoperability points to collect, process, and generate data from/to diverse data sources, legacy devices, and objects? | × | × | × | √ | × | |
Does the platform provide mechanisms such as web service, virtual object, representational State Transfer/ReST to interact with other IoT platforms in order to call/use their services/data? | × | × | √ | × | × | |
Does the platform provide mechanisms to identify heterogeneous resources in a network such as sensor networks, IP networks? | × | × | × | × | √ | |
Does the platform provide the necessary interfaces to facilitate invoking its services? | × | × | √ | × | × | |
Does the platform provide open APIs to avoid vendor lock-in issues? | × | √ | √ | √ | √ | |
Reusability | Does the platform have templates of objects/services to be used for other scenarios different from the default? | × | √ | √ | × | × |
Does the platform have the necessary interfaces to hide service incompatibilities and enable the reuse of calls by its services? | × | √ | √ | × | × | |
Does the platform allow modifying and reusing its core functions/services for applications? | × | √ | √ | × | × | |
Does the platform apply architecture design principles such as loose coupling, modularity, or layering to facilitate reuse? | × | √ | √ | × | × | |
Does the platform have simple and small services instead of coarse grain and composite services? | × | √ | √ | × | × | |
Can the platform operate across multiple connectivity protocols? | × | √ | √ | √ | √ | |
Reliability | Does the platform have mechanisms to be resilient to failures in order to address service availability in the case of a fault in its components? | × | √ | √ | √ | √ |
Does the platform ensure users of the success rate and is being error-free in the provided services? | × | √ | √ | √ | √ | |
Does the platform’s architecture define redundant servers or replication mechanisms to avoid the single point of failure? | × | √ | √ | × | √ | |
Does the platform have mechanisms such as anomaly detections for reliability and accuracy of data collected from a variety of sources which can be noisy? | × | × | × | × | × | |
Does the platform have mechanisms to ensure that new smart objects and components joining the network are compatible together to avoid the unreliability of the platform? | × | × | × | × | √ | |
Recoverability | Does the platform provide mechanisms and techniques to restore to a state in which it can continue performing its functions after the occurrence of a hazard/failure? | × | √ | √ | √ | √ |
Availability | Does the platform provide mechanisms for the continuous guarantee of obtaining, storing, processing, and providing data and services to users independently of the state of underlying infrastructure? | × | √ | √ | √ | √ |
Does the platform provide component/data clustering or replication/distribution mechanisms to increase availability? | × | √ | √ | √ | √ | |
Does the platform provide redundant storage arrays e.g., RAID (redundant array of independent disks) for the data layer? | × | × | × | √ | × | |
Does the platform provide redundant physical links for the network layer? | × | × | × | × | √ | |
Does the platform provide redundant nodes, e.g., routers allowing service discovery, for PL? | × | × | × | × | √ | |
Extensibility | Does the platform apply mechanisms or techniques such as defining extension points in components’ function, interfaces, templates, or modularization principle to enable adding new objects such as sensors, datatypes, and urban contexts to itself to support new functionalities? | × | √ | √ | × | × |
Adaptability | Does the platform define mechanisms such as machine learning algorithms, rules, or policies to support the dynamic transformation from the current configuration to a new configuration or in the case of occurring disruptive events? | × | √ | √ | × | × |
Does the platform have mechanisms for incorporating upcoming functional, data, and objects to accommodate new platform configuration toward continuous improvement? | × | √ | √ | × | × | |
Scalability | Does the platform include mechanisms to effective processing algorithms to guarantee the best possible throughput of services offering to users with minimum cost? | × | √ | √ | × | × |
Performance | Does the platform include mechanisms to effective processing algorithms to guarantee the best possible throughput of services offering to users with minimum cost? | × | √ | √ | × | × |
Usability | Does the platform provide suitable and effective user interfaces such as dashboards, reports, message boards, 3D spaces, 2D maps for interaction with and presenting information to users? | √ | × | × | × | × |
Configurability | Does the platform have mechanisms for its users to change the behavior or settings of components to suit new changes? | × | √ | √ | × | √ |
Does the platform have mechanisms for the configuration of layers (vertical configuration) such as smart objects, services, network protocols, devices, switches, permissions, and user access? | × | × | × | × | √ | |
Does the platform allow users to configure support of run-time configuration of its components including adding or removing components? | × | √ | √ | × | × | |
Does the platform support mechanisms for platform configuration in relation to other external platforms (horizontal configuration)? | × | × | × | × | √ | |
Does the platform support the run-time configuration of its components including adding or removing components? | × | √ | √ | × | × | |
Mobility | Does the platform provide mechanisms for mobility protocols in the support of continuous user movement to different locations? | × | × | × | × | √ |
Efficiency | Does the platform define mechanisms to estimate energy consumption by its internal and external components? | × | √ | √ | × | √ |
Does the platform define mechanisms to predict user behaviors and elasticity demands to schedule energy and resource allocation through pricing models? | × | √ | √ | × | √ | |
Does the platform have data storage related to energy logs to store a history of energy consumption by objects? | × | × | × | √ | × | |
Does the platform log the history of its components’ operations and state of objects such as changing TV channel, switching on/off light for further analysis? | × | × | × | √ | × | |
Does the platform have data storage related to the environment to log the history of changes in the environment such as temperature, humidity, and the number of people who are typically collected by objects? | × | × | × | √ | × | |
Does the platform implement mechanisms in smart objects to address the efficient use of resources? | × | × | × | × | √ | |
Does the platform have mechanisms for service composition with respect to resource constraints of involved smart objects such as batty power? | × | × | √ | × | × | |
Maintainability | Does the platform simplify applying refinements, correcting faults to its components, or adding new functionalities/increments to the existing components via applying design principles such as low coupling, high cohesion, and separation of concerns? | × | √ | √ | × | × |
Does the platform define clear definitions of objects such as naming, icons, documentation/modelling, and interactions, as well as design principles such as modularity, less coupling, and separation of concerns, to make modifications simpler and less costly? | × | √ | √ | × | × |
Qualitative Judgment | Numerical Rating |
---|---|
X is equally preferred to Y | 1 |
X is equally to moderately preferred over Y | 2 |
X is moderately preferred over Y | 3 |
X is moderately to strongly preferred over Y | 4 |
X is strongly preferred over Y | 5 |
X is strongly to very strongly preferred over Y | 6 |
X is very strongly preferred over Y | 7 |
X is very strongly to extremely preferred over Y | 8 |
X is extremely preferred over Y | 9 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Fahmideh, M.; Yan, J.; Shen, J.; Mougouei, D.; Zhai, Y.; Ahmad, A. A Comprehensive Framework for Analyzing IoT Platforms: A Smart City Industrial Experience. Smart Cities 2021, 4, 588-622. https://doi.org/10.3390/smartcities4020031
Fahmideh M, Yan J, Shen J, Mougouei D, Zhai Y, Ahmad A. A Comprehensive Framework for Analyzing IoT Platforms: A Smart City Industrial Experience. Smart Cities. 2021; 4(2):588-622. https://doi.org/10.3390/smartcities4020031
Chicago/Turabian StyleFahmideh, Mahdi, Jun Yan, Jun Shen, Davoud Mougouei, Yanlong Zhai, and Aakash Ahmad. 2021. "A Comprehensive Framework for Analyzing IoT Platforms: A Smart City Industrial Experience" Smart Cities 4, no. 2: 588-622. https://doi.org/10.3390/smartcities4020031
APA StyleFahmideh, M., Yan, J., Shen, J., Mougouei, D., Zhai, Y., & Ahmad, A. (2021). A Comprehensive Framework for Analyzing IoT Platforms: A Smart City Industrial Experience. Smart Cities, 4(2), 588-622. https://doi.org/10.3390/smartcities4020031