KR102480414B1 - 복수개의 클라우드 스토리지를 이용한 파일 저장 방법 및 이를 위한 장치 - Google Patents

복수개의 클라우드 스토리지를 이용한 파일 저장 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR102480414B1
KR102480414B1 KR1020160106991A KR20160106991A KR102480414B1 KR 102480414 B1 KR102480414 B1 KR 102480414B1 KR 1020160106991 A KR1020160106991 A KR 1020160106991A KR 20160106991 A KR20160106991 A KR 20160106991A KR 102480414 B1 KR102480414 B1 KR 102480414B1
Authority
KR
South Korea
Prior art keywords
file
cloud
pieces
stored
fragments
Prior art date
Application number
KR1020160106991A
Other languages
English (en)
Other versions
KR20160113071A (ko
Inventor
장경아
윤정현
이상정
이효건
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160106991A priority Critical patent/KR102480414B1/ko
Publication of KR20160113071A publication Critical patent/KR20160113071A/ko
Application granted granted Critical
Publication of KR102480414B1 publication Critical patent/KR102480414B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices

Abstract

디바이스에 저장된 파일을 분할하여 복수개의 파일 조각을 생성하고, 디바이스의 사용자가 등록된 복수개의 클라우드 스토리지 중, 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각을 저장할 클라우드 스토리지들을 결정하는 제어부, 및 결정된 클라우드 스토리지들에게, 복수개의 파일 조각 각각을 저장할 것을 요청하는 통신부를 포함하는, 일 실시예에 따른 디바이스가 개시된다.

Description

복수개의 클라우드 스토리지를 이용한 파일 저장 방법 및 이를 위한 장치{METHOD FOR STORING A FILE BY USING A PLURALITY OF CLOUD STORAGE AND APPARATUS THEREOF}
본 발명은, 파일을 복수개의 파일 조각으로 분할하고, 분할된 복수개의 파일 조각을 복수개의 클라우드 스토리지에 분산 저장하는 방법 및 이를 위한 장치에 관한 것이다.
네트워크 기술이 발전함에 따라, 데스크탑, 노트북 또는 휴대용 기기에 저장되던 데이터는 인터넷 상의 클라우드 스토리지에 저장되고, 사용자는 필요할 때마다, 자신의 계정을 이용하여 언제 어디서든 클라우드 스토리지로부터 데이터를 다운로드 할 수 있다.
그러나, 클라우드 스토리지는 다수의 사용자들이 접근할 수 있어 사용자의 데이터가 해킹될 위험이 있을 수 있다. 또한, 사용자의 계정 정보가 타인에게 노출되어, 클라우드 스토리지에 저장된 개인 데이터들이 타인에게 노출될 위험이 있을 수 있다. 미국 특허출원공개공보 US2014/0282938에 종래의 클라우드 스토리지 관리 방법이 개시되어 있다.
본 발명은, 파일을 복수개의 파일 조각으로 분할하여 복수개의 클라우드 스토리지에 분산 저장하고, 저장된 복수개의 파일 조각을 수신하여 파일을 다시 생성하기 위한 다양한 실시예가 제공된다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제 1 측면은, 디바이스에 저장된 파일을 분할하여 복수개의 파일 조각을 생성하고, 디바이스의 사용자가 등록된 복수개의 클라우드 스토리지 중, 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각을 저장할 클라우드 스토리지들을 결정하는 제어부, 및 결정된 클라우드 스토리지들에게, 복수개의 파일 조각 각각을 저장할 것을 요청하는 통신부를 포함하는, 디바이스를 제공할 수 있다.
또한, 디바이스에 저장된 파일은, 복수개의 클라우드 스토리지 중 하나로부터 수신된 파일일 수 있다.
또한, 제어부는, 복수개의 파일 조각 중 제 1 파일 조각에 대응하며, 제 1 파일 조각을 저장할 복수개의 클라우드 스토리지를 결정하고, 통신부는, 제 1 파일 조각을 저장할 복수개의 클라우드 스토리지에게 제 1 파일 조각을 저장할 것을 각각 요청할 수 있다.
또한, 통신부는, 복수개의 파일 조각의 식별 정보들 및 복수개의 파일 조각이 저장된 클라우드 스토리지들의 식별 정보들을 포함하는 파일 분할 정보를 복수개의 클라우드 스토리지 중 적어도 하나에게 저장할 것을 요청할 수 있다.
또한, 제어부는, 암호화 키에 기초하여, 파일을 암호화하고, 암호화된 파일을 분할함으로써 복수개의 파일 조각을 생성하고, 암호화 키를 디바이스에 저장하거나 또는 복수개의 클라우드 스토리지 중 적어도 하나에 저장할 수 있다.
또한, 제어부는, 파일을 분할하여 복수개의 파일 조각을 생성하고, 암호화 키에 기초하여, 복수개의 파일 조각 중 적어도 하나의 조각을 암호화하고, 암호화 키를 디바이스에 저장하거나 또는 복수개의 클라우드 스토리지 중 적어도 하나에 저장하고, 통신부는, 각각의 파일 조각에 대응되는 클라우드 스토리지들에게, 적어도 하나의 조각이 암호화된 복수개의 파일 조각을 저장할 것을 요청할 수 있다.
또한, 제어부는, 복수개의 파일 조각 각각이 결정된 클라우드 스토리지들에게 각각 저장됨에 따라, 저장된 파일을 삭제할 수 있다.
또한, 디바이스에 저장된 파일은, 복수개의 클라우드 스토리지 중 하나 및 디바이스에 함께 저장된 파일이고, 통신부는, 파일이 저장된 클라우드 스토리지에게, 파일을 삭제할 것을 요청할 수 있다.
또한, 본 개시의 제 2 측면은, 하나의 파일로부터 분할된 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지들을 결정하는 제어부, 및 복수개의 파일 조각 각각을, 결정된 클라우드 스토리지들로부터 각각 수신하는 통신부를 포함하고, 제어부는, 수신된 복수개의 파일 조각을 조합하여 파일을 생성하고, 생성된 파일을 실행하는, 디바이스를 제공할 수 있다.
또한, 통신부는, 복수개의 파일 조각의 식별 정보들 및 복수개의 파일 조각이 저장된 클라우드 스토리지들의 식별 정보들을 포함하는 파일 분할 정보를 복수개의 클라우드 스토리지 중 적어도 하나로부터 수신하고, 제어부는, 수신된 파일 분할 정보에 기초하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지들을 결정할 수 있다.
또한, 복수개의 파일 조각 중 제 1 파일 조각은 복수개의 클라우드 스토리지 중 두 개 이상에 중복 저장된 파일 조각이고, 제어부는, 제 1 파일 조각에 대응하여 두 개 이상의 클라우드 스토리지 중 하나를 선택하고, 통신부는, 선택된 클라우드 스토리지로부터 제 1 파일 조각을 수신할 수 있다.
또한, 복수개의 파일 조각 중 제 2 파일 조각은 복수개의 클라우드 스토리지 중 두 개 이상에 중복 저장된 파일 조각이고, 통신부는, 두 개 이상의 클라우드 스토리지로부터 제 2 파일 조각의 서로 다른 부분을 동시에 수신할 수 있다.
또한, 복수개의 파일 조각은 파일이 분할된 후 복수개의 파일 조각 각각에 대응하여 암호화된 파일 조각이고, 통신부는, 암호화된 복수개의 파일 조각을 복호화하기 위한 복호화 키를 디바이스 또는 복수개의 클라우드 서버 중 적어도 하나로부터 수신하고, 제어부는, 수신된 복호화 키에 기초하여, 수신된 복수개의 파일 조각을 복호화하고, 복호화된 파일 조각을 조합하여 파일을 생성할 수 있다.
또한, 복수개의 파일 조각은 파일이 암호화된 후 분할된 파일 조각이고, 통신부는, 암호화된 파일을 복호화하기 위한 복호화 키를 디바이스 또는 복수개의 클라우드 서버 중 적어도 하나로부터 수신하고, 제어부는, 수신된 복호화 키에 기초하여, 수신된 복수개의 파일 조각을 조합하여 파일을 생성하고, 생성된 파일을 복호화할 수 있다.
또한, 본 개시의 제 3 측면은, 디바이스에 저장된 파일을 분할하여 복수개의 파일 조각을 생성하는 단계, 디바이스의 사용자가 등록된 복수개의 클라우드 스토리지 중, 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각을 저장할 클라우드 스토리지들을 결정하는 단계, 및 결정된 클라우드 스토리지들에게, 복수개의 파일 조각 각각을 저장할 것을 요청하는 단계를 포함하는, 파일 저장 방법을 제공할 수 있다.
또한, 디바이스에 저장된 파일은, 복수개의 클라우드 스토리지 중 하나로부터 수신된 파일일 수 있다.
또한, 복수개의 파일 조각 각각을 저장할 클라우드 스토리지들을 결정하는 단계는, 복수개의 파일 조각 중 제 1 파일 조각에 대응하며, 제 1 파일 조각을 저장할 복수개의 클라우드 스토리지를 결정하는 단계를 포함하고, 결정된 클라우드 스토리지들에게, 복수개의 파일 조각 각각을 저장할 것을 요청하는 단계는, 제 1 파일 조각을 저장할 복수개의 클라우드 스토리지에게 제 1 파일 조각을 저장할 것을 각각 요청하는 단계를 포함할 수 있다.
또한, 파일 저장 방법은, 복수개의 파일 조각의 식별 정보들 및 복수개의 파일 조각이 저장된 클라우드 스토리지들의 식별 정보들을 포함하는 파일 분할 정보를 복수개의 클라우드 스토리지 중 적어도 하나에게 저장할 것을 요청하는 단계를 더 포함할 수 있다.
디바이스에 저장된 파일을 분할하여 복수개의 파일 조각을 생성하는 단계는, 암호화 키에 기초하여, 파일을 암호화하는 단계, 및 암호화된 파일을 분할함으로써 복수개의 파일 조각을 생성하고, 암호화 키를 디바이스에 저장하거나 또는 복수개의 클라우드 스토리지 중 적어도 하나에 저장하는 단계를 포함할 수 있다.
또한, 디바이스에 저장된 파일을 분할하여 복수개의 파일 조각을 생성하는 단계는, 파일을 분할하여 복수개의 파일 조각을 생성하는 단계, 및 암호화 키에 기초하여, 복수개의 파일 조각 중 적어도 하나의 조각을 암호화하고, 암호화 키를 디바이스에 저장하거나 또는 복수개의 클라우드 스토리지 중 적어도 하나에 저장하는 단계를 포함하고, 결정된 클라우드 스토리지들에게, 복수개의 파일 조각 각각을 저장할 것을 요청하는 단계는, 복수개의 파일 조각 각각에 대응되는 클라우드 스토리지들에게, 적어도 하나의 조각이 암호화된 복수개의 파일 조각 각각을 저장할 것을 요청하는 단계를 포함할 수 있다.
또한, 파일 저장 방법은, 복수개의 파일 조각 각각이 결정된 클라우드 스토리지들에게 각각 저장됨에 따라, 저장된 파일을 삭제하는 단계를 더 포함할 수 있다.
또한, 디바이스에 저장된 파일은, 복수개의 클라우드 스토리지 중 하나 및 디바이스에 함께 저장된 파일이고, 파일 저장 방법은, 파일이 저장된 클라우드 스토리지에게, 파일을 삭제할 것을 요청하는 단계를 더 포함할 수 있다.
또한, 디바이스가, 하나의 파일로부터 분할된 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지들을 결정하는 단계, 복수개의 파일 조각 각각을, 결정된 클라우드 스토리지들로부터 각각 수신하는 단계, 수신된 복수개의 파일 조각을 조합하여 파일을 생성하는 단계, 및 생성된 파일을 실행하는 단계를 포함할 수 있다.
또한, 파일로부터 분할된 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지들을 결정하는 단계는, 복수개의 파일 조각의 식별 정보들 및 복수개의 파일 조각이 저장된 클라우드 스토리지들의 식별 정보들을 포함하는 파일 분할 정보를 복수개의 클라우드 스토리지 중 적어도 하나로부터 수신하는 단계, 및 수신된 파일 분할 정보에 기초하여, 파일로부터 분할된 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지들을 결정하는 단계를 포함할 수 있다.
또한, 복수개의 파일 조각 중 제 1 파일 조각은 복수개의 클라우드 스토리지 중 두 개 이상에 중복 저장된 파일 조각이고, 복수개의 파일 조각 각각을, 결정된 클라우드 스토리지들로부터 각각 수신하는 단계, 제 1 파일 조각에 대응하여 두 개 이상의 클라우드 스토리지 중 하나를 선택하는 단계, 및 선택된 클라우드 스토리지로부터 제 1 파일 조각을 수신하는 단계를 포함할 수 있다.
또한, 복수개의 파일 조각 중 제 2 파일 조각은 복수개의 클라우드 스토리지 중 두 개 이상에 중복 저장된 파일 조각이고, 복수개의 파일 조각 각각을, 결정된 클라우드 스토리지들로부터 각각 수신하는 단계는, 두 개 이상의 클라우드 스토리지로부터 제 2 파일 조각의 서로 다른 부분을 동시에 수신하는 단계를 포함할 수 있다.
또한, 복수개의 파일 조각은 파일이 분할된 후 복수개의 파일 조각 각각에 대응하여 암호화된 파일 조각이고, 수신된 복수개의 파일 조각을 조합하여 파일을 생성하는 단계는, 암호화된 복수개의 파일 조각을 복호화하기 위한 복호화 키를 디바이스 또는 복수개의 클라우드 서버 중 적어도 하나로부터 수신하는 단계, 수신된 복수개의 파일 조각을 복호화하는 단계, 및 복호화된 파일 조각을 조합하여 파일을 생성하는 단계를 포함할 수 있다.
또한, 복수개의 파일 조각은 파일이 암호화된 후 분할된 파일 조각이고, 수신된 복수개의 파일 조각을 조합하여 파일을 생성하는 단계는, 암호화된 파일을 복호화하기 위한 복호화 키를 디바이스 또는 복수개의 클라우드 서버 중 적어도 하나로부터 수신하는 단계, 수신된 복호화 키에 기초하여, 수신된 복수개의 파일 조각을 조합하여 파일을 생성하는 단계, 및 생성된 파일을 복호화하는 단계를 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른, 디바이스가 복수개의 클라우드 스토리지에 파일을 분산 저장하는 방법을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른, 디바이스가 파일을 복수개의 파일 조각으로 분할하고, 분할된 파일 조각을 클라우드 스토리지에 분산 저장하는 방법을 설명하는 흐름도이다.
도 3는 본 발명의 다른 실시예에 따른, 디바이스가 파일을 분산 저장하는 방법을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른, 디바이스가 복수개의 파일 조각으로 분할된 파일을 클라우드 스토리지로부터 수신하여 실행하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른, 디바이스가 복수개의 파일 조각을 클라우드 스토리지로부터 수신하고, 수신된 복수개의 파일 조각을 조합하여, 파일을 실행하는 방법을 설명하는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른, 디바이스에 저장된 복수의 클라우드 스토리지에 관한 정보를 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른, 파일 분할 정보를 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른, 디바이스가 파일 분할 정보에 기초하여 클라우드 스토리지로부터 파일 조각을 수신하는 방법을 나타내는 도면이다.
도 9a는 본 발명의 일 실시예에 따른, 디바이스가 클라우드 스토리지로부터 파일 분할 정보를 수신하는 방법을 설명하기 위한 도면이다.
도 9b는 본 발명의 일 실시예에 따른, 디바이스가 클라우드 스토리지로부터 파일 분할 정보를 수신하고, 파일 분할 정보에 기초하여 클라우드 스토리지로부터 파일 조각을 수신하는 방법을 나타내는 흐름도이다.
도 9c는 본 발명의 일 실시예에 따른, 사용자의 다른 디바이스가 클라우드 스토리지로부터 파일 분할 정보를 수신하고, 수신한 파일 분할 정보에 기초하여 클라우드 스토리지로부터 파일 조각을 수신하는 방법을 나타내는 도면이다.
도 10은 본 발명의 일 실시예에 따른, 디바이스가 외부 서버로부터 파일 분할 정보를 수신하고, 파일 분할 정보에 기초하여 클라우드 스토리지로부터 복수개의 파일 조각을 수신하는 방법을 나타내는 도면이다.
도 11a 내지 도 11e는 본 발명의 일 실시예에 따른, 사용자의 파일이 분산 저장됨에 따라 디바이스가 파일의 목록을 디스플레이하는 방법을 나타내는 도면이다.
도 12a 내지 도 12b는 본 발명의 일 실시예에 따른, 디바이스가 디바이스에만 저장된 파일을 분할하여 복수개의 클라우드 스토리지에 분산 저장함에 따라, 분산 저장된 파일을 디스플레이하는 방법을 설명하기 위한 도면이다.
도 13은 본 발명의 일 실시예에 따른, 디바이스가 파일을 분산 저장할 클라우드 스토리지를 선택하기 위한 사용자 인터페이스를 제공하는 방법을 설명하기 위한 도면이다.
도 14a 및 도 14b는 발명의 일 실시예에 따른, 디바이스가 복수의 클라우드 스토리지에 동일한 파일 조각을 중복 저장하는 방법을 설명하기 위한 도면이다.
도 14c는 본 발명의 일 실시예에 따른, 복수개의 파일에 대응하는 파일 조각이 복수개의 클라우드 스토리지에 중복 저장됨에 따라, 복수개의 클라우드 스토리지에 저장된 파일 조각들을 나타내는 도면이다.
도 14d는 본 발명의 일 실시예에 따른, 복수의 클라우드 스토리지 중 하나의 클라우드 스토리지가 동작하지 않은 경우, 복수의 클라우드 스토리지로부터 파일 조각을 수신하는 방법을 설명하기 위한 도면이다.
도 15는 본 발명의 일 실시예에 따른, 동일한 파일 조각이 복수개의 클라우드 스토리지에 중복 저장됨에 따라, 디바이스가 동일한 파일 조각을 복수개의 클라우드 스토리지로부터 동시에 수신하는 방법을 설명하기 위한 도면이다.
도 16a 및 도 16b는 본 발명의 일 실시예에 따른, 디바이스가 파일을 암호화하는 방법을 설명하기 위한 도면이다.
도 17a 및 도 17b는 본 발명의 다른 실시예에 따른, 디바이스가 파일을 암호화하는 방법을 설명하기 위한 도면이다.
도 18a 및 도 18b는 본 발명의 일 실시예에 따른, 디바이스가 파일을 암호화하기 위해, 사용자로부터 암호화를 위한 정보를 수신하는 방법을 설명하기 위한 도면이다.
도 19는 본 발명의 일 실시예에 따른, 파일을 분산 저장하는 기능을 수행하는 디바이스내의 모듈을 나타내는 도면이다.
도 20은 본 발명의 일 실시예에 따른, 디바이스가 파일을 분할하여, 복수개의 클라우드 스토리지에 분산 저장하는 방법을 설명하기 위한 도면이다.
도 21은 본 발명의 일 실시예에 따른, 디바이스에 대한 블록도를 도시한다.
도 22는 본 발명의 다른 실시 예에 따른, 디바이스의 구성을 나타내는 블록도이다.
도 23은 본 발명의 일 실시예에 따른, 클라우드 스토리지에 대한 블록도를 도시한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서, “분산 저장”이란, 파일을 복수개의 파일 조각으로 분할하고, 분할된 파일 조각을 복수개의 클라우드 서버에 분산하여 저장하는 것을 의미할 수 있다.
명세서 전체에서, “클라우드 스토리지”는 사용자의 파일을 저장하는 장치를 의미할 수 있다. 클라우드 스토리지는 하나의 저장 장치로 구성될 수 있으며, 복수의 저장 장치로 구성될 수도 있다.
또한, 클라우드 스토리지는 사용자들에게 파일 저장 서비스를 제공하는 서비스 프로바이더에 의해 운용될 수 있다. 예를 들어, 서비스 프로바이더는 서비스에 가입한 사용자들에게 유료 또는 무료로 파일 저장 공간을 제공할 수 있다. 또한, 클라우드 스토리지는 네트워크를 통해 사용자의 디바이스로 사용자의 파일을 송신하거나, 사용자의 디바이스로부터 사용자의 파일을 수신할 수 있다.
사용자가 서비스 프로바이더가 제공하는 서비스에 가입함에 따라, 사용자는 클라우드 스토리지에 사용자 고유의 계정을 등록할 수 있다. 클라우드 스토리지는 클라우드 스토리지에 등록된 사용자의 계정에 기초하여, 사용자의 파일을 저장할 수 있다. 또한, 클라우드 스토리지는 사용자의 계정에 기초하여, 저장된 사용자의 파일을 사용자의 디바이스 또는 사용자의 공유자의 디바이스로 전송할 수 있다.
또한, 클라우드 스토리지는 사용자가 설정한 사용자의 파일에 대한 접근 정책에 따라, 사용자의 파일에 대하여 다른 사용자의 접근을 제한할 수 있다. 예를 들어, 클라우드 스토리지는, 사용자가 접근 허락한 사용자에게만 사용자의 파일에 대한 접근을 허용할 수 있다. 또한, 클라우드 스토리지는 사용자의 설정에 따라, 모든 사용자에게 사용자의 파일에 대한 접근을 허여할 수도 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 일 실시예에 따른, 디바이스(100)가 복수개의 클라우드 스토리지(1000)에 파일을 분산 저장하는 방법을 나타내는 도면이다.
도 1을 참조하면, 디바이스(100)는 파일(50)을 복수개의 파일 조각(50_1, 50_2, 50_3)으로 분할하고, 분할된 복수개의 파일 조각(50_1, 50_2, 50_3)을 복수개의 클라우드 스토리지(1000a, 1000b, 1000c)에 분산하여 저장할 수 있다.
예를 들어, 디바이스(100)는 파일(50)을 분산 저장할 것을 요청하는 사용자 입력을 수신할 수 있다. 파일(50)을 분산 저장할 것을 요청하는 사용자 입력을 수신함에 따라, 디바이스(100)는 파일(50)을 분할하여 복수개의 파일 조각(50_1, 50_2, 50_3)을 생성하고, 디바이스(100)의 사용자가 등록된 복수개의 클라우드 스토리지(1000) 중, 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각을 저장할 클라우드 스토리지(1000)를 결정할 수 있다.
파일 조각을 저장할 클라우드 스토리지(1000)를 결정함에 따라, 디바이스(100)는 결정된 클라우드 스토리지(1000)에게, 복수개의 파일 조각 각각을 저장할 것을 요청할 수 있다. 예를 들어, 디바이스(100)는 “파일 조각 1”(50_1)을 제 1 클라우드 스토리지(1000a)에 등록된 사용자의 ID에 대응하여 저장할 것을 제 1 클라우드 스토리지(1000a)에게 요청할 수 있다. 클라우드 스토리지(1000)는 수신된 사용자의 식별 정보에 대응하여 각각의 파일 조각을 저장할 수 있다.
또한, 디바이스(100)는 파일 분할 정보를 디바이스(100) 또는 클라우드 스토리지(1000)에 저장할 수 있다. 파일 분할 정보는 복수개의 파일 조각의 식별 정보들 및 복수개의 파일 조각이 저장된 클라우드 스토리지(1000)들의 식별 정보들을 포함할 수 있다.
또한, 디바이스(100)는 복수개의 파일 조각(50_1, 50_2, 50_3)을 복수개의 클라우드 스토리지(1000)로부터 수신하고, 수신된 복수개의 파일 조각(50_1, 50_2, 50_3)을 조합(Merge)하여 파일(50)을 다시 생성할 수 있다.
예를 들어, 디바이스(100)는 복수개의 파일 조각으로 분할된 파일의 식별 정보(52)를 선택하는 사용자 입력을 수신할 수 있다. 선택된 파일이 복수개의 파일 조각으로 분할되어 복수개의 클라우드 스토리지(1000)에 분산 저장된 파일인 경우, 디바이스(100)는 파일 분할 정보에 기초하여, 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지(1000)들을 결정할 수 있다. 디바이스(100)는 복수개의 파일 조각 각각을, 복수개의 파일 조각 각각에 대응되는 클라우드 스토리지들(1000)에게 요청하여 수신할 수 있다. 디바이스(100)는 수신된 복수개의 파일 조각(50_1, 50_2, 50_3)을 조합하여 파일(50)을 생성하고, 생성된 파일(50)을 실행할 수 있다.
도 2는 본 발명의 일 실시예에 따른, 디바이스(100)가 파일을 복수개의 파일 조각으로 분할하고, 분할된 파일 조각을 클라우드 스토리지(1000)에 분산 저장하는 방법을 설명하는 흐름도이다.
단계 S210에서, 디바이스(100)는 디바이스(100)에 저장된 파일을 분할하여 복수개의 파일 조각을 생성할 수 있다.
디바이스(100)에 저장된 파일은 디바이스(100)에 기 저장된 파일일 수 있다. 또한, 디바이스(100)에 저장된 파일은 클라우드 스토리지(1000)로부터 수신된 파일일 수 있다.
디바이스(100)는 파일을 암호화하고, 암호화된 파일을 분할함으로써 복수개의 파일 조각을 생성할 수 있다. 또한, 디바이스(100)는 파일을 분할하여 복수개의 파일 조각을 생성하고, 복수개의 파일 조각 중 적어도 하나의 조각을 암호화할 수도 있다.
단계 S220에서, 디바이스(100)는 디바이스(100)의 사용자가 등록된 복수개의 클라우드 스토리지(1000) 중, 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각을 저장할 클라우드 스토리지(1000)들을 결정할 수 있다.
디바이스(100)는 클라우드 스토리지(1000)의 저장 용량, 파일에 설정된 보안 등급 또는 클라우드 스토리지(1000)를 선택하는 사용자 입력에 기초하여, 복수개의 파일 조각 각각을 저장할 클라우드 스토리지(1000)들을 결정할 수 있다.
또한, 디바이스(100)는 복수개의 파일 조각 중 하나의 파일 조각에 대응하여, 파일 조각을 저장할 하나의 클라우드 스토리지(1000)를 결정할 수 있다. 또한, 디바이스(100)는 복수개의 파일 조각 중 하나의 파일 조각에 대응하여, 파일 조각을 저장할 복수개의 클라우드 스토리지(1000)를 결정할 수 있다.
단계 S230에서, 디바이스(100)는 결정된 클라우드 스토리지(1000)들에게, 복수개의 파일 조각 각각을 저장할 것을 요청할 수 있다.
예를 들어, 디바이스(100)는 제 1 클라우드 스토리지(1000a)의 주소 정보에 기초하여, 제 1 클라우드 스토리지(1000a)에 등록된 사용자의 식별 정보에 대응하여 제 1 파일 조각을 저장할 것을 제 1 클라우드 스토리지(1000a)에게 요청할 수 있다.
이 경우, 디바이스(100)는 제 1 클라우드 스토리지(1000a) 내에서 제 1 파일 조각이 저장될 위치를 함께 전송할 수도 있다. 예를 들어, 제 1 클라우드 스토리지(1000a) 내에서 제 1 파일 조각이 저장될 위치는 파일의 원본이 저장되어 있던 폴더, 디폴트 폴더, 루트 폴더 등일 수 있다. 또한, 디바이스(100)는 제 1 파일 조각이 저장될 폴더를 선택하는 사용자 입력을 수신하고, 선택된 폴더의 식별 정보를 제 1 파일 조각이 저장될 폴더로써 제 1 클라우드 스토리지(1000a)에게 전송할 수도 있다.
디바이스(100) 복수의 클라우드 스토리지(1000)에 파일 조각을 순차적으로 저장할 수 있다. 예를 들어, 디바이스(100)는 제 1 클라우드 스토리지(1000a)에 제 1 파일 조각을 저장한 후, 제 2 클라우드 스토리지(1000a)에 제 2 파일 조각을 저장할 수 있다. 또한, 디바이스(100)는 복수의 클라우드 스토리지(1000)에 파일 조각을 동시에 저장할 수 있다. 예를 들어, 디바이스(100)는 각각의 클라우드 스토리지(1000)와의 세션을 동시에 유지하고, 각각의 클라우드 스토리지(1000)에 파일 조각을 동시에 저장할 수 있다.
또한, 디바이스(100)는, 복수개의 클라우드 스토리지(1000) 중 적어도 하나에게, 복수개의 파일 조각의 식별 정보 및 복수개의 파일 조각을 저장할 클라우드 스토리지(1000)의 식별 정보를 포함하는 파일 분할 정보를 저장할 것을 요청할 수 있다.
또한, 디바이스(100)에 저장된 파일이 복수개의 클라우드 스토리지(1000) 중 하나 및 디바이스(100)에 함께 저장된 파일인 경우, 디바이스(100)는 파일이 저장된 클라우드 스토리지(1000)에게, 파일을 삭제할 것을 요청할 수 있다.
복수개의 파일 조각 각각이 결정된 클라우드 스토리지(1000)들에게 각각 저장됨에 따라, 디바이스(100)는 파일을, 디바이스 내의 분산 저장된 파일을 위한 미리 정해진 폴더 내로 이동시킬 수도 있다.
도 3는 본 발명의 다른 실시예에 따른, 디바이스(100)가 파일을 분산 저장하는 방법을 설명하는 흐름도이다.
단계 S310에서, 디바이스(100)는 디바이스(100)에 저장된 파일을 분할하여 복수개의 파일 조각을 생성할 수 있다.
디바이스(100)에 저장된 파일은 디바이스(100)에 기 저장된 파일일 수 있다. 디바이스(100)에 기 저장된 파일 중 하나를 선택하고, 선택된 파일을 분산 저장하는 사용자 입력을 수신함에 따라, 디바이스(100)는 선택된 파일을 분할하여 복수개의 파일 조각을 생성할 수 있다.
또한, 디바이스(100)에 저장된 파일은 클라우드 스토리지(1000)로부터 수신된 파일일 수 있다. 예를 들어, 디바이스(100)에는 클라우드 스토리지(1000)에 저장된 사용자의 파일의 컨텐츠 데이터를 제외한 파일의 메타데이터만이 저장되어 있을 수 있다. 파일의 메타데이터는 파일의 목록을 포함할 수 있다. 파일의 목록 중 하나를 선택하는 사용자 입력 및 선택된 파일을 분산 저장하는 사용자 입력을 수신함에 따라, 디바이스(100)는 클라우드 스토리지(1000)에게 선택된 파일의 컨텐츠 데이터를 요청하여 수신할 수 있다. 클라우드 스토리지(1000)로부터 선택된 파일의 컨텐츠 데이터를 수신함에 따라, 디바이스(100)는 클라우드 스토리지(1000)로부터 수신된 파일의 컨텐츠 데이터를 분할하여 복수개의 파일 조각을 생성할 수 있다.
디바이스(100)는 디바이스(100)의 사용자가 등록된 클라우드 스토리지(1000)의 개수에 기초하여, 파일을 복수개의 파일 조각으로 분할할 수 있다. 예를 들어, 디바이스(100)는 파일을, 디바이스(100)의 사용자가 등록된 클라우드 스토리지(1000) 개수만큼의 파일 조각으로 분할할 수 있다. 또한, 디바이스(100)는 파일을 기 결정된 크기로 분할할 수도 있다.
디바이스(100)는 파일을 암호화하고, 암호화된 파일을 분할함으로써 복수개의 파일 조각을 생성할 수 있다. 또한, 디바이스(100)는 파일을 분할하여 복수개의 파일 조각을 생성하고, 복수개의 파일 조각 중 적어도 하나의 조각을 암호화할 수 있다.
단계 S315에서, 디바이스(100)는 디바이스(100)의 사용자가 등록된 복수개의 클라우드 스토리지(1000) 중, 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각을 저장할 클라우드 스토리지(1000)들을 결정할 수 있다.
디바이스(100)는 파일 조각을 저장할 클라우드 스토리지(1000)를 선택하기 위한 사용자 인터페이스를 제공하고, 선택된 클라우드 스토리지(1000)에만 파일이 분산 저장되도록 클라우드 스토리지(1000)를 결정할 수 있다.
또한, 디바이스(100)는 클라우드 스토리지(1000)로부터 사용자에게 할당된 저장 공간의 용량에 대한 정보를 수신하고, 남은 용량이 기준 이상이 되는 클라우드 스토리지(1000)에만 파일이 분산 저장되도록 클라우드 스토리지(1000)를 결정할 수도 있다.
또한, 디바이스(100)는 파일에 설정된 보안 등급에 기초하여, 보안 등급이 높을수록 파일이 복수개의 클라우드 스토리지(1000)에 최대한 분산 저장되도록, 클라우드 스토리지(1000)를 결정할 수 있다.
또한, 디바이스(100)는 복수개의 파일 조각 중 하나의 파일 조각에 대응하여, 파일 조각을 저장할 하나의 클라우드 스토리지(1000)를 결정할 수 있다. 또한, 디바이스(100)는 복수개의 파일 조각 중 하나의 파일 조각에 대응하여, 파일 조각을 저장할 복수개의 클라우드 스토리지(1000)를 결정할 수 있다.
단계 S320에서, 디바이스(100)는 제 1 클라우드 스토리지(1000a)에 등록된 사용자의 식별 정보에 대응하여 제 1 파일 조각을 저장할 것을 제 1 클라우드 스토리지(1000a)에게 요청할 수 있다.
디바이스(100)에는 제 1 클라우드 스토리지(1000a)의 주소 정보가 저장되어 있을 수 있다. 또한, 디바이스(100)에는 제 1 클라우드 스토리지(1000a)에 등록된 사용자의 계정 정보가 저장되어 있을 수 있다. 사용자의 계정 정보는 제 1 클라우드 스토리지(1000a)에 등록된 사용자의 식별 정보 및 비밀 번호 정보를 포함할 수 있다. 또한, 사용자 계정 정보는, 제 1 클라우드 스토리지(1000a)가 디바이스(100)로부터 수신한 사용자 식별 정보 및 비밀 번호에 기초하여 사용자를 인증함에 따라 디바이스(100)에게 발급한 접근 정보를 포함할 수도 있다. 또한, 사용자의 계정 정보는 디바이스(100)와 제 1 클라우드 스토리지(1000a)간의 세션 유지를 위한 세션 유지 정보를 포함할 수 있다.
디바이스(100)는 제 1 클라우드 스토리지(1000a)의 주소 정보를 이용하여, 제 1 클라우드 스토리지(1000a)에 등록된 사용자의 식별 정보에 대응하여 제 1 파일 조각을 저장할 것을 제 1 클라우드 스토리지(1000a)에게 요청할 수 있다.
파일 조각 저장 요청은 제 1 클라우드 스토리지(1000a)에 등록된 사용자의 계정 정보를 포함할 수 있다. 또한, 파일 조각 저장 요청은 파일 조각이 저장될 폴더의 식별 정보를 포함할 수도 있다. 또한, 파일 조각 저장 요청은 전송되는 파일이 파일 조각임을 나타내는 정보를 포함할 수도 있다.
단계 S325에서, 제 1 클라우드 스토리지(1000a)는, 제 1 클라우드 스토리지(1000a)에 등록된 사용자의 식별 정보에 대응하여 제 1 파일 조각을 저장할 수 있다.
제 1 클라우드 스토리지(1000a)는 디바이스(100)로부터 수신된 사용자의 계정 정보에 기초하여, 제 1 클라우드 스토리지(1000a)에 대하여 사용자가 파일을 저장할 권한이 있는지 여부를 판단할 수 있다.
사용자에게 제 1 클라우드 스토리지(1000a)에 대하여 파일을 저장할 권한 있는 경우, 제 1 클라우드 스토리지(1000a)는 디바이스(100)로부터 수신된 제 1 파일 조각을 사용자의 식별 정보에 대응하여 저장할 수 있다.
또한, 디바이스(100)로부터 제 1 파일 조각이 저장될 폴더의 식별 정보를 수신한 경우, 제 1 클라우드 스토리지(1000a)는 폴더의 식별 정보에 기초하여, 제 1 파일 조각을 저장할 폴더의 위치를 결정하고, 결정한 폴더 내에 제 1 파일 조각을 저장할 수 있다.
또한, 디바이스(100)로부터 수신된 제 1 파일 조각이 파일 조각임을 나타내는 정보를 수신한 경우, 제 1 클라우드 스토리지(1000a)는 기 결정된 파일 조각 저장 폴더에 제 1 파일 조각을 저장할 수도 있다.
단계 S330에서, 디바이스(100)는, 제 2 클라우드 스토리지(1000b)에 등록된 사용자의 식별 정보에 대응하여 제 2 파일 조각을 저장할 것을 제 2 클라우드 스토리지(1000b)에게 요청할 수 있다.
디바이스(100)에는 제 2 클라우드 스토리지(1000b)의 주소 정보가 저장되어 있을 수 있다. 또한, 디바이스(100)에는 제 2 클라우드 스토리지(1000b)에 등록된 사용자의 계정 정보가 저장되어 있을 수 있다.
디바이스(100)는 제 2 클라우드 스토리지(1000b)의 주소 정보에 기초하여, 제 2 클라우드 스토리지(1000b)에 등록된 사용자의 식별 정보에 대응하여 제 2 파일 조각을 저장할 것을 제 2 클라우드 스토리지(1000b)에게 요청할 수 있다.
단계 S335에서, 제 2 클라우드 스토리지(1000b)는, 제 2 클라우드 스토리지(1000b)에 등록된 사용자의 식별 정보에 대응하여 제 2 파일 조각을 저장할 수 있다.
제 2 클라우드 스토리지(1000b)는 디바이스(100)로부터 수신된 사용자의 계정 정보에 기초하여, 제 2 클라우드 스토리지(1000b)에 대하여 사용자가 파일을 저장할 권한이 있는지 여부를 판단할 수 있다.
사용자에게 제 2 클라우드 스토리지(1000b)에 대하여 파일을 저장할 권한 있는 경우, 제 2 클라우드 스토리지(1000b)는 디바이스(100)로부터 수신된 제 2 파일 조각을 사용자의 식별 정보에 대응하여 저장할 수 있다.
단계 S340에서, 디바이스(100)는, 제 3 클라우드 스토리지(1000c)에 등록된 사용자의 식별 정보에 대응하여 제 3 파일 조각을 저장할 것을 제 3 클라우드 스토리지(1000c)에게 요청할 수 있다.
디바이스(100)에는 제 3 클라우드 스토리지(1000c)의 주소 정보가 저장되어 있을 수 있다. 또한, 디바이스(100)에는 제 3 클라우드 스토리지(1000c)에 등록된 사용자의 계정 정보가 저장되어 있을 수 있다.
디바이스(100)는 제 3 클라우드 스토리지(1000c)의 주소 정보에 기초하여, 제 3 클라우드 스토리지(1000c)에 등록된 사용자의 식별 정보에 대응하여 제 3 파일 조각을 저장할 것을 제 3 클라우드 스토리지(1000c)에게 요청할 수 있다.
단계 S345에서, 제 3 클라우드 스토리지(1000c)는, 제 3 클라우드 스토리지(1000c)에 등록된 사용자의 식별 정보에 대응하여 제 3 파일 조각을 저장할 수 있다.
제 3 클라우드 스토리지(1000c)는 디바이스(100)로부터 수신된 사용자의 계정 정보에 기초하여, 제 3 클라우드 스토리지(1000c)에 대하여 사용자가 파일을 저장할 권한이 있는지 여부를 판단할 수 있다.
사용자에게 제 3 클라우드 스토리지(1000c)에 대하여 파일을 저장할 권한 있는 경우, 제 3 클라우드 스토리지(1000c)는 디바이스(100)로부터 수신된 제 3 파일 조각을 사용자의 식별 정보에 대응하여 저장할 수 있다.
단계 S350에서, 디바이스(100)는 파일 분할 정보를 생성할 수 있다.
파일 분할 정보는 제 1 내지 제 3 파일 조각의 식별 정보 및 제 1 내지 제 3 파일 조각을 저장하는 클라우드 스토리지(1000)의 식별 정보를 포함할 수 있다. 또한, 파일 분할 정보는 파일의 식별 정보, 파일이 위치하는 디바이스(100)의 디렉토리 정보, 파일의 크기 정보, 파일 조각 각각의 크기 정보, 파일 내에서 파일 조각 각각의 위치 정보 및 파일 내에서 파일 조각의 순서 정보를 포함할 수 있다.
디바이스(100)는 파일 분할 정보를 파일 형태로 저장할 수 있다. 파일 분할 정보가 저장된 파일은 파일 분할 정보 파일로 언급될 수 있다. 실시예에 따라, 하나의 파일 분할 정보 파일에는 분산 저장된 모든 파일에 대한 파일 분할 정보가 기록될 수 있다. 또한, 실시예에 따라, 하나의 파일 분할 정보 파일에는 하나의 파일에 대한 파일 분할 정보가 기록될 수도 있다.
디바이스(100)는 파일 분할 정보 파일을 디바이스(100)에 저장할 수 있다. 또한, 디바이스(100)는 파일 분할 정보 파일을, 클라우드 스토리지(1000)에 등록된 사용자의 식별 정보에 대응하여 저장할 것을, 복수의 클라우드 스토리지(1000) 중 적어도 하나에게 요청할 수도 있다.
실시예에 따라, 디바이스(100)는 파일 분할 정보를 데이터베이스 형태로 저장할 수 있다. 파일 분할 정보가 저장된 데이터베이스는 파일 분할 정보 데이터베이스로 언급될 수 있다.
예를 들어, 디바이스(100)는 디바이스(100)내에 파일 분할 정보 데이터베이스를 생성할 수 있다. 또한, 디바이스(100)는 외부 서버에 사용자의 식별 정보에 대응하여 파일 분할 정보 데이터베이스를 생성할 수 있다. 또한, 디바이스(100)는, 클라우드 스토리지(1000)에 등록된 사용자의 식별 정보에 대응하여, 클라우드 스토리지(1000)에게 파일 분할 정보 데이터베이스를 생성할 것을 요청할 수도 있다. 디바이스(100)는 생성한 데이터베이스 내에 하나의 파일의 식별 정보에 대응하여 하나의 파일에 대한 파일 분할 정보를 저장할 수 있다.
또한, 디바이스(100)에 저장된 파일이 복수개의 클라우드 스토리지(1000) 중 하나 및 디바이스(100)에 함께 저장된 파일인 경우, 디바이스(100)는 파일이 저장된 클라우드 스토리지(1000)에게, 파일을 삭제할 것을 요청할 수 있다.
복수개의 파일 조각 각각이, 클라우드 스토리지(1000)들에게 각각 저장됨에 따라, 디바이스(100)는 파일을, 디바이스 내의 분산 저장된 파일을 위한 미리 정해진 폴더 내로 이동시킬 수도 있다.
또한, 복수개의 파일 조각 각각이, 클라우드 스토리지(1000)들에게 각각 저장됨에 따라, 디바이스(100)는 파일이 복수의 클라우드 서버에 분산 저장되었음을 나타내는 정보를 파일의 메타데이터로써 저장할 수 있다.
도 4는 본 발명의 일 실시예에 따른, 디바이스(100)가 복수개의 파일 조각으로 분할된 파일을 클라우드 스토리지(1000)로부터 수신하여 실행하는 방법을 설명하는 흐름도이다.
단계 S410에서, 디바이스(100)는 파일을 선택하는 사용자 입력을 수신할 수 있다.
파일의 목록 중 하나를 선택하는 사용자 입력을 수신함으로써, 디바이스(100)는 파일을 선택하는 사용자 입력을 수신할 수 있다.
또한, 디바이스(100)에는 파일이 복수개의 파일 조각으로 분할된 파일인지 여부가 파일의 식별 정보에 대응하여 파일의 메타데이터로써 저장되어 있을 수 있다. 파일을 실행할 것을 명령하는 사용자 입력을 수신함에 따라, 디바이스(100)는 파일의 메타데이터에 기초하여 파일이 복수개의 파일 조각으로 분할된 파일인지 여부를 판단할 수 있다.
단계 S420에서, 디바이스(100)는 파일로부터 분할된 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지(1000)들을 결정할 수 있다.
파일이 복수개의 파일 조각으로 분할된 파일인 경우, 디바이스(100)는 파일 분할 정보에 기초하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지(1000)들을 결정할 수 있다. 파일 분할 정보는 복수개의 파일 조각의 식별 정보 및 복수개의 파일 조각을 저장할 클라우드 스토리지(1000)의 식별 정보를 포함할 수 있다.
디바이스(100)는 디바이스(100)에 저장된 파일 분할 정보를 획득할 수 있다. 또한, 디바이스(100)는 파일 분할 정보를 복수개의 클라우드 스토리지(1000) 중 적어도 하나로부터 수신할 수 있다. 또한, 디바이스(100)는 파일 분할 정보를 미리 정해진 외부 서버로부터 수신할 수 있다.
단계 S430에서, 디바이스(100)는 복수개의 파일 조각 각각을, 결정된 클라우드 스토리지(1000)들로부터 각각 수신할 수 있다.
복수개의 파일 조각 중 제 1 파일 조각이 복수개의 클라우드 스토리지(1000) 중 두 개 이상에 중복 저장된 파일 조각인 경우, 디바이스(100)는 제 1 파일 조각에 대응하여 두 개 이상의 클라우드 스토리지(1000) 중 하나를 선택하고, 선택된 클라우드 스토리지(1000)로부터 제 1 파일 조각을 수신할 수 있다.
또한, 복수개의 파일 조각 중 제 2 파일 조각이 복수개의 클라우드 스토리지(1000) 중 두 개 이상에 중복 저장된 파일 조각인 경우, 디바이스(100)는 두 개 이상의 클라우드 스토리지(1000)로부터 제 2 파일 조각의 서로 다른 부분을 동시에 수신할 수 있다.
단계 S440에서, 디바이스(100)는 수신된 복수개의 파일 조각을 조합하여 파일을 생성할 수 있다.
복수개의 파일 조각이 파일이 복수개의 파일 조각으로 분할된 후 복수개의 파일 조각 각각에 대응하여 암호화된 파일 조각인 경우, 디바이스(100)는, 수신된 복수개의 파일 조각을 복호화하고, 복호화된 파일 조각을 조합하여 파일을 생성할 수 있다.
또한, 복수개의 파일 조각이, 파일이 암호화된 후 복수개의 파일 조각으로 분할된 파일 조각인 경우, 디바이스(100)는 수신된 복수개의 파일 조각을 조합하여 파일을 생성하고, 생성된 파일을 복호화할 수 있다.
단계 S450에서, 디바이스(100)는 생성된 파일을 실행할 수 있다.
예를 들어, 디바이스(100)는 텍스트, 이미지, 문서 또는 동영상 파일을 실행하여 파일 내의 정보를 출력할 수 있다.
도 5는 본 발명의 다른 실시예에 따른, 디바이스(100)가 복수개의 파일 조각을 클라우드 스토리지(1000)로부터 수신하고, 수신된 복수개의 파일 조각을 조합하여, 파일을 실행하는 방법을 설명하는 흐름도이다.
단계 S510에서, 디바이스(100)는 파일을 선택하는 사용자 입력을 수신할 수 있다.
예를 들어, 디바이스(100)는 복수개의 파일 조각으로 분할된 파일의 목록을 디스플레이할 수 있다. 파일의 목록은 파일의 식별 정보를 포함할 수 있다. 파일의 목록 중 하나를 선택하는 사용자 입력을 수신함으로써, 디바이스(100)는 복수개의 파일 조각으로 분할된 파일의 식별 정보를 선택하는 사용자 입력을 수신할 수 있다.
또한, 디바이스(100)에는 파일이 복수개의 파일 조각으로 분할된 파일인지 여부가 파일의 식별 정보에 대응하여 파일의 메타데이터로써 저장되어 있을 수 있다. 파일을 실행할 것을 명령하는 사용자 입력을 수신함에 따라, 디바이스(100)는 파일의 메타데이터에 기초하여 파일이 복수개의 파일 조각으로 분할된 파일인지 여부를 판단할 수 있다.
단계 S513에서, 디바이스(100)는 파일로부터 분할된 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지(1000)들을 결정할 수 있다.
파일이 복수개의 파일 조각으로 분할된 파일인 경우, 디바이스(100)는 파일 분할 정보에 기초하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지(1000)들을 결정할 수 있다.
파일 분할 정보는 복수개의 파일 조각의 식별 정보 및 복수개의 파일 조각을 저장할 클라우드 스토리지(1000)의 식별 정보를 포함할 수 있다. 예를 들어, 파일 조각의 식별 정보는 “제 1 파일 조각”, “제 2 파일 조각” 및 “제 3 파일 조각”일 수 있으며, “제 1 파일 조각”의 저장 위치는 제 1 클라우드 스토리지(1000a)이고, “제 2 파일 조각”의 저장 위치는 제 2 클라우드 스토리지(1000b)이고, “제 3 파일 조각”의 저장 위치는 제 3 클라우드 스토리지(1000c)일 수 있다.
디바이스(100)는 디바이스(100)에 저장된 파일 분할 정보를 획득할 수 있다. 또한, 디바이스(100)는 파일 분할 정보를 복수개의 클라우드 스토리지(1000) 중 적어도 하나로부터 수신할 수 있다. 또한, 디바이스(100)는 파일 분할 정보를 미리 정해진 외부 서버로부터 수신할 수 있다.
단계 S515에서, 디바이스(100)는 제 1 클라우드 스토리지(1000a)에 등록된 사용자의 식별 정보에 대응하여 제 1 파일 조각을 제 1 클라우드 스토리지(1000a)에게 요청할 수 있다.
파일 조각 요청은, 클라우드 스토리지(1000)에 등록된 사용자의 계정 정보, 파일 조각의 식별 정보 및 파일 조각이 저장된 폴더의 식별 정보를 포함할 수 있다.
단계 S520에서, 제 1 클라우드 스토리지(1000a)는 제 1 파일 조각을 디바이스(100)로 전송할 수 있다.
제 1 클라우드 스토리지(1000a)는 디바이스(100)로부터 수신된 사용자의 계정 정보에 기초하여, 요청된 제 1 파일 조각에 대한 수신 권한이 사용자에게 있는지 여부를 판단할 수 있다.
요청된 제 1 파일 조각에 대한 수신 권한이 사용자에게 있는 경우, 제 1 클라우드 스토리지(1000a)는 제 1 파일 조각을 디바이스(100)로 전송할 수 있다.
단계 S525에서, 디바이스(100)는 제 2 클라우드 스토리지(1000b)에 등록된 사용자의 식별 정보에 대응하여 제 2 파일 조각을 제 2 클라우드 스토리지(1000b)에게 요청할 수 있다.
단계 S530에서, 제 2 클라우드 스토리지(1000b)는 제 2 파일 조각을 디바이스(100)로 전송할 수 있다.
단계 S535에서, 디바이스(100)는 제 3 클라우드 스토리지(1000c)에 등록된 사용자의 식별 정보에 대응하여 제 3 파일 조각을 제 3 클라우드 스토리지(1000c)에게 요청할 수 있다.
단계 S540에서, 제 3 클라우드 스토리지(1000c)는 제 3 파일 조각을 디바이스(100)로 전송할 수 있다.
단계 S545에서, 디바이스(100)는 수신된 제 1 내지 제 3 파일 조각을 조합하여 파일을 생성할 수 있다.
디바이스(100)는 파일 분할 정보에 기초하여, 파일 조각의 순서를 결정할 수 있다. 그리고, 디바이스(100)는 결정된 파일 조각의 순서에 기초하여 제 1 내지 제 3 파일 조각을 조합하여 파일을 생성할 수 있다.
복수개의 파일 조각이 파일이 복수개의 파일 조각으로 분할된 후 복수개의 파일 조각 각각에 대응하여 암호화된 파일 조각인 경우, 디바이스(100)는, 수신된 복수개의 파일 조각을 복호화하고, 복호화된 파일 조각을 조합하여 파일을 생성할 수 있다.
또한, 복수개의 파일 조각이, 파일이 암호화된 후 복수개의 파일 조각으로 분할된 파일 조각인 경우, 디바이스(100)는 수신된 복수개의 파일 조각을 조합하여 파일을 생성하고, 생성된 파일을 복호화할 수 있다.
단계 S550에서, 디바이스(100)는 생성된 파일을 실행할 수 있다.
예를 들어, 디바이스(100)는 파일 뷰어 어플리케이션을 실행하여 파일 내의 정보를 출력할 수 있다. 예를 들어, 파일이 문서 파일인 경우, 디바이스(100)는 문서 파일로부터 문서 내용을 획득하고, 획득된 문서 내용을 디스플레이할 수 있다. 또한, 파일이 동영상 파일인 경우, 디바이스(100)는 동영상 파일을 디코딩하고, 디코딩된 동영상 프레임을 디스플레이할 수 있다.
도 6은 본 발명의 일 실시예에 따른, 디바이스(100)에 저장된 복수의 클라우드 스토리지(1000)에 관한 정보를 나타내는 도면이다.
도 6을 참조하면, 디바이스(100)에는 사용자가 등록된 복수의 클라우드 스토리지(1000)에 관한 정보(610)가 저장되어 있을 수 있다.
클라우드 스토리지(1000)에 관한 정보(610)는, 클라우드 스토리지(1000)의 주소 정보(620) 및 클라우드 스토리지(1000)에 등록된 사용자의 계정 정보(630)를 포함할 수 있다. 디바이스(100)는 각각의 클라우드 스토리지(1000)에 대응하여 클라우드 스토리지(1000)의 주소 정보(620) 및 클라우드 스토리지(1000)에 등록된 사용자의 계정 정보(630)를 저장할 수 있다.
클라우드 스토리지(1000)의 주소 정보(620)는 클라우드 스토리지(1000)의 URL(Uniform Resource Locator) 주소를 포함할 수 있다.
또한, 사용자 계정 정보(630)는 클라우드 스토리지(1000)에 등록된 사용자의 식별 정보, 비밀 번호를 포함할 수 있다. 또한, 사용자 계정 정보는, 클라우드 스토리지(1000)가 디바이스(100)로부터 수신한 사용자 식별 정보 및 비밀 번호에 기초하여 사용자를 인증함에 따라 디바이스(100)에게 발급한 접근 정보를 포함할 수도 있다. 또한, 사용자 계정 정보(630)는, 디바이스(100)와 클라우드 스토리지(1000)간의 세션 유지를 위한 세션 유지 정보를 포함할 수도 있다.
도 7은 본 발명의 일 실시예에 따른, 파일 분할 정보를 나타내는 도면이다.
도 7을 참조하면, 파일 분할 정보(700)는 파일명(710), 파일의 크기(720)를 포함할 수 있다. 또한, 파일 분할 정보(700)는 각각의 파일 조각(730,740,750)에 대응하여, 파일 내에서 파일 조각의 위치(760), 파일 조각의 식별 정보(770) 및 파일 조각이 저장된 위치(780)를 포함할 수 있다.
예를 들어, “Fiel.avi”라는 파일을 클라우드 스토리지(1000)에 분산 저장할 것을 명령하는 사용자 입력을 수신함에 따라, 디바이스(100)는 “Fiel.avi”라는 파일을 “File1_piece_1.part”, “File1_piece_2.part” 및 “File1_piece_3.part”라는 3 개의 파일 조각으로 분할할 수 있다. 또한, 디바이스(100)는 “File1_piece_1.part”을 제 1 클라우드 스토리지(1000a)에 저장하고, “File1_piece_2.part”를 제 2 클라우드 스토리지(1000b)에 저장하고, “File1_piece_3.part”를 제 3 클라우드 스토리지(1000c)에 저장하도록 결정할 수 있다.
각각의 파일 조각에 대응하는 클라우드 스토리지(1000)에게 각각의 파일 조각을 저장할 것을 요청함에 따라, 디바이스(100)는 “Fiel.avi”의 식별 정보에 대응하여, “File1_piece_1.part”, “File1_piece_2.part” 및 “File1_piece_3.part”의 식별 정보 및 각각의 파일 조각을 저장한 클라우드 스토리지(1000)를 파일 분할 정보(700)로써 저장할 수 있다.
디바이스(100)는 파일 분할 정보(700)를 파일 형태 또는 데이터베이스 형태로 저장할 수 있다. 또한, 디바이스(100)는 파일 분할 정보(700)를 디바이스(100)또는 클라우드 스토리지(1000)에 저장할 수 있다.
도 8은 본 발명의 일 실시예에 따른, 디바이스(100)가 파일 분할 정보에 기초하여 클라우드 스토리지(1000)로부터 파일 조각을 수신하는 방법을 나타내는 도면이다.
도 8을 참조하면, 디바이스(100)에는 파일(50)의 식별 정보(52)에 대응하여 파일 분할 정보(60)가 저장되어 있을 수 있다.
파일(50)이 복수개의 파일 조각으로 분할된 파일인 경우, 디바이스(100)는 파일의 식별 정보(52)에 대응하는 파일 분할 정보(60)를 획득할 수 있다. 파일의 식별 정보(52)에 대응하는 파일 분할 정보(60)를 획득함에 따라, 디바이스(100)는 파일(50)에 대응하는 복수의 파일 조각(50_1, 50_2, 50_4)의 식별 정보 및 복수의 파일 조각(50_1, 50_2, 50_4)이 저장된 클라우드 스토리지(1000)의 식별 정보를 획득할 수 있다.
예를 들어, 디바이스(100)는 파일 분할 정보(60)에 기초하여, File1.avi에 대응하는 파일 조각(50_1, 50_2, 50_4)의 식별 정보는 “File1_piece_1.part”, “File1_piece_2.part” 및 “File1_piece_3.part”이고, “File1_piece_1.part” 파일 조각(50_1)이 저장된 클라우드 스토리지(1000)는 제 1 클라우드 스토리지(1000a)이고, “File1_piece_2.part” 파일 조각(50_2)이 저장된 클라우드 스토리지(1000)는 제 2 클라우드 스토리지(1000b)이고, “File1_piece_3.part” 파일 조각(50_3)이 저장된 클라우드 스토리지(1000)는 제 3 클라우드 스토리지(1000c) 인 것으로 결정할 수 있다.
각각의 파일 조각이 저장된 클라우드 스토리지(1000)의 식별 정보를 획득함에 따라, 디바이스(100)는 각각의 파일 조각을 각각의 파일 조각이 저장된 클라우드 스토리지(1000)에게 요청할 수 있다.
도 9a는 본 발명의 일 실시예에 따른, 디바이스(100)가 클라우드 스토리지(1000)로부터 파일 분할 정보를 수신하는 방법을 설명하기 위한 도면이다.
도 9a를 참조하면, 파일 분할 정보(60)는 복수개의 클라우드 스토리지(1000) 중 적어도 하나에 저장될 수 있다.
파일 분할 정보(60)는 사용자의 식별 정보에 대응하여 파일 형태로 클라우드 스토리지(1000)에 저장되어 있을 수 있다. 이 경우, 파일 분할 정보 파일(60)에는 클라우드 스토리지(1000)에 저장된 사용자의 파일 중 분할된 모든 파일에 대한 파일 분할 정보(60)가 기록되어 있을 수 있다.
파일 분할 정보(60)가 파일 형태로 클라우드 스토리지(1000)에 저장된 경우, 디바이스(100)에는 파일 분할 정보 파일(60)의 식별 정보가 저장되어 있을 수 있다. 또한, 디바이스(100)에는 파일 분할 정보 파일(60)이 저장된 적어도 하나의 클라우드 스토리지(1000)의 식별 정보가 저장되어 있을 수 있다. 이에 따라, 디바이스(100)는 파일 분할 정보 파일(60)이 저장된 클라우드 스토리지(1000)로부터 파일 분할 정보 파일(60)을 수신할 수 있다.
디바이스는 클라우드 스토리지(1000)에 저장된 사용자의 파일 중 분할된 모든 파일에 대한 파일 분할 정보(60)가 기록된 파일 분할 정보 파일(60)로부터, 각각의 파일에 대한 파일 분할 정보(60)를 획득할 수 있다.
실시예에 따라, 파일 분할 정보(60)는 사용자의 식별 정보에 대응하여 데이터베이스 형태로 클라우드 스토리지(1000)에 저장되어 있을 수 있다.
파일 분할 정보(60)가 데이터베이스 형태로 클라우드 스토리지(1000)에 저장된 경우, 디바이스(100)에 파일 분할 정보 데이터베이스(60)가 저장된 적어도 하나의 클라우드 스토리지(1000)의 식별 정보가 저장되어 있을 수 있다.
이에 따라, 디바이스(100)는, 파일 분할 정보 데이터베이스(60)가 저장된 적어도 하나의 클라우드 스토리지(1000)에게, 하나의 파일에 대한 파일 분할 정보(60)를 클라우드 스토리지(1000)에게 요청할 수 있다. 이 경우, 디바이스(100)는 클라우드 스토리지(1000)에 등록된 사용자의 계정 정보 및 파일의 식별 정보를 함께 전송할 수 있다.
디바이스(100)로부터 하나의 파일에 대한 파일 분할 정보(60) 전송 요청을 수신함에 따라, 클라우드 스토리지(1000)는 사용자의 계정 정보에 기초하여 사용자를 인증하고, 사용자의 식별 정보 및 파일의 식별 정보에 기초하여, 파일 분할 정보 데이터베이스(60)로부터 파일에 대한 파일 분할 정보(60)를 디바이스(100)로 송신할 수 있다.
도 9b는 본 발명의 일 실시예에 따른, 디바이스(100)가 클라우드 스토리지(1000)로부터 파일 분할 정보를 수신하고, 파일 분할 정보에 기초하여 클라우드 스토리지(1000)로부터 파일 조각을 수신하는 방법을 나타내는 흐름도이다.
단계 S910에서, 디바이스(100)는 복수개의 파일 조각으로 분할된 파일의 식별 정보를 선택하는 사용자 입력을 수신할 수 있다.
예를 들어, 디바이스(100)는 복수개의 파일 조각으로 분할된 파일의 목록을 디스플레이할 수 있다. 파일의 목록 중 하나를 선택하는 사용자 입력을 수신함으로써, 디바이스(100)는 복수개의 파일 조각으로 분할된 파일의 식별 정보를 선택하는 사용자 입력을 수신할 수 있다.
단계 S913에서, 디바이스(100)는 제 3 클라우드 스토리지(1000c)에게 파일 분할 정보를 요청할 수 있다.
파일 분할 정보는 파일 형태로 클라우드 스토리지(1000)에 저장되어 있을 수 있다. 이 경우, 파일 분할 정보 파일에는 클라우드 스토리지(1000)에 저장된 사용자의 파일 중 분할된 모든 파일에 대한 파일 분할 정보가 기록되어 있을 수 있다.
파일 분할 정보가 파일 형태로 클라우드 스토리지(1000)에 저장된 경우, 디바이스(100)에는 파일 분할 정보 파일의 식별 정보가 저장되어 있을 수 있다. 또한, 디바이스(100)에는 파일 분할 정보 파일이 저장된 적어도 하나의 클라우드 스토리지(1000)의 식별 정보가 저장되어 있을 수 있다.
파일을 실행할 것을 명령하는 사용자 입력을 수신함에 따라, 디바이스(100)는 파일 분할 정보 파일이 저장된 적어도 하나의 클라우드 스토리지(1000)의 식별 정보 및 파일 분할 정보 파일의 식별 정보에 기초하여, 파일 분할 정보 파일을 클라우드 스토리지(1000)에게 요청할 수 있다.
파일 분할 정보 파일이 저장된 적어도 하나의 클라우드 스토리지(1000)가 제 3 클라우드 스토리지(1000c)인 경우, 디바이스(100)는 제 3 클라우드 스토리지(1000c)에게 파일 분할 정보 파일을 요청할 수 있다. 이 경우, 디바이스(100)는 파일 분할 정보 파일의 식별 정보 및 제 3 클라우드 스토리지(1000c)에 등록된 사용자의 계정 정보를 함께 전송할 수 있다.
실시예에 따라, 각각의 파일에 대한 파일 분할 정보가, 사용자의 식별 정보 및 파일의 식별 정보에 대응하여 클라우드 스토리지(1000)에 저장될 수도 있다. 이 경우, 디바이스(100)는 클라우드 스토리지(1000)에게 실행할 파일에 대응하는 파일 분할 정보를 요청할 수도 있다. 이 경우, 디바이스(100)는 실행할 파일의 식별 정보를 함께 전송할 수 있다.
단계 S915에서, 제 3 클라우드 스토리지(1000c)는 파일 분할 정보를 디바이스(100)로 전송할 수 있다.
파일 분할 정보가 파일 형태로 클라우드 스토리지(1000)에 저장된 경우, 제 3 클라우드 스토리지(1000c)는 수신된 사용자의 계정 정보에 기초하여, 사용자에게 파일 분할 정보 파일에 대하여 읽기 권한이 있는지 여부를 결정할 수 있다. 사용자에게 파일 분할 정보 파일에 대하여 읽기 권한이 있는 경우, 제 3 클라우드 스토리지(1000c)는 파일 분할 정보 파일을 디바이스(100)로 전송할 수 있다.
또한, 각각의 파일에 대한 파일 분할 정보가, 사용자의 식별 정보 및 파일의 식별 정보에 대응하여 클라우드 스토리지(1000)에 저장된 경우, 제 3 클라우드 스토리지(1000c)는 파일의 식별 정보에 대응하는 파일 분할 정보를 디바이스(100)로 전송할 수 있다.
단계 S920에서, 디바이스(100)는 복수개의 파일 조각 각각에 대응하여 복수개의 파일 조각이 저장된 클라우드 스토리지(1000)를 결정할 수 있다.
파일 분할 정보 파일을 클라우드 스토리지(1000)로부터 수신한 경우, 디바이스(100)는 파일 분할 정보 파일로부터, 실행할 파일에 대한 파일 분할 정보를 획득할 수 있다. 디바이스(100)는 실행할 파일에 대한 파일 분할 정보에 기초하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지(1000)를 결정할 수 있다.
또한, 실행할 파일에 대한 파일 분할 정보를 클라우드 스토리지(1000)로부터 수신한 경우, 디바이스(100)는 수신한 파일 분할 정보에 기초하여, 복수개의 파일 조각 각각이 저장된 클라우드 스토리지(1000)를 결정할 수 있다.
단계 S925에서, 디바이스(100)는 제 1 클라우드 스토리지(1000a)에 등록된 사용자의 식별 정보에 대응하여 제 1 파일 조각을 요청할 수 있다. 단계 S928에서, 제 1 클라우드 스토리지(1000a)는 제 1 파일 조각을 디바이스(100)로 전송할 수 있다. 단계 S930에서, 디바이스(100)는 제 2 클라우드 스토리지(1000b)에 등록된 사용자의 식별 정보에 대응하여 제 2 파일 조각을 요청할 수 있다. 단계 S935에서, 제 2 클라우드 스토리지(1000b)는 제 2 파일 조각을 디바이스(100)로 전송할 수 있다. 단계 S940에서, 디바이스(100)는 제 3 클라우드 스토리지(1000c)에 등록된 사용자의 식별 정보에 대응하여 제 3 파일 조각을 요청할 수 있다. 단계 S945에서, 제 3 클라우드 스토리지(1000c)는 제 3 파일 조각을 디바이스(100)로 전송할 수 있다. 단계 S950에서, 디바이스(100)는 수신된 제 1 내지 제 3 파일 조각을 조합하여 파일을 생성할 수 있다. 단계 S955에서, 디바이스(100)는 생성된 파일을 실행할 수 있다.
도 9c는 본 발명의 일 실시예에 따른, 사용자의 다른 디바이스(100b)가 클라우드 스토리지(1000)로부터 파일 분할 정보를 수신하고, 수신한 파일 분할 정보에 기초하여 클라우드 스토리지(1000)로부터 파일 조각을 수신하는 방법을 나타내는 도면이다.
도 9c를 참조하면, 사용자의 다른 디바이스(100b)는 클라우드 스토리지(1000)에 저장된 파일 분할 정보(60)를 획득하고, 획득된 파일 분할 정보(60)에 기초하여 클라우드 스토리지(1000)로부터 복수개의 파일 조각들을 수신할 수 있다.
사용자의 다른 디바이스(100b)는 사용자의 디바이스 중 복수개의 파일 조각을 클라우드 스토리지(1000)에 저장한 디바이스가 아닌 디바이스일 수 있다. 사용자의 다른 디바이스(100b)에도 또한 복수의 클라우드 스토리지(1000)에 등록된 사용자의 계정 정보가 저장되어 있을 수 있다.
사용자의 다른 디바이스(100b)는 클라우드 스토리지(1000)로부터 파일 분할 정보 파일(60)을 수신할 수 있다. 예를 들어, 사용자의 다른 디바이스(100b)는, 클라우드 스토리지(1000)에 등록된 사용자의 계정 정보에 기초하여, 클라우드 스토리지(1000)에게 클라우드 스토리지(1000)에 저장된 사용자의 파일의 목록을 요청할 수 있다. 파일의 목록에 대한 요청을 수신함에 따라, 클라우드 스토리지(1000)는 사용자의 다른 디바이스(100b)로부터 수신된 사용자의 계정 정보에 기초하여 사용자를 인증하고, 사용자의 파일의 목록을 사용자의 다른 디바이스(100b)로 송신할 수 있다. 사용자의 파일의 목록은 파일 분할 정보 파일(60)의 식별 정보를 포함할 수 있다. 사용자의 다른 디바이스(100b)는 파일 분할 정보 파일(60)의 식별 정보에 기초하여, 파일 분할 정보 파일(60)을 클라우드 스토리지(1000)에게 요청하여 수신할 수 있다.
사용자의 다른 디바이스(100b)는 파일 분할 정보 파일(60)로부터, 복수의 클라우드 스토리지(1000)에 분산 저장된 사용자의 파일의 목록을 획득할 수 있다. 또한, 사용자의 다른 디바이스(100b)는 클라우드 스토리지(1000)에 분산 저장된 파일의 목록을 디스플레이할 수 있다.
클라우드 스토리지(1000)에 분산 저장된 파일의 목록 중 하나를 실행하기 위한 사용자 입력을 수신함에 따라, 사용자의 다른 디바이스(100b)는 파일 분할 정보 파일(60)로부터, 실행할 파일에 대한 복수의 파일 조각의 식별 정보 및 각각의 파일 조각이 저장된 클라우드 스토리지(1000)의 식별 정보를 획득할 수 있다. 사용자의 다른 디바이스(100b)는 복수의 파일 조각의 식별 정보 및 각각의 파일 조각이 저장된 클라우드 스토리지(1000)의 식별 정보에 기초하여, 각각의 클라우드 스토리지(1000)에게 각각의 클라우드 스토리지(1000)가 저장하는 파일 조각을 요청할 수 있다.
도 10은 본 발명의 일 실시예에 따른, 디바이스(100)가 외부 서버로부터 파일 분할 정보를 수신하고, 파일 분할 정보에 기초하여 클라우드 스토리지(1000)로부터 복수개의 파일 조각을 수신하는 방법을 나타내는 도면이다.
도 10을 참조하면, 파일 분할 정보(60)는 파일 분할 저장 서버(2000)에 저장될 수 있다.
디바이스(100a)는 파일 분할 정보 서버(2000)에게, 파일 분할 정보 서버(2000)에 등록된 사용자의 식별 정보에 대응하여 하나의 파일(50)에 대한 파일 분할 정보(60)를 저장할 것을 요청할 수 있다. 또한, 디바이스(100a)는 파일 분할 정보 서버(2000)에게 하나의 파일(50)에 대응하는 파일 분할 정보(60)를 수신할 수 있다.
파일 분할 정보 서버(2000)는 파일 분할 정보 서버(2000)에 등록된 사용자의 식별 정보 및 파일의 식별 정보에 대응하여, 사용자의 파일 분할 정보(60)를 저장할 수 있다. 또한, 파일 분할 정보 서버(2000)는 사용자의 식별 정보 및 파일의 식별 정보에 기초하여, 사용자의 파일 분할 정보(60)를 획득하고, 획득된 사용자의 파일 분할 정보(60)를 디바이스(100a)로 송신할 수 있다.
사용자의 다른 디바이스(100b) 또한 사용자의 식별 정보 및 파일의 식별 정보에 기초하여, 서버로부터 파일 분할 정보(60)를 수신할 수 있다.
다른 사용자의 디바이스(200) 또한, 파일 분할 정보 서버(2000)에 등록된 다른 사용자의 식별 정보 및 파일의 식별 정보에 기초하여, 다른 사용자의 파일에 대한 파일 분할 정보(70)를 파일 분할 정보 서버(2000)에 저장하거나, 파일 분할 정보 서버(2000)로부터 수신 할 수 있다.
도 11a 내지 도 11e는 본 발명의 일 실시예에 따른, 사용자의 파일이 분산 저장됨에 따라 디바이스(100)가 파일의 목록을 디스플레이하는 방법을 나타내는 도면이다.
도 11a를 참조하면, 사용자의 파일은 제 1 클라우드 스토리지(1000a), 제 2 클라우드 스토리지(1000b) 및 제 3 클라우드 스토리지(1000c)에 저장되어 있을 수 있다.
예를 들어, 제 1 클라우드 스토리지(1000a)에 저장되는 사용자의 파일은 “First_Cloud_Drive” 폴더(1110)에 저장될 수 있다. 또한, 제 2 클라우드 스토리지(1000b)에 저장되는 사용자의 파일은 “Second_Cloud_Drive” 폴더(1120)에 저장될 수 있다. 또한, 제 3 클라우드 스토리지(1000c)에 저장되는 사용자의 파일은 “Third_Cloud_Drive” 폴더(1130)에 저장될 수 있다. 또한, 제 3 클라우드 스토리지(1000c)에는 “Third_Cloud_Drive_FILE1” 파일(1132) 및 “Third_Cloud_Drive_FILE2” 파일(1234)이 저장되어 있을 수 있다.
또한, 하나의 클라우드 스토리지(1000)에 저장되는 사용자의 파일 조각들 및 파일 분할 정보는 기 결정된 폴더 내에 모두 저장될 수 있다. 또한, 복수의 클라우드 스토리지(1000)에서 동일한 사용자의 파일 조각들이 저장되는 폴더의 식별 정보는 동일할 수 있다. 예를 들어, 제 1 클라우드 스토리지(1000a)에서 사용자의 파일 조각이 저장되는 폴더(1115), 제 2 클라우드 스토리지(1000b)에서 사용자의 파일 조각이 저장되는 폴더(1125) 및 제 3 클라우드 스토리지(1000c)에서 사용자의 파일 조각이 저장되는 폴더(1135)의 식별 정보는 “Private”으로 동일할 수 있다.
도 11b를 참조하면, 디바이스(100)는 클라우드 스토리지(1000)에 저장된 파일의 목록을 디스플레이할 수 있다.
예를 들어, 클라우드 스토리지(1000)에 저장된 파일의 목록을 디스플레이하는 사용자 입력을 수신함에 따라, 디바이스(100)는 클라우드 스토리지(1000)에게 사용자의 파일의 목록을 요청하여 수신할 수 있다. 또한, 예를 들어, 클라우드 스토리지(1000)로부터 파일이 추가, 삭제 또는 업데이트 되었음을 나타내는 이벤트를 수신함에 따라, 디바이스(100)는 클라우드 스토리지(1000)에게 사용자의 파일의 목록을 요청하여 수신할 수 있다. 또한, 디바이스(100)는 클라우드 스토리지(1000)로부터 클라우드 스토리지(1000)에 저장된 파일들의 파일 계층 구조에 관한 정보를 함께 수신할 수 있다.
파일의 목록 및 파일 계층 구조에 관한 정보를 수신함에 따라, 디바이스(100)는 도 11a에 도시된 클라우드 스토리지(1000)에 저장된 폴더 및 파일의 목록을 디스플레이할 수 있다.
파일의 목록 중 제 3 클라우드 스토리지(1000c)에 저장된 “Third_Cloud_Drive_FILE2” 파일(1134)을 선택하고, 기 결정된 사용자 입력을 수신함에 따라, 디바이스(100)는 “Third_Cloud_Drive_FILE2” 파일(1134)을 클라우드 스토리지(1000)에 분산 저장하기 위한 메뉴(1180)를 디스플레이할 수 있다. “Third_Cloud_Drive_FILE2” 파일(1134)을 클라우드 스토리지(1000)에 분산 저장하기 위한 메뉴(1180)를 선택하는 사용자 입력을 수신함에 따라, 디바이스(100)는 ““Third_Cloud_Drive_FILE2” 파일(1134)을 3 개의 파일 조각으로 분할할 수 있다. 또한, 디바이스(100)는 3 개의 파일 조각의 파일명을 “Third_Cloud_Drive_FILE2.part1”, “Third_Cloud_Drive_FILE2.part2” 및 “Third_Cloud_Drive_FILE2.part3”로 결정할 수 있다.
디바이스(100)와 클라우드 스토리지(1000)가 파일의 메타데이터만을 동기화하는 경우, 디바이스(100)는 “Third_Cloud_Drive_FILE2” 파일(1134)의 컨텐츠 데이터를 클라우드 스토리지(1000)에게 요청하여 수신하고, 수신된 “Third_Cloud_Drive_FILE2” 파일(1134)의 컨텐츠 데이터를 3 개의 파일 조각으로 분할할 수 있다.
또한, 디바이스(100)와 클라우드 스토리지(1000)가 파일의 메타데이터 및 파일의 컨텐츠 데이터를 함께 동기화하는 경우, 디바이스(100)에는 “Third_Cloud_Drive_FILE2” 파일(1134)의 컨텐츠가 저장되어 있을 수 있다. 이 경우, 디바이스(100)는 디바이스(100)에 저장된 “Third_Cloud_Drive_FILE2” 파일(1134)의 컨텐츠 데이터를 3 개의 파일 조각으로 분할 할 수 있다.
디바이스(100)는 분할된 파일 조각을 저장할 클라우드 스토리지(1000)를 결정할 수 있다. 디바이스(100)는 각각의 파일 조각을 저장할 클라우드 스토리지(1000)에게, 각각의 파일 조각을 “private” 폴더에 저장할 것을 요청할 수 있다. 또한, 디바이스(100)는 “Third_Cloud_Drive_FILE2” 파일(1134)에 대한 파일 분할 정보를 “replica_info.dat” 파일로 생성하고, 생성된 “replica_info.dat”파일을 “private” 폴더에 저장할 것을 적어도 하나의 클라우드 스토리지(1000)에게 요청할 수 있다.
또한, 디바이스(100)는 “Third_Cloud_Drive_FILE2” 파일(1134)이 저장된 제 3 클라우드 스토리지(1000c)에게 “Third_Cloud_Drive_FILE2” 파일(1134)을 삭제할 것을 요청할 수 있다.
도 11c를 참조하면, 디바이스(100)로부터 파일 조각 저장 요청을 수신함에 따라, 제 1 클라우드 스토리지(1000a)는 제 1 클라우드 스토리지(1000a) 내의 “private” 폴더(1115)에 수신된 “Third_Cloud_Drive_FILE2_part1” 파일 조각(1116)을 저장할 수 있다. 또한, 제 2 클라우드 스토리지(1000b)는 제 2 클라우드 스토리지(1000b) 내의 “private” 폴더(1125)에 수신된 “Third_Cloud_Drive_FILE2_part1” 파일 조각(1126)을 저장할 수 있다. 또한, 제 3 클라우드 스토리지(1000c)는 제 3 클라우드 스토리지(1000c) 내의 “private” 폴더(1135)에, 수신된 “Third_Cloud_Drive_FILE2_part1” 파일 조각(1136)을 저장할 수 있다.
또한, 디바이스(100)로부터 파일 분할 정보 저장 요청을 수신함에 따라, 각각의 클라우드 스토리지(1000)는 각각의 “private” 폴더(1115, 1125, 1135)에 “Third_Cloud_Drive_FILE2” 파일(1134)의 파일 분할 정보를 포함하는 “replica_info.dat”(1150)를 저장할 수 있다.
또한, 디바이스(100)로부터 “Third_Cloud_Drive_FILE2” 파일(1134)에 대한 삭제 요청을 수신함에 따라, 제 3 클라우드 스토리지(1000c)는 “Third_Cloud_Drive_FILE2” 파일(1134)을 삭제할 수 있다.
도 11d를 참조하면, 복수의 클라우드 스토리지(1000)에 파일이 분산 저장됨에 따라, 디바이스(100)는 “Third_Cloud_Drive_FILE2” 파일(1134)의 위치를 “Third_Cloud_Drive” 폴더(1130)로부터 기 결정된 “Private” 폴더(1170) 내로 이동시킬 수 있다.
도 11e를 참조하면, 사용자의 다른 디바이스(100b)는 클라우드 스토리지(1000)로부터 분산 저장된 파일의 목록을 수신하고, 수신된 파일의 목록을 디스플레이할 수 있다. 사용자의 다른 디바이스(100b)는 사용자의 디바이스(100b) 중 복수개의 파일 조각을 클라우드 스토리지(1000)에 저장한 디바이스가 아닌 디바이스일 수 있다.
사용자의 다른 디바이스(100b)는 클라우드 스토리지(1000)로부터 분산 저장된 파일의 목록을 수신할 수 있다.
예를 들어, 클라우드 스토리지(1000)에 분산 저장된 파일의 목록을 디스플레이하는 사용자 입력을 수신함에 따라, 사용자의 다른 디바이스(100b)는 복수의 클라우드 스토리지(1000) 중 적어도 하나의 클라우드 스토리지(1000)에게 “replica_info.dat” 파일(1150)을 요청할 수 있다.
또한, 예를 들어, 클라우드 스토리지(1000)로부터 “replica_info.dat” 파일(1150)이 업데이트 되었음을 나타내는 이벤트를 수신함에 따라, 사용자의 다른 디바이스(100b)는 이벤트를 전송한 클라우드 스토리지(1000)에게 “replica_info.dat” 파일(1150)을 요청할 수 있다.
적어도 하나의 클라우드 스토리지(1000)로부터 “replica_info.dat” 파일(1150)을 수신함에 따라, 사용자의 다른 디바이스(100b)는 “replica_info.dat” 파일(1150)로부터 분산 저장된 파일의 파일명을 획득할 수 있다. 사용자의 다른 디바이스(100b)는 분산 저장된 파일의 파일명에 기초하여, 분산 저장된 파일의 목록을 디스플레이할 수 있다. 예를 들어, 사용자의 다른 디바이스(100b)는 “Third_Cloud_Drive_FILE2” 파일(1134)의 파일명을 “Private” 폴더(1182) 내에 디스플레이할 수 있다. 이 경우, 사용자의 다른 디바이스(100b)는 사용자의 다른 디바이스(100b)에 “Third_Cloud_Drive_FILE2” 파일(1134)이 실제로 저장되어 있지 않고, 파일의 메타데이터만이 저장되어 있음을, 음영, 색 또는 이미지 등으로 표시할 수 있다.
“Third_Cloud_Drive_FILE2” 파일(1134)을 선택하는 사용자 입력을 수신함에 따라, 사용자의 다른 디바이스(100b)는 “replica_info.dat” 파일(1150)로부터 “Third_Cloud_Drive_FILE2” 파일(1134)의 파일 분할 정보를 획득할 수 있다. 사용자의 다른 디바이스(100b)는 “Third_Cloud_Drive_FILE2” 파일(1134)의 파일 분할 정보에 기초하여, “Third_Cloud_Drive_FILE2” 파일(1134)에 대응하는 파일 조각을 각각의 클라우드 스토리지(1000)로부터 수신할 수 있다. 사용자의 다른 디바이스(100b)는 수신된 파일 조각을 조합하여 “Third_Cloud_Drive_FILE2” 파일(1134)을 다시 생성하고, 생성된 “Third_Cloud_Drive_FILE2” 파일(1134)을 실행할 수 있다.
도 12a 내지 도 12b는 본 발명의 일 실시예에 따른, 디바이스(100)가 디바이스(100)에만 저장된 파일을 분할하여 복수개의 클라우드 스토리지(1000)에 분산 저장함에 따라, 분산 저장된 파일을 디스플레이하는 방법을 설명하기 위한 도면이다.
도 12a를 참조하면, 디바이스(100)는 사용자의 입력에 따라, 디바이스(100)에만 저장된 파일을 분할하여, 복수의 클라우드 스토리지(1000)에 저장할 수 있다.
예를 들어, 디바이스(100)에는 “Harry Potter.avi” 파일(1230)이 “Movie” 폴더 내에 저장되어 있을 수 있다. “Harry Potter.avi” 파일(1230)은 디바이스(100)의 사용자가 등록된 클라우드 스토리지(1000)에 저장되어 있지 않을 수 있다.
“Harry Potter.avi” 파일(1230)를 선택하고, 기 결정된 사용자 입력을 수신함에 따라, 디바이스(100)는 “Harry Potter.avi” 파일(1230)을 복수의 클라우드 스토리지(1000)에 분산 저장하기 위한 메뉴(1180)를 디스플레이할 수 있다. 분산 저장하기 위한 메뉴(1180)를 선택하는 사용자 입력을 수신함에 따라, 디바이스(100)는 “Harry Potter.avi” 파일(1230)을 복수개의 파일 조각으로 분할할 수 있다. 또한, 디바이스(100)는 복수개의 파일 조각을 복수개의 클라우드 스토리지(1000)에 분산 저장할 수 있다.
도 12b를 참조하면, 복수개의 파일 조각을 복수개의 클라우드 스토리지(1000)에 분산 저장함에 따라, 디바이스(100)는 파일을 디바이스(100)에서 삭제할 수 있다.
예를 들어, 복수개의 파일 조각을 복수개의 클라우드 스토리지(1000)에 분산 저장함에 따라, 디바이스(100)는 “Harry Potter.avi” 파일(1230)의 컨텐츠 데이터를 디바이스(100)에서 삭제하고, “Harry Potter.avi” 파일(1230)을 클라우드 스토리지(1000)에 저장된 파일로써 디스플레이할 수 있다. 예를 들어, 디바이스(100)는, 디바이스(100) 내의 복수개의 폴더 중 분산 저장된 파일이 위치하는 폴더로써 “Private” 폴더(1182)의 식별 정보가 저장되어 있을 수 있다. 이에 따라, 디바이스(100)는 “Harry Potter.avi” 파일(1230)의 파일명이 “Private” 폴더(1182) 내에서 나타날 있도록, “Harry Potter.avi” 파일(1230)의 위치를 변경할 수 있다.
또한, 실시예에 따라, 디바이스(100)는 “Harry Potter.avi” 파일(1230)의 컨텐츠 데이터를 삭제하지 않을 수도 있다.
도 13은 본 발명의 일 실시예에 따른, 디바이스(100)가 파일을 분산 저장할 클라우드 스토리지(1000)를 선택하기 위한 사용자 인터페이스를 제공하는 방법을 설명하기 위한 도면이다.
도 13을 참조하면, 디바이스(100)는 파일을 분산 저장할 클라우드 스토리지(1000)를 선택하기 위한 사용자 인터페이스를 제공할 수 있다.
예를 들어, 파일을 선택하고, 선택된 파일을 분산 저장하기 위한 메뉴를 선택하는 사용자 입력을 수신함에 따라, 디바이스(100)는 선택된 파일을 분산 저장할 클라우드 스토리지(1000)를 선택하기 위한 메뉴(1310)를 디스플레이할 수 있다.
파일을 분산 저장할 클라우드 스토리지(1000)를 선택하기 위한 메뉴 (1310)는 사용자가 등록된 클라우드 스토리지(1000)의 식별 정보 및 사용자가 등록된 클라우드 스토리지(1000) 각각을 선택하기 위한 체크 박스 버튼을 포함할 수 있다.
적어도 하나의 체크 박스 버튼을 선택하고, 확인 버튼을 누르는 사용자 입력을 수신함에 따라, 디바이스(100)는 체크 박스 버튼이 선택된 클라우드 스토리지(1000)들 중, 선택된 파일의 파일 조각 각각에 대응하여 파일 조각을 저장할 클라우드 스토리지(1000)를 결정할 수 있다.
도 14a 및 도 14b는 발명의 일 실시예에 따른, 디바이스(100)가 복수의 클라우드 스토리지(1000)에 동일한 파일 조각을 중복 저장하는 방법을 설명하기 위한 도면이다.
도 14a를 참조하면, 디바이스(100)는 복수개의 클라우드 스토리지(1000)에게 동일한 파일 조각을 저장할 것을 요청할 수 있다.
디바이스(100)는 하나의 파일을 복수개의 파일 조각으로 분할하고, 분할된 파일 조각 각각에 대응하여, 분할된 파일 조각을 저장할 복수개의 클라우드 스토리지(1000)를 결정할 수 있다. 이 경우, 디바이스(100)는 동일한 파일 조각에 대응하여, 동일한 파일 조각을 저장할 클라우드 스토리지(1000)를 복수개 결정할 수 있다.
예를 들어, 디바이스(100)는 하나의 파일(50)을 파일 조각 1(50_1), 파일 조각 2(50_2), 파일 조각 3(50_3)으로 분할하고, 파일 조각 1(50_1)을 저장할 클라우드 스토리지(1000)로써 제 1 클라우드 스토리지(1000a) 및 제 2 클라우드 스토리지(1000b)로 결정하고, 파일 조각 2(50_2)을 저장할 클라우드 스토리지(1000)로써 제 2 클라우드 스토리지(1000b) 및 제 2 클라우드 스토리지(1000b)로 결정하고, 파일 조각 3(50_3)을 저장할 클라우드 스토리지(1000)로써 제 1 클라우드 스토리지(1000a) 및 제 3 클라우드 스토리지(1000c)로 결정할 수 있다.
파일 조각을 저장할 클라우드 스토리지(1000)를 결정함에 따라, 디바이스(100)는 동일한 파일 조각을 저장할 복수개의 클라우드 스토리지(1000)에게 동일한 파일 조각을 저장할 것을 요청할 수 있다.
도 14b를 참조하면, 동일한 파일 조각에 대하여 복수개의 클라우드 스토리지(1000)가 결정됨에 따라, 디바이스(100)는 각각의 파일 조각(730, 740, 750)에 대하여, 파일 조각의 저장 위치(780)로써 복수개의 클라우드 스토리지(1000)가 결정된 파일 분할 정보(700)를 생성할 수 있다.
도 14c는 본 발명의 일 실시예에 따른, 복수개의 파일에 대응하는 파일 조각이 복수개의 클라우드 스토리지(1000)에 중복 저장됨에 따라, 복수개의 클라우드 스토리지(1000)에 저장된 파일 조각들을 나타내는 도면이다.
도 14c를 참조하면, 디바이스(100)는 파일 X(50x), 파일 Y(50y) 및 파일 Z(50z)를 분할하여, 동일한 파일 조각이 복수개의 클라우드 스토리지(1000)에 중복 저장되도록, 파일 조각들을 클라우드 스토리지(1000)에 저장할 수 있다.
예를 들어, 디바이스(100)는 파일 X(50x)를 X_1.part 파일 조각(50x_1) 및 X_2.part 파일 조각(50x_2)로 분할 할 수 있다. 디바이스(100)는 파일 Y(50y)를 Y_1.part 파일 조각(50y_1) 및 Y_2.part 파일 조각(50y_2)로 분할 할 수 있다. 디바이스(100)는 파일 Z(50z)를 Z_1.part 파일 조각(50z_1) 및 Z_2.part 파일 조각(50z_2)로 분할 할 수 있다. 그리고, 디바이스(100)는 X_1.part 파일 조각(50x_1)을 제 1 클라우드 스토리지(1000a) 및 제 2 클라우드 스토리지(1000b)에 저장할 수 있다. 또한, 디바이스(100)는 X_2.part 파일 조각(50x_2)을 제 3 클라우드 스토리지(1000c) 및 제 4 클라우드 스토리지(1000d)에 저장할 수 있다. 또한, 디바이스(100)는 Y_1.part 파일 조각(50y_1)을 제 1 클라우드 스토리지(1000a) 및 제 3 클라우드 스토리지(1000c)에 저장할 수 있다. 또한, 디바이스(100)는 Y_2.part 파일 조각(50y_2)을 제 2 클라우드 스토리지(1000b) 및 제 4 클라우드 스토리지(1000d)에 저장할 수 있다. 또한, 디바이스(100)는 Z_1.part 파일 조각(50z_1)을 제 1 클라우드 스토리지(1000a) 및 제 4 클라우드 스토리지(1000d)에 저장할 수 있다. 디바이스(100)는 Z_2.part 파일 조각(50z_2)을 제 2 클라우드 스토리지(1000b) 및 제 3 클라우드 스토리지(1000c)에 저장할 수 있다.
또한, 디바이스(100)는 파일 X(50x), 파일 Y(50y) 및 파일 Z(50z)에 대한 파일 분할 정보를 “_reflica_info.dat”파일(1410)로 생성할 수 있다. “_reflica_info.dat”파일(1410)은 파일 X(50x), 파일 Y(50y) 및 파일 Z(50z) 각각의 식별 정보에 대응하는, 파일 X(50x), 파일 Y(50y) 및 파일 Z(50z) 각각의 파일 분할 정보를 포함할 수 있다.
디바이스(100)는 파일 분할 정보 파일인 “_reflica_info.dat”파일(1410)을 제 1 클라우드 스토리지(1000a) 내지 제 4 클라우드 스토리지(1000d)에 저장할 수 있다.
도 14d는 본 발명의 일 실시예에 따른, 복수의 클라우드 스토리지(1000) 중 하나의 클라우드 스토리지(1000)가 동작하지 않은 경우, 복수의 클라우드 스토리지(1000)로부터 파일 조각을 수신하는 방법을 설명하기 위한 도면이다.
도 14d를 참조하면, 하나의 파일(50)에 대응하여, 제 1 내지 제 3 파일 조각(50_1, 50_2, 50_3)이 제 1 내지 제 3 클라우드 스토리지(1000a 내지 1000c))에 중복 저장되고, 제 2 클라우드 스토리지(1000b)가 동작하지 않는 경우, 디바이스(100)는 제 1 클라우드 스토리지(1000a) 및 제 3 클라우드 스토리지(1000c)로부터 제 1 내지 제 3 파일 조각(50_1, 50_2, 50_3)을 수신하여 파일을 생성할 수 있다.
예를 들어, 디바이스(100)는 제 1 클라우드 스토리지(1000a)로부터 제 1 파일 조각(50_1) 및 제 3 파일 조각(50_3)을 수신하고, 제 3 클라우드 스토리지(1000c)로부터 제 2 파일 조각(50_2)을 수신함으로써 제 1 내지 제 3 파일 조각(50_1, 50_2, 50_3)을 모두 획득할 수 있다.
도 15는 본 발명의 일 실시예에 따른, 동일한 파일 조각이 복수개의 클라우드 스토리지(1000)에 중복 저장됨에 따라, 디바이스(100)가 동일한 파일 조각을 복수개의 클라우드 스토리지(1000)로부터 동시에 수신하는 방법을 설명하기 위한 도면이다.
도 15를 참조하면, 디바이스(100)는 동일한 파일 조각을 복수의 클라우드 스토리지(1000)로부터 동시에 수신할 수 있다.
예를 들어, 디바이스(100)는 파일 조각 3(50_3)의 일 부분을 제 3 클라우드 스토리지(1000c)로부터 수신하고, 파일 조각 3(50_3)의 다른 부분을 제 4 클라우드 스토리지(1000d)로부터 수신하도록 결정할 수 있다. 이에 따라, 디바이스(100)는 제 3 클라우드 스토리지(1000c)에게 파일 조각 3(50_3)의 일부분을 요청하고, 제 4 클라우드 스토리지(1000d)에게 파일 조각 4(50_4)의 다른 부분을 요청할 수 있다.
이 경우, 디바이스(100)는 파일 조각의 식별 정보뿐만 아니라 수신할 데이터의 파일 조각 내의 위치 정보를 함께 클라우드 스토리지(1000d)에게 전송할 수 있다. 이에 따라, 디바이스(100)는 제 3 파일 조각을 제 3 클라우드 스토리지(1000c) 및 제 4 클라우드 스토리지(1000d)로부터 동시에 수신할 수 있다.
도 16a 및 도 16b는 본 발명의 일 실시예에 따른, 디바이스(100)가 파일을 암호화하는 방법을 설명하기 위한 도면이다.
도 16a를 참조하면, 디바이스(100)는 파일(50)을 파일 조각으로 분할하기 전에 파일(50)을 암호화할 수 있다. 파일(50)을 암호화한 후, 암호화된 파일을 복수개의 파일 조각(50_1, 50_2, 50_3)으로 분할할 수 있다.
또한, 디바이스(100)는 파일에 대응하는 복수개의 파일 조각(50_1, 50_2, 50_3)을 클라우드 스토리지(1000)로부터 수신할 수 있다. 디바이스(100)는 수신된 복수개의 파일 조각(50_1, 50_2, 50_3)을 조합하여 암호화된 파일을 복원할 수 있다. 암호화된 파일을 복원한 후, 디바이스(100)는 복원된 파일을 복호화하고, 복호화된 파일(50)을 실행할 수 있다.
도 16b를 참조하면, 파일을 암호화한 후, 암호화된 파일을 복수개의 파일 조각으로 분할함에 따라, 디바이스(100)는 파일의 식별 정보에 대응하여 암호화 시 사용된 암호화 키(1610)를 파일 분할 정보(700)로써 저장할 수 있다.
실시예에 따라, 암호화 키(1610)는 파일 분할 정보(700)와 분리되어 저장될 수 있다. 예를 들어, 암호화 키(1610)는 파일 분할 정보(700)와 분리되어 디바이스(100)에 저장될 수 있으며, 클라우드 스토리지(1000)에 저장될 수도 있다.
도 17a 및 도 17b는 본 발명의 다른 실시예에 따른, 디바이스(100)가 파일을 암호화하는 방법을 설명하기 위한 도면이다.
도 17a를 참조하면, 디바이스(100)는 파일(50)을 복수개의 파일 조각으로 분할한 후, 분할된 파일 조각 각각을 암호화할 수 있다. 분할된 파일 조각 각각을 암호화함에 따라, 디바이스(100)는 암호화된 복수개의 파일 조각(53, 55, 57)을 클라우드 스토리지(1000)에 저장할 수 있다.
또한, 디바이스(100)는 파일(50)에 대응하는 암호화된 복수개의 파일 조각(53, 55, 57)을 클라우드 스토리지(1000)로부터 수신할 수 있다. 디바이스(100)는 수신된 복수개의 파일 조각(53, 55, 57)을 복호화하고, 복호화된 복수개의 파일 조각을 조합하여 파일을 생성하고, 생성된 파일을 실행할 수 있다.
도 17b를 참조하면, 파일을 복수개의 파일 조각으로 분할한 후, 복수개의 파일 조각 각각을 암호화함에 따라, 디바이스(100)는 파일 조각 각각의 식별 정보에 대응하여, 암호화 시 사용된 암호화 키(1710, 1720, 1730)를 파일 분할 정보(700)로써 저장할 수 있다.
도 18a 및 도 18b는 본 발명의 일 실시예에 따른, 디바이스(100)가 파일을 암호화하기 위해, 사용자로부터 암호화를 위한 정보를 수신하는 방법을 설명하기 위한 도면이다.
도 18a를 참조하면, 디바이스(100)는 파일을 암호화하기 위한 사용자 인터페이스를 제공할 수 있다.
예를 들어, 디바이스(100)는 파일을 분산 저장할 때, 파일 암호화에 사용될 비밀 번호를 설정하기 위한 메뉴(1800)를 제공할 수 있다. 비밀 번호를 설정하기 위한 메뉴(1800)는 파일을 분산 저장할 때 파일을 암호화를 할지 여부를 선택하기 위한 체크 박스(1810), 비밀 번호를 입력하기 위한 입력 필드(1820) 및 스크린 키보드를 포함할 수 있다. 입력 필드(1820)에 입력된 비밀 번호를 저장하는 사용자 입력을 수신함에 따라, 디바이스(100)는 입력된 비밀 번호에 기초하여 파일을 암호화할 수 있다.
도 18b를 참조하면, 디바이스(100)는 파일을 분산 저장할 때, 파일에 대응하여 비밀 번호를 설정하기 위한 사용자 인터페이스를 제공할 수도 있다.
예를 들어, 파일을 선택하고, 선택된 파일을 분산 저장할 것을 명령하는 사용자 입력을 수신함에 따라, 디바이스(100)는 선택된 파일에 대응하여 비밀 번호를 설정하기 위한 설정창(1830)을 디스플레이할 수 있다. 선택된 파일에 대응하여 설정창(1830)에 비밀 번호를 입력하고, 입력된 비밀 번호를 저장하는 사용자 입력을 수신함에 따라, 디바이스(100)는 입력된 비밀 번호를 암호화 키로하여, 선택된 파일을 암호화할 수 있다.
도 18c는 본 발명의 일 실시예에 따른, 암호화되어 분산 저장된 파일을 선택하는 사용자 입력을 수신함에 따라, 디바이스(100)가 복호화 정보를 입력받기 위한 사용자 인터페이스를 제공하는 방법을 설명하기 위한 도면이다.
디바이스(100)는 분산 저장된 파일의 목록을 디스플레이할 수 있다. 또한, 디바이스(100)는 파일의 목록 중 하나를 선택하는 사용자 입력을 수신할 수 있다. 선택된 파일이 암호화되어 분산 저장된 파일인 경우, 디바이스(100)는 복호화 정보를 입력 받기 위한 비밀 번호 입력창(1840)을 디스플레이할 수 있다.
비밀 번호 입력창(1840)에 비밀 번호를 입력하고, 입력을 완료하는 사용자 입력을 수신함에 따라, 디바이스(100)는 입력된 비밀 번호에 기초하여 선택된 파일을 복호화할 수 있다.
도 19는 본 발명의 일 실시예에 따른, 파일을 분산 저장하는 기능을 수행하는 디바이스(100)내의 모듈을 나타내는 도면이다.
도 19를 참조하면, 디바이스(100)내의 복수의 모듈이 파일을 분산 저장하는 기능을 수행할 수 있다. 복수의 모듈은 메모리에 적재된 프로그램이 디바이스(100)내의 프로세서에서 실행됨으로써 구현될 수 있다.
디바이스(100)는, 계정 관리 모듈(Account Management Module, 1910), 데이터 관리 모듈(Data/Metadata Management Module, 1920), 업데이트 관리 모듈(Update Management Module, 1930), 파일 분산 저장 모듈(Data Duplication Module, 1940) 및 클라우드 스토리지 연결 모듈(Cloud Storage Adaptation Interface, 1950)을 포함할 수 있다. 또한, 실시예에 따라, 디바이스(100)는 데이터베이스 기능을 수행하는 데이터베이스 모듈(Database, 1960)을 포함할 수 있다.
계정 관리 모듈(1910)은, 각각의 클라우드 스토리지(1000)에 등록된 사용자의 계정을 관리할 수 있다. 예를 들어, 계정 관리 모듈(1910)은 사용자의 계정 정보를 저장할 수 있다. 또한, 계정 관리 모듈(1910)은 사용자의 계정에 기초하여, 계정을 입력하는 별도의 사용자 입력 없이 클라우드 스토리지(1000)와 데이터를 송수신할 수 있다.
데이터 관리 모듈(1920)은 디바이스(100)에서 지원하는 데이터 형식에 맞추어, 클라우드 스토리지(1000)로부터 수신된 파일 또는 클라우드 스토리지(1000)에 저장할 파일의 데이터와 메타데이터를 디바이스(100)의 데이터베이스(1960)에 저장할 수 있다. 또한, 데이터 관리 모듈(1920)은, 클라우드 스토리지(1000)와 디바이스(100)간에 파일을 연동하여 관리할 수 있다.
업데이트 관리 모듈(1930)은, 클라우드 스토리지(1000) 또는 디바이스(100)에서 파일이 추가, 삭제 또는 업데이트됨에 따라, 클라우드 스토리지(1000)와 연동하여, 클라우드 스토리지(1000)와 파일을 동기화할 수 있다.
파일 분산 저장 모듈(1940)은 사용자의 파일을 복수개의 파일 조각으로 분할하고, 분할된 복수개의 파일 조각을 복수개의 클라우드 스토리지(1000)에 저장할 수 있다. 또한, 파일 분산 저장 모듈(1940)은 복수개의 클라우드 스토리지(1000)로부터 파일에 대응하는 복수개의 파일 조각을 수신하고, 수신된 복수개의 파일 조각을 조합하여 파일을 다시 생성할 수 있다.
클라우드 스토리지 연결 모듈(1950)은 복수의 클라우드 스토리지(1000a 내지 1000n)와 데이터를 송수신하는 모듈일 수 있다. 클라우드 스토리지 연결 모듈(1950)은 각각의 클라우드 스토리지(1000)를 운영하는 사업자가 제공하는 API(Application Programming Interface)로 구현될 수 있다. 예를 들어, 각각의 클라우드 스토리지(1000)를 연결하기 위한 인터페이스 프로그램이 플러그인(Plug-in) 형태로 클라우드 스토리지 연결 모듈(1950)에 추가 또는 삭제될 수 있다.
실시예에 따라, 도 19의 구성 중 파일 분산 저장 모듈(1940)은 서버로써 구현될 수 있다.
예를 들어, 파일 분산 저장 모듈(1940)은 각각의 사용자의 파일을 분산 저장할 수 있다. 예를 들어, 파일 분산 저장 모듈(1940)은 사용자의 디바이스로부터 파일 분산 저장 요청을 수신할 수 있다. 파일 분산 저장 요청을 수신함에 따라, 파일 분산 저장 모듈(1940)은 사용자의 디바이스로부터 파일을 수신하고, 수신된 파일을 복수개의 파일 조각으로 분할하고, 분할된 복수개의 파일 조각을 복수개의 클라우드 스토리지(1000)에 저장할 수 있다.
또한, 파일 분산 저장 모듈(1940)은 사용자의 디바이스로부터 분산 저장된 파일에 대한 요청을 수신할 수 있다. 분산 저장된 파일에 대한 요청을 수신함에 따라, 파일 분산 저장 모듈(1940)은 복수개의 클라우드 스토리지(1000)로부터 파일에 대응하는 복수개의 파일 조각을 수신하고, 수신된 복수개의 파일 조각을 조합하여 파일을 다시 생성할 수 있다. 파일을 다시 생성함에 따라, 파일 분산 저장 모듈(1940)은 사용자의 디바이스에게 생성된 파일을 송신할 수 있다.
도 20은 본 발명의 일 실시예에 따른, 디바이스(100)가 파일을 분할하여, 복수개의 클라우드 스토리지(1000)에 분산 저장하는 방법을 설명하기 위한 도면이다.
도 20을 참조하면, 디바이스(100)는 어플리케이션(2010)을 실행할 수 있다. 어플리케이션(2010)이 실행됨에 따라, 어플리케이션(2010)은 디바이스(100) 내의 파일 저장 모듈(2020)에게 파일을 저장할 것을 요청할 수 있다.
파일 저장 모듈(2020)은 파일을 분할하여, 복수개의 클라우드 스토리지(1000a 내지 1000f)에 분산 저장할 수 있다.
또한, 어플리케이션(2010)이 실행됨에 따라, 어플리케이션(2010)은 파일 저장 모듈(2020)에게 파일을 요청할 수 있다. 파일 저장 모듈(2020)은 복수개의 클라우드 스토리지(1000)에 분산 저장된 복수개의 파일 조각을 수신하고, 수신된 복수개의 파일 조각을 조합하여 파일을 다시 생성할 수 있다. 파일이 다시 생성됨에 따라, 어플리케이션(2010)은 생성된 파일을 실행할 수 있다.
또한, 파일 저장 모듈(2020)은 각각의 파일에 대하여 파일 분할 정보(2030)를 생성하고, 생성된 파일 분할 정보(2030)를 복수개의 클라우드 스토리지(1000a 내지 1000f)에 저장할 수 있다.
도 21은 본 발명의 일 실시예에 따른, 디바이스(100)에 대한 블록도를 도시한다.
도 21에 도시된 바와 같이, 일 실시예에 따른, 디바이스(100)는 제어부(170), 사용자 입력부(145), 통신부(130) 및 디스플레이부(110)을 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수 구성 요소인 것은 아니다. 도시된 구성 요소보다 많은 구성 요소에 의해 디바이스(100)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 디바이스(100)는 구현될 수 있다.
제어부(170)는 사용자 입력부(145), 통신부(130) 및 디스플레이부(110)를 제어할 수 있다.
또한, 제어부(170)는 디바이스(100)에 저장된 파일을 분할하여 복수개의 파일 조각을 생성할 수 있다.
또한, 제어부(170)는 디바이스(100)의 사용자가 등록된 복수개의 클라우드 스토리지(1000) 중 복수개의 파일 조각 각각을 저장할 클라우드 스토리지(1000)를 결정할 수 있다. 예를 들어, 제어부(170)는 복수개의 파일 조각 중 제 1 파일 조각에 대응하여, 제 1 파일 조각을 저장할 복수개의 클라우드 스토리지(1000)를 결정할 수 있다.
또한, 제어부(170)는 파일 분할 정보에 기초하여, 복수개의 파일 조각 각각에 대응하여, 복수개의 파일 조각이 저장된 클라우드 스토리지(1000)를 결정할 수 있다. 또한, 제어부(170)는 클라우드 스토리지(1000)로부터 수신된 복수개의 파일 조각을 조합하여 파일을 생성하고, 생성된 파일을 실행할 수 있다.
또한, 제어부(170)는 파일을 암호화하고, 암호화된 파일을 분할함으로써 복수개의 파일 조각을 생성할 수 있다. 이 경우, 제어부(170)는 복수개의 파일 조각을 조합하여 파일을 생성하고, 생성된 파일을 복호화할 수 있다.
또한, 제어부(170)는 파일을 분할하여 복수개의 파일 조각을 생성하고, 복수개의 파일 조각 중 적어도 하나의 조각을 암호화할 수도 있다. 이 경우, 제어부(170)는 복수개의 파일 조각을 복호화하고, 복호화된 파일 조각을 조합하여 파일을 생성할 수 있다.
또한, 제어부(170)는 파일을 분할함으로써 복수개의 파일 조각을 생성함에 따라, 파일을 미리 정해진 폴더 내로 이동시킬 수 있다.
통신부(130)는 클라우드 스토리지(1000)와 데이터를 송수신할 수 있다. 또한, 통신부(130)는 외부 디바이스는 또는 외부 서버와 데이터를 송수신할 수 있다.
통신부(130)는 각각의 파일 조각에 대응되는 클라우드 스토리지(1000)에게, 각각의 파일 조각을 저장할 것을 요청할 수 있다.
또한, 통신부(130)는 제 1 파일 조각을 저장할 복수개의 클라우드 스토리지(1000)에게 제 1 파일 조각을 저장할 것을 각각 요청할 수 있다.
또한, 통신부(130)는 복수개의 파일 조각의 식별 정보 및 복수개의 파일 조각을 저장할 클라우드 스토리지(1000)의 식별 정보를 포함하는 파일 분할 정보를 복수개의 클라우드 스토리지(1000) 중 적어도 하나에게 저장할 것을 요청할 수 있다.
또한, 통신부(130)는 각각의 파일 조각에 대응되는 클라우드 스토리지(1000)에게, 적어도 하나의 조각이 암호화된 복수개의 파일 조각을 저장할 것을 요청할 수 있다.
또한, 통신부(130)는 파일이 분산 저장됨에 따라, 파일이 저장된 클라우드 스토리지(1000)에게, 파일을 삭제할 것을 요청할 수 있다.
또한, 통신부(130)는 복수개의 파일 조각 각각을, 복수개의 파일 조각 각각에 대응되는 클라우드 스토리지(1000)로부터 수신할 수 있다.
또한, 통신부(130)는 파일 분할 정보를 복수개의 클라우드 스토리지(1000) 중 적어도 하나로부터 수신할 수 있다.
또한, 통신부(130)는 두 개 이상의 클라우드 스토리지(1000)로부터 동일한 파일 조각을 수신할 수 있다.
또한, 통신부(130)는 두 개 이상의 클라우드 스토리지(1000)로부터 동일한 파일 조각의 서로 다른 부분을 동시에 수신할 수 있다.
사용자 입력부(145)는 파일을 분산 저장하고, 분산 저장된 파일을 수신하여 실행하기 위한 사용자 입력을 수신할 수 있다.
예를 들어, 사용자 입력부(145)는 복수개의 파일 조각으로 분할된 파일의 식별 정보를 선택하는 사용자 입력을 수신할 수 있다.
디스플레이부(110)는 파일을 분산 저장하고, 분산 저장된 파일을 수신하여 실행하기 위한 정보를 디스플레이할 수 있다.
도 22는 본 발명의 다른 실시 예에 따른, 디바이스(100)의 구성을 나타내는 블록도이다.
도 22에 도시된 바와 같이, 디바이스(100)의 구성은, 예를 들어, 휴대폰, 태블릿 PC, PDA, MP3 플레이어, 키오스크, 전자 액자, 네비게이션 장치, 디지털 TV, 스마트 워치(Smart watch), 손목 시계(Wrist watch) 또는 스마크 글래스(Smart Glass), HMD(Head-Mounted Display)와 같은 웨어러블 디바이스(Wearable device) 등과 같은 다양한 유형의 장치에 적용될 수 있다.
도 22에 따르면, 디바이스(100)는 제어부(170), 사용자 입력부(145), 통신부(130) 및 디스플레이부(110) 이외에, 메모리(120), GPS 칩(125), 비디오 프로세서(135), 오디오 프로세서(140), 마이크부(150), 촬상부(155), 스피커부(160), 움직임 감지부(165) 중 적어도 하나를 포함 할 수 있다.
디스플레이부(110)는 표시패널(111) 및 표시패널(111)을 제어하는 컨트롤러(미도시)를 포함할 수 있다. 표시패널(111)에는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, AM-OLED(Active-Matrix Organic Light-Emitting Diode), PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 표시패널(111)은 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 디스플레이부(110)는 사용자 입력부(145)의 터치 패널(147)과 결합되어 터치 스크린(미도시)으로 제공될 수 있다. 예를 들어, 터치 스크린(미도시)은 표시 패널(111)과 터치 패널(147)이 적층 구조로 결합된 일체형의 모듈을 포함할 수 있다.
메모리(120)는 내장 메모리(Internal Memory)(미도시) 및 외장 메모리(External Memory)(미도시) 중 적어도 하나를 포함할 수 있다.
내장 메모리는, 예를 들어, 휘발성 메모리(예를 들면, DRAM(Dynamic RAM), SRAM(Static RAM), SDRAM(Synchronous Dynamic RAM) 등), 비휘발성 메모리(예를 들면, OTPROM(One Time Programmable ROM), PROM(Programmable ROM), EPROM(Erasable and Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), Mask ROM, Flash ROM 등), 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 중 적어도 하나를 포함할 수 있다. 일 실시 예에 따르면, 제어부(170)는 비휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, 제어부(170)는 다른 구성요소로부터 수신하거나 생성된 데이터를 비휘발성 메모리에 보존할 수 있다.
외장 메모리는, 예를 들면, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 및 Memory Stick 중 적어도 하나를 포함할 수 있다.
메모리(120)는 디바이스(100)의 동작에 사용되는 각종 프로그램 및 데이터를 저장할 수 있다. 예를 들어, 메모리(120)에는 잠금 화면에 표시될 컨텐츠의 적어도 일부를 임시 또는 반영구적으로 저장할 수 있다.
제어부(170)는 메모리(120)에 저장된 컨텐츠의 일부가 디스플레이부(110)에 표시되도록 디스플레이부(110)를 제어할 수 있다. 다시 말하자면, 제어부(170)는 메모리(120)에 저장된 컨텐츠의 일부를 디스플레이부(110)에 표시할 수 있다. 또는, 제어부(170)는 디스플레이부(110)의 일 영역에서 사용자 제스처가 이루어지면, 사용자의 제스처에 대응되는 제어 동작을 수행할 수 있다.
제어부(170)는 RAM(171), ROM(172), CPU(173), GPU(Graphic Processing Unit)(174) 및 버스(175) 중 적어도 하나를 포함 할 수 있다. RAM(171), ROM(172), CPU(173) 및 GPU(174) 등은 버스(175)를 통해 서로 연결될 수 있다.
CPU(173)는 메모리(120)에 액세스하여, 메모리(120)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 메모리(120)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행한다.
ROM(172)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 예로, 디바이스(100)는 턴온 명령이 입력되어 전원이 공급되면, CPU(173)가 ROM(172)에 저장된 명령어에 따라 메모리(120)에 저장된 O/S를 RAM(171)에 복사하고, O/S를 실행시켜 시스템을 부팅시킬 수 있다. 부팅이 완료되면, CPU(173)는 메모리(120)에 저장된 각종 프로그램을 RAM(171)에 복사하고, RAM(171)에 복사된 프로그램을 실행시켜 각종 동작을 수행한다. GPU(174)는 디바이스(100)의 부팅이 완료되면, 디스플레이부(110)의 영역에 UI 화면을 디스플레이한다. 구체적으로는, GPU(174)는 컨텐츠, 아이콘, 메뉴 등과 같은 다양한 객체를 포함하는 전자문서가 표시된 화면을 생성할 수 있다. GPU(174)는 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성 값을 연산한다. 그리고, GPU(174)는 연산된 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성할 수 있다. GPU(174)에서 생성된 화면은 디스플레이부(110)로 제공되어, 디스플레이부(110)의 각 영역에 각각 표시될 수 있다.
GPS 칩(125)은 GPS(Grobal Positioning System) 위성으로부터 GPS 신호를 수신하여, 디바이스(100)의 현재 위치를 산출할 수 있다. 제어부(170)는 네비게이션 프로그램을 이용할 때나 그 밖에 사용자의 현재 위치가 필요할 경우에, GPS 칩(125)을 이용하여 사용자 위치를 산출할 수 있다.
통신부(130)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 디바이스와 통신을 수행할 수 있다. 통신부(130)는 와이파이칩(131), 블루투스 칩(132), 무선 통신 칩(133), NFC 칩(134) 중 적어도 하나를 포함할 수 있다. 제어부(170)는 통신부(130)를 이용하여 각종 외부 디바이스와 통신을 수행할 수 있다.
와이파이 칩(131), 블루투스 칩(132)은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행할 수 있다. 와이파이 칩(131)이나 블루투스 칩(132)을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩(133)은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. NFC 칩(134)은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다.
비디오 프로세서(135)는 통신부(130)를 통해 수신된 컨텐츠 또는, 메모리(120)에 저장된 컨텐츠에 포함된 비디오 데이터를 처리할 수 있다. 비디오 프로세서(135)에서는 비디오 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다.
오디오 프로세서(140)는 통신부(130)를 통해 수신된 컨텐츠 또는, 메모리(120)에 저장된 컨텐츠에 포함된 오디오 데이터를 처리할 수 있다. 오디오 프로세서(140)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
제어부(170)는 멀티미디어 컨텐츠에 대한 재생 프로그램이 실행되면 비디오 프로세서(135) 및 오디오 프로세서(140)를 구동시켜, 해당 컨텐츠를 재생할 수 있다. 스피커부(160)는 오디오 프로세서(140)에서 생성한 오디오 데이터를 출력할 수 있다.
사용자 입력부(145)는 사용자로부터 다양한 명령어를 입력 받을 수 있다. 사용자 입력부(145)는 키(146), 터치 패널(147) 및 펜 인식 패널(148) 중 적어도 하나를 포함할 수 있다.
키(146)는 디바이스(100)의 본체 외관의 전면부나 측면부, 배면부 등의 다양한 영역에 형성된 기계적 버튼, 휠 등과 같은 다양한 유형의 키를 포함할 수 있다.
터치 패널(147)은 사용자의 터치 입력을 감지하고, 감지된 터치 신호에 해당하는 터치 이벤트 값을 출력할 수 있다. 터치 패널(147)이 표시 패널(111)과 결합하여 터치 스크린(미도시)을 구성한 경우, 터치 스크린은 정전식이나, 감압식, 압전식 등과 같은 다양한 유형의 터치 센서로 구현될 수 있다. 정전식은 터치 스크린 표면에 코팅된 유전체를 이용하여, 사용자의 신체 일부가 터치 스크린 표면에 터치되었을 때 사용자의 인체로 야기되는 미세 전기를 감지하여 터치 좌표를 산출하는 방식이다. 감압식은 터치 스크린에 내장된 두 개의 전극 판을 포함하여, 사용자가 화면을 터치하였을 경우, 터치된 지점의 상하 판이 접촉되어 전류가 흐르게 되는 것을 감지하여 터치 좌표를 산출하는 방식이다. 터치 스크린에서 발생하는 터치 이벤트는 주로 사람의 손가락에 의하여 생성될 수 있으나, 정전 용량 변화를 가할 수 있는 전도성 재질의 물체에 의해서도 생성될 수 있다.
펜 인식 패널(148)은 사용자의 터치용 펜(예컨대, 스타일러스 펜(stylus pen), 디지타이저 펜(digitizer pen))의 운용에 따른 펜의 근접 입력 또는 터치 입력을 감지하고 감지된 펜 근접 이벤트 또는 펜 터치 이벤트를 출력할 수 있다. 펜 인식 패널(148)은, 예로, EMR 방식으로 구현될 수 있으며, 펜의 근접 또는 터치에 의한 전자기장의 세기 변화에 따라 터치 또는 근접 입력을 감지할 수 있다. 상세하게는 펜 인식 패널(148)은 그리드 구조를 가지는 전자 유도 코일 센서(미도시)와 전자 유도 코일 센서의 각 루프 코일에 순차적으로 소정의 주파수를 가지는 교류 신호를 제공하는 전자 신호 처리부(미도시)를 포함하여 구성될 수 있다. 이러한 펜 인식 패널(148)의 루프 코일 근방에 공진회로를 내장하는 펜이 존재하면, 해당 루프 코일로부터 송신되는 자계가 펜 내의 공진회로에 상호 전자 유도에 기초한 전류를 발생시킨다. 이 전류를 기초로 하여, 펜 내의 공진 회로를 구성하는 코일로부터 유도 자계가 발생하게 되고, 펜 인식 패널(148)은 이 유도 자계를 신호 수신 상태에 있는 루프 코일에서 검출하게 되어 펜의 접근 위치 또는 터치 위치가 감지될 수 있다. 펜 인식 패널(148)은 표시 패널(111)의 하부에 일정 면적, 예를 들어, 표시 패널(111)의 표시 영역을 커버할 수 있는 면적을 가지고 마련될 수 있다.
마이크부(150)는 사용자 음성이나 기타 소리를 입력 받아 오디오 데이터로 변환할 수 있다. 제어부(170)는 마이크부(150)를 통해 입력되는 사용자 음성을 통화 동작에서 이용하거나, 오디오 데이터로 변환하여 메모리(120)에 저장할 수 있다.
촬상부(155)는 사용자의 제어에 따라 정지 영상 또는 동영상을 촬상할 수 있다. 촬상부(155)는 전면 카메라, 후면 카메라와 같이 복수 개로 구현될 수도 있다.
촬상부(155) 및 마이크부(150)가 마련된 경우, 제어부(170)는 마이크부(150)를 통해 입력되는 사용자 음성이나 촬상부(155)에 의해 인식되는 사용자 모션에 따라 제어 동작을 수행할 수도 있다. 예컨대, 디바이스(100)는 모션 제어 모드나 음성 제어 모드로 동작할 수 있다. 모션 제어 모드로 동작하는 경우, 제어부(170)는 촬상부(155)를 활성화시켜 사용자를 촬상하고, 사용자의 모션 변화를 추적하여 그에 대응되는 제어 동작을 수행할 수 있다. 음성 제어 모드로 동작하는 경우 제어부(170)는 마이크부(150)를 통해 입력된 사용자 음성을 분석하고, 분석된 사용자 음성에 따라 제어 동작을 수행하는 음성 인식 모드로 동작할 수 있다.
움직임 감지부(165)는 디바이스(100)의 본체 움직임을 감지할 수 있다. 디바이스(100)는 다양한 방향으로 회전되거나 기울어질 수 있다. 이 때, 움직임 감지부(165)는 지자기 센서, 자이로 센서, 가속도 센서 등과 같은 다양한 센서들 중 적어도 하나를 이용하여 회전 방향 및 각도, 기울기 등과 같은 움직임 특성을 감지할 수 있다.
그 밖에, 도 22에 도시하지는 않았으나, 실시예에는, 디바이스(100)내에 USB 커넥터가 연결될 수 있는 USB 포트나, 헤드셋, 마우스, LAN 등과 같은 다양한 외부 단자와 연결하기 위한 다양한 외부 입력 포트, DMB(Digital Multimedia Broadcasting) 신호를 수신하여 처리하는 DMB 칩, 다양한 센서 등을 더 포함할 수 있다.
전술한 디바이스(100)의 구성 요소들의 명칭은 달라질 수 있다. 또한, 본 개시에 따른 디바이스(100)는 전술한 구성요소들 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다.
도 23은 본 발명의 일 실시예에 따른, 클라우드 스토리지(1000)에 대한 블록도를 도시한다.
도 23을 참조하면, 일부 실시예에 따른 클라우드 스토리지(1000)는 통신부(1600), 제어부(1700) 및 데이터베이스(1900)를 포함할 수 있다. 또한, 데이터베이스(1900)는 사용자 계정 DB(1930) 및 사용자 파일 DB(1970)를 포함할 수 있다.
사용자 계정 DB(1930)에는 클라우드 스토리지(1000)에 등록된 사용자의 식별 정보 및 비밀 번호 정보가 저장될 수 있다. 또한, 사용자 계정 DB(1930)에는 클라우드 스토리지(1000)가 사용자를 인증함에 따라 디바이스(100)에게 발급한 접근 정보가 저장될 수 있다. 또한, 사용자 계정 DB(1930)에는 디바이스(100)와 클라우드 스토리지(1000)간의 세션 유지를 위한 세션 유지 정보가 저장될 수 있다.
사용자 파일 DB(1970)에는 사용자의 파일이 저장될 수 있다. 예를 들어, 사용자 파일 DB(1970)에는 사용자의 파일의 컨텐츠 데이터 및 사용자의 파일의 메타데이터가 저장될 수 있다. 이 경우, 사용자 파일 DB(1970)에는 사용자의 식별 정보에 대응하여 사용자의 파일이 저장될 수 있다.
통신부(1600)는 디바이스(100)로부터 파일 저장 요청을 수신할 수 있다. 파일 저장 요청을 수신함에 따라, 제어부(1700)는 사용자의 식별 정보에 대응하여 수신된 파일을 저장할 수 있다.
또한, 통신부(1600)는 디바이스(100)로부터 파일에 대한 요청을 수신할 수 있다. 파일 요청을 수신함에 따라, 제어부(1700)는 사용자의 식별 정보 및 파일의 식별 정보에 기초하여 사용자의 파일을 획득하고, 획득된 사용자의 파일을 통신부(1600)를 통해 디바이스(100)로 전송할 수 있다.
또한, 제어부(1700)는 사용자의 디바이스(100)와 사용자의 파일을 동기화 할 수 있다. 예를 들어, 사용자 파일 DB(1970) 내의 사용자의 파일이 수정, 삭제, 업데이트 됨에 따라, 제어부(1700)는 통신부(1600)를 통해, 디바이스(100)에게 동일한 파일을 수정, 삭제, 업데이트 할 것을 요청할 수 있다. 또한, 디바이스(100)내의 사용자의 파일이 수정, 삭제, 업데이트 됨에 따라, 제어부(1700)는 통신부(1600)를 통해, 디바이스(100)로부터 동일한 파일을 수정, 삭제, 업데이트 할 것을 요청받을 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (28)

  1. 통신부; 및
    파일에 설정된 보안 등급에 기초하여, 디바이스에 저장된 파일을 분할하여 복수개의 파일 조각을 생성하고,
    상기 디바이스의 사용자가 등록된 복수개의 클라우드 스토리지 중, 상기 파일에 설정된 보안 등급에 기초하여, 상기 복수개의 파일 조각 각각에 대응하여, 상기 복수개의 파일 조각 각각을 저장할 클라우드 스토리지들을 결정하고,
    상기 통신부를 통해, 상기 결정된 클라우드 스토리지들에게, 상기 복수개의 파일 조각 각각을 저장할 것을 요청하는 제어부를 포함하고,
    상기 파일에 설정된 보안 등급이 높을수록, 상기 파일은 더 많은 복수개의 파일 조각들로 분할되고,
    상기 파일에 설정된 보안 등급이 높을수록, 상기 분할된 더 많은 복수개의 파일 조각들에 대응하는 더 많은 수의 클라우드 스토리지들이 결정되고,
    상기 복수 개의 파일 조각 중 제1 파일 조각은 상기 복수 개의 클라우드 스토리지 중 두 개 이상에 중복 저장된 파일조각이고,
    상기 제어부는,
    상기 복수개의 파일 조각 중 제 1 파일 조각에 대응하며, 상기 제 1 파일 조각을 저장할 복수개의 클라우드 스토리지를 결정하고,
    상기 통신부는,
    상기 제 1 파일 조각을 저장할 복수개의 클라우드 스토리지에게 상기 제 1 파일 조각을 저장할 것을 각각 요청하는,
    디바이스.
  2. 제 1 항에 있어서,
    상기 디바이스에 저장된 파일은,
    상기 복수개의 클라우드 스토리지 중 하나로부터 수신된 파일인 것인, 디바이스.
  3. 제 1 항에 있어서,
    상기 통신부는,
    상기 복수개의 파일 조각의 식별 정보들 및 상기 복수개의 파일 조각이 저장된 클라우드 스토리지들의 식별 정보들을 포함하는 파일 분할 정보를 상기 복수개의 클라우드 스토리지 중 적어도 하나에게 저장할 것을 요청하는, 디바이스.
  4. 제 1 항에 있어서,
    상기 제어부는,
    암호화 키에 기초하여, 상기 파일을 암호화하고, 상기 암호화된 파일을 분할함으로써 상기 복수개의 파일 조각을 생성하고, 상기 암호화 키를 상기 디바이스에 저장하거나 또는 상기 복수개의 클라우드 스토리지 중 적어도 하나에 저장하는, 디바이스.
  5. 제 1 항에 있어서,
    상기 제어부는,
    상기 파일을 분할하여 복수개의 파일 조각을 생성하고, 암호화 키에 기초하여, 상기 복수개의 파일 조각 중 적어도 하나의 조각을 암호화하고, 상기 암호화 키를 상기 디바이스에 저장하거나 또는 상기 복수개의 클라우드 스토리지 중 적어도 하나에 저장하고,
    상기 통신부는,
    상기 각각의 파일 조각에 대응되는 클라우드 스토리지들에게, 상기 적어도 하나의 조각이 암호화된 상기 복수개의 파일 조각을 저장할 것을 요청하는, 디바이스.
  6. 제 1 항에 있어서,
    상기 제어부는,
    상기 복수개의 파일 조각 각각이 상기 결정된 클라우드 스토리지들에게 각각 저장됨에 따라, 상기 저장된 파일을 삭제하는, 디바이스.
  7. 제 1 항에 있어서,
    상기 디바이스에 저장된 파일은, 상기 복수개의 클라우드 스토리지 중 하나 및 상기 디바이스에 함께 저장된 파일이고,
    상기 통신부는, 상기 파일이 저장된 클라우드 스토리지에게, 상기 파일을 삭제할 것을 요청하는, 디바이스.
  8. 통신부; 및
    파일에 설정된 보안 등급에 기초하여 하나의 파일로부터 분할된 복수개의 파일 조각 각각에 대응하여, 상기 복수개의 파일 조각 각각이 저장된 클라우드 스토리지들을 결정하고,
    상기 통신부를 통해, 상기 복수개의 파일 조각 각각을, 상기 결정된 클라우드 스토리지들로부터 각각 수신하고,
    상기 수신된 복수개의 파일 조각을 조합하여 상기 파일을 생성하고,
    상기 생성된 파일을 실행하는 제어부를 포함하고,
    상기 파일에 설정된 보안 등급이 높을수록, 상기 파일은 더 많은 복수개의 파일 조각들로 분할되고,
    상기 파일에 설정된 보안 등급이 높을수록, 상기 분할된 더 많은 복수개의 파일 조각들에 대응하는 더 많은 수의 클라우드 스토리지들이 결정되고,
    상기 복수개의 파일 조각 중 제 1 파일 조각은 상기 복수개의 클라우드 스토리지 중 두 개 이상에 중복 저장된 파일 조각이고,
    상기 제어부는,
    상기 제 1 파일 조각에 대응하여 상기 두 개 이상의 클라우드 스토리지 중 하나를 선택하고,
    상기 통신부는,
    상기 선택된 클라우드 스토리지로부터 상기 제 1 파일 조각을 수신하는,
    디바이스.
  9. 제 8 항에 있어서,
    상기 통신부는,
    상기 복수개의 파일 조각의 식별 정보들 및 상기 복수개의 파일 조각이 저장된 클라우드 스토리지들의 식별 정보들을 포함하는 파일 분할 정보를 상기 복수개의 클라우드 스토리지 중 적어도 하나로부터 수신하고,
    상기 제어부는,
    상기 수신된 파일 분할 정보에 기초하여, 상기 복수개의 파일 조각 각각이 저장된 클라우드 스토리지들을 결정하는, 디바이스.

  10. 제 8 항에 있어서,
    상기 복수개의 파일 조각 중 제 2 파일 조각은 상기 복수개의 클라우드 스토리지 중 두 개 이상에 중복 저장된 파일 조각이고,
    상기 통신부는,
    상기 두 개 이상의 클라우드 스토리지로부터 상기 제 2 파일 조각의 서로 다른 부분을 동시에 수신하는, 디바이스.
  11. 제 8 항에 있어서,
    상기 복수개의 파일 조각은 상기 파일이 분할된 후 상기 복수개의 파일 조각 각각에 대응하여 암호화된 파일 조각이고,
    상기 통신부는,
    상기 암호화된 복수개의 파일 조각을 복호화하기 위한 복호화 키를 상기 디바이스 또는 상기 복수개의 클라우드 서버 중 적어도 하나로부터 수신하고,
    상기 제어부는,
    상기 수신된 복호화 키에 기초하여, 상기 수신된 복수개의 파일 조각을 복호화하고, 상기 복호화된 파일 조각을 조합하여 상기 파일을 생성하는, 디바이스.
  12. 제 8 항에 있어서,
    상기 복수개의 파일 조각은 상기 파일이 암호화된 후 분할된 파일 조각이고,
    상기 통신부는,
    상기 암호화된 파일을 복호화하기 위한 복호화 키를 상기 디바이스 또는 상기 복수개의 클라우드 서버 중 적어도 하나로부터 수신하고,
    상기 제어부는,
    상기 수신된 복호화 키에 기초하여, 상기 수신된 복수개의 파일 조각을 조합하여 상기 파일을 생성하고, 상기 생성된 파일을 복호화하는, 디바이스.
  13. 파일에 설정된 보안 등급에 기초하여, 디바이스에 저장된 파일을 분할하여 복수개의 파일 조각을 생성하는 단계;
    상기 디바이스의 사용자가 등록된 복수개의 클라우드 스토리지 중, 상기 파일에 설정된 보안 등급에 기초하여, 상기 복수개의 파일 조각 각각에 대응하여, 상기 복수개의 파일 조각 각각을 저장할 클라우드 스토리지들을 결정하는 단계; 및
    상기 결정된 클라우드 스토리지들에게, 상기 복수개의 파일 조각 각각을 저장할 것을 요청하는 단계를 포함하고,
    상기 파일에 설정된 보안 등급이 높을수록, 상기 파일은 더 많은 복수개의 파일 조각들로 분할되고,
    상기 파일에 설정된 보안 등급이 높을수록, 상기 분할된 더 많은 복수개의 파일 조각들에 대응하는 더 많은 수의 클라우드 스토리지들이 결정되고,
    상기 복수개의 파일 조각 각각을 저장할 클라우드 스토리지들을 결정하는 단계는,
    상기 복수개의 파일 조각 중 제 1 파일 조각에 대응하며, 상기 제 1 파일 조각을 저장할 복수개의 클라우드 스토리지를 결정하는 단계를 포함하고,
    상기 결정된 클라우드 스토리지들에게, 상기 복수개의 파일 조각 각각을 저장할 것을 요청하는 단계는,
    상기 제 1 파일 조각을 저장할 복수개의 클라우드 스토리지에게 상기 제 1 파일 조각을 저장할 것을 각각 요청하는 단계를 포함하는 파일 저장 방법.
  14. 제 13 항에 있어서,
    상기 디바이스에 저장된 파일은, 상기 복수개의 클라우드 스토리지 중 하나로부터 수신된 파일인 것인, 파일 저장 방법.

  15. 제 13 항에 있어서,
    상기 파일 저장 방법은,
    상기 복수개의 파일 조각의 식별 정보들 및 상기 복수개의 파일 조각이 저장된 클라우드 스토리지들의 식별 정보들을 포함하는 파일 분할 정보를 상기 복수개의 클라우드 스토리지 중 적어도 하나에게 저장할 것을 요청하는 단계를 더 포함하는 파일 저장 방법.
  16. 제 13 항에 있어서,
    상기 디바이스에 저장된 파일을 분할하여 복수개의 파일 조각을 생성하는 단계는,
    암호화 키에 기초하여, 상기 파일을 암호화하는 단계; 및
    상기 암호화된 파일을 분할함으로써 상기 복수개의 파일 조각을 생성하고, 상기 암호화 키를 상기 디바이스에 저장하거나 또는 상기 복수개의 클라우드 스토리지 중 적어도 하나에 저장하는 단계를 포함하는, 파일 저장 방법.
  17. 제 13 항에 있어서,
    상기 디바이스에 저장된 파일을 분할하여 복수개의 파일 조각을 생성하는 단계는,
    상기 파일을 분할하여 복수개의 파일 조각을 생성하는 단계; 및
    암호화 키에 기초하여, 상기 복수개의 파일 조각 중 적어도 하나의 조각을 암호화하고, 상기 암호화 키를 상기 디바이스에 저장하거나 또는 상기 복수개의 클라우드 스토리지 중 적어도 하나에 저장하는 단계를 포함하고,
    상기 결정된 클라우드 스토리지들에게, 상기 복수개의 파일 조각 각각을 저장할 것을 요청하는 단계는,
    상기 복수개의 파일 조각 각각에 대응되는 클라우드 스토리지들에게, 상기 적어도 하나의 조각이 암호화된 상기 복수개의 파일 조각 각각을 저장할 것을 요청하는 단계를 포함하는, 파일 저장 방법.
  18. 제 13 항에 있어서,
    상기 파일 저장 방법은,
    상기 복수개의 파일 조각 각각이 상기 결정된 클라우드 스토리지들에게 각각 저장됨에 따라, 상기 저장된 파일을 삭제하는 단계를 더 포함하는, 파일 저장 방법.
  19. 제 13 항에 있어서,
    상기 디바이스에 저장된 파일은, 상기 복수개의 클라우드 스토리지 중 하나 및 상기 디바이스에 함께 저장된 파일이고,
    상기 파일 저장 방법은,
    상기 파일이 저장된 클라우드 스토리지에게, 상기 파일을 삭제할 것을 요청하는 단계를 더 포함하는, 파일 저장 방법.
  20. 디바이스가, 파일에 설정된 보안 등급에 기초하여 하나의 파일로부터 분할된 복수개의 파일 조각 각각에 대응하여, 상기 복수개의 파일 조각 각각이 저장된 클라우드 스토리지들을 결정하는 단계;
    상기 복수개의 파일 조각 각각을, 상기 결정된 클라우드 스토리지들로부터 각각 수신하는 단계;
    상기 수신된 복수개의 파일 조각을 조합하여 상기 파일을 생성하는 단계; 및
    상기 생성된 파일을 실행하는 단계를 포함하고,
    상기 파일에 설정된 보안 등급이 높을수록, 상기 파일은 더 많은 복수개의 파일 조각들로 분할되고,
    상기 파일에 설정된 보안 등급이 높을수록, 상기 분할된 더 많은 복수개의 파일 조각들에 대응하는 더 많은 수의 클라우드 스토리지들이 결정되고,
    상기 복수개의 파일 조각 중 제 1 파일 조각은 상기 복수개의 클라우드 스토리지 중 두 개 이상에 중복 저장된 파일 조각이고,
    상기 복수개의 파일 조각 각각을, 상기 결정된 클라우드 스토리지들로부터 각각 수신하는 단계,
    상기 제 1 파일 조각에 대응하여 상기 두 개 이상의 클라우드 스토리지 중 하나를 선택하는 단계; 및
    상기 선택된 클라우드 스토리지로부터 상기 제 1 파일 조각을 수신하는 단계를 포함하는 파일 실행 방법.
  21. ◈청구항 21은(는) 설정등록료 납부시 포기되었습니다.◈
    제 20 항에 있어서,
    상기 파일로부터 분할된 복수개의 파일 조각 각각에 대응하여, 상기 복수개의 파일 조각 각각이 저장된 클라우드 스토리지들을 결정하는 단계는,
    상기 복수개의 파일 조각의 식별 정보들 및 상기 복수개의 파일 조각이 저장된 클라우드 스토리지들의 식별 정보들을 포함하는 파일 분할 정보를 상기 복수개의 클라우드 스토리지 중 적어도 하나로부터 수신하는 단계; 및
    상기 수신된 파일 분할 정보에 기초하여, 상기 파일로부터 분할된 복수개의 파일 조각 각각에 대응하여, 상기 복수개의 파일 조각 각각이 저장된 클라우드 스토리지들을 결정하는 단계를 포함하는 파일 실행 방법.
  22. ◈청구항 22은(는) 설정등록료 납부시 포기되었습니다.◈
    제 20 항에 있어서,
    상기 복수개의 파일 조각 중 제 2 파일 조각은 상기 복수개의 클라우드 스토리지 중 두 개 이상에 중복 저장된 파일 조각이고,
    상기 복수개의 파일 조각 각각을, 상기 결정된 클라우드 스토리지들로부터 각각 수신하는 단계는,
    상기 두 개 이상의 클라우드 스토리지로부터 상기 제 2 파일 조각의 서로 다른 부분을 동시에 수신하는 단계를 포함하는 파일 실행 방법.
  23. ◈청구항 23은(는) 설정등록료 납부시 포기되었습니다.◈
    제 20 항에 있어서,
    상기 복수개의 파일 조각은 상기 파일이 분할된 후 상기 복수개의 파일 조각 각각에 대응하여 암호화된 파일 조각이고,
    상기 수신된 복수개의 파일 조각을 조합하여 상기 파일을 생성하는 단계는,
    상기 암호화된 복수개의 파일 조각을 복호화하기 위한 복호화 키를 상기 디바이스 또는 상기 복수개의 클라우드 서버 중 적어도 하나로부터 수신하는 단계;
    상기 수신된 복수개의 파일 조각을 복호화하는 단계; 및
    상기 복호화된 파일 조각을 조합하여 상기 파일을 생성하는 단계를 포함하는 파일 실행 방법.
  24. ◈청구항 24은(는) 설정등록료 납부시 포기되었습니다.◈
    제 20 항에 있어서,
    상기 복수개의 파일 조각은 상기 파일이 암호화된 후 분할된 파일 조각이고,
    상기 수신된 복수개의 파일 조각을 조합하여 상기 파일을 생성하는 단계는,
    상기 암호화된 파일을 복호화하기 위한 복호화 키를 상기 디바이스 또는 상기 복수개의 클라우드 서버 중 적어도 하나로부터 수신하는 단계;
    상기 수신된 복호화 키에 기초하여, 상기 수신된 복수개의 파일 조각을 조합하여 상기 파일을 생성하는 단계; 및
    상기 생성된 파일을 복호화하는 단계를 포함하는, 파일 실행 방법.

  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
KR1020160106991A 2015-03-20 2016-08-23 복수개의 클라우드 스토리지를 이용한 파일 저장 방법 및 이를 위한 장치 KR102480414B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160106991A KR102480414B1 (ko) 2015-03-20 2016-08-23 복수개의 클라우드 스토리지를 이용한 파일 저장 방법 및 이를 위한 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150038954 2015-03-20
KR1020160106991A KR102480414B1 (ko) 2015-03-20 2016-08-23 복수개의 클라우드 스토리지를 이용한 파일 저장 방법 및 이를 위한 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020150038954 Division 2015-03-20 2015-03-20

Publications (2)

Publication Number Publication Date
KR20160113071A KR20160113071A (ko) 2016-09-28
KR102480414B1 true KR102480414B1 (ko) 2022-12-23

Family

ID=84536549

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160106991A KR102480414B1 (ko) 2015-03-20 2016-08-23 복수개의 클라우드 스토리지를 이용한 파일 저장 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR102480414B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102118970B1 (ko) * 2018-08-31 2020-06-04 주식회사 피풀 클라우드 스토리지에 기반한 파일 저장 방법 및 그를 위한 장치
KR102150806B1 (ko) * 2019-11-15 2020-09-02 (주)키프코프롬투 데이터 보호 방법
KR102650146B1 (ko) * 2020-04-23 2024-03-22 오픈박스연구소 주식회사 Usb 기반의 클라우드 디스크 및 디스크 세그먼트 매니지먼트 시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130073691A1 (en) 2011-06-17 2013-03-21 Alibaba Group Holding Limited File Processing Method, System and Server-clustered System for Cloud Storage
US20130305039A1 (en) 2011-05-14 2013-11-14 Anthony Francois Gauda Cloud file system
US20140172929A1 (en) * 2012-12-14 2014-06-19 Jeffrey C. Sedayao Adaptive data striping and replication across multiple storage clouds for high availability and performance
US20140282938A1 (en) * 2013-03-15 2014-09-18 Adam Moisa Method and system for integrated cloud storage management
US20150052354A1 (en) 2013-08-16 2015-02-19 Vinay Purohit Distributed fragments file system
US20150178007A1 (en) 2013-03-15 2015-06-25 Cloudifyd, Inc. Method and system for integrated cloud storage management

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8627446B1 (en) * 2009-09-30 2014-01-07 Emc Corporation Federating data between groups of servers
KR101318985B1 (ko) * 2011-08-25 2013-11-21 주식회사 팬택 클라우드 컴퓨팅에서의 콘텐츠 보안 장치 및 방법
KR101472320B1 (ko) * 2013-05-30 2014-12-12 고려대학교 산학협력단 클라우드 환경에 비밀분산 기법을 이용한 데이터 보호 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130305039A1 (en) 2011-05-14 2013-11-14 Anthony Francois Gauda Cloud file system
US20130073691A1 (en) 2011-06-17 2013-03-21 Alibaba Group Holding Limited File Processing Method, System and Server-clustered System for Cloud Storage
US20140172929A1 (en) * 2012-12-14 2014-06-19 Jeffrey C. Sedayao Adaptive data striping and replication across multiple storage clouds for high availability and performance
US20140282938A1 (en) * 2013-03-15 2014-09-18 Adam Moisa Method and system for integrated cloud storage management
US20150178007A1 (en) 2013-03-15 2015-06-25 Cloudifyd, Inc. Method and system for integrated cloud storage management
US20150052354A1 (en) 2013-08-16 2015-02-19 Vinay Purohit Distributed fragments file system

Also Published As

Publication number Publication date
KR20160113071A (ko) 2016-09-28

Similar Documents

Publication Publication Date Title
US10586063B2 (en) Method and apparatus for storing file by using a plurality of cloud storages
US10635379B2 (en) Method for sharing screen between devices and device using the same
US10164984B2 (en) Method and apparatus for sharing data
US10171994B2 (en) Mobile device and method of sharing content
US11269487B2 (en) Method and apparatus for recommending content based on activities of a plurality of users
US9781123B2 (en) Methods of providing social network service and server performing the same
KR102361027B1 (ko) 사용자 단말 장치 및 그의 잠금 화면 표시 방법
KR102107404B1 (ko) 어플리케이션을 공유하는 전자 장치 및 그 제어 방법
KR102247817B1 (ko) 락스크린 제공 방법 및 장치
CN110362246B (zh) 控制电子设备的方法、电子设备和存储介质
KR102312336B1 (ko) 데이터 공유 방법 및 이를 위한 장치
KR102154737B1 (ko) 콘텐트의 암호화 및 복호화 방법
CN105763909A (zh) 远程设备上的自适应媒体内容清理
KR101832394B1 (ko) 단말 장치, 서버 및 그 제어 방법
KR102333705B1 (ko) 중계 디바이스를 이용한 데이터 전송 방법 및 이를 위한 장치
US20170242580A1 (en) Device and method of controlling the device
US20180024976A1 (en) Annotation providing method and device
US20150180998A1 (en) User terminal apparatus and control method thereof
EP3005119B1 (en) Service-based backup data restoring to devices
KR102480414B1 (ko) 복수개의 클라우드 스토리지를 이용한 파일 저장 방법 및 이를 위한 장치
KR20140135315A (ko) 보안 기능 운용 방법 및 이를 지원하는 전자 장치
EP3043254A1 (en) Display apparatus and operation method of the same
US20150334185A1 (en) Terminal device, program, data transmission/reception system, and data transmission/reception method
US20150325254A1 (en) Method and apparatus for displaying speech recognition information
US20150169880A1 (en) File processing method and electronic device supporting the same

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
GRNT Written decision to grant