KR101334383B1 - 상황 인식 네트워크에서 서비스 경로를 구성하는 방법 및 장치 - Google Patents
상황 인식 네트워크에서 서비스 경로를 구성하는 방법 및 장치 Download PDFInfo
- Publication number
- KR101334383B1 KR101334383B1 KR1020110143824A KR20110143824A KR101334383B1 KR 101334383 B1 KR101334383 B1 KR 101334383B1 KR 1020110143824 A KR1020110143824 A KR 1020110143824A KR 20110143824 A KR20110143824 A KR 20110143824A KR 101334383 B1 KR101334383 B1 KR 101334383B1
- Authority
- KR
- South Korea
- Prior art keywords
- service
- path
- fairness index
- application server
- router
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/308—Route determination based on user's profile, e.g. premium users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/70—Routing based on monitoring results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 상황 인식 네트워크에서 서비스 경로를 구성하는 장치, 방법 및 그 방법을 기록한 기록매체에 관한 것으로, 본 발명의 일 실시예에 따른 네트워크에서 서비스 경로를 구성하는 방법은, 라우터가 사용자의 요구 사항과 상황 정보에 따른 서비스 템플릿을 선택하고, 선택된 서비스 템플릿의 개별 구성 요소에 대한 서비스 인스턴스를 검색함으로써 서비스 경로에 대한 후보 그래프를 생성하며, 생성된 후보 그래프 내의 경로들에 대하여 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수(fairness index)를 산출하고, 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택한다.
Description
본 발명은 상황 인식 네트워크에서 서비스 경로를 구성하는 기술에 관한 것으로, 특히 사용자의 주변 환경 및 단말의 능력, 네트워크 변화 등에 따르는 복합 상황 요소들을 자동으로 인식하여 서비스 경로를 구성하는 장치, 방법 및 그 방법을 기록한 기록매체에 관한 것이다.
기존의 인터넷 서비스 환경은 서비스 이용자가 서비스 사업자에 종속된 형태로 사용자는 가입한 사업자가 제공하는 서비스를 이용하거나 타 사업자와의 연동을 통해 일부 제공하는 서비스를 이용할 수 있고, 이로 인해 사업자별로 독자적인 서비스 개발이 이루어지고 있어 서비스를 중복하여 개발하는데 따르는 비용이 과다한 실정이다. 또한 서비스의 대부분은 사용자나 네트워크의 상황이 변화하는 경우 이를 인지하고 반응하는 것이 매우 수동적이어서 유연하게 대응하지 못하고 있다.
상황 인식 서비스 오버레이 네트워크(Context-aware Service Overlay Network)는 앞서 언급한 문제점을 해결할 수 있는 네트워크 구조 중 하나로, 사용자의 주변 환경 및 단말의 능력, 네트워크 변화 등에 따르는 복합 상황 요소들을 자동적으로 인지하여 처리할 수 있고, 사용자 개입을 최소화하는 형태로 상황에 최적화된 서비스를 제공한다. 이와 같은 네트워크상에서는 서비스 요청 시, 변화하는 사용자의 상황 정보에 적응적으로 컴포넌트 서비스들을 선택하고 상호 연결하여 네트워크상에서 서비스 기능을 수행한 후 사용자에게 전달되도록 하는 서비스 경로 구성 알고리즘이 필요하기 때문에 이에 대한 연구가 활발히 진행되고 있다. 최근의 상황 인식 서비스 오버레이 네트워크는 분산 환경 기반인 경우가 대부분이기 때문에 이들의 서비스 경로 구성 알고리즘에서는 빠른 응답 시간 및 네트워크의 확장성을 위해 가까운 곳의 컴포넌트 서비스부터 검색을 시작하여 사용자에게 가장 적합한 서비스를 선택 및 수행하여 전달하는 것이 대부분이며, 각 알고리즘들은 QoS(Quality of Service) 등의 여러 성능 메트릭(Performance Metric)들을 보장하기 위한 여러 기법을 사용하고 있다. 이하에서 제시되는 비특허문헌에는 이러한 서비스 오버레이 네트워크에서 사용자에게 성능을 보장해줄 수 있는 기술들에 대해 소개하고 있다.
JongWon Kim, Sang Woo Han, Dong-Hoon Yi, Namgon Kim, "Media-Oriented Service Composition with Service Overlay Networks: Challenges, Approaches and Future Trends", Accepted for publication in Journal of Communications, Vol 5, No 5 (2010), pp. 374-389, May 2010
본 발명의 실시예들이 해결하고자 하는 기술적 과제는, 기존의 서비스 오버레이 네트워크에서의 서비스 경로 구성 알고리즘들이 서비스를 요청한 사용자의 근처에 있는 서비스 인스턴스부터 고려하기 때문에 서비스 요청이 과도하게 집중되는 핫스팟이 발생할 경우 부하 분산에 취약하다는 문제점을 해결하고, 그로 인해 핫스팟 근처의 소셜 미디어 서비스 사용자들에게 일정 수준의 서비스 품질을 보장해주지 못하는 한계를 극복하고자 한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 복수 개의 어플리케이션 서버(application server) 및 상기 어플리케이션 서버의 서비스 목록을 관리하여 서비스를 제공하는 라우터(router)로 구성되는 네트워크에서, 상기 라우터가 서비스 경로를 구성하는 방법은, 상기 라우터가 사용자의 요구 사항과 상황 정보에 따른 서비스 템플릿을 선택하는 단계; 상기 라우터가 상기 선택된 서비스 템플릿의 개별 구성 요소에 대한 서비스 인스턴스를 검색함으로써 서비스 경로에 대한 후보 그래프를 생성하는 단계; 및 상기 라우터가 상기 생성된 후보 그래프 내의 경로들에 대하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수(fairness index)를 산출하고, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 단계;를 포함한다.
일 실시예에 따른 상기 서비스 경로를 구성하는 방법에서, 상기 서비스 경로에 대한 후보 그래프를 생성하는 단계는, 상기 라우터에 등록된 상기 서비스 목록을 참조하여 상기 선택된 서비스 템플릿의 개별 구성 요소마다 해당 서비스 인스턴스가 존재하는 어플리케이션 서버를 검색하는 단계; 및 상기 검색된 어플리케이션 서버를 상기 서비스 템플릿의 서비스 순서에 따라 연결함으로써 서비스 경로에 대한 후보 그래프를 생성하는 단계를 포함한다.
일 실시예에 따른 상기 서비스 경로를 구성하는 방법에서, 상기 공정성 지수는, 상기 후보 그래프를 구성하는 노드의 대역폭 사용량과 프로세서 사용량을 고려하여 산출되며, 상기 어플리케이션 서버에 대한 부하의 분산 정도에 비례한다.
일 실시예에 따른 상기 서비스 경로를 구성하는 방법에서, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 단계는, 상기 생성된 후보 그래프 내의 경로들을 탐색하면서 새롭게 발견된 경로에 대해 상기 경로의 상황 정보를 고려하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출하는 단계; 상기 새롭게 발견된 경로에 대하여 상기 공정성 지수에 기초한 로드밸런싱(load balancing) 값을 갱신하는 단계; 및 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 단계;를 포함한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 복수 개의 어플리케이션 서버 및 상기 어플리케이션 서버의 서비스 목록을 관리하여 서비스를 제공하는 라우터로 구성되는 네트워크에서, 상기 라우터가 서비스 경로를 구성하는 방법은, 상기 라우터가 사용자의 요구 사항과 상황 정보에 따른 서비스 템플릿을 선택하는 단계; 상기 라우터가 상기 선택된 서비스 템플릿의 개별 구성 요소에 대한 서비스 인스턴스를 검색함으로써 서비스 경로에 대한 후보 그래프를 생성하는 단계; 및 상기 라우터가 상기 생성된 후보 그래프 내의 경로들에 대하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출하고, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 단계;를 포함하고, 상기 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 단계는, 상기 산출된 공정성 지수를 고려하여 미리 설정된 서비스 품질(Quality of Service, QoS)의 충족 여부를 검사하는 단계; 및 상기 검사 결과에 따라 상기 선택된 서비스 경로 중 일부 구간을 선택적으로 갱신하는 단계;를 더 포함한다.
일 실시예에 따른 상기 서비스 경로를 구성하는 방법에서, 상기 미리 설정된 서비스 품질을 충족하지 못한 경우, 상기 선택된 서비스 경로 중 일부 구간을 선택적으로 갱신하는 단계는, 상기 선택된 서비스 경로 중 상기 서비스 품질을 충족하지 못하는 일부 구간에 상대적으로 낮은 가중치를 부여한다.
일 실시예에 따른 상기 서비스 경로를 구성하는 방법에서, 상기 사용자의 요구 사항 또는 상기 상황 정보가 변경된 경우, 상기 선택된 서비스 경로 전체를 재구성할 수 있다. 또한, 일 실시예에 따른 상기 서비스 경로를 구성하는 방법에서, 상기 서비스의 실행 가능성, 응답 시간, 대역폭 또는 프로세서 사용량 중 어느 하나의 변경에 의해 서비스의 상황 정보 또는 링크의 대역폭 또는 지연(delay)이 변경된 경우, 경로의 갱신 횟수를 증가시킴으로써 상기 선택된 서비스 경로 중 일부를 재구성할 수 있다.
한편, 이하에서는 상기 기재된 서비스 경로를 구성하는 방법들을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 복수 개의 어플리케이션 서버 및 상기 어플리케이션 서버의 서비스 목록을 관리하여 서비스를 제공하는 라우터로 구성되는 네트워크에서, 서비스 경로를 구성하는 장치는, 사용자의 요구 사항과 상황 정보를 입력받고, 이에 대응하여 서비스 경로를 출력하는 입출력부; 및 사용자의 요구 사항과 상황 정보에 따른 서비스 템플릿을 선택하고, 상기 선택된 서비스 템플릿의 개별 구성 요소에 대한 서비스 인스턴스를 검색함으로써 서비스 경로에 대한 후보 그래프를 생성하며, 상기 생성된 후보 그래프 내의 경로들에 대하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출하고, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 처리부;를 포함한다.
일 실시예에 따른 상기 서비스 경로를 구성하는 장치에서, 상기 처리부는, 상기 라우터에 등록된 상기 서비스 목록을 참조하여 상기 선택된 서비스 템플릿의 개별 구성 요소마다 해당 서비스 인스턴스가 존재하는 어플리케이션 서버를 검색하고, 상기 검색된 어플리케이션 서버를 상기 서비스 템플릿의 서비스 순서에 따라 연결함으로써 서비스 경로에 대한 후보 그래프를 생성한다.
일 실시예에 따른 상기 서비스 경로를 구성하는 장치에서, 상기 공정성 지수는, 상기 후보 그래프를 구성하는 노드의 대역폭 사용량과 프로세서 사용량을 고려하여 산출되며, 상기 어플리케이션 서버에 대한 부하의 분산 정도에 비례한다.
일 실시예에 따른 상기 서비스 경로를 구성하는 장치에서, 상기 처리부는, 상기 생성된 후보 그래프 내의 경로들을 탐색하면서 새롭게 발견된 경로에 대해 상기 경로의 상황 정보를 고려하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출하고, 상기 새롭게 발견된 경로에 대하여 상기 공정성 지수에 기초한 로드밸런싱 값을 갱신하며, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택한다.
일 실시예에 따른 상기 서비스 경로를 구성하는 장치에서, 상기 처리부는, 상기 산출된 공정성 지수를 고려하여 미리 설정된 서비스 품질의 충족 여부를 검사하고, 상기 검사 결과에 따라 상기 선택된 서비스 경로 중 일부 구간을 선택적으로 갱신한다.
본 발명의 실시예들은 서비스 템플릿을 통해 후보 그래프를 생성하고 이로부터 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택함으로써, 서비스 요청이 과도하게 집중되는 핫스팟이 발생할 경우에도 부하의 분산이 용이하며, 핫스팟 근처의 소셜 미디어 서비스 사용자들에게 일정 수준 이상의 서비스 품질을 보장할 수 있을 뿐만 아니라, 동시에 각 개별 구성 요소(컴포넌트) 서비스 공급자들에게 사용자를 고르게 분배할 수 있다.
도 1은 서비스 오버레이 네트워크의 구조를 표현하기 위한 후보 그래프를 예시한 도면이다.
도 2는 본 발명의 실시예들이 채택하고 있는 상황 인식 서비스 오버레이 네트워크의 구조를 도시한 도면이다.
도 3은 본 발명의 실시예들에 따라 동영상 스트리밍 서비스를 사용자의 휴대전화에서 제공받는 경우의 서비스 템플릿을 예시한 도면이다.
도 4는 도 1의 후보 그래프에 기초하여 최적의 경로를 탐색하기 위한 건설 그래프를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 복수 개의 어플리케이션 서버(application server) 및 라우터(router)로 구성되는 서비스 오버레이 네트워크에서, 서비스 경로를 구성하는 방법을 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 도 5의 서비스 경로를 구성하는 방법에서 서비스 품질의 충족 여부에 따라 경로를 갱신하는 방법을 도시한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 도 5 및 도 6의 방법을 알고리즘으로서 구현한 의사코드(pseudocode)이다.
도 8은 본 발명의 일 실시예에 따른 복수 개의 어플리케이션 서버 및 라우터로 구성되는 네트워크에서, 서비스 경로를 구성하는 장치를 도시한 블록도이다.
도 2는 본 발명의 실시예들이 채택하고 있는 상황 인식 서비스 오버레이 네트워크의 구조를 도시한 도면이다.
도 3은 본 발명의 실시예들에 따라 동영상 스트리밍 서비스를 사용자의 휴대전화에서 제공받는 경우의 서비스 템플릿을 예시한 도면이다.
도 4는 도 1의 후보 그래프에 기초하여 최적의 경로를 탐색하기 위한 건설 그래프를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 복수 개의 어플리케이션 서버(application server) 및 라우터(router)로 구성되는 서비스 오버레이 네트워크에서, 서비스 경로를 구성하는 방법을 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 도 5의 서비스 경로를 구성하는 방법에서 서비스 품질의 충족 여부에 따라 경로를 갱신하는 방법을 도시한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 도 5 및 도 6의 방법을 알고리즘으로서 구현한 의사코드(pseudocode)이다.
도 8은 본 발명의 일 실시예에 따른 복수 개의 어플리케이션 서버 및 라우터로 구성되는 네트워크에서, 서비스 경로를 구성하는 장치를 도시한 블록도이다.
본 발명의 실시예들을 설명하기에 앞서, 서비스 오버레이 네트워크의 활용시에 발생하는 문제점들을 검토한 후, 이들 문제점을 해결하기 위해 본 발명의 실시예들이 채택하고 있는 기술적 배경에 대해 개괄적으로 검토하도록 하겠다.
서비스 오버레이 네트워크에서 서비스 경로를 구성할 때, 각 노드의 부하를 여러 서비스 공급자들에게 분산하는 것은 QoS(서비스 품질) 보장 측면에서 매우 중요하다. SpiderNet 은 분산 기반 환경의 P2P 서비스 오버레이 네트워크 구조의 일례로서, QoS를 보장하면서 부하를 분산하기 위한 서비스 경로 구성 알고리즘을 사용하는 대표적인 구조이다. 이 구조에서의 서비스 경로 구성 알고리즘은 각 노드의 부하를 특정 자원들의 가중 합계(Weighted Sum)로 정의하고, 주변의 서비스 인스턴스를 차례로 검색하며 부하의 합을 최소화하는 경로를 구성한다. QUEST는 중앙 집중 환경의 서비스 오버레이 네트워크 구조로 QoS를 보장하면서 부하를 수용력 이상으로 초과하지 않게 서비스 경로를 구성하는 또 다른 예이다. 이상과 같은 기존의 서비스 경로 구성 방법들은 부하를 주변 서비스 인스턴스부터 고려하여 분배하거나 부하를 수용력을 초과하지 않게만 하는 수동적인 기법을 사용하고 있기 때문에, 핫스팟(Hot Spot) 발생 시 빠르게 부하를 분산하지 못하며, 그 결과 QoS를 최대한으로 보장해주지 못하고 있다.
또한 QoS를 보장하면서 부하를 분산하는 것은 NP-완전 문제이기 때문에 서비스 오버레이 네트워크에서는 이를 최적 해를 구하지 않는 대신 다항 시간에 해결하고 있다. 그 개괄적인 알고리즘은 다음과 같다.
첫째, 사용자의 요청에 따라 수행해야할 복합 서비스(Composite Service)가 결정된다. 복합 서비스란 사용자의 요청을 달성하기 위해 필요한 개별 구성 요소들의 복합체를 의미하는 것으로, 복합 서비스를 구성하는 개별 구성 요소들은 사용자의 요청에 따라 다양하게 결정될 수 있다. 이 때, 복합 서비스를 구성하는 개별 구성 요소들을 컴포넌트 서비스라고 한다.
둘째, 수행해야할 컴포넌트 서비스마다 후보 서비스 인스턴스를 검색하여 후보 그래프(Candidate Graph)를 구성한다. 즉, 이 과정은 컴포넌트 서비스에 활용될 수 있는 서비스 인스턴스들을 선택하여 앞서 결정된 복합 서비스의 구성에 따라 적합한 후보들을 생성하는 과정에 해당한다.
도 1은 서비스 오버레이 네트워크의 구조를 표현하기 위한 후보 그래프를 예시한 도면으로서, 크게 3 개의 단계로 구성된 노드들(복합 서비스를 의미한다.)이 단계(컴포넌트 서비스를 의미한다.)별로 연결되어 있는 것을 보여주고 있다. 또한, 각각의 단계들은 1 개 내지 3 개의 후보 컴포넌트 서비스들을 포함하고 있다. 후보 그래프를 구성한 후에는 최적화할 성능 메트릭에 따라 각 간선의 비용을 계산하는데, 다항 시간에 해결하기 위해 휴리스틱 알고리즘을 사용하여 적합한 것을 선택한다. 이렇게 산출된 간선의 비용을 이용해 후보 컴포넌트 서비스들 중, 어떠한 컴포넌트를 선택할 경우, 최적화된 서비스 경로를 얻을 수 있는지를 판단할 수 있다.
그러나, 이러한 경로 구성 알고리즘은 핫스팟 발생 시 핫스팟 근처의 사용자들은 QoS를 보장받지 못할 확률이 크며, 상황 인식 서비스 오버레이 네트워크상에서 이러한 알고리즘을 이용할 시에는 서비스 경로를 재구성할 때 각 간선의 비용을 매번 재계산해야하기 때문에 네트워크가 확장됨에 따른 성능 저하가 크다.
이와 같이 서비스 경로 구성 알고리즘에 대한 다양한 연구가 진행되어 왔지만 이들은 주로 QoS만을 보장하는 데만 초점을 맞추었고, 각 노드의 부하를 고려하더라도 서비스의 실패(Failure)가 일어나지 않는 수준에서 고려하였다. 또한 그것을 만족시키는 해를 구하기 위해 적용한 알고리즘은 상황 인식 서비스 오버레이 네트워크상에서는 성능에 좋지 않은 영향을 미칠 문제의 소지가 있다.
따라서, 이하에서 기술될 본 발명의 실시예들은 이상의 문제들을 해결하기 위해, QoS를 보장하면서 동시에 부하를 분산하기 위한 문제를 정의하고 이를 해결하는 서비스 경로 구성 알고리즘을 제안한다. 부하 분산에 대한 성능 메트릭으로는 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 지표로서 공정성 지수(Fairness Index)를 이용할 것이며, 동시에 QoS를 수치화하여 정해진 값 이내로 하게 하는 서비스 경로를 구성하도록 문제를 정의할 것이다. 또한 이는 다중-제약 경로 선택 문제의 변형이며, NP-완전이기 때문에 메타-휴리스틱(Meta-Heuristic) 기법 중 하나인 개미 군집 최적화(Ant Colony Optimization) 기법을 이용하여 해결할 수 있음을 보일 것이다.
이제, QoS를 보장하면서 상황 인식 서비스 오버레이 네트워크상의 모든 노드의 부하를 균일하게 분산하는 서비스 경로 구성 방법을 제안한다. 이하에서는 우선 기반이 되는 네트워크의 구조를 소개하도록 한다.
도 2는 본 발명의 실시예들이 채택하고 있는 상황 인식 서비스 오버레이 네트워크의 구조를 도시한 도면으로서, 일반적인 상황 인식 서비스 오버레이 네트워크의 구조는 도 2와 같이 크게 두 가지 요소로 구성된다. 서비스 오버레이 네트워크 라우터(service overlay network router)(220), 즉 SON 라우터와 실제 컴포넌트 서비스가 탑재되는 어플리케이션 서버(application server)(210)가 그것인데, SON 라우터(220)는 서비스 경로를 구성하고 서비스를 라우팅해주며, 어플리케이션 서버의 서비스 목록을 관리한다. 이하에서 편의상 명명되는 '라우터'라 함은 이러한 서비스 오버레이 네트워크 라우터를 의미하는 용어로서 사용된다. 또한 어플리케이션 서버(210)는 실제 서비스를 수행하여 사용자(230)에게 제공한다.
다음으로, QoS 보장과 부하 분산을 목표로 하는 문제를 정의한다. 이렇게 정의된 문제는 QoS를 보장하면서 각 노드의 부하를 최대한 균일하게 분산하는 것이 그 목적이다.
상황 인식 서비스 오버레이 네트워크의 위상이 방향 그래프 G=(V,E)로 주어졌다고 하자. 여기서 V는 서비스 오버레이 네트워크상의 N개의 노드 집합, E는 서비스 오버레이 네트워크상의 노드들을 연결하는 M개의 링크 집합을 의미한다. 또한 각각의 서비스 오버레이 네트워크 노드에는 서비스 인스턴스들이 탑재되어 있다. 서비스 인스턴스의 수를 S라 할 때, 각 서비스 인스턴스 si가 음이 아닌 정수로 표현되는 2개의 QoS 속성, , , 로 특징지어진다고 가정하자. 또 서비스 오버레이 네트워크 노드 ni는 음이 아닌 정수로 표현되는 , , 서비스 오버레이 네트워크 링크 는 음이 아닌 정수로 표현되는 2개의 QoS 속성 , , 으로 특징지어진다고 가정하자.
한 복합 서비스 X의 서비스 템플릿과 음이 아닌 정수로 표현되는 유저의 QoS 관련 요구 사항 과 이 주어졌다고 하자. 이 문제는 공정성 지수 를 최대화하면서 과 를 만족하는 서비스 경로 를 구성하는 것이다.
문제에서 쓰인 각 변수의 의미는 다음의 표 1에 기술되어 있다.
앞서 정의한 문제의 복잡도는 다음과 같다. 본 발명의 실시예들을 통해 제시한 문제는 QoS 인자가 로 두 가지 있으며, 추가로 공정성 지수를 최대화한다. 공정성 지수를 최대화하는 조건을 추가하더라도 다중-제약 경로 선택 문제에서의 문제 복잡도에 대한 정의와 정리에 일반성을 잃지 않으므로 본 실시예들에 따른 문제 역시 NP-완전이라 할 수 있다.
이하에서는 상기 제시한 문제를 해결하는 알고리즘을 제안한다. 상황 정보 서비스 오버레이 네트워크에서는 서비스 경로를 구성하는 알고리즘과 서비스 경로를 상황 정보에 맞게 재구성하는 알고리즘이 필요하다. 그런데 기존의 알고리즘들은 서비스 경로를 재구성할 때, 모든 정보를 다시 읽어 재계산해야 한다는 단점이 존재하였다. 따라서, 본 발명의 실시예들이 채택하고 있는 개미 군집 최적화 기법은 서비스 경로를 선택하기 위해 사용되었으며, 이를 통해 경로 재구성시 서비스 경로 선택에서 산출된 결과들을 재사용할 수 있다는 장점을 갖는다.
(1) 서비스 템플릿 결정 및 후보 그래프( Candidate Graph ) 구성
서비스 경로를 구성하기 위해 사용자의 요구 사항과 상황 정보에 맞는 서비스 템플릿을 선택한다. 예를 들어, 사용자가 휴대폰에서 동영상 스트리밍 서비스를 무료로 받고 싶어 한다면 서비스 템플릿은 도 3과 같이 제시될 수 있다. 도 3은 본 발명의 실시예들에 따라 동영상 스트리밍 서비스를 사용자의 휴대전화에서 제공받는 경우의 서비스 템플릿을 예시한 도면으로서, 원본 동영상 서비스로부터 제공된 서비스 컨텐츠에 무료로 서비스를 공급하기 위해 광고를 삽입하고 휴대폰의 해상도에 맞게 트랜스코딩 서비스를 수행하는 서비스 템플릿이다.
서비스 템플릿을 결정한 후에는 후보 그래프를 구성한다. 후보 그래프를 구성하기 위해서는 서비스 템플릿의 각 컴포넌트 서비스마다 어떤 SON 라우터의 어떤 어플리케이션 서버에 해당 서비스 인스턴스가 존재하는지 검색해야 한다. 예를 들어, 도 3에 대한 후보 그래프는 앞서 소개한 도 1과 같이 구성될 수 있는데, 그 순서는 다음과 같다.
첫째, 도 3의 첫 번째 컴포넌트 서비스인 원본 동영상 스트리밍 서비스들을 검색한 후, 서로 다른 노드에 이들을 배치한다. 도 1에 예시된 바와 같이 원본 동영상 스트리밍 서비스들에 대한 컴포넌트 서비스들은 'VoD1'과 'VoD2'의 2개이므로, 각각을 별도의 노드로서 구성한다.
둘째, 두 번째 컴포넌트 서비스인 광고 삽입 서비스에 해당하는 서비스 인스턴스들을 검색한 후, 서로 다른 노드에 배치한다. 도 1에 예시된 바와 같이 광고 삽입 서비스에 관한 서비스 인스턴스는 1개 뿐으로 'Adz.1'만으로 노드를 구성한다.
셋째, 첫 번째와 두 번째 컴포넌트 서비스의 서비스 인스턴스들을 모두 방향 간선(Directed Edge)으로 연결한다. 즉, 'VoD1'과 'VoD2' 노드 각각으로부터 'Adz.1' 노드로 방향 간선을 연결한다. 나머지 컴포넌트 서비스에 대해서도 같은 규칙을 적용한다. 결과적으로 세 번째 컴포넌트 서비스에 대해서는 'Transcoding1', 'Transcoding2' 및 'Transcoding3'의 3개의 노드가 추가되었으며, 마찬가지로 두 번째 컴포넌트 서비스와 방향 간선으로 연결된다.
(2) 후보 그래프 상에서 최적 경로 선택
후보 그래프를 구성하고 난 후에는 그래프 기반 개미 군집 최적화 기법(Graph-Based Ant Colony Optimization)을 이용하여 서비스 경로를 구성한다. 개미 군집 최적화 기법은 컴퓨터 과학 분야에서 TSP(travelling salesman problem)와 같은 NP-완전 문제들을 해결함에 있어 널리 활용될 수 있는 근사화(approximation) 기법 중 하나로서, 다양한 해에 대해 평가를 통해 우수한 해에 가중치를 누적시킴으로써 최종 해를 도출하는 방법론을 활용하고 있다. 따라서, 비록 본 발명의 실시예들은 구현의 관점에서 개미 군집 최적화 기법을 활용하고는 있으나, 이러한 개미 군집 최적화 기법 이외에도 본질이 유사한 다양한 근사화 기법들이 본 발명의 실시예들이 활용되는 서비스 경로 구성에서 활용될 수 있음은 당연하다.
개미 집단 최적화 알고리즘은 컴퓨터를 이용해 연결 그래프의 최적의 길을 찾는 방법을 줄일 수 있는 알고리즘의 일종으로, 먹이를 찾는 개미의 행동을 보고 만들어졌다. 그 개요만을 간략히 소개하면 다음과 같다. 첫 번째 개미가 (a) 방향으로 어느 길이든 경유해 먹이(F)를 찾아낸다. 그러면 개미는 (b)방향으로 페로몬을 남기며 집(N)으로 돌아온다. 개미는 집에서 음식까지 다수의 이동 경로를 가질 수 있지만, 시간이 지나면 개미들은 페로몬이 누적된 가장 짧은 길을 선택한다. 결국 페로몬이 증발하면서 거기가 먼 길은 사라지게 된다. 보다 구체적으로, 개미들은 다음과 같은 과정을 따른다.
1. 개미들은 무작정 개미집 주변을 돌아다닌다.
2. 만약 음식을 찾아내면 개미는 페로몬을 뿌리며 집으로 돌아온다.
3. 페로몬은 매우 매력적이어서 개미가 따라가고 싶게 만든다.
4. 개미가 집으로 돌아오는 횟수가 많을수록 그 경로는 더 견고해진다.
5. 긴 경로와 짧은 경로가 있으면 같은 시간에 짧은 경로로 이동할 수 있는 횟수가 많다.
6. 짧은 경로는 갈수록 더 많은 페로몬이 뿌려지면서 더욱 견고해진다.
7. 페로몬은 휘발성이기 때문에 시간이 지나면서 긴 경로는 사라진다.
8. 결국 모든 개미가 짧은 경로를 선택하게 된다.
이상과 같은 이해에 기반하여 본 발명의 실시예들을 구현하는 방법을 설명하도록 한다.
도 4는 도 1의 후보 그래프에 기초하여 최적의 경로를 탐색하기 위한 건설 그래프를 예시한 도면으로서, 본 문제를 해결하기 위한 건설 그래프이다. 건설 그래프는 후보 그래프에서 첫 번째 컴포넌트 서비스 앞에 시작 노드를 추가하고, 첫 번째 컴포넌트 서비스의 각 서비스 인스턴스들까지 간선을 잇는다. 또한 사용자 노드를 목적지 노드로 추가하고, 마지막 컴포넌트 서비스의 서비스 인스턴스들로부터 목적지 노드까지 간선을 잇는다. 즉, 최초에 제시되었던 문제(동영상 스트리밍 서비스를 휴대폰에서 제공받고자 하는 문제)는 이제 건설 그래프의 시작 노드(410)로부터 목적지 노드(420)까지의 최적의 경로를 탐색하는 문제로 변경되었다.
건설 그래프를 구성하고 난 후에는 개미들이 건설 그래프 위를 탐색하며 경로를 구성하고 경로에 대응하는 가능 해의 가치에 따라 페로몬(Pheromone)을 뿌린다. 초기 페로몬의 양은 다음의 수학식 1과 같이 결정된다.
수학식 1은 초기 페로몬의 양을 정의한 것이다. 초기 페로몬은 각 간선마다 계산의 편의를 위해 1.0만큼의 페로몬을 뿌린다. 새로 뿌려질 페로몬의 양은 두 단계로 정해지는데 아래의 수학식 2 및 수학식 3에 의해 차례로 계산되어 결정될 수 있다.
먼저 수학식 2에 따라 계산되는데, 여기서 s는 현재 개미의 번호, 는 현재 개미가 얻은 경로에 대한 공정성 지수, 는 현재까지의 최대 공정성 지수를 의미한다. 새로 뿌려질 페로몬의 양은 현재 공정성 지수가 현재까지의 최대 공정성 지수에 가까울수록 크고, 멀수록 적은 값을 가지므로 공정성 지수가 점점 커지는 쪽으로 개미들이 이동할 것이고, 공정성 지수를 최대화하는 쪽으로 경로가 결정될 것이다.
첫 번째 계산 후, 수학식 3 및 수학식 4와 같이 새로 뿌려질 페로몬의 양을 갱신한다.
QoS가 지켜지지 못했을 경우 α를 곱하여 새로 뿌려질 페로몬의 양을 줄인다. α값은 1보다 작은 양의 실수 값을 가지며 초과된 사용 가능성 , 응답 시간 값이 클수록 작은 값을 가진다. 이로써 초과된 양이 클수록 새로 뿌려질 페로몬의 양이 작아지는 효과를 얻을 수 있다.
이상의 알고리즘을 도면을 참조하여 정리하면 다음과 같다.
도 5는 본 발명의 일 실시예에 따른 복수 개의 어플리케이션 서버(application server) 및 라우터(router)로 구성되는 서비스 오버레이 네트워크에서, 서비스 경로를 구성하는 방법을 도시한 흐름도이다. 이 때, 서비스 오버레이 네트워크는 복수 개의 어플리케이션 서버(application server) 및 어플리케이션 서버의 서비스 목록을 관리하여 서비스를 제공하는 라우터(router)로 구성된다.
510 단계에서, 라우터는 사용자의 요구 사항과 상황 정보에 따른 서비스 템플릿을 선택한다. 이러한 서비스 템플릿은 사전에 사용자의 서비스 이용 요청에 대응하여 작성된 것으로서, 라우터 내의 별도의 테이블에 저장될 수도 있고, 외부로부터 입력될 수도 있을 것이다.
520 단계에서, 라우터는 상기 510 단계를 통해 선택된 서비스 템플릿의 개별 구성 요소에 대한 서비스 인스턴스를 검색함으로써 서비스 경로에 대한 후보 그래프를 생성한다. 즉, 서비스 템플릿을 구성하는 컴포넌트 서비스에 대한 서비스 인스턴스를 찾아 후보 그래프를 생성하게 된다. 보다 구체적으로, 서비스 경로에 대한 후보 그래프를 생성하는 과정은, 상기 라우터에 등록된 상기 서비스 목록을 참조하여 상기 선택된 서비스 템플릿의 개별 구성 요소마다 해당 서비스 인스턴스가 존재하는 어플리케이션 서버를 검색하고, 상기 검색된 어플리케이션 서버를 상기 서비스 템플릿의 서비스 순서에 따라 연결함으로써 서비스 경로에 대한 후보 그래프를 생성함으로써 수행된다.
530 단계에서, 라우터는 상기 520 단계를 통해 생성된 후보 그래프 내의 경로들에 대하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수(fairness index)를 산출하고, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택한다. 여기서, 공정성 지수는, 상기 후보 그래프를 구성하는 노드의 대역폭 사용량과 프로세서 사용량을 고려하여 산출되며, 상기 어플리케이션 서버에 대한 부하의 분산 정도에 비례한다. 또한, 이 때 선택되는 서비스 경로는 공정성 지수를 최대화하는 것뿐만 아니라, 동시에 미리 설정된 서비스 품질을 만족시키는 것이 바람직하다.
보다 구체적으로, 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 과정은, 상기 생성된 후보 그래프 내의 경로들을 탐색하면서 새롭게 발견된 경로에 대해 상기 경로의 상황 정보를 고려하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출하고, 상기 새롭게 발견된 경로에 대하여 상기 공정성 지수에 기초한 로드밸런싱(load balancing) 값을 갱신하며, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택함으로써 달성된다. 이 때, 로드밸런싱 값은, 새롭게 발견된 경로에 대해 산출된 공정성 지수가 현재의 최대 공정성 지수에 가까울수록 상대적으로 큰 값을 갖는 것이 바람직하다. 즉, 로드밸런싱 값이란 앞서 소개한 수학식 2에 대응되는 것으로서, 개미 군집 최적화 기법 상의 페로몬을 의미한다.
도 6은 본 발명의 일 실시예에 따른 도 5의 서비스 경로를 구성하는 방법에서 서비스 품질의 충족 여부에 따라 경로를 갱신하는 방법을 도시한 흐름도로서, 도 4의 530 단계에서 추가적으로 수행될 수 있는 단계들에 집중하여 도시한 도면이다. 여기서는 중복을 피하기 위해 530 단계에서부터 설명하도록 한다.
535 단계에서, 라우터는 공정성 지수를 고려하여 미리 설정된 서비스 품질(Quality of Service, QoS)의 충족 여부를 검사한다. 만약 서비스 품질을 충족하지 못한다면, 재차 페로몬을 뿌려 경로를 갱신할 필요가 있다.
537 단계에서, 라우터는 선택된 서비스 경로 중 일부 구간을 선택적으로 갱신하게 된다. 이 때, 상기 선택된 서비스 경로 중 서비스 품질을 충족하지 못하는 일부 구간에 상대적으로 낮은 가중치를 부여하는 것이 바람직하다. 서비스 품질을 충족하는 못한다는 것은 최적의 경로가 아니라는 것을 의미하고, 해당 경로에 대해서는 새로 뿌려질 페로몬의 양을 감소시켜 최적 경로에서 배제시키고자 한다. 특히, 이러한 가중치는 초과된 사용 가능성(availability) 또는 응답 시간(response time)에 반비례할 것이다. 따라서, 초과된 사용 가능성이 크거나, 응답 시간이 클수록 새로 뿌려질 페로몬의 양은 작은 가중치를 부여받게 될 것이다.
도 7은 본 발명의 일 실시예에 따른 도 5 및 도 6의 방법을 알고리즘으로서 구현한 의사코드(pseudocode)이다. 도 7에 예시된 알고리즘을 참조하면, for loop 구조를 통해 각 경로에 대해 페로몬(로드밸런싱 값)을 산출하여 갱신하는 과정을 제시하고 있다. 또한, if 구조를 통해 서비스 품질을 만족하지 못한 경우, 가중치를 적용하여 페로몬을 갱신하는 과정을 제시하고 있다. 이 경우, 서비스 품질이 나쁠수록 낮은 가중치가 부여되는 것이 바람직하다.
이하에서는 사용자 요청에 따른 서비스 경로가 결정된 후, 주어진 조건 내지 상황의 변화에 따라 상황 인식 서비스 오버레이 네트워크에서 서비스 경로를 재구성하는 방법에 대해 설명하도록 한다. 서비스 경로를 재구성한다는 것은 대부분 기존 서비스 경로 중 일부 서비스 인스턴스만을 다른 후보로 교체하는 것이기 때문에, 이하의 실시예들에서는 중복되는 계산을 가능한 한 줄일 수 있도록 서비스 경로 재구성 알고리즘을 전체 재구성 알고리즘, 부분 재구성 알고리즘 두 가지로 나누어 제안한다.
(1) 전체 재구성
전체 재구성 알고리즘을 사용하는 경우는 사용자의 요구 사항이나 상황 정보가 바뀌었을 때이고, 서비스 템플릿을 다시 결정해야하기 때문에 본 발명의 실시예들이 제안하고 있는 서비스 경로 구성 알고리즘을 전부 다시 수행하는 것이 바람직하다. 이 때, 서비스 템플릿은 핵심 컴포넌트 서비스들의 종류와 수행 순서는 그대로되, 부수적인 몇몇 컴포넌트 서비스가 추가되거나 삭제되는 경우가 대부분이다. 즉, 서비스 템플릿이 부분적으로 바뀌는 것이기 때문에 서비스 경로 구성 알고리즘을 전부 다시 수행하되, 기존 서비스 템플릿에 대한 페로몬 정보를 유지하고 중복되는 부분은 재사용하도록 한다. 요약하건대, 사용자의 요구 사항 또는 상황 정보가 변경된 경우, 선택된 서비스 경로 전체를 재구성하게 된다.
(2) 부분 재구성
부분 재구성 알고리즘은 서비스의 실행 가능성, 응답 시간, 대역폭, 프로세서 사용량 등과 같은 서비스의 상황 정보가 바뀌었거나 링크의 대역폭과 딜레이 등이 바뀌었을 때 사용한다. 부분 서비스 경로 재구성 알고리즘은 앞서 본 발명의 실시예들이 제안하고 있는 서비스 경로 구성 알고리즘을 사용하는데, 건설 그래프까지는 그대로 이용하고, 페로몬 갱신 횟수를 늘려 페로몬 업데이트 결과에 따라 기존과 다른 서비스 인스턴스를 선택함으로써 경로를 재구성하는 것이 바람직하다. 요약하건대, 서비스의 실행 가능성, 응답 시간, 대역폭 또는 프로세서 사용량 중 어느 하나의 변경에 의해 서비스의 상황 정보 또는 링크의 대역폭 또는 지연(delay)이 변경된 경우, 경로의 갱신 횟수를 증가시킴으로써 이미 선택된 서비스 경로 중 일부를 재구성하게 된다.
도 8은 본 발명의 일 실시예에 따른 복수 개의 어플리케이션 서버(10) 및 라우터(20)로 구성되는 네트워크에서, 서비스 경로를 구성하는 장치를 도시한 블록도로서, 각각의 구성요소들이 수행하는 동작은 앞서 도 5 내지 도 6을 통해 제시한 서비스 경로를 구성하는 방법의 각 단계에 대응한다. 따라서, 여기서는 설명의 중복을 피하기 위해 장치적인 관점에서 그 개요만을 약술하도록 한다.
또한, 각각의 구성요소들은 편의상 라우터(20) 내에 구현되는 것으로 도시하였으나, 본 발명의 실시예들이 구현되는 서비스 오버레이 네트워크에서는 구현의 편의를 위해 라우터(20)가 아닌 별도의 서버 내지 디바이스를 통해서도 구현될 수 있음을 밝혀둔다.
입출력부(21)는 사용자의 요구 사항과 상황 정보를 입력받고, 이에 대응하여 서비스 경로를 출력한다. 이러한 입출력부(21)는 후보 그래프 내지 공정성 지수를 산출하기 위한 다양한 입력값들을 입력받을 수 있는 수단이다.
처리부(23)는 사용자의 요구 사항과 상황 정보에 따른 서비스 템플릿을 선택하고, 상기 선택된 서비스 템플릿의 개별 구성 요소에 대한 서비스 인스턴스를 검색함으로써 서비스 경로에 대한 후보 그래프를 생성한다. 이 때, 처리부는, 라우터에 등록된 상기 서비스 목록(25)을 참조하여 상기 선택된 서비스 템플릿의 개별 구성 요소마다 해당 서비스 인스턴스가 존재하는 어플리케이션 서버를 검색하고, 상기 검색된 어플리케이션 서버를 상기 서비스 템플릿의 서비스 순서에 따라 연결함으로써 서비스 경로에 대한 후보 그래프를 생성하게 된다.
또한, 생성된 후보 그래프 내의 경로들에 대하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출함으로써, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하게 된다. 여기서, 공정성 지수는, 상기 후보 그래프를 구성하는 노드의 대역폭 사용량과 프로세서 사용량을 고려하여 산출되며, 상기 어플리케이션 서버에 대한 부하의 분산 정도에 비례하는 것이 바람직하다. 즉, 처리부(23)는, 상기 생성된 후보 그래프 내의 경로들을 탐색하면서 새롭게 발견된 경로에 대해 상기 경로의 상황 정보를 고려하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출하고, 상기 새롭게 발견된 경로에 대하여 상기 공정성 지수에 기초한 로드밸런싱 값을 갱신하며, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택한다.
나아가, 처리부(23)는, 산출된 공정성 지수를 고려하여 미리 설정된 서비스 품질의 충족 여부를 검사하고, 검사 결과에 따라 상기 선택된 서비스 경로 중 일부 구간을 선택적으로 갱신할 수 있다. 특히, 검사 결과 미리 설정된 서비스 품질을 충족하지 못한 경우, 처리부(23)는, 선택된 서비스 경로 중 서비스 품질을 충족하지 못하는 일부 구간에 상대적으로 낮은 가중치를 부여함으로써 최적의 경로로부터 해당 경로를 배제하도록 한다.
이러한 처리부(23)는 적어도 하나 이상의 프로세서(processor) 및 그 연산을 위한 메모리(memory)를 통해 구현될 수 있을 것이다. 또한, 이러한 프로세서 및 메모리에 기반하여 도 7에 제시된 알고리즘의 제어에 의해 필요한 연산을 수행할 수 있다.
이상에서 상황 정보 오버레이 네트워크상에서 서비스 경로 구성 알고리즘을 사용할 시, 종래의 여러 서비스 오버레이 네트워크에서 사용하던 알고리즘보다 부하를 분산하면서 소셜 미디어 서비스의 서비스 품질을 최대한으로 보장할 수 있음을 제시하였다. 또한 네트워크상의 각 노드의 부하를 분산하는 것이 보다 더 많은 사용자에게 서비스 품질을 보장해줄 수 있다는 것을 보였다. 그것을 보이기 위해 새로운 문제를 정의하고 이것이 기존의 잘 알려진 NP-완전 문제와 같다는 것을 보이고 메타-휴리스틱 기법을 통해 해결하였다.
본 발명의 실시예들이 제안하는 서비스 경로 구성 알고리즘은 사용자들에게 소셜 미디어 서비스의 서비스 품질을 보장해주면서 상황 인식 서비스 오버레이 네트워크상의 각 노드의 부하를 분산해준다. 이로 인해 더 많은 사용자에게 소셜 미디어 서비스의 품질을 보장해주면서 동시에 각 컴포넌트 서비스 공급자들에게 사용자를 골고루 분배할 수 있다.
한편, 본 발명의 실시예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명에 대하여 그 다양한 실시예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
210 : 어플리케이션 서버 230 : 사용자
220 : 서비스 오버레이 네트워크 라우터
10 : 어플리케이션 서버 20 : 라우터
21 : 입출력부 23 : 처리부
25 : 서비스 목록
220 : 서비스 오버레이 네트워크 라우터
10 : 어플리케이션 서버 20 : 라우터
21 : 입출력부 23 : 처리부
25 : 서비스 목록
Claims (18)
- 복수 개의 어플리케이션 서버(application server) 및 상기 어플리케이션 서버의 서비스 목록을 관리하여 서비스를 제공하는 라우터(router)로 구성되는 네트워크에서, 상기 라우터가 서비스 경로를 구성하는 방법에 있어서,
상기 라우터가 사용자의 요구 사항과 상황 정보에 따른 서비스 템플릿을 선택하는 단계;
상기 라우터가 상기 선택된 서비스 템플릿의 개별 구성 요소에 대한 서비스 인스턴스를 검색함으로써 서비스 경로에 대한 후보 그래프를 생성하는 단계; 및
상기 라우터가 상기 생성된 후보 그래프 내의 경로들에 대하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수(fairness index)를 산출하고, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 단계;를 포함하되,
상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 단계는,
상기 생성된 후보 그래프 내의 경로들을 탐색하면서 새롭게 발견된 경로에 대해 상황 정보를 고려하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출하는 단계;
상기 새롭게 발견된 경로에 대하여 상기 공정성 지수에 기초한 로드밸런싱(load balancing) 값을 갱신하는 단계; 및
상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 단계;를 포함하는 것을 특징으로 하는 방법. - 제 1 항에 있어서,
상기 서비스 경로에 대한 후보 그래프를 생성하는 단계는,
상기 라우터에 등록된 상기 서비스 목록을 참조하여 상기 선택된 서비스 템플릿의 개별 구성 요소마다 해당 서비스 인스턴스가 존재하는 어플리케이션 서버를 검색하는 단계; 및
상기 검색된 어플리케이션 서버를 상기 서비스 템플릿의 서비스 순서에 따라 연결함으로써 서비스 경로에 대한 후보 그래프를 생성하는 단계를 포함하는 방법. - 제 1 항에 있어서,
상기 공정성 지수는,
상기 후보 그래프를 구성하는 노드의 대역폭 사용량과 프로세서 사용량을 고려하여 산출되며,
상기 어플리케이션 서버에 대한 부하의 분산 정도에 비례하는 것을 특징으로 하는 방법. - 삭제
- 제 1 항에 있어서,
상기 로드밸런싱 값은, 상기 새롭게 발견된 경로에 대해 산출된 공정성 지수가 현재의 최대 공정성 지수에 가까울수록 상대적으로 큰 값을 갖는 것을 특징으로 하는 방법. - 제 1 항에 있어서,
상기 후보 그래프는, 상기 상황 정보에 따라 상기 선택된 서비스 경로 중 일부 구간을 선택적으로 갱신하는 개미 군집 최적화(ant colony optimization) 알고리즘에 따르는 것을 특징으로 하는 방법. - 복수 개의 어플리케이션 서버 및 상기 어플리케이션 서버의 서비스 목록을 관리하여 서비스를 제공하는 라우터로 구성되는 네트워크에서, 상기 라우터가 서비스 경로를 구성하는 방법에 있어서,
상기 라우터가 사용자의 요구 사항과 상황 정보에 따른 서비스 템플릿을 선택하는 단계;
상기 라우터가 상기 선택된 서비스 템플릿의 개별 구성 요소에 대한 서비스 인스턴스를 검색함으로써 서비스 경로에 대한 후보 그래프를 생성하는 단계; 및
상기 라우터가 상기 생성된 후보 그래프 내의 경로들에 대하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출하고, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 단계;를 포함하고,
상기 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 단계는,
상기 산출된 공정성 지수를 고려하여 미리 설정된 서비스 품질(Quality of Service, QoS)의 충족 여부를 검사하는 단계; 및
상기 검사 결과에 따라 상기 선택된 서비스 경로 중 일부 구간을 선택적으로 갱신하는 단계;를 더 포함하는 방법. - 제 7 항에 있어서,
상기 미리 설정된 서비스 품질을 충족하지 못한 경우, 상기 선택된 서비스 경로 중 일부 구간을 선택적으로 갱신하는 단계는,
상기 선택된 서비스 경로 중 상기 서비스 품질을 충족하지 못하는 일부 구간에 부여되는 가중치를 감소시키는 것을 특징으로 하는 방법. - 제 8 항에 있어서,
상기 가중치는 초과된 사용 가능성(availability) 또는 응답 시간(response time)에 반비례하는 것을 특징으로 하는 방법. - 제 7 항에 있어서,
상기 사용자의 요구 사항 또는 상기 상황 정보가 변경된 경우, 상기 선택된 서비스 경로 전체를 재구성하는 것을 특징으로 하는 방법. - 제 7 항에 있어서,
상기 서비스의 실행 가능성, 응답 시간, 대역폭 또는 프로세서 사용량 중 어느 하나의 변경에 의해 서비스의 상황 정보 또는 링크의 대역폭 또는 지연(delay)이 변경된 경우, 경로의 갱신 횟수를 증가시킴으로써 상기 선택된 서비스 경로 중 일부를 재구성하는 것을 특징으로 하는 방법. - 제 1 항 내지 제 3 항, 제 5 항 내지 제 11 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
- 복수 개의 어플리케이션 서버 및 상기 어플리케이션 서버의 서비스 목록을 관리하여 서비스를 제공하는 라우터로 구성되는 네트워크에서, 서비스 경로를 구성하는 장치에 있어서,
사용자의 요구 사항과 상황 정보를 입력받고, 이에 대응하여 서비스 경로를 출력하는 입출력부; 및
사용자의 요구 사항과 상황 정보에 따른 서비스 템플릿을 선택하고, 상기 선택된 서비스 템플릿의 개별 구성 요소에 대한 서비스 인스턴스를 검색함으로써 서비스 경로에 대한 후보 그래프를 생성하며, 상기 생성된 후보 그래프 내의 경로들에 대하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출하고, 상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 처리부;를 포함하되,
상기 처리부는,
상기 생성된 후보 그래프 내의 경로들을 탐색하면서 새롭게 발견된 경로에 대해 상황 정보를 고려하여 상기 어플리케이션 서버의 부하가 분산되는 정도를 나타내는 공정성 지수를 산출하고,
상기 새롭게 발견된 경로에 대하여 상기 공정성 지수에 기초한 로드밸런싱 값을 갱신하며,
상기 산출된 공정성 지수가 최대가 되는 경로를 서비스 경로로서 선택하는 것을 특징으로 하는 장치. - 제 13 항에 있어서,
상기 처리부는,
상기 라우터에 등록된 상기 서비스 목록을 참조하여 상기 선택된 서비스 템플릿의 개별 구성 요소마다 해당 서비스 인스턴스가 존재하는 어플리케이션 서버를 검색하고,
상기 검색된 어플리케이션 서버를 상기 서비스 템플릿의 서비스 순서에 따라 연결함으로써 서비스 경로에 대한 후보 그래프를 생성하는 것을 특징으로 하는 장치. - 제 13 항에 있어서,
상기 공정성 지수는,
상기 후보 그래프를 구성하는 노드의 대역폭 사용량과 프로세서 사용량을 고려하여 산출되며,
상기 어플리케이션 서버에 대한 부하의 분산 정도에 비례하는 것을 특징으로 하는 장치. - 삭제
- 제 13 항에 있어서,
상기 처리부는,
상기 산출된 공정성 지수를 고려하여 미리 설정된 서비스 품질의 충족 여부를 검사하고,
상기 검사 결과에 따라 상기 선택된 서비스 경로 중 일부 구간을 선택적으로 갱신하는 것을 특징으로 하는 장치. - 제 13 항에 있어서,
상기 산출된 공정성 지수를 고려하여 미리 설정된 서비스 품질을 충족하지 못한 경우, 상기 처리부는,
상기 선택된 서비스 경로 중 상기 서비스 품질을 충족하지 못하는 일부 구간에 부여되는 가중치를 감소시키는 것을 특징으로 하는 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110143824A KR101334383B1 (ko) | 2011-12-27 | 2011-12-27 | 상황 인식 네트워크에서 서비스 경로를 구성하는 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110143824A KR101334383B1 (ko) | 2011-12-27 | 2011-12-27 | 상황 인식 네트워크에서 서비스 경로를 구성하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130075455A KR20130075455A (ko) | 2013-07-05 |
KR101334383B1 true KR101334383B1 (ko) | 2013-11-29 |
Family
ID=48989344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110143824A KR101334383B1 (ko) | 2011-12-27 | 2011-12-27 | 상황 인식 네트워크에서 서비스 경로를 구성하는 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101334383B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101521440B1 (ko) * | 2013-12-16 | 2015-06-26 | 대한민국 | 클라이언트 기반의 서버 관리장치와 방법 |
KR101422180B1 (ko) * | 2014-01-23 | 2014-07-22 | 주식회사 비디 | 어플리케이션 사용성 측정 방법, 이를 수행하는 어플리케이션 사용성 측정 서버 및 이를 저장하는 기록매체 |
KR101671268B1 (ko) * | 2015-01-08 | 2016-11-01 | 주식회사 윈스 | 시그니처 기반 네트워크 보안 장비의 프로파일링 서비스 방법 및 장치 |
CN112770416B (zh) * | 2019-11-06 | 2022-04-01 | 中国移动通信有限公司研究院 | Cawn系统及其工作方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080181118A1 (en) | 2007-01-31 | 2008-07-31 | Puneet Sharma | Selecting service nodes for an end-to-end service path from a reduced search space |
JP2009284434A (ja) * | 2008-05-26 | 2009-12-03 | Nippon Telegr & Teleph Corp <Ntt> | オーバーレイネットワーク通信経路決定方法とシステムおよびプログラム |
-
2011
- 2011-12-27 KR KR1020110143824A patent/KR101334383B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080181118A1 (en) | 2007-01-31 | 2008-07-31 | Puneet Sharma | Selecting service nodes for an end-to-end service path from a reduced search space |
JP2009284434A (ja) * | 2008-05-26 | 2009-12-03 | Nippon Telegr & Teleph Corp <Ntt> | オーバーレイネットワーク通信経路決定方法とシステムおよびプログラム |
Non-Patent Citations (1)
Title |
---|
논문:IEEE * |
Also Published As
Publication number | Publication date |
---|---|
KR20130075455A (ko) | 2013-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Al Ridhawi et al. | A collaborative mobile edge computing and user solution for service composition in 5G systems | |
JP2016039631A (ja) | 情報中心ネットワークを介した評価ベースの命令処理 | |
US20150363240A1 (en) | System for controlling resources, control pattern generation apparatus, control apparatus, method for controlling resources and program | |
CN103917958A (zh) | 用于大规模媒体云的分布式映射功能 | |
Bęben et al. | Multi-criteria decision algorithms for efficient content delivery in content networks | |
KR101334383B1 (ko) | 상황 인식 네트워크에서 서비스 경로를 구성하는 방법 및 장치 | |
Tuncer et al. | Scalable cache management for ISP-operated content delivery services | |
Sun et al. | Efficient algorithm for traffic engineering in cloud-of-things and edge computing | |
Miao et al. | Multicast virtual network mapping for supporting multiple description coding-based video applications | |
Ibn-Khedher et al. | Scalable and cost efficient algorithms for virtual CDN migration | |
Seetha et al. | Optimal placement techniques of mesh router nodes in wireless mesh networks | |
Ghalehtaki et al. | A bee colony-based algorithm for micro-cache placement close to end users in fog-based content delivery networks | |
Moayyedi et al. | Generalizable GNN-based 5G RAN/MEC Slicing and Admission control in metropolitan networks | |
Jiménez et al. | Defining a network management architecture | |
Kokkinos et al. | Scheduling efficiency of resource information aggregation in grid networks | |
Katsalis et al. | A cloud-based content replication framework over multi-domain environments | |
BinSahaq et al. | Bootstrapped LARAC algorithm for fast delay‐sensitive QoS provisioning in SDN networks | |
Salehi et al. | Incremental topology transformation for publish/subscribe systems using integer programming | |
CN103888982B (zh) | 一种内容中心无线网络中的管理与控制节点选择方法 | |
Rai et al. | A multi-objective QoS optimization with fuzzy based parameter setting for real-time multicasting | |
Sarddar et al. | A novel approach on weight based optimized routing for mobile cloud computing | |
Balasubramaniam et al. | Biologically inspired future service environment | |
CN110213149B (zh) | 一种基于节点熵的虚拟网络映射方法 | |
KR20130051872A (ko) | 적응적인 복합 서비스 경로 관리 장치 및 그 방법 | |
Feng et al. | A delay-aware deployment policy for end-to-end 5G network slicing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20161108 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20171023 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20181226 Year of fee payment: 6 |