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

International Conference on Web Engineering 2017

19 분 소요 Read this page in English

내가 석사 2년차 때 International Conference on Web Engineering (ICWE) 2017 학회에 발표했던 첫 논문이다. 이 논문을 발표하기 위해 로마에 첫 해외 학회 출장을 다녀온 후, 코로나 때문에 온라인 참석한 올해를 제외하고 ICWE 2017 (이탈리아 로마), 2018 (스페인 카세레스), 2019 (대한민국 대전)에 매년 논문을 내며 참석했고, 매번 잊지 못할 좋은 경험이 되었다.

지금 돌아보면 이제 막 대학원에 입학해서 석사 1년차에 이 논문을 쓸 때는 사물인터넷(Internet of Things, IoT)과 애드혹 네트워크(Mobile ad-hoc network, MANET)를 동시에 이야기하거나 물리 환경의 자원(resource)과 추상적인 서비스(service)를 구분하지 않는 등 여러 모로 생각이 명확하게 잡혀 있지 못하던 때였지만, 사물인터넷 환경에서 사용자에게 서비스를 더 잘 제공한다는 내 연구의 궁극적인 방향과 목적이 조금씩 형태를 갖춰 나가던 시기이기도 했다. 물론 논문의 약점들은 리뷰어들에게 날카롭게 지적받았고, 이어진 후속 연구에서 대부분 정리…되었을까?

Introduction

이 논문이 제안하는 것은 사물인터넷 환경의 여러 기기들을 활용해 사용자가 목표(task)를 달성할 수 있도록 알맞은 서비스들을 찾아주는 서비스 검색(service discovery) 알고리즘이다.

제안하는 서비스 검색 알고리즘의 가장 큰 특징은 공간-응집성(spatio-cohesiveness)이다. 말은 거창하게 했지만, 사물인터넷 환경의 서비스들은 실물 기기들이 사용자와 상호작용하기 때문에 공간적 연관성을 갖고 있는 서비스들은 가까운 곳에 위치시키고 싶단 뜻이다. 이를 위해 사용자-서비스, 서비스-서비스 간 공간적 연관성을 공간-응집 요구사항으로 분석하고 이를 기준으로 공간-응집성을 계산할 수 있도록 모델을 세운 뒤 서비스 검색의 평가 척도로 삼았다. 결과적으로, 검색된 서비스들은 사용자를 중심으로 가까이에 위치한 안개와도 같이 응집력을 갖게 된다.

또 하나의 특징은 서비스 핸드오버(service handover)이다. 사용자 혹은 서비스의 위치가 변하는 경우 당연히 공간-응집성에 영향을 미친다. 따라서 공간-응집성을 높게 유지하기 위해 지속적으로 서비스를 재검색하고 서비스를 교체하는데, 이를 네트워크 분야의 핸드오버 개념을 따와서 서비스 핸드오버라고 정의했다. 사실 당시 새로 배운 내용을 내 연구에 접목했던 것이라, 핸드오버라는 개념에 대해 충분히 고민하지 않았다고 리뷰에서 지적받기도 했다. 그렇지만 용어야 어찌 되었건, 이동성에 의해 지속적으로 주변 환경이 변하는 사용자의 경우 서비스 품질을 유지하기 위해 이와 같은 교체 과정은 반드시 필요하고, 나의 이어진 연구들에서도 계속 유지되고 있는 개념이다.

Spatio Cohesive Service Discovery and Dynamic Service Handover

공간-응집 서비스 검색 및 핸드오버 과정

공간-응집 서비스 검색 알고리즘은 두 단계로 구성되는데, 먼저 목표를 달성하기 위해 필요한 자원 및 서비스의 목록이 주어졌을 때, 사용자 자신을 포함해 이들 간의 공간적 연관성을 고려해 공간-응집 요구사항을 도출하고 이를 바탕으로 서비스 검색 계획(discovery plan)을 생성한다. 그리고 검색 계획을 기준으로 서비스 검색을 수행한 뒤, 서비스 제공 기간 동안 지속적으로 핸드오버, 즉 더 나은 서비스로 교체한다.

Discovery Plan Generation

먼저 서비스 검색 계획의 핵심이 되는 공간-응집 요구사항 r=(m, n, l)은 간단하게, 사용자 또는 서비스 중 2개가 얼마나 멀리 떨어져 있어도 되는지 나타낸다. 예를 들어, (u, s1, l1)과 같은 공간-응집 요구사항이 있을 때, 사용자 u와 서비스 s1은 최대 l1까지 떨어져 있을 수 있으며, 거리가 그 이상 벌어지는 경우 서비스는 정상적으로 제공될 수 없다는 뜻이다. 그리고 주어진 후보 서비스 집합 C에 의해 각각의 요구사항이 얼마나 강하게 만족되는지를 거리에 따라 0과 1 사이의 값으로 나타낸 함수가 r(C)이다. 최대 거리보다 멀어졌을 때는 0이고, 가장 가까이에 있을 때는 1이다.

이처럼 공간-응집 요구사항을 정의했던 것은, 단순히 모든 서비스가 응집되도록 서비스를 검색한다면, 멀리 있어도 상관 없는 서비스까지 필요 이상으로 응집되게 할 것이기 때문이었다. 물론 웹 서비스의 경우라도 가까이에 있으면 네트워크 속도가 더 빠를 테니까 낫겠지만, 이 연구의 대상인 사물인터넷 서비스의 물리적 특성을 고려하고자 한 고민의 결과였다.

덧붙여서, 사용자의 태스크에 대해 공간-응집 요구사항은 본 연구에서 제안한 온톨로지(ontology)에 Semantic Web Rule Language(SWRL)를 사용해 규칙 기반의 자동 추출이 가능하다고 가정한다. 논문에서는 이와 관련된 검증을 하지 않았는데, 이는 본 연구의 목적이 어디까지나 서비스 검색이지, 시맨틱 분석이 아니기 때문이었다.

서비스 검색 계획 생성 예시

공간-응집 요구사항이 주어졌을 때, 서비스 검색 계획을 생성하기 위해 이를 먼저 그래프 형태로 변환하고 Depth-First Search(DFS)나 Breadth-First Search(BFS) 등 그래프의 신장 트리(spanning tree) 알고리즘을 통해 그래프를 사용자를 루트(root)로 갖는 트리(tree) 형태로 변환한다. 이 때 알고리즘에서 각 서비스를 탐색한 순서가 서비스 검색 계획이 된다. 예를 들어, 위 그림은 BFS 방식의 서비스 검색 계획의 예시로 서비스 검색을 수행할 때 S1을 검색한 뒤, S1을 중심으로 S3와 S4를 검색하라는 뜻이다.

그림에서 볼 수 있듯이, 공간-응집 요구사항 중에서 일부는 검색 계획에 포함이 되고 일부는 포함이 되지 않는다. 서비스 검색 자체는 계획을 따라 수행되지만 포함이 안된 요구사항들도 만족시켜야 하기 때문에 검색 중에 이를 확인하는 과정을 거친다.

서비스를 한꺼번에 검색하지 않고 그 연관성을 고려해서 순차적으로 검색하도록 한 것은 MANET 환경을 고려했기 때문이었다. 개별 네트워크 노드가 인터넷에 연결되어 있다고 생각하기보다 지역적으로 애드혹(ad-hoc) 네트워크를 구성해 통신하고 있다고 환경을 설정했고, 뒤에 설명할 테지만 이에 따라 검색 알고리즘 또한 registry에 접근해 검색어를 주고 결과를 받는 일반적인 웹서비스 검색이 아니라 주변에 패킷을 날리고 직접 받는 방식의 검색이 되었다. 이 당시 읽었던 서비스 검색 논문에 네트워크 프로토콜 수준의 연구들이 많아서 그에 영향을 받았기 때문이기도 했는데, 네트워크 수준에서의 서비스 검색과 시맨틱 수준에서의 서비스 검색이 어떻게 다른지는 나중에 다른 글에서 다뤄보도록 하자.

Spatio Cohesive Service Discovery and Dynamic Service Handover

서비스 검색 계획을 생성한 다음, 공간-응집 서비스 검색은 꽤나 단순하다. 사용자와 공간-응집 요구사항을 갖는 서비스들을 사용자 주변에서 먼저 검색하고, 검색된 서비스들과 공간-응집 요구사항을 갖는 서비스들을 검색하기를 반복하는 것 뿐이다.

서비스 선택은 고려하지 않았기에 여러 서비스가 검색되었을 때에는 그 중에서 가장 가까운 것을 선택하는 단순한 방법을 택했다. 그리고 앞서 말한 것처럼, 서비스 검색 계획에 포함이 되지 않은 요구사항들도 확인해서 만족하지 못한다면 다른 서비스를 선택한다.

동적 서비스 핸드오버도 비슷한 과정을 거쳐 수행된다. 초기 서비스 검색이 완료된 이후에 사용자와 각 서비스는 공간-응집 요구사항이 만족하는지를 지속적으로 모니터링하고 근처에 있는 서비스를 검색한다. 만약 요구사항이 만족이 되지 않았거나 더 나은 서비스가 검색이 되면 핸드오버를 수행하는데, 이 당시에는 서비스 핸드오버로 인해 발생하는 비용 등은 고려하지 않고 신호 세기를 비교해 더 나은 서비스가 있으면 핸드오버하고, 서비스 검색 계획에 따라 하위 서비스들도 재검색을 한다.

Evaluation

공간-응집성 비교 결과

제안하는 알고리즘은 NS3를 사용한 시뮬레이션 환경에서 평가하였다. 100m * 100m 영역에 200개의 서비스 노드를 배치해놓고 사용자를 가운데에 배치한 다음 시뮬레이터의 RandomDirection2d 이동성 모델을 따라 사용자와 서비스 모두 1~10m/s의 속도로 이동하도록 했다. 그런 다음 10개의 서비스를 필요로 하는 가상의 태스크를 만들어 무작위로 공간-응집 요구사항을 생성하고 서비스 검색 계획 생성, 서비스 검색, 서비스 핸드오버를 수행하도록 했다. 평가 지표는 본 연구에서 제안한 공간-응집성의 계산 값이었다. 한 조건에 대해 20초의 시뮬레이션을 50회 반복해 실험하고 평균을 내었다.

다른 자잘한 결과들은 생략하고, 주요 실험 내용 결과는 위와 같다. 서비스 검색 계획을 생성할 때 BFS와 DFS를 사용한 두 결과는 크게 다르지 않았고, 서비스 제공 시간 동안에 높은 공간-응집성을 유지했다. 반면에 핸드오버를 아예 수행하지 않았거나, 서비스 검색 계획을 사용하지 않은 경우에는 서비스 제공 시간 동안 지속적으로 공간-응집성이 떨어지는 것을 볼 수 있다.

여기서 공간-응집성이 높아야 0.6인 것은, 공간-응집 요구사항을 가진 두 서비스의 거리가 0이어야 해당 요구사항의 만족도가 1로 책정되었기 때문으로, 실제로는 어느 정도의 거리를 가질 수밖에 없기 때문에 아주 높아 보이지는 않는 수준이다. 그리고 공간-응집성을 고려한 다른 서비스 검색 연구가 없었기 때문에 알고리즘의 성능을 비교할 베이스라인은 조금 약하게 설정될 수밖에 없었다.

Testbed implementation

테스트베드에서 핸드오버 예시 개발

이 당시 우리 연구실에서 학부생 인턴으로 테스트베드를 개발하고 있던 Cuong 덕분에 테스트베드에 간단한 핸드오버 알고리즘을 구현하고 proof-of-concept을 논문에 실을 수 있었다. 교수님께서는 논문의 내용을 실제 구현해본 사례를 제시한 것이 억셉에 큰 영향을 미쳤을 거라고 하셨는데, 그 당시에는 잘 몰랐어도 지금 돌이켜 보면 이처럼 논문의 실용성(practicality)를 보이는 것이 공학 연구로서는 굉장히 중요한 것은 사실이다. 아무래도 내 연구의 대상이 아주 많은 수의 IoT 서비스가 제공되는 미래 환경이다보니 실용성에 대한 지적을 많이 받는데, 직접 보여주는 것보다 효과적인 대응책은 없다.

Conclusion

본 연구에서는 IoT 환경의 물리적 특성을 고려해서, 사용자가 필요로 하는 서비스들이 공간 안에서 응집력 있게 검색되고 지속적인 교체를 통해 높은 공간-응집성을 유지하는 알고리즘을 제안했다. 단순히 모든 서비스들이 응집력있게 검색되는 것이 아니라, 사용자-서비스 간 또는 서비스-서비스 간 관계를 고려한 공간-응집 요구사항을 기준으로 공간-응집성이 필요한 서비스들을 응집력 있게 검색한다. 이를 통해 사용자는 물리 기기와 상호작용해야 하는 IoT 서비스들을 가까이에서 활용하여 태스크를 수행할 수 있다.

이 글을 쓰기 위해 논문을 다시 꺼내 보니 미숙한 것도 많고 내가 이렇게 썼었나 싶은 내용도 많지만, 여전히 나에게는 의미있는 첫 논문이고 지금 내가 하고 있는 사용자 중심적 서비스 컴퓨팅 연구의 방향성을 잘 제시해주었다. 돌아보면 결국 방법론이야 어찌 되었건 수많은 서비스들이 있을 때 사용자가 최소한의 노력으로 최대한의 가치를 제공받을 수 있도록 보조하는 것이 내 연구의 핵심 방향성이다.

덧붙여, 이 논문을 작업하던 때는 대학원 생활 중에 살아남기 위해서 페이스 조절을 해야 한다는 사실을 몰랐고, 반드시 해낸다는 생각에 한 달간 새벽 4시까지 실험하고 하루 6시간 잠만 자고 논문을 썼었다. 그리고선 한동안 번-아웃 되어서야 그렇게 해서는 안되었다는 것을 깨달았다…

이어진 내 후속 연구(ICWE 2018)는 알고리즘 측면에서 확장되어, 서비스 핸드오버를 좀 더 스마-트하게 하기 위해서 강화학습 알고리즘을 도입했고, 조만간 이에 관한 글도 작성할 예정이다.

댓글남기기