Chapter 7

Using Reference Architectures for Design and Evaluation of Web of Things Systems

A Case of Smart Homes Domain

Muhammad Aufeef Chauhan,,#; Muhammad Ali Babar,    Software and Systems Section, IT University of Copenhagen, Copenhagen, Denmark
Department of Applied Mathematics and Computer Science, Technical University of Denmark, Lyngby, Denmark
Centre for Research in Engineering Software Technologies, School of Computer Science, The University of Adelaide, Adelaide, SA, Australia
#Muhammad Aufeef Chauhan is a Postdoctoral researcher at IT University of Copenhagen and Technical University of Denmark. His research interests include software architecture for distributed and cloud-based systems, security of the cloud-based system, global software development and software evolution. He can be contacted at [email protected].

Abstract

Web of Things (WoT) provides abstraction that simplifies the creation of Internet of Things (IoT) systems. IoT systems are designed to support a number of ubiquitous devices and management subsystems. The devices and subsystems can be a part of safety critical operations as well as smart management of multiple actuators that control the smart home devices. The devices and subsystems need to comply to standardized business and quality requirements of a specific IoT domain. Designing subsystems and actuators for the individual devices as independent software can result in lack of standardization, which can negatively impact the overall quality of a WoT system. Standardisation of the IoT applications and subsystems constituting a WoT system can be facilitated by providing a standardisation at the architecture level. As using Reference Architectures (RA) is a well established approach to achieve architectural standardisation, using the RA for designing IoT subsystems and WoT system can facilitate standardisation of the architecture of individual subsystems constituting a WoT system as well as standardisation of the WoT system. The aim of the research presented this chapter is to provide insight to the process of using a RA for analysis, design, evaluation and evolution of the IoT subsystems as well as a WoT system. We present a software process-based approach to use a RA for architecture design of individual IoT subsystems and then use the IoT subsystems for architecture design of a WoT system. We use a case study-based research approach to analyse application of the process for design, evaluation and evolution of the IoT subsystems and the WoT system for smart-homes domain. The applications of the presented approach is analysed with reference to case studies on security and energy management in smart homes. The results of the case studies show that (i) the IoT RA can be used for the initial design to incorporate the standardized business and quality requirements, (ii) the elements of the concrete IoT subsystems architectures can be included in the IoT RA for evolution of the RA with respect to emerging and domain specific requirements, and (iii) open discussion by including architects of all IoT subsystems to determine key business and quality requirements of IoT subsystems can play an important rule in the evaluation of the IoT subsystems as well as evolution of the IoT RA. We foresee that the presented approach can be used for the analysis, design, evaluation and evolution of the IoT subsystems and WoT system even if the detailed architecture design activities of the IoT subsystems are carried out independently.

Keywords

Reference Architecture (RA); Internet of Things (IoT); Web of Things (WoT); Architecture Quality; Architecture Evolution

Chapter Points
This chapter presents following key contributions:
• A methodology for analysis, design, evaluation and evolution of Internet of Things (IoT) subsystems and Web of Things (WoT) system using a selected IoT Reference Architecture (RA).
• An approach for analysis and evaluation of the key business requirements and quality constraints of the IoT subsystems.
• Guidelines on using architectures of the concrete IoT subsystems as a source for evolution of an IoT RA.
• A comprehensive case study on application of the presented approach for smart homes domain.

Acknowledgements

We acknowledge contribution of Software Architecture 2015 course students at IT University of Copenhagen for their participation in design and evaluation of IoT subsystems architectures for smart homes. In particular we acknowledge Henrik Buch-Larsen, Michael Poulin Mortensen and Rasmus Løbner Christensen for their contribution to Fig. 7.3; and Abdulrashid Mas'ab Mohammed, Diana Elena Giosanu, Gediminas Kucas and Vitor Dominguez Pintos for their contribution to Fig. 7.4. We also acknowledge Tan Phong Phan, a teaching staff member for the course, for his participation in evaluations of the IoT subsystems architectures and design of the WoT system architecture.

7.1 Introduction

Web of Things (WoT) aims to provide a platform for smart and connected things also referred as Internet of Things (IoT) including sensors and actuator networks, embedded devices, digitally enhanced objects and decision support systems [1]. Whilst the IoT research primarily focuses on providing connectivity in a variety of networked environments, WoT focuses on the application layer [1]. Although IoT subsystems constituting a WoT system for managing multiple IoT devices and device management systems are designed and developed by numerous independent organizations, the IoT subsystems need to operate as part of a specific WoT ecosystem (domain). Designing the IoT subsystems to manage the sensors and the devices in a manner that the IoT subsystems can comply with essential business requirements and quality constraints is not trivial. The requirements can be related to general quality of the software systems such as security of data [2] and services [3], as well as infrastructure (on which the data and services are hosted) specific quality requirements such as availability, scalability, Service Level Agreement (SLA) compliance and interoperability [4]. As different IoT subsystems constituting a WoT ecosystem can be designed and developed independently, there is a need to have a standardization mechanism that can facilitate the analysis, design, evaluation and evolution of IoT subsystems' architecture.

A Reference Architecture (RA) is used to provide either a standardisation of the concrete architectures or to propose a preliminary architecture that can be used for designing the concrete architectures [5]. A RA consist of not only different elements of the architecture in terms of architecturally significant requirements, architecture components and architecture views [6] but also consists of the process for designing, evaluating and instantiating a RA into concrete architectures [5]. As a RA encompasses a complete life cycle of instantiation of a specific type of RA into multiple concrete architectures, choosing a RA-centric approach for architectural standardisation of the IoT subsystems' architecture in a WoT system can facilitate achieving architectural quality standardisation.

In this chapter, we present a RA-centric process-based approach for analysis, design and evaluation of the multiple concrete IoT subsystems' architectures driven by a single RA. We also provide insight on how the detailed design and instantiation of the concrete IoT architectures can lead to the evolution of the RA. We have considered smart home IoT subsystems as a specific case of WoT systems for the application of the proposed approach. In particular, we have addressed the following research objectives:

• We have presented a RA-centric process-based approach that focuses on using a single RA for design of the concrete architectures of all the encompassing IoT subsystems for a given WoT system domain. The presented approach also focuses on identifying variability and evolvability points in the RA that can change and evolve with the evolution of the concrete IoT systems' architecture.

• We have analysed the benefits of participation of architects involved in concrete architecture design of IoT subsystems to streamline core business and quality requirements of the domain and corresponding architecture design tactics adopted to satisfy the requirements.

