syddansk universitet smartcityware a service-oriented...

14
Syddansk Universitet SmartCityWare A Service-Oriented Middleware for Cloud and Fog Enabled Smart City Services Mohamed, Nader; Al-Jaroodi, Jameela; Jawhar, Imad; Lazarova-Molnar, Sanja; Mahmoud, Sara Published in: IEEE Access DOI: 10.1109/ACCESS.2017.2731382 Publication date: 2017 Document version Publisher's PDF, also known as Version of record Document license Unspecified Citation for pulished version (APA): Mohamed, N., Al-Jaroodi, J., Jawhar, I., Lazarova-Molnar, S., & Mahmoud, S. (2017). SmartCityWare: A Service-Oriented Middleware for Cloud and Fog Enabled Smart City Services. IEEE Access, 5, 17576-17588. DOI: 10.1109/ACCESS.2017.2731382 General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal ? Take down policy If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Download date: 13. jul.. 2018

Upload: nguyennga

Post on 28-Jun-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Syddansk Universitet

SmartCityWare

A Service-Oriented Middleware for Cloud and Fog Enabled Smart City Services

Mohamed, Nader; Al-Jaroodi, Jameela; Jawhar, Imad; Lazarova-Molnar, Sanja; Mahmoud,SaraPublished in:IEEE Access

DOI:10.1109/ACCESS.2017.2731382

Publication date:2017

Document versionPublisher's PDF, also known as Version of record

Document licenseUnspecified

Citation for pulished version (APA):Mohamed, N., Al-Jaroodi, J., Jawhar, I., Lazarova-Molnar, S., & Mahmoud, S. (2017). SmartCityWare: AService-Oriented Middleware for Cloud and Fog Enabled Smart City Services. IEEE Access, 5, 17576-17588.DOI: 10.1109/ACCESS.2017.2731382

General rightsCopyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright ownersand it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.

• Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal ?

Take down policyIf you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediatelyand investigate your claim.

Download date: 13. jul.. 2018

SPECIAL SECTION ON THE NEW ERA OF SMART CITIES: SENSORS,COMMUNICATION TECHNOLOGIES AND APPLICATIONS

Received May 31, 2017, accepted July 1, 2017, date of publication July 24, 2017, date of current version September 19, 2017.

Digital Object Identifier 10.1109/ACCESS.2017.2731382

SmartCityWare: A Service-Oriented Middlewarefor Cloud and Fog Enabled Smart City ServicesNADER MOHAMED1, JAMEELA AL-JAROODI2, IMAD JAWHAR3, (Member, IEEE),SANJA LAZAROVA-MOLNAR4, AND SARA MAHMOUD51Middleware Technologies Laboratory, Pittsburgh, PA 15057 USA2Department of Engineering, Robert Morris University, Moon, PA 15108 USA3Midcomp Research Center, 1600 Saida, Lebanon4Center for Energy Informatics, University of Southern Denmark, 5230 Odense, Denmark5College of Information Technology, United Arab Emirates University, 15551 Al Ain, UAE

Corresponding author: Nader Mohamed ([email protected])

ABSTRACT Smart cities are becoming a reality. Various aspects of modern cities are being automatedand integrated with information and communication technologies to achieve higher functionality, optimizedresources utilization, and management, and improved quality of life for the residents. Smart cities relyheavily on utilizing various software, hardware, and communication technologies to improve the operationsin areas, such as healthcare, transportation, energy, education, logistics, and many others, while reducingcosts and resources consumption. One of the promising technologies to support such efforts is the Cloud ofThings (CoT). CoT provides a platform for linking the cyber parts of a smart city that are executed on thecloud with the physical parts of the smart city, including residents, vehicles, power grids, buildings, waternetworks, hospitals, and other resources. Another useful technology is Fog Computing, which extends thetraditional Cloud Computing paradigm to the edge of the network to enable localized and real-time supportfor operating-enhanced smart city services. However, proper integration and efficient utilization of CoTand Fog Computing is not an easy task. This paper discusses how the service-oriented middleware (SOM)approach can help resolve some of the challenges of developing and operating smart city services using CoTand Fog Computing. We propose an SOM called SmartCityWare for effective integration and utilizationof CoT and Fog Computing. SmartCityWare abstracts services and components involved in smart cityapplications as services accessible through the service-oriented model. This enhances integration and allowsfor flexible inclusion and utilization of the various services needed in a smart city application. In addition,we discuss the implementation and experimental issues of SmartCityWare and demonstrate its use throughexamples of smart city applications.

INDEX TERMS Smart city, Cloud of Things, Internet of Things, cyber physical systems, middleware,service-oriented middleware, cloud computing, fog computing.

I. INTRODUCTIONSmart cities are the promising future of high quality livingfor the increasing population of cities in the world. Urbanpopulation increased from 746 million in 1950 to almost4 billion in 2014 and the projections show further increases inthese numbers reaching around 6 billion by 2050.Mega cities,accommodating 10 or more million people are increasing innumbers and large cities are also growing rapidly. To achievehigh quality living and manage and operate these large cities,innovative solutions are needed, leading to the developmentof the smart city concept.

In a smart city, various aspects of living, operations, andmanagement are automated and streamlined through effective

and usually intelligent computing systems. The base unit ina smart city system is the sensors. Sensors of various types,capabilities and functionalities are deployed to monitor andrecord city parameters. These sensors need to be integratedwith other devices and computing facilities to achieve theirgoals for monitoring and control of the smart city functions.

Various technologies and computational approaches pro-vide the basic capabilities to integrate the sensors, actuatorsand other devices in a city’s physical environment to create asmart city. Advances in Cyber-Physical Systems (CPS), Inter-net of Things (IoT), Cloud Computing (CC), Fog Computingand other software technologies have positively contributedto this goal. These new technologies offer an unprecedented

175762169-3536 2017 IEEE. Translations and content mining are permitted for academic research only.

Personal use is also permitted, but republication/redistribution requires IEEE permission.See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.

VOLUME 5, 2017

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

opportunity to create a wide array of applications that opti-mize smart cities’ services. These technologies are integratedinto the Cloud of Things (CoT) [1]. In CoT, all objectsof a smart city like the residents, vehicles, streets, build-ings, hospitals, and energy and water plants are intercon-nected through the IoT, which is integrated with CC systems,running intelligent software to optimize the smart city’sservices. In addition, Fog Computing can offer extensionfeatures for CC systems to better support low latency require-ments, location awareness, scalability, and mobility for theseservices [2].

Smart city applications can be developed to effectivelyand efficiently use the available and emerging technologiesto continue enhancing the living quality of the residents,while optimizing the utilization of the city’s resources andreducing the negative impact on the environment. One ofthese is Cloud Computing Systems, which provide largescale computational and data storage services to smartcities [3]–[5]. Another technology is Fog Computing Sys-tems, which augment the functions of cloud services byproviding services closer to the physical city environment.As a result, it can support the low latency, location awareness,mobility, streaming, and real-time requirements of the smartcity applications [6], [7]. Another very useful technology isthe Wireless Sensor Networks (WSN), which are used toconnect sensors for monitoring the different resources, com-ponents, residents and operations of a smart city [8], [9].The Internet of Things (IoT) is another technology beingdeveloped for various applications; however, it is very use-ful for integrating the physical objects of a smart city ina well-defined network [10], [11]. Cyber Physical systemsfurther extend the IoT concept to facilitate the interactionbetween the cyber world and the physical world in a smartcity [12]. Other relevant technologies for a smart city includerobotics, to provide different ground actions and physicalcontrols [13]; Unmanned Aerial Vehicles (UAV), to enhancedelivery of services, traffic monitoring, security and safetycontrols, and telecommunication services [14], [15]; and BigData Analytics (BDA), to provide smart decisions based oncollected data [16], [17].

Integrating technologies likeWSN, IoT, CPS, robotics, andUAVs in addition to other technologies that will be availablein the future with Cloud Computing will create the Cloud ofThings (CoT). CoT can support the operations in a smart city,which can also be further enhanced by utilizing Fog Com-puting [18]. CoT and Fog computing will provide a powerfulenvironment for supporting the operations of smart city appli-cations. However, developing, implementing, maintaining,and operating these applications in an effective manner aremajor challenges. This paper introduces a service-orientedmiddleware approach to relax these challenges. We proposeSmartCityWare, a SOM for integrating CoT and Fog Com-puting to support the development and execution of smartcity applications. This approach will provide a meaningfulrepresentation and utilities to design and implement suchservices.

This paper is organized as follows. Section II providesbackground information about smart city applications, CoT,and Fog Computing. Section III discusses using service-orientedmiddleware for smart city applications. A conceptualdesign and the functions and services of SmartCityWare arediscussed in Section IV while SmartCityWare runtime envi-ronment is discussed in Section V. Section VI illustrates someexamples for smart city applications using SmartCityWare.Some experimental evaluations are discussed in Section VII,Section VIII is an overview of some related work, andSection IX concludes the paper.

II. BACKGROUNDCreating and sustaining a smart city requires the integrationof various technologies and the collaboration of many enti-ties. City administration, city officials, emergency responseteams, workers and residents all need to be involved in theprocess. In addition, the infrastructure, buildings, transporta-tion systems, spaces and all physical aspects of the city areinvolved. To tie all of this together a sophisticated networkof sensor devices, actuators, computing facilities and smartdevices must be put in place. The general smart city conceptinvolves monitoring, controlling, and managing the condi-tions of all of the city’s infrastructures and physical com-ponents to optimize operations and use of resources, whileproviding high quality services to the citizens [19], [20].These include critical components like hospitals, power andwater plants, communication networks, airports, seaports andtransportation infrastructures. In addition, there are residen-tial and commercial buildings, parks, recreational facilities,vehicles, and all types of electronic and mechanical devicesused by people.

The major contributor to the emergence of smart citiesis the development in sensor technologies. These includespecialized sensors devised for specific purposes and also theuse of smart devices to provide sensing and data collectionfeatures like smart phones capable of sensing the location,temperature and other aspects of an environment. However,sensing devices also require networks and computing facili-ties that allow for accurate data collection, aggregation anddissemination. This requires using Information and Commu-nication Technologies (ICT) to facilitate and optimize theservices provided in a smart city. It is often stated that thegoal of utilizing ICT is to improve existing services by mak-ing them more efficient, more user-friendly or, in general,more citizen-centric. With the recent advances in ICT, allcity components and critical infrastructures can be integrated,monitored, and controlled for the benefit of the citizens.

One of the emerging technologies that effectively can beused for smart cities is the CoT. Having an IoT in place thatincludes sensing and actuating devices within a smart city canhelp provide specific enhancements. However, integratingthis IoT with the cloud opens up a larger set of capabilitiesto facilitate large scale computation and decision making forthe smart city. It will also allow for the integration of multipleIoTs and physical environments to create a larger view of the

VOLUME 5, 2017 17577

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

smart city’s operations, leading to enhanced decisions andoptimizations. The CoT helps connect, monitor, and applyenhancements in all aspects of a smart city through the IoTand Cloud services as shown in Figure 1. Cloud computingprovides a flexible virtual execution system and on-demandservices for a smart city. It can process and store huge datasets and offer dynamic computing capabilities that can bescaled in or out based on the varying demands of the smartcity services. The CoT can be implemented with a multiple-layer model. One of the most important layers is the CoTplatform as a service. This layer links the IoT and the CCinfrastructure and services and provide services to implementand operate optimization applications for smart city services.

FIGURE 1. The CoT Model for Smart Cities.

Another emerging technology that could be of great benefitto smart city applications is Fog computing as it can enhancethe CoT paradigm by providing small platforms located atthe network edges in a smart city. These fog platforms canoperate localized cloud-like services to support IoT oper-ations. The services can be control, storage, communica-tion, processing, configuration, monitoring, measurement,and management services to support a certain IoT smart cityapplication. Using Fog Computing, an application in a certainarea in a smart city can utilize an architecture that uses adedicated computer available locally, or one or more end-userdevices or nearby edge devices. The Fog platform will allowexecuting services geographically close to the IoT applica-tions. This offers several advantages for IoT applicationsincluding [2]:

• Providing low latency services, as fog devices arelocated closer to the actual IoT components and can reactfaster than the cloud.

• Offering location aware services based on the location ofthe IoT components in use and the connected fog nodes.

• Providing better scalability support for widely geo-graphical distributed applications. This is enabled due tothe availability of multiple fog nodes within the differentgeographic locations, thus the need to centralize thetasks is minimized as the fog nodes can handle manyrequirements locally.

• Supporting better mobility and access control for differ-ent types of mobile devices as they travel around the city.As a result, these devices can have access to the requiredservices through the nearest fog nodes.

• Offering better Quality of Services (QoS) support. Someservices have strict QoS requirements and the fog nodeswill be able to help support these requirements locally.

• Providing more efficient communication with other sys-tems. Fog nodes are structured and designed like cloudnodes thus they can communicate with different sys-tem through the cloud or other fogs to achieve certaingoals.

These advantages help create solutions to many challengesthat smart city applications face and enable the creation ofhigher quality and more controllable services to perfectlyachieve the vision of a smart city. The architecture of inte-grating Fog computing into CoT for a smart city is shownin Figure 2. In this architecture, the fogs will provide morelocalized real-time monitoring, control, and optimization forthe smart city applications while the cloud will provide globalmonitoring, control, optimization, and future planning forthese applications.

FIGURE 2. Integrating Fog Computing and CoT for Smart City applications.

Various types of smart city applications can be designedand implemented with the support of COT and Fog comput-ing. These include applications for intelligent transportationsystems, smart energy systems, infrastructure and environ-ment monitoring, and public safety applications. Table 1 listssome examples of smart city applications and how they canbenefit from both the CoT and fog computing. More dis-cussion on how CoT and fog computing can support theseapplications is available in [41]. These applications havespecific requirements and may pose several challenges fortheir developers. Some of these challenges include:

• Support for real time operations and responses.• The ability to seamlessly handle heterogeneous devicesand components.

• The ability to accommodate for devices with limitedresources and operational capabilities.

• The ability to support highly distributed systems span-ning large geographic areas.

• Support for security and privacy measures.• Support for reliability and fault tolerance.• Support for device mobility.• The ability to integrate and interoperate with othersystems.

17578 VOLUME 5, 2017

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

TABLE 1. Examples of smart city applications that can benefit from CoT and Fog computing.

The integration of CoT and Fog computing along withthe right software architectures can leverage many of thesechallenges leading to more effective and efficient smart cityapplications.

III. SERVICE-ORIENTED MIDDLEWAREMiddleware technologies have become a necessary part ofany distributed environment [21]. Middleware offers essen-tial enabling features and functionalities for facilitating theintegration of the distributed environment components andthe operations of the whole distributed and heterogeneousapplications. It simplifies the development and execution ofdistributed applications and hides their complexity. It alsoprovides common services for recurring challenges in thedistributed environment. Middleware also connects any setof components in a distributed environment to provide bet-ter functionalities. These components could be hardwaredevices such sensors, actuators, robots, UAVs, communi-cation devices, microcontrollers, cloud servers; or software

components including control modules, monitoring applica-tions, analytics services, and application specific softwaremodules. Better functionalities can be defined in terms ofcommunication, integration, operations, reliability, availabil-ity, scalability, security, and other value-added functions.

Smart cities are complex and very large distributed systemsthat share with other distributed environments their hetero-geneity, security, and reliability challenges. In addition, theyalso have their own unique challenges to provide and sup-port high scalability, efficiency, safety, real-time responses,and smartness (intelligence) requirements. These are com-mon challenges facing most smart city applications includingsmart grids, smart water networks, intelligent transportationsystems, infrastructures monitoring and protection, and sev-eral others. Designing and building applications meeting allthese challenges is extremely complex. As a result, it is almostimpossible to develop and operate smart city applicationswithout relying on advancedmiddleware technologies to sim-plify and facilitate the development and operations processes.

VOLUME 5, 2017 17579

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

A new and advanced approach in middleware technolo-gies is the use of service-oriented middleware (SOM). Thisapproach has been proven to simplify the implementationand operations of many applications in diverse industrialdomains [22]. The approach was used to reduce the effort andcost of development, testing, and operations. Similarly, SOMcan play an important role for developing, operating, and sup-porting smart city applications. Accordingly, we anticipate asuccessful migration of the SOMmodel to utilize the conceptof IoT to support smart city applications and provide a genericmiddleware platform that will highly increase productivityand widen the range of applications that can be designed andbuilt for smart cities.

SOM extends the capabilities of middleware and provideshigh flexibility for adding new and advanced functions tosmart city applications. SOM logically views smart city cyberand physical components as providers of services for smartcity applications. With SOM, all hardware devices such assensors, actuators, storage devices, communication devices,and processors can be viewed and utilized as services. Theimplementation of this SOM is usually achieved through webservices standards, wrapper technologies to map differentdevices’ interfaces to web service interfaces, and middle-ware services to enable the integration among both servicesclients and services providers [22]. Furthermore, it can inte-grate these services with other services provided by CloudComputing and Fog Computing Thus, allowing applicationdevelopers to view everything as a single large system thatprovides basic and advanced services to smart city appli-cations. Advanced services, such data aggregation, adapta-tion, security, self-organization, reliability, and management,can be designed, implemented, and integrated in a SOMframework through a more flexible and easy to use devel-opment and execution environment. SOM for smart citiesis necessary to support several, otherwise hard to incorpo-rate, functionalities in the service-oriented computing (SOC)model. These functionalities include the functional and non-functional requirements that different services may need. Forany service-oriented application, there are common function-alities such as service registry, discovery, communication,reliability and security that are needed by any of these appli-cations. These can be easily generalized and made availablevia the SOM platform to be used by the applications’ devel-opers to easily implement smart city applications. Generally,SOM for smart cities should support several requirements,some of which (e.g. the first three in the list) are common forany SOC application, while the rest are enforced by the char-acteristics of the smart city environment and the challengesof implementing and operating applications on CoT and FogComputing. These requirements include:

1. Runtime support for services deployment and execu-tion: as all devices in a smart city including componentsof supported cloud computing and fog computing areviewed as a set of services available to support theapplications, SOM should provide mechanisms to link,load, deploy, and execute these services as needed.

2. Support for different communication methods amongservice consumers, services, service registries and bro-kers that enable reliable and efficient local and remoteservices utilization.

3. Support for consumers to discover and use registeredservices: SOM should enable client applications todiscover and use registered services when needed.SOM should also support run-time integration betweenapplications and registered services.

4. Support for service transparency to client applications:SOM should allow client applications to transparentlyuse available services without exposing services imple-mentation details or, in some situations, their detailedcomponents locations.

5. Suitable abstractions to hide the heterogeneity ofthe underlying environments: all heterogeneity detailsof a smart city’s physical devices and networksshould be hidden from the applications. SOMshould provide high-level interfaces to utilize cyberand physical smart city resources without requir-ing application developers to deal directly with theheterogeneity.

6. Support for configurable services: SOM should providemechanisms for client applications to configure smartcity services to meet specific applications’ require-ments such as QoS, security or reliability. Configuringsmart city services usually requires dealing with detailsand parameters of some hardware, network compo-nents, cloud and fog configurations. Doing this forconfiguring QoS requirements, for example, will bea complex task for regular users. However, SOM canprovide mechanisms to be used easily by client applica-tions to configure smart city resources for their specificrequirements.

7. Support for self-organization mechanisms: thisincludes self-x properties such self-management,self-healing, self-configuration, auto-discovery, self-adaptation, and self-optimization of service providers.Smart cities are dynamic distributed environmentswhere resources can be added, changed, or removedanytime. In addition, some resources may be mobilelike the UAVs. The availability of services forsuch devices is also dynamic. Therefore, SOMshould support self-management, auto-discovery, self-optimization and auto-change mechanisms for effi-cient utilization of all available services. For example,when a sensor provides a service for sensing a certainattribute, the SOM should discover that service andallow the client applications to use it when they need it.When that senor fails, SOM should automaticallyswitch the application to a similar service currentlyavailable in the area. Furthermore, the SOM shouldbe able to notify the application if nothing matchingtheir needs is currently available. This helps solve thescalability, heterogeneity, and network organizationchallenges.

17580 VOLUME 5, 2017

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

8. Support for interoperability with a variety of devices:This requirement helps solve the heterogeneity chal-lenge in smart cities by supporting different interoper-ability mechanisms to match available devices. Somesmart city applications require a variety of devices tobe operated. SOM for smart cities can be designed tobe interoperable with different devices such as deviceswith different types of sensors, RFID, vehicles, UAVs,cloud and fog services to enable easy application devel-opment and operations.

9. Efficient handling of large volumes of data and highcommunication loads: many smart city applicationsinvolve large volumes of data and high communi-cation loads as they operate in data-rich environ-ments and handle a large amount of data generatingservices. As some of the used systems and devicesmay have limited resources, SOM should efficientlyand carefully deal with that load through trade-offsbetween smart city applications requirements in termsof accuracy, bandwidth, delay, and energy consump-tion. SOM should also be capable of reallocating dataas necessary while maintaining proper access to theapplications using it.

10. Support for secure communication and execution: asmost smart city applications involve sensitive and crit-ical information, secure communication and executionbecomes a very important aspect in SOM for smartcities. SOM should provide mechanisms to secure theutilization and operations of both CoT and Fog Com-puting services. All communications and execution forsupporting these services should be also secured.

11. Support for QoS requirements: some smart city appli-cations have specific QoS requirements. Mechanismsare needed to configure and satisfy these requirementsin the CoT and Fog computing systems utilized bythese applications. An example of QoS requirementsin a smart city can be observing and reporting a currenttraffic situation in a certain road intersect within a giventime frame and within a specific error margin. In somesituations, the QoS requirements can come from multi-ple applications such as safety and collaborative sens-ing. SOM for smart cities should provide uniforminterfaces to configure the QoS requirements for theseapplications and ensure achieving these requirements.

12. Support for integration with other systems: smart cityapplications usually do not operate in isolation thus theSOM should enable the integration of smart city appli-cations with other systems such as enterprise or websystems. For example, some web applications rely onsmart city applications for their current informationsuch as information on traffic conditions. In this case,SOM should enable that integration such that theseapplications can fulfill their goals.

In addition to these requirements, there are other advancedand specialized requirements that are needed for some smartcity applications. Examples are support for context awareness

and location-based services. Generally, SOM is designed tobest suit the underlying environments it will serve. Therefore,many of the existing SOM designs may provide some ofthe requirements described above, but most do not supportall smart city applications requirements and do not providecomplete solutions for their challenges.

IV. SMARTCITYWARESmartCityWare is a service-oriented middleware platformdesigned specifically to utilize CoT and Fog Computing tosupport developing and operating smart city applications.The main purpose of SmartCityWare is to provide a virtualenvironment to be used to develop and deploy smart cityapplications. SmartCityWare consists of a set of services andamulti-agent runtime environment. In this section, we discussthe services of SmartCityWare while in Section Vwewill dis-cuss the multi-agent runtime environment of SmartCityWare.

In SmartCityWare, all functions are viewed as a set ofservices that can be used to build and support the execution ofdifferent smart city applications. These services are classifiedinto core services and environmental services. Core servicesare those developed specifically for the core operations ofSmartCityWare, such as the broker, security, service invo-cation, and location aware services. These services provideoverall control for the whole system. Environmental servicesprovide access to services provided by one or more cloud ser-vice provider, services provided by multiple distributed fogs,and services provided by multiple IoT devices including sen-sors,WSN, actuators, cameras, cars, UAVs, robots, etc. Cloudservices can be Infrastructure as a Service (IaaS), Platform asa Service (PaaS), and Software a Service (SaaS), which candefine different services for smart city applications includingdata mining, big data analytics, optimization, and simulationservices. Fog services can be control, processing, storage,communication, streaming, configuration, monitoring, mea-surement, and management services. The IoT devices ser-vices provide interfaces to utilize device functionalities likesensing, action, or other services. The environmental servicescan either provide direct interfaces to access the originalservices, provided by a cloud, a fog, or IoT device or theyintroduce some added-value for the original services suchas adding reliability and security features. While some IoTdevices can execute on-board code to implement and providesome services, other IoT devices will be controlled mainlyby a fog that will have services that provide interfaces toutilize these devices’ functionalities. SmartCityWare servicescan be used by smart city applications available on the cloud,fog, or IoT devices such as a car asking for a certain servicefrom a smart city application available on the cloud.

Themain functions of SmartCityWare are to enable smoothintegration and operations among all these units to effectivelysupport smart city applications. The SmartCityWare serviceswill be distributed among multiple clouds, fogs, and IoTdevices as shown in Figure 3. Each service defines a few sim-ple interfaces that make it available to other services. UsingSOM concepts for SmartCityWare provides mechanisms to

VOLUME 5, 2017 17581

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

FIGURE 3. SmartCityWare Supporting Smart City Applications.

link available services to build new services. A specific subsetof the available distributed services in SmartCityWare can beintegrated and deployed for the accomplishment of a specificapplication in a smart city. In addition, any service can be aclient or consumer of other services. The required services fora certain application are integrated using SmartCityWare thataims to achieve loose coupling among interacting services.SmartCityWare manages service advertisement and discov-ery, communications, and invocations. In addition, it canbe used to implement collaborative services across multiplesmart city applications and with other SOC type systems.

Although SmartCityWare can include many core services,the main mandatory services are the broker services, invo-cation services, location-based service, and security services.These four services are essential to ensure effective utilizationof other available services and to facilitate the main functionsit offers.

A. BROKER SERVICESBroker services are responsible for CoT, fog computing, andIoT services advertisement, discovery, and registration. Allservices in all participating platforms and devices are adver-tised, registered, and discovered using the broker services.There are two types of broker services: a global broker thatis available on the cloud, and local broker services that areavailable in each fog in the environment. While the globalbroker service maintains information about all services inthe environment, the local broker service in each fog onlymaintains information about the current available serviceswithin the fog and information about services provided by IoTdevices currently associated with the fog. This approach isused to allow applications and services within a fog to utilizeavailable services and resources and provide low latencyresponses. As a result, the time needed to discover servicesis minimized to efficiently and accurately utilize the services.The global broker service maintains services information forthe whole environment including services available in allfogs. The local fog brokers regularly update the global brokerabout the availability and status of their services. The fog

service brokers maintain description information about localservices. The service description information includes thestandard information using Web Service Description Lan-guage (WSDL) for each defined service. Each serviceinformation includes the operations that the service can per-form, the specific types and formats of the message it expectsbetween the service provider and service consumer, andwhere the service can be located on the network.

B. INVOCATION SERVICESWhen an application discovers a service it needs, it willrequire that service to be invoked with the proper inter-faces. The invocation services, local and remote, are usedby consumers with SmartCityWare support to start executingthe required services. Local invocation services are limitedwithin a single system where services needed exist in thesame location. Remote service invocation can be between afog service and another fog service, between an IoT deviceservice and a fog service, between a fog service and acloud service, or between a cloud service and a fog service.SmartCityWare handles message addressing, establishingcommunication connections between service consumers andproducers, data marshaling and demarshalling, deliveringrequests and responses, and executing services. All thesesteps in the invocation process are achieved based on webservices standards.

C. LOCATION BASED SERVICESSmartCityWare can provide location-based services. Unlikeregular service brokers that are used over the Internet,SmartCityWare service brokers for fogs maintain additionalinformation about the current positions of currently con-nected IoT mobile devices. The main reason for maintainingcurrent positions is that some of their services can be consid-ered useful and may be utilized only if the provider deviceis in a specific location; otherwise, there is no usefulness inutilizing these services. One example is using a sensor serviceon a robot if the robot is available within a specific location.A service consumer in a fog can look up a certain servicewithin a specific location through its fog service broker. If thisservice is available within the fog’s range then WSDL infor-mation about the service is sent to the service consumer toutilize the service using a local service invocation. Otherwise,the fog service broker will forward the lookup request tothe global service broker on the cloud and if the service isavailable then the service consumer utilizes the service usinga remote service invocation.

D. SECURITY SERVICESVarious security mechanisms can be used by various clouds,fogs, and IoT devices in smart city applications. The mainfunctions of security services in SmartCityWare are to inte-grate and regulate security mechanisms among all thesecomponents and ensure that the required security measuresare applied appropriately to protect the smart city appli-cations, provided services, and the physical environments.

17582 VOLUME 5, 2017

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

The security services include authorization and authentica-tion services and access control services for the smart cityapplications, SmartCityWare services, and the physical envi-ronment. These services can be provided with varying levelsof protection measures, such that different applications canuse the suitable set for their security requirements.

E. OTHER CORE SERVICESSmartCityWare is comprised of a collection of services, thusit becomes possible to introduce other specialized servicesthat implement common solutions for smart city applicationsto the SmartCityWare platform. These specialized servicescan cover additional requirements from those discussed inSection III. One example is adding reliability and fault tol-erance features. For example, Alho and Mattila [42] pro-posed, developed, and evaluated a service-oriented approachto address reliability and fault tolerance in cyber-physical sys-tems. This approach can be employed as a collection of ser-vices and added to SmartCityWare. Furthermore, additionalcore features and services can be added to further customizeSmartCityWare for specific smart city applications like theones listed in Section II. Some examples can be servicesto support high mobility for vehicular applications or dis-tributed resource management services for large-scale smartapplications such as smart grids. In addition, SmartCityWareservices can use advanced functions provided by the networkused for connecting the smart city’s distributed components.One example is to utilize Software Defined Networking(SDN) features which provide abstractions for the under-lying networks and systems to programmatically controland configure the networks to achieve the required networkperformance [43]. This requires integrating SmartCityWarewith SDN controllers such as OpenDaylight [44]. The detailsof this option are left for future investigation. Generally,SmartCityWare offers a middleware infrastructure where ser-vices and resources provided by Cloud Computing and FogComputing can be added to help in solving the diverse issuesof smart city applications.

V. SMARTCITYWARE MULTI-AGENTRUNTIME ENVIRONMENTThe main function of SmartCityWare multi-agent runtimeenvironment is to manage the Smart city’s IoT, fogs andcloud distributed services. It provides a distributed run-time environment to securely execute these services asshown in Figure 3 earlier. This runtime environment is basedon our earlier implementation of a multi-agent middle-ware infrastructure environment developed for heterogeneoussystems [34], [35]. We customized that middleware to sup-port the SOC model of SmartCityWare. This SmartCityWaremulti-agent runtime environment is a pure Java infrastructurebased on a distributed memory model. This makes it portable,secure, and capable of handling different heterogonous envi-ronments that consist of heterogeneous fogs, clouds, andIoT devices. The agents are deployed in the participatingfogs and cloud machines to support SmartCityWare services

runtime requirements. The infrastructure has various compo-nents that collectively provide the runtime support for boththe core and environmental services of SmartCityWare.

