A Survey of Context-Aware Messaging-Addressing for Sustainable Internet of Things (IoT)

: Nowadays, communication engineering technology is merging with the Internet of Things (IoT), which consists of numerous connected devices (referred to as things) around the world. Many researchers have shown signiﬁcant growth of sensor deployments for multiple smart engineering technologies, such as smart-healthcare, smart-industries, smart-cities, and smart-transportation, etc. In such intelligent engineering technologies, sensors continuously generate a bunch of messages in the network. To enhance the value of the data in the messages, we must know the actuality of the data embedded inside the messages. For this purpose, the contextual information of the data creates a vital challenge. Recently, context-aware computing has emerged to be fruitful in dealing with sensor information. In the ubiquitous computing domain, location is commonly considered one of the most essential sources of context. However, whenever users or applications are concerned with objects, and their site or spatial relationships, location models or spatial models are necessary to form a model of the environment. This paper investigates the area of context-aware messaging and addressing services in diverse IoT applications. The paper examines the notion of context and the use of context within the data exchanged by the sensors in an IoT application for messaging and addressing purposes. Based on the importance and need for context of the information, we identify three critical categories of new IoT applications for context-aware messaging and addressing services: emergency applications, applications for guiding and reminding, and social networking applications. For this purpose, a representative range of systems is reviewed according to the application type, the technology being used, their architecture, the context information, and the services they provide. This survey assists the work of deﬁning an approach for context-aware messaging services domain by discovering the area of context-aware messaging.


Introduction and Background
Today, information engineering technology (IET) has entered almost every facet of our lives in a wide variety of ways with the emergence of the Internet of Things (IoT). With this emergence, information has become more easily available to users through the IET. The development of ubiquitous computing (UC) is starting, through institutional campuses, to be spread into the real world using three waves of the IoT revolution [1]. The first wave of computing appears as glass-house computing rooms for students. The second wave appears with a personal computer, and the third wave appears as UC. More specifically, communication engineering technologies (CET) are an essential part of aspects. A historical perspective of context-aware applications was given depending on the level of autonomy in context sensing and communication action. Context-awareness has been acknowledged as a significant technology basic to modern computing application and illustrates context-awareness in several areas [22,23] such as: • Tourism: This type of application provides the user with appropriate information relative to towns, museums, or sites they visit. • Fieldwork: Where context is simultaneous regarding recording, separating, and presentation of information with respect to remarks made in fieldwork environment, for example, in the scope of archaeology/health. • Expanded devices: Devices, especially handheld processing devices, are set up with at least one sensor to permit them to react to changes in the surrounding conditions. • Management of resources: Resources are managed by making the computing devices and rooms/buildings aware of their context. • Communication collaboration, and coordination: Context is utilized to arrange and help the correspondence, association, and coordination between users, such as selecting the most appropriate communication channel in a certain situation. • storage and retrieval of information: The storage and retrieval of contextual information, such as names and addresses/documents.
Additionally, context is categorized as user context, physical context, and network context [24].

Problem Formulation and Methodology
This review aims to investigate the notion of context-awareness and how it relates to mobile computing messaging application services. We describe context-aware messaging as the use of any knowledge or information by the application to process and execute a messaging task that relates to the user's situation. In this survey, we consider the term context at every level within an application service. The prevailing tactics remain precisely focused on the structure, notion, the expandability of intellectuals, liability, service identification, confidentiality, safety, data storage, context awareness, and analyzing big data. Based on our previous discussion, this survey includes applications that use context information to provide messaging services. The critical IoT applications, such as emergency applications, are also very important. Therefore, based on the importance and need for context of information in IoT applications, context-aware messaging applications have been categorized into three types to distinguish their uses and the context information used. The classification includes emergency applications that are used during hazard situations, guidance and notification applications, and social network applications, which enable a greater level of communication among people. This paper reviews a collection of representative systems according to application type, technologies, architectures, the context model, and system usage. Besides, we outline the use of context to address the correct message at the accurate time.
To search the related literature for this review paper, we used the methodology of the advanced search property (relevant phrases) in "Google Scholar". Such as, for the literature related to emergency systems, a combination of the following general terms was used; "emergency systems", "context-aware messaging", and/or "application". Similarly, for the literature on systems for social aims, the following specific terms were used; "social networks", "social awareness", "social context", "context-aware", "messaging", and/or "application". This paper is organized as follow: Section 2 discusses the applications that use context-aware messaging, Section 3 contains recent related research works, and Section 4 provides a comprehensive discussion of these applications. Finally, in Section 4, we highlight our observations and conclude the contributions of this paper.

Applications that Use Context-Aware Messaging
This section investigates the idea of context-aware messaging and how it has been applied in different applications, in particular on the ones that are used for messaging purposes. We explore the way those systems address and construct the messages. In this review, context-aware applications are classified into three categories according to the provided service types. The three most common application areas of context-aware messaging and addressing are: Emergency systems, systems for guidance and notification and reminding purposes, and systems for social aims. This classification is based on the importance of emergency applications delivering an alarm alert in dangerous events like a bushfire tragedy, the guiding and notifying applications being built for guide management and notification and reminder purposes, and the social network applications being used to assist collaboration between agents within the system. Hence, these three categories cover most of the information types generated by an IoT network. In a later section, we comprehensively discuss a few of the recently related research works done by researchers. Figure 1 provides an outline of our taxonomy of systems. Furthermore, the systems will be discussed according to several elements: Application type, the technology used to build the system, architecture, context information employed, and the usage of the services. We compare similarities and the differences between the systems under each category. The following subsections describe context-aware messaging and addressing each of the three main application areas. The context-aware messaging applications are also summarized as a table at the end of this section.

Context-Aware Messaging in Emergency Applications
An emergency system refers to the action we perform in order to assist ourselves in dealing with disasters in society successfully [25]. It is a procedure that responds to a disaster situation in a minimum of time with high-level information. Recent terminological advancements enhance this procedure by simplifying actions through geographical information systems (GIS) [26]. For instance, GIS improves the ability to make decisions and also eases adequate preparations and helps in the evacuation procedure [27]. Context-aware messaging applications can be utilized in emergencies such a bushfires, tornados, or tsunamis.
A bushfire may result from human action or unexpected natural causes; therefore, the installation of sensors that could monitor such events is critical. Controlling bushfires will call for a huge workforce, and it could result in a great loss if accurate measures [28]. Besides, tsunami management systems make use of different information to predict the future and implement the necessary measures. Observing the sea conditions can uncover signs that indicate unexpected changes calling for a response. This information goes through the geospatial analysts who employ geospatial technology to establish any cause for alarm [29]. Moreover, the emergency knowledge context is not only environmental but includes temporal and emergency procedural information [30]. We discuss the following emergency systems as an example of using context information in emergency systems.

GSM Technology for a Smart Bushfire Monitoring System
A smart bushfire monitoring system [31] offers a faster warning alarm in the situation of a bushfire through earlier detection. The system utilizes a short messaging service (SMS) passed on by GSM telephones. The framework gathers GPS and environmental data from the sensors and GPS modules, and sends them in an SMS with the help of a GSM modem. Moreover, the framework utilizes a temperature and dampness sensor to gather data regularly and transmit it to a microcontroller. This proposed system additionally utilizes a mobile phone module, which has an aggregate GSM modem and GPS recipient. The microcontroller is interfaced with a GPS recipient to state the module position [31]. Figure 2 shows the system workflows. The sensor module has both a humidity and a temperature sensor, which are used by the microcontroller to collect data frequently. The microcontroller states the location data from the GPS receiver and controls the GSM modem when the target information surpasses a predefined limit. From that point onward, the composed data containing humidity, temperature, and location information are sent in an SMS configuration to another mobile phone or SMS server. The system's context model comprises locations in the format of scope, longitude, and time, as well as some environmental factors, temperature and relative humidity, as shown in Table 1. For instance, in the event of a bushfire, the information will be collected and updated to the server every two minutes. The alarm message is sent in a normal SMS format. The SMS configuration received from the user includes device ID, temperature, comparative humidity, and location data of the GPS.

ID
Using an identification number (ID), this proposed system allows millions of devices to be identified.

TEM
It represents the temperature in centigrade.

HUM
It the environment's humidity.

GPGLL
It includes latitude and longitude information in GPS Signal (compatible to NMEA-0183 GPS).

ZigBee-Based Smart-Homes Application System
A Smart-home monitoring system is proposed in [32], which uses ZigBee modules to transfer sensory information when a bushfire occurs. ZigBee is a technology that offers the ability to send and receive signals between sensors over a wide area. Surrounding data is gathered utilizing various kinds of sensors, for example, temperature, humidity, wind speed, and wind direction. The data is utilized to direct the environment in and around the smart-home to help generate an alarm whether there is a fire risk or not, as shown in Figure 3. In the typical mode, the observing message is sent every three minutes; it takes 30 s to be sent in the case of bushfire. The ZigBee modules communication range can be up to 90 m in an outdoor environment. Furthermore, this module uses a solar cell panel and high capacity battery attached with each host board [32]. The architecture of the system contains two parts. The first part contains a set of remote boards to gather temperature and humidity information/data. In contrast, the second part is the host board, which includes the same kind of sensors as the remote board, as well as wind speed and wind direction sensors. Besides, the microcontroller forms the assembled data from the remote boards, which contain the host board position and tangible data. The framework utilizes a microcontroller (mC) in the host board to gather and process the tangible data of humidity, temperature, wind speed, and wind direction. It sends an alert when a few estimations surpass a predefined threshold. The GPS will get the module to state the boards' area. The ZigBee module utilizes the wireless network to connect the host board with a control room. The context the system uses is the location of sensors and time, as well as some environmental elements such as temperature, relative humidity, wind direction, and speed. It is built to send an alarm message to many mobile phones or servers. The alarm message is sent in a normal SMS format.

Context Aware Applications for Reminder, Guidance, and Notification
Context-aware messaging applications can be utilized for notification and guidance purposes. Notification applications are used to send the system's user a message that will inform the user about a particular event or related activity, whereas the guidance management application provides the system users with already structured information to achieve a task or provide directions to reach a place, such as the directions to the location where the presentation on a particular topic is going to be shown.

ComMotion
ComMotion [33] is a location-aware computing environment that uses location and time to send messages as reminders to inform the user about related information based on the user's situation, such as "buy milk" when the user is close to the milk bar. The system ComMotion presents both a graphical and textual interface. The application saves schedules for every location, or class of location (a client may shop at different "markets"). In addition, clients can send suggestions to one another at a particular location. For instance, the application may furnish the client with data, for example, location of surrounding banks, and sends other data at determined times and days of the week. Map information is utilized to introduce the graphical UI to permit full control of official assignments. It likewise offers types of services through a non-visual speech/audio UI. The system recognizes GPS coordinates that are converted into positions that are relative to the user. Users can identify the important locations using the map: Locations, for instance, like "home", "work", "school", etc. The system users can access the web using a mobile phone to get location-based information. This proposed system is formed with a few hardware parts, which incorporate a portable PC, a GPS collector, a CDPD modem, and a Jabra headphone speaker with a bone conductive microphone, as appeared in Figure 4. The figure shows that the framework contains three key modules of the user application and its association with the remote servers. From the present architecture, the user device has the speech server while different servers are on remote stations [33].
The Context information in the form of location and time are used to locate the users. A database of geographical objects such as the location of the milk bar is also used. The system allows the user to view his/her to-do list and any reminder, even if the connection is lost. All reminders are stored on the client device until delivery time. Moreover, if his/her connection is lost and the server cannot access the client device, the new reminders will be saved on the server until communication is re-established. The location name must be in the form of text, not audio, and it is linked to the to-do list or the reminder message to provide the relevant service. After the visual interface appears, the dialogue is used to associate the location name with the to-do list tasks. Speech dialogue takes place only when invoked, so if the user no longer has any interest in the location, the user specifies the location to be ignored. A message will pop up when the delivery time arrives, with a list of text and voice entries.

CybreMinder
CybreMinder [34] is similar to ComMotion [33], but it uses more contextual information such as the presence of nearby people and weather conditions. It is designed to enhance the user's ability to deal with reminders effectively by better defining the situations reminders are engaged in. CybreMinder provides the user with reminders and situations that can be used in several ways such as time-based reminders or location-based reminders. It provides unlimited use of full context, which allows the users to generate and process situations contextually. The system uses the Context Toolkit running 24 h a day, seven days a week. The CybreMinder decides when the reminder and situations are utilized as shown in Figure 5 [34].
The Context Toolkit contains three levels: Context widgets, context aggregators and applications, and context interpreters. Context widget summarizes information about a particular piece of contextual information such as location or activity. Widgets collect information about the environment and provide services that allow users to influence the environment. The context aggregators and applications are used to allow the application to access multiple pieces of context. Finally, the context interpreter is used to interpret context to infer more general information from low-level data.
The system uses a context model, which depends on the situation of the user but typically involves location in latitude and longitude format, time, place, and other more complicated pieces. The user can send reminders to other users on the list, including themselves. Moreover, the users can choose the situation tab and be obtainable with a situation. This interface permits the specification of the structure of a situation (i.e., a collection of context information), or a particular context, that is linked with the reminder. The reminder delivery selects the most appropriate delivery mechanisms to deliver the reminder message, and it allows the recipient to use a configuration file that holds information about the available methods of contacting the user depending on the user's situation. It allows the user also to change the status of the reminder.

Elvin for Inter-Agent Context-Aware Messaging
Elvin system [35] is an event-based communication system for the traditional distribution of an application's notifications. Elvin offers a scalable and content-based system for the distribution of notification events. It uses mobile agents for the client-side where the server represents the Elvin service which is "request-whenever" for subscribing to Elvin, "cancel" for unsubscribing from Elvin, "proxy" for notifications from producers to the Elvin server and "inform" for notifications from the Elvin server to subscribers and consumers. The system uses asynchronous communication or undirected communication mechanisms. Elvin uses a client-server architecture where the server is responsible for the establishment of the communication with clients and to forward messages between publishers and subscribers.
The system uses the user location, time, and event descriptions (message content) as the context information such as "having a party Saturday night". An agent is allowed to announce the event, and the server keeps a list of subscription events. Other agents register interest in a particular event, and the Elvin server compares the message content with the list it holds and forwards the notification to the relevant agent. Moreover, the Elvin system offers routing messages based on the message content. The notification includes a list of key-value pairs and is summarized within an object [35].

Visitor's Guide System for PIL Museum
The PEACH-Israel (PIL) framework [36] supports individual and visitors in a group in the gallery by giving context-aware services, for example, a guide book. It has been assessed and tried on a small group of guests with three to four companions. The system has context-aware correspondence services joined with presentation capacities. This visitors' guide system for museum increases two services to focus on the sharing of the museum experiences, in particular, intra-group communication and framework visitor communication [36]. The specific aspects of this application are that the communication between members of the group is joined with presentation and context-aware communication, considering relative locations, models, and conditions of different group members.
Communication is integrated with presentations using context-awareness. The system integrates locating information from several sources, such as IR and Wi-Fi. PIL is a multi-agent system. Figure 6 demonstrates that the system includes a user-modeling constituent to keep track of the visitor's activity. Figure 6 also shows that a spatial information broker reads the visitor's position every so often using different sources such as IR and Wi-Fi. The presentation composer affords presentations to the visitor, taking into account the user's current location and the visitor's inferred preferences. The services agent is responsible for the delivery of communication and alerting services for both individuals and groups. At the same time, PIL continues to track the situation of the individual visitor and spread the information around groups. The system uses indoor location sensors and receivers to allow messaging using diverse sources such as IR and Wi-Fi. The PIL system identifies the visitor's location to provide appropriate services such as starting a presentation. The communication attributes are the sender, address, a set of contextual conditions for delivery, content to be sent, and receiver. For communication services, the sender of the messages can be a visitor or the system. The message can be sent to a particular visitor, to a group, or to everyone within the system. For instance, a message "come to see this". The message will be delivered immediately as a text message or with delay, depending on contextual information. The system checks the sender and the receiver status within the area.

