KR101195695B1 - Device that determines whether to launch an application locally or remotely as a webapp - Google Patents

Device that determines whether to launch an application locally or remotely as a webapp Download PDF

Info

Publication number
KR101195695B1
KR101195695B1 KR1020097024441A KR20097024441A KR101195695B1 KR 101195695 B1 KR101195695 B1 KR 101195695B1 KR 1020097024441 A KR1020097024441 A KR 1020097024441A KR 20097024441 A KR20097024441 A KR 20097024441A KR 101195695 B1 KR101195695 B1 KR 101195695B1
Authority
KR
South Korea
Prior art keywords
mobile communication
communication device
application program
application
instance
Prior art date
Application number
KR1020097024441A
Other languages
Korean (ko)
Other versions
KR20100007907A (en
Inventor
나겐드라 나가라즈
Original Assignee
콸콤 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 콸콤 인코포레이티드 filed Critical 콸콤 인코포레이티드
Publication of KR20100007907A publication Critical patent/KR20100007907A/en
Application granted granted Critical
Publication of KR101195695B1 publication Critical patent/KR101195695B1/en

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

이동 통신 장치 상에서 실행되는 유틸리티 프로그램이 어플리케이션 프로그램의 제 1 인스턴스(instance)를 이동 통신 장치 상에서 국부적으로(locally) 론치(launch)할 지 또는 어플리케이션 프로그램의 제 2 인스턴스를 웹 어플리케이션으로서 원격적으로 론치할 지를 결정한다. 상기 결정은 제 1 인스턴스가 이동 통신 장치 상에서 론치되고 실행되었다면 얼마나 많은 자원을 소모하였을 것인가의 추정에 적어도 부분적으로 기초한다. 자원들의 예들에는 배터리 용량, 메모리 용량, 및 처리 전력 용량이 포함된다. 현재 실행중인 어플리케이션들과 론치될 어플리케이션에 의해 소모된 자원의 전체 양이 임계 양을 초과한다면, 유틸리티는 어플리케이션을 웹 어플리케이션으로서 원격적으로 론치하기 위해서 이동 통신 장치 상에서 브라우저를 이용하고, 그렇지 않은 경우에는 유틸리티 프로그램은 어플리케이션이 국부적으로 론치되도록 야기한다. 유틸리티 프로그램은 그래픽 사용자 인터페이스(graphical user interface, GUI)를 가지며 이에 의해 유틸리티 프로그램 동작이 구성되고 고객화될 수 있다.The utility program running on the mobile communication device may launch the first instance of the application program locally on the mobile communication device or remotely launch the second instance of the application program as a web application. Decide if The determination is based at least in part on an estimate of how much resources would have been consumed if the first instance had been launched and run on the mobile communication device. Examples of resources include battery capacity, memory capacity, and processing power capacity. If the total amount of resources consumed by currently running applications and the application to be launched exceeds a threshold amount, the utility uses a browser on the mobile communication device to launch the application remotely as a web application, otherwise Utility programs cause the application to be launched locally. The utility program has a graphical user interface (GUI) whereby the utility program operation can be configured and customized.

Description

웹 어플리케이션으로서 어플리케이션을 국부적 또는 원격적으로 론치할 지 여부를 결정하는 장치{DEVICE THAT DETERMINES WHETHER TO LAUNCH AN APPLICATION LOCALLY OR REMOTELY AS A WEBAPP}DEVICE THAT DETERMINES WHETHER TO LAUNCH AN APPLICATION LOCALLY OR REMOTELY AS A WEBAPP} as a web application to determine whether to launch an application locally or remotely

개시된 실시예들은 웹 어플리케이션들에 관련된다.The disclosed embodiments relate to web applications.

셀룰러 전화들은 보다 복잡한 어플리케이션 프로그램들을 실행한다. 복잡한 어플리케이션 프로그램들의 예들에는 비디오 메시징 프로그램들, 이동 텔레비젼 시청 프로그램들, 및 3차원 다중 사용자 비디오 게임 프로그램들이 포함된다. 셀룰러 전화의 일시적 사용자는 종종 단지 무선 전화 대화에 개입하기 위하여 셀룰러 전화를 사용하지 않을 수 있다. 오히려, 사용자는 다른 원격 컴퓨터들에 의해 또한 이들 상에서 제공된 액세스 서비스들과 데이터와 상호작용(interact)하기 위한 입/출력 장치로서 셀룰러 전화를 사용하고 있다. 일 실시예로, 다수의 사용자 각각의 셀룰러 전화는 비디오 게임 어플리케이션 프로그램의 카피(copy)를 실행한다. 모든 사용자들이 공통 가상 환경에서 동일한 다중 사용자 비디오 게임을 플레이할 수 있도록 셀룰러 전화들은 직접 또는 중앙 컴퓨터를 통해 서로 통신한다.Cellular phones run more complex application programs. Examples of complex application programs include video messaging programs, mobile television viewing programs, and three-dimensional multi-user video game programs. Temporary users of cellular telephones may often not use a cellular telephone merely to intervene in a wireless telephone conversation. Rather, a user is using a cellular telephone as an input / output device for interacting with data by other remote computers and with access services provided thereon. In one embodiment, the cellular telephone of each of the plurality of users executes a copy of the video game application program. Cellular phones communicate with each other directly or through a central computer so that all users can play the same multi-user video game in a common virtual environment.

그러나, 셀룰러 전화 상에서 이러한 복잡한 어플리케이션 프로그램을 실행하는 것은 셀룰러 전화의 자원들의 많은 부분을 소모하게 한다. 셀룰러 전화의 자원들의 예들에는 배터리 용량, 메모리 용량, 및 프로세싱 전력이 포함된다. 복잡한 응용 프로그램을 실행하는 것은 많은 가용 배터리 용량을 차지할 수 있다. 사실, 비디오 게임을 플레이하는 것은 너무 많은 배터리 에너지를 사용해서 셀룰러 전화를 셀룰러 전화로서 통신하는데 배터리 에너지가 부족하게 남을 수 있다. 또한, 비디오 게임을 플레이하는 것은 결과적인 방전된 배터리가 너무 방전되어서 정상적인 지속시간의 셀룰러 전화 콜 동안에 셀룰러 전화에 전력공급할 수 없다는 것을 사용자가 인식하지 못할 정도로 배터리 에너지를 급속히 소모시킬 수 있다.However, running such a complex application program on a cellular telephone consumes a large part of the resources of the cellular telephone. Examples of resources of a cellular telephone include battery capacity, memory capacity, and processing power. Running complex applications can take up a lot of available battery capacity. In fact, playing video games uses too much battery energy to communicate a cellular phone as a cellular phone, leaving it running low on battery energy. In addition, playing a video game can quickly drain battery energy such that the user is not aware that the resulting discharged battery is too discharged to power the cellular phone during a normal duration cellular phone call.

복잡한 어플리케이션이 이용가능한 배터리 에너지의 많은 부분을 사용할 뿐만 아니라 복잡한 어플리케이션은 셀룰러 전화의 이용가능한 랜덤 액세스 메모리(RAM)의 많은 부분을 또한 사용할 수 있다. 셀룰러 전화가 다중 사용자 비디오 게임을 플레이하는데 이용된다면, 많은 이용가능한 메모리가 비디오 게임 어플리케이션에 의해 사용되게 되어 셀룰러 전화가 동시에 다른 어플리케이션 프로그램을 인보크(invoke)하지 못할 수 있다. 복잡한 어플리케이션 프로그램을 실행하는 것은 또한 셀룰러 전화의 중앙 처리 장치(CPU)의 이용가능한 처리 전력의 많은 부분을 필요로 하고 또한 이용할 수 있다. 셀룰러 전화가 다중 사용자 비디오 게임을 플레이하는데 이용되면, 셀룰러 전화의 많은 처리 전력이 사용되게 되어 원하는 처리 속도 및 응답성(responsiveness)으로 다른 어플리케이션 프로그램을 실행하는 것이 불가능해질 수 있다.In addition to using a large portion of battery energy available to complex applications, complex applications may also use a large portion of the available random access memory (RAM) of cellular telephones. If a cellular telephone is used to play a multi-user video game, much of the available memory may be used by the video game application so that the cellular telephone may not be able to invoke other application programs at the same time. Running a complex application program also requires and can use a large portion of the available processing power of the cellular telephone central processing unit (CPU). If a cellular telephone is used to play a multi-user video game, much of the processing power of the cellular telephone may be used, making it impossible to execute other application programs at the desired processing speed and responsiveness.

이들 문제점들 중 일부는 원격 컴퓨터 상에서 복잡한 어플리케이션 프로그램을 실행하고 셀룰러 전화를 어플리케이션과 상호작용하기 위한 입/출력 장치로서 사용함에 의해 해소될 수 있다. 원격 컴퓨터와 상호작용하는데 이용되고 셀룰러 전화 상에서 실행되는 브라우저 소프트웨어는 복잡한 어플리케이션 프로그램이 셀룰러 전화 상에서 실행되는 경우보다 더 적은 자원들을 사용한다. 따라서, 셀룰러 전화에서 사원들의 이용이 감소된다. 원격 컴퓨터 상에서 실행되는 어플리케이션 프로그램은 때때로 "웹-브라우져 어플리케이션", "웹 어플리케이션" 또는 "Webapp"로 불리는데, 그 이유는 셀룰러 전화 상에서 실행되는 브라우저가 원격 컴퓨터 상에서 구동되는 어플리케이션과 월드 와이드 웹(World Wide Web)을 통해 통신하는데 이용되기 때문이다. 컴퓨터들의 클러스터(때때로 "서버 팜(server farm)"이라고 불림) 상에서 실행되는 이러한 어플리케이션들에 대한 인터넷 액세스가 웹 어플리케이션으로서 셀룰러 전화 사용자들에 의한 사용을 위한 비용으로 제공될 수 있다. 일 실시예에서, 다중 사용자 비디오 게임 어플리케이션 프로그램은 이러한 서버 팜의 컴퓨터 상에서 실행된다. 셀룰러 전화 상에서 복잡한 어플리케이션 프로그램을 실행하는 셀룰러 전화 자원들의 대부분을 소모하는 대신에, 사용자는 셀룰러 전화 상에서 브라우저를 실행하고 서버 팜의 컴퓨터 상에서 실행되는 복잡한 어플리케이션 프로그램과 상호작용하기만 하면 된다. Some of these problems can be solved by running complex application programs on remote computers and using cellular telephones as input / output devices for interacting with applications. Browser software used to interact with a remote computer and running on a cellular telephone uses less resources than when a complex application program is running on a cellular telephone. Thus, the use of employees in cellular telephones is reduced. Application programs running on a remote computer are sometimes called "web-browser applications", "web applications" or "Webapps" because the browser running on the cellular phone runs on the remote computer and the World Wide Web. This is because it is used to communicate via Web. Internet access to these applications running on a cluster of computers (sometimes called a "server farm") can be provided at a cost for use by cellular telephone users as web applications. In one embodiment, the multi-user video game application program runs on a computer in such a server farm. Instead of consuming most of the cellular phone resources running complex application programs on the cellular phone, the user only needs to run a browser on the cellular phone and interact with the complex application program running on a computer in the server farm.

그러나, 원격 컴퓨터 상에서 이러한 복잡한 어플리케이션 프로그램을 실행하는 것이 항상 바람직한 것은 아니다. 가격 이슈, 또는 통신 지연 또는 신뢰성 이슈, 또는 특정 상황에서 셀룰러 전화 상에서의 복잡한 어플리케이션의 실행을 선호하는 다른 이슈들이 존재할 수 있다. 셀룰러 전화의 자원들이 이러한 어플리케이션 프로그램들의 사용으로 인해 얼마 남지 않게 된 경우에, 셀룰러 전화 상에서 이용가능한 여분의 자원들이 매우 조금 존재할 수 있다. 이때, 예를 들어, 높은 우선순위 어플리케이션이 사용되는 경우에, 자원 사용량의 전체 양이 셀룰러 전화 상에서 이용가능한 자원의 전체 양을 초과한다면 높은 우선순위 어플리케이션 프로그램을 인보크하는 것이 불가능할 수 있다. 상기 상황은 또한 자원이 너무 과도하게 사용되어서 인커밍 셀룰러 전화가 수신되는 경우에, 셀룰러 전화가 콜을 수신할 적절한 자원을 갖지 못하는 경우도 포함할 수 있다. 자원들을 관리하고 주어진 상황에서 어떠한 어플리케이션 프로그램들을 웹 어플리케이션으로서 오프로드(offload)할지와 어떠한 어플리케이션 프로그램들을 오프로드하지 않고 인보크하지 않을지를 결정하는 것은 성가시기도 하고 곤란할 수 있다. However, running such a complex application program on a remote computer is not always desirable. There may be price issues, or communication delays or reliability issues, or other issues that favor the execution of complex applications on cellular phones in certain situations. If the resources of the cellular telephone are shortened due to the use of these application programs, there may be very little extra resources available on the cellular telephone. At this time, for example, when a high priority application is used, it may be impossible to invoke a high priority application program if the total amount of resource usage exceeds the total amount of resources available on the cellular telephone. The situation may also include the case where the cellular phone does not have adequate resources to receive the call, in case the resource is so excessively used that an incoming cellular telephone is received. Managing resources and deciding which application programs to offload as a web application in a given situation and which application programs to not invoke without offloading can be cumbersome and difficult.

이동 통신 장치(예를들어, 셀룰러 전화) 상에서 실행되는 유틸리티 프로그램이 어플리케이션 프로그램의 제 1 인스턴스(instance)를 이동 통신 장치 상에서 국부적으로(locally) 론치(launch)할 지 또는 어플리케이션 프로그램의 제 2 인스턴스를 웹 어플리케이션으로서("Webapp") 원격적으로 론치할 지를 결정한다. 상기 결정은 제 1 인스턴스가 이동 통신 장치 상에서 론치되고 실행되었다면 얼마나 많은 자원을 소모하였을 것인가의 추정에 적어도 부분적으로 기초한다. 자원들의 예들에는 배터리 용량 또는 배터리 에너지 사용량, 메모리 용량 또는 메모리 사용량, 및 처리 전력 용량 또는 사용량이 포함된다. 일 실시예에서, 현재 실행중인 어플리케이션들과 어플리케이션 프로그램의 제 1 인스턴스를 실행함에 의해 소모된 특정 자원의 전체 양이 임계 양을 초과한다면, 유틸리티 프로그램은 어플리케이션 프로그램의 제 2 인스턴스를 웹 어플리케이션으로서 원격적으로 론치하기 위해서 이동 통신 장치 상에서 브라우저 프로그램을 이용하고, 그렇지 않은 경우에는 유틸리티 프로그램은 어플리케이션 프로그램의 제 1 인스턴스가 국부적으로 론치되도록 야기한다. 유틸리티 프로그램은 론칭 타입에 따라 결정된 것이 야기되도록 이동 통신 장치의 운영 체계와 상호작용한다.A utility program running on a mobile communication device (e.g., a cellular telephone) may launch a first instance of the application program locally on a mobile communication device or a second instance of the application program. Determines whether to launch remotely as a web application ("Webapp"). The determination is based at least in part on an estimate of how much resources would have been consumed if the first instance had been launched and run on the mobile communication device. Examples of resources include battery capacity or battery energy usage, memory capacity or memory usage, and processing power capacity or usage. In one embodiment, if the total amount of specific resources consumed by running the first instance of the application program and the currently running applications exceeds a threshold amount, the utility program may remotely use the second instance of the application program as a web application. A browser program is used on the mobile communication device to launch it, otherwise the utility program causes the first instance of the application program to be launched locally. The utility program interacts with the operating system of the mobile communication device to cause what is determined according to the launch type.

일부 실시예들에서, 제 1 및 제 2 인스턴스들은 동일한 프로그램들이다. 일부 실시예에서, 제 1 인스턴스는 제한된 자원들을 갖는 장치 상에서의 실행을 위해 고객화되고(customized) 조정된 어플리케이션의 단순화된 버전이다. 한편, 제 2 인스턴스는 이동 통신 장치의 자원 제약을 갖지 않는 원격 컴퓨터 상에서 실행하기에 적합하다.In some embodiments, the first and second instances are the same programs. In some embodiments, the first instance is a simplified version of an application that has been customized and tailored for execution on a device with limited resources. On the other hand, the second instance is suitable for running on a remote computer without the resource constraints of the mobile communication device.

유틸리티 프로그램은 그래픽 사용자 인터페이스(graphical user interface, GUI)를 가지며 이에 의해 이동 통신 장치의 사용자가 유틸리티 프로그램을 구성하고 고객화할 수 있다. 예를들어, GUI는 어플리케이션을 웹 어플리케이션으로서 원격적으로 론치하도록 결정하는 조건들을 변경하는데 이용가능하다. 사용자는 GUI를 특정 어플리케이션의 오프로딩(offloading)을 디스에이블(disable)하는데 이용할 수 있다.The utility program has a graphical user interface (GUI) that allows a user of the mobile communication device to configure and customize the utility program. For example, a GUI can be used to change conditions that determine to launch an application remotely as a web application. The user can use the GUI to disable offloading of a particular application.

특정 실시예에서, GUI는 사용자에 의한 적절한 프롬프트(prompt)에 응답하여 자원 사용량 테이블이 이동 통신 장치의 디스플레이 상에 디스플레이되도록 야기한다. 상기 테이블은 이동 통신 장치 상에서 실행되고 있는 모든 어플리케이션 프로그램들을 리스트한다. 또한, 상기 테이블은 론치될 어플리케이션 프로그램을 리스트한다. 리스트된 각 어플리케이션 프로그램에 대하여, 상기 테이블은 각 자원 형태에 대한 사용량 값을 포함한다. 론치될 어플리케이션 프로그램의 경우에는, 사용량 값들은 추정된 사용량 값들이 된다. 추정된 사용량 값들은 어플리케이션 프로그램의 제 1 인스턴스가 이동 통신 장치 상에서 국부적으로 실행된다면 일어났을 사용량들이다. 현재 실행되고 있는 어플리케이션 프로그램들의 자원 사용량 값들과 론치될 어플리케이션 프로그램의 추정된 자원 사용량 값들에 적어도 부분적으로 기초하여, 유틸리티 프로그램은 론치될 어플리케이션 프로그램이 이동 통신 장치 상에서 실행되어야 하는지 또는 이동 통신 장치 상에서 실행되어서는 안 되는지 여부를 결정한다. 상기 결정이 어플리케이션 프로그램이 이동 통신 장치 상에서 실행되어서는 안 된다는 것이라면, 유틸리티 프로그램은 어플리케이션 프로그램의 제 2 인스턴스를 웹 어플리케이션으로서 원격적으로 론치하기 위하여 이동 통신 장치 상에서 브라우저 프로그램을 이용한다. 이 시나리오에서, 어플리케이션 프로그램의 제 2 인스턴스는 분할(split)되지 않아서, 이동 통신 장치에서 실행되었던 어플리케이션 프로그램의 일부와 어플리케이션 프로그램의 다른 일부가 원격적으로 실행된다. 어플리케이션 프로그램의 제 2 인스턴스의 어느 부분도 이동 통신 장치 상에서 실행되지 않는다. 그러나, 상기 결정이 어플리케이션 프로그램이 이동 통신 장치 상에서 실행되어야 한다는 것이라면, 유틸리티는 어플리케이션 프로그램의 제 1 인스턴스가 이동 통신 장치 상에서 국부적으로 론치되도록 야기한다. 어플리케이션 프로그램의 제 1 인스턴스는 이동 통신 장치와 원격 컴퓨터 사이에서 분할되지 않는다. 어플리케이션 프로그램의 제 1 인스턴스의 어떤 부분도 원격 컴퓨터 상에서 실행되지 않는다.In certain embodiments, the GUI causes the resource usage table to be displayed on the display of the mobile communication device in response to an appropriate prompt by the user. The table lists all application programs running on the mobile communication device. The table also lists application programs to be launched. For each application program listed, the table contains usage values for each resource type. In the case of an application program to be launched, the usage values are the estimated usage values. The estimated usage values are the usage amounts that would have occurred if the first instance of the application program was run locally on the mobile communication device. Based at least in part on the resource usage values of the currently executing application programs and the estimated resource usage values of the application program to be launched, the utility program may be executed on or running on the mobile communication device. Determine whether or not If the determination is that the application program should not be run on the mobile communication device, the utility program uses the browser program on the mobile communication device to remotely launch a second instance of the application program as a web application. In this scenario, the second instance of the application program is not split, so that the part of the application program that was executed on the mobile communication device and the other part of the application program are executed remotely. None of the second instances of the application program run on the mobile communication device. However, if the determination is that the application program should be run on the mobile communication device, the utility causes the first instance of the application program to be launched locally on the mobile communication device. The first instance of the application program is not split between the mobile communication device and the remote computer. No part of the first instance of the application program runs on the remote computer.

다른 실시예들에서, 유틸리티 프로그램은 일부 자원 사용량 조건들 하에서 어플리케이션 프로그램의 제 2 인스턴스의 실행을 원격 컴퓨터 상에서 중단시킬 수 있다. 어플리케이션 프로그램의 제 1 인스턴스는 제 2 인스턴스가 중단된 때에 있는 상태에서는 이동 통신 장치 상에서 론치된다. 따라서, 어플리케이션 프로그램의 실행은 유틸리티 프로그램의 제어 하에서 원격 컴퓨터로부터 다시 이동한다.In other embodiments, the utility program may stop execution of the second instance of the application program on the remote computer under some resource usage conditions. The first instance of the application program is launched on the mobile communication device in a state where the second instance is at an interruption. Thus, execution of the application program moves back from the remote computer under the control of the utility program.

이상은 요약이며, 따라서 그 필요에 따라 단순화, 일반화 및 구체적인 부분의 생략을 포함하며, 그러므로, 당업자는 상기 요약이 단지 예시적인 것이며 제한적인 것으로 의도된 것이 아님을 이해할 수 있을 것이다. 설명된, 청구범위에 의해 정의되는 바와 같은, 다른 양상들, 발명적 특징들, 및 장치 및/또는 프로세스의 이점들은, 이하 제시되는 비한정적 상세한 설명에 의해 명확하게 될 것이다.The foregoing is a summary, and therefore includes simplifications, generalizations, and omissions of specific parts as necessary, and one of ordinary skill in the art, therefore, will understand that the summary is illustrative only and not intended to be limiting. Other aspects, inventive features, and advantages of the apparatus and / or process, as defined by the claims, as described, will be apparent from the non-limiting detailed description set forth below.

도 1은 일 신규 양상에 따라 신규한 유틸리티 프로그램을 실행하는 이동 통신 장치의 전면도이다.1 is a front view of a mobile communication device for executing a novel utility program in accordance with one novel aspect.

도 2는 신규한 유틸리티 프로그램의 동작을 도시하는 단순화된 흐름도이다.2 is a simplified flowchart illustrating the operation of the novel utility program.

도 3은 도 1의 이동 통신 장치에서와 원격 컴퓨터 상에서 실행되는 소프트웨어를 도시하는 다이어그램이다.3 is a diagram illustrating software running on the mobile communication device of FIG. 1 and on a remote computer.

도 4는 도 3의 이동 통신 장치, 도3의 원격 컴퓨터, 및 이들 두 개 사이의 통신 경로를 나타낸다.4 illustrates the mobile communication device of FIG. 3, the remote computer of FIG. 3, and the communication path between the two.

도 5는 도 4의 이동 통신 장치와 도 4의 원격 컴퓨터 사이에서 일어나는 일련의 통신들을 도시한다.FIG. 5 illustrates a series of communications that occur between the mobile communication device of FIG. 4 and the remote computer of FIG. 4.

도 1은 일 신규 양상에 따른 이동 통신 장치의 전면도이다. 이러한 실시예에서 이동 통신 장치(100)는 안테나(101), 내장 마이크로폰(102), 스피커(103), 디스플레이(104) 및 QWERTY 키패드(105)를 갖는 셀룰러 전화이다. 이동 통신 장치(100) 내의 전자장치는, 다른 부품들 중에서도, RF 송수신기 회로, 디지털 기저대역 프로세서 집적 회로, 재충전가능 배터리 또는 배터리들, 및 전력 관리 집적 회로를 포함한다. 이 회로들은 도 1에 도시되지 않았는데, 이는 도 1이 평면도이고 상기 회로들이 이동 통신 장치(100)의 하우징(housing) 내에 포함되어 있기 때문이다. 기저대역 프로세서 집적 회로는 임의 양의 반도체 메모리와, 디지털 프로세서를 포함한다. 반도체 메모리는 프로세서 상에서 실행가능한 프로세서-실행가능 명령들의 프로그램을 저장하는 프로세서-판독가능 매체이다. 프로세서는 메모리를 액세스하고 메모리로부터의 프로세서-실행가능 명령들의 운영 체계 프로그램을 실행한다. 프로세서는 또한 어플리케이션 계층 프로그램들을 실행할 수 있다. 도1의 실시예에서, 상기 프로세서 상에서 실행되고 있는 이러한 어플리케이션 계층 프로그램들은 다수 개 존재하며, "WP"로 표시된 워드 프로세서 프로그램, "EMAIL"로 표시된 이메일 및 달력 및 콘택 관리 프로그램, "GAME"으로 표시된 3차원 다중 사용자 비디오 게임, "BROWSER"로 표시된 웹 브라우저 프로그램, 및 신규한 유틸리티 프로그램이 포함된다. 유틸리티 프로그램의 실행은 그래픽 사용자 인터페이스(GUI)를 제공하며, 이에 의해 이동 통신 장치(100)의 사용자는 유틸리티 프로그램의 출력을 볼 수 있으며 유틸리티 프로그램과 상호작용하고 이를 구성할 수 있게 된다. 유틸리티 프로그램의 한 동작 모드에서, GUI는 자원 사용량 테이블(106)이 디스플레이(104) 상에 디스플레이되도록 야기한다.1 is a front view of a mobile communication device according to one novel aspect. In this embodiment the mobile communication device 100 is a cellular telephone with an antenna 101, a built-in microphone 102, a speaker 103, a display 104 and a QWERTY keypad 105. The electronics in the mobile communication device 100 include, among other components, an RF transceiver circuit, a digital baseband processor integrated circuit, a rechargeable battery or batteries, and a power management integrated circuit. These circuits are not shown in FIG. 1 because FIG. 1 is a top view and the circuits are contained within a housing of the mobile communication device 100. Baseband processor integrated circuits include any amount of semiconductor memory and digital processors. A semiconductor memory is a processor-readable medium that stores a program of processor-executable instructions executable on a processor. The processor accesses the memory and executes an operating system program of processor-executable instructions from the memory. The processor may also execute application layer programs. In the embodiment of Figure 1, there are a number of such application layer programs running on the processor, a word processor program labeled "WP", an e-mail and calendar and contact management program labeled "EMAIL", and labeled "GAME". Three-dimensional multi-user video games, web browser programs labeled "BROWSER", and novel utility programs. Execution of the utility program provides a graphical user interface (GUI), whereby a user of the mobile communication device 100 can view the output of the utility program and can interact with and configure the utility program. In one mode of operation of the utility program, the GUI causes the resource usage table 106 to be displayed on the display 104.

자원 사용량 테이블(106)은 셀룰러 전화 상에서 실행되고 있는 다양한 프로그램들의 리스트를 맨 왼쪽 컬럼에서 포함하고 있다. "SYSTEM" 엔트리는 운영 체계와 신규한 유틸리티 어플리케이션 프로그램을 나타낸다. 유틸리티 프로그램이 어플리케이션 계층 프로그램이기는 하나, 이는 운영 체계와 밀접하게 관련되어 있고 따라서 운영 체계의 일부로서 리스트되어 있다. 리스트된 프로그램들 각각에 대하여, 자원 사용량 테이블(106)은 사용되고 있거나 또는 그렇지 않은 경우에 프로그램에 의해 할당되거나 유보되는 자원의 양을 표시하는 수치 값을 포함한다. 도1의 실시예에서, 베터리 전력 사용량(디스플레이 상에 "BAT"로 리스트됨), 메모리 사용량("MEM"으로 리스트됨), 및 처리 전력 사용량(processing power usage)("CPU"로 리스트됨)의 세 개의 상이한 자원들이 리스트된다. 예를 들어, "EMAIL"로 표시된 이메일 프로그램이 3개 단위(unit)의 전력 사용량 자원 "BATT"을 사용하는 것으로 표시될 수 있고, 메모리 사용량 자원 "MEM"은 2개의 단위를, 처리 전력 자원 "CPU"는 1개의 단위를 사용하는 것으로 표시될 수 있다. 자원 사용량 테이블(106)의 아래 열은 세 개 자원들에 대한 임계 값을 제시한다. 자원 사용량 테이블(106)의 사용량 값들과 임계 값들의 단위들은 서로에 대하여 정규화된다. 일 실시예에서, 임계 값들은 사용자에 의해 변경될 수 없는 고정값들이다. 다른 실시예에서, GUI는 이동 통신 장치(100)의 사용자가 미리 결정된 범위 내에서 임계 값들을 수동으로 변경하는 것을 허용한다.The resource usage table 106 contains a list in the leftmost column of various programs running on the cellular telephone. The entry "SYSTEM" indicates an operating system and a new utility application program. Although utility programs are application layer programs, they are closely related to the operating system and are therefore listed as part of the operating system. For each of the listed programs, the resource usage table 106 includes a numerical value that indicates the amount of resources that are being used or otherwise allocated or reserved by the program. In the embodiment of Figure 1, battery power usage (listed as "BAT" on the display), memory usage (listed as "MEM"), and processing power usage (listed as "CPU") Three different resources of are listed. For example, an e-mail program labeled "EMAIL" may be indicated as using three units of power usage resource "BATT", and the memory usage resource "MEM" represents two units, and a processing power resource " CPU "may be indicated as using one unit. The bottom column of the resource usage table 106 presents the thresholds for the three resources. The usage values and units of threshold values in the resource usage table 106 are normalized with respect to each other. In one embodiment, the threshold values are fixed values that cannot be changed by the user. In another embodiment, the GUI allows a user of the mobile communication device 100 to manually change the threshold values within a predetermined range.

자원 사용량 테이블(106)의 맨 오른쪽 컬럼은 프로그램들 각각이 웹 어플리케이션으로서 원격 컴퓨터 상에서 실행되기 위하여 오프로드되었는지 여부에 대한 표시를 포함한다. 도1의 실시예에서, 비디오 게임 어플리케이션 "GAME"이 원격 컴퓨터 상에서 실행되고 있고, 셀룰러 전화(100)의 브라우저와 셀룰러 전화 하드웨어 자체가 원격 컴퓨터 상에서 원격적으로 실행되고 있는 게임 프로그램과 상호작용하는데 이용되고 있다. 어플리케이션 프로그램 "GAME"이 오프로드되었다는 사실이 맨 오른쪽 컬럼에서 체크 마크로서 표시되어 있다. GUI는 사용자가 리스트된 프로그램들 중 선택된 하나의 오프로딩을 수동으로 디스에이블(disable)하는 것을 허용한다. 도1의 실시예에서, 사용자는 "EMAIL"로 표시된 이메일 프로그램의 오프로딩을 디스에이블하였다. "오프로드 디스에이블됨" 상태가 자원 사용량 테이블(106)에서 맨 오른쪽 컬럼의 십자표시에 의해 표시된다. The rightmost column of the resource usage table 106 includes an indication of whether each of the programs was offloaded to run on the remote computer as a web application. In the embodiment of Figure 1, the video game application "GAME" is running on a remote computer, and the browser of the cellular telephone 100 and the cellular telephone hardware itself are used to interact with the game program that is running remotely on the remote computer. It is becoming. The fact that the application program "GAME" is offloaded is indicated as a check mark in the far right column. The GUI allows the user to manually disable offloading of the selected one of the listed programs. In the embodiment of Figure 1, the user has disabled offloading of the email program labeled "EMAIL". The " offload disabled " status is indicated by the cross mark in the far right column in the resource usage table 106.

이동 통신 장치(100)의 정상적인 동작에서, 유틸리티 프로그램은 자원 사용량 테이블(106)이 디스플레이되도록 야기하지 않는다. 오히려, 자원 사용량 테이블(106)은 유틸리티 프로그램에 대한 적절한 사용자 프롬프트(prompt)들에 응답하여 디스플레이된다. 이러한 방식으로, 사용자는 GUI를 사용하여 프롬프트를 입력할 수 있고 이에 의해 테이블(106)이 보이도록 할 수 있으며, 다음, GUI를 이용하는 유틸리티 및 테이블과 상호작용할 수 있고, 다음, 테이블(106)이 더 이상 디스플레이되지 않도록 야기하는 적절한 프롬프트를 입력할 수 있다. 그러나, 테이블(106)이 디스플레이되고 있지 않더라도 유틸리티 프로그램은 백그라운드에서 계 속 실행된다.In normal operation of the mobile communication device 100, the utility program does not cause the resource usage table 106 to be displayed. Rather, the resource usage table 106 is displayed in response to appropriate user prompts for the utility program. In this way, the user can enter a prompt using the GUI and thereby make the table 106 visible, and then interact with the utility and the table using the GUI, and then the table 106 You can enter the appropriate prompt that causes it to no longer be displayed. However, even if the table 106 is not displayed, the utility program continues to run in the background.

도2는 일 신규 양상에 따른 방법을 도시하는 단순화된 흐름도이다. 상기 방법은 도1의 이동 통신 장치(100)를 이용하여 수행된다. 먼저, 프로세서는 운영 체계 프로그램 및 신규한 유틸리티 어플리케이션 프로그램뿐만 아니라 몇 개의 다른 어플리케이션 프로그램들을 실행하고 있다. 각 프로그램은 3개의 자원들 "BATT", "MEM", 및 "CPU"의 각각의 양을 소모한다. 단계 201 전의 초기 상태에서, 도1에 리스트된 "WP", "EMAIL" 및 "BROWSER" 어플리케이션들이 실행되고 있다. 그러나, "GAME" 어플리케이션은 실행되고 있지 않다. 따라서, "GAME" 엔트리를 갖는 행이 존재하지 않는 점을 제외하고, 디스플레이(104)가 도1에 나타내진 바와 같이 나타난다. 전체 전력 사용량(자원 "BATT")은 10개의 사용량 단위인 점을 유의한다. 또한, 전체 메모리 사용량(자원 "MEM")은 또한 10개의 사용량 단위이다. 전체 처리 전력 사용량(자원 "CPU")은 6개의 사용량 단위이다. 따라서, 모든 3개의 사용량의 합은 이들 각각의 임계 값들이 된다.2 is a simplified flowchart illustrating a method according to one novel aspect. The method is performed using the mobile communication device 100 of FIG. First, the processor executes several other application programs as well as an operating system program and a new utility application program. Each program consumes each amount of three resources "BATT", "MEM", and "CPU". In the initial state before step 201, the "WP", "EMAIL" and "BROWSER" applications listed in FIG. 1 are running. However, the "GAME" application is not running. Thus, display 104 appears as shown in FIG. 1, except that there is no row with a " GAME " entry. Note that the total power usage (resource "BATT") is in units of 10 usage. In addition, the total memory usage (resource "MEM") is also 10 usage units. The total processing power usage (resource "CPU") is six usage units. Thus, the sum of all three usages is their respective threshold.

다음, 사용자는 "GAME"로 표시된 다중 사용자 비디오 게임 어플리케이션 프로그램을 인보크하기 위하여 동작을 취한다. 예를들어, 사용자는 디스플레이(104) 상에 나타난 비디오 게임의 아이콘 GAME을 선택할 수 있다. 운영 체계는 이 조건을 감지하고 GAME 어플리케이션을 인보크하도록 유틸리티 프로그램에 요청을 발행한다. 유틸리티 프로그램은 인보크하기 위한 상기 요청을 수신한다(단계 201).The user then takes action to invoke the multi-user video game application program labeled "GAME." For example, the user can select an icon GAME of the video game shown on the display 104. The operating system detects this condition and issues a request to the utility program to invoke the GAME application. The utility program receives the request to invoke (step 201).

다음(단계 202), 유틸리티 프로그램이 어플리케이션 계층 프로그램이 실행되는 경우에 상기 어플리케이션 계층 프로그램에 의해 소모되었을 각 자원의 양을 추정한다. 일 실시예에서, 새로운 어플리케이션 프로그램에 의해 소모되었을 처리 전력이 히스토리 경험 데이터(historical empirical data)에 의해 결정된다. 예를 들어, GAME 프로그램이 이전에 실행될 때마다 CPU 처리 전력의 6개의 사용량 단위가 평균적으로 소모되었다면, 6개인 이번 평균 사용량 값이 저장되고 추정된 CPU 사용량 값으로서 사용된다. 이미 실행되고 있는 다른 프로그램들에 의해 실제 사용되고 있는 처리 전력의 양이 다수의 적절한 방식들 중 임의의 하나에 의해 결정될 수 있다. 예를 들어, 유틸리티 프로그램 또는 운영 체계는 CPU 활동성을 체크하기 위하여 주기적으로 CPU를 인터럽트(interrupt)할 수 있다. 단순한 실시예에서, 낮은 우선순위 태스크가 주기적으로 CPU에 발행되고 운영 체계가 실행될 태스크를 허용하였는지 여부에 대하여 데이터가 수집된다. 운영 체계는 유틸리티 프로그램에 의해 사용가능한 CPU 사용량 데이터를 출력할 수 있다. 이 데이터는 통상의 윈도우즈(Windows) 운영 체계의 태스크 관리자가 CPU 사용량 데이터를 수집 및 출력하는 방식으로 수집 및 출력될 수 있다.Next (step 202), the utility program estimates the amount of each resource that would have been consumed by the application layer program when the application layer program was executed. In one embodiment, the processing power that would have been consumed by the new application program is determined by historical empirical data. For example, if six usage units of CPU processing power were consumed on average each time a GAME program was previously run, this average usage value of six is stored and used as an estimated CPU usage value. The amount of processing power actually used by other programs that are already running may be determined by any one of a number of suitable ways. For example, a utility program or operating system may periodically interrupt the CPU to check CPU activity. In a simple embodiment, data is collected as to whether low priority tasks are periodically issued to the CPU and the operating system has allowed the task to run. The operating system may output CPU usage data available by the utility program. This data can be collected and output in such a way that a task manager of a typical Windows operating system collects and outputs CPU usage data.

전력 소모의 추정된 양(자원 "BATT")이 히스토리 경험 데이터에 의해 유사하게 결정될 수 있다. 셀룰러 전화 내의 전력 관리 집적 회로(power management integrated circuit: PMIC)가 이산 시간들마다 배터리 전압을 모니터링할 수 있다. 측정된 전압의 변화는 에너지 소모 양을 나타낸다. 선택된 개별 어플리케이션 프로그램들이 실행되고 있는 때, 또는 개별 어플리케이션 프로그램들의 선택된 서브그룹들이 실행되고 있는 때의 배터리 전압을 분석함에 의해, 각 개별 어플리케이션 프로그램 각각의 배터리 에너지 소모에 대한 정보가 수집된다.The estimated amount of power consumption (resource "BATT") can be similarly determined by historical experience data. Power management integrated circuits (PMICs) in cellular telephones can monitor the battery voltage every discrete times. The change in measured voltage indicates the amount of energy consumed. By analyzing the battery voltage when the selected individual application programs are running or when the selected subgroups of the individual application programs are running, information about the battery energy consumption of each individual application program is collected.

메모리 사용량의 추정된 양(자원 "MEM")이 히스토리 경험 데이터에 의해 유사하게 결정될 수 있다. 각 어플리케이션 계층 프로그램에 할당된 메모리의 양은 일반적으로 운영 체계에 알려져 있다. 이들 사용량 값들이 유틸리티 프로그램에 제공된다. GAME 어플리케이션 프로그램이 실행되었을 때마다 6개 사용량 단위를 소모하였다면, GAME 프로그램이 실행되는 이 다음번에는 6개 사용량 단위를 사용할 것이라고 추정된다. 실행되고 있는 다양한 어플리케이션 프로그램들의 실제 메모리 사용량들이 운영 체계에 의해 출력되며 위에서 제시된 바와 같이 유틸리티 프로그램에 의해 사용된다. 따라서, 도2의 방법의 이 시점에서 도1의 자원 사용량 테이블(106)에서 제시된 모든 사용량 값들이 유틸리티 프로그램에 알려지게 된다.The estimated amount of memory usage (resource "MEM") can be similarly determined by historical experience data. The amount of memory allocated to each application layer program is generally known to the operating system. These usage values are provided to the utility program. If six usage units were consumed each time a GAME application program was run, it is estimated that the next six usage units will be used the next time the GAME program is run. Actual memory usage of various application programs being executed is output by the operating system and used by utility programs as suggested above. Thus, at this point in the method of FIG. 2 all usage values presented in the resource usage table 106 of FIG. 1 are known to the utility program.

다음(단계 203), 각 자원에 대해, 인보크될 어플리케이션 프로그램의 추정된 사용량이 실행되고 있는 다른 프로그램들의 자원 사용량 값들과 합산된다. 이 실시예에서, "BATT" 자원에 대한 합은 16개 단위이다. "MEM" 자원에 대한 합도 또한 16 단위이다. 처리 전력 자원 "CPU"에 대한 합은 12 단위이다.Next (step 203), for each resource, the estimated usage of the application program to be invoked is summed with the resource usage values of the other programs that are running. In this embodiment, the sum for the "BATT" resource is 16 units. The sum for the "MEM" resource is also 16 units. The sum for the processing power resource "CPU" is 12 units.

다음(단계 204), 론치(launch)될 어플리케이션 프로그램이 이동 통신 장치 상에서 론치되고 실행되어야 하는지 또는 원격 컴퓨터 상에서 론치되고 실행되어야 하는지 여부에 대한 결정이 내려진다. 이 결정은 적어도 부분적으로, 1) 론치될 어플리케이션에 대한 추정된 자원 사용량 값들, 및 2) 이동 통신 장치(100) 상에서 현재 실행되고 있는 다른 프로그램들에 의해 소모되는 자원들의 양에 기초한다. 도2의 유틸리티 프로그램 실시예에서, 단계(203)에서 결정된 바와 같은 3개의 자원들 중 임의의 것의 합이 그 자원에 대하여 대응하는 미리 결정된 임계 값을 초과하 면, 론치될 어플리케이션 프로그램이 이동 통신 장치(100) 상에서 실행되어서는 않되고, 어플리케이션 프로그램의 인스턴스(instance)가 웹 어플리케이션으로서 원격 컴퓨터 상에서 실행되어야 한다고 결정된다. Next (step 204), a determination is made whether the application program to be launched should be launched and run on the mobile communication device or should be launched and run on the remote computer. This determination is based, at least in part, on the amount of resources consumed by 1) estimated resource usage values for the application to be launched, and 2) other programs currently running on the mobile communication device 100. In the utility program embodiment of Fig. 2, if the sum of any of the three resources as determined in step 203 exceeds a corresponding predetermined threshold for that resource, then the application program to be launched is the mobile communication device. It should not be executed on 100, and it is determined that an instance of the application program should be executed on the remote computer as a web application.

3개의 자원들 각각에 대하여 단계(203)에서 결정된 바와 같은 합이 대응하는 임계 값 미만이라면, 처리는 단계(205)로 진행된다. 유틸리티 프로그램은 운영 체계와 통신할 것이며 어플리케이션 프로그램(이 경우 GAME 프로그램)이 이동 통신 장치 상에서 론치되도록 야기할 것이다.If the sum as determined in step 203 for each of the three resources is less than the corresponding threshold, processing proceeds to step 205. The utility program will communicate with the operating system and cause the application program (in this case the GAME program) to be launched on the mobile communication device.

그러나, 이 실시예에서, "BAT" 자원에 대한 합이 16이고 "BAT" 자원에 대하여 대응하는 임계 값이 15이다. 또한, "MEM" 자원에 대한 합이 16이고 "MEM" 자원에 대하여 대응하는 임계 값이 15이다. 따라서, 단계(204)의 결정은 이동 통신 장치 상에서 GAME 어플리케이션 프로그램을 론치하지 않고, 클라이언트 인터페이스를 인보크한다는 것이다(단계 207). 클라이언트 인터페이스는 이동 통신 장치의 웹 브라우저 프로그램에 통합된 인터페이스 소프트웨어이다. 클라이언트 인터페이스가 이러한 방식으로 브라우저에 통합되는 경우에, 브라우저는 원격 컴퓨터 상에서 대응하는 호스트 인터페이스와 통신하는 것이 사용가능해진다. 클라이언트 인터페이스는 키패드 키 누름 정보와 같은 사용자 입력들을 포착하고 이들을 인터넷을 통해 호스트 인터페이스로 통신한다. 다음, 호스트 인터페이스는 상기 사용자 입력은 원격 컴퓨터 상에서 실행되는 어플리케이션 프로그램에 제공하여 사용자 입력이 정상적인 방식으로 국부적으로(locally) 생성되었던 것처럼 보이게 된다. 디스플레이 데이터와 같은 어플리케이션 프로그램으로부터의 데이터 출력이 호스트 인터 페이스를 통과하여, 인터넷을 통해, 반대 방향으로, 브라우저 및 클라이언트 인터페이스로 전달된다. 디스플레이 데이터가 원격 컴퓨터에 대해 국부적인 디스플레이 상에 정상적으로 디스플레이되었던 것과 유사한 방식으로 브라우저는 이동 통신 장치(100)의 디스플레이(104) 상에 디스플레이 데이터를 디스플레이한다. 이 클라이언트 인터페이스 및 관련 호스트 인터페이스 소프트웨어는 통상적인 웹 어플리케이션 소프트웨어이다. 이 인터페이스 소트웨어의 예는 플로리다, 포트 로더데일(Fort Lauderdale)의 Citrix Systems Inc.로부터 이용가능하다.However, in this embodiment, the sum for "BAT" resources is 16 and the corresponding threshold for "BAT" resources is 15. Also, the sum for the "MEM" resource is 16 and the corresponding threshold for the "MEM" resource is 15. Thus, the decision of step 204 is to invoke the client interface, without launching the GAME application program on the mobile communication device (step 207). The client interface is interface software integrated into the web browser program of the mobile communication device. If the client interface is integrated into the browser in this manner, the browser is made available to communicate with the corresponding host interface on the remote computer. The client interface captures user inputs, such as keypad key press information, and communicates them to the host interface via the Internet. The host interface then provides the user input to an application program running on a remote computer so that the user input appears to have been generated locally in the normal manner. Data output from the application program, such as display data, is passed through the host interface and, via the Internet, in the opposite direction, to the browser and client interfaces. The browser displays the display data on the display 104 of the mobile communication device 100 in a manner similar to that the display data was normally displayed on a display local to the remote computer. This client interface and associated host interface software is conventional web application software. An example of this interface software is available from Citrix Systems Inc. of Fort Lauderdale, Florida.

클라이언트 인터페이스가 인보크되면(단계 207), 유틸리티 프로그램이 클라이언트 인터페이스 및 호스트 인터페이스를 통해 동작하고 GAME 어플리케이션 프로그램이 원격 컴퓨터 상에서 론치되도록(단계 208) 야기한다. 그 이후에, GAME 어플리케이션 프로그램이 원격 컴퓨터 상에서 실행된다(단계 209). 어느 때든지 GAME 어플리케이션 프로그램은 이동 통신 장치(100) 상에서 실행되지 않는다. GAME 어플리케이션 프로그램이 분할(split)되지 않아서, 이동 통신 장치 상에서 실행되었던 어플리케이션의 일부와 GAME 어플리케이션 프로그램의 다른 일부가 원격 서버 상에서 실행되었다. GAME 어플리케이션 프로그램의 인스턴스가 이동 통신 장치 상의 브라우저 및 웹 어플리케이션과 함께 상호작용하기 위해 사용되는 이동 통신 장치 하드웨어와 함께 웹 어플리케이션으로서 원격 컴퓨터 상에서 실행된다. 이 경우, 이동 통신 장치 상에서 실행되는 어플리케이션 프로그램의 인스턴스와 원격 컴퓨터 상에서 실행되는 어플리케이션 프로그램의 인스턴스는, 이동 통신 장치 상에 있는 인스턴스가 상이한 프로세서 상에서 실행되고 감소된 기능성을 가져서 원격 컴퓨터와 비교하여 제한된 자원들을 갖는 이동 통신 장치 상에서 적절한 속도로 실행될 수 있다는 점에서 상이하다. If the client interface is invoked (step 207), the utility program runs through the client interface and host interface and causes the GAME application program to be launched on the remote computer (step 208). Thereafter, the GAME application program is executed on the remote computer (step 209). At any time, the GAME application program is not executed on the mobile communication device 100. The GAME application program was not split, so that some of the applications that were executed on the mobile communication device and others of the GAME application program were executed on the remote server. An instance of a GAME application program runs on a remote computer as a web application with mobile communication device hardware used to interact with a browser and web application on the mobile communication device. In this case, the instance of the application program running on the mobile communication device and the instance of the application program running on the remote computer are limited resources compared to the remote computer because the instance on the mobile communication device runs on a different processor and has reduced functionality. Is different in that it can be executed at an appropriate speed on the mobile communication device having the same speed.

도 3은 이동 통신 장치(100)와 원격 컴퓨터(107)에서 실행되는 소프트웨어를 나타내는 다이어그램이다. 이동 통신 장치(100) 상에서 실행되는 소프트웨어는 BREW(Binary Runtime Environment for Wireless) 형태 어플리케이션 프로그래밍 인터페이스(109)를 갖는 운영 체계(108)를 포함한다. 수평 점선 라인(110)은 운영 체계(108)와 운영 체계 상에서 실행되는 어플리케이션 계층 프로그램들(111-113) 간의 인터페이스를 나타낸다. 어플리케이션 프로그램(111)은 론치될 어플리케이션 프로그램의 제 1 인스턴스이다. 어플리케이션 프로그램(112)은 신규한 유틸리티 프로그램이다. 유틸리티 프로그램(112)은 여기서 어플리케이션 계층 프로그램으로서 도시되어 있는데, 이는 유틸리티 프로그램(112)이 GUI를 제공하고 디스플레이 데이터를 출력하고 사용자 입력들을 수신하기 때문이다. 그러나, 유틸리티 프로그램(112)은 운영 체계(108)의 일부로서도 고려될 수 있다. 어플리케이션 프로그램(113)은 클라이언트 인터페이스 기능성(114)이 통합되는 웹 브라우저이다.3 is a diagram illustrating software executed in the mobile communication device 100 and the remote computer 107. The software running on the mobile communication device 100 includes an operating system 108 having a binary runtime environment for wireless (BREW) type application programming interface 109. Horizontal dashed line 110 represents the interface between operating system 108 and application layer programs 111-113 running on the operating system. The application program 111 is a first instance of an application program to be launched. The application program 112 is a new utility program. Utility program 112 is shown here as an application layer program, because utility program 112 provides a GUI, outputs display data, and receives user inputs. However, utility program 112 may also be considered as part of operating system 108. Application program 113 is a web browser into which client interface functionality 114 is incorporated.

원격 컴퓨터(107) 상에서 실행되는 소프트웨어는 운영 체계(115), 론치될 어플리케이션 프로그램의 제 2 인스턴스(116), 및 호스트 인터페이스 기능성(117)을 포함한다. 원격 컴퓨터(107)는 컴퓨터 자원들의 서버 팜의 일부인 컴퓨터이다. 어플리케이션 프로그램의 제 2 인스턴스(116)는 이동 통신 장치(100)의 사용자에 의해 웹 어플리케이션으로서 사용가능하다. 점선 화살표(118)는 이동 통신 장치(100)로부터 원격 컴퓨터(107)로의 정보 흐름을 나타낸다. 이 정보 흐름은 사용 자 엔트리 데이터와 사용자가 누르는 키패드(105)의 키들 상의 키 누름 정보와 같은 입력 정보를 포함한다. 이 정보는 이동 통신 장치(100)로부터, 무선 링크(예를들어, CDMA 무선 링크)를 가로질러, 다른 네트워크들 및 인터넷을 통해, 서버 팜과 원격 컴퓨터(107)로 전달된다. 점선 화살표(119)는 원격 컴퓨터(107)로부터 이동 통신 장치(100)로의 정보 흐름을 나타낸다. 이 정보 흐름은 원격 컴퓨터(119) 상에서 실행되고 있는 어플리케이션 프로그램의 제 2 인스턴스(116)에 의한 출력인 디스플레이 데이터를 포함한다. 이 디스플레이 데이터가 모니터 또는 스크린 또는 원격 컴퓨터(107)의 다른 디스플레이 상에서 디스플레이되는 대신에, 디스플레이 데이터는 인터넷 및 무선 링크를 통해 이동 통신 장치(100)로 통신된다. 이동 통신 장치(100) 상의 브라우저(113)는 정보가 이동 통신 장치(100)의 디스플레이(104) 상에 디스플레이되도록 한다. Software running on the remote computer 107 includes an operating system 115, a second instance 116 of an application program to be launched, and host interface functionality 117. Remote computer 107 is a computer that is part of a server farm of computer resources. The second instance 116 of the application program is usable as a web application by the user of the mobile communication device 100. The dashed arrow 118 represents the flow of information from the mobile communication device 100 to the remote computer 107. This information flow includes input information such as user entry data and key press information on the keys of the keypad 105 that the user presses. This information is communicated from the mobile communication device 100 to a server farm and a remote computer 107 across a wireless link (eg, a CDMA wireless link), through other networks and the Internet. The dashed arrow 119 represents the flow of information from the remote computer 107 to the mobile communication device 100. This information flow includes display data that is output by the second instance 116 of the application program running on the remote computer 119. Instead of this display data being displayed on a monitor or screen or other display of the remote computer 107, the display data is communicated to the mobile communication device 100 via the Internet and a wireless link. The browser 113 on the mobile communication device 100 causes the information to be displayed on the display 104 of the mobile communication device 100.

도4는 이동 통신 장치(100), 원격 컴퓨터(107), 및 이들 두 개 사이의 통신을 도시한다. "A", "U", "B", 및 "OS"로 표시된 이동 통신 장치(100) 내의 블록들은 론치될 어플리케이션 프로그램의 제 1 인스턴스, 유틸리티 프로그램, 클라이언트 인터페이스를 갖는 브라우저, 및 운영 체계를 각각 나타낸다. 이들 프로그램들은 반도체 메모리에 저장되며 위에서 설명된 바와 같이 이동 통신 장치(100)의 프로세서에 의해 실행된다. "PMIC"로 표시된 블록(120)은 전력 관리 집적 회로이다. 전력 관리 집적 회로(120)는 충전가능 배터리들(121)에 연결된다. 전력 관리 집적 회로(120)는 배터리 전압을 모니터링하고 배터리 정보를 프로세서에 제공한다. 배터리 정보는 일부 실시예들에서는 배터리 전압일 수 있다. 배터리 정보는 다른 실 시예들에서는 배터리에 저장된 에너지의 양 또는 배터리 전력 소모율 또는 전류 소모율의 표시일 수 있다.4 shows a communication device 100, a remote computer 107, and communication between the two. The blocks in the mobile communication device 100 labeled "A", "U", "B", and "OS" each represent a first instance of an application program to be launched, a utility program, a browser with a client interface, and an operating system, respectively. Indicates. These programs are stored in the semiconductor memory and executed by the processor of the mobile communication device 100 as described above. Block 120, labeled "PMIC", is a power management integrated circuit. The power management integrated circuit 120 is connected to the rechargeable batteries 121. The power management integrated circuit 120 monitors battery voltage and provides battery information to the processor. The battery information may be a battery voltage in some embodiments. The battery information may be an indication of the amount of energy stored in the battery or the battery power consumption rate or current consumption rate in other embodiments.

원격 컴퓨터(107)는 서버 팜(122) 내의 몇 개의 컴퓨터들 중 하나이다. 원격 컴퓨터(107) 내의 "A"로 표시된 블록(123)은 론치될 어플리케이션 프로그램의 제 2 인스턴스를 나타낸다. 어플리케이션 프로그램의 이 제 2 인스턴스는 웹 어플리케이션으로서 원격 컴퓨터(107) 상에서 원격적으로 실행될 수 있는 프로그램이다.Remote computer 107 is one of several computers in server farm 122. Block 123, denoted "A" in remote computer 107, represents a second instance of an application program to be launched. This second instance of the application program is a program that can be executed remotely on the remote computer 107 as a web application.

이동 통신 장치(100)와 원격 컴퓨터(107) 간의 통신이 무선 링크(124), 셀룰러 전화 네트워크(125)(이 경우에서는, CDMA 네트워크), 및 WAN(광역 네트워크:wide area network)(126)을 통해 전달된다. WAN(126), CDMA 네트워크(125) 및 무선 링크(124)는 모두 인터넷(127)의 일부인 것으로 고려될 수 있다. 화살표(128)는 이동 통신 장치(100)로부터 원격 컴퓨터(107) 상에서 실행되는 웹 어플리케이션으로 전달되는 사용자 엔트리 정보를 나타낸다. 화살표(129)는 원격 컴퓨터(107) 상에서 실행되는 웹 어플리케이션에 의해 출력되고 원격 컴퓨터(107)로부터 이동 통신 장치(100)로 전달되는 디스플레이 데이터를 나타낸다.The communication between the mobile communication device 100 and the remote computer 107 may establish a wireless link 124, a cellular telephone network 125 (in this case, a CDMA network), and a wide area network (WAN) 126. Is passed through. WAN 126, CDMA network 125 and wireless link 124 may all be considered part of the Internet 127. Arrow 128 represents user entry information passed from the mobile communication device 100 to a web application running on the remote computer 107. Arrow 129 represents display data output by a web application running on remote computer 107 and delivered from remote computer 107 to mobile communication device 100.

도 5는 한 시나리오 내에서 이동 통신 장치(100)와 원격 컴퓨터(107) 간에 일어나는 일련의 통신들을 나타낸다. 도면에서 시간은 도면 상부에서 하부로 연장된다. 도면 상부의 화살표(130)는 어플리케이션 실행 요청을 나타낸다. 이것은 어플리케이션 프로그램의 제 2 인스턴스가 원격 컴퓨터 상에서 론치되는 것을 야기한다. 일부 실시예들에서, 어플리케이션 실행 요청은 이동 통신 장치(100)의 전화 번호를 포함한다. 다음 화살표(131)는 확인응답 통신을 나타내며 이에 의해 원격 컴퓨터(107)는 어플리케이션 프로그램의 제 2 인스턴스가 론치되었음을 확인한다. 상대적으로 더 검고 굵은 화살표로 도시되어 있는 화살표(131)는 원격 컴퓨터(107)로부터 이동 통신 장치(110)로의 통신이 이동 통신 장치(100)로부터 원격 컴퓨터(107)로의 반대 방향의 정보 흐름보다 더 많은 정보 전달을 포함하는 상대적으로 높은 대역폭 통신임을 표시하기 위한 것이다. 뒤이은 화살표들(132) 쌍들은 어플리케이션 스트리밍을 나타낸다. 사용자 입력이 원격 컴퓨터(107) 상에서 실행되는 웹 어플리케이션으로 통신되고, 이는 차례로 웹 어플리케이션으로부터 출력된 새로운 디스플레이 데이터를 야기하며 디스플레이를 위하여 이동 통신 장치(100)로 다시 통신된다. 화살표들(133 및 134)의 마지막 쌍은 원격 컴퓨터(107) 상에서 실행되는 웹 어플리케이션을 중단시키는 이동 통신 장치(100) 내의 유틸리티 프로그램을 나타낸다. 일 실시예에서, 실행을 중단시키고 확인응답(134)을 송신하는 것에 부가하여, 원격 컴퓨터(107)는 웹 어플리케이션의 실행의 상태에 대한 부가적인 상태 정보를 이동 통신 장치(100)로 송신한다. 다음, 이 상태 정보는 어플리케이션이 중단되었던 때의 어플리케이션 상태에서 어플리케이션의 실행을 재개하기 위하여 이동 통신 장치(100) 상에서 이용가능하다. 사용자의 관점에서는, 어플리케이션은 어플리케이션 프로그램의 실행 위치에 변화가 없는 것처럼 실행이 계속된다. GUI는 유틸리티 프로그램이 웹 어플리케이션 실행을 중단시키는 조건을 변경하는데 이용가능하다.5 illustrates a series of communications that occur between mobile communication device 100 and remote computer 107 within one scenario. In the figure, time extends from the top to the bottom of the figure. An arrow 130 at the top of the figure indicates an application execution request. This causes the second instance of the application program to be launched on the remote computer. In some embodiments, the application launch request includes the telephone number of the mobile communication device 100. Next arrow 131 represents acknowledgment communication whereby the remote computer 107 confirms that the second instance of the application program has been launched. Arrows 131, shown by relatively darker and thicker arrows, indicate that communication from remote computer 107 to mobile communication device 110 is more than information flow in the opposite direction from mobile communication device 100 to remote computer 107. It is intended to indicate that it is a relatively high bandwidth communication involving a lot of information transfer. The subsequent pairs of arrows 132 indicate application streaming. User input is communicated to a web application running on the remote computer 107, which in turn results in new display data output from the web application and back to the mobile communication device 100 for display. The last pair of arrows 133 and 134 represent a utility program in the mobile communication device 100 that interrupts a web application running on the remote computer 107. In one embodiment, in addition to suspending execution and sending acknowledgment 134, remote computer 107 transmits additional status information to the mobile communication device 100 regarding the status of the execution of the web application. This state information is then available on the mobile communication device 100 to resume execution of the application in the application state when the application was suspended. From the user's point of view, the application continues to run as if there was no change in the execution position of the application program. The GUI can be used to change the conditions that cause the utility program to stop running the web application.

일 실시예에서, 어플리케이션 실행 요청은 요청하는 이동 통신 장치의 전화 번호를 포함한다. 서버 팜의 오퍼레이터는 이동 통신 장치 사용자들의 전화 번호들에 관한 정보를 보유하고 상기 사용자들에 대한 관련 과금 정보를 보유한다. 어플리케이션 실행 요청이 서버 팜에서 수신되는 경우에, 인커밍 요청 내의 전화 번호는 관련 과금 정보를 식별하고 제공된 웹 어플리케이션 어플리케이션 프로그램의 사용에 대한 이동 통신 장치의 사용자를 과금하는데 이용된다. 대안적으로, 전화 번호가 아닌 식별 정보가 어플리케이션 실행 요청 내에 내장되고 이 다른 식별 정보가 웹 어플리케이션 어플리케이션 프로그램의 사용에 대하여 오퍼레이터가 사용자를 과금하는 것을 용이하게하는데 이용된다.In one embodiment, the application launch request includes the telephone number of the requesting mobile communication device. The operator of the server farm holds information about the telephone numbers of mobile communication device users and holds the relevant billing information for the users. When an application execution request is received at the server farm, the telephone number in the incoming request is used to identify relevant charging information and to charge the user of the mobile communication device for use of the provided web application application program. Alternatively, identification information other than a telephone number is embedded in the application execution request and this other identification information is used to facilitate the operator charging the user for use of the web application application program.

일부 실시예들에서, 원격 컴퓨터 상에서 실행되는 제 2 어플리케이션 프로그램이 존재한다. 이 제 2 어플리케이션 프로그램은 호스트 인터페이스가 클라이언트 인터페이스로의 통신으로 광고 정보를 웹 어플리케이션 디스플레이 데이터와 함께 포함시키도록 야기한다. 클라이언트 인터페이스 및 이동 통신 장치 상에서 실행되는 브라우저는 상기 통신을 수신하고 상기 광고가 웹 어플리케이션 디스플레이 데이터와 함께 이동 통신 장치의 디스플레이 상에 행해지도록 야기한다. 다른 실시예에서, 제 2 어플리케이션 프로그램은 원격 컴퓨터와 이동 통신 장치 간에 통신이 존재하는 경우에 광고 정보가 로딩되어 이동 통신 장치로 저장되도록 야기한다. 어플리케이션 프로그램의 제 1 인스턴스가 이동 통신 장치 상에서 국부적으로 인보크되는 경우에, 저장된 광고 정보는 어플리케이션 프로그램의 디스플레이 데이터와 함께 자동적으로 디스플레이된다. 이 디스플레이는 호출(invocation) 시 서버 팜에서 이동 통신 장치와 원격 컴퓨터 간에 통신이 존재하지 않는 것처럼 일어난다.In some embodiments, there is a second application program running on a remote computer. This second application program causes the host interface to include advertisement information with the web application display data in communication to the client interface. A client interface and a browser running on the mobile communication device receive the communication and cause the advertisement to be placed on the display of the mobile communication device along with the web application display data. In another embodiment, the second application program causes the advertisement information to be loaded and stored in the mobile communication device when there is communication between the remote computer and the mobile communication device. When the first instance of the application program is invoked locally on the mobile communication device, the stored advertising information is automatically displayed with the display data of the application program. This display occurs at invocation as if there is no communication between the mobile communication device and the remote computer in the server farm.

설명 목적으로 위에서 특정 실시예들이 설명되었으나, 본 특허 문헌의 교시내용은 일반적 적용성을 갖고 설명된 특정 실시예들로 제한되지 않는다. 이동 통신 장치의 예들에는, 셀룰러 전화, PDA(personal digital assistant), 랩탑 컴퓨터, 태블릿(tablet) 개인용 컴퓨터, 스마트 폰, 또는 웹 브라우저를 실행하는 임의의 이동 장치가 포함된다. 따라서, 설명된 특정 실시예들의 다양한 수정들, 적용들, 및 다양한 특징들이 이하 제시되는 청구범위의 범위로부터 벗어남 없이 구현될 수 있다.While specific embodiments have been described above for illustrative purposes, the teachings of this patent document are not limited to the specific embodiments described with general applicability. Examples of mobile communication devices include cellular telephones, personal digital assistants, laptop computers, tablet personal computers, smart phones, or any mobile device executing a web browser. Accordingly, various modifications, adaptations, and various features of the specific embodiments described may be implemented without departing from the scope of the claims set out below.

Claims (21)

방법으로서,As a method, (a) 자원의 제 1 양(amount)을 나타내는 제 1 값을 저장하는 단계 ? 상기 자원의 상기 제 1 양은 이동 통신 장치(device) 상에서 이용되고 있는 상기 자원의 양임 ?;(a) storing a first value representing a first amount of resources; The first amount of the resource is an amount of the resource being used on a mobile communication device; (b) 히스토리 경험 데이터(historical empirical data)에 기반하여 상기 자원의 제 2 양을 나타내는 제 2 값을 추정하고 상기 제 2 값을 저장하는 단계 ? 상기 자원의 상기 제 2 양은 어플리케이션 프로그램의 국부적(local) 인스턴스가 상기 이동 통신 장치 상에서 실행되었다면 상기 어플리케이션 프로그램의 국부적 인스턴스가 사용하였을 상기 자원의 양이며, 상기 어플리케이션 프로그램은 론치(launch)될 프로그램임 ? ;(b) estimating a second value representing a second amount of said resource based on historical empirical data and storing said second value; The second amount of the resource is the amount of the resource that the local instance of the application program would have used if a local instance of an application program was run on the mobile communication device, and the application program is a program to be launched; ; (c) 상기 제 1 값과 상기 제 2 값에 적어도 부분적으로 기초하여, 론치(launch)될 상기 어플리케이션 프로그램이 상기 이동 통신 장치 상에서 실행되어야 하는지 또는 상기 이동 통신 장치 상에서 실행되지 않아야 하는지 여부를 결정하는 단계;(c) determining, based at least in part on the first value and the second value, whether the application program to be launched should run on the mobile communication device or not on the mobile communication device. step; (d) 단계(c)에서의 상기 결정이 상기 어플리케이션 프로그램이 상기 이동 통신 장치 상에서 실행되어야 한다는 것이라면, 상기 어플리케이션 프로그램의 상기 국부적 인스턴스가 상기 이동 통신 장치 상에서 론치되도록 야기하는 단계; 및(d) if the determination in step (c) is that the application program should be executed on the mobile communication device, causing the local instance of the application program to be launched on the mobile communication device; And (e) 단계(c)에서의 상기 결정이 상기 어플리케이션 프로그램이 상기 이동 통신 장치 상에서 실행되어서는 안 된다는 것이라면, 1) 상기 어플리케이션 프로그램의 원격 인스턴스가 원격 컴퓨터 상에서 론치되도록 야기하고, 2) 상기 이동 통신 장치 상에서 웹 브라우저를 실행하는 단계를 포함하며,(e) if the determination in step (c) is that the application program should not be run on the mobile communication device, 1) cause a remote instance of the application program to be launched on a remote computer, and 2) the mobile communication. Launching a web browser on the device; 상기 웹 브라우저는 WAN(광역 네트워크:wide area network)을 통해 상기 원격 인스턴스와 상호작용하고 상기 원격 인스턴스에 의한 데이터 출력을 보도록(view) 상기 이동 통신 장치의 사용자에 의해 이용가능한, The web browser is available by the user of the mobile communication device to interact with the remote instance via a wide area network (WAN) and to view data output by the remote instance, 방법.Way. 제 1 항에 있어서,The method of claim 1, 상기 어플리케이션 프로그램의 상기 원격 인스턴스는 웹 어플리케이션이며, 상기 WAN은 인터넷을 포함하고, 상기 이동 통신 장치는 셀룰러 전화이며, 상기 단계(a) 내지 (e)들은 상기 셀룰러 전화 상에서 실행되는 유틸리티 프로그램에 의해 수행되는, The remote instance of the application program is a web application, the WAN includes the Internet, the mobile communication device is a cellular telephone, and the steps (a) to (e) are performed by a utility program executed on the cellular telephone. felled, 방법.Way. 제 2 항에 있어서,The method of claim 2, 상기 유틸리티 프로그램은 GUI(그래픽 사용자 인터페이스:graphical user interface)를 포함하는, The utility program includes a graphical user interface (GUI), 방법.Way. 제 3 항에 있어서,The method of claim 3, wherein 상기 GUI는 단계(c)에서의 상기 결정이 상기 제 1 및 제 2 값들과 상관없이 상기 어플리케이션 프로그램이 상기 이동 통신 장치 상에서 실행되어야 한다는 것임을 명시(specify)하는데 이용가능한, The GUI is available to specify that the determination in step (c) is that the application program should be executed on the mobile communication device regardless of the first and second values, 방법.Way. 제 3 항에 있어서,The method of claim 3, wherein 상기 GUI는 어플리케이션 프로그램들의 리스트가 상기 이동 통신 장치의 디스플레이 상에 디스플레이되도록 야기하며, 상기 GUI는 자원 양 값들의 관련 리스트가 상기 디스플레이 상에 디스플레이되도록 야기하며, 자원 양 값들의 상기 리스트의 각 자원 양 값은 상기 어플리케이션 프로그램들의 상기 리스트에서 상기 어플리케이션 프로그램들의 각 하나와 관련되는, The GUI causes the list of application programs to be displayed on the display of the mobile communication device, the GUI causes the relevant list of resource amount values to be displayed on the display, and each resource amount in the list of resource amount values. A value is associated with each one of the application programs in the list of application programs, 방법.Way. 제 1 항에 있어서,The method of claim 1, 상기 단계(c)는 상기 제 1 값과 제 2 값의 합이 미리 결정된 임계값을 초과하는지 여부를 결정하는 단계를 포함하고, 상기 합이 상기 미리 결정된 임계값을 초과하는 것으로 결정되면, 상기 어플리케이션 프로그램이 상기 이동 통신 장치 상에서 실행되어서는 안 된다는 것으로 상기 단계(c)에서 결정되는, The step (c) includes determining whether the sum of the first value and the second value exceeds a predetermined threshold, and if the sum is determined to exceed the predetermined threshold, the application Determined in step (c) that a program should not be executed on the mobile communication device, 방법.Way. 제 1 항에 있어서,The method of claim 1, 상기 자원은, The resource, 배터리 용량, 메모리 용량, 처리 전력 용량, 배터리 사용량, 메모리 사용량, 및 처리 전력 사용량으로 이루어진 그룹으로부터 획득되는, Obtained from the group consisting of battery capacity, memory capacity, processing power capacity, battery usage, memory usage, and processing power usage, 방법.Way. 제 1 항에 있어서,The method of claim 1, 상기 어플리케이션 프로그램은, The application program, 멀티-사용자 전자 게임, 비디오 게임, 비디오 편집 프로그램, 비디오 메시징 프로그램, 및 계산-강화(computationally-intesive) 재무 분석 프로그램으로 이루어진 그룹으로부터 획득되는, Obtained from a group consisting of multi-user electronic games, video games, video editing programs, video messaging programs, and computationally-intesive financial analysis programs, 방법.Way. 방법으로서,As a method, (a) 이동 통신 장치 상에서, 어플리케이션 프로그램의 제 1 인스턴스를 상기 이동 통신 장치 상에서 국부적으로 론치할 것인지 또는 상기 어플리케이션 프로그램의 제 2 인스턴스를 웹 어플리케이션으로서 원격적으로 론치할 것인지의 결정을 하는 단계를 포함하며,(a) determining, on a mobile communication device, whether to launch a first instance of an application program locally on the mobile communication device or to remotely launch a second instance of the application program as a web application. , 상기 결정은 상기 어플리케이션 프로그램의 상기 제 1 인스턴스가 상기 이동 통신 장치 상에서 론치되고 실행된다면 상기 어플리케이션의 상기 제 1 인스턴스가 얼마나 많은 자원을 소모하였을 것인가의 추정에 적어도 부분적으로 기초하는, The determination is based at least in part on an estimate of how much resources the first instance of the application would have consumed if the first instance of the application program was launched and executed on the mobile communication device, 방법.Way. 제 9 항에 있어서,The method of claim 9, (b) 상기 이동 통신 장치의 디스플레이 상에 어플리케이션 프로그램들의 리스트를 디스플레이하는 단계를 더 포함하며, (b) displaying a list of application programs on a display of the mobile communication device, 상기 리스트 내의 상기 어플리케이션 프로그램들은 상기 이동 통신 장치 상에서 실행되고 있는 어플리케이션 프로그램들을 포함하며, 상기 리스트 내의 상기 어플리케이션 프로그램들은 웹 어플리케이션들로서 원격적으로 실행되고 있는 어플리케이션 프로그램들을 포함하여, 상기 이동 통신 장치 상에서 실행되는 유틸리티 프로그램은 상기 리스트 내의 상기 어플리케이션 프로그램들을 결정하고 또한 상기 단계(a)의 상기 결정을 하는, The application programs in the list include application programs running on the mobile communication device, and the application programs in the list include application programs running remotely as Web applications, which are executed on the mobile communication device. The utility program determines the application programs in the list and makes the determination of step (a), 방법. Way. 제 9 항에 있어서,The method of claim 9, 싱기 이동 통신 장치는 브라우저 프로그램을 실행하는 셀룰러 전화이며, 상기 브라우저 프로그램은 상기 웹 어플리케이션 프로그램으로부터 수신된 디스플레이 데이터를 나타내는데(render) 이용되는, The singular mobile communication device is a cellular telephone executing a browser program, the browser program being used to render display data received from the web application program, 방법.Way. 이동 통신 장치로서, As a mobile communication device, 어플리케이션 프로그램의 제 1 인스턴스, 웹 브라우저, 및 유틸리티 프로그램을 저장하는 메모리; 및A memory for storing a first instance of an application program, a web browser, and a utility program; And 상기 유틸리티 프로그램을 실행하는 프로세서를 포함하며,It includes a processor for executing the utility program, 상기 유틸리티 프로그램의 실행은 상기 어플리케이션 프로그램의 상기 제 1 인스턴스가 상기 이동 통신 장치 상에서 국부적으로 론치될 것인지 또는 상기 어플리케이션 프로그램의 제 2 인스턴스가 웹 어플리케이션으로서 원격 컴퓨터 상에서 원격적으로 론치될 것인지 여부를 결정하며, 상기 결정은 상기 어플리케이션 프로그램이 상기 이동 통신 장치 상에서 론치되고 실행된다면 상기 어플리케이션 프로그램이 소모하였을 자원의 양에 적어도 부분적으로 기초해서 이루어지는, Execution of the utility program determines whether the first instance of the application program is to be launched locally on the mobile communication device or whether the second instance of the application program is to be launched remotely on a remote computer as a web application. The determination is made based at least in part on the amount of resources the application program would have consumed if the application program was launched and executed on the mobile communication device. 이동 통신 장치.Mobile communication devices. 제 12 항에 있어서,13. The method of claim 12, 어플리케이션 프로그램들의 리스트를 디스플레이하는 디스플레이를 더 포함며,Further comprising a display for displaying a list of application programs, 상기 리스트는 또한 상기 리스트에 리스트된 상기 어플리케이션 프로그램들의 각각에 대한 자원 양 값을 포함하며, 상기 프로세서에 의한 상기 유틸리티 프로그램의 실행이 상기 리스트가 상기 디스플레이 상에 디스플레이되도록 야기하는, The list also includes a resource amount value for each of the application programs listed in the list, wherein execution of the utility program by the processor causes the list to be displayed on the display, 이동 통신 장치.Mobile communication devices. 제 12 항에 있어서,13. The method of claim 12, 상기 결정은, 상기 어플리케이션 프로그램의 상기 제 1 인스턴스가 상기 이동 통신 장치 상에서 론치되고 실행되었다면 상기 자원에 대한 임계 사용량 값이 초과되었을 것인지 여부에 대하여 결정하는 것을 포함하는, The determination includes determining whether a threshold usage value for the resource would have been exceeded if the first instance of the application program was launched and executed on the mobile communication device, 이동 통신 장치.Mobile communication devices. 제 14 항에 있어서,15. The method of claim 14, 배터리; 및 battery; And 상기 배터리에 연결된 전력 관리 집적 회로를 더 포함하며,Further comprising a power management integrated circuit coupled to the battery, 상기 전력 관리 집적 회로는 상기 프로세서에 배터리 정보를 제공하며, 상기 프로세서는 상기 임계 사용량 값이 초과되는지 여부를 결정함에 있어 상기 배터리 정보를 이용하는, The power management integrated circuit provides battery information to the processor, the processor using the battery information in determining whether the threshold usage value is exceeded, 이동 통신 장치.Mobile communication devices. 제 12 항에 있어서,13. The method of claim 12, 상기 어플리케이션 프로그램의 상기 제 2 인스턴스가 웹 어플리케이션으로서 원격적으로 론치되는 경우에 상기 어플리케이션 프로그램의 상기 제 2 인스턴스의 어느 부분도 상기 이동 통신 장치 상에서 실행되지 않는, No part of the second instance of the application program is executed on the mobile communication device when the second instance of the application program is launched remotely as a web application, 이동 통신 장치.Mobile communication devices. 이동 통신 장치로서,As a mobile communication device, 웹 브라우저 및 어플리케이션 프로그램의 제 1 인스턴스를 저장하는 메모리; 및A memory storing a first instance of a web browser and an application program; And 상기 어플리케이션 프로그램의 상기 제 1 인스턴스가 상기 이동 통신 장치 상에서 국부적으로 론치될 것인지 또는 상기 어플리케이션 프로그램의 제 2 인스턴스가 웹 어플리케이션으로서 원격 컴퓨터 상에서 원격적으로 론치될 것인지 여부를 결정하기 위한 수단을 포함하는, Means for determining whether the first instance of the application program will be launched locally on the mobile communication device or whether the second instance of the application program will be launched remotely on a remote computer as a web application. 이동 통신 장치.Mobile communication devices. 제 17 항에 있어서,The method of claim 17, 상기 결정은, 상기 어플리케이션 프로그램의 상기 제 1 인스턴스가 상기 이동 통신 장치 상에서 론치되고 실행된다면 상기 어플리케이션 프로그램의 상기 제 1 인스턴스가 소모하였을 것으로 추정되는 자원의 양에 적어도 부분적으로 기초해서 내려지는, Wherein the determination is made based at least in part on an amount of resources estimated that the first instance of the application program would have consumed if the first instance of the application program was launched and executed on the mobile communication device, 이동 통신 장치.Mobile communication devices. 제 17 항에 있어서,The method of claim 17, 상기 이동 통신 장치는 그래픽 사용자 인터페이스(GUI)를 포함하고, 상기 GUI는 상기 결정 수단이 상기 어플리케이션 프로그램이 웹 어플리케이션으로서 원격적으로 론치되는 것을 결정하는 조건들을 변경하는데 이용가능한, The mobile communication device comprises a graphical user interface (GUI), wherein the GUI is usable to change the conditions for determining the application program to be remotely launched as a web application. 이동 통신 장치.Mobile communication devices. 제 17 항에 있어서,The method of claim 17, 상기 결정 수단은 상기 원격 컴퓨터 상에서 웹 어플리케이션의 실행을 종료하는 능력을 갖는, The determining means has the ability to terminate execution of a web application on the remote computer, 이동 통신 장치.Mobile communication devices. 프로세서 실행가능 명령들의 세트가 저장된 프로세서 판독가능 매체로서,A processor readable medium having a set of processor executable instructions stored thereon, the method comprising: 상기 프로세서 실행가능 명령들의 세트는,The set of processor executable instructions is (a) 어플리케이션 프로그램의 국부적 인스턴스가 이동 통신 장치 상에서 실행되었다면 상기 어플리케이션 프로그램의 상기 국부적 인스턴스가 사용하였을 자원의 양을 나타내는 정보를 보유하는 단계; 및 (a) retaining information indicative of the amount of resources the local instance of the application program would have used if a local instance of an application program was executed on a mobile communication device; And (b) 상기 국부적 인스턴스가 이동 통신 장치 상에서 국부적으로 론치되어야 하는지 또는 상기 어플리케이션 프로그램의 원격 인스턴스가 웹 어플리케이션으로서 상기 이동 통신 장치로부터 이용가능하도록 원격적으로 론치되어야 하는지 여부를 결정하는 단계를 수행하기 위한 것이며, (b) determining whether the local instance should be launched locally on a mobile communication device or whether a remote instance of the application program should be launched remotely from the mobile communication device as a web application. Will be 상기 결정은 상기 단계(a)에서 보유된 상기 정보에 적어도 부분적으로 기초하며, The determination is based at least in part on the information retained in step (a), 상기 프로세서 판독가능 매체는 상기 이동 통신 장치의 일부인, The processor readable medium is part of the mobile communication device 프로세서 판독가능 매체.Processor Readable Media.
KR1020097024441A 2007-04-25 2008-04-25 Device that determines whether to launch an application locally or remotely as a webapp KR101195695B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/739,991 2007-04-25
US11/739,991 US8355709B2 (en) 2006-10-23 2007-04-25 Device that determines whether to launch an application locally or remotely as a webapp
PCT/US2008/061640 WO2008134559A1 (en) 2007-04-25 2008-04-25 Device that determines whether to launch an application locally or remotely as a webapp

Publications (2)

Publication Number Publication Date
KR20100007907A KR20100007907A (en) 2010-01-22
KR101195695B1 true KR101195695B1 (en) 2012-10-29

Family

ID=39598417

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097024441A KR101195695B1 (en) 2007-04-25 2008-04-25 Device that determines whether to launch an application locally or remotely as a webapp

Country Status (7)

Country Link
US (1) US8355709B2 (en)
EP (1) EP2149086B1 (en)
JP (2) JP2010527057A (en)
KR (1) KR101195695B1 (en)
CN (2) CN101663647A (en)
TW (1) TW200910211A (en)
WO (1) WO2008134559A1 (en)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085787A1 (en) * 2004-09-15 2006-04-20 Nokia Corporation Method for providing a rapid response to an application launch request
US8472934B2 (en) * 2007-11-28 2013-06-25 Nokia Corporation Portable apparatus, method and user interface
EP2309363A1 (en) * 2008-07-15 2011-04-13 Mitsumi Electric Co., Ltd. Mobile device, cell pack, semiconductor device, display control method, and display control program
US8060604B1 (en) * 2008-10-10 2011-11-15 Sprint Spectrum L.P. Method and system enabling internet protocol multimedia subsystem access for non internet protocol multimedia subsystem applications
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US9000558B2 (en) * 2009-01-19 2015-04-07 Broadcom Corporation Wafer-level flip chip package with RF passive element/ package signal connection overlay
US7970830B2 (en) * 2009-04-01 2011-06-28 Honeywell International Inc. Cloud computing for an industrial automation and manufacturing system
US8538484B2 (en) * 2009-08-14 2013-09-17 Google Inc. Providing a user with feedback regarding power consumption in battery-operated electronic devices
AU2012100328A4 (en) * 2009-08-14 2012-04-19 Google Llc Providing a user with feedback regarding power consumption in battery-operated electronic devices
US8280456B2 (en) * 2009-08-14 2012-10-02 Google Inc. Providing a user with feedback regarding power consumption in battery-operated electronic devices
KR101718890B1 (en) 2009-12-04 2017-03-22 삼성전자주식회사 Method and Apparatus for providing a presumption consumption power information of content
KR101721539B1 (en) * 2010-02-11 2017-03-30 삼성전자주식회사 Method and apparatus for providing user interface in mobile terminal
US20120317408A1 (en) * 2010-02-25 2012-12-13 Nokia Corporation Method and Apparatus for Changing an Operational Characteristic of a Device in Order to Adjust the Power Consumption Level
JP5353797B2 (en) * 2010-04-01 2013-11-27 富士通モバイルコミュニケーションズ株式会社 Portable information terminal and signal processing method
US10019216B2 (en) 2010-04-07 2018-07-10 Lenovo Innovations Limited (Hong Kong) Information processing terminal and control method thereof
KR101657545B1 (en) * 2010-05-11 2016-09-19 엘지전자 주식회사 Mobile terminal and operating method thereof
EP2390758A1 (en) * 2010-05-25 2011-11-30 Samsung Electronics Co., Ltd. Method and apparatus for managing an application being executed in a portable terminal
JP5569269B2 (en) * 2010-09-06 2014-08-13 ソニー株式会社 Terminal device, information processing system, request destination selection method, and program
AU2011301166A1 (en) * 2010-09-07 2013-04-18 Apptui Inc. Control of computing devices and user interfaces
CA2732365C (en) * 2010-09-29 2017-03-14 Research In Motion Limited Method and device for providing system status information
EP2450794B1 (en) * 2010-10-22 2018-08-29 Orange Method for allowing distributed running of an application and related device and inference engine
EP2450792B1 (en) 2010-10-22 2020-01-15 Orange Method for allowing distributed running of an application and related pre-processing unit
US9152218B2 (en) * 2010-12-22 2015-10-06 Intel Corporation Framework for runtime power monitoring and management
US10108386B2 (en) * 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US10003672B2 (en) * 2011-02-09 2018-06-19 Cisco Technology, Inc. Apparatus, systems and methods for deployment of interactive desktop applications on distributed infrastructures
KR101102621B1 (en) * 2011-06-13 2012-01-16 오퍼니티 주식회사 Commercial service providing method using contents background area of smart device
US9526086B1 (en) * 2011-08-23 2016-12-20 Sprint Communications Company L.P. Application data rate limiting in a wireless communication device
CN103019837A (en) * 2011-09-27 2013-04-03 中国移动通信集团公司 Resource scheduling method, device and terminal equipment
US8359389B1 (en) * 2011-10-11 2013-01-22 Google Inc. Monitoring application program resource consumption
JP2013115670A (en) * 2011-11-30 2013-06-10 Sony Corp Imaging apparatus, control method thereof, and program
US20130166594A1 (en) * 2011-12-23 2013-06-27 T-Mobile Usa Inc. Advertisement, Feature and Data Provisioning Based on Dialed Numbers and Other Addresses
JP5705757B2 (en) * 2012-01-24 2015-04-22 日本電信電話株式会社 Application execution apparatus, system, and program
US8768419B2 (en) * 2012-01-26 2014-07-01 Verizon Patent And Licensing Inc. Mobile battery partitioning system and method
JP5120989B1 (en) * 2012-02-15 2013-01-16 春佳 西守 Communications system
US9098357B2 (en) * 2012-04-11 2015-08-04 Nokia Technologies Oy Method and apparatus for activity management across multiple devices
CN102750217B (en) * 2012-05-30 2017-01-25 宇龙计算机通信科技(深圳)有限公司 Method and device for displaying application program icons and terminal device
US8997104B2 (en) * 2012-06-29 2015-03-31 Time Warner Cable Enterprises Llc System and method for managing performance of a mobile device
GB2505412A (en) * 2012-08-28 2014-03-05 Ibm Collaborative modified consensus workload distribution between computing nodes
US8515499B1 (en) * 2012-09-10 2013-08-20 Google Inc. Estimating remaining use time of mobile computing devices
WO2014043864A1 (en) * 2012-09-19 2014-03-27 华为技术有限公司 Application invocation method, operating system and browser
CN103812887A (en) * 2012-11-09 2014-05-21 财团法人资讯工业策进会 File opening method and system
US11237719B2 (en) 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device
US10423214B2 (en) 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
JP6463598B2 (en) * 2012-11-20 2019-02-06 三星電子株式会社Samsung Electronics Co.,Ltd. Delegating processing from wearable electronic devices
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
CN103838586A (en) * 2012-11-20 2014-06-04 财团法人资讯工业策进会 System and method for opening file
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
US8994827B2 (en) 2012-11-20 2015-03-31 Samsung Electronics Co., Ltd Wearable electronic device
US10175739B2 (en) 2013-01-29 2019-01-08 Avago Technologies International Sales Pte. Limited Wearable device-aware supervised power management for mobile platforms
KR102185692B1 (en) * 2013-02-15 2020-12-02 삼성전자주식회사 Terminal appratus, server, browser of terminal appratus operaing system and browser operaing method of terminal apparatus
EP2767905A1 (en) * 2013-02-15 2014-08-20 Samsung Electronics Co., Ltd Terminal apparatus, server, browser of terminal apparatus operating system and method of operating browser
US9594411B2 (en) * 2013-02-28 2017-03-14 Qualcomm Incorporated Dynamic power management of context aware services
US9510193B2 (en) * 2013-03-15 2016-11-29 Qualcomm Incorporated Wireless networking-enabled personal identification system
GB2516833A (en) 2013-07-31 2015-02-11 Ibm Running software application with dynamic action delegation
CN104426921B (en) * 2013-08-20 2018-04-10 阿里巴巴集团控股有限公司 Show method, mobile terminal, browser and the system of web application document
CN103595758B (en) * 2013-10-11 2017-03-08 北京奇虎科技有限公司 Recommend the method and device of software
US10691332B2 (en) 2014-02-28 2020-06-23 Samsung Electronics Company, Ltd. Text input on an interactive display
US9535770B2 (en) * 2014-03-14 2017-01-03 Samsung Electronics Co., Ltd. Electronic system with offloading mechanism and method of operation thereof
KR20150108695A (en) * 2014-03-18 2015-09-30 삼성전자주식회사 Method and Apparatus for Managing Memory
CN104199701A (en) * 2014-09-01 2014-12-10 安一恒通(北京)科技有限公司 Method and device for starting applications in browser
CN105068802B (en) * 2015-08-06 2018-10-02 中国科学院软件研究所 A kind of Web application software realization system and method for striding equipment operation
CN105468407B (en) * 2015-11-19 2018-11-06 国云科技股份有限公司 A kind of automatic discovery and the method for starting class by sort run
US10334075B2 (en) * 2016-05-23 2019-06-25 Citrix Systems, Inc. Virtual browser integration
CN106790341B (en) * 2016-09-08 2019-11-22 大连海事大学 The self-adaption deployment method of mobile web service application
US11030827B2 (en) * 2018-01-12 2021-06-08 Ford Global Technologies, Llc Method and apparatus for dynamic distributed services redistribution
US10817281B2 (en) * 2018-10-29 2020-10-27 Sap Se Packaged application resources for mobile applications
CN111381960A (en) * 2018-12-29 2020-07-07 中兴通讯股份有限公司 Terminal task processing method and device, storage medium and electronic device
US11689637B2 (en) * 2019-10-14 2023-06-27 Qualcomm Incorporated Local cache management in edge networks
CN114546324B (en) * 2020-11-11 2024-09-17 上海哔哩哔哩科技有限公司 Audio processing method and device
US11868748B2 (en) * 2021-07-30 2024-01-09 Informatica Llc Method, apparatus, and computer-readable medium for intelligent execution of a solution on a computer network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010020255A1 (en) 2000-01-14 2001-09-06 Sun Microsystems, Inc. Method and system for remote control and interaction with a run time environment component
US20040199918A1 (en) * 2003-04-04 2004-10-07 International Business Machines Corporation Backfill scheduling of applications based on data of the applications
KR100556913B1 (en) 2003-12-17 2006-03-03 엘지전자 주식회사 Streaming service method according to battery capacity of mobile communication terminal

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141759A (en) 1997-12-10 2000-10-31 Bmc Software, Inc. System and architecture for distributing, monitoring, and managing information requests on a computer network
US20030013483A1 (en) * 2001-07-06 2003-01-16 Ausems Michiel R. User interface for handheld communication device
US6990662B2 (en) 2001-10-31 2006-01-24 Hewlett-Packard Development Company, L.P. Method and system for offloading execution and resources for resource-constrained networked devices
AU2003224373A1 (en) * 2002-05-17 2003-12-02 Koninklijke Philips Electronics N.V. Rendering a first media type content on a browser
JP2005531061A (en) * 2002-06-24 2005-10-13 ドコモ コミュニケーションズ ラボラトリーズ ユー・エス・エー インコーポレーティッド Execution environment for mobile applications
US20050033751A1 (en) * 2003-08-07 2005-02-10 Jonathan Maron Web service management leveraging a single process service framework
US20050060704A1 (en) 2003-09-17 2005-03-17 International Business Machines Corporation Managing processing within computing environments including initiation of virtual machines
JP2005141669A (en) 2003-11-10 2005-06-02 Nippon Telegr & Teleph Corp <Ntt> Grid computing and load distribution method in grid computing
US8458691B2 (en) 2004-04-15 2013-06-04 International Business Machines Corporation System and method for dynamically building application environments in a computational grid
US7380129B2 (en) 2004-04-22 2008-05-27 International Business Machines Corporation Method and apparatus for detecting grid intrusions
US20050240765A1 (en) 2004-04-22 2005-10-27 International Business Machines Corporation Method and apparatus for authorizing access to grid resources
US7464160B2 (en) 2004-06-17 2008-12-09 International Business Machines Corporation Provisioning grid services to maintain service level agreements
US7421402B2 (en) 2004-08-19 2008-09-02 International Business Machines Corp. Tier-based dynamic incentive arbitration in an on-demand computing environment
US7712100B2 (en) 2004-09-14 2010-05-04 International Business Machines Corporation Determining a capacity of a grid environment to handle a required workload for a virtual grid job request
JP4257857B2 (en) 2004-09-22 2009-04-22 インターナショナル・ビジネス・マシーンズ・コーポレーション Data processing system and data processing method
US20060106689A1 (en) 2004-11-15 2006-05-18 International Business Machines Corporation Method and apparatus for documenting a contribution of a remotely accessed computing resource to a recipient organization
US7472079B2 (en) 2005-01-12 2008-12-30 International Business Machines Corporation Computer implemented method for automatically controlling selection of a grid provider for a grid job
US7548977B2 (en) * 2005-02-11 2009-06-16 International Business Machines Corporation Client / server application task allocation based upon client resources
US7676584B2 (en) * 2005-05-17 2010-03-09 Kid Group Llc Method and apparatus for providing games and content
JP4839715B2 (en) * 2005-07-27 2011-12-21 富士ゼロックス株式会社 Thin client system
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US20080026746A1 (en) * 2006-07-26 2008-01-31 Appaji Anuradha K Modular Mobile Device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010020255A1 (en) 2000-01-14 2001-09-06 Sun Microsystems, Inc. Method and system for remote control and interaction with a run time environment component
US20040199918A1 (en) * 2003-04-04 2004-10-07 International Business Machines Corporation Backfill scheduling of applications based on data of the applications
KR100556913B1 (en) 2003-12-17 2006-03-03 엘지전자 주식회사 Streaming service method according to battery capacity of mobile communication terminal

Also Published As

Publication number Publication date
JP2013152732A (en) 2013-08-08
US20080268828A1 (en) 2008-10-30
JP2010527057A (en) 2010-08-05
WO2008134559A1 (en) 2008-11-06
CN105426246A (en) 2016-03-23
JP5795349B2 (en) 2015-10-14
US8355709B2 (en) 2013-01-15
EP2149086B1 (en) 2017-03-29
CN101663647A (en) 2010-03-03
TW200910211A (en) 2009-03-01
KR20100007907A (en) 2010-01-22
EP2149086A1 (en) 2010-02-03

Similar Documents

Publication Publication Date Title
KR101195695B1 (en) Device that determines whether to launch an application locally or remotely as a webapp
EP3117317B1 (en) Resource management based on device-specific or user-specific resource usage profiles
US11204806B2 (en) Systems and methods for user adaptive resource management
US20210389973A1 (en) Electronic device and method for operating the same
US9201693B2 (en) Quota-based resource management
US9760413B2 (en) Power efficient brokered communication supporting notification blocking
US8479202B2 (en) Method and system for autonomic application program spawning in a computing environment
KR20190046995A (en) Memory Return Method and Device
US20170308148A1 (en) Adaptive Doze to Hibernate
US8799474B2 (en) Apparatus and method to allocate limited resources
US20170149633A1 (en) Estimation of power consumption of individual websites
CN109271208A (en) Parameter setting method, device, terminal and storage medium
CN106406494B (en) A kind of method and terminal of processor scheduling
CN109117280A (en) The method that is communicated between electronic device and its limiting process, storage medium
CN109117279A (en) The method that is communicated between electronic device and its limiting process, storage medium
CN107861855A (en) A kind of method, terminal, system and computer-readable recording medium for reducing abnormal power consumption
CN112181508B (en) Page automatic refreshing method and device and computer equipment
CN110209491B (en) Resource management method, device, server and storage medium
CN113747506A (en) Resource scheduling method, device and network system
CN114968551B (en) Process management method and device, electronic equipment and storage medium
CN113760540B (en) Task processing method and related device
CN112925693A (en) System monitoring method and device, computer equipment and storage medium

Legal Events

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

Payment date: 20150930

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 8