KR101700080B1 - 런타임 기반 애플리케이션 행동의 선택적 인에이블 - Google Patents

런타임 기반 애플리케이션 행동의 선택적 인에이블 Download PDF

Info

Publication number
KR101700080B1
KR101700080B1 KR1020167027652A KR20167027652A KR101700080B1 KR 101700080 B1 KR101700080 B1 KR 101700080B1 KR 1020167027652 A KR1020167027652 A KR 1020167027652A KR 20167027652 A KR20167027652 A KR 20167027652A KR 101700080 B1 KR101700080 B1 KR 101700080B1
Authority
KR
South Korea
Prior art keywords
runtime
tag
application
alternative implementation
computing devices
Prior art date
Application number
KR1020167027652A
Other languages
English (en)
Other versions
KR20160121593A (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 KR20160121593A publication Critical patent/KR20160121593A/ko
Application granted granted Critical
Publication of KR101700080B1 publication Critical patent/KR101700080B1/ko

Links

Images

Classifications

    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/04Billing or invoicing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]

Abstract

중앙 위치로부터 복수의 원격 설치 지점으로 소프트웨어를 배치하는 시스템 및 방법. 시스템은 네트워크 액세스가능 서버 시스템 및 복수의 연산 장치를 포함한다. 서버 시스템으로부터의 일반 애플리케이션 전단물의 전달에 기초하여, 런타임 기반 애플리케이션은 연산 장치 각각에 설치된다. 다양한 태그가 네트워크 액세스가능 서버 시스템으로부터 전달되어 연산 장치에서 런타임 기반 애플리케이션의 다양한 구현을 생성한다.

Description

런타임 기반 애플리케이션 행동의 선택적 인에이블{SELECTIVE ENABLEMENT OF RUNTIME-BASED APPLICATION BEHAVIORS}
흔히 소프트웨어 애플리케이션이 서버 시스템으로부터 네트워크를 통해 다양한 클라이언트 컴퓨터로 배치된다.
그러나, 클라이언트 컴퓨터의 부분집합이 상이한 동작 및/또는 기능을 갖는 소프트웨어를 수신하여야 하는 경우, 서버 시스템은 그 대신 클라이언트 컴퓨터의 부분집합 각각으로 소프트웨어 애플리케이션의 맞춤(customized) 또는 별도 버전을 송신할 필요가 있을 수 있다.
소프트웨어 애플리케이션의 상이한 버전들을 개발하고 유지하는 것은 비용이 많이 들고 소프트웨어 애플리케이션 개발자에게는 시간을 지나치게 소비하는 것일 수 있다.
본 개요는 아래 상세한 설명에서 더 자세히 설명되는 개념 중 선택된 것을 단순화된 형태로 소개하기 위해 제공된다. 본 개요는 청구된 주제의 핵심 특징 또는 필수 특징을 식별하려는 것은 아니고, 청구된 주제의 범위를 제한하려는 것도 아니다. 또한, 청구된 주제는 본 개시 내용의 여하한 부분에서 주목된 문제점의 전부 또는 일부를 해결하는 구현으로 제한되지 않는다.
따라서, 본 설명은 중앙 위치(central location)로부터 복수의 원격 설치 장소(install sites)로 소프트웨어를 배치하기 위한 시스템 및 방법을 제공한다. 시스템은 네트워크 액세스가능 서버 시스템 및 다수의 원격 연산 장치를 포함한다. 원격 장치 각각은 네트워크 액세스가능 서버 시스템으로부터의 일반 애플리케이션 제품(general application deliverable)의 전달을 통해 설치되는 초기 구현을 갖는 런타임 기반 애플리케이션을 포함한다. 런타임 기반 애플리케이션은 네트워크 액세스가능 서버 시스템으로부터 태그를 수신하고, 태그를 해석하며, 그에 응답하여 런타임 기반 애플리케이션의 하나 이상의 기존 애플리케이션 행동을 선언하도록 구성되어, 런타임 기반 애플리케이션의 대안적 구현을 생성한다.
아래에서 더 자세히 설명하는 바와 같이, 런타임 기반 애플리케이션의 다양한 구현을 생성하기 위해 태그를 사용하는 것은 애플리케이션 소프트웨어의 설치, 유지, 업그레이드 및 선택적인 버전/특성 배치와 관련한 장점을 제공할 수 있다.
도 1은 중앙 위치로부터 복수의 원격 설치 장소로 소프트웨어를 배치하기 위한 시스템의 실시형태의 블록도를 도시한다.
도 2는 런타임 기반 애플리케이션의 애플리케이션 행동을 선택적으로 인에이블하는 예시적인 방법의 흐름도를 도시한다.
도 3은 서버 시스템과 연산 장치 사이의 예시적인 동기화의 개략도를 도시한다.
도 4는 과금 특성을 활성화하기 위한 예시적인 방법 및 시스템의 개략도를 도시한다.
도 5는 애플리케이션 특성을 활성화하기 위한 예시적인 방법 및 시스템의 개략도를 도시한다.
도 1은 복수의 원격 설치 장소(예를 들어, 클라이언트 연산 장치)로 설치가능한 소프트웨어를 배치(deploy)하기 위한 시스템(20)을 도시한다. 표시된 바와 같이, 시스템(20)은, 네트워크(26)를 통해 복수의 연산 장치(24)와 상호작용하도록 구성된 네트워크 액세스가능 서버 시스템(22)을 포함할 수 있다. 연산 장치(24)는 개인 컴퓨터, 휴대형 디지털 어시스턴트(portable digital assistants), 디지털 미디어 플레이어, 이동 전화 등과 같은 여하한 적당한 유형의 연산 장치를 포함할 수 있다. 네트워크 액세스가능 서버 시스템(22)은 일반 애플리케이션 제품(deliverable)(미도시)을 네트워크(26)를 통해 연산 장치(24)로 전송하도록 구성될 수 있다. 일반 애플리케이션 제품은 수신 시에 연산 장치(24) 각각에 런타임 기반 애플리케이션의 초기 구현을 설치하도록 (또는 설치를 용이하게 하도록) 구성될 수 있다. 다른 경우에, 런타임 기반 애플리케이션은 연상 장치(24) 상에 미리 설치되거나 및/또는 미리 임베드(embedded)될 수 있다. 그러한 경우에, 네트워크 액세스가능 서버 시스템(22)은 네트워크(26)를 통해 연산 장치(24)로 런타임 기반 애플리케이션의 업그레이드를 송신하도록 더 구성될 수 있다. 일부 경우에, 업그레이드는 미리 설치된 및/또는 미리 임베드된 런타임 기반 애플리케이션을 덮어쓰도록(override) 구성될 수 있다.
네트워크 액세스가능 서버 시스템(22)은, 여기서 논의된 다양한 기능 및 동작을 수행하기 위해 로직 서브시스템, 메모리/데이터 저장 서브시스템 등을 개별적으로 또는 집합적으로 포함 및/또는 정의할 수 있는 하나 이상의 연산 장치를 포함할 수 있다. 이들 및 다른 많은 구성요소들이 본 개시 내용의 범위를 벗어나지 않고도 구현될 수 있음을 인식할 것이다.
도 1로 계속하면, 네트워크 액세스가능 서버 시스템(22)은 하나 이상의 태그(미도시)를 네트워크(26)를 통해 연산 장치(24) 각각으로 전송하도로 더 구성될 수 있다. 이러한 태그는 본 명세서에서 설정에 따라, 컨텍스트 수정자(context modifier) 태그, 컨텍스트 수정자 또는 수정자 태그로 다양하게 지칭될 수 있다. 이러한 태그는 런타임 기반 애플리케이션에 의해 해석가능한 XML 기반 태그일 수 있다. 일부 경우에, 태그는 연산 장치(24)로 별도로 전송될 수 있다. 다르게는, 하나 이상의 태그가 연산 장치(24)로 전송되는 XML 문서 내에 포함될 수 있다. 이러한 경우에, 태그의 수신 시에, 각각의 연산 장치(24)의 런타임 기반 애플리케이션은 태그를 해석하고, 그에 응답하여, 런타임 기반 애플리케이션의 대안적 구현을 생성하기 위하여 그 런타임 기반 애플리케이션의 하나 이상의 기존 애플리케이션 행동을 선언(dictate)하도록 구성된다. 그러한 행동은, 런타임 기반 애플리케이션이 초기에 설치되면서 그 행동을 수행할 수 있는 잠재력을 가졌다는 점에서 "기존(pre-existing)"일 수 있지만, 특정 구현에서는 관련 인에이블링 태그가 애플리케이션에 제공되지 않아서 그 행동을 보이지 않을 수 있다.
달리 말해, 런타임 기반 애플리케이션의 코드는, 예를 들어, 애플리케이션 내에서 사용될 수 있는 수백개의 기존 특성 및/또는 동작을 포함할 수 있다. 태그는 이들 특성 각각을 선택적으로 인에이블 또는 디스에이블 하고/하거나 특성이 동작하는 방식을 제어하도록 구성될 수 있다. 예로서, 태그는 특성 특성이 “온” 또는 "오프"임을 나타냄으로써 스위치로 동작할 수 있다. 다른 예로서, 아래에서 더 자세히 설명되는 바와 같이, 태그는 특정 특성과 관련된 구성 파라미터 및/또는 변수의 스트링(string) 또는 정수(integer) 정의를 제공할 수 있다. 그러한 태그를 수신하면, 런타임 기반 애플리케이션은 그 태그를 처리함으로써 태그를 “해석”하여 태그에 의해 표시된대로 런타임 기반 애플리케이션 내의 특성을 선택적으로 인에이블 또는 디스에이블할 수 있다. 따라서, 소프트웨어 패치가 통상 새로운 코드를 제공하는 반면 여기의 예시적인 태그는 보통 런타임 기반 애플리케이션 내의 기존 특성을 선택적으로 인에이블 또는 디스에이블하는데 사용된다는 점에서, 이러한 방식은 소프트에어 패치와 구별된다.
몇 가지 예를 이야기하자면, 초기 애플리케이션의 특성을 인에이블/디스에이블하거나, 유사한 기능에 대한 대안적인 메커니즘을 제공하거나, 대안적인 사용자 인터페이스 레짐(regime) 또는 레이아웃을 제공함으로써, 태그는 애플리케이션의 대안적 구현을 제공하기 위해 애플리케이션의 행동을 선언할 수 있다. 예를 들어, 태그는 쇼핑 카트 특성 세트가 구현되는 여러 서로 다른 사전결정된 방법 중 하나 이상을 특정함으로써 e-커머스 애플리케이션에서의 애플리케이션 행동을 선언할 수 있다. 다른 예로서, 이동 전화 캐리어는 그 캐리어에 특유한 이동 전화 소프트웨어 애플리케이션의 어떤 특성을 인에이블하는데 태그를 사용할 수 있다. 런타임 기반 애플리케이션의 애플리케이션 행동을 선택적으로 인에이블하는 것은 도 2의 방법(40)을 참조하여 더 상세히 설명한다.
일부 실시형태에서, 복수의 연산 장치(24)가, 도 1에 점선 박스로 표시된 제 1 파퓰레이션(28)과 제 2 파퓰레이션(30)과 같이 파퓰레이션으로 그룹화될 수 있다. 그러한 실시형태에서, 파퓰레이션 그룹 또는 하위그룹은, 연산 장치의 지리적 위치, 연산 장치의 유형, 네트워크 액세스가능 서버와 연산 장치 사이의 네트워크 접속의 서비스 제공자 등과 같은 여하한 적당한 기준에 기초할 수 있다. 추가적인 적당한 기준의 예는 사용자 선호, 사용자 언어 설정, 애플리케이션 버전, 장치 펌웨어 버전, 사용자 가입 모델/계약, 네트워크 베어러/대역폭 등을 포함할 수 있다. 그러므로, 시스템(20)의 잠재적인 장점은, 일단 런타임 기반 애플리케이션의 초기 구현이 복수의 원격 설치 지점에 일반적으로 배치되면, 상이한 설치 지점에서 애플리케이션의 상이한 구현을 생성하기 위해 상이한 애플리케이션 행동을 선언하는데 태그가 사용될 수 있다는 것이다. 태그가 애플리케이션의 초기 구현을 설치한 제품(deliverable)보다 현저히 작을 수 있고 그래서 더 효율적인/빠른 송신을 가능하게 할 뿐만 아니라, 태그는 다른 풀 소프트웨어 설치를 필요로 하지 않고 애플리케이션 행동이 원격 설치 장소의 여하한 부분집합에 대해 구체적으로 맞춤화될 수 있도록 할 수 있다.
예를 들어, 이동 전화 캐리어를 위한 소프트웨어는 통상 서비스 제공자 및/또는 지리적 구역과 연관된 특성을 갖는다. 시스템(20)과 같은 시스템은 모든 잠재적인 특성을 포함할 수 있는 일반 애플리케이션 제품의 효율적인 배포를 가능하게 하는데, 여기서 하나의 고객 파퓰레이션에 대한 특유한 구현이 그 그룹에 대한 태그를 통해 인에이블 또는 활성화된다. 그러한 경우에, 각각의 이동 전화 캐리어는 상이한 태그를 수신할 수 있어, 그들의 애플리케이션이 다른 캐리어의 것과 상이한 특정 구현의 것이 되도록 한다.
또한, 시스템(20)과 같은 시스템은 애플리케이션 업데이트 및/또는 업그레이드에 적용가능할 수 있다. 예를 들어, 위의 이동 전화 예를 이용하면, 캐리어는 애플리케이션에 부가적인 특징을 더하기로 결정할 수 있다. 그러면 네트워크 액세스가능한 서버 시스템은, 이들 추가의 특징이 기존 애플리케이션 내에서 활성화될 수 있게 하는 하나 이상의 태그를 송신할 수 있고, 그리하여 애플리케이션의 다른 구현을 생성한다. 애플리케이션의 완전히 새로운 설치의 송신을 요구하지 않음으로써, 시간과 리소스를 아낄 수 있다.
이제 도 2로 가면, 도면은 런타임 기반 애플리케이션의 애플리케이션 행동을 선택적으로 인에이블하는 방법(40)을 도시한다. 42에서, 방법(40)은 복수의 원격 장치로 일반 애플리케이션 제품을 전송하는 단계를 포함한다. 그러한 일반 애플리케이션 제품은, 런타임 기반 애플리케이션의 모듈 구조를 포함하는 컨테이너 애플리케이션과 같은 여하한 적당한 구성의 것일 수 있다. 그러한 일반 애플리케이션 제품은 런타임 기반 애플리케이션을 단일 코드베이스로부터 다양한 플랫폼으로 배치하도록 구성될 수도 있다. 일부 실시형태에서, 네트워크 액세스가능 서버는 도 1을 참조하여 상술한 바와 같이 네트워크 액세스가능 서버 시스템(22)일 수 있다. 따라서, 복수의 원격 장치는 복수의 연산 장치(24)일 수 있다. 상술한 바와 같이, 일부 실시형태에서 하나 이상의 원격 장치는 이동 전화와 같은 휴대형 연산 장치일 수 있다.
일반 애플리케이션 제품은 각각의 원격 장치에서 런타임 기반 애플리케이션의 초기 구현을 설치하거나 설치를 용이하게 하도록 구성된다. 그러한 런타임 기반 애플리케이션은 런타임 환경에서 동작하도록 구성될 수 있다. 예로서, 런타임 기반 애플리케이션은 온라인 음악 스토어 등의, 구매 및/또는 다운로드 가능한 아이템의 온라인 제품 카탈로그일 수 있다. 애플리케이션은, 통화, 보이스메일, 연락처, 캘린더, 알람 등과 같은 기본 요소를 실행하기 위한 이동 전화용 운영 소프트웨어(operating software)와 같은 여하한 다른 적당한 애플리케이션일 수 있다는 점에서, 그러한 애플리케이션은 예시적인 것임을 이해할 것이다.
44에서, 방법(40)은, 원격 장치의 제 1 그룹에 대하여, 일반 애플리케이션 제품으로부터 도출되는 런타임 기반 애플리케이션의 구현을 제어하기 위해 각각의 장치로 제 1 태그를 송신하는 단계를 포함한다. 원격 장치의 제 1 그룹은 도 1을 참조하여 상술한 바와 같은 여하한 적당한 그룹화에 의한 연산 장치의 제 1 파퓰레이션일 수 있다. 예를 들어, 파퓰레이션 그룹은, 연산 장치의 지리적 위치, 연산 장치의 유형, 연산 장치와 네트워크 액세스가능 서버 사이의 네트워크 접속의 서비스 제공자 등과 같은 기준에 기초할 수 있다.
제 1 태그는 원격 장치의 제 1 그룹의 원격 장치 각각의 런타임 기반 애플리케이션에 의해 해석가능한 XML 기반 수정자 태그일 수 있다. 그러므로, 제 1 태그를 해석하면, 런타임 기반 애플리케이션의 대안적 구현을 생성하기 위해 태그는 그 런타임 기반 애플리케이션의 하나 이상의 애플리케이션 행동을 선언한다. 이와 같이, 태그는 원격 장치의 제 1 그룹의 런타임 기반 애플리케이션의 대안적 구현이 일반 애플리케이션 제품을 통해 수신된 런타임 기반 애플리케이션의 초기 구현과 다른 행동을 가질 수 있도록 한다. 그러므로, 런타임 기반 애플리케이션의 애플리케이션 행동을 선택적으로 인에이블하는 방법(40)은 전체 런타임 기반 애플리케이션의 재배치(re-deployment) 및/또는 재설치(re-installation)을 요구하지 않고 장치의 부분집합에 특정한 행동을 최적화하는 잠재적인 이점을 제공한다. 또한, 상술한 바와 같이, 태그는 보통 일반 애플리케이션 제품보다 훨씬 작고, 그러므로, 원격 장치로 보내기가 더 쉽고/거나 빠르다. 일부 경우에, 태그는 애플리케이션 자체에 비해 한 단위(an order of magnitude)로 크기가 작을 수 있다.
제 1 태그는 런타임 기반 애플리케이션에서 가능한 행동 중 여하한 수의 것을 선언할 수 있다. 하나의 가능한 행동 수정 카테고리는 사용자 인터페이스 수정을 포함할 수 있다. 이러란 태그를 통해 수정된 행동은, 애플리케이션 내 광고 배너의 표시 레이아웃, 애플리케이션 내 요소들의 위치(예를 들어, 검색바(search bar)) 등과 같은 런타임 기반 애플리케이션 내의 맞춤형 보기(view)를 선언할 수 있다. 예를 들어, 애플리케이션은 판촉 제안(promotional offer)이 태그에 의해 선언된 바와 같은 사전정의된 레이아웃으로 표시될 수 있는 판촉 페이지를 표시할 수 있다. 예를 들어, 이동 전화 제공자에 있어서, 일반 애플리케이션 제품은 제공자의 모든 고객에게 전송될 수 있다. 그러나, 제공자는 2개의 상이한 수준의 사용자 계약을 제공할 수 있고, 각 계약 수준은 서로 다른 특성 세트를 갖는다. 예로서, 덜 비싼 계약은 사용자에게 많은 광고를 제공하는 것을 포함할 수 있는 반면, 더 비싼 계약은 그런 광고가 없을 수 있다. 이런 경우, 일반 애플리케이션 제품의 두 버전 모두가 태그를 통해 구현될 수 있는데, 여기서 태그는 덜 비싼 계약의 사용자에 대해 애플리케이션 내 광고 특성을 활성화하고, 더 비싼 계약의 사용자에 대해 그런 특성을 비활성화한다. 배너, 사이드바, 팝업 등과 같은 광고 컨텐츠의 표시를 인에이블 및/또는 제어하는 태그와 같이 하나 이상의 추가 태그에 의해 추가의 행동도 선언될 수 있음을 이해할 것이다. 상술한 바와 같이, 이러한 태그는 패킷 형태로 태그를 전송하거나, XML 문서 내에 태그를 포함시키거나, 태그를 별도로 전송하는 등과 같이 여하한 적당한 방식으로 이동 전화로 전송될 수 있다.
다른 예에서, 애플리케이션의 홈페이지는 아이템의 목록을 표시할 수 있는데, 이 목록 내의 “검색” 아이템의 위치가 태그에 의해 지정될 수 있다. 또 다른 예에서, 홈페이지는 표시될 아이템의 수를 정의하는 일반 파라미터에 기초하여 홍보 아이템의 세트를 표시할 수 있는데, 애플리케이션은 태그에 기초하여 그 파라미터의 값에 따라 표시될 여러 아이템을 임의로(randomly) 고를 수 있다.
행동 수정의 다른 가능한 카테고리는 비지니스 로직에 관련된 행동을 포함한다. 예를 들어, 태그는 연산 장치와 서버 사이에서 즐겨찾기된(bookmarked) 아이템의 동기화의 활성화 또는 비활성화를 선언할 수 있다. 이런 경우, 태그는 온라인 쇼핑 카탈로그 애플리케이션에서 장바구니(basket) 및/또는 위시리스트(wishlist)의 동기화를 선언하는데 사용될 수 있다. 예로서, 도 3은 네트워크(58)를 통해 네트워크 액세스가능 서버 시스템(56)과 쇼핑 카트(54)의 동기화를 허용하도록 태그를 통해 구성된 런타임 기반 쇼핑 애플리케이션(52)을 포함하는 연산 장치(50)의 개략도를 도시한다.
비지니스 로직과 관련된 행동의 다른 예에서, 태그는 런타임 기반 애플리케이션 내 빌링(billing) 기능을 선언하는데에, 예를 들어,애플리케이션이 네트워크를 통한 전자 상거래(electronic trasnation)에 참여하기 위해 애플리케이션 내부의 빌링 시스템을 이용할 것인지 여부 또는 애플리케이션이 사용자를 외부 빌링 시스템으로 안내할지 여부를 선언하는데에 사용될 수 있다. 예로서, 도 4는 예시적인 빌링 특성 활성화의 개략도를 도시한다. 이동 전화(60 및 62)는 네트워크(66)를 통해 네트워크 액세스가능 서버 시스템(64)과 상호작용하도록 구성된다. 이동 전화(60 및 62)는 모두 동일한 런타임 기반 애플리케이션을 실행하고 있다. 그러나 이동 전화(60) 상의 애플리케이션은, 이동 전화(60)의 사용자가 애플리케이션으로부터 직접 아이템을 구매할 수 있도록 태그를 통해 활성화되는 내부 빌링 특성을 갖는다. 예로서, 그러한 사용자는 애플리케이션을 통해 직접 아이템을 구매하기 위해 애플리케이션과 관련된 사용자 계정 및 내부 빌링 시스템 특징을 가질 수 있다. 다르게는, 이동 전화(62) 상의 애플리케이션은 활성화된 내부 빌링 특성을 갖지 않고(즉, 특성은 태그를 통해 비활성화되었음), 이 경우 이동 전화(62)의 사용자는 69에 도시된 바와 같이 외부 빌링 특성으로 안내된다.
또한, 태그는 애플리케이션 내 플러그인 및/또는 특성 활성화를 선언하는데 사용될 수 있다. 달리 말해, 태그는 애플리케이션 내 임베드된 플러그인의 활성화 또는 비활성화를 선언할 수 있다. 예로서, 위에서 논의한 온라인 음악 카탈로그에서, 태그는 애플리케이션이 음악 인식 서비스를 제공하거나/하고 웹 라디오 서비스를 제공하도록 허용하는 행동을 선언하는데 사용될 수 있다. 다른 예로서, 도 5는 애플리케이션 특성의 예시적인 활성화의 개략도를 도시한다. 도 5는 런타임 기반 애플리케이션의 홈페이지(74)를 표시하는 디스플레이 스크린(72)을 갖는 이동 전화(70)를 도시한다. 홈페이지(74)는 아이콘과 메뉴를 표시한다. 홈페이지(74)는, 그것이 거의 어떠한 다른 이미지, 텍스트, 아이콘, 메뉴, 검색바, 태스크바 등도 표시할 수 있다는 점에서, 예시적인 것임을 이해할 것이다. 이동 전화(70) 상에서 실행되고 있는 애플리케이션은 태그에 기초하여 활성화 또는 비활성화될 수 있는, 점선으로 표시된 스토어(76) 부가 기능을 포함할 수 있다. 이러한 스토어는 예를 들어 다운로드 및/또는 구매할 수 있는 게임, 음악, 벨소리 등의 디지털 컨테츠 아이템을 포함할 수 있다. 예로서, 이동 전화(70)의 사용자는 이동 전화 서비스 제공자와, 선불 요금제(pre-paid plan)와 같은 제한 서비스 요금제를 가질 수 있다. 이런 경우, 이동 전화(70) 상의 애플리케이션 내 스토어(76)와 같은 특성은 태그를 통해 비활성화될 수 있다. 다르게는, 이동 서비스 제공자와 대용량 데이터 패키지(enhanced data package)와 같은 확장(extended) 서비스 요금제를 갖는 이동 전화(70)의 사용자는 동일한 애플리케이션을 실행하지만 태그를 통해 활성화된 스토어(76)를 가질 수 있다.
추가적으로, 태그는, 플랫폼 버그 해결(workarounds), 래퍼(wrapper) 구현 전략(즉, 오디오 스트림 전략) 및 하드웨어 및 플랫폼 미세 조정(예를 들어, 키 코드, 버퍼 사이즈, 드라이버 이름 등)을 제공하는 것과 같은 런타임 기반 애플리케이션의 다른 행동을 선언하는데 사용될 수 있다.
일부 실시형태에서, 태그는 하나 이상의 구성 파라미터의 정의를 표시할 수 있다. 그러한 구성 파라미터는 희망 행동을 가져오기 위해 켜지거나 꺼지는 이진 “스위치”로 동작할 수 있다. 다른 경우에, 구성 파라미터는, 예를 들어, 셋 이상의 옵션으로부터의 선택을 나타낼 수 있는 변수로서 동작할 수 있다. 예로서, 스트링 형태의 변수는, “스트림버퍼(StreamBuffer),” “파일버퍼(filebuffer),” “rtsp래퍼(rtspwrapper),” “오디오전략5(audiostrategy5)” 등일 수 있는 래퍼 구현 전략과 같이, 셋 이상의 방법 중 어떤 것이 장치의 하드웨어에 가장 잘 맞는지를 연산 장치에 표시할 수 있다. 다른 예로, 정수 형태의 변수는, 연산 장치의 보기를 사전 정의된 보기 {1, 2, 3, 4}에 적응시키기 위해 홍보 레이아웃이 {2, 4, 6, 8}로부터 선택된 값임을 나타낼 수 있다.
일부 경우에, 변수는 직접 구성 파라미터로 적용될 수 있다. 예로서, 스트링 형태의 변수는 드라이브 이름을 나타낼 수 있고, 하드웨어 장치 제조자에 의해 정의된 여하한 값일 수 있다. 다른 예로서, 정수 형태의 변수는 하드웨어에 의해 제공된 정수 값과 동작을 연관시킴으로써 연산 장치에서의 각 동작(예를 들어, 커서 업/다운)에 대한 키 코드를 나타낼 수 있고, 일부 경우에 이는 한 장치에서 다른 장치로 옮김에 따라 변할 수 있다. 또 다른 예에서, 정수 형태의 변수는 버퍼 크기가 이러한 종류의 연산 장치/하드웨어 솔루션에 대한 최적 값으로 정해진 바이트 단위의 여하한 크기임을 나타낼 수 있다.
상술하 바와 같이, 일반 제품에 의해 설치된 애플리케이션을 수정하기 위해 네트워크 액세스가능 서버는 원격 장치의 상이한 파퓰레이션으로 상이한 태그를 송신할 수 있고, 그 결과는 애플리케이션의 대안적 구현이다. 따라서, 46에서 방법(40)은 원격 장치의 제 2 그룹에 대해, 일반 애플리케이션 제품로부터 도출된 런타임 기반 애플리케이션의 구현을 제어하기 위해 장치 각각으로 제 2 태그를 송신하는 단계를 포함한다. 제 2 태그는 제 1 태그를 참조하여 상술한 바와 같이 여하한 적당한 유형의 행동을 선언할 수 있다. 그러므로, 방법(40)은 원격 장치의 제 1 그룹 상에서 런타임 기반 애플리케이션의 제 1 대안적 설치를, 원격 장치의 제 2 그룹 상에서 런타임 기반 애플리케이션의 제 2 대안적 설치를 가져올 수 있다.
일부 실시형태에서, 상술한 방법 및 프로세스는 연산 시스템과 연계될 수 있다. 예로서, 도 1은 상술한 방법 및 프로세스의 하나 이상을 수행할 수 있는 시스템(20)을 개략적으로 도시한다. 시스템(20)은 로직 서브시스템 및 데이터-유지 서브시스템을 포함할 수 있다. 연산 장치(24)는 도 1에 도시되지 않은 디스플레이 서브시스템 및/또는 기타 구성요소를 선택적으로 포함할 수 있다.
상술한 바와 같이, 중앙 서버 시스템 및/또는 원격 장치는 통상 여기에 설명된 다양한 기능을 수행하기 위해 프로세싱 또는 기타 로직 서브시스템을 사용할 것이다. 데이터 유지 서브시스템 및 디스플레이 서브시스템도 사용될 수 있다. 로직 서브시스템은 하나 이상의 명령을 실행하도록 구성된 하나 이상의 물리적 장치를 포함할 수 있다. 예를 들어, 로직 서브시스템은, 하나 이상의 프로그램, 루틴, 오브젝트, 컴포넌트, 데이터 구조, 또는 기타 논리 컨스트럭트의 일부인 하나 이상의 명령을 실행하도록 구성될 수 있다. 이러한 명령은 태스크를 수행하거나, 데이터 유형을 구현하거나, 하나 이상의 장치의 상태를 변환시키거나, 기타 희망 결과에 도달하도록 구현될 수 있다. 로직 서브시스템은 소프트웨어 명령을 실행하도록 구성된 하나 이상의 프로세서를 포함할 수 있다. 추가적으로 또는 대안적으로, 로직 서브시스템은 하드웨어 또는 펌웨어 명령을 실행하도록 구성된 하나 이상의 하드웨어 또는 펌웨어 로직 머신을 포함할 수 있다. 로직 서브시스템은 둘 이상의 장치에 걸쳐 분포된 개별 컴포넌트를 선택적으로 포함할 수 있고, 이는 일부 실시형태에서 원격에 위치할 수 있다.
데이터 유지 서브시스템은, 여기에 설명된 방법 및 프로세스를 구현하기 위해 로직 서브시스템에 의해 실행가능한 데이터 및/또는 명령을 유지하도록 구성된 하나 이상의 물리적 장치를 포함할 수 있다. 이러한 방법 및 프로세스가 구현되는 때에, 데이터 유지 서브시스템의 상태가 (예를 들어, 다른 데이터를 유지하도록) 변환될 수 있다. 데이터 유지 서브시스템은 제거가능(removable) 매체 및/또는 빌트인 장치를 포함할 수 있다. 데이터 유지 서브시스템은, 여러 가지 중에서도, 광 메모리 장치, 반도체 메모리 장치 및/또는 자기 메모리 장치를 포함할 수 있다. 데이터 유지 서브시스템은, 휘발성, 비휘발성, 동적, 정적, 판독/기록, 판독 전용(read-only), 랜덤 액세스, 시퀀셜 액세스, 위치 어드레스가능(location addressable), 파일 어드레스가능, 및 컨텐츠 어드레스가능의 특징 중 하나 이상을 갖는 장치를 포함할 수 있다. 일부 실시형태에서, 로직 서브시스템 및 데이터 유지 서브시스템은, 애플리케이션 특정 집적 회로(application specific integrated circuit) 또는 시스템 온 칩(system on a chip)과 같은 하나 이상의 공통 장치로 통합될 수 있다.
포함되는 경우, 디스플레이 서브시스템은 데이터 유지 서브시스템에 의해 유지되는 데이터의 시각적 표현을 제시하는데 사용될 수 있다. 여기 설명된 방법 및 프로세스가 데이터 유지 서브시스템에 의해 유지되는 데이터를 변화시키고, 그에 따라, 데이터 유지 서브시스템의 상태를 변환시키면서, 디스플레이 서브시스템의 상태는 유사하게 변화되어 기초(underlying) 데이터의 변화를 시각적으로 제시할 수 있다. 디스플레이 서브시스템은 거의 어떠한 유형의 기술도 이용하는 하나 이상의 디스플레이 장치를 포함할 수 있다. 이러한 디스플레이 장치는 로직 서브시스템 및/또는 데이터 유지 서브 시스템과 공유 울타리(enclosure) 내에서 결합될 수 있거나, 또는 그러한 디스플레이 장치는 주변 디스플레이 장치일 수 있다.
여기 설명된 구성 및/또는 접근방식은 속성상 예시적인 것이고, 다양한 변화가 가능하기 때문에 이들 구체적인 실시형태 또는 예는 제한적인 것으로 생각되어서는 안된다는 것을 이해할 것이다. 여기 설명된 구체적인 루틴 또는 방법은 여하한 수의 프로세싱 전략 중 하나 이상을 나타낼 수 있다. 이와 같이, 묘사된 다양한 동작이 묘사된 시퀀스로, 다른 시퀀스로, 병렬로 수행될 수 있고, 또는 일부 경우에는 생략될 수 있다. 유사하게, 상술한 프로세스의 순서는 변화될 수 있다.
본 개시의 주제는 다양한 프로세스, 시스템 및 구성의 모든 신규하고 비자명한 조합(combination) 및 하위조합(subcombination)과, 기타 특성, 기능 동작 및/또는 여기 설명된 속성뿐만 아니라 그 균등물 중 여하한 것 및 전부를 포함한다.

Claims (17)

  1. 중앙 위치로부터 복수의 원격 설치 장소(remote install sites)로 소프트웨어를 배치(deploy)하는 시스템에 있어서,
    네트워크 액세스가능(network-accessible) 서버 시스템; 및
    복수의 클라이언트 연산 장치로서, 상기 복수의 클라이언트 연산 장치의 각각은, 상기 네트워크 액세스가능 서버 시스템으로부터 다운로드된 일반 애플리케이션(general application)의 전달을 통해 설치되는 초기 구현을 갖는, 각자의 클라이언트 연산 장치 상에 실행될 런타임 기반(runtime-based) 애플리케이션을 포함하는 휴대형 연산 장치이고, 상기 런타임 기반 애플리케이션은 런타임 환경 내에서 동작하고 상기 네트워크 액세스가능 서버 시스템으로부터 네트워크를 통해 하나 이상의 태그를 수신하도록 구성되는 것인, 상기 복수의 클라이언트 연산 장치
    를 포함하고,
    상기 런타임 기반 애플리케이션은 또한, 상기 네트워크 액세스가능 서버 시스템로부터 태그의 수신 시에, 상기 태그를 해석하고, 상기 태그에 응답하여, 상기 태그에 의해 표시된대로 상기 런타임 기반 애플리케이션 내의 하나 이상의 특성을 디스에이블함으로써 상기 런타임 기반 애플리케이션의 대안적 구현(alternate implementation)을 생성하기 위해 상기 런타임 기반 애플리케이션의 하나 이상의 기존 애플리케이션 행동을 명령(dictate)하도록 구성되고,
    상기 복수의 클라이언트 연산 장치의 각각은 제 1 그룹 또는 제 2 그룹 중 하나의 일부이고, 상기 네트워크 액세스가능 서버 시스템은 상기 제 1 그룹으로 제 1 태그를 전송하고 상기 제 1 태그와 다른 제 2 태그를 상기 제 2 그룹으로 전송하도록 구성되며, 이러한 상이한 태그의 제공으로 인해, 상기 제 1 그룹의 클라이언트 연산 장치는 상기 제 2 그룹의 클라이언트 연산 장치에 의해 실행되는 것과는 다른 상기 런타임 기반 애플리케이션의 대안적 구현을 실행하고,
    상기 제 1 그룹의 클라이언트 연산 장치에 의해 실행되는 상기 런타임 기반 애플리케이션의 대안적 구현은 제 1 지리적 영역과 연관되고, 상기 제 2 그룹의 클라이언트 연산 장치에 의해 실행되는 상기 런타임 기반 애플리케이션의 대안적 구현은 제 2 지리적 영역과 연관되는 것인,
    소프트웨어 배치 시스템.
  2. 제 1 항에 있어서,
    상기 복수의 클라이언트 연산 장치의 각각은 이동 전화이고, 상이한 태그의 제공으로 인해, 상기 제 1 그룹의 이동 전화가 상기 제 2 그룹의 이동 전화에 의해 실행되는 것과는 다른 운영 소프트웨어를 실행하도록 하는 것인, 소프트웨어 배치 시스템.
  3. 제 1 항에 있어서,
    상기 태그는, 상기 런타임 기반 애플리케이션의 상기 대안적 구현이 상기 네트워크를 통한 전자 상거래에 참가하는데 사용될 수 있게 하도록 빌링(billing) 기능의 활성화를 유발하는 것인, 소프트웨어 배치 시스템.
  4. 제 1 항에 있어서,
    상기 태그는 상기 런타임 기반 애플리케이션의 상기 대안적 구현에서 상기 초기 구현에서 채용되는 것과는 다른 사용자 인터페이스의 활성화를 유발하는 것인, 소프트웨어 배치 시스템.
  5. 제 1 항에 있어서,
    상기 런타임 기반 애플리케이션은 전자 카탈로그를 제공하도록 구성되고, 상기 태그는, 상기 런타임 기반 애플리케이션의 상기 대안적 구현이 상기 초기 구현에서 채용되는 것과는 다른 카탈로그 표시 레이아웃을 사용하도록 하는 것인, 소프트웨어 배치 시스템.
  6. 제 1 항에 있어서,
    상기 태그는 상기 런타임 기반 애플리케이션의 상기 대안적 구현에서 광고 컨텐츠의 제시를 제어하도록 구성되는 것인, 소프트웨어 배치 시스템.
  7. 제 1 항에 있어서,
    상기 태그는 상기 런타임 기반 애플리케이션의 상기 대안적 구현에서 쇼핑 카트 기능의 동기화를 제어하도록 구성되는 것인, 소프트웨어 배치 시스템.
  8. 제 1 항에 있어서,
    상기 태그는 XML 기반 태그인 것인, 소프트웨어 배치 시스템.
  9. 런타임 기반 애플리케이션의 애플리케이션 행동을 선택적으로 인에이블(enable)하는 방법으로서,
    네트워크 액세스가능 서버 시스템으로부터 복수의 클라이언트 연산 장치의 각각으로 일반 애플리케이션 제품(deliverable) - 상기 일반 애플리케이션 제품은 상기 복수의 클라이언트 연산 장치의 각각 상에 각자의 클라이언트 연산 장치 상에서 실행될 런타임 기반 애플리케이션의 설치를 유발하도록 구성됨 - 을 송신하는 단계;
    상기 복수의 클라이언트 연산 장치의 제 1 하위그룹 내 각각의 클라이언트 연산 장치에 상기 네트워크 액세스가능 서버 시스템으로부터 제 1 태그를 송신하는 단계;
    상기 제 1 태그에 기초하여, 상기 제 1 태그에 의해 표시된대로 상기 런타임 기반 애플리케이션 내의 하나 이상의 특성을 디스에이블함으로써 상기 제 1 하위그룹 내 각각의 클라이언트 연산 장치에서 상기 런타임 기반 애플리케이션의 제 1 대안적 구현을 활성화하는 단계;
    상기 복수의 클라이언트 연산 장치의 제 2 하위그룹 내 각각의 클라이언트 연산 장치에 상기 네트워크 액세스가능 서버 시스템으로부터 제 2 태그 - 상기 제 2 태그는 상기 제 1 태그와 다름 - 를 송신하는 단계; 및
    상기 제 2 태그에 기초하여, 상기 제 2 태그에 의해 표시된대로 상기 런타임 기반 애플리케이션 내의 하나 이상의 특성을 디스에이블함으로써 상기 제 2 하위그룹 내 각각의 클라이언트 연산 장치에서 상기 런타임 기반 애플리케이션의 제 2 대안적 구현을 활성화하는 단계
    를 포함하고,
    상기 런타임 기반 애플리케이션의 제 1 대안적 구현은 제 1 지리적 영역과 연관되고, 상기 런타임 기반 애플리케이션의 제 2 대안적 구현은 제 2 지리적 영역과 연관되는 것인,
    런타임 기반 애플리케이션의 애플리케이션 행동을 선택적으로 인에이블하는 방법.
  10. 제 9 항에 있어서,
    상기 복수의 클라이언트 연산 장치의 각각은 이동 전화이고, 상기 제 1 대안적 구현 및 상기 제 2 대안적 구현은 이동 전화 운영 소프트웨어의 대안적 구현인 것인, 런타임 기반 애플리케이션의 애플리케이션 행동을 선택적으로 인에이블하는 방법.
  11. 제 9 항에 있어서,
    상기 제 1 대안적 구현과 상기 제 2 대안적 구현은, 온라인 전자 상거래를 하기 위해 상기 런타임 기반 애플리케이션을 사용하는 것과 관련하여 채용된 빌링 기능이 상이한 것인, 런타임 기반 애플리케이션의 애플리케이션 행동을 선택적으로 인에이블하는 방법.
  12. 제 9 항에 있어서,
    상기 런타임 기반 애플리케이션은 전자 카탈로그를 제공하도록 구성되고, 상기 제 1 대안적 구현과 상기 제 2 대안적 구현은 상이한 카탈로그 표시 아이템을 제공하는 것인, 런타임 기반 애플리케이션의 애플리케이션 행동을 선택적으로 인에이블하는 방법.
  13. 제 9 항에 있어서,
    상기 제 1 태그와 상기 제 2 태그는 XML 기반 태그인 것인, 런타임 기반 애플리케이션의 애플리케이션 행동을 선택적으로 인에이블하는 방법.
  14. 런타임 기반 디지털 컨텐츠 카탈로그의 애플리케이션 행동을 선택적으로 인에이블하는 방법에 있어서,
    네트워크 액세스가능 디지털 컨텐츠 서버 시스템으로부터 복수의 이동 연산 장치의 각각으로 일반 애플리케이션 제품 - 상기 일반 애플리케이션 제품은 상기 복수의 이동 연산 장치 각각 상에 런타임 기반 디지털 컨텐츠 카탈로그의 설치를 유발하도록 구성되며, 상기 런타임 기반 디지털 컨텐츠 카탈로그는 각자의 이동 연산 장치 상에서 실행될 것임 - 을 송신하는 단계;
    상기 복수의 이동 연산 장치의 제 1 하위그룹 내 각각의 이동 연산 장치에 상기 네트워크 액세스가능 디지털 컨텐츠 서버 시스템으로부터 제 1 XML 기반 수정자 태그를 송신하는 단계;
    상기 제 1 XML 기반 수정자 태그에 기초하여, 상기 제 1 XML 기반 수정자 태그에 의해 표시된대로 상기 런타임 기반 디지털 컨텐츠 카탈로그 내의 하나 이상의 특성을 디스에이블함으로써 상기 제 1 하위그룹 내 이동 연산 장치 각각에서 상기 런타임 기반 디지털 컨텐츠 카탈로그의 제 1 대안적 구현을 활성화하는 단계;
    상기 복수의 이동 연산 장치의 제 2 하위그룹 내 각각의 이동 연산 장치에 상기 네트워크 액세스가능 디지털 컨텐츠 서버 시스템으로부터 제 2 XML 기반 수정자 태그를 송신하는 단계; 및
    상기 제 2 XML 기반 수정자 태그에 기초하여, 상기 제 2 XML 기반 수정자 태그에 의해 표시된대로 상기 런타임 기반 디지털 컨텐츠 카탈로그 내의 하나 이상의 특성을 디스에이블함으로써 상기 제 2 하위그룹 내 이동 연산 장치 각각에서 상기 런타임 기반 디지털 컨텐츠 카탈로그의 제 2 대안적 구현을 활성화하는 단계
    를 포함하고,
    상기 런타임 기반 디지털 컨텐츠 카탈로그의 제 1 대안적 구현은 제 1 지리적 영역과 연관되고, 상기 런타임 기반 디지털 컨텐츠 카탈로그의 제 2 대안적 구현은 제 2 지리적 영역과 연관되는 것인,
    런타임 기반 디지털 컨텐츠 카탈로그의 애플리케이션 행동을 선택적으로 인에이블하는 방법.
  15. 제 14 항에 있어서,
    상기 제 1 대안적 구현과 상기 제 2 대안적 구현은, 상기 네트워크 액세스가능 디지털 컨텐츠 서버 시스템으로부터 이용 가능한 다운로드가능 디지털 컨텐츠 아이템을 그래픽 제시하는데 사용된 디스플레이 레이아웃이 상이한 것인, 런타임 기반 디지털 컨텐츠 카탈로그의 애플리케이션 행동을 선택적으로 인에이블하는 방법.
  16. 제 14 항에 있어서,
    상기 제 1 대안적 구현과 상기 제 2 대안적 구현은, 상기 네트워크 액세스가능 디지털 컨텐츠 서버 시스템으로부터 디지털 컨텐츠 아이템을 다운로드 및 구매하는데 사용된 빌링 기능이 상이한 것인, 런타임 기반 디지털 컨텐츠 카탈로그의 애플리케이션 행동을 선택적으로 인에이블하는 방법.
  17. 제 14 항에 있어서,
    상기 복수의 이동 연산 장치의 각각은 이동 전화인 것인, 런타임 기반 디지털 컨텐츠 카탈로그의 애플리케이션 행동을 선택적으로 인에이블하는 방법.
KR1020167027652A 2009-04-16 2010-04-14 런타임 기반 애플리케이션 행동의 선택적 인에이블 KR101700080B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/425,115 2009-04-16
US12/425,115 US8108497B2 (en) 2009-04-16 2009-04-16 Selective enablement of runtime-based application behaviors
PCT/US2010/031097 WO2010120930A2 (en) 2009-04-16 2010-04-14 Selective enablement of runtime-based application behaviors

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020117024204A Division KR20120016196A (ko) 2009-04-16 2010-04-14 런타임 기반 애플리케이션 행동의 선택적 인에이블

Publications (2)

Publication Number Publication Date
KR20160121593A KR20160121593A (ko) 2016-10-19
KR101700080B1 true KR101700080B1 (ko) 2017-01-26

Family

ID=42981696

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167027652A KR101700080B1 (ko) 2009-04-16 2010-04-14 런타임 기반 애플리케이션 행동의 선택적 인에이블
KR1020117024204A KR20120016196A (ko) 2009-04-16 2010-04-14 런타임 기반 애플리케이션 행동의 선택적 인에이블

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020117024204A KR20120016196A (ko) 2009-04-16 2010-04-14 런타임 기반 애플리케이션 행동의 선택적 인에이블

Country Status (7)

Country Link
US (1) US8108497B2 (ko)
EP (1) EP2419835A4 (ko)
JP (1) JP2012524344A (ko)
KR (2) KR101700080B1 (ko)
CN (1) CN102395960B (ko)
RU (1) RU2011141852A (ko)
WO (1) WO2010120930A2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100268735A1 (en) * 2009-04-17 2010-10-21 Microsoft Corporation Online content service with catalog-based interaction
US20110078678A1 (en) * 2009-09-30 2011-03-31 Open Kernel Labs Methods and apparatus for producing cross-platform software applications
US8732697B2 (en) 2010-08-04 2014-05-20 Premkumar Jonnala System, method and apparatus for managing applications on a device
US9154555B2 (en) 2011-03-30 2015-10-06 Paypal, Inc. Device specific remote disabling of applications
US9015576B2 (en) * 2011-05-16 2015-04-21 Microsoft Technology Licensing, Llc Informed partitioning of data in a markup-based document
US8732275B2 (en) * 2011-08-01 2014-05-20 Verizon Patent And Licensing Inc. Methods and systems for delivering a personalized version of an executable application to a secondary access device associated with a user
GB2495081A (en) * 2011-09-23 2013-04-03 Centrix Networking Ltd Management system for delivering an application
EP2842044A4 (en) * 2012-04-26 2015-10-07 Hewlett Packard Development Co PLATFORM TIME ABSTRACTION
US8990883B2 (en) 2013-01-02 2015-03-24 International Business Machines Corporation Policy-based development and runtime control of mobile applications
US10043164B2 (en) * 2013-05-20 2018-08-07 Mastercard International Incorporated System and method for facilitating a transaction between a merchant and a cardholder
US10338906B2 (en) * 2015-09-29 2019-07-02 Facebook, Inc. Controlling feature release using gates
US10341465B2 (en) 2016-04-03 2019-07-02 Microsoft Technology Licensing, Llc Policy driven flight management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268984A (ja) * 2001-03-09 2002-09-20 Tsubasa System Co Ltd プログラム配信装置
US20070073627A1 (en) * 2005-09-23 2007-03-29 Business Objects, S.A. Apparatus and method for processing license keys using dynamic field mapping

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347629A (en) 1992-04-07 1994-09-13 International Business Machines Corporation Graphical user interface including updating of multiple panels using what you see is what you get (WYSIWYG) editor
US6990514B1 (en) * 1999-09-03 2006-01-24 Cisco Technology, Inc. Unified messaging system using web based application server for management of messages using standardized servers
US6901431B1 (en) * 1999-09-03 2005-05-31 Cisco Technology, Inc. Application server providing personalized voice enabled web application services using extensible markup language documents
US6490564B1 (en) * 1999-09-03 2002-12-03 Cisco Technology, Inc. Arrangement for defining and processing voice enabled web applications using extensible markup language documents
US6578000B1 (en) 1999-09-03 2003-06-10 Cisco Technology, Inc. Browser-based arrangement for developing voice enabled web applications using extensible markup language documents
US6952800B1 (en) * 1999-09-03 2005-10-04 Cisco Technology, Inc. Arrangement for controlling and logging voice enabled web applications using extensible markup language documents
US7013340B1 (en) 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6961750B1 (en) 2000-05-18 2005-11-01 Microsoft Corp. Server-side control objects for processing client-side user interface elements
US6963930B2 (en) 2001-02-15 2005-11-08 Centric Software, Inc. Automatic transfer and expansion of application-specific data for display at a website
US7346840B1 (en) 2001-02-26 2008-03-18 Cisco Technology, Inc. Application server configured for dynamically generating web forms based on extensible markup language documents and retrieved subscriber data
US7406418B2 (en) 2001-07-03 2008-07-29 Apptera, Inc. Method and apparatus for reducing data traffic in a voice XML application distribution system through cache optimization
US7065706B1 (en) 2001-08-06 2006-06-20 Cisco Technology, Inc. Network router configured for executing network operations based on parsing XML tags in a received XML document
US7114148B2 (en) 2002-09-30 2006-09-26 Microsoft Corporation Runtime services for network software platform
CN1534503A (zh) * 2003-03-27 2004-10-06 华硕电脑股份有限公司 实现网络游戏中实时影音会谈的方法、系统及储存媒体
US7614052B2 (en) 2004-01-09 2009-11-03 Nexaweb Technologies Inc. System and method for developing and deploying computer applications over a network
US7877744B2 (en) * 2004-11-05 2011-01-25 Qualcomm Incorporated Method, software and apparatus for activating resident applications
US20080148298A1 (en) 2006-12-18 2008-06-19 Palm, Inc. System and Methods for Providing Granular Security for Locally Running Scripted Environments and Web Applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268984A (ja) * 2001-03-09 2002-09-20 Tsubasa System Co Ltd プログラム配信装置
US20070073627A1 (en) * 2005-09-23 2007-03-29 Business Objects, S.A. Apparatus and method for processing license keys using dynamic field mapping

Also Published As

Publication number Publication date
KR20120016196A (ko) 2012-02-23
US20100268581A1 (en) 2010-10-21
EP2419835A2 (en) 2012-02-22
US8108497B2 (en) 2012-01-31
CN102395960A (zh) 2012-03-28
KR20160121593A (ko) 2016-10-19
WO2010120930A3 (en) 2011-01-20
EP2419835A4 (en) 2013-04-17
CN102395960B (zh) 2014-02-05
RU2011141852A (ru) 2013-04-20
JP2012524344A (ja) 2012-10-11
WO2010120930A2 (en) 2010-10-21

Similar Documents

Publication Publication Date Title
KR101700080B1 (ko) 런타임 기반 애플리케이션 행동의 선택적 인에이블
JP6270066B2 (ja) ブランドの自己識別、およびジェネリック電子デバイスにおけるブランディング済ファームウェアのインストール
US9442709B1 (en) Transition experience during loading and updating an interface and applications pack
CN102971688B (zh) 跨平台应用程序框架
US20140282245A1 (en) Dynamic icons
US9413815B2 (en) Methods and apparatuses for imparting functionality to a mobile computing device
US20100281475A1 (en) System and method for mobile smartphone application development and delivery
US8000749B1 (en) Access and use of ad content loaded onto wireless telephones
KR20070103736A (ko) 무선 컴퓨팅 디바이스에 컨텐츠를 제공하는 방법
JP2010522398A (ja) ページ内インストーラ
GB2424546A (en) Scheduling transfer of data content to a mobile telephone
JP2012173885A (ja) 情報処理装置、情報処理方法、情報処理システム、およびプログラム
US11763217B2 (en) Dynamic feature loading
US10290029B2 (en) Engine, system and method of providing application and analytic services across diverse operating platforms
US9336027B2 (en) System and method for modular business applications
CN101185062B (zh) 用于数据语言中变量的自动更新的方法和装置
KR102045917B1 (ko) 광고 정보 운용 방법 및 이를 지원하는 장치
US20240070713A1 (en) Method and apparatus to provide replaceable graphical representation on a home screen
Bedyński Andood–an Android application
JP2014038590A (ja) 端末及び端末にインストールされたアプリケーションを利用した広告方法
US20130222417A1 (en) Apparatus and method for selectively displaying a screen
KR101496241B1 (ko) 사용자별 광고 컨텐츠 생성 장치
CN115268905A (zh) 数据处理方法、装置、电子设备及介质
KR20110089525A (ko) 기기를 위한 pr 위젯
Harper Get Rich Quick? The prospect of Rich Internet Applications.

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 4