KR20170113192A - 협업 가상 데스크톱 서비스 시스템 및 그 방법 - Google Patents
협업 가상 데스크톱 서비스 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR20170113192A KR20170113192A KR1020170036326A KR20170036326A KR20170113192A KR 20170113192 A KR20170113192 A KR 20170113192A KR 1020170036326 A KR1020170036326 A KR 1020170036326A KR 20170036326 A KR20170036326 A KR 20170036326A KR 20170113192 A KR20170113192 A KR 20170113192A
- Authority
- KR
- South Korea
- Prior art keywords
- storage
- collaboration
- virtual machine
- authentication
- user terminal
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
협업 가상 데스크톱 서비스 시스템 및 그 방법이 제공된다. 이 시스템은 적어도 하나의 프로세서에 의해 동작하는 협업 가상 데스크톱 서비스 시스템으로서, 적어도 둘 이상의 사용자 단말이 접속한 웹 인터페이스를 통해 협업 프로세스의 생성, 삭제 및 업데이트를 포함하는 협업 서비스 중개를 제공하는 서비스 브로커, 상기 사용자 단말이 구비하고 있거나 또는 지정한 적어도 하나의 스토리지로 구성된 하이브리드 스토리지, 가상 자원을 사용하여 생성되고, 협업 데이터를 저장하는 공유 스토리지, 그리고 상기 서비스 브로커로부터 요청된 협업 프로세스를 상기 공유 스토리지와 연동하여 실행하고, 상기 적어도 둘 이상의 사용자 단말에게 상기 협업 프로세스를 제공하는 협업 가상 머신을 포함하고, 상기 협업 프로세스는, 상기 하이브리드 스토리지와 상기 공유 스토리지 간의 파일 공유를 포함한다.
Description
본 발명은 가상 데스크톱 환경에서 협업 서비스를 제공하는 시스템 및 그 방법에 관한 것이다.
인터넷 이용의 확산과 컴퓨팅 환경이 급속히 변화되면서 특수 소수 그룹의 구성원들 간의 정보 공유와 재사용을 지원하는 협업 시스템(Collaboration System)이 개발되었다. 종래에 협업 시스템은 웹 문서를 이용한 방식과 PC 어플리케이션을 이용한 방식이 있다.
웹 문서를 이용한 협업 방식은 실시간 협업이 가능하므로 의사 소통은 원활하지만, 웹 문서의 툴이 지원하는 기능이 동일 목적을 가진 PC용 어플리케이션이 지원하는 기능보다 제한적이다. 이로 인하여 간단한 협업만이 진행되고 있는 상황이다.
PC 어플리케이션을 이용한 협업 방식은 제한된 범위의 네트워크만 사용 가능하므로, 몇가지 기능이 제한된 형태로 사용되고, 텍스트를 이용한 채팅을 지원하기 때문에 사용자간 의사 소통에 한계가 있으며, 대부분 플랫폼 종속적이다.
한편, 클라우드 스토리지를 사용하는 기업 또는 개인은 보안상의 이유로 클라우드 스토리지에 중요한 데이터 보관을 꺼린다. 따라서, 중요한 데이터는 회사 내 업무 컴퓨터 또는 개인 컴퓨터에 보관되므로, 관련자들만 참여하는 협업에서도 협업을 진행하기 어려운 상황이다.
특히, 웹 문서를 이용한 협업 시스템 중 클라우드 스토리지 또는 공유 스토리지를 접근하는 경우, 웹 서비스에서 발생하는 사용자 인증과 관련한 문제가 발생할 가능성이 있다. 이러한 문제가 발생할 경우 공유 스토리지와 가상머신의 스토리지 모두의 문제로 이어지는 문제가 있다.
따라서, 웹 서비스에서 사용자 인증 측면에서 취약한 부분이 발생할 경우, 데이터의 안전성을 보장 받지 못할 가능성이 높다. 특히, 웹을 통해 공유 스토리지에 바로 접근하는 방식은 웹 인증에 문제가 발생할 경우, 데이터의 안전을 보장하기 어렵다.
또한, 가상 데스크톱 인터페이스(Virtual Desktop Infrastructure, VDI)는 가상머신에 할당된 스토리지를 이용하고 있다. 가상머신에 할당된 스토리지는 데스크톱 가상화(VDI) 인증에 문제 발생시 데이터를 보호받기 힘들다.
본 발명이 해결하고자 하는 과제는 하이브리드 스토리지를 이용하여 웹 기반의 협업 서비스를 위한 가상 데스크톱 인터페이스(VDI)를 제공하는 시스템 및 그 방법을 제공하는 것이다.
본 발명의 한 실시예에 따르면, 협업 가상 데스크톱 서비스 시스템은 적어도 하나의 프로세서에 의해 동작하는 협업 가상 데스크톱 서비스 시스템으로서, 적어도 둘 이상의 사용자 단말이 접속한 웹 인터페이스를 통해 협업 프로세스의 생성, 삭제 및 업데이트를 포함하는 협업 서비스 중개를 제공하는 서비스 브로커, 상기 사용자 단말이 구비하고 있거나 또는 지정한 적어도 하나의 스토리지로 구성된 하이브리드 스토리지, 가상 자원을 사용하여 생성되고, 협업 데이터를 저장하는 공유 스토리지, 그리고 상기 서비스 브로커로부터 요청된 협업 프로세스를 상기 공유 스토리지와 연동하여 실행하고, 상기 적어도 둘 이상의 사용자 단말에게 상기 협업 프로세스를 제공하는 협업 가상 머신을 포함하고, 상기 협업 프로세스는, 상기 하이브리드 스토리지와 상기 공유 스토리지 간의 파일 공유를 포함한다.
또한, 협업 가상 데스크톱 서비스 시스템은, 복수의 가상 머신으로 구성된 가상 머신 풀, 그리고 상기 가상 머신 풀과 독립적으로 생성되고, 상기 복수의 가상 머신과 각각 매칭되는 복수의 클라우드 스토리지로 구성된 클라우드 스토리지 풀, 상기 가상 머신 풀에서 상기 협업 가상 머신을 할당하고, 상기 클라우드 스토리지 풀에서 상기 공유 스토리지를 할당하며, 상기 공유 스토리지가 상기 협업 가상 머신에 매칭되는지 확인하는 제1 인증을 수행하여, 상기 제1 인증에 성공하면, 상기 협업 가상 머신이 상기 공유 스토리지로 접근하도록 허용하는 리소스 매니저를 더 포함할 수 있다.
상기 서비스 브로커는, 상기 웹 인터페이스에 접속을 요청한 사용자 단말이 접속 권한이 있는 정당한 사용자인지 확인하는 제2 인증을 수행하여, 상기 제2 인증에 성공하면, 상기 사용자 단말을 상기 웹 인터페이스에 접속시키고, 상기 제2 인증에 성공한 사용자 단말이 협업 참가를 요청하면, 협업 참가 권한이 있는지 확인하는 제3 인증을 수행하여, 상기 제3 인증에 성공하면, 상기 사용자 단말을 상기 협업 가상 머신에 연결시킬 수 있다.
상기 하이브리드 스토리지는, 상기 사용자 단말에 포함된 로컬 스토리지, 가상 자원을 이용하여 생성된 클라우드 스토리지 및 원격 디바이스에 포함된 원격 디바이스 스토리지를 포함하고, 상기 서비스 브로커는, 사용자 단말이 공유를 요청한 상기 로컬 스토리지, 상기 클라우드 스토리지 및 상기 원격 디바이스 스토리지 중 하나의 스토리지로부터 획득한 파일 리스트를 상기 웹 인터페이스에 게시하고, 상기 파일 리스트에서 상기 사용자 단말이 선택한 파일을 상기 협업 가상 머신을 통하여 상기 공유 스토리지로 업로드시키고, 상기 공유 스토리지에 저장된 파일 리스트를 상기 웹 인터페이스에 게시하고, 상기 사용자 단말이 요청한 파일을 상기 상기 로컬 스토리지, 상기 클라우드 스토리지 및 상기 원격 디바이스 스토리지 중 하나의 스토리지로 다운로드시킬 수 있다.
상기 서비스 브로커는, 사용자 단말이 상기 클라우드 스토리지의 등록을 요청하면, 사용자 인증을 수행하고, 상기 사용자 인증에 성공하면, 상기 등록을 요청한 사용자 단말에게 인증 토큰을 전송하고, 상기 인증 토큰은, 상기 서비스 브로커가 상기 클라우드 스토리지로부터 상기 파일 리스트를 획득하기 위해 사용될 수 있다.
또한, 상기 협업 가상 데스크톱 서비스 시스템은, 상기 원격 디바이스에서 실행된 씬 에이전트(Thin agent) 클라이언트와 연결되는 씬 에이전트 서버를 더 포함하고, 상기 서비스 브로커는, 상기 씬 에이전트 클라이언트로부터 상기 원격 디바이스 스토리지의 등록이 요청되면, 로그인 인증을 수행하고, 상기 로그인 인증에 성공하면, 상기 원격 디바이스 스토리지의 디렉토리를 상기 씬 에이전트 서버에 등록하고, 사용자 단말이 상기 원격 디바이스 스토리지의 공유를 요청하는 경우, 상기 씬 에이전트 서버를 통해 상기 씬 에이전트 클라이언트로부터 상기 파일 리스트를 획득할 수 있다.
또한, 상기 협업 가상 데스크톱 서비스 시스템은, 상기 서비스 브로커로부터 수신한 연결 정보를 토대로 상기 적어도 둘 이상의 사용자 단말에서 각각 실행된 웹 브라우저와 연결되는 비디오 컨퍼런스 서버를 더 포함하고, 상기 각각 실행된 웹 브라우저는, WebRTC(Web Real-Time Communication)를 통해 연결되어 비디오 컨퍼런스 데이터를 송수신할 수 있다.
상기 서비스 브로커 및 상기 협업 가상 머신은, 상기 적어도 둘 이상의 사용자 단말에서 각각 실행된 웹 브라우저와 웹 통신 프로토콜을 이용하여 각각 연결될 수 있다.
상기 서비스 브로커는, 상기 적어도 둘 이상의 사용자 단말이 공유하는 상기 협업 프로세스를 하나의 인스턴스를 사용하여 실행할 수 있다.
본 발명의 다른 실시예에 따르면, 협업 가상 데스크톱 서비스 방법은 적어도 하나의 프로세서에 의해 동작하는 서비스 브로커가 가상 데스크톱 환경에서 협업 서비스를 제공하는 방법으로서, 웹 인터페이스에 접속한 적어도 둘 이상의 사용자 단말의 협업 참가 요청에 따라 상기 적어도 둘 이상의 사용자 단말을 협업 서비스를 제공하는 협업 가상 머신에 연결시키는 단계, 상기 웹 인터페이스를 통해 사용자 단말로부터 협업 요청을 수신하는 단계, 그리고 상기 협업 가상 머신과 연동하여 상기 협업 요청에 따른 협업 프로세스를 중개하는 단계를 포함하고, 상기 협업 요청은, 상기 사용자 단말에 포함된 로컬 스토리지, 가상 자원을 이용하여 생성된 클라우드 스토리지 및 원격 디바이스에 포함된 원격 디바이스 스토리지로 구성된 구성된 하이브리드 스토리지와, 상기 가상 자원을 사용하여 생성되고, 협업 데이터를 저장하는 공유 스토리지 간의 파일 공유 요청을 포함한다.
상기 협업 요청은, 상기 원격 디바이스 스토리지의 파일 공유 요청을 포함하고, 상기 중개하는 단계는, 상기 원격 디바이스에서 실행된 씬 에이전트(Thin agent) 클라이언트와 연결된 씬 에이전트 서버를 통하여 상기 원격 디바이스 스토리지의 파일 리스트를 획득하는 단계, 상기 획득한 파일 리스트를 상기 웹 인터페이스에 게시하는 단계, 그리고 상기 파일 리스트에서 상기 사용자 단말이 선택한 파일을 상기 협업 가상 머신을 통하여 상기 공유 스토리지로 업로드 시키는 단계를 포함하고, 상기 씬 에이전트 서버는, 상기 씬 에이전트 클라이언트가 로그인 인증에 성공한 경우, 상기 원격 디바이스 스토리지의 디렉토리를 저장할 수 있다.
상기 연결시키는 단계는, 상기 적어도 둘 이상의 사용자 단말이 상기 웹 인터페이스에 대한 접속 권한이 있는 정당한 사용자인지 확인하는 1차 인증에 성공하면, 상기 웹 인터페이스에 연결시키는 단계, 그리고 상기 웹 인터페이스에 접속된 사용자 단말이 협업 참가 권한이 있는지 확인하는 2차 인증에 성공하면, 상기 협업 가상 머신에 연결시키는 단계를 포함하고, 상기 협업 프로세스는, 상기 협업 가상 머신이 상기 공유 스토리지에 대한 접근 권한이 있는지 확인하는 3차 인증에 성공하면, 상기 협업 가상 머신에 의해 실행될 수 있다.
상기 협업 요청은, 비디오 컨퍼런스 요청을 포함하고, 상기 중개하는 단계는, 상기 적어도 둘 이상의 사용자 단말을 비디오 컨퍼런스 서버에 연결시키는 단계, 그리고 상기 비디오 컨퍼런스 요청을 상기 협업 가상 머신에게 전달하는 단계를 포함하고, 상기 비디오 컨퍼런스는, 상기 비디오 컨퍼런스 서버에서 수집한 각각의 사용자 단말에서 촬영된 영상 데이터 및 음성 데이터가 상기 협업 가상 머신에 의해 가상 데스크탑 화면으로 구성되어 상기 적어도 둘 이상의 사용자 단말에게 제공될 수 있다.
본 발명의 또 다른 실시예에 따르면, 협업 가상 데스크톱 서비스 방법은 적어도 하나의 프로세서에 의해 동작하는 리소스 서버가 가상 데스크톱 환경에서 협업 서비스를 제공하는 방법으로서, 복수의 가상 머신으로 구성된 가상 머신 풀과, 상기 복수의 가상 머신과 각각 매칭되는 복수의 클라우드 스토리지로 구성된 클라우드 스토리지 풀을 독립적으로 생성하는 단계, 그리고 웹 인터페이스를 통해 적어도 둘 이상의 사용자 단말의 요청에 따라 상기 가상 머신 풀에서 협업 가상 머신을 할당하고, 상기 클라우드 스토리지 풀에서 상기 협업 프로세스에 따른 협업 데이터를 저장하는 공유 스토리지를 할당하는 단계를 포함하고, 상기 협업 가상 머신은, 상기 협업 프로세스의 실행에 따른 가상 데스크탑 화면을 상기 적어도 둘 이상의 사용자 단말에게 전송하고, 상기 협업 프로세스는, 상기 사용자 단말이 구비하고 있거나 또는 지정한 적어도 하나의 스토리지로 구성된 하이브리드 스토리지와, 상기 공유 스토리지 간의 파일 공유를 포함한다.
상기 할당하는 단계 이후, 상기 협업 프로세스에 따라 상기 협업 가상 머신으로부터 상기 공유 스토리지로 접근 요청이 발생하면, 상기 공유 스토리지가 상기 협업 가상 머신에 매칭되는지 확인하는 단계, 매칭되면, 상기 접근 요청을 허락하는 단계, 그리고 매칭되지 않으면, 상기 접근 요청을 거절하는 단계를 더 포함할 수 있다.
상기 협업 프로세스는, 상기 적어도 둘 이상의 사용자 단말 간에 각각의 사용자 단말에서 촬영된 영상 데이터 및 음성 데이터를 공유하는 비디오 컨퍼런스 서비스를 포함하고, 상기 협업 가상 머신은, 비디오 컨퍼런스 서버가 수집한 상기 영상 데이터 및 음성 데이터를 토대로 가상 데스크탑 이미지 형태로 비디오 컨퍼런스 화면을 생성하여 상기 적어도 둘 이상의 사용자 단말에게 전송할 수 있다.
본 발명의 실시예에 따르면, 웹을 이용하여 플랫폼 종속 문제를 해결할 뿐만 아니라 네트워크 범위의 제한이 없고, 가상머신을 이용하여 다양한 기능을 가진 PC 어플리케이션을 이용 가능하므로, 가상머신을 이용한 협업을 진행할 때 영상 및 음성을 통한 화상회의가 가능하다.
또한, 하이브리드 스토리지를 통하여 협업 참여자들이 여러 위치에 보유하고 있는 자료를 하나의 웹 인터페이스에서 관리할 수 있도록 지원한다.
또한, 기업 또는 개인이 보안의 이유로 중요 정보를 클라우드 스토리지에 저장하지 않는 문제를 하이브리드 스토리지의 일부인 씬-에이전트(Thin-Agent)를 통하여 해결한다.
또한, 가상머신과 매핑되는 별도의 공유 스토리지를 두어 협업을 진행 중인 참여자 간 파일을 공유하고 이를 가상머신에서 직접 사용 가능하도록 하여 협업의 보안성과 편리성을 증대시킬 수 있다. 게다가 별도의 공유 스토리지는 협업 이후에도 일정 기간 동안 웹 인터페이스를 통해 접근 가능하여 백업 및 접근의 편리함이 있다.
도 1은 본 발명의 한 실시예에 따른 협업 가상 데스크톱 서비스 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 리소스 풀을 나타낸다.
도 3은 도 1의 서비스 브로커의 구성을 나타낸다.
도 4는 본 발명의 실시예에 따른 협업 가상 데스크톱 서비스 방법을 나타낸 흐름도이다.
도 5는 본 발명의 실시예에 따른 클라우드 스토리지 등록 방법을 나타낸 흐름도이다.
도 6은 본 발명의 실시예에 따른 클라우드 스토리지 공유 방법을 나타낸 흐름도이다.
도 7은 본 발명의 실시예에 따른 원격지 디바이스 스토리지 등록 방법을 나타낸 흐름도이다.
도 8은 본 발명의 실시예에 따른 원격지 디바이스 스토리지 공유 방법을 나타낸 흐름도이다.
도 9는 본 발명의 실시예에 따른 로컬 스토리지 공유 방법을 나타낸 흐름도이다.
도 10은 본 발명의 실시예에 따른 공유 파일 다운로드 방법을 나타낸 흐름도이다.
도 11은 본 발명의 실시예에 따른 비디오 컨퍼런스 제공 방법을 나타낸 흐름도이다.
도 12는 본 발명의 한 실시예에 따른 웹 인터페이스화면을 나타낸다.
도 13은 본 발명의 다른 실시예에 따른 웹 인터페이스 화면을 나타낸다.
도 14는 본 발명의 다른 실시예에 따른 협업 가상 데스크톱 서비스 시스템의 하드웨어 구성도이다.
도 2는 본 발명의 실시예에 따른 리소스 풀을 나타낸다.
도 3은 도 1의 서비스 브로커의 구성을 나타낸다.
도 4는 본 발명의 실시예에 따른 협업 가상 데스크톱 서비스 방법을 나타낸 흐름도이다.
도 5는 본 발명의 실시예에 따른 클라우드 스토리지 등록 방법을 나타낸 흐름도이다.
도 6은 본 발명의 실시예에 따른 클라우드 스토리지 공유 방법을 나타낸 흐름도이다.
도 7은 본 발명의 실시예에 따른 원격지 디바이스 스토리지 등록 방법을 나타낸 흐름도이다.
도 8은 본 발명의 실시예에 따른 원격지 디바이스 스토리지 공유 방법을 나타낸 흐름도이다.
도 9는 본 발명의 실시예에 따른 로컬 스토리지 공유 방법을 나타낸 흐름도이다.
도 10은 본 발명의 실시예에 따른 공유 파일 다운로드 방법을 나타낸 흐름도이다.
도 11은 본 발명의 실시예에 따른 비디오 컨퍼런스 제공 방법을 나타낸 흐름도이다.
도 12는 본 발명의 한 실시예에 따른 웹 인터페이스화면을 나타낸다.
도 13은 본 발명의 다른 실시예에 따른 웹 인터페이스 화면을 나타낸다.
도 14는 본 발명의 다른 실시예에 따른 협업 가상 데스크톱 서비스 시스템의 하드웨어 구성도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이제, 도면을 참조하여 본 발명의 실시예에 따른 협업 가상 데스크톱 서비스 시스템 및 그 방법에 대하여 설명한다.
본 명세서에서, 가상 데스크탑 인터페이스(VDI)를 이용한 협업 서비스를 '협업 가상 데스크탑 서비스'라고 통칭한다.
도 1은 본 발명의 한 실시예에 따른 협업 가상 데스크톱 서비스 시스템의 구성도이고, 도 2는 본 발명의 실시예에 따른 리소스 풀을 나타내며, 도 3은 도 1의 서비스 서버의 구성을 나타낸다.
도 1을 참조하면, 협업 가상 데스크톱 서비스 시스템은 각각의 로컬 스토리지(1, …, n)(101, 103)를 구비하는 적어도 둘 이상의 사용자 단말(105, 107), 복수의 클라우드 스토리지(1, …, n)(201, 203), 원격지 디바이스(300), 서비스 서버(400) 및 리소스 서버(500)를 포함한다.
사용자 단말(105, 107)은 협업 서비스 참가자 단말로서, PC, 노트북, 태블릿 PC 등을 포함할 수 있다. 사용자 단말(105, 107)은 네트워크를 통하여 서비스 서버(400) 및 리소스 서버(500)에 접속한다. 여기서, 네트워크는 도시하지는 않았지만, 웹 접속 경로를 제공하는 유무선망이며, 사용자 단말(105, 107)의 종류에 따른 다양한 통신망이 될 수 있다.
복수의 클라우드 스토리지(1, …, n)(201, 203)는 가상 자원을 이용하여 생성되는 스토리지로서, 예를들면, Dropbox, Google Drive와 같은 스토리지를 지칭한다. 이때, 복수의 클라우드 스토리지(1, …, n)(201, 203)는 데이터가 저장되는 스토리지와, 인증 토큰을 이용하여 상기 스토리지로 접근을 제어하는 스토리지 제어 모듈을 포함할 수 있다.
원격지 디바이스(300)는 씬 에이전트(Thin agent) 클라이언트(301) 및 원격지 디바이스 스토리지(303)를 포함한다. 원격지 디바이스(300)는 원격지에 존재하는 사용자의 개인 PC 또는 모바일 기기를 지칭한다. 이때, 원격지 디바이스 스토리지(303)를 한 개만 도시하였지만, 복수개 존재할 수 있다.
서비스 서버(400)는 사용자 단말(105, 107)에게 웹 기반의 협업 가상 데스크톱 서비스를 제공하는 서비스 파트로서, 서비스 브로커(401), 씬 에이전트 서버(403) 및 비디오 컨퍼런스 서버(405)를 포함한다.
리소스 서버(500)는 웹 기반의 협업 가상 데스크톱 서비스를 리소스를 담당하는 파트로서, 리소스 매니저(501), 협업 가상 머신(503) 및 공유 스토리지(505)를 포함한다.
도 2를 참조하면, 리소스 매니저(501)는 가상 머신과 스토리지를 서로 독립된 물리적 공간에 생성하고, 풀(Pool) 단위로 관리한다.
리소스 매니저(501)는 복수의 가상 머신으로 구성된 가상 머신 풀(507)과, 가상 자원을 이용하여 생성되고, 가상 머신과 각각 매칭되는 복수의 스토리지로 구성된 스토리지 풀(509)을 별개로 생성한다.
협업 가상 머신(503)은 가상 머신 풀(507)에서 할당되고, 공유 스토리지(505)는 스토리지 풀(509)에서 할당된다.
다시, 도 1을 참조하면, 사용자 단말(105, 107)은 각각의 웹 브라우저(109, 111)를 구동하여 서비스 서버(400) 및 리소스 서버(500)에 접속한다.
각각의 웹 브라우저(109, 111)는 서비스 브로커(401)와 기 정의된 프로토콜을 이용한 웹 통신을 수행한다. 한 실시예에 따르면, https 프로토콜을 이용하여 연결될 수 있다. 다른 실시예에 따르면, 웹 소켓(Web Socket) 프로토콜을 이용하여 연결될 수 있다. 여기서, 웹 소켓 프로토콜은 웹 서버와 웹 브라우저 사이의 통신을 위한 양방향 통신 규격으로, 인터넷 표준화 단체인 W3C(World Wide Web Consortium)와 IETF(The Internet Engineering Task Force)에서 규정되었다.
각각의 웹 브라우저(109, 111)는 Web RTC(Web Real-Time Communication)를 이용하여 비디오 컨퍼런스를 위한 통신을 수행한다. 이때, 각각의 웹 브라우저(109, 111)는 비디오 컨퍼런스 서버(405)와 웹 소켓 프로토콜을 통해 서로 연결된 후, Web RTC를 이용하여 비디오 컨퍼런스 데이터를 송수신한다.
각각의 웹 브라우저(109, 111)는 협업 가상 머신(503)과 웹 소켓 프로토콜을 이용하여 통신을 수행한다. 즉, 웹 소켓 프로토콜을 통하여 각각의 웹 브라우저(109, 111)는 협업 가상 머신(503)으로부터 가상 데스크탑 인터페이스(VDI) 화면을 수신한다.
각각의 웹 브라우저(109, 111)는 서비스 브로커(401)를 통해 협업 가상 머신(503) 및 비디오 컨퍼런스 서버(405)와 연결이 되면, 이후부터는 협업 가상 머신(503) 및 비디오 컨퍼런스 서버(405) 각각과 웹 소켓 통신을 통해 직접 연결된다.
서비스 브로커(401)는 웹 인터페이스를 통해 협업 프로세스의 생성, 삭제 및 업데이트를 포함하는 협업 서비스 중개를 제공한다. 사용자 단말(105, 107)은 웹 브라우저를 구동하여 웹 인터페이스에 접속하여, 협업을 요청하고, 협업에 참가한다. 이때, 협업 프로세스는 사용자 단말(105, 107) 간에 파일 공유, 채팅, 비디오 컨퍼런스, 메일 전송, 일정 관리 등을 포함할 수 있다.
서비스 브로커(401)는 리소스 매니저(501)를 통해 협업 가상 머신(503) 및 공유 스토리지(505)의 할당을 요청한다.
서비스 브로커(401)는 하나의 인스턴스(instance)를 사용하여 협업 프로세스를 실행하는 멀티 테넌시(Multi-Tenancy)를 제공한다. 멀티 테넌시는 하나의 인스턴스로 구현된 웹 기반 협업 서비스가 테넌트 별로 다른 모습을 보이고 동작할 수 있도록 도와준다. 여기서, 테넌트는 각각의 사용자 단말(105, 107)을 의미한다.그리고 인스턴스는 협업 가상 머신(503), 공유 스토리지(505) 및 비디오 컨퍼런스 서비스 등을 포함한다.
서비스 브로커(401)는 하이브리드 스토리지(Hybrid Storage)와 공유 스토리지(505) 간의 파일 공유를 중개할 수 있다. 여기서, 하이브리드 스토리지는 데이터를 저장하는 수단으로서, 로컬 스토리지(1, …, n)(101, 103), 클라우드 스토리지(1, …, n)(201, 203) 및 적어도 하나의 원격지 디바이스 스토리지(303)를 포함한다. 클라우드 스토리지(1, …, n)(201, 203) 및 적어도 하나의 원격지 디바이스 스토리지(303)는, 사용자 단말(105, 107)이 협업 가상 데스크탑 서비스를 위해 사전에 등록하는 절차가 선행되어야 하지만, 로컬 스토리지(1, …, n)(101, 103)는 사전 등록 절차는 필요하지 않다.
공유 스토리지(505)는 스토리지 풀(509)에서 협업 가상 데스크톱 서비스를 위해 할당된 스토리지로서, 협업 데이터가 저장된다.
서비스 브로커(401)는 사용자 단말(105, 107)이 클라우드 스토리지(1, …, n)(201, 203)의 등록을 요청하면, 사용자 인증을 수행한다. 서비스 브로커(401)는 사용자 인증에 성공하면, 사용자 단말(105, 107)에게 인증 토큰을 전송한다. 이러한 인증 토큰은 서비스 브로커(401)가 클라우드 스토리지(1, …, n)(201, 203)로부터 파일 리스트를 획득하기 위해 사용된다.
서비스 브로커(401)는 씬 에이전트 클라이언트(301)로부터 원격 디바이스 스토리지(303)의 등록이 요청되면, 아이디 및 패스워드를 이용한 로그인 인증을 수행한다. 로그인 인증에 성공하면, 원격 디바이스 스토리지(303)의 디렉토리를 씬 에이전트 서버(403)에 등록한다.
씬 에이전트 서버(403)는 씬 에이전트 클라이언트(301)와 연결된 상태에서 서비스 브로커(401)의 요청에 따라 원격 디바이스 스토리지(303) 파일 리스트를 획득하여 서비스 브로커(401)에게 제공한다.
사용자 단말(105, 107)은 서비스 브로커(401)에 중개에 의하여 하이브리드 스토리지에 저장된 파일을 공유 스토리지(505)에 업로드하고, 공유 스토리지(505)에 저장된 파일을 하이브리드 스토리지에 다운로드할 수 있다.
서비스 브로커(401)는 웹 인터페이스에 접속을 요청한 사용자 단말(105, 107)이 접속 권한이 있는 정당한 사용자인지 확인하는 웹 인터페이스 접속 인증을 수행한다. 웹 인터페이스 접속 인증에 성공하면, 사용자 단말(105, 107)을 웹 인터페이스에 접속시킨다. 한 실시예에 따르면, 웹 인터페이스 접속 인증은 사용자 아이디 및 패스워드를 이용한 로그인 인증을 포함할 수 있다.
서비스 브로커(401)는 웹 인터페이스에 접속한 사용자 단말(105, 107)이 협업 참가를 요청하면, 협업 참가 권한이 있는지 확인하는 협업 참가 인증을 수행한다. 협업 참가 인증에 성공하면, 사용자 단말(105, 107)을 협업 가상 머신에 연결시킨다. 여기서, 협업 주최자 또는 협업 개시자는 협업에 참가할 사용자를 지정한다. 지정 정보는 단말 식별자, 로그인 아이디 등이 될 수 있다. 따라서, 협업 참가 인증에서는 협업 참가를 요청하는 사용자 단말(105, 107)의 단말 식별자 또는 로그인 아이디가 등록된 정보인지를 판단할 수 있다.
서비스 브로커(401)는 사용자 단말(105, 107)이 공유를 요청한 로컬 스토리지(1, …, n)(101, 103), 클라우드 스토리지(1, …, n)(201, 203) 및 적어도 하나의 원격지 디바이스 스토리지(303) 중에서 적어도 하나로부터 획득한 파일 리스트를 웹 인터페이스에 게시한다. 서비스 브로커(401)는 게시된 파일 리스트에서 사용자 단말(105, 107)이 선택한 파일을 공유 스토리지(505)로 업로드 시킨다.
서비스 브로커(401)는 사용자 단말(105, 107)의 요청에 따라 공유 스토리지(505)에 저장된 파일 리스트를 웹 인터페이스에 게시한다. 서비스 브로커(401)는 게시된 파일 리스트에서 사용자 단말(105, 107)이 선택한 파일을 사용자 단말(105, 107)이 선택한 로컬 스토리지(1, …, n)(101, 103), 클라우드 스토리지(1, …, n)(201, 203) 및 적어도 하나의 원격지 디바이스 스토리지(303) 중에서 적어도 하나에 다운로드 시킨다.
리소스 매니저(501)는 사용자 단말(105, 107)의 요청에 따라 사용자 단말(105, 107)에게 가상 머신을 할당하고, 가상 머신의 생성, 관리, 소멸 및 마이그레이션 등을 관리하는 기능을 제공한다. 리소스 매니저(501)는 복수의 가상 머신과 복수의 클라우드 스토리지를 생성, 할당, 연결, 삭제 등의 관리를 한다.
리소스 매니저(501)는 가상 머신 별로 하나의 가상 머신과 연계되는 하나의 스토리지를 매칭하며, 매칭 정보를 생성 및 관리한다. 이러한 매칭 정보는 가상 머신이 스토리지에 대한 접근 권한이 있는지 인증하는데 사용된다.
사용자 단말(105, 107)이 하이브리드 스토리지에 저장된 파일을 공유 스토리지(505)에 공유하거나 또는 공유 스토리지(505)에 저장된 파일을 하이브리드 스토리지로 공유하고자 할 경우, 협업 가상 머신(503)은 공유 스토리지(505)에 접근한다. 리소스 매니저(501)는 협업 가상 머신(503)으로부터 공유 스토리지 접근 요청이 발생하면, 협업 가상 머신(503)이 공유 스토리지(505)에 대한 접근 권한이 있는지 판단하는 인증을 수행한다. 리소스 매니저(501)는 가상 머신과 스토리지 간의 매칭 정보에 기초하여 공유 스토리지(505)로 접근을 요청한 협업 가상 머신(503)이 해당 공유 스토리지(505)와 매칭되는 가상 머신인지를 판단한다.
서비스 브로커(401)는 웹 인터페이스를 통해 비디오 컨퍼런스 요청이 수신되면, 사용자 단말(105, 107)을 비디오 컨퍼런스 서버(405)와 연결시킨다.
비디오 컨퍼런스 서버(405)는 사용자 단말(105, 107)과 연결하기 위한 정보, 예를들면, 세션 정보를 통해 각각의 웹 브라우저(109, 111)와 웹 소켓 통신을 위한 세션을 설정한다.
협업 가상 머신(503) 및 비디오 컨퍼런스는 독립적으로 구동되지만, 서비스 브로커(401)에 의해 하나의 웹 인터페이스를 통해 제공된다. 여기서, 비디오 컨퍼런스는 캠, 오디오, 채팅 등을 활용한 서비스를 일컫는다.
한편, 서비스 서버(400)는 도 2에 보인 바와 같이, 채팅 서버(407), 메일 서버(409), 일정 관리 서버(411), CRM(Customer Relationship Management) 서버(413)를 더 포함할 수 있다.
채팅 서버(407)는 서비스 브로커(401)와 연동하여 사용자 단말(105, 107)에게 채팅 환경을 제공한다. 메일 서버(409)는 서비스 브로커(401)와 연동하여 사용자 단말(105, 107) 간에 메일 전송 서비스를 제공한다. 일정 관리 서버(411)는 서비스 브로커(401)와 연동하여 사용자 단말(105, 107)에게 협업 일정 관리를 제공한다. CRM 서버(413)는 CRM 대시보드를 통해 관리자에게 CRM 환경을 제공한다.
도 4는 본 발명의 실시예에 따른 협업 가상 데스크톱 서비스 방법을 나타낸 흐름도이다.
도 4를 참조하면, 서비스 브로커(401)는 사용자 단말(105, 107)로부터 웹 인터페이스 접속 요청이 수신(S101)되면, 사용자 인증을 수행한다(S103).
서비스 브로커(401)는 사용자 인증에 성공하는지 판단(S105)하여, 실패하면, 접속을 불허(S107)한다. 그리고 사용자 단말(105, 107)에게 접속 불허 사유가 포함된 에러 메시지를 출력한다(S109).
반면, 사용자 인증에 성공하면, 서비스 브로커(401)는 접속을 허용한다(S111).
서비스 브로커(401)는 웹 인터페이스에 접속한 사용자 단말(105, 107)로부터 협업 참가 요청이 수신(S113)되면, 사용자 단말(105, 107)이 협업 참가 권한이 있는지 확인하는 인증을 수행한다(S115).
서비스 브로커(401)는 S115 단계에서 인증에 성공하는지 판단(S117)하여, 실패하면, 협업 참가를 거절(S119)한다. 그리고 사용자 단말(105, 107)에게 협업 참가 실패 사류가 포함된 에러 메시지를 출력한다(S121).
반면, S115 단계의 인증에 성공하면, 서비스 브로커(401)는 리소스 매니저(501)에게 협업 가상 머신 및 공유 스토리지 할당을 요청(S123)하여 응답을 수신한다(S125). 여기서, S125 단계에서는 협업 가상 머신(503)에 사용자 단말(105, 107)이 연결하기 위한 세션 정보를 수신할 수 있다.
서비스 브로커(401)는 할당된 협업 가상 머신(503)과 사용자 단말(105, 107)을 연결시킨다(S127).
협업 가상 머신(503)은 사용자 단말(105, 107)로부터 협업 요청이 수신(S129)되면, 리소스 매니저(501)에게 공유 스토리지(505)에 대한 접근을 요청(S131)한다.
리소스 매니저(501)는 협업 가상 머신(503)이 공유 스토리지(505)에 대한 접근 권한이 있는지 판단(S133, S135)하는 인증을 수행한다.
이때, 인증에 실패하면, 리소스 매니저(501)는 협업 가상 머신(503)에게 접근을 불허한다(S137). 협업 가상 머신(503)은 협업 실패에 따른 에러 메시지를 협업을 요청(S129)한 사용자 단말(105, 107)에게 출력한다(S139).
반면, 인증에 성공하면, 리소스 매니저(501)는 협업 가상 머신(503)에게 접근을 허용한다(S141). 협업 가상 머신(503)은 공유 스토리지(505)에 접근하여 S129 단계에서 수신된 협업 요청에 따른 협업 프로세스를 실행한다(S143).
이와 같이, 협업 가상 머신(503)과 공유 스토리지(505)를 분리하여 별도로 관리하고, 웹 인터페이스 접속을 위한 1차 인증, 협업 가상 머신 접속을 위한 2차 인증 및 공유 스토리지 접근을 위한 3차 인증을 단계 별로 수행하는 다계층 인증을 수행함으로써, 데이터 안정성이 향상된다.
도 5는 본 발명의 실시예에 따른 클라우드 스토리지 등록 방법을 나타낸 흐름도이다.
사용자는 협업 서비스를 위한 하이브리드 스토리지에 자신의 클라우드 스토리지(1, …, n)(201, 203)를 등록하는데, 등록 과정은 다음과 같다.
도 5를 참조하면, 사용자 단말(105, 107)이 서비스 브로커(401)에게 클라우드 스토리지 등록을 요청한다(S201). 이때, 클라우드 스토리지 등록 요청은 웹 인터페이스 상에서 예를들면, 스토리지 등록 메뉴를 선택할 때 발생할 수 있다. 이런 경우, 사용자 단말(105, 107)은 웹 인터페이스 접속 인증을 통과한 것을 전제로 할 수 있다.
서비스 브로커(401)는 사용자 단말(105, 107)이 클라우드 스토리지 등록 권한이 있는 사용자인지 판단하는 등록 인증을 수행한다(S203). 한 실시예에 따르면, 등록 인증은 개방형 인증(Open Authentication, OAuth) 방식을 사용할 수 있다. 이때, 서비스 브로커(401)는 사용자 아이디 및 패스워드에 기초한 등록 인증을 수행할 수 있다.
서비스 브로커(401)는 등록 인증에 성공하는지 판단(S205)하여, 실패하면, 에러 메시지를 사용자 단말(105, 107)에게 전송한다(S207). 반면, 등록 인증에 성공하면, 인증 토큰을 사용자 단말(105M, 107)에게 전송한다(S209). 사용자 단말(105, 107)은 인증 토큰을 저장한다(S211). 이러한 인증 토큰은 사용자 단말(105, 107)이 클라우드 스토리지(1, …, n)(201, 203)에 저장된 파일을 공유하고자 할 때, 사용된다.
도 6은 본 발명의 실시예에 따른 클라우드 스토리지 공유 방법을 나타낸 흐름도이다.
도 6을 참조하면, 서비스 브로커(401)는 웹 인터페이스를 통해 사용자 단말(105, 107)로부터 클라우드 스토리지(1, …, n)(201, 203)의 파일 공유 요청을 수신한다(S301). 예를들면, 서비스 브로커(401)는 웹 인터페이스 상에서 사용자가 클라우드 스토리지 파일 공유 메뉴를 선택 또는 입력한 경우, 클라우드 스토리지의 파일 공유 요청을 수신한다.
서비스 브로커(401)는 파일 공유 요청에 포함된 인증 토큰의 만료 여부를 검사(S303)하여, 만료된 경우, 에러 메시지를 사용자 단말(105, 107)에게 출력한다(S305). 이때, 에러 메시지는 에러 사유로 인증 토큰 만료가 기록된다.
인증 토큰이 만료되지 않은 경우, 서비스 브로커(401)는 사용자 단말(105, 107)이 공유를 요청한 클라우드 스토리지(1, …, n)(201, 203)에 접근하여 파일 리스트를 수신한다(S307).
서비스 브로커(401)는 해당 클라우드 스토리지(1, …, n)(201, 203)의 파일 리스트를 수신하여 웹 인터페이스 상에 게시한다(S309). 사용자 단말(105, 107)은 게시된 파일 리스트 중에서 공유를 원하는 적어도 하나의 파일을 선택하여 서비스 브로커(401)에게 공유를 요청한다(S311).
서비스 브로커(401)는 공유 요청된 파일을 클라우드 스토리지(1, …, n)(201, 203)로부터 획득(S313)하여 리소스 매니저(501)에게 전달하여 공유를 요청한다(S315).
리소스 매니저(501)는 공유 요청된 파일을 공유 스토리지(505)에 전달(S317)하여 저장한다(S319).
이때, 협업 가상 머신(503)은 공유 스토리지 접근 권한이 허용됨을 전제로 한다. 접근 권한 인증은 접근시마다 매번 수행할 수도 있고, 최초 한번만 수행할 수도 있다.
도 7은 본 발명의 실시예에 따른 원격지 디바이스 스토리지 등록 방법을 나타낸 흐름도이다.
사용자는 협업 서비스를 위한 하이브리드 스토리지에 적어도 하나의 자신의 원격 디바이스 스토리지(303)를 등록하는데, 등록 과정은 다음과 같다.
도 7을 참조하면, 사용자가 협업 서비스를 위해 원격 디바이스 스토리지를 등록하고자 하면, 원격 디바이스(300)에서 씬 에이전트 클라이언트(301)를 실행한다(S401).
서비스 브로커(401)는 씬 에이전트 클라이언트(301)가 등록을 요청하면(S403), 씬 에이전트 클라이언트(301)가 등록 권한이 있는지 판단하는 로그인 인증을 수행한다(S405). 이때, 로그인 인증은 사용자 아이디 및 패스워드를 이용할 수 있다.
서비스 브로커(401)는 로그인 인증 성공 유무를 판단(S407)하여 로그인 인증에 실패하면, 씬 에이전트 클라이언트(301)에게 에러 메시지를 출력한다(S409).
반면, 로그인 인증에 성공하면, 씬 에이전트 클라이언트(301)로부터 사용자가 선택 또는 입력한 원격 디바이스 스토리지의 디렉토리를 수신하여 씬 에이전트 서버(403)에 등록한다(S411).
도 8은 본 발명의 실시예에 따른 원격지 디바이스 스토리지 공유 방법을 나타낸 흐름도이다.
도 8을 참조하면, 서비스 브로커(401)가 사용자 단말(105, 107)로부터 원격 디바이스 스토리지의 파일 공유 요청을 수신한다(S501). 예를들면, 서비스 브로커(401)는 웹 인터페이스 상에서 사용자가 원격 디바이스 스토리지 파일 공유 메뉴를 선택 또는 입력한 경우, 적어도 하나의 원격 디바이스 스토리지(303)의 파일 공유 요청을 수신한다.
서비스 브로커(401)는 원격지 디바이스(300)에서 실행된 씬 에이전트 클라이언트(301)가 씬 에이전트 서버(403)와 연결된 상태인지 판단한다(S503).
연결되지 않은 경우, 서비스 브로커(401)는 에러 메시지를 사용자 단말(105, 107)에게 출력한다(S505). 이때, 에러 메시지는 에러 사유로 씬 에이전트 미연결이 기록된다.
연결된 경우, 서비스 브로커(401)는 씬 에이전트 서버(403)에게 파일 리스트를 요청한다(S507). 씬 에이전트 서버(403)는 씬 에이전트 클라이언트(301)에게 요청하여 파일 리스트를 수신(S509)하여 서비스 브로커(401)에게 전달한다(S511).
서비스 브로커(401)는 씬 에이전트 서버(403)로부터 전달받은 파일 리스트를 웹 인터페이스 상에 게시한다(S513).
사용자 단말(105, 107)은 게시된 파일 리스트 중에서 공유를 원하는 적어도 하나의 파일을 선택하여 서비스 브로커(401)로 공유를 요청한다(S515).
서비스 브로커(401)는 공유가 요청된 파일을 씬 에이전트 서버(403)에게 요청한다(517). 씬 에이전트 서버(403)는 씬 에이전트 클라이언트(301)에게 요청하여 공유 파일을 수신(S519)하여 서비스 브로커(401)에게 전달한다(S521).
서비스 브로커(401)는 S521 단계에서 전달받은 공유 파일을 리소스 매니저(501)에게 전달하여 공유를 요청한다(S523).
매니저(501)는 공유 요청된 파일을 공유 스토리지(505)에 전달(S525)하여 저장한다(S527).
이때, 협업 가상 머신(503)은 공유 스토리지 접근 권한이 허용됨을 전제로 한다. 접근 권한 인증은 접근시마다 매번 수행할 수도 있고, 최초 한번만 수행할 수도 있다.
도 9는 본 발명의 실시예에 따른 로컬 스토리지 공유 방법을 나타낸 흐름도이다.
도 9를 참조하면, 서비스 브로커(401)는 사용자 단말(105, 107)로부터 로컬 스토리지의 파일 공유 요청을 수신한다(S601). 예를들면, 서비스 브로커(401)는 웹 인터페이스 상에서 사용자가 로컬 스토리지 파일 공유 메뉴를 선택 또는 입력한 경우, 로컬 스토리지(1, …, n)(101, 103)의 파일 공유 요청을 수신한다.
서비스 브로커(401)는 사용자 단말(105, 107)에게 파일 공유를 위한 대화상자를 팝업한다(S603). 그리고 대화상자에서 선택된 공유 파일을 로컬 스토리지(1, …, n)(101, 103)로부터 획득(S605)한다. 그리고 획득한 공유 파일을 리소스 매니저(501)에게 전달하여 공유를 요청한다(S607).
리소스 매니저(501)는 공유 요청된 파일을 공유 스토리지(505)에 전달(S609)하여 저장한다(S611).
이때, 협업 가상 머신(503)은 공유 스토리지 접근 권한이 허용됨을 전제로 한다. 접근 권한 인증은 접근시마다 매번 수행할 수도 있고, 최초 한번만 수행할 수도 있다.
도 10은 본 발명의 실시예에 따른 공유 파일 다운로드 방법을 나타낸 흐름도이다.
도 10을 참조하면, 서비스 브로커(401)는 리소스 매니저(501)를 통해 제공받은 공유 스토리지(505)의 파일 리스트를 웹 인터페이스에 게시한다(S701).
사용자 단말(105, 107)은 게시된 파일 리스트 중에서 다운로드를 원하는 적어도 하나의 파일과, 파일을 다운로드할 스토리지를 선택(S703, S705)한다.
서비스 브로커(401)는 리소스 매니저(501)에게 S703 단계에서 선택된 파일을 요청(S707, S709)하여 수신한다(S711, S713).
서비스 브로커(401)는 수신한 파일을 S705 단계에서 선택된 스토리지에 저장한다(S715).
이때, 선택된 스토리지가 로컬 스토리지(1, …, n)(101, 103)이면, 서비스 브로커(401)는 사용자 단말(105, 107)로 S713 단계에서 수신한 파일을 바로 전송하여 저장한다.
서비스 브로커(401)는 선택된 스토리지가 클라우드 스토리지(1, …, n)(201, 203)이면, 사용자 단말(105, 107)에게 요청하여 수신한 인증 토큰을 이용하여 클라우드 스토리지(1, …, n)(201, 203)에 접근하여 파일을 저장한다.
서비스 브로커(401)는 선택된 스토리지가 원격지 디바이스 스토리지(303)이면, 씬 에이전트 서버(403)와 연동하여 파일을 저장한다.
도 11은 본 발명의 실시예에 따른 비디오 컨퍼런스 제공 방법을 나타낸 흐름도이다.
도 11을 참고하면, 사용자 단말1(105)은 웹 브라우저(109)를 구동(S801)하여 서비스 브로커(401)와 웹 소켓 통신 방식으로 연결된다(S803). 그리고 사용자 단말n(107)은 웹 브라우저(111)를 구동(S805)하여 서비스 브로커(401)와 웹 소켓 통신 방식으로 연결된다(S807).
서비스 브로커(401)는 사용자 단말1(105)로부터 비디오 컨퍼런스 요청이 수신(S809)되면, 비디오 컨퍼런스 서버(405)로 협업에 참가중인 참가자의 연결 정보, 즉, 사용자 단말(105, 107)들과 세션을 연결할 수 있는 세션 정보를 전송한다(S811).
비디오 컨퍼런스 서버(405)는 사용자 단말(105, 107)들의 웹 브라우저(109, 111)와 연결된다(S813, S815). 이후, 웹 브라우저(109, 111)는 서로 웹 RTC 통신 방식으로 연결(S817)되어 비디오 컨퍼런스 통신을 수행한다(S819). 즉, 웹 RTC 통신 방식으로 영상, 음성 및 텍스트를 상호 교환한다.
도 12는 본 발명의 한 실시예에 따른 웹 인터페이스 화면의 예시도이다.
도 12를 참조하면, 웹 인터페이스 화면(700)은 협업 가상 머신(503)으로부터 수신되는 가상 데스크탑 인터페이스(VDI)을 출력하는 화면 프레임(701)과, 별개로 생성되는 비디오 컨퍼런스 화면이 출력되는 비디오 컨퍼런스 프레임(703)을 포함한다. 한 예에 따르면, 화면 프레임(701)은 협업 가상 머신(503)으로부터 수신되는 윈도우(Window) 화면을 출력할 수 있다. 윈도우 화면에는 협업 참가자들과 텍스트 채팅할 수 있는 대화창이 팝업되어 있을 수 있다.
도 13은 본 발명의 다른 실시예에 따른 웹 인터페이스 화면의 예시도이다.
도 13을 참조하면, 협업 서비스 중에서 파일 공유를 위한 웹 인터페이스 화면(800)을 도시한 것이다.
웹 인터페이스 화면(800)은 운영 체제(OS)에서 제공하는 파일 탐색기의 구조를 기반으로 설계될 수 있다. 좌측에 배치된 스토리지 리스트(801)는 사용자가 보유하고, 사용자가 등록한 각 스토리지(101, 103, 201, 203, 303, 505)를 보여주는 (Storage List) 영역이다. 우측에 배치된 파일 리스트(803)는 스토리지 리스트(801)에서 사용자가 선택한 스토리지(101, 103, 201, 203, 303, 505)로부터 서비스 브로커(401)에 의해 인덱싱된 파일 정보를 출력하는 영역이다. 히스토리(History)(805)는 사용자가 이용한 이력을 보여주는 영역으로서, 업로드 또는 다운로드 기록을 출력한다.
도 14는 본 발명의 다른 실시예에 따른 협업 가상 데스크톱 서비스 시스템의 하드웨어 구성도이다.
도 14를 참조하면, 협업 가상 데스크톱 서비스 시스템(900)은 저장 장치(901), 메모리 장치(903), 통신 장치(905) 및 프로세서(907)를 포함하는 하드웨어로 구성되고, 지정된 장소에 하드웨어와 결합되어 실행되는 프로그램이 저장된다.
하드웨어는 본 발명의 방법을 실행할 수 있는 구성과 성능을 가진다. 도 1부터 도 13을 참고로 설명한 본 발명의 동작 방법은 프로그램 언어에 의해 소프트웨어 프로그램으로 작성된다. 프로그램은 저장 장치(901), 메모리 장치(903), 프로세서(907) 등의 하드웨어와 결합하여 본 발명을 실행하는 명령어(instructions)들을 포함한다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (16)
- 적어도 하나의 프로세서에 의해 동작하는 협업 가상 데스크톱 서비스 시스템으로서,
적어도 둘 이상의 사용자 단말이 접속한 웹 인터페이스를 통해 협업 프로세스의 생성, 삭제 및 업데이트를 포함하는 협업 서비스 중개를 제공하는 서비스 브로커,
상기 사용자 단말이 구비하고 있거나 또는 지정한 적어도 하나의 스토리지로 구성된 하이브리드 스토리지,
가상 자원을 사용하여 생성되고, 협업 데이터를 저장하는 공유 스토리지, 그리고
상기 서비스 브로커로부터 요청된 협업 프로세스를 상기 공유 스토리지와 연동하여 실행하고, 상기 적어도 둘 이상의 사용자 단말에게 상기 협업 프로세스를 제공하는 협업 가상 머신을 포함하고,
상기 협업 프로세스는,
상기 하이브리드 스토리지와 상기 공유 스토리지 간의 파일 공유를 포함하는, 협업 가상 데스크톱 서비스 시스템. - 제1항에서,
복수의 가상 머신으로 구성된 가상 머신 풀, 그리고
상기 가상 머신 풀과 독립적으로 생성되고, 상기 복수의 가상 머신과 각각 매칭되는 복수의 클라우드 스토리지로 구성된 클라우드 스토리지 풀,
상기 가상 머신 풀에서 상기 협업 가상 머신을 할당하고, 상기 클라우드 스토리지 풀에서 상기 공유 스토리지를 할당하며, 상기 공유 스토리지가 상기 협업 가상 머신에 매칭되는지 확인하는 제1 인증을 수행하여, 상기 제1 인증에 성공하면, 상기 협업 가상 머신이 상기 공유 스토리지로 접근하도록 허용하는 리소스 매니저
를 더 포함하는, 협업 가상 데스크톱 서비스 시스템. - 제2항에서,
상기 서비스 브로커는,
상기 웹 인터페이스에 접속을 요청한 사용자 단말이 접속 권한이 있는 정당한 사용자인지 확인하는 제2 인증을 수행하여, 상기 제2 인증에 성공하면, 상기 사용자 단말을 상기 웹 인터페이스에 접속시키고,
상기 제2 인증에 성공한 사용자 단말이 협업 참가를 요청하면, 협업 참가 권한이 있는지 확인하는 제3 인증을 수행하여, 상기 제3 인증에 성공하면, 상기 사용자 단말을 상기 협업 가상 머신에 연결시키는, 협업 가상 데스크톱 서비스 시스템. - 제1항에서,
상기 하이브리드 스토리지는,
상기 사용자 단말에 포함된 로컬 스토리지, 가상 자원을 이용하여 생성된 클라우드 스토리지 및 원격 디바이스에 포함된 원격 디바이스 스토리지를 포함하고,
상기 서비스 브로커는,
사용자 단말이 공유를 요청한 상기 로컬 스토리지, 상기 클라우드 스토리지 및 상기 원격 디바이스 스토리지 중 하나의 스토리지로부터 획득한 파일 리스트를 상기 웹 인터페이스에 게시하고, 상기 파일 리스트에서 상기 사용자 단말이 선택한 파일을 상기 협업 가상 머신을 통하여 상기 공유 스토리지로 업로드 시키고,
상기 공유 스토리지에 저장된 파일 리스트를 상기 웹 인터페이스에 게시하고, 상기 사용자 단말이 요청한 파일을 상기 상기 로컬 스토리지, 상기 클라우드 스토리지 및 상기 원격 디바이스 스토리지 중 하나의 스토리지로 다운로드 시키는, 협업 가상 데스크톱 서비스 시스템. - 제4항에서,
상기 서비스 브로커는,
사용자 단말이 상기 클라우드 스토리지의 등록을 요청하면, 사용자 인증을 수행하고, 상기 사용자 인증에 성공하면, 상기 등록을 요청한 사용자 단말에게 인증 토큰을 전송하고,
상기 인증 토큰은,
상기 서비스 브로커가 상기 클라우드 스토리지로부터 상기 파일 리스트를 획득하기 위해 사용되는, 협업 가상 데스크톱 서비스 시스템. - 제4항에서,
상기 원격 디바이스에서 실행된 씬 에이전트(Thin agent) 클라이언트와 연결되는 씬 에이전트 서버를 더 포함하고,
상기 서비스 브로커는,
상기 씬 에이전트 클라이언트로부터 상기 원격 디바이스 스토리지의 등록이 요청되면, 로그인 인증을 수행하고, 상기 로그인 인증에 성공하면, 상기 원격 디바이스 스토리지의 디렉토리를 상기 씬 에이전트 서버에 등록하고,
사용자 단말이 상기 원격 디바이스 스토리지의 공유를 요청하는 경우, 상기 씬 에이전트 서버를 통해 상기 씬 에이전트 클라이언트로부터 상기 파일 리스트를 획득하는, 협업 가상 데스크톱 서비스 시스템. - 제1항에서,
상기 서비스 브로커로부터 수신한 연결 정보를 토대로 상기 적어도 둘 이상의 사용자 단말에서 각각 실행된 웹 브라우저와 연결되는 비디오 컨퍼런스 서버를 더 포함하고,
상기 각각 실행된 웹 브라우저는,
WebRTC (Web Real-Time Communication)를 통해 연결되어 비디오 컨퍼런스 데이터를 송수신하는, 협업 가상 데스크톱 서비스 시스템. - 제1항에서,
상기 서비스 브로커 및 상기 협업 가상 머신은,
상기 적어도 둘 이상의 사용자 단말에서 각각 실행된 웹 브라우저와 웹 통신 프로토콜을 이용하여 각각 연결되는, 협업 가상 데스크톱 서비스 시스템. - 제1항에서,
상기 서비스 브로커는,
상기 적어도 둘 이상의 사용자 단말이 공유하는 상기 협업 프로세스를 하나의 인스턴스를 사용하여 실행하는, 협업 가상 데스크톱 서비스 시스템. - 적어도 하나의 프로세서에 의해 동작하는 서비스 브로커가 가상 데스크톱 환경에서 협업 서비스를 제공하는 방법으로서,
웹 인터페이스에 접속한 적어도 둘 이상의 사용자 단말의 협업 참가 요청에 따라 상기 적어도 둘 이상의 사용자 단말을 협업 서비스를 제공하는 협업 가상 머신에 연결시키는 단계,
상기 웹 인터페이스를 통해 사용자 단말로부터 협업 요청을 수신하는 단계, 그리고
상기 협업 가상 머신과 연동하여 상기 협업 요청에 따른 협업 프로세스를 중개하는 단계를 포함하고,
상기 협업 요청은,
상기 사용자 단말에 포함된 로컬 스토리지, 가상 자원을 이용하여 생성된 클라우드 스토리지 및 원격 디바이스에 포함된 원격 디바이스 스토리지로 구성된 구성된 하이브리드 스토리지와, 상기 가상 자원을 사용하여 생성되고, 협업 데이터를 저장하는 공유 스토리지 간의 파일 공유 요청을 포함하는, 협업 가상 데스크톱 서비스 방법. - 제10항에서,
상기 협업 요청은, 상기 원격 디바이스 스토리지의 파일 공유 요청을 포함하고,
상기 중개하는 단계는,
상기 원격 디바이스에서 실행된 씬 에이전트(Thin agent) 클라이언트와 연결된 씬 에이전트 서버를 통하여 상기 원격 디바이스 스토리지의 파일 리스트를 획득하는 단계,
상기 획득한 파일 리스트를 상기 웹 인터페이스에 게시하는 단계, 그리고
상기 파일 리스트에서 상기 사용자 단말이 선택한 파일을 상기 협업 가상 머신을 통하여 상기 공유 스토리지로 업로드 시키는 단계를 포함하고,
상기 씬 에이전트 서버는,
상기 씬 에이전트 클라이언트가 로그인 인증에 성공한 경우, 상기 원격 디바이스 스토리지의 디렉토리를 저장하는, 협업 가상 데스크톱 서비스 방법. - 제10항에서,
상기 연결시키는 단계는,
상기 적어도 둘 이상의 사용자 단말이 상기 웹 인터페이스에 대한 접속 권한이 있는 정당한 사용자인지 확인하는 1차 인증에 성공하면, 상기 웹 인터페이스에 연결시키는 단계, 그리고
상기 웹 인터페이스에 접속된 사용자 단말이 협업 참가 권한이 있는지 확인하는 2차 인증에 성공하면, 상기 협업 가상 머신에 연결시키는 단계를 포함하고,
상기 협업 프로세스는,
상기 협업 가상 머신이 상기 공유 스토리지에 대한 접근 권한이 있는지 확인하는 3차 인증에 성공하면, 상기 협업 가상 머신에 의해 실행되는, 협업 가상 데스크톱 서비스 방법. - 제10항에서,
상기 협업 요청은, 비디오 컨퍼런스 요청을 포함하고,
상기 중개하는 단계는,
상기 적어도 둘 이상의 사용자 단말을 비디오 컨퍼런스 서버에 연결시키는 단계, 그리고
상기 비디오 컨퍼런스 요청을 상기 협업 가상 머신에게 전달하는 단계를 포함하고,
상기 비디오 컨퍼런스는,
상기 비디오 컨퍼런스 서버에서 수집한 각각의 사용자 단말에서 촬영된 영상 데이터 및 음성 데이터가 상기 협업 가상 머신에 의해 가상 데스크탑 화면으로 구성되어 상기 적어도 둘 이상의 사용자 단말에게 제공되는, 협업 가상 데스크톱 서비스 방법. - 적어도 하나의 프로세서에 의해 동작하는 리소스 서버가 가상 데스크톱 환경에서 협업 서비스를 제공하는 방법으로서,
복수의 가상 머신으로 구성된 가상 머신 풀과, 상기 복수의 가상 머신과 각각 매칭되는 복수의 클라우드 스토리지로 구성된 클라우드 스토리지 풀을 독립적으로 생성하는 단계, 그리고
웹 인터페이스를 통해 적어도 둘 이상의 사용자 단말의 요청에 따라 상기 가상 머신 풀에서 협업 가상 머신을 할당하고, 상기 클라우드 스토리지 풀에서 상기 협업 프로세스에 따른 협업 데이터를 저장하는 공유 스토리지를 할당하는 단계를 포함하고,
상기 협업 가상 머신은,
상기 협업 프로세스의 실행에 따른 가상 데스크탑 화면을 상기 적어도 둘 이상의 사용자 단말에게 전송하고,
상기 협업 프로세스는,
상기 사용자 단말이 구비하고 있거나 또는 지정한 적어도 하나의 스토리지로 구성된 하이브리드 스토리지와, 상기 공유 스토리지 간의 파일 공유를 포함하는, 협업 가상 데스크톱 서비스 방법. - 제14항에서,
상기 할당하는 단계 이후,
상기 협업 프로세스에 따라 상기 협업 가상 머신으로부터 상기 공유 스토리지로 접근 요청이 발생하면, 상기 공유 스토리지가 상기 협업 가상 머신에 매칭되는지 확인하는 단계,
매칭되면, 상기 접근 요청을 허락하는 단계, 그리고
매칭되지 않으면, 상기 접근 요청을 거절하는 단계
를 더 포함하는, 협업 가상 데스크톱 서비스 방법. - 제14항에서,
상기 협업 프로세스는, 상기 적어도 둘 이상의 사용자 단말 간에 각각의 사용자 단말에서 촬영된 영상 데이터 및 음성 데이터를 공유하는 비디오 컨퍼런스 서비스를 포함하고,
상기 협업 가상 머신은,
비디오 컨퍼런스 서버가 수집한 상기 영상 데이터 및 음성 데이터를 토대로 가상 데스크탑 이미지 형태로 비디오 컨퍼런스 화면을 생성하여 상기 적어도 둘 이상의 사용자 단말에게 전송하는, 협업 가상 데스크톱 서비스 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20160035426 | 2016-03-24 | ||
KR1020160035426 | 2016-03-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170113192A true KR20170113192A (ko) | 2017-10-12 |
Family
ID=60140627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170036326A KR20170113192A (ko) | 2016-03-24 | 2017-03-22 | 협업 가상 데스크톱 서비스 시스템 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20170113192A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020251306A1 (en) * | 2019-06-14 | 2020-12-17 | Seegene, Inc. | Computer-implemented method for collaborative development of reagents for detection of target nucleic acids |
CN115134344A (zh) * | 2022-06-29 | 2022-09-30 | 济南浪潮数据技术有限公司 | 一种虚拟机控制台的控制方法及组件 |
WO2024123122A1 (ko) * | 2022-12-08 | 2024-06-13 | 주식회사 씨젠 | 체외 진단용 시약 제품의 연구개발 관리 장치 및 방법 |
-
2017
- 2017-03-22 KR KR1020170036326A patent/KR20170113192A/ko not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020251306A1 (en) * | 2019-06-14 | 2020-12-17 | Seegene, Inc. | Computer-implemented method for collaborative development of reagents for detection of target nucleic acids |
CN115134344A (zh) * | 2022-06-29 | 2022-09-30 | 济南浪潮数据技术有限公司 | 一种虚拟机控制台的控制方法及组件 |
WO2024123122A1 (ko) * | 2022-12-08 | 2024-06-13 | 주식회사 씨젠 | 체외 진단용 시약 제품의 연구개발 관리 장치 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230410051A1 (en) | Method, apparatus, and computer program product for authorizing and authenticating user communication within an enterprise group-based communication platform | |
US10218678B2 (en) | Method and apparatus for accessing third-party resources | |
US9853963B2 (en) | Authorization server, authentication cooperation system, and storage medium storing program | |
JP6924906B2 (ja) | グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法 | |
EP3047626B1 (en) | Multiple resource servers with single, flexible, pluggable oauth server and oauth-protected restful oauth consent management service, and mobile application single sign on oauth service | |
CN101517963B (zh) | 分布式、可缩放、可插入的会议体系结构 | |
US8578465B2 (en) | Token-based control of permitted sub-sessions for online collaborative computing sessions | |
CN112788031B (zh) | 基于Envoy架构的微服务接口认证系统、方法及装置 | |
US11025425B2 (en) | User security token invalidation | |
TW201621741A (zh) | 分享內容 | |
JP2016511479A (ja) | 企業のソーシャル・ビジネス・コンピューティングのためのマルチテナント機能のサポート方法、およびシステム。 | |
CN108287894A (zh) | 数据处理方法、装置、计算设备及存储介质 | |
WO2015042349A1 (en) | Multiple resource servers with single, flexible, pluggable oauth server and oauth-protected restful oauth consent management service, and mobile application single sign on oauth service | |
US20140317187A1 (en) | Information processing system, document managing server, document managing method, and storage medium | |
JP2013029994A (ja) | サーバー装置、情報処理方法及びプログラム | |
KR20170113192A (ko) | 협업 가상 데스크톱 서비스 시스템 및 그 방법 | |
US10049230B1 (en) | System and methods for exchanging identity information among independent enterprises which may include person enable correlation | |
TW201606564A (zh) | 安全的統一雲端儲存 | |
US9787679B2 (en) | Teleconference system and storage medium storing program for teleconference | |
CN110636057A (zh) | 一种应用访问方法、装置和计算机可读存储介质 | |
US9237140B1 (en) | Acceptance of policies for cross-company online sessions | |
US11252157B1 (en) | Permission management for electronic resources | |
EP3188438B1 (en) | Maintaining session across plural providing devices | |
CN109040331B (zh) | 电子名片的处理方法、装置、计算设备和存储介质 | |
EP4245024B1 (en) | Service to service communication and authentication via a central network mesh |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |