KR101981885B1 - 애플리케이션 가속화 방법 및 디바이스 - Google Patents

애플리케이션 가속화 방법 및 디바이스 Download PDF

Info

Publication number
KR101981885B1
KR101981885B1 KR1020177033385A KR20177033385A KR101981885B1 KR 101981885 B1 KR101981885 B1 KR 101981885B1 KR 1020177033385 A KR1020177033385 A KR 1020177033385A KR 20177033385 A KR20177033385 A KR 20177033385A KR 101981885 B1 KR101981885 B1 KR 101981885B1
Authority
KR
South Korea
Prior art keywords
class
monitoring
control center
states
acceleration
Prior art date
Application number
KR1020177033385A
Other languages
English (en)
Other versions
KR20170138525A (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 KR20170138525A publication Critical patent/KR20170138525A/ko
Application granted granted Critical
Publication of KR101981885B1 publication Critical patent/KR101981885B1/ko

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/54Interprogram communication
    • 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • 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
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

애플리케이션 가속화 방법 및 디바이스가 제공되며, 본 방법은, 제어 센터가 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하는 단계(101); 제어 센터가, 프로세스가 개시됨을 모니터링하고 프로세스가 가속화될 필요가 있음을 확인한 후에, 프로세스 모니터링 클래스에 의해 전송된 프로세스 정보를 수신하는 단계(102); 및 제어 센터가 프로세스 정보에 기초하여 서비스 클래스를 호출하여, 서비스 클래스로 하여금 프로세스의 복수의 상태들을 모니터링하게 하고, 프로세스 상태가 종료 상태일 때까지 프로세스의 각각의 상태 하에서 태스크들을 실행하게 하는 단계(103)를 포함한다. 본 방법은 애플리케이션 가속화를 실현하기 위해 서비스 클래스의 구성 데이터가 프로세스 가속화를 지원할 수 있을 것만을 필요로 한다. 또한, 프로세스를 실행하는 프로세스에서의 태스크가 코드 수정을 필요로 하지 않고도 상이한 프로세스들에 의해 재사용되고 공유될 수 있어, 동작 및 유지관리 효율을 향상시킬 수 있다.

Description

애플리케이션 가속화 방법 및 디바이스
본 출원은 2015년 9월 9일자로 중국 특허청에 출원되고 발명의 명칭이 "APPLICATION ACCELERATION METHOD AND DEVICE"인 중국 특허 출원 제201510571980.5호의 우선권을 주장하며, 그 전체가 본 명세서에 참조로 포함된다.
본 개시내용은 컴퓨터들에 관한 기술 분야에 관한 것으로, 특히, 애플리케이션 가속화 방법 및 애플리케이션 가속화 디바이스에 관한 것이다.
애플리케이션 가속화는 애플리케이션의 속도를 증가시킬 수 있는 소프트웨어에 관한 것이다.
텐센트 PC 매니저(Tencent PC manager)와 같은 많은 소프트웨어는 애플리케이션 가속화 기능을 갖는다. 예를 들어, 텐센트 PC 매니저는 C++ 언어와 루아(lua)(임베디드 스크립팅 언어) 엔진을 결합하여 게임 및 애플리케이션 소프트웨어에 대한 시동 가속화를 수행한다. 이 경우, 게임 지원 또는 애플리케이션 지원이 추가될 때마다, 프로그램 코드들이 변경될 필요가 있으며, 루아 스크립트를 위한 패키지 지원에 클래스가 추가된다. 또한, 루아 엔진의 데이터의 독립성으로 인해, 데이터가 공유될 수 없다. 따라서, 상기 애플리케이션 가속화 솔루션의 동작 효율 및 유지관리 효율이 낮다.
본 개시내용의 실시예들에 따라 애플리케이션 가속화 방법 및 애플리케이션 가속화 디바이스가 제공되어, 데이터 공유를 실현하고, 동작 효율 및 유지관리 효율을 향상시킨다.
애플리케이션 가속화 방법은,
제어 센터에 의해, 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하는 단계;
프로세스 모니터링 클래스가 프로세스가 개시됨을 모니터링하고 프로세스가 가속화될 필요가 있음을 확인한 후에, 제어 센터에 의해, 프로세스 모니터링 클래스에 의해 전송된 프로세스에 대한 프로세스 정보를 수신하는 단계; 및
제어 센터에 의해, 프로세스 정보에 기초하여 서비스 클래스를 호출하는 단계 - 서비스 클래스는 프로세스의 복수의 상태들을 모니터링하고, 프로세스가 종료 상태에 있을 때까지 프로세스의 복수의 상태들 각각에서 태스크를 실행함 -
를 포함한다.
애플리케이션 가속화 디바이스는,
프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하도록 구성되는 모니터링 호출 유닛;
프로세스 모니터링 클래스가 프로세스가 개시됨을 모니터링하고 프로세스가 가속화될 필요가 있음을 확인한 후에, 프로세스 모니터링 클래스에 의해 전송된 프로세스에 대한 프로세스 정보를 수신하도록 구성되는 제1 수신 유닛; 및
프로세스 정보에 기초하여 서비스 클래스를 호출하도록 구성되는 서비스 호출 유닛 - 서비스 클래스는 프로세스의 복수의 상태들을 모니터링하고, 프로세스가 종료 상태에 있을 때까지 프로세스의 복수의 상태들 각각에서 태스크를 실행함 -
을 포함한다.
위에서 설명된 기술적 솔루션으로부터, 본 개시내용의 실시예들이 다음의 이점들을 갖는 것을 알 수 있다. 제어 센터는 가속화 프로시져를 제어하고, 프로세스 모니터링 클래스는 가속화될 필요가 있는 프로세스를 모니터링한다. 프로세스의 상태는 개시로부터 종료로 바뀌고, 프로세스의 상태들 각각에서 태스크들이 실행되고, 태스크들의 실행은 서비스 클래스에 의해 제어된다. 서비스 클래스의 구성 데이터가 프로세스에 대한 가속화를 지원할 수 있는 한, 애플리케이션 가속화가 실현될 수 있다. 또한, 프로세스를 실행하는 프로시져에서의 태스크들은 코드들을 수정하지 않고도 상이한 프로세스들에 의해 재사용되고 공유될 수 있다. 따라서, 본 개시내용의 실시예들에서 채택된 가속화 솔루션은 동작 효율 및 유지관리 효율을 향상시킬 수 있다.
본 개시내용의 실시예들의 기술적 솔루션들을 보다 명확하게 예시하기 위해, 실시예들의 설명에 사용되는 도면들이 이하에서 간략하게 설명된다. 명백하게, 다음의 설명에서의 도면들은 단지 본 개시내용의 일부 실시예들만을 도시하며, 임의의 창의적인 작업 없이 본 명세서에 제공된 도면들에 따라 본 기술분야의 통상의 기술자에 의해 다른 도면들이 획득될 수 있다.
도 1은 본 개시내용의 실시예에 따른 방법의 개략적인 흐름도이다.
도 2는 본 개시내용의 실시예에 따른 소프트웨어의 개략적인 구조도이다.
도 3은 본 개시내용의 실시예에 따른 데이터베이스 모델링의 개략적인 구조도이다.
도 4는 본 개시내용의 실시예에 따른 디바이스의 개략적인 구조도이다.
도 5는 본 개시내용의 실시예에 따른 디바이스의 개략적인 구조도이다.
도 6은 본 개시내용의 실시예에 따른 디바이스의 개략적인 구조도이다.
도 7은 본 개시내용의 실시예에 따른 디바이스의 개략적인 구조도이다.
도 8은 본 개시내용의 실시예에 따른 디바이스의 개략적인 구조도이다.
본 개시내용의 목적, 기술적 솔루션들 및 이점들을 보다 명확하게 하기 위해, 이하에서, 본 개시내용은 도면들과 관련하여 더 상세히 설명될 것이다. 명백하게, 설명되는 실시예들은 모든 실시예들이 아닌, 본 개시내용의 실시예들 중 일부에 불과하다. 임의의 창의적인 작업 없이 본 개시내용의 실시예들에 기초하여 본 기술분야의 통상의 기술자에 의해 획득되는 모든 다른 실시예들은 본 개시내용의 보호 범위 내에 있다.
본 개시내용의 실시예에 따라 애플리케이션 가속화 방법이 제공되며, 도 1에 도시된 바와 같이, 애플리케이션 가속화 방법은 블록들(101-103)을 포함한다.
블록(101)에서, 제어 센터는 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출한다.
본 개시내용의 실시예에서, 제어 센터는 애플리케이션 가속화를 스케줄링하기 위한 기능을 제공하고, 가속화 기능을 갖는 소프트웨어의 외부 인터페이스를 제공할 수 있다. 제어 센터는 프로세스 모니터링 클래스를 호출한다. 프로세스 모니터링 클래스는 소프트웨어 개념에 속하며, 디바이스에서의 프로세스의 개시와 종료를 모니터링할 수 있다. 제어 센터를 트리거링하여 프로세스 모니터링 클래스를 호출하는 방법과 관련하여, 본 개시내용의 실시예에서는 다음과 같은 방식이 제공된다.
제어 센터가 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하기 전에, 상기 애플리케이션 가속화 방법은,
제어 센터에 의해, 동적 링크 라이브러리를 통해 초기화 인터페이스 및 초기화 해제(deinitialization) 인터페이스를 노출시키는 단계; 및
초기화 인터페이스가 호출된 후에, 제어 센터에 의해, 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하는 단계
를 추가로 포함한다.
프로세스 모니터링 클래스의 기능은 디바이스에서의 프로세스의 개시와 종료를 모니터링하는 것이고, 기능의 특정 구현은 기능을 갖는 클래스에 대한 정의를 지칭할 수 있으며, 여기서는 반복적으로 설명되지 않는다.
블록(102)에서, 프로세스 모니터링 클래스가 프로세스가 개시됨을 모니터링하고 프로세스가 가속화될 필요가 있음을 확인한 후에, 제어 센터는 프로세스 모니터링 클래스에 의해 전송된 프로세스에 대한 프로세스 정보를 수신한다.
본 개시내용의 실시예에서, 프로세스 모니터링 클래스는 프로세스를 스크리닝하는 기능을 갖는데, 이것은 모든 프로세스들이 가속화될 필요는 없고, 모든 프로세스들이 가속화될 수는 없기 때문이다. 가속화될 필요가 있는 프로세스가 있을 때에만, 가속화의 로직이 호출된다. 물론, 프로세스는 가속화될 수 있는 프로세스여야 한다. 본 실시예는 또한 프로세스 스크리닝 로직을 제공하며, 프로세스 스크리닝 로직의 흐름의 특정 구현은, 프로세스 모니터링 클래스가 프로세스가 개시됨을 모니터링한 후에, 상기 프로세스가 구성된 프로세스를 히트(hit)하는지 여부를 결정하고, 상기 프로세스가 구성된 프로세스를 히트한다고 결정하는 경우, 프로세스 정보를 제어 센터에 전송하도록 콜백 인터페이스를 트리거링하는 단계로서 설명된다.
본 개시내용의 실시예에서, 히트한다는 것(hitting)은 모니터링된 프로세스가 구성된 프로세스, 즉, 가속화될 필요가 있고 가속화될 수 있는 프로세스에 속한다는 것을 나타낸다. 일반적으로, 프로세스 이름이 프로세스 파일에서 매치되는 데 사용되며, 성공적인 매치는 히트한다는 것을 나타낸다.
블록(103)에서, 제어 센터는 프로세스 정보에 기초하여 서비스 클래스를 호출하고, 서비스 클래스는 프로세스의 복수의 상태들을 모니터링하고, 프로세스가 종료 상태에 있을 때까지 프로세스의 상태들 각각에서 태스크를 실행한다.
서비스 클래스는 프로세스의 상태들을 유지관리하고, 프로세스의 태스크들의 실행을 제어하는 데 사용되는 기능 클래스이다. 실시예에서의 프로세스의 태스크들은 프로세스의 기능을 실현하기 위해 프로세스에 의해 실행되는 콘텐츠를 지칭하며, 태스크들은 대개 클래스 팩토리에 의해 생성될 수 있고, 재사용되고 공유될 수 있다.
본 개시내용의 실시예에서, 제어 센터는 가속화 프로시져를 제어하고, 프로세스 모니터링 클래스는 가속화될 필요가 있는 프로세스를 모니터링한다. 프로세스의 상태는 개시로부터 종료로 바뀌고, 프로세스의 상태들 각각에서 태스크들이 실행되고, 태스크들의 실행은 서비스 클래스에 의해 제어된다. 서비스 클래스의 구성 데이터가 프로세스에 대한 가속화를 지원할 수 있는 한, 애플리케이션 가속화가 실현될 수 있다. 또한, 프로세스를 실행하는 프로시져에서의 태스크들은 코드들을 수정하지 않고도 상이한 프로세스들에 의해 재사용되고 공유될 수 있다. 따라서, 본 개시내용의 실시예들에서 채택된 가속화 솔루션은 동작 효율 및 유지관리 효율을 향상시킬 수 있다.
또한, 프로세스에 대한 가속화가 완료된 후에 실행되는 구현 솔루션이 본 개시내용의 실시예들에 따라 추가로 제공된다. 서비스 클래스가 프로세스가 종료 상태에 있음을 모니터링한 후에, 상기 애플리케이션 가속화 방법은,
제어 센터에 의해, 서비스 클래스로부터 상기 프로세스에 대한 가속화가 완료됨을 나타내는 정보를 수신하는 단계; 및
제어 센터에 의해, 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하는 단계
를 추가로 포함한다.
서비스 클래스는 프로세스의 현재 상태를 알고 있기 때문에, 프로세스의 실행이 완료되고 프로세스가 종료 상태에 있는 경우, 대응하는 정보가 제어 센터로 피드백될 수 있고, 제어 센터는 다음 프로세스를 모니터링하는 것을 제어한다. 디바이스에 의해 동작되는 프로세스들에 대한 가속화는 주기적으로 자동으로 완료될 수 있다.
본 개시내용의 실시예에서, 이론적으로, 서비스 클래스는 프로세스, 상태 및 태스크 간의 대응 관계만을 취득함으로써 상기 기능들을 실현할 수 있다. 상이한 구성 파일들은 상이한 프로세스들을 기록할 수 있다. 하나의 구성 파일이 복수의 프로세스들을 기록하는 데 사용될 수 있다. 프로세스, 상태 및 태스크 간의 대응 관계에 대한 정보로 구성된 구성 파일이 상기 서비스 클래스에 저장된다.
이 실시예에서, 구성 파일은 복수의 프로세스들을 포함할 수 있다. 이하의 실시예들에서, 제1 프로세스 및 제2 프로세스는 구성 파일 내의 프로세스들의 예들에 불과하다. 제1 프로세스 또는 제2 프로세스는 위에서 설명된 가속화될 필요가 있는 프로세스일 수도 있고, 위에서 설명된 가속화될 필요가 있는 프로세스가 아닐 수도 있으며, 본 개시내용의 실시예에서는 제한되지 않는다.
위에서 설명된 구성 파일은 적어도 2개의 프로세스, 즉, 제1 프로세스 및 제2 프로세스를 포함한다.
위에서 설명된 구성 파일에서, 위에서 설명된 제1 프로세스는 제1 프로세스의 실행의 개시로부터 상기 제1 프로세스의 종료까지의 제1 프로세스의 모든 상태들에 대응하고, 제1 프로세스의 상태들 각각에서 실행되는 태스크에 대응한다. 하나 이상의 태스크들이 각각의 상태에서 실행된다.
본 개시내용의 실시예는 태스크에 대한 실행 결과 및 태스크의 타입의 대안적인 방식의 예를 추가로 제공한다. 위에서 설명된 태스크에 대한 실행 결과는 성공 또는 실패를 포함하고, 위에서 설명된 태스크의 타입은 조건 트리거링, 조건 판단 및 액션 중 적어도 하나를 포함한다.
본 개시내용의 실시예에서, 범용 가속화 플랫폼은 애플리케이션에 대한 시동 가속화 지원의 편의성 및 후속적인 능력 향상에 대한 확장가능성을 고려하여 구축된다(이는 시동 가속화에 제한되지 않는다). 따라서, 본 개시내용의 실시예에서의 유한 상태 머신의 원리에 따른 워크플로우 엔진(모듈)을 사용하여 범용 태스크 플랫폼이 구축되어, 대부분의 애플리케이션의 시동 가속화를 지원한다. 이 경우, 특정 애플리케이션 및 특정 상태의 애플리케이션에 대한 가속화에 제한되지 않는다.
도 2에 도시된 바와 같이, TAO에서의 게임 시동 가속화가 예로서 취해진다. 도 2에 도시된 구조에서, 워크플로우 모듈은 서비스 프로시져 관리(TAO Work Flow) 부분에 위치해 있다. 도 2에 도시된 구조는 TAO 어셈블리, TAO 애플리케이션, 게임 서비스, 트레이닝 도구, 프로시져 구성 도구, 게임 시동 가속화 프로시져 및 서비스 프로시져 관리를 포함한다. 추가적으로, 서비스 프로시져 관리에 기초하여 다른 가속화 능력이 확장될 수 있으며, 이는 도 2에 예시되지 않는다. 서비스 프로시져 관리는 애플리케이션 계층의 코어 부분에 위치되고(다음 계층은 가속화 능력을 제공하도록 구동하는 데에 사용됨), 전체 애플리케이션 가속화 프로시져를 균일하게 구축하고 관리하는 데 사용되며, 특정 구현 아키텍처가 데이터베이스 모델링의 클래스의 개략적인 구조도인 도 3에 도시되어 있다. 클래스는 프로그래밍 용어에 속하며, 데이터 멤버와 멤버 함수를 포함한다. 데이터 멤버는 클래스의 속성에 대응하며, 클래스의 데이터 멤버는 스토리지 할당이 필요 없는 데이터 타입일 수도 있다. 멤버 함수는 클래스의 속성을 동작시키는 데 사용되며, 클래스의 특정 동작이다. 클래스와 외부 간의 상호작용의 동작은 인터페이스로 불린다. 멤버 함수는 클래스 내부 또는 외부에서 실현될 수 있다. 클래스 내부에서 실현되는 멤버 함수에는 "인라인(inline)"이 순응하여 추가되고, 클래스 외부에서 실현되는 멤버 함수에는 도메인 오퍼레이터가 추가되어야 하며, 즉, "클래스 이름::멤버 함수"이다. 도 3에 도시된 클래스는 클래스의 기본 정의들을 참조하여 해석될 수 있다.
도 3의 클래스들은 예시로서 이하에 예시된다.
Figure 112017114610443-pct00001
상기 표 1은 인터페이스 이름 ITaoWorkFlow(ITAO 워크플로우)를 포함하고, 정의된 인터페이스 이름은 Init(초기화) 및 UnInit(초기화 해제), Start(개시), Stop(정지)를 포함하며, 이들은 전체 동적 링크 라이브러리(Dynamic Link Library)(DLL)를 통해 노출되는 인터페이스들이다.
Figure 112017114610443-pct00002
상기 표 2는 인터페이스 이름 ITAOWorkFlowInner(내부 워크플로우), 및 NotifyAssignBusinessFlowStart(비지니스 할당 개시 통지) 및 NotifyAssignBusinessFlowEnd(비지니스 할당 종료 통지)를 포함하는 2개의 인터페이스를 포함한다.
표 1 및 표 2에 기록된 콘텐츠는, 각각, 제어 센터로서의 클래스 CTAOWorkFlowImpl에 의해 제공되는 인터페이스들의 클래스, 및 초기화 및 시동 가속화 흐름을 위한 클래스이다.
Figure 112017114610443-pct00003
상기 표 3에서, CMonitorMgr은 프로세스를 모니터링하기 위한 관리 클래스이며, 프로세스를 모니터링하기 위해, CMonitorMgr에서 정의되는 ITAOWorkFlowInner*m_pTaoInnerInterface, ITAOWorkFlowdata*m_pTaoWorkFlowData 및 ITAOFactory*m_pTaoFactory를 통해 내부 워크플로우, 워크플로우의 데이터 및 클래스가 속한 클래스 팩토리가 각각 모니터링된다.
Figure 112017114610443-pct00004
상기 표 4에서, CMonitorMgr은 태스크를 정의하는 클래스로서, 여기서 IBusinessData는 서비스 데이터를 호출하기 위한 함수이다.
Figure 112017114610443-pct00005
상기 표 5에서, ITAOWorkFlowDate는 ITAO 워크플로우의 인터페이스를 정의하기 위한 클래스이다.
실시예의 예로서 워크플로우의 인터페이스에 대한 클래스 및 CGameXmlConfig 클래스의 정의에 기초하여, 게임 구성의 클래스가 정의된다.
Figure 112017114610443-pct00006
상기 표 6에서, 인터페이스 클래스 ITaskCallback이 콜백에 대해 정의되며, 여기서는 멤버 함수 OnTaskRet가 태스크 콜백을 실현하는 데 사용된다.
Figure 112017114610443-pct00007
상기 표 7은 인터페이스를 정의하기 위한 클래스를 도시하고, IBusinessData는 클래스 이름에 대한 서비스 데이터이며, 여기서 +GetDynamicData(), +GetStaticData(DWORD)(), +GetMoniterInfoData()는 각각 동적 데이터를 취득하고, 정적 데이터를 획득하고, 모니터링 정보 데이터를 취득하는 데 사용되는 멤버 함수들이다.
Figure 112017114610443-pct00008
상기 표 8은 인터페이스를 정의하기 위한 클래스를 도시하며, 클래스는 인터페이스가 워크플로우의 상태를 정의하기 위한 클래스임을 나타내는 클래스 이름 IWorkFlowStateDefinerNotify를 가지며, 클래스의 멤버 함수들 +NotifyOneStateBegin(), +NotifyOneStateEnd(), +StartOneStateAllTaskList(), +StopOneStateAllTaskList()은 각각 한 상태의 개시를 통지하고, 한 상태의 종료를 통지하고, 한 상태에서의 모든 태스크 리스트들을 개시하고 한 상태에서의 모든 태스크 리스트들의 정지를 실현하는 데 사용된다.
Figure 112017114610443-pct00009
상기 표 9는 인터페이스를 정의하는 클래스를 도시하며, 클래스는 인터페이스가 상태들의 클래스 팩토리를 정의하기 위한 클래스임을 나타내는 클래스 이름 IStateFactory를 갖고, 클래스의 멤버 함수 +InternaICreateState()는 내부 상태 확립을 실현하는 데 사용된다.
Figure 112017114610443-pct00010
상기 표 10은 클래스가 서비스 프로시져 관리를 정의하는 데 사용되는 것임을 나타내는 클래스 이름 CBusinessWorkFlowMgr을 포함하며, 클래스의 멤버 함수 ITAOWorkFlowData*m_pTaoWorkFlowData, ITAOFactory*m_pTaoFactory, ITAOWorkFlowInner*m_pTaoInnerInterface는 각각 워크플로우 데이터, 워크플로우 클래스 팩토리 및 내부 워크플로우의 호출을 실현하는 데 사용된다.
Figure 112017114610443-pct00011
상기 표 11은 인터페이스를 정의하기 위한 클래스를 도시하며, 클래스는 클래스 팩토리의 태스크를 나타내는 클래스 이름 ITaskFactory를 갖고, 클래스의 멤버 함수 +CreateAssignTask(), +SetTaskAttributes()는 각각 할당 태스크 생성 및 태스크 어트리뷰트들 설정을 실현하는 데 사용된다.
태스크 관리의 클래스 CStateMgr 및 특정 태스크의 클래스 IState는 상기 표 10에 기초하여 설정될 수 있다.
Figure 112017114610443-pct00012
상기 표 12의 클래스 이름은 클래스가 태스크 워크플로우를 정의하는 데 사용되는 것임을 나타내는 CTAOWorkFlowState이며, 클래스의 멤버 함수 IWorkFlowStateDefinerNotify*m_pTaoWorkFlowData는 워크플로우의 상태에 대한 정의 통지를 실현하는 데 사용된다.
Figure 112017114610443-pct00013
상기 표 13의 클래스 이름이 클래스가 태스크 정의에 사용되는 것임을 나타내는 ITask이며, 클래스의 멤버 함수들 IBusinessData*m_pBusinessData, ITaskCallback*m_pITaskCallback은 각각 서비스 데이터의 호출 및 태스크 호출 리턴을 실현하는 데 사용된다.
도 3에 도시된 실선 화살표는 클래스들 간의 의존 관계를 나타낸다.
본 개시내용의 실시예의 구현 프로시져는 도 3에 도시된 데이터베이스 모델링의 결과에 기초하여 이하에 설명된다. CTAOWorkFlowImpl은 Init 및 UnInit와 같은 인터페이스들을 제공하는 제어 센터이며, 상기 인터페이스들의 포인터들을 획득한 후에, 워크플로우 모듈은 2개의 인터페이스를 통해 초기화 및 초기화 해제될 수 있다. 전체 가속화 프로시져는 제공된 개시 인터페이스에 의해 개시된다.
CTAOWorkFlowImpl의 멤버 클래스 CMonitorMgr은 프로세스를 모니터링하기 위한 관리 클래스이다. 가속화 프로시져가 트리거링되기 전에, 게임 프로세스의 개시와 종료가 먼저 모니터링되고, 구성된 게임을 히트하는 게임 프로세스의 개시가 모니터링되고 나면, CMonitorMgr의 콜백 인터페이스가 트리거링되며, 이는 제어 센터 CTAOWorkFlowImpl에게 통지된다. 이 경우, 다른 멤버 클래스 CBusinessWorkMgr의 메소드가 호출된다. 멤버 클래스 CBusinessWorkMgr에서, 상태 머신은 내부를 유지하도록 구성되며, 구성 파일에는 복수의 상태들이 있다. 하나 이상의 구성된 태스크들, 즉, 도 3의 ITask 인터페이스가 각각의 상태에서 실행된다. 프로세스가 종료 상태에 있을 때까지, 프로세스는 구성 파일에서의 태스크들의 실행 결과들에 기초하여 상태들 간을 전환한다(규약에 따라, 1000).
태스크들은 클래스 팩토리에 의해 생성되고 재사용될 수 있으며, 태스크들의 결과들은 통상적으로 성공 또는 실패일 수 있다. 태스크들은 Trigger(타이밍 또는 메시지 구동과 같은 특정 조건들 하에서의 트리거링), Condition(메모리가 요구사항을 충족하는지 여부, 하드 디스크의 타입이 정확한지 여부와 같은 조건 판단), Act(프리페치 개시, 프리페치 정지와 같은 액션들)와 같은 상이한 타입들로 분할될 수 있다.
CBusinessWorkMgr이 프로시져의 실행을 완료한 후, 제어 센터는 다음 모니터링을 개시하도록 통지받으며, 이러한 방식으로, 가속화 프로시져가 구성된 게임들에 대해 주기적으로 개시된다. 실시예에서, 상이한 게임들은 상이한 구성 파일들에 대응할 수 있다. 실시예에서, 구성 파일들의 상태들 간의 전환에 기초하여 상이한 가속화 프로시져들이 제공된다. 본 개시내용의 실시예에서 채택된 기술적 솔루션은 구성 파일들의 지원만을 필요로 하며, 대부분의 애플리케이션에 가속화 능력을 제공할 수 있다.
본 개시내용의 실시예들에서 애플리케이션 가속화 디바이스가 추가로 제공되며, 도 4에 도시된 바와 같이, 애플리케이션 가속화 디바이스는 모니터링 호출 유닛(401), 제1 수신 유닛(402) 및 서비스 호출 유닛(403)을 포함한다.
모니터링 호출 유닛(401)은 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하도록 구성된다.
제1 수신 유닛(402)은, 프로세스 모니터링 클래스가 프로세스가 개시됨을 모니터링하고 프로세스가 가속화될 필요가 있음을 확인한 후에, 프로세스 모니터링 클래스에 의해 전송된 프로세스에 대한 프로세스 정보를 수신하도록 구성된다.
서비스 호출 유닛(403)은 프로세스 정보에 기초하여 서비스 클래스를 호출하도록 구성되며, 여기서 서비스 클래스는 프로세스의 복수의 상태들을 모니터링하고, 프로세스가 종료 상태에 있을 때까지 프로세스의 복수의 상태들 각각에서 태스크를 실행한다.
서비스 클래스는 프로세스의 상태들을 유지관리하고, 프로세스의 태스크들의 실행을 제어하는 데 사용되는 기능 클래스이다. 실시예에서의 프로세스의 태스크들은 프로세스의 기능을 실현하기 위해 프로세스에 의해 실행되는 콘텐츠를 지칭하며, 태스크들은 대개 클래스 팩토리에 의해 생성될 수 있고, 재사용되고 공유될 수 있다.
본 개시내용의 실시예에서, 제어 센터는 가속화 프로시져를 제어하고, 프로세스 모니터링 클래스는 가속화될 필요가 있는 프로세스를 모니터링한다. 프로세스의 상태는 개시로부터 종료로 바뀌고, 프로세스의 상태들 각각에서 태스크들이 실행되고, 태스크들의 실행은 서비스 클래스에 의해 제어된다. 서비스 클래스의 구성 데이터가 프로세스에 대한 가속화를 지원할 수 있는 한, 애플리케이션 가속화가 실현될 수 있다. 또한, 프로세스를 실행하는 프로시져에서의 태스크들은 코드들을 수정하지 않고도 상이한 프로세스들에 의해 재사용되고 공유될 수 있다. 따라서, 본 개시내용의 실시예들에서 채택된 가속화 솔루션은 동작 효율 및 유지관리 효율을 향상시킬 수 있다.
또한, 프로세스에 대한 가속화가 완료된 후에 실행되는 구현 솔루션이 본 개시내용의 실시예에 따라 추가로 제공된다. 도 5에 도시된 바와 같이, 상기 애플리케이션 가속화 디바이스는 제2 수신 유닛(501)을 추가로 포함한다.
제2 수신 유닛(501)은, 서비스 클래스가 프로세스가 종료 상태에 있음을 모니터링한 후에, 서비스 클래스로부터 프로세스에 대한 가속화가 완료됨을 나타내는 정보를 수신하도록 구성된다.
모니터링 호출 유닛(401)은, 제2 수신 유닛이 프로세스에 대한 가속화가 완료됨을 나타내는 정보를 수신한 후에, 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하도록 추가로 구성된다.
서비스 클래스는 프로세스의 현재 상태를 알고 있기 때문에, 프로세스의 실행이 완료되고 프로세스가 종료 상태에 있는 경우, 대응하는 정보가 제어 센터로 피드백될 수 있고, 제어 센터는 다음 프로세스를 모니터링하는 것을 제어한다. 디바이스에 의해 동작되는 프로세스들에 대한 가속화는 주기적으로 자동으로 완료될 수 있다.
본 개시내용의 실시예에서, 프로세스 모니터링 클래스는 프로세스를 스크리닝하는 기능을 갖는데, 이것은 모든 프로세스들이 가속화될 필요는 없고, 모든 프로세스들이 가속화될 수는 없기 때문이다. 가속화될 필요가 있는 프로세스가 있을 때에만, 가속화의 로직이 호출된다. 물론, 프로세스는 가속화될 수 있는 프로세스여야 한다. 본 실시예는 또한 프로세스 스크리닝 로직을 제공하며, 프로세스 스크리닝 로직의 흐름의 특정 구현은, 프로세스 모니터링 클래스가 프로세스가 개시됨을 모니터링한 후에, 상기 프로세스가 구성된 프로세스를 히트하는지 여부를 결정하고, 상기 프로세스가 구성된 프로세스를 히트한다고 결정하는 경우, 프로세스 정보를 제어 센터에 전송하도록 콜백 인터페이스를 트리거링하는 단계로서 설명된다.
본 개시내용의 실시예에서, 히트한다는 것은 모니터링된 프로세스가 구성된 프로세스, 즉, 가속화될 필요가 있고 가속화될 수 있는 프로세스에 속한다는 것을 나타낸다. 일반적으로, 프로세스 이름이 프로세스 파일에서 매치되는 데 사용되며, 성공적인 매치는 히트한다는 것을 나타낸다.
본 개시내용의 실시예에서, 제어 센터는 애플리케이션 가속화를 스케줄링하기 위한 기능을 제공하고, 가속화 기능을 갖는 소프트웨어의 외부 인터페이스를 제공할 수 있다. 제어 센터는 프로세스 모니터링 클래스를 호출한다. 프로세스 모니터링 클래스는 소프트웨어 개념에 속하며, 디바이스에서의 프로세스의 개시와 종료를 모니터링할 수 있다. 제어 센터를 트리거링하여 프로세스 모니터링 클래스를 호출하는 방법과 관련하여, 본 개시내용의 실시예에서는 다음과 같은 방식이 제공된다. 도 6에 도시된 바와 같이, 상기 애플리케이션 가속화 디바이스는 인터페이스 유닛(601)을 추가로 포함한다.
인터페이스 유닛(601)은 동적 링크 라이브러리를 통해 초기화 인터페이스 및 초기화 해제 인터페이스를 노출시키도록 구성된다.
모니터링 호출 유닛(401)은, 초기화 인터페이스가 호출된 후에, 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하도록 추가로 구성된다.
프로세스 모니터링 클래스의 기능은 디바이스에서의 프로세스의 개시와 종료를 모니터링하는 것이고, 기능의 특정 구현은 기능을 갖는 클래스에 대한 정의를 지칭할 수 있으며, 여기서는 반복적으로 설명되지 않는다. 디바이스가 가속화를 개시하도록 제어된다.
본 개시내용의 실시예에서, 이론적으로, 서비스 클래스는 프로세스, 상태 및 태스크 간의 대응 관계만을 취득함으로써 상기 기능들을 실현할 수 있다. 상이한 구성 파일들은 상이한 프로세스들을 기록할 수 있다. 하나의 구성 파일이 복수의 프로세스들을 기록하는 데 사용될 수 있다. 프로세스, 상태 및 태스크 간의 대응 관계에 대한 정보로 구성된 구성 파일이 상기 서비스 클래스에 저장된다.
이 실시예에서, 구성 파일은 복수의 프로세스들을 포함할 수 있다. 이하의 실시예들에서, 제1 프로세스 및 제2 프로세스는 구성 파일 내의 프로세스들의 예들에 불과하다. 제1 프로세스 또는 제2 프로세스는 위에서 설명된 가속화될 필요가 있는 프로세스일 수도 있고, 위에서 설명된 가속화될 필요가 있는 프로세스가 아닐 수도 있으며, 본 개시내용의 실시예에서는 제한되지 않는다.
위에서 설명된 구성 파일은 적어도 2개의 프로세스, 즉, 제1 프로세스 및 제2 프로세스를 포함한다.
위에서 설명된 구성 파일에서, 위에서 설명된 제1 프로세스는 제1 프로세스의 실행의 개시로부터 제1 프로세스의 종료까지의 제1 프로세스의 모든 상태들에 대응하고, 제1 프로세스의 상태들 각각에서 실행되는 태스크에 대응한다. 하나 이상의 태스크들이 각각의 상태에서 실행된다.
본 개시내용의 실시예는 태스크에 대한 실행 결과 및 태스크의 타입의 대안적인 방식의 예를 추가로 제공한다. 위에서 설명된 태스크에 대한 실행 결과는 성공 또는 실패를 포함하고, 위에서 설명된 태스크의 타입은 조건 트리거링, 조건 판단 및 액션 중 적어도 하나를 포함한다.
본 개시내용의 실시예들에 따라 다른 애플리케이션 가속화 디바이스가 추가로 제공되며, 도 7에 도시된 바와 같이, 애플리케이션 가속화 디바이스는 수신기(701), 송신기(702), 프로세서(703) 및 메모리(704)를 포함한다.
메모리(704)는 데이터 스토리지 기능을 제공하도록 구성되며, 프로세서(703)에 의한 데이터 프로세싱을 위한 캐시 및/또는 프로세싱 시에 데이터를 판독하기 위한 영구 스토리지를 포함한다. 수신기(701) 및 송신기(702)는 본 개시내용의 실시예에 포함되지 않을 수 있으며, 이는 가속화되는 애플리케이션이 수신기(701) 및 송신기(702)를 필요로 하는지 여부에 의존한다.
프로세서(703)는, 제어 센터에 의해, 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하는 동작; 제어 센터에 의해, 프로세스 정보를 수신하는 동작 - 상기 프로세스 모니터링 클래스가 프로세스가 개시됨을 모니터링하고 상기 프로세스가 가속화될 필요가 있음을 확인하는 경우에, 프로세스 정보가 제어 센터에 전송됨 -; 제어 센터에 의해, 프로세스 정보에 기초하여 서비스 클래스를 호출하는 동작 - 서비스 클래스는 상기 프로세스의 복수의 상태들을 모니터링하고, 프로세스가 종료 상태에 있을 때까지 프로세스의 상태들 각각에서 태스크를 실행함 -을 실행하도록 구성된다.
서비스 클래스는 프로세스의 상태들을 유지관리하고, 프로세스의 태스크들의 실행을 제어하는 데 사용되는 기능 클래스이다. 실시예에서의 프로세스의 태스크들은 프로세스의 기능을 실현하기 위해 프로세스에 의해 실행되는 콘텐츠를 지칭하며, 태스크들은 대개 클래스 팩토리에 의해 생성될 수 있고, 재사용되고 공유될 수 있다.
본 개시내용의 실시예에서, 제어 센터는 가속화 프로시져를 제어하고, 프로세스 모니터링 클래스는 가속화될 필요가 있는 프로세스를 모니터링한다. 프로세스의 상태는 개시로부터 종료로 바뀌고, 프로세스의 상태들 각각에서 태스크들이 실행되고, 태스크들의 실행은 서비스 클래스에 의해 제어된다. 서비스 클래스의 구성 데이터가 프로세스에 대한 가속화를 지원할 수 있는 한, 애플리케이션 가속화가 실현될 수 있다. 또한, 프로세스를 실행하는 프로시져에서의 태스크들은 코드들을 수정하지 않고도 상이한 프로세스들에 의해 재사용되고 공유될 수 있다. 따라서, 본 개시내용의 실시예들에서 채택된 가속화 솔루션은 동작 효율 및 유지관리 효율을 향상시킬 수 있다.
본 개시내용의 실시예에서, 제어 센터는 애플리케이션 가속화를 스케줄링하기 위한 기능을 제공하고, 가속화 기능을 갖는 소프트웨어의 외부 인터페이스를 제공할 수 있다. 제어 센터는 프로세스 모니터링 클래스를 호출한다. 프로세스 모니터링 클래스는 소프트웨어 개념에 속하며, 디바이스에서의 프로세스의 개시와 종료를 모니터링할 수 있다. 제어 센터를 트리거링하여 프로세스 모니터링 클래스를 호출하는 방법과 관련하여, 본 개시내용의 실시예에서는 다음과 같은 방식이 제공된다.
상기 프로세서(703)는,
제어 센터가 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하기 전에, 제어 센터에 의해, 동적 링크 라이브러리를 통해 초기화 인터페이스 및 초기화 해제 인터페이스를 노출시키는 동작; 및
초기화 인터페이스가 호출된 후에, 제어 센터에 의해, 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하는 동작
을 실행하도록 추가로 구성된다.
프로세스 모니터링 클래스의 기능은 디바이스에서의 프로세스의 개시와 종료를 모니터링하는 것이고, 기능의 특정 구현은 기능을 갖는 클래스에 대한 정의를 지칭할 수 있으며, 여기서는 반복적으로 설명되지 않는다.
본 개시내용의 실시예에서, 프로세스 모니터링 클래스는 프로세스를 스크리닝하는 기능을 갖는데, 이것은 모든 프로세스들이 가속화될 필요는 없고, 모든 프로세스들이 가속화될 수는 없기 때문이다. 가속화될 필요가 있는 프로세스가 있을 때에만, 가속화의 로직이 호출된다. 물론, 프로세스는 가속화될 수 있는 프로세스여야 한다. 본 실시예는 또한 프로세스 스크리닝 로직을 제공하며, 프로세스 스크리닝 로직의 흐름의 특정 구현은, 프로세스 모니터링 클래스가 프로세스가 개시됨을 모니터링한 후에, 상기 프로세스가 구성된 프로세스를 히트하는지 여부를 결정하고, 상기 프로세스가 구성된 프로세스를 히트한다고 결정하는 경우, 프로세스 정보를 제어 센터에 전송하도록 콜백 인터페이스를 트리거링하는 단계로서 설명된다.
본 개시내용의 실시예에서, 히트한다는 것은 모니터링된 프로세스가 구성된 프로세스, 즉, 가속화될 필요가 있고 가속화될 수 있는 프로세스에 속한다는 것을 나타낸다. 일반적으로, 프로세스 이름이 프로세스 파일에서 매치되는 데 사용되며, 성공적인 매치는 히트한다는 것을 나타낸다.
또한, 프로세스에 대한 가속화가 완료된 후에 실행되는 구현 솔루션이 본 개시내용의 실시예들에 따라 추가로 제공된다. 상기 프로세서(703)는,
서비스 클래스가 프로세스가 종료 상태에 있음을 모니터링한 후에, 상기 제어 센터에 의해, 상기 서비스 클래스로부터 상기 프로세스에 대한 가속화가 완료됨을 나타내는 정보를 수신하는 동작; 및
제어 센터에 의해, 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하는 동작
을 실행하도록 추가로 구성된다.
서비스 클래스는 프로세스의 현재 상태를 알고 있기 때문에, 프로세스의 실행이 완료되고 프로세스가 종료 상태에 있는 경우, 대응하는 정보가 제어 센터로 피드백될 수 있고, 제어 센터는 다음 프로세스를 모니터링하는 것을 제어한다. 디바이스에 의해 동작되는 프로세스들에 대한 가속화는 주기적으로 자동으로 완료될 수 있다.
본 개시내용의 실시예에서, 이론적으로, 서비스 클래스는 프로세스, 상태 및 태스크 간의 대응 관계만을 취득함으로써 상기 기능들을 실현할 수 있다. 상이한 구성 파일들은 상이한 프로세스들을 기록할 수 있다. 하나의 구성 파일이 복수의 프로세스들을 기록하는 데 사용될 수 있다. 프로세스, 상태 및 태스크 간의 대응 관계에 대한 정보로 구성된 구성 파일이 상기 서비스 클래스에 저장된다.
이 실시예에서, 구성 파일은 복수의 프로세스들을 포함할 수 있다. 이하의 실시예들에서, 제1 프로세스 및 제2 프로세스는 구성 파일 내의 프로세스들의 예들에 불과하다. 제1 프로세스 또는 제2 프로세스는 위에서 설명된 가속화될 필요가 있는 프로세스일 수도 있고, 위에서 설명된 가속화될 필요가 있는 프로세스가 아닐 수도 있으며, 본 개시내용의 실시예에서는 제한되지 않는다.
위에서 설명된 구성 파일은 적어도 2개의 프로세스, 즉, 제1 프로세스 및 제2 프로세스를 포함한다.
위에서 설명된 구성 파일에서, 위에서 설명된 제1 프로세스는 제1 프로세스의 실행의 개시로부터 상기 제1 프로세스의 종료까지의 제1 프로세스의 모든 상태들에 대응하고, 제1 프로세스의 상태들 각각에서 실행되는 태스크에 대응한다. 하나 이상의 태스크들이 각각의 상태에서 실행된다.
본 개시내용의 실시예는 태스크에 대한 실행 결과 및 태스크의 타입의 대안적인 방식의 예를 추가로 제공한다. 위에서 설명된 태스크에 대한 실행 결과는 성공 또는 실패를 포함하고, 위에서 설명된 태스크의 타입은 조건 트리거링, 조건 판단 및 액션 중 적어도 하나를 포함한다.
본 개시내용의 실시예들에서는 다른 애플리케이션 가속화 디바이스가 제공된다. 도 8에 예시된 바와 같이, 예시의 편의상, 본 개시내용의 실시예와 관련된 부분들만이 도시되어 있으며, 본 명세서에 예시되지 않은 특정 기술적 세부사항들이 본 개시내용의 실시예에 따른 방법을 나타낼 수도 있다. 단말기는 휴대 전화, 태블릿, PDA(Personal Digital Assistant), POS(Point of Sales), 온-보드 컴퓨터 및 임의의 단말기 디바이스일 수 있고, 휴대 전화가 단말기의 예로서 취해진다.
도 8은 본 개시내용의 실시예들에 따른 단말기와 관련된 휴대 전화의 부분적인 구조적 블록도이다. 도 8을 참조하면, 휴대 전화는 RF(radio frequency) 회로(810), 메모리(820), 입력 유닛(830), 디스플레이 유닛(840), 센서(850), 오디오 회로(860), WiFi(wireless fidelity) 모듈(870), 프로세서(880) 및 전력 공급기(890) 및 다른 컴포넌트들을 포함한다. 휴대 전화는 도 8에 도시된 구조를 갖는 것에 제한되지 않고, 휴대 전화는 도 8에 도시된 것보다 많거나 적은 컴포넌트들을 포함할 수도 있고, 일부 컴포넌트들의 조합 또는 상이한 배열을 갖는 컴포넌트들을 포함할 수도 있음이 본 기술분야의 통상의 기술자에 의해 이해될 수 있다.
휴대 전화의 컴포넌트들은 도 8과 관련하여 이하에서 상세히 설명된다.
RF 회로(810)는 정보 또는 호출을 송신 또는 수신하는 프로세스에서 신호들을 수신 및 송신하도록 구성될 수 있다. 특히, RF 회로(810)는 기지국으로부터 다운링크 정보를 수신하고, 프로세서(880)로 다운링크 정보를 송신하여 프로세싱되게 한다. 또한, RF 회로(810)는 업링크 데이터를 기지국에 송신한다. 통상적으로, RF 회로(810)는 안테나, 적어도 하나의 증폭기, 송수신기, 커플러, 저잡음 증폭기(low noise amplifier)(LNA), 듀플렉서 등을 포함하지만, 이에 제한되지 않는다. 또한, RF 회로(810)는 무선 통신을 통해 네트워크 및 다른 디바이스들과 통신할 수도 있다. 상기 무선 통신은 GSM(Global System of Mobile communication), GPRS(General Packet Radio Service), CDMA(Code Division Multiple Access), WCDMA(Wideband Code Division Multiple Access), LTE(Long Term Evolution), 이메일, SMS(Short Messaging Service) 등을 포함하되, 이에 제한되지 않는 임의의 하나의 통신 표준 또는 프로토콜을 사용함으로써 수행될 수 있다.
메모리(820)는 소프트웨어 프로그램들 및 모듈들을 저장하도록 구성될 수 있고, 프로세스(880)는 메모리(820)에 저장된 소프트웨어 프로그램들 및 모듈들을 실행함으로써 휴대 전화의 다양한 기능 애플리케이션들 및 데이터 프로세싱을 수행한다. 메모리(820)는 주로 프로그램 스토리지 영역 및 데이터 스토리지 영역을 포함할 수 있다. 프로그램 스토리지 영역은 운영 체제, (사운드 재생 기능 및 이미지 재생 기능과 같은) 적어도 하나의 기능에 필요한 애플리케이션 프로그램 등을 저장할 수 있고, 데이터 스토리지 영역은 휴대 전화 등의 사용에 기초하여 생성되는 (오디오 데이터 및 전화번호부와 같은) 데이터를 저장할 수 있다. 또한, 메모리(820)는 고속 랜덤 액세스 메모리(high-speed random access memory)를 포함할 수 있으며, 적어도 하나의 자기 디스크 스토리지 디바이스, 플래시 메모리 디바이스와 같은 비휘발성 메모리 또는 다른 휘발성 고상 메모리 디바이스를 포함할 수도 있다.
입력 유닛(830)은 입력된 디지털 정보 또는 입력된 문자 정보를 수신하고, 휴대 전화의 사용자 설정들 및 기능 제어에 관한 키 신호 입력을 생성하도록 구성될 수 있다. 특히, 입력 유닛(830)은 터치 패널(831) 및 다른 입력 디바이스들(832)을 포함할 수 있다. 터치 스크린으로도 지칭되는 터치 패널(831)은 터치 패널(831) 상에서 또는 터치 패널(831) 근방에서 사용자에 의해 수행되는 터치 동작(예를 들어, 손가락 또는 터치 펜과 같은 임의의 적절한 객체 또는 액세서리를 통해 사용자에 의해 수행되는 터치 패널(831) 상의 또는 터치 패널(831) 근방에서의 동작)을 수집할 수 있고, 미리 설정된 프로그램에 따라 대응하는 접속 디바이스를 구동할 수 있다. 임의적으로, 터치 패널(831)은 터치 검출 디바이스 및 터치 제어기를 포함할 수 있다. 터치 검출 디바이스는 사용자의 터치 포지션, 및 터치 동작에 의해 야기되는 신호를 검출하고, 신호를 터치 제어기로 송신한다. 터치 제어기는 터치 검출 디바이스로부터 터치 정보를 수신하고, 터치 정보를 터치 좌표들로 변환하고, 터치 좌표들을 프로세서(880)로 송신하고, 프로세서(880)로부터 커맨드들을 수신하여 실행한다. 또한, 터치 패널(831)은 저항성 터치 패널, 용량성 터치 패널, 적외선 터치 패널 및 표면 탄성파 터치 패널과 같은 다양한 타입들로서 구현될 수 있다. 터치 패널(831)에 더하여, 입력 유닛(830)은 다른 입력 디바이스들(832)도 포함할 수 있다. 특히, 다른 입력 디바이스들(832)은 물리적 키보드, (볼륨 제어 버튼 및 스위치 키와 같은) 기능 키, 트랙볼, 마우스 및 레버 중 하나 이상을 포함할 수 있지만, 이에 제한되지 않는다.
디스플레이 유닛(840)은 사용자에 의해 입력되는 정보 또는 사용자에게 제공되는 정보 및 휴대 전화의 다양한 메뉴들을 디스플레이하도록 구성될 수 있다. 디스플레이 유닛(840)은 디스플레이 패널(841)을 포함할 수 있다. 임의적으로, 디스플레이 패널(841)은 액정 디스플레이(LCD), 유기 발광 다이오드(OLED) 등의 형태로 구성될 수 있다. 또한, 터치 패널(831)은 디스플레이 패널(841)을 커버할 수 있다. 터치 패널(831)이 터치 패널(831) 상의 또는 터치 패널(831) 근방의 터치 동작을 검출하는 경우, 터치 패널(831)은 터치 동작을 프로세서(880)에 송신하여 터치 이벤트의 타입을 결정한다. 프로세서(880)는 터치 이벤트의 타입에 기초하여 디스플레이 패널(841) 상에 대응하는 시각적 출력을 제공한다. 터치 패널(831)과 디스플레이 패널(841)은 휴대 전화의 입력 및 입력 기능을 구현하기 위한 2개의 별개의 컴포넌트들이지만, 일부 실시예들에서는, 터치 패널(831)과 디스플레이 패널(841)이 통합되어 휴대 전화의 입력 기능 및 출력 기능을 실현할 수 있다.
휴대 전화는 또한 광 센서, 모션 센서 및 다른 센서들과 같은 적어도 하나의 센서(850)를 포함할 수 있다. 특히, 광 센서는 주변 광 센서 및 근접 센서를 포함할 수 있다. 주변 광 센서는 주변 광의 밝기에 따라 디스플레이 패널(841)의 밝기를 조절할 수 있고, 근접 센서는 휴대 전화가 귀 근처로 이동될 때 디스플레이 패널(841) 및/또는 백라이트를 턴오프할 수 있다. 모션 센서의 하나의 타입으로서, 가속도계 센서는 모든 방향들(대개 3축)에서의 가속도의 크기들, 정지 시의 중력의 크기 및 방향을 검출할 수 있으며, 이는 휴대 전화의 자세를 인식하기 위한 애플리케이션(수직 및 수평 스크린 스위치, 관련 게임, 자력계 자세 캘리브레이션 등), 및 진동 인식과 관련된 기능들(보수계, 퍼커션 등) 등에 사용될 수 있다. 자이로스코프, 기압계, 습도계, 온도계, 적외선 센서 및 휴대 전화에 구성될 수 있는 다른 센서들은 본 명세서에 설명되지 않는다.
오디오 회로(860), 스피커(861), 마이크로폰(862)은 사용자와 휴대 전화 사이에 오디오 인터페이스를 제공할 수 있다. 오디오 회로(860)는 오디오 데이터로부터 변환된 수신된 전기 신호를 스피커(861)로 송신할 수 있고, 스피커(861)는 전기 신호를 사운드 신호로 변환하여 출력한다. 다른 양태에서, 마이크로폰(862)은 수집된 사운드 신호를 전기 신호로 변환하고, 오디오 회로(860)는 전기 신호를 수신하고, 전기 신호를 오디오 데이터로 변환하고, 그 후, 오디오 데이터는 프로세싱을 위해 프로세서(880)로 출력된다. 프로세싱된 데이터는 예를 들어, RF 회로(810)를 통해 다른 휴대 전화로 전송되기도 하고, 오디오 데이터는 추가적인 프로세싱을 위해 메모리(820)로 출력되기도 한다.
WiFi는 단거리 무선 송신 기술을 채택하고 있으며, 휴대 전화는 WiFi 모듈(870)을 통해 사용자들이 이메일들을 전송 및 수신하고, 웹페이지를 브라우징하고, 스트리밍 미디어에 액세스하는 것 등을 지원하여, 사용자들에게 무선 광대역 인터넷 액세스를 제공할 수 있다. 도 8은 WiFi 모듈(870)을 도시하고 있지만, WiFi 모듈(870)은 휴대 전화의 필수 컴포넌트가 아니며, 본 개시내용의 범위를 변경하지 않고 필요에 따라 생략될 수 있다는 것이 이해될 수 있다.
휴대 전화의 제어 센터로서의 프로세서(880)는 다양한 인터페이스들 및 라인들을 통해 휴대 전화의 다양한 부분들을 접속한다. 프로세서(880)는 휴대 전화의 다양한 기능들을 수행하고, 메모리(820)에 저장된 소프트웨어 프로그램들 및/또는 모듈들의 운영 또는 실행 및 메모리(820)에 저장된 데이터 호출을 통해 데이터를 프로세싱하여 전체 휴대 전화를 모니터링한다. 임의적으로, 프로세서(880)는 하나 이상의 프로세싱 유닛들을 포함할 수 있다. 바람직하게는, 애플리케이션 프로세서 및 모뎀 프로세서가 프로세서(880)에 통합될 수 있다. 애플리케이션 프로세서는 주로 운영 체제, 사용자 인터페이스 및 애플리케이션 등을 프로세싱한다. 모뎀 프로세서는 주로 무선 통신을 프로세싱한다. 위에서 설명된 모뎀 프로세서가 프로세서(880)에 통합되지 않을 수도 있다는 것이 이해될 수 있다.
휴대 전화는 다양한 컴포넌트들에 전력을 공급하기 위한 전력 공급기(890)(예를 들어, 배터리)를 추가로 포함하고, 바람직하게는, 전력 공급기가 전력 관리 시스템을 통해 프로세서(880)에 로직으로 연결될 수 있어, 전력 관리 시스템을 통한 충전 관리, 방전 관리, 및 전력 소비 관리와 같은 기능들을 달성할 수 있다.
도 8에는 도시되지 않았지만, 휴대 전화는 본 명세서에 설명되지 않은 카메라, 블루투스 모듈 등을 포함할 수도 있다.
본 개시내용의 실시예에서, 단말기의 프로세서(880)는 프로그램 명령어들을 실행하여 상기 방법의 흐름을 실현하는 기능을 갖는다. 상기 방법의 흐름은 도 8에 도시된 하드웨어 구조에 기초하여 구현될 수 있다. 또한, 애플리케이션 가속화를 필요로 할 수 있는 다른 디바이스도 상기 방법의 흐름을 구현할 수 있으며, 이는 도 8에 도시된 휴대 전화의 구조에 제한되지 않는다는 것에 유의하도록 한다.
실시예에서, 도 2에 도시된 구조 및 도 3에 도시된 클래스 정의는 TAO에 대한 콘텐츠를 갖는다. TAO의 전체 아키텍처(데이터베이스, 애플리케이션 계층, 사용자 인터페이스)의 주요 컴포넌트는 그 자체 특성들을 갖는다. 예를 들어, 서버에서, 데이터베이스 관리 시스템에 데이터를 저장하는 기능은 전용 API(Application Programming Interface)를 사용하여 Generis 플랫폼에 의해 실현되며, 이 계층은 퍼시스턴스 계층(persistence layer)이라고 불린다. 제1 계층의 상부에서는, eTesting에 특정된 모든 기능들이 PHP(Hypertext Preprocessor)로 프로그래밍된 애플리케이션 계층을 통해 구현된다. TAO에 대한 자세한 내용은 본 명세서에 설명되어 있지 않으며, TAO와 관련된 표준들의 정의가 TAO에 대한 더 많은 정보를 획득하기 위해 참조될 수 있다.
디바이스 실시예의 유닛들이 기능 로직에 따라서만 분할되어 있지만, 대응하는 기능들이 실현될 수 있는 한, 상기 분할에 제한되지 않는다는 것에 유의하여야 한다. 또한, 각각의 기능 유닛의 이름은 단지 편의상 서로를 구별하도록 의도된 것에 불과하며, 본 개시내용의 보호 범위를 제한하는 것으로 의도되지 않는다.
방법 실시예들에서의 단계들의 전부 또는 일부가 프로그램에 의해 하드웨어에 지시함으로써 구현될 수 있다는 것이 본 기술분야의 통상의 기술자에 의해 이해될 수 있다. 프로그램은 판독 전용 메모리, 자기 디스크 또는 광 디스크일 수 있는 컴퓨터 판독가능 스토리지 매체에 저장될 수 있다.
이상의 내용은 본 개시내용의 바람직한 실시예들에 불과하며, 본 개시내용의 보호 범위는 이에 제한되지 않는다. 본 개시내용의 기술적 범위 내에서 본 기술분야의 통상의 기술자에 의해 용이하게 생각되는 임의의 수정들 또는 치환들은 본 개시내용의 보호 범위 내에 속한다. 따라서, 본 개시내용의 보호 범위는 청구항의 보호 범위와 일치하여야 한다.

Claims (15)

  1. 애플리케이션 가속화 방법(application acceleration method)으로서,
    제어 센터에 의해, 상기 제어 센터의 초기화 인터페이스를 노출시킴으로써 애플리케이션의 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스(process monitoring class)를 호출하는 단계;
    상기 제어 센터에 의해, 상기 프로세스 모니터링 클래스가 상기 프로세스가 개시됨을 모니터링하고 상기 프로세스가 가속화될 필요가 있음을 확인한 후에 상기 프로세스 모니터링 클래스의 콜백 인터페이스(callback interface)를 트리거링함으로써 상기 프로세스 모니터링 클래스에 의해 전송된 프로세스에 대한 프로세스 정보를 수신하는 단계; 및
    상기 제어 센터에 의해, 상기 프로세스 정보에 기초하여 서비스 클래스(service class)를 호출하는 단계 - 상기 애플리케이션의 시동을 가속화하기 위해, 상기 서비스 클래스는 상기 프로세스의 복수의 상태들을 모니터링하고, 상기 프로세스가 종료 상태에 있을 때까지 상기 프로세스의 상기 복수의 상태들 각각에서 태스크를 실행함 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 서비스 클래스가 상기 프로세스가 종료 상태에 있음을 모니터링한 후에, 상기 애플리케이션 가속화 방법은,
    상기 제어 센터에 의해, 상기 서비스 클래스로부터 상기 프로세스에 대한 가속화가 완료됨을 나타내는 정보를 수신하는 단계; 및
    상기 제어 센터에 의해, 프로세스의 개시와 종료를 모니터링하는 상기 프로세스 모니터링 클래스를 호출하는 단계
    를 추가로 포함하는 방법.
  3. 제1항에 있어서,
    상기 프로세스 모니터링 클래스가 상기 프로세스가 개시됨을 모니터링한 후에, 상기 프로세스가 구성된 프로세스를 히트(hit)하는지 여부가 결정되고, 상기 프로세스가 상기 구성된 프로세스를 히트한다고 결정하는 경우, 상기 프로세스 정보를 상기 제어 센터에 전송하도록 상기 콜백 인터페이스가 트리거링되는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제어 센터에 의해, 상기 제어 센터의 초기화 인터페이스를 노출시킴으로써 애플리케이션의 상기 프로세스의 개시와 종료를 모니터링하는 상기 프로세스 모니터링 클래스를 호출하는 단계는,
    상기 제어 센터에 의해, 동적 링크 라이브러리를 통해 상기 제어 센터의 상기 초기화 인터페이스 및 초기화 해제(deinitialization) 인터페이스를 노출시키는 단계; 및
    상기 제어 센터에 의해, 상기 초기화 인터페이스가 호출된 후에, 상기 프로세스의 개시와 종료를 모니터링하는 상기 프로세스 모니터링 클래스를 호출하는 단계
    를 포함하는 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 서비스 클래스에 구성 파일이 저장되고, 상기 구성 파일은 프로세스, 상태 및 태스크 간의 대응 관계에 대한 정보로 구성되는 방법.
  6. 제5항에 있어서,
    상기 구성 파일은 적어도 제1 프로세스 및 제2 프로세스를 포함하고,
    상기 구성 파일에서, 상기 제1 프로세스는 상기 제1 프로세스의 실행의 개시로부터 상기 제1 프로세스의 종료까지의 상기 제1 프로세스의 상태들에 대응하고, 상기 제1 프로세스의 상태들 각각의 태스크에 대응하는 방법.
  7. 제5항에 있어서,
    상기 태스크에 대한 실행 결과는 성공 또는 실패를 포함하고,
    상기 태스크의 타입은 조건 트리거링(condition triggering), 조건 판단(condition judgment) 및 액션(action) 중 적어도 하나를 포함하는 방법.
  8. 애플리케이션 가속화 디바이스로서,
    상기 애플리케이션 가속화 디바이스의 초기화 인터페이스를 노출시킴으로써 애플리케이션의 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하도록 구성되는 모니터링 호출 유닛;
    상기 프로세스 모니터링 클래스가 상기 프로세스가 개시됨을 모니터링하고 상기 프로세스가 가속화될 필요가 있음을 확인한 후에 상기 프로세스 모니터링 클래스의 콜백 인터페이스를 트리거링함으로써 상기 프로세스 모니터링 클래스에 의해 전송된 프로세스에 대한 프로세스 정보를 수신하도록 구성되는 제1 수신 유닛; 및
    상기 프로세스 정보에 기초하여 서비스 클래스를 호출하도록 구성되는 서비스 호출 유닛 - 상기 애플리케이션의 시동을 가속화하기 위해, 상기 서비스 클래스는 상기 프로세스의 복수의 상태들을 모니터링하고, 상기 프로세스가 종료 상태에 있을 때까지 상기 프로세스의 상기 복수의 상태들 각각에서 태스크를 실행함 -
    을 포함하는 디바이스.
  9. 제8항에 있어서,
    상기 서비스 클래스가 상기 프로세스가 종료 상태에 있음을 모니터링한 후에, 상기 서비스 클래스로부터 상기 프로세스에 대한 가속화가 완료됨을 나타내는 정보를 수신하도록 구성되는 제2 수신 유닛을 추가로 포함하고,
    상기 모니터링 호출 유닛은 상기 제2 수신 유닛이 상기 프로세스에 대한 가속화가 완료됨을 나타내는 정보를 수신한 후에 프로세스의 개시와 종료를 모니터링하는 상기 프로세스 모니터링 클래스를 호출하도록 추가로 구성되는 디바이스.
  10. 제8항에 있어서,
    상기 프로세스 모니터링 클래스가 상기 프로세스가 개시됨을 모니터링한 후에, 상기 프로세스가 구성된 프로세스를 히트하는지 여부가 결정되고, 상기 프로세스가 상기 구성된 프로세스를 히트한다고 결정하는 경우, 상기 프로세스 정보를 제어 센터에 전송하도록 상기 콜백 인터페이스가 트리거링되는 디바이스.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    동적 링크 라이브러리를 통해 상기 애플리케이션 가속화 디바이스의 상기 초기화 인터페이스 및 초기화 해제 인터페이스를 노출시키도록 구성되는 인터페이스 유닛을 추가로 포함하고,
    상기 모니터링 호출 유닛은 상기 초기화 인터페이스가 호출된 후에 상기 프로세스의 개시와 종료를 모니터링하는 상기 프로세스 모니터링 클래스를 호출하도록 추가로 구성되는 디바이스.
  12. 제8항 내지 제10항 중 어느 한 항에 있어서, 상기 서비스 클래스에 구성 파일이 저장되고, 상기 구성 파일은 프로세스, 상태 및 태스크 간의 대응 관계에 대한 정보로 구성되는 디바이스.
  13. 제12항에 있어서,
    상기 구성 파일은 적어도 제1 프로세스 및 제2 프로세스를 포함하고,
    상기 구성 파일에서, 상기 제1 프로세스는 상기 제1 프로세스의 실행의 개시로부터 상기 제1 프로세스의 종료까지의 상기 제1 프로세스의 상태들에 대응하고, 상기 제1 프로세스의 상태들 각각의 태스크에 대응하는 디바이스.
  14. 제12항에 있어서,
    상기 태스크에 대한 실행 결과는 성공 또는 실패를 포함하고,
    상기 태스크의 타입은 조건 트리거링, 조건 판단 및 액션 중 적어도 하나를 포함하는 디바이스.
  15. 애플리케이션 가속화 방법으로서,
    제어 센터에 의해, 상기 제어 센터의 초기화 인터페이스를 노출시킴으로써 애플리케이션의 프로세스의 개시와 종료를 모니터링하는 프로세스 모니터링 클래스를 호출하는 단계;
    상기 프로세스 모니터링 클래스에 의해, 프로세스가 개시됨을 모니터링하고, 상기 프로세스 모니터링 클래스에 의해, 상기 프로세스가 가속화될 필요가 있음을 확인하는 단계;
    상기 프로세스 모니터링 클래스에 의해, 상기 프로세스 모니터링 클래스의 콜백 인터페이스를 트리거링함으로써 상기 프로세스에 대한 프로세스 정보를 상기 제어 센터에 전송하는 단계;
    상기 제어 센터에 의해, 상기 프로세스 정보를 수신하는 단계;
    상기 제어 센터에 의해, 상기 프로세스 정보에 기초하여 서비스 클래스를 호출하는 단계; 및
    상기 애플리케이션의 시동을 가속화하기 위해, 상기 서비스 클래스에 의해, 상기 프로세스 정보에 기초하여 상기 프로세스의 복수의 상태들을 모니터링하고, 상기 서비스 클래스에 의해, 상기 프로세스가 종료 상태에 있을 때까지 상기 프로세스의 상기 복수의 상태들 각각에서 태스크를 실행하는 단계
    를 포함하는 방법.
KR1020177033385A 2015-09-09 2016-08-08 애플리케이션 가속화 방법 및 디바이스 KR101981885B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510571980.5 2015-09-09
CN201510571980.5A CN106528188B (zh) 2015-09-09 2015-09-09 一种应用加速方法及装置
PCT/CN2016/093955 WO2017041604A1 (zh) 2015-09-09 2016-08-08 一种应用加速方法及装置

Publications (2)

Publication Number Publication Date
KR20170138525A KR20170138525A (ko) 2017-12-15
KR101981885B1 true KR101981885B1 (ko) 2019-05-23

Family

ID=58239139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177033385A KR101981885B1 (ko) 2015-09-09 2016-08-08 애플리케이션 가속화 방법 및 디바이스

Country Status (5)

Country Link
US (1) US10664436B2 (ko)
JP (1) JP6685538B2 (ko)
KR (1) KR101981885B1 (ko)
CN (1) CN106528188B (ko)
WO (1) WO2017041604A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018191888A1 (zh) * 2017-04-19 2018-10-25 广东欧珀移动通信有限公司 应用程序加速启动方法、装置及终端
CN116302209B (zh) * 2023-05-15 2023-08-04 阿里云计算有限公司 应用进程加速启动的方法、分布式系统、节点和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020118220A1 (en) 1999-05-07 2002-08-29 Philip Lui System and method for dynamic assistance in software applications using behavior and host application models
JP2010129080A (ja) 2008-11-28 2010-06-10 Beijing Kingsoft Software Co Ltd ソフトウェア実行システムおよびソフトウェアの実行方法
JP2010238114A (ja) 2009-03-31 2010-10-21 Ntt Docomo Inc 通信システム、サーバ、および通信制御方法
CN103049628A (zh) 2011-10-14 2013-04-17 深圳市快播科技有限公司 一种网络游戏的加速方法及系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041285A (ja) * 2000-07-28 2002-02-08 Toshiba Corp データ処理装置およびデータ処理方法
US20050289505A1 (en) * 2004-06-25 2005-12-29 Williams Stanley N Method and system for improving performance and scalability of applications that utilize a flow-based-programming methodology
US7810089B2 (en) * 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
EP2757757B1 (en) * 2004-12-30 2018-08-15 Citrix Systems, Inc. Systems and methods for providing client-side acceleration techniques
CN102123178B (zh) * 2005-01-24 2014-04-09 茨特里克斯系统公司 在网络中对动态产生的对象执行缓存的系统和方法
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
JP4761329B2 (ja) 2010-07-28 2011-08-31 株式会社三共 遊技機の基板収納ボックス
WO2012174471A1 (en) * 2011-06-16 2012-12-20 uCIRRUS Software virtual machine for acceleration of transactional data processing
US9251027B2 (en) * 2012-03-05 2016-02-02 Dell Productes L.P. Information handling system performance optimization system
KR101665219B1 (ko) * 2012-03-22 2016-10-11 인텔 코포레이션 네스티드 에뮬레이션 및 동적 링킹 환경
US20130290934A1 (en) * 2012-04-30 2013-10-31 Gregory Simon Monitoring applications executing on a computer device using programmatic triggers
CN104077184B (zh) 2013-03-25 2018-12-11 腾讯科技(深圳)有限公司 一种应用程序的进程控制方法及计算机系统
US9747185B2 (en) * 2013-03-26 2017-08-29 Empire Technology Development Llc Acceleration benefit estimator
CN104134034B (zh) 2013-06-13 2015-10-21 腾讯科技(深圳)有限公司 控制应用运行的方法和装置
CN104866335B (zh) * 2014-12-30 2018-04-13 北京白鹭时代信息技术有限公司 一种移动终端基于Egret Runtime运行游戏的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020118220A1 (en) 1999-05-07 2002-08-29 Philip Lui System and method for dynamic assistance in software applications using behavior and host application models
JP2010129080A (ja) 2008-11-28 2010-06-10 Beijing Kingsoft Software Co Ltd ソフトウェア実行システムおよびソフトウェアの実行方法
JP2010238114A (ja) 2009-03-31 2010-10-21 Ntt Docomo Inc 通信システム、サーバ、および通信制御方法
CN103049628A (zh) 2011-10-14 2013-04-17 深圳市快播科技有限公司 一种网络游戏的加速方法及系统

Also Published As

Publication number Publication date
WO2017041604A1 (zh) 2017-03-16
CN106528188A (zh) 2017-03-22
JP6685538B2 (ja) 2020-04-22
US10664436B2 (en) 2020-05-26
KR20170138525A (ko) 2017-12-15
CN106528188B (zh) 2019-08-30
JP2018518760A (ja) 2018-07-12
US20180032473A1 (en) 2018-02-01

Similar Documents

Publication Publication Date Title
CN107734616B (zh) 应用程序关闭方法、装置、存储介质和电子设备
WO2016150331A1 (zh) 一种运行游戏客户端的方法和装置
CN104135500B (zh) 提示应用更新的方法和系统
US20160315999A1 (en) Device and method for associating applications
WO2015078293A1 (zh) 音效处理方法、装置、插件管理器及音效插件
CN104093123B (zh) 应用程序的信息推送方法、装置和系统、移动终端
WO2018077041A1 (zh) 应用运行的方法及装置
CN106547844B (zh) 一种用户界面的处理方法和装置
CN103544033A (zh) 应用程序回退方法、装置及相关设备
WO2015062413A1 (en) Terminal account managing method and device cross-reference to related applications
CN106713608B (zh) 应用的功能状态修改方法、装置及终端
CN106919458B (zh) Hook目标内核函数的方法及装置
EP2869604B1 (en) Method, apparatus and device for processing a mobile terminal resource
US11150913B2 (en) Method, device, and terminal for accelerating startup of application
CN107357651B (zh) 应用加速方法、装置以及终端
KR101981885B1 (ko) 애플리케이션 가속화 방법 및 디바이스
CN107193551B (zh) 一种生成图像帧的方法和装置
CN111562910A (zh) 一种封装方法及相关设备
CN111367502A (zh) 一种数值处理方法和装置
CN111897726B (zh) 异常定位方法、装置、存储介质及移动终端
CN104700031B (zh) 防止应用操作中远程代码被执行的方法、装置及系统
CN114564700A (zh) 管理不可信应用程序通信的方法及相关装置
WO2020093243A1 (zh) 一种游戏的加载方法及相关产品
CN108280798B (zh) 一种浏览器内核渲染显示的方法和装置
US9471782B2 (en) File scanning method and system, client and server

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