KR20190085517A - 애플리케이션 리소스 사용량 절감 기법 - Google Patents

애플리케이션 리소스 사용량 절감 기법 Download PDF

Info

Publication number
KR20190085517A
KR20190085517A KR1020197015365A KR20197015365A KR20190085517A KR 20190085517 A KR20190085517 A KR 20190085517A KR 1020197015365 A KR1020197015365 A KR 1020197015365A KR 20197015365 A KR20197015365 A KR 20197015365A KR 20190085517 A KR20190085517 A KR 20190085517A
Authority
KR
South Korea
Prior art keywords
upload queue
upload
state
new
content
Prior art date
Application number
KR1020197015365A
Other languages
English (en)
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20190085517A publication Critical patent/KR20190085517A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • H04L67/322
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/803Application aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

장치에서 실패 상태가 있을 때 애플리케이션의 콘텐츠 업로드 시도(및 네트워크 인터페이스 호출)를 줄임으로써 애플리케이션 리소스 사용량 절감이 달성될 수 있다. 애플리케이션은 콘텐츠를 업로드하려는 시도가 이루어지기 전에 또는 후에 시스템에 대하여 식별된 실패 상태에 기초하여 업로드 대기열을 일시정지 및 일시정지 해제하는 것을 포함하여 업로드 대기열을 관리함으로써 이 절감을 수행할 수 있다. 예를 들어, 업로드 프로세스 밖에서, 애플리케이션은 언제든지 네트워크 연결의 끊김을 애플리케이션이 검출하도록 네트워크 연결 변화를 검출할 수 있고, 업로드 대기열은 신규 콘텐츠가 업로드 대기열에서 표시되더라도 업로드 시도가 수행되지 않는 일시정지 상태로 설정된다.

Description