• We have demonstrated application of the proposed approach for security and devices' management (energy management) in the smart-home IoT subsystems as well as the corresponding WoT system.

The chapter is organized as follows. Section 7.2 provides details on the proposed RA-centred architecture analysis, design, evaluation and evolution approach. Section 7.3 provides details on the case study of application of the approach for designing ten IoT subsystems, which lead to design of a WoT system for smart-homes. Section 7.4 describes the related work. Section 7.5 concludes the chapter and provides insight to the experiences and lessons learned.

7.2 Architecture Design Considerations for Web of Things Systems

In the Web of Things (WoT) concepts, smart things and their associated services are fully integrated by leveraging technologies and patterns that are used to develop traditional web-based systems [1]. As a result the things and services constituting WoT has to be compliant with a core set of quality requirements. A compromise in the core quality requirements by any one of the IoT subsystems constituting a WoT system, can result in compromise on the quality of whole WoT system. Hence, it is important to consider quality in the architecture design of each of the subsystems. In this section, we first describe the key architecture quality concerns for WoT with reference to IoT. We then describe design guidelines for architecting the individual IoT subsystems using the RA and using the IoT subsystems for architecting a WoT system, strategies for evaluation of the architectures and how concrete architecture design can be used for the evolution of the RA. Fig. 7.1 shows the pictorial representation of the analysis, design, evaluation and evolution process.

Image
Figure 7.1 Architecture analysis, design, evaluation and evolution process

7.2.1 Key Architecture Quality Considerations

As things and services constituting a WoT concept operate in a composite manner, to achieve the quality in the WoT concept, all the things and services need to adhere to a core set of quality requirements. Absence of quality in software of any of the participating IoT subsystems (things or service) can negatively impact the quality of the whole WoT system. Hence it is important to select a minimum set of quality attributes that can be eligible for consideration while designing the WoT concepts. The quality attributes can be related to design-time and run-time quality of the things and services, quality of deployment infrastructure and quality of communication infrastructure. In this section, we provide an overview of the key quality attributes to be considered while designing IoT and WoT systems. The presented quality attributes can be related to each other. For example, different dimensions of security and scalability can be leveraged to achieve multi-tenancy in a WoT system.

7.2.1.1 Security

Security is a key quality attribute of every distributed system [4] and guarantees that the things and services are secured from un-authorised access, and data and messages are secured from being corrupted while transmission and are persisted according to required security parameters of a specific system. The security quality attribute for an IoT subsystem and a WoT system can be broken down into three main sub-attributes: (i) Access Control, (ii) Communication Security and (iii) Persistence Security. Access Control guarantees that things and services are accessible only by authenticated client services to protect these from unauthorised access and only the allowed level of information is revealed to the clients based upon their access level in the authorization hierarchy. Communication Security guarantees that the data and messages are encrypted while transmission so that these are protected from stealing. Persistence Security guarantees that the data is stored in an encrypted manner both by the things and by the services, and encryption keys are securely handled so that even if some of the things or services are confiscated, the data is protected from malicious use.

7.2.1.2 Availability

The WoT concepts primarily focus on the application layer [1] and require to guarantee the availability of all the composite things and services. Hence, an IoT or a WoT architecture has to ensure smooth operation of the services even if some of (i) the things and services are out of operation, (ii) the communication channels are broken or (iii) the things, services and communication channels are attacked by an insider (e.g., by any of the thing or service) or by an outside (e.g., a hacking attack or a denial of service attack [7]). Availability is also important from deployment perspective. If the things and services in IoT cannot perform the desired operation, then new things are to be activated and new service instances are to be deployed and instantiated on hosting infrastructure.

7.2.1.3 Scalability and Elasticity

Scalability and elasticity of an IoT or a WoT system is required to complement the availability. The number of active devices in an IoT system can vary and the data that is generated by the devices can increase or decrease. As a result, the corresponding server side services need to be scaled up or down. There can be a large number of things and services in a WoT system as well as the users that interact with the things and services. A highly scalable and elastic infrastructure such as Infrastructure as a Service (IaaS) cloud can be viable option to achieve scalability and elasticity [4] in the WoT systems.

7.2.1.4 Reliability

Guaranteeing reliability of the things and services in an IoT or a WoT system can play a vital role in adoption of the system. Reliability requires that a specific configuration of the things and services in a WoT system can be able to complete the desired operations and the produced results are correct. Therefore, an IoT or a WoT system should allocate services to the things in an IoT mesh according to the requirements of the operations and should have redundancy mechanisms in place to guarantee variability of the produced results. Fault tolerance approaches such as Byzantine Fault Tolerance model can be used for reliability verification [8].

7.2.1.5 Multi-tenancy

Multi-tenancy is an important characteristic of the system and requires providing isolation among the data and services belonging to different tenants (user groups). Multi-tenancy is handled in different manners including: (i) Access control based on the tenants' roles that they can perform in a system and the type of data they can access [9,3]. (ii) Sharing services among the tenants having similar quality constraints [10]. (iii) Scheduling tasks on the resources that can achieve the desired quality [11]. (iv) Periodic monitoring of the services for their suitability to the tenants' requirements [12]. An IoT or a WoT system has to comply with the multi-tenancy requirements.

7.2.1.6 Interoperability

Interoperability quality enables a software system to work with other software systems [13]. Interoperability of things and services in a WoT system is important to facilitate their composition and provisioning. Interoperability is also critical from infrastructure perspective that is used to host the services in a WoT system. For example, if heterogeneous IaaS cloud infrastructures are used to host the services, their capability to host the IoT subsystems constituting a WoT system is important so that an appropriate IaaS cloud, which matches the security and reliability constraints can be chosen. A number of architecture tactics can be adopted in the IoT subsystems architectures and the corresponding WoT system architecture to support interoperability. For example, proxies and services' facades can hide the internal details of how the subsystems are deployed and migrated among IaaS clouds during their life-cycle [14]. Autonomous conversion of information associated with an IoT service semantics into service syntax can facilitate services' interoperability [15]. Adopting a layered architecture approach can be useful to compartmentalise the IoT subsystems' services and to provide interoperability among the services belonging to similar layers of the federated clouds [16]. A strategy to delegate tasks to the optimal services configuration and dynamically allocating hosting IaaS cloud resources can facilitate the process of achieving interoperability [17].

7.2.2 Concrete Architecture Design

An architecture design process guides the analysis and design of a software architecture [18]. The architecture analysis and design process for WoT systems needs to consider all possible things and services for a specific domain for which a particular WoT system is envisioned. As a WoT system aims to provide re-usability and adaptability of the IoT subsystems (things and services), the design process needs to focus on providing a standardization. A starting point to have a standardised system design is to analyse design of the IoT subsystems by using a common reusable architecture template, which is known as a Reference Architecture (RA) [5]. There are two main stages for WoT architecture design: (i) selecting an appropriate RA that is compliant with desired quality requirements and (ii) using the selected RA for analysis and design of the concrete IoT subsystems' architectures.

7.2.2.1 Selecting an Appropriate Reference Architecture

While selecting the RA as a tool kit for standardization that is to be used as a baseline for analysis and design of the concrete IoT subsystem architectures, the first step is to analyse the essential quality requirements of the domain. Once the essential quality requirements are determined, all of the candidate RAs should be analysed for (i) whether a RA under consideration support the essential quality requirements or (ii) whether the RA supports addition of new components or modification of existing components corresponding to a specific quality attribute without impacting the overall quality of the architecture (for scenarios) when there is no direct support for a specific quality attribute in the RA. A RA providing a closest match with respect to the above mentioned conditions can be selected for the analysis and design of the IoT subsystems' architectures.

7.2.2.2 Using the Selected RA for Analysis and Design of Concrete IoT Subsystems and WoT System

Once a RA is selected, it can guide the analysis and design of the concrete architectures of the IoT subsystems, which then can lead to the concrete architecture of a WoT system. First step after selecting a RA is to analyse it for its adoption for the given IoT domain with respect to the core business and quality requirements. The analysis includes identification of the RA's subsystems and components that can be incorporated in the concrete architecture. There can be three cases for the analysis: (i) Identification of the RA elements (subsystems and components) that can be incorporated in the concrete architecture without tailoring and modification. (ii) Identification of the RA components that can be incorporated in the concrete architectures but require tailoring. (iii) Identification of the elements that are not presented in the RA but are needed because of the IoT domain and critical quality requirements.

Based upon the analysis, individual IoT subsystems can be designed using the IoT RA. Then the IoT RA along with the additional elements that are incorporated in each of the IoT subsystems, are used for the design of the concrete WoT system's architecture, which can facilitate interaction of things and services across multiple IoT subsystems. While designing additional elements (which are not presented in the RA) for the concrete architectures, existing design patterns [19] and architecture styles as well as architecture patterns can be used [20].

7.2.3 Concrete Architecture Evaluations

Once the IoT subsystems' architectures are designed, the next step is to evaluate the architecture for business, functional and quality requirements of the selected IoT domain. Software architecture evaluation guarantees that the system design is compliant to the desired quality. A number of software architecture evaluation methods are proposed including Architecture Trade-off Analysis Method (ATAM) [21], Software Architecture Analysis Method (SAAM) [22] and Quality-driven Architecture Design and Analysis Method (QADA) [23]. ATAM, SAAM and QADA can be used to perform specific architecture evaluation activity e.g., identifying risks and non-risks of architecture design decisions, identifying sensitivity and trade-off points, performing trade-off analysis for conflicting design decisions and quality driven analysis of the architecture for its quality completeness [2123]. However, for architecture evaluation of the IoT subsystems, a specialized meta architecture evaluation strategy is required.

We propose the use of the RA as a baseline for evaluation and involving stakeholders (architects who are involved in the design of the related IoT subsystems) in the architecture evaluation process. The architecture evaluation sessions need to be organized in such a manner that architecture is evaluated by not only the stakeholders of an IoT subsystem that is being evaluated but also by the stakeholders of other IoT subsystems. Consequently, the architecture of the WoT system should be enhanced based on the evaluation results of the IoT subsystems. Tailored ATAM, SAAM and QADA methods can be used to perform specific evaluation activities. The IoT subsystems' architectures should be distributed among the participants of the sessions well in advance. The feedback from the evaluation sessions is needed to be analysed in a joint evaluation debriefing session to make sure that the design decisions made during multiple architecture evaluation sessions are harmonious. We also propose the use of discussion forums to share design decisions across evaluation teams to mitigate the risk of conflicting evaluation decisions.

7.2.4 Reference Architecture Evolution

The RA used as a baseline for the concrete architecture design needs to be evolved to cater the emerging requirements of a specific IoT domain. Albeit a clear distinction should be made between generic RA elements and domain specific RA elements. The additional elements (as described in Section 7.2.2.2) from the concrete WoT architecture and each of the concrete IoT architectures should be extracted and added into the RA. The RA evolution facilitates the design of new concrete IoT subsystems constituting a WoT system and facilitates their evaluation as the RA already includes findings from the evaluations of the previous IoT subsystems (design and evaluation activities of the RA's concrete instances). However, only the elements associated with the domain's business or quality requirements should be included in the RA. Elements related to functional requirements should not be included in the RA unless these are related to core domain functionality.

7.3 A Case Study on Application of the Approach in Smart Homes Domain

We have used the architecture design considerations presented in Section 7.2 for design of a concrete WoT system's and multiple IoT subsystems' architectures for smart homes domain. A case study was conducted with participation of thirty five master level course students and 3 course instructors. The students were divided into group of at least three participants each and were given a task to design a concrete IoT subsystem's architecture for a particular dimension of smart home domain (e.g., smart home's security or safety) using a given IoT reference architecture. The students were given a brief description of the smart homes domain and were asked to choose a specific subsystem as per their preference and knowledge of the domain. Whereas, the instructors participated in design of WoT architecture that can facilitate interaction of multiple smart home subsystems via web-based protocols. All the participating students had a bachelor degree in information technology related discipline and had an industrial experience with design and development of web-based systems. Two of the course instructors had PhD in software engineering and one course instructor had a master degree in software engineering. The course instructors had extensive experience with architecture design and development of distributed and web-based software systems.

7.3.1 Streamlining Business and Quality Requirements

First step of the concrete IoT subsystems' architectures design is to streamline core business and quality requirements of a specific IoT subsystem. As the students group were given a choice to select an IoT subsystem domain (e.g., smart home's security or safety) for the concrete design of the architecture, they chose different aspect of a smart home. Each group had been assigned a number from 1 to 10 (e.g., Group 1). Table 7.1 shows the different IoT subsystems core functionality chosen by each group. The subsystems can correspond to core business requirements of the smart home IoT. As some groups selected more than one aspects of smart home domain (e.g., Group 5 chose management of different appliances in smart homes and safety management in case of an incident of fire), such groups are shown corresponding to multiple subsystems in Table 7.1.

Table 7.1

IoT Subsystems and Quality Attributes

IoT Subsystems Groups IDs Quality Attributes
Devices and Appliances Management Group 1, Group 4, Group 5, Group 6, Group 7, Group 8, Group 9, Group 10 Performance, Usability, Reliability, Security, Modifiability, Interoperability, Multi-tenancy, Availability, Scalability, Elasticity
Fire and Safety Management Group 2, Group 3, Group 5 Availability, Reliability, Scalability, Performance, Failure Recovery, Interoperability, Modifiability, Security
Home Access and Security Group 3, Group 6, Group 7, Group 8, Group 9 Interoperability, Availability, Modifiability, Performance, Security, Reliability, Usability
Monitoring and Surveillance Group 7, Group 10 Security, Reliability, Performance, Usability, Elasticity, Interoperability, Multi-tenancy

Streamlining quality requirements in individual IoT subsystems is important so that a collective set of quality requirements for a WoT system (to facilitate an individual IoT subsystem's management) can be determined. A two faceted approach was adopted to determine a set essential quality requirements. At first stage, the individual groups identified the quality requirements specific to the IoT subsystem they selected for the architecture design. At second stage, a public discussion forum was used to discuss the quality requirements of the IoT subsystems that two and more of the groups considered for the design. Table 7.1 shows the finally agreed quality requirements for different IoT subsystems. It is clear from Table 7.1 that core quality requirements (Security, availability, scalability/elasticity, Reliability, Multi-tenancy and Interoperability) presented in Section 7.2.1 were considered for all the IoT subsystems.

7.3.2 Selecting and Using an IoT Reference Architecture for Preliminary Architecture Design

The next step is to select an IoT Reference Architecture (RA) that provides support and flexibility to design concrete IoT architectures by incorporating desired quality attributes (characteristics) in the RA and by tailoring the RA in terms of adding additional components and excluding undesired components from a concrete IoT architecture. Our analysis of the RAs for IoT revealed that Bauer et al. [24] have presented a comprehensive RA for IoT domain. We selected their RA and enhanced it based on our domain knowledge and analysis of the related IoT concrete architectures. We used the enhanced architecture as a baseline for design and analysis of the concrete architectures for IoT subsystems and subsequently for WoT architecture design, which can manage individual IoT subsystems. Fig. 7.2 shows the enhanced IoT RA based upon the one presented in [24]. The project groups used the enhanced RA as a baseline to design their concrete IoT subsystems' architectures.

Image
Figure 7.2 Internet of Things (IoT) reference architecture – an enhanced version of [24]

The RA shown in Fig. 7.2 presents a layered view of the subsystems and components of the IoT RA. The Devices Layer represents IoT devices that are a part of an IoT system. The Network Layer represents communication protocols and components that support integration among the devices as well as integration between the devices and IoT Middleware. The IoT Middleware represents components and subsystems used for managing IoT processes, security handling and deployment of the resources on underlying Hardware Infrastructure Layer. The Service Layer represents back-end IoT services as well as management services. The Interface Layer provides interfaces to the IoT services and management services. The Application Layer and Administrative Graphical User Interfaces Layer include management applications and front-end interfaces.

7.3.2.1 Using IoT RA Architecture for Design of Concrete IoT Subsystems for Smart Homes

After selecting the IoT RA, the students groups were asked to use the RA as a baseline for the design of the concrete IoT architectures for the specific business and quality requirements (as elaborated in Section 7.3.1). Following design strategies were adopted for designing the concrete architectures.

• IoT RA layers were analysed to identify main layers of the IoT subsystems' architectures.

• The components of the IoT RA that could be directly adopted in the concrete IoT architectures were analysed and adopted. For example, Authentication and Authorisation components from the Security layer were adopted directly into the concrete architectures.

• The components that required tailoring or specialisation were modified according to the requirements of the target concrete architectures. For example, Communication layer of the IoT RA is used to identify the components for end-to-end communication, network communication and hop-to-hop communication. These components were needed to have specializations for the specific types of communication protocols that were to be used by the concrete IoT architectures.

• Additional components were added for the layers of the IoT RA that were only providing a skeleton of the architecture. For example, components for the specific services were added into IoT Services layer and components for managing and deploying services were added into Virtualization Management layer.

• To incorporate the desired quality attributes in the concrete IoT architectures, multiple architectures styles and patterns [20] as well as design patterns [19] were used.

Fig. 7.3 shows a representative concrete IoT system architecture for management of the devices in the smart homes designed to achieve business and quality requirements related to devices management in the smart homes. As shown in the figure, the layers and components from the IoT RA have been tailored and modified. Devices layer provides interfaces to connect to and receive information from different types of the sensors. This layer also provides interfaces through which devices and actuators in smart homes can be controlled. Communication layer includes components for Http and TCP/IP, Mobile communication (such as 4G) and Sensor Framework (to accommodate device specific communication protocols). Other layers of the architecture interacts with the devices via Communication layer.

Image
Figure 7.3 IoT system architecture for devices management and home security

Security layer includes components for Authentication, Authorization, Integrity verification, Confidentiality handling of the data and secured collection of data from the devices (via Device Management component). IoT Service layer includes components corresponding to specific devices in the smart homes. For example, House Access Control component manages access to the home by the householders, Climate Control components control indoor temperature and Pet Feeding components put food and water into pet food utensils. Virtual Entity layer manages devices (turning the devices on and off), data and event logging, and recovery of system configuration if some of the devices malfunction. IoT Process Management layer handles definition and execution of the rules and processes for management of the smart homes. Management layer provides Graphical User Interfaces (GUIs) and tools, which users can use to manage and control the devices.

Fig. 7.4 shows deployment configuration of the IoT subsystem in a distributed arrangement, in which the components are hosted on in-house infrastructure as well as on external hosting platforms to adequately handle system failure scenarios. The devices and sensors can be connected to only in-house components. The communication between internally hosted and externally hosted components is filtered through a firewall to protect the locally hosted subsystem from undesired access. Connection to the external systems (e.g., online stores for ordering of the items) is managed by externally deployed components to minimize internal system exposure to the external world.

Image
Figure 7.4 IoT system distribution and interaction

A number of architecture and design patterns were used to achieve quality attributes. Table 7.2 lists commonly used architecture and design patterns in different IoT subsystems.

Table 7.2

Design Tactics Used to Achieve the Quality Attributes

Quality Attributes Design Tactics
Performance Distributed Components, Pipes and Filters, Prioritized Message Queues and Data Indexes
Security Secured Proxies, Authentication, Authorization, and Session Tokens
Modifiability Adapter, Facade, Loosely-coupled Layers/Components, Layered Architecture, Components/Services-based Architecture and Model View Controller (MVC) Pattern
Availability Components' Redundancy and In-house hosting of Critical System Components
Reliability Monitor Analyse Plan Execute (MAPE) Pattern, Redundancy of Components and Data, and Hybrid Cloud Infrastructure for hosting Systems
Scalability Data Input Queues, Hybrid Deployments and Load Balancing
Auditing Event Logs
Multi-tenancy Tenant-specific Publisher/Subscriber Architecture, and Tenant Profiling and Management
Interoperability Components' Facade and Broker Pattern

7.3.2.2 Web of Things Architecture to Manage Constituting IoT Subsystems

Contrary to concrete IoT smart home architectures, which focus on providing different types of smart home services, connectivity with the respective devices and sensors; Web of Things (WoT) architecture focuses on the application layer [1]. Fig. 7.5 shows a high level view of the WoT system architecture designed to support smart home IoT subsystems. The WoT system architecture was designed using concrete IoT subsystem architectures and abstracting the application layer. The WoT system architecture focuses on provisioning of the IoT subsystems' components and services on the suitable hosting infrastructure, provide interfaces for interaction of the subsystems with external systems, managing Quality of Service (QoS) [4] parameters that are used for provisioning and composing IoT subsystems to provision a system configuration that can satisfy desired business, functional and quality requirements. The concrete IoT subsystems can either be hosted using a WoT system or can be managed using a WoT system.

Image
Figure 7.5 Web of things system architecture

The WoT architecture presented in Fig. 7.5 was designed following separation of concerns and layered architecture approaches [20]. The architecture has three interface layers named as IoT Devices Management Interfaces, External System Interaction Interfaces and WoT System Management Interfaces. IoT Devices Management Interfaces are used to receive input from the sensors of an IoT system and controlling devices and actuators. For example, in an IoT subsystem used for temperature control in a smart home, the hosted components and services can receive temperature readings from temperature sensors and can turn on heating or cooling system accordingly. External System Interaction Interfaces are used to connect hosted IoT subsystem services with external systems. For example, in an IoT smart home subsystem for security management, the subsystem interacts with emergency police services and notify home owners in case of a break-in or burglary. WoT System Management Interfaces are used to define tenants, their desired QoS parameters and specify Service Level Agreements (SLAs) [4] of the IoT subsystem.

The core WoT system components are classified into two categories: (i) the components that are responsible for IoT subsystems selection and their composition for desired QoS parameters and (ii) the components that are responsible for the provisioning of the subsystems' components/services on dedicated or virtualized infrastructure. Profiler and Matchmaker component maintains profiles of all the components/services of the hosted IoT subsystems using Profiling Ontology Manager, autonomously compose components/services and build on-the-fly interfaces using Autonomous Service Composer and Facade Builder. Ontology meta-models and service selection ontologies [25] can be used for profiling of the components/services. The interfaces are exposed via IoT Services Facade and Sensors or Actuators Data Input/Controller Interfaces intermediate layers. Multi-tenant QoS Manager is used to maintain desired QoS parameter for each specific tenant so that the services can be composed and provisioned accordingly. Deployment and Execution Manager is used to deploy the IoT subsystem components on either dedicated or virtualized infrastructure (e.g., IaaS or PaaS clouds [4]). Deployment and Execution Manager can be tailored using the RA for services selection and deployment on the cloud [25]. For cases in which some components/services of an IoT system are partially deployed on in-premise infrastructure and partially on off-premise infrastructure, the locally hosted and remotely hosted components can interact via IoT Services Facade.

7.3.3 Evaluation of IoT Subsystems Architectures

Evaluation of the software architectures plays a critical role to verify quality of a software system. A number of approaches have been proposed to carry out specific software architecture evaluation activities including but not limited to ATAM [21], SAAM [22] and QADA [23] as discussed in Section 7.2.3. As the aim of the IoT subsystem architecture design activity was to carry out design of the IoT subsystems corresponding to different high-level business requirements and quality requirements, the architecture evaluation activities had to verify compliance of the IoT subsystems to agreed upon standardized quality requirements (as discussed in Section 7.3.1) and design choices (as discussed in Section 7.3.2.1) that are not contradictory to each other. Hence, the evaluation activities are to be carried out in a way that the stakeholders involved in the design of an IoT subsystem can have maximum insight into the design of the other IoT subsystems. The following subsections describe the details on the evaluation activities and how the IoT subsystems evaluation can lead to the evaluation of WoT system architecture as well as evolution of the IoT RA. An overview of the evaluation process is presented in Fig. 7.6.

Image
Figure 7.6 Evaluation process overview

7.3.3.1 Organization of the Evaluation Sessions

Evaluation sessions for the evaluation of the IoT subsystems' architectures were organized in a way that stakeholders involved in the design of an IoT architecture covering one part of the domain (business requirements), evaluate IoT architecture designed to satisfy another part of domain (business requirements). For example, as presented in Table 7.1, Group 1 focused on IoT subsystem for management of devices and appliances in smart homes to have efficient utilization of electricity and water, Group 2 focused on IoT subsystem for safety management and fire extinguishing process in case of a fire incident, and Group 3 focused on IoT subsystem for access control and security of the smart homes. Group 1's architecture was evaluated by Group 2, and Group 2's architecture was evaluated by Group 3 so that Group 2 can have insight to both of the device management and security subsystems. The architecture design documents were shared with the group who was to evaluate the architecture before the evaluation session. For example, Group 1's architecture documentation was shared with Group 2 and Group 2's architecture documentation was shared with Group 3.

7.3.3.2 Architecture Evaluation Activities

Architecture evaluation activities consisted of three stages. (i) Before the evaluation session, the groups prepared a short architecture evaluation questionnaire on quality attributes considered in the architecture design, key architecture design decisions, strengths and weaknesses of the design decisions, sensitivity and trade-off points, and risks and non-risks in the architecture [26]. (ii) During the evaluation sessions, the group whose architecture was evaluated presented the architecture while the group who was evaluating the architecture asked questions based upon their initial preparation as well as from integration perspective of their own architecture. During the architecture presentation, design artefacts were analysed for evaluation of the IoT subsystem architectures as well some new artefacts specific to architecture evaluation such as architecture utility trees [21] were generated to present architecture design decision corresponding to quality attributes. During the architecture evaluation sessions, sensitivity points, trade off points, architecture risks and architecture non risks were discussed. (iii) After the individual architecture evaluation sessions, a joint session was conducted in which each group briefly presented their IoT subsystem architecture, quality attributed those were considered in the architecture and feedback it received during the individual architecture evaluation session. Each group member also prepared a written report on the evaluation of the architecture that the group member had evaluated in the architecture evaluation session. The report was shared with teaching staff, who was responsible for design and analysis of the WoT architecture. Table 7.3 shows commonly reported missing quality requirements, risky design decisions, sensitivity and trade-off points, and common improvements suggested in the IoT subsystem architectures during the evaluation sessions.

Table 7.3

Summary of the Points Discussed in the Evaluation Sessions

Dimension Details
Risks

Using same communication protocol for inter-system and intra-system communication can make failure safety procedures difficult.

Using broker pattern can result in selection of services not fully compliant with QoS constraints.

Data storage on centralised persistence units is a risk for availability.

Communication overhead of using Publisher/Subscriber pattern.

Sensitivity and Trade-off Points

Maintaining Facade for continuously evolving services.

Using Singleton pattern instead of Message broker pattern for multi-tenant session management.

Negative impact of layered pattern on performance.

Trade-off between performance and modifiability by using either publisher scriber or layered pattern.

Misuse of Pipes and Filter pattern where Broker pattern can be used.

Trade-off is needed for Security versus Performance.

Commonly Missing Quality Attributes

Safety on Failure.

System availability when Internet connection is not available.

IoT RA Shortcomings Architecture and design patterns for implementing different elements of the IoT RA are not specified in the IoT RA.

7.3.3.3 Improvements in IoT Subsystems Architectures

All the groups improved IoT subsystems architectures of their respective subsystems based upon the changes suggested during architecture evaluation sessions. While improving the architectures, the findings from the individual evaluation sessions as well as joint follow up evaluation session were considered (as described in Section 7.3.3.2). A change log was maintained by each group to track (i) what changes had been made in the architecture, (ii) what was the source that triggered the change (i.e., feedback from individual evaluation session or finding from joint session) and (iii) traces to the relevant place of the architecture documentation where changes had been made.

7.3.4 Evolution of Web of Things System and Internet of Things Reference Architecture

The improved architecture artefacts generated as a result of architecture evaluation of IoT subsystems were used for improvements in the WoT system architecture and evolution of the IoT RA. Because architecture of WoT system was designed based on the IoT subsystems (as described in Section 7.2.2.2), the newly added components were included in the WoT system and modified components were changed. The concrete IoT subsystem architectures can also lead to the evolution of the selected IoT RA for a specific type of domain. A large-scale empirical study on challenges with designing and using RAs have revealed that unavailability of the details on design decisions and how to materialize the decisions using architecture styles and patterns can lead to problems while using the RA for concrete architecture design [27]. Same challenge was also reported by the teams who were designing IoT subsystems architectures using the IoT RA (as discussed in Section 7.3.3.2). Hence, including architecture design decisions rationale and corresponding architecture and design patterns in the IoT RA can facilitate its adoption. For example, including architecture and design patterns (presented in Table 7.2) in the IoT RA (presented in Fig. 7.2) can facilitate its adoption for smart homes domain. However, variability points in the RA architecture should be considered while doing so to keep generic elements of the RA and domain specific elements of the RA distinguishable.

7.4 Related Work

Since the inception of the software architecture [26], a number of methods have been proposed for architecture design. Most prominent of these methods are Attribute Driven Design method [28], Siemens Four Views method, Rational Unified Process [6], Business Architecture Process and Organization and Architectural Separation of Concerns method [18]. All these methods have three common activities: architecture analysis, architecture synthesis and architecture evaluation [18]. Architecture analysis and synthesis activities include identifying architecturally significant requirements, developing architecture scenarios, designing architecture elements using architecture patterns and representing architecture using multiple views [6]. Generic architecture evaluation methods include Architecture Trade-off Analysis Method (ATAM) [21], Software Architecture Analysis Method (SAAM) [22] and Quality-driven Architecture Design and Analysis (QADA) method [23]. These methods focus on evaluating software architectures with respect to specific quality attributes by evaluating architecture strengths and weaknesses, sensitivity and tradeoff points, and completeness of a given architecture.

Other than generic architecture design methods, the methods for designing and evaluating specific technology paradigms have also been proposed. The methods for Service Oriented Architectures (SOA) focus on transforming system elements in to software services, communication among the services, and exception handling and fault recovery strategies [2931]. The methods for cloud-based systems focus on satisfying Quality of Service (QoS) requirements (e.g., availability, security and safety), incorporating cloud specific quality requirements (e.g., multi-tenancy and cloud-interoperability) and selecting appropriate cloud resources or cloud-hosted services that satisfy Service Level Agreements (SLAs) [4,32].

The increase in the complexity of the software systems has raised the need to have methods for reusable architecture solutions. Hence, the RAs design and analysis methods are devised [5]. A RA focuses on capturing generic business and architecture requirements and corresponding architectural representations. For example, a RA for cloud-based tools focuses on tools selection, tools provisioning, providing semantic integration among the tools and raising awareness of the operations that are performed using the integrated suite of tools [25]. However, using a RAs to design concrete architectures and evolving the RAs as the domain for which the RA is designed evolves, is a challenging undertaking [27]. The research presented in this chapter has attempted to bridge this gap by proposing an analysis and design approach on top of the existing approached.

The related work on architectures for WoT focus on discovery, selection, provisioning, integration, interoperability and management of the things and services in a WoT system. Guinard et al. [33] have proposed a Service Oriented Architecture (SOA) to support integration of services in an Internet of Things (IoT) system. The proposed architecture consists of two tiers: one tier can be deployed on the local premise and other tier can be deployed on a cloud-based infrastructure. The local tier facilitates integration with the devices with help of the local proxies. The data received from the devices is sent to the cloud-based infrastructure. The cloud infrastructure monitors all the incoming requests and delegates the requests to the services assigned to handle the requests after analysis of the nature and type of the requests. Akribopoulos et al. [34] have proposed an architecture to support integration of things in a WoT System with the help of small programmable objects. The data from the IoT devices is delegated to the programmable objects using a centralized controller. The controller provides proxies for integration with the client devices and authenticate all the incoming requests. The controller also uses web services to expose the interfaces for accessing the devices and the programmable objects. Mrissa et al. [35] have proposed an avatar-based infrastructure for the WoT. The infrastructure maintains package repositories for end user applications, functionality services and appliance drivers, and facilitate a WoT system's composition for varying user requirements.

Some of the related work focus on providing solutions for addressing the challenges specific to IoT architectures. Guinard et al. [36] have proposed a resource oriented architecture to support integration among the devices using smart gateways and RESTful interfaces. The proposed architecture facilitates direct interaction among the web clients and the IoT devices by abstracting the communication protocols of the IoT devices. Gronli et al. [37] have proposed a layered architecture for managing the things in a WoT system. The architecture is consisted of interface, management, service and application layers. Mainetti et al. [38] have proposed an architecture for visual composition of the services in a WoT system. The proposed architecture abstracts the wireless sensor network using a proxy server (web socket) and provides interfaces for the visual designer. Xu et al. [39] have presented a SOA for IoT based upon the industries best practices. The SOA for IoT is consisted of sensing, network, service and interface layers. These layers correspond to different elements of a WoT system. Yashiro et al. [40] have presented an IoT architecture for embedded appliances. The architecture puts a Constrained Application Protocol (CoAP) in the middle of end user applications and IoT censor hardware. The CoAP provides concrete communication mechanisms for the constrained networks. Zhou et al. [41] have proposed a cloud-based IoT architecture for dynamic service composition. The architecture is consisted of hardware, infrastructure, platform, service composition middleware and application layers.

Whilst the related work on WoT architecture focus on describing detailed architectures to manage different aspect of a WoT system, the research presented in this chapter is focused on how elements from standardized reference architectures (which are designed using a number of concrete IoT or WoT architectures) can be used for designing a specific type of a WoT system.

7.5 Conclusions and Lessons Learned

In this chapter, we suggested using a Reference Architecture (RA) centred approach for the detailed analysis, design, evaluation and evolution of the Internet of Things (IoT) and Web of Things (WoT) systems. After discussing the key architecture quality attributes for designing IoT and WoT systems (i.e., security, availability, scalability, reliability, multi-tenancy and interoperability), we argued that selection of the RA for concrete IoT system design should be based upon the RA's support for the desired quality attributed or its ability to support addition of architectural elements that can support the desired quality attributes. We have proposed to directly use the selected RA for design of the concrete IoT systems (i.e., using RA as a baseline for designing IoT systems ) and indirectly use the RA for design of concrete WoT system (i.e., using IoT systems as a baseline for designing WoT systems). Concrete IoT architectures can be evaluated using existing software architecture evaluation methods and the common components from the concrete architectures can be included into the RA to have a domain-specific representation of the RA (e.g., for smart home domain). We have also shown applicability of the proposed approach for design and evaluation of ten smart home IoT subsystems architectures and a corresponding WoT system architecture. In this chapter, we have presented application of the proposed approach for IoT and WoT systems domain, however the approach is generic and can be applied on other domains.

We have made a number of observations while applying the approach for smart homes domain as follows. If different subsystems of an IoT system are being designed by independent teams, it is important to streamline core quality requirements for all the IoT subsystems so that conflicting and contradictory architectural design decisions can be avoided. Using a core set of quality requirements in the subsystems and using discussion forums that are accessible to all teams can be a good practice in this regard. Considering the generic nature of the RAs, the RAs always need to be tailored for adoption in a specific domain. Hence, the selected RA should be flexible to accommodate components specific to functional requirements as well as additional quality requirements. Contrary to using a RA directly for analysis and design of WoT system for IoT subsystems, using concrete IoT architectures as a baseline for WoT architecture can provide a better opportunity for analysis of the common application components and their inclusion in the WoT system. Maintaining a log of all the design decisions, and architecture patterns and design patterns used in the concrete IoT subsystems' design can facilitate not only design of the IoT subsystem but also evolution of the RA for future use in similar systems. Organization of the individual evaluation sessions for different IoT subsystem in a way that ensures maximum participation of the teams involved in designing other subsystems can lead to common understanding of the domain. Maintaining variability points in a RA when it is evolved by incorporating domain specific elements from the concrete IoT subsystems can guarantee separation of the generic RA elements and domain specific RA elements.

We foresee that the presented approach can be used for design and evaluation of the complex WoT systems, and can be beneficial for researchers and practitioners. In the future we plan to conduct more case studies on usage of the reference architectures for other IoT and WoT domains to analyse effectiveness of the proposed approach.

References

[1] D. Guinard, V. Trifa, F. Mattern, E. Wilde, From the internet of things to the web of things: resource-oriented architecture and best practices, In: Architecting the internet of things. Springer; 2011:97–129.

[2] F. Yahya, V. Chang, R.J. Walters, G.B. Wills, Security challenges in cloud storages, In: 2014 IEEE 6th international conference on cloud computing technology and science (CloudCom). IEEE; 2014:1051–1056.

[3] M. Almorsy, J. Grundy, A.S. Ibrahim, Tossma: a tenant-oriented saas security management architecture, In: 2012 IEEE 5th international conference on cloud computing (cloud). IEEE; 2012:981–988.

[4] Chauhan MA, Babar MA, Benatallah B. Architecting cloud-enabled systems: a systematic survey of challenges and solutions. Software: practice and experience.

[5] S. Angelov, P. Grefen, D. Greefhorst, A framework for analysis and design of software reference architectures, Inf Softw Technol 2012;54(4):417–431.

[6] P.B. Kruchten, The 4+1Image view model of architecture, IEEE Softw 1995;12(6):42–50.

[7] W. Huang, A. Ganjali, B.H. Kim, S. Oh, D. Lie, The state of public infrastructure-as-a-service cloud security, ACM Comput Surv (CSUR) 2015;47(4):68.

[8] M.A. AlZain, B. Soh, E. Pardede, A byzantine fault tolerance model for a multi-cloud computing, In: 2013 IEEE 16th international conference on computational science and engineering (CSE). IEEE; 2013:130–137.

[9] J.B. Bernabe, J.M.M. Perez, J.M.A. Calero, F.J.G. Clemente, G.M. Perez, A.F.G. Skarmeta, Semantic-aware multi-tenancy authorization system for cloud architectures, Future Gener Comput Syst 2014;32:154–167.

[10] H. Moens, E. Truyen, S. Walraven, W. Joosen, B. Dhoedt, F. De Turck, Cost-effective feature placement of customizable multi-tenant applications in the cloud, J Netw Syst Manag 2014;22(4):517–558.

[11] C. Fehling, F. Leymann, R. Mietzner, A framework for optimized distribution of tenants in cloud applications, In: 2010 IEEE 3rd international conference on cloud computing (CLOUD). IEEE; 2010:252–259.

[12] F.R. Sousa, J.C. Machado, Towards elastic multi-tenant database replication with quality of service, In: Proceedings of the 2012 IEEE/ACM fifth international conference on utility and cloud computing. IEEE Computer Society; 2012:168–175.

[13] E.M. Maximilien, A. Ranabahu, R. Engehausen, L. Anderson, IBM altocumulus: a cross-cloud middleware and platform, In: Proceedings of the 24th ACM SIGPLAN conference companion on object oriented programming systems languages and applications. ACM; 2009:805–806.

[14] L.S. Ribeiro, C. Viana-Ferreira, J.L. Oliveira, C. Costa, Xds-i outsourcing proxy: ensuring confidentiality while preserving interoperability, IEEE J Biomed Health Inform 2014;18(4):1404–1412.

[15] R. Rezaei, T.K. Chiew, S.P. Lee, Z.S. Aliee, A semantic interoperability framework for software as a service systems in cloud computing environments, Expert Syst Appl 2014;41(13):5751–5770.

[16] Y. Charalabidis, S. Koussouris, A. Ramfos, A cloud infrastructure for collaborative digital public services, In: 2011 IEEE third international conference on cloud computing technology and science (CloudCom). IEEE; 2011:340–347.

[17] H. Flores, S.N. Srirama, Mobile cloud middleware, J Syst Softw 2014;92:82–94.

[18] C. Hofmeister, P. Kruchten, R.L. Nord, H. Obbink, A. Ran, P. America, A general model of software architecture design derived from five industrial approaches, J Syst Softw 2007;80(1):106–126.

[19] A. Shalloway, J.R. Trott, Design patterns explained: a new perspective on object-oriented design. Pearson Education; 2004.

[20] F. Buschmann, K. Henney, D.C. Schmidt, Pattern-oriented software architecture, on patterns and pattern languages, vol. 5. John Wiley & Sons; 2007.

[21] R. Kazman, M. Klein, M. Barbacci, T. Longstaff, H. Lipson, J. Carriere, The architecture tradeoff analysis method, In: Fourth IEEE international conference on engineering of complex computer systems, proceedings. 1998. ICECCS'98. IEEE; 1998:68–78.

[22] R. Kazman, L. Bass, M. Webb, G. Abowd, Saam: a method for analyzing the properties of software architectures, In: Proceedings of the 16th international conference on software engineering. IEEE Computer Society Press; 1994:81–90.

[23] Matinlassi M, Niemelä E, Dobrica L. Quality-driven architecture design and quality analysis method, a revolutionary initiation approach to a product line architecture, VTT Technical Research Centre of Finland, Espoo.

[24] M. Bauer, M. Boussard, N. Bui, J. De Loof, C. Magerkurth, S. Meissner, A. Nettsträter, J. Stefa, M. Thoma, J.W. Walewski, Iot reference architecture, In: Enabling things to talk. Springer; 2013:163–211.

[25] M.A. Chauhan, M.A. Babar, Q.Z. Sheng, A reference architecture for a cloud-based tools as a service workspace, In: 2015 IEEE international conference on services computing (SCC). IEEE; 2015:475–482.

[26] I. Gorton, Essential software architecture. Springer Science & Business Media; 2006.

[27] S. Angelov, J. Trienekens, R. Kusters, Software reference architectures-exploring their usage and design in practice, In: European conference on software architecture. Springer; 2013:17–24.

[28] L. Bass, M. Klein, F. Bachmann, Quality attribute design primitives and the attribute driven design method, In: International workshop on software product-family engineering. Springer; 2001:169–186.

[29] M. Razavian, P. Lago, A frame of reference for soa migration, In: European conference on a service-based internet. Springer; 2010:150–162.

[30] M. Razavian, P. Lago, Towards a conceptual framework for legacy to soa migration, In: Service-oriented computing. ICSOC/ServiceWave 2009 workshops. Springer; 2010:445–455.

[31] Lewis G, Morris E, O'Brien L, Smith D, Wrage L. Smart: the service-oriented migration and reuse technique (no. cmu/sei-2005-tn-029), Pittsburgh: Software Engineering Institute.

[32] M.A. Chauhan, M.A. Babar, Towards process support for migrating applications to cloud computing, In: 2012 international conference on cloud and service computing (CSC). IEEE; 2012:80–87.

[33] D. Guinard, V. Trifa, S. Karnouskos, P. Spiess, D. Savio, Interacting with the soa-based internet of things: discovery, query, selection, and on-demand provisioning of web services, IEEE Trans Serv Comput 2010;3(3):223–235.

[34] O. Akribopoulos, I. Chatzigiannakis, C. Koninis, E. Theodoridis, A web services-oriented architecture for integrating small programmable objects in the web of things, In: Developments in E-systems engineering (DESE), 2010. IEEE; 2010:70–75.

[35] M. Mrissa, L. Médini, J.-P. Jamont, N. Le Sommer, J. Laplace, An avatar architecture for the web of things, IEEE Internet Comput 2015;19(2):30–38.

[36] D. Guinard, V. Trifa, E. Wilde, A resource oriented architecture for the web of things, In: Internet of things (IOT), 2010. IEEE; 2010:1–8.

[37] T.-M. Grønli, G. Ghinea, M. Younas, A lightweight architecture for the web-of-things, In: International conference on mobile web and information systems. Springer; 2013:248–259.

[38] L. Mainetti, V. Mighali, L. Patrono, P. Rametta, S.L. Oliva, A novel architecture enabling the visual implementation of web of things applications, In: 2013 21st international conference on software, telecommunications and computer networks (SoftCOM). IEEE; 2013:1–7.

[39] L. Da Xu, W. He, S. Li, Internet of things in industries: a survey, IEEE Trans Ind Inform 2014;10(4):2233–2243.

[40] T. Yashiro, S. Kobayashi, N. Koshizuka, K. Sakamura, An internet of things (iot) architecture for embedded appliances, In: Humanitarian technology conference (R10-HTC), 2013 IEEE region 10. IEEE; 2013:314–319.

[41] J. Zhou, T. Leppänen, E. Harjula, M. Ylianttila, T. Ojala, C. Yu, H. Jin, Cloudthings: a common architecture for integrating the internet of things with cloud computing, In: 2013 IEEE 17th international conference on computer supported cooperative work in design (CSCWD). IEEE; 2013:651–657.


 “This chapter describes a method for software architecture design, analysis, evaluation and evolution of individual Internet of Things (IoT) subsystems and how individual IoT subsystems can be used for design of Web of Things (WoT) systems.”

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset