A Survey of Interoperability Challenges and Solutions for Dealing With Them in IoT Environment

Interoperability is a functionality that facilitates integration amongst disparate devices and systems used by applications. Integration, inter-operability, middleware, and standardization are some of the synonyms or solutions of interoperability. As such, interoperability facilitates timely, efficient, and effective completion of applications, in addition to finding new, smarter, and more adaptive services. Smart cities, like many other environments and applications, suffer from the lack of interoperability, which makes their processing very challenging. The lack of interoperability also leads to ineffectiveness, which is highly undesirable for applications that deal with emergencies or have exceptional requirements. In particular, interoperability is highly desirable in heterogeneous systems. This research presents a comprehensive review of the available methods and ways to deal with the issues related to interoperability. In addition, the article provides a classification of the available solutions to overcome the lack of interoperability. Various methods which claim to provide interoperability, are sorted out according to the domains and context in which they appear. This research has identified the advantages and limitations of the available methods for facilitating interoperability. A comprehensive framework for dealing with Interoperability in different domains is proposed. This framework provides a hybrid approach for dealing with interoperability, which could be regarded as a comprehensive and reliable solution when dealing with smart cities.


I. INTRODUCTION
The Internet of Things (IoT) has created a new world that is smarter and more adaptable to users, turning many daily activities into automated electronic tasks and devices into smart devices capable of sensing and interacting with the surrounding environment. These devices can also be accessed from anywhere, and at any time [1], [2]. So far, there is no specific standard structure for IoT, but there is a general hierarchical structure as shown in Figure 1 [3].
From Figure 1, we can extract the following main layers: The first main layer (read from bottom to top) in the IoT architecture is the Perception or Sensing Layer. This layer contains millions of devices and tools that generate large streams of data from their operations. The Radio Frequency The associate editor coordinating the review of this manuscript and approving it for publication was Xiaolong Li . Identification (RFID) and Wireless Sensor Networks (WSNs) form the largest percentage of these objects as RFID tags are often used to give a unique identity to objects whilst enabling their tracking. Applications involving RFID are many, including smart cards, smart locks, automatically identifying apparel, and tracking vehicles and goods. RFID can be active or passive and provides an external tracking service with the help of the Global Positioning System (GPS). An active RFID is able to save and modify a certain amount of data. WSNs are tools that contribute to capturing the physical conditions of the surrounding environment such as movement, heat, pressure, noise, pollution, and many more. Cameras, microphones, smartphones, smartwatches, smart screens, smart vehicles, and others are examples of WSNs, which are devices with greater capabilities and resources (computing, energy, and storage) [4], [5]. RFID Tags need a reader that receives their data and sends it to the second layer. WSNs also need a virtual gateway or sink also for the same purpose. Most of these tools rely on energy-saving protocols in the communication process such as Bluetooth and ZigBee, but some use Wi-Fi. The reader or sink connects to the internet to send their data to the service provider in the cloud where any event or query is processed, stored, and answered [6].
The second layer is the Fog Computing Layer, which was found to be an intermediate layer between the tools and the cloud. The continuous process of transmitting huge amounts of data frequently to the cloud, especially with a very large number of IoT tools, greatly affects the ability of the cloud to respond quickly enough to the requests coming from users, which makes it unsuitable for many delay-sensitive applications such as medical or transportation applications. Also, continuous transmission constitutes an overload on the entire network. Moreover, communicating user data to the cloud entails the risk of detection.
Indeed, the fog node does play the role of the cloud, but only close to the edge of the network, where a group of tools in a specific area or a smart home can communicate with one of its nodes instead of the cloud. In such a case, the communication will be via Wi-Fi, which would increase the availability of services [7], [8]. Fog nodes have reasonable computing and storage capacity, which can temporarily store and process data before sending it to the cloud. For example, features can be extracted from the image and sent as text. It is also possible to collect some data and communicate it to the cloud as packet segmentation. It is possible to cancel the repetition and remove some personal data or apply some monitoring to the data such as Encryption before transmission.
All the mechanisms in the second layer improve the performance of systems and services, reduce the burden on the cloud, and improve the level of privacy and availability of services for users. Moreover, the fog node can take quick direct action in the event of any emergency or abnormal event, such as calling the nearest ambulance and specifying the location if an accident is detected. Thus, fog nodes enable IoT to respond to time-delay-sensitive applications and services as well [9], [10].
The third layer is the Cloud Layer, which provides permanent storage with high computing power to analyze data, apply some machine learning algorithms, discover knowledge from data and present it to the user in different ways or provide it to applications and services. The cloud offers three main levels of service: IaaS, PaaS, and SaaS. It allows many service providers to spread their services within it, which creates a huge number of services that deal with data coming from the first layer [11], [12].
The fourth layer is the Applications and Services Layer: This layer takes advantage of having all the data coming from the lower layers to provide a better and smarter level than traditional services. It takes advantage of past experiences and analyzes the accumulated data to reveal the user's behavior and adaptations. This is accomplished by providing services that respond to the current status of the user in real-time and alerting them of any emergency situation, as well as services that respond to the context (i.e., adapt according to the nature of the place, time, and situation in which the user is). It is impossible to limit the available services that depend on smart cities. For example, the main areas of these services and applications can be classified with some examples in each field [13], [14].
• The medical field is considered to be the most important field because it is closely related to preserving lives. Hence, we find a lot of development and interest in this field after the emergence of the IoT. Various types of wearable sensors provide continuous monitoring of the user in real-time and the formation of a comprehensive, unified medical file on the user's condition. They also provide the associated data at the desired time for medical workers. The sensors also provide alerts to the personnel in the event of any abnormal activity in their Biometrics to take the appropriate action and prevent a health disaster. The availability services of health everywhere, including remote areas, has also become possible through cooperation with smart homes, and their available tools [15]- [17].
• The transportation field is another important area in which IoT has made a significant impact, such as through maps, smart guidance, vehicle tracking, dynamic traffic lights, smart vehicles, and smart roads, thus providing many new and useful services in this field [18]- [20].
• The energy field is also an important field. IoT has contributed to saving energy by smart and scheduled operation of devices, and continuous monitoring of their usage [21], [22].
• The environment, entertainment, business, e-governance, and education are also areas that have been greatly affected by IoT, its tools, and technologies [23], [24]. Note: All previous areas and fields are not considered independent of each other, rather are deemed to be closely connected and integrated. For example, an ambulance in the medical field needs to cooperate with special services in the transportation field; health monitoring services need VOLUME 10, 2022 cooperation with tools in the smart home; smart street lighting needs cooperation with smart energy networks; smart cars can be extremely useful in environmental monitoring and the business sector. More than that, the IoT created a new concept (M2M), which is the relationship of the machine to machine without the need for human intervention. This is a higher level of intelligence which allows machines to communicate with each other and take the appropriate action automatically [25]- [27].
All the aforesaid and future developments are expected to be of the higher levels of advanced systems services, capable of addressing the most significant challenges and problems. These obstacles can be easily observed because of the uncertainties and/or lack of cooperation between different technologies, devices, services, and systems due to the lack of interoperability [28]. This is a complex problem in the IoT environment, which does not contain standard protocols or standard methods for representing data and expressing services, and most of the current systems based on IoT are not opened to sharing because of their private ownership. Therefore, in the absence of this requirement, all future aspirations will remain ideas that cannot be implemented [29].
There is another challenge that is also important for the interoperability challenge, namely data privacy and security [30]. However, our research in this article focuses only on interoperability and provides a comprehensive review of the technologies and solutions that were presented during the earlier stages to support interoperability. We also present a chronological classification of the main methodologies and a workable framework for a hybrid approach that can contribute to support the interoperability of various systems and services.

A. CONTRIBUTION AND STRUCTURE OF THIS PAPER
This is a review paper. Following are the contributions of this paper. First of all, a comprehensive review of the Interoperability issues in IoT is carried out. Then the current solutions for Interoperability are classified according to their perceived effectiveness. A comprehensive framework for dealing with Interoperability in different domains is proposed. All details of the proposed framework are provided. Finally, a list of challenges and future trends, based on the review of this paper, are outlined.

II. DEFINITION OF INTEROPERABILITY
There is no single or standard definition of interoperability, rather there are many definitions that generally attribute characteristics that refer to the importance of interoperability and the benefits that can be achieved. The following can be used to form a definition.
• Interoperability provides means to achieve connectivity, sharing, and cooperation for the transfer and exchange of data without effort from the end-user [31]- [33].
• Interoperability is the intermediary of connecting different platforms and creating a comprehensive database that contributes to the development of new services, reducing their costs, and providing open markets for working on data [34].
• Interoperability is the process of transmitting data in one context and receiving and interpreting it in another [35], [64].
• Interoperability refers to standardizing the form of data collected from different sensors for the purpose of exchanging and processing them in real-time (RT) while querying them in a unified manner [36].
• Interoperability is a way of creating a collaborative environment between developers that enables them to create widely acceptable systems [37], [60].
• Interoperability is an important criterion when it comes to design of a smart city which plays a critical role in reducing costs at the level of system, data, and applications [38], [59].
• Interoperability is an intermediary solution between service providers who do not want to operate on a single common platform [39], [48].
• Interoperability is policies, standard procedures, and common concepts that aid in data homogeneity and resource collaboration [40], [43].
• Interoperability is a method that enables collaboration between heterogeneous service providers and systems and allows for a data exchange process that greatly expands the ability of smart devices and systems to improve quality of life and create more sustainable services [41], [58].
• Interoperability is one of the most important challenges facing smart cities, the modern industrial revolution, and platforms in allowing heterogeneous things to work and interact with each other (hardware, systems, software, services, data) [42], [65].
• Interoperability is an open issue in the search for a solution to the problem of heterogeneity in networks and achieves cost reduction by working with open programs [43], [66].
• Interoperability is the means for different platforms to interact together by sharing knowledge and information, exchanging data, and improving the level of services [44], [47].
• Interoperability is the hope of smart cities to develop more exciting and intelligent applications through the integration of different platforms and middleware to standardize services [45], [33].
• Interoperability is the means to create standard web applications and enable integration and collaboration between them to create a better level of services [46], [67].
• Interoperability is the solution to the problem of data heterogeneity so that data can be normalized to be similar and complete and thus be processed faster and easier [47], [50].
• Interoperability is the ability of systems to exchange information with an understanding of the meaning (without ambiguity) and is a key factor in modern technology construction and development [48], [68].
• Interoperability is what allows the reuse of IoT services and the exchange of information between different applications and devices [49], [69].
• Human beings facilitated with controls in their devices directly by radio frequencies signal or by wired connection.
• Human provided control of their devices while using internet, to create a gateway between them (user and device).
• The concept of smart device should be presented the stage where the devices are required to be e connected to the Internet directly without the getaway. More functionalities are added to these devices to increase their memory and computation ability.
• These devices start cooperation among themselves to provide smarter services without interference from human. Moreover, smart devices become relying on the cloud for storing data and enhancement of services, in addition to the availability of more advantages from the cloud properties to user provided for the applications of users. By implementing the above functionalities, smart devices would have more abilities, in memory, computing, and power in addition they become programmable. Mobile and edge computing is used (like the Fog computing) for addressing the drawbacks of dependency on cloud only. Core Fog Nodes are used to create the recent hierarchical of IoT Structure (Dev, Fog, Core Fog, Cloud, and Apps). Many companies start working with IoT in all domains and using different protocols, data formats, languages, concepts, etc.

III. PROPERTIES OF INTEROPERABILITY
There are many properties related to interoperability such as types of data source, levels, activities, conditions, applying levels, and the context. [34], [45], [51] • Horizontal operation between different platforms, providers (e.g., AWS Amazon, IBM, Azure, and Google), databases, and devices.

A. TYPES OF INTEROPERABILITY
• Vertical operation between the system, the user, and the data source. For example, the manufacture of cars that support interoperability to save M2M costs of integration protocols with open platforms.
• Data requiring authorization to access through a third party.
• Data market between cities and other organizations.
• Static data such as the location of a place or structure. • Real-time data, such as collected from wireless network sensors.
• Average data over a certain time range.
• Predicted future data.
• Functional cooperation: Technical (software and hardware) where exchanging data through portals, but without the ability to interpret this data, i.e., provide general functionality.
• Structural level: Grammar or collaboration at the level of meaningful data exchange in common formats where data structure, format, and syntax are defined.
• Semantic level: The systems understand the exact meaning of the information exchanged according to common data models.

D. INTEROPERABILITY ACTIVITIES IN THE IOT [54], [60]
• Get information about different places in cities.
• Shared resources can be accessed by using the same data-saving formats.
• Platform independence so that it can be used in different regions and different collaboration devices.
• The independence of scales, such as displayed in the form of a map.
• The services interface is unified so that the service can access different platforms, each of which provides different data and cooperates to create new services.
• Effectiveness which ensures an appropriate solution to the use cases.
• Consistency which returns the same result from the repeated use of the same application.
• Transparency which hides technical complexities.
• Scalability which supports big data analytics for all users.
• Verticality which enables working with different layers.
• Horizontality which enables working with different areas of application.
• Completeness which provides support to all use cases.
• Efficiency which enables achieving the goal in the best way.
• Finiteness which limits the number of internal steps.
• Easiness which fosters understanding of stages of education, and usage.
• Security, privacy, and trust which ensure an intrusion free, safe, and trustworthy environment. G. INTEROPERABILITY CONTEXTS [53], [57] • The ability of the system to receive, process, and transmit clear information to another system.
• The ability of two systems or parties (machine or human) to achieve integration in the exchange of content without absence of distortion or delay.
• Collaboration between parts of distributed systems and the ability to exchange services and data.
• The exchange between information systems and services.
• Ability to combine functions and data according to their significance.
• Use tools that facilitate and coordinate work and information flow.
• The ability of systems to provide new services and accept services from others.

IV. MOTIVATION AND IMPORTANCE
The volume of software, applications, and technologies used in the industry and automation has necessitated providing a more sustainable and intelligent environment in areas such as transportation, health, infrastructure, economy, industry, and government services. But these domains have become more complex because programs and services they use have been developed in different paradigms and environments, rendering them compatible with operating systems, requiring specific data formats. Thus, creating a smart and sustainable environment is not an easy thing. It requires data to be accessed and read automatically, exchanged between applications and services, and analyzed and understood while ensuring reliability and security. Therefore, the real integration does create a wealth of important information required for different tasks, principles, methods, and concepts to become an achievable goal [31]. Indeed, smart cities are the environment and system which provide open data platforms, create joint data centers between e-governments, and empower citizens to become sensors in a digital environment [32]. The nature of smart cities is supported by many systems that are running by public or private agents, most of which are old systems, incompatible, and non-standard. Such systems lack interoperability, which deprives smart cities of more exciting and useful applications [33].
So far, smart cities use closed systems designed for limited tasks, which cannot be integrated or extended, as there are restrictions on data exchange and accessibility [34]. Also, different areas of smart cities create additional difficulty, because they generate different and huge [35] data and need standardization and real-time processing with [36] standardized query method.
Smart cities have been developed according to a variety of commitments. They were not designed to facilitate interoperability between different systems and the ontology was missing in all areas of smart cities [37]. Instead, their main objective of them was to spread smart, safe, and sustainable services [38]. As a result, they provide fragmented services which are akin to individual ownership, rendering them impossible to work flexibly with other smart city services.
Some examples explicitly demonstrate the importance of cooperation and the need for interoperability between smart city applications and their requirements within their various systems [39]. For example, in smart cities, a disaster response must be very fast and effective. Interoperability promotes integration and cooperation between different teams and different agencies which helps to mitigate the effects of the disaster. Thus, the vehicles, sensors, medical teams, volunteers, operations management, and drones provide more accurate data in real-time and reach inaccessible places, with the ability to quickly transport small items [40].
Therefore, some view smart cities as the future to improve civilization through sensors and robots that have huge proliferation, especially in humanitarian aid and disaster management operations. However, to be able to accomplish their tasks, these robots must be able to work and exchange messages with each other as well as with the decision-support centers or leadership [41].
Another example is that of advanced health care, which requires providing monitoring everywhere, facilitated using various devices for the precision of different vital data. It is also necessary for these devices to share their data and to overcome the problem of different formats due to different development environments and manufacturers to contribute to smarter services. Electronic health records must be unified in cases of a home ambulance visit (patient and his equipment, ambulance, smart hospital, smart city, cloud), all of which must cooperate without any delay to protect the patient's life [42].
Smart healthcare is complex due to heterogeneous data and the need for collaboration between different devices and different departments and destinations [43].The same is true in the field of transportation. Smart cities need open data and open systems to enable the development of new services and applications that can address traffic congestion and air pollution issues. These applications need to integrate into the actions of smart sensors and cloud services and provide common applications (Transport, Healthcare, Safety, Parking, Waste, and Energy Metering) [44].
In the field of energy, the number of smart grids used in smart cities increases with time, and each of them (grids) belongs to a different provider, but their cooperation is an important issue [45]. For example, it is necessary for the providers to create a distributed smart digital archive that enables users and different entities to share data to provide solutions about power consumption [46]. Another case is that of data collection, which requires improved techniques of collecting data from disparate sources and processing them to increase capabilities for the needs of the smart society.
For a solution to support the interaction of different platforms, it is a requirement to have them at the same location [47]. Usually, the service providers use their sensors which are managed on different platforms, forcing them to have interoperability because some cannot work on a single common platform. Therefore, the data may be stored using the relational or non-relational format, in the form of time series, big data, or even in a cloud [48]. It is known that there is a real gap in the standard form of data on the IoT and its applications, which are often in the form of distributed systems and therefore making it difficult to process big data in real-time [49]- [51].
In the field of environment, which overlaps with most of the previous examples, Smart cities embrace major challenges related to climate change, especially the process of data collection, energy efficiency, and the provision of future services. All these services require integration between users, devices, facilities, and services, to create an architecture using scalable components with the support of collaborative and shared systems [52]. Even during the industrial revolution, we need to enhance compatibility amongst devices to work together within their systems, which results in saving costs [53].
Many scenarios show the need for people to be required to interact with the surrounding environment, devices, and services in the smart home, which has many other examples and applications [54]. From a more comprehensive level of smart cities, IoT is a vertical communication model that consists of a set of networks that consist of a large group of stakeholders, applications, and services that do not allow horizontal participation between them [55], [56].
The IoT has so far been able to change everything into smart things, starting from the smart home, which contains different devices connected to the Internet, designed with different standards and technologies, to the smart cities and their various applications and services [57]. The aspiration may go beyond the level of smart cities to build a unified global ecosystem of things [55]. It is not an exaggeration to say that the current biggest challenge for IoT is interoperability across heterogeneous service providers and systems. The process of restricted data access has greatly limited the capabilities of smart devices to improve the quality of life at the level of systems, services, data, and applications [58], [59].
The developers, in the IoT platforms, need to negotiate service interfaces and platforms and adapt information Application Programming Interfaces (APIs) and patterns to overcome barriers that have prevented the emergence of widely accepted systems, especially with closed commercial systems. They also need cross-platform access to resources while using the same formats for data representation. The platforms must however be metrics and otherwise independent so that they could be used in different domains without limits [60].
At the same time, many services within smart cities need to be abstract and the public should be able to achieve sustainability in all areas (monitoring and safety, cooperation and health services, daily services such as marketing, facilities management such as garages and others, transportation and traffic congestion, sustainability and environmental preservation, green services, and others) [61]. The data itself for these services must also become open to bring about new visions for smart cities. But any future solution must include not only new but also old applications and data [62], and services must be closely linked with context to improve their quality, performance, adaptability, and intelligence [63].

V. HISTORICAL SOLUTIONS AND APPROACHES FOR INTEROPERABILITY
The interest to overcome the lack of interoperability during application processing has increased greatly, especially after the spread of millions of services, applications for smartphones, devices, and systems belonging to IoT. Therefore, many attempts have been made to find a solution to this problem. In this section, we will review all the ways, methods, and suggestions that have been presented in this field so far.
A review of available research of the available methods suggests that there are many ways to support interoperability in some form, such as including in the design of applications right from the beginning of devices, but this is difficult to achieve because of the nature of ownership, API's support collaboration, middleware, or by providing dictionaries for common concepts and other methods. In the end, we will provide and review a list of branched or main approaches. In general, the methods for supporting interoperability can be summarized with the following examples:

A. MIDDLEWARE
Middleware is an intermediary between heterogeneous systems that converts sent messages between systems from one form to another or to a standard form that is understood by all cooperating parties. The mediator may be at the level of messages between applications or at the level of databases to support different sources. An example of Middleware is a publishing and subscription mechanism such as Broker or DDS, which is a good technique where resources are limited, and usually depend on the Message Queuing Telemetry Transport (MQTT) protocol that supports data security but does not support the discovery of new sites as in Symantec VOLUME 10, 2022 Web technologies [31], [34], [40]. The cloud is one of the proposed solutions as an intermediary for applications and services [60].

B. MAPPING
Mapping is the transformation of data from one form to another to enable the involved systems to work in collaboration, by mapping at the data level to create an abstraction [31]. In [42], the idea of a Mapper Code that converts from Extensible Markup Language (XML) to JavaScript Object Notation (JSON) is discussed.

C. WRAPPER
The wrapper works to wrap legacy systems in a layer that enables interaction with these systems by providing intermediaries between external systems and the legacy system [31].

D. TRANSLATOR
Translator is often used at the level of applications (between the sender and the receiver) so that the data is translated from one form to another to be understood by the receiving party, which could be a one-way or bi-way translator [31].

E. MESSAGE EXCHANGE
Message exchange collaboration takes place between services or applications at the level of specific data exchange by representing data in a standard way understood by both parties such as JSON and XML. This is achieved with a classification of the type of possible messages such as agreement on specific messages between different systems in emergency situations [31], [40]. Authors in [63] have presented the idea of a system to process events as messages within smart cities.

F. DATA ADAPTER
Data Adapter is an intermediary that enables a connection to different databases with a unified private query interface in standardized formats. This allows to create a simple web service that enables different platforms to connect to different databases and retrieve data without worrying about their heterogeneity or the diversity of their applications [48].
Researchers in [41] presented the idea of the ROS platform for robotic devices and drones to exchange messages among themselves and with the unified command center, where ROS relies on an adapter as a link for messages between the drone and the web service. In such situations, the messages were represented in an XML form containing the robot number, country, and owner, classification of the robot, device type, message type, and data.

G. BRIDGE
Bridge or external gates between applications (which is better than modification) are based on the applications themselves. Applications are built for different functions and thus the bridge translates protocols and maps data between various common formats [40]. Authors in [38] presented the idea of finding a consensus platform or bridge through three business models that support interoperability (Semantic Web, Proxy, and Standard APIs). If the criteria are different, an agent would be needed to convert the data representation between them.

H. APPLICATION PROGRAMMING INTERFACES (APIS)
Application Programming Interfaces (APIs) enable every system or application that provides public methods which can be called from other applications and systems so that these functions provide some services or data in the form required for the caller [31]. An API is usually suitable for agreeing on specific and common focal points only, and a unified standard must be relied on [34]. In [70], the necessity and importance of enabling easy data collection and sharing by providing open APIs are emphasized.

I. SERVICE-ORIENTED ARCHITECTURE (SOA)
Service-Oriented Architecture (SOA) facilitates reuse of IoT services and therefore provides an emulation of the API Gateway principle to support automation with REST, where the platform contains a description of actions and conditions, layers, an operating system for applications and services, intermediate layer, interface writing code, abstraction layer and visualize [69].
Researchers in [51] have presented a simple web service, known as ''InterSensor'' which provides a data integration strategy between different sensors by connecting to different platforms and their data simulations. In [67], it is confirmed that standard web applications can simplify the integration process between the data, which allows applications to collaborate and create a better level of services such as agile smart hospital by relying on the cloud and big data.

J. ONTOLOGY
Ontology provides support for catalog working to create common concepts by building a dictionary of concepts so that applications and services use them for these applications and services to cooperate, exchange, and understand data. It is often recommended to develop an old ontology instead of building one from scratch to raise the level of compatibility and support for previous systems that depended on the original ontology, and finally to prevent repetition or create different definitions of the same concept [31].
In [59], a set of examples of different famous catalogs (Ready4SmartCity, VoC, Lov4IoT, OpenSensingCity) is provided, which is based on the ontological principle of designing a smart city that supports interoperability at all levels (structure level, hardware level, systems-level, data level, applications level, services and inference level on data). Usually, the catalog focuses on information specific to a domain, time, place, measurement, etc. In [71], the need to build an ontology for smart homes, garages, health, weather, water, transportation, and environment is discussed.

K. DICTIONARY
Dictionary or Ontology adoption by developers of systems can solve the problem for new systems by using a common vocabulary. It is always preferable to rely on reusing and developing a previous ontology to support the above as much as possible. In [49], the idea of a common dictionary was presented to integrate heterogeneous data. Research in [43] emphasizes the need to develop policies, standard procedures, and common concepts that help in the homogeneity of data and the cooperation of sources.

L. SEMANTIC
Semantic refers to a way to understand the meaning of the messages by gestures or tokens, and therefore provides a higher level of cooperation during the process of exchanging data between services and applications. It implicitly relies on many techniques related to data processing and retrieval and natural language processing, in addition to its dependence on ontology [31].
Schema.org is an example of a platform that provides vocabulary and concepts common to search engines and billions of pages on the web (such as a smart object, sensor, measurement, restaurant, aviation) so that the schema can be built, developed, or shortened to a specific field or condition (such as people with needs) [60]. In [49], joint modeling was proposed using semantic web technology to link concepts, enrich content, and rely on heuristics to add new triads. The authors in [58] introduced an idea of a Resource Description Framework (RDF)-based repository which is a repository where users can search for vocabulary and then use it. In [54] semantics to improve service quality and configuration are discussed. In [72] it is suggested to use the RDF trilogy to annotate the data so that it can be understood when it is exchanged between different systems. Research in [37] also used context and ontology in order to reach common specifications and concepts within the same city or within different cities.

M. STANDARDIZING
Standardizing and profiling of data facilitate the necessary processing more rapidly. In this way, big data can be processed in real time. Standardized data also provides a simple, querying method. For data profiling, we need several stages and several techniques such as the data processing stage, context analysis stage, semantic web techniques, ontology, and finally semantic annotation to find semantics for things [36]. It should be noted that the cloud can provide several support layers (application layer, application interface layer, central services tier, virtual tier, and resource tier) [53].
In [50] the idea of normalizing the data is discussed to make it similar and complete to facilitate its processing faster and easier through several steps that include noise isolation, redundancy and treatment, increasing or changing the size, taking care of time, and put in a queue. An advancement was presented in [64], where TabDoc is a system for discovering additional knowledge from documents. These documents must be represented in a standard format (XML, Document Type Definition (DTD), or XML Schema Definition (XSD)) and may need to be integrated with an ontology approach and a specific collaboration template with certain limitations. In [56], two standards O-M1+O-DF to support interoperability are discussed in mobile applications in smart cities, especially in the field of smart transportation. This requires horizontal sharing between devices, protocols, and service providers. An idea of data exchange is deduced in terms of coordination of data to provide an understanding of the content and at the level of communication through an interface or an encoding broker.

N. OPEN DATA
The base for open or central data and information access is a platform to provide open data, available for different applications and services so that the platform becomes an e-participation center (which is very important in e-governments) [32]. However, access to data and the way of storage and coordination must be managed effectively and based on an open standard as far as possible on a specific data structure [40]. The European Union's LoV initiative to describe, allow access, and query various objects and relationships with URLs is presented in [58].
In [53], a reference is made to highlight the importance of agreement on syntax, semantics, and concepts as well as creating relationships across common interfaces, defining the required interoperability contexts, and supporting syntactic threading across standard data and message formats like XML and Symantec, semantic threading according to the meaning of the content. An example of this solution is aimed at providing a central data repository, as suggested in [42], which uses the cloud to create a unified data center. However, it suffers from delays, which may affect the quality, but this problem can be solved by relying on fog computing.
Other researchers have suggested providing central platforms for the IoT environment [35]. There is a necessity of working on a common language and common communication protocols. In [43] a central data platform is proposed which provides the ability to manage it so that it is shared between different applications (in smart cities). It plays several roles, such as: • Central Connectivity, with a coordinating role between the different systems • Personal Care, where each system is responsible for itself and uses the data in the central platform • Knowledge, the central system delegates responsibilities to specific applications and systems to manage pieces of data in the central platform.

O. DISTRIBUTED DIGITAL ARCHIVE
Building a distributed intelligent digital archive is advocated in [46], which enables different users and entities to share data after modeling it in an agreed-upon or standard way. A study conducted in [48] viewed a range VOLUME 10, 2022 of popular platforms for providing specific kinds of data (ThinkSpeak, OpenSensors, The Things Network, Fiware, Weather Underground, OGC) as well as Twitter. In [58], it is emphasized that comprehensive access to data enables more sustainable systems which promise a new vision for government data in smart cities [62]. In [74], the concept of Open Government to achieve sustainability in smart cities is outlined.

P. WEB of THINGS (WoT)
The Web of Things (WoT) Initiative has presented a study of the advantages and challenges of open systems with an example of a smart pilot system for managing a city's climate and improving interoperability with devices, where WoT is a platform that allows users to interact with IoT via the web with open standard technologies, with an example of some of the most famous interoperability platforms (Ready4SmartCity, OpenSensingCity, Lov, Lov4IoT) [55], [73]. Federation, discussed in [40], aims to achieve integration by supporting unified interfaces, agreed standards for data models, design engineering constraints, and specific standard communication messages between parts and collaborating systems. There is great importance in using standardized standards and protocols [42]. An idea of building a federal system to unify existing systems through creating a framework for developers for an integrated project for smart cities, is presented in [49] to facilitate technical interoperability (software, hardware, and protocol), syntactic (data coordination), and semantic (terms, fields, and meanings according to context), and the organizational structure of the various infrastructures. The idea of adding a union layer at the database level is presented in [61]. This is applicable in cases where big differences in the ways of representing data between systems and then creating new APIs based on this layer appear. The idea of 'Open Data' and 'Smart City Profile' has also been suggested.

Q. THREE LEVELS -HYBRID
A three-level of solution as opposed to one is presented in [34], which caters for the following: • The Foundational Level: A mechanism for exchanging data or making it accessible via Gateways or APIs but without the ability to interpret this data.
• Structural Level: Common format data exchange where the data structure, format, and syntax are defined through common languages or protocols such as MQTT, JSON, and XML standard formats.
• Semantic Level: For collaborating systems to understand the exact meaning of the exchanged information according to common data models and based on Symantec Web.

R. PLATFORM FOR DEVELOPMENT
The platform for development is used for creating a unified development platform that enables developers to adapt and create unified APIs and rely on common pattern models of information to find more compatible applications and services [60]. It provides a platform that fulfills several important criteria as outlined below: • Create a common web interface for semantic descriptions of cloud or fog-level resources and services such as BigIoT.
• Access via shared framework to the resources using standardized formats for data representation.
• The independence of the platform so that it can be used in different regions and different collaboration devices.
• The independence for the used metrics.
• Provide a service interface so that the various services are delivered via a common application programming interface

S. ABSTRACTION
Abstraction is a general framework for abstracting and categorizing smart cities into infrastructure as utilities, nonfinancial, government and security infrastructure, activity, economic infrastructure, and living space for individuals. These are provided in addition to a central smart control that contains a full-service operator for the smart city according to its priority (monitoring, safety, cooperation Health and daily services such as marketing, utilities such as addition, parking, etc., and finally sustainability, environmental preservation, and green services) [61]. A set of common applications (e.g., GreenIoT framework) that use standard protocols, and common services in several areas is demonstrated in [44]. In [33], an SOS approach is proposed, which is a set of independent files that allow heterogeneous systems to interact together to achieve a common mission based on middleware that focuses on abstraction of smart city concepts, integration of cloud frameworks, and others that support the principle of publishing and subscription to standardize services.

T. MARKET PLACE AND PUBLISHER SYSTEM
Econo-API has changed the way for creating applications and publishing software and services through a publisher system. It has created a marketplace for sharing data and services [55]. It consists of the following layers: • Network Things: Anything connected to the internet. • Access Layer: A unified protocol to enable devices and applications to challenge each other (Hypertext Transfer Protocol (HTTP), Constrained Application Protocol (CoaP), MQTT, Extensible Messaging and Presence Protocol (XMPP)) but it does not mean understanding the meaning of the data.
• Find Layer: For providing data in a way that allows indexing and search by paying attention to the content of the message and relying on scalable semantic models.
• Share Layer: The form of data and publishing it securely through a publisher or consumer with incentives to stakeholders from service providers to participate and transparency in processing.
• Compose Layer: Provides an IDE as an integrated development environment to build compatible services and applications without the need for programming expertise.
• Integration of security management through Access control, Rules, Permission, Interfaces.

VI. PROPOSED COMPREHENSIVE FRAMEWORK for DEALING WITH INTEROPERABILITY
According to the proposed structure of framework for the provision of the interoperability (Figure 2), we have two main phases or scenarios:

A. REQUEST A SERVICE OR DATA
Before calling any service, the user must know the link, parameters, and description of the service. This information can be retrieved by Universal Description Discovery and Integration (UDDI) or any public database for services. Then the user will send his request to Smart Middleware (S-M), which will manage the message exchanges between the requester and service providers. The S-M can deal with a set of standard protocols like CoaP, SOAP, HTTP, MQTT, and XMPP. It can also make mapping for representing data by standard format (XML or JSON according to the requested service) if the request format was different. Alternatively, it will act as a bridge to convert from XML to JSON or reverse the process if required. Finally, if the service provider provides a higher level of integration, the S-Middleware will call the semantic manager, which depends on using NLP and ontology to interpret the meaning of the entities in the request.
Then S-middleware will call an adapter to provide the required DB connection with the service ID database, API manager, Web Service, or WoT. If it is a web service which deals with hardware objects like IoT. In the next stage, the scheduler makes a request (in addition to applying some policies for protection), and the responder will send back the results. A component to manage the errors to enable fault tolerance will be built in the framework.

B. REGISTER A NEW SERVICE OR DATA
SP will check the ontology or dictionary for the concepts to be used to explain its data or service. Then it will send the request to the S-M, which will determine the protocol selected by the service provider from the available list in the Selector Model. The S-M will encapsulate a service by wrapper model only if the service was built by very old technology. The S-M will then convert the data of service to the standard format and enter the phase of semantic data modeling to find the meaning of used entities, which is very critical for the SP to provide a higher level of cooperation with other services.
The DB adapter will select a suitable DB connection for the database, the API manager will create the APIs, and WOT model will create the web service to deal with IoT objects. The scheduler will track the requests, and the protection model will apply the policies to ensure security and privacy. Finally, Responder will send confirmation after recording the service, API, or data, in addition to the information in UDDI or dictionary. VOLUME 10, 2022

C. CHALLENGES
After reviewing the proposed and previous works in the field of interoperability, a set of issues and challenges that are still open in the field of interoperability can be summarized as follows: • There is no agreed-upon definition of smart cities. • The occasional need for human intervention. • Energy consumption and development cost issues. • There is no standardization for standards. • The problem of relying on fog computing to manage some intermediate tasks.
• The issue of fault tolerance and QoS support.
• The issue of scalability, complexity, and data redundancy.
• Privacy and security issue in the open data or with cooperation • No ontology covers all areas of smart cities and therefore it is possible to work on creating a general ontology that includes many issues (administrative areas, city objects, events, services).
• Providing global services, for example, if a person travels to another city, he can use the same application to search for car parking.
• An interest in ubiquitous computing, context-awareness.
• Configuring and collecting services in a centralized environment to create new applications.
• Processing old data, and transforming it into a useful, standardized format to enable its interaction with modern systems.

D. FUTURE TRENDS
• Creating Open central data or distributed unified database for whole smart city, with standard formats and standard protocols.
• Provide federated services for out-of-boundaries services, or services available everywhere in the smart cities or countries.
• Provide a unified platform for developers to implement service support interoperability by default.
• Provide higher level of services' integration by using semantic web, NLP, and ontology of concepts • Build a unified global ecosystem based on the IoT by providing a common language of understanding.
• Adding a special collaboration layer in new applications or devices which would be dynamic and programmable (Like the role of SDN in the Networks).
• Improving the quality or auto-generated services by integration of services in the health domain, and support people with special needs to interact with the surrounding environment with awareness for context.

VII. CONCLUSION AND FUTURE WORKS
This research has discussed several issues related to interoperability in IoT. Indeed, the provision of interoperability is associated with many challenging issues when dealing with smart cities. Many opportunities for more adaptive and smarter services and applications can be achieved, only if we address this issue and provide a framework or model to enable cooperation between heterogeneous objects, devices, protocols, techniques, services, and applications. This research has reviewed most of the historical attempts to address this issue and summarized the new challenges and open issues to build comprehensive solutions that promise a lot. Finally, a hybrid comprehensive design for interoperability framework is suggested. In the future, our research would focus on the details of the proposed solution with implementation and validation on real cases of smart cities applications. NABIL ALMASHF, photograph and biography not available at the time of publication.

MOHAMMAD YAMIN was born in Australia.
He received the Ph.D. degree from The Australian National University (ANU), Canberra, Australia. From 1994 to 2020, he worked with The Australian National University, University of Canberra, and the Australian Federal Government's Department of Human Services. He is currently a Full Professor of management information systems (MIS) at the Faculty of Economics and Administration, King Abdulaziz University. He is also an Adjunct Professor at the Research School of Computer Science, ANU. Several students have completed their Ph.D. under his supervision in Australia and India. He is also supervising four Ph.D. students at City University London, one student each at Granada University (Spain) and MSU Kuala Lumpur (Malaysia). He is an internationally acclaimed researcher on crowd management, cyber privacy & security, management, and healthcare management & informatics. He has published over a 100 research papers in international journals and conference proceedings. He is also an Editor of the International Journal of Information Technology, published by Springer Nature and indexed in Scopus. More information can be found at: https://myamin.net/ ABDULLAH ALSHANQITI received the B.Sc. degree in computer science from Taibah University, Madinah, Saudi Arabia, and the M.Sc. and Ph.D. degrees from the University of Leicester, U.K. In 2012, he joined the Faculty of Computer Science and Information Technology, Islamic University of Madinah, as a Lecturer, and was appointed as an Assistant Professor of smart systems and software reverse engineering, in 2018. He is currently recognized for his work on software reverse engineering based on dynamic analysis and model/graph transformations using intelligent learning and inference approaches. He is interested in extending his knowledge by welcoming any research cooperation in different cutting-edge disciplines, including quantum machine learning, hybrid AI approaches that focus on solving NLP challenges, and interpretability of deep learning models using graph transformations rules.
NOUR MAHMOUD BAHBOUH received the bachelor's degree from the Faculty of Information Technology Engineering, Al-Baath University, Homs, Syria, in 2010, and the master's degree in Web Sciences from SVU. She is currently pursuing the Ph.D. degree in the Internet of Health Things (IoHT) domain with Grandad University. She was a Lecturer at Islamic University, Cipher Security Diploma. She published 13 researches most of them in the employing IoT and its applications to service the society in addition to privacy and security issue. According to her interest and working in the IoT, she was excited to work on a robot for agricultural purposes. She already implemented few smart devices based on the IoT and Arduino for achieving smart functions like monitoring infant or elderly. In addition, she have good experience in design frameworks and simulation. So, she believe that she can provide good contribution in this project.