이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 분산형 클라우드 기반 어플리케이션 실행 시스템을 도시한 도면이다.
도 1에 도시된 바와 같이, 본 발명에 따른 분산형 클라우드 기반 어플리케이션 실행 시스템은, 기본적으로 망 상에 가상화된 IT(Information Technology) 자원을 기반으로 데이터 서비스를 실현해 주는 클라우드 서비스(또는 클라우드 컴퓨팅)을 제공하기 위한 시스템이다.
특히, 본 발명의 분산형 클라우드 기반 어플리케이션 실행 시스템은, 사용자(단말)에서 실행하는 어플리케이션(이하, 앱)에 따른 데이터 서비스(이하, 앱 서비스)의 데이터 연산 처리를 망 상의 가상화 자원을 기반으로 수행하는, 클라우드 기반의 어플리케이션 실행 환경(기술)과 관련이 있다.
기존의 클라우드 기반의 어플리케이션 실행 환경은, 가상화된 자원 즉 클라우드 서비스를 제공하는 서버가 망 상에 위치하고, 망 상의 서버가 사용자(User) 기반으로 가상화 자원을 기 할당하게 된다.
이에, 기존의 클라우드 서비스 기반의 어플리케이션 실행 환경은, 망 상의 서버가 사용자(단말)에서 실행되는 앱과 연동하여, 앱에 따른 앱 서비스의 데이터를 서버 내의 해당 사용자(User)에 할당된 가상화 자원을 기반으로 연산 처리하고 있다.
이에, 기존의 클라우드 기반의 어플리케이션 실행 환경은, 사용자(단말) 및 서버(가상화 자원) 간의 물리적 거리로 인한 서비스 지연(Latency)은 존재할 수 밖에 없다.
이러한 물리적 거리로 인한 서비스 지연은, 초 저지연의 데이터 서비스를 요구하는 현 추세의 니즈(Needs)를 만족시키는데 반드시 해결해야 하는 제약으로 작용하고 있다.
아울러, 기존의 클라우드 기반의 어플리케이션 실행 환경은, 사용자(User)에 할당된 가상화 자원을 해당 사용자 만이 사용하기 때문에, 리소스 재활용을 통해 얻을 수 있는 성능 개선 예컨대 초 저지연/대용량의 데이터 서비스를 가능하게 하는 성능 개선을 기대할 수 없다.
이에, 본 발명에서는, 단말에서 실행하는 앱에 따른 앱 서비스를 코어망 및 코어망 보다 사용자(단말)에 가까운 위치의 엣지(Edge)에서 클라우드 기반으로 분산 제공함으로써, 기존의 클라우드 기반의 어플리케이션 실행 환경이 갖는 성능 한계/제약을 개선하는 새로운 형태의 하이브리드(Hybrid)한 어플리케이션 실행 환경을 제안하고자 한다.
아울러, 본 발명은, 본 발명에서 제안하는 클라우드 기반의 하이브리드 어플리케이션 실행 환경에서 고려되어야 하는, 엣지에서의 핸드오버 기술을 새롭게 제안하고자 한다.
이를 위해 기본적으로, 본 발명에서는, 클라우드 기반의 하이브리드 어플리케이션 실행 환경을 실현하기 위한 분산형 클라우드 기반 어플리케이션 실행 시스템을 제안한다.
도 1은, 본 발명에서 제안하는 클라우드 기반의 하이브리드 어플리케이션 실행 환경을 실현하는, 분산형 클라우드 기반 어플리케이션 실행 시스템의 일 실시예를 도시하고 있다.
도 1에 도시된 바와 같이, 본 발명의 분산형 클라우드 기반 어플리케이션 실행 시스템은, 사용자 별로 자원을 할당하고, 단말(10)의 사용자에 할당된 자원을 기반으로 단말(10)에서 실행되는 특정 어플리케이션(15)에 따른 앱 서비스의 데이터 연산 처리를 수행하여, 단말(10)에 클라우드 기반의 앱 서비스를 제공하는 코어클라우드 노드(200)와, 단말(10) 및 코어클라우드 노드(200) 사이에 위치하며, 단말(10)에서 실행되는 특정 어플리케이션(15)을 위한 어플리케이션 실행자원을 기반으로 상기 앱 서비스의 데이터 연산 처리 중 일부 데이터 연산 처리를 수행하여, 단말(10)에 클라우드 기반의 앱 서비스를 코어클라우드 노드(200)와 분산 제공하는 엣지클라우드 노드(100A)를 포함한다.
본 발명의 분산형 클라우드 기반 어플리케이션 실행 시스템에서는, 엣지클라우드 노드 및 코어클라우드 노드 사이에서 데이터 송수신에 관여하는 네트워크 장치 또는 망 장비가 존재하지만, 설명의 편의를 위해 이들 장비의 도시를 생략하였다.
도 1에서 알 수 있듯이, 코어클라우드 노드(200)와 클라우드 기반의 앱 서비스를 분산 제공할 수 있는 엣지클라우드 노드는 다수개(100A,100B,100C,...100N)일 수 있다.
다만, 설명의 편의를 위해, 하나의 단말(10)을 도시하고, 단말(10) 및 코어클라우드 노드(200) 사이에서 단말(10)에 클라우드 기반의 앱 서비스를 코어클라우드 노드(200)와 분산 제공하는 엣지클라우드 노드(100A)언급하여 설명하겠다.
단, 본 발명의 엣지클라우드 노드로서 엣지클라우드 노드(100A)를 언급하여 설명하는 것은, 설명의 편의를 위한 것일 뿐, 이하의 엣지클라우드 노드(100A)에 대한 구성 및 기능 설명은 모두 다른 엣지클라우드 노드(100B,100C,...100N)에도 동일하게 적용될 것이다.
코어클라우드 노드(200)는, 코어망(1)에 위치하여, 가상화된 IT(Information Technology) 자원을 기반으로 데이터 서비스를 실현해 주는 클라우드 서비스(또는 클라우드 컴퓨팅)을 제공한다.
이에, 사용자 즉 단말(10)은, 데이터 분류, 계산, 처리 및 분석 등 다양한 연산 처리의 기능(프로세스), 저장공간 등과 같은 IT 자원을 사용하여 제공되는 클라우드 서비스를 기반으로, 데이터 서비스를 이용할 수 있다.
이때, 단말(10)은, 본 발명의 분산형 클라우드 기반 어플리케이션 실행 시스템에서 제공하는 분산형 클라우드 서비스를 이용할 수 있는 형태의 사용자 측 장치로서, 예컨대 스마트폰, 데스크톱 PC, 태블릿 PC 등일 수 있다.
특히, 본 발명은, 단말에서 실행하는 어플리케이션(이하, 앱)에 따른 데이터 서비스(이하, 앱 서비스)의 데이터 연산 처리를 망 상의 가상화 자원을 기반으로 수행하는 클라우드 기반의 어플리케이션 실행 기술(환경)과 관련되므로, 코어클라우드 노드(200)를 클라우드 기반의 어플리케이션 실행 기술 관점에서 설명하겠다.
코어클라우드 노드(200)는, 사용자 별로 자원을 할당한다.
즉, 코어클라우드 노드(200)는, 자신이 제공하는 클라우드 서비스에 등록된 각 사용자(User) 별로, 클라우드 서비스를 제공하기 위한 가상화 IT 자원을 기 할당하는 것이다.
이에, 코어클라우드 노드(200)는, 클라우드 서비스 대상인 단말(10)의 사용자에 할당된 자원을 기반으로 단말(10)에서 실행되는 특정 어플리케이션(이하, 앱(15))에 따른 앱 서비스의 데이터 연산 처리를 수행하여, 단말(10)에 클라우드 서비스 즉 클라우드 기반의 앱 서비스를 제공한다.
구체적으로, 코어클라우드 노드(200)는, 자신이 제공하는 클라우드 서비스에 등록된 사용자에 의한 단말(10)에 대하여, 단말(10)에서 실행되는 앱(15)과 연동하여 클라우드 기반의 앱 서비스를 제공할 수 있다.
즉, 코어클라우드 노드(200)는, 단말(10)에서 실행되는 앱(15)과 연동하여, 앱(15)에 따른 앱 서비스의 데이터를 자신 내부의 해당 사용자에 할당된 자원을 기반으로 연산 처리하고, 그 데이터 연산 처리 결과를 단말(10)의 앱(15)으로 제공함으로써, 사용자 컨텍스트(User Context) 기반의 클라우드 서비스 즉 클라우드 기반의 앱 서비스를 제공할 수 있다.
이때, 앱(15)에 따른 앱 서비스의 데이터는, 단말(10) 구체적으로 단말(10)에서 실행되는 앱(15)에서 발생되는 데이터(예: 요청데이터, 응답데이터, 보고데이터 등)와, 해당 앱 서비스를 위해 구축된 별도의 센싱 디바이스(미도시)로부터 발생되는 데이터(예: 수집데이터, 보고데이터 등)를 포함한다.
엣지클라우드 노드(100A) 역시, 가상화된 IT(Information Technology) 자원을 기반으로 데이터 서비스를 실현해 주는 클라우드 서비스(또는 클라우드 컴퓨팅)을 제공한다.
다만, 엣지클라우드 노드(100A)는, 코어클라우드 노드(200) 보다 단말(10) 측에 가까운 위치에서, 클라우드 서비스(클라우드 기반 앱 서비스)의 특정 기능과 관련된 일부 데이터를 선택적으로 연산 처리하는 방식으로, 코어클라우드 노드(200)와 클라우드 기반의 앱 서비스를 분산 제공한다.
구체적으로, 엣지클라우드 노드(100A)는, 단말(10)이 연결되는 경우 단말(10)에서 실행되는 앱(15)을 위한 어플리케이션 실행자원을 할당한다.
그리고, 엣지클라우드 노드(100A)는, 상기 어플리케이션 실행자원을 기반으로 앱(15)에 따른 앱 서비스의 데이터 연산 처리 중 일부 데이터 연산 처리를 선택적으로 수행하여, 단말(10)에 클라우드 기반 앱 서비스를 코어클라우드 노드(200)와 분산 제공할 수 있다.
이에, 도 1에 도시된 바와 같이, 앱(15)을 실행하는 단말(10)은, 기지국(20A)와의 접속을 기반으로 엣지클라우드 노드(100A) 및 코어클라우드 노드(200) 간에 연결된 어플리케이션 세션①을 통해서, 앱(15)에 따른 앱 서비스를 이용할 수 있다.
이러한 엣지클라우드 노드(100A)는, 단말(10)이 코어망(1)과의 연결을 위해 접속하는 기지국(20A) 단에 위치하는 스토리지 노드를 기반으로, 코어클라우드 노드(200)와 클라우드 서비스를 분산 제공하는 것이 바람직하다.
더 구체적으로 예를 들면, 엣지클라우드 노드(100A)는, 기지국(20A) 단에 위치하는 모바일 엣지 컴퓨팅(Mobile Edge Computing) 노드를 포함할 수 있다.
모바일 엣지 컴퓨팅 노드(이하, MEC 노드)는, 사용자가 자주 활용하거나 빠른 전송이 필요한 대용량 데이터를 저장하고 요청 시에 즉각 전송해 주기 위해, 기지국 단에 구비되는 서버 형태의 노드이다.
따라서, MEC 노드는, 사용자가 자주 활용하거나 빠른 전송이 필요한 대용량 데이터를 저장하기 위한 스토리지를 구현하고 있다.
이에, 본 발명에서 엣지클라우드 노드(100A)는, MEC 노드와 별도의 노드인 경우, 기지국(20A) 단에 위치하는 스토리지 노드 즉 MEC 노드의 스토리지를 기반으로 코어클라우드 노드(200)와 클라우드 서비스를 분산 제공할 수 있다.
이 경우, 엣지클라우드 노드(100A) 역시 기지국(20A) 단에 위치하는 것이 바람직하다.
또는, 본 발명에서 엣지클라우드 노드(100A)는, MEC 노드를 포함하여 구현되는 경우, 기지국(20A) 단에 위치하는 스토리지 노드 즉 자신이 포함하고 있는 스토리지를 기반으로 코어클라우드 노드(200)와 클라우드 서비스를 분산 제공할 수도 있다.
이 경우, 엣지클라우드 노드(100A)는 기지국(20) 단에 위치할 것이다.
또는, 본 발명에서 엣지클라우드 노드(100A)는, MEC 노드와는 별개로, 별도의 스토리지 노드를 포함하거나 이와 연동하는 것도 가능하며, 이 스토리지 노드를 기반으로 코어클라우드 노드(200)와 클라우드 서비스를 분산 제공할 수도 있다.
클라우드 서비스 관점에서 볼 때, 단말(10)에서 실행되는 앱(15) 또는 센싱 디바이스(미도시)로부터 발생된 데이터가 클라우드 서비스를 제공하는 주체로 전달되기 위해 망에 인입되는 구간(예: 데이터 수집 구간)은, 단말(10) 또는 센싱 디바이스(미도시)에서 기지국(20A)까지의 구간이고, 이와 같이 망에 인입된 데이터들을 그 데이터에 요구되는 절차에 따라 전달 및 연산 처리하는 구간(예: 데이터 분석 구간)은, 기지국(20A)에서 클라우드 서비스를 제공하는 주체까지의 구간이라 할 수 있다.
도 1에서 알 수 있듯이, 본 발명에서는, 코어클라우드 노드(200)에서 제공하는 클라우드 서비스를 분산 제공하는 엣지클라우드 노드(100A)를 기지국(20A) 단에 구현함으로써, 데이터 수집 구간에서 클라우드 서비스(클라우드 컴퓨팅)이 가능해 지도록 하는 것이다.
이와 같이, 본 발명에서는, 단말(10)에서 실행하는 앱(15)에 따른 앱 서비스를 코어클라우드 노드(200) 및 사용자(단말)에 가까운 기지국(20A) 단에 위치의 엣지클라우드 노드(100A)에서 클라우드 기반으로 분산 제공함으로써, 기존의 클라우드 기반의 어플리케이션 실행 환경이 갖는 성능 한계/제약을 개선하는 클라우드 기반의 하이브리드 어플리케이션 실행 환경(기술)을 실현한다.
이때, 본 발명에서 제안하는 클라우드 기반의 하이브리드 어플리케이션 실행 환경의 경우, 엣지클라우드 노드(100A)가 기지국(20A) 단에 위치하는 점, 단말(10)은 이동이 자유롭다는 점을 감안하면, 단말(10)이 이동하는 경우, 엣지클라우드 노드(100A)에서 분산 제공하고 있던 클라우드 기반의 앱 서비스 기능(이하, 앱 기능)을 핸드오버하기 위한, 엣지클라우드 노드에서의 새로운 핸드오버 기술이 요구된다.
이러한 엣지클라우드 노드에서의 핸드오버 기술을 실현하기 위해, 본 발명에서, 엣지클라우드 노드(100A)에서 제공하고 있는 앱 서비스의 일부 데이터를 연산 처리하는 기능(이하, 앱 기능)은, 단말(10)이 엣지클라우드 노드(100A)의 소스 기지국(20A)에서 타 엣지클라우드 노드의 타겟 기지국으로 무선구간 핸드오버 하는 경우, 단말(10)에 클라우드 기반으로 제공하는 앱 서비스의 기 정의된 핸드오버 트리거 이벤트 발생 여부에 근거하여 선택적으로 엣지클라우드 노드(100A)에서 타 엣지클라우드 노드로 핸드오버 된다.
단말(10)은 앱(15)을 실행하여 코어클라우드 노드(200) 및 엣지클라우드 노드(100A)로부터 제공되는 클라우드 기반의 앱 서비스를 이용하는 중(이 경우 어플리케이션 세션①), 자유롭게 이동할 수 있다.
예를 들면, 도 1에 도시된 바와 같이, 단말(10)은 기지국(20A)의 커버리지에서 코어클라우드 노드(200) 및 엣지클라우드 노드(100A)로부터 제공되는 클라우드 기반의 앱 서비스를 이용하다가, 기지국(20B)의 커버리지로 이동하고, 또 기지국(20C)의 커버리지로 이동할 수 있다.
이렇게 되면, 단말(10)은, 기존의 일반적인 무선구간(Radio) 핸드오버 기술에 따라, 기지국(20A)의 커버리지에서 기지국(20B)의 커버리지로 이동 시 소스 기지국(20A)에서 타겟 기지국(20B)으로 무선구간 핸드오버 하고, 기지국(20B)의 커버리지에서 기지국(20C)의 커버리지로 이동 시 소스 기지국(20B)에서 타겟 기지국(20C)으로 무선구간 핸드오버 한다.
여기서, 단말(10)이 기지국 사이에서 무선구간 핸드오버 하는 과정은, 기존의 다양한 무선구간(Radio) 핸드오버 기술 중 하나를 채택해도 무방하므로, 구체적인 설명을 생략하도록 하겠다.
이때, 본 발명의 엣지클라우드 노드(100A)는, 엣지클라우드 노드(100A)에서 단말(10)에 제공하고 있는 앱 기능, 달리 말하면 엣지클라우드 노드(100A)에서 단말(10)에 분산 제공하고 있던 클라우드 기반의 앱 서비스 기능을, 단말(10)이 무선구간 핸드오버를 할 때마다 무선구간 핸드오버된 타겟 기지국의 타 엣지클라우드 노드로 무조건 핸드오버 하지는 않는다.
예를 들어, 본 발명의 엣지클라우드 노드(100A)는, 단말(10)이 엣지클라우드 노드(100A)의 소스 기지국(20A)에서 타 엣지클라우드 노드(100B)의 타겟 기지국(20B)으로 무선구간 핸드오버 하더라도, 단말(10)에 제공하는 클라우드 기반 앱 서비스의 서비스 품질이 좋으면 엣지클라우드 노드(100A)에서 단말(10)에 제공하고 있는 앱 기능을 계속 수행하는 것이다.
그러다가, 본 발명의 엣지클라우드 노드(100A)는, 단말(10)이 타 엣지클라우드 노드(100C)의 타겟 기지국(20C)으로 무선구간 핸드오버 하는 경우, 단말(10)에 제공하는 클라우드 기반 앱 서비스의 서비스 품질이 나쁘면 비로소 엣지클라우드 노드(100A)에서 단말(10)에 제공하고 있는 앱 기능을 엣지클라우드 노드(100C)로 핸드오버 시킬 수 있다.
이때, 단말(10)에 제공하는 클라우드 기반 앱 서비스의 서비스 품질이 좋은지 나쁜지의 여부는, 단말(10)에 제공하는 앱 서비스의 기 정의된 핸드오버 트리거 이벤트 발생 여부로 구분되는 것이 바람직하다.
이하에서는, 도 2를 참조하여 본 발명의 바람직한 실시예에 따른 엣지클라우드 노드(장치)의 구체적인 구성을 설명하겠다.
엣지클라우드 노드(100A)를 언급하여 설명하면, 본 발명의 엣지클라우드 노드(100A)는, 단말(10) 연결 시, 단말(10)에서 실행되는 특정 어플리케이션(15, 이하 앱(15)을 위한 어플리케이션 실행자원을 할당하는 자원할당부(120)와, 앱(15)에 따른 앱 서비스의 데이터 중, 코어망(1) 단의 코어클라우드 장치(200, 이하 코어클라우드 노드)에서 단말(10)에 제공하는 클라우드 기반의 앱 서비스의 특정 기능과 관련된 일부 데이터를 선택하고, 그 외의 데이터는 코어클라우드 노드(200)로 전달하는 필터링부(140)와, 상기 할당한 어플리케이션 실행자원을 기반으로 상기 선택한 앱 서비스의 일부 데이터를 연산 처리하여, 단말(10)에 클라우드 기반의 앱 서비스를 코어클라우드 노드(200)와 분산 제공하는 어플리케이션실행부(130)와, 단말(10)이 기지국 사이에서 무선구간 핸드오버 하는 경우, 상기 앱 서비스의 일부 데이터를 연산 처리하는 앱 기능을, 선택적으로 핸드오버 시키는 핸드오버제어부(150)를 포함한다.
그리고, 도 2에 도시된 바와 같이, 본 발명의 엣지클라우드 노드(100A)는, 단말연동부(110)와, 그룹연동부(160)와, 스토리지연동부(170)를 더 포함할 수 있다.
단말연동부(110)는, 연결되는 단말(10)과 연동하는 기능부이다.
단말연동부(110)는, 엣지클라우드 노드(100A)가 기지국(20A) 단에 위치하므로, 기지국(20A) 접속을 통해서 연결되는 단말(10)과 연동할 것이다.
여기서, 단말연동부(110)는, 기 설정된 인증절차를 거쳐 연결되는 단말(10)을 확인할 수 있고, 또는 인증절차 없이 연결되는 불특정의 단말(10)을 확인할 수도 있다.
이때, 단말(10)이 엣지클라우드 노드(100A) 더 구체적으로는 단말연동부(110)에 연결되는 방식은, 단말(10) 측에 탑재된 엣지클라우드 노드 탐색 기능에 의해 탐색 및 연결되는 방식으로 실현될 수 있다.
여기서, 탐색 기능은, 본 발명을 위해 개발된 탐색 기능일 수도 있지만, 기존에 사용되고 있는 무선 통신(예: WiFi, 등)에서 제공하는 탐색 기능일 수도 있으며, 별도의 탐색 기능으로 한정되지 않는다.
이에, 단말연동부(110)는, 연결 확인되는 단말(10)로부터 데이터(예: 요청데이터, 응답데이터, 보고데이터 등)를 수신하고 단말(10)로 데이터(예: 데이터 연산 처리 결과_App Streaming)를 송신하는 방식으로, 단말(10)과 연동할 수 있다.
자원할당부(120)는, 단말(10) 연결 시, 단말(10)에서 실행되는 앱(15)을 위한 어플리케이션 실행자원을 할당한다.
즉, 자원할당부(120)는, 단말연동부(110)에서의 단말(10) 연결이 확인되면, 엣지클라우드 노드(100A)가 보유하고 있는 데이터 연산 처리를 위한 컴퓨팅 리소스에서, 단말(10)에서 실행되는 앱(15)을 위한 어플리케이션 실행자원을 즉각 할당할 수 있다.
아울러, 자원할당부(120)는, 단말연동부(110)에서의 단말(10) 연결 종료가 확인되면, 앞서, 단말(10)에서 실행되는 앱(15)을 위해 할당한 어플리케이션 실행자원을 회수할 수 있다.
필터링부(140)는, 단말(10)에서 실행되는 앱(15)과 관련하여 발생되는 데이터 중, 코어망(1) 단에서 앱(15)에 대하여 제공하는 클라우드 서비스의 특정 기능과 관련된 데이터를 선택하고, 그 외의 데이터는 코어망(1)으로 전달한다.
이때, 앱(15)과 관련하여 발생되는 데이터란, 앞서 설명한 바 있는 앱(15)에서 제공하는 데이터 서비스와 관련하여 발생되는 데이터를 의미한다.
즉, 앱(15)과 관련하여 발생되는 데이터는, 단말(10) 구체적으로 단말(10) 내 앱(15)에서 발생되는 데이터(예: 요청데이터, 응답데이터, 보고데이터 등)와, 해당 데이터 서비스를 위해 구축된 별도의 센싱 디바이스(미도시)로부터 발생되는 데이터(예: 수집데이터, 보고데이터 등)를 포함한다.
즉, 필터링부(140)는, 단말(10)에서 실행되는 앱(15)에 따른 앱 서비스의 데이터 중, 코어망(1) 단의 코어클라우드 노드(200)에서 단말(10)에 제공하는 클라우드 기반의 앱 서비스의 특정 기능과 관련된 일부 데이터를 선택(필터링)하고, 그 외의 데이터는 코어클라우드 노드(200)로 전달한다.
예를 들어, 단말(10)에서 실행되는 앱(15)에 따른 앱 서비스와 관련하여 발생/수신된 금번 데이터가, 정보표시를 위한 앱 서비스의 기능과 관련된 데이터인 경우, 필터링부(140)는 필터링(선택)할 수 있다.
반면 예를 들어, 단말(10)에서 실행되는 앱(15)에 따른 앱 서비스와 관련하여 발생/수신된 금번 데이터가, 대용량 데이터 기반의 영상분석을 위한 앱 서비스의 기능과 관련된 데이터인 경우, 필터링부(140)는 필터링(선택)하지 않고 코어망(1) 즉 코어클라우드 노드(200)로 전달할 수 있다.
이때 구체적으로 설명하면, 필터링부(140)는, 필터링(선택)하지 않은 그 외의 데이터(예: 영상분석 데이터)를 단말(10)의 사용자 컨텍스트(User Context, 후술의 U10)를 기반으로 코어망(1) 즉 코어클라우드 노드(200)로 전달하여, 코어클라우드 노드(200)에게 사용자 컨텍스트에 따른 사용자에 기 할당한 자원 기반의 클라우드 기반 앱 서비스를 요청할 수 있다.
이렇게 되면, 엣지클라우드 노드(100A)에서 필터링되지 않고 코어클라우드 노드(200)로 전달되는 데이터는, 빅데이터(스토리지 노드)와 연동하는 코어클라우드 노드(200)에서 단말(10)의 해당 사용자에 할당된 자원을 기반으로 즉 사용자 컨텍스트를 기반으로 연산 처리될 것이다.
그리고, 코어클라우드 노드(200)는, 단말(10)의 해당 사용자에 할당된 자원을 기반으로 연산 처리한 데이터 연산 처리 결과를, 사용자 컨텍스트를 기반으로 내부 저장소 또는 연동하는 스토리지 노드에 저장하되, 단말(10)의 사용자 컨텍스트를 기반으로 엣지클라우드 노드(100A)를 통해 단말(10)의 앱(15)으로 제공(전달)하여, 클라우드 서비스 즉 클라우드 기반 앱 서비스를 제공할 수 있다.
어플리케이션실행부(130)는, 자원할당부(120)가 할당한 어플리케이션 실행자원을 기반으로 필터링부(140)가 선택(필터링)한 데이터(예: 정보표시 데이터)를 연산 처리하여, 단말(10)에 클라우드 서비스 즉 클라우드 기반 앱 서비스를 코어클라우드 노드(200)와 분산 제공한다.
구체적으로 설명하면, 어플리케이션실행부(130)는, 단말(10)의 사용자 컨텍스트(U10)를 기반으로 동작하는 가상 머신(Virtual Machine, VM)과, 가상 머신(VM)의 동작에 따른 가상화 단말을 기반으로 실행되어 필터링부(140)가 선택(필터링)한 데이터를 단말(10) 내의 앱(15)을 대신하여 연산 처리하는 가상 어플리케이션(Virtual Application, vApp)으로 구성될 수 있다.
그리고, 가상 머신(VM) 및 가상 어플리케이션(vApp)으로 구성된 어플리케이션실행부(130)는, 단말(10) 연결 시 앞서 자원할당부(120)가 할당한 어플리케이션 실행자원에 구성되어 동작하는 것이 바람직하다.
더 구체적으로 예를 들면, 본 발명에서 어플리케이션실행부를 앱 단위로 구성하는 경우라면, 단말(10) 연결 시점에 단말(10)에서 실행 중인 어플리케이션이 앱(15) 하나라는 전제 하에, 단말(10)에 할당된 어플리케이션 실행자원에 어플리케이션실행부(130)가 구성될 수 있고, 단말(10)에서 새로운 앱이 추가로 실행되면 단말(10)에 할당된 어플리케이션 실행자원에 새로운 앱을 위한 어플리케이션실행부가 더 구성될 수도 있다.
아울러, 가상 머신(VM) 및 가상 어플리케이션(vApp)으로 구성된 어플리케이션실행부(130)는, 단말(10) 연결 종료 시, 앞서 자원할당부(120)가 할당한 어플리케이션 실행자원에서 제거되는 것이 바람직하다.
더 구체적으로 예를 들면, 본 발명에서 어플리케이션실행부를 앱 단위로 구성하는 경우라면, 어플리케이션실행부(130)는, 단말(10) 연결 종료 시 단말(10)에 할당된 어플리케이션 실행자원에서 제거될 수도 있고, 단말(10) 연결이 종료되지 않더라도 앱(10) 실행 종료 시 단말(10)에 할당된 어플리케이션 실행자원에서 제거될 수도 있다.
다시, 어플리케이션실행부(130)을 언급하여 클라우드 기반 앱 서비스를 분산 제공하는 과정을 설명하면 다음과 같다.
어플리케이션실행부(130) 구체적으로 가상화 단말(단말(10)의 사용자 컨텍스트(U10))을 기반으로 실행되는 vApp은, 자원할당부(120)가 할당한 어플리케이션 실행자원을 기반으로 필터링부(140)가 선택(필터링)한 데이터를 연산 처리하여, 클라우드 기반 앱 서비스를 코어클라우드 노드(200)와 분산 제공한다.
이러한 어플리케이션실행부(130) 즉 vApp는, 단말(10)이 코어망(1)과의 연결을 위해 접속하는 기지국(20A) 단에 위치하는 스토리지 노드(미도시)를 기반으로 데이터를 연산 처리하는 것이 바람직하다.
예를 들어, 금번 필터링부(140)에서 선택(필터링)한 데이터가 정보표시 데이터인 경우, 어플리케이션실행부(130) 즉 vApp은 그 데이터를 스토리지 노드(미도시)에 저장된 데이터를 기반으로 연산 처리(정보표시 화면 생성)하여, 클라우드 기반 앱 서비스를 코어클라우드 노드(200)와 분산 제공할 수 있다.
이때 연동되는 스토리지 노드(미도시)는, 전술한 바와 같이 별도 MEC 노드의 스토리지일 수 있고, 또는 엣지클라우드 노드(100A)에 포함된 MEC 노드의 스토리지일 수 있고, MEC 노드와는 별개의 스토리지 노드일 수도 있다.
이에, 엣지클라우드 노드(100A)에서 선택(필터링)된 데이터는, 엣지클라우드 노드(100A)에서 유동적으로 할당되는 어플리케이션 실행자원 및 이에 구성되는 어플리케이션실행부(130)에 의해 연산 처리됨으로써, 엣지클라우드 노드(100A)는 단말(10) 내 앱(15)에 대하여 선택(필터링)한 데이터 연산 처리를 통해 앱 서비스의 특정 기능을 선택적으로 분산 제공할 수 있다.
여기서, 앱 서비스의 특정 기능은, 기 설정되는 분산정책에 따라 변경될 수 있다.
따라서, 분산정책이 어떻게 설정되는지에 따라, 필터링부(140)가 필터링하는 데이터가 변하게 될 것이고, 결국 엣지클라우드 노드(100A)가 분산 제공하는 클라우드 기반 앱 서비스의 특정 기능이 변하게 된다.
이와 같이 필터링부(140)의 데이터 필터링에 영향을 미치는 분산정책은, 스토리지 노드(미도시) 내에 저장된 데이터가 지원 가능한 클라우드 서비스의 기능 범위, 앱 서비스의 종류, 앱 서비스에서 요구하는 연산량 및 서비스 속도 중 적어도 하나를 기준으로 설정될 수 있다.
다만, 스토리지 노드(미도시) 내에 저장된 데이터가 지원 가능한 클라우드 서비스의 기능 범위가 클 수록, 기능 범위가 작은 경우 대비 더 큰 연산량을 요구하는 데이터 서비스까지 엣지클라우드 노드(100A)에서 필터링하도록 분산정책이 설정될 수 있다.
또한, 앱 서비스의 종류가 실시간 보장이 중요한 것일수록, 반대의 경우 대비 엣지클라우드 노드(100A)에서 필터링하도록 분산정책이 설정될 수 있다.
또한, 앱 서비스에서 요구하는 연산량이 적고 서비스 속도가 빠른 것일수록, 반대의 경우 대비 엣지클라우드 노드(100A)에서 필터링하도록 분산정책이 설정될 수 있다.
즉, 본 발명에서는, 분산정책 설정을 통해 클라우드 서비스의 분산 제공을 제어할 수 있는 제어 프레임웍(Management Framework)을 제시하는 것이다.
단말연동부(110)는, 어플리케이션실행부(130)에서 데이터(예: 정보표시 데이터)를 연산 처리(예: 정보표시 화면 생성)한 결과(예: 정보표시 화면)를 단말(10) 구체적으로는 앱(15)으로 제공한다.
이때, 어플리케이션실행부(130)에서 데이터를 연산 처리한 결과는, 단말연동부(110)에 의해 스트리밍 방식으로 단말(10)에 제공되는 것이 바람직하다.
즉, 엣지클라우드 노드(100A)에서 데이터 연산 처리된 결과(예: 정보표시 화면)가 스트리밍 방식으로 단말(10)에 제공되어, 단말(10)에서 실행 중인 앱(15)은 스트리밍 수신되는 데이터(이하, App Streaming)을 추가적인 연산 처리 없이 즉시 출력(예: 디스플레이)할 수 있게 된다.
한편, 단말연동부(110)는, 코어클라우드 노드(200)로 전달한 데이터가 코어클라우드 노드(200)에 의해 연산 처리된 결과를 수신하면, 이를 단말(10) 구체적으로는 앱(15)으로 제공한다.
이에, 본 발명의 엣지클라우드 노드(100A)는, 코어망(1)에서 클라우드 기반의 앱 서비스를 제공하는 코어클라우드 노드(200) 보다 사용자(단말)에 가까이에 위치하여, 유동적으로 할당되는 리소스(어플리케이션 실행자원)에 구성되는 어플리케이션실행부를 통해서 클라우드 기반의 앱 서비스(특정 기능)를 분산 제공할 수 있다.
이에, 도 1에 도시된 바와 같이, 앱(15)을 실행하는 단말(10)은, 기지국(20A)와의 접속을 기반으로 엣지클라우드 노드(100A) 및 코어클라우드 노드(200) 간에 연결된 어플리케이션 세션①을 통해서, 앱(15)에 따른 앱 서비스를 이용할 수 있다.
아울러, 본 발명의 엣지클라우드 노드(100A)는, 스토리지연동부(170)를 더 포함할 수 있다.
스토리지연동부(170)는, 어플리케이션실행부(130)에서 데이터를 연산 처리한 결과를 단말의 사용자 컨텍스트를 기반으로 코어클라우드 노드(200)로 전달하여, 코어망(1) 단에서 클라우드 서비스 즉 클라우드 기반의 앱 서비스를 제공하는 코어클라우드 노드(200)와 공유한다.
구체적으로 예를 들면, 스토리지연동부(170)는, 어플리케이션실행부(130)의 데이터 연산 처리 결과를 엣지클라우드 노드(100A)가 연동하는 스토리지 노드(미도시)에 단말(10)의 사용자 컨텍스트(U10)를 기반으로 저장하되, 단말(10)의 사용자 컨텍스트(U10)를 기반으로 코어클라우드 노드(200)에 제공하여 코어클라우드 노드(200)와 공유할 수 있다.
이렇게 되면, 엣지클라우드 노드(100A)가 분산 제공하는 클라우드 기반의 앱 서비스 결과는, 엣지클라우드 노드(100A) 측에도 저장되고 코어클라우드 노드(200) 측에도 공유 방식으로 저장된다.
이에, 본 발명에서는, 기지국(20A) 단의 엣지클라우드 노드(100A) 및 코어망(1) 상의 코어클라우드 노드(200)에서 클라우드 서비스(클라우드 기반의 앱 서비스)를 분산 제공하더라도, 엣지클라우드 노드(100A) 및 코어클라우드 노드(200) 각각이 클라우드 서비스를 정상적으로 제공할 수 있는 스토리지 상태가 유지될 수 있다.
이상에서 설명한 바와 같이, 본 발명에서는, 단말에서 실행하는 앱에 대하여 제공하는 클라우드 기반의 앱 서비스를, 코어클라우드 노드(200) 및 코어클라우드 노드(200) 보다 사용자(단말)에 가까이에 위치한 엣지클라우드 노드(100A)가 분산 제공하는 구조(클라우드 기반의 하이브리드 어플리케이션 실행 환경)를 실현함으로써, 데이터 수집 구간에서 앱 서비스의 일부 기능(특정 기능)의 클라우드 서비스(클라우드 컴퓨팅)가 가능해진다.
이렇게 되면, 도 1에 도시된 바와 같이, 엣지클라우드 노드(100A)에서 선택적으로 제공하는 클라우드 기반의 앱 서비스의 경우 서비스 지연(도 1의 Latency_Edge)이 기존의 클라우드 기반 어플리케이션 실행 환경(도 1의 Latency_Core) 대비 월등하게 줄일 수 있고(초 저지연 만족), 코어클라우드 노드(200)에서 제공하는 클라우드 기반의 앱 서비스의 경우 기존의 클라우드 기반 어플리케이션 실행 환경에서와 마찬가지로 대용량의 데이터를 빠른 속도로 연산 처리할 수 있기 때문에 서비스 신뢰도(precision)가 저하되는 일이 없을 것이다.
아울러, 본 발명에서는, 엣지클라우드 노드(100A)가 유동적으로 할당/회수되는 리소스(어플리케이션 실행자원)에 구성되는 어플리케이션실행부를 통해서 클라우드 서비스를 제공함으로써, 클라우드 서비스를 위한 리소스를 재활용 가능한 환경을 조성하기 때문에 초 저지연/대용량의 데이터 서비스를 가능하게 하는 성능 개선을 기대할 수 있다.
또한, 본 발명에서는, 하나의 코어클라우드 노드와 다수 개의 엣지클라우드 노드가 클라우드 서비스를 분산 수행하는 유동적 구조의 클라우드 컴퓨팅 플랫폼(분산형 클라우드 컴퓨팅 시스템)을 제안, 이를 통해 분산형 클라우드 서비스를 실현함으로써, 별도의 중앙 장치를 구비하지 않고도 유동적인 자원 연동(연계)이 가능한 구조적 환경을 제공할 수 있다.
아울러, 본 발명에서는, 앞서 언급한 효과들 즉 서비스 지연(Latency)을 줄이면서 유동적인 자원 연동(연계)이 가능해 지도록 하는 효과로 인해, 코어망 단의 트래픽 감소, 엣지클라우드 노드의 유동적인 확장성 등 다양한 부수적 효과들을 기대할 수 있다.
핸드오버제어부(150)는, 단말(10)이 기지국 사이에서 무선구간 핸드오버 하는 경우, 어플리케이션실행부(130)에서 단말(10)에서 실행되는 앱(15)에 대해 앱 서비스의 일부 데이터를 연산 처리하는 앱 기능을, 선택적으로 핸드오버 시킨다.
즉, 핸드오버제어부(150)는, 엣지클라우드 노드(100A)에서 단말(10)에 분산 제공하고 있던 클라우드 기반의 앱 서비스 기능(앱 기능)을, 엣지클라우드 노드 간 핸드오버하는 제반 과정을 제어하는 역할을 한다.
이때, 핸드오버제어부(150)는, 단말(10)이 엣지클라우드 노드(100A)의 기지국(20A)에서 엣지그룹 내 타 엣지클라우드 노드의 타겟 기지국으로 무선구간 핸드오버 하는 경우, 단말(10)에 제공하는 클라우드 기반 앱 서비스의 기 정의된 핸드오버 트리거 이벤트 발생 시 앱 기능을 타 엣지클라우드 노드로 핸드오버 시킨다.
예컨대, 각 어플리케이션(앱)에 의해 제공되는 앱 서비스 별로, 핸드오버 트리거 이벤트 발생 여부를 판단하기 위한 파라미터 즉 앱 서비스의 품질이 좋은지 나쁜지를 구분하는데 활용될 수 있는 파라미터가 정의될 수 있다.
보다 구체적인 일 예로는, 앱 서비스의 지연시간이 그 파라미터일 수 있다.
이에, 핸드오버제어부(150)는, 단말(10)이 엣지클라우드 노드(100A)의 기지국(20A)에서 엣지그룹 내 타 엣지클라우드 노드의 타겟 기지국으로 무선구간 핸드오버 하는 경우, 단말(10)에 제공하는 클라우드 기반 앱 서비스에 정의된 파라미터(예: 지연시간)를 보고 핸드오버 트리거 이벤트 발생 여부를 판단할 수 있다.
그 파마리터로서 지연시간을 가정하면, 핸드오버제어부(150)는, 단말(10)에 제공하는 클라우드 기반 앱 서비스의 지연시간이 기 설정된 특정 지연시간 이상이면, 핸드오버 트리거 이벤트 발생으로 판단할 수 있다.
이와 같이, 핸드오버제어부(150)는, 단말(10)이 엣지클라우드 노드(100A)의 기지국(20A)에서 엣지그룹 내 타 엣지클라우드 노드의 타겟 기지국으로 무선구간 핸드오버 하는 경우, 앱 서비스의 지연시간이 특정 지연시간 이상이면 핸드오버 트리거 이벤트 발생으로 판단하여, 앱 기능을 타 엣지클라우드 노드로 핸드오버 시킬 수 있다.
반면, 핸드오버제어부(150)는, 단말(10)이 엣지클라우드 노드(100A)의 기지국(20A)에서 엣지그룹 내 타 엣지클라우드 노드의 타겟 기지국으로 무선구간 핸드오버 하는 경우라도, 단말(10)에 제공하는 클라우드 기반 앱 서비스의 핸드오버 트리거 이벤트 미 발생(예: 지연시간 < 특정 지연시간) 시에는, 앱 기능을 타 엣지클라우드 노드로 핸드오버 시키지 않는다.
여기서, 앱 서비스의 지연시간은, 클라우드 기반의 앱 서비스를 이용하는 단말(10)에서 측정되어, 단말(10)에 대하여 현재 앱 기능을 제공하고 있는 엣지클라우드 노드 즉 엣지클라우드 노드(100A)로 보고될 수 있다.
그리고, 특정 지연시간이란, 앱 서비스의 지연시간을 기준으로 서비스 품질이 좋은 상태인지 아니면 나쁜 상태인지를 구분하기 위해 기 설정되는 시간치로서, 변경 가능한 것이다.
그룹연동부(160)는, 이러한 엣지클라우드 노드 간 앱 기능 핸드오버를 위해서, 전제되는 구성이다.
그룹연동부(160)는, 엣지클라우드 노드(100A)가 포함된 엣지그룹 내 각 엣지클라우드 장치(노드)와 연동하는 역할을 한다.
예를 들면, 도 1에 도시된 바와 같이, 엣지클라우드 노드(100A)가 포함된 엣지그룹은, 다수 개의 엣지클라우드 노드(100A,100B,100C,...100N)로 구성된다고 가정할 수 있다.
이 경우, 그룹연동부(160)는, 엣지그룹 내 각 엣지클라우드 노드(100B,100C,...100N)와 연동한다.
이때의 연동 방식은, 엣지클라우드 노드 간에 즉시 통신 가능한 통신 세션을 유지하고 있는 방식일 수도 있고, 엣지클라우드 노드 간에 통신 세션을 즉시 연결할 수 있는 대기 상태를 유지하고 있는 방식일 수도 있고, 엣지클라우드 노드 간에 상대방 엣지클라우드 노드의 기지국으로 데이터를 송수신할 수 있는 관련정보를 공유하는 방식일 수도 있다.
단말(10)은 앱(15)을 실행하여 코어클라우드 노드(200) 및 엣지클라우드 노드(100A)로부터 제공되는 클라우드 기반의 앱 서비스를 이용하는 중(이 경우 어플리케이션 세션①), 자유롭게 이동할 수 있다.
예를 들면, 도 1에 도시된 바와 같이, 단말(10)은 기지국(20A)의 커버리지에서 코어클라우드 노드(200) 및 엣지클라우드 노드(100A)로부터 제공되는 클라우드 기반의 앱 서비스를 이용하다가, 기지국(20B)의 커버리지로 이동하고, 또 기지국(20C)의 커버리지로 이동할 수 있다.
이 경우로 가정하여 설명하면, 단말(10)은, 기존의 일반적인 무선구간(Radio) 핸드오버 기술에 따라, 기지국(20A)의 커버리지에서 기지국(20B)의 커버리지로 이동 시 소스 기지국(20A)에서 타겟 기지국(20B)으로 무선구간 핸드오버 하고(①->②), 기지국(20B)의 커버리지에서 기지국(20C)의 커버리지로 이동 시 소스 기지국(20B)에서 타겟 기지국(20C)으로 무선구간 핸드오버 한다(②->③).
핸드오버제어부(150)는, 단말(10)이 엣지클라우드 노드(100A)의 기지국(20A)에서 엣지그룹 내 타 엣지클라우드 노드의 타겟 기지국으로 무선구간 핸드오버 하는 경우, 단말(10)에 제공하는 클라우드 기반 앱 서비스의 핸드오버 트리거 이벤트 발생 여부를 확인한다.
즉, 핸드오버제어부(150)는, 단말(10)로부터 엣지클라우드 노드(100A)로 가장 최근에 측정/보고된 앱 서비스의 파라미터(예: 지연시간)을 기반으로, 핸드오버 트리거 이벤트 발생 여부를 확인할 수 있다.
이에, 핸드오버제어부(150)는, 앱 서비스의 핸드오버 트리거 이벤트가 발생하는지(서비스 품질 나쁜 상태) 미 발생하는지(서비스 품질 좋은)를 판단한다.
이하에서는, 설명의 편의 상 핸드오버 트리거 이벤트로서, 앱 서비스의 지연시간이 특정 지연시간 이상 시 발생되는 일 예로 통칭하여 설명하겠다.
예를 들어, 단말(10)이 소스 기지국(20A)에서 타겟 기지국(20B)으로 무선구간 핸드오버한 경우(①->②), 앱 서비스의 지연시간이 특정 지연시간 이상이 아닌 것으로 가정한다.
이 경우, 핸드오버제어부(150)는, 단말(10)이 소스 기지국(20A)에서 타겟 기지국(20B)으로 무선구간 핸드오버 하더라도(①->②), 앱 서비스의 지연시간이 특정 지연시간 이상이 아닌 것으로 판단하여, 단말(10)에 제공하는 앱 기능을 엣지클라우드 노드(100B)로 핸드오버 시키지 않는다.
대신, 핸드오버제어부(150)는, 코어클라우드 노드(200)로부터 수신되는 앱 서비스의 데이터를 연산 처리된 결과 및 어플리케이션실행부(130)에서 앱 서비스의 일부 데이터를 연산 처리한 결과를 포함하는 앱 서비스의 서비스 컨텍스트(Service Context)를, 그룹연동부(160)를 기반으로 타겟 기지국(20B)을 통해 단말(10)에 스트리밍 제공할 수 있다(App Streaming Relay).
이렇게 되면, 도 1에 도시된 바와 같이, 앱(15)을 실행하는 단말(10)은, 기지국(20B)와의 접속을 기반으로 엣지클라우드 노드(100A) 및 코어클라우드 노드(200) 간에 연결된 어플리케이션 세션②을 통해서, 앱(15)에 따른 앱 서비스를 이용할 수 있다.
즉, 어플리케이션 세션②는, 어플리케이션 세션①과 비교하여, 엣지클라우드 노드(100A) 및 코어클라우드 노드(200) 간에 연결된 어플리케이션 세션 구간은 동일하되, 무선구간 만이 기지국(20A)에서 기지국(20B)로 변경되는 것이다.
한편, 단말(10)이 소스 기지국(20B)에서 타겟 기지국(20C)으로 무선구간 핸드오버한 경우(②->③), 앱 서비스의 지연시간이 특정 지연시간 이상인 것으로 가정한다.
이 경우, 핸드오버제어부(150)는, 단말(10)이 소스 기지국(20B)에서 타겟 기지국(20C)으로 무선구간 핸드오버 하면(②->③), 어플리케이션실행부(130)에서 수행하는 앱 기능 즉 단말(10)에 분산 제공하고 있던 클라우드 기반의 앱 서비스의 기능을 엣지클라우드 노드(100C)로 핸드오버 시킬 수 있다.
이하에서는, 어플리케이션실행부(130)에서 수행하는 앱 기능을 엣지클라우드 노드(100C)로 핸드오버 시키는 과정을 설명하겠다.
핸드오버제어부(150)는, 단말(10)의 사용자 컨텍스트(U10)를 엣지클라우드 노드(100C)로 복사(Copy)하여, 단말(10)의 앱(15)을 위해 구성된 어플리케이션실행부(130) 내 vApp이 엣지클라우드 노드(100C)에서 상기 복사된 단말(10)의 사용자 컨텍스트(U10)를 기반으로 구성하는 어플리케이션실행부에 동일하게 구성되도록 하여, 앱 기능을 엣지클라우드 노드(100A)로부터 엣지클라우드 노드(100C)로 핸드오버 시킨다.
구체적으로, 핸드오버제어부(150)는, 단말(10)이 소스 기지국(20B)에서 타겟 기지국(20C)으로 무선구간 핸드오버 하는 경우(②->③), 앱 서비스의 지연시간이 특정 지연시간 이상인 것으로 판단되면, 단말(10)의 사용자 컨텍스트(U10)를 엣지클라우드 노드(100C)로 복사(Copy)한다.
즉, 핸드오버제어부(150)는, 그룹연동부(160)를 기반으로, 단말(10)의 사용자 컨텍스트(U10)를 복사하여 엣지클라우드 노드(100C)로 제공하거나 또는 엣지클라우드 노드(100C)가 단말(10)의 사용자 컨텍스트(U10)를 복사해갈 수 있도록 지원함으로써, 단말(10)의 사용자 컨텍스트(U10)를 엣지클라우드 노드(100C)로 복사(Copy)할 수 있다.
이렇게 단말(10)의 사용자 컨텍스트(U10)를 엣지클라우드 노드(100A)로부터 복사한 엣지클라우드 노드(100C)에는, 기지국(20C) 접속을 통해서 연결되는 단말(10)에 대하여, 단말(10) 연결 시 할당한 어플리케이션 실행자원에 가상 머신(VM) 및 가상 어플리케이션(vApp)으로 구성된 어플리케이션실행부가 생성(구성)될 것인데, 이 어플리케이션실행부에 구성되는 가상 어플리케이션(vApp)은 엣지클라우드 노드(100A)로부터 복사한 사용자 컨텍스트(U10)를 기반으로 엣지클라우드 노드(100A)의 어플리케이션실행부(130) 내 vApp과 동일하게 구성될 것이다.
이렇게 되면, 단말(10)의 사용자 컨텍스트(U10)를 엣지클라우드 노드(100A)로부터 복사한 엣지클라우드 노드(100C)에는, 엣지클라우드 노드(100A)에서 단말(10)에서 실행되는 앱(15)을 위해 수행하던 앱 기능의 주체인 어플리케이션실행부(130) 달리 말하면 가상 머신(VM)이, 그대로 옮겨지는 것과 마찬가지이다.
이와 같이, 엣지클라우드 노드(100A)에서 엣지클라우드 노드(100C)로 복사된 단말(10)의 사용자 컨텍스트(U10)를 기반으로, 엣지클라우드 노드(100A)의 어플리케이션실행부(130 = VM)와 동일한 어플리케이션실행부(=VM)가 엣지클라우드 노드(100C)에 구성되는 과정을 거쳐, 단말(10)에서 실행되는 앱(15)에 대한 앱 기능이 엣지클라우드 노드(100A)로부터 엣지클라우드 노드(100C)로 핸드오버 완료될 수 있다.
이때, 핸드오버제어부(150)는, 엣지클라우드 노드(100C)로 앱 기능의 핸드오버가 완료되기 전까지, 단말(10)에서 실행되는 앱(15)에 따른 앱 서비스의 서비스 컨텍스트를 타겟 기지국(20C)을 통해 단말(1)로 제공하는 것이 바람직하다.
즉, 핸드오버제어부(150)는, 엣지클라우드 노드(100C)로 앱 기능의 핸드오버가 완료되기 전까지, 코어클라우드 노드(200)로부터 수신되는 앱 서비스의 데이터를 연산 처리된 결과 및 어플리케이션실행부(130)에서 앱 서비스의 일부 데이터를 연산 처리한 결과를 포함하는 앱 서비스의 서비스 컨텍스트를, 그룹연동부(160)를 기반으로 타겟 기지국(20C)을 통해 단말로 스트리밍 제공할 수 있다(App Streaming Relay).
이 경우, 도 1에 도시된 바와 같이, 앱(15)을 실행하는 단말(10)은, 앱 기능의 핸드오버가 완료되기 전까지, 기지국(20C)와의 접속을 기반으로 엣지클라우드 노드(100A) 및 코어클라우드 노드(200) 간에 연결된 어플리케이션 세션③-1을 통해 앱(15)에 따른 앱 서비스를 이용하다가, 앱 기능의 핸드오버가 완료되면, 기지국(20C)와의 접속을 기반으로 엣지클라우드 노드(100C) 및 코어클라우드 노드(200) 간에 연결된 어플리케이션 세션③을 통해 앱 서비스를 이용할 수 있다.
이하에서는, 도 3을 참조하여 본 발명의 바람직한 실시예에 따른 엣지클라우드 노드(장치)의 동작 방법, 특히 클라우드 기반의 앱 서비스를 분산 제공하는 과정을 설명하도록 하겠다.
여기서, 설명의 편의를 위해 전술한 도 1 및 도 2에 도시된 구성은 해당 참조번호를 언급하여 설명하겠다.
본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 데이터 선택(필터링)에 영향을 미치는 분산정책이 기 설정된다(S100).
본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 연결되는 단말(10)이 확인되면(S110), 단말(10)에서 실행되는 특정 어플리케이션을 인지한다(S120).
이하에서는, 설명의 편의 상 단말(10)에서 앱(15)가 실행되는 것으로 가정하겠다.
본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 단말(10)에서 실행되는 앱(15)을 위한 어플리케이션 실행자원을 할당한다(S130).
즉 엣지클라우드 노드(100A)는 엣지클라우드 노드(100A)가 보유하고 있는 데이터 연산 처리를 위한 컴퓨팅 리소스에서, 단말(10)에서 실행되는 앱(15)을 위한 어플리케이션 실행자원을 즉각 할당할 수 있다.
그리고, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 S130단계에서 할당한 어플리케이션 실행자원에 가상 머신(VM) 및 가상 어플리케이션(vApp)을 포함하는 어플리케이션실행부(130)을 구성한다(S140).
즉, 어플리케이션실행부(130)는, 사용자 컨텍스트(U10)를 기반으로 동작하는 가상 머신(Virtual Machine, VM)과, 가상 머신(VM)의 동작에 따른 가상화 단말을 기반으로 실행되어 데이터를 단말(10) 내의 앱(15)을 대신하여 연산 처리하는 가상 어플리케이션(Virtual Application, vApp)으로 구성된다.
그리고, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 단말(10)에서 실행되는 앱(15)에 따른 앱 서비스와 관련하여 발생되는 데이터를 수신하면(S150), 수신하는 앱 서비스의 데이터 중 코어망(1)에 위치하는 코어클라우드 노드(200)와 분산 제공하는 앱 서비스의 특정 기능과 관련된 데이터인지 판단한다(S160).
이때, 앱(15)과 관련하여 발생되는 데이터는, 단말(10) 구체적으로 단말(10) 내 앱(15)에서 발생되는 데이터(예: 요청데이터, 응답데이터, 보고데이터 등)와, 해당 데이터 서비스를 위해 구축된 별도의 센싱 디바이스(미도시)로부터 발생되는 데이터(예: 수집데이터, 보고데이터 등)를 포함한다.
즉, 엣지클라우드 노드(100A)는, 앱 서비스의 데이터 중, 코어망(1)에 위치하는 코어클라우드 노드(200)와 분산 제공하는 앱 서비스의 특정 기능과 관련된 데이터만 필터링/선택하고(S160 Yes), 그 외의 데이터는 코어클라우드 노드(200)로 전달한다(S160 No).
예를 들어, S150단계에 수신된 금번 데이터가 정보표시를 위한 앱 서비스의 기능과 관련된 데이터인 경우, 엣지클라우드 노드(100A)는, 필터링(선택)할 수 있다(S160 Yes).
반면 예를 들어, S150단계에 수신된 금번 데이터가 대용량 데이터 기반의 영상분석을 위한 앱 서비스의 기능과 관련된 데이터인 경우, 엣지클라우드 노드(100A)는, 필터링(선택)하지 않고 코어클라우드 노드(200)로 전달할 수 있다(S160 No).
이때 구체적으로 설명하면, 엣지클라우드 노드(100A)는, 필터링(선택)하지 않은 그 외의 데이터(예: 영상분석 데이터)를 단말(10)의 사용자 컨텍스트(U10)를 기반으로 코어클라우드 노드(200)로 전달한다(S210).
이렇게 되면, 엣지클라우드 노드(100A)에서 필터링되지 않고 코어클라우드 노드(200)로 전달되는 데이터는, 빅데이터(스토리지 노드)와 연동하는 코어클라우드 노드(200)에서 단말(10)의 해당 사용자에 할당된 자원을 기반으로 즉 사용자 컨텍스트를 기반으로 연산 처리될 것이다(S220).
그리고, 코어클라우드 노드(200)는, 단말(10)의 해당 사용자에 할당된 자원을 기반으로 연산 처리한 데이터 연산 처리 결과를, 사용자 컨텍스트를 기반으로 내부 저장소 또는 연동하는 스토리지 노드에 저장하되, 단말(10)의 사용자 컨텍스트를 기반으로 엣지클라우드 노드(100A)로 전달함으로써(S230), 엣지클라우드 노드(100A)로 하여금 전달된 데이터 연산 처리의 결과를 단말(10)의 앱(15)으로 제공하도록 할 것이다(S240).
한편, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는, S160단계에서 선택(필터링)한 데이터(예: 정보표시 데이터)를 연산 처리하여(S170), 단말(10)에 클라우드 기반의 앱 서비스를 코어클라우드 노드(200)와 분산 제공한다.
즉, 엣지클라우드 노드(100A)는, S140단계에서 구성한 어플리케이션실행부(130) 구체적으로 가상화 단말(단말(10)의 사용자 컨텍스트)을 기반으로 실행되는 vApp을 통해서, S130단계에서 할당한 어플리케이션 실행자원을 기반으로 데이터를 연산 처리하여, 클라우드 기반의 앱 서비스를 코어클라우드 노드(200)와 분산 제공한다.
이러한 엣지클라우드 노드(100A)의 어플리케이션실행부(130) 즉 vApp는, 단말(10)이 코어망(1)과의 연결을 위해 접속하는 기지국(20A) 단에 위치하는 스토리지 노드(미도시)를 기반으로 데이터를 연산 처리하는 것이 바람직하다.
예를 들어, S160단계에서 선택(필터링)한 데이터가 정보표시 데이터인 경우, 어플리케이션실행부(130) 즉 vApp은 그 데이터를 스토리지 노드(미도시)에 저장된 데이터를 기반으로 연산 처리(정보표시 화면 생성)하여, 클라우드 서비스를 코어클라우드 노드(200)와 분산 제공할 수 있다.
이에, 엣지클라우드 노드(100A)에서 필터링된 데이터는, 엣지클라우드 노드(100A)에서 유동적으로 할당되는 어플리케이션 실행자원 및 이에 구성되는 어플리케이션실행부(130)에 의해 연산 처리됨으로써, 엣지클라우드 노드(100A)는 단말(10) 내 앱(15)에 대하여 필터링한(선택) 데이터 연산 처리를 통해 클라우드 기반의 앱 서비스(특정 기능)를 선택적으로 분산 제공할 수 있다.
그리고 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는, 어플리케이션실행부(130)에서 데이터(예: 정보표시 데이터)를 연산 처리(예: 정보표시 화면 생성)한 결과(예: 정보표시 화면)를 단말(10) 구체적으로는 앱(15)에 스트리밍 방식으로 제공한다(S180).
즉, 엣지클라우드 노드(100A)에서 데이터 연산 처리된 결과(예: 정보표시 화면)가 스트리밍 방식으로 단말(10)에 제공되어, 단말(10)에서 실행 중인 앱(15)은 스트리밍 수신되는 데이터(이하, App Streaming)을 추가적인 연산 처리 없이 즉시 출력(예: 디스플레이)할 수 있게 된다.
아울러, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는, 어플리케이션실행부(130)에서 데이터를 연산 처리한 결과를 엣지클라우드 노드(100A)가 연동하는 스토리지 노드(미도시)에 단말(10)의 사용자 컨텍스트를 기반으로 저장하되, 단말(10)의 사용자 컨텍스트를 기반으로 코어클라우드 노드(200)에 제공하여 코어클라우드 노드(200)와 공유할 수 있다(S190).
이렇게 되면, 엣지클라우드 노드(100A)가 분산 제공하는 클라우드 서비스(특정 기능)의 결과는, 엣지클라우드 노드(100A) 측에도 저장되고 코어클라우드 노드(200) 측에도 사용자 컨텍스트를 기반으로 저장된다(S200).
이하에서는, 도 4를 참조하여 본 발명의 바람직한 실시예에 따른 엣지클라우드 노드(장치)의 동작 방법, 특히 엣지클라우드 노드(장치)에서 앱 기능의 핸드오버를 수행하는 과정을 설명하겠다.
여기서, 설명의 편의를 위해 전술한 도 1 및 도 2에 도시된 구성은 해당 참조번호를 언급하여 설명하겠다.
본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 엣지클라우드 노드(100A)가 포함된 엣지그룹 내 각 엣지클라우드 노드 즉 엣지클라우드 노드(100B,100C,...100N)와 연동한다(S300).
이때의 연동 방식은, 엣지클라우드 노드 간에 즉시 통신 가능한 통신 세션을 유지하고 있는 방식일 수도 있고, 엣지클라우드 노드 간에 통신 세션을 즉시 연결할 수 있는 대기 상태를 유지하고 있는 방식일 수도 있고, 엣지클라우드 노드 간에 상대방 엣지클라우드 노드의 기지국으로 데이터를 송수신할 수 있는 관련정보를 공유하는 방식일 수도 있다.
아울러, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 앞선 도 3을 참조한 설명과 같이 단말(10)에 클라우드 기반 앱 서비스를 코어클라우드 노드(200)과 분산 제공하고 있는 상태로 가정한다(S310).
이 경우, 도 1에 도시된 바와 같이, 앱(15)을 실행하는 단말(10)은, 기지국(20A)와의 접속을 기반으로 엣지클라우드 노드(100A) 및 코어클라우드 노드(200) 간에 연결된 어플리케이션 세션①을 통해서, 앱(15)에 따른 앱 서비스를 이용할 수 있다.
본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 단말(10)이 엣지클라우드 노드(100A)의 기지국(20A)에서 엣지그룹 내 타 엣지클라우드 노드의 타겟 기지국으로 무선구간 핸드오버 하는지 여부를 감지한다(S320).
본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 단말(10)이 무선구간 핸드오버 하는 경우(S320 Yes), 엣지클라우드 노드(100A)는 단말(10)로 제공하는 앱 서비스의 정의된 파라미터(예: 지연시간)를 확인한다(S330).
이하에서는, 설명의 편의 상 전술과 마찬가지로, 핸드오버 트리거 이벤트로서, 앱 서비스의 지연시간이 특정 지연시간 이상 시 발생되는 일 예로 통칭하여 설명하겠다.
그리고, 앞서 예시와 같이, 단말(10)이 소스 기지국(20A)에서 타겟 기지국(20B)으로 무선구간 핸드오버한 경우(①->②), 앱 서비스의 지연시간이 특정 지연시간 이상이 아닌 것으로 가정한다.
이 경우, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 단말(10)이 소스 기지국(20A)에서 타겟 기지국(20B)으로 무선구간 핸드오버 하더라도(①->②), 확인된 앱 서비스의 지연시간이 특정 지연시간 이상이 아니므로 핸드오버 트리거 이벤트 미 발생으로 판단하여(S340 No), 단말(10)에 제공하는 앱 기능을 엣지클라우드 노드(100B)로 핸드오버 시키지 않는다.
즉, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는, 앱 기능을 엣지클라우드 노드(100B)로 핸드오버 시키지 않고, 대신 코어클라우드 노드(200)로부터 수신되는 앱 서비스의 데이터를 연산 처리된 결과 및 자신의 어플리케이션실행부(130)에서 앱 서비스의 일부 데이터를 연산 처리한 결과를 포함하는 앱 서비스의 서비스 컨텍스트(Service Context)를, 그룹 연동 기반으로 타겟 기지국(20B)을 통해 단말(10)에 스트리밍 제공할 수 있다(App Streaming Relay, S350).
이렇게 되면, 도 1에 도시된 바와 같이, 앱(15)을 실행하는 단말(10)은, 기지국(20B)와의 접속을 기반으로 엣지클라우드 노드(100A) 및 코어클라우드 노드(200) 간에 연결된 어플리케이션 세션②을 통해서, 앱(15)에 따른 앱 서비스를 이용할 수 있다.
한편, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 확인된 앱 서비스의 지연시간이 특정 지연시간 이상이면 핸드오버 트리거 이벤트 발생으로 판단하여(S340 Yes), 단말(10)에 제공하는 앱 기능의 핸드오버를 결정한다(S360).
앞서 예시와 같이, 단말(10)이 소스 기지국(20B)에서 타겟 기지국(20C)으로 무선구간 핸드오버한 경우(②->③), 앱 서비스의 지연시간이 특정 지연시간 이상인 것으로 가정한다.
이 경우, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 단말(10)이 소스 기지국(20B)에서 타겟 기지국(20C)으로 무선구간 핸드오버 하면(②->③), 확인된 앱 서비스의 지연시간이 특정 지연시간 이상이므로(S340 Yes), 어플리케이션실행부(130)에서 수행하는 앱 기능 즉 단말(10)에 분산 제공하고 있던 클라우드 기반의 앱 서비스의 기능을 타겟 기지국(20C)의 엣지클라우드 노드(100C)로 핸드오버 시키기로 결정한다.
우선, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 엣지클라우드 노드(100C)로 앱 기능의 핸드오버가 완료되기 전까지, 단말(10)에서 실행되는 앱(15)에 따른 앱 서비스의 서비스 컨텍스트를 그룹 연동 기반으로 타겟 기지국(20C)을 통해 단말(10)에 스트리밍 제공할 수 있다(App Streaming Relay, S360).
그와 동시에, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)로부터 엣지클라우드 노드(100C)로의 앱 기능 핸드오버 과정이 진행된다(S370).
구체적으로, 본 발명의 엣지클라우드 노드(100A)의 동작 방법에 따르면, 엣지클라우드 노드(100A)는 단말(10)이 무선구간 핸드오버 하는 경우(②->③), 앱 서비스의 지연시간이 특정 지연시간 이상인 것으로 판단되면, 단말(10)의 사용자 컨텍스트(U10)를 엣지클라우드 노드(100C)로 복사(Copy)한다(S370).
즉, 엣지클라우드 노드(100A)는, 그룹 연동을 기반으로, 단말(10)의 사용자 컨텍스트(U10)를 복사하여 엣지클라우드 노드(100C)로 제공하거나 또는 엣지클라우드 노드(100C)가 단말(10)의 사용자 컨텍스트(U10)를 복사해갈 수 있도록 지원함으로써, 단말(10)의 사용자 컨텍스트(U10)를 엣지클라우드 노드(100C)로 복사(Copy)할 수 있다.
이렇게 단말(10)의 사용자 컨텍스트(U10)를 엣지클라우드 노드(100A)로부터 복사한 엣지클라우드 노드(100C)에는, 기지국(20C) 접속을 통해서 연결되는 단말(10)에 대하여, 단말(10) 연결 시 할당한 어플리케이션 실행자원에 가상 머신(VM) 및 가상 어플리케이션(vApp)으로 구성된 어플리케이션실행부가 생성(구성)될 것인데, 이 어플리케이션실행부에 구성되는 가상 어플리케이션(vApp)은 엣지클라우드 노드(100A)로부터 복사한 사용자 컨텍스트(U10)를 기반으로 엣지클라우드 노드(100A)의 어플리케이션실행부(130) 내 vApp과 동일하게 구성될 것이다(S370).
이렇게 되면, 단말(10)의 사용자 컨텍스트(U10)를 엣지클라우드 노드(100A)로부터 복사한 엣지클라우드 노드(100C)에는, 엣지클라우드 노드(100A)에서 단말(10)에서 실행되는 앱(15)을 위해 수행하던 앱 기능의 주체인 어플리케이션실행부(130) 달리 말하면 가상 머신(VM)이, 그대로 옮겨지는 것과 마찬가지이다.
이와 같이, 엣지클라우드 노드(100A)에서 엣지클라우드 노드(100C)로 복사된 단말(10)의 사용자 컨텍스트(U10)를 기반으로, 엣지클라우드 노드(100A)의 어플리케이션실행부(130 = VM)와 동일한 어플리케이션실행부(=VM)가 엣지클라우드 노드(100C)에 구성되는 과정을 거쳐, 단말(10)에서 실행되는 앱(15)에 대한 앱 기능이 엣지클라우드 노드(100A)로부터 엣지클라우드 노드(100C)로 핸드오버 완료될 수 있다.
앱 기능이 엣지클라우드 노드(100A)로부터 엣지클라우드 노드(100C)로 핸드오버 완료되면, 본 발명의 엣지클라우드 노드(100C)는 단말(10)에 클라우드 기반 앱 서비스를 코어클라우드 노드(200)과 분산 제공할 것이다(S380).
이 경우, 도 1에 도시된 바와 같이, 앱(15)을 실행하는 단말(10)은, 앱 기능의 핸드오버가 완료되기 전까지, 기지국(20C)와의 접속을 기반으로 엣지클라우드 노드(100A) 및 코어클라우드 노드(200) 간에 연결된 어플리케이션 세션③-1을 통해 앱(15)에 따른 앱 서비스를 이용하다가, 앱 기능의 핸드오버가 완료되면, 기지국(20C)와의 접속을 기반으로 엣지클라우드 노드(100C) 및 코어클라우드 노드(200) 간에 연결된 어플리케이션 세션③을 통해 앱 서비스를 이용할 수 있다.
이상에서 설명한 바와 같이, 본 발명에 따른 분산형 클라우드 기반 어플리케이션 실행 시스템, 이에 적용되는 장치(엣지클라우드 노드) 및 장치의 동작 방법에 의하면, 단말에서 실행하는 앱에 따른 앱 서비스를 코어망 및 코어망 보다 사용자(단말)에 가까운 위치의 엣지(Edge)에서 분산 제공하는 구조로서, 기존의 클라우드 서비스 기반의 어플리케이션 실행 환경이 갖는 성능 한계/제약을 개선한, 클라우드 기반의 하이브리드(Hybrid) 어플리케이션 실행 환경을 실현함으로써, 초 저지연/대용량의 데이터 서비스를 요구하는 현 추세의 니즈를 만족시키는 효과를 도출한다.
아울러, 본 발명에 따른 분산형 클라우드 기반 어플리케이션 실행 시스템, 이에 적용되는 장치(엣지클라우드 노드) 및 장치의 동작 방법에 의하면, 앞서 실현한 클라우드 기반의 하이브리드 어플리케이션 실행 환경에 적합한 엣지클라우드 노드에서의 핸드오버 기술을 새롭게 실현함으로써, 클라우드 기반의 하이브리드 어플리케이션 실행 환경의 완성도를 높이고 앱 서비스의 품질을 향상시킬 수 있다.
본 발명의 실시예에 따른 엣지클라우드 노드(장치)의 동작 방법은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.