Spatially Cohesive Service Discovery and Dynamic Service Handover for Distributed IoT Environments

International Conference on Web Engineering 2017

8 minute read Read this page in 한국어

This is my first paper published, that I have presented at International Conference on Web Engineering (ICWE) 2017 conference when I was in the second year of the master’s. To present this paper, I have been to Rome for my first abroad business trip. Afterwards, I attended ICWE every year, ICWE 2017 (Rome, Italy), ICWE 2018 (Cáceres, Spain), ICWE 2019 (Daejeon, Republic of Korea), as a presenter of papers, except this year (2020) that I attended the conference in online because of COVID-19 outbreak. Every conference was memorable experience, along with very good colleagues.

At that time, when I was writing this paper right after enter graduate school, my concepts were not that precise. I mentioned Internet of Things (IoT) and Mobile Ad-hoc Network (MANET) at the same time, didn’t distinguish between physical resources and abstract services. However, even though concepts were confusing, my ultimate research direction: providing services to users better in IoT environments, was about to have its shape.

Of course, the reviewers criticized those weak points of the paper very sharply, and getting (perhaps) clearer in my follow-up works.

Introduction

This paper proposes a service discovery algorithm that discovers appropriate services in IoT environments, so that the users can accomplish their goals utilizing physical IoT devices.

On the one hand, the main characteristic of our service discovery algorithm is spatio-cohesiveness. Simply, the goal is to place the spatially-related services in vicinity because the IoT services may involve some interactions with the user. For that, our algorithm analyze spatial-relationships between user-service or service-service pairs and define spatio-cohesiveness requirements. We defined spatio-cohesiveness metric in terms of how strongly the spatio-cohesiveness requirements met, and the metric becomes the criteria of service discovery. As a result, discovered services have spatial cohesiveness in user’s vicinity, like a fog around the user.

On the other hand, the second characteristic of our algorithm is service handover. In IoT environments, the location of users or services has mobility, which affects spatio-cohesiveness over the service provision. Therefore, services should be continuously re-discovered and replaced to maintain high spatio-cohesiveness. I adopted the cell handover concept from network domain, and defined this replacement of services as service handover. Actually, I borrowed a new concept that I just learned, one of the reviewers criticized that the handover concept in this paper is immature. Anyway, regardless of terminology, this replacement concept of services for maintaining high service quality toward mobile users, is necessary and still ongoing in my recent works.

Spatio Cohesive Service Discovery and Dynamic Service Handover

The spatio-cohesive service discovery and handover process

Our spatio-cohesive service discovery algorithm is consist of two phases. First, when a set of resources and services that are required to accomplish task is given, the algorithm extract spatio-cohesiveness requirements considering their spatial-relationship, and generate discovery plan. Then, using the discovery plan, spatio-cohesive service discovery is performed initially, and dynamically handover (replace services) during the service provision time.

Discovery Plan Generation

Firstly, a spatio-cohesive requirement r=(m, n, l) is simply represent that how long the user or services can be. For instance, (u, s1, l1) means the user u and service s1 can be apart up to distance l1, and service cannot be provided properly if the distance between them exceed the limit. And for a given set of service candidates C, we calculate how strongly each requirement is met by using a function r(C), which output’s range is [0, 1]. The output of the function is 0, if the distance exceed the limit, and 1 if the distance is minimum.

We defined such spatio-cohesiveness requirements not to discover every services to be cohesive, which will discover the services that do not have to be close, unnecessarily. Of course, even Web services would be better to be close for faster network speed, but I wanted to consider physical characteristics of IoT services, which is the main target of this work.

Additionally, we assume that the spatio-cohesiveness requirements of a user’s task can be automatically extracted based on the ontology we suggest, by using Semantic Web Rule Language (SWRL). We haven’t evaluated the extraction, while the focus of this work is on service discoveries, not semantic analysis.

Example of building a service discovery plan

When a set of spatio-cohesiveness requirements is given, our algorithm first convert it into a form of graph, and perform spanning tree algorithms such as Depth-First Search (DFS) or Breadth-First Search (BFS) to convert the graph into a form of tree that has the user as its root. At this moment, the order the algorithm visiting services becomes the service discovery plan. For instance, the figure above is an example of BFS-based service discovery plan, which means that the service discovery should be done for S1 first and discover S3 and S4 from the location of S1.

As you can see in the figure, some of the spatio-cohesiveness requirements are included in the discovery plan, while the others not. At the service discovery phase, discovery itself is performed following the discovery plan but there is additional process to check the spatio-cohesiveness requirements that are not included in the discovery plan.

In our algorithm, we let the discovery of the services not performed altogether at once but in an iterative manner by considering their spatial relationship, because we targeted MANET environment. We set the network of the environments that individual network nodes are constructing local ad-hoc networks rather than being connected through the Internet. So the discovery algorithm also becomes more likely to be a kind of network protocol, not like traditional semantic Web service discovery algorithms that access registry with a certain query. Actually, at that time, I read many papers of service discovery in network level not semantic Web level, and I was affected by those paper. Maybe later, I’ll explain the difference between network-level service discovery protocols and semantic Web service discovery in another article.

Spatio Cohesive Service Discovery and Dynamic Service Handover

After generating service discovery plan, the spatio-cohesive service discovery is quite simple. It just discovers the services that have spatio-cohesiveness requirements with the user, in the user’s vicinity. Then, iteratively discover the services that have spatio-cohesiveness requirements with the priorly discovered services.

We didn’t consider service selection, so when multiple candidates of services are discovered, the algorithm selects the nearest one. And if the selected service does not met the spatio-cohesiveness requirements that are not included in the discovery plan, the algorithm selects another one.

Dynamic service handover has similar process. After the initial service discovery is done, the user and the selected services monitor whether the spatio-cohesiveness requirements are met continuously, and re-discover nearby services. If one of the spatio-cohesiveness requirements are broken or a better service is discovered, it performs handover to replace the poor service. In this paper we didn’t consider handover cost and simply prioritizing services in terms of its signal strength. After handover, the connected services of the handover-ed services are also re-discovered.

Evaluation

We evaluated our spatio-cohesive service discovery and dynamic service handover algorithm in simulation envrironments using NS3. We put 200 service nodes in 100m * 100m area, and located the user in the center of the area. Every service nodes and the user follow RandomDirection2d mobility model of the simulator, with speed between 1~10m/s. Then, we built a virtual task that requires 10 services and randomly generated spatio-cohesiveness requirements. Using the requirements, service plan generation and service discovery and service handover are performed. The main evaluation metric was our spatio-cohesiveness value. We conducted 20s simulations 50 times for each configuration and get average.

Spatio-cohesiveness results compared to baseline approaches

Skip other minor results, the main result of the experiments is like above. BFS-based and DFS-based strategy of generating service discovery plan was not that different, and maintained high value of spatio-cohesiveness over the service provision time. Otherwise, continuously spatio-cohesiveness decreases in the cases of without handover or without discovery plan.

In this result, the maximum of spatio-cohesiveness is nearly 0.6, which seems not that high, because the distance between two services should be 0 to make requirement fulfillment score as 1, while every service have distance from each other. Furthermore, we set baseline algorithms a little weak, because there was no service discovery work considering spatio-cohesiveness.

Testbed implementation

Demonstration of a service-handover scenario in the testbed

At that time, thanks to Cuong, who worked in our lab as a undergraduate intern, we could implement simple handover algorithm in our testbed and include proof-of-concept in the paper. Our professor said that this real-world implementation of the algorithm would contribute to the accept of the paper a lot, and it is true that showing the practicality of the paper is important for engineering research. But at that time, I didn’t understand such things. Anyway, because my works are targetting near-future environments that numerous numbers of IoT services are deployed, my works are often criticized because of their practicality, and there is no better way than showing its tangible implementation.

Conclusion

In this work, we proposed a spatio-cohesive service discovery and dynamic service handover algorithm, that discover services in a spatially cohesive manner and replace services to maintain high spatio-cohesiveness, by considering physical characteristics of IoT environments. Not simply discover every necessary services cohesively, but set spatio-cohesiveness requirements between user-service or service-service relationship and discover cohesively for the services that need to be cohesive. As a result, the user can interact IoT services physically in the vicinity.

I revisited this paper to write this article, and there are some immature things but still this is meaningful my first paper and shows the direction of my human-centric service computing research. Regardless of approaches, the core of my research is to support users to get maximum value by using minimum effort when there are numerous services.

Additionally, I didn’t know that I have to run in my pace to survive in graduate school, so I performed experiments until 4AM and woke up 6 hours later to write the paper about a month. After that, I had long burned-out season and finally realized that I shouldn’t have done like that…

In my following ICWE 2018 work, I extended algorithms in this work by adopting reinforcement learning techniques to make our dynamic service handover more smart. I will write the article of that paper soon.

Leave a comment