KR102090372B1 - 중앙집중형 클라이언트 애플리케이션 관리 - Google Patents

중앙집중형 클라이언트 애플리케이션 관리 Download PDF

Info

Publication number
KR102090372B1
KR102090372B1 KR1020177017398A KR20177017398A KR102090372B1 KR 102090372 B1 KR102090372 B1 KR 102090372B1 KR 1020177017398 A KR1020177017398 A KR 1020177017398A KR 20177017398 A KR20177017398 A KR 20177017398A KR 102090372 B1 KR102090372 B1 KR 102090372B1
Authority
KR
South Korea
Prior art keywords
user device
command
user
client
process flow
Prior art date
Application number
KR1020177017398A
Other languages
English (en)
Other versions
KR20170087942A (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 이베이 인크.
Publication of KR20170087942A publication Critical patent/KR20170087942A/ko
Application granted granted Critical
Publication of KR102090372B1 publication Critical patent/KR102090372B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

중앙집중형 클라이언트 애플리케이션 관리를 위한 시스템 및 방법이 제공된다. 일례의 실시예에서, 디바이스 데이터는 사용자 디바이스로부터 수신된다. 사용자 디바이스는 식별 규칙에 따라 식별된다. 클라이언트 상태는 사용자 디바이스로부터 수신된다. 클라이언트 상태와 특정 상태 사이의 매치가 판정된다. 특정 상태에 매칭하는 클라이언트 상태에 기초하여, 사용자 디바이스 상에서 수행될 명령어가 생성된다. 명령어는 사용자 디바이스 상에서 수행되게 된다. 명령어는 상기 사용자 디바이스 상에 저장된 클라이언트 상태에 대한 변경을 가능하게 한다.

Description

중앙집중형 클라이언트 애플리케이션 관리{CENTRALIZED CLIENT APPLICATION MANAGEMENT}
관련 출원
본 국제 출원은 2014년 11월 26일 출원된, "중앙집중형 클라이언트 애플리케이션 관리"라는 명칭의 미국 가출원 번호 62/085,136의 우선권을 주장하는, 2015년 11월 24일 제출된 미국 출원번호 14/950,012의 우선권을 주장하며, 각각은 본원에서 전체가 참조로써 포함되었다.
기술 분야
본 개시의 실시예들은 일반적으로 모바일 컴퓨팅 기술에 관한 것이고, 제한하는 것이 아닌, 더 구체적으로, 중앙집중형 클라이언트 애플리케이션 관리에 관한 것이다.
스마트 폰, 태블릿 컴퓨터, 및 다른 스마트 디바이스는 소비자들 사이에서 점점 대중적인 것이 되고 있다. 이들 디바이스는 제 3 자 개발자에 의해 중앙집중형 애플리케이션 스토어("앱 스토어"로서 또한 지칭됨)에 제출된 다양한 애플리케이션("앱"으로서 또한 지칭됨)을 소비자들이 다운로드하고 설치하는 것을 가능하게 한다. 제출 프로세스는 소비자에게 제출된 앱의 출시를 몇일 또는 몇주 동안 지연시킬 수 있는 승인 프로세스를 포함할 수 있다. 이러한 지연은 긴급한 업데이트 또는 특정 애플리케이션에 대한 변경이 필요할 때 유해할 수 있다.
다양한 첨부된 도면 중 하나는 단지 본 개시의 실시예를 도시하고 범위를 제한하는 것으로서 고려되어서는 안된다.
도 1은 일부 실시예에 따른 네트워크 시스템을 도시하는 블록도이다.
도 2는 일부 실시예에 따른 관리 시스템의 실시예를 도시하는 블록도이다.
도 3은 일부 실시예에 따른 클라이언트 애플리케이션의 중앙집중형 관리를 위한 예시의 방법을 도시하는 흐름도이다.
도 4 및 도 5는 일부 실시예에 따른 클라이언트 애플리케이션의 중앙집중형 관리를 위한 예시의 방법의 추가 예시 동작을 도시하는 흐름도이다.
도 6은 일부 실시예에 따른 클라이언트 디바이스와 관리 시스템 사이의 다양한 통신을 도시하는 스윔레인 다이어그램(swim-lane diagram)이다.
도 7 및 도 8은 일부 실시예에 따른 다양한 예시의 사용자 인터페이스를 도시하는 사용자 인터페이스 다이어그램이다.
도 9는 일부 실시예에 따른 예시의 모바일 디바이스 및 모바일 운영 시스템 인터페이스를 도시하는 사용자 인터페이스 다이어그램이다.
도 10은 일부 실시예에 따라 머신 상에 설치될 수 있는 소프트웨어 아키텍쳐의 일례를 도시하는 블록도이다.
도 11은 일부 실시예에 따라 내부에서 명령어의 세트가 머신으로 하여금 본원에서 논의된 방법론 중 어느 하나 이상을 수행하게 하도록 실행될 수 있는 컴퓨터 시스템의 형태로 머신의 개략적인 표현을 제시하는 블록도이다.
이하의 설명은 본 개시의 구체적인 실시예를 구현하는 시스템, 방법, 기술, 명령어 시퀀스, 및 컴퓨팅 머신 프로그램 제품을 포함한다. 이하의 설명에서, 설명의 목적을 위해, 본 발명의 청구 대상의 다양한 실시예들의 이해를 제공하기 위해 다양한 특정 상세가 제시된다. 그러나, 이들 특정 상세 없이도 본 발명의 청구 대상의 실시예들이 실시될 수 있다는 것이 당업자에게 명백해질 것이다. 일반적으로, 잘 알려진 명령어 인스턴스, 프로토콜, 구조체, 및 기술은 반드시 자세하게 제시되는 것은 아니다.
스마트 폰, 태블릿, 및 유사한 것의 사용자는 제 3 자 개발자에 의해 디지털 배포 플랫폼(예를 들어, 구글® 플레이, 앱 스토어, 윈도우® 스토어와 같은 앱 스토어)에 제출된 앱을 다운로드하고 설치할 수 있다. 제 3 자 개발자가 특정 앱 또는 특정 앱에 대한 업데이트를 앱 스토어에 제출할 때, 통상적으로 사용자에게 사용가능하게 되는 특정 앱 또는 특정 앱에 대한 업데이트와 제출 사이에 지연이 존재한다. 이 지연은 종종 앱 스토어의 호스트에 의해 구현되는 다양한 호환성 테스팅을 포함할 수 있는 승인 프로세스 때문이다. 특정 앱에 대한 긴급한 업데이트가 필요한 시나리오에서, 사용가능하게 되는 업데이트에서의 이러한 지연은 특정 앱의 개발자 및 사용자에게 곤란을 가져올 수 있다. 예를 들어, 앱과 연관된 보안 침해(예를 들어, 노출되고 있는 민감한 크리덴셜 데이터)는 앱의 업데이트를 통해 해결될 수 있다. 이 예시에서, 앱의 업데이트 지연이 더 짧을수록 앱의 사용자가 보안 침해에 덜 노출된다.
특정 앱의 대량 업데이트(예를 들어, 수백만 디바이스를 포함하는 업데이트)를 수행할 때 발생할 수 있는 다른 이슈는 다수의 디바이스의 각각의 디바이스에 대한 상태를 저장하는 것이다. 서버 상의 각각의 디바이스에 대한 상태를 저장하는 것은 다수의 클라이언트 디바이스가 존재할 때 도전과제가 될 수 있다. 다양한 실시예에서, 클라이언트 디바이스에서 상태를 저장하고 후속 분석 또는 조치를 위해 서버로 상태를 전달하는 기술이 설명되었다. 이 방식으로, 상태는 서버에서 중앙에 저장되기 보다는 클라이언트 디바이스를 통해 배포된다. 이러한 스킴(scheme)은 모바일 앱에 대해 통상적인 것으로서 다수의 디바이스와 협업하는 것으로부터 발생될 수 있는 이슈를 회피한다.
앱 스토어에 제출되는 클라이언트 앱에 대한 업데이트 또는 변경의 지연된 출시에 의해 생성되는 이슈를 회피하기 위해, 중앙집중형 클라이언트 애플리케이션 관리를 위한 시스템 및 방법이 제공된다. 다양한 예시의 실시예에서, 디바이스 데이터가 하나 이상의 사용자 디바이스로부터 관리 서버에서 수신된다. 예를 들어, 관리 소프트웨어 개발 키트(Software Development Kit, SDK) 또는 라이브러리가 앱 스토어에 제출된 클라이언트 앱에 포함된다. 클라이언트 앱이 사용자 디바이스 상에서 실행될 때, 클라이언트 앱은 SDK를 초기화하고 디바이스 데이터(예를 들어, 운영 시스템, 설치된 앱, 디바이스 모델, 디바이스 식별자, 앱 버전)를 관리 서버에 제공한다. 디바이스 데이터가 관리 서버에서 수신되면, 관리 서버는 식별 규칙에 따라 사용자 디바이스를 식별한다. 식별 규칙은 디바이스 데이터와 연관된다. 예를 들어, 관리 서버는 특정 애플리케이션의 특정 버전을 구동하는 사용자 디바이스를 식별할 수 있다.
관리 서버가 사용자 디바이스를 식별한 이후에, 관리 서버는 사용자 디바이스로부터 클라이언트 상태를 수신한다. 관리 서버는 또한 사용자 디바이스의 클라이언트 상태에 기초하여 명령어를 생성한다. 예를 들어, 특정 사용자 디바이스가 패스워드 리셋 플로우를 수행하지 않는다는 것을 클라이언트 상태가 나타낸다면, 관리 서버는 패스워드 리셋 플로우 명령어(예를 들어, 사용자 디바이스가 패스워드 리셋 플로우를 수행하도록 지시, 안내, 또는 강제하는 명령어)를 포함하는 명령어를 생성한다. 관리 서버가 명령어를 생성하면, 관리 서버는 식별된 사용자 디바이스 상에서 명령어의 수행을 가능하게 한다. 명령어는 식별된 사용자 디바이스 상에 저장된 클라이언트 상태에 대한 변경을 가능하게 할 수 있다. 예를 들어, 명령어는 사용자 디바이스의 사용자 인터페이스 상에서 프로세스 플로우(예를 들어, 사용자 인터페이스 또는 일련의 사용자 인터페이스가 패스워드 리셋과 같은 특정 액션 또는 액션의 세트를 수행하도록 사용자를 안내함)를 제시하는 것을 포함할 수 있다. 이 예시에서, 관리 서버는 프로세스 플로우를 포함하는 사용자 디바이스의 실행 앱의 상부에 렌더링되는 사용자 인터페이스를 제시함으로써 명령어의 수행을 가능하게 한다.
도 1과 관련하여, 하이 레벨 클라이언트 서버 기반 네트워크 아키텍쳐(100)의 실시예가 도시된다. 네트워크 시스템(102)은 네트워크(104)(예를 들어, 인터넷 또는 광역 네트워크(WAN))를 통해 서버 측 기능을 클라이언트 디바이스(110)에 제공한다. 일부 구현예에서, 사용자(예를 들어, 사용자(106))는 클라이언트 디바이스(110)를 사용하여 네트워크 시스템(102)와 인터랙팅한다. 도 1은 예를 들어, 클라이언트 디바이스(110) 상에서 실행하는 웹 클라이언트(112)(예를 들어, 워싱턴 주 레드몬드의 마이크로소프트® 코포레이션에 의해 개발된 인터넷 익스플로러® 브라우저와 같은 브라우저), 클라이언트 애플리케이션(114), 및 프로그래밍 클라이언트(116)를 도시한다. 클라이언트 디바이스(110)는 웹 클라이언트(112), 클라이언트 애플리케이션(114), 및 프로그래밍 클라이언트(116)를 단독으로, 함께, 또는 임의의 적합한 조합으로 포함한다. 도 1은 하나의 클라이언트 디바이스(110)를 도시하였지만, 다른 구현예에서, 네트워크 아키텍쳐(100)는 다수의 클라이언트 디바이스를 포함한다.
다양한 구현예에서, 클라이언트 디바이스(110)는 네트워크(104)를 통한 네트워크 시스템(102)으로의 액세스를 제공하는 적어도 디스플레이 및 통신 기능을 포함하는 컴퓨팅 디바이스를 포함한다. 클라이언트 디바이스(110)는 원격 디바이스, 워크스테이션, 컴퓨터, 범용 컴퓨터, 인터넷 가전제품, 핸드헬드 디바이스, 무선 디바이스, 휴대용 디바이스, 착용가능한 컴퓨터, 셀룰러 또는 모바일 폰, 개인용 디지털 보조장치(PDA), 스마트 폰, 태블릿, 울트라북, 넷북, 랩탑, 데스크탑, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그래밍가능한 소비자 전자기기, 게임 콘솔, 셋탑 박스, 네트워크 개인용 컴퓨터(PC), 미니 컴퓨터 등을 포함하지만, 이에 제한되지 않는다. 예시의 실시예에서, 클라이언트 디바이스(110)는 터치 스크린, 가속도계, 자이로스코프, 생체인식 센서, 카메라, 마이크로폰, 글로벌 포지셔닝 시스템(GPS) 디바이스 등을 포함한다.
클라이언트 디바이스(110)는 유선 또는 무선 접속을 통해 네트워크(104)와 통신한다. 예를 들어, 네트워크(104)의 하나 이상의 부분은 애드혹 네트워크, 인트라넷, 익스트라넷, 가상 개인용 네트워크(VPN), 로컬 영역 네트워크(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 대도시 영역 네트워크(MAN), 인터넷의 일부, 공용 스위치 전화 네트워크(PSTN), 셀룰러 전화 네트워크, 무선 네트워크, 와이파이(WI-FI®) 네트워크, 와이맥스(WiMax) 네트워크 다른 타입의 네트워크, 또는 이들의 임의의 적합한 조합을 포함한다.
일부 예시의 실시예에서, 클라이언트 디바이스(110)는 웹 브라우저, 북 리더 앱(e-북을 판독하도록 작동가능), 미디어 앱(오디오 및 비디오를 포함하는 다양한 미디어 형태를 제시하도록 작동가능), 피트니스 앱, 생체인식 모니터링 앱, 메세지 앱, 전자 메일(이메일) 앱 및 e-커머스 사이트 앱("마켓플레이스 앱"으로서 또한 지침됨)과 같은 하나 이상의 애플리케이션("앱"으로서 또한 지칭됨)을 포함하지만, 이에 제한되지 않는다. 일부 구현예에서, 클라이언트 애플리케이션(114)은 사용자에게 정보를 제시하고 네트워크 시스템(102)과 통신하도록 작동가능한 다양한 컴포넌트를 포함한다.
웹 클라이언트(112)는 웹 서버(122)에 의해 지원되는 웹 인터페이스를 통해 네트워크 시스템(102)의 다양한 시스템에 액세스한다. 유사하게, 프로그래밍 클라이언트(116) 및 클라이언트 애플리케이션(114)은 애플리케이션 프로그램 인터페이스(API) 서버(120)에 의해 제공된 프로그래밍 인터페이스를 통해 네트워크 시스템(102)에 의해 제공된 다양한 서비스 및 기능에 액세스한다. 프로그래밍 클라이언트(116)는, 예를 들어, 판매자가 오프라인 방식으로 네트워크 시스템(102) 상에서 리스팅을 저작하고 관리하며 프로그래밍 클라이언트(116)와 네트워크 시스템(102) 사이의 배치 모드(batch-mode) 통신을 수행하는 것을 가능하게 하는 판매자 애플리케이션(예를 들어, 캘리포니아 산호세의 이베이® 인크에 의해 개발된 터보 리스터(Turbo Lister) 애플리케이션)이 될 수 있다.
사용자(예를 들어, 사용자(106))는 사람, 머신, 또는 클라이언트 디바이스(110)와 인터랙팅하는 다른 수단을 포함한다. 일부 예시의 실시예에서, 사용자는 네트워크 아키텍쳐(100)의 일부가 아니지만, 클라이언트 디바이스(110) 또는 다른 수단을 통해 네트워크 아키텍쳐(100)와 인터랙팅한다. 예를 들어, 사용자는 클라이 언트 디바이스(110)에 입력(예를 들어, 터치 스크린 입력 또는 영숫자 입력)을 제공하고, 입력은 네트워크(104)를 통해 네트워크 시스템(102)으로 전달된다. 이 경우에, 네트워크 시스템(102)은, 사용자로부터 입력을 수신하는 것에 응답하여, 사용자에게 제시될 정보를 네트워크(104)를 통해 클라이언트 디바이스(110)로 전달한다. 이 방식으로, 사용자는 클라이언트 디바이스(110)를 사용하여 네트워크 시스템(102)과 인터랙팅할 수 있다.
API 서버(120) 및 웹 서버(122)는 하나 이상의 애플리케이션 서버(140)에 연결되고 프로그래밍 인터페이스 및 웹 인터페이스 각각을 제공한다. 애플리케이션 서버(140)는 하나 이상의 공개 시스템(142), 지불 시스템(144), 및 관리 시스템(150)을 호스팅할 수 있고, 이들 각각은 하나 이상의 모듈 또는 애플리케이션을 포함하고 이들 각각은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로서 구현될 수 있다. 애플리케이션 서버(140)는 결국 하나 이상의 정보 저장 레포지토리 또는 데이터베이스(126)에 대한 액세스를 가능하게 하는 하나 이상의 데이터베이스 서버(124)에 연결되는 것으로 도시된다. 예시의 실시예에서, 데이터베이스(126)는 공개 시스템(142)에 포스팅(예를 들어, 공개 또는 리스팅)될 정보를 저장하는 저장 디바이스이다. 데이터베이스(126)는 또한 일부 예시의 실시예에 따라 디지털의 양호한 정보를 저장할 수 있다.
추가로, 제 3 자 서버(130) 상에서 실행하는, 제 3 자 애플리케이션(132)은 API 서버(120)에 의해 제공되는 프로그래밍 인터페이스를 통해 네트워크 시스템(102)에 프로그래밍 액세스하는 것으로서 도시된다. 예를 들어, 네트워크 시스템(102)으로부터 검색된 정보를 활용하여, 제 3 자 애플리케이션(132)은 제 3 자 에 의해 호스팅된 웹사이트 상에서 하나 이상의 피쳐 또는 기능을 지원한다. 제 3 자 웹사이트는, 예를 들어, 네트워크 시스템(102)의 관련 애플리케이션에 의해 지원되는 하나 이상의 프로모션, 마켓플레이스 또는 지불 기능을 제공한다.
공개 시스템(142)은 네트워크 시스템(102)에 액세스하는 사용자에게 다수의 공개 기능 및 서비스를 제공한다. 지불 시스템(144)은 유사하게 지불 및 거래를 수행 또는 가능하게 하는 다수의 기능을 제공한다. 네트워크 시스템(102)의 부분을 형성하는 공개 시스템(142) 및 지불 시스템(144)이 도 1에서 도시되었지만, 대안의 실시예에서, 각각의 시스템(142 및 144)은 네트워크 시스템(102)으로부터 분리되고 구분되는 지불 시스템의 부분을 형성할 수 있다. 일부 예시의 실시예에서, 지불 시스템(144)은 공개 시스템(142)의 부분을 형성할 수 있다.
일부 구현예에서, 관리 시스템(150)은 중앙집중형 클라이언트 애플리케이션 관리에 대한 기능을 제공한다. 일부 예시의 실시예에서, 관리 시스템(150)은 클라이언트 디바이스(110), 제 3 자 서버(130), 공개 시스템(142), 및 지불 시스템(144)과 통신한다. 대안의 예시의 실시예에서, 관리 시스템(150)은 공개 시스템(142)의 일부이다. 관리 시스템(150)은 이하에서 도 2와 함께 추가로 논의될 것이다.
또한, 도 1에 도시된 클라이언트 서버 기반 네트워크 아키텍쳐(100)는 클라이언트 서버 아키텍쳐를 이용하는 반면, 본 발명의 청구 대상은 물론 이러한 아키텍쳐에 제한되지 않고, 예를 들어, 분산된, 또는 피어 투 피어(peer-to-peer), 아키텍쳐 시스템에서 애플리케이션을 동일하게 잘 찾을 수 있다. 애플리케이션 서버(140)(예를 들어, 공개 시스템(142) 및 지불 시스템(144)의 다양한 시스템은 또한 스탠드얼론(standalone) 소프트웨어 프로그램으로서 구현될 수 있고, 반드시 네트워킹 기능을 갖는 것은 아니다.
도 2는 중앙집중형 클라이언트 애플리케이션 관리를 위한 기능을 제공하는 관리 시스템(150)의 블록도이다. 예시의 실시예에서, 관리 시스템(150)은 제시 모듈(210), 통신 모듈(220), 식별 모듈(230), 상태 모듈(240), 및 명령어 모듈(250)을 포함한다. 도 2의 모듈(210 내지 250)의 일부 또는 모두는 예를 들어, 네트워크 커플링, 공유 메모리 등을 통해 서로 통신한다. 각각의 모듈은 다른 모듈로 통합되거나 다수의 모듈로 추가로 세분되는, 단일 모듈로서 구현될 수 있다는 것이 이해될 수 있다. 예시의 실시예와 관련되지 않은 다른 모듈이 또한 포함될 수 있지만, 도시되지 않았다.
제시 모듈(210)은 사용자로부터 정보를 수신하고 인터랙티브 방식으로(interactively) 제시하도록(또는 제시를 가능하게 함) 동작가능한 다양한 제시 및 사용자 인터페이스 기능을 제공한다. 인터랙티브 방식으로 제시한 정보는 특정 디바이스와 사용자 사이의 정보 교환을 포함하는 것이다. 사용자는 영숫자, 포인트 기반(예를 들어, 커서), 촉각, 다른 입력(예를 들어, 터치 스크린, 촉각 센서, 광 센서, 적외선 센서, 생체 인식 센서, 마이크로폰, 자이로스코프, 가속도계, 또는 다른 센서) 등과 같은, 많은 가능한 방식으로 사용자 인터페이스와 인터랙팅하도록 입력을 제공할 수 있다. 제시 모듈(210)은 많은 다른 사용자 인터페이스를 제공하여 본원에서 설명된 기능을 가능하게 한다는 것을 이해할 수 있다. 또한, 본원에서 사용된 "제시"는 특정 디바이스로 정보 또는 명령어를 전달하는 것을 포함하여 전달된 정보 또는 명령어에 기초해서 제시를 수행하도록 동작가능하다는 것을 이해할 수 있다.
통신 모듈(220)은 다양한 통신 기능 및 웹 서비스를 제공한다. 예를 들어, 통신 모듈(220)은 네트워크 시스템(102), 클라이언트 디바이스(110), 및 제 3 자 서버(130)와 통신하는 것과 같은 네트워크 통신을 제공한다. 다양한 예시의 실시예에서, 네트워크 통신은 유선 또는 무선 모달리티(modalities)를 통해 동작할 수 있다. 웹 서비스는 제 3 자 서버(130), 데이터베이스(126), 및 애플리케이션 서버(140)로부터 정보를 수신하는 것을 포함하는 것이다. 일부 구현예에서, 통신 모듈(220)에 의해 검색된 정보는 사용자와 연관된 데이터(예를 들어, 온라인 계정으로부터의 사용자 프로파일 정보, 사용자와 연관된 소셜 네트워크 서비스 데이터), e-커머스 웹사이트 상에서 리스팅된 하나 이상의 아이템과 연관된 데이터(예를 들어, 아이템의 이미지, 아이템의 리뷰, 아이템 가격), 또는 본원에서 설명된 기능을 가능하게 하는 다른 데이터를 포함한다.
식별 모듈(230)은 복수의 사용자 디바이스의 각각의 디바이스로부터 수신된 디바이스 데이터에 기초하여 복수의 사용자 디바이스 가운데 하나 이상의 사용자 디바이스를 식별하는 기능을 제공한다. 예를 들어, 식별 모듈(230)은 특정 운영 시스템을 구동하는 사용자 디바이스의 세트, 특정 앱의 버전, 로케일 등을 식별할 수 있다.
상태 모듈(240)은 사용자 디바이스의 클라이언트 상태의 검색, 저장, 또는 스토리지를 가능하게 하는 기능을 제공한다. 예를 들어, 상태 모듈(240)은 사용자 디바이스 상에 저장된 클라이언트 상태 데이터를 검색한다. 일부 실시예에서, 상태 모듈(240)은 클라이언트 디바이스에 저장된 클라이언트 상태를 변경하거나 변경을 가능하게 한다. 예를 들어, 특정 통지 또는 메시지가 특정 사용자 디바이스에 의해 수신되면, 상태 모듈(240)은 특정 사용자 디바이스가 특정 통지 또는 메시지를 적어도 한 번 수신한다는 것을 나타내도록 클라이언트 상태를 업데이트하거나 업데이트를 가능하게 한다.
명령어 모듈(250)은 사용자 디바이스(예를 들어, 사용자 디바이스(110)) 상에서 수행될 명령어를 생성하는 기능을 제공한다. 명령어는 사용자 디바이스의 디바이스 데이터에 기초하여 특정 디바이스를 위해 구성될 수 있다. 예를 들어, 명령어는 사용자 디바이스 상에서 특정 앱과 연관된 온라인 계정에 대해 패스워드를 리셋하는 것과 같은 프로세스 플로우를 포함할 수 있다. 다른 예시에서, 명령어는 앱 데이터(예를 들어, 클라이언트 앱에 대해 국부적으로 저장된 설정), 메시지 또는 통지(예를 들어, 사용자 디바이스 언어에 대해 국부화된 유지관리 메시지를 위한 다운), 유지관리 동작(예를 들어, 특정 프라이버시 설정을 조정), 클라이언트 앱(예를 들어, 클라이언트 앱(114))과 연관된 온라인 계정으로부터의 사용자(예를 들어, 사용자(106))의 강제된 로그아웃, 클라이언트 앱의 특정 피쳐에 대한 액세스에서의 변경(예를 들어, 특정 피쳐를 인에이블 또는 디스에이블) 등을 포함한다.
도 3은 클라이언트 애플리케이션의 중앙집중형 관리를 위한 예시의 방법(300)을 도시하는 흐름도이다. 방법(300)의 동작은 관리 시스템(150)의 컴포넌트에 의해 수행될 수 있고, 이는 예시의 목적을 위해 이하에서 설명된다.
동작(310)에서, 통신 모듈(220)은 사용자 디바이스의 디바이스 속성을 나타내는 사용자 디바이스로부터의 디바이스 데이터(사용자 디바이스 상에 설치된 특정 버전의 특정 애플리케이션)를 수신한다. 예를 들어, 디바이스 데이터는 디바이스 속성을 포함하거나 식별 모듈(230)은 디바이스 데이터로부터 디바이스 속성을 추출하거나 추론한다(예를 들어, 식별 모듈(230)은 디바이스 데이터에 포함된 사용자 디바이스의 디바이스 식별자에 맵핑된 소셜 네트워크 멤버 식별에 기초하여 사용자 디바이스의 사용자에 관한 인구통계 정보를 추론한다). 디바이스 데이터는 사용자 디바이스 상에서 구동하는 운영 시스템, 사용자 디바이스 상에 설치된 앱, 디바이스 모델, 디바이스 식별자, 사용자 디바이스의 지리위치 또는 로케일, 사용자 디바이스의 언어 설정, 사용자 디바이스 상의 특정 앱의 앱 버전, 사용자 디바이스의 사용자와 연관된 사용자 식별자(예를 들어, 소셜 네트워킹 서비스 식별자 또는 다른 온라인 계정 로그인 식별자)와 같은 사용자 디바이스에 관련된 다양한 데이터 및 사용자 디바이스에 관한 다양한 다른 데이터를 포함할 수 있다.
예시의 실시예에서, 통신 모듈(220)은 디바이스 데이터에 대해 사용자 디바이스에 질의한다. 예를 들어, 통신 모듈(220)은 사용자 디바이스에 의해 액세스가능한 디바이스 데이터를 요청하는 사용자 디바이스로 요청을 송신하고, 요청을 수신하는 것에 응답하여, 사용자 디바이스가 디바이스 데이터에 액세스하고 액세스된 디바이스 데이터를 통신 모듈(220)로 전송한다. 일부 예시에서, 통신 모듈(220)에 의해 송신된 요청은 액세스할 데이터 유형 또는 액세스할 데이터 저장소의 위치를 특정하고, 사용자 디바이스는 요청에 포함된 사양에 따라 데이터에 액세스한다. 이 방식으로, 디바이스 데이터에 대한 요청에 응답하여 사용자 디바이스는 액세스하여 통신 모듈(220)로 전송할 데이터를 결정할 수 있다.
동작(320)에서, 식별 모듈(230)은 관리 시스템(150)의 운영자, 경영자 또는 관리자에 의해 특정된 식별 규칙에 따라 사용자 디바이스를 식별한다. 다양한 예시의 실시예에서, 식별 규칙은 특정 디바이스 속성을 특정한다. 예를 들어, 식별 규칙은 사용자 디바이스의 특정 운영 시스템, 디바이스 모델, 또는 다른 속성(예를 들어, 특정 모델 번호의 디바이스), 사용자 디바이스 사용자(예를 들어, 특정 인구통계 데이터에 매칭하는 하나 이상의 사용자 또는 사용자를 갖는 디바이스), 사용자 디바이스의 환경(예를 들어, 디바이스 주변의 주위 온도, 디바이스의 지리위치 또는 디바이스의 고도). 이 예시에서, 식별 모듈(230)은 사용자 디바이스와 연관된 속성을 갖는 식별 규칙에 포함되는 운영 시스템, 디바이스 모델, 또는 다른 속성 사이의 매치 또는 비슷한 매치를 판정하여 사용자 디바이스를 식별한다. 특정 예시에서, 식별 모듈(230)은 특정 기간 내에 개방(open)(예를 들어, 적어도 7일 내에 개방됨)되지 않은 특정 버전의 앱을 구동하는 복수의 사용자 디바이스를 식별한다. 다른 예시에서, 식별 모듈(230)은 운영자 특정 지리적 영역 내에(예를 들어, 특정 지리위치의 사전결정된 거리 내에) 존재하는 디바이스를 식별한다. 또 다른 예시에서, 식별 모듈(230)은 운영자 특정 사용자 식별자(예를 들어, 소셜 네트워킹 서비스 멤버 식별자)와 연관된 디바이스를 식별한다.
동작(330)에서, 상태 모듈(240)은 식별된 사용자 디바이스로부터 클라이언트 상태를 수신한다. 다양한 예시의 실시예에서, 클라이언트 상태는 태스크의 상태(예를 들어, 특정 프로세스 플로우가 특정 기간 내에 사용자 디바이스 상에서 완료되는지 여부)를 나타낸다. 일부 실시예에서, 클라이언트 상태는 사용자 디바이스 상의 데이터 파일에 저장될 수 있고 사용자 디바이스에 의해 관리 시스템(150)으로 전송된다. 일부 실시예에서, 클라이언트 상태는 사용자 디바이스와 연관된 활동 또는 태스크에 관한 정보를 포함한다. 예를 들어, 클라이언트 상태는 사용자가 특정 앱을 오픈하는 마지막 시간 및 특정 프로세스 플로우가 사용자에 의해 완료되는지 여부 등을 나타낼 수 있다.
동작(340)에서, 명령어 모듈(250)은 사용자 디바이스의 클라이언트 상태에 기초하여 명령어를 생성한다. 상태 모듈(240) 또는 명령어 모듈(250)은 클라이언트 상태가 특정 상태에 매치하거나 거의 매치하고 후속하여 특정 상태에 매치하는 클라이언트 상태에 기초하여 명령어를 생성한다. 예를 들어, 명령어 모듈(250)은 특정 상태(예를 들어, 관리 시스템(150)의 운영자에 의해 특정됨)에 매치하는 클라이언트 상태에 기초하여 특정 타입의 명령어를 생성한다. 특정 예시에서, 특정 상태는 특정 태스크 또는 프로세스 플로우가 특정 기간 내에서 사용자 디바이스에 의해 완료되는지 여부의 표시를 포함한다. 이하에서 도 4와 관련한 추가 논의에 따라, 일부 예시의 실시예에서, 명령어 모듈(250) 또는 상태 모듈(240)은 클라이언트 상태에 따라 클라이언트 디바이스에 의해 완료되지 않은 태스크 또는 프로세스 플로우를 포함하는 명령어를 생성한다. 예를 들어, 명령어 모듈(250)은 패스워드 리셋 프로세스 플로우, 로그아웃 프로세스 플로우(예를 들어, 특정 계정의 로그아웃이 사용자 디바이스 상에서 수행될 때까지 앱 또는 브라우저 코드의 기능을 중단), 또는 다른 보안 변경 플로우(예를 들어, 특정 앱 또는 온라인 계정에 관한 프라이버시 세팅 또는 보안 설정의 사용자 사양을 수신)를 포함하는 명령어를 생성한다. 예시의 실시예에서, 명령어 모듈(250)은 사용자에게 제시될 일련의 사용자 인터페이스를 포함하는 이러한 프로세스 플로우를 생성한다. 다른 예시의 실시예에서, 명령어 모듈(250)은 사용자 디바이스 상에서의 명령의 자동 수행(예를 들어, 사용자 디바이스 상의 앱의 보안 설정에 대한 변경)을 가능하게 한다.
동작(350)에서, 명령어 모듈(250) 또는 제시 모듈(210)은 식별된 사용자 디바이스 상에서 생성된 명령어의 수행을 가능하게 한다. 예를 들어, 생성된 명령어는 제시 모듈(210)에 의해 생성되어, 제시 모듈(210)에 의해 사용자 디바이스 상에서 제시되게 하는 일련의 사용자 인터페이스를 포함하는 패스워드 리셋 프로세스 플로우를 포함할 수 있다(예를 들어, 사용자에게 프로세스 플로우를 수행하고 사용자로부터 새로운 패스워드와 같은, 사용자 입력을 수신하는 옵션을 제공하여 프로세스 플로우를 완료함). 다른 경우에, 명령어 모듈(250)은 사용자를 대신하여 사용자 디바이스 상에서 명령어의 수행을 자동으로 가능하게 한다(클라이언트 애플리케이션의 보안 설정을 자동으로 변경 또는 수정). 명령어 모듈(250)은 제시 모듈(210)과 함께 사용자의 사용자 디바이스 상에서 생성된 사용자 인터페이스의 제시를 가능하게 할 수 있다. 일부 경우에, 사용자 디바이스는 클라이언트 앱에 포함된 관리 SDK 또는 관리 라이브러리와 함께, 또는 이에 따라 명령어를 수행한다. 예를 들어, 관리 SDK는 클라이언트 앱 또는 사용자 디바이스를 변경 또는 수정할 수 있는 다양한 기능을 포함할 수 있다.
일례에서, 명령어는 사용자 디바이스의 사용자에게 제시될 정보를 포함하는 메시지 또는 통지(예를 들어, 유지관리를 위해 서비스가 다운 중임을 나타내는 메시지 표시)를 포함한다. 일부 실시예에서, 명령어 모듈(250)은 디바이스 데이터에 기초하여 명령어를 생성한다. 예를 들어, 디바이스 데이터가 특정 디바이스는 특정 언어 설정을 갖는다는 것을 나타낸다면, 명령어 모듈(250)은 디바이스 데이터로 나타낸 언어로 통지 또는 메시지를 생성한다.
이제 도 4를 참조하면, 클라이언트 애플리케이션의 중앙집중형 관리를 위한 추가의 예시 동작을 도시하는 흐름도가 도시된다. 특히, 도 4는 동작(340)의 예시의 실시예를 더 자세하게 논의한다. 동작(330)에서 식별된 사용자 디바이스로부터 클라이언트 상태를 수신하는 상태 모듈(240)에 후속하여, 예시의 실시예에서, 명령어 모듈(250)은 동작(340)에서 클라이언트 상태에 기초하여 명령어를 생성한다. 일부 실시예에서, 동작(340)은 도 4의 추가 동작을 포함한다.
동작(410)에서, 상태 모듈(240)이 클라이언트 상태에 따라 태스크가 사용자 디바이스에 의해 사전에 수행되지 않았음을 판정한다. 예를 들어, 사용자 디바이스 상의 특정 앱의 업데이트 또는 사용자 디바이스 상의 다른 이벤트 이후로 사용자 디바이스가 패스워드 리셋을 사전에 수행하지 않을 수 있다. 다른 경우에, 사용자 디바이스 상의 클라이언트 앱은 특정 보안 또는 프라이버시 설정을 구성하지 않을 것이다(사용자는 특정 프라이버시 또는 보안 레벨을 특정하여, 특정 사용자 콘텐츠의 공유를 가능하게 하거나, 특정 보안 리스크와 연관된 특정 인터넷 리소스로의 액세스를 가능하게 한다). 일부 실시예에서, 상태 모듈(240)은 소정 기간 동안(예를 들어, 장시간(forever), 전월(last month) 내에, 또는 특정 시간 또는 특정 이벤트 이후에) 태스크가 사전에 수행되지 않았음을 판정한다. 기간은 관리 시스템(150)의 운영자에 의해 특정되거나 상태 모듈(240)에 의해 동적으로 결정될 수 있다. 예를 들어, 기간(예를 들어, 클라이언트 상태의 특정 플래그 또는 표시가 관리 시스템(150)의 운영자에 의해 설정되었을 때의 시간에서 시작하는 기간)은 클라이언트 상태에 기초하여 결정될 수 있다.
동작(420)에서, 상태 모듈(240)은 기간 동안 사용자 디바이스에 의해 사전에 수행되지 않은 태스크를 포함하는 명령어를 생성한다. 예를 들어, 특정 프로세스 플로우가 기간 동안 사용자 디바이스에 의해 수행되지 않았다는 것을 클라이언트 상태가 나타내면, 명령어 모듈(250)은 특정 프로세스 플로우를 포함하는 명령어를 생성한다. 다른 예시에서, 특정 통지가 사용자 디바이스에 의해 수신되지 않았거나 제시되지 않았다는 것을 클라이언트 상태가 나타낸다면, 명령어 모듈(250)은 통지를 포함하는 명령어를 생성한다.
이제 도 5를 참조하면, 클라이언트 애플리케이션의 중앙집중형 관리를 위한 추가 예시의 동작을 도시하는 흐름도가 도시된다. 특히, 도 5는 동작(350)의 예시의 실시예를 더 자세하게 논의한다. 동작(340)에서, 명령어 모듈(250)은 사용자 디바이스의 클라이언트 상태에 기초하여 명령어를 생성한다. 후속하여, 동작(350)에서, 명령어 모듈(250)은 식별된 사용자 디바이스 상에서 생성된 명령어의 수행을 가능하게 한다. 일부 실시예에서, 동작(350)은 이하에서 논의될 도 5의 추가 동작을 포함한다.
동작(510)에서, 명령어 모듈(250)은 사용자 디바이스 상에서, 클라이언트 앱, 또는 다른 소프트웨어의 일부의 실행을 막거나, 사용을 방해한다. 예를 들어, 명령어는 클라이언트 앱 사용자 인터페이스의 상부에 오버레이되어 사용자가 클라이언트 앱 사용자 인터페이스와 인터랙팅하는 것을 막을 수 있는 사용자 인터페이스의 제시(예를 들어, 사용자 인터페이스 또는 기본 운영 시스템 인터페이스를 포함하는 모바일 브라우저)를 가능하게 한다. 사용자 인터페이스는 클라이언트 앱이 현재 실행가능하지 않다는 것을 나타내고, 대응하는 이유를 나타낼 수 있다. 다른 실시예에서, 명령어는 특정 조건을 만족할 때까지 클라이언트 앱 또는 클라이언트 앱의 기능 중 일부를 디스에이블시킨다. 예를 들어, 조건은 패스워드 리셋을 수행하는 것과 같은 프로세스 플로우를 완료하는 것을 포함할 수 있다. 즉, 예시의 실시예에서, 명령어 모듈(250)은 패스워드 리셋 프로세스 플로우와 같은 특정 프로세스 플로우가 완료될 때까지 특정 앱의 실행을 막을 수 있다.
동작(250)에서, 명령어 모듈(250)은 조건의 만족을 판정한다. 일부 실시예에서, 명령어는 조건 또는 다수의 조건을 포함한다. 일례에서, 조건은 프로세스 플로우(예를 들어, 패스워드 리셋)를 완료하는 사용자 디바이스에 의해 만족된다. 일부 실시예에서, 사용자 디바이스는 명령어 모듈(250)로 조건의 만족을 나타내는 데이터를 전달한다. 예를 들어, 사용자 디바이스가 패스워드 리셋 프로세스 플로우를 완료하면, 사용자 디바이스는 프로세스 플로우가 완료되었다는 메시지 표시를 명령어 모듈(250)로 전달한다. 다른 실시예에서, 명령어 모듈(250)은 조건의 만족을 나타내는 데이터에 대해 사용자 디바이스, 애플리케이션 서버, 또는 다른 서버에 질의함으로써 조건의 만족을 모니터링한다. 다른 예시에서, 조건은 사용자 디바이스가 특정 웹 페이지에 대한 링크를 활성화시키는 것과 같은 액션에 의해 만족된다. 조건은 사용자 디바이스의 사용자에 의해 수행될 다양한 액션 및 태스크를 포함할 수 있다. 일부 경우에, 명령어 모듈(250)은 조건이 만족되었다는 것을 나타내도록 클라이언트 상태를 수정한다.
동작(530)에서, 명령어 모듈(250)은 조건의 만족에 기초하여 사용자 디바이스 상에서 클라이언트 앱의 실행을 가능하게 한다. 예를 들어, 조건이 만족되었음을 명령어 모듈(250)이 판정하면, 명령어 모듈(250)은, 예를 들어, 클라이언트 앱 사용자 인터페이스의 상부에 오버레이된 사용자 인터페이스를 사라지게 하거나 제거하게 하거나, 명령어 모듈(250)에 의해 사전에 디스에이블된 어떤 기능을 인에이블시킨다.
클라이언트 디바이스와 관리 시스템(150) 사이의 인터랙션을 도시하기 위해, 도 6은 다양한 디바이스에서 수행되는 예시의 동작을 도시하는 스윔레인 다이어그램(500)이다. 상술한 바와 같이, 동작(310)에서, 통신 모듈(220)은 클라이언트 디바이스(110)로부터 디바이스 데이터를 수신한다. 도 6에서 도시된 바와 같이, 동작(610)에서, 클라이언트 디바이스(110)는 예를 들어, 디바이스(110) 상에 설치된 클라이언트 앱에 포함된 관리 SDK의 초기화 시에, 관리 시스템(150)으로 디바이스 데이터를 전달, 전송, 또는 제공한다. 동작(310)과 관련하여 위에서 논의한 바와 같이, 디바이스 데이터는, 예를 들어, 사용자 디바이스 상에서 구동하는 운영 시스템, 사용자 디바이스 상에 설치된 앱, 디바이스 모델, 디바이스 식별자, 사용자 디바이스의 지리위치 또는 로케일, 사용자 디바이스의 언어 설정, 사용자 디바이스 상의 특정 앱의 앱 버전, 또는 사용자 디바이스에 관한 다양한 다른 데이터, 또는 사용자 디바이스의 사용자 또는 사용자들, 사용자 디바이스의 환경(예를 들어, 사용자 디바이스의 물리적 주변) 등과 같은, 사용자 디바이스에 관한 다양한 데이터를 포함한다.
동작(320)에서, 식별 모듈(230)은 식별 규칙에 따라 클라이언트 디바이스(110)를 식별한다. 동작(330)에서, 상태 모듈(240)은 식별된 클라이언트 디바이스(110)로부터 클라이언트 상태를 수신한다. 따라서, 동작(620)에서, 클라이언트 디바이스(110)는 클라이언트 디바이스(110)에 저장된 클라이언트 상태를 전달, 전송, 또는 제공한다. 동작(330)과 관련하여 위에서 논의한 바와 같이, 일부 실시예에서, 클라이언트 상태는 사용자 디바이스의 활동에 관한 정보를 포함한다. 특정 예시에서, 클라이언트 상태는 사용자가 특정 앱을 오픈한 마지막 시간, 특정 프로세스 플로우가 사용자에 의해 완료되었는지 여부 등을 나타낸다.
동작(340)에서, 명령어 모듈(250)은 클라이언트 디바이스(110)의 클라이언트 상태에 기초하여 명령어를 생성한다. 동작(350)에서, 명령어 모듈(250) 또는 제시 모듈(210)은 식별된 클라이언트 디바이스(110) 상에서 명령어의 수행을 가능하게 한다. 명령어 모듈(250)은 클라이언트 디바이스(110)로 명령어를 전달, 전송, 또는 제공한다. 동작(630)에서, 명령어 수신 시에, 클라이언트 디바이스(110)는 명령어를 수행 또는 실행한다. 일부 경우에, 명령어는 클라이언트 상태에서의 변경을 가능하게 하고, 클라이언트 디바이스(110)는 변경에 응답하여 새로운 클라이언트 상태를 저장한다. 후속하여 새로운 클라이언트 상태가 관리 시스템(150)으로 제공될 수 있다.
도 7 및 도 8은 사용자에게 정보를 인터랙티브 방식으로 제시하기 위한 예시의 사용자 인터페이스를 도시한다. 도 7 및 도 8은 특정 예시의 사용자 인터페이스 및 사용자 인터페이스 구성요소를 도시하지만, 이들은 단지 비제한적인 예시이고, 많은 다른 대안의 사용자 인터페이스 및 사용자 인터페이스 구성요소가 제시 모듈(210)에 의해 생성될 수 있고 사용자에게 제시되는 것을 가능하게 할 수 있다. 도 7 및 도 8의 디스플레이의 대안적인 제시는 추가적인 정보, 그래픽, 옵션 등을 포함할 수 있음에 유의해야 한다. 대안으로, 다른 제시는 적은 정보를 포함하거나 사용자에 의한 용이한 사용을 위해 요약된 정보를 제공한다.
도 7은 디바이스(700) 상에서 실행하는 클라이언트 앱에 의해 생성될 수 있는 예시의 사용자 인터페이스(710)를 디스플레이하는 예시의 디바이스(700)(예를 들어, 스마트 폰)를 도시한다. 예시의 실시예에서, 명령어 모듈(250)에 의해 생성되는, 명령어는 프로세스 플로우(예를 들어, 일련의 사용자 인터페이스)를 포함하여 프로세스 플로우의 완료까지 클라이언트 애플리케이션의 동작을 막을 수 있다. 예를 들어, 명령어는 제 2 사용자 인터페이스(720) 상에 제시된 프로세스 플로우를 포함한다. 제 2 사용자 인터페이스(720)는 예를 들어, 클라이언트 앱을 포함하는 사용자 인터페이스(710) 상부에 오버레이된, 웹 브라우저, 클라이언트 앱의 기본 사용자 인터페이스가 될 수 있다. 일 실시예에서, 제 2 사용자 인터페이스(720)는 플로세스 플로우의 태스크 또는 액션을 완료하기 위해 사용자가 인터랙팅할 수 있는 다양한 사용자 인터페이스 구성요소를 포함한다. 예를 들어, 제 2 사용자 인터페이스(720)는 패스워드 리셋 프로세스 플로우를 완료하는데 사용되는 사용자 인터페이스 구성요소를 포함할 수 있다. 다른 예시에서, 프로세스 플로우는 다른 타입의 사용자 크리덴셜 정보 입력 프로세스 플로우, 검증 또는 승인 프로세스 플로우, 또는 다른 프로세스 플로우를 포함한다. 일부 경우에, 제시 모듈(210)은 사용자 인터페이스(720) 및 사용자 인터페이스(720)에 포함되는 인터랙티브 사용자 인터페이스 구성요소를 동적으로 생성하고, 디바이스(700) 상에서 사용자 인터페이스(710)의 제시를 가능하게 한다. 일부 경우에, 사용자 인터페이스(720)는 클라이언트 앱에 포함되는 관리 SDK에 포함되는 기능을 레버리지(leverage)시킬 수 있다. 이 방식으로, 관리 시스템(150)은 앱 스토어 승인 프로세스 때문에 지연될 수 있는 클라이언트 애플리케이션의 업데이트를 수행하지 않고 사용자 디바이스에 저장된 상태로 사용자 디바이스 상의 명령어의 수행을 가능하게 한다.
도 8은 예시의 사용자 인터페이스(810)를 디스플레이하는 예시의 디바이스(800)를 도시한다. 이 예시에서, 사용자 인터페이스(810)는 사용자 디바이스의 사용자의 관점으로부터 사용자 인터페이스(720)로 보여질 수 있다. 도 8에 도시된 바와 같이, 사용자 인터페이스(810)는 사용자 디바이스 상에서 실행하는 클라이언트 앱에 의해 생성된 사용자 인터페이스(예를 들어, 도 7로부터의 사용자 인터페이스(710))를 커버하고 클라이언트 앱의 동작을 방해한다.
특정 실시예는 로직 또는 다수의 컴포넌트, 모듈, 또는 메커니즘을 포함하는 것으로서 설명되었다. 모듈은 소프트웨어 모듈(예를 들어, 머신 판독가능 매체 상에 또는 전송 신호에서 구현되는 코드) 또는 하드웨어 모듈로 구성될 수 있다. "하드웨어 모듈"은 특정 동작을 수행하는 것이 가능한 유형의 유닛이고 특정 물리적 방식으로 구현되거나 배열될 수 있다. 다양한 예시의 실시예에서, 하나 이상의 컴퓨터 시스템(예를 들어, 스탠드얼론 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예를 들어, 프로세서 또는 프로세서들의 그룹)은 본원에서 설명된 특정 동작을 수행하도록 동작하는 하드웨어 모듈로서 소프트웨어(예를 들어, 애플리케이션 또는 애플리케이션 일부)에 의해 구성된다.
일부 구현예에서, 하드웨어 모듈은 기계적으로, 전자적으로, 또는 이들의 임의의 적합한 조합으로 구현된다. 예를 들어, 하드웨어 모듈은 특정 동작을 수행하도록 영구적으로 구성된 전용 회로 또는 로직을 포함할 수 있다. 예를 들어, 하드웨어 모듈은 필드 프로그래밍가능한 게이트 어레이(FPGA) 또는 애플리케이션 특정 집적 회로(ASIC)와 같은, 특수 목적 프로세서가 될 수 있다. 하드웨어 모듈은 또한 특정 동작을 수행하는 소프트웨어에 의해 임시로 구성되는 프로그래밍가능한 로직 또는 회로를 포함할 수 있다. 예를 들어, 하드웨어 모듈은 범용 프로세서 또는 다른 프로그래밍가능한 프로세서 내에 포함되는 소프트웨어를 포함할 수 있다. 전용으로 그리고 영구적으로 구성된 회로에서, 또는 임시로 구성된 회로(예를 들어, 소프트웨어에 의해 구성됨)에서, 하드웨어 모듈을 기계적으로 구현하는 것에 대한 결정은 비용 및 시간을 고려하여 도출될 수 있다.
따라서, 문구 "하드웨어 모듈"은, 본원에서 설명된 특정 방식으로 동작하거나 특정 동작을 수행하도록 물리적으로 구조화되고, 영구적으로 구성되거나(예를 들어, 하드와이어), 또는 임시로 구성되는(예를 들어, 프로그래밍됨) 개체가 되는 유형의 개체를 포함하는 것으로 이해될 수 있다. 본원에서 사용된 바와 같이, "하드웨어로 구현된 모듈"은 하드웨어 모듈을 지칭한다. 하드웨어 모듈이 임시로 구성되는(예를 들어, 프로그래밍됨) 실시예를 고려하면, 하드웨어 모듈의 각각은 시간의 어느 하나의 인스턴스에 구성되거나 인스턴스화(instantiated)될 필요가 없다. 예를 들어, 하드웨어 모듈이 소프트웨어에 의해 구성된 범용 프로세서를 포함하여 특수 목적 프로세서가 되는 곳에서, 범용 프로세서는 다른 시간에 각각 다른 특수 목적 프로세서(예를 들어, 다른 하드웨어 모듈을 포함함)로서 구성될 수 있다. 따라서 소프트웨어는 특정 프로세서 또는 프로세서들을 구성할 수 있고, 예를 들어, 시간의 하나의 인스턴스에서 특정 하드웨어 모듈을 구성하고 시간의 다른 인스턴스에서 다른 하드웨어 모듈을 구성한다.
하드웨어 모듈은 다른 하드웨어 모듈로 정보를 제공하고 다른 하드웨어 모듈로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 모듈은 통신가능하게 연결되는 것으로서 간주될 수 있다. 다수의 하드웨어 모듈이 동시에 존재하는 곳에서, 통신은 둘 이상의 하드웨어 모듈 가운데 또는 중에서 (예를 들어, 적합한 회로 및 버스를 통해) 신호 전송을 통해 달성될 수 있다. 다수의 하드웨어 모듈이 다른 시간에 구성되거나 인스턴스화되는 실시예에서, 이러한 하드웨어 모듈들 사이의 통신이 예를 들어, 다수의 하드웨어 모듈이 액세스할 메모리 구조에서 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 모듈은 동작을 수행하고 통신가능하게 연결된 메모리 디바이스에서 이 동작의 출력을 저장한다. 추가 하드웨어 모듈은 또한 나중 시간에 저장된 출력을 검색하고 프로세싱하도록 메모리 디바이스에 액세스할 수 있다. 하드웨어 모듈은 또한 입력 또는 출력 디바이스를 사용하여 통신을 개시할 수 있고, 리소스(예를 들어, 정보의 집합)에 대해 동작할 수 있다.
본원에서 설명된 예시의 방법의 다양한 동작은 (예를 들어, 소프트웨어에 의해) 임시로 구성되거나 관련 동작을 수행하도록 영구적으로 구성되는 하나 이상의 프로세서에 의해, 적어도 부분적으로 수행될 수 있다. 임시로 또는 영구적으로 구성되는지와 상관 없이, 이러한 프로세서는 본원에서 설명된 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서로 구현된 모듈을 구성한다. 본원에서 사용된 것과 같이, "프로세서로 구현된 모듈"은 하나 이상의 프로세서를 사용하여 구성되는 하드웨어 모듈을 지칭한다.
유사하게, 본원에서 설명된 방법은 일례의 하드웨어인 특정 프로세서 또는 프로세서들을 사용하여 적어도 부분적으로 프로세서로 구현될 수 있다. 예를 들어, 방법의 동작들 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서로 구현된 모듈에 의해 수행될 수 있다. 또한, 하나 이상의 프로세서는 또한 "클라우드 컴퓨팅" 환경에서 또는 "SaaS(software as a service)"로서 관련 동작의 수행을 지원하도록 동작할 수 있다. 예를 들어, 동작들 중 적어도 일부는 컴퓨터의 그룹(프로세서를 포함하는 예시의 머신)에 의해 수행될 수 있고, 이들 동작은 네트워크(예를 들어, 인터넷) 및 하나 이상의 적합한 인터페이스(예를 들어, 애플리케이션 프로그램 인터페이스(API))를 통해 액세스가능하다.
특정 동작의 수행은 프로세서들 가운데 분산될 수 있고, 단일 머신 내에 존재하는 것 뿐만 아니라, 다수의 머신 전반에 배치될 수 있다. 일부 예시의 실시예에서, 프로세서들 또는 프로세서로 구현된 모듈은 하나의 지리적 위치(예를 들어, 집 환경, 사무실 환경, 또는 서버 팜 내에)에 위치된다. 다른 예시의 실시예에서, 프로세서들 또는 프로세서로 구현된 모듈은 다수의 지리적 위치 전반에 분산된다.
도 9는 예시의 실시예에 따라, 모바일 운영 시스템(예를 들어, IOS™, 안드로이드™, 윈도우® 폰, 또는 다른 모바일 운영 시스템)을 실행하는 예시의 모바일 디바이스(900)를 도시한다. 일 실시예에서, 모바일 디바이스(900)는 사용자(902)로부터 촉각 데이터를 수신하도록 동작가능한 터치 스크린을 포함한다. 예를 들어, 사용자(902)는 모바일 디바이스(900)를 물리적으로 터치(904)할 수 있고, 터치(904)에 응답하여, 모바일 디바이스(900)가 터치 위치, 터치 힘, 또는 제스쳐 움직임과 같은 촉각 데이터를 판정할 수 있다. 다양한 실시예에서, 모바일 디바이스(900)는 애플리케이션을 개시하거나 모바일 디바이스(900)의 다양한 측면들을 관리하도록 동작가능한 홈 스크린(906)(예를 들어, IOS™ 상의 스프링보드)을 디스플레이한다. 일부 실시예에서, 홈 스크린(906)은 배터리 수명, 연결성, 또는 다른 하드웨어 상태와 같은 상태 정보를 제공한다. 사용자(902)는 각각의 사용자 인터페이스 구성요소에 의해 점유되는 영역을 터치함으로써 사용자 인터페이스 구성요소를 활성화시킬 수 있다. 이 방식으로, 사용자(902)는 애플리케이션과 인터랙팅한다. 예를 들어, 홈 스크린(906)에 포함되는 특정 아이콘에 의해 점유되는 영역을 터치하는 것은 특정 아이콘에 대응하는 애플리케이션의 개시를 가능하게 한다.
많은 다양한 애플리케이션("앱"으로서 또한 지칭됨)은 기본 애플리케이션(예를 들어, 오브젝티브 C(Objective-C), 스위프트(Swift), 또는 IOS™ 상에서 구동하는 다른 적합한 언어로 프로그래밍된 애플리케이션 또는 안드로이드™ 상에서 구동하는 자바로 프로그래밍된 애플리케이션), 모바일 웹 애플리케이션(예를 들어, 하이퍼텍스트 마크업 언어-5(HTML 5)로 기록된 애플리케이션)), 또는 하이브리드 애플리케이션(예를 들어, HTML5 세션을 개시하는 기본 쉘 애플리케이션)과 같이 모바일 디바이스(900) 상에서 실행될 수 있다. 예를 들어, 모바일 디바이스(900)는 메시징 앱(920), 오디오 기록 앱(922), 카메라 앱(924), 북 리더 앱(926), 미디어 앱(928), 피트니스 앱(930), 파일 관리 앱(932), 위치 앱(934), 브라우저 앱(936), 설정 앱(938), 연락처 앱(940), 전화 통화 앱(942), 또는 다른 앱(예를 들어, 게이밍 앱, 소셜 네트워킹 앱, 생체인식 모니터링 앱)을 포함한다. 다른 예시에서, 모바일 디바이스(900)는 일부 실시예와 일관되게 제 3 자 앱(944)을 포함하여, 본원에서 설명된 실시예들의 측면들을 통합한다.
도 10은 상술한 하나 이상의 디바이스들 상에 설치될 수 있는, 소프트웨어(1002)의 아키텍쳐를 도시하는 블록도(1000)이다. 도 10은 단지 소프트웨어 아키텍쳐의 비제한적인 예시이고, 많은 다른 아키텍쳐는 본원에서 설명된 기능을 제공하도록 구현될 수 있음을 이해할 수 있다. 다양한 실시예에서, 소프트웨어 아키텍쳐(1002)는 프로세서(1110), 메모리(1130), 및 I/O 컴포넌트(1150)를 포함하는 도 11의 머신(1100)과 같은 하드웨어에 의해 구현된다. 이 예시의 아키텍쳐에서, 소프트웨어 아키텍쳐(1002)는 각각의 레이어가 특정 기능을 제공할 수 있는 레이어의 스택으로서 개념화될 수 있다. 예를 들어, 소프트웨어 아키텍쳐(1002)는 운영 시스템(1004), 라이브러리(1006), 프레임워크(1008), 및 애플리케이션(1010)과 같은 레이어를 포함한다. 동작 중에, 일부 실시예와 일관되게, 애플리케이션(1010)은 소프트웨어 스택을 통해 애플리케이션 프로그래밍 인터페이스(API) 콜(1012)을 호출하고 API 콜(1012)에 응답하여 메시지(1014)를 수신한다.
다양한 구현예에서, 운영 시스템(1004)은 하드웨어 리소스를 관리하고 공통 서비스를 제공한다. 운영 시스템(1004)은, 예를 들어, 커넬(1020), 서비스(1022), 및 드라이버(1024)를 포함한다. 커넬(1020)은 일부 실시예와 일관되게 하드웨어와 다른 소프트웨어 레이어 사이의 추상 레이어로서 동작한다. 예를 들어, 커넬(1020)은 메모리 관리, 프로세서 관리(예를 들어, 스케쥴링), 컴포넌트 관리, 네트워킹, 및 보안 설정 등의 기능을 제공한다. 서비스(1022)는 다른 소프트웨어 레이어에 대해 다른 공통 서비스를 제공할 수 있다. 일부 실시예에 따라, 드라이버(1024)는 기초 하드웨어를 제어하거나 인터페이싱하기 위한 책임이 있다. 예를 들어, 드라이버(1024)는 디스플레이 드라이버, 카메라 드라이버, 블루투스® 드라이버, 플래쉬 메모리 드라이버, 직렬 통신 드라이버(예를 들어, 범용 직렬 버스(USB) 드라이버), 와이파이® 드라이버, 오디오 드라이버, 전력 관리 드라이버 등을 포함할 수 있다.
일부 실시예에서, 라이브러리(1006)는 애플리케이션(1010)에 의해 활용되는 하위 레벨 공통 인프라스트럭쳐를 제공한다. 라이브러리(1006)는 메모리 할당 기능, 문자열 조작 기능, 수학 기능 등과 같은 기능을 제공할 수 있는 시스템 라이브러리(1030)(예를 들어, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리(1006)는 미디어 라이브러리(예를 들어, 사진 전문가 그룹-4(MPEG4), 고급 비디오 코딩(H.264 또는 AVC), 사진 전문가 그룹 레이어-3(MP3), 고급 오디오 코딩(AAC), 적응형 멀티 레이트(AMR) 오디오 코덱, 공동 사진 전문가 그룹(JPEG 또는 JPG) 또는 이동식 네트워크 그래픽(PNG)과 같은 다양한 미디어 형식의 프리젠테이션 및 조작을 지원하는 라이브러리), 그래픽 라이브러리(예를 들어, 디스플레이 상의 그래픽 컨텐츠에 2차원(2D)과 3차원(3D)으로 렌더링하는 데 사용되는 OpenGL 프레임워크), 데이터베이스 라이브러리(예를 들어, 다양한 관계형 데이터베이스 기능을 제공하는 SQLite), 웹 라이브러리(예를 들어, 웹 브라우징 기능을 제공하는 WebKit) 등과 같은 API 라이브러리를 포함할 수 있다. 라이브러리(1006)는 애플리케이션(1010)으로 다른 많은 API를 제공하는 다양한 다른 라이브러리(1034)를 포함할 수 있다.
일부 실시예에 따라, 프레임워크(1008)는 애플리케이션(1010)에 의해 활용될 수 있는 상위 레벨 공통 인프라스트럭쳐를 제공한다. 예를 들어, 프레임워크(1008)는 다양한 그래픽 사용자 인터페이스(GUI) 기능, 상위 레벨 리소스 관리, 상위 레벨 위치 서비스 등을 제공한다. 프레임워크(1008)는 애플리케이션(1010)에 의해 활용될 수 있는 광범위한 스펙트럼의 다른 API를 제공할 수 있고, 이들 중 일부는 특정 운영 시스템 또는 플랫폼에 특정될 수 있다.
일례의 실시예에서, 애플리케이션(1010)은 홈 애플리케이션(1050), 연락처 애플리케이션(1052), 브라우저 애플리케이션(1054), 북 리더 애플리케이션(1056), 위치 애플리케이션(1058), 미디어 애플리케이션(1060), 메시징 애플리케이션(1062), 게임 애플리케이션(1064), 및 제 3 자 애플리케이션(1066)과 같이 광범위하게 종합한 다른 애플리케이션을 포함한다. 일부 실시예에 따르면, 애플리케이션(1010)은 프로그램에서 정의된 기능을 실행하는 프로그램이다. 다양한 프로그래밍 언어는 객체 지향 프로그래밍 언어(예를 들어, 오브젝티브 C, 자바, 또는 C++) 또는 절차적 프로그래밍 언어(예를 들어, C 또는 어셈블리 언어)와 같은, 다양한 방식으로 구조화되는, 하나 이상의 애플리케이션(1010)을 생성하는데 활용될 수 있다. 특정 예시에서, 제 3 자 애플리케이션(1066)(예를 들어, 특정 플랫폼의 공급자 이외의 개체에 의해 안드로이드™ 또는 IOS™ 소프트웨어 개발 키트(SDK)를 사용하여 개발되는 애플리케이션)은 IOS™, 안드로이드™, 윈도우®폰, 또는 다른 모바일 운영 시스템과 같은 모바일 운영 시스템 상에서 구동하는 모바일 소프트웨어가 될 수 있다. 이 예시에서, 제 3 자 애플리케이션(1066)은 운영 시스템(1004)에 의해 제공되는 API 콜(1012)을 호출하여 본원에서 설명된 기능을 제공할 수 있다.
도 11은 일부 실시예에 따라, 머신 판독가능 매체(예를 들어, 머신 판독가능 저장 매체)로부터 명령어를 판독하고 본원에서 논의된 방법론 중 어느 하나 이상을 수행하는 것이 가능한 머신(1100)의 컴포넌트를 도시하는 블록도이다. 특히, 도 11은 예시의 형태의 컴퓨터 시스템에서 머신(1100)의 개략적인 표현을 도시하고, 내부에서 머신으로 하여금 본원에서 논의된 방법론 중 어느 하나 이상을 수행하게 하는 명령어(1116)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱, 또는 다른 실행가능한 코드)가 실행될 수 있다. 대안의 실시예에서, 머신(1100)은 스탠드얼론 디바이스로서 동작하거나 다른 머신에 연결(네트워킹)될 수 있다. 네트워킹된 배치에서, 머신(1100)은 서버 클라이언트 네트워크 환경의 클라이언트 머신 또는 서버 머신, 또는 피어 투 피어(peer-to-peer)(또는 분산) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신(1100)은 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(PC), 태블릿 컴퓨터, 랩탑 컴퓨터, 넷북, 셋탑 박스(STB), 개인용 디지털 보조장치(PDA), 엔터테인먼트 미디어 시스템, 셀룰러 전화, 스마트 폰, 모바일 디바이스, 착용가능한 디바이스(예를 들어, 스마트 시계), 스마트 홈 디바이스(예를 들어, 스마트 어플라이언스), 다른 스마트 디바이스, 웹 어플라이언스, 네트워크 라우터, 네트워크 스위치, 네트워크 브릿지, 또는 순차적으로 또는 머신(1100)에 의해 취해질 액션을 특정하는, 명령어(1116)를 실행하는 것이 가능한 임의의 머신을 포함할 수 있지만, 이에 제한되지 않는다. 또한, 오직 단일 머신(1100)이 도시되었지만, 용어 "머신"은 또한 본원에서 논의된 방법론 중 어느 하나 이상을 수행하도록 명령어(1116)를 개별적으로 또는 공동으로 실행하는 머신(1100)의 집합을 포함하도록 취해질 수 있다.
다양한 실시예에서, 머신(1100)은 버스(1102)를 통해 서로 통신하도록 구성될 수 있는 프로세서(1110), 메모리(1130), 및 I/O 컴포넌트(1150)를 포함한다. 일례의 실시예에서, 프로세서(1110)(예를 들어, 중앙 처리 유닛(CPU), 축소 명령어 세트 컴퓨팅(RISC) 프로세서, 복합 명령어 세트 컴퓨팅(CISC) 프로세서, 그래픽 처리 유닛(GPU), 디지털 신호 프로세서(DSP), 애플리케이션 특정 집적 회로(ASIC), 무선 주파수 집적 회로(RFIC), 다른 프로세서, 또는 이들의 임의의 적합한 조합)는, 예를 들어, 명령어(1116)를 실행할 수 있는 프로세서(1112) 및 프로세서(1114)를 포함한다. 용어 "프로세서"는 명령어를 동시에 실행할 수 있는 둘 이상의 독립적인 프로세서("코어"로서 또한 지칭됨)를 포함할 수 있는 멀티코어 프로세서를 포함하는 것이다. 도 11은 다중 프로세서를 도시하였지만, 머신(1100)은 단일 코어를 갖는 단일 프로세서, 다중 코어를 갖는 단일 프로세서(예를 들어, 다중 코어 프로세서), 단일 코어를 갖는 다중 프로세서, 다중 코어를 갖는 다중 프로세서, 또는 이들의 임의의 조합을 포함할 수 있다.
일부 실시예에 따르면, 메모리(1130)는 주 메모리(11320), 정적 메모리(1134), 및 버스(1102)를 통해 프로세서(1110)에 액세스가능한 저장 유닛(1136)을 포함한다. 저장 유닛(1136)은 본원에서 설명된 방법론 또는 기능들 중 어느 하나 이상을 구현하는 명령어(1116)가 저장된 머신 판독가능 매체(1138)를 포함할 수 있다. 명령어(1116)는 또한 머신(1100)에 의한 이들의 실행 동안, 주 메모리(1132) 내에, 정적 메모리(1134) 내에, 적어도 하나의 프로세서(1110) 내에(예를 들어, 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적합한 조합 내에서 완전하게 또는 적어도 부분적으로 존재할 수 있다. 따라서, 다양한 실시예에서, 주 메모리(1132), 정적 메모리(1134), 및 프로세서(1110)는 머신 판독가능 매체(1138)로 고려된다.
본원에서 사용된 것과 같이, 용어 "메모리"는 데이터를 임시로 또는 영구적으로 저장하는 것이 가능한 머신 판독가능한 매체(1138)를 지칭하고 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 버퍼 메모리, 플래쉬 메모리, 및 캐시 메모리를 포함하도록 취해질 수 있지만 이에 제한되지 않는다. 머신 판독가능 매체(1138)는 일례의 실시예에서 단일 매체가 되도록 도시되었지만, 용어 "머신 판독가능 매체"는 명령어(1116)를 저장하는 것이 가능한 단일 매체 또는 다수의 매체(예를 들어, 중앙집중형 또는 분산된 데이터베이스, 또는 연관된 캐시 및 서버)를 포함하도록 취해질 수 있다. 용어 "머신 판독가능 매체"는 또한 임의의 매체, 또는 다수의 매체의 조합을 포함하도록 취해질 수 있고, 머신(예를 들어, 머신(1100))에 의한 실행을 위해 명령어(예를 들어, 명령어(1116))를 저장하는 것이 가능하여, 명령어는, 머신(1100)(예를 들어, 프로세서(1110)) 중 하나 이상의 프로세서에 의해 실행될 때, 머신(1100)으로 하여금 본원에서 설명된 방법론 중 어느 하나 이상을 수행하게 한다. 따라서, "머신 판독가능 매체"는 단일 저장 장치 또는 디바이스 뿐만 아니라 다수의 저장 장치 또는 디바이스를 포함하는 "클라우드 기반" 저장 시스템 또는 저장 네트워크를 지칭한다. 따라서 용어 "머신 판독가능 매체"는 솔리드 스테이트 메모리(예를 들어, 플래쉬 메모리), 광학 매체, 자기 매체, 다른 비휘발성 메모리(예를 들어, 삭제가능한 프로그래밍가능한 판독 전용 메모리(EPROM)), 또는 이들의 임의의 적합한 조합의 형태로 하나 이상의 데이터 리포지토리를 포함하도록 취해질 수 있지만, 이에 제한되지 않는다. 용어 "머신 판독가능 매체"는 특히 법으로 명시되지 않은 신호 자체는 제외한다.
I/O 컴포넌트(1150)는 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 전송하고, 정보를 교환하고, 측정치를 캡쳐하는 등의 다양한 컴포넌트를 포함한다. 일반적으로, I/O 컴포넌트(1150)는 도 11에 도시되지 않은 많은 다른 컴포넌트를 포함할 수 있다는 것을 이해할 수 있다. I/O 컴포넌트(1150)는 다음의 논의를 단순화하기 위해 단지 기능에 따라 그룹화되고, 그룹은 결코 제한하는 것이 아니다. 다양한 예시의 실시예에서, I/O 컴포넌트(1150)는 출력 컴포넌트(1152) 및 입력 컴포넌트(1154)를 포함한다. 출력 컴포넌트(1152)는 시각 컴포넌트(예를 들어, 플라즈마 디스플레이 패널(PDP), 발광 다이오드(LED) 디스플레이, 액정 디스플레이(LCD), 프로젝터, 또는 음극선관(CRT)), 음향 컴포넌트(예를 들어, 스피커), 햅틱 컴포넌트(예를 들어, 진동 모터), 다른 신호 생성기 등을 포함한다. 입력 컴포넌트(1154)는 영숫자 입력 컴포넌트(예를 들어, 키보드, 영숫자 입력을 수신하도록 구성된 터치 스크린, 광전 키보드, 또는 다른 영숫자 입력 컴포넌트), 포인트 기반 입력 컴포넌트(예를 들어, 마우스, 터치패드, 트랙볼, 조이스틱, 움직임 센서, 또는 다른 포인팅 기구), 촉각 입력 컴포넌트(예를 들어, 물리적 버튼, 터치 또는 터치 제스쳐의 위치 및 힘을 제공하는 터치 스크린, 또는 다른 촉각 입력 컴포넌트), 오디오 입력 컴포넌트(예를 들어, 마이크로폰) 등을 포함한다.
일부 추가 예시의 실시예에서, I/O 컴포넌트(1150)는 다양한 다른 컴포넌트 드 중에서, 생체인식 컴포넌트(1156), 움직임 컴포넌트(1158), 환경 컴포넌트(1160), 또는 위치 컴포넌트(1162)를 포함한다. 예를 들어, 생체인식 컴포넌트(1156)는 표현(예를 들어, 손 표현, 얼굴 표현, 목소리 표현, 신체 제스쳐, 또는 안구 추적)을 검출하고, 생체신호(예를 들어, 혈압, 심박수, 체온, 땀, 또는 뇌파)를 측정하고, 사람을 인식(예를 들어, 음성 인식, 망막 인식, 안면 인식, 지문 인식, 또는 인식에 기초한 뇌전도)하는 등의 컴포넌트를 포함한다. 움직임 컴포넌트(1158)는 가속 센서 컴포넌트(예를 들어, 가속도계), 중력 센서 컴포넌트, 회전 센서 컴포넌트(예를 들어, 자이로스코프) 등을 포함한다. 환경 컴포넌트(1160)는, 예를 들어, 조도 센서 컴포넌트(예를 들어, 광도계), 온도 센서 컴포넌트(예를 들어, 주변 온도를 검출하는 하나 이상의 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(예를 들어, 바로미터), 음향 센서 컴포넌트(예를 들어, 배경 잡음을 검출하는 하나 이상의 마이크로폰), 근접 센서 컴포넌트(예를 들어, 근처 객체를 검출하는 적외선 센서), 가스 센서 컴포넌트(예를 들어, 머신 후각 검출 센서, 안전을 위해 위험한 가스의 농도를 검출하거나 대기에서 오염물질을 측정하는 가스 검출 센서), 또는 주변 물리적 환경에 대응하는 표시, 측정치, 또는 신호를 제공할 수 있는 다른 컴포넌트를 포함한다. 위치 컴포넌트(1162)는 장소 센서 컴포넌트(예를 들어, 글로벌 포지셔닝 시스템(GPS) 수신기 컴포넌트), 고도 센서 컴포넌트(예를 들어, 고도가 도출될 수 있는 압력을 검출하는 고도계 또는 바로미터), 방향 센서 컴포넌트(예를 들어, 자기계) 등을 포함한다.
통신은 다양한 기술을 사용하여 구현될 수 있다. I/O 컴포넌트(1150)는 머신(1100)을 네트워크(1180)에 연결하거나 커플링(1182) 및 커플링(1172) 각각을 통해 디바이스(1170)를 연결하도록 동작가능한 통신 컴포넌트(1164)를 포함할 수 있다. 예를 들어, 통신 컴포넌트(1164)는 네트워크 인터페이스 컴포넌트 또는 네트워크(1180)와 인터페이스하는 다른 적합한 디바이스를 포함한다. 추가 예시에서, 통신 컴포넌트(1164)는 유선 통신 컴포넌트, 무선 통신 컴포넌트, 셀룰러 통신 컴포넌트, 근거리 통신(NFC) 컴포넌트, 블루투스® 컴포넌트,(예를 들어, 저 에너지 블루투스®), 와이파이® 컴포넌트, 및 다른 모달리티를 통해 통신을 제공하는 다른 통신 컴포넌트를 포함한다. 디바이스(1170)는 다른 머신 또는 임의의 다양한 주변 디바이스(예를 들어, 범용 직렬 버스(USB)를 통해 연결되는 주변 디바이스)가 될 수 있다.
또한, 일부 실시예에서, 통신 컴포넌트(1164)는 식별자를 검출하거나 식별자를 검출하도록 동작가능한 컴포넌트를 포함한다. 예를 들어, 통신 컴포넌트(1164)는 무선 주파수 식별(RFID) 태그 판독기 컴포넌트, NFC 스마트 태그 검출 컴포넌트, 광학 판독기 컴포넌트(예를 들어, 범용 제품 코드(UPC) 바코드와 같은 일차원 바코드, 빠른 응답(QR) 코드, 아즈텍 코드, 데이터 매트릭스, Dataglyph, MaxiCode, PDF417, 울트라 코드, UCC RSS(Uniform Commercial Code Reduced Space Symbology)-2D 바코드 및 다른 광학 코드와 같은 다차원 바코드를 검출하는 광학 센서), 음향 감지 컴포넌트 (예를 들어, 태그된 오디오 신호를 식별하는 마이크로폰), 또는 이들의 임의의 적절한 조합을 포함한다. 또한, 특정 위치를 나타낼 수 있는 인터넷 프로토콜(IP) 지리위치를 통한 위치, 와이파이® 신호 삼각측량을 통한 위치, 블루투스® 또는 NFC 비콘 신호를 검출하는 것을 통한 위치와 같이, 다양한 정보가 통신 컴포넌트(1164)를 통해 도출될 수 있다.
다양한 예시의 실시예에서, 네트워크(1180)의 하나 이상의 부분은 애드혹 네트워크, 인트라넷, 익스트라넷, 가상 개인용 네트워크(VPN), 로컬 영역 네트워크(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 도심 영역 네트워크(MAN), 인터넷, 인터넷의 일부, 공용 스위치 전화 네트워크(PSTN)의 일부, 일반 전화 서비스(POTS) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, 와이파이® 네트워크, 다른 타입의 네트워크, 또는 둘 이상의 이러한 네트워크의 조합이 될 수 있다. 예를 들어, 네트워크(1180) 또는 네트워크(1180)의 일부는 무선 또는 셀룰러 네트워크를 포함할 수 있고, 커플링(1182)은 코드 분할 다중 액세스(CDMA) 접속, 이동통신(GSM) 접속, 또는 다른 타입의 셀룰러 또는 무선 커플링이 될 수 있다. 이 예시에서, 커플링(1182)은 단일 캐리어 무선 전송 기술(lxRTT), 진화 데이터 최적화(EVDO) 기술, 일반 패킷 무선 서비스(GPRS) 기술, GSM 진화를 위한 향상된 데이터 레이트(EDGE) 기술, 3G를 포함하는 3세대 파트너쉽 프로젝트(3GPP), 4세대 무선(4G) 네트워크, 범용 모바일 통신 시스템(UMTS), 고속 패킷 액세스(HSPA), 와이맥스(WiMAX), 롱텀 에볼루션(LTE) 표준, 다양한 표준 설정 기관들, 다른 장거리 프로토콜, 또는 다른 데이터 전달 기술에 의해 정의된 다른 것들과 같은, 임의의 다양한 타입의 데이터 전달 기술을 구현할 수 있다.
예시의 실시예에서, 명령어(1116)는 네트워크 인터페이스 디바이스(예를 들어, 통신 컴포넌트(1164)에 포함되는 네트워크 인터페이스 컴포넌트)를 통해 전송 매체를 사용하여 그리고 다수의 잘 알려진 전달 프로토콜(예를 들어, 하이퍼텍스트 전달 프로토콜(HTTP)) 중 어느 하나를 활용하여 네트워크(1180)를 통해 전송되거나 수신된다. 유사하게, 다른 예시의 실시예에서, 명령어(1116)는 커플링(1172)(예를 들어, 피어 투 피어 커플링)을 통해 전송 매체를 사용하여 디바이스(1170)로 전송되거나 수신된다. 용어 "전송 매체"는 머신(1100)에 의한 실행을 위해 명령어(1116)을 저장, 인코딩하거나 보유하는 임의의 무형의 매체를 포함하도록 취해질 수 있고, 이러한 소프트웨어의 통신을 제공하는 디지털 또는 아날로그 통신 신호 또는 다른 무형의 매체를 포함한다.
또한, 머신 판독가능 매체(1138)는 전파 신호를 구현하지 않는다는 점에서, 비일시적(즉, 임의의 일시적인 신호를 갖지 않음)이다. 그러나, 머신 판독가능 매체(1138)를 "비일시적"으로 표시하는 것은 매체가 이동이 불가능하다는 것을 의미한다고 해석되어서는 안되고, 매체가 하나의 물리적 위치로부터 다른 위치로 운반가능한 것으로 고려되어야한다. 추가로, 머신 판독가능 매체(1138)는 유형이기 때문에, 매체는 머신 판독가능 디바이스로서 고려될 수 있다.
본 명세서 전반에서, 복수의 인스턴스는 하나의 인스턴스로서 설명된 컴포넌트, 동작, 또는 구조를 구현할 수 있다. 하나 이상의 방법의 개별 동작이 분리된 동작으로서 도시되고 설명되었지만, 하나 이상의 개별 동작은 동시에 수행될 수 있고, 동작이 도시된 순서로 수행될 필요가 없다. 예시의 구성에서 분리된 컴포넌트로서 제시된 구조 및 기능은 통합된 구조 또는 컴포넌트로서 구현될 수 있다. 유사하게, 단일 컴포넌트로서 제시된 구조 및 기능은 분리된 컴포넌트로서 구현될 수 있다. 다양한 변형, 수정, 추가 및 향상은 본원의 청구 대상의 범위 내에 속한다.
본 발명의 청구 대상의 개요가 특정 예시의 실시예와 관련하여 설명되었지만, 다양한 수정 및 변경이 본 개시의 실시예의 폭넓은 범위로부터 벗어남이 없이 이들 실시예에 수행될 수 있다. 본 발명의 청구 대상의 이러한 실시예들은 본원에서 단지 편의상 개별적으로 또는 집합적으로, "발명"이란 용어로 지칭될 수 있지만, 본 출원의 범위를 어느 하나의 개시 또는 발명의 개념으로 (사실은 하나 이상이 개시되어 있지만) 자발적으로 제한해서는 안된다.
본원에 도시된 실시예는 당업자로 하여금 개시된 교시를 실시하는 것을 가능하게 하도록 충분히 자세하게 설명된다. 다른 실시예는 이들로부터 사용되고 도출되어서, 구조적 및 논리적 교체 및 변경이 이 개시의 범위로부터 벗어남이 없이 수행될 수 있다. 따라서, 상세한 설명은 제한하는 의미로서 취해지는 것이 아니고, 다양한 실시예의 범위는 첨부된 청구항이 권리를 갖는 등가물의 전체 범위와 함께, 첨부된 청구항에 의해서만 정의된다.
본원에서 사용된 것과 같이, 용어 "또는"은 배타적 또는 비배타적 의미로 해석될 수 있다. 또한, 복수의 인스턴스는 본원에서 단일 인스턴스로서 설명된 리소스, 동작, 또는 구조에 대해 제공될 수 있다. 추가적으로, 다양한 리소스, 동작, 모듈, 엔진 및 데이터 저장소 사이의 경계는 어느 정도 임의적이고, 특정 동작은 특정한 구체적인 구성의 문맥에서 설명된다. 다른 기능의 할당이 구상되고 본 개시의 다양한 실시예의 범위 내에 속할 수 있다. 일반적으로, 예시의 구성에서 분리된 리소스로서 제시된 구조 및 기능은 통합된 구조 또는 리소스로서 구현될 수 있다. 유사하게, 단일 리소스로서 제시된 구조 및 기능은 분리된 리소스로서 구현될 수 있다. 다양한 변형, 수정, 추가, 및 향상은 첨부된 청구항에 의해 제시되는 것과 같은 본 개시의 실시예의 범위 내에 속한다. 따라서, 명세서 및 도면은 제한적인 의미보다는 예시적인 의미로서 고려된다.

Claims (21)

  1. 사용자 디바이스로부터, 상기 사용자 디바이스의 디바이스 속성을 나타내는 디바이스 데이터를 수신하는 통신 모듈과,
    특정 디바이스 속성을 특정하는 식별 규칙에 따라 상기 사용자 디바이스를 식별하도록 머신의 적어도 하나의 하드웨어 프로세서에 의해 구현되는 식별 모듈과,
    상기 사용자 디바이스로부터, 상기 사용자 디바이스 상에 설치된 특정 애플리케이션이 상기 사용자 디바이스 상에서 오픈된 마지막 시간을 나타내는 클라이언트 상태를 수신하고, 상기 특정 애플리케이션이 오픈된 상기 마지막 시간으로부터 경과된 시간이 임계 시간 양보다 큰 지를 판정하는 상태 모듈과,
    상기 경과된 시간이 상기 임계 시간 양보다 크다는 판정에 기초하여, 상기 사용자 디바이스에서 수행될 태스크와 연관된 제 1 명령어를 생성하고, 상기 사용자 디바이스로 상기 제 1 명령어를 전달하는 명령어 모듈―상기 제 1 명령어는 상기 사용자 디바이스 상에 저장된 상기 클라이언트 상태를 변화시키기 위해 상기 사용자 디바이스 상에서 완료될 프로세스 플로우를 포함함―을 포함하고,
    상기 상태 모듈은, 상기 프로세스 플로우가 완료되지 않았음을 판정하고,
    상기 명령어 모듈은, 상기 프로세스 플로우가 완료되지 않았다는 판정에 응답하여, 상기 사용자 디바이스가 상기 프로세스 플로우를 완료할 때까지 상기 사용자 디바이스가 상기 특정 애플리케이션의 기능을 중단하도록 하는 제 2 명령어를 생성하여 전달하는
    시스템.
  2. 제 1 항에 있어서,
    상기 디바이스 속성은 디바이스 유형, 디바이스 식별자, 소프트웨어 버전, 또는 로케일(locale) 중 적어도 하나를 포함하는
    시스템.
  3. 제 1 항에 있어서,
    상기 사용자 디바이스는 상기 사용자 디바이스 상에 설치된 관리 SDK에 따라 상기 제 1 명령어를 수행하는
    시스템.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 제 1 명령어는 상기 사용자 디바이스 상의 상기 특정 애플리케이션의 피쳐(feature)로의 액세스를 변경하는
    시스템.
  6. 제 1 항에 있어서,
    상기 프로세스 플로우는 패스워드 리셋 플로우, 로그아웃 플로우, 또는 보안 변경 플로우 중 적어도 하나를 포함하는
    시스템.
  7. 컴퓨터로 구현된 방법으로서,
    사용자 디바이스로부터, 상기 사용자 디바이스의 디바이스 속성을 나타내는 디바이스 데이터를 수신하는 단계와,
    특정 디바이스 속성을 특정하는 식별 규칙에 따라 상기 사용자 디바이스를 식별하는 단계와,
    상기 사용자 디바이스로부터, 상기 사용자 디바이스 상에 설치된 특정 애플리케이션이 상기 사용자 디바이스 상에서 오픈된 마지막 시간을 나타내는 클라이언트 상태를 수신하는 단계와,
    상기 특정 애플리케이션이 오픈된 상기 마지막 시간으로부터 경과된 시간이 임계 시간 양보다 큰 지를 판정하는 단계와,
    상기 경과된 시간이 상기 임계 시간 양보다 크다는 판정에 기초하여, 상기 사용자 디바이스에서 수행될 태스크와 연관된 제 1 명령어를 생성하는 단계와,
    상기 사용자 디바이스로 상기 제 1 명령어를 전달하는 단계―상기 제 1 명령어는 상기 사용자 디바이스 상에 저장된 상기 클라이언트 상태를 변화시키기 위해 상기 사용자 디바이스 상에서 완료될 프로세스 플로우를 포함함―와,
    상기 프로세스 플로우가 완료되지 않았음을 판정하는 단계와,
    상기 프로세스 플로우가 완료되지 않았다는 판정에 응답하여, 상기 사용자 디바이스가 상기 프로세스 플로우를 완료할 때까지 상기 사용자 디바이스가 상기 특정 애플리케이션의 기능을 중단하도록 하는 제 2 명령어를 생성하여 전달하는 단계를 포함하는
    컴퓨터로 구현된 방법.
  8. 제 7 항에 있어서,
    상기 디바이스 속성은 디바이스 유형, 디바이스 식별자, 소프트웨어 버전, 또는 로케일 중 적어도 하나를 포함하는
    컴퓨터로 구현된 방법.
  9. 제 7 항에 있어서,
    상기 사용자 디바이스는 상기 사용자 디바이스 상에 설치된 관리 SDK에 따라 상기 제 1 명령어를 수행하는
    컴퓨터로 구현된 방법.
  10. 삭제
  11. 제 7 항에 있어서,
    상기 제 1 명령어는 상기 사용자 디바이스 상의 상기 특정 애플리케이션의 피쳐로의 액세스를 변경하는
    컴퓨터로 구현된 방법.
  12. 제 7 항에 있어서,
    상기 프로세스 플로우는 패스워드 리셋 플로우, 로그아웃 플로우, 또는 보안 변경 플로우 중 적어도 하나를 포함하는
    컴퓨터로 구현된 방법.
  13. 제 7 항에 있어서,
    상기 클라이언트 상태에 기초하여, 상기 사용자 디바이스가 소정 기간 동안 상기 태스크를 수행하지 않았음을 판정하는 단계와,
    상기 사용자 디바이스에 의해 사전에 수행되지 않은 태스크를 포함하도록 상기 제 2 명령어를 생성하는 단계를 더 포함하는
    컴퓨터로 구현된 방법.
  14. 명령어를 보유한 머신 판독가능 매체로서,
    상기 명령어는, 머신의 적어도 하나의 프로세서에 의해 실행될 때, 상기 머신으로 하여금,
    사용자 디바이스로부터, 상기 사용자 디바이스의 디바이스 속성을 나타내는 디바이스 데이터를 수신하는 것과,
    특정 디바이스 속성을 특정하는 식별 규칙에 따라 상기 사용자 디바이스를 식별하는 것과,
    상기 사용자 디바이스로부터, 상기 사용자 디바이스 상에 설치된 특정 애플리케이션이 상기 사용자 디바이스 상에서 오픈된 마지막 시간을 나타내는 클라이언트 상태를 수신하는 것과,
    상기 특정 애플리케이션이 오픈된 상기 마지막 시간으로부터 경과된 시간이 임계 시간 양보다 큰 지를 판정하는 것과,
    상기 경과된 시간이 상기 임계 시간 양보다 크다는 판정에 기초하여, 상기 사용자 디바이스에서 수행될 태스크와 연관된 제 1 명령어를 생성하는 것과,
    상기 사용자 디바이스로 상기 제 1 명령어를 전달하는 것―상기 제 1 명령어는 상기 사용자 디바이스 상에 저장된 상기 클라이언트 상태를 변화시키기 위해 상기 사용자 디바이스 상에서 완료될 프로세스 플로우를 포함함―과,
    상기 프로세스 플로우가 완료되지 않았음을 판정하는 것과,
    상기 프로세스 플로우가 완료되지 않았다는 판정에 응답하여, 상기 사용자 디바이스가 상기 프로세스 플로우를 완료할 때까지 상기 사용자 디바이스가 상기 특정 애플리케이션의 기능을 중단하도록 하는 제 2 명령어를 생성하여 전달하는 것을 포함하는 동작을 수행하게 하는
    머신 판독가능 매체.
  15. 제 14 항에 있어서,
    상기 디바이스 속성은 디바이스 유형, 디바이스 식별자, 소프트웨어 버전, 또는 로케일 중 적어도 하나를 포함하는
    머신 판독가능 매체.
  16. 제 14 항에 있어서,
    상기 사용자 디바이스는 상기 사용자 디바이스 상에 설치된 관리 SDK에 따라 상기 제 1 명령어를 수행하는
    머신 판독가능 매체.
  17. 삭제
  18. 제 14 항에 있어서,
    상기 제 1 명령어는 상기 사용자 디바이스 상의 상기 특정 애플리케이션의 피쳐로의 액세스를 변경하는
    머신 판독가능 매체.
  19. 제 14 항에 있어서,
    상기 프로세스 플로우는 패스워드 리셋 플로우, 로그아웃 플로우, 또는 보안 변경 플로우 중 적어도 하나를 포함하는
    머신 판독가능 매체.
  20. 제 14 항에 있어서,
    상기 동작은,
    상기 클라이언트 상태에 기초하여, 상기 사용자 디바이스가 소정 기간 동안 상기 태스크를 수행하지 않았음을 판정하는 것과,
    상기 사용자 디바이스에 의해 사전에 수행되지 않은 태스크를 포함하도록 상기 제 2 명령어를 생성하는 것을 더 포함하는
    머신 판독가능 매체.
  21. 컴퓨터의 적어도 하나의 프로세서에 의해 수행될 때, 상기 컴퓨터로 하여금 청구항 제 7 항 내지 제 9 항 및 제 11 항 내지 제 13 항 중 어느 한 항의 방법을 수행하게 하는 명령어를 보유하는 머신 판독가능 매체.
KR1020177017398A 2014-11-26 2015-11-25 중앙집중형 클라이언트 애플리케이션 관리 KR102090372B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462085136P 2014-11-26 2014-11-26
US62/085,136 2014-11-26
US14/950,012 2015-11-24
US14/950,012 US10649756B2 (en) 2014-11-26 2015-11-24 Centralized client application management
PCT/US2015/062592 WO2016086091A1 (en) 2014-11-26 2015-11-25 Centralized client application management

Publications (2)

Publication Number Publication Date
KR20170087942A KR20170087942A (ko) 2017-07-31
KR102090372B1 true KR102090372B1 (ko) 2020-03-17

Family

ID=56010267

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177017398A KR102090372B1 (ko) 2014-11-26 2015-11-25 중앙집중형 클라이언트 애플리케이션 관리

Country Status (5)

Country Link
US (3) US10649756B2 (ko)
EP (2) EP3224711A4 (ko)
KR (1) KR102090372B1 (ko)
CN (2) CN107003872B (ko)
WO (1) WO2016086091A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649756B2 (en) 2014-11-26 2020-05-12 Ebay Inc. Centralized client application management
US11037139B1 (en) 2015-03-19 2021-06-15 Wells Fargo Bank, N.A. Systems and methods for smart card mobile device authentication
US11188919B1 (en) 2015-03-27 2021-11-30 Wells Fargo Bank, N.A. Systems and methods for contactless smart card authentication
US11113688B1 (en) 2016-04-22 2021-09-07 Wells Fargo Bank, N.A. Systems and methods for mobile wallet provisioning
US10922074B2 (en) * 2017-09-28 2021-02-16 Oracle International Corporation Deferred state mutation
CN107948134B (zh) * 2017-10-30 2020-07-28 广州易行信息技术有限公司 数据交互方法和装置
US10805163B2 (en) * 2018-08-21 2020-10-13 Hewlett Packard Enterprise Development Lp Identifying device types based on behavior attributes
US11928666B1 (en) 2019-09-18 2024-03-12 Wells Fargo Bank, N.A. Systems and methods for passwordless login via a contactless card
US11099855B2 (en) * 2019-10-23 2021-08-24 American Megatrends International, Llc System and method for updating files through a peer-to-peer network
US11423392B1 (en) 2020-12-01 2022-08-23 Wells Fargo Bank, N.A. Systems and methods for information verification using a contactless card

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130167224A1 (en) * 2011-12-22 2013-06-27 International Business Machines Corporation Lock function handling for information processing devices
US20140295821A1 (en) * 2013-03-29 2014-10-02 Citrix Systems, Inc. Providing mobile device management functionalities

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129691A1 (en) * 2000-09-11 2006-06-15 Grid Data, Inc. Location aware wireless data gateway
US7509679B2 (en) * 2002-08-30 2009-03-24 Symantec Corporation Method, system and computer program product for security in a global computer network transaction
US8020192B2 (en) 2003-02-28 2011-09-13 Michael Wright Administration of protection of data accessible by a mobile device
US20050049973A1 (en) * 2003-09-02 2005-03-03 Read Mark A. Method and program for automated management of software license usage by monitoring and disabling inactive software products
US7568018B1 (en) 2004-03-19 2009-07-28 New Boundary Technologies Inc. Dynamic identification and administration of networked clients
US8418078B2 (en) * 2004-04-30 2013-04-09 Ebay Inc. Method and system to display a pop-up window when a user leaves a website
US7210166B2 (en) * 2004-10-16 2007-04-24 Lenovo (Singapore) Pte. Ltd. Method and system for secure, one-time password override during password-protected system boot
US7571489B2 (en) * 2004-10-20 2009-08-04 International Business Machines Corporation One time passcode system
CN100421389C (zh) 2005-11-10 2008-09-24 华为技术有限公司 一种设备管理中定制任务处理方法
SE0601362L (sv) * 2006-06-21 2007-12-22 Adworld Holding Ab Matchmaker
JPWO2008114491A1 (ja) * 2007-03-20 2010-07-01 株式会社Access アプリケーション更新管理機能を備えた端末、アプリケーション更新管理プログラムおよびシステム
US20090124375A1 (en) * 2007-11-09 2009-05-14 Bally Gaming, Inc. License management method
US20100024020A1 (en) * 2008-07-22 2010-01-28 Ernest Samuel Baugher Wireless mobile device with privacy groups that independently control access to resident application programs
US20100057674A1 (en) * 2008-08-27 2010-03-04 Honeywell International, Inc. Floating licenses for a real time license system
US8484646B1 (en) * 2009-01-29 2013-07-09 Intuit Inc. System and method for managing process flows within a computing device based on user behavior
US8670748B2 (en) * 2009-05-01 2014-03-11 Apple Inc. Remotely locating and commanding a mobile device
US8473958B2 (en) * 2009-05-31 2013-06-25 Red Hat Israel, Ltd. Adjusting client display devices based on settings included in a notification from remote virtual machine host prior to connection establishment
US8738934B2 (en) * 2009-08-25 2014-05-27 Keeper Security, Inc. Method and apparatus for protecting account numbers and passwords
US9188976B1 (en) * 2009-09-02 2015-11-17 Amazon Technologies, Inc. Content enabling cover for electronic book reader devices
JP5446629B2 (ja) 2009-09-09 2014-03-19 富士ゼロックス株式会社 情報処理装置、情報処理システム、画像形成装置及びプログラム
US8387118B2 (en) * 2009-12-02 2013-02-26 At&T Mobility Ii, Llc System and method for monitoring usage of a user device
US8607330B2 (en) * 2010-09-03 2013-12-10 International Business Machines Corporation Orderly change between new and old passwords
US8473577B2 (en) * 2010-10-13 2013-06-25 Google Inc. Continuous application execution between multiple devices
KR20190018038A (ko) * 2010-11-18 2019-02-20 구글 엘엘씨 메모리 상태에 대한 응답으로 애플리케이션 종료
CN102547702B (zh) * 2010-12-31 2015-04-22 中国移动通信集团安徽有限公司 用户认证方法、系统及密码处理装置
US8474013B2 (en) * 2011-03-29 2013-06-25 International Business Machines Corporation Securely managing password access to a computer system
US8898629B2 (en) 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a mobile application development and deployment platform
CN102446256A (zh) * 2011-08-24 2012-05-09 宇龙计算机通信科技(深圳)有限公司 终端和应用程序管理方法
US8959572B2 (en) * 2011-10-28 2015-02-17 Google Inc. Policy enforcement of client devices
US20130121580A1 (en) * 2011-11-11 2013-05-16 International Business Machines Corporation Analysis of service delivery processes based on interrogation of work assisted devices
JP5846577B2 (ja) * 2011-12-16 2016-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation クライアントの状態が予め定められた状態に一致するかを検出するシステム
US8739249B1 (en) 2012-03-08 2014-05-27 Google Inc. Push notifications for web applications and browser extensions
US9230089B2 (en) 2012-07-16 2016-01-05 Ebay Inc. User device security manager
US8613070B1 (en) * 2012-10-12 2013-12-17 Citrix Systems, Inc. Single sign-on access in an orchestration framework for connected devices
US9246894B2 (en) * 2012-10-30 2016-01-26 Microsoft Technology Licensing, Llc. Communicating state information to legacy clients using legacy protocols
US8595810B1 (en) 2013-01-13 2013-11-26 Mourad Ben Ayed Method for automatically updating application access security
CN104021031A (zh) * 2013-02-28 2014-09-03 富泰华工业(深圳)有限公司 应用程序管理系统及方法
US9565181B2 (en) * 2013-03-28 2017-02-07 Wendell D. Brown Method and apparatus for automated password entry
US20140297840A1 (en) * 2013-03-29 2014-10-02 Citrix Systems, Inc. Providing mobile device management functionalities
US9455886B2 (en) * 2013-03-29 2016-09-27 Citrix Systems, Inc. Providing mobile device management functionalities
CN103401731B (zh) 2013-07-31 2016-06-08 迈普通信技术股份有限公司 手工测试与自动化测试环境切换方法及系统
WO2015051142A1 (en) * 2013-10-02 2015-04-09 Assurant, Inc. Mobile computing device instructional graphical overlay
US9398450B2 (en) * 2014-01-31 2016-07-19 Surveymonkey, Inc. Mobile survey tools with added security
US9430216B2 (en) * 2014-05-11 2016-08-30 Lumension Security, Inc. Self-contained executable for predetermined software updating
US20150363774A1 (en) * 2014-06-17 2015-12-17 Scvngr, Inc. Methods and systems for permissions management with enhanced security
US10649756B2 (en) 2014-11-26 2020-05-12 Ebay Inc. Centralized client application management
CN104519066B (zh) * 2014-12-23 2017-11-28 飞天诚信科技股份有限公司 一种激活移动终端令牌的方法
US9930033B2 (en) * 2015-03-13 2018-03-27 Oath Inc. On demand passwords

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130167224A1 (en) * 2011-12-22 2013-06-27 International Business Machines Corporation Lock function handling for information processing devices
US20140295821A1 (en) * 2013-03-29 2014-10-02 Citrix Systems, Inc. Providing mobile device management functionalities

Also Published As

Publication number Publication date
WO2016086091A1 (en) 2016-06-02
KR20170087942A (ko) 2017-07-31
US10649756B2 (en) 2020-05-12
US20200285459A1 (en) 2020-09-10
CN107003872B (zh) 2020-09-01
CN111930390A (zh) 2020-11-13
US20220188094A1 (en) 2022-06-16
EP3224711A1 (en) 2017-10-04
EP4075265A1 (en) 2022-10-19
EP4075265B1 (en) 2024-07-17
US11294659B2 (en) 2022-04-05
EP3224711A4 (en) 2018-12-12
US20160147526A1 (en) 2016-05-26
CN107003872A (zh) 2017-08-01

Similar Documents

Publication Publication Date Title
KR102090372B1 (ko) 중앙집중형 클라이언트 애플리케이션 관리
US20160139662A1 (en) Controlling a visual device based on a proximity between a user and the visual device
US11671389B2 (en) Contextual mobile communication platform
US11792733B2 (en) Battery charge aware communications
US11907938B2 (en) Redirecting to a trusted device for secured data transmission
US11888799B2 (en) Adding images via MMS to a draft document
CN111125509A (zh) 语言分类系统
US20220114631A1 (en) Social network initiated listings
US11144943B2 (en) Draft completion system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant