21
Middleware Technologies for Cloud of Things - a survey Amirhossein Farahzadi * , Pooyan Shams * , Javad Rezazadeh , Reza Farahbakhsh § University of Technology Sydney, Australia. {[email protected]} Institut Mines-Telecom, Telecom Sud-Paris, CNRS UMR 5157, France. {reza.farahbakhsh, noel.crespi}@it-sudparis.eu * Islamic Azad University, North Tehran Branch, Tehran, Iran E-mail: {[email protected], [email protected] Abstract—The next wave of communication and applications rely on the new services provided by Internet of Things which is becoming an impor- tant aspect in human and machines future. The IoT services are a key solution for providing smart environments in homes, buildings and cities. In the era of a massive number of connected things and objects with a high grow rate, several challenges have been raised such as management, aggregation and storage for big produced data. In order to tackle some of these issues, cloud computing emerged to IoT as Cloud of Things (CoT) which provides virtually unlimited cloud services to enhance the large scale IoT platforms. There are several factors to be considered in design and implementation of a CoT platform. One of the most important and challenging problems is the heterogeneity of different objects. This problem can be addressed by deploying suit- able ”Middleware”. Indeed, Middleware sits between things and applications that make a reliable platform for communication among things with different in- terfaces, operating systems, and architectures. The main aim of this paper is to study the middleware technologies for CoT. Toward this end, we first present the main features and characteristics of middlewares. Next we study different architecture styles and service domains. Then we presents several middlewares that are suitable for CoT based platforms and lastly a list of current challenges and issues in design of CoT based middlewares is discussed. I. I NTRODUCTION The appearance of Internet of Things (IoT) con- cept is shaping and reshaping how future services are going to be define. The main idea behind this concept is to develop different type of communi- cation network based on group of physical objects or simply “things”. The IoT objects embedded with electronic chips, software, sensors and internet con- nectivity to collect and process data from the envi- ronment or affecting it by deploying actuators. IoT combines real-world data and computer processing to lower the costs and increase the efficiency and accuracy. Each thing can be recognized separately through its embedded computing system and is able to communicate with other things through Internet infrastructure. Recently the number of connected and embedded smart devices grows rapidly. Accord- ing to Cisco IBSG [1], IoT world will includes more than 50 billion objects in 2020. IoT is translated in different concepts or approach such as “Network-Oriented” or “Object-Oriented” or even, as it mentioned in [2], “Semantic Ori- ented”. These visions emerged because of different stakeholder ideas because different vendors and IT experts have their own vision of this technology. IoT semantically means “a worldwide network of interconnected objects uniquely addressable based on standard communication protocols” [3]. Interna- tional Telecommunication Union (ITU) also defines IoT as a network which provides connectivity “any- time, anyplace for any connected smart devices”. Figure 1 shows a high level concept of IoT [4] including the main concept and its high level func- tionalities. As shown, the IoT main characteristics is presented in the core circle of the figure including anywhere, anything and anytime features that indi- arXiv:1705.00387v1 [cs.DC] 30 Apr 2017

Middleware Technologies for Cloud of Things - a survey · Middleware Technologies for Cloud of Things - a survey Amirhossein Farahzadi , Pooyan Shams , Javad Rezazadehx, Reza Farahbakhshz

  • Upload
    buingoc

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Middleware Technologies for Cloud ofThings - a survey

Amirhossein Farahzadi∗, Pooyan Shams∗, Javad Rezazadeh∗§, Reza Farahbakhsh‡§University of Technology Sydney, Australia. {[email protected]}

‡Institut Mines-Telecom, Telecom Sud-Paris, CNRS UMR 5157, France.{reza.farahbakhsh, noel.crespi}@it-sudparis.eu

∗Islamic Azad University, North Tehran Branch, Tehran, IranE-mail: {[email protected], [email protected]

Abstract—The next wave of communication andapplications rely on the new services provided byInternet of Things which is becoming an impor-tant aspect in human and machines future. TheIoT services are a key solution for providing smartenvironments in homes, buildings and cities. In theera of a massive number of connected things andobjects with a high grow rate, several challengeshave been raised such as management, aggregationand storage for big produced data. In order totackle some of these issues, cloud computing emergedto IoT as Cloud of Things (CoT) which providesvirtually unlimited cloud services to enhance the largescale IoT platforms. There are several factors to beconsidered in design and implementation of a CoTplatform. One of the most important and challengingproblems is the heterogeneity of different objects.This problem can be addressed by deploying suit-able ”Middleware”. Indeed, Middleware sits betweenthings and applications that make a reliable platformfor communication among things with different in-terfaces, operating systems, and architectures. Themain aim of this paper is to study the middlewaretechnologies for CoT. Toward this end, we first presentthe main features and characteristics of middlewares.Next we study different architecture styles and servicedomains. Then we presents several middlewares thatare suitable for CoT based platforms and lastly alist of current challenges and issues in design of CoTbased middlewares is discussed.

I. INTRODUCTION

The appearance of Internet of Things (IoT) con-cept is shaping and reshaping how future servicesare going to be define. The main idea behind thisconcept is to develop different type of communi-

cation network based on group of physical objectsor simply “things”. The IoT objects embedded withelectronic chips, software, sensors and internet con-nectivity to collect and process data from the envi-ronment or affecting it by deploying actuators. IoTcombines real-world data and computer processingto lower the costs and increase the efficiency andaccuracy. Each thing can be recognized separatelythrough its embedded computing system and is ableto communicate with other things through Internetinfrastructure. Recently the number of connectedand embedded smart devices grows rapidly. Accord-ing to Cisco IBSG [1], IoT world will includes morethan 50 billion objects in 2020.

IoT is translated in different concepts or approachsuch as “Network-Oriented” or “Object-Oriented”or even, as it mentioned in [2], “Semantic Ori-ented”. These visions emerged because of differentstakeholder ideas because different vendors and ITexperts have their own vision of this technology.IoT semantically means “a worldwide network ofinterconnected objects uniquely addressable basedon standard communication protocols” [3]. Interna-tional Telecommunication Union (ITU) also definesIoT as a network which provides connectivity “any-time, anyplace for any connected smart devices”.

Figure 1 shows a high level concept of IoT [4]including the main concept and its high level func-tionalities. As shown, the IoT main characteristicsis presented in the core circle of the figure includinganywhere, anything and anytime features that indi-

arX

iv:1

705.

0038

7v1

[cs

.DC

] 3

0 A

pr 2

017

Fig. 1: Internet of Things - main concept andfunctionalities

cate limitless IoT realm. It is noteworthy to knowapplying this technology with CPS (Cyber PhysicalSystems) and Cloud Computing creates Industry4.0. The middle circle includes the general applica-tion domains. Cross-system automation makes tasksto be performed more accurately, coordinately, andconveniently. In the outer circle, we illustrate ageneral cyber-physical learning process. Each cycleof this process boost systems knowledge and per-formance. First, monitoring operations carried outby sensors. Then the system will measure and storethe data. In the control phase, it will check whethermeasured data has touched or passed pre-definedminimums, maximums or thresholds. Next, accord-ing to controlled data, the system decides whichautomated tasks should be performed. These taskscan be a typical operation, error handling, alerting,and etc. Optimization tries to fix the problems,defects or simply makes the system to performbetter. The last section is learning phase which helpsto improve system knowledge and documentation.

Considering this huge population and the fact thatall connected objects actively produce or requestdata and require various services, the issue of lim-ited available resources is a key factor to be consid-ered in design of large scale IoT infrastructure Inaddition, other issues such as scalability, storage ca-pacity and maintainability are significant challenges

as well. In this era, cloud computing became anefficient, accessible, and reasonable solution. IoTin combination with Cloud functionalities providea new phenomena called as Cloud of Things (CoT)where enable many new possibilities such as BigData processing as well as covering security con-cerns, resource constraints, and scalability to someextend. CoT creates new revenue streams, improvecustomer services and inspire product innovations.As Figure 2 shows, CoT can be considered as acomposition of at least this five enabling technolo-gies. Among these enablers, middleware play a keyrole in CoT (similarly to IoT).

The main focus of this paper is on middlewaretechnologies and it aims to study their roles andnecessities in CoT environment. Middleware is asoftware layer that sits between applications and theobjects. It aims to provide solutions to frequentlyencountered problems such as heterogeneity, inter-operability, security and dependability [5]?. We canconsider middleware in “network-oriented” visionaccording to [6].

Every day we are witnessing growth in mid-dlewares development because this enabler makesit easier to combine new services and previoustechnologies to produce a novel and more capableone. Transparency is the main feature that middle-wares can offer. It provides an abstraction to theapplications from different objects and this featurewill solve architecture mismatch problems. Thereare some other features that middlewares shouldpresent for the desirable performance, flexibility,context management, interoperability, reusability,portability, maintainability and a few more prop-erties that we will explain them in this paper.

This paper is organized as follow. Next section(Sec. II) provides a brief overview of the relatedstudies. Section III discuss features and charac-teristics of middlewares followed by Section IVwhich describes different architecture designs formiddlewares. Section V is devoted to middlewareservice domains and their applications. In sectionVI, we review a number of middlewares and com-pared them based on different features. Lastly, wediscuss few challenges and issues in Section VIIand conclude this paper in Section VIII.

Fig. 2: CoT enabling technologies

II. LITERATURE REVIEW

A large and growing body of literature has inves-tigated IoT and Cloud Computing. Most of thesestudies focused on the combination of aforesaiddomains to bring up a novel and mature technology[7][8][9][10]. As an example, Mohammad Aazamet al introduced CoT in [11] and explained itsnecessity. In addition several key issues on inte-gration of IoT and Cloud Computing are discussedincluding data management, security and privacy,resource allocation, identity management, etc. Inanother work [12], authors show moving towardCoT is essential and can help to implement smartenvironments more efficiently. The main concernshere are data protection, privacy, and consumer law.CoT can utilize system performance by taking ad-vantage of cloud services but, exchanging massivecontrol or data packets can be harmful to this systemand make it less efficient. There are situations whichexchanging data between IoT and Cloud is notreasonable (i.e. requesting simple services or storingtemporary data in the cloud). Therefore, here [13] itwill present a smart gateway to process and analysisrequests and decides whether to answer them locallyor sends them to the cloud.

There is a relatively small body of literature thatis concerned with middlewares in CoT or evenin IoT. Authors in [14] discuss what benefits canbe offered by Service Oriented Computing (SOC)to build a middleware for the Internet of Things.Some concepts have been applied in a Service

Oriented Architecture (SOA) middleware that triesto leverage the existing IoT architectural conceptsby using SOC features in order to provide moreflexibility and dynamicity.

In [15], authors present a new application layerresolution for interoperability. The key concept isto utilize device semantics provided by availablespecifications and dynamically wrap them into mid-dleware as semantic services. In this paper [16],it presents CASSARAM, a Context-aware sensorprobe, Selection and Ranking model for IoT toaddress the research challenges of choosing sensorswhen large numbers of sensors with overlappingand sometimes redundant In [17], authors pro-pose Mobile Sensor Data Processing Engine (MOS-DEN), a plug-in-based IoT middleware for mobiledevices that tries to collect and process sensor datawithout programming endeavors. This architecturealso supports sensing as a service model. Anotherpaper [18] has worked on e-health care domain.E-health features include tracking, identification,authentication, data collection and sensing. VIR-TUS is an Instant Messaging Protocol (XMPP)-based middleware which tries to provide a real-time, safe and trustworthy communication channelamong heterogeneous devices. CASP is anotherContext gathering framework which considers someessential requirements in order to act properly. Aprogramming interface, active/passive sensor mode,simplicity, multi-transport support, separation ofconcerns and sensor data model are some vitalrequirements in this framework ? [19].

Apart from the mentioned academic studies, sev-eral commercial CoT platforms have been devel-oped including GroveStreams1, EVRYTHNG2, andFusion Connect3 projects. GroveStreams is a plat-form which can process Big Data from a widerange of devices. It can provide data analyticstools nearly in real-time. GroveStreams supportsdifferent industrial domains and by applying cloudservices, it can convert received raw data intomeaningful information. EVRYTHNG platform issuitable for digital identification of products so they

1https://grovestreams.com/2https://evrythng.com/3http://www.fusionconnect.com/

can exchange data and information with authorizedmanagement applications. This platform guaranteesSLA by using end-to-end secure, reliable and flex-ible management. Fusion Connect is a remarkableno-coding CoT platform. Every operation happensby the drag-and-drop approach. By deploying thisplatform, users are able to virtualize things, connectthem to reporting devices and perform analytics tounlock their data. It can provide multiple servicessuch as predicting products failure, automationof maintenance operations, producing performancestatistics related to objects, optimizing supply chainand calculate material replenishment costs.

In view of all that has been mentioned so far,there in no dedicated study on middleware in CoTwhich is the main aim of this study.

III. FEATURES AND CHARACTERISTICS OFMIDDLEWARES

As mentioned earlier, middleware is an importantenabler which provide communication among het-erogeneous things. It is a mid-layer between thingsand application services and provides an abstractionof the thing’s functionality for application services.Figure 3 shows a general vision of CoT-basedmiddleware and includes the overall concept ofit as well as its position in the design and themain functionalities that will be provided by amiddleware.

As shown, a middleware is able to bring flexibil-ity and several features and characteristics that wecan see various combinations of them according tothe system’s requirements. In the following parts,we discuss number of features and characteristicsof middlewares.

A. Flexibility

Flexibility is one of the most important capabil-ities that a middleware can offer to IoT or CoTsystems. By using middleware, part of applicationdevelopers’ concerns are covered because it canhandle conflicting issues due to communicationbetween applications and things. There are dif-ferent kinds of flexibility (e.g., response time ordelay flexibility). As a result, flexibility moves fromapplication level to middleware level in order to

handle different forms of flexibility. It is essential todetermine which software or hardware componentsneeds more flexibility. The level of flexibility isimportant because high level of flexibility meansmore connectivity APIs and processing workforcewhich is not reasonable for multiple domains suchas ultra resource constrained IoT networks.

B. TransparencyMiddleware hides many complexities and archi-

tectural information details from both applicationand object sides, so they can communicate withthe minimum knowledge of other side’s necessarydetails of information.Transparency is a distinctivefeature of middleware that can be very helpfulfor programmers, end users and applications. Ac-cording to the application domain and services,developers need to decide which aforementionedpart requires transparency the most. Middlewaretransparency is in forms of platform and network.(i) Platform transparency: middleware runs on a va-riety of platforms, it lets organization use differenthardware platforms according to their requirements.Clients and servers do not need previous knowledgeto work with each other. (ii) Network transparency:middleware provide transparency of the networks tothe application users. This means users don? needto know whether resources are located locally or onremote devices.

C. Context ManagementThis feature is a coordination management con-

cept. It allows users to choose and configure a ser-vice or subject in one application, and then all otherapplications which containing information aboutthat specific subject will adjust themselves withthe same setting that user defined previously. Thisfeature is the main pillar in context-aware systems.In order to achieve high level of flexibility whichis important for better overall performance, contextmanagement allows numerous programs’ thread towork on same task, a thread to work on differenttask or each thread to perform different tasks. CoTis a set of ubiquitous devices, it is necessary toknow the diversity of objects technically, logicallyand physically. This will lead to proper contextmanagement.

Fig. 3: CoT-based Middleware - overall concept, itsposition and the main functionalities

D. Interoperability

This functionality means two set of applications,on interconnected networks, be able to exchangedata and services meaningfully with a differentassumption about protocols, data models, configu-ration and etc, without any problems and additionalprogramming efforts by developers. In fact thenature of software and hardware heterogeneity ofCoT requires of having interoperable components.Interoperability will contribute to standardization.Interoperability has different degrees which dependon heterogeneity level of the environment or systemcomponents. Implementing interoperability requirescreation, management, reception and fulfillment ofrealistic standards. It is important to make sure thatthey are SMART.

E. Re-usability

On SOA based middlewares, there is the possi-bility to reuse software and hardware because thereis no specific technology to impose its policies forservice implementation [2]. The main purpose ofreusability is to make designing and developmentseasier by modifying system components and assets

for specific requirements, which brings forth costefficiency. Cloud-based networks are really crucialfor obtaining this feature. These types of systemsoffer everything’s as a service which can be usedmultiple times.

F. Platform Portability

Portability is a critical feature in CoT. There aremany mobile hardware and software componentswhich are constantly moving between different plat-forms. Therefore a CoT platform should be ableto communicate from everywhere, anytime withany device. Therefore middleware helps to boostportability by its flexible manner. It helps to moveacross the environment and not being restrictedto one platform.Actually middleware runs in userside and can provide independence from networkprotocol, programming language, OS, etc. By con-sidering platform variations in CoT, it is obviousthat the applications and services need a kind ofself-determining mechanism for cross-platform de-velopment. This can be achieved by using platformindependence or portability. The difference is thefirst one run the applications on different platformsby using virtual machines to execute the codes andthe later one is expected to adapt the applications tothe new environment with reasonable users efforts.

G. Maintainability

This is an ability of systems, applications ordevices to respond to failures properly and rapidlyreturn to normal functionality without any problem.This can be achieved by isolating, correcting, repair-ing, preventing and other acts of resolving defects.Maintainability has a fault tolerance approxima-tion. For performing maintainability efficiently itis necessary to have well-defined procedures andinfrastructures. This feature is really needed in hard-real time applications. The growth of deployingCoT in different contexts is significant. Withoutproper maintainability in middleware, extending thenetwork or fixing the bugs would be overwhelming.Designing a maintainable middleware from outset isimportant. Providing relevant documentations andfeedback checklists can be helpful for designingstable and extendable middleware.

H. Resource Discovery

An CoT system includes multiple heterogeneousdevices.There is no reliable and global knowledgeabout availability of mentioned devices. Resourcediscovery is actually a process that used by a nodeto search and probe for intended resources suchas services or data types among entire nodes ofa network. After sending a search query, resourcediscovery protocol will automatically choose thebest resource that offers the most effective servicesand information [2]. For example, the process ofchoosing the best sensor in the environment thatgives us the most reliable information. One of thekey essentials of a Resource Discovery mechanismfor middlewares is to cope with frequent failures.Developers must use self-stabilizing algorithms inorder to bring the system into an ordinary statedespite transient failures.

I. Trustworthiness Management

This capability is required in social Internet ofThings applications. By this feature, we can developtrust and credit mechanisms (e.g., authentication,hashing, encryption and etc) to ensure that servicesand information that have been prepared for us byother applications, came from trustworthy systems[20]. It plays a key role in establishing trust re-lationships among different applications. This willlead to a trustable, robust and secure system.

J. Adaptability

In CoT systems, environment and networks in-frastructure often changes due to different reasonsincluding nodes mobility, power drain, topologyshifts and etc. Many middlewares usually has fixedcapabilities and cannot be customized to dynamicand unpredictable situations. This feature showshow middleware should behave against environmen-tal changes. It can react both statically and dynami-cally. Deploying optimized dynamic methods resultbetter adaptability. Higher adaptability is critical inhard real-time systems. In contrary with flexibility,being adaptable means durability against long-termchanges in the systems. For reaching a reasonableamount of adaptability, it is necessary to provide it

as services (such as security and identification pro-tocols adaptation services, communication protocolsadaptation services, semantic protocols adaptationservices, etc).

K. Security and Privacy

Security in middleware is a vital issue becausemost data transmission and operation are occur-ring through it. For having a secure system wemust consider confidentially, integrity and availabil-ity. Therefore, middleware should provide differentsecurity measures for ubiquitous applications andpervasive environment such as authentication whereidentification and credentials, authorized modifica-tions and access control policy are needed for verifi-cation and managements in accountability [21]. Pri-vacy means all IoT system components that accesspersonal user information must guarantee protectionof mentioned information from unauthorized access.

L. Connectivity Convergence

Internet of Things contains and supports vari-ous types of hardware and software componentsthat interact with each other through heterogeneouscommunication platforms. For example, softwareapplications may send their request or queries tomiddleware in different kinds of communicationmethods such as WiFi Signals, Wired-based data,Fiber-optic lights, Bluetooth and etc. On anotherside of the scheme, objects may use communicationtechnologies like Zigbee and RFID. Even it ispossible that sensors send directly analog signalsor send digital signals after processing them. So itis obvious connectivity APIs and management isan essential need. This feature is convergent withinteroperability.

IV. ARCHITECTURAL COMPARISON OFMIDDLEWARES

Middlewares are designed based on differentarchitectures. One of the most important aspectsin design of a middleware is determining a well-defined framework or architecture. Each architec-ture has unique attributes therefore, they can becategorized based on different parameters as op-pose to make an explicit and fixed categoriza-tion. In [22], C. Perera et al, proposed a general

TABLE I: Comparison of different possible architecture designs in middlewaresArchitecture Benefits ChallengesComponent-based Reusability, Abstraction support and Independency Maintenance, Migration, Complexity and Compatibility

Distributed Resource sharing, Openness, Scalability, Concurrency, Consis-tency and Fault tolerance Interoperability, Security, Manageability and Maintainability

Service-based Reusability, Scalability, Availability and Platform independence Service discovery, Complex service management and Serviceidentification

Node-based Availability and Mobility Security and ManageabilityCentralized Simplicity, Security and Manageability Scalability, Availability and Portability

Client-server Servers separation, Resource accessibility, Security, Back-up andRecovery Congestion, Limited scalability and Single Point of failure

category for middle-ware’s architectures as fol-low: Distributed architecture, Component-based ar-chitecture, Service-based architecture, Node-basedarchitecture, Centralized architecture and Client-server architecture. The main features of the men-tioned architectures are summarized in Table I. Thistable includes benefits and challenges for each ar-chitecture design in middlewares. To provide moredetail, Table II categorized a list of the well-knownmiddlewares based on their application domains andarchitecture styles. The detail of each mentionedmiddleware is provided in Section VI.

A. Component-based

First, we explain Component-based architecture.In this type of architecture, there are some specificand main loosely couple independent componentsthat semantically are working together to performtasks but technically, each one of them is respon-sible for solving a specific part of the problem. Soit is often said that components are cohesive andmodular. It decomposes the design based on logicalor functional components which provide a higherlevel of abstraction. The principal objective of thisarchitecture is the encapsulation of functionality andbehaviors of system elements for minimal depen-dency, more reusability, and easier trouble-shooting.

B. Distributed

Distributed architectures or distributed systemsconsist of different networked software and hard-ware components that coordinate their operationsto execute tasks. The main characteristics of thisarchitecture are concurrency of components, lackof global clock and the fact that failure of acomponent doesn’t affect the whole system. Themain advantages are fault tolerance, scalability,

concurrency, flexibility and hardware and softwaresharing. Components with different platforms andon several machines can cooperate on the specificgoal. There are several frameworks for supportingthis architecture such as CORBA, .NET, J2EE, andetc.

C. Service-based

This architecture is one of the most efficientdesigning styles. There are two methods to imple-ment SOA-based middleware. First is deploying itin stand-alone manner and second is using CloudComputing services (PaaS).The components of thisarchitecture provide services to each other over acommunication protocol [23]. Every device offersits functionality as standard services, while thedetection and invocation of new functionalities fromother services could be performed simultaneously.This architecture is not recommended for followingapplications Homogeneous system: This architec-ture is not cost effective and practical for a singlevendor. Real-Time: As SOA requires synchronouscommunication between the service consumer andproducer; it is not a suitable option for deviceswhich need strictly-enforced response time such asembedded equipment. In this case, tighten coupledarchitectures is preferred. GUI-based: SOA wouldnot be a desirable option for GUI functional appli-cations like maps which require heavy data trafficexchange.

D. Node-based

In this architecture, there are many softwarecomponents with same or different functionalitiesthat work on mobile and sensor networks in order tocommunicate and process data which collected fromthe sensors? [22]. This architecture is composed of

streams and nodes. Nodes operate the data throughstreams with other nodes and it makes them suitablefor mobile devices.

E. Centralized

In this architecture all the services have gatheredin a specific location and applications or devices canmake a request to use that resources and services.Users are usually simple thin devices that handover their request to the central server which is aresource-rich device. The network between devicesand central server can be implemented by connec-tionless or connection oriented protocols althoughthere is no direct communication between applica-tion instances. This architecture is the exact oppo-site of distributed architecture. The failure of centralserver will cause disabling the whole network if abackup up server doesn’t take over immediately.

F. Client-server

The Client-server architecture is the most classi-cal model, in which there is always a request fromone side and a reply from the other. Determiningdevice’s role is challenging because sometimes weencounter devices that can be considered as both.CaSP used this model to separate processing adsensing from each other? [22]. This architecturecan be classified into two models based on thefunctionality of clients.

Thin client model: The server is in charge ofprocessing applications and managing data. Hereclients just provide GUI.

Thick/ Fat client model: The server is responsiblefor the data management. The implementation ofapplications and providing GUI is done by theclient.

Another type of Client-server architecture ismulti-tier in which main functions like presentation,application, processing, and data management isphysically separated.

V. MIDDLEWARE SERVICE DOMAIN

Middleware is a solution for implementing differ-ent services in a heterogeneous environment. First,we must identify the variety of these services. Thereare some researchers and organizations which tryto detect all potential services that middleware can

present and define an approach in order to imple-ment them. We will discuss some of the services inthe following. Each of these domains may consistsof multiple sub-domains.

A. Information exchange and storing

Systems that benefit from this domain (i.e. trans-action systems) should provide the ability for usersto pass their request to middleware for ex-changingit with other nodes or saving their information ona database without any problem. For instance, thisservice allows a group of operators to use a context-aware middleware to manage a smart environment.Internet of things is primarily based on ubiquitousand pervasive computing so communicating andstoring data through this distributed environmentrequire appropriate considerations.

B. Data management and analytics

This is absolutely a huge and complex domain.Users should be able to manage databases, datasecurity, data quality, reference and master data,Metadata and other topics. By using these servicesthere are no longer any concerns about managingand processing data, especially Big Data. Each usercan implement personal policies without any con-cerns. Also, services like data processing and dataacquisition should be presented by IoT middleware.Data analytics is another important service that themiddleware provides it by extracting statistics dataor visualizing obtained data and sends them to theuser application.

C. Object middleware

This type of middleware which is also known asobject request broker allows applications to transmitobjects and demand services via an object orientedsystem. In summary, these middlewares manageand control communication among objects. RemoteProcedure Call (RPC) in combination with thesemiddleware makes Distributed Object Middleware(DOM). This added feature calls objects and pro-cedures on remote systems and can implementsynchronous or asynchronous interactions amongobjects, applications, and systems.

TABLE II: Architecture and application domain of top 20 MiddlewaresMiddleware Architecture Main Application Commercialized Cloud-basedAura Distributed Pervasive computing environment 7 7ABC&S Service-based Car Parking automation 7 XCapnet Distributed, Node-based Mobile multimedia applications 7 7Carriots Service-based Smart city, Smart energy X XCARISMA Distributed Mobile computing 7 7CHOReOS Service-based and component-based Enabling large-scale, QoS-aware adaptive choreographies X XC-MOSDEN Distributed, Component based Resource constrained mobile devices 7 XCOPAL Centralized, Component based Context provisioning 7 7CoMiHoC Centralized Context management in MANET environment 7 7DropLock Service-based Smart Home deployment 7 XGaia Distributed, Service-based Managing ubiquitous computing habitats and living spaces 7 7GSN Distributed Deployment and interconnection of sensor network 7 7Link smart Service-based Intelligent networked embedded systems X 7OpenIoT Service-based Smart cities and mobile crowd sensing 7 XRimware Service-based Heart rate Monitor (HRM) and Smart lighting (SL) 7 XSOCAM Service-based Building context-aware mobile services 7 7ThingWorx Service-based Agriculture, Smart cities and Smart buildings X XUPnP Node-based Ubiquitous mesh home networks 7 7VIRTUS Distributed E-health caring 7 7Xively Service-based Home appliances connectivity and management X X

D. Communication

Actually, this domain is a baseline for manyother domains. A communication middleware pro-vides a framework or environment which enablestwo applications to negotiate and exchange data ina distributed system. Communication middlewareprovides an abstraction of the network protocolfor software application and reduces complexityof designing low-level communication mechanisms.DDSS is an example for communication middle-ware [24].

In addition to the above mentioned domainsand by considering system services and operations,there are some other special-purpose applicationswhich need various features of middleware do-mains to perform their task properly. For exampleWebCrawler [25] and GRank [26] are two searchengines middleware that uses a combination ofaforementioned domains capabilities.

VI. COMPARISON OF SAMPLE MIDDLEWARES

In this section, we describe in detail top 20 mid-dlewares (mentioned in Table II) and provide a com-parison between their main functionalities and ap-plications from different aspects (Table III). Theseplatforms are designed for specific applications butthere are middlewares such as LinkSmart that of-fer a wide range of services for different needs.These middlewares have been selected for various

reasons including being state-of-the-art, covering allarchitecture styles, working on different applicationdomains, being commercialized and using differentinfrastructure were some of our selection criteria.

A. C-MOSDEN

C-MOSDEN (Context-aware Mobile Sensor DateEngine) [27] is a novel location and activity awaremobile sensing platform which can collect andprocess data without programming efforts. This isa plug-in-based middleware for mobile devices. Toavoid cost in the process and storing data, savetime and energy consumption (battery drainage),and reduce network traffic, this platform proposesan on-demand distributed crowd sensing platformwhich capture just required data based on userrequest and location. It consists of sensing as aservice cloud platform (to supervise sensing task)and worker nodes (to perform the sensing task).Cloud middleware evaluates availability of workernodes and send a request to selected ones, andalso can impose specific condition on the dataacquisition or transfer such as sense when certainactivity occurs. It includes three main modulesof context-aware, activity-aware and location-awarethat work with GSN (Global Sensor Network) ascloud-based companion platform in an integratedsystem. Context-aware data streaming engine calledmobile sensor data engine is based on previous

TABLE III: Summery of top 20 Middlewares Comparison (NS stands for Not-Specified and S&P forSecurity & Privacy).

Middleware Event Detection Service Discovery Adaptability Platform Portability Interoperability Context Awareness S&P Real-timeAura 3 X 3 3 7 3 7 7ABC&S X NS X X NS X X XCapnet 3 X 3 3 3 3 NS NSCarriots NS X 3 3 3 NS X XCARISMA 7 7 3 3 3 3 7 7CHOReOS X X X X X X X XC-MOSDEN X X X X X X NS NSCoMiHoC 3 NS 3 3 3 3 7 7Copal 3 X 3 3 NS 3 3 XDropLock NS NS X X NS NS X 7Gaia 3 X 3 3 3 3 3 7GSN 3 X 3 3 7 7 3 XLink smart 3 X 3 3 3 3 3 XOpenIoT NS X X X X X X NSRimware 3 7 3 3 3 7 X NSSOCAM 3 X 7 3 7 3 7 7ThingWorx X X X X X X X XUPnP 3 X 3 3 NS 3 3 NSVIRTUS 3 X 3 3 3 7 3 XXively X X X X X X X X

MOSDEN platform. It is client side tools install onany device.

C-MOSDEN also have context-aware function-ality and supports push/pull data streaming. Activ-ity aware module can recognize 6 activities of I)moving in a vehicle II) cycling III) walking IV)running V) still (not moving) VI) tilting (falling)and a combination of them. Location aware modulerecognizes when a device enter or exit from anarea which is defined by longitude, latitude, andradius. GSN aims at providing flexible middlewareto address sensor data integration and distributedquery processing. It is based on four basics princi-ples: A) simplicity B) adaptability C) scalability D)lightweight implementation. It integrates, discovers,combines, queries, and filters through a XML basedlanguage. The key element in GSN is virtual sensorsthat can be any data producer or a combination ofthem. It can have multiple input data streams, butonly have one output. First, sensor data consumer(city, researcher, doctors) submits requirement, thenanalysis problem and decide which sensor collectrelevant data. The global task scheduler provides astrategic plan that how delegates the task to multipleworker nodes. This platform provides a high levelof interoperability, scalability, usability and man-agement of resources and costs by collecting onlythe relevant data.

B. Xively

Xively4 platform is a capable and enterprisesolution that provides a middleware for creating,managing and engaging ideal CoT. According to itsfunctional specifications there are 3 main propertiesthat specified as I) scalable and flexible connectivityfeatures II) data engagement features III) manage-ment features that cover product’s provisioning,monitoring, updating, and user management. Nowa-days, users want operations in real-time and quicklyso, Xively answered to these demands by deploy-ing MQTT which is a messaging broker in CoT.Speed and scalability of Xively are made possiblethrough Blueprint Template that is a flexible modelfor structuring devices and user’s information andmapping relationships between them. Each templatealso provides contexts for managing real-time prod-ucts and user’s data fields, processing both Xivelytime’s series and third party data. It also introducesa data logging devices that offer a full view ofremote products down to specific sensors. Anotherfeature is cross business automation that offers anopportunity to integrate products, customers, andother business systems. Xively offers a connectedproduct management (CPM) platform which helpsto capitalize the CoT. This makes modeling andconnecting products easier and immediately allows

4https://xively.com/

them to start gathering data. With this platform, itis possible rapidly to find new features, proactivelymanage users and integrate obtained data with ex-isting business systems.

C. ThingWorx

ThingWorx5 is popular for its business man-agement, big data, and analytics optimization. Itis commonly used in agriculture, smart cities andsmart buildings. It supports MQTT, XMPP, CoAPand DDS for communication and TLS and AES assecurity protocols and includes Foundation, Utili-ties, Studio and kepware sections and related com-ponents. The utilities section includes tools andMashup Builder for defining, monitoring, manage-ment, and optimization. Mashup Builder allows theusers to simply create their interactive applications,real-time dashboards, and mobile interfaces with-out any need for coding which reduces developertime and increases scalability. Analytics as an an-alytical solution enables developers to easily findthe real-time pattern, detect an anomaly, predictiveoutcomes and improve performance by using theWorx analytic server. Thing watcher automaticallyobserves and learn normal state and alert the enduser if it detects any anomaly.

By using things predictor system can predictrelevant outcome. Things optimizer can improvefuture performance and results with automated pre-scription and simulation. The unique frame workallows being integrated with technologies like in-dustrial connectivity (Kepware) for IIoT (Indus-trial IoT). Kepware’s communications platform isa complete solution for device-to-cloud interoper-ability. KEPServerEX provides a single source ofindustrial automation data to multiple applications,allowing users to connect, manage, monitor, andcontrol diverse automation devices and softwareapplications through one intuitive user interface.KEPServerEX provides two options for interop-erability with the ThingWorx IoT Platform. TheIoT Gateway advanced plug-in features that as anagent enables real-time and read-only communica-tion with the Platform. It allows users to model

5https://www.thingworx.com/

industrial things within the ThingWorx IoT Plat-form. The ThingWorx native client interface enablesreal-time and bi-directional communication with thePlatform. SQUEAL (Search, Query, and Analysis)is an intelligent interactive search engine that allowsa user quickly search and query and analyze throughcloud data repository. It supports connectivity via3d party device clouds, direct network connection,open APIs, and using ThingWorx edge micro server(EMS). Composer is modeling environments whichmake it easy to model the things, business logic, vi-sualization, data storage, collaboration and securityfor application. The modeling for developer is basedon making entities (things) that can produce events.To scale models and avoid repetition developer canuse of thing templates (properties of things with thesame nature) and things shapes (properties of thingsor templates).

D. Carriots

Carriot6 is a cloud-based IoT platform (as a PaaS)mainly designed for M2M projects like smart cityand smart energy. This platform provides somemodules for common M2M projects like date col-lection and storage, security, and device manage-ment. Seven layer architecture of the platform canprovide all requirements of diverse projects andM2M applications. Carriots projects can run it infive steps of connecting the devices, collecting data,management of devices and data, building the appand running the project. It collects and stores rawstreams of data from any devices by sensors througha web connectivity (gateway or embedded 3G orGPRS modems) by using MQTT protocols and sendto a HTTP/ HTTPS RESTful API in XML or JSONformat.

It can also integrate with other systems and pullor push data from CRM and ERP or any otherAPIs like Zoho and Dropbox. The platform putforward Apikeys (define privileges and visibility),HTTPS, HMAC hash solutions for security issues.Carriots include a NoSQL big database to store datain two replication sites with high transactions. Thedata can be accessible through PUSH and PULLstrategies of API. The powerful feature in Carriot

6https://www.carriots.com/

is the capability of writing and executing code byan arbitrary code. By writing Groovy script andcombining with SDK, it can execute any actionin Apps and run in the cloud. Carriots devicemanagement module allows the user check statusand manages configuration and firmware remotely.Carriots gives customers freedom and flexibility inmatching with the wide range of hardware and someplatforms such Microsoft Azure that is suitable forpublic cloud services. The main benefits of Carriotsplatform is saving development time, lower costs (indevelopment and operation), reliability and scale upfrom tiny prototypes to thousands of devices (freeaccount for up to 10 devices). It can scale up tomillions of devices and customers.