Conventional Framework for Context-Aware Communication Services for Visitor's Guides
This system [37] aids the improvement of context-aware communication applications as a rule. The system simplifies the communication services class from Figure 7, which is accessible by the visitor's assistance and proposes a proficient and general system for developing context-aware communication services for the visitor's assistance. They provide facilities by configuring a general and generic communication service infrastructure [37].
The expanded tool lets its users (application developers) identify and execute communication services as a fraction of their applications routinely. XML files are used to describe the classes for the Service Configuration tool, indicating the exact configuration of the communication services as well as their contextual conditions and content. Then, the Communication Generator tool, which produces the particular services for the communication infrastructure, uses the XML description files as inputs. The services are produced as an agent in a multi-agent system that has been extended as part of the PIL project (see Section 2.2.4). The communication facility development and usage process contain four significant parts, working in several life-cycle stages, as shown in Figure 8.

1.
Design time where the Communication Service Definition tool identifies the communication services.

2.
Application development time includes user interface development as well as the demands for sending or receiving services that are prepared at the design time.

3.
Runtime initialization level, the communication service generator produces communication services automatically.

4.
After the initialization of runtime, users can employ the communication services using the user interface.
In addition to the services that have been provided with PIL, which are SMS-like and Post-It services, there are two additional services provided with the framework, Memories and Visit Reminder. The Memories service allows the visitor to inscribe notes in a free text about different types of objects inside the museum. This service is ordered as a diary service. On the other hand, the "Visit Reminder" service offers a series of reminder services. For example, the visitors may decide a list of locations that they prepare to visit during the visiting time.  [37]. Where "0 ... *" means the relation between two entities ranges from zero to unlimited number of rows.

Context-Aware Messaging in Social Network Applications
Social network applications provide services for the user, such as communication and sharing information. The term "social awareness" defines people who regulate their behavior according to the knowledge of collocated others and information about a place, such as a hospital. More specifically, social awareness appears to be a technique used to control the system in order to provide appropriate interruptions that adjust to the nature and urgency of the social context and the current task. We investigate applications that use context information besides social relations to perform social tasks. We describe context-aware messaging in social applications depending on the complexity of the context used without considering the social relation as context information as the following:

Context-Mediated Social Awareness Application
This application [38] uses complex multi-context. Complex multi-context means that the application is using more than two kinds of contexts at the same time to achieve a task. The application aims to support close collaboration using context-mediated social awareness between hospital staff, to provide services such as sharing information. The system provides many services, including face-to-face user conversations, making a phone call, and sending a priority message; in addition, the user can wait for the right moment to get in touch with another person. Moreover, the application allows appropriate interruptions that are sent to the users using the context mediated social awareness of the situation. At the hospital, the necessity for direct communication and mobility was taken into consideration by designing a platform for communication and social awareness that was implemented in a high-end mobile phone named "AwarePhone". The application has two main user interfaces: One is to show the contact list and the other the interface for the messages list.
The application is built using Java J2SE 1.4, software, Sun Microsystems, California, United States. Three elements are included: A modified version of the AwarePhone, an HTML client, and a Java-based client. The AwarePhone application is executed on a mobile, Nokia 7650 by Nokia Corporation, Espoo, Finland, that has GPRS. The server has a list of users and uses contextual data such as location, activity, and status for messages. The phone prototype keeps updating the context information of location and activity in the server. The main notion in the AWARE architecture is to merge CSCW system modules with Ubiquitous Computing elements. CSCW system components are to provide social awareness between collaborating users, while the Ubiquitous Computing components are to gain context-awareness. The architecture is structured into four layers, as shown in Figure 9.

1.
The Client layer includes end-user applications using the framework as a back-end system. For example, internet browser, phone, or client layer.

2.
The Awareness layer contains the awareness service and message service or IM service, such as an SMS/MMS.

3.
The Context layer is responsible for the administration, transformation, and distribution of contextual information. 4.
The Monitor and Actuator layer is accountable for context gathering using numerous sensing and actuator technologies.
The system is applied in the hospital environment and used by the hospital staff members such as nurses, surgeons, and dentists. It uses contextual information of the user's location and situation to deliver messages, where every system user is associated with three contexts-personal status, activity, and location.