A. AGENTSSoftware agents’ technology has been used in many systemsto enhance the performance and quality of their services [47].Our middleware infrastructure utilizes software agents toprovide flexible and expandable middleware services forhigh-performance distributed service-oriented environments.The main functions of the agents are to deploy, schedule,and support the execution of the service codes in differentfogs, in addition to managing, controlling, monitoring, andscheduling the available resources on a single fog or on aset of related distributed heterogeneous fogs. When a smartcity application is executed, an agent performs the followingtasks:

1. Examine available fog resources and schedule the ser-vices for execution.

2. Convert scheduled user services into threads, thenremotely upload and execute them directly from themain memories on the remote fog machines.

3. Monitor and control resources and provide monitoringand control functions to the user.

For high throughput, the agents are designed to be multi-threaded, where each thread serves a client’s service request.Once user threads are deployed, they directly communicatewith one another to perform their distributed tasks, thus free-ing the agents and reducing the overhead on the user pro-grams. Agents’ communication mechanisms are employedusing sockets and each agent consists of several componentsthat implement different functions:

1. The Request Manager handles user job requests such asdeploying services’ classes, starting/stopping a service,and checking agents/services/threads status. Requestscome from client services or from agents of otherfogs or clouds.

2. The Resource Manager provides methods to manage,schedule, and maintain the resources of the machinewhere the agent resides. It keeps records of executingthreads, machine and communication resources’ uti-lization, and performance information. In addition, it isresponsible for reclaiming system resources after eachservice’s completion or termination.

3. The Security Manager provides security measures forthe system (see next subsection for details).

4. The Service Class Loader remotely loads user serviceclasses on the remote machines preparing for execu-tion.

5. The Scheduler selects the fogs/cloud machines to exe-cute a user service based on the its requirements.

B. MULTIUSER AND SECURITY ISSUESThe multi-agent middleware infrastructure allows mul-tiple users to execute multiple services simultaneously.

VOLUME 5, 2017 17583

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

To properly manage these services, each service has mul-tiple levels of identification, starting with a unique serviceID assigned by the system. The user ID and the programname further distinguish different services. Within each ser-vice, thread IDs are used to identify the remote threads ofthe service. Executing user threads on remote fog machinesexposes these fogs to many ‘‘alien’’ threats, raising securityand integrity worries. Therefore, these machines must beprotected to ensure safe execution. Java’s default securitymanager offers some security mechanisms of protection bychecking executions against certain defined security policiesbefore execution. However, the security manager in Java hassome limitations, thus many features were updated for ourmiddleware infrastructure. More specifically, two modes ofoperation are used to offer a secure and reliable environment:

1. The Agent Mode, in which no limitations are enforced.A thread running in this mode has full access andcontrol of all the operations, services, and resources inthe corresponding fog.

2. The User Mode, in which limitations are enforced tolimit users’ access to the fog operations, services, andresources. Some operations, such as removing files,initiating a process, using system calls, and changingsystem properties are inactive in this mode.

With the security modes in place, the user services havefull access to operations and resources on their local machines(where the user job was initiated), but limited and controlledaccess to all remote machines’ resources (since they are run-ning in user mode). Nevertheless, this policy can be adaptedto offer other levels of access control, when needed, on theavailable fog machines. For example, a user can be given toaccess to certain fogs while he/she is disabled on other fogs.

VI. APPLICATION EXAMPLESSmartCityWare can be utilized for building and operatingsmart city applications. Here we present two potential andrelevant smart city applications for the SmartCityWare: anintelligent traffic light control system; and smart buildingscollaborative data analytics.

A. INTELLIGENT TRAFFIC LIGHT CONTROL SYSTEMIntelligent traffic light controls can be facilitated bySmartCityWare. This implies that the traffic light controlswill feature monitoring devices at numerous locations toaccurately capture and model traffic patterns and utilize thisinformation to adjust traffic lights to optimize flow. This typeof application can, furthermore, utilize global positioning,vehicle-to-vehicle and vehicle-to-infrastructure communica-tion systems to enhance the granularity of data collection.For example, individual vehicles can be observed from vari-ous perspectives (road sensors, cameras, on vehicle sensors,neighboring vehicles, etc.) to create a more accurate models.This enhanced granularity of data can be utilized to achieveglobal urban traffic control optimizations. We expect thisapplication to yield shorter traffic delays, higher through-put, shorter vehicles travel times, higher vehicles averagevelocity, and improved prioritization of emergency vehicles’

FIGURE 4. SmartCityWare application for intelligent traffic light controlsystems.

movements in urban areas. Typical algorithms that can beutilized to enhance urban traffic control optimization arelearning and adaptation algorithms. Projects that exemplifythis are discussed in [23], [24], and [25].

SmartCityWare can support the development and opera-tions of intelligent traffic light control systems. All involveddevices within the reaching area of the traffic light, such asthe vehicles, road sensors, and communication devices, areconsidered as services that observe the status of the trafficin that area. These processes and elements are illustrated inhigh-level in Figure 4. In each traffic light, a fog can beused to perform various services, as well as provide localoptimization. The information gathered through the relevantdevices will be utilized by the fog to make informed opti-mizing decisions about specific traffic lights. A collectionof services on a cloud can also monitor the global trafficstatus within the smart city by observing the status of thefogs operations and local conditions. This information willbe utilized by the cloud services to provide global optimiza-tions for decreasing traffic delays, enhancing vehicles’ flow,and prioritizing emergency traffic on a larger scale, coveringurban locations more thoroughly. The status of the trafficin a smart city can be gathered through these services inregular periods. This status can then be used to analyze,assess and enhance the traffic, as well as configure the fogservices correspondingly. Furthermore, cloud services canfacilitate synchronization mechanisms among multiple fogsto organize multiple traffic lights available within a shortdistance of each other or positioned at a significant streetin a smart city. With the change in traffic conditions, allfogs will fine-tune their operations using the locally collectedinformation along with the global view delivered by the cloudservices.

B. SMART BUILDINGS DATA ANALYTICSAnother potential application of SmartCityWare is enablingcollaborative data analytics for optimizing smart buildings

17584 VOLUME 5, 2017

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

energy performance. As it has been stated repeatedly, build-ings in urban areas account for around 40% of the overallenergy consumption [45]. Thus, their energy performanceoptimization represents a significant opportunity to reducethe overall energy consumption. A large part of commercialbuildings is run by Building Management Systems (BMS),and the utilization of Information and Communication Tech-nologies (ICT) enables for utilization of sophisticated algo-rithms and methods to enhance buildings’ performance.Furthermore, smart buildings encompass many sensing andmonitoring devices, as well as various types of actuators. As ithas been demonstrated in [46], that collaborative data ana-lytics of smart buildings can positively impact the accuracyand quality of results, decisions and actions, as compared toisolated buildings data analytics, in which cases it would needlong times of data collection before their data becomes useful.SmartCityWare can be utilized to enhance the collaborativedata analytics among large numbers of smart buildings.

FIGURE 5. SmartCityWare application for collaborative data analytics forsmart buildings.

The availability and quality of security services would behighly relevant for participating buildings’ owners, as weare talking about commonly confidential data. Therefore,SmartCityWare will be responsible for providing adequatemechanisms for anonymizing and protecting data. It will alsoprovide mechanisms to transfer data to the cloud, as well asmachine learning algorithms for development of models. Thecloud will be providing these learning algorithms and it willperform global optimization, also taking into considerationinformation from the smart grid power generation. Further-more, SmartCityWare will offer mechanisms for transferringdecisions and recommendations to smart buildings, whichcan then act upon them to enhance their performances. Theseprocesses and main participants are illustrated in Figure 5.Here, as shown in the figure, a fog can be used for each build-ing to execute many recommendations and to provide localoptimization. SmartCityWare will enable development ofmuch more accurate models, as yielded by the collaborativedata analytics. These models can serve different purposes,such as: timely and accurate fault detection and diagnosis

(cloud services), generation of (nearly) optimal preventivemaintenance schedules (fog services), optimization of match-ing of demand and response (cloud services), generation ofoptimal set points for each building (fog services), etc.

Using SmartCityWare to enable utilizing cloud computingfor collaborative data analytics for smart building can pro-vide faster mechanisms to discover faults. As shown in [46],energy savings can be achieved with connecting two or moresmart buildings to the cloud. The savings can be increased byconnecting more buildings as faults can be discovered fasterand energy losses will be discovered and avoided earlier.Although, some overhead and extra cost will be involved inthis connection, energy savings from experiences collectedfrom multiple buildings can significantly exceed the extracosts specially with multiple buildings. More analysis andinformation on this approach can be found in [46].

VII. IMPLEMENTATION AND EXPERIMENTSA SmartCityWare prototype was implemented including themulti-agent runtime environment discussed in Section V.In addition, most of the core services of SmartCityWarementioned in Section IV were implemented. These includethe broker services, invocation services, and location-basedservices. Two types of broker services were implemented:the global broker that will be deployed on the cloud andthe local brokers that will be deployed on all fogs. A dis-tributed process to update the global broker, with new infor-mation from the local brokers, is executed periodically every30 seconds. This update may include adding a new service,removing a service, or changing the location of a service.A mechanism is also implemented to allow a local brokerto forward a service lookup request to the global broker ifit does not have the requested service. Both local and remoteservice invocations were also implemented and added to theprototype implementation.

For the IoT side, we used the Arduino board [36] whichis open source hardware for embedded systems. For thisprototype implementation, the Arduino was used as theIoT payload subsystem that is the onboard device request-ing services. Some sensors were connected to the Arduinosuch as DHT11 sensor [37] for temperature and humiditymeasurements. Furthermore, some LEDs and a buzz wereinstalled to represent actuators. In addition, we installed anAdafruit CC3000 Wi-Fi board [38] to connect the Arduinoto a local area network that has a fog. The Arduino codewas developed using the Arduino IDE [39] with the AdafruitCC3000 library [40]. Each IoT service was implemented witha RESTful API.

At the fog side, there is a service that represents each sensoror actuator attached to the Arduino. The main function ofthese services is to map and bridge a call from the SOAPAPIs to RESTful APIs. All sensor and actuator services areregistered with the local broker. In addition, the global brokeris periodically updated with these services.

For the experiments, we used three computers; one rep-resents the cloud and two represent two fogs. In addition,

VOLUME 5, 2017 17585

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

we used WAN emulators among the machines to introducethe effects of using long distances and/or the Internet toconnect them. Experiments were conducted with differentconfigurations:

• LSC: a local IoT service call within the correspondingfog.

• RSCCF: a remote IoT service call from the cloud.• RSCFF: a remote IoT service call to another fog whereboth fogs are connected using a WAN and not involvingthe cloud.

• RSCFCF: a remote IoT service call to another fogthrough the cloud.

The experiment was repeated for two types of services. Thefirst service is to get the current temperature (CurTemp) whilethe second is to turn on the LED (LEDon). The average resultsof 10 runs of multiple service calls are shown in Figure 6.These recoded times for these calls do not include the servicelookup times. The response time for a service call from fogto another fog and from cloud to fog is similar as the servicecall that is directly done between the client fog and the serverfog without involving the cloud.

FIGURE 6. IoT device service calls response times.

The average service lookup time for local services (Local),remote services between a fog and the cloud or between afog and another fog where they are connected by a WAN(Remote-direct), and remote services between a fog andanother fog through the cloud (Remote-cloud) as there isno direct network between both fogs are shown in Figure 7.As shown, there is a big difference between local and remoteservice lookup times. The local services can look for andutilize the local fog services and local IoT device servicesfaster. This enables having low latency services supportedby the available fogs for IoT applications. At the same time,local services can utilize services at the cloud or at other fogsincluding their IoT device services. Any cloud service canalso utilize any services available at any fog.

VIII. RELATED WORKSeveral middleware platforms were proposed and developedto solve different challenges in smart cities. Some examples

FIGURE 7. Service lookup times.

of these middleware platforms are Civitas [26], SOFIA [8],VITAL [27], SmartUM [28], SMArc [29], GAMBAS [30],and CityHub [31]. One of the main differences betweenSmartCityWare and other proposed middleware platforms isthat SmartCityWare is a completely service-oriented middle-ware that utilizes both emerging CoT and Fog Computingto provide different services for smart cities. The represen-tation of all components and tools as services allow for asmooth integration of services using a common integrationand deployment mechanism. An advantage of using SOM isallowing the middleware to be open for unlimited extensionsincluding utilizing services provided by other systems as wellas integrating and utilizing future developed technologies aspart of the middleware.

Different engineering issues such as developing genericcomputational models for smart city platforms and the dif-ficulty of developing a common platform for smart citieswere discussed in [32] and [33]. Our work in this paperutilizes the flexibility and extensibility of the service-orientedarchitecture to add the needed flexibility and extensibilityto the SmartCityWare middleware platform. As a result,SmartCityWare can be built using current available technolo-gies, yet it can evolve over time to include more services andutilize state-of-the-art algorithms, tools and models as theyare developed.

IX. CONCLUSIONSmart city applications provide numerous enhancements tothe smart city features and capabilities leading to enhancedoperations, optimized resources utilization and ultimately abetter quality of life for the residents. These applicationsoften require using multiple ICT components and the inte-gration of various systems and services. IoT, Fog and Cloudcomputing can be integrated to support these applications,yet this imposes multiple challenges on the developmentand operations of these applications. Middleware support isessential for such applications tomeet the challenges imposedsuch as heterogeneity, mobility, and real-time support. In this

17586 VOLUME 5, 2017

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

paper, we outlined the functions and features needed in amiddleware infrastructure to support smart city applications.Based on these functions, a service-oriented middleware thatintegrates and utilizes the cloud of things (CoT) and fogcomputing and provides a set of services to support smartcity applications was proposed. This middleware is namedSmartCityWare, where all system resources are viewed as aset of services to be used to develop smart city applications.One of the main advantages of this approach is the flexibilityof extending the middleware itself to include new and moreadvanced services to support smart city applications as theydevelop. In addition, it provides the flexibility to add moredevices, components, and services as the city grows or moreservices are needed. In addition, the proposed middlewarecan be easily extended to utilize emerging technologies, otherthan Cloud of Things and Fog Computing, for supportingsmart city applications in the future. In addition, we dis-cussed the design and architecture of SmartCityWare and itsruntime environment. We also offered some implementationdetails and experimental results showing the validity of theapproach. In the future, we plan to enhance the implemen-tation of SmartCityWare, include more features and servicescommon to many smart city applications and demonstrate itsfeatures through actual implementations of specific smart cityapplications.

REFERENCES[1] P. Parwekar, ‘‘From Internet of Things towards cloud of things,’’ in

Proc. 2nd Int. Conf. Comput. Commun. Technol. (ICCCT), Sep. 2011,pp. 329–333.

[2] F. Bonomi, R. Milito, J. Zhu, and S. Addepalli, ‘‘Fog computing and itsrole in the Internet of Things,’’ in Proc. 1st Ed. MCC Workshop MobileCloud Comput., 2012, pp. 13–16.

[3] T. Clohessy, T. Acton, and L. Morgan, ‘‘Smart city as a service (SCaaS):A future roadmap for e-government smart city cloud computing initia-tives,’’ in Proc. IEEE/ACM 7th Int. Conf. Utility Cloud Comput., 2014,pp. 836–841.