애플리케이션 리소스 사용량 절감 기법
클라우드 스토리지는, 인터넷으로부터 액세스되는 원격 서버 또는 "클라우드(cloud)"에 데이터가 저장되는 데이터 스토리지의 모델이다. 클라우드 스토리지 서비스는 사용자가 자신의 파일을 클라우드 스토리지에 업로드 및 동기화하고, 인터넷에 연결된 모바일 폰, 태블릿, 또는 컴퓨터와 같은 임의의 장치로부터 해당 파일에 액세스할 수 있게 해주는 인터넷 호스팅 서비스이다.
MICROSOFT ONEDRIVE, DROPBOX, GOOGLE DRIVE, BOX, 및 APPLE ICLOUD DRIVE와 같이, 많은 클라우드 스토리지 서비스가 존재한다. 일부 운영 체제는 클라우드 스토리지 서비스와 상호작용하는 백업 기능을 갖는다. 보다 구체적으로, 일부 운영 체제는 클라우드 스토리지 서비스에 대한 통신을 구축하고 있다.
현재, 운영 체제 외부의 애플리케이션들은, 네트워크 연결이 없는 경우에도, 계속해서 파일을 업로드하려고 시도할 뿐만 아니라 상이한 파일들을 여러 차례 업로드하려고 함으로써 리소스를 낭비할 수 있다.
클라우드에 콘텐츠를 업로드하는 애플리케이션의 리소스 사용량을 절감하는 기술을 설명한다.
애플리케이션은 컴퓨팅 장치에서 수신한 콘텐츠를 클라우드 서비스에 전송하기 위한 업로드 대기열(queue)을 관리할 수 있다. 콘텐츠는 사진, 스크린샷, 저장된 파일 등을 포함할 수 있지만, 이들에 한정되는 것은 아니다. 업로드 대기열을 관리하는 것은 검출된 신규 콘텐츠를 업로드 대기열에 추가하는 것 및 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하는 것을 포함할 수 있다. 업로드 대기열을 관리하는 것은, 신규 콘텐츠가 클라우드 서비스에 성공적으로 전송된 경우에는, 신규 콘텐츠를 업로드 대기열에서 송신된 것으로 표시하는 것; 및 업로드에 실패한 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하는 것을 더 포함할 수 있다. 부가적으로, 업로드 대기열을 관리하는 것은 검출된 상태 변화에 기초하여 업로드 대기열을 일시정지하는 것 및 일시정지 해제하는 것을 더 포함할 수 있다.
애플리케이션은, 업로드 대기열이 일시정지 해제 상태인 것으로 표시되는 동안, 업로드 대기열에서 신규한 것으로 표시되는 임의의 콘텐츠를 컴퓨팅 장치의 네트워크 리소스를 사용해서 클라우드 서비스에 전송하기 위해 컴퓨팅 장치의 운영 체제와 통신할 수 있다. 유리하게는, 신규 콘텐츠 프로세스 밖의 애플리케이션은, 신규 콘텐츠가 표시된 경우에조차, 네트워크 연결의 끊김을 검출하는 것에 응답하여, 해당 애플리케이션이 업로드 대기열을 업로드 시도가 수행되지 않는 일시정지 상태로 설정하도록, 네트워크 연결의 끊김 및 네트워크 연결의 가용성의 네트워크 연결 변화를 검출한다. 다른 실패 상태들이 검출될 수 있으며, 대기열을 일시정지 또는 일시정지 해제하는 데 사용될 수 있다.
본 개요는 후속하여 발명을 실시하기 위한 구체적인 내용 부분에서 설명되는 개념들 중 선택된 것들을 단순화된 형태로 소개하고자 제공되는 것이다. 본 개요는 청구항의 청구대상의 핵심적인 특징이나 필수적인 특징들을 밝히고자 함이 아니며, 청구항의 청구대상의 범위를 제한하는데 이용이 되고자 함도 아니다.
도 1은 본 발명의 다양한 실시형태들이 실시될 수 있는 예시적인 동작 환경을 예시한다.
도 2는 본 명세서에서 설명되는 바와 같은 애플리케이션 리소스 사용량 절감을 포함하는 애플리케이션의 예시적인 구현예를 예시한다.
도 3은 리소스 사용량 절감 없이 콘텐츠의 자동 업로드를 제공하는 방법의 예시적인 프로세스 흐름도를 예시한다.
도 4a 및 도 4b는 리소스 사용량 절감을 제공하는 방법의 예시적인 프로세스 흐름도들을 예시한다.
도 5는 리소스 사용량 절감을 제공하는 방법의 예시적인 프로세스 흐름도를 예시한다.
도 6은 애플리케이션 리소스 사용량 절감을 포함하는 애플리케이션의 예시적인 사용자 인터페이스를 예시한다.
도 7은 본 명세서에서 설명되는 특정 구현예들에서 사용될 수 있는 컴퓨팅 장치의 컴포넌트들을 예시하는 블럭도를 도시한다.
클라우드에 콘텐츠를 업로드하는 애플리케이션의 리소스 사용량을 절감하는 기술을 설명한다.
애플리케이션은 컴퓨팅 장치에서 수신한 콘텐츠를 클라우드 서비스에 전송하기 위한 업로드 대기열을 관리할 수 있다. 용어 "애플리케이션(application)" 및 "앱(app)"은 본 명세서에서 호환적으로 사용된다. 또한, 용어 "전송(transmit)" 및 "업로드(upload)"는 본 명세서에서 호환적으로 사용될 수 있다. 콘텐츠는 사진, 스크린샷, 저장된 파일 등을 포함할 수 있지만, 이들에 한정되는 것은 아니다. 업로드 대기열을 관리하는 것은 검출된 신규 콘텐츠를 업로드 대기열에 추가하는 것 및 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하는 것을 포함할 수 있다. 업로드 대기열을 관리하는 것은, 신규 콘텐츠가 클라우드 서비스에 성공적으로 전송된 경우에는, 신규 콘텐츠를 업로드 대기열에서 송신된 것으로 표시하는 것; 및 업로드에 실패한 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하는 것을 더 포함할 수 있다. 부가적으로, 업로드 대기열을 관리하는 것은 검출된 상태 변화에 기초하여 업로드 대기열을 일시정지하는 것 및 일시정지 해제하는 것을 더 포함할 수 있다.
애플리케이션은 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 컴퓨팅 장치의 네트워크 리소스를 사용해서 클라우드 서비스에 전송하기 위해 컴퓨팅 장치의 운영 체제와 통신할 수 있다. 유리하게는, 업로드 프로세스 밖에서는, 앱은, 신규 콘텐츠가 표시된 경우에조차, 네트워크 연결의 끊김을 검출하는 것에 응답하여, 해당 앱이 업로드 대기열을 업로드 시도가 수행되지 않는 일시정지 상태로 설정할 수 있도록, 네트워크 연결의 끊김 및 네트워크 연결의 가용성의 네트워크 연결 변화를 더 검출할 수 있다.
유리하게는, 설명한 기술은 현재의 네트워크 가용성 상태를 식별하는 것을 포함하고, 이는 소프트웨어 프로그램이 네트워크 접속이 없을 때 여러 차례 업로드하려고 함으로써 낭비되는 리소스를 절감하게 한다. 또한, 네트워크 가용성의 검출은 업로드 프로세스 밖에서 수행되므로, 업로드 프로세스는 신규 콘텐츠가 검출될 때마다 업로드하기 전에 네트워크 연결성을 확인할 필요가 없다.
도 1은 본 발명의 실시형태들이 실시될 수 있는 예시적인 동작 환경을 도시한다. 도 1을 참조하면, 예시적인 동작 환경은 클라우드 서비스(145) 뿐만 아니라 다른 사용자 컴퓨팅 장치들(도시되지 않음)과의 통신을 위해 네트워크(155)에 동작 가능하게 결합되는 컴퓨팅 장치(100)를 포함할 수 있다. 클라우드 서비스(145)는 서버(150)와 같이, 하나 이상의 서버에 의해 구현될 수 있다.
네트워크(155)는 셀룰러 네트워크(예컨대, 무전 전화기), 점대점 방식의 다이얼 업 접속, 위성 네트워크, 인터넷, LAN(local area network), WAN(wide area network), WiFi 네트워크, 애드혹(ad hoc) 네트워크 또는 이들의 조합일 수 있지만, 이에 한정되는 것은 아니다. 이러한 네트워크는 허브, 브릿지, 라우터, 스위치, 서버, 및 게이트웨이와 같은 다양한 유형의 네트워크 요소들을 연결하는 데 폭넓게 사용된다. 네트워크(155)는 인터넷과 같은 공중 네트워크, 및/또는 안전한 기업 사설 네트워크와 같은 사설 네트워크를 포함하는 하나 이상의 연결된 네트워크(예컨대, 다중 네트워크 환경)를 포함할 수 있다. 네트워크(155)에의 액세스는 당업자에 의해 이해될 수 있듯이 하나 이상의 유선 또는 무선 액세스 네트워크를 통해 제공될 수 있다.
컴퓨팅 장치(100)는, 네트워크(155)를 통해 서버(150)와 같은 서버에 액세스하는 데 사용될 수 있는, 개인용 컴퓨터(예컨대, 데스크톱 컴퓨터), 랩톱, PDA(personal digital assistant), 모바일 폰(또는 스마트 폰), 태블릿, 슬레이트(slate), 게임용 장치 또는 콘솔, 스마트 텔레비전, 또는 단말일 수 있지만, 이에 한정되는 것은 아니다. 서버(150)는 기업용 서버, 클라우드 기반의 서버, 전용 서버, 호스트 서버 등일 수 있다.
컴퓨팅 장치(100)는 소프트웨어 프로그램을 로딩 및 실행하는 능력 및 네트워크(155)와 같은 네트워크에 액세스하는 능력을 그 사용자에게 제공하고 서버(150)와 같은 하나 이상의 서버 뿐만 아니라 다른 컴퓨팅 장치들(도시되지 않음)과 통신하는 임의의 유형의 컴퓨터 시스템일 수 있음이 분명해야 한다.
컴퓨팅 장치(100)는 도 7에 도시된 컴퓨팅 시스템(700)에 대하여 설명된 것과 같이 구현될 수 있다. 예를 들어, 컴퓨팅 장치(100)는 음성, 터치와 같은 것에 의해, 및/또는 컴퓨팅 장치(100)에 동작 가능하게 결합된 키보드 및/또는 마우스를 통해 사용자로부터 입력을 수신하도록 구성된다. 컴퓨팅 장치(100)는 하나 이상의 사용자 인터페이스를 사용자에게 디스플레이하도록 구성된 디스플레이(예컨대, 컴퓨터 모니터)를 더 포함할 수 있다. 일부 실시예들에 있어서, 디스플레이는 컴퓨팅 장치(100)가 디스플레이를 통해 사용자 입력을 수신할 수 있도록 터치스크린일 수 있다.
부가적으로, 컴퓨팅 장치(100)는 프로세서(105)와 같은 하나 이상의 중앙 처리 장치(CPU), 캐시(110)와 같은 메모리, 스토리지 시스템(125)과 같은 대용량 스토리지, 및 네트워크 인터페이스(예컨대, 무선 네트워크/통신 인터페이스(130) 및 셀룰러 네트워크/통신 인터페이스(135)) 및 사용자 입력 장치(예컨대, 카메라(140))와 같은 I/O 장치로 구성될 수 있다. 컴퓨팅 장치(100)의 요소들은 버스를 통해 서로 통신할 수 있다.
컴퓨팅 장치(100)는 운영 체제(120) 및 하나 이상의 애플리케이션 프로그램(115)을 실행하도록 구성된다. 애플리케이션 프로그램(115)은 기반 컴퓨팅 장치(100)에 대한 제한된 액세스를 갖는 앱 스토어로부터 다운로드되는 앱일 수 있다. 이러한 프로그램의 하나는 도 5에서 설명되는 바와 같은 프로세스(500)의 기능을 가진 앱(116)일 수 있다.
운영 체제(120)는 컴퓨팅 장치(100)의 동작을 제어하기 위한 컴퓨터 프로그램이다. 애플리케이션 프로그램(115)은 다양한 기능을 제공하기 위해 운영 체제(120)의 상부에서 실행하도록 구성되는 실행 가능 프로그램이고, 앱(116)과 같이, 클라우드 스토리지와 통신하는 애플리케이션을 포함할 수 있다. 도 5에서 설명되는 바와 같은 프로세스(500)의 기능을 가진 앱(116)은 컴퓨팅 장치(100)의 리소스에 액세스하기 위해 운영 체제(120)에 의해 권한을 부여받는다. 따라서, 앱(116)이 기반 컴퓨팅 장치(100)에 대한 제한된 액세스를 갖기 때문에, 앱(116)은 컴퓨팅 장치(100)의 컴포넌트들에 액세스하기 위해 운영 체제(120)와 통신한다. 이 통신을 도시하기 위해 도 1에서 분해도가 제공된다.
전술한 바와 같이, 앱(116)은 그 특징의 일부로서, 예를 들어 콘텐츠를 교환하기 위해 클라우드 서비스(145)와 통신한다. 앱(116)은 네트워크를 통해 클라우드 서비스(145)와 통신하기 위해 운영 체제(120)를 거치고; 운영 체제(120)는 앱(116)이 네트워크/통신 인터페이스(130) 또는 셀룰러 네트워크/통신 인터페이스(135)와 같은 네트워크 인터페이스에 액세스할 수 있게 한다.
앱(116)은 콘텐츠를 클라우드 서비스(145)에 전송하기 위한 업로드 대기열을 관리한다. 업로드 대기열은 앱 데이터 리소스(117)에 저장되는 데이터 구조일 수 있다. 앱 데이터 리소스는 컴퓨팅 장치(100)가 (운영 체제(120)를 통해) 앱(116)에 할당하는 스토리지 시스템(125)의 섹션일 수 있어서, 앱(116)이 해당 스토리지 섹션에서 일어나는 일을 제어할 수 있게 된다. 업로드 대기열 데이터 구조는 클라우드 서비스(145)에 업로드될 콘텐츠를 식별하는 데이터베이스 테이블일 수 있다. 데이터베이스 테이블은 콘텐츠가 신규한 것인지, 송신된 것인지, 또는 실패한 것인지의 여부를 표시하는 정보를 포함할 수 있다. 예를 들어, 신규한 것의 표시는 콘텐츠가 클라우드 서비스(145)에 업로드될 준비가 되어 있음을 나타낼 수 있고; 송신된 것의 표시는 클라우드 서비스(145)에 성공적으로 업로드된 콘텐츠를 나타낼 수 있고; 실패한 것의 표시는 콘텐츠를 클라우드 서비스(145)에 업로드하려는 성공하지 못한 시도가 있었음을 나타낼 수 있다.
앱(116)이 업로드 대기열을 관리하는 것을 돕는 정보와 같은 다른 유용한 정보가 앱 데이터 리소스(117)에 저장될 수 있다. 예를 들어, 앱 데이터 리소스(117)는 업로드 대기열의 에러 정보 및 일시정지 상태 정보를 포함할 수 있다.
앱(116)은 하나 이상의 애플리케이션 프로그래밍 인터페이스(API)를 통해 운영 체제(120)와 통신한다. API의 추가적인 설명은 도 7과 관련하여 제공된다.
API를 통해, 운영 체제(120)가 트리거 기능을 제공할 수 있다. 앱(116)은 운영 체제(120)에 등록할 수 있어서, 앱(116)이 등록된 트리거와 연관되는 통지를 수신할 수 있게 된다. 예를 들어, 앱(116)은 네트워크 변화 트리거를 등록할 수 있다. 이후, 네트워크 연결의 상태가, 예를 들어, 사용 가능한 네트워크 연결로부터 사용 불가능한 네트워크 연결로 변화되면, 앱(116)은 해당 변화에 대한 통지를 운영 체제(120)로부터 수신하고 앱(116)은 적절한 동작을 취할 수 있다. 또한, 앱(116)은 콘텐츠 변화 트리거를 등록할 수 있다. 콘텐츠 변화 트리거는 특별하게 특정 폴더에 대한 것이거나 또는 일반적으로 다수의 폴더(또는 컴퓨팅 장치(100) 상의 임의의 위치)에 대한 것일 수 있다. 콘텐츠 변화 트리거에 의해, 콘텐츠가 (특별하게 또는 일반적으로) 특정 폴더(들)에서 변화되면, 앱(116)은 운영 체제(120)로부터 변화의 통지를 수신하고 앱(116)은 적절한 동작을 취할 수 있다. 예를 들어, 콘텐츠 변화 트리거에 대한 등록이 카메라 롤에 주어지면, 컴퓨팅 장치(100)의 카메라로 사진이 촬영되어 카메라 롤에 저장될 경우, 앱(116)은 운영 체제(120)로부터 카메라 롤에서의 변화의 통지를 수신하고 앱(116)은 적절한 동작을 취할 수 있다.
도 2는 본 명세서에서 설명되는 바와 같은 애플리케이션 리소스 사용량 절감을 포함하는 애플리케이션의 예시적인 구현예를 예시한다. 도 2를 참조하면, 앱(116)은 업로드 대기열 관리 모듈(210), 신규 콘텐츠 모듈(215), 실패 검출 모듈(220), 및 업로드 모듈(230)을 포함한다. 부가적으로, 앱(116)은 앱(116)의 다양한 기능과 연관되는 다른 모듈들을 포함할 수 있다.
업로드 대기열 관리 모듈(210)은 컴퓨팅 장치에서 수신된 콘텐츠를 클라우드 서비스에 전송하기 위한 업로드 대기열의 관리와 연관되는 기능을 포함한다. 콘텐츠는 컴퓨팅 장치에 저장되어 있는 저장된 파일, 사진, 스크린샷 등을 포함할 수 있지만, 이들에 한정되는 것은 아니다. 예를 들어, 업로드 대기열 관리 모듈(210)은 신규 콘텐츠 모듈(215)로부터 신규 콘텐츠의 아이덴티티를 수신하고 신규 콘텐츠를 업로드 대기열 데이터 구조에 입력으로서 포함한다. 부가적으로, 업로드 대기열 관리 모듈(210)은 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시할 수 있어서, 업로드 모듈(230)이 신규 콘텐츠가 클라우드 서비스에 전송될 준비가 되어 있음을 알 수 있게 된다. 업로드 모듈(230)로부터 성공하지 못한 업로드의 통신을 수신한 후에, 업로드 대기열 관리 모듈(210)은 실패한 콘텐츠를 업로드 대기열에서 신규한 것으로 표시할 수 있어서, 업로드 모듈(230)이 실패한 콘텐츠가 클라우드 서비스에 다시 전송될 준비가 되어 있음을 알 수 있게 된다. 또한, 업로드 모듈(230)로부터 성공적인 업로드의 통신을 수신한 후에, 업로드 대기열 관리 모듈(210)은 신규 콘텐츠를 업로드 대기열에서 송신된 것으로 표시할 수 있다.
또한, 업로드 대기열 관리 모듈(210)은, 예를 들어, 업로드 대기열이 일시정지 상태에 있음을 표시하기 위해 플래그를 저장하거나 또는 일시정지 비트를 사용함으로써, 업로드 대기열을 일시정지 상태 또는 일시정지 해제 상태로 둘 수 있다. 업로드 대기열이 일시정지 상태에 놓이면, 업로드 대기열 관리 모듈(210)에 의해 신규 콘텐츠가 표시되더라도, 업로드 모듈(230)에 의해 업로드 시도는 수행되지 않는다. 보다 구체적으로, 업로드 대기열이 일시정지 상태에 있으면, 업로드 모듈(230)은 신규 콘텐츠를 클라우드 서비스에 전송하기 위해 운영 체제와 통신하지 않을 수 있다. 또한, 업로드 대기열이 일시정지 해제 상태로 설정되면, 업로드 모듈(230)은 업로드 대기열 관리 모듈(210)에 의해 표시되는 신규 콘텐츠를 클라우드 서비스에 전송하기 위해 운영 체제와 통신할 수 있다. 유리하게는, 업로드 모듈(230)은 업로드 대기열의 일시정지 상태 또는 일시정지 해제 상태에 의존하여 동작을 결정할 수 있다.
업로드 모듈(230)은 콘텐츠를 클라우드 스토리지 서비스에 전송하는 것과 연관되는 기능을 포함한다. 예를 들어, 업로드 대기열이 업로드 대기열 관리 모듈(210)에 의해 신규한 것으로 표시되는 콘텐츠를 포함하고 일시정지 해제 상태에 있을 경우, 업로드 모듈(230)은 컴퓨팅 장치의 네트워크 리소스를 사용해서 신규 콘텐츠를 클라우드 서비스에 전송하기 위해 컴퓨팅 장치의 운영 체제와 통신한다. 예를 들어, 운영 체제는 업로드 모듈(230)이 무선 네트워크/통신 인터페이스 또는 셀룰러 네트워크/통신 인터페이스와 같은 네트워크 인터페이스에 액세스하는 것을 허용할 수 있다.
부가적으로, 앱(116)은 신규 콘텐츠가 장치에 저장될 때 또는 네트워크 연결 변화 또는 다른 상태 변화가 있을 경우 앱(116)이 통지를 수신할 수 있게 하는 트리거를 운영 체제에 등록할 수 있다. 신규 콘텐츠 모듈(215)은 신규 콘텐츠를 검출하는 것과 연관되는 기능을 포함한다. 신규 콘텐츠 모듈(215)은 신규 콘텐츠를 다양한 방식으로 검출할 수 있다. 예를 들어, 앱(116)이 콘텐츠 변화를 표시하는 통지를 수신할 경우, 신규 콘텐츠 모듈(215)은 운영 체제를 통해 스토리지 시스템에 액세스하고 신규 콘텐츠를 식별할 수 있어서, 업로드 대기열 관리 모듈(210)이 신규 콘텐츠를 업로드 대기열 데이터 구조에서 입력으로서 포함할 수 있게 된다.
또한, 신규 콘텐츠 모듈(215)은 운영 체제로부터 통지를 수신하지 않고, 사용된 카메라와 같은 입력을 장치가 수신했다고 식별함으로써 신규 콘텐츠를 검출할 수도 있다. 이후, 신규 콘텐츠 모듈(215)은 미디어 스토리지에서 신규 콘텐츠를 찾을 수 있다.
실패 검출 모듈(220)은 네트워크 연결 변화 또는 상태 변화와 같은, 시스템에서의 변화를 검출하는 것과 연관되는 기능을 포함한다. 예를 들어, 실패 검출 모듈(220)은, 신규 콘텐츠가 표시된 경우에조차, 네트워크 연결의 끊김을 검출하는 것에 응답하여, 실패 검출 모듈(220)이 업로드 대기열 관리 모듈(210)과 통신해서, 업로드 대기열 관리 모듈(210)이 업로드 대기열을 업로드 시도가 수행되지 않는 일시정지 상태로 설정할 수 있게 하도록, 네트워크 연결의 끊김 및 네트워크 연결의 가용성의 네트워크 연결 변화를 검출할 수 있다. 또한, 업로드 대기열 관리 모듈(210)은 실패 검출 모듈(220)이 네트워크 연결의 가용성을 검출하고 통신하는 것에 응답하여 업로드 대기열을 일시정지 해제 상태로 설정할 수 있다. 유리하게는, 실패 검출 모듈(220)은 업로드 프로세스 밖에서 동작할 수 있다.
다른 실시예에 있어서, 앱(116)이 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 클라우드 서비스에 전송하기 위해 실패의 실패 표시를 수신하면, 앱(116)은 실패의 표시를 저장할 수 있다. 실패의 표시는 네트워크 연결 에러와 같은 기지의 에러를 표시할 수 있다. 실패 검출 모듈(220)은 저장된 실패 표시에서 수신된 기지의 에러를 검출하고 나서, 기지의 에러를 확인하기 위해 운영 체제와 통신할 수 있다. 기지의 에러가 운영 체제에 의해 확인되면, 실패 검출 모듈(220)은 업로드 대기열을 일시정지 상태에 둠으로써 업로드 대기열을 일시정지하고 실패한 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하기 위해 업로드 대기열 관리 모듈(210)과 통신할 수 있다. 실패 검출 모듈(220)은 또한, 운영 체제를 거쳐, 사용자 인터페이스를 통해 사용자에게 에러를 통지할 수 있다. 이는 사용자가 에러를 해결할 수 있게 하고, 콘텐츠의 업로드는 업로드 대기열을 일시정지 해제 상태로 설정함으로써 재개될 수 있다.
도 3은 리소스 사용량 절감 없이 콘텐츠의 자동 업로드를 제공하는 현재의 방법의 예시적인 프로세스 흐름도를 예시한다. 전술한 바와 같이, 애플리케이션은 기반 시스템에의 액세스를 제한하고, 그에 따라 엄격한 리소스 제한을 가질 수 있다. 도 3을 참조하면, 프로세스(300)는 이들 제약으로 인해 발생할 수 있는 문제점의 실시예이다.
구체적인 실시예이 있어서, 클라우드 스토리지 앱은 콘텐츠를 사용자의 클라우드 스토리지에 업로드하는 특징을 가질 수 있다. 이 특징은 사진, 스크린샷, 및 저장된 파일과 같은 신규 콘텐츠를 자동으로 검출하고, 이들을 사용자의 클라우드 스토리지 계정에 업로드할 수 있다. 그러나, 사용자가 앱이 해당 파일을 업로드하기 위해 사용할 수 있는 네트워크 연결을 갖지 못하는 경우, 특징은 중단될 수 있다. 검출되는 모든 파일이 업로드 대기열에 추가되고 앱은 이들 파일을 업로드하려 한다. 그러나, 컴퓨팅 장치는 작동하는 네트워크 연결이 없기 때문에, 해당 파일 없로드는 실패한다. 따라서, 앱은 배터리 전원, 메모리, CPU 시스템, 및 그 밖의 시스템 리소스를 사용해서 실패가 확실한 파일을 업로드하려 할 수 있다. 또한, 파일이 실패하면, 장치가 네트워크 연결에 재연결될 때 실패가 지워지지 않고 파일이 자동으로 업로드되지 않을 수도 있다.
보다 상세하게, 앱은 사용자의 컴퓨팅 장치의 운영 체제에 하나 이상의 트리거를 등록(305)할 수 있어서, 앱이 등록된 트리거와 연관되는 통지를 수신할 수 있게 된다. 이후, 사진이 촬영되어 장치에 저장되는 경우, 운영 체제는 신규 사진이 있음을 앱에 통지(310)하게 된다. 앱이 운영 체제로부터 신규 사진의 통지를 수신(315)할 경우, 앱은 신규 사진을 검출하고 신규 사진을 업로드 대기열에서 신규한 것으로 표시함으로써 신규 사진을 업로드 대기열에 추가(320)할 수 있다.
도 3에 예시된 바와 같이, 장치는 네트워크 연결이 끊어졌을 수 있다. 그러나, 신규 사진이 신규한 것으로 표시됨에 따라 업로드할 준비가 되기 때문에, 앱은 운영 체제로 API를 통해 네트워크를 활성화함으로써 신규 사진을 업로드하려고 시도(325)하게 된다. 시도된 업로드는 장치의 네트워크 리소스를 사용(330)하고 네트워크 연결의 끊김 때문에, 신규 사진을 업로드하려는 시도가 실패한다. 운영 체제는 업로드의 실패를 표시(335)하고 앱은 실패 표시를 수신(340)한다. 업로드 시도가 실패한 이유를 모른 채 앱이 실패 표시를 수신할 수 있기 때문에, 앱은 업로드가 다시 시도되지 않아야 한다는 것을 알지 못한다. 따라서, 앱은 신규 사진을 업로드하려고 여러 차례 시도(345)한다. 앱이 업로드를 시도한 횟수는 정책 규칙에 기초할 수 있다. 업로드를 시도할 때마다, 앱은 장치의 네트워크 리소스를 사용(350)할 수 있고; 네트워크 연결이 여전히 끊어져 있으면, 매번 업로드 시도가 실패할 수 있다. 또한, 매번, 운영 체제는 기지의 에러를 표시하지 않고 앱에 실패의 표시를 송신(355)한다. 앱이 실패 표시를 수신(360)하고, 정책 규칙에 따라 지정된 횟수로 업로드를 시도한 후에, 앱은 업로드 시도가 왜 실패했는지에 대해서는 이유를 제시하지 않고 신규 사진을 업로드 대기열에서 실패한 것으로 표시(365)한다.
부가적으로, 이 시나리오에서, 네트워크가 여전히 끊어진 상태에서, 다른 사진이 촬영될 수 있고 운영 체제는 신규 사진을 앱에 통지(370)한다. 이 프로세스는, 에러의 표시가 없었기 때문에, 네트워크 리소스를 사용하면서, 여러 차례 계속될 수 있고 매번 시도된 업로드가 실패한다.
도 4a 및 도 4b는 리소스 사용량 절감을 제공하는 방법의 예시적인 프로세스 흐름도들을 예시하고; 도 5는 리소스 사용량 절감을 제공하는 방법의 예시적인 프로세스 흐름도를 예시한다.
다양한 실시예들에 따르면, 앱은 네트워크 연결이 없는 경우 또는 실패 상태인 경우를 검출할 수 있고, 신규 콘텐츠가 들어오면 임의의 신규 콘텐츠를 여전히 검출할 수 있다. 앱은 신규 콘텐츠를 업로드 대기열에 추가할 수 있다. 그러나, 앱은 업로드가 실패할 것임을 알고 있고 이 지식은 업로드 대기열을 일시정지 및 일시정지 해제하는 데 사용되기 때문에, 실제로는 앱이 해당 신규 콘텐츠를 업로드하지 않을 수 있다. 장치가 사용 가능한 네트워크 연결을 얻거나 또는 성공적인 상태로 복귀하는 경우, 앱은 연결을 검출하고 나서 업로드 대기열을 일시정지 해제할 수 있어서, 클라우드 서비스에의 신규 콘텐츠의 업로드가 다시 시작될 수 있다. 유리하게는, 앱은 네트워크 연결 상태 또는 실패 상태를 독립적으로 검출하여 고려하고 나서, 네트워크 연결이 끊어지거나 또는 시스템이 실패 상태를 포함하는 동안에는 업로드 대기열의 업로드를 정지할 수 있고, 그에 따라 리소스 사용량이 절감된다.
도 4a 및 도 4b는 리소스 사용량 절감이 수행될 수 있는 방법을 예시하는 보다 상세한 설명을 제공한다. 도 4a는 업로드 대기열에 대하여 신규 콘텐츠가 식별된 후에 네트워크 연결성 에러가 식별되는 시나리오를 설명하고; 도 4b는 업로드 대기열에 대하여 신규 콘텐츠가 식별되기 전에 네트워크 연결성 에러가 식별되는 시나리오를 설명한다.
도 4a 및 도 4b의 시나리오에 의해 예시되는 바와 같이, 앱이 콘텐츠를 업로드하려는 시도를 여러 차례 재시도할 수 있는 도 3의 프로세스(300)에 의해 설명되는 상황을 회피하는 것이 가능하다.
도 4a를 참조하면, 애플리케이션은, 신규 콘텐츠가 추가되거나 또는 네트워크 연결 상태가 변화되었을 경우; 또는 보다 구체적으로, 앱을 구현하는 장치가 연결성을 잃거나 또는 얻는 경우, 통지될 운영 체제에 하나 이상의 트리거를 등록(402)할 수 있다. 예를 들어, WINDOWS 운영 체제에 대한 MICROSOFT ONEDRIVE 앱은 네트워크 연결 또는 신규 콘텐츠가 없는지를 결정하기 위해 2개의 트리거를 사용한다. 이들 트리거는 운영 체제로부터 이용 가능한 네트워크 변화 트리거 및 콘텐츠 변화 트리거를 포함할 수 있다. 예를 들어, 네트워크 변화 트리거는 NetworkStateChange 타입, 및 WebErrorStatus.OperationCanceled에 의해 실패가 야기되었음을 보고하는 개별 파일 업로드 실패를 사용하는 시스템 트리거(SystemTrigger)일 수 있다. 트리거는 네트워크 연결이 있을 때만이 아니라 항상 실행하도록 설정될 수 있다. 따라서, 앱은 콘텐츠를 검출하고 해당 콘텐츠를 네트워크 연결이 없을 때에도 업로드 대기열에 추가할 수 있다. 파일 업로드가 실패하고 앱이 WebErrorStatus.OperationCanceled의 에러를 수신하면, 앱은 현재의 연결 상태를 검사하고 네트워크 연결이 없으면 업로드 대기열을 일시정지한다. 또한, 앱이 NetworkStateChange 트리거를 통해 네트워크 상태가 변화되었다고 통지받는 경우(예컨대, Wi-Fi 연결을 얻거나 또는 데이터 연결을 잃음), 앱은 사용 가능한 네트워크 연결이 있는지를 확인하기 위한 검사를 한다.
앱이 하나 이상의 트리거를 등록(402)한 후에, 그리고 사진이 촬영되어 장치 상에, 예를 들어 카메라 롤에 저장될 경우, 운영 체제는 앱에 신규 사진을 통지(404)할 수 있다. 앱은 신규 사진의 통지를 수신(406)할 수 있고, 계속해서 신규 사진을 검출하고 신규 사진을 업로드 대기열에 추가(408)할 수 있다. 예를 들어, 앱은 신규 사진을 업로드 대기열에서 신규한 것으로 표시할 수 있고, 그에 따라 클라우드 서비스에 전송될 준비가 된다.
신규 사진이 업로드 대기열에서 신규한 것으로 표시되면, 앱은 운영 체제로 API를 통해 네트워크를 활성화하고 신규 사진을 업로드하려고 시도(410)할 수 있고, 이는 장치의 네트워크 리소스를 사용(412)할 수 있다. 그러나, 이 시나리오에서 예시된 바와 같이, 신규 사진을 업로드하려고 시도(410)하기 전에, 장치가 네트워크 연결을 잃게 되면, 업로드 시도는 실패할 것이다. 업로드가 실패하면, 운영 체제는 신규 콘텐츠의 업로드 실패 뿐만 아니라 실패 이유(예컨대, 실패를 야기한 에러 타입)를 보고할 수 있는 실패의 표시(414)를 앱에 통신한다. 예를 들어, 앱은 네트워크 변화 트리거가 등록되기 때문에, 운영 체제는 WebErrorStatus.OperationCanceled와 같은 기지의 네트워크 에러에 의해 실패가 야기되었음을 보고할 수 있다.
일부 실시예들에 있어서, 앱이 실패 표시를 수신(416)하면, 앱은 네트워크 실패의 표시를 저장할 수 있다. 이후, 앱은 기지의 네트워크 에러를 검출하고, 사진을 에러 없음으로서 표시하고, 업로드 대기열을 일시정지(418)할 수 있다. 예를 들어, 앱이 운영 체제로부터 실패 표시를 수신하는 경우, 실패 표시는 네트워크 연결 에러와 같은 에러의 타입을 포함할 수 있다. 앱은 수신한 에러의 타입을 검사할 수 있고, 에러가 네트워크 연결 에러이면, 앱은 운영 체제와 통신함으로써 네트워크의 현재 상태를 검사하고, 사용 가능한 네트워크 연결이 없으면 업로드 대기열을 일시정지할 수 있다. 유리하게는, 앱은 또한, 실패한 콘텐츠를 신규한 것으로 표시함으로써, 실패한 콘텐츠(예컨대, 현재의 콘텐츠 업로드)를 업로드 대기열에 돌려보낼 수 있다. 따라서, 장치가 네트워크 연결을 복구할 경우에, 이전에 실패한 콘텐츠가 신규한 것으로 표시되게 되고 자동으로 업로드될 것이다.
다양한 실시예들에 있어서, 사용 가능한 네트워크 연결이 없다고 결정한 후에 업로드 대기열을 일시정지하는 대신에, 앱은 네트워크 에러가 있음을 표시하는 에러 메시지를 사용자에게 송신할 수 있고, 에러를 해결하기 위해, 사용자는 네트워크에 연결해야 한다. 이후, 사용자가 네트워크에 연결하면, 앱은 업로드 대기열을 일시정지 해제함으로써 콘텐츠를 다시 업로드하려고 시도할 수 있다.
업로드를 일시정지하는 것은 업로드 대기열을 일시정지 상태로 설정하는 것을 포함하고, 여기서는 신규 콘텐츠가 표시되더라도 업로드 시도가 수행되지 않게 된다. 업로드를 일시정지 해제하는 것은 업로드 대기열을 일시정지 해제 상태로 설정하는 것을 포함하고, 여기서는 신규 콘텐츠가 표시되면 업로드 시도가 수행된다. 앱은 업로드 대기열을 다양한 방식으로 일시정지 상태로 설정할 수 있다. 예를 들어, 앱은 업로드 대기열이 일시정지 또는 일시정지 해제되는지의 여부를 표시하는 일시정지 비트, 또는 플래그를 저장할 수 있다.
이 시나리오에 예시된 바와 같이, 네트워크가 여전히 연결되어 있지 않은 상태에서, 신규 사진이 촬영되고 장치에 의해 저장된다. 이후, 운영 체제는 신규 사진을 앱에 통지(420)하고, 앱은 신규 사진의 해당 통지를 수신(422)한다. 이후, 앱은 신규 사진을 검출하고 신규 사진을 업로드 대기열에 추가(424)할 수 있다. 이 경우에는, 업로드 대기열이 일시정지되기 때문에, 앱에 의해서 신규 콘텐츠를 업로드하려는 어떠한 시도도 이루어지지 않는다.
장치가 네트워크 연결을 복구할 경우, 운영 체제는 네트워크 연결 변화를 앱에 통지(426)할 수 있다. 전술한 바와 같이, 앱이, 예를 들어, 네트워크 변화 트리거를 통해, 네트워크 연결 변화의 통지를 수신(428)하는 경우, 앱은, 사용 가능한 네트워크 연결을 확인하기 위해 운영 체제와 통신하는 것을 포함할 수 있는, 네트워크 연결 상태를 검출(430)함으로써 사용 가능한 네트워크 연결이 있는지를 확인하기 위한 검사를 한다. 네트워크 연결이 복구되었기 때문에, 앱은 사용 가능한 네트워크 연결을 검출하고 업로드 대기열을 일시정지 해제(432)한다. 앱은 운영 체제로 API를 통해 네트워크를 활성화하고 업로드 대기열에서 다시 신규 사진을 업로드하려고 시도(434)할 수 있다.
도 4b를 참조하면, 애플리케이션은, 신규 콘텐츠가 존재하거나, 또는 네트워크 연결 상태가 변화되었을 경우, 보다 구체적으로, 컴퓨팅 장치가 연결성을 잃거나 또는 얻는 경우, 통지될 운영 체제에 하나 이상의 트리거를 등록(452)할 수 있다. 애플리케이션이 하나 이상의 트리거를 등록(452)한 후에, 이 시나리오에 예시된 바와 같이, 장치가 네트워크 연결을 잃으면, 운영 체제는 네트워크 연결 변화를 앱에 통지(454)한다.
앱은 운영 체제로부터 네트워크 연결 변화의 통지를 수신(456)하고 나서, 계속해서 사용 가능한 네트워크 연결이 없음을 확인하기 위해 운영 체제와 통신함으로써 네트워크 연결의 상태를 검출(458)할 수 있다. 일부 실시예들에 있어서, 전술한 바와 같이, 사용 가능한 네트워크 연결이 없다고 결정한 후에, 앱은 네트워크 에러가 있다는 것 및 및 에러를 해결하는 방법을 표시하는 에러 메시지를 사용자에게 송신할 수 있다. 이후, 사용자가 에러를 해결하고 네트워크에 연결하면, 앱은 업로드 대기열을 일시정지 해제 상태로 설정함으로써 콘텐츠의 업로드를 재개한다.
앱이 네트워크 연결이 없음을 검출하면, 앱은 전술한 방법들 중 어느 하나를 사용해서 업로드 대기열을 일시정지(460)할 수 있다. 업로드 대기열이 일시정지 상태에 있을 경우에는, 업로드 대기열에서 신규 콘텐츠가 표시되더라도 업로드 시도는 수행되지 않는다.
이 시나리오에서 예시된 바와 같이, 네트워크 연결이 없는 상태에서, 사진이 촬영되고 시스템에 저장되면, 운영 체제는 신규 사진을 앱에 통지(462)하게 된다. 앱이 신규 사진의 통지를 수신(464)할 경우, 앱은 신규 사진을 검출하고 신규 사진을 업로드 대기열에 추가(466)할 수 있다. 그러나, 업로드 대기열이 일시정지 상태에 있기 때문에, 신규 사진이 업로드 대기열에 추가될 수는 있지만, 신규 사진을 업로드하려는 시도는 없을 것이다.
이 시나리오에 예시된 바와 같이, 장치가 네트워크 연결을 복구할 경우, 운영 체제는 네트워크 연결 변화를 앱에 통지(468)하고, 앱은 네트워크 변화의 통지를 수신(470)한다. 앱이 네트워크 변화의 통지를 수신(470)하면, 앱은 사용 가능한 네트워크 연결이 있음을 확인하기 위해 운영 체제와 통신함으로써 네트워크 연결의 상태를 검출(472)하고, 업로드 대기열을 일시정지 해제(474)한다. 업로드 대기열이 일시정지 해제 상태에 있으면, 앱은 이전에 업로드 대기열에 추가되었던 신규 사진을 업로드하려고 시도(476)한다.
도 5를 참조하면, 리소스 사용량 절감은 네트워크 연결의 끊김 외에도 다양한 실패 상태 상황에 대하여 사용될 수 있다. 프로세스(500) 동안, 앱은 실패 상태의 존재를 검출할 수 있다. 앱은 실패 상태를 다양한 방식으로 검출할 수 있다. 예를 들어, 앱은 전술한 바와 같이, 콘텐츠 변화 트리거 및 네트워크 변화 트리거와 같은 트리거를 등록할 수 있다. 다른 실시예로서, 앱은 실행되는 스레드를 갖고, 운영 체제에 의해 먼저 통지되지 않고 계속해서 실패 상태의 존재를 검출할 수 있다.
장치가, 운영 체제로부터 몇몇 종류의 트리거를 수신하도록 애플리케이션이 등록한 실패 상태로 되면, 운영 체제는 앱에 상태 변화를 통지(505)할 수 있다. 일부 경우에 있어서, 실패 상태는 애플리케이션에 의해 식별되는 조건이며 장치 에러는 아니다. 예를 들어, 실패 상태는 (애플리케이션이 업로드 대기열과 통신하는) 서버가 특정 사용자에 대하여 한도를 초과한 것으로 인해 발생할 수 있다. 예를 들어, 클라우드 스토리지가 사용자마다 스토리지 용량을, 예컨대 스토리지의 5 GB로 제한하면, 사용자는 클라우드 스토리지에서 자신의 할당된 스토리지 공간을 채워서 실패 상태를 야기할 수 있다. 실패 상태가 발생할 수 있는 시기에 관한 다른 실시예는 클라우드 스토리지에 대한 사용자의 패스워드가 만료했을 경우이다.
앱은 운영 체제로부터 상태 변화의 통지를 수신(510)하고 나서, 실패 상태를 확인하기 위해 운영 체제와 통신함으로써 상태 변화의 상태를 검출(515)할 수 있다. 앱이 실패 상태가 있음을 검출하면, 앱은 전술한 방법들 중 어느 하나에 의해 업로드 대기열을 일시정지(520)할 수 있다. 업로드 대기열이 일시정지 상태에 있을 경우에는, 업로드 대기열에서 신규 콘텐츠가 표시되더라도 업로드 시도는 수행되지 않는다.
다양한 실시예들에 있어서, 운영 체제로부터 상태 변화의 통지를 수신하고, 실패 상태를 확인하고, 업로드 대기열을 일시정지 상태로 설정한 후에, 앱은 사용자 인터페이스를 통해 사용자와 에러 메시지를 통신할 수 있다. 에러 메시지는 실패 상태의 타입과 실패 상태를 해결하는 방법을 표시할 수 있다. 사용자가 실패 상태를 해결하기로 선택하면, 앱은 운영 체제와의 통신을 재개해서 업로드 대기열을 일시정지 해제 상태로 설정함으로써 업로드 대기열의 콘텐츠를 전송할 수 있다.
이 시나리오에서 예시된 바와 같이, 장치가 여전히 실패 상태에 있는 동안, 신규 콘텐츠가 생성되어 시스템에 저장될 수 있다. 신규 콘텐츠는 저장된 파일, 사진, 스크린샷 등을 포함할 수 있지만, 이들에 한정되는 것은 아니다. 이후, 운영 체제는 신규 콘텐츠를 앱에 통지(525)할 수 있다. 앱이 신규 콘텐츠의 통지를 수신(530)할 경우, 앱은 신규 콘텐츠를 검출하여 신규 콘텐츠를 업로드 대기열에 추가(535)하고 업로드 대기열의 일시정지 상태를 검사(540)할 수 있다. 업로드 대기열이 일시정지 상태에 있기 때문에, 신규 콘텐츠가 업로드 대기열에 추가되지만, 신규 사진을 업로드하려는 시도는 일어나지 않는다.
장치가 성공적인 상태로 복귀할 경우, 이 시나리오에 예시된 바와 같이, 운영 체제는 상태 변화를 앱에 통지(545)할 수 있고, 앱은 상태 변화의 통지를 수신(550)할 수 있다. 앱이 상태 변화의 통지를 수신(550)하면, 앱은 성공적인 상태를 확인하기 위해 운영 체제와 통신함으로써 상태 변화의 상태를 검출(555)하고 나서, 업로드 대기열을 일시정지 해제(560)할 수 있다. 업로드 대기열이 일시정지 해제 상태에 있으면, 앱은 운영 체제로 API를 통해 네트워크를 활성화하고 이전에 업로드 대기열에 추가된 신규 콘텐츠를 업로드하려고 시도(565)할 수 있다.
도 6은 애플리케이션 리소스 사용량 절감을 포함하는 애플리케이션의 예시적인 사용자 인터페이스를 예시한다. 도 6을 참조하면, 사용자는 사용자 입력을 입력하고 디스플레이된 출력을 수신하기 위해 UI(602)와 같은 사용자 인터페이스(UI)를 통해, 도 1에서 설명된 바와 같은, 앱(116)과 같은 앱을 실행하는 컴퓨팅 장치(600)와 상호작용할 수 있다.
컴퓨팅 장치(예컨대, 컴퓨팅 장치(600))는, 예를 들어, 키보드, 마우스, 트랙패드, 터치 패드, 터치 스크린, 마이크로폰, 카메라, 안구 시선 추적장치, 또는 그 밖의 입력 장치를 통해 사용자로부터 입력을 수신하도록 구성된다. UI는 사용자가 컴퓨팅 장치(600) 상에서 실행되거나 그것을 통해 디스플레이되는 다양한 앱과 상호작용할 수 있게 한다. 일반적으로, UI는 사용자가 용이하게 애플리케이션의 기능과 상호작용할 수 있도록 구성된다. 예를 들어, 사용자는 UI 내의 옵션(예컨대, 취소 명령(620) 또는 네트워크 설정 명령(615))을 단순히 선택(예를 들어, 터치, 클릭 동작, 제스처, 또는 음성을 통해)해서, 컴퓨팅 장치(600)의 동작을 수행할 수 있다.
예시된 바와 같이, 앱(예컨대, 앱(116))은 네트워크 연결 없음 또는 클라우드 스토리지 가득참과 같은 실패 상태를 사용자에게 통지하는 UI(예컨대, UI(610))를 사용자에게 제공한다. 사용자는 실패 상태에 기초하여 실패를 해결하려고 선택할 수 있다. 예를 들어, 예시된 네트워크 연결 실패의 경우에 있어서, 앱을 구현하는 컴퓨팅 장치(600)는 사용자에게 UI(610)를 제공할 수 있다. UI(610)는 네트워크 에러 때문에 업로드 시도가 실패했다는 것 뿐만 아니라 실패를 바로잡는 방법에 대한 메시지를 사용자에게 디스플레이할 수 있다. 예를 들어, 도 6에 예시된 바와 같이, 컴퓨팅 장치(600)가 네트워크 연결을 잃게 되면, 사용자가 컴퓨팅 장치(600)의 카메라로 사진을 촬영하고 해당 사진을 UI(602)의 카메라 롤과 같은 최근 사진(Recent Photos) 섹션(605)에서 보게 될 때, 사용자는 에러 메시지(625)를 디스플레이하는 UI(610)를 제공받을 수 있다. 에러 메시지(625)는 "사진 업로딩 에러: 네트워크 연결 없음" 및 "계속해서 업로드하려면: 네트워크에 연결"을 표시할 수 있다.
일부 경우에 있어서, 에러 메시지(625)와 함께, 네트워크 설정 명령(615)은, 앱이 콘텐츠를 업로드 대기열에 업로드할 수 있게 Wi-Fi에 연결하거나 또는 설정을 변경하는 바와 같이, 사용자가 컴퓨팅 장치(600)의 네트워크 설정을 변경할 수 있도록 제공될 수 있다. 사용자가 네트워크 연결의 끊김을 해결하면, 앱은 업로드 대기열을 일시정지 해제 상태로 설정함으로써 콘텐츠의 업로드를 재개한다. 일부 경우에, 사용자가 네트워크 설정을 변경하고 싶어하지 않으면, 사용자는 취소 명령(620)을 선택할 수 있고, 업로드 대기열은 컴퓨팅 장치(600)가 네트워크 연결을 얻을 때가지 일시정지 상태를 유지하게 된다. 예시된 UI(602)가 앱 UI(602)를 차단하고 사용자 상호작용을 요구하는 에러 메시지 UI(610)를 도시하고 있지만, 에러 메시지 UI(610)는 업로드가 일시정지된다는 것 및/또는 에러가 있다는 것을 사용자에게 통지하기 위해 사용된 수동적인 UI일 수 있다. 수동적인 UI의 일부 구현예들에 있어서는, 사용자가 에러를 바로잡을 수 있는 장소를 제안하기 위한 하이퍼링크가 수동적인 UI에 포함될 수 있다. 물론, 하이퍼링크는 능동적인 UI에 포함될 수도 있다.
도 7은 본 명세서에서 설명되는 특정 구현예들에서 사용될 수 있는 컴퓨팅 장치의 컴포넌트들을 예시하는 블럭도를 도시한다. 시스템(700)은 단일의 컴퓨팅 장치 내에서 구현될 수 있거나, 또는 프로그램 명령어들을 실행함에 있어서 협동하는 다수의 컴퓨팅 장치들 또는 서브-시스템들에 걸쳐 분산될 수 있다. 시스템(700)은, 한정되는 것은 아니지만, 개인용 컴퓨터, 태블릿 컴퓨터, 판독기, 모바일 장치, 개인용 정보 단말기, 웨어러블 컴퓨터, 스마트폰, 랩톱 컴퓨터(노트북 또는 넷북), 게임기 또는 콘솔, 데스크톱 컴퓨터, 또는 스마트 텔레비전을 포함하는 무수한 컴퓨팅 장치를 구현하는 데 사용될 수 있다. 따라서, 시스템(700)과 관련하여 설명되는 더 많거나 적은 요소들이 특정 컴퓨팅 장치를 구현하기 위해 포함될 수 있다.
시스템(700)은, 예를 들어, 장치 운영 체제(OS)(715)와 상호작용하는 하나 이상의 애플리케이션 프로그램(710)의 명령어에 따라 데이터를 처리하는 프로세서(705)를 포함한다. 프로세서(705)는 범용 중앙 처리 장치, 주문형 프로세서, 및 논리 회로 뿐만 아니라, 임의의 다른 타입의 처리 장치, 이들의 조합 또는 변형을 예로서 포함한다.
애플리케이션 프로그램(710), OS(715), 및 그 밖의 소프트웨어는 스토리지 시스템(720)에 로딩되고 저장될 수 있다. 장치 운영 체제(715)는 일반적으로 컴퓨팅 장치의 다양한 컴포넌트들의 기능을 제어 및 조정해서, 애플리케이션에게 네트워킹 인터페이스처럼 낮은 레벨의 인터페이스와 보다 용이하게 연결하는 방식을 제공한다. 운영 체제의 비제한적인 실시예는 Microsoft Corp.의 WINDOWS, Apple, Inc.의 IOS, Google, Inc.의 ANDROID OS, Microsoft의 WINDOWS RT, 및 Canonical의 Linux OS의 우분투 버라이어티(Ubuntu variety)를 포함한다.
OS(715)는 태생적으로 컴퓨팅 장치 상에서 및 네이티브 장치 OS보다 상위에서 실행되는 소프트웨어 가상화 계층 상에서 구현될 수 있다는 점에 유의해야 한다. 도 7에는 묘사되어 있지 않지만, 가상화된 OS 계층은, OS, 애플리케이션 프로그램, 및 API를 각각 포함하는 OS(715) 공간 내의 추가적인 중첩 그룹으로서 간주될 수 있다. 애플리케이션 프로그램(710)은 API를 통해 시스템(700)의 특정 기능에 액세스할 수 있다.
API는 프로그램 코드 컴포넌트 또는 하드웨어 컴포넌트(이하, "API-구현 컴포넌트")에 의해 제공되는 하나 이상의 함수, 메소드, 절차, 데이터 구조, 클래스, 및/또는 그 밖의 서비스를 상이한 프로그램 코드 컴포넌트 또는 하드웨어 컴포넌트(이하, "API-발호 컴포넌트")가 액세스 및 사용할 수 있게 하는 API-구현 컴포넌트에 의해 구현되는 인터페이스이다. API는 API-발호 컴포넌트와 API-구현 컴포넌트 사이에서 전달되는 하나 이상의 파라미터를 정의할 수 있다.
API는 API-발호 컴포넌트의 개발자(제3자 개발자일 수 있음)가 API-구현 컴포넌트에 의해 제공되는 특정한 특징을 이용할 수 있게 한다. 하나의 API-발호 컴포넌트가 있을 수 있거나, 또는 이러한 컴포넌트가 하나 이상 있을 수 있다. API는 애플리케이션의 서비스 요청을 지원하기 위해 컴퓨터 시스템 또는 프로그램 라이브러리가 제공하는 소스 코드 인터페이스일 수 있다. 운영 체제는 운영 체제에서 실행되는 애플리케이션들이 해당 API들 중 하나 이상을 호출할 수 있게 다수의 API를 구비할 수 있고, 서비스(예컨대, 프로그램 라이브러리)는 해당 서비스를 사용하는 애플리케이션이 해당 API들 중 하나 이상을 호출할 수 있게 다수의 API를 구비할 수 있다. API는 애플리케이션이 제작될 때 해석되거나 또는 컴파일링될 수 있는 프로그래밍 언어에 관하여 특정될 수 있다.
일부 구현예들에 있어서, API-구현 컴포넌트는, API-구현 컴포넌트에 의해 구현되는 기능의 상이한 양태들에 액세스하는 상이한 양태들의 또는 상이한 양태들을 갖는 상이한 관점을 각각 제공하는, 복수의 API를 제공할 수 있다. 예를 들어, API-구현 컴포넌트의 하나의 API는 제1 함수 세트를 제공할 수 있으며 제3자 개발자에게 노출될 수 있고, API-구현 컴포넌트의 다른 API는 은폐되고(노출되지 않음) 제1 함수 세트의 서브세트를 제공할 수 있고, 또한 제1 함수 세트에는 없는 테스팅 함수 또는 디버깅 함수와 같은 다른 함수 세트를 제공할 수도 있다. 다른 경우에 있어서, API-구현 컴포넌트는 그 자체로 기반 API를 통해 하나 이상의 다른 컴포넌트를 호출할 수 있기 때문에, API-발호 컴포넌트 및 API-구현 컴포넌트 양쪽 모두로 될 수 있다.
API는 API-구현 컴포넌트의 특정한 특징을 액세스 및 사용할 때 API-발호 컴포넌트가 사용하는 언어 및 파라미터를 정의한다. 예를 들어, API-발호 컴포넌트는 API에 의해 노출되는 하나 이상의 API 호 또는 호출(예를 들어, 함수 또는 메소드 호에 의해 구체화됨)을 통해 API-구현 컴포넌트의 특정한 특징에 액세스하고 API 호 또는 호출을 통해 파라미터들을 사용해서 데이터 및 제어 정보를 전달한다. API-구현 컴포넌트는 API-발호 컴포넌트로부터의 API 호에 응답하여 API를 통해 값을 반환할 수 있다. API가 API 호의 신택스 및 결과(예컨대, API 호를 호출하는 방법 및 API 호가 수행하는 것)를 정의하는 동안, API는 API 호가 API 호에 의해 특정되는 함수를 달성하는 방법을 드러내지 않을 수 있다. 다양한 API 호는 발호(API-발호 컴포넌트)와 API-구현 컴포넌트 사이의 하나 이상의 애플리케이션 프로그래밍 인터페이스를 통해 전송된다. API 호를 전송하는 것은 함수 호 또는 메시지를 발행, 개시, 호출, 발호, 수신, 반환, 또는 응답하는 것을 포함할 수 있으며; 즉, 전송은 API-발호 컴포넌트 또는 API-구현 컴포넌트 중 어느 하나에 의해 동작을 설명할 수 있다. API의 함수 호 또는 그 밖의 호출은 파라미터 목록 또는 다른 구조를 통해 하나 이상의 파라미터를 송신 또는 수신할 수 있다.
또한, 데이터 타입 또는 클래스는 API에 의해 제공될 수 있으며 API-구현 컴포넌트에 의해 구현될 수 있다. 따라서, API-발호 컴포넌트는 API에서 제공되는 정의를 사용함으로써, 변수를 선언하거나, 포인터를 사용하거나, 이러한 타입 또는 클래스의 상수값을 사용하거나 또는 예시할 수 있다.
일반적으로, API는 API-구현 컴포넌트에 의해 제공되는 서비스 또는 데이터에 액세스하는 데 사용될 수 있거나 또는 API-구현 컴포넌트에 의해 제공되는 동작 또는 연산의 수행을 개시하는 데 사용될 수 있다. 실시예로서, API-구현 컴포넌트 및 API-발호 컴포넌트는 각각 운영 체제, 라이브러리, 장치 드라이버, API, 애플리케이션 프로그램, 또는 그 밖의 모듈일 수 있다(API-구현 컴포넌트 및 API-발호 컴포넌트는 서로 동일한 또는 상이한 타입의 모듈일 수 있음을 이해해야 한다). API-구현 컴포넌트는 경우에 따라 적어도 부분적으로 펌웨어, 마이크로코드, 또는 그 밖의 하드웨어 논리로 구체화될 수 있다. 일부 경우에 있어서, API는 클라이언트 프로그램이 SDK(Software Development Kit) 라이브러리에 의해 제공되는 서비스를 사용하는 것을 허용할 수 있다. 다른 경우들에 있어서, 애플리케이션 또는 다른 클라이언트 프로그램은 애플리케이션 프레임워크(Application Framework)에 의해 제공되는 API를 사용할 수 있다. 여기서, 애플리케이션 또는 클라이언트 프로그램은 SDK에 의해 제공되며 또한 API에 의해 제공되는 함수 또는 메소드에 대한 호를 포함할 수 있거나, 또는 SDK에서 정의되며 또한 API에 의해 제공되는 데이터 타입 또는 객체를 사용할 수 있다. 애플리케이션 프레임워크(Application Framework)는, 예를 들어, 프레임워크(Framework)에 의해 정의되는 다양한 이벤트에 응답하는 프로그램에 메인 이벤트 루프를 제공할 수 있다. API는 애플리케이션이 애플리케이션 프레임워크(Application Framework)를 사용해서 이벤트 및 이벤트에 대한 응답을 지정할 수 있게 한다. 일부 구현예에 있어서, API 호는 입력 능력 및 상태, 출력 능력 및 상태, 처리 능력, 전력 상태, 스토리지 용량 및 상태, 통신 능력 등과 같은 양태들과 관련되는 것들을 포함하여, 하드웨어 장치의 능력 또는 상태를 애플리케이션에 보고할 수 있고, API는 부분적으로 하드웨어 컴포넌트 상에서 실행되는 펌웨어, 마이크로코드, 또는 그 밖의 저레벨 논리에 의해 부분적으로 구현될 수 있다.
API-발호 컴포넌트는 네트워크(예컨대, 네트워크(155))를 거쳐 API를 통해 API-구현 컴포넌트와 통신하는 로컬 컴포넌트(즉, API-구현 컴포넌트와 동일한 데이터 처리 시스템 상의 컴포넌트) 또는 원격 컴포넌트(즉, API-구현 컴포넌트와 상이한 데이터 처리 시스템 상의 컴포넌트)일 수 있다. API-구현 컴포넌트는 API-발호 컴포넌트로서의 역할을 할 수도 있으며(즉, 상이한 API-구현 컴포넌트에 의해 노출되는 API에 대하여 API 호를 형성할 수 있음), API-발호 컴포넌트는 상이한 API-발호 컴포넌트에 대하여 노출된 API를 구현함으로써 API-구현 컴포넌트로서의 역할을 할 수도 있음을 이해해야 한다.
API는 상이한 프로그래밍 언어로 작성되는 다수의 API-발호 컴포넌트가 API-구현 컴포넌트와 통신하는 것을 가능하게 할 수 있고(그에 따라, API는 API-구현 컴포넌트와 API-발호 컴포넌트 사이에서 호 및 반환을 변환하는 특징을 포함할 수 있음); 다만, API는 특정 프로그래밍 언어에 관하여 구현될 수 있다. API-발호 컴포넌트는, 경우에 따라, 운영 체제 제공자로부터의 API 세트와 플러그-인 제공자로부터의 다른 API 세트 및 다른 제공자(예컨대, 소프트웨어 라이브러리의 제공자) 또는 다른 API 세트의 작성자로부터의 다른 API 세트와 같이, 상이한 제공자들로부터의 API들을 호출할 수 있다.
API, API-구현 컴포넌트, 및 API-발호 컴포넌트는 스토리지 시스템(720)에 저장될 수 있다.
스토리지 시스템(720)은 프로세서(705)에 의해 판독 가능하며 소프트웨어(예컨대, 애플리케이션 프로그램(710) 및 OS(715))를 저장할 수 있는 임의의 컴퓨터 판독 가능 스토리지 매체를 포함할 수 있다.
스토리지 시스템(720)은, 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 그 밖의 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성의, 착탈식 및 고정식 매체를 포함할 수 있다. 스토리지 매체는, 랜덤 액세스 메모리, 리드 온리 메모리, 자기 디스크, 광 디스크, 플래시 메모리, 가상 메모리 및 비-가상 메모리, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 그 밖의 자기 스트로지 장치, 또는 임의의 다른 적절한 스토리지 매체를 예로서 포함한다. 어떠한 경우에 있어서도 스토리지 매체는 전파 신호가 아니다. 스토리지 매체에 더하여, 일부 구현예들에 있어서, 스토리지 시스템(720)은 소프트웨어가 내부적으로 또는 외부적으로 통신될 수 있는 통신 매체를 또한 포함할 수 있다. 스토리지 시스템(720)은 단일의 스토리지 장치로서 구현될 수 있지만, 서로에 대하여 동일 장소에 위치되거나 또는 분산 배치되는 다수의 스토리지 장치들 또는 서브-시스템들에 걸쳐 구현될 수도 있다. 스토리지 시스템(720)은 프로세서(705)와 통신할 수 있는 컨트롤러와 같은 추가적인 요소들을 포함할 수 있다.
다양한 구현예들에 있어서, 시스템(700)을 통해 저장되는 데이터/정보는 장치에 국부적으로 저장되는 캐시(725)와 같은 데이터 캐시를 포함할 수 있거나, 또는 데이터는 네트워크/통신 인터페이스(735)를 통해 또는 장치와 장치에 연관되는 별도의 컴퓨팅 장치, 예를 들어, 인터넷과 같은 분산형 컴퓨팅 네트워크에서의 서버 컴퓨터와의 사이의 유선 접속을 통해 장치에 의해 액세스될 수 있는 임의의 수의 스토리지 매체에 저장될 수 있다. 이해해야 하는 바와 같이, 이러한 데이터/정보는 네트워크/통신 인터페이스(735) 또는 분산형 컴퓨팅 네트워크 경유로 장치를 통해 액세스될 수 있다. 유사하게, 이러한 데이터/정보는 전자 메일 및 협업 데이터/정보 공유 시스템을 포함하는 잘 알려진 데이터/정보 전송 및 저장 수단에 따라 저장 및 사용을 위해 컴퓨팅 장치들 사이에서 용이하게 전송될 수 있다.
소프트웨어는 프로그램 명령어로 구현될 수 있으며, 다른 기능들 중에서도, 일반적으로 시스템(700)에 의한 실행시에 또는 특히 프로세서(705)에 의한 실행시에, 시스템(700) 또는 프로세서(705)를 본 명세서에서 설명되는 바와 같이 동작하도록 지시할 수 있다. 소프트웨어는 추가적인 프로세스들, 프로그램들, 또는 운영 체제 소프트웨어 또는 그 밖의 애플리케이션 소프트웨어와 같은 컴포넌트들을 포함할 수 있다. 소프트웨어는 또한, 펌웨어, 또는 프로세서(705)에 의해 실행 가능한 일부 다른 형태의 기계-판독 가능 처리 명령어를 포함할 수도 있다.
일반적으로, 소프트웨어는, 프로세서(705)에 로딩되어 실행될 때, 컴퓨팅 시스템(700) 전체를 범용 컴퓨팅 시스템으로부터, 각각의 구현예에 대하여 본 명세서에서 설명된 바와 같이, 리소스 사용량의 절감이 가능하도록 커스터마이징된 특수 목적 컴퓨팅 시스템으로 변환할 수 있다. 실제로, 스토리지 시스템(720) 상의 소프트웨어를 인코딩하면, 스토리지 시스템(720)의 물리 구조가 변환될 수 있다. 물리 구조의 특정 변환은 이 설명의 상이한 구현예들에 있어서 다양한 인자들에 의존할 수 있다. 이러한 인자의 실시예는, 스토리지 시스템(720)의 스토리지 매체를 구현하는 데 사용되는 기술 및 컴퓨터 스토리지 매체가 주 기억 장치로서 특정되는지 또는 보조 기억 장치로서 특정되는지의 여부를 포함할 수 있지만, 이들에 한정되는 것은 아니다.
예를 들어, 컴퓨터 스토리지 매체가 반도체 기반의 메모리로서 구현되면, 소프트웨어는 반도체 메모리를 구성하는 트랜지스터, 커패시터, 또는 그 밖의 이산 회로 요소를 변환하는 등에 의해, 프로그램이 인코딩될 때 반도체 메모리의 물리 상태를 변환할 수 있다. 자기 또는 광학 매체에 대해서도 유사한 변환이 발생할 수 있다. 단지 본 논의를 용이하게 하기 위해서 제공되는 전술한 실시예들에 의해, 본 설명의 범위로부터 일탈함이 없이, 물리 매체의 다른 변환이 가능하다.
대안으로서, 또는 추가적으로, 본 명세서에서 설명되는 기능, 방법 및 프로세스는 적어도 부분적으로 하나 이상의 하드웨어 모듈(또는 논리 컴포넌트)에 의해 구현될 수 있다. 예를 들어, 하드웨어 모듈은, ASIC(application-specific integrated circuit) 칩, FPGA(field programmable gate arrays), SoC(system-on-a-chip) 시스템, CPLD(complex programmable logic devices) 및 현재 알려져 있거나 나중에 개발될 그 밖의 프로그램 가능 논리 장치를 포함할 수 있지만, 이들에 한정되는 것은 아니다. 하드웨어 모듈이 활성화될 경우, 하드웨어 모듈은 하드웨어 모듈 내에 포함되는 기능, 방법 및 프로세스를 수행한다.
시스템(700)의 다수의 요소가 SoC(system-on-a-chip) 장치에 포함될 수 있다는 점에 유의해야 한다. 이들 요소는 프로세서(705), 네트워크/통신 인터페이스(735), 오디오 인터페이스(740), 비디오 인터페이스(745), 및 심지어 스토리지 시스템(720)의 요소들을 포함할 수 있지만, 이들에 한정되는 것은 아니다.
네트워크/통신 인터페이스(735)는 하나 이상의 통신 네트워크(도시되지 않음)를 거쳐 다른 컴퓨팅 시스템들과의 통신을 허용하는 통신 연결부 및 장치를 포함할 수 있다. 시스템간 통신을 함께 허용하는 연결부 및 장치의 실시예는 네트워크 인터페이스 카드, 안테나, 전력 증폭기, RF 회로, 트랜시버, 및 그 밖의 통신 회로를 포함할 수 있다. 연결부 및 장치는 통신 매체(예컨대, 금속, 유리, 공기, 또는 임의의 다른 적절한 통신 매체)를 거쳐 통신해서 다른 컴퓨팅 시스템들 또는 시스템들의 네트워크들과 통신을 교환할 수 있다. 네트워크/통신 인터페이스(735)와의 전송은 필요에 따라 애플리케이션 및 API에 통신 이벤트를 통지하는 OS(715)에 의해 제어된다.
인터페이스 장치(750)는 카메라(755), 마우스(도시되지 않음), 트랙 패드(도시되지 않음), 키보드(도시되지 않음), 마이크로폰(도시되지 않음), 사용자로부터 터치 제스처를 수신하는 터치 장치(도시되지 않음), 사용자에 의한 비-터치 제스처 및 그 밖의 모션을 검출하는 모션 입력 장치(도시되지 않음), 및 사용자 입력을 수신할 수 있는 그 밖의 타입의 입력 장치들과 그 연관 처리 요소들과 같은 입력 장치를 포함할 수 있다.
인터페이스 장치(750)는 또한, 디스플레이 수단(도시되지 않음), 스피커(도시되지 않음), 촉각 피드백을 위한 햅틱 장치, 및 그 밖의 유형의 출력 장치와 같은 출력 장치를 포함할 수 있다. 특정 경우에 있어서, 입력 및 출력 장치는 이미지를 묘사하고 사용자로부터 터치 제스처 입력을 수신하는 터치스크린 디스플레이와 같은 단일의 장치로 결합될 수 있다. 시각적 출력은, 그래픽 사용자 인터페이스 요소, 텍스트, 이미지, 비디오, 통지, 가상 버튼, 가상 키보드, 또는 시각적 형태로 묘사될 수 있는 임의의 다른 유형의 정보를 나타내는 무수한 방식으로 디스플레이 상에 묘사될 수 있다. 다른 종류의 사용자 인터페이스도 가능하다. 사용자 인터페이스(750)는 또한, 다양한 사용자 입력 및 출력 장치를 지원하기 위해 OS(715)에 의해 실행되는 연관 사용자 인터페이스 소프트웨어를 포함할 수 있다. 이러한 소프트웨어는 규정된 메커니즘을 사용해서 애플리케이션 프로그램(710)에 사용자 인터페이스 하드웨어 이벤트를 통신함에 있어서 OS를 지원한다.
시스템(700)을 구현하는 임의의 모바일 또는 데스크톱 컴퓨팅 장치는 추가적인 특징 및 기능을 가질 수 있으며, 본 명세서에서 설명되는 구성에 한정되지 않는다는 것을 이해해야 한다.
본 발명의 특정 양태들은 하기의 비제한적인 실시형태들을 제공한다:
실시예 1. 컴퓨팅 장치 상에서 실행되는 애플리케이션에 의해 리소스 사용량을 절감하는 방법으로서, 해당 방법은: 컴퓨팅 장치에서 수신한 콘텐츠를 클라우드 서비스에 전송하기 위한 업로드 대기열을 컴퓨팅 장치에서 관리하는 단계; 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는지 또는 일시정지 상태에 있는 것으로 표시되는지의 여부를 포함하여 업로드 대기열의 상태를 검사하는 단계; 업로드 대기열의 상태를 검사하고 나서, 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는 동안, 컴퓨팅 장치의 네트워크 리소스를 사용해서 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 클라우드 서비스에 전송함으로써 업로드 프로세스를 컴퓨팅 장치에서 수행하는 단계; 및 네트워크 연결의 끊김 및 네트워크 연결의 가용성의 네트워크 연결 변화를 검출하는 단계를 포함하고, 네트워크 연결의 끊김을 검출하는 것에 응답하여, 업로드 대기열이 일시정지 상태로 설정된다. 네트워크 연결을 검출하는 것은 신규 콘텐츠에 응답하여 콘텐츠를 업로드 대기열에 업로드하는 프로세스 밖에서 발생한다.
실시예 2. 실시예 1의 방법으로서, 신규 콘텐츠를 검출하는 단계; 신규 콘텐츠를 검출하는 것에 응답하여, 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하는 단계; 업로드 대기열이 일시정지 상태에 있을 경우, 신규 콘텐츠를 클라우드 서비스에 전송하기 위해 운영 체제와 통신하지 않는 단계; 및 업로드 대기열이 일시정지 해제 상태에 있을 경우, 신규 콘텐츠를 클라우드 서비스에 전송하도록 운영 체제와 통신하는 단계를 더 포함한다.
실시예 3. 실시예 1 또는 2의 방법으로서, 네트워크 변화를 검출하는 단계는: 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 클라우드 서비스에 전송하는 것에 실패한 실패 표시를 수신하는 단계를 포함하고, 실패 표시는 네트워크 연결 에러를 표시한다.
실시예 4. 실시예 1 내지 3 중 어느 한 실시예의 방법으로서, 네트워크 연결 변화를 통지하는 트리거를 수신하기 위해 운영 체제에 등록하는 단계를 더 포함하고, 네트워크 변화를 검출하는 단계는 네트워크 연결 변화의 통지를 수신하는 단계를 포함한다.
실시예 5. 실시예 1 내지 4 중 어느 한 실시예의 방법으로서, 업로드 대기열을 관리하는 단계는: 신규 콘텐츠를 검출하는 것에 응답하여, 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하는 단계; 및 신규 콘텐츠가 클라우드 서비스에 성공적으로 전송되면, 신규 콘텐츠를 업로드 대기열에서 송신된 것으로 표시하는 단계를 포함한다.
실시예 6. 실시예 1 내지 5 중 어느 한 실시예의 방법으로서, 네트워크 연결의 가용성을 검출하는 것에 응답하여, 업로드 대기열이 일시정지 해제 상태로 설정된다.
실시예 7. 실시예 1 내지 6 중 어느 한 실시예의 방법으로서, 콘텐츠는 사진, 스크린샷, 및 저장된 파일 중 적어도 하나를 포함한다.
실시예 8. 시스템은: 처리 시스템; 하나 이상의 컴퓨터 판독 가능 스토리지 매체; 및 하나 이상의 컴퓨터 판독 가능 스토리지 매체에 저장되는 업로드 대기열; 하나 이상의 컴퓨터 판독 가능 스토리지 매체에 저장되는 운영 체제; 하나 이상의 컴퓨터 판독 가능 스토리지 매체에 저장되는 프로그램 명령어로 구현된 애플리케이션을 포함하고, 프로그램 명령어는, 처리 시스템에 의한 실행시에, 해당 처리 시스템에게 적어도: 콘텐츠를 클라우드 서비스에 전송하기 위한 업로드 대기열을 관리하고; 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는지 또는 일시정지 상태에 있는 것으로 표시되는지의 여부를 포함하여 업로드 대기열의 상태를 검사하고; 업로드 대기열의 상태를 검사하고 나서, 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는 동안, 컴퓨팅 장치의 네트워크 리소스를 사용해서 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 클라우드 서비스에 전송함으로써 업로드 프로세스를 수행하고; 또한 실패 상태 및 성공 상태의 상태 변화를 검출하도록 지시하고, 실패 상태를 검출하는 것에 응답하여, 업로드 대기열이 일시정지 상태로 설정된다. 네트워크 연결을 검출하는 것은 신규 콘텐츠에 응답하여 콘텐츠를 업로드 대기열에 업로드하는 프로세스 밖에서 발생한다.
실시예 9. 실시예 8의 시스템으로서, 하나 이상의 컴퓨터 판독 가능 스토리지 매체에 저장되는 프로그램 명령어는 처리 시스템에게: 신규 콘텐츠를 검출하는 것에 응답하여, 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하고; 업로드 대기열이 일시정지 상태에 있을 경우, 신규 콘텐츠를 클라우드 서비스에 전송하기 위해 운영 체제와 통신하지 않고; 또한 업로드 대기열이 일시정지 해제 상태에 있을 경우, 신규 콘텐츠를 클라우드 서비스에 전송하도록 운영 체제와 통신하라고 더 지시한다.
실시예 10. 실시예 8 또는 9의 시스템으로서, 처리 시스템에게 실패 상태 및 성공 상태의 상태 변화를 검출하도록 지시하는 명령어는, 처리 시스템에게 적어도: 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 클라우드 서비스에 전송하는 것에 실패한 실패 표시를 수신하도록 지시하고, 실패 표시는 기지의 에러를 표시한다.
실시예 11. 실시예 8 내지 10 중 어느 한 실시예의 시스템으로서, 처리 시스템에게 실패 상태 및 성공 상태의 상태 변화를 검출하도록 지시하는 명령어는, 처리 시스템에게 적어도: 상태 변화를 통지하는 트리거를 수신하도록 운영 체제에 등록하고; 또한 상태 변화의 통지를 수신하도록 지시한다.
실시예 12. 실시예 8 내지 11 중 어느 한 실시예의 시스템으로서, 처리 시스템에게 업로드 대기열을 관리하도록 지시하는 명령어는, 처리 시스템에게 적어도: 신규 콘텐츠를 검출하는 것에 응답하여, 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하고; 또한 신규 콘텐츠가 클라우드 서비스에 성공적으로 전송되면, 신규 콘텐츠를 업로드 대기열에서 송신된 것으로 표시하도록 지시한다.
실시예 13. 실시예 8 내지 12 중 어느 한 실시예의 시스템으로서, 성공 상태를 검출하는 것에 응답하여, 업로드 대기열이 일시정지 해제 상태로 설정된다.
실시예 14. 실시예 8 내지 13 중 어느 한 실시예의 시스템으로서, 콘텐츠는 사진, 스크린샷, 및 저장된 파일 중 적어도 하나를 포함한다.
실시예 15. 처리 시스템에 의한 실행시에, 처리 시스템에게 방법을 수행하도록 지시하는 애플리케이션이 저장되어 있는 하나 이상의 컴퓨터 판독 가능 스토리지 매체로서, 해당 방법은: 컴퓨팅 장치에서 수신한 콘텐츠를 클라우드 서비스에 전송하기 위한 업로드 대기열을 컴퓨팅 장치에서 관리하는 단계; 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는지 또는 일시정지 상태에 있는 것으로 표시되는지의 여부를 포함하여 업로드 대기열의 상태를 검사하는 단계; 업로드 대기열의 상태를 검사하고 나서, 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는 동안, 컴퓨팅 장치의 네트워크 리소스를 사용해서 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 클라우드 서비스에 전송함으로써 업로드 프로세스를 컴퓨팅 장치에서 수행하는 단계; 및 네트워크 연결의 끊김 및 네트워크 연결의 가용성의 네트워크 연결 변화를 검출하는 단계를 포함하고, 네트워크 연결의 끊김을 검출하는 것에 응답하여, 업로드 대기열이 일시정지 상태로 설정된다. 네트워크 연결을 검출하는 것은 신규 콘텐츠에 응답하여 콘텐츠를 업로드 대기열에 업로드하는 프로세스 밖에서 발생한다.
실시예 16. 실시예 15의 매체로서, 신규 콘텐츠를 검출하는 단계; 신규 콘텐츠를 검출하는 것에 응답하여, 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하는 단계; 업로드 대기열이 일시정지 상태에 있을 경우, 신규 콘텐츠를 클라우드 서비스에 전송하기 위해 운영 체제와 통신하지 않는 단계; 및 업로드 대기열이 일시정지 해제 상태에 있을 경우, 신규 콘텐츠를 클라우드 서비스에 전송하도록 운영 체제와 통신하는 단계를 더 포함한다.
실시예 17. 실시예 15 또는 16의 매체로서, 네트워크 변화를 검출하는 단계는: 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 클라우드 서비스에 전송하는 것에 실패한 실패 표시를 수신하는 단계를 포함하고, 실패 표시는 네트워크 연결 에러를 표시한다.
실시예 18. 실시예 15 내지 17 중 어느 한 실시예의 매체로서, 네트워크 변화를 검출하는 단계는: 네트워크 연결 변화를 통지하는 트리거를 수신하기 위해 운영 체제에 등록하는 단계; 및 네트워크 연결 변화의 통지를 수신하는 단계를 포함한다.
실시예 19. 실시예 15 내지 18 중 어느 한 실시예의 매체로서, 업로드 대기열을 관리하는 단계는: 신규 콘텐츠를 검출하는 것에 응답하여, 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하는 단계; 및 신규 콘텐츠가 클라우드 서비스에 성공적으로 전송되면, 신규 콘텐츠를 업로드 대기열에서 송신된 것으로 표시하는 단계를 포함한다.
실시예 20. 실시예 15 내지 19 중 어느 한 실시예의 매체로서, 네트워크 연결의 가용성을 검출하는 것에 응답하여, 업로드 대기열이 일시정지 해제 상태로 설정된다.
본 명세서에서 설명되는 실시예들 및 실시형태들은 예시의 목적만을 위한 것이며, 그에 비추어 다양한 수정 또는 변경이 당업자에게 제안될 것이고 본원의 정신 및 범위 내에 포함되어야 한다는 것을 이해해야 한다.
청구 대상을 구조적인 특징들 및/또는 동작들에 특정되는 언어로 설명했지만, 청구범위에서 규정되는 청구 대상이 반드시 전술한 특정한 특징들 또는 동작들에 한정되는 것은 아니라는 점을 이해해야 한다. 오히려, 전술한 특정한 특징들 및 동작들은 청구범위를 구현하는 실시예들로서 개시되고 그 밖의 등가의 특징들 및 동작들은 청구범위 내의 것으로 의도된다.

Claims (14)

  1. 컴퓨팅 장치 상에서 실행되는 애플리케이션에 의한 리소스 사용량을 절감하는 방법으로서,
    상기 컴퓨팅 장치에서 수신한 사진, 스크린샷, 및 저장된 파일 중 적어도 하나와 같은 콘텐츠를 클라우드 서비스에 전송하기 위한 업로드 대기열을 상기 컴퓨팅 장치에서 관리하는 단계;
    상기 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는지 또는 일시정지 상태에 있는 것으로 표시되는지의 여부를 포함하여 상기 업로드 대기열의 상태를 검사하는 단계;
    상기 업로드 대기열의 상태를 검사하고 나서, 상기 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는 동안, 상기 컴퓨팅 장치의 네트워크 리소스를 사용해서 상기 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 상기 클라우드 서비스에 전송함으로써 업로드 프로세스를 상기 컴퓨팅 장치에서 수행하는 단계; 및
    네트워크 연결의 끊김 및 네트워크 연결의 가용성의 네트워크 연결 변화를 검출하는 단계 - 상기 네트워크 연결의 끊김을 검출하는 것에 응답하여, 상기 업로드 대기열이 일시정지 상태로 설정됨 - 를 포함하는
    방법.
  2. 제1항에 있어서,
    신규 콘텐츠를 검출하는 단계;
    상기 신규 콘텐츠를 검출하는 것에 응답하여, 상기 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하는 단계;
    상기 업로드 대기열이 일시정지 상태에 있을 경우, 상기 신규 콘텐츠를 상기 클라우드 서비스에 전송하기 위해 운영 체제와 통신하지 않는 단계; 및
    상기 업로드 대기열이 일시정지 해제 상태에 있을 경우, 상기 신규 콘텐츠를 상기 클라우드 서비스에 전송하도록 상기 운영 체제와 통신하는 단계를 더 포함하는
    방법.
  3. 제1항에 있어서,
    상기 네트워크 변화를 검출하는 단계는:
    상기 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 상기 클라우드 서비스에 전송하는 것에 실패한 실패 표시를 수신하는 단계 - 상기 실패 표시는 네트워크 연결 에러를 표시함 - ; 또는
    네트워크 연결 변화의 통지를 수신하는 단계
    중 하나 또는 둘 모두를 포함하고,
    상기 방법은 상기 네트워크 연결 변화를 통지하는 트리거를 수신하도록 상기 운영 체제에 등록하는 단계를 포함하는
    방법.
  4. 제1항에 있어서,
    상기 업로드 대기열을 관리하는 단계는:
    신규 콘텐츠를 검출하는 것에 응답하여, 상기 신규 콘텐츠를 상기 업로드 대기열에서 신규한 것으로 표시하는 단계; 및
    상기 신규 콘텐츠가 상기 클라우드 서비스에 성공적으로 전송되면, 상기 신규 콘텐츠를 상기 업로드 대기열에서 송신된 것으로 표시하는 단계를 포함하는
    방법.
  5. 제1항에 있어서,
    상기 네트워크 연결의 가용성을 검출하는 것에 응답하여, 상기 업로드 대기열이 상기 일시정지 해제 상태로 설정되는
    방법.
  6. 시스템으로서,
    처리 시스템;
    하나 이상의 컴퓨터 판독 가능 스토리지 매체; 및
    상기 하나 이상의 컴퓨터 판독 가능 스토리지 매체에 저장되는 업로드 대기열;
    상기 하나 이상의 컴퓨터 판독 가능 스토리지 매체에 저장되는 운영 체제;
    상기 하나 이상의 컴퓨터 판독 가능 스토리지 매체에 저장되는 프로그램 명령어로 구현된 애플리케이션을 포함하고,
    상기 프로그램 명령어는, 상기 처리 시스템에 의한 실행시에, 상기 처리 시스템에게 적어도:
    콘텐츠를 클라우드 서비스에 전송하기 위한 상기 업로드 대기열을 관리하고;
    상기 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는지 또는 일시정지 상태에 있는 것으로 표시되는지의 여부를 포함하여 상기 업로드 대기열의 상태를 검사하고;
    상기 업로드 대기열의 상태를 검사하고 나서, 상기 업로드 대기열이 상기 일시정지 해제 상태에 있는 것으로 표시되는 동안, 컴퓨팅 장치의 네트워크 리소스를 사용해서 상기 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 상기 클라우드 서비스에 전송함으로써 업로드 프로세스를 수행하고;
    실패 상태 및 성공 상태의 상태 변화를 검출하도록 - 상기 실패 상태를 검출하는 것에 응답하여, 상기 업로드 대기열이 상기 일시정지 상태로 설정됨 - 지시하는
    시스템.
  7. 제6항에 있어서,
    상기 하나 이상의 컴퓨터 판독 가능 스토리지 매체에 저장되는 프로그램 명령어는 또한, 상기 처리 시스템에게:
    신규 콘텐츠를 검출하는 것에 응답하여, 상기 신규 콘텐츠를 상기 업로드 대기열에서 신규한 것으로 표시하고;
    상기 업로드 대기열이 일시정지 상태에 있을 경우, 상기 신규 콘텐츠를 상기 클라우드 서비스에 전송하기 위해 상기 운영 체제와 통신하지 않고;
    상기 업로드 대기열이 일시정지 해제 상태에 있을 경우, 상기 신규 콘텐츠를 상기 클라우드 서비스에 전송하도록 상기 운영 체제와 통신하도록 지시하는
    시스템.
  8. 제6항에 있어서,
    상기 처리 시스템에게 상기 실패 상태 및 상기 성공 상태의 상태 변화를 검출하도록 지시하는 상기 명령어는, 상기 처리 시스템에게 적어도:
    상기 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 상기 클라우드 서비스에 전송하는 것에 실패한 실패 표시를 수신하도록 지시하고,
    상기 실패 표시는 기지의 에러를 표시하는
    시스템.
  9. 제6항에 있어서,
    상기 처리 시스템에게 상기 실패 상태 및 상기 성공 상태의 상태 변화를 검출하도록 지시하는 상기 명령어는, 상기 처리 시스템에게 적어도:
    상태 변화를 통지하는 트리거를 수신하도록 상기 운영 체제에 등록하고;
    상기 상태 변화의 통지를 수신하도록 지시하는
    시스템.
  10. 제6항에 있어서,
    상기 성공 상태를 검출하는 것에 응답하여, 상기 업로드 대기열이 일시정지 해제 상태로 설정되는
    시스템.
  11. 제6항에 있어서,
    상기 콘텐츠는 사진, 스크린샷, 및 저장된 파일 중 적어도 하나를 포함하는
    시스템.
  12. 처리 시스템에 의한 실행시에, 상기 처리 시스템에게 방법을 수행하도록 지시하는 애플리케이션이 저장되어 있는 하나 이상의 컴퓨터 판독 가능 스토리지 매체로서,
    상기 방법은:
    상기 컴퓨팅 장치에서 수신한 콘텐츠를 클라우드 서비스에 전송하기 위한 업로드 대기열을 상기 컴퓨팅 장치에서 관리하는 단계;
    상기 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는지 또는 일시정지 상태에 있는 것으로 표시되는지의 여부를 포함하여 상기 업로드 대기열의 상태를 검사하는 단계;
    상기 업로드 대기열의 상태를 검사하고 나서, 상기 업로드 대기열이 일시정지 해제 상태에 있는 것으로 표시되는 동안, 상기 컴퓨팅 장치의 네트워크 리소스를 사용해서 상기 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 상기 클라우드 서비스에 전송함으로써 업로드 프로세스를 상기 컴퓨팅 장치에서 수행하는 단계;
    네트워크 연결의 끊김 및 네트워크 연결의 가용성의 네트워크 연결 변화를 검출하는 단계― 상기 네트워크 연결의 끊김을 검출하는 것에 응답하여, 상기 업로드 대기열이 일시정지 상태로 설정됨 ―;
    신규 콘텐츠를 검출하는 단계;
    상기 신규 콘텐츠를 검출하는 것에 응답하여, 상기 신규 콘텐츠를 업로드 대기열에서 신규한 것으로 표시하는 단계;
    상기 업로드 대기열이 일시정지 상태에 있을 경우, 상기 신규 콘텐츠를 상기 클라우드 서비스에 전송하기 위해 운영 체제와 통신하지 않는 단계; 및
    상기 업로드 대기열이 일시정지 해제 상태에 있을 경우, 상기 신규 콘텐츠를 상기 클라우드 서비스에 전송하도록 상기 운영 체제와 통신하는 단계를 포함하는
    컴퓨터 판독 가능 스토리지 매체.
  13. 제12항에 있어서,
    상기 네트워크 변화를 검출하는 단계는:
    상기 업로드 대기열에서 신규한 것으로 표시되는 콘텐츠를 상기 클라우드 서비스에 전송하는 것에 실패한 실패 표시를 수신하는 단계 - 상기 실패 표시는 네트워크 연결 에러를 표시함 - ; 또는
    네트워크 연결 변화의 통지를 수신하는 단계
    중 하나 또는 둘 모두를 포함하고,
    상기 방법은 상기 네트워크 연결 변화를 통지하는 트리거를 수신하도록 상기 운영 체제에 등록하는 단계를 더 포함하는
    컴퓨터 판독 가능 스토리지 매체.
  14. 제12항에 있어서,
    상기 네트워크 연결의 가용성을 검출하는 것에 응답하여, 상기 업로드 대기열이 상기 일시정지 해제 상태로 설정되는
    컴퓨터 판독 가능 스토리지 매체.
KR1020197015365A 2016-11-28 2017-11-23 애플리케이션 리소스 사용량 절감 기법 KR20190085517A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/362,788 US20180152393A1 (en) 2016-11-28 2016-11-28 Application resource usage reduction
US15/362,788 2016-11-28
PCT/US2017/063166 WO2018098386A1 (en) 2016-11-28 2017-11-23 Application resource usage reduction

Publications (1)

Publication Number Publication Date
KR20190085517A true KR20190085517A (ko) 2019-07-18

Family

ID=60788678

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197015365A KR20190085517A (ko) 2016-11-28 2017-11-23 애플리케이션 리소스 사용량 절감 기법

Country Status (17)

Country Link
US (1) US20180152393A1 (ko)
EP (1) EP3545669A1 (ko)
JP (1) JP2019536173A (ko)
KR (1) KR20190085517A (ko)
CN (1) CN110024359A (ko)
AU (1) AU2017363322B2 (ko)
BR (1) BR112019007814A2 (ko)
CA (1) CA3041505A1 (ko)
CL (1) CL2019001322A1 (ko)
CO (1) CO2019004773A2 (ko)
IL (1) IL266782A (ko)
MX (1) MX2019005878A (ko)
PH (1) PH12019550062A1 (ko)
RU (1) RU2760911C2 (ko)
SG (1) SG10202105166RA (ko)
WO (1) WO2018098386A1 (ko)
ZA (1) ZA201902215B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016054179A1 (en) * 2014-09-30 2016-04-07 Convida Wireless, Llc Dynamic policy control
US11108694B2 (en) * 2018-03-30 2021-08-31 Ricoh Company, Ltd. Communication system and upload method

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181531B2 (en) * 2002-04-30 2007-02-20 Microsoft Corporation Method to synchronize and upload an offloaded network stack connection with a network stack
US8769127B2 (en) * 2006-02-10 2014-07-01 Northrop Grumman Systems Corporation Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
US20120117271A1 (en) * 2010-11-05 2012-05-10 Sony Corporation Synchronization of Data in a Distributed Computing Environment
US20130041948A1 (en) * 2011-08-12 2013-02-14 Erick Tseng Zero-Click Photo Upload
US9344335B2 (en) * 2011-09-09 2016-05-17 Microsoft Technology Licensing, Llc Network communication and cost awareness
US20140280779A1 (en) * 2013-03-15 2014-09-18 Synchronoss Technologies, Inc. Apparatus, system and method of content transferring
CN104184753B (zh) * 2013-05-20 2018-04-27 腾讯科技(深圳)有限公司 一种文件传输方法及装置
US9544373B2 (en) * 2013-12-24 2017-01-10 Dropbox, Inc. Systems and methods for maintaining local virtual states pending server-side storage across multiple devices and users and intermittent network connections
US9462054B2 (en) * 2014-02-27 2016-10-04 Dropbox, Inc. Systems and methods for providing a user with a set of interactivity features locally on a user device
CN104320440A (zh) * 2014-09-30 2015-01-28 珠海市君天电子科技有限公司 一种图片异地存储的方法及图片异地存储处理装置
CN104333604A (zh) * 2014-11-18 2015-02-04 中国建设银行股份有限公司 图片批量上传方法、上传信息反馈方法、相关设备及系统
CN105162863A (zh) * 2015-09-01 2015-12-16 北京皮尔布莱尼软件有限公司 一种图片上传装置、方法和计算设备
CN106161628B (zh) * 2016-07-13 2020-12-01 腾讯科技(深圳)有限公司 拍摄文件上传方法及装置

Also Published As

Publication number Publication date
AU2017363322B2 (en) 2022-03-17
CO2019004773A2 (es) 2019-05-21
IL266782A (en) 2019-07-31
CA3041505A1 (en) 2018-05-31
US20180152393A1 (en) 2018-05-31
RU2019115915A3 (ko) 2021-02-12
RU2760911C2 (ru) 2021-12-01
CL2019001322A1 (es) 2019-09-27
BR112019007814A2 (pt) 2019-07-16
WO2018098386A1 (en) 2018-05-31
SG10202105166RA (en) 2021-06-29
ZA201902215B (en) 2020-08-26
MX2019005878A (es) 2019-08-12
CN110024359A (zh) 2019-07-16
JP2019536173A (ja) 2019-12-12
AU2017363322A1 (en) 2019-04-18
PH12019550062A1 (en) 2020-01-20
EP3545669A1 (en) 2019-10-02
RU2019115915A (ru) 2020-11-23

Similar Documents

Publication Publication Date Title
US11921996B2 (en) Information processing terminal and control method
US10742694B2 (en) Method for migrating data and terminal
US9760413B2 (en) Power efficient brokered communication supporting notification blocking
KR102042022B1 (ko) 시스템 운용 방법 및 지능형 단말
WO2019071872A1 (zh) 一种文件分享方法及终端
US20210037579A1 (en) System, method and computer program product for implementing bluetooth in a virtual mobile device platform
US9047469B2 (en) Modes for applications
US10484449B2 (en) Email webclient notification queuing
US20170102957A1 (en) System and Method for Trusted Operability When Moving Between Network Functions Virtualization States
KR20190085517A (ko) 애플리케이션 리소스 사용량 절감 기법
TWI668634B (zh) 基於軟體容器提供雲端服務之系統及方法
JP2021010164A (ja) 通知プリセットを利用した通知処理方法および装置
CN108984238B (zh) 应用程序的手势处理方法、装置及电子设备
US11606457B2 (en) Technology and method for selectively providing network function to application of device
KR20180105965A (ko) 긴급 호를 제공하는 전자 장치 및 방법, 그리고 이를 위한 서버
US10291498B1 (en) Mobile communication device diagnostic client and error remediation sharing
US20210374106A1 (en) Using drag-and-drop to open local files remotely
CN109660585A (zh) Aop增强对象服务的调用方法、装置、设备及存储介质
US20230342125A1 (en) Enforcement of environmental conditions for cloud applications
CN107682531B (zh) 终端控制方法及系统
KR102532696B1 (ko) 어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법
CN110471714B (zh) 控制应用启动的方法、装置、终端及存储介质
KR102072137B1 (ko) 데이터를 송수신하기 위한 방법 및 그 전자 장치
CN113612739A (zh) 一种恢复长期演进语音承载注册的方法及终端设备
WO2019027559A1 (en) APPEAL POLICY BASED ON LOCATION

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right