E. CHOReOS

This middleware is set of software componentsthat implement and execute large-scale web servicecompositions. CHOReOS tried to converge Inter-net of Things, Cloud Computing and the Internetof services. By using higher-level abstraction andservices, this middleware tries to make scalable,complex and adaptive service structures. CHOReOSis the mixture of four main modules. I) eXecutableService Composition (XSC) which is responsiblefor coordinating the proper and required servicesfor things. II) eXtensible Service Access (XSA)that is used for accessing and selecting servicesand things. III) eXtensible Service Discovery (XSD)which is a management framework for protocolsand processes to find requested or suitable ser-vices and things. IV) Cloud and Grid Middlewarethat is responsible for computational componentsand control implementation of choreographies. XSChave two main components 1) Composition andEstimation (C&E) 2) Reconfiguration Managementfor Service Substitution. The first one is responsiblefor the composition of thing-based services and thesecond one is a composition of functional abstrac-tion services and impact analyzers.

XSA is the next module which includes A) XSBthat backs seamless integration on heterogeneousenvironment B) EasyESB presents a scalable andproper environment for business services to getinto large choreographies C) LSB provide services

related to things and addresses IoT challenges.XSD includes I) AoSBM Discovery for resourcediscovery process by using service abstraction II)Things Discovery for the probabilistic method inorder to implement it III) Plug-in Manager whichis a flexible framework for supporting all discoverysolutions. Cloud and Grid Middleware has threecomponents 1) The Storage Service that deploy adatabase server on cloud and define access controlpolicies 2) The Grid Service which provides GridComputing as a service; this means offering high-performance computing applications enough neededresources 3) The Enactment Engine is the mainsection of Cloud Grid and Middleware and is acomposition of the CHOReOS middleware, busi-ness services, and coordination delegates. Cloudand Grid components export RESTful services [28].

F. Rimware

Rimware [29] is a middleware proposed byChengjia Huo et al and the main concept behindthat is positioning middleware on rim that coverscloud on the inside the rim and Network of things(NoT) on the outside. The middleware propose alayer that includes gateways, clouds and compo-nents which run on the both sides. The Rimwareprovides scalability, interoperability, security andsaving energy via gateway adapter and knowledge-based and access controller in cloud. It makes use ofprofile-based protocols for interoperability featurethat allow devices from different vendors simplydiscover each other in term of their implementedprofile. It uses BLE (Bluetooth 4.0 low energy) asa communication protocol that can help to lowerenergy consumption. First, node establish authen-tication and secure connection through a trustedgateway to the cloud via an adapter on gateway(when smartphone and tablets are not available),which can substitute the role of application on smartphones. Then, the cloud side establish mappingamong device profiles, web APIs and cloud opera-tions.

G. DropLock

T. L. Vinh el al. [30] present a middlewarearchitecture to integrate mobile devices, sensors

and cloud computing. This middleware by usingcloud services provides scalability, sufficient datastorage, data processing capabilities and energysaving management. The specific goal here is theconvergence of Mobile Cloud Computing (MCC)and IoT. Authors presented a basic requirementsframework for designing CoT middleware whichincludes Network management services, Data man-agement services, System management services andSecurity and authentication services domains. Forsecurity concerns, before communicating with otherdevices, it is essential to perform the authenti-cation process. For resource constraint devices,authentication could be performed by lightweightcryptography algorithms. Data must be encryptedbefore transferring on communication channels. Forassurance of privacy, this middleware uses cloud-based privacy management services. The authorsused a framework named DropLock to demonstratetheir general service architecture on a smart cityscenario.

H. ABC&S - based car parking middleware

This middleware aimed to deploy Always BestConnected and best Served (ABC&S) paradigm todesign a worthy cloud-based car parking middle-ware for Internet of Things. Authors used smart mo-bile devices, low-powered processing chips, cloudcomputing and future network and communicationenvironments (i.e. UCWW) as main enabling tech-nologies to form their idea. This article proposed athree-layer architecture which consists of the sensorlayer, communication layer, and application layer.Sensor layer consists of multiple sensor technolo-gies such as RFID and CCTV. Communicationlayer is a composition of different wireless tech-nologies (i.e. WIFI, ZigBee, VANET, and WSN).The application layer is responsible for providingsome cloud-based services for actions like findingbest parking lot available, vehicle license platepatrolling, car tracking and etc. This layer is athree-tier model which includes of Cloud tier, Webserver tier, and Mobile app tier. In the cloud tier,web applications arranging data into an open-sourcesoftware framework like Hadoop for storing themand running applications on distributed hardware.

In web server tier it uses OSGi (a java framework)to dynamically publish, discover and bind servicesto Bundles. Mobile app tier makes mobile devicesto access web applications to gain best services. Incloud tier, multiple servers may send recommen-dations about best available parking lots for userstherefore, a cloud-based middleware developed withthree clusters, A) Kafka a messaging platform forload balancing, B) Storm that consumes topicsproduced by Message Queue and process data (i.e.filtering, mining, clustering, etc), C) HDFS thatcontains useful dataset which web applications canaccess to them in real-time by put, scan, add, getoperations [31].

I. OpenIoT

OpenIoT (open source Internet of Things) [32] isan open source IoT platform with semantic interop-erability in the Cloud. This platform as a standard-based model for physical and virtual sensors ap-plies Semantic Sensor Networks (SSN) ontology forsemantic unification of IoT systems. Discoveringand collecting data from mobile sensors is achiev-able through a publish/ subscribe middleware calledCloud-base Publish/ Subscribe (CUPUS). The CU-PUS interact to cloud database via X-GSN (eX-tended Global Sensor Network). The architectureof OpenIoT includes seven elements including, asensor middleware, cloud data storage, Scheduler,Service Delivery and Utility manager (SD&UM),Request definition, Request presentation and Con-figuration and monitoring. For security and privacyissues, the platform adopts a flexible and genericapproach for authentication, authorization and Usermanagement through its specific privacy & securitymodule and CAS (Central Authentication Service)service. To ease the development of applications(zero-programming) and manage IoT applications,it offers an integrated development environment(IDE) comprises a range of visual tools. OpenIoTis recommended for application in areas wheresemantic interoperability is required. The ability tohandle mobile sensors and providing QoS parame-ters makes it a suitable choice for smart cities andmobile crowd sensing.

J. AuraThis middleware is suitable for pervasive comput-

ing. It applies two broad concepts. First is proac-tively which means system’s layers are able toanswer the request from a higher level. Secondlyis self-tuning that layers must adjust their perfor-mance and resource usage according to demandsmade on them. The personal aura acts as a proxyand by mobility, it provides adaptation to the newenvironment. In Aura, the context observer helps todo context managing. One of the main challengeshere is seamless integration rather than buildingblocks of pervasive computing. In order to achievemaximum capabilities of a resource-limited mobileclient and thus improve user experiences, Aura usescyber foraging. Surrogates are nearby computingservers or data-staging servers which provide thisamplification. The reliability and quality of connec-tions between Surrogates and nodes are important[33].

K. CapnetCapnet is mainly developed for mobile multi-

media applications. This middleware is context-aware and with a common interface for contextsensors, it makes it easier to embed a new sensorin the system. Capnet tries to address requirementssuch as mobility of the software components, mul-timedia applications, and adaptation. Context-awarepervasive networking focus on adapting service ap-plication according to user’s environmental positionand his personal preference. Service discovery andcomponent management also provide the requiredlevel of transparency for applications making themable to perform operations in the mobile environ-ment. This middleware is capable of asynchronousmessaging, context management, service discovery,resource management and etc. Capnet can performa proper task according to component mobility; itcan decide whether to run a component on theclient side (mobile device) or server side (fixedPC) depending on the resource requirements of thestarting application or component [34].

L. CARISMACARISMA use the principle of reflection in order

to achieve a dynamic behavior to context changes.

It provides primitives for developers which de-scribe how context changes should be handled usingpolicies. For example, for message exchanging inthis middleware, there are four policies: charMsg,which sent one character each time, plain Msg, toexchange messages explicitly, compressed Msg toexchange compressed messages, and encrypted Msgto deliver encrypted messages. It also enhances theconstruction of adaptive and context-aware mobileapplications. Authors believe middleware platformsmust support both deployment time configurabilityand run-time re-configurability. CARISMA presentsan approach to provides applications, the highesteconomic quality of service as possible which theycan offer to consumers [35].

M. LinkSmart

LinkSmart is an ambient intelligent (AmI) mid-dleware that acts and reacts based-on object pres-ence. In general, this technology has five main char-acteristics as follows: Context-aware, Embedded,Adaptive, Personalized, and Anticipatory. LinkS-mart uses a lower-level Data Acquisition Com-ponent to collect accurate data from ContextProviders. Data Acquisition Component performstwo main protocol, push and pull. Push handles datathat needs to be sent and pull retrieved data fromsources. This middleware aims to support both dis-tributed and centralized architectures. It will providereflective properties, security and trust and model-driven development of applications. LinkSmart alsoallows for secure, trustworthy, and fault-tolerantapplications with the use of distributed security andsocial trust components. The main domains whichend-users can use are facility management, smarthomes, and health care [36].

N. GSN

Global Sensor Networks as its name indicate,make a rapid and simple deployment of differentsensor network technologies. The four main de-sign goals are simplicity, adaptively, scalability andlightweight implementation. It helps to make a flexi-ble integration and sensor networks discovery. GSNwill provide dynamic adaption of the system config-uration during operation. It uses a container-based

approach which allows different sensors easily to beidentified and most of the system complexities hidein that container. These containers communicateto each other in a peer-to-peer style. The mainabstraction in GSN is the virtual sensor. Virtualsensor can be any device which produces data, i.e.a real sensor, wireless camera, PC, cell phone andetc.VSM is responsible for multiple tasks such asaccessing virtual sensors, controlling the deliveryof sensor data, and providing the necessary admin-istrative infrastructure. VSM has two components,LCM, and ISM. LCM manages the usage and com-munication of resources and virtual sensors. ISM isresponsible for managing and quality streams so itensures QoS of streams [37].

O. COPAL

Copal is an adaptive context provisioning ap-proach. Context provisioning refers to the approachof collecting, transferring and processing contextin order to setup context-awareness of ubiquitousservices. Copal is designed to provide a runtimemiddleware. This will lead to loose-coupling be-tween context and its processing which is for in-tegrating new context sources, creating new infor-mation models and supporting different informationprocessing requirements of context-aware services.This middleware has two key concepts. The firstone is Publishers which are device services thatindicate all sensors and devices in the environ-ment. Complexity and heterogeneity of devices andcommunications will be solved by using wrappers.The second one is Listeners that refer to Context-aware services which COPAL must notify whencorresponding inquiries are met. Each service mayhave numerous listeners ?[38].

P. Gaia

Gaia is a distributed middleware architecturethat coordinates software services and heteroge-neous networked physical devices. It providesa template to develop user-centric, multi-device,resource-aware, context sensitive, and mobile appli-cations. Gaia main components are the kernel, theapplication framework, and the applications. Ker-nel component management core and application

framework let users build, execute, or adapt existingapplications to active spaces. Gaia offers 5 basicservices: Presence service, Event manager, Contextservice, Space repository and Context File System.It focuses on the interaction among users and activespaces. Active space is a programmable pervasivecomputing environment which boosts mobile users?ability to interact and configure multiple devicesand services simultaneously. Active spaces are usu-ally determined for specific tasks. Applications canuse task context to detect meaningful informationfrom incoherent data [39].

Q. UPnP

The main goal here is designing a middlewarefor mesh home network. The wireless mesh homenetwork consists of two kinds of devices: Mesh-Controller and Mesh client. MeshController sets aubiquitous heterogeneous network within the house,which can be interconnected with IP net-work andlimits the access to the wireless mesh home networkand provides secure communications by deployingvarious mechanisms. A home getaway connectsthese Mesh Controllers together and provides aneasy and centralized users’ management. UPnPoffers peer-to-peer ubiquitous network connectivitybetween various devices. Service discovery andcontext-awareness are two critical capabilities ofUPnP. Typical UPnP protocol doesn’t support suf-ficient context-awareness. When the mesh clientmoves from one point to another, the user contextmust be reconfigured in order to keep context-aware service discovery. The authors introduce anapproach to utilize UPnP in order to make a mid-dleware which considers user profile and context inan intermediate node. Context aggregators providesconsistent and uniform contextual information tothe middleware Context Management Module isresponsible for creating user’s related context in-formation? [40].

R. CoMiHoC

CoMiHoC is suitable for context managementand situation reasoning in MANET environment.Context-awareness has to establish in a peer-to-peermanner in order to work in MANET environment.

CoMiHoC builds location models and estimates theconnection of contexts used for situation reasoning.This middleware defines a concept of context rele-vancy that is specified as the rating to which par-ticular context information is suitable to the currentcondition of a context-aware application. CoMiHoCarchitecture framework is divided into three dif-ferent groups of component: Context provisioner,Request manager, and Situation reasoner. Contextprovisioner group provision relevant contexts tothe submitted situation spaces and also managecontext buffer which replaces less relevant contextwith more relevant one if they are available in thecurrent position. Request manager is responsible forincoming context queries and will reply to them ifthey exist in the buffer. Situation reasoner consistsof previous component group and manages a set ofsituation spaces. The authors consider challengessuch as temporal relevancy, context uncertainty,distributed control and fault-tolerant which needsto be addressed in managing context in MANETenvironment [41].

S. SOCAM

In SOCAM, context is presented as ontologymarkup language. The benefit of this approach isthat the context information can be shared amongdevices or entities in a pervasive computing domainand context reasoning becomes possible. By con-sideration of mobile device limitations and reduc-ing the burden of context processing from them,the context model is designed in a two-level hi-erarchy. Pervasive computing domain divides tomultiple sub-domains and each domain consist ofindividual low-level ontology. For linking up allsub-domains, there is also a generalized ontology.Each component in this middleware represents asan autonomous service. Its main goal is to workon mobile and pervasive computing system. Itwill nearly respond to every context-based need.Service-oriented context-aware middleware is ca-pable of doing tasks like acquiring, discovering,interpreting, and accessing various contexts andinteroperability between various Context-aware sys-tems [42].

T. VIRTUS

VIRTUS middleware is aiming to benefit IoTparadigm for e-health solutions. E-health featuresinclude tracking, identification, authentication, datacollection and sensing. The main goals of this sys-tem are collecting patient data, monitoring his/herhealth status and act as a prevention. Instead of de-ploying SOA, it uses an Instant Messaging Protocol(XMPP)-based middleware which tries to providea real-time, safe and trustworthy communicationchannel among heterogeneous devices. VIRTUS isa publish/subscribe middleware, with having XMPPon the side, it will allow the users of the system tobe acknowledged if a message is arrived at the des-tination or not. In addition, it can inform entities ifthe destination user is offline. VIRTUS can supportthree types of devices: resource rich devices (likePC), resource-poor devices (like tablets) and simpledevices (like sensors) [18]?.

VII. CHALLENGES AND ISSUES

This section discuss the main challenges thatexist on using middlewares technologies in CoTapplications. All the mentioned challenges are in-teresting problems and open issues that need furtherinvestigation and have great potential to be consid-ered as future directions in this study.

A. Near Real-Time Prioritizing

CoT is a massive network of intelligent objectswhich all of them provide or receive resourcesto fulfill their tasks. There are situations that re-source/service allocation should be prioritized inreal-time. Most of the CoT-based middlewares arenot capable prioritizing unforeseen tasks in real-time. For example in a CoT-based hospital, mid-dleware should be able to prioritize the patients’care based on their sickness in real-time mannerand retrieve patient data that is in worse condi-tion to be notified on doctors’ platform. Thereforemiddlewares need to apply mechanisms to measureunforeseen situation in real-time and provide cloudservices according to the importance of the requests.

B. Proper Resource Discovery Implementation

CoT is a heterogeneous environment with themost dynamic topology changes. There is no guar-antee for continuity of services/resources. Thereare so many factors that make Resource Discoverychallenging in this type of networks (i.e. Nodesadd to the network or leave it suddenly, the bursti-ness nature of network, Asynchronous interfaceprotocols, Mobility, etc). Recent researches tried toanswer some of the requirements but they were notcomprehensive methods or solutions. For this pur-pose, moving toward more capable resource/servicediscovery mechanisms which provide expected per-formance is strictly necessary. At the moment, themost widely used discovery protocols are XMPP,UPnP and WSDiscovery.

C. Users Security and Privacy Enhancement

Implementing trustable security and privacymethods is one of the major challenges in perva-sive networks. Some middlewares use their localsecurity capabilities to evaluate the system safetybut, when we use cloud services it would arisesome concerns. All CoT-based middlewares thatwe mentioned rely on security measures that cloudprovider have guaranteed. A security managementplatform on user-side that provides the monitoringand controlling measures on cloud-side operationswould be essential. Privacy is equally importantbecause CoT is a composition of ubiquitous devicesand they are exposed to malicious devices. Commonauthentication and identification methods are notefficient due to frequent context changes, devicesresource limitations, spontaneous device acquisitionand etc.

D. Supporting Various Interface Protocol for E-healtcare domain

E-health can utilize CoT to provide various ser-vices such as patients monitoring. However, de-signing a suitable middleware on this sensitivedomain demands more efforts. Several CoT sen-sors, actuators, hubs or in general Things maybe implanted into patients? body or carrying bythem as a wearable device. There has been inad-equate attention on communication signals harmful

effects on humans body. Developers need to putadditional efforts to design a middleware whichcan support the maximum flexibility in deployingvarious interface protocols. For example, authors in[43] investigated millimeter-waves frequencies sideeffects and threats on humans body.

E. A light weight CoT-based Middleware for Ultraresources constrained devices

Internet of Nano Things (IoNT) is another IoTparadigm that is growing fast. It can be forecastedthat this technology shapes a considerable pro-portion of IoT in near future. There are severalreasons that IoNT has attracted the attention ofresearchers and investors but, the main reasons arecost efficiency and high deployment density whichincrease system accuracy. As we can expect, forimplementing this paradigm, it needs ultra resource-constrained devices that have limitations in pro-cessing capability, stored energy, storage capacity,communication range and etc. So designing a light-weight dedicated CoT-based middleware can re-solve many implementations issues.

F. Finding optimal place for analysis data by FogComputing

Fog-Computing [44] has potential to fulfill someof the requirements of CoT such as lower latency,mobility support, and location-awareness. In thisregard, authors in [45] reviewed Fog Computing inCoT and underlined Fog as a middleware in CloudComputing. Fog provides computation, storage, andnetworking services and stands between end nodesof IoT and traditional Clouds. One of the keyfunctions is finding optimal place for data analysisby Fog Computing. As shown in Figure 4, the Foglayer take place between IoT and Cloud and triesto be close as possible to underlying system forbetter real-time performance. On the other hand,the variation of requested task from middleware issignificant. For instance, in real-time traffic clas-sification, middleware may receive elastic, semi-elastic, soft real-time or hard real-time requests.Determining to what extent requests can move intoFog or Cloud is challenging. Passing them to thenearest or furthest distance is not always the most

TABLE IV: CoT-based Middleware vs. non CoT-based Middleware (“Tie” shows the feature is equallyavailable in both CoT and non-CoT scenario and there is no competitive advantage in each-one)

Functions CoT non-CoT DescriptionAdaptability Tie In CoT-based Middleware, dynamicity for adaptability is high but non CoT-based

Middleware is quicker for critical situations.ConnectivityConvergence

X - Cloud can provide more variety in interface protocol.

ContextManagement

X - In Context-aware platforms, Context Management needs continuous processing thatresiding it in the cloud allows Middleware to save processing power.

Energy Effi-ciency

X - It could be a tie because CoT-based Middleware consumes more energy forexchanging messages but non CoT-based Middleware use more processing powerand in general the later one is more considerable.

Flexibility - X In non CoT-based Middleware, developers can provide services as they want andit is third-party platform- independent.

Interoperability X - Cloud inherently is interoperable therefore can provide better range of heteroge-neous devices.

Maintainability - X In crisis time, it is essential for systems to perform appropriate operations in afraction of time. non CoT-based Middleware is the better choice to fulfill this task.

PlatformPortability

X - IoT is the composition of heterogeneous devices. Encountering unknown platformsis possible in non CoT-based Middleware due to weak forecasting or resourcelimitation to cover all platforms. Cloud can address these type of issues.

Quality ofService

- X Providing QoS in non CoT-based Middleware is more reasonable because there ismore control on infrastructure.

Real-TimeTasks

- X non CoT-based Middleware performs this feature better because there is less latencyon performing tasks.

ResourceDiscovery

- X Resources change at any moment. We can refer situations that resources lifetimein network is less than cloud-based Resource Discovery process time.

Reusability X - SoA is the main architecture style in CoT-based Middleware. This Architecture isknown for reusability. CoT uses everything as a service scheme that is a heavenfor reusability feature.

Security andPrivacy

Tie Cloud services implement security much safer (i.e. the possibility of DDOS attackreduces significantly). In contrary, Non CoT-based Middleware is reasonable forprivacy. So a tie is a fair result.

Transparency X - Transparency and abstraction is more sensible in Cloud environment.TrustworthinessManagement

X - This feature is crucial in Social Internet of Things. So we expect an enormousenvironment and a high volume of data exchanged. Therefore using cloud is muchbetter.

effective option. As the variation of services inFog is considerable, therefore it is necessary toperform some accurate calculations and assessmentsto determine optimal selection or combination ofresources for requested operations. Except for real-time classification, there are many other factorswhich need Fog to find the most efficient place forprocessing them. The recent works were not reallysuccessful to implement this feature. Realization ofthis feature significantly impacts cloud computingposition in industrial market.

G. Providing Quality of Service

In CoT, Providing SLA and guaranteeing QoS isquite challenging. Here, dynamicity of the networkis really high and predicting system behavior is abig problem. Furthermore, Cloud limitations evenmake the situation worse. As the main requirementsof QoS, we can name Bandwidth, Delay, Jitter andPacket Drop. The nature of the Cloud prevents toaddress those requirements. In order to implementa desired level of QoS, Fog Computing can helpby filling the gaps with better time service (TableV). However, these are just basic requirements

Fig. 4: Implementing CoT-based Middleware by using Fog Computing

TABLE V: Cloud & Fog Computing QoS Require-ments

Requirements Cloud FogLatency High LowJitter High Very LowDistance Through Internet Limited Hop CountHard Real-time No or Limited YesMobility Limited SupportedBandwidth More Demand Less Demand

of providing QoS and researchers need to designproper mechanisms to deploy them efficiently.

H. Standardization needs

Based on the conducted literature studies, wefound out that one of the main and obvious prob-lems is the lack of standardization in designingapproaches. As a suggestion for future work, aproposal of layered-based model can be helpful andprovides significant stability. although, by consider-ing heterogeneity nature of Internet of Things it mayseem quite challenging and add more complexity tothe already complex scheme.

In a nutshell and as concluding remarks of thisstudy, we present a head to head table (Table IV)which compares different features of CoT-based andnon CoT-based Middleware. As we found, CoT-based Middleware are suitable in several usecasesincluding social, smart home, smart city, smartagriculture, smart animal farming, smart grids andsmart retail applications which produce massivedata and don?t need hard real-time processing. Incontrary, non CoT-based middlewares can be moreutilisable in industrial control, E-healthcare andsmart logistics domains which need hard real-timeprocessing.

VIII. CONCLUSION

Cloud of Things (CoT) platforms will play a keyrole in near future for enabling service provisionin large Internet of Things environments. Towardthat goal, understanding the role and necessity ofmiddlewares in CoT is an essential. This studyfocuses on middleware technologies in CoT inthree main directions. Firstly it presents the major

features and characteristics of middlewares in CoTdomains and compare them from different archi-tectural design possibilities. Next, several middle-wares are introduces and studied based on theirarchitectures, service domain, application. Lastly alist of open challenges and issues are presentedthat are interesting problems to be tackled as futuredirection of this study.

REFERENCES

[1] D. Evans, The internet of things-how the next evolution ofthe internet is changing everything, Tech. rep., Cisco (042011).

[2] L. Atzori, A. Iera, G. Morabito, The internet of things: Asurvey, Computer Networks 54 (15) (2010) 2787–2805.

[3] Technical report, infso d.4 networked enterprise & rfidinfso g.2 micro & nanosystems, in: Co-operation with theworking group rfid of the etp eposs, internet of things in2020, roadmap for the future, version 1.1; 27 May 2008.

[4] Itu internet reports, the internet of things, http://www-cs-faculty.stanford.edu/˜uno/abcde.html.

[5] V. Issarny, M. Caporuscio, N. Georgantas, A perspectiveon the future of middleware-based software engineering,in: Future of Software Engineering, FOSE ’07, 2007, pp.244–258.

[6] J. Gubbi, R. Buyya, S. Marusic, M. Palaniswami, Internetof things (iot): A vision, architectural elements, and futuredirections, Future Gener. Comput. Syst. 29 (7) (2013)1645–1660.

[7] J. Zhou, T. Leppnen, E. Harjula, M. Ylianttila, T. Ojala,C. Yu, H. Jin, Cloudthings: A common architecture forintegrating the internet of things with cloud computing,in: IEEE 17th International Conference on Computer Sup-ported Cooperative Work in Design (CSCWD), 2013, pp.651–657.

[8] A. Botta, W. de Donato, V. Persico, A. Pescap, Integrationof cloud computing and internet of things: A survey, FutureGeneration Computer Systems 56 (2016) 684 – 700.

[9] B. B. P. Rao, P. Saluia, N. Sharma, A. Mittal, S. V. Sharma,Cloud computing for internet of things amp; sensing basedapplications, in: Sixth International Conference on SensingTechnology (ICST), 2012, pp. 374–380.

[10] F. Tao, Y. Cheng, L. D. Xu, L. Zhang, B. H. Li, Cciot-cmfg:Cloud computing and internet of things-based cloud man-ufacturing service system, IEEE Transactions on IndustrialInformatics 10 (2) (2014) 1435–1442.

[11] M. Aazam, I. Khan, A. A. Alsaffar, E. N. Huh, Cloudof things: Integrating internet of things and cloud com-puting and the issues involved, in: Proceedings of 11thInternational Bhurban Conference on Applied SciencesTechnology (IBCAST) Islamabad, Pakistan, 2014, pp. 414–419.

[12] G. Noto La Diega, Clouds of things: Data protection andconsumer law at the intersection of cloud computing andthe internet of things in the united kingdom.

[13] M. Aazam, P. P. Hung, E. N. Huh, Smart gateway basedcommunication for cloud of things, in: IEEE Interna-tional Conference on Intelligent Sensors, Sensor Networksand Information Processing (ISSNIP), 2014, pp. 1–6.doi:10.1109/ISSNIP.2014.6827673.

[14] K. Gama, L. Touseau, D. Donsez, Combining heteroge-neous service technologies for building an internet of thingsmiddleware, Comput. Commun. 35 (4) (2012) 405–417.

[15] Z. Song, A. A. Cardenas, R. Masuoka, Semantic middle-ware for the internet of things, in: Internet of Things (IOT),2010, pp. 1–8.

[16] C. Perera, A. Zaslavsky, P. Christen, M. Compton, D. Geor-gakopoulos, Context-aware sensor search, selection andranking model for internet of things middleware, in: IEEE14th International Conference on Mobile Data Manage-ment, Vol. 1, 2013, pp. 314–322.

[17] C. Perera, P. P. Jayaraman, A. Zaslavsky, P. Christen,D. Georgakopoulos, Mosden: An internet of things mid-dleware for resource constrained mobile devices, in: 47thHawaii International Conference on System Sciences,2014, pp. 1053–1062.

[18] M. Bazzani, D. Conzon, A. Scalera, M. A. Spirito, C. I.Trainito, Enabling the iot paradigm in e-health solutionsthrough the virtus middleware, in: IEEE 11th InternationalConference on Trust, Security and Privacy in Computingand Communications, 2012, pp. 1954–1959.

[19] A. Devaraju, S. Hoh, M. Hartley, A context gatheringframework for context-aware mobile solutions, in: Pro-ceedings of the 4th International Conference on MobileTechnology, Applications, and Systems and the 1st Inter-national Symposium on Computer Human Interaction inMobile Technology, Mobility ’07, ACM, 2007, pp. 39–46.

[20] L. D. Xu, W. He, S. Li, Internet of things in industries: Asurvey, IEEE Transactions on Industrial Informatics 10 (4)(2014) 2233–2243.

[21] J. Al-Jaroodi, I. Jawhar, A. Al-Dhaheri, F. Al-Abdouli,N. Mohamed, Security middleware approaches and issuesfor ubiquitous applications, Computers & Mathematicswith Applications 60 (2) (2010) 187 – 197, advancesin Cryptography, Security and Applications for FutureComputer Science.

[22] C. Perera, A. Zaslavsky, P. Christen, D. Georgakopoulos,Context aware computing for the internet of things: Asurvey, IEEE Communications Surveys Tutorials 16 (1).

[23] P. Spiess, S. Karnouskos, D. Guinard, D. Savio, O. Baecker,L. M. S. d. Souza, V. Trifa, Soa-based integration ofthe internet of things in enterprise services, in: IEEEInternational Conference on Web Services, 2009, pp. 968–975.

[24] K. J. Kwon, C. B. Park, H. Choi, Ddss: A communicationmiddleware based on the dds for mobile and pervasivesystems, in: 10th International Conference on AdvancedCommunication Technology, Vol. 2, 2008, pp. 1364–1369.doi:10.1109/ICACT.2008.4494018.

[25] J. Wu, P. Teregowda, M. Khabsa, S. Carman, D. Jordan,J. San Pedro Wandelmer, X. Lu, P. Mitra, C. L. Giles, Webcrawler middleware for search engine digital libraries: Acase study for citeseerx, in: Proceedings of the TwelfthInternational Workshop on Web Information and DataManagement, WIDM’12, ACM, 2012, pp. 57–64.

[26] K. Taha, D. Homouz, H. Al Muhairi, Z. Al Mahmoud,Grank: a middleware search engine for ranking genes byrelevance to given genes, BMC Bioinformatics 14 (1)(2013) 251.

[27] C. Perera, D. S. Talagala, C. H. Liu, J. C. Estrella, Energy-efficient location and activity-aware on-demand mobiledistributed sensing platform for sensing as a service iniot clouds, IEEE Transactions on Computational SocialSystems 2 (4) (2015) 171–181.

[28] A. Ben Hamida, F. Kon, N. Lago, A. Zarras, D. Athana-sopoulos, D. Pilios, P. Vassiliadis, N. Georgantas, V. Is-sarny, G. Mathioudakis, G. Bouloukakis, Y. Jarma,S. Hachem, A. Pathak, Integrated CHOReOS middleware -Enabling large-scale, QoS-aware adaptive choreographies,working paper or preprint (Sep. 2013).URL https://hal.inria.fr/hal-00912882

[29] C. Huo, T.-C. Chien, P. H. Chou, Middleware for iot-cloudintegration across application domains, IEEE Design andTest 31 (3).

[30] T. L. Vinh, S. Bouzefrane, J.-M. Farinone, A. Attar, B. P.Kennedy, Middleware to integrate mobile devices, sen-sors and cloud computing, Procedia Computer Science 52(2015) 234 – 243.

[31] Z. Ji, I. Ganchev, M. Droma, L. Zhao, X. Zhang, A cloud-based car parking middleware for iot-based smart cities:Design and implementation, Sensors 14 (12) (2014) 22372.

[32] J. Soldatos, N. Kefalakis, M. Hauswirth, M. Serrano, J.-P. Calbimonte, M. Riahi, K. Aberer, P. P. Jayaraman,A. Zaslavsky, I. P. Zarko, L. Skorin-Kapov, R. Herzog,OpenIoT: Open Source Internet-of-Things in the Cloud,2015, pp. 13–25.

[33] S. W. Han, Y. B. Yoon, H. Y. Youn, W.-D. Cho, A newmiddleware architecture for ubiquitous computing environ-ment, in: 2nd IEEE Workshop on Software Technologiesfor Future Embedded and Ubiquitous Systems,, 2004, pp.117–121.

[34] O. Davidyuk, J. Riekki, V.-M. Rautio, J. Sun, Context-aware middleware for mobile multimedia applications, in:Proceedings of the 3rd International Conference on Mobileand Ubiquitous Multimedia, MUM’04, ACM, 2004, pp.213–220.

[35] L. Capra, W. Emmerich, C. Mascolo, Carisma: context-aware reflective middleware system for mobile applica-tions, IEEE Transactions on Software Engineering 29 (10)(2003) 929–945.

[36] A. Badii, M. Crouch, C. Lallah, A context-awarenessframework for intelligent networked embedded systems,in: Third International Conference on Advances in Human-Oriented and Personalized Mechanisms, Technologies andServices, 2010, pp. 105–110.

[37] K. Aberer, M. Hauswirth, A. Salehi, A middleware for fastand flexible sensor network deployment, in: Proceedingsof the 32Nd International Conference on Very Large DataBases, VLDB ’06, 2006, pp. 1199–1202.

[38] F. Li, S. Sehic, S. Dustdar, Copal: An adaptive approachto context provisioning, in: IEEE 6th International Confer-ence on Wireless and Mobile Computing, Networking andCommunications, 2010, pp. 286–293.

[39] M. Roman, C. Hess, R. Cerqueira, A. Ranganathan, R. H.Campbell, K. Nahrstedt, A middleware infrastructure for

active spaces, IEEE Pervasive Computing 1 (4) (2002) 74–83.

[40] S. Gashti, G. Pujolle, J. Rotrou, An upnp-based context-aware framework for ubiquitous mesh home networks, in:IEEE 20th International Symposium on Personal, Indoorand Mobile Radio Communications, 2009, pp. 400–404.

[41] W. Wibisono, A. Zaslavsky, S. Ling, Comihoc: A middle-ware framework for context management in manet environ-ment, in: 24th IEEE International Conference on AdvancedInformation Networking and Applications, 2010, pp. 620–627.

[42] T. Gu, H. K. Pung, D. Q. Zhang, A middleware for buildingcontext-aware mobile services, in: IEEE 59th VehicularTechnology Conference. VTC 2004-Spring, Vol. 5, 2004,pp. 2656–2660 Vol.5.

[43] T. Wu, T. S. Rappaport, C. M. Collins, Safe for generationsto come: Considerations of safety for millimeter wavesin wireless communications, IEEE Microwave Magazine16 (2) (2015) 65–84.

[44] I. Stojmenovic, S. Wen, X. Huang, H. Luan, An overviewof fog computing and its security issues, Concurrencyand Computation: Practice and Experience 28 (10) (2016)2991–3005.

[45] M. Aazam, E. N. Huh, Fog computing: The cloud-iot/ioemiddleware paradigm, IEEE Potentials 35 (3) (2016) 40–44.