[4] S. Yamamoto, S. Matsumoto, and M. Nakamura, ‘‘Using cloud technolo-gies for large-scale house data in smart city,’’ in Proc. IEEE 4th Int. Conf.Cloud Comput. Technol. Sci. (CloudCom), Dec. 2012, pp. 141–148.

[5] Z. Khan and S. L. Kiani, ‘‘A cloud-based architecture for citizen servicesin smart cities,’’ in Proc. IEEE/ACM 5th Int. Conf. Utility Cloud Comput.,2012, pp. 315–320.

[6] B. Tang, Z. Chen, G. Hefferman, T. Wei, H. He, and Q. Yang, ‘‘A hierar-chical distributed fog computing architecture for big data analysis in smartcities,’’ in Proc. ASE BigData SocialInformat., 2015, pp. 1–28.

[7] A. Giordano, G. Spezzano, and A. Vinci, ‘‘Smart agents and fog comput-ing for smart city applications,’’ in Proc. Int. Conf. Smart Cities, 2016,pp. 137–146.

[8] L. Filipponi, A. Vitaletti, G. Landi, V. Memeo, G. Laura, and P. Pucci,‘‘Smart city: An event driven architecture for monitoring public spaceswith heterogeneous sensors,’’ in Proc. 4th Int. Conf. Sensor Technol.Appl. (SENSORCOMM), Jul. 2010, pp. 281–286.

[9] T. Watteyne and K. S. J. Pister, ‘‘Smarter cities through standards-basedwireless sensor networks,’’ IBM J. Res. Develop., vol. 55, nos. 1–2,pp. 7:1–7:10, Jan./Mar. 2011.

[10] A. Zanella, N. Bui, A. Castellani, L. Vangelista, and M. Zorzi, ‘‘Internet ofThings for smart cities,’’ IEEE Internet Things J., vol. 1, no. 1, pp. 22–32,Feb. 2014.

[11] J. Jin, J. Gubbi, S. Marusic, and M. Palaniswami, ‘‘An information frame-work for creating a smart city through Internet of Things,’’ IEEE InternetThings J., vol. 1, no. 2, pp. 112–121, Apr. 2014.

[12] L. Gurgen, O. Gunalp, Y. Benazzouz, andM. Gallissot, ‘‘Self-aware cyber-physical systems and applications in smart buildings and cities,’’ in Proc.Conf. Design, Autom. Test Eur., 2013, pp. 1149–1154.

[13] G. Ermacora, S. Rosa, and B. Bona, ‘‘Sliding autonomy in cloud roboticsservices for smart city applications,’’ in Proc. 10th Annu. ACM/IEEE Int.Conf. Hum.-Robot Interact., 2015, pp. 155–156.

[14] F. Mohammed, A. Idries, N. Mohamed, J. Al-Jaroodi, and I. Jawhar,‘‘UAVs for smart cities: Opportunities and challenges,’’ in Proc. Int. Conf.Unmanned Aircraft Syst. (ICUAS), 2014, pp. 267–273.

[15] F. Mohammed, A. Idries, N. Mohamed, J. Al-Jaroodi, and I. Jawhar,‘‘Opportunities and challenges of using UAVs for Dubai smart city,’’ inProc. 1st IEEE Commun. Int. Workshop Architectures Technol. SmartCities (SmartCity), Mar./Apr. 2014, pp. 1–4.

[16] R. Kitchin, ‘‘The real-time city? Big data and smart urbanism,’’ GeoJour-nal, vol. 79, no. 1, pp. 1–14, 2014.

[17] E. Al Nuaimi, H. Al Neyadi, N. Mohamed, and J. Al-Jaroodi, ‘‘Applica-tions of big data to smart cities,’’ J. Internet Services Appl., vol. 6, no. 1,p. 25, 2015.

[18] M. Aazam and E.-N. Huh, ‘‘Fog computing and smart gateway basedcommunication for cloud of things,’’ in Proc. Int. Conf. Future InternetThings Cloud (FiCloud), Aug. 2014, pp. 464–470.

[19] S. Dirks, C. Gurdgiev, and M. Keeling, ‘‘Smarter cities for smarter growth:How cities can optimize their systems for the talent-based economy,’’IBM Inst. Business Value, Somers, NY, USA, Tech. Rep., 2010.

[20] T. Bhattasali, R. Chaki, andN. Chaki, ‘‘Secure and trusted cloud of things,’’in Proc. NDICON, Dec. 2013, pp. 1–6.

[21] J. Al-Jaroodi and N. Mohamed, ‘‘Middleware is STILL everywhere!!!’’Concurrency Comput., Pract. Exper., vol. 24, no. 16, pp. 1919–1926,Nov. 2012.

[22] J. Al-Jaroodi and N. Mohamed, ‘‘Service-oriented middleware: A survey,’’J. Netw. Comput. Appl., vol. 35, no. 1, pp. 211–220, Jan. 2012.

[23] A. Salkham, R. Cunningham, A. Garg, and V. Cahill, ‘‘A collaborativereinforcement learning approach to urban traffic control optimization,’’ inProc. IEEE/WIC/ACM Int. Conf. Web Intell. Intell. Agent Technol., vol. 2.Dec. 2008, pp. 560–566.

[24] I. Arel, C. Liu, T. Urbanik, and A. G. Kohls, ‘‘Reinforcement learning-based multi-agent system for network traffic signal control,’’ IET Intell.Transp. Syst., vol. 4, no. 2, pp. 128–135, 2010.

[25] S. El-Tantawy, B. Abdulhai, and H. Abdelgawad, ‘‘Multiagent rein-forcement learning for integrated network of adaptive traffic signal con-trollers (MARLIN-ATSC): Methodology and large-scale application ondowntown toronto,’’ IEEE Trans. Intell. Transp. Syst., vol. 14, no. 3,pp. 1140–1150, Sep. 2013.

[26] F. J. Villanueva, M. J. Santofimia, D. Villa, J. Barba, and J. C. López,‘‘Civitas: The smart city middleware, from sensors to big data,’’ in Proc.7th Int. Conf. Innov. Mobile Internet Services Ubiquitous Comput. (IMIS),Jul. 2013, pp. 445–450.

[27] R. Petrolo, V. Loscri, and N. Mitton, ‘‘Towards a smart city based on cloudof things, a survey on the smart city vision and paradigms,’’ Trans. Emerg.Telecommun. Technol., vol. 28, no. 1, pp. 1–12, 2015.

[28] H.-S. Jung, C.-S. Jeong, Y.-W. Lee, and P.-D. Hong, ‘‘An intelligentubiquitous middleware for U-city: SmartUM,’’ J. Inf. Sci. Eng., vol. 25,no. 2, pp. 375–388, 2009.

[29] J. Rodríguez-Molina, J.-F. Martínez, P. Castillejo, and R. de Diego,‘‘SMArc: A proposal for a smart, semantic middleware architecturefocused on smart city energy management,’’ Int. J. Distrib. Sensor Netw.,vol. 9, no. 12, p. 560418, 2013.

[30] W. Apolinarski, U. Iqbal, and J. X. Parreira, ‘‘The GAMBAS middlewareand SDK for smart city applications,’’ in Proc. IEEE Int. Conf.Pervasive Comput. Commun. Workshops (PERCOM Workshops),Mar. 2014, pp. 117–122.

[31] R. Lea and M. Blackstock, ‘‘City Hub: A cloud-based IoT platformfor smart cities,’’ in Proc. IEEE 6th Int. Conf. Cloud Comput. Technol.Sci. (CloudCom), Dec. 2014, pp. 799–804.

[32] S. Pradhan, A. Dubey, S. Neema, and A. Gokhale, ‘‘Towards a genericcomputation model for smart city platforms,’’ in Proc. 1st Int. WorkshopSci. Smart City Oper. Platforms Eng. (SCOPE), Apr. 2016, pp. 1–6.

[33] M. Lehofer et al., ‘‘Platforms for smart cities-connecting humans, infras-tructure and industrial IT,’’ in Proc. 1st Int. Workshop Sci. Smart City Oper.Platforms Eng. (SCOPE), Apr. 2016, pp. 1–6.

[34] J. Al-Jaroodi, N. Mohamed, H. Jiang, and D. Swanson, ‘‘Middlewareinfrastructure for parallel and distributed programming models in hetero-geneous systems,’’ IEEE Trans. Parallel Distrib. Syst., vol. 14, no. 11,pp. 1100–1111, Nov. 2003.

[35] J. Al-Jaroodi, N. Mohamed, H. Jiang, and D. Swanson, ‘‘An agent-basedinfrastructure for parallel java on heterogeneous clusters,’’ in Proc. 4thIEEE Int. Conf. Cluster Comput. (CLUSTER), Sep. 2002, pp. 19–27.

VOLUME 5, 2017 17587

N. Mohamed et al.: SmartCityWare: A SOM for Cloud and Fog-Enabled Smart City Services

[36] (Mar. 17, 2017). Arduino. [Online]. Available: https://www.arduino.cc/[37] (Mar. 17, 2017). DHT Sensor Library. [Online]. Available: https://

github.com/adafruit/DHT-sensor-library[38] (Mar. 17, 2017). Adafruit CC3000 Wi-Fi Board. [Online]. Available:

https://www.adafruit.com/products/1469[39] (Mar. 17, 2017). Arduino IDE. [Online]. Available: http://

arduino.cc/en/main/software[40] (Mar. 17, 2017). Adafruit CC3000 Library. [Online]. Available:

https://github.com/adafruit/Adafruit_CC3000_Library[41] N. Mohamed, S. Lazarova-Molnar, and J. Al-Jaroodi, ‘‘Cloud of things:

Optimizing smart city services,’’ in Proc. 7th Int. Conf. Modeling,Simulation Appl. Optim., Apr. 2017, pp. 1–5.

[42] P. Alho and J. Mattila, ‘‘Service-oriented approach to fault tolerance inCPSs,’’ J. Syst. Softw., vol. 105, pp. 1–17, Jul. 2015.

[43] D. Kreutz, F. Ramos, P. E. Veríssimo, C. E. Rothenberg, S. Azodolmolky,and S. Uhlig, ‘‘Software-defined networking: A comprehensive survey,’’Proc. IEEE, vol. 103, no. 1, pp. 14–76, Jan. 2015.

[44] J. Medved, R. Varga, A. Tkacik, and K. Gray, ‘‘OpenDaylight: Towards amodel-driven SDN controller architecture,’’ in Proc. IEEE 15th Int. Symp.World Wireless, Mobile Multimedia Netw. (WoWMoM), Jun. 2014, pp. 1–6.

[45] C. A. Balaras, A. G. Gaglia, E. Georgopoulou, S. Mirasgedis, Y. Sarafidis,and D. P. Lalas, ‘‘European residential buildings and empirical assessmentof the Hellenic building stock, energy consumption, emissions and poten-tial energy savings,’’Building Environ., vol. 42, pp. 1298–1314,Mar. 2007.

[46] S. Lazarova-Molnar and N. Mohamed, ‘‘Towards collaborative data ana-lytics for smart buildings,’’ in Proc. Int. Conf. Inf. Sci. Appl., 2017,pp. 459–466.

[47] F. D. Ahmed, M. A. Majid, M. Sharifuddin, and A. N. Jaber, ‘‘Softwareagent and cloud computing: A brief review,’’ Int. J. Softw. Eng. Comput.Syst., vol. 2, no. 1, pp. 108–113, 2016.

NADER MOHAMED received the Ph.D. degreein computer science from the University ofNebraska-Lincoln, Nebraska, USA, in 2004. From2004 to 2006, he was an Assistant Professor ofcomputer engineering with the Stevens Instituteof Technology, NJ, USA. He taught graduateand undergraduate courses in networks, enterprisecomputing, software, data management, computersystems, and digital systems. He was with theCollege of Information Technology, United Arab

Emirates University, Al-Ain, UAE, as an Assistant Professor from 2006to 2009, and an Associate Professor from 2009 to 2015. He is currentlyan independent Computer and Information Research Scientist, Pittsburgh,Pennsylvania, USA. In addition, he has eight years of industry experiencein the information technology field. His current research interest focuseson middleware, cloud computing, cyber-physical systems, unmanned aerialvehicles, and cyber security. He served as a Guest Editor of several interna-tional journal special issues in the area of middleware, such as the ElsevierJournal of Network and Computer Applications and the Wiley Journal ofConcurrency and Computation: Practice and Experience.

JAMEELA AL-JAROODI received the B.Sc.degree in computer science from the Universityof Bahrain, the M.Sc. degree in computer sci-ence fromWestern Michigan University, the Ph.D.degree in computer science from the Universityof Nebraska-Lincoln, and the M.Ed. degree inhigher education management from the Universityof Pittsburgh. She was a Research Assistant Pro-fessor with the Stevens Institute of Technology,Hoboken, NJ, USA, then as an Assistant Profes-

sor with United Arab Emirates University, UAE. She was an independentResearcher in the computer and information technology field. She is cur-rently an Associate Professor and a Coordinator of the software engineeringconcentration with the Department of Engineering, Robert Morris Univer-sity, Pittsburgh, PA, USA. She is involved in various research areas, includingmiddleware, software engineering, and distributed and cloud computing,in addition to UAVs and wireless sensor networks.

IMAD JAWHAR (M’86) received the B.S. andM.S. degrees in electrical engineering from theUniversity of North Carolina at Charlotte, USA,and the M.S. degree in computer science andthe Ph.D. degree in computer engineering fromFlorida Atlantic University, USA. He served asa faculty member for several years with FloridaAtlantic University. He was with Motorola as anEngineering Task Leader involved in the designand development of IBM PC-based software used

to program the world’s leading portable radios, and cutting-edge commu-nication products and systems, providing maximum flexibility and cus-tomization. He was also the President and Owner of Atlantic ComputerTraining and Consulting, which is a company based on South Florida (USA)that trained thousands of people, and conducted numerous classes in thelatest computer system applications. Its customers included small and largecorporations, such as GE, Federal Express, and International Paper. He iscurrently a Professor with the College of Information Technology, UnitedArab Emirates University. He has authored numerous papers in internationaljournals, conference proceedings, and book chapters. His current researchfocuses on the areas of wireless networks and mobile computing, sensornetworks, routing protocols, and distributed and multimedia systems. He isa member of the ACM and ACS organizations. He served on numerousinternational conference committees and reviewed publications for manyinternational journals, conferences, and other research organizations, suchas the American National Science Foundation.

SANJA LAZAROVA-MOLNAR received thePh.D. degree in computer science from Uni-versity Otto-von-Guericke Magdeburg, Germany.She was a member of the Simulation Group,Institute of Simulation and Graphics, UniversityOtto-von-Guericke Magdeburg. She is currentlyan Associate Professor with the Center for EnergyInformatics, Faculty of Engineering, University ofSouthern Denmark. Her current research interestsinclude modeling and simulation of stochastic

systems, reliability modeling, decision support for decentralized energysystems, energy informatics, and data-based approaches to fault detectionand diagnosis.

SARA MAHMOUD received the B.Sc. degree(Hons.) in electrical and electronic engineer-ing from the University of Khartoum, Sudan,in 2011, and the master’s degree in soft-ware engineering from United Arab Emi-rates University, UAE, in 2015. She is cur-rently a Software Engineer, a Researcher, AlAin, UAE, and a Young Entrepreneur fromUAE. She is also the Founder of Lino-vate, an online community to link researchers

with their compliments from the industry to collaborate in innova-tive projects. She has authored a number of papers in the field ofUAV-Cloud computing. She received a number of awards for her achieve-ments in information technology innovations.

17588 VOLUME 5, 2017