Context-Aware Communication with Live Contacts
Live Contacts [39] is a .NET-based context-aware communication application allowing users to communicate at the correct time via the correct communication channel using multi-context information. This application uses complex multi-context. Complex multi-context means that the application uses more than two kinds of contexts at the same time to achieve a task. Live Contacts application can run on desktop PCs, pocket PC phones, and smartphones. It takes only four clicks to contact a person at the exact moment through an accurate communication network. When Live Contacts is first started, it takes a few seconds to display the current messenger status such as Online, Busy and Be-Right-Back and current calendar information such as work-time and no work-time. Live Contacts presents the last known location information about the user, as illustrated in Figure 10. The system design is based on observed research in the knowledge-work association. Live Contacts clients are implemented in C#, and the Live Contacts server uses the Microsoft .NET (Compact) Framework. The mobile uses GPRS to connect to the Live Contacts Server, and GSM for voice calls [39].

A Framework for Mobile Context-Based Messaging Applications
A framework proposed in [40] enables messaging applications, where the user can explore and browse messages. It also allows the user to take advantage of different applications and to swap between applications that have the exact framework easily, and it supports several categories of applications that might carry out different tasks such as reporting difficulties of public spaces, evaluation of public services, and the selling of second-hand products. It is implemented using Java, but application details are described using an XML document. Location information is gained using the JSR-179 Location API. The API uses a GPS locator device attached to the mobile to obtain the location.
This framework employs complex, multi-context information to perform the task. The framework enables applications to use location (in latitude and longitude format) and time as context. The framework allows users to send several types of messages: The message to be sent as a regular message, as an opinion poll, or saved as a draft. In contrast, the message format has different contextual and content criteria, depending on what the mobile device supports. For example, the user can send multimedia elements or a text message [40].

Using Semantic Web Technology for Ubiquitous Hybrid Location Modeling Application
The ubiquitous location model [41] is to achieve sharing ability using semantic web technology. The goal behind the application is to model the location and characteristics of the user. They present UbisWorld, which is a ubiquitous computing symbolic location model, and Yamamoto is being used for the modeling of hierarchical geometrical maps. UbisWorld comprises a ubiquitous location and user model to characterize situational statements about the characteristics of the user, including their activity and basic spatial and temporal relations. The user's information is stored in the ubiquitous model of UbisWorld [41]. Yamamoto is the geometrical map modeling tool developed to relate the location of the UbisWorld model to the real world.
The system is structured to represent the physical dimensions of the surroundings where the symbolic model is augmented by geometrical information on spatial entities. This information is important for associating descriptive locations with geometric coordinates. However, the users' information is characterized by situational declarations and keeps in the ubiquitous model of UbisWorld. A hierarchical structure is used to represent levels of granularity, where the nodes hold both geometric information and reference. They are programmed using XML and are prepared and available on the World Wide Web. The semantic web language RDF is used to integrate the nodes to form a coherent model. The system can be used to represent aspects of the real world like an office, a shop, a museum, or an airport. It shows persons, objects, locations, times, events, and their properties and features. Figure 11 illustrates these parts of the system [41].

Micro-Blog
Micro-Blog [42] is a model for mobile social collaboration. It was evaluated using energy and localization testing and trace based simulations, and tested among twelve volunteers. Tourism is one of the main services that Micro-Blog provides, where the user can locate and check up on other users nearby and contact them. Users might record messages in their mobile phones and add pictures of the local shop, as an example. The system is implemented using J2ME. The Micro-Blog phone client is executed on Nokia N95 (by Nokia Corporation, Espoo, Finland) mobile phones via mobile phone sensors such as cameras, GPS, and Wi-Fi networking. On the other hand, the Micro-Blog application server was built using MySQL. Micro-Blog is carried over a wireless network such as Wi-Fi or cellular network to a web-accessible database. Then, the microblogs are placed on a spatial platform, such as Google Maps (by Google LLC, Mountain View, CA, USA) or Microsoft Sensor (by Microsoft Corporation, Washington, DC, USA).
The Micro-Blog architecture is classified as a client-server architecture, which records blogs tagged with locations and access permissions. A localization service is used to gain the location estimation. The localization service decides which localization schemes (Wi-Fi, GSM, and GPS) to use, taking into account the application's exactness/energy requirements. Micro-Blog transfers the location tagged blogs to the application server via a Wi-Fi or cellular connection. The server handles queries from the users and updates their locations. When a client needs to access microblogs, it interacts with a web server to retrieve it. The web server provides only those blogs that the user has permission to access. The phone application must be linked to the blog with the time and location of the device to create a micro-blog. The blog is tagged using several sensor inputs such as accelerometer vibrations, health sensors, Wi-Fi SSIDs, etc. This model uses two types of context information, which we refer to as double context. The types of context information used are time and location of the device depending on the localization schemes (Wi-Fi, GSM, and GPS) being used. The system allows the user to mark out geographic areas and direct queries to the nearest phone in the area. It supports sharing content over the mobile phone, and its application supports several mobile services, for example, Micro-News, Micro-Alert, and social collaboration [42].

InfoRadar
InfoRadar system [43] implements location-based messaging and provides a novel radar interface. It can be used for indoor and outdoor-based messaging. InfoRadar is a system that joins both public and in-group messaging. It can be used to scan messages up to a maximum range of 12 km and has been applied in a shopping mall in Helsinki. The system uses a Personal Digital Assistant (PDA) or mobile phone for location-based messaging. InfoRadar is based on a PDA (Compaq IPAQ) that is associated with an external GPS-device and a GPRS-transceiver attached to the card-slot of the PDA. The GPS-receiver is incorporated into an internal electronic compass for locating the device outdoors and determining the direction of the device.
The client-server architecture of InfoRadar is used to hold all content created and accessed by the client devices. A GPRS-based mobile is used to establish communication between the clients and the server. GPS positioning was used outdoors, and a special version of WLAN, for indoor positioning. InfoRadar supports messaging based on location and time where the user has to define two attributes: The lifespan, as measured by time, and visibility, measured by distance. Moreover, systems use a radar-metaphor to show the position of the user in the middle of the UI. The electronic compass is used to render the orientation of messages concerning the device's pointed direction. It also shows messages, and traces the direction of other users and supports multimedia messages where the user can define a text string or use digital pictures [43].

Socialight: A Mobile Social Networking System
Socialight helps people to interact efficiently within the structure of social networks. Socialight is a social networking service that provides location-based messaging systems and social filtering. At a fundamental level, the system allows users to search for friends and other users in their area. Social network technologies maintain a map showing connections between friends. Social networks are explored by using the following:

1.
Friend Locator, which allows the user to discover the location of their friend within the surrounding area. (Many current social networking applications such as Facebook Places and Foursquare have such features.) 2.
Tap and Tickle, which allows the user to communicate with another friend on the network by controlling the length of vibration on their phone.

3.
Sticky Shadow, which is a location-based messaging feature built around a geographical place for specific users. The content of the messages can include text, audio, video, or any combination thereof.
Socialight [44] can collect the user's location information using several different methods-Bluetooth, Global Positioning System (GPS), and network operator data. The current prototype uses Bluetooth beacons to establish the location of the device. The system uses a client-server architecture. The architecture contains many components, including a small-scale social network, databases, and application logic components. The web interface and the Java applications running on user's mobile phones are representative of the clients. The system gets location using two different methods: Bluetooth zones and Global Positioning System (GPS).
To use the system, the user first visits the official web site to sign up for the social network service to add friends to their network. Then, they download a small Java application to their mobile phone that registers their handset with the server. When the user with the device enters the Socialight network area with a beacon, the socialight enables the user to scan the area. When a Socialight-enabled device enters an area with a beacon, the user scans the area, recovers the location from the beacon, and then broadcasts it to the server using a General Packet Radio Service (GPRS) network. Then, the server locates any friends from the user's social network within the area and if any Sticky Shadows have been left for the user [44].

Context-Aware Group (CAG) Communication System
CAG [45] tracks the location of a mobile phone user and present group communication facilities to allow mobile users to cooperate with other members. The CAG system supports services for users within similar or diverse positions. The system is implemented using HP iPAQ hx2410 Pocket PCs to install the CAG client application software in Personal Java. The CAG system operates using Windows Mobile Second Edition, and they are prepared with a built-in Wi-Fi Ethernet module. On the other hand, the server-side operating system is Fedora Core 2 Linux, where their development programming language is J2SE, and their database is MySQL v4.0.21. CAG used a cell-based wireless network infrastructure. Each CAG is attached to the backbone network through permanent communication shown in Figure 12. CAG uses a Wi-Fi Access Point (AP) to provide the DHCP service information about mobile devices within a certain range. This infrastructure affords two advantages. Firstly, each CAG can recognize users within its responsible province using the Wi-Fi Access Point (AP). Secondly, the services are provided over TCP/IP for all users. The system supports mobile phone messaging techniques to send or view a message. To start registering with the CAG, CAG mechanically allocates an IP address to the device via the DHCP protocol. At the time of registering, the CAG acquires and stores contexts related to the user. When the registration is completed, the user stake advantage of the group communication services is offered by the CAG system [45].

Recent Related Work
In this section, we highlight recently related work done for the context-aware messaging applications. The purpose of this section is to elaborate the recent works done by the researchers in the field of context-aware messaging applications, specifically focusing on IoT environments. Recently, researchers from industries as well as from institutions have focused on the implementation of machine-learning and optimized mechanisms for such applications. Therefore, this section is further divided into three subsections: Machine learning-based context-aware messaging, sentiment analysis, and context-aware security applications.

Machine Learning-Based Context-Aware Messaging
Machine Learning (ML) techniques have been effectively used in context-aware informing applications. Shi et al. [46] investigate the approaches essential to managing contextual data classification that falls inside the ML model; the issues in message characterization, classifier advancement, and classifier evaluation are similarly discussed. Joachims et al. [47] develop a speculative learning model of context-aware messaging request for Support Vector Machines (SVM). Peng et al. [48] extend the Naive Bayes (NB) model with an n-gram language model to address two deficiencies of NB context classifiers. In another investigation, Li et al. [49] propose a two-level multi-leveled estimation that expressly joins the nature of SVM and K-Nearest Neighbor (KNN) systems subject to Variable Precision Rough Sets (VPRS) to improve the precision of context request in the message. Recently, Onan et al. [50] lead an expansive examination of looking at base learning mechanisms, that is NB, SVM, regression and random distribution models with five generally utilized for context-aware message characterization.
In recent years, the supervised and semi-supervised learning-based techniques [51] and the deep learning-based techniques have been proposed for the context-aware classification. The fast context-aware classifier fastText [52] provides a direct and powerful benchmark for context-aware grouping. It receives execution equivalent to as of recently proposed methods roused by deep learning while simultaneously, being must faster. Kim et al. [53] outline a progression of trials with Convolutional Neural Networks (CNN) in light of Word2Vec. Its examination results show a clear CNN with little hyperparameter tuning, and static vectors achieve incredible results on various benchmarks. This work is commonly embraced for context-aware data classification. These context-aware data classification strategies can be utilized to recommend messaging for a microblog post. Yet, most of them focus on manifest content and disregard individual components and consistent factors that may impact a user's decisions for messages.

Context-Aware Sentiment Analysis
Context-aware sentiment analysis alludes to the strategy of analyzing the subjective suppositions and context from an arrangement of source materials. It is organized to various domains, for example, social networking [54][55][56][57]. Recent related works based on context-aware sentiment analysis use sentiment dictionaries, for instance, SentiWordNet [58,59], SenticNet [60], eSOL [61], and Ml-Senticon [62]. In [58], the authors couple sub-symbolic and symbolic ML to intelligently search theoratical primitives from context and connection it to realistic ideas and named components in another three-level data depiction for sentiment analysis. Domain-specific dictionaries have been introduced to deal with the issue that a couple of words can have different implications (might be positive or negative) dependent upon the domain. Deng et al. [63] propose a technique to receive existing context-based sentiment vocabularies for domain-specific sentiment classification using an unannotated corpus and dictionary. However, the substantial challenge is that they require semantic resources that are missing for specific dialects like Chinese.

Context-Aware Security Applications
Several works explore and focus on the advancement of context-aware security applications in IoT to manage security and privacy preservation difficulties. In [64], the authors worked on the issue of secure remote control of IoT devices. To accomplish this, they proposed a distributed lightweight fine-grained access control subject to a context-aware Attribute-Based Encryption (ABE) plan and a one-way hash chain for affirmation. In [65,66], Capability-Based Access Control (CapBAC) using approval tokens was acquainted as a realistic technique to be implemented in IoT. The technique relies upon the undertaking of endorsement choices to a focal entity, which passes on privileges to be grasped at the end IoT device. However, the use of a focal entity allowing user verification further presents a solitary purpose of failuar and avoids end-to-end security. Distributed CapBAC (DCapBAC) [67,68] handles these issues by having the endorsement executed by the IoT end devices themselves. In any case, IoT devices are often resource-constrained and may be easily undermined. DCapBAC is less effective in security arrangement in untrustworthy IoT systems. Besides, Attribute-Based Cryptography (ABC) is considered as a promising technique that can be exploited to give flexible access control. In such a technique, each user is identified with a set of contexts, and data is encoded based on an access pattern. Only those users whose properties satisfy the context-based access approach can decrypt the ciphertext. The authors of [69,70] proposed context-aware fine-grained access to a control strategy while joining the Ciphertext-Policy Attribute-Based Encryption (CP-ABE) with time and position factors.

Discussion
This section presents a summary of the literature we examined in Table 2. It summarizes the context-aware applications according to application type, technology, system architecture, usage, and user context information. The table identifies the architecture and the context information used to address the message and structure. Moreover, the table displays that location is recorded as a current context that used within several context-aware messaging applications to address the messages. The literature of a context-aware system requires the consideration of many issues, such as the services being provided and the type of user. Each system has its methodology to deliver a message to the user depends on the domain objectives. For example, the bushfire monitoring and detection system (using GSM Technology) and the bushfire monitoring and detection system for smart homes using ZigBee technology, use short messaging techniques to inform the user. However, both systems do not supply the user with further information that may help to avoid disaster. For instance, informing the user or rescuer of the presence of each other and any safe areas and danger areas, and danger movement and direction. The social awareness application gives an idea about how to minimize interruptions and disturbances between users, while the guide notification and management systems provide an idea about using the user's location information using several different methods-Bluetooth, GPS, and network operator data.
Every context-aware system has the attributes that allow it to construct appropriate messages as well as to address the right actor at the right time. This attribute can be in several forms, such as location, time, and personal behavior. For example, the IPL museum system personalizes the user interface by using a user-modeling component to keep track of visitor's preferences based on their behavior. Whereas, ComMotion and CybreMinder use the attributes of location and time to address and send messages in the form of reminders to inform the user about related information. Hence, there is an appropriate selection of actual context used depending on the application. Spatial aspects are used to represent the actual location and the distance of users concerning locations/features. For example, InfoRadar uses a radar-metaphor as a replacement for the position of the user in the middle of the map provided in the user interface. Furthermore, the CAG system supports services for group members within the same or different localities. Grouping the users will minimize communication, overhead, and cost, which can be defined by a threshold-based algorithm that uses the nearest neighbors for continuous monitoring using their locations. More issues need to be studied and addressed, particularly within the emergency application. Some issues depend on the goal and the task that the prototype must achieve. There are common issues in the area of context-aware messaging, such as the level of the security, where the users can share some contextual information about each other and the system; also, an issue is whether the historical context is useful. The number of types of contexts being used in the application varies from application to application. In recent years, we notice that the use of context in the applications has increased significantly as compared to previous years, not only in types of context but the ubiquity of context. Popular social networking applications such as Facebook (e.g., the Place function) and Four Square rely on location, now available on new devices such as iPhones and Android smartphones. Moreover, several works focus on the use of ML-based context-aware messaging techniques for their applications, such as SVM, KNN, NB, and VPRS. These techniques help to find out most relevant context-aware messages for the applications, and also predict prospective information. Another important work done for the context-aware messaging applications is the use of context for sentiment analysis, such as for social networking applications. However, this raises privacy and security concerns due to public messaging information. Therefore, researchers have also contributed to investigating the development of context-aware security applications for IoT environments to deal with security and privacy issues.

Observations and Conclusions
Context-aware messaging and addressing applications have the ability to exploit contextual information such as location and time, as well as to take advantage of the increasing availability and viability of mobile technologies like processing power and memory availability. In this paper, we discussed the term "context", related to a messaging task that an application would perform. A messaging task includes the structure of the message as well as addressing the right target of the message. The objective of this review is to inspect the notion of context-awareness and its association with mobile computing messaging applications to describe a general approach for a context-awareness domain. The survey includes applications that use context information to provide messaging services.
The survey provides knowledge about the context information within several domains, and the technology is used to demonstrate those domains. This knowledge inspires the future work of designing a framework for context-aware messaging and addressing. The literature of the definition of context-awareness is provided within the paper as well as our definition of context-awareness as the use of any knowledge or information for the application to progress and execute a messaging task that relates to the user's situation. Moreover, we illustrated the notion of context-aware messaging and addressing using numerous applications. The survey includes most of the area within the context-aware application that uses context information for constructing and addressing the message at the right time. This review classifies applications into three categories: Emergency applications, guide and notification applications, and social awareness applications. Moreover, we categorize the applications according to the context model being used to deliver the service into three levels, depending on the extent and complexity of the context used. Later, we discussed these three categories in the light of recent related research works. We observed that the future IoT-based engineering technologies need an ML-based solution, specially focusing on security and privacy issues. In addition, we also make the following observations:

•
There is a tremendous similarity in the systems we reviewed in terms of architecture and the way context is used, even when the application type is different, thereby suggesting the feasibility of a general context-aware messaging framework applicable to a wide range of applications, where the range of context information used can be adapted (e.g., some use only location, and others, location, time, user profile, etc.).

•
There is a need to combine indoor and outdoor positioning in the direction of several systems mentioned above, but to be able to do so an integrated manner (e.g., to be able to send messages to everyone within the Chadstone shopping mall or near it, say, the parking area or on a route leading into the mall. There is a need to exploit richer spatial information, not just point-based locations, but geofencing and being able to use spatial features of the environment for addressing (e.g., send a message to all the people near that pond), which has not been addressed in the reviewed systems. The potential of activity-awareness, situation-awareness, and context-awareness for messaging has only been explored to a limited extent in the work reviewed. Richer context can be explored for future context-aware communication and messaging, e.g., information about the situations or activities of people; for example, we might want to send a message to "everyone running or walking (and not those standing still) in a particular area, next to burning building" or even more precisely, to "everyone who started running or walking (and not those standing still) away from the burning building, in a particular area, 5 min ago and who are still doing so".

•
Hybrid peer-to-peer and centralized client-server architectures have tremendous value, and current context-aware messaging has not fully exploited their potential; e.g., peer-to-peer devices can share contexts to route messages, and as mobile devices move, they can act as probes providing light into more areas and places. Moreover, peer-to-peer messaging, using Bluetooth, for example, can complement other wide-area communication mechanisms (e.g., SMS) in a hybrid style communication, which may be useful in emergency settings when network coverage is reduced.

•
In the applications reviewed, some utilized text and others richer media as smartphones and mobile devices become more powerful, and there is an opportunity to use rich media, even videos, and combinations of sound and graphics in messages that provide better information for emergency and/or social networking reasons.

•
Redundancy of communication is not fully exploited in the above systems we reviewed-especially dealing with dynamically changing contexts, errors in sensed context, or node and system failures.

•
Machine learning techniques have proven their importance in context-aware messaging applications. Numerous researchers have proposed techniques based on supervised, semi-supervised, and deep learning strategies for the context-aware classifications, which can be utilized to suggest context-aware messaging for IoT applications. However, most of the works focus on manifest contents and neglect individual elements and logical variables that may influence a user's decisions for messages.

•
For context-aware sentiment analysis, multiple domain-specific repositories have been designed so that a few words can have various meanings. However, a significant challenge is that these repositories require linguistic assets that are lacking for certain languages such as Chinese.

•
Privacy and security have not been dealt with extensively in the reviewed systems; for example, controlling the extent that someone's location is revealed (whether by frequency of reporting or obfuscating the location, or adapting the presentation of locations at different granularities/accuracies depending on levels of friendship).
In the future, we look forward to more sophisticated context-aware messaging and communication systems in the three key areas we reviewed, but also in a larger range of applications and systems which might build on developments in other areas of work, including activity recognition and social media analytic (e.g., sending a message to the people present in the "emerging crowds within a specified city area" or to the people "in this area who are tweeting about the upcoming concert event").