KR101817660B1 - 액세스 매니지먼트 매커니즘을 포함하는 전자 시스템 및 전자 시스템의 동작 방법 - Google Patents

액세스 매니지먼트 매커니즘을 포함하는 전자 시스템 및 전자 시스템의 동작 방법 Download PDF

Info

Publication number
KR101817660B1
KR101817660B1 KR1020150170661A KR20150170661A KR101817660B1 KR 101817660 B1 KR101817660 B1 KR 101817660B1 KR 1020150170661 A KR1020150170661 A KR 1020150170661A KR 20150170661 A KR20150170661 A KR 20150170661A KR 101817660 B1 KR101817660 B1 KR 101817660B1
Authority
KR
South Korea
Prior art keywords
component
file
combination
folder
module
Prior art date
Application number
KR1020150170661A
Other languages
English (en)
Other versions
KR20160081789A (ko
Inventor
빈 리우
홍시아 진
나 왕
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to EP15875593.4A priority Critical patent/EP3241102B1/en
Priority to CN201580072086.1A priority patent/CN107111433B/zh
Priority to PCT/KR2015/014141 priority patent/WO2016108499A1/en
Publication of KR20160081789A publication Critical patent/KR20160081789A/ko
Application granted granted Critical
Publication of KR101817660B1 publication Critical patent/KR101817660B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2127Bluffing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

사용자 인터페이스를 동작시키는 제어부와 상기 제어부와 연결되어 서비스 타입에 대한 퍼미션(permission) 레벨을 조정하기 위한 액세스 환경설정과 연결된 어플리케이션을 표시하고, 디바이스에서의 어플리케이션의 동작을 제어하기 위해 리소스 타입에 액세스하는 서비스 타입에 대한 퍼미션 레벨을 변경하는 사용자 입력을 수신하는 사용자 인터페이스를 포함하는 전자 시스템을 개시한다.

Description

액세스 매니지먼트 매커니즘을 포함하는 전자 시스템 및 전자 시스템의 동작 방법 {Electronic System with Access Management Mechanism and Method of Operation thereof}
전자 시스템에 관한 발명이다. 구체적으로, 액세스 매니지먼트 매커니즘을 포함하는 전자 시스템에 관한 발명이다.
현대의 휴대용 디바이스 소비자들 및 산업용 전자 디바이스들, 특히 휴대 전화, 휴대용 디지털 보조 디바이스, 및 복합 디바이스 등과 같은 클라이언트 디바이스들은, 위치 기반 정보 서비스를 포함하여 현대 생활의 편리성을 지원하기 위해 높은 수준의 기능성을 제공한다. 기 존재하는 기술들에 대한 리서치 및 개발은 다양한 방향으로 진행되고 있다.
한편, 개인화 콘텐츠 서비스는 사용자들로 하여금 정보를 생성, 이동, 저장 및/또는 소비하도록 함으로써, “실제 세상”을 생산, 이동, 저장 및 소비하도록 한다. 이러한 개인화 콘텐츠 서비스의 사용은 사용자들이 원하는 물품 또는 서비스로 사용자들을 효율적으로 이동시키거나 또는 이동하도록 안내하는 역할을 수행한다.
전자 시스템 및 개인화 콘텐츠 서비스는 자동차, 노트북, 휴대용 디바이스들 및 다른 휴대용 용품들에 결합될 수 있다. 또한, 전자 시스템은 실시간으로 관련 정보(예를 들어, 광고, 엔터테인먼트, 지역 비즈니스, 또는 다른 관심 지점에 대한 정보(POI: Point of Interest))를 제공함으로써 사용자들에게 도움을 줄 수 있다.
이에 따라, 시스템 액세스를 상황에 맞게 조정하는 액세스 매니지먼트 매커니즘을 효율화하는 전자 시스템은 점점 중요한 이슈가 되고 있다. 시스템 액세스에 대한 제어가 불가능해지면, 디바이스를 사용하는 이점이 감소될 수 있다.
따라서, 액세스 매니지먼트 매커니즘을 포함하는 전자 시스템에 대한 니즈가 증가하고 있다. 산업적 경쟁이 계속 심화되고 있다는 측면에서 살펴보면, 소비자들의 기대치는 높아져가고 시장에서 의미 있는 차별성을 갖춘 제품이 사라짐에 따라, 상기 문제에 대한 해답을 찾는 것은 점점 더 중요해지고 있다. 더불어, 가격을 낮추고 제품의 효율 및 성능은 향상시키면서 상업적 경쟁을 충족시켜야 한다는 니즈가 높아짐에 다라, 상기 문제에 대한 해답을 찾을 필요성에 대한 긴급함이 요구된다. 더군다나, 오랜 시간 동안 상기 문제를 해결하기 위한 연구가 지속되어 왔으나, 이전의 연구들은 해결책을 제시하지 못하였다. 따라서, 당업자들은 오랜 시간 동안 상기 문제에 대한 해결책을 회피해왔다.
개시된 실시예는 서비스 타입에 대한 퍼미션 레벨을 조정하는 액세스 환경설정을 포함하는 어플리케이션을 표시하는 사용자 인터페이스를 동작시키고, 디바이스에서의 어플리케이션의 동작을 제어하기 위해 리소스 타입에 대한 서비스 타입의 퍼미션 레벨을 변경하는 입력을 수신함으로써, 사용자의 개인 정보에 대한 보안성을 향상시킨다.
개시된 실시예의 제 1 측면은, 사용자 인터페이스를 동작시키는 제어부; 제어부와 연결되어, 서비스 타입에 대한 퍼미션(permission) 레벨을 조정하는 액세스 환경설정과 연결된 어플리케이션을 표시하고, 디바이스에서의 어플리케이션의 동작을 제어하기 위해 리소스 타입에 액세스하는 서비스 타입의 퍼미션 레벨을 변경하는 사용자 입력을 수신하는 사용자 인터페이스를 포함하는 전자 시스템을 제공한다.
또한, 제어부는 리소스 타입에 액세스하기 위한 퍼미션 레벨에 기초하여, 대체 컴포넌트를 생성하고, 대체 노티피케이션(notification) 및 페이크(fake) 정보 중 적어도 하나를 제공하는 대체 컴포넌트를 실행하며, 사용자 인터페이스는, 디바이스에서 대체 노티피케이션, 페이크 정보, 또는 이들의 조합을 표시할 수 있다.
또한, 제어부는 어플리케이션의 패키지(package) 파일로부터 언패킹(unpacking)된 파일 디렉토리 내의 파일 폴더를 스캐닝(scanning)하여, 피처 정의에서 정의된 피처(feature)를 추출할 수 있다.
또한, 제어부는 파일 디렉토리, 파일 폴더 또는 이들의 조합을 분류하기 위해 추출된 피처를 트레이닝 데이터에 매칭하여, 피처 벡터(feature vector)를 산출할 수 있다.
또한, 제어부는 서비스 타입에 따라 파일 디렉토리, 파일 폴더 또는 이들의 조합을 분류하기 위해 피처 벡터에 기초하여 폴더 분류를 생성할 수 있다.
또한, 제어부는 서비스 타입에 따라 폴더 디렉토리, 파일 폴더 또는 이들의 조합을 그룹핑하기 위해 폴더 분류에 기초하여 컴포넌트 세트를 생성할 수 있다.
또한, 제어부는 리소스 타입에 액세스하기 위해 서드 파티 컴포넌트를 대체하는 래퍼 함수(wrapper function)를 생성할 수 있다.
또한, 제어부는 디바이스에서 표시될 외부 노티피케이션을 대체하기 위해, 대체 노티피케이션을 생성할 수 있다.
또한, 제어부는 디바이스에서 표시될 외부 노티피케이션을 페이크 정보와 결합하도록 페이크 정보를 생성할 수 있다.
또한, 제어부는 리소스 서브(sub) 타입에 액세스 하기 위해 리소스 서브 타입에 기초하여 대체 컴포넌트를 생성할 수 있다.
또한, 제어부는 디바이스에 인스톨하기 위한 기능 컴포넌트, 서드 파티(third party) 컴포넌트, 대체 컴포넌트 또는 이들의 조합을 포함하는 리패키지(repackage) 파일을 생성할 수 있다.
개시된 실시예의 제 2 측면은, 서비스 타입에 대한 퍼미션(permission) 레벨을 조정하기 위한 액세스 환경설정에 연결된 어플리케이션을 표시하는 단계; 및 디바이스에서의 어플리케이션의 동작을 제어하기 위해 리소스 타입을 액세스하는 서비스 타입에 대한 퍼미션 레벨을 변경하는 사용자 입력을 수신하는 단계;를 포함하는 전자 시스템의 동작 방법을 제공한다.
또한, 리소스 타입에 액세스하기 위한 퍼미션 레벨에 기초하여 대체 컴포넌트를 생성하는 단계; 및 대체 노티피케이션, 페이크 정보, 또는 이들의 조합을 디바이스에 나타내도록 제공하기 위해 대체 컴포넌트를 실행하는 단계;를 더 포함할 수 있다.
또한, 어플리케이션의 패키지(package) 파일로부터 언패킹(unpacking)된 파일 디렉토리 내의 파일 폴더를 스캐닝(scanning)하여 피처 정의에서 정의된 피처(feature)를 추출하는 단계;를 더 포함할 수 있다.
또한, 파일 디렉토리, 파일 폴더 또는 이들의 조합을 분류하기 위해 추출된 피처를 트레이닝 데이터에 매칭하여, 피처 벡터(feature vector)를 산출하는 단계;를 더 포함할 수 있다.
또한, 서비스 타입에 따라 파일 디렉토리, 파일 폴더 또는 이들의 조합을 분류하기 위해 피처 벡터에 기초하여 폴더 분류를 생성하는 단계;를 더 포함할 수 있다.
또한, 서비스 타입에 따라 폴더 디렉토리, 파일 폴더 또는 이들의 조합을 그룹핑하기 위해 폴더 분류에 기초하여 컴포넌트 세트를 생성하는 단계;를 더 포함할 수 있다.
개시된 실시예의 제 3 측면은, 상기 제 2 측면을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
도 1은 일 실시예에 따른 액세스 매니지먼트 매커니즘을 포함하는 전자 시스템을 도시한 도면이다.
도 2는 일 실시예에 따른 전자 시스템의 구조를 설명하는 도면이다.
도 3은 일 실시예에 따른 대체 타입을 설명하는 도면이다.
도 4는 다른 실시예에 따른 대체 타입을 설명하는 도면이다.
도 5는 또 다른 실시예에 따른 대체 타입을 설명하는 도면이다.
도 6은 일 실시예에 따른 제어 인터페이스를 설명하는 도면이다.
도 7은 다른 실시예에 따른 제어 인터페이스를 설명하는 도면이다.
도 8은 일 실시예에 따른 전자 시스템의 블록도이다.
도 9는 일 실시예에 따른 전자 시스템의 제어 흐름을 설명하는 도면이다.
도 10은 일 실시예에 따른 전자 시스템의 동작 방법을 설명하는 흐름도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되지는 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 항목들의 조합 또는 복수의 관련된 항목들 중의 어느 하나의 항목을 포함한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시예에 따른 액세스 매니지먼트 매커니즘을 포함하는 전자 시스템(100)을 도시한 도면이다. 도 1을 참조하면, 전자 시스템(100)은 클라이언트(client) 또는 서버(server)와 같은 제 1 디바이스(102) 및 제 1 디바이스(102)와 연결된 제 2 디바이스(106)를 포함한다. 제 2 디바이스(106)는 클라이언트 또는 서버일 수 있다. 제 1 디바이스(102)는 제 2 디바이스(106)와 무선 또는 유선의 통신 경로(104)를 통해 통신할 수 있다.
예를 들어, 제 1 디바이스(102)는 휴대폰, 개인용 디지털 장치, 웨어러블 디지털 디바이스, 노트북 컴퓨터, 태블릿, TV, 차량용 통신 단말기 시스템, 또는 기타 다기능 모바일 통신 디바이스 또는 엔터테인먼트 디바이스 등과 같은, 다양한 종류의 디스플레이 디바이스일 수 있다. 제 2 디바이스(106)는 독립형 장치일 수 있으며, 운송 수단(예를 들어, 자동차, 트럭, 버스, 항공기, 보트/선박 또는 기차 등)과 결합될 수 있다. 제 1 디바이스(102)는 제 2 디바이스(106)와 통신하기 위해 통신 경로(104)와 연결될 수 있다.
도 1에서는, 전자 시스템(100)의 제 1 디바이스(102)가 디스플레이 디바이스인 것으로 도시하였으나, 제 1 디바이스(102)는 다른 타입의 디바이스일 수 있다. 예를 들어, 제 1 디바이스(102)는 서버, 서버 팜(server farm) 또는 데스크탑 컴퓨터 등과 같이 비휴대용 장치일 수 있다.
제 2 디바이스(106)는 다양한 종류의 집중형 컴퓨터 디바이스들 또는 분산형 컴퓨팅 디바이스들 중 하나일 수 있다. 예를 들어, 제 2 디바이스(106)는 컴퓨터, 그리드 컴퓨팅 리소스, 가상 컴퓨팅 리소스, 클라우드 컴퓨팅 리소스, 라우터, 스위치, P2P(peer-to-peer) 분산 컴퓨팅 디바이스 또는 이들의 조합일 수 있다.
또한, 제 2 디바이스(106)는 동일 공간에 집중된 형태, 다른 지역에 분산된 형태, 통신 네트워크에 내장된 형태로 존재하는 컴퓨팅 디바이스일 수 있다. 또한, 제 2 디바이스(106)는 제 1 디바이스(102)와 통신하기 위해 통신 경로(104)에 연결될 수 있다. 또한, 제 2 디바이스(106)는 제 1 디바이스(102)에서 전술된 바와 같이 클라이언트 타입의 디바이스일 수도 있다.
다른 실시예에 따르면, 제 1 디바이스(102)는 메인프레임(mainframe), 서버(server), 클러스터 서버(cluster server) 또는 블레이드 서버(blade server)와 같은 디바이스일 수 있으며, 구체적으로, IBM사의 z10 비즈니스 클래스 메인프레임(IBM System z10 (TM) Business Class mainframe) 또는 HP사의 ProLiant ML 서버(HP ProLiant ML (TM) server)일 수 있다. 또 다른 실시예에 따르면, 제 2 디바이스(106)는 휴대용 컴퓨팅 디바이스, 씬 클라이언트(thin client), 노트북, 넷북(netbook), 스마트폰, 개인용 디지털 디바이스 또는 휴대전화 등과 같은 디바이스일 수 있으며, 구체적으로, 애플사의 아이폰(iPhone(TM)), 안드로이드(Android(TM)) 스마트폰 또는 윈도우(Windows(TM)) 플랫폼의 스마트폰일 수 있다.
설명의 편의를 위하여, 도 1에서는 전자 시스템(100)의 제 2 디바이스(106)가 비휴대용 컴퓨팅 디바이스인 것으로 도시하였으나, 제 2 디바이스(106)는 다른 타입의 컴퓨팅 디바이스일 수 있다. 예를 들어, 제 2 디바이스(106)는 노트북 컴퓨터 등과 같은 휴대용 컴퓨팅 디바이스일 수 있으며, 다른 클라이언트 디바이스, 또는 다른 타입의 클라이언트 디바이스일 수 있다. 또한, 제 2 디바이스(106)는 독립형 디바이스일 수 있으며, 차량, 트럭, 버스, 항공기, 보트/선박 또는 기차와 같은 운송 수단과 결합될 수도 있다.
또한, 설명의 편의를 위하여, 도 1에서는 전자 시스템(100)의 제 1 디바이스(102) 및 제 2 디바이스(106)가 통신 경로(104)의 양 끝에 위치하는 것으로 도시하였지만, 전자 시스템(100)은 제 1 디바이스(102), 제 2 디바이스(106) 및 통신 경로(104) 사이에 다른 파티션(partition)을 포함할 수 있다. 예를 들어, 제 1 디바이스(102), 제 2 디바이스(106) 또는 이들의 조합은 통신 경로(104)의 일 부분일 수 있다.
통신 경로(104)는 다양한 네트워크를 포함할 수 있다. 예를 들어, 통신 경로(104)는 무선 통신망, 유선 통신망, 광통신(optical), 초음파 통신(ultrasonic) 또는 이들의 조합을 포함할 수 있다. 통신 경로(104)는 예를 들어, 무선 통신인 인공 위성 통신망, 셀 방식(cellular) 통신, 블루투스(Bluetooth), 무선 HDMI(High-Definition Multimedia Interface), NFC(Near Field Communication), 적외선 통신(IrDA: Infrared Data Association Standard), WiFi(wireless fidelity) 및 WiMAX(worldwide interoperability for microwave access) 등을 포함할 수 있다. 또한, 통신 경로(104)는 예를 들어, 유선 통신인 이더넷(Ethernet), HDMI, DSL(digital subscriber line), FTTH(fiber to the home), POTS(plain old telephone service) 등을 포함할 수 있다.
또한, 통신 경로(104)는 다양한 네트워크 토폴로지(topology) 및 먼 거리를 넘나들 수 있다. 예를 들어, 통신 경로(104)는 다이렉트 통신 방식, PAN(personal area network), LAN(local area network), MAN(metropolitan area network), WAN(wide area network) 또는 이들의 조합을 포함할 수 있다.
도 2는 일 실시예에 따른 전자 시스템의 구조를 설명하는 도면이다. 설명의 편의를 위하여, 제 1 디바이스(102)가 전자 시스템(100)에 의해 생성된 결과물을 제공하는 것으로 가정한다. 그러나, 도 1의 제 2 디바이스(106)와 제 1 디바이스(102)가 서로의 동작을 수행할 수 있음은, 개시된 실시예들로부터 당해 기술분야의 전문가가 용이하게 유추할 수 있을 것이다.
도 2를 참조하면, 전자 시스템(100)은 패키지 파일(202)을 포함할 수 있다. 패키지 파일(202)은 제 1 디바이스(102)에서 어플리케이션(204)이 인스톨되기 위한 아카이브 파일(archive file)일 수 있다. 또한, 패키지 파일(202)은 예를 들어, 자바 아카이브 파일(JAR: java archive), iOS 앱스토어 패키지 파일, 테이프 아카이브 파일(tar: tape archive), zip 파일 또는 이들의 조합을 포함할 수 있다. 어플리케이션(204)은 예를 들어, 안드로이드 스마트폰인 제 1 디바이스(102)에서 구동되는 안드로이드 어플리케이션일 수 있다. 도 8의 제 1 제어부(812), 제 2 제어부(834) 또는 이들의 조합은 어플리케이션(204)을 실행시킬 수 있다.
또한, 패키지 파일(202)은 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 포함할 수 있다. 파일 디렉토리(206)는 파일 폴더(208)를 구성하기 위한 데이터 스트럭쳐(data structure)이다. 또한, 파일 폴더(208)는 적어도 하나 이상의 콘텐츠를 포함하는 디지털 객체이다. 여기서, 컨텐츠는 예를 들어, 바이너리 파일(binary file), 텍스트 파일(text file), HTML(HyperText Markup Language) 또는 XML(Extensible Markup Language) 파일 등과 같은 마크업 랭귀지 파일(markup language file), 이미지 파일(image file), 실행 코드 또는 이들의 조합일 수 있다. 또한, 파일 폴더(208)의 하나의 인스턴스(instance)는 파일 디렉토리(206)를 형성하는 파일 폴더(208)의 다른 인스턴스를 포함할 수 있다. 예를 들어, 파일 폴더(208)를 포함하는 파일 디렉토리(206)는 바이트코드(bytecode) 폴더들을 나타낼 수 있다.
어플리케이션(204)은 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합 내의 피처(feature)(210)를 포함할 수 있다. 피처(feature)(210)는 어플리케이션(204)의 비-휘발성 리소스일 수 있다. 예를 들어, 어플리케이션(204)은 피처(210)와 시스템 컴포넌트(212)에 대한 액세스, 사용, 구현 또는 이들의 조합을 포함하는 전술한 동작들을 수행할 수 있다. 시스템 컴포넌트(212)는 운영체제의 비-휘발성 리소스일 수 있다. 운영체제는 예를 들어, 안드로이드(Android), iOS, 윈도우(Windows), 리눅스(LINUX), 유닉스(UNIX) 또는 이들의 조합일 수 있다.
또한, 피처(210)는 프론트앤드(frontend) 피처, 백그라운드(background) 피처 또는 이들의 조합일 수 있다. 예를 들어, 어플리케이션(204)은 안드로이드 플랫폼을 구성하는데 이용될 수 있다. 구체적으로, 어플리케이션(204)이 포어그라운드(foreground)에서 종료되더라도, 백그라운드 피처는 스레드(thread)를 유지할 수 있다. 피처(210)가 종료되지 않는 스레드 함수를 포함하면, 피처(210)는 백그라운드 피처로 식별될 수 있다. 또한, 백그라운드 피처는 사용자 인터페이스를 포함하지 않는다. 만약, 피처(210)가 사용자 인터페이스를 포함하면, 피처(210)는 프론트앤드 피처로 식별될 수 있다.
시스템 컴포넌트(212)는 베이직 컴포넌트(214), 퍼미션(permission) 컴포넌트(216), 비쥬얼(visual) 컴포넌트(218), 소스 및 싱크(source and sink) 컴포넌트(220), 런타임 퍼미션 체크 컴포넌트(222), 키워드 명명부(224) 또는 이들의 조합을 포함할 수 있다. 베이직 컴포넌트(214)는 운영체제에 의해 기본적으로 제공되는 서비스들에 대한 접근을 제공할 수 있다. 예를 들어, 베이직 컴포넌트(214)는 운영 체제(예를 들어, 안드로이드 등)에 대한 액티비티(activity), 서비스(service), 콘텐츠 프로바이더(content provider), 브로드캐스트 리시버(broadcast receiver) 또는 이들의 조합을 포함할 수 있다.
퍼미션 컴포넌트(216)는 운영체제가 퍼미션을 요구하는 서비스들에 대한 접근을 제공할 수 있다. 예를 들어, 운영체제가 안드로이드이면, 퍼미션 컴포넌트(216)는 INTERNET, ACCESS_NETWROK_STATE, ACCESS_WIFI_STATE, ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, WRITE_EXTERNAL_STORAGE 또는 이들의 조합을 포함할 수 있다.
비쥬얼 컴포넌트(218)는 운영체제가 제공하는 디스플레이 기능에 대한 접근을 제공할 수 있다. 비쥬얼 컴포넌트(218)는 예를 들어, 운영체제에 의해 제공되는 사용자 인터페이스(UI) 위젯 등에 대한 접근을 제공할 수 있다.
소스 및 싱크 컴포넌트(220)는 데이터의 입력 및 출력을 제공할 수 있다. 예를 들어, 소스 데이터는 공유 리소스로부터 비상수(non-constant) 정보를 독출하는 시스템 콜을 나타낼 수 있다. 싱크 정보는 공유 리소스에 정보의 일부를 기입하는 시스템 콜을 나타낼 수 있다.
런타임 퍼미션 체크 컴포넌트(222)는 동적으로 운영체제로부터 퍼미션을 체크하는 서비스를 제공할 수 있다. 어플리케이션(204)의 파일 디렉토리(206)는 어플리케이션 프로그램 인터페이스를 통해 런타임 퍼미션 체크 컴포넌트(222)를 호출할 수 있다.
키워드 명명부(224)는 네이밍 정보(naming information)를 포함할 수 있다. 네이밍 정보(naming information)는 대명사, 고유 명사, 브랜드 이름, 단체명, 사용자 정의 단어 또는 이들의 조합을 포함할 수 있다. 키워드 명명부(224)는 예를 들어, 페이스북, 아마존 등과 같은 고유 이름을 제공할 수 있다. 독특한 이름은 파일 폴더(208) 내에 포함된 객체(예를 들어, 클래스, 메소드(method), 파일 이름 또는 이들의 조합)를 명명하기 위한 일부 구성으로 이용될 수 있다.
전자 시스템(100)은 피처 정의(226)에서 정의된 피처(210)를 추출할 수 있다. 피처 정의(226)는 시스템 컴포넌트(212)의 특정 타입에 대한 동작들(예를 들어, 액세스, 사용, 구현 또는 이들의 조합)을 수행하는 피처(210)와 관련된 정보일 수 있다. 피처 정의(226)는 예를 들어, 베이직 컴포넌트(214), 퍼미션 컴포넌트(216), 비쥬얼 컴포넌트(218), 소스 및 싱크 컴포넌트(220), 런타임 퍼미션 체크 컴포넌트(222), 키워드 명명부(224) 또는 이들의 조합을 포함하는 시스템 컴포넌트(212)에 대한 전술한 동작들(예를 들어, 액세스, 사용, 구현 또는 이들의 조합)을 수행하는 피처(210)를 포함할 수 있다.
전자 시스템(100)은 파일 디렉토리(206), 파일 폴더(208) 또는 이들 조합의 피처 벡터(230)를 계산하기 위해, 피처(210)를 트레이닝 데이터(228)와 비교할 수 있다. 트레이닝 데이터(228)는 미리 분류된 피처(210)를 포함할 수 있다. 예를 들어, 트레이닝 데이터(228)에 포함된 피처(210)는 서비스 타입(232)에 분류된 것일 수 있다.
서비스 타입(232)은 기능 컴포넌트(234), 서드 파티(third party) 컴포넌트(236) 또는 이들의 조합을 포함할 수 있다. 기능 컴포넌트(234)는 어플리케이션(204)에 대한 비-휘발성 리소스원일 수 있다. 예를 들어, 기능 컴포넌트(234)는 제 1 디바이스(102)를 구동시키는 소프트웨어 프로세스를 포함할 수 있다.
서드 파티 컴포넌트(236)는 기능 컴포넌트(234)와 함께 어플리케이션(204)을 구성하며, 외부 소스에 의해 제공된 비-휘발성 리소스일 수 있다. 예를 들어, 서드 파티 컴포넌트(236)는 소셜 네트워크(social network), 광고 또는 이들의 조합에 대한 라이브러리(library)를 나타낼 수 있다. 여기서, 라이브러리(library)는 어플리케이션(204)이 사용하는 비-휘발성 리소스들의 집합을 나타낼 수 있다. 서드 파티 컴포넌트(236)는 제 1 디바이스(102) 상에서 구동될 수 있는 소프트웨어 서비스를 포함할 수 있다.
구체적으로, 서드 파티 컴포넌트(236)는 컴포넌트 지향 개발 프로세스(component oriented development)를 용이하게 하기 위하여, 제 1 디바이스(102)에 병합될 수 있는 소프트웨어 서비스를 나타낼 수 있다. 안드로이드 에코 시스템(android ecosystem)에는, 개발자들이 널리 알려진 소셜 미디어적 요소를 어플리케이션(204)에 포함시키는 것을 허용하는, 소셜 네트워크 서비스들(예를 들어, 페이스북, 트위터 및 위쳇(WeChat) 등)의 SDK(software development kit)를 포함하는 다양한 타입의 서드 파티 컴포넌트(236)들이 존재한다. 광고 라이브러리를 포함하는 서드 파티 컴포넌트(236)는, 어플리케이션(204)의 개발자들의 수입원을 제공하기 위하여, 기능 컴포넌트(234)와 결합될 수 있다.
또한, 서비스 타입(232)은 프론트앤드(frontend) 서비스, 백그라운드(background) 서비스 또는 이들의 조합을 포함할 수 있다. 예를 들어, 어플리케이션(204)은 안드로이드 플랫폼에 내장될 수 있다. 구체적으로, 백그라운드 서비스는, 어플리케이션(204)이 포어그라운드(foreground)에서 종료되더라도 스레드(thread)를 유지할 수 있다. 만약, 서비스 타입(232)이 종료되지 않는 스레드 함수를 구현하면, 서비스 타입(232)은 백그라운드 서비스로 식별될 수 있다. 또한, 백그라운드 서비스는 사용자 인터페이스 요소를 포함하지 않는다. 따라서, 서비스 타입(232)이 사용자 인터페이스 요소를 구현하는 경우, 해당 서비스 타입(232)은 프론트앤드 서비스로 식별될 수 있다.
피처 벡터(230)는 통계 정보이다. 예를 들어, 피처 벡터(230)는 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합이 서비스 타입(232)과 연관된 정도를 나타내는 수치일 수 있다. 예를 들어, 서비스 타입(232)의 특정 인스턴스가 트레이닝 데이터(228)와 일치하는 피처(210)의 인스턴스의 개수에 기초하여, 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합은 서비스 타입(232)의 동일한 인스턴스로 분류될 수 있다.
폴더 분류(folder classification)(238)는 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합이 분류된 그룹의 표시자(indication)일 수 있다. 예를 들어, 파일 폴더(208)는 분류되어, 기능 컴포넌트(234)를 나타내는 폴더 분류(238)로 표현될 수 있다. 또한, 파일 폴더(208)는 분류되어, 서드 파티 컴포넌트(236)를 나타내는 폴더 분류(238)로 표현될 수 있다.
또한, 폴더 분류(238)는 피처 벡터(230)와 벡터 임계값(240)의 비교에 기초하여, 구분될 수 있다. 벡터 임계값(240)은 분류를 위한 피처 벡터(230)의 최소값일 수 있다. 벡터 임계값(240)은 서비스 타입(232)의 인스턴스 각각에 대해 설정될 수 있다.
또한, 폴더 분류(238)는 분류 타입(242)에 따라 구분될 수 있다. 분류 타입(242)은 폴더 분류(238)의 카테고리일 수 있다. 분류 타입(242)은 바이너리 분류기(244), 멀티클래스 분류기(246) 또는 이들의 조합을 포함할 수 있다.
바이너리 분류기(244)는 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 서로 다른 두 개의 카테고리들로 구분할 수 있다. 예를 들어, 파일 폴더(208)는 바이너리 분류기(244)에 따라, 기능 컴포넌트(234) 또는 서드 파티 컴포넌트(236)로 구분될 수 있다. 또한, 멀티클래스 분류기(246)는 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 두 개를 초과하는 서로 다른 카테고리들로 구분할 수 있다. 예를 들어, 파일 폴더(208)는 멀티클래스 분류기(246)에 따라 기능 컴포넌트(234), 노티피케이션 컴포넌트(248) 및/또는 비노티피케이션 컴포넌트(250)를 포함하는 서드 파티 컴포넌트(236) 또는 이들의 조합으로 구분될 수 있다.
노티피케이션 컴포넌트(248)는 광고를 제공하는 서드 파티 컴포넌트(236)를 나타낼 수 있다. 노티피케이션 컴포넌트(248)는 구글(Google)의 광고 라이브러리를 나타낼 수 있다. 비노피케이션 컴포넌트(250)는 광고와 관계없는 서드 파티 컴포넌트(236)를 나타낼 수 있다. 비노티피케이션 컴포넌트(250)는 광고와 관계없는 구글 라이브러리를 나타낼 수 있다.
컴포넌트 세트(252)는 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합이 분류된 집합일 수 있다. 예를 들어, 컴포넌트 세트(252)의 하나의 인스턴스는 기능 컴포넌트(234)를 나타내는 폴더 분류(238)로 분류된 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 포함할 수 있다. 또는, 컴포넌트 세트(252)의 다른 인스턴스는 서드 파티 컴포넌트(236)를 나타내는 폴더 분류(238)로 분류된 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 포함할 수 있다.
컴포넌트 세트(252)는 대체 컴포넌트(256)를 포함하도록 재작성될 수 있다. 대체 컴포넌트(256)는 비-휘발성 리소스가 수정된 것일 수 있다. 대체 컴포넌트(256)는 시스템 컴포넌트(212)를 분류하는 리소스 타입(258)에 기초하여 생성될 수 있다.
리소스 타입(258)은 URL(uniform resource identifier)에 의해 액세스될 수 있다. 예를 들어, URL은 제 1 디바이스(102)에 저장된 사용자의 연락처들의 리소스 타입(258)에 액세스하는 “content://com.android.contacts” 또는 “content://contacts”를 포함할 수 있다. 만약, URL이 “content://call_log”이면, 리소스 타입(258)은 제 1 디바이스(102)에 기록된 전화 기록을 나타낼 수 있다. 또한, URL이 “content://com.android.calendar”이면, 리소트 타입(258)은 제 1 디바이스(102)의 캘린더(calendar)를 나타낼 수 있다.
리패키지 파일(repackage file)(260)은 대체 컴포넌트(256)를 포함하도록 재작성된 아카이브 파일(archive file)일 수 있다. 예를 들어, 리패키지 파일(260)은 기능 컴포넌트(234), 서드 파티 컴포넌트(236), 대체 컴포넌트(256) 또는 이들의 조합을 포함할 수 있다.
전자 시스템(100)의 사용자는 기능 컴포넌트(234), 서드 파티 컴포넌트(236) 또는 이들의 조합에 의해, 시스템 컴포넌트(212)에 대한 액세스를 세부적으로 제어하기 위하여 퍼미션 레벨(262)을 조정할 수 있다. 퍼미션 레벨(262)은 퍼미션 정도를 나타낸다. 예를 들어, 퍼미션 레벨(262)은 기능 컴포넌트(234), 서드 파티 컴포넌트(236) 또는 이들의 조합이 시스템 컴포넌트(212)에 접근할 수 있는지 여부를 나타내는 “락(lock)” 또는 “언락(unlock)”으로 표현될 수 있다.
제어 인터페이스(254)는 사용자 인터페이스를 나타낸다. 제어 인터페이스(254)는 인스톨 시점 또는 런타임 시점에 사용될 수 있다. 예를 들어, 제어 인터페이스(254)는 어플리케이션(204)과 독립적으로 수행될 수 있다. 또는, 제어 인터페이스(254)는 어플리케이션(204)과 결합될 수도 있다.
예를 들어, 사용자는 리패키징된 어플리케이션(204)이 인스톨되는 동안, 퍼미션 레벨(262)을 변경하기 위해 제어 인터페이스(254)를 이용할 수 있다. 또는, 사용자는 어플리케이션(204)이 수행되는 동안, 리패키징된 어플리케이션(204)의 퍼미션 레벨(262)을 변경하기 위해 제어 인터페이스(254)를 이용할 수도 있다.
또한, 전자 시스템(100)은 액세스 가능한 리소스 타입(258)의 퍼미션 레벨(262)을 제어함으로써, 리소스 타입(258)에 대한 제어 범위를 확장시킬 수 있다. 구체적으로, 기능 컴포넌트(234)를 포함하는 컴포넌트 세트(252)는 아무런 제한 없이 리소스 타입(258)에 액세스 할 수 있다. 이와 달리, 전자 시스템(100)은 서드 파티 컴포넌트(236)로 분류된 컴포넌트 세트(252)가 리소스 타입(258)에 액세스 하는 것을 제한할 수 있다.
도 3은 일 실시예에 따른 대체 타입을 설명하는 도면이다. 대체 타입(302)은 서드 파티 컴포넌트(236)를 대체하는 비-휘발성 리소스일 수 있다.
도 3을 참조하면, 대체 타입(302)은 래퍼 함수(wrapper function)(304)를 포함한다. 또한, 래퍼 함수(304)는, 대체 프로세스를 포함할 수 있다. 예를 들어, 래퍼 함수(304)는 서드 파티 컴포넌트(236)의 소프트웨어 프로세스를 대체하는 소프트웨어 프로세스를 나타낼 수 있다.
전자 시스템(100)은 리소스 타입(258), 리소스 서브(sub) 타입(306) 또는 이들의 조합에 기초하여, 래퍼 함수(304)를 생성할 수 있다. 리소스 서브 타입(306)은 시스템 컴포넌트(212)를 더 상세히 분류한 것일 수 있다. 구체적으로, 리소스 서브 타입(306)은 리소스 타입(258)에 대한 세부 분류를 나타낼 수 있다. 예를 들어, 리소스 타입(258)은 물리적 위치를 나타낼 수 있으며, 리소스 서브 타입(306)은 물리적 위치에 대한 경도 위도 좌표 정보를 나타낼 수 있다.
블랙리스트(308)는 기능 컴포넌트(234)에서 서드 파티 컴포넌트(236)로 전송이 허용되지 않는 비허가 데이터에 대한 정보일 수 있다. 예를 들어, 블랙리스트(308)는 서명 기능을 나타내는 정보를 포함할 수 있다. 또한, 블랙리스트(308)는 기능 컴포넌트(234)와 서드 파티 컴포넌트(236) 간의 전송이 허가되지 않는 리소스 타입(258), 리소스 서브 타입(306) 또는 이들 조합을 포함하는 데이터에 대한 정보를 포함할 수 있다.
비필수적 컴포넌트(310)는 피처 정의(도 2의 226)에서 정의되지 않은 비-휘발성 리소스를 나타낼 수 있다. 비필수적 컴포넌트(310)는 리패키지 파일(260)의 일부로서 기능 컴포넌트(234), 서드 파티 컴포넌트(236), 대체 컴포넌트(256) 또는 이들의 조합과 함께 리패키징(repackaging)될 수 있다.
도 4는 다른 실시예에 따른 대체 타입을 설명하는 도면이다. 도 4를 참조하면, 대체 타입(302)은 대체 노티피케이션(402)을 포함할 수 있다. 대체 노티피케이션(402)은 외부 노티피케이션(404)을 대체하여 표시되는 정보일 수 있다. 또한, 외부 노티피케이션(404)은 서드 파티 제공자에 의해 제공되는 디스플레이 정보일 수 있다. 한편, 서드 파티 제공자는 광고 제공자, 발행자, 브로커(broker) 또는 이들의 조합을 나타낼 수 있다.
예를 들어, 외부 노티피케이션(404)은 부동산 중개 회사에 대한 광고를 나타낼 수 있다. 이 경우, 서드 파티 제공자는, 제 1 디바이스(102)에서 표시되는 외부 노티피케이션(404)을 제공할 수 있다.
대체 노티피케이션(402)은 외부 노티피케이션(404)을 대체하여 표시되는 블랭크(blank) 콘텐츠, 다른 콘텐츠 또는 이들의 조합을 나타낼 수 있다. 도 4는 외부 노티피케이션(404)을 대체하여 표시되는 블랭크 콘텐츠인 대체 노티피케이션(402)을 도시한 것이다. 구체적으로, 사용자는 제 1 디바이스(102)를 통해 부동산 중개 회사에 대한 광고를 대체하는 블랭크 섹션을 볼 수 있다.
도 5는 또 다른 실시예에 따른 대체 타입을 설명하는 도면이다. 도 5를 참조하면, 대체 타입(302)은 페이크 정보(fake information)(502)를 포함할 수 있다. 이때, 페이크 정보(502)는 임의로 생성된 정보일 수 있으며, 외부 노티피케이션(404)을 구성하는 일부일 수 있다.
구체적으로, 서드 파티 제공자가 서드 파티 컴포넌트(도 2의 236)를 통해 위치를 나타내는 리소스 타입(도 2의 258)에 액세스하여 제 1 디바이스(102)의 위치 정보를 획득하는 경우, 서드 파티 제공자는 제 1 디바이스(102)의 위치와 관련된 외부 노티피케이션(404)을 제공할 수 있다. 예를 들어, 제 1 디바이스(102)의 실제 위치는 캘리포니아의 샌 조스(San Jose)일 수 있다. 이 경우, 서드 파티 제공자는 캘리포니아의 샌 조스에 위치하는 호텔 광고를 나타내는 외부 노티피케이션(404)을 제공할 수 있다.
이때, 전자 시스템(100)은 서드 파티 컴포넌트(236)를 통해 페이크 정보(502)를 서드 파티 제공자에게 제공할 수 있다. 페이크 정보(502)는 제 1 디바이스(102)의 실제 위치와 무관한 위치를 나타내는 정보일 수 있다. 예를 들어, 페이크 정보(502)는 뉴욕의 뉴욕 시티를 나타낼 수 있다. 따라서, 페이크 정보(502)에 기초하여, 서드 파티 제공자는 캘리포니아의 샌 조스에 위치하는 호텔들에 대한 호텔 광고 대신에, 뉴욕 시티에 위치하는 호텔들의 광고를 나타내는 외부 노티피케이션(404)을 제공할 수 있다.
한편, 컨텍스트(504)는 제 1 디바이스(102)를 둘러싸는 상태 또는 환경일 수 있다. 예를 들어, 컨텍스트(504)는 사용자가 제 1 디바이스(102)를 동작 중임을 나타내는 정보일 수 있으며, 사용자의 현재 위치, 시간, 주(week), 월(month), 년, 계절 또는 이들의 조합을 포함할 수 있다.
도 6은 일 실시예에 따른 제어 인터페이스를 설명하는 도면이다. 도 6을 참조하면, 제어 인터페이스(254)는 액세스 환경설정(602)을 포함할 수 있다. 액세스 환경설정(602)은 퍼미션 레벨(262)을 변경하기 위한 인터페이스일 수 있다. 예를 들어, 전자 시스템(100)은 액세스 환경설정(602)을 통해 퍼미션 레벨(262)을 변경할 수 있다.
구체적으로, 서드 파티 컴포넌트(도 2의 236)가 리소스 타입(도 2의 258), 리소스 서브 타입(도 3의 306) 또는 이들의 조합에 접근하기 위한 퍼미션 레벨(262)은 “락(lock)” 또는 “언락(unlock)”으로 표현될 수 있다. 예를 들어, 액세스 환경설정(602)은 어플리케이션(204)의 리패키지 파일(도 2의 260)에서 리패키지되는 서드 파티 컴포넌트(236)가 위치 정보를 나타내는 리소스 타입(258)에 액세스하는 것을 “락(lock)”할 수 있다. 이와 반대로, 어플리케이션(204)의 리패키지 파일(260)에서 리패키지되는 기능 컴포넌트(234)는 위치 정보를 나타내는 리소스 타입(258)에 여전히 액세스할 수 있다.
도 7은 다른 실시예에 따라 제어 인터페이스(254)를 설명하는 도면이다. 도 7을 참조하면, 제어 인터페이스(254)는 액세스 환경설정(602)의 다른 인터페이스로 표현될 수 있다.
구체적으로, 액세스 환경설정(602)은 온(on) 스위치 또는 오프(off) 스위치로 표현될 수 있다. 예를 들어, 전자 시스템(100)은 기능 컴포넌트(도 2의 234), 서드 파티 컴포넌트(도 2의 236) 또는 이들의 조합이 리소스 타입(258)에 접근하는 것을 허용 또는 금지하는 액세스 환경설정(602)을 이용하여, 리소스 타입(도 2 의 258), 리소스 서브 타입(도 3의 306) 또는 이들의 조합에 대한 액세스를 제어할 수 있다.
예를 들어, 제어 인터페이스(254)는 사용자 입력(702)을 수신할 수 있다. 사용자 입력(702)은 사용자의 직접적인 입력(예를 들어, 터치 입력, 버튼 입력 등), 음성 입력, 제스처 입력 또는 이들의 조합을 포함할 수 있다.
도 8은 일 실시예에 따른 전자 시스템의 블록도이다. 도 8을 참조하면, 전자 시스템(100)은 제 1 디바이스(102), 통신 경로(104) 및 제 2 디바이스(106)를 포함할 수 있다. 또한, 제 1 디바이스(102)는 통신 경로(104)의 제 1 디바이스 전송부(808)를 이용하여 제 2 디바이스(106)로 데이터를 전송할 수 있다. 또한, 제 2 디바이스(106)는 통신 경로(104)의 제 2 디바이스 전송부(810)를 이용하여 제 1 디바이스(102)로 데이터를 전송할 수 있다.
한편, 도 8에서는 전자 시스템(100)의 제 1 디바이스(102)가 클라이언트 디바이스인 것으로 도시되었으나, 전자 시스템(100)이 다른 타입(예를 들어, 디스플레이 인터페이스를 포함하는 서버)의 제 1 디바이스(102)를 포함할 수 있음은, 개시된 실시예들로부터 당해 기술분야의 전문가가 용이하게 유추할 수 있을 것이다.
또한, 도 8에서는 전자 시스템(100)의 제 2 디바이스(106)가 서버인 것으로 도시되었으나, 전자 시스템(100)이 다른 타입(예를 들어, 클라이언트 디바이스)의 제 2 디바이스(106)를 포함할 수 있음은, 개시된 실시예들로부터 당해 기술분야의 전문가가 용이하게 유추할 수 있을 것이다.
또한, 설명의 편의를 위하여, 제 1 디바이스(102)가 클라이언트 디바이스이고, 제 2 디바이스(106)가 서버 디바이스로 도시되었으나, 이에 제한되는 것은 아니며, 개시된 실시예들은 디바이스들의 타입에 제한되지 않는다.
제 1 디바이스(102)는 제 1 제어부(812), 제 1 저장부(814), 제 1 통신부(816) 및 로케이션부(location unit)(820)를 포함할 수 있다. 제 1 제어부(812)는 제 1 제어 인터페이스(822)를 포함할 수 있다. 또한, 제 1 제어부(812)는 전자 시스템(100)의 다양한 기능을 수행하기 위해 제 1 소프트웨어(826)를 실행시킬 수 있다.
제 1 제어부(812)는 다양한 방식으로 구현될 수 있다. 제 1 제어부(812)는 예를 들어, 프로세서, 프로세서에 내장된 ASIC(Application Specific Integrated Circuit), 마이크로 프로세서, 하드웨어 제어 로직, FSM(hardware finite state machine), DSP(digital signal processor) 또는 이들의 조합 등으로 구현될 수 있다. 또한, 제 1 제어 인터페이스(822)는 제 1 제어부(812)와 제 1 디바이스(102) 내의 다른 기능부들 간의 통신에 사용될 수 있다. 제 1 제어 인터페이스(822)는 제 1 디바이스(102)의 외부와 통신하는데 사용될 수도 있다.
제 1 제어 인터페이스(822)는 다른 기능부들 또는 외부 소스들로부터 데이터를 수신하거나, 다른 기능부들 또는 외부 목적지들로 데이터를 전송할 수 있다. 여기서, 외부 소스들 및 외부 목적지들은 제 1 디바이스(102)와 물리적으로 구분되는 소스들 또는 목적지들일 수 있다.
제 1 제어 인터페이스(822)는 다양한 방식으로 구현될 수 있으며, 제 1 제어 인터페이스(822)와 인터페이싱하는 기능부들 또는 외부 장치들에 따른 다양한 구현 방식을 포함할 수 있다. 예를 들어, 제 1 제어 인터페이스(822)는 압력 센서, 관성 센서, MEMS(micro-electro-mechanical system), 광학 회로망, 도파관(waveguides), 무선 회로망, 유선 회로망 또는 이들의 조합 등으로 구현될 수 있다.
로케이션부(location unit)(820)는 예를 들어, 제 1 디바이스(102)의 위치 정보, 진행 방향 정보 및 진행 속도 정보 등을 생성할 수 있다. 또한, 로케이션부(820)는 다양한 방식으로 구현될 수 있다. 예를 들어, 로케이션부(820)는 GPS(global positioning system), 관성 네비게이션 시스템, 셀룰러 타워 위치 시스템, 압력 위치 시스템 또는 이들 조합의 적어도 일부 기능을 포함하도록 구현될 수 있다.
또한, 로케이션부(820)는 로케이션 인터페이스(location interface)(832)를 포함할 수 있다. 로케이션 인터페이스(832)는 로케이션부(820)와 제 1 디바이스(102)의 다른 기능부들 간의 통신에 이용될 수 있다. 로케이션 인터페이스(832)는 제 1 디바이스(102)의 외부와의 통신에 이용될 수도 있다.
로케이션 인터페이스(832)는 다른 기능부들 또는 외부 소스들로부터 데이터를 수신하거나, 다른 기능부들 또는 외부 목적지들로 데이터를 전송할 수 있다. 여기서, 외부 소스들 또는 외부 목적지들은 제 1 디바이스(102)와 물리적으로 구분된 소스들 또는 목적지들일 수 있다.
로케이션 인터페이스(832)는 로케이션부(820)와 인터페이싱하는 기능부들 또는 외부 장치들에 따라 다양한 방식들로 구현될 수 있다. 로케이션 인터페이스(832)는 제 1 제어 인터페이스(822)와 유사한 방식으로 구현될 수 있으므로, 자세한 설명은 생략한다.
제 1 저장부(814)는 제 1 소프트웨어(826)를 저장할 수 있다. 또한, 제 1 저장부(814)는 광고, 관심 지점(POI), 네비게이션 라우팅 엔트리(navigation routing entry) 또는 이들의 조합 등과 같은, 관련 정보를 저장할 수 있다. 또한, 관련 정보는 서드 파티 컨텐츠 제공자가 제공하는 뉴스, 미디어, 이벤트 또는 이들의 조합을 포함할 수 있다.
제 1 저장부(814)는 휘발성 메모리, 비-휘발성 메모리, 내장 메모리, 외장 메모리 또는 이들의 조합일 수 있다. 예를 들어, 제 1 저장부(814)는 NVRAM(non-volatile randeom access memory), 플래쉬 메모리, 디스크 스토리지 등과 같은 비-휘발성 스토리지(storage), 또는 SRAM(static random access memory) 등과 같은 휘발성 스토리지일 수 있다.
또한, 제 1 저장부(814)는 제 1 저장 인터페이스(824)를 포함할 수 있다. 제1 저장 인터페이스(824)는 제 1 저장부(814)와 제 1 디바이스(102)의 다른 기능부들 간의 통신에 이용될 수 있다. 또한, 제 1 저장 인터페이스(824)는 외부 장치들과의 통신에 이용될 수도 있다.
제 1 저장 인터페이스(824)는 다른 기능부들 또는 외부 소스들로부터 데이터를 수신하거나, 외부 기능부들 또는 외부 목적지들로 데이터를 전송할 수 있다. 여기서, 외부 소스들 및 외부 목적지들은 제 1 디바이스(102)와 물리적으로 구분되는 소스들 및 목적지들일 수 있다.
또한, 제 1 저장 인터페이스(824)는 제 1 저장부(814)와 인터페이싱하는 기능부들 또는 외부 장치들에 따라 다양한 방식으로 구현될 수 있다. 제 1 저장 인터페이스(824)는 제 1 제어 인터페이스(822)와 유사한 방식으로 구현될 수 있으므로, 자세한 설명은 생략한다.
제 1 통신부(816)는 제 1 디바이스(102)와 외부와의 통신을 가능하게 할 수 있다. 예를 들어, 제 1 통신부(816)는 제 1 디바이스(102)가 제 2 디바이스(106), 주변 장치 또는 데스크탑 컴퓨터 등과 같은 부속 디바이스들, 및 통신 경로(104) 등과 통신하도록 할 수 있다.
제 1 통신부(816)는 제 1 디바이스(102)가 통신 경로(104)의 일부 구성 요소 및/또는 앤드 포인트(end point)를 구성하는 통신 허브(hub)로서 기능하도록 할 수 있다. 또한, 제 1 통신부(816)는 통신 경로(104)와의 상호작용을 위해 마이크로-일렉트로닉스(microelectronics) 또는 안테나와 같은 능동 및/또는 수동 구성요소들을 포함할 수 있다.
또한, 제 1 통신부(816)는 제 1 통신 인터페이스(828)를 포함할 수 있다. 제1 통신 인터페이스(828)는 제 1 통신부(816)와 제 1 디바이스(102)의 다른 기능부들과의 통신에 이용될 수 있다. 따라서, 제 1 통신 인터페이스(828)는 다른 기능부들로부터 데이터를 수신하거나, 다른 기능부들로 데이터를 전송할 수 있다.
제 1 통신 인터페이스(828)는 제 1 통신부(816)와 인터페이싱하는 다른 기능부들에 따른 다양한 구현 방식을 포함할 수 있다. 제 1 통신 인터페이스(828)는 제 1 제어 인터페이스(822)와 유사한 방식으로 구현될 수 있으므로, 자세한 설명은 생략한다.
제 1 사용자 인터페이스(818)는 사용자와 제 1 디바이스(102)간의 인터페이싱을 제공할 수 있다. 제 1 사용자 인터페이스(818)는 입력 디바이스 및 출력 디바이스를 포함할 수 있다. 제 1 사용자 인터페이스(818)의 입력 디바이스는 예를 들어, 데이터 입력 및/또는 커뮤니케이션을 제공하기 위한 키패드, 터치패드, 소프트 키, 키보드, 마이크로폰, 원격 장치로부터 시그널을 수신하는 적외선 센서 또는 이들의 조합을 포함할 수 있다.
또한, 제 1 사용자 인터페이스(818)는 제 1 디스플레이 인터페이스(830)를 포함할 수 있다. 제 1 디스플레이 인터페이스(830)는 디스플레이, 프로젝터, 비디오 스크린, 스피커 또는 이들의 조합을 포함할 수 있다.
제 1 제어부(812)는 전자 시스템(100)에 의해 생성된 정보를 디스플레이하도록 제 1 사용자 인터페이스(818)를 동작시킬 수 있다. 또한, 제 1 제어부(812)는 로케이션부(820)로부터 위치 정보를 수신하는 작업 등과 같이 전자 시스템(100)의 다른 기능들을 수행하는 제 1 소프트웨어(826)를 실행할 수 있다. 또한, 제 1 제어부(812)는 제 1 통신부(816)를 통해 통신 경로(104)와 인터렉션하는 제 1 소프트웨어(826)를 수행할 수 있다.
제 2 디바이스(106)는 개시된 실시예들을 구현하기 위해 최적화될 수 있다. 제 2 디바이스(106)는 제 1 디바이스(102)와 비교하여 높은 프로세싱 성능을 제공할 수 있다. 제 2 디바이스(106)는 제 2 제어부(834), 제 2 통신부(836) 및 제 2 사용자 인터페이스(838)를 포함할 수 있다.
제 2 사용자 인터페이스(838)는 사용자가 제 2 디바이스(106)와 인터페이싱하도록 할 수 있다. 제 2 사용자 인터페이스(838)는 입력 디바이스 및 출력 디바이스를 포함할 수 있다. 제 2 사용자 인터페이스(838)의 입력 디바이스는 예를 들어, 데이터 입력 및/또는 커뮤니케이션을 제공하기 위한 키패드, 터치패드, 소프트키, 키보드, 마이크로폰 또는 이들의 조합일 수 있다.
제 2 제어부(834)는 전자 시스템(100)의 제 2 디바이스(106)의 다양한 기능을 수행하기 위해 제 2 소프트웨어(842)를 수행할 수 있다. 제 2 소프트웨어(842)는 제 1 소포트웨어(826)와 함께 동작할 수 있다. 또한, 제 2 제어부(834)는 제 1 제어부(812)와 비교하여 높은 성능을 제공할 수 있다.
또한, 제 2 제어부(834)는 제 2 사용자 인터페이스(838)를 동작시킴으로써, 제 2 제어부(834)에 의해 처리되는 정보를 디스플레이할 수 있다. 또한, 제 2 제어부(834)는, 통신 경로(104)를 통해 제 1 디바이스(102)와 통신하는 제 2 통신부(836)의 동작을 제어하는 등의 기능들을 수행하기 위해 제 2 소프트웨어(842)를 실행할 수 있다.
또한, 제 2 제어부(834)는 다양한 방식으로 구현될 수 있다. 예를 들어, 제 2 제어부(834)는 프로세서, 임베디드 프로세서, 마이크로프로세서, 하드웨어 제어 로직, FSM(hardware finite state machine), DSP(digital signal processor) 또는 이들의 조합 등으로 구현될 수 있다.
또한, 제 2 제어부(834)는 제 2 제어 인터페이스(844)를 포함할 수 있다. 제 2 제어부(834)는 제 2 제어부(834)와 제 2 디바이스(106)의 다른 기능부들 간의 통신에 이용될 수 있다. 또한, 제 2 제어 인터페이스(844)는 제 2 디바이스(106) 외부와의 통신에 이용될 수도 있다.
제 2 제어 인터페이스(844)는 다른 기능부들 또는 외부 소스들로부터 데이터를 수신하거나, 다른 기능부들 또는 외부 목적지들로 데이터를 전송할 수 있다. 여기서, 외부 소스들 및 외부 목적지들은 제 2 디바이스(106)와 물리적으로 구분되는 소스들 또는 목적지들일 수 있다.
제 2 제어 인터페이스(844)는 다양한 방식들로 구현될 수 있으며, 제 2 제어 인터페이스(844)와 인터페이싱하는 기능부들 또는 외부 장치들의 구현 방식에 따라 다양한 구현 방식을 포함할 수 있다. 예를 들어, 제 2 제어 인터페이스(844)는 압력 센서, 관성 센서, MEMS(micro-electro-mechanical system), 광학 회로망, 도파관(waveguides), 무선 회로망, 유선 회로망 또는 이들의 조합 등으로 구현될 수 있다.
제 2 저장부(846)는 제 2 소프트웨어(842)를 저장할 수 있다. 또한, 제 2 저장부(846)는 광고, 관심 지점(POI), 네비게이션 라우팅 엔트리(navigation routing entry) 또는 이들의 조합 등과 같은 관련 정보를 저장할 수 있다. 한편, 제 2 저장부(846)는 제 1 저장부(814)보다 더 큰 사이즈의 저장 공간을 제공할 수 있다.
한편, 도 8에서는 설명의 편의를 위해, 제 2 저장부(846)가 하나인 것으로 도시하였으나, 제 2 저장부(846)는 분산되어 위치하는 복수개일 수도 있음은, 개시된 실시예들로부터 당해 기술분야의 전문가가 용이하게 유추할 수 있을 것이다. 또한, 제 2 저장부(846)가 싱글 하이어라키(hierarchy) 시스템으로 구현된 것으로 도시하였으나, 전자 시스템(100)은 다른 형상으로 구현된 제 2 저장부(846)를 포함할 수도 있음은, 당해 기술분야의 전문가가 용이하게 유추할 수 있을 것이다. 예를 들어, 제 2 저장부(846)는 서로 다른 레벨의 캐시(cache), 메인 메모리(main memory), 로테이팅 미디어(rotating media) 또는 오프라인 스토리지(off-line storage)를 포함하는 메모리 하이어라키 시스템으로 구현될 수도 있다.
또한, 제 2 저장부(846)는 휘발성 메모리, 비-휘발성 메모리, 내장 메모리, 외장 메모리 또는 이들의 조합일 수 있다. 예를 들어, 제 2 저장부(846)는 NVRAM(non-volatile randeom access memory), 플래쉬 메모리, 디스크 스토리지 등과 같은 비-휘발성 스토리지, 또는 SRAM(static random access memory) 등과 같은 휘발성 스토리지일 수 있다.
또한, 제 2 저장부(846)는 제 2 저장 인터페이스(828)를 포함할 수 있다. 제2 저장 인터페이스(828)는 제 2 저장부(846)와 제 2 디바이스(106)의 다른 기능부들 간의 통신에 이용될 수 있다. 또한, 제 2 저장 인터페이스(828)는 외부 장치들과의 통신에 이용될 수도 있다.
제 2 저장 인터페이스(828)는 다른 기능부들 또는 외부 소스들로부터 데이터를 수신하거나, 외부 기능부들 또는 외부 목적지들로 데이터를 전송할 수 있다. 여기서, 외부 소스들 및 외부 목적지들은 제 2 디바이스(106)와 물리적으로 구분되는 소스들 및 목적지들일 수 있다.
또한, 제 2 저장 인터페이스(828)는 제 2 저장부(846)와 통신하는 기능부들 또는 외부 장치들에 따른 다양한 구련 방식을 포함할 수 있다. 제 2 저장 인터페이스(828)는 제 2 제어 인터페이스(844)와 유사한 방식으로 구현될 수 있으므로, 자세한 설명은 생략한다.
제 2 통신부(836)는 제 2 디바이스(106)와 외부와의 통신을 가능하게 할 수 있다. 예를 들어, 제 2 통신부(836)는 제 2 디바이스(106)가 제 1 디바이스(102), 주변 장치 또는 컴퓨터 데스크탑 및 통신 경로(104) 등과 통신하도록 할 수 있다.
또한, 제 2 통신부(836)는 제 2 디바이스(106)가 통신 경로(104)의 일부 구성 요소 및/또는 앤드 포인트(end point)를 구성하는 통신 허브(hub)로서 기능하도록 할 수 있다. 제 2 통신부(836)는 통신 경로(104)와의 상호작용을 위해 마이크로-일렉트로닉스(microelectronics) 또는 안테나와 같은 능동 및/또는 수동 구성요소들을 포함할 수 있다.
또한, 제 2 통신부(836)는 제 2 통신 인터페이스(850)를 포함할 수 있다. 제2 통신 인터페이스(850)는 제 2 통신부(836)와 제 2 디바이스(106)의 다른 기능부들과의 통신에 이용될 수 있다. 따라서, 제 2 통신 인터페이스(850)는 다른 기능부들로부터 데이터를 수신하거나, 다른 기능부들로 데이터를 전송할 수 있다.
제 2 통신 인터페이스(850)는 제 2 통신부(836)와 인터페이싱하는 다른 기능부들에 따른 다양한 구현 방식을 포함할 수 있다. 제 2 통신 인터페이스(850)는 제 2 제어 인터페이스(844)와 유사한 방식으로 구현될 수 있으므로, 자세한 설명은 생략한다.
제 1 통신부(816)는 통신 경로(104)와 결합하여 통신 경로(104)의 제 1 장치 전송부(808)를 통해 제 2 디바이스(106)로 데이터를 전송할 수 있다. 또한, 제 2 디바이스(106)의 제 2 통신부(836)는 통신 경로(104)의 제 1 장치 전송부(808)로부터 제공되는 데이터를 수신할 수 있다.
제 2 통신부(836)는 통신 경로(104)와 결합하여 통신 경로(104)의 제 2 디바이스 전송부(810)를 통해, 제 1 디바이스(102)로 데이터를 전송할 수 있다. 또한, 제 1 디바이스(102)의 제 1 통신부(816)는 통신 경로(104)의 제 2 디바이스 전송부(810)로부터 제공되는 데이터를 수신할 수 있다. 전자 시스템(100)은 제 1 제어부(812), 제 2 제어부(834) 또는 이들의 조합에 의해 수행될 수 있다. 도 8에서는 설명의 편의를 위해, 제 2 디바이스(106)가 제 2 사용자 인터페이스(838), 제 2 저장부(846), 제 2 제어부(834) 및 제 2 통신부(836)로 구분되는 구성요소들을 포함하도록 도시하였으나, 제 2 디바이스(106)는 다른 방식으로 구분되는 구성요소들을 포함할 수 있다. 예를 들어, 제 2 소프트웨어(842)는 함수들의 일부 또는 전부가 제 2 제어부(834) 및 제 2 통신부(836)에 포함되도록 구분할 수 있다. 제 2 디바이스(106)는 도 8에 도시된 구성요소들 외의 다른 구성요소들을 더 포함하도록 구현될 수 있으며, 더 적은 구성요소들에 의해 구현될 수도 있다.
제 1 디바이스(102)의 구성요소들은 개별적 및 독립적으로 동작할 수 있다. 또한, 제 1 디바이스(102)는 제 2 디바이스(106) 및 통신 경로(104)와 개별적 및 독립적으로 동작할 수 있다.
또한, 제 2 디바이스(106)의 구성요소들은 개별적 및 독립적으로 동작할 수 있다. 제 2 디바이스(106)는 제 1 디바이스(102) 및 통신 경로(104)와 개별적 및 독립적으로 동작할 수 있다.
한편, 위 설명에서는 전자 시스템(100)의 제 1 디바이스(102) 및 제 2 디바이스(106)의 동작들을 각각 설명하였으나, 제 1 디바이스(102) 및 제 2 디바이스(106)가 전술한 전자 시스템(100)의 모듈들 및 함수들을 수행할 수 있음은, 당해 기술분야의 전문가가 용이하게 이해할 수 있을 것이다. 예를 들어, 제 1 디바이스(102)가 로케이션부(820)를 동작시키는 것으로 도시되었으나, 제 2 디바이스(106)가 로케이션부(820)를 동작시킬 수도 있다.
도 9는 일 실시예에 따른 전자 시스템의 제어 흐름을 설명하는 도면이다. 도 9를 참조하면, 전자 시스템(100)은 변환 모듈(902)을 포함할 수 있다. 변환 모듈(902)은 파일 폴더(도 2의 208) 등을 포함하는 파일 디렉토리(도 2의 206)를 생성할 수 있다. 예를 들어, 변환 모듈(902)은 어플리케이션(도2의 204)의 패키지 파일(202)이 언패킹(unpacking)됨에 따라 파일 디렉토리(206)를 생성할 수 있다.
패키지 파일(202)은 예를 들어, jar 파일, iOS 앱 스토어 패키지 파일 또는 이들의 조합일 수 있다. 구체적으로, 변환 모듈(902)은 패키지 파일(202)이 언패킹됨에 따라 복수개의 바이트코드 폴더들을 포함하는 파일 디렉토리(206)를 생성할 수 있다. 예를 들어, 변환 모듈(902)은 전자 시스템(100)이 접근가능한 포맷으로 파일 디렉토리(206)의 표현을 변경할 수 있다. 변환 모듈(902)은 추출 모듈(904)로 파일 디렉토리(206)를 제공할 수 있다.
전자 시스템(100)은 변환 모듈(902)과 결합된 추출 모듈(904)을 포함할 수 있다. 추출 모듈(904)은 피처(도 2의 210)를 추출할 수 있다. 예를 들어, 추출 모듈(904)은 피처 정의(도 2의 226)에 기초하여, 피처(210)를 추출할 수 있다. 구체적으로, 피처(210)는 피처 정의(226)에 정의된 시스템 컴포넌트(도 2의 212)에 대한 사용, 액세스, 구현 또는 이들의 조합일 수 있다.
또한, 추출 모듈(904)은 다양한 방식으로 피처(210)를 추출할 수 있다. 전술한 바와 같이, 피처 정의(226)는 복수개의 시스템 컴포넌트(212)들의 리스트를 제공할 수 있다. 예를 들어, 추출 모듈(904)은 피처 정의(226)에 기초하여, 피처(210)들을 분류하고 그룹핑할 수 있다.
구체적으로, 피처 정의(226)는 베이직 컴포넌트(도 2의 214), 퍼미션 컴포넌트(도 2의 216), 비쥬얼 컴포넌트(도 2의 218), 소스 및 싱크 컴포넌트(도 2의 220), 런타임 퍼미션 체크 컴포넌트(도 2의 222), 키워드 명명부(도 2의 224) 또는 이들의 조합으로 나타나는 시스템 컴포넌트(212)들의 카테고리들을 포함할 수 있다. 또한, 추출 모듈(904)은 피처 정의(226)에 정의된 시스템 컴포넌트(212)를 사용 또는 액세스하는 피처(210)를 포함하는 파일 폴더(208)(또는, 파일 디렉토리(206) 내의 복수개의 파일 폴더(208))를 식별하여, 피처(210)를 추출할 수 있다.
예를 들어, 운영 체제(예를 들어, 안드로이드, iOS, 윈도우 등)를 위한 베이직 컴포넌트(214)는 액티비티(activity), 서비스(service), 콘텐츠 프로바이더(content provider), 브로드캐스트 리시버(broadcast receiver) 또는 이들의 조합을 포함할 수 있다. 추출 모듈(904)은 베이직 컴포넌트(214)를 사용 또는 액세스하는 파일 폴더(208)를 식별하여, 피처(210)를 추출할 수 있다.
또는, 피처(210)는 운영 체제의 퍼미션 컴포넌트(216)를 사용할 수 있다. 퍼미션 컴포넌트(216)는 예를 들어, INTERNET, ACCESS_NETWROK_STATE, ACCESS_WIFI_STATE, ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, WRITE_EXTERNAL_STORAGE 또는 이들의 조합을 포함할 수 있다. 추출 모듈(904)은 파일 폴더(208)에서 퍼미션 컴포넌트(216)의 사용을 식별하여, 피처(210)를 추출할 수 있다.
또는, 피처(210)는 비쥬얼 컴포넌트(218)를 구현할 수 있다. 피처(210)는 외부 노티피케이션(도 4의 404)을 디스플레이하는 비쥬얼 컴포넌트(218)를 사용하기 위해 사용자 인터페이스를 제공할 수 있다. 구체적으로, 피처(210)는 파일 폴더(208)에서 안드로이드 앱(app), 안드로이드 위젯, 안드로이드 웹킷 또는 이들의 조합 등과 같은 어플리케이션 프로그래밍 인터페이스를 포함함으로써, 비쥬얼 컴포넌트(218)를 구현할 수 있다. 추출 모듈(904)은 파일 폴더(208)에서 비쥬얼 컴포넌트(218)의 사용을 식별하여 피처(210)를 추출할 수 있다.
또는, 소스 및 싱크 컴포넌트(220)는 정보 소스와 정보 및 싱크 정보를 포함할 수 있다. 정보 소스는 공유 소스로부터 비상수 정보를 독출하는 시스템 콜을 나타낼 수 있다. 싱크 정보는 공유 리소스에 정보의 일부를 기입할 수 있는 시스템 콜을 나타낼 수 있다. 추출 모듈(904)은 시스템 콜을 생성하는 소스 및 싱크 컴포넌트(220)의 사용을 식별하여, 피처(210)를 추출할 수 있다.
또는, 피처(210)는 시스템 컴포넌트(212)에 액세스하는 런타임 퍼미션 체크 컴포넌트(222)를 나타내는 어플리케이션 프로그래밍 인터페이스를 사용할 수 있다. 구체적으로, 피처(210)는 “android.content.Context.check*Permission 포맷(여기서, “*”은 “check” 과 “Permission” 사이에 포함 될 수 있는 문자(들)를 포함할 수 있음을 의미함)”으로 어플리케이션 프로그래밍 인터페이스를 호출할 수 있다. 추출 모듈(904)은 파일 폴더(208)에서 런타임 퍼미션 체크 컴포넌트(222)의 사용을 식별하여, 피처(210)를 추출할 수 있다.
또는, 다른 예로서, 키워드 명명부(224)는 클래스, 메소드, 필드 또는 이들의 조합을 나타낼 수 있으며, 예를 들어, ‘페이스북’ 또는 ‘아마존’ 등과 같은 고유 단어를 포함할 수 있다. 추출 모듈(904)은 파일 폴더(208)에서 키워드 명명부(224)의 사용을 식별하여, 피처(210)를 추출할 수 있다. 추출 모듈(904)은 벡터 모듈(906)로 피처(210)를 제공할 수 있다.
전자 시스템(100)은 추출 모듈(904)과 결합된 벡터 모듈(906)을 포함할 수 있다. 벡터 모듈(906)은 피처 벡터(도 2의 230)를 산출할 수 있다. 예를 들어, 벡터 모듈(906)은 피처(210)를 트레이닝 데이터(도2의 228)와 비교함으로써, 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합에 대한 피처 벡터(230)를 산출할 수 있다.
구체적으로, 벡터 모듈(906)은 피처(210)를 트레이닝 데이터(228)에 매칭시킴으로써, 피처 벡터(230)를 산출할 수 있다. 여기서, 트레이닝 데이터(228)는 서비스 타입(도 2의 232)에 따라 분류되는 피처(210)를 포함할 수 있다. 서비스 타입(232)은 기능 컴포넌트(도 2의 234), 서드 파티 컴포넌트(도 2의 236) 또는 이들의 조합을 포함할 수 있다. 따라서, 트레이닝 데이터(228)는 기능 컴포넌트(234), 서드 파티 컴포넌트(236) 또는 이들의 조합을 포함하는 서비스 타입(232)에 의해 분류될 수 있다.
벡터 모듈(906)은 파일 폴더(208)로부터 추출된 피처(210)를 트레이닝 데이터(228)의 이미 분류된 피처(210)에 매칭할 수 있다. 벡터 모듈(906)은, 추출된 피처(210)가 서비스 타입(232)에 따라 분류된 피처(210)와 매칭되며, 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합에서 추출된 피처(210)의 인스턴스들의 개수들의 통계를 수집함으로써, 피처 벡터(230)를 산출할 수 있다. 벡터 모듈(906)은 분류 모듈(908)에 피처 벡터(230)를 제공할 수 있다.
전자 시스템(100)은 벡터 모듈(906)과 결합된 분류 모듈(908)을 포함할 수 있다. 분류 모듈(908)은 폴더 분류(도 2의 238)를 생성할 수 있다. 예를 들어, 분류 모듈(908)은 피처 벡터(230)에 기초하여 폴더 분류(238)를 생성할 수 있다. 또는, 분류 모듈(908)은 파일 폴더(208)를 기능 컴포넌트(234) 또는 서드 파티 컴포넌트(236)로 분류함으로써 폴더 분류(238)를 생성할 수 있다.
예를 들어, 서드 파티 컴포넌트(236)는 노티피케이션 컴포넌트(도 2의 248), 비 노티피케이션 컴포넌트(도 2의 250) 또는 이들의 조합을 포함할 수 있다. 멀티클래스 분류기(246)에서, 분류 모듈(908)은 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 기능 컴포넌트(234), 노티피케이션 컴포넌트(248), 비 노티피케이션 컴포넌트(250) 또는 이들의 조합으로 분류하여, 폴더 분류(238)를 생성할 수 있다.
또는, 분류 모듈(908)은 벡터 임계값(도 2의 240) 이상의 피처 벡터(230)에 기초하여, 폴더 분류(238)를 생성할 수 있다. 전술한 바와 같이, 피처 벡터(230)는 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합의 피처(210)의 얼마나 많은 개수의 인스턴스들이, 트레이닝 데이터(228)의 피처(210)의 기능 컴포넌트(234), 서드 파티 컴포넌트(236) 또는 이들 조합의 서비스 타입(232)과 매칭되는지에 대한 통계를 나타낼 수 있다.
분류 모듈(908)은 피처 벡터(230)가 벡터 임계값(240) 이상이면, 서드 파티 컴포넌트(236)를 표시하는 폴더 분류(238)를 생성할 수 있다. 이와 반대로, 분류 모듈(908)은 피처 벡터(230)가 벡터 임계값(240) 이상이면, 기능 컴포넌트(234)를 표시하는 폴더 분류(238)를 생성할 수 있다.
예를 들어, 분류 모듈(908)은 서드 파티 컴포넌트(236)의 서비스 타입(232)을 갖는 트레이닝 데이터(228)의 피처(210)와 매칭되는 파일 폴더(208)의 적어도 하나의 인스턴스가 존재하면, 서드 파티 컴포넌트(236)를 표시하는 폴더 분류(238)를 생성할 수 있다. 구체적으로, 분류 모듈(908)은, 전술한 바와 같이 시스템 컴포넌트(212)를 사용, 액세스 또는 구현하는 서드 파티 컴포넌트(236)로 분류된 피처(210)에 기초하여, 폴더 분류(238)를 생성할 수도 있다.
예를 들어, 피처(210)의 인스턴스가 서드 파티 컴포넌트(236)에 매칭되고, 피처 정의(226)에 정의된 대로 시스템 컴포넌트(212)를 사용, 액세스 또는 구현하면, 분류 모듈(908)은 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 표시하기 위해 폴더 분류(238)를 생성할 수 있다. 이와 반대로, 피처(210)가 서드 파티 컴포넌트(236)에 매칭되나, 피처 정의(226)에 정의되지 않은 시스템 컴포넌트(212)를 사용, 액세스 또는 구현하면, 분류 모듈(908)은 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합에 대한 기능 컴포넌트(234), 비필수적 컴포넌트(도 3의 310) 또는 이들의 조합을 표시하는 폴더 분류(238)를 생성할 수 있다.
또는, 분류 모듈(908)은 프론트앤드(frontend) 서비스, 백그라운드(background) 서비스 또는 이들의 조합을 나타내는 서비스 타입(232)에 따라 파일 폴더(208)를 분류하여, 폴더 분류(238)를 생성할 수 있다. 전술한 바와 같이, 파일 폴더(208)는 종료되지 않는 스레드 함수를 액세스하는 피처(210)를 포함할 수 있다. 이 경우, 파일 폴더(208)는 백그라운드 서비스를 표시하는 폴더 분류(238)로써 분류될 수 있다. 이와 반대로, 파일 폴더(208)가 사용자 인터페이스 구성 요소를 구현하는 피처(210)를 포함하면, 파일 폴더(208)는 프론트앤드 서비스를 표시하는 폴더 분류(238)로 분류될 수 있다.
또는, 분류 모듈(908)은 기계학습(machine learning)을 통해 폴더 분류(238)를 생성할 수 있다. 구체적으로, 분류 모듈(908)은 피처(210)가 액세스하는 서비스 타입(232)에 기초하여 파일 폴더(208)를 자동으로 분류함으로써 폴더 분류(238)를 생성할 수 있다. 또한, 분류 모듈(908)은 세트 모듈(910)로 폴더 분류(238)를 제공할 수 있다.
이와 같이, 전자 시스템(100)은 폴더 분류(238)를 생성함으로써, 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합이 분류되는 정확도를 향상시킬 수 있다. 구체적으로, 피처 벡터(230)에 기초하여 폴더 분류(238)를 생성함으로써, 전자 시스템(100)은 패키지 파일(202)의 이름을 사용하지 않으면서, 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 분류할 수 있다. 결과적으로, 전자 시스템(100)은 사용자의 보안성을 향상시키면서 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 정교하게 그룹핑할 수 있다.
전자 시스템(100)은 분류 모듈(908)과 결합된 세트 모듈(910)을 포함할 수 있다. 세트 모듈(910)은 컴포넌트 세트(도 2의 252)를 생성할 수 있다. 세트 모듈(910)은 예를 들어, 폴더 분류(238)에 기초하여 컴포넌트 세트(252)를 생성할 수 있다.
구체적으로, 세트 모듈(910)은 폴더 분류(238)에 기초하여 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 그룹핑(grouping)함으로써, 컴포넌트 세트(252)를 생성할 수 있다. 예를 들어, 기능 컴포넌트(234)의 폴더 분류(238)를 갖는 파일 폴더(208)는, 세트 모듈(910)에 의해, 유사한 폴더 분류(238)의 인스턴스를 갖는 상기 파일 폴더(208)의 다른 인스턴스와 그룹핑될 수 있다. 이와 반대로, 서드 파티 컴포넌트(236)의 폴더 분류(238)를 갖는 파일 폴더(208)는, 세트 모듈(910)에 의해, 유사한 폴더 분류(238)의 인스턴스를 갖는 상기 파일 폴더(208)의 다른 인스턴스와 그룹핑될 수 있다.
예를 들어, 노티피케이션 컴포넌트(248)의 폴더 분류(238)를 갖는 파일 폴더(208)는, 세트 모듈(910)에 의해, 노티피케이션 컴포넌트(248)를 나타내는 폴더 분류(238)를 갖는 상기 파일 폴더(208)의 다른 인스턴스들과 그룹핑될 수 있다.
또한, 세트 모듈(910)은 폴더 분류(238)의 동일한 인스턴스들에 따라 그룹핑된 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 포함하는 복수개의 컴포넌트 세트(252)를 생성할 수 있다. 세트 모듈(910)은 재작성 모듈(912)로 컴포넌트 세트(252)를 제공할 수 있다.
전자 시스템(100)은 세트 모듈(910)과 결합된 재작성 모듈(912)을 포함할 수 있다. 재작성 모듈(912)은 대체 컴포넌트(도 2의 256)를 생성할 수 있다. 예를 들어, 재작성 모듈(912)은 래퍼 함수(도 3의 304)의 대체 타입(도 3의 302), 대체 노티피케이션(도 4의 402), 페이크 정보(도 5의 502) 또는 이들의 조합을 포함하는 대체 컴포넌트(256)를 생성할 수 있다.
재작성 모듈(912)은 다양한 방식으로 대체 컴포넌트(256)를 생성할 수 있다. 예를 들어, 재작성 모듈(912)은 리소스 타입(도 2의 258), 컴포넌트 세트(252) 또는 이들의 조합에 기초하여 대체 컴포넌트(256)를 생성할 수 있다. 구체적으로, 재작성 모듈(912)은 서드 파티 컴포넌트(236)를 대체하기 위해, 서드 파티 컴포넌트(236)를 나타내는 폴더 분류(238)로 분류되는 대체 컴포넌트(256)를 생성할 수 있다.
또한, 재작성 모듈(912)은 리소스 타입(258) 인스턴스가 관리하는 리소스 타입(258) 리스트를 유지할 수 있다. 예를 들어, 재작성 모듈(912)은 리소스 타입(258)의 모든 인스턴스 또는 특정 인스턴스에 액세스 하는 서비스 타입(232) (예를 들어, 인터넷, 로케이션, 연락처, 달력, 폰 식별자, 프로필 또는 이들의 조합 등)에 대한 대체 컴포넌트(256)를 생성할 수 있다.
예를 들어, 재작성 모듈(912)은 인터넷, 로케이션(location), 연락처, 캘린더(calendar), 모바일 장치 ID, 계정/프로필 또는 이들의 조합을 포함하는 리소스 타입(258)에 액세스 하는 컴포넌트 세트(252)를 위한 대체 컴포넌트(256)를 생성할 수 있다. 전술한 바와 같이, 컴포넌트 세트(252)는 서드 파티 컴포넌트(236)를 포함할 수 있다. 서드 파티 컴포넌트(236)는 제 1 디바이스(102)의 위치를 나타내는 리소스 타입(258)에 액세스하는 “Location LocationManager.getLastKnownLocation(String provider)” 메소드를 나타낼 수 있다. 재작성 모듈(912)은 서드 파티 컴포넌트(236)가 위치 정보를 나타내는 리소스 타입(258)을 액세스하는 것을 제어하는 래퍼 함수(304)를 포함하는 대체 컴포넌트(256)를 생성할 수 있다.
예를 들어, 재작성 모듈(912)은, “Location LocationManager.getLastKnownLocation(String provider)”메소드를 나타내는 서드 파티 컴포넌트(236)를 래핑(wrapping)하기 위해, “AdSeaCat.queryController(String appName, String resourceType, String componentType)” 등과 같은 메소드를 포함하는 래퍼 함수(304)를 생성할 수 있다. 래퍼 함수(304)에 기초하여, 전자 시스템(100)은 어플리케이션(204)이 리소스 타입(258)에 액세스하는 것을 허용할지 여부를 제어할 수 있다. 전자 시스템(100)이 제어하는 방법에 대해서는, 이하에서 자세히 설명한다.
이와 같이, 전자 시스템(100)은 래퍼 함수(304)를 생성함으로써, 사용자 개인 정보에 대한 보안성을 향상시킬 수 있다. 구체적으로, 전자 시스템(100)은 서드 파티 컴포넌트(236)를 대체하는 래퍼 함수(304)를 생성함으로써, 외부 소스들(예를 들어, 서드 파티 제공자 등)이 제 1 디바이스(102) 사용자의 개인 정보에 액세스하는 것을 금지할 수 있다. 결과적으로, 전자 시스템(100)은 사용자의 개인 정보가 외부로 노출되는 것을 방지할 수 있다.
또한, 재작성 모듈(912)은 대체 노티피케이션(402)을 포함하는 대체 컴포넌트(256)를 생성할 수 있다. 구체적으로, 대체 노티피케이션(402)은 퍼미션 레벨(도 2의 262)에 기초하여, 외부 노티피케이션(404)을 대체할 수 있다. 퍼미션 레벨(262)이 외부 노티피케이션(404)을 디스플레이하기 위한 서드 파티 컴포넌트(236)에 대한 액세스를 허용하지 않으면, 대체 노티피케이션(402)이 대신 디스플레이될 수 있다.
예를 들어, 외부 노티피케이션(404)이 디스플레이되는 것을 허용하지 않는 퍼미션 레벨(262)에서, 재작성 모듈(912)은 대체 노티피케이션(402)을 생성할 수 있다. 구체적으로, 재작성 모듈(912)은 널 포인터(null pointer)를 포함하는 대체 노티피케이션(402)을 생성할 수 있다. 또한, 어플리케이션(204)은 서드 파티 컴포넌트(236)에 의해 디스플레이되는 외부 노티피케이션(404)을 대신하여 대체 노티피케이션(402)을 디스플레이할 수 있다. 따라서, 널 포인터를 갖는 대체 노티피케이션(402)이 디스플레이되어, 제 1 디바이스(102)는 광고 대신에 블랭크 영역을 디스플레이 할 수 있다.
이와 같이, 전자 시스템(100)은 대체 노티피케이션(402)을 생성함으로써, 사용자 경험(UX: user experience)을 향상시킬 수 있다. 또한, 대체 노티피케이션(402)을 생성함으로써, 전자 시스템(100)은 제 1 디바이스(102)의 디스플레이 인터페이스를 어지럽게하는 외부 노티피케이션(404)을 제거할 수 있다. 결과적으로, 전자 시스템(100)은 사용자가 자신과 관련된 콘텐츠에 집중할 수 있도록 함으로써, 사용자 경험(UX)을 향상시킬 수 있다.
또는, 재작성 모듈(912)은 외부 노티피케이션(404)을 변경하는 페이크(fake) 정보(502)를 생성할 수 있다. 일반적으로, 서드 파티 컴포넌트(236)는 제 1 디바이스(102)의 현재 위치를 획득하기 위한 리소스 타입(258)에 액세스 할 수 있다. 따라서, 서드 파티 컴포넌트(236)는 리소스 타입(258)에 기초하여, 외부 노티피케이션(404)을 디스플레이할 수 있다.
그러나, 재작성 모듈(912)은 서드 파티 제공자에게 제 1 디바이스(102)의 현재 위치를 거짓으로 제공하기 위해 페이크 정보(502)를 생성할 수 있다. 따라서, 서드 파티 제공자는 페이크 정보(502)에 기초하여, 페이크 정보(502)를 포함하는 외부 노티피케이션(404)을 제공할 수 있다. 예를 들어, 제 1 디바이스(102)의 현재 위치는 캘리포니아지만, 현재 위치에 대한 페이크 정보(502)는 뉴욕을 가리킬 수 있다. 따라서, 서드 파티 제공자는 제 1 디바이스(102)의 실제 위치를 알지 못한 채, 뉴욕에 관련된 정보를 포함하는 외부 노티피케이션(404)을 제공할 수 있다.
이와 같이, 전자 시스템(100)은 사용자의 개인 정보를 보호하기 위하여 페이크 정보(502)를 제공할 수 있다. 전자 시스템(100)은 페이크 정보(502)를 생성함으로써, 서드 파티 제공자와 같은 외부 소스들이 제 1 디바이스(102)의 사용자 개인 정보에 접근하는 것을 금지할 수 있다. 결과적으로, 전자 시스템(100)은 사용자의 개인 정보가 외부로 노출되는 것을 방지할 수 있다.
또는, 재작성 모듈(912)은 리소스 서브 타입(도 3의 306)에 기초하여, 대체 컴포넌트(256)를 생성할 수 있다. 리소스 서브 타입(306)은 URL(uniform resource locator), 위치 좌표 정보 또는 이들의 조합을 포함할 수 있다. 재작성 모듈(912)은 퍼미션 레벨(262)에 기초하여, 리소스 타입(258), 리소스 서브 타입(306) 또는 이들의 조합을 대체하기 위한 대체 컴포넌트(256)를 생성할 수 있다.
또는, 재작성 모듈(912)은 블랙리스트(도 3의 308)에 기초하여, 대체 컴포넌트(256)를 생성할 수 있다. 구체적으로, 블랙리스트(308)는 기능 컴포넌트(234)와 서드 파티 컴포넌트(236) 간에 전송이 허용되지 않는 비허가 데이터에 대한 정보를 포함할 수 있다. 예를 들어, 데이터는 서명을 포함할 수 있다. 재작성 모듈(912)은 비허가 데이터가 기능 컴포넌트(234)와 서드 파티 컴포넌트(236) 간에 전송되는 것을 금지하기 위해, 대체 컴포넌트(256)를 생성할 수 있다. 재작성 모듈(912)은 패키지 모듈(914)로 대체 컴포넌트(256)를 제공할 수 있다.
전자 시스템(100)은 재작성 모듈(912)과 연결된 패키지 모듈(914)을 포함할 수 있다. 패키지 모듈(914)은 리패키지 파일(repackage file)(도 2의 260)을 생성할 수 있다. 예를 들어, 패키지 모듈(914)은 기능 컴포넌트(234), 대체 컴포넌트(256) 또는 이들의 조합을 포함하는 리패키지 파일(260)을 생성할 수 있다.
예를 들어, 패키지 모듈(914)은 기능 컴포넌트(234), 서드 파티 컴포넌트(236)를 대체하는 대체 컴포넌트(256) 또는 이들 조합을 포함하는 파일 디렉토리(206), 파일 폴더(208) 또는 이들의 조합을 패키징하여 리패키징 파일(260)을 생성할 수 있다. 또는, 패키지 모듈(914)은 기능 컴포넌트(234), 대체 컴포넌트(256), 서드 파티 컴포넌트(236) 또는 이들 조합을 포함하는 리패키지 파일(260)을 생성할 수도 있다.
또한, 패키지 모듈(914)은 개인키(또는 비공개 키)를 이용하여 리패키지 파일(260)을 생성할 수 있다. 만약, 리패키지 파일(260)이 제어 함수를 포함하며, 개인키(또는 비공개 키)로 서명되어 있으면, 리패키지 파일(260)의 사용자가 특정될 수 있다. 예를 들어, 리패키지 파일(260)이 제어 인터페이스(254)에 액세스하기 위해, 매니패스트(manifest) 파일 등과 같은 환경설정 파일은 특정 URL, 퍼미션 또는 이들의 조합을 요청할 수 있다. 퍼미션은 제어 인터페이스(254)가 리패키지 파일(260)에 접근하는 것을 허용할 수 있다. 특정 URL 및 퍼미션 사용이 인지되면, 리패키지 파일(260)의 사용자가 확인될 수 있다. 제 1 디바이스(102)는 어플리케이션(204)을 실행하기 위해, 제 1 디바이스(102)에서 변경된 리패키지 파일(260)을 인스톨할 수 있다. 패키지 모듈(914)은 리패키지 파일(260)을 인터페이스 모듈(916)로 제공할 수 있다.
전자 시스템(100)은 패키지 모듈(914)과 연결된 인터페이스 모듈(916)을 포함할 수 있다. 인터페이스 모듈(916)은 제 1 디바이스(102)에 대한 액세스를 제공할 수 있다. 예를 들어, 인터페이스 모듈(916)은 기능 컴포넌트(234), 대체 컴포넌트(256), 서드 파티 컴포넌트(236) 또는 이들의 조합에 대한 액세스를 제공할 수 있다. 인터페이스 모듈(916)은 제어 인터페이스(도 2의 254)를 나타낼 수 있다.
또한, 인터페이스 모듈(916)은 다양한 방식의 액세스를 제공할 수 있다. 예를 들어, 인터페이스 모듈(916)은 퍼미션 레벨(262)에 기초하여, 기능 컴포넌트(234), 대체 컴포넌트(256), 서드 파티 컴포넌트(236) 또는 이들의 조합에 대한 맞춤형 액세스를 제공할 수 있다. 인터페이스 모듈(916)은 직간접 입력, 음성 입력, 제스처 또는 이들의 조합을 포함하는 사용자 입력(도 7의 702)을 수신할 수 있다. 사용자 입력(702)은 리소스 타입(258)에 액세스를 조정하기 위한 퍼미션 레벨(262)을 변경할 수 있다. 예를 들어, 전자 시스템(100)은 액세스를 조정함으로써, 제 1 디바이스(102)에서 실행 중인 어플리케이션(204)의 동작을 조정할 수 있다.
예를 들어, 사용자 입력(702)은 서드 파티 컴포넌트(236)가 제 1 디바이스(102)의 현재 위치를 나타내는 리소스 타입(258)에 액세스 하는 것을 금지하기 위하여 퍼미션 레벨(262)을 변경할 수 있다. 결과적으로, 인터페이스 모듈(916)은 리소스 타입(258)에 대한 액세스 환경설정(도 6의 602)을 변경할 수 있다. 액세스 환경설정(602)은 락(lock)/언락(unlock) 아이콘(icon), 온(on)/오프(off) 스위치 또는 이들의 조합 등으로 나타날 수 있다. 퍼미션 레벨(262)을 변경함으로써, 인터페이스 모듈(916)은 락/언락 아이콘을 이용하여 언락 상태(즉, 액세스 가능)에서 락 상태(즉, 액세스 불가능)로 액세스 환경설정(602)을 변경하거나, 온/오프 스위치를 이용하여 오프 상태(즉, 액세스 가능)에서 온 상태(즉, 액세스 불가능)로 액세스 환경설정(602)을 변경할 수 있다.
어플리케이션(204)은 퍼미션 레벨(262), 액세스 환경설정(602) 또는 이들 조합이 변경됨에 따라, 서드 파티 컴포넌트(236)를 대신하여 대체 컴포넌트(256)를 실행할 수 있다. 예를 들어, 대체 컴포넌트(256)는 퍼미션 레벨(262), 액세스 환경설정(602) 또는 이들 조합으로 표현되는 리소스 타입(258)에 대한 액세스를 금지하는 래퍼 함수(304)로 표현될 수 있다. 또는, 대체 컴포넌트(256)는 제 1 디바이스(102)에서 어플리케이션(204)이 광고를 디스플레이 못하도록, 외부 노티피케이션(404)을 대신하여 대체 노티피케이션(402)을 제공할 수 있다. 또는, 대체 컴포넌트(256)는 서드 파티 제공자가 액세스하는 리소스 타입(258)이 제공하는 정보를 숨기기 위해, 페이크 정보(502)를 제공할 수 있다.
인터페이스 모듈(916)은 전술한 사용자 입력(702)과 유사하게 컨텍스트(도 5의 504)에 기초하여, 퍼미션 레벨(262), 액세스 환경설정(602) 또는 이들의 조합을 조작할 수 있다. 예를 들어, 컨텍스트(504)는 사용자가 특정 지역에 위치하는지 여부를 나타낼 수 있다. 퍼미션 레벨(262)은 제 1 디바이스(102)가 특정 지역에 위치한다는 컨텍스트(504)가 발생되면, 제 1 디바이스(102)의 현재 위치를 나타내는 리소스 타입(258)이 외부 리소스들과 공유되지 않도록 설정될 수 있다. 인터페이스 모듈(916)은 컨텍스트(504)에 기초하여, 어플리케이션(204)이 서드 파티 컴포넌트(236)를 대신하여 대체 컴포넌트(256)를 실행하도록 퍼미션 레벨(262), 액세스 환경설정(602) 또는 이들의 조합을 조정할 수 있다.
이와 같이, 전자 시스템(100)은 퍼미션 레벨(262), 컨텍스트(504) 또는 이들의 조합에 기초하여 액세스 환경설정(602)을 변경하는 제어 인터페이스(254)를 제공함으로써, 사용자 개인 정보에 대한 보안을 향상시킬 수 있다. 또한, 전자 시스템(100)은 액세스 환경설정(602)을 조정함으로써, 서드 파티 제공자와 같은 외부 소스들이 제 1 디바이스(102)의 개인 정보에 접근하는 것을 금지할 수 있다. 결과적으로, 전자 시스템(100)은 사용자 개인 정보가 외부로 노출되는 것을 방지할 수 있다.
컨텍스트(504)의 인스턴스가 컨텍스트(504)의 다른 인스턴스로 변경되는 것은, 제 1 디바이스(102)의 사용자 움직임 등과 같은 실제 움직임에 기인할 수 있다. 실제 세계의 움직임이 발생되면, 전자 시스템(100)은 움직임을 반영하여 퍼미션 레벨(262), 액세스 환경설정(602), 대체 컴포넌트(256) 또는 이들의 조합 등을 조정하기 위한 정보를 생성할 수 있다.
한편, 제 1 디바이스(도 8의 102)의 제 1 소프트웨어(도 8의 826)는 전자 시스템(100)을 포함할 수 있다. 예를 들어, 제 1 소프트웨어(826)는 변경 모듈(902), 추출 모듈(904), 벡터 모듈(906), 분류 모듈(908), 세트 모듈(910), 재작성 모듈(912), 패키지 모듈(914) 및 인터페이스 모듈(916)을 포함할 수 있다.
제 1 제어부(도 8의 812)는 파일 디렉토리(206)를 생성하는 변경 모듈(902)을 위한 제 1 소프트웨어(826)를 실행할 수 있다. 제 1 제어부(812)는 피처(210)를 추출하는 추출 모듈(904)을 위한 제 1 소프트웨어(826)를 실행할 수 있다. 제 1 제어부(812)는 피처 벡터(230)를 산출하는 벡터 모듈(906)을 위한 제 1 소프트웨어(826)를 실행할 수 있다.
또한, 제 1 제어부(812)는 폴더 분류(238)를 생성하는 분류 모듈(908)을 위한 제 1 소프트웨어(826)를 실행할 수 있다. 제 1 제어부(812)는 대체 컴포넌트(256)를 생성하는 재작성 모듈(912)을 위한 제 1 소프트웨어(826)를 실행할 수 있다.
또한, 제 1 제어부(812)는 리패키지 파일(260)을 생성하는 패키지 모듈(914)을 위한 제 1 소프트웨어(826)를 실행할 수 있다. 제 1 제어부(812)는 기능 컴포넌트(234), 대체 컴포넌트(256), 서드 파티 컴포넌트(236) 또는 이들의 조합에 대한 액세스 환경설정(602)을 제공하는 인터페이스 모듈(916)을 위한 제 1 소프트웨어(826)를 실행할 수 있다.
또는, 제 2 디바이스(도 8의 106)의 제 2 소프트웨어(도 8의 842)가 전자 시스템(100)을 포함할 수도 있다. 예를 들어, 제 2 소프트웨어(842)는 변경 모듈(902), 추출 모듈(904), 벡터 모듈(906), 분류 모듈(908), 세트 모듈(910), 재작성 모듈(912), 패키지 모듈(914) 및 인터페이스 모듈(916)을 포함할 수 있다.
제 2 제어부(도 8의 834)는 파일 디렉토리(206)를 생성하는 변경 모듈(902)을 위한 제 2 소프트웨어(842)를 실행할 수 있다. 제 2 제어부(834)는 피처(210)를 추출하는 추출 모듈(904)을 위한 제 2 소프트웨어(842)를 실행할 수 있다. 제 2 제어부(834)는 기능 벡터(23)를 산출하는 벡터 모듈(906)을 위한 제 2 소프트웨어(842)를 실행할 수 있다.
또한, 제 2 제어부(834)는 폴더 분류(238)를 생성하는 분류 모듈(908)을 위한 제 2 소프트웨어(842)를 실행할 수 있다. 제 2 제어부(834)는 대체 컴포넌트(256)를 생성하는 재작성 모듈(912)을 위한 제 2 소프트웨어(842)를 실행할 수 있다.
또한, 제 2 제어부(834)는 리패키지 파일(260)을 생성하는 패키지 모듈(914)을 위한 제 2 소프트웨어(842)를 실행할 수 있다. 제 2 제어부(834)는 기능 컴포넌트(234), 대체 컴포넌트(256), 서드 파티 컴포넌트(236) 또는 이들의 조합에 대한 액세스 환경설정(602)을 제공하는 인터페이스 모듈(916)을 위한 제 2 소프트웨어(842)를 실행할 수 있다.
또는, 전자 시스템(100)은 제 1 소프트웨어(826) 및 제 2 소프트웨어(842)에 분산되어 수행될 수도 있다. 예를 들어, 제 2 소프트웨어(842)는 변경 모듈(902), 추출 모듈(904), 벡터 모듈(906), 분류 모듈(908), 세트 모듈(910), 재작성 모듈(912) 및 패키지 모듈(914)을 포함할 수 있다. 이 경우, 제 2 제어부(834)는 제 2 소프트웨어(842)에 포함된 상기 모듈들을 실행할 수 있다.
제 1 소프트웨어(826)는 인터페이스 모듈(916) 만을 포함할 수 있다. 제 1 소프트웨어(826)는 제 1 저장부(814)의 사이즈에 기초하여, 전자 시스템(100)의 다른 모듈들을 더 포함할 수도 있다. 제 1 제어부(812)는 제 1 소프트웨어(826)에 포함된 상기 모듈들을 수행할 수 있다.
제 1 제어부(812)는 파일 폴더(208), 피처(210), 피처 벡터(230), 폴더 분류(238), 컴포넌트 세트(252), 대체 컴포넌트(256), 리패키지 파일(260) 또는 이들의 조합을 제 2 디바이스(106)와 송수신하기 위해, 제 1 통신 인터페이스(도 8의 828)를 동작시킬 수 있다. 또한, 제 1 제어부(812)는 로케이션부(820)를 위한 제 1 소프트웨어(826)를 실행할 수도 있다. 제 2 제어부(834)는 파일 폴더(208), 피처(210), 기능 벡터(230), 폴더 분류(238), 컴포넌트 세트(252), 대체 컴포넌트(256), 리패키지 파일(260) 또는 이들의 조합을 제 1 디바이스(102)와 송수신하기 위해, 제 2 통신 인터페이스(도 8의 850)를 동작시킬 수 있다.
제 1 제어부(812)는 퍼미션 레벨(262), 액세스 환경설정(602), 기능 컴포넌트(234), 서드 파티 컴포넌트(236), 대체 컴포넌트(256) 또는 이들의 조합을 제 1 디바이스(102)에서 표시하는 인터페이스 모듈(916)을 수행하기 위해 사용자 인터페이스(도 8의 818)를 동작시킬 수 있다. 제 2 제어부(834)는 퍼미션 레벨(262), 액세스 환경설정(602), 기능 컴포넌트(234), 서드 파티 컴포넌트(236), 대체 컴포넌트(256) 또는 이들의 조합을 제 2 디바이스(106)에서 표시하는 인터페이스 모듈(916)을 수행하기 위해 제 2 사용자 인터페이스(838)를 동작시킬 수 있다. 예를 들어, 제 1 사용자 인터페이스(818), 제 2 사용자 인터페이스(838) 또는 이들의 조합은 퍼미션 레벨(262)을 갖는 복수개의 서비스 타입(232)들을 포함하는 어플리케이션(204)을 표시할 수 있다.
전술한 실시예들에서 전자 시스템(100)이 모듈들 또는 순차적 프로세스들로 구현되는 것으로 기술하였다. 모듈들은 다양한 방식으로 조합되거나 분리될 수 있다. 예를 들어, 변경 모듈(902) 및 추출 모듈(904)은 결합되어 구현될 수 있다. 또한, 모듈들 각각은 다른 모듈들과 독립적 및 개별적으로 수행될 수 있다. 또한, 하나의 모듈에서 생성되는 데이터는 다른 모듈에서 사용될 수 있다. 예를 들어, 분류 모듈(908)은 파일 폴더(208)를 포함하는 파일 디렉토리를 변경 모듈(902)로부터 제공받을 수 있다.
한편, 모듈들은 제 1 제어부(812) 또는 제 2 제어부(834)를 구성하는 하드웨어 또는 하드웨어 액셀러레이터(accelerator)로 구현될 수 있다. 또한, 모듈들은 제 1 디바이스(102) 또는 제 2 디바이스(106)를 구성하는 하드웨어 또는 하드웨어 액셀러레이터로 구현될 수 있다. 그러나, 제 1 디바이스(102), 제 2 디바이스(106) 또는 이들의 조합이, 모듈들을 구동시키는 하드웨어 액셀러레이터들의 집합만을 의미하는 것은 아니다. 제 1 디바이스(102), 제 2 디바이스(106) 또는 이들의 조합은 소프트웨어, 하드웨어 또는 이들의 조합으로서 구현될 수 있다.
상술한 본 발명의 실시예들에서, 모듈들은 제 1 디바이스(102), 제 2 디바이스(106) 또는 이들의 조합에 의해 실행될 수 있는 컴퓨터로 읽을 수 있는 기록매체에 저장되는 프로그램으로 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록매체는 제 1 저장부(814), 제 2 저장부(도 8의 846) 또는 이들의 조합일 수 있다. 또한, 컴퓨터로 읽을 수 있는 기록매체는, 하드디스크 드라이브, NVRAM(non-volatile random access memory), SSD(solid-state storage device), CD(compact disk), DVD(digital video disk) 또는 USB(universal serial bus) 플래쉬 메모리 디바이스 등과 같은 비휘발성 메모리일 수 있다. 또는, 컴퓨터로 읽을 수 있는 기록매체는, 전자 시스템(100)의 일부로써 포함되거나, 전자 시스템(100)의 삭제가능한 부분으로써 인스톨될 수 있다.
도 10은 일 실시예에 따라 전자 시스템의 동작 방법을 설명하는 흐름도이다. 도 10의 흐름도(1000)를 참조하면, 1004 단계에서, 전자 시스템(100)은 서비스 타입에 대한 퍼미션 레벨(permission level)을 설정하는 액세스 환경설정과 결합된 어플리케이션을 표시한다. 1006 단계에서, 전자 시스템(100)은 디바이스에서 실행 중인 어플리케이션의 리소스 타입을 액세스하는 서비스 타입의 퍼미션 레벨을 조정하는 입력을 수신한다.
1008단계에서, 전자 시스템(100)은 리소스 타입을 액세스하기 위한 퍼미션 레벨에 기초하여, 대체 컴포넌트를 생성한다. 1010 단계에서, 전자 시스템(100)은 디바이스에서 표시되는 대체 노티피케이션, 페이크 정보 또는 이들의 조합을 제공하는 대체 컴포넌트를 실행한다.
이와 같이, 전자 시스템(100)은 리소스 타입(258)을 액세스 하는 퍼미션 레벨(도 2의 262)에 기초하여 대체 컴포넌트(도 2의 256)를 생성함으로써, 사용자의 개인 정보에 대한 보안을 향상시킬 수 있다. 또한, 전자 시스템(100)은 리소스 타입(258)을 액세스하는 서드 파티 컴포넌트(도 2의 236)를 제어하기 위해, 퍼미션 레벨(262)을 조정하는 액세스 환경설정(602)을 제공할 수 있다. 전자 시스템(100)은 대체 컴포넌트(256)를 생성함으로써, 리소스 타입(258)을 액세스하는 서드 파티 컴포넌트(236)을 대신하여 대체 컴포넌트(256)를 실행할 수 있다. 결과적으로, 전자 시스템(100)은 대체 노티피케이션(도 4의 402), 페이크 정보(도 5의 502) 또는 이들의 조합을 제공함으로써, 사용자의 개인정보에 대한 보안을 향상시킬 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등) 및 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이상과 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (18)

  1. 사용자 인터페이스를 동작시키는 제어부; 및
    상기 제어부와 연결된 사용자 인터페이스를 포함하고,
    상기 사용자 인터페이스는,
    서비스 타입에 대한 퍼미션(permission) 레벨을 조정하는 액세스 환경설정과 연결된 어플리케이션을 표시하고, 디바이스에서의 상기 어플리케이션의 동작을 제어하기 위해 상기 퍼미션 레벨을 변경하는 사용자 입력을 수신하고,
    상기 서비스 타입은 상기 어플리케이션을 구성하는 기능 컴포넌트 및 외부 소스에 의해 제공되는 리소스를 나타내는 서드 파티 컴포넌트를 포함하며,상기 퍼미션 레벨은 상기 서비스 타입의 리소스 타입에 대한 엑세스 허용 여부를 나타내고,
    상기 제어부는, 상기 퍼미션 레벨을 기반으로, 상기 서드 파티 컴포넌트를 대체하기 위한 대체 컴포넌트를 생성하는 전자 시스템.
  2. 제 1 항에 있어서,
    상기 제어부는, 상기 디바이스에서 표시될 외부 노티피케이션을 대체하기 위한 대체 노티피케이션(notification) 및 상기 외부 노티피케이션와 결합되기 위한 페이크(fake) 정보 중 적어도 하나를 제공하는 상기 대체 컴포넌트를 실행하며,
    상기 사용자 인터페이스는, 상기 디바이스에서 상기 대체 노티피케이션, 상기 페이크 정보, 또는 이들의 조합을 표시하는 전자 시스템.
  3. 제 1 항에 있어서,
    상기 제어부는, 상기 어플리케이션의 패키지(package) 파일로부터 언패킹(unpacking)된 파일 디렉토리 내의 파일 폴더를 스캐닝(scanning)하여, 피처 정의에서 정의된 피처(feature)를 추출 하고, 파일 디렉토리, 파일 폴더 또는 이들의 조합을 분류하기 위해 상기 추출된 피처를 트레이닝 데이터에 매칭하여 피처 벡터(feature vector)를 산출하고, 상기 피처 벡터에 기초하여 상기 기능 컴포넌트 또는 상기 서드 파티 컴포넌트를 나타내는 폴더 분류를 생성하고, 상기 생성된 폴더 분류에 기초하여 상기 서비스 타입에 따라 상기 파일 디렉토리, 파일 폴더 또는 이들의 조합을 그룹핑하는 전자 시스템.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 제 2 항에 있어서,
    상기 대체 컴포넌트는, 상기 리소스 타입에 액세스하기 위해 서드 파티 컴포넌트를 대체하는 래퍼 함수(wrapper function)를 포함하는, 전자 시스템.
  8. 삭제
  9. 삭제
  10. 제 2 항에 있어서,
    상기 대체 컴포넌트는, 리소스 서브(sub) 타입에 액세스 하기 위해 상기 리소스 서브 타입에 기초하여 생성되는, 전자 시스템.
  11. 제 1 항에 있어서,
    상기 제어부는, 상기 디바이스에 인스톨하기 위한 상기 기능 컴포넌트, 상기 서드 파티 컴포넌트, 상기 대체 컴포넌트 또는 이들의 조합을 포함하는 리패키지(repackage) 파일을 생성하는, 전자 시스템.
  12. 기능 컴포넌트 및 외부 소스에 의해 제공되는 리소스를 나타내는 서드 파티 컴포넌트를 포함하는 서비스 타입에 대한 퍼미션(permission) 레벨을 조정하기 위한 액세스 환경설정에 연결된 어플리케이션을 표시하는 단계;및
    디바이스에서의 상기 어플리케이션의 동작을 제어하기 위해 상기 퍼미션 레벨을 변경하는 사용자 입력을 수신하는 단계; 및
    상기 퍼미션 레벨을 기반으로, 상기 서드 파티 컴포넌트를 대체하기 위한 대체 컴포넌트를 생성하는 단계를 포함하고,
    상기 퍼미션 레벨은 상기 서비스 타입의 리소스 타입에 대한 엑세스 허용 여부를 나타내는, 전자 시스템의 동작 방법.
  13. 제 12 항에 있어서,
    상기 디바이스에서 표시될 외부 노티피케이션을 대체하기 위한 대체 노티피케이션, 상기 외부 노티피케이션와 결합되기 위한 페이크 정보, 또는 이들의 조합을 상기 디바이스에 나타내도록 제공하기 위해 상기 대체 컴포넌트를 실행하는 단계;를 더 포함하는, 전자 시스템의 동작 방법.
  14. 제 12 항에 있어서,
    상기 어플리케이션의 패키지(package) 파일로부터 언패킹(unpacking)된 파일 디렉토리 내의 파일 폴더를 스캐닝(scanning)하여 피처 정의에서 정의된 피처(feature)를 추출하는 단계;
    파일 디렉토리, 파일 폴더 또는 이들의 조합을 분류하기 위해 상기 추출된 피처를 트레이닝 데이터에 매칭하여, 피처 벡터(feature vector)를 산출하는 단계;
    상기 피처 벡터에 기초하여 상기 기능 컴포넌트 또는 상기 서드 파티 컴포넌트를 나타내는 폴더 분류를 생성하는 단계; 및
    상기 생성된 폴더 분류에 기초하여 상기 서비스 타입에 따라 상기 파일 디렉토리, 파일 폴더 또는 이들의 조합을 그룹핑하는 단계를 더 포함하는, 전자 시스템의 동작 방법.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 제 12 항 내지 제 14 항 중 어느 한 항에 따른 전자 시스템 동작 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체.
KR1020150170661A 2014-12-30 2015-12-02 액세스 매니지먼트 매커니즘을 포함하는 전자 시스템 및 전자 시스템의 동작 방법 KR101817660B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP15875593.4A EP3241102B1 (en) 2014-12-30 2015-12-23 Electronic system with access management mechanism and method of operation thereof
CN201580072086.1A CN107111433B (zh) 2014-12-30 2015-12-23 具有访问管理机制的电子系统及操作该电子系统的方法
PCT/KR2015/014141 WO2016108499A1 (en) 2014-12-30 2015-12-23 Electronic system with access management mechanism and method of operation thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/585,723 US9811679B2 (en) 2014-12-30 2014-12-30 Electronic system with access management mechanism and method of operation thereof
US14/585,723 2014-12-30

Publications (2)

Publication Number Publication Date
KR20160081789A KR20160081789A (ko) 2016-07-08
KR101817660B1 true KR101817660B1 (ko) 2018-01-11

Family

ID=56164536

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150170661A KR101817660B1 (ko) 2014-12-30 2015-12-02 액세스 매니지먼트 매커니즘을 포함하는 전자 시스템 및 전자 시스템의 동작 방법

Country Status (4)

Country Link
US (1) US9811679B2 (ko)
EP (1) EP3241102B1 (ko)
KR (1) KR101817660B1 (ko)
CN (1) CN107111433B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509644B2 (en) * 2015-02-25 2019-12-17 Safedk Mobile Ltd Method and system for controlling integrated software components
JP6372508B2 (ja) * 2016-03-15 2018-08-15 オムロン株式会社 データフロー制御装置およびデータフロー制御方法
US10198597B2 (en) * 2016-05-27 2019-02-05 International Business Machines Corporation Managing mobile application security
CN106355080B (zh) * 2016-08-29 2020-09-08 上海航盛实业有限公司 一种车载信息系统的数据安全访问方法及系统
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
KR102676115B1 (ko) 2016-12-12 2024-06-19 삼성전자주식회사 위치 데이터를 제공하는 전자 장치 및 그 방법
JP6926781B2 (ja) * 2017-07-28 2021-08-25 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
CN107742077B (zh) * 2017-10-09 2020-01-03 武汉斗鱼网络科技有限公司 一种在游戏直播中防止信息泄露的方法及装置
CN111104666B (zh) * 2018-10-25 2023-09-05 戴尔产品有限公司 用于访问服务的方法、设备和计算机可读介质
KR102580881B1 (ko) * 2018-11-08 2023-09-20 삼성전자주식회사 전자 장치, 그의 개인 정보 제공 방법 및 이를 기록한 컴퓨터 판독 가능 기록매체

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030556A1 (en) * 2010-07-29 2012-02-02 Activepath Ltd. Method for enabling interactive content within messaging application
US20120222083A1 (en) * 2011-02-28 2012-08-30 Nokia Corporation Method and apparatus for enforcing data privacy
US20140059695A1 (en) * 2012-08-24 2014-02-27 Environmental Systems Research Institute (ESRI) Systems and methods for managing location data and providing a privacy framework

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717955A (en) 1993-12-03 1998-02-10 Xerox Corporation System for changing device from specialized interface that enables control of subsystem to general interface that performs general purpose computing functions unrelated to the subsystem
US5555376A (en) 1993-12-03 1996-09-10 Xerox Corporation Method for granting a user request having locational and contextual attributes consistent with user policies for devices having locational attributes consistent with the user request
US5956715A (en) * 1994-12-13 1999-09-21 Microsoft Corporation Method and system for controlling user access to a resource in a networked computing environment
JP2001337917A (ja) * 2000-05-30 2001-12-07 Matsushita Electric Ind Co Ltd Gui装置端末装置、リソース制御装置、ネットワークシステム、媒体及び情報集合体
US20030084087A1 (en) * 2001-10-31 2003-05-01 Microsoft Corporation Computer system with physical presence detector to optimize computer task scheduling
US9407662B2 (en) * 2005-12-29 2016-08-02 Nextlabs, Inc. Analyzing activity data of an information management system
US20110283242A1 (en) * 2010-05-14 2011-11-17 Sap Ag Report or application screen searching
JP2011242854A (ja) * 2010-05-14 2011-12-01 Ricoh Co Ltd 画像処理装置、機器連携システム、サービス提供方法、プログラム
US20130014279A1 (en) 2010-07-29 2013-01-10 Ethan Leland System for providing privacy of user information in an online social network with inline editing of privacy levels and customized privacy groups
US9201631B2 (en) * 2011-01-27 2015-12-01 Amplifier Marketing Pty Limited Method and system for providing content
CN102200922B (zh) * 2011-04-06 2013-12-11 宇龙计算机通信科技(深圳)有限公司 应用程序安装方法和终端
CN102801688B (zh) * 2011-05-23 2015-11-25 联想(北京)有限公司 一种数据访问的方法、装置及支持数据访问的终端
US8650550B2 (en) 2011-06-07 2014-02-11 Blackberry Limited Methods and devices for controlling access to computing resources
US8695060B2 (en) * 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US20130205385A1 (en) 2012-02-08 2013-08-08 Microsoft Corporation Providing intent-based access to user-owned resources
US8844032B2 (en) 2012-03-02 2014-09-23 Sri International Method and system for application-based policy monitoring and enforcement on a mobile device
KR101896503B1 (ko) 2012-03-12 2018-09-07 삼성전자주식회사 디바이스 정보자원이 유출되는지 여부를 탐지하는 방법 및 장치
CN103458406B (zh) * 2012-06-04 2018-03-06 北京三星通信技术研究有限公司 终端数据访问的方法及设备
US9043807B2 (en) * 2012-07-30 2015-05-26 Chegg, Inc. Application gateway in a browser based environment
CN103226583B (zh) * 2013-04-08 2017-07-28 北京奇虎科技有限公司 一种广告插件识别的方法和装置
CN104182682B (zh) * 2013-05-23 2017-12-19 贝壳网际(北京)安全技术有限公司 软件安装包中广告的拦截方法、系统、客户端和服务器
CN104252364B (zh) * 2013-06-25 2017-09-12 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
CN103473506B (zh) * 2013-08-30 2016-12-28 北京奇虎科技有限公司 用于识别恶意apk文件的方法和装置
CN103646218B (zh) * 2013-12-12 2016-09-28 用友网络科技股份有限公司 数据访问权限和行为权限的定义装置和定义方法
US9246948B2 (en) * 2014-03-19 2016-01-26 Symantec Corporation Systems and methods for providing targeted data loss prevention on unmanaged computing devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030556A1 (en) * 2010-07-29 2012-02-02 Activepath Ltd. Method for enabling interactive content within messaging application
US20120222083A1 (en) * 2011-02-28 2012-08-30 Nokia Corporation Method and apparatus for enforcing data privacy
US20140059695A1 (en) * 2012-08-24 2014-02-27 Environmental Systems Research Institute (ESRI) Systems and methods for managing location data and providing a privacy framework

Also Published As

Publication number Publication date
EP3241102A1 (en) 2017-11-08
EP3241102A4 (en) 2017-12-20
US20160188895A1 (en) 2016-06-30
CN107111433B (zh) 2020-10-02
EP3241102B1 (en) 2019-05-08
KR20160081789A (ko) 2016-07-08
CN107111433A (zh) 2017-08-29
US9811679B2 (en) 2017-11-07

Similar Documents

Publication Publication Date Title
KR101817660B1 (ko) 액세스 매니지먼트 매커니즘을 포함하는 전자 시스템 및 전자 시스템의 동작 방법
US20220301412A1 (en) Creation of reminders using activity state of an application
US10521242B2 (en) Application containers with updatable application programming interface layers
CN107636666B (zh) 用于控制对于计算设备上的应用的准许请求的方法和系统
US8938394B1 (en) Audio triggers based on context
EP3627311B1 (en) Computer application promotion
US10135940B2 (en) Subscribing to event notifications using object instances
CN107533618B (zh) 保护数据免受未经授权的访问
KR102266203B1 (ko) 클라이언트 디바이스 상에서의 클라우드 서비스 호스팅
US9454674B2 (en) Data sharing control method and data sharing control terminal
US10592063B1 (en) Controlling actions for browser extensions
US11416232B2 (en) Accelerating application and sub-package installations
EP3262535A1 (en) Location-based delivery of structured content
US20160092245A1 (en) Data rich tooltip for favorite items
CN110489158A (zh) 对代码托管平台进行优化的方法、装置、介质和电子设备
KR102368945B1 (ko) 외부 콘텐츠 아이템과의 인코딩된 연관을 제공하는 기법
US11627150B2 (en) Proxy services for the secure upload of file system tree structures
US11520782B2 (en) Techniques for utilizing patterns and logical entities
US20180349131A1 (en) Windows support of a pluggable ecosystem for universal windows application stores
US20180113942A1 (en) Testing pairings to determine whether they are publically known
US11902334B2 (en) Proxy services for controlling the persistency, utilization, and dissemination of information provided to a service worker
US9201713B1 (en) Registering and controlling policies of applications
US20240303101A1 (en) Graphical User Interface For Fungible Configurable Attributes For A Compute Instance
US20240273088A1 (en) System and method for bulk export of resource data for view parameters
WO2016108499A1 (en) Electronic system with access management mechanism and method of operation thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant