KR20210095499A - Electronic device for using virtual application service and operating method thereof - Google Patents

Electronic device for using virtual application service and operating method thereof Download PDF

Info

Publication number
KR20210095499A
KR20210095499A KR1020200009498A KR20200009498A KR20210095499A KR 20210095499 A KR20210095499 A KR 20210095499A KR 1020200009498 A KR1020200009498 A KR 1020200009498A KR 20200009498 A KR20200009498 A KR 20200009498A KR 20210095499 A KR20210095499 A KR 20210095499A
Authority
KR
South Korea
Prior art keywords
page
application
electronic device
information
resource
Prior art date
Application number
KR1020200009498A
Other languages
Korean (ko)
Inventor
방한민
최혁승
임기영
정호선
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200009498A priority Critical patent/KR20210095499A/en
Priority to PCT/KR2020/014314 priority patent/WO2021149895A1/en
Publication of KR20210095499A publication Critical patent/KR20210095499A/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

According to various embodiments, an electronic device using a virtual application service includes: a communication circuit; a display; a memory for storing instructions; and a processor operatively connected to the communication circuit, the display, and the memory, wherein the processor is configured to execute the instructions to allow the electronic device to: identify at least one user interface (UI) resource that is not stored in the memory among UI resources for displaying a page of an application based on page information received from a server; request the identified at least one UI resource to the server; render an image representing a current page of the application by using the identified at least one UI resource received from the server; and display the image representing the current page through the display.

Description

가상 어플리케이션 서비스를 이용하는 전자 장치 및 이의 동작 방법{ELECTRONIC DEVICE FOR USING VIRTUAL APPLICATION SERVICE AND OPERATING METHOD THEREOF}Electronic device using virtual application service and operating method thereof

다양한 실시예들은 가상 어플리케이션 서비스를 이용하는 전자 장치 및 이의 동작 방법에 관한 것이다.Various embodiments relate to an electronic device using a virtual application service and an operating method thereof.

전자 장치는 원격지의 전자 장치에서 실행 중인 어플리케이션의 실행 결과를 표시할 수 있다. 전자 장치는, 원격지의 전자 장치에서 실행 중인 어플리케이션의 실행 결과를 나타내는 동영상, 및/또는 이미지를 표시할 수 있다. 사용자의 전자 장치가 원격지의 전자 장치에서 실행 중인 어플리케이션의 실행 결과를 나타내는 서비스는 가상 어플리케이션 서비스로 지칭될 수 있다.The electronic device may display the execution result of the application being executed in the remote electronic device. The electronic device may display a moving picture and/or an image indicating an execution result of an application being executed in the remote electronic device. A service in which the user's electronic device indicates an execution result of an application being executed in a remote electronic device may be referred to as a virtual application service.

원격지의 전자 장치에서 실행 중인 어플리케이션의 실행 결과를 표시함으로써, 저 사양의 전자 장치를 이용하는 사용자도 고 성능을 요구하는 어플리케이션을 이용할 수 있게 된다. 또한, 전자 장치에 어플리케이션을 설치하지 않아도 어플리케이션을 이용할 수 있으므로, 사용자에게 어플리케이션 설치, 업데이트 시간을 요구하지 않을 수 있다. By displaying an execution result of an application being executed in a remote electronic device, a user using an electronic device with a low specification can use an application requiring high performance. Also, since the application can be used without installing the application on the electronic device, the user may not be required to install and update the application.

그러나, 전자 장치와 원격지의 전자 장치 간의 네트워크 지연, 인코딩 지연, 디코딩 지연, 프레임 버퍼 캡춰 지연, 디스플레이 지연, 렌더링 지연이 존재함에 따라, 사용자는 어플리케이션을 이용하는 데 지연을 경험하게 된다. 또한, 가상 어플리케이션 서비스를 이용하기 위해서는, 어플리케이션의 실행 결과를 나타내는 동영상, 및/또는 이미지를 네트워크를 통해 송신함으로써, 전자 장치의 상당한 네트워크 사용량이 요구된다.However, as network delays, encoding delays, decoding delays, frame buffer capture delays, display delays, and rendering delays exist between the electronic device and the remote electronic device, the user experiences delays in using the application. In addition, in order to use the virtual application service, a considerable amount of network usage of the electronic device is required by transmitting a moving picture and/or an image indicating the execution result of the application through a network.

따라서, 사용자가 경험하는 지연이 감소되고, 네트워크 사용량이 감소된 가상 어플리케이션 서비스에 대한 연구가 요구된다. Therefore, there is a need for a study on a virtual application service in which the delay experienced by the user is reduced and the network usage is reduced.

본 문서에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in this document are not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by those of ordinary skill in the art to which the present invention belongs from the description below. There will be.

다양한 실시예들에 따른 가상 어플리케이션 서비스를 이용하는 전자 장치(electronic device)는 통신 회로, 디스플레이, 인스트럭션들을 저장하는 메모리, 및 상기 통신 회로, 상기 디스플레이, 및 상기 메모리와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가, 서버로부터 수신한 페이지 정보에 기반하여, 어플리케이션의 페이지를 표시하기 위한 사용자 인터페이스(UI, User Interface) 자원들 중 상기 메모리에 저장되어 있지 않은 적어도 하나의 UI 자원을 식별하고, 상기 식별된 적어도 하나의 UI 자원을 상기 서버에게 요청하고, 상기 서버로부터 수신하는 상기 식별된 적어도 하나의 UI 자원을 이용하여, 상기 어플리케이션의 현재 페이지를 나타내는 이미지를 렌더링하고, 상기 현재 페이지를 나타내는 상기 이미지를 상기 디스플레이를 통해 표시하도록 구성될 수 있다.An electronic device using a virtual application service according to various embodiments includes a communication circuit, a display, a memory storing instructions, and a processor operatively connected to the communication circuit, the display, and the memory; The processor executes the instructions so that the electronic device does not store in the memory among user interface (UI) resources for displaying a page of an application based on page information received from the server. Identifying at least one UI resource, requesting the identified at least one UI resource to the server, and using the identified at least one UI resource received from the server, an image representing the current page of the application render, and display the image representing the current page via the display.

다양한 실시예들에 따른 가상 어플리케이션 서비스를 제공하는 서버는, 통신 회로, 인스트럭션들을 저장하는 메모리 및 상기 통신 회로, 및 상기 메모리와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가, 전자 장치로부터 어플리케이션 구동 요청에 응답하여, 어플리케이션을 구동하고, 상기 구동 중인 어플리케이션의 현재 페이지를 식별하고, 상기 식별한 현재 페이지에 기반한 페이지 정보를 상기 전자 장치로 송신하고, 상기 전자 장치로부터의 사용자 인터페이스(UI; User Interface) 자원 요청에 기반하여, 상기 메모리에 저장되어 있는 UI 자원을 상기 전자 장치로 송신하도록 구성될 수 있다.A server providing a virtual application service according to various embodiments includes a communication circuit, a memory for storing instructions, and a processor operatively connected to the communication circuit, and the memory, wherein the processor executes the instructions , the server, in response to an application driving request from the electronic device, drives an application, identifies a current page of the running application, and transmits page information based on the identified current page to the electronic device, and the electronic device Based on a user interface (UI) resource request from the device, the UI resource stored in the memory may be transmitted to the electronic device.

다양한 실시 예들에 따른 전자 장치는 사용자가 경험하는 지연이 감소되고, 네트워크 사용량을 감소시킬 수 있다.The electronic device according to various embodiments may reduce a delay experienced by a user and reduce network usage.

본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Effects obtainable in the present disclosure are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood by those of ordinary skill in the art to which the present disclosure belongs from the description below. will be.

도 1은, 일 실시 예에 따른 네트워크 환경 내의 가상화 서버, 및 전자 장치의 블록도이다.
도 2는, 일 실시 예에 따른 가상화 서버의 블록도이다.
도 3은, 일 실시 예에 따른 전자 장치의 블록도이다.
도 4a는, 일 실시 예에 따른 어플리케이션의 UI 페이지를 예시하는 도면이다.
도 4b는, 일 실시 예에 따른 어플리케이션의 UI 페이지를 예시하는 도면이다.
도 5는, 일 실시 예에 따른 어플리케이션의 UI 페이지들 간의 이동 가능한 경로를 예시하는 도면이다.
도 6은, 일 실시 예에 따른 어플리케이션의 UI 페이지에 포함되어 있는 UI 요소들을 예시하는 도면이다.
도 7은, 일 실시 예에 따른 UI 제어들 간의 맵을 예시하는 도면이다.
도 8은, 일 실시 예에 따른 어플리케이션의 UI 페이지가 서로 대응하는 UI 제어를 이용하여 렌더링된 화면들을 예시하는 도면이다.
도 9는 일 실시 예에 따른 가상화 서버에서 어플리케이션을 설치하는 동작을 예시하는 흐름도이다.
도 10은 일 실시 예에 따른 가상화 서버에서 어플리케이션을 구동하기 위한 동작을 예시하는 흐름도이다.
도 11은 일 실시 예에 따른 가상화 서버에서 어플리케이션에 대한 UI 분석을 초기화하기 위한 동작을 예시하는 흐름도이다.
도 12는 일 실시 예에 따른 가상화 서버에서 어플리케이션의 현재 UI 페이지를 식별하는 동작을 예시하는 흐름도이다.
도 13은 일 실시 예에 따른 전자 장치에서 어플리케이션의 현재 UI 페이지에 따른 프리페치 동작을 예시하는 흐름도이다.
도 14는 일 실시 예에 따른 전자 장치에서 어플리케이션의 현재 UI 페이지를 렌더링하는 동작을 예시하는 흐름도이다.
도 15는 일 실시 예에 따른 가상화 서버에서 어플리케이션에 대한 입력을 처리하는 동작을 예시하는 흐름도이다.
도 16a 내지 도 16h는, 전자 장치에서 가상화 서버의 가상 어플리케이션을 이용하는 예를 도시하는 도면이다.
도 17은, 일 실시 예에 따른 소프트웨어 개발 키트를 예시하는 도면이다.
도 18은, 일 실시 예에 따른 어플리케이션 라이브러리를 예시하는 도면이다.
도 19는, 일 실시 예에 따른 UI 페이지 클래스가 분류되는 예를 예시하는 도면이다.
1 is a block diagram of a virtualization server and an electronic device in a network environment according to an embodiment.
2 is a block diagram of a virtualization server according to an embodiment.
3 is a block diagram of an electronic device according to an embodiment.
4A is a diagram illustrating a UI page of an application according to an embodiment.
4B is a diagram illustrating a UI page of an application according to an embodiment.
5 is a diagram illustrating a movable path between UI pages of an application according to an embodiment.
6 is a diagram illustrating UI elements included in a UI page of an application according to an embodiment.
7 is a diagram illustrating a map between UI controls according to an embodiment.
8 is a diagram illustrating screens in which UI pages of an application are rendered using UI controls corresponding to each other, according to an embodiment.
9 is a flowchart illustrating an operation of installing an application in a virtualization server according to an embodiment.
10 is a flowchart illustrating an operation for driving an application in a virtualization server according to an embodiment.
11 is a flowchart illustrating an operation for initializing UI analysis for an application in a virtualization server according to an embodiment.
12 is a flowchart illustrating an operation of identifying a current UI page of an application in a virtualization server according to an embodiment.
13 is a flowchart illustrating a prefetch operation according to a current UI page of an application in an electronic device according to an embodiment.
14 is a flowchart illustrating an operation of rendering a current UI page of an application in an electronic device according to an embodiment.
15 is a flowchart illustrating an operation of processing an input for an application in a virtualization server according to an embodiment.
16A to 16H are diagrams illustrating examples of using a virtual application of a virtualization server in an electronic device.
17 is a diagram illustrating a software development kit according to an embodiment.
18 is a diagram illustrating an application library according to an embodiment.
19 is a diagram illustrating an example in which UI page classes are classified according to an embodiment.

도 1은, 일 실시 예에 따른 네트워크 환경(100) 내의 가상화 서버(110), 및 전자 장치(120)의 블록도이다. 도 2는, 일 실시 예에 따른 가상화 서버(110)의 블록도이다. 도 3은, 일 실시 예에 따른 전자 장치(120)의 블록도이다. 도 4a는, 일 실시 예에 따른 어플리케이션의 UI 페이지(401)를 예시하는 도면이다. 도 4b는, 일 실시 예에 따른 어플리케이션의 UI 페이지(402)를 예시하는 도면이다. 도 5는, 일 실시 예에 따른 어플리케이션의 UI 페이지들 간의 이동 가능한 경로를 예시하는 도면이다. 도 6은, 일 실시 예에 따른 어플리케이션의 UI 페이지에 포함되어 있는 UI 요소들을 예시하는 도면이다. 도 7은, 일 실시 예에 따른 UI 제어들 간의 맵을 예시하는 도면이다. 도 8은, 일 실시 예에 따른 어플리케이션의 UI 페이지가 서로 대응하는 UI 제어를 이용하여 렌더링된 화면들(801, 802)을 예시하는 도면이다.1 is a block diagram of a virtualization server 110 and an electronic device 120 in a network environment 100 according to an embodiment. 2 is a block diagram of the virtualization server 110 according to an embodiment. 3 is a block diagram of the electronic device 120 according to an embodiment. 4A is a diagram illustrating a UI page 401 of an application according to an embodiment. 4B is a diagram illustrating a UI page 402 of an application according to an embodiment. 5 is a diagram illustrating a movable path between UI pages of an application according to an embodiment. 6 is a diagram illustrating UI elements included in a UI page of an application according to an embodiment. 7 is a diagram illustrating a map between UI controls according to an embodiment. 8 is a diagram illustrating screens 801 and 802 in which a UI page of an application is rendered using UI controls corresponding to each other, according to an embodiment.

도 1을 참조하면, 가상화 서버(110)는, 프로세서(111), 통신 모듈(112), 메모리(113), 또는 이들의 조합을 포함할 수 있다. 도 1을 통해 예시된 가상화 서버(110)의 구성 요소들은, 예시일 뿐이며, 하나 이상의 다른 구성 요소가 추가될 수 있다.Referring to FIG. 1 , the virtualization server 110 may include a processor 111 , a communication module 112 , a memory 113 , or a combination thereof. The components of the virtualization server 110 illustrated through FIG. 1 are merely examples, and one or more other components may be added.

일 실시 예에서, 프로세서(111)는, 소프트웨어를 실행하여 프로세서(111)에 연결된 가상화 서버(110)의 적어도 하나의 다른 구성 요소를 제어할 수 있다. 일 실시 예에서, 프로세서(111)는 다른 구성 요소(예: 통신 모듈(112))로부터 수신된 명령 또는 데이터를 처리하고, 그 결과 데이터를 메모리(113)에 저장할 수 있다.In an embodiment, the processor 111 may control at least one other component of the virtualization server 110 connected to the processor 111 by executing software. In an embodiment, the processor 111 may process a command or data received from another component (eg, the communication module 112 ), and store the resultant data in the memory 113 .

일 실시 예에서, 통신 모듈(112)은, 가상화 서버(110)와 전자 장치(120) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 일 실시 예에서, 통신 모듈(112)은 프로세서(111)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서(CP; Communication Processor)를 포함할 수 있다. 일 실시 예에서, 통신 모듈(112)은 무선 통신 모듈(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 일 실시 예에서, 통신 모듈(112)은 네트워크(130)를 통해 전자 장치(120)와 통신할 수 있다. In an embodiment, the communication module 112 supports establishment of a direct (eg, wired) communication channel or a wireless communication channel between the virtualization server 110 and the electronic device 120 and performing communication through the established communication channel. can In an embodiment, the communication module 112 may include one or more communication processors (CPs) that operate independently of the processor 111 and support direct (eg, wired) communication or wireless communication. In one embodiment, the communication module 112 is a wireless communication module (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (eg, a local area network (LAN)) communication module, or a power line communication module). In an embodiment, the communication module 112 may communicate with the electronic device 120 through the network 130 .

일 실시 예에서, 메모리(113)는, 가상화 서버(110)의 적어도 하나의 구성 요소(예: 프로세서(111))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 일 실시 예에서, 데이터는, 소프트웨어, 및 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 일 실시 예에서, 메모리(113)는, 어플리케이션(114)과 관련된 데이터를 저장할 수 있다.In an embodiment, the memory 113 may store various data used by at least one component (eg, the processor 111 ) of the virtualization server 110 . In one embodiment, the data may include input data or output data for software and related instructions. In an embodiment, the memory 113 may store data related to the application 114 .

도 2를 참조하면, 가상화 서버(110)는, 메모리(113)에 저장되는 어플리케이션 설치 모듈(210), 어플리케이션 UI(User Interface) 요소 분석 모듈(220), 메타 UI 자원 생성 모듈(230), 데이터베이스(240), 입력 신호 맵핑 모듈(250), 어플리케이션 구동 모듈(260), 실시간 UI 분석 모듈(270), UI 페이지 상태 머신(280), 메타 UI 레이아웃 변환 모듈(290), 인증 모듈(295), 또는 이들의 조합을 포함할 수 있다. 일 실시 예에서, 데이터베이스(240)는, 메모리(113)에 저장되는 정보를 나타낼 수 있다. 도 2를 참조하면, 데이터베이스(240)가 가상화 서버(110)에 포함되는 것으로 예시하였으나, 이는 예시일 뿐이며, 데이터베이스(240)는, 가상화 서버(110)와 구분되는 별도의 전자 장치로 구현될 수 있다.Referring to FIG. 2 , the virtualization server 110 includes an application installation module 210 stored in a memory 113 , an application user interface (UI) element analysis module 220 , a meta UI resource creation module 230 , and a database. 240, input signal mapping module 250, application driving module 260, real-time UI analysis module 270, UI page state machine 280, meta UI layout conversion module 290, authentication module 295, or a combination thereof. In an embodiment, the database 240 may represent information stored in the memory 113 . Referring to FIG. 2 , the database 240 has been exemplified as being included in the virtualization server 110 , but this is only an example, and the database 240 may be implemented as a separate electronic device separated from the virtualization server 110 . there is.

일 실시 예에서, 어플리케이션 설치 모듈(210), 어플리케이션 UI 요소 분석 모듈(220), 메타 UI 자원 생성 모듈(230), 입력 신호 맵핑 모듈(250), 어플리케이션 구동 모듈(260), 실시간 UI 분석 모듈(270), UI 페이지 상태 머신(280), 메타 UI 레이아웃 변환 모듈(290), 인증 모듈(295), 또는 이들의 조합은, 프로세서(111)가 실행 가능한 소프트웨어의 일 예일 수 있다. 일 실시 예에서, 프로세서(111)는, 어플리케이션 설치 모듈(210), 어플리케이션 UI 요소 분석 모듈(220), 메타 UI 자원 생성 모듈(230), 입력 신호 맵핑 모듈(250), 어플리케이션 구동 모듈(260), 실시간 UI 분석 모듈(270), UI 페이지 상태 머신(280), 메타 UI 레이아웃 변환 모듈(290), 인증 모듈(295), 또는 이들의 조합을 이용하여, 이들 각각이 제공하는 기능을 실행할 수 있다. In one embodiment, the application installation module 210, the application UI element analysis module 220, the meta UI resource generation module 230, the input signal mapping module 250, the application driving module 260, the real-time UI analysis module ( 270 ), the UI page state machine 280 , the meta UI layout conversion module 290 , the authentication module 295 , or a combination thereof may be an example of software executable by the processor 111 . In an embodiment, the processor 111 includes an application installation module 210 , an application UI element analysis module 220 , a meta UI resource generation module 230 , an input signal mapping module 250 , and an application driving module 260 . , the real-time UI analysis module 270 , the UI page state machine 280 , the meta UI layout conversion module 290 , the authentication module 295 , or a combination thereof may be used to execute the functions provided by each of them. .

일 실시 예에서, 어플리케이션 설치 모듈(210)은, 외부 전자 장치(미도시)로부터 어플리케이션(114)에 대한 데이터를 수신할 수 있다. 일 실시 예에서, 어플리케이션 설치 모듈(210)은, 통신 모듈(112)을 통해 어플리케이션(114)에 대한 데이터를 수신할 수 있다. In an embodiment, the application installation module 210 may receive data about the application 114 from an external electronic device (not shown). In an embodiment, the application installation module 210 may receive data about the application 114 through the communication module 112 .

일 실시 예에서, 어플리케이션 설치 모듈(210)은, 수신한 데이터에 기반하여, 어플리케이션(114)을 설치할 수 있다. 일 실시 예에서, 어플리케이션 설치 모듈(210)은, 어플리케이션(114)에 대해 설치 결과를 나타내는 데이터(이진 데이터(Binary Data))를 메모리(113)에 저장할 수 있다. In an embodiment, the application installation module 210 may install the application 114 based on the received data. In an embodiment, the application installation module 210 may store data (binary data) indicating an installation result for the application 114 in the memory 113 .

일 실시 예에서, 어플리케이션 설치 모듈(210)은, 설치한 어플리케이션(114)의 이진 데이터를 어플리케이션 UI 요소 분석 모듈(220)에게 제공할 수 있다.In an embodiment, the application installation module 210 may provide binary data of the installed application 114 to the application UI element analysis module 220 .

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 데이터(예: 이진 데이터, 또는 미리 지정된 형태의 데이터)에 기반하여 어플리케이션(114)의 UI 자원을 추출 및/또는, 식별할 수 있다. 일 실시 예에서, UI 자원은, UI 페이지에 포함되어 있는 UI 요소들을 나타내기 위해 이용되는 데이터일 수 있다. 일 실시 예에서, UI 자원은, 시각적 객체를 표시하기 위한 이미지를 포함할 수 있다. 일 실시 예에서, UI 자원은, 소리 객체를 재생하기 위한 음원을 포함할 수 있다. 일 실시 예에서, UI 자원은, 텍스트 객체를 표시하기 위한 텍스트를 포함할 수 있다.In an embodiment, the application UI element analysis module 220 may extract and/or identify the UI resource of the application 114 based on data (eg, binary data or data in a predetermined format). In an embodiment, the UI resource may be data used to represent UI elements included in a UI page. In an embodiment, the UI resource may include an image for displaying a visual object. In an embodiment, the UI resource may include a sound source for playing a sound object. In an embodiment, the UI resource may include text for displaying a text object.

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 추출 및/또는 식별한 UI 자원에 기반하여, UI 페이지 및/또는 UI 자원을 분석할 수 있다.In an embodiment, the application UI element analysis module 220 may analyze a UI page and/or UI resource based on the extracted and/or identified UI resource.

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 어플리케이션(114)의 UI 페이지들 각각에 이용되는 UI 자원을 식별할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 어플리케이션(114)의 UI 페이지를 구성하는 적어도 하나의 UI 요소들 각각에 이용되는 UI 자원을 식별할 수 있다. In an embodiment, the application UI element analysis module 220 may identify UI resources used for each of the UI pages of the application 114 . In an embodiment, the application UI element analysis module 220 may identify a UI resource used for each of at least one UI element constituting the UI page of the application 114 .

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 어플리케이션(114)의 UI 페이지(401)를 구성하는, 적어도 하나의 UI 요소들(410 내지 413, 및 420 내지 426)을 식별할 수 있다. 예를 들어, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지(401)에 포함되는 UI 요소들(410 내지 413, 및 420 내지 426)을 식별할 수 있다. In an embodiment, the application UI element analysis module 220 may identify at least one UI elements 410 to 413 and 420 to 426 constituting the UI page 401 of the application 114 . . For example, the application UI element analysis module 220 may identify UI elements 410 to 413 and 420 to 426 included in the UI page 401 .

도 4a를 참조하면, UI 요소(410)에는 UI 요소들(411 내지 413)이 중첩될 수 있다. 도 4a를 참조하면, UI 요소(420)에는 UI 요소들(421 내지 426)이 중첩될 수 있다.Referring to FIG. 4A , UI elements 411 to 413 may be overlapped on the UI element 410 . Referring to FIG. 4A , UI elements 421 to 426 may be overlapped on the UI element 420 .

일 실시 예에서, UI 페이지(401)의 UI 요소들(410, 및 420)의 영역에는, 이미지 형태의 UI 자원이 표시될 수 있다. 일 실시 예에서, UI 요소들(410, 및 420)의 속성은, 아래 표 1과 같을 수 있다.In an embodiment, in the area of the UI elements 410 and 420 of the UI page 401, a UI resource in the form of an image may be displayed. In an embodiment, the properties of the UI elements 410 and 420 may be as shown in Table 1 below.

UI 요소UI elements 속성property UI 요소(410)UI Elements (410) Type=FrameLayout, ResourceID=cover, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=falseType=FrameLayout, ResourceID=cover, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=false UI 요소(420)UI Elements (420) Type=FrameLayout, ResourceID=pop_up, isClickable=false, isLongClickable=false, isScrollable=false, isFocusable=falseType=FrameLayout, ResourceID=pop_up, isClickable=false, isLongClickable=false, isScrollable=false, isFocusable=false

표 1을 참조하면, UI 페이지(401)의 UI 요소(410)의 영역에는, 'FrameLayout'이라는 유형을 가지고, 'cover'라는 자원 식별자(ResourceID)를 가지는, UI 자원이 표시될 수 있다. 표 1을 참조하면, UI 요소(410)의 영역에 클릭 입력이 인가되면, 어플리케이션(114)을 구동하는 가상화 서버(110)는 UI 요소(410)에 대한 클릭 입력에 대응하는 기능을 수행할 수 있다. 일 실시 예에서, UI 요소(410)의 영역에 클릭 입력이 인가되면, 그에 따른 이벤트(예: 클릭에 따른 UI 페이지 변경)가 발생할 수 있다. 표 1을 참조하면, UI 요소(410)의 영역에는, 롱 클릭 입력, 스크롤 입력, 또는 포커스 입력이 인가되면, 어플리케이션(114)을 구동하는 가상화 서버(110)는 UI 요소(410)에 대한 롱 클릭 입력, 스크롤 입력, 또는 포커스 입력을 무시할 수 있다. 일 실시 예에서, 포커스 입력은, 줌-인, 또는 줌-아웃을 위한 입력일 수 있다.Referring to Table 1, in the area of the UI element 410 of the UI page 401, a UI resource having a type of 'FrameLayout' and a resource identifier (ResourceID) of 'cover' may be displayed. Referring to Table 1, when a click input is applied to the area of the UI element 410 , the virtualization server 110 driving the application 114 may perform a function corresponding to the click input for the UI element 410 . there is. In an embodiment, when a click input is applied to the area of the UI element 410 , a corresponding event (eg, a UI page change according to the click) may occur. Referring to Table 1, when a long click input, a scroll input, or a focus input is applied to the area of the UI element 410 , the virtualization server 110 that drives the application 114 performs a long click on the UI element 410 . Click input, scroll input, or focus input can be ignored. In an embodiment, the focus input may be an input for zoom-in or zoom-out.

표 1을 참조하면, UI 페이지(401)의 UI 요소(420)의 영역에는, 'FrameLayout'이라는 유형을 가지고, 'pop_up'이라는 자원 식별자를 가지는, UI 자원이 표시될 수 있다. 표 1을 참조하면, UI 요소(420)는 클릭 입력, 롱 클릭 입력, 스크롤 입력, 또는 포커스 입력이 허용되지 않도록 설정될 수 있다.Referring to Table 1, in the area of the UI element 420 of the UI page 401, a UI resource having a type of 'FrameLayout' and a resource identifier of 'pop_up' may be displayed. Referring to Table 1, the UI element 420 may be set to not allow a click input, a long click input, a scroll input, or a focus input.

일 실시 예에서, UI 페이지(401)의 UI 요소들(411 내지 413)의 영역에는, 이미지 형태의 UI 자원이 표시될 수 있다. 일 실시 예에서, UI 요소들(411 내지 413)의 속성은, 아래 표 2와 같을 수 있다.In an embodiment, in the area of the UI elements 411 to 413 of the UI page 401, a UI resource in the form of an image may be displayed. In an embodiment, the properties of the UI elements 411 to 413 may be as shown in Table 2 below.

UI 요소UI elements 속성property UI 요소(411)UI Elements(411) Type=ImageView, ResourceID=thumbnail, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=falseType=ImageView, ResourceID=thumbnail, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=false UI 요소(412)UI Elements(412) Type=ImageView, ResourceID=custom, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=falseType=ImageView, ResourceID=custom, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=false UI 요소(413)UI Elements(413) Type=ImageView, ResourceID=profile_settings, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=falseType=ImageView, ResourceID=profile_settings, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=false

표 2를 참조하면, UI 페이지(401)의 UI 요소(411)의 영역에는, 'ImageView'라는 유형을 가지고, 'thumbnail'이라는 자원 식별자를 가지는, UI 자원이 표시될 수 있다. 표 2를 참조하면, UI 페이지(401)의 UI 요소(412)의 영역에는, 'ImageView'라는 유형을 가지고, 'custom'이라는 자원 식별자를 가지는, UI 자원이 표시될 수 있다. 표 2를 참조하면, UI 페이지(401)의 UI 요소(413)의 영역에는, 'ImageView'라는 유형을 가지고, 'profile_settings'라는 자원 식별자를 가지는, UI 자원이 표시될 수 있다. Referring to Table 2, in the area of the UI element 411 of the UI page 401, a UI resource having a type of 'ImageView' and a resource identifier of 'thumbnail' may be displayed. Referring to Table 2, in the area of the UI element 412 of the UI page 401, a UI resource having a type of 'ImageView' and a resource identifier of 'custom' may be displayed. Referring to Table 2, in the area of the UI element 413 of the UI page 401, a UI resource having a type of 'ImageView' and a resource identifier of 'profile_settings' may be displayed.

표 2를 참조하면, UI 요소들(411 내지 413)은 클릭 입력이 허용되고, 롱 클릭 입력, 스크롤 입력, 또는 포커스 입력이 허용되지 않도록 설정될 수 있다.Referring to Table 2, the UI elements 411 to 413 may be set to allow a click input and not allow a long click input, a scroll input, or a focus input.

일 실시 예에서, UI 페이지(401)의 UI 요소(421)의 영역에는, 이미지 형태의 UI 자원이 표시될 수 있다. 일 실시 예에서, UI 요소(421)의 속성은, 아래 표 3과 같을 수 있다.In an embodiment, in the area of the UI element 421 of the UI page 401, a UI resource in the form of an image may be displayed. According to an embodiment, the properties of the UI element 421 may be as shown in Table 3 below.

Type=View, ResourceID=Profile, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=falseType=View, ResourceID=Profile, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=false

표 3을 참조하면, UI 페이지(401)의 UI 요소(421)의 영역에는, 'View'라는 유형을 가지고, 'Profile'이라는 자원 식별자를 가지는, UI 자원(예: 사용자 프로필 이미지)이 표시될 수 있다. 표 2를 참조하면, UI 요소(421)는 클릭 입력이 허용되고, 롱 클릭 입력, 스크롤 입력, 또는 포커스 입력이 허용되지 않도록 설정될 수 있다.Referring to Table 3, in the area of the UI element 421 of the UI page 401, a UI resource (eg, a user profile image) having a type of 'View' and a resource identifier of 'Profile' will be displayed. can Referring to Table 2, the UI element 421 may be set to allow a click input and not allow a long click input, a scroll input, or a focus input.

일 실시 예에서, UI 페이지(401)의 UI 요소(422)의 영역에는, 텍스트 형태의 UI 자원이 표시될 수 있다. 일 실시 예에서, UI 요소(422)의 속성은, 아래 표 4와 같을 수 있다.In an embodiment, in the area of the UI element 422 of the UI page 401, a UI resource in the form of text may be displayed. According to an embodiment, the properties of the UI element 422 may be as shown in Table 4 below.

Type=TextView, ResourceID=nickname, isClickable=false, isLongClickable=false, isScrollable=false, isFocusable=falseType=TextView, ResourceID=nickname, isClickable=false, isLongClickable=false, isScrollable=false, isFocusable=false

표 4를 참조하면, UI 페이지(401)의 UI 요소(422)의 영역에는, 'TextView'라는 유형을 가지고, 'nickname'이라는 자원 식별자를 가지는, UI 자원(예: 사용자 명칭)이 표시될 수 있다. 표 4를 참조하면, UI 요소(422)는 클릭 입력, 롱 클릭 입력, 스크롤 입력, 또는 포커스 입력이 허용되지 않도록 설정될 수 있다.Referring to Table 4, in the area of the UI element 422 of the UI page 401, a UI resource (eg, user name) having a type of 'TextView' and a resource identifier of 'nickname' may be displayed. there is. Referring to Table 4, the UI element 422 may be set to not allow a click input, a long click input, a scroll input, or a focus input.

일 실시 예에서, UI 페이지(401)의 UI 요소들(423 내지 426)의 영역에는, 이미지 형태의 UI 자원이 표시될 수 있다. 일 실시 예에서, UI 요소들(423 내지 426)의 속성은, 아래 표 5와 같을 수 있다.According to an embodiment, in the area of the UI elements 423 to 426 of the UI page 401, a UI resource in the form of an image may be displayed. In an embodiment, the properties of the UI elements 423 to 426 may be as shown in Table 5 below.

UI 요소UI elements 속성property UI 요소(423)UI Elements (423) Type=Button, ResourceID=close, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=falseType=Button, ResourceID=close, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=false UI 요소(424)UI Elements(424) Type=Button, ResourceID=dial, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=falseType=Button, ResourceID=dial, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=false UI 요소(425)UI Elements(425) Type=Button, ResourceID=chat, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=falseType=Button, ResourceID=chat, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=false UI 요소(426)UI Elements(426) Type=Button, ResourceID=extra, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=falseType=Button, ResourceID=extra, isClickable=true, isLongClickable=false, isScrollable=false, isFocusable=false

표 5를 참조하면, UI 페이지(401)의 UI 요소(423)의 영역에는, 'Button'이라는 유형을 가지고, 'close'라는 자원 식별자를 가지는, UI 자원이 표시될 수 있다. 표 5를 참조하면, UI 페이지(401)의 UI 요소(424)의 영역에는, 'Button'이라는 유형을 가지고, 'dial'이라는 자원 식별자를 가지는, UI 자원이 표시될 수 있다. 표 5를 참조하면, UI 페이지(401)의 UI 요소(425)의 영역에는, 'Button'이라는 유형을 가지고, 'chat'이라는 자원 식별자를 가지는, UI 자원이 표시될 수 있다. 표 5를 참조하면, UI 페이지(401)의 UI 요소(426)의 영역에는, 'Button'이라는 유형을 가지고, 'extra'라는 자원 식별자를 가지는, UI 자원이 표시될 수 있다. Referring to Table 5, in the area of the UI element 423 of the UI page 401, a UI resource having a type of 'Button' and a resource identifier of 'close' may be displayed. Referring to Table 5, in the area of the UI element 424 of the UI page 401, a UI resource having a type of 'Button' and a resource identifier of 'dial' may be displayed. Referring to Table 5, in the area of the UI element 425 of the UI page 401, a UI resource having a type of 'Button' and a resource identifier of 'chat' may be displayed. Referring to Table 5, in the area of the UI element 426 of the UI page 401, a UI resource having a type of 'Button' and a resource identifier of 'extra' may be displayed.

표 5를 참조하면, UI 요소들(423 내지 426)은 클릭 입력이 허용되고, 롱 클릭 입력, 스크롤 입력, 또는 포커스 입력이 허용되지 않도록 설정될 수 있다.Referring to Table 5, the UI elements 423 to 426 may be set to allow a click input and not allow a long click input, a scroll input, or a focus input.

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 어플리케이션(114)의 다수의 UI 페이지들 각각에 포함되는 UI 요소들 중 제어 가능하도록 설정된 UI 요소를 식별할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소에 대응하는 기능을 실행할 수 있다. 일 실시 예에서, isClickable, isLongClickable, isScrollable, 또는 isFocusable 중 적어도 하나의 개체가 true로 설정된 UI 요소는 제어 가능하도록 설정된 UI 요소로 식별될 수 있다.In an embodiment, the application UI element analysis module 220 may identify a controllable UI element among UI elements included in each of a plurality of UI pages of the application 114 . In an embodiment, the application UI element analysis module 220 may execute a function corresponding to a UI element set to be controllable. In an embodiment, a UI element in which at least one of isClickable, isLongClickable, isScrollable, and isFocusable is set to true may be identified as a controllable UI element.

예를 들어, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지(401)에 포함되는 UI 요소들(410 내지 413, 및 420 내지 426) 중 UI 요소들(410 내지 413, 및 423 내지 426)을 제어 가능하도록 설정된 UI 요소로 식별할 수 있다. For example, the application UI element analysis module 220 may analyze the UI elements 410 to 413 and 423 to 426 among the UI elements 410 to 413 and 420 to 426 included in the UI page 401 . It can be identified as a UI element set to be controllable.

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소들 각각에 대응하는 기능(예: 클릭, 롱 클릭, 스크롤, 또는 포커스)을 실행할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소에 대응하는 기능을 실행함으로써, 어플리케이션(114)의 UI 페이지의 전환을 식별할 수 있다. 예를 들어, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소들(410 내지 413, 및 423 내지 426) 각각에 대응하는 기능(예: 클릭)을 실행할 수 있다. 예를 들어, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소(424)에 대응하는 기능(예: 클릭)을 실행함으로써, 어플리케이션(114)의 UI 페이지(401)에서 어플리케이션(114)의 UI 페이지(402)로 전환됨을 식별할 수 있다. In an embodiment, the application UI element analysis module 220 may execute a function (eg, click, long click, scroll, or focus) corresponding to each of the UI elements set to be controllable. In an embodiment, the application UI element analysis module 220 may identify the conversion of the UI page of the application 114 by executing a function corresponding to the UI element set to be controllable. For example, the application UI element analysis module 220 may execute a function (eg, click) corresponding to each of the UI elements 410 to 413 and 423 to 426 set to be controllable. For example, the application UI element analysis module 220 executes a function (eg, click) corresponding to the UI element 424 set to be controllable, so that the application 114 is displayed on the UI page 401 of the application 114 . ) of the UI page 402 can be identified.

일 실시 예에서, UI 페이지(401)에서 UI 페이지(402)로의 UI 페이지 전이 이벤트는, 아래 표 6과 같을 수 있다.In an embodiment, the UI page transition event from the UI page 401 to the UI page 402 may be as shown in Table 6 below.

sourceUIPageID=friendSummary, targetUIPAgeID=chatroom, action=clicksourceUIPageID=friendSummary, targetUIPAgeID=chatroom, action=click

일 실시 예에서, 표 6과 같은, UI 페이지 전이 이벤트에 기반하여, 어플리케이션(114)의 UI 페이지는, UI 페이지 ID가 'friendSummary'인 UI 페이지(401)에서, UI 페이지 ID가 'chatroom'인 UI 페이지(402)로 전이될 수 있다.In an embodiment, as shown in Table 6, based on the UI page transition event, the UI page of the application 114 is, in the UI page 401 of which the UI page ID is 'friendSummary', the UI page ID is 'chatroom'. A transition may be made to the UI page 402 .

도 4b를 참조하면, 어플리케이션(114)의 UI 페이지(402)는, 적어도 하나의 UI 요소들(430 내지 434, 440 내지 445, 및 450 내지 454)을 포함할 수 있다. 도 4b를 참조하면, UI 요소(430)에는 UI 요소들(431 내지 434)이 중첩될 수 있다. 도 4b를 참조하면, UI 요소(440)에는 UI 요소들(441 내지 445)이 중첩될 수 있다. 도 4b를 참조하면, UI 요소(450)에는 UI 요소들(451 내지 454)이 중첩될 수 있다.Referring to FIG. 4B , the UI page 402 of the application 114 may include at least one UI element 430 to 434 , 440 to 445 , and 450 to 454 . Referring to FIG. 4B , UI elements 431 to 434 may be overlapped on the UI element 430 . Referring to FIG. 4B , UI elements 441 to 445 may be overlapped on the UI element 440 . Referring to FIG. 4B , UI elements 451 to 454 may be overlapped on the UI element 450 .

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소에 대응하는 기능의 실행 결과로 획득되는 정보에 기반하여, UI 페이지들 간의 연결 관계를 식별할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지(401)에서 UI 페이지(402)로 전환 가능하다는 정보에 기반하여, UI 페이지(401)와 UI 페이지(402) 간의 연결 관계를 식별할 수 있다.In an embodiment, the application UI element analysis module 220 may identify a connection relationship between UI pages based on information obtained as a result of executing a function corresponding to a UI element set to be controllable. In an embodiment, the application UI element analysis module 220 determines the connection relationship between the UI page 401 and the UI page 402 based on the information that it is possible to switch from the UI page 401 to the UI page 402 . can be identified.

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지 맵을 구성할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지들 간의 연결 관계에 기반하여, UI 페이지 맵을 구성할 수 있다. 일 실시 예에서, UI 페이지 맵은, 어플리케이션(114)의 다수의 UI 페이지들 각각의 UI 페이지 연결 관계를 나타낼 수 있다. In an embodiment, the application UI element analysis module 220 may configure a UI page map. In an embodiment, the application UI element analysis module 220 may configure a UI page map based on a connection relationship between UI pages. In an embodiment, the UI page map may indicate a UI page connection relationship of each of a plurality of UI pages of the application 114 .

도 5를 참조하면, UI 페이지(510)는, UI 페이지들(520, 530)로 전이 가능할 수 있다. 도 5를 참조하면, UI 페이지(520)는, UI 페이지들(530, 550)로 전이 가능할 수 있다. 도 5를 참조하면, UI 페이지(530)는, UI 페이지들(510, 520, 540)로 전이 가능할 수 있다. 도 5를 참조하면, UI 페이지(540)는, UI 페이지들(510, 530)로 전이 가능할 수 있다. 도 5를 참조하면, UI 페이지(550)는, UI 페이지(530)로 전이 가능할 수 있다. Referring to FIG. 5 , a UI page 510 may be transitionable to UI pages 520 and 530 . Referring to FIG. 5 , a UI page 520 may be transitionable to UI pages 530 and 550 . Referring to FIG. 5 , a UI page 530 may be transitionable to UI pages 510 , 520 , and 540 . Referring to FIG. 5 , a UI page 540 may be transitionable to UI pages 510 and 530 . Referring to FIG. 5 , the UI page 550 may be transferable to the UI page 530 .

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 도 5와 같이 분석한 UI 페이지에 기반하여, 표 7과 같은 UI 페이지 맵을 구성할 수 있다.In an embodiment, the application UI element analysis module 220 may configure a UI page map as shown in Table 7 based on the UI page analyzed as shown in FIG. 5 .

UI 페이지(510)UI Pages (510) UI 페이지(520)UI Pages (520) UI 페이지(530)UI Pages (530) UI 페이지(540)UI Pages (540) UI 페이지(550)UI Pages (550) UI 페이지(510)UI Pages (510) 00 1One 1One 00 00 UI 페이지(520)UI Pages (520) 00 00 1One 00 1One UI 페이지(530)UI Pages (530) 1One 1One 00 1One 00 UI 페이지(540)UI Pages (540) 1One 00 1One 00 00 UI 페이지(550)UI Pages (550) 00 00 1One 00 00

표 7의 제2 행 내지 제 6행, 및 제2 열 내지 제6 열에 위치하는 엔티티들은 자신의 행이 나타내는 UI 페이지에서, 자신의 열이 나타내는 UI 페이지로 전이 가능 여부를 나타낼 수 있다. 일 실시 예에서, 제2 행 및 제3 열의 엔티티가 나타내는 '1'은, UI 페이지(510)에서, UI 페이지(520)로 전이 가능함을 나타낼 수 있다. 일 실시 예에서, 제3 행 및 제2 열의 엔티티가 나타내는 '0'은, UI 페이지(520)에서, UI 페이지(510)로 전이 가능하지 않음을 나타낼 수 있다.Entities located in the second to sixth rows and the second to sixth columns of Table 7 may indicate whether transition is possible from the UI page indicated by the own row to the UI page indicated by the own column. According to an embodiment, '1' indicated by the entities in the second row and the third column may indicate that transition from the UI page 510 to the UI page 520 is possible. In an embodiment, '0' indicated by the entities in the third row and the second column may indicate that transition from the UI page 520 to the UI page 510 is not possible.

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소들 각각에 대응하는 기능(예: 클릭, 롱 클릭, 스크롤, 또는 포커스)을 실행함으로써, UI 자원에 대응하는 음원의 재생을 식별할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 재생되는 음원을 녹음할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 재생되는 음원의 파형과, 이진 데이터에 포함되어 있는 UI 요소에 대응하는 음원의 파형을 비교할 수 있다. In an embodiment, the application UI element analysis module 220 executes a function (eg, click, long click, scroll, or focus) corresponding to each of the UI elements set to be controllable, so that the sound source corresponding to the UI resource playback can be identified. In an embodiment, the application UI element analysis module 220 may record a reproduced sound source. In an embodiment, the application UI element analysis module 220 may compare the waveform of the reproduced sound source with the waveform of the sound source corresponding to the UI element included in the binary data.

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 음원의 파형들 간의 비교 결과에 기반하여 UI 자원에 대한 정보(예: 재생되는 음원이 어느 UI 페이지에서 이용되는지에 대한 정보)를 구성할 수 있다. In an embodiment, the application UI element analysis module 220 configures information on UI resources (eg, information on which UI page the reproduced sound source is used in) based on the comparison result between the waveforms of the sound source. can

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 분석한 UI 페이지에 대한 정보, 및/또는 UI 자원에 대한 정보를 메타 UI 자원 생성 모듈(230)에게 제공할 수 있다. 일 실시 예에서, UI 페이지, 및 UI 자원 정보는, UI 페이지들 각각에 이용되는 UI 자원에 대한 정보, UI 페이지 맵을 나타내는 정보, 또는 이들의 조합을 포함할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지, 및 UI 자원 정보를 메모리(113)의 데이터베이스(240)에 송신할 수 있다. 일 실시 예에서, 데이터베이스(240)는, UI 페이지, 및 UI 자원 정보를 저장할 수 있다.In an embodiment, the application UI element analysis module 220 may provide information on the analyzed UI page and/or information on UI resources to the meta UI resource generation module 230 . In an embodiment, the UI page and the UI resource information may include information on a UI resource used in each of the UI pages, information indicating a UI page map, or a combination thereof. In an embodiment, the application UI element analysis module 220 may transmit the UI page and UI resource information to the database 240 of the memory 113 . In an embodiment, the database 240 may store UI pages and UI resource information.

일 실시 예에서, 메타 UI 자원 생성 모듈(230)은, UI 페이지에 대한 정보, 및/또는 UI 자원에 대한 정보에 기반하여, 메타 UI 자원을 생성할 수 있다. 일 실시 예에서, 메타 UI 자원은, 가상 어플리케이션 서비스를 이용하는 전자 장치의 장치 환경(예: 전자 장치의 해상도, 오디오 채널의 개수)에 상응하여 UI 자원을 제공하기 위해 생성되는 UI 자원일 수 있다. 일 실시 예에서, 전자 장치의 장치 환경은, 전자 장치의 장치 성능을 나타낼 수 있다.In an embodiment, the meta UI resource generation module 230 may generate a meta UI resource based on information on a UI page and/or information on a UI resource. In an embodiment, the meta UI resource may be a UI resource generated to provide a UI resource corresponding to a device environment (eg, a resolution of the electronic device and the number of audio channels) of an electronic device using a virtual application service. In an embodiment, the device environment of the electronic device may indicate device performance of the electronic device.

일 실시 예에서, 메타 UI 자원 생성 모듈(230)은, 미리 지정된 해상도(예: 1920x1080)에 기반한 이미지, 또는 동영상 형태의 UI 자원을 다른 해상도(예: 1280x720, 또는 640x480)에 기반한 데이터로 변환함으로써, 메타 UI 자원을 생성할 수 있다. 일 실시 예에서, 메타 UI 자원의 해상도는, UI 자원의 미리 지정된 해상도보다 낮을 수 있다.In an embodiment, the meta UI resource generation module 230 converts a UI resource in the form of an image or video based on a predefined resolution (eg, 1920x1080) into data based on another resolution (eg, 1280x720, or 640x480). , can create meta UI resources. In an embodiment, the resolution of the meta UI resource may be lower than a predefined resolution of the UI resource.

일 실시 예에서, 메타 UI 자원 생성 모듈(230)은, 어플리케이션(114)의 미리 지정된 오디오 채널(예: 5.1 채널)에 기반한 오디오 형태의 UI 자원을 다른 오디오 채널(예: 2.1 채널, 스테레오, 또는 모노)에 기반한 데이터로 변환함으로써, 메타 UI 자원을 생성할 수 있다. 일 실시 예에서, 메타 UI 자원이 출력 가능한 오디오 채널의 개수는, UI 자원이 출력 가능한 오디오 채널의 개수보다 적을 수 있다.In an embodiment, the meta UI resource generation module 230 may convert an audio type UI resource based on a pre-specified audio channel (eg, 5.1 channel) of the application 114 to another audio channel (eg, 2.1 channel, stereo, or By converting data based on mono), meta UI resources can be created. In an embodiment, the number of audio channels outputable by the meta UI resource may be less than the number of audio channels outputable by the UI resource.

일 실시 예에서, 메타 UI 자원 생성 모듈(230)은, 생성한 메타 UI 정보(예: 메타 UI 페이지, 메타 UI 자원, 메타 UI 레이아웃, 또는 이들의 조합에 대한 정보)를 메모리(113)의 데이터베이스(240)에 저장할 수 있다. In an embodiment, the meta UI resource generation module 230 stores the generated meta UI information (eg, information on meta UI pages, meta UI resources, meta UI layouts, or a combination thereof) in the database of the memory 113 . (240) can be stored.

일 실시 예에서, 입력 신호 맵핑 모듈(250)은, 전자 장치(120)의 입력 신호 송신 모듈(360)로부터 수신되는 입력에 기반하여 이벤트를 생성할 수 있다. 일 실시 예에서, 전자 장치(120)의 입력 신호 송신 모듈(360)로부터 수신되는 입력은, 어플리케이션(114)에 대한 실행 요청, 가상 어플리케이션 서비스 사용 요청, 또는 이들의 조합을 포함할 수 있다. 일 실시 예에서, 전자 장치(120)의 입력 신호 송신 모듈(360)로부터 수신되는 입력은, 전자 장치(120)의 입력 장치(125), 또는 디스플레이(350)를 통해 입력되는 임의의 지점에 대한 클릭 입력, 롱 클릭 입력, 스크롤 입력, 포커스 입력, 또는 이들의 조합에 대한 정보를 포함할 수 있다. In an embodiment, the input signal mapping module 250 may generate an event based on an input received from the input signal transmission module 360 of the electronic device 120 . In an embodiment, the input received from the input signal transmission module 360 of the electronic device 120 may include an execution request for the application 114 , a virtual application service use request, or a combination thereof. In an embodiment, the input received from the input signal transmission module 360 of the electronic device 120 is input to the input device 125 of the electronic device 120 or an arbitrary point input through the display 350 . It may include information about a click input, a long click input, a scroll input, a focus input, or a combination thereof.

일 실시 예에서, 어플리케이션 구동 모듈(260)은, 입력 신호 맵핑 모듈(250)로부터 수신한 이벤트에 응답하여, 실시간 UI 분석 모듈(270)에게 UI 분석 초기화를 요청할 수 있다. 일 실시 예에서, 전자 장치(120)는 인증 모듈(295)을 통해 사용자 인증이 완료된 사용자의 전자 장치일 수 있다. 일 실시 예에서, 입력 신호 맵핑 모듈(250)로부터 수신한 이벤트는, 어플리케이션(114)에 대한 실행 요청을 알리는 이벤트일 수 있다. 일 실시 예에서, 가상 어플리케이션 서비스 사용 요청에는 전자 장치(120)의 장치 환경(예: 해상도, 오디오 채널의 개수)에 대한 정보가 포함될 수 있다. 일 실시 예에서, 전자 장치(120)의 장치 환경은, 전자 장치(120)의 장치 성능을 나타낼 수 있다.In an embodiment, the application driving module 260 may request UI analysis initialization from the real-time UI analysis module 270 in response to an event received from the input signal mapping module 250 . In an embodiment, the electronic device 120 may be a user's electronic device for which user authentication has been completed through the authentication module 295 . In an embodiment, the event received from the input signal mapping module 250 may be an event notifying an execution request for the application 114 . According to an embodiment, the virtual application service use request may include information on the device environment (eg, resolution, number of audio channels) of the electronic device 120 . In an embodiment, the device environment of the electronic device 120 may indicate device performance of the electronic device 120 .

일 실시 예에서, 실시간 UI 분석 모듈(270)은, UI 분석 초기화 요청에 응답하여, UI 페이지 상태 머신(280)에게 UI 페이지 상태 초기화를 요청할 수 있다.In an embodiment, the real-time UI analysis module 270 may request UI page state initialization from the UI page state machine 280 in response to the UI analysis initialization request.

일 실시 예에서, UI 페이지 상태 머신(280)은, UI 페이지 상태 초기화 요청에 응답하여, 데이터베이스(240)에게 UI 페이지 맵을 요청할 수 있다. 일 실시 예에서, UI 페이지 맵은, 전자 장치(120)로부터의 입력이 나타내는 어플리케이션과 관련된 UI 페이지 맵일 수 있다.In one embodiment, the UI page state machine 280 may request the UI page map from the database 240 in response to the UI page state initialization request. In an embodiment, the UI page map may be a UI page map related to an application indicated by an input from the electronic device 120 .

일 실시 예에서, 데이터베이스(240)는, UI 페이지 맵을 검색하고, 검색한 UI 페이지 맵을 UI 페이지 상태 머신(280)에게 제공할 수 있다. In an embodiment, the database 240 may retrieve the UI page map and provide the retrieved UI page map to the UI page state machine 280 .

일 실시 예에서, UI 페이지 상태 머신(280)은, 데이터베이스(240)로부터 수신한 UI 페이지 맵에 기반하여 상태 머신을 구성할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, UI 페이지 맵에 기반하여, 다수의 상태들 각각이 다수의 UI 페이지들 각각을 나타내도록, 상태 머신을 구성할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, UI 페이지 맵에 기반하여, 다수의 상태들 각각의 연결 관계를 구성할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, 상태 머신의 구성을 완료하면, 실시간 UI 분석 모듈(270)에게 UI 페이지 상태 초기화 완료를 통보할 수 있다. In an embodiment, the UI page state machine 280 may configure the state machine based on the UI page map received from the database 240 . In one embodiment, the UI page state machine 280 may configure the state machine such that each of the plurality of states represents each of the plurality of UI pages, based on the UI page map. In an embodiment, the UI page state machine 280 may configure a connection relationship of each of a plurality of states based on the UI page map. In an embodiment, when the configuration of the state machine is completed, the UI page state machine 280 may notify the real-time UI analysis module 270 of the completion of UI page state initialization.

일 실시 예에서, 실시간 UI 분석 모듈(270)은, UI 페이지 상태 초기화 완료에 응답하여, 데이터베이스(240)에게 UI 자원 맵을 요청할 수 있다. 일 실시 예에서, UI 자원 맵은, UI 자원이 이용되는 UI 페이지들을 나타내는 정보일 수 있다.In an embodiment, the real-time UI analysis module 270 may request a UI resource map from the database 240 in response to completion of UI page state initialization. In an embodiment, the UI resource map may be information indicating UI pages in which UI resources are used.

일 실시 예에서, 데이터베이스(240)는, UI 자원 맵을 검색하고, 검색한 UI 자원 맵을 실시간 UI 분석 모듈(270)에게 제공할 수 있다. In an embodiment, the database 240 may search the UI resource map and provide the searched UI resource map to the real-time UI analysis module 270 .

일 실시 예에서, 실시간 UI 분석 모듈(270)은, 데이터베이스(240)로부터 UI 자원 맵을 수신하면, 어플리케이션 구동 모듈(260)에게 UI 분석 초기화 완료를 통보할 수 있다. In an embodiment, when receiving the UI resource map from the database 240 , the real-time UI analysis module 270 may notify the application driving module 260 of completion of UI analysis initialization.

일 실시 예에서, 어플리케이션 구동 모듈(260)은, UI 분석 초기화 완료에 응답하여, 어플리케이션(114)을 구동할 수 있다. 일 실시 예에서, 어플리케이션 구동 모듈(260)이 실시간 UI 분석 모듈(270)에게 UI 분석 초기화를 요청한 후 어플리케이션(114)을 구동하는 것으로 예시하였으나, 이는 예시일 뿐이다. 일 실시 예에서, 어플리케이션 구동 모듈(260)은, 어플리케이션(114)을 구동한 후 실시간 UI 분석 모듈(270)에게 UI 분석 초기화를 요청할 수 있다.In an embodiment, the application driving module 260 may drive the application 114 in response to completion of UI analysis initialization. In one embodiment, it has been exemplified that the application driving module 260 drives the application 114 after requesting the real-time UI analysis module 270 to initialize the UI analysis, but this is only an example. In an embodiment, the application driving module 260 may request UI analysis initialization from the real-time UI analysis module 270 after driving the application 114 .

일 실시 예에서, 어플리케이션 구동 모듈(260)은, 실시간 UI 분석 모듈(270)로부터의 UI 요소 요청에 응답하여, 어플리케이션(114)이 나타내는 UI 페이지에 포함된 UI 요소들을 식별할 수 있다. 일 실시 예에서, 어플리케이션 구동 모듈(260)은, 식별한 UI 요소들에 대한 정보를 실시간 UI 분석 모듈(270)에게 제공할 수 있다.In an embodiment, the application driving module 260 may identify UI elements included in a UI page displayed by the application 114 in response to a UI element request from the real-time UI analysis module 270 . In an embodiment, the application driving module 260 may provide information on the identified UI elements to the real-time UI analysis module 270 .

일 실시 예에서, 어플리케이션 구동 모듈(260)은, 현재 UI 페이지(610)에 포함되어 있는 UI 요소들(611 내지 617)에 대한 정보를 실시간 UI 분석 모듈(270)에게 제공할 수 있다.In an embodiment, the application driving module 260 may provide information on the UI elements 611 to 617 included in the current UI page 610 to the real-time UI analysis module 270 .

일 실시 예에서, 실시간 UI 분석 모듈(270)은, UI 요소들에 대한 정보에 기반하여, UI 요소들을 파싱(parsing)할 수 있다. 일 실시 예에서, 실시간 UI 분석 모듈(270)은, 현재 UI 페이지(610)에 포함되어 있는 UI 요소들(611 내지 617)을 파싱함으로써, UI 요소들(611 내지 617) 각각에 이용되는 UI 자원들을 식별할 수 있다. In an embodiment, the real-time UI analysis module 270 may parse UI elements based on information about the UI elements. In an embodiment, the real-time UI analysis module 270 parses the UI elements 611 to 617 included in the current UI page 610, and thus a UI resource used for each of the UI elements 611 to 617. can be identified.

일 실시 예에서, 실시간 UI 분석 모듈(270)은, 현재 UI 페이지에 포함된 UI 자원들과, 어플리케이션(114)의 다수의 페이지들 각각에 포함된 UI 자원들을 비교할 수 있다. 일 실시 예에서, 실시간 UI 분석 모듈(270)은, 어플리케이션(114)의 UI 자원 정보에 기반하여, 현재 UI 페이지에 포함된 UI 자원들과, 어플리케이션(114)의 다수의 페이지들 각각에 포함된 UI 자원들을 비교할 수 있다.In an embodiment, the real-time UI analysis module 270 may compare UI resources included in the current UI page with UI resources included in each of a plurality of pages of the application 114 . In one embodiment, the real-time UI analysis module 270, based on the UI resource information of the application 114, the UI resources included in the current UI page, and each of the plurality of pages of the application 114. UI resources can be compared.

일 실시 예에서, 실시간 UI 분석 모듈(270)은, UI 자원 맵에 기반하여, 다수의 UI 페이지들 중, 식별된 UI 자원들을 포함하는 UI 페이지를 현재 UI 페이지로 결정할 수 있다. 일 실시 예에서, 실시간 UI 분석 모듈(270)은, 다수의 UI 페이지들 중, 식별된 UI 자원들을 가장 많이 포함하는 UI 페이지를 현재 UI 페이지로 결정할 수 있다.In an embodiment, the real-time UI analysis module 270 may determine, among a plurality of UI pages, a UI page including the identified UI resources as the current UI page, based on the UI resource map. In an embodiment, the real-time UI analysis module 270 may determine, among a plurality of UI pages, a UI page including the most identified UI resources as the current UI page.

일 실시 예에서, 실시간 UI 분석 모듈(270)은, UI 페이지(520)를 현재 UI 페이지(610)로 결정할 수 있다.In an embodiment, the real-time UI analysis module 270 may determine the UI page 520 as the current UI page 610 .

일 실시 예에서, 실시간 UI 분석 모듈(270)은, 식별한 현재 UI 페이지에 대한 정보에 기반하여, UI 페이지 상태 머신(280)에게 이동 가능한 다음 UI 페이지 정보를 요청할 수 있다. In an embodiment, the real-time UI analysis module 270 may request information on the next moveable UI page from the UI page state machine 280 based on the identified information on the current UI page.

일 실시 예에서, UI 페이지 상태 머신(280)은, 현재 UI 페이지에 대한 정보에 기반하여, 이동 가능한 다음 UI 페이지를 식별할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, 상태 머신에 기반하여 이동 가능한 다음 UI 페이지를 식별할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, 상태 머신이 현재 UI 페이지를 나타낼 때, 이동 가능한 다음 UI 페이지를 식별할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, 현재 UI 페이지에서 이동 가능한 다음 UI 페이지에 대한 정보를 식별할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, 상태(state)를 현재 UI 페이지로 전이시킨 후 전이된 현재 UI 페이지에서 이동 가능하도록 설정된 UI 페이지들에 대한 정보를 식별할 수 있다.In an embodiment, the UI page state machine 280 may identify a next moveable UI page based on information about the current UI page. In one embodiment, the UI page state machine 280 may identify the next moveable UI page based on the state machine. In one embodiment, the UI page state machine 280 may identify the next available UI page when the state machine represents the current UI page. In an embodiment, the UI page state machine 280 may identify information about a next UI page that can be moved from the current UI page. In an embodiment, the UI page state machine 280 may identify information about UI pages set to be movable in the transitioned current UI page after transitioning the state to the current UI page.

일 실시 예에서, UI 페이지(520)가 현재 UI 페이지(610)인 경우, UI 페이지 상태 머신(280)은, UI 페이지들(530, 550)을 이동 가능한 다음 UI 페이지로 식별할 수 있다.In an embodiment, when the UI page 520 is the current UI page 610 , the UI page state machine 280 may identify the UI pages 530 and 550 as the next moveable UI page.

일 실시 예에서, UI 페이지 상태 머신(280)은, 식별한 이동 가능한 다음 UI 페이지에 대한 정보를 실시간 UI 분석 모듈(270)에게 제공할 수 있다. 일 실시 예에서, 실시간 UI 분석 모듈(270)은, 이동 가능한 다음 UI 페이지에 대한 정보를 통신 모듈(112)을 이용하여, 전자 장치(120)에게 제공할 수 있다. In an embodiment, the UI page state machine 280 may provide information on the identified next moveable UI page to the real-time UI analysis module 270 . In an embodiment, the real-time UI analysis module 270 may provide information on the next moveable UI page to the electronic device 120 using the communication module 112 .

일 실시 예에서, 데이터베이스(240)는, 전자 장치(120)로부터의 UI 자원 요청에 응답하여, UI 자원을 검색할 수 있다. 일 실시 예에서, 데이터베이스(240)는, 검색한 UI 자원을 전자 장치(120)에게 제공할 수 있다. 일 실시 예에서, 전자 장치(120)로부터의 UI 자원 요청은, 현재 UI 페이지에 대한 정보 및/또는 이동 가능한 다음 UI 페이지에 대한 정보에 기반하여 생성된 요청일 수 있다.In an embodiment, the database 240 may search for a UI resource in response to a UI resource request from the electronic device 120 . In an embodiment, the database 240 may provide the searched UI resource to the electronic device 120 . In an embodiment, the UI resource request from the electronic device 120 may be a request generated based on information on a current UI page and/or information on a next moveable UI page.

일 실시 예에서, 어플리케이션 구동 모듈(260)은, 메타 UI 레이아웃 변환 모듈(290)로부터의 UI 요소 요청 및/또는 UI 레이아웃 정보 요청에 응답하여, 구동 중인 어플리케이션이 나타내는 UI 요소들 및/또는 UI 레이아웃을 식별할 수 있다. 일 실시 예에서, 어플리케이션 구동 모듈(260)은, 식별한 UI 요소들에 대한 정보 및/또는 UI 레이아웃에 대한 정보를 메타 UI 레이아웃 변환 모듈(290)에게 제공할 수 있다. 일 실시 예에서, UI 레이아웃은, UI 요소들의 UI 페이지 내에서의 배치에 관련될 수 있다.In an embodiment, the application driving module 260 responds to a UI element request and/or a UI layout information request from the meta UI layout conversion module 290, UI elements and/or UI layout indicated by the running application can be identified. In an embodiment, the application driving module 260 may provide information on the identified UI elements and/or information on the UI layout to the meta UI layout conversion module 290 . In one embodiment, UI layout may relate to placement of UI elements within a UI page.

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(290)은, UI 요소들에 대한 정보 및/또는 UI 레이아웃에 대한 정보에 기반하여, UI 제어를 메타 UI 제어로 변환할 수 있다. 일 실시 예에서, 메타 UI 레이아웃 변환 모듈(290)은, UI 제어 변환 맵(710)에 기반하여, 어플리케이션(114)이 구동되는 운영 체제(OS; Operating System)에서 이용되는 UI 제어를, 메타 UI 제어로 변환할 수 있다. In an embodiment, the meta UI layout conversion module 290 may convert UI control into meta UI control based on information on UI elements and/or information on UI layout. In an embodiment, the meta UI layout conversion module 290 converts a UI control used in an operating system (OS) in which the application 114 is driven, based on the UI control conversion map 710, to the meta UI can be converted to control.

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(290)은, UI 제어 변환 맵(710)에 기반하여, 'TextView'라는 UI 제어를, 'TextViewControl'이라는 메타 UI 제어로 변환할 수 있다. 일 실시 예에서, UI 자원이 'TextView'라는 유형을 가지도록 설정된 경우(Type=TextView), 메타 UI 레이아웃 변환 모듈(290)은, UI 자원의 유형을 'TextViewControl'로 변환(Type=TextViewControl)할 수 있다.In an embodiment, the meta UI layout conversion module 290 may convert a UI control called 'TextView' into a meta UI control called 'TextViewControl' based on the UI control transformation map 710 . In one embodiment, when the UI resource is set to have a type of 'TextView' (Type=TextView), the meta UI layout conversion module 290 converts the type of the UI resource to 'TextViewControl' (Type=TextViewControl). can

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(290)은, UI 제어 변환 맵(710)에 기반하여, 'ImageView', 'EditText', 'Button', 'CheckBox', 'ListView', 또는 'LinearLayout'을, 'ImageViewControl', 'TextBoxControl', 'ButtonControl', 'CheckBoxControl', 'ListView', 또는 'Layout'으로 각각 변환할 수 있다. In one embodiment, the meta UI layout conversion module 290, based on the UI control conversion map 710, 'ImageView', 'EditText', 'Button', 'CheckBox', 'ListView', or 'LinearLayout' can be converted to 'ImageViewControl', 'TextBoxControl', 'ButtonControl', 'CheckBoxControl', 'ListView', or 'Layout', respectively.

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(290)은, 메타 UI 제어를 이용하여 UI 요소에 대한 정보를 나타냄으로써, 메타 UI 요소를 이용하여 UI 레이아웃에 대한 정보를 나타낼 수 있다. 일 실시 예에서, 메타 UI 요소는, 메타 UI 제어를 이용하여 UI 요소에 대한 정보가 기술되는 UI 요소일 수 있다. 일 실시 예에서, 메타 UI 레이아웃은, 메타 UI 요소를 이용하여 UI 레이아웃에 대한 정보가 기술되는 UI 레이아웃일 수 있다.In an embodiment, the meta UI layout conversion module 290 may display information on UI elements by using meta UI controls, thereby indicating information on UI layouts using meta UI elements. In an embodiment, the meta UI element may be a UI element in which information on the UI element is described using meta UI control. In an embodiment, the meta UI layout may be a UI layout in which information on the UI layout is described using meta UI elements.

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(290)은, 변환한 메타 UI 제어 및/또는 메타 UI 레이아웃에 대한 정보를 통신 모듈(112)을 이용하여, 전자 장치(120)에게 제공할 수 있다. In an embodiment, the meta UI layout conversion module 290 may provide information on the converted meta UI control and/or meta UI layout to the electronic device 120 using the communication module 112 .

일 실시 예에서, 인증 모듈(295)은, 전자 장치(120)의 가상 어플리케이션 서비스 사용 요청에 응답하여, 전자 장치(120)의 사용자를 인증할 수 있다. 일 실시 예에서, 인증 모듈(295)은, 가상 어플리케이션 서비스 사용 요청에 포함된 사용자 정보에 기반하여, 사용자를 인증할 수 있다. In an embodiment, the authentication module 295 may authenticate the user of the electronic device 120 in response to a request to use the virtual application service of the electronic device 120 . In an embodiment, the authentication module 295 may authenticate the user based on user information included in the virtual application service use request.

일 실시 예에서, 인증 모듈(295)은, 사용자가 인증되면, 인증된 사용자의 권한을 식별할 수 있다. 일 실시 예에서, 인증 모듈(295)은, 사용자의 식별된 권한에 상응하는 토큰을 전자 장치(120)에게 제공할 수 있다. In an embodiment, when the user is authenticated, the authentication module 295 may identify the authorized user's authority. In an embodiment, the authentication module 295 may provide a token corresponding to the user's identified authority to the electronic device 120 .

도 1을 참조하면, 전자 장치(120)는, 프로세서(121), 통신 모듈(122), 메모리(123), 표시 장치(124), 입력 장치(125), 또는 이들의 조합을 포함할 수 있다. 도 1을 통해 예시된 전자 장치(120)의 구성 요소들은, 예시일 뿐이며, 하나 이상의 다른 구성 요소가 추가될 수 있다.Referring to FIG. 1 , the electronic device 120 may include a processor 121 , a communication module 122 , a memory 123 , a display device 124 , an input device 125 , or a combination thereof. . The components of the electronic device 120 illustrated in FIG. 1 are merely examples, and one or more other components may be added.

일 실시 예에서, 프로세서(121)는, 소프트웨어를 실행하여 프로세서(121)에 연결된 전자 장치(120)의 적어도 하나의 다른 구성 요소를 제어할 수 있다. 일 실시 예에서, 프로세서(121)는 다른 구성 요소(예: 통신 모듈(122), 표시 장치(124), 입력 장치(125))로부터 수신된 명령 또는 데이터를 처리하고, 그 결과 데이터를 메모리(123)에 저장할 수 있다. In an embodiment, the processor 121 may execute software to control at least one other component of the electronic device 120 connected to the processor 121 . In an embodiment, the processor 121 processes a command or data received from another component (eg, the communication module 122, the display device 124, and the input device 125), and stores the resultant data into a memory ( 123) can be stored.

일 실시 예에서, 통신 모듈(122)은, 가상화 서버(110)와 전자 장치(120) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 일 실시 예에서, 통신 모듈(122)은 프로세서(121)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서(CP)를 포함할 수 있다. 일 실시 예에서, 통신 모듈(122)은 무선 통신 모듈 또는 유선 통신 모듈을 포함할 수 있다. 일 실시 예에서, 통신 모듈(122)은 네트워크(130)를 통해 가상화 서버(110)와 통신할 수 있다. In an embodiment, the communication module 122 supports establishment of a direct (eg, wired) communication channel or a wireless communication channel between the virtualization server 110 and the electronic device 120, and performing communication through the established communication channel. can In an embodiment, the communication module 122 may include one or more communication processors (CPs) that operate independently of the processor 121 and support direct (eg, wired) communication or wireless communication. In an embodiment, the communication module 122 may include a wireless communication module or a wired communication module. In an embodiment, the communication module 122 may communicate with the virtualization server 110 through the network 130 .

일 실시 예에서, 메모리(123)는, 전자 장치(120)의 적어도 하나의 구성 요소(예: 프로세서(121))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 일 실시 예에서, 데이터는, 소프트웨어, 및 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. In an embodiment, the memory 123 may store various data used by at least one component (eg, the processor 121 ) of the electronic device 120 . In one embodiment, the data may include input data or output data for software and related instructions.

일 실시 예에서, 표시 장치(124)는 전자 장치(120)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 일 실시 예에서, 표시 장치(124)는, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에서, 표시 장치(124)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.In an embodiment, the display device 124 may visually provide information to the outside (eg, a user) of the electronic device 120 . In an embodiment, the display device 124 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the corresponding device. In an embodiment, the display device 124 may include a touch circuitry configured to sense a touch or a sensor circuitry configured to measure the intensity of a force generated by the touch (eg, a pressure sensor). .

일 실시 예에서, 입력 장치(125)는, 전자 장치(120)의 구성요소(예: 프로세서(121))에 사용될 명령 또는 데이터를 전자 장치(120)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(125)는, 예를 들면, 마이크, 마우스, 키보드, 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. In an embodiment, the input device 125 may receive a command or data to be used by a component (eg, the processor 121 ) of the electronic device 120 from the outside (eg, a user) of the electronic device 120 . there is. The input device 125 may include, for example, a microphone, a mouse, a keyboard, or a digital pen (eg, a stylus pen).

도 3을 참조하면, 전자 장치(120)는, 메모리(123)에 저장되는 UI 자원 프리페치 모듈(310), 메타 UI 레이아웃 변환 모듈(330), UI 렌더 모듈(340), 입력 신호 송신 모듈(360), 어플리케이션 실행 모듈(370), 또는 이들의 조합을 포함할 수 있다. 도 3을 참조하면, 전자 장치(120)는, 디스플레이(350)를 포함할 수 있다. 일 실시 예에서, 디스플레이(350)는, 표시 장치(124)에 포함될 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 메모리(123)에 저장되는 정보를 나타낼 수 있다.Referring to FIG. 3 , the electronic device 120 includes a UI resource prefetch module 310 stored in a memory 123 , a meta UI layout conversion module 330 , a UI render module 340 , and an input signal transmission module ( 360), the application execution module 370, or a combination thereof. Referring to FIG. 3 , the electronic device 120 may include a display 350 . In an embodiment, the display 350 may be included in the display device 124 . In an embodiment, the UI resource cache 320 may indicate information stored in the memory 123 .

일 실시 예에서, UI 자원 프리페치 모듈(310), 메타 UI 레이아웃 변환 모듈(330), UI 렌더 모듈(340), 입력 신호 송신 모듈(360), 어플리케이션 실행 모듈(370), 또는 이들의 조합은, 프로세서(121)가 실행 가능한 소프트웨어의 일 예일 수 있다. 일 실시 예에서, 프로세서(121)는, UI 자원 프리페치 모듈(310), 메타 UI 레이아웃 변환 모듈(330), UI 렌더 모듈(340), 입력 신호 송신 모듈(360), 어플리케이션 실행 모듈(370), 또는 이들의 조합을 이용하여, 이들 각각이 제공하는 기능을 실행할 수 있다. In one embodiment, the UI resource prefetch module 310, the meta UI layout conversion module 330, the UI render module 340, the input signal transmission module 360, the application execution module 370, or a combination thereof , the processor 121 may be an example of executable software. In an embodiment, the processor 121 includes a UI resource prefetch module 310 , a meta UI layout conversion module 330 , a UI render module 340 , an input signal transmission module 360 , and an application execution module 370 . , or a combination thereof, can be used to execute the functions provided by each of them.

일 실시 예에서, 어플리케이션 실행 모듈(370)은, 어플리케이션 실행 요청을 식별할 수 있다. 일 실시 예에서, 어플리케이션 실행 모듈(370)은, 입력 신호 송신 모듈(360)을 통해 식별되는 입력에 기반하여, 어플리케이션 실행 요청을 식별할 수 있다. 일 실시 예에서, 입력은 입력 장치(125), 및/또는 표시 장치(124)를 통해 발생하는 신호에 의해 식별될 수 있다. In an embodiment, the application execution module 370 may identify an application execution request. In an embodiment, the application execution module 370 may identify an application execution request based on an input identified through the input signal transmission module 360 . In one embodiment, the input may be identified by a signal generated through the input device 125 and/or the display device 124 .

일 실시 예에서, 어플리케이션 실행 모듈(370)은, 어플리케이션 실행 요청에 응답하여, 가상화 서버(110)의 인증 모듈(295)에게 가상 어플리케이션 서비스 사용을 요청할 수 있다. 일 실시 예에서, 가상 어플리케이션 서비스 사용 요청에는 사용자의 식별 정보가 포함될 수 있다. 일 실시 예에서, 가상 어플리케이션 서비스 사용 요청에는 전자 장치(120)의 장치 환경(예: 해상도, 오디오 채널의 개수)에 대한 정보가 포함될 수 있다. 일 실시 예에서, 전자 장치(120)의 장치 환경은, 전자 장치(120)의 장치 성능을 나타낼 수 있다.In an embodiment, the application execution module 370 may request to use the virtual application service from the authentication module 295 of the virtualization server 110 in response to the application execution request. According to an embodiment, the virtual application service use request may include user identification information. According to an embodiment, the virtual application service use request may include information on the device environment (eg, resolution, number of audio channels) of the electronic device 120 . In an embodiment, the device environment of the electronic device 120 may indicate device performance of the electronic device 120 .

일 실시 예에서, 가상화 서버(110)의 인증 모듈(295)은, 가상 어플리케이션 서비스 사용 요청에 응답하여, 사용자를 인증할 수 있다. 일 실시 예에서, 인증 모듈(295)은, 가상 어플리케이션 서비스 사용 요청에 포함된 사용자 정보에 기반하여, 사용자를 인증할 수 있다. In one embodiment, the authentication module 295 of the virtualization server 110, in response to the virtual application service use request, may authenticate the user. In an embodiment, the authentication module 295 may authenticate the user based on user information included in the virtual application service use request.

일 실시 예에서, 인증 모듈(295)은, 사용자가 인증되면, 인증된 사용자의 권한을 식별할 수 있다. 일 실시 예에서, 인증 모듈(295)은, 사용자의 식별된 권한에 상응하는 토큰을 어플리케이션 실행 모듈(370)에게 제공할 수 있다. In an embodiment, when the user is authenticated, the authentication module 295 may identify the authorized user's authority. In an embodiment, the authentication module 295 may provide a token corresponding to the user's identified authority to the application execution module 370 .

일 실시 예에서, 어플리케이션 실행 모듈(370)은, 인증 모듈(295)로부터 토큰을 수신하면, 어플리케이션 구동 모듈(260)에게 어플리케이션(114)의 구동을 요청할 수 있다. In an embodiment, when receiving a token from the authentication module 295 , the application execution module 370 may request the application driving module 260 to drive the application 114 .

일 실시 예에서, UI 자원 프리페치 모듈(310)은, 실시간 UI 분석 모듈(270)로부터 현재 UI 페이지에 대한 정보 및/또는 이동 가능한 다음 UI 페이지에 대한 정보를 수신할 수 있다. 일 실시 예에서, UI 자원 프리페치 모듈(310)은, 어플리케이션(114) 구동 요청 후, 실시간 UI 분석 모듈(270)로부터 현재 UI 페이지에 대한 정보 및/또는 이동 가능한 다음 UI 페이지에 대한 정보를 수신할 수 있다. 일 실시 예에서, 현재 UI 페이지에 대한 정보 및/또는 이동 가능한 다음 UI 페이지에 대한 정보는, 전자 장치(120)의 장치 환경(예: 해상도, 오디오 채널의 개수)에 기반하여 생성된 정보일 수 있다. 일 실시 예에서, 현재 UI 페이지에 대한 정보 및/또는 이동 가능한 다음 UI 페이지에 대한 정보는, 해당 UI 페이지를 표시하기 위한 UI 자원들에 정보를 포함할 수 있다. 일 실시 예에서, UI 페이지를 표시하기 위한 UI 자원들에 정보는, 서로 다른 장치 성능(또는, 서로 다른 장치 환경)들에 대응하는 UI 자원들 중 상기 전자 장치(120)의 장치 성능(또는 장치 환경)에 대응하는 UI 자원들에 대한 정보일 수 있다. 예를 들어, UI 페이지를 표시하기 위한 UI 자원들에 정보는, 해상도에 대한 서로 다른 장치 성능들(예: 1920x1080, 1280x720, 또는 640x480)에 대응하는 UI 자원들 중 상기 전자 장치(120)의 장치 성능(예: 1280x720)에 대응하는 UI 자원들에 대한 정보일 수 있다. 예를 들어, UI 페이지를 표시하기 위한 UI 자원들에 정보는, 오디오 채널에 대한 서로 다른 장치 성능들(예: 5.1 채널, 2.1 채널, 스테레오, 또는 모노)에 대응하는 UI 자원들 중 상기 전자 장치(120)의 장치 성능(예: 스테레오)에 대응하는 UI 자원들에 대한 정보일 수 있다. In an embodiment, the UI resource prefetch module 310 may receive information on a current UI page and/or information on a next moveable UI page from the real-time UI analysis module 270 . In an embodiment, the UI resource prefetch module 310 receives information on the current UI page and/or information on the next moveable UI page from the real-time UI analysis module 270 after the application 114 driving request is made. can do. In an embodiment, the information on the current UI page and/or the information on the next moveable UI page may be information generated based on the device environment (eg, resolution, number of audio channels) of the electronic device 120 . there is. In an embodiment, the information on the current UI page and/or the information on the next moveable UI page may include information in UI resources for displaying the corresponding UI page. In an embodiment, information on UI resources for displaying a UI page includes device capabilities (or devices) of the electronic device 120 among UI resources corresponding to different device capabilities (or different device environments). environment) may be information about UI resources corresponding to the environment). For example, information on UI resources for displaying a UI page may include the device of the electronic device 120 among UI resources corresponding to different device capabilities (eg, 1920x1080, 1280x720, or 640x480) for resolution. It may be information about UI resources corresponding to performance (eg, 1280x720). For example, information in UI resources for displaying a UI page may include, among UI resources corresponding to different device capabilities (eg, 5.1 channel, 2.1 channel, stereo, or mono) for an audio channel, the electronic device It may be information about UI resources corresponding to the device capability (eg, stereo) of 120 .

일 실시 예에서, UI 자원 프리페치 모듈(310)은, 실시간 UI 분석 모듈(270)로부터의 정보 수신에 응답하여, UI 자원 캐시(320)에게 캐시 정보를 요청할 수 있다. 일 실시 예에서, UI 자원 프리페치 모듈(310)은, UI 자원 캐시(320)에게 어플리케이션(114)과 관련된 UI 자원에 대한 캐시 정보를 요청할 수 있다.In an embodiment, the UI resource prefetch module 310 may request cache information from the UI resource cache 320 in response to receiving information from the real-time UI analysis module 270 . In an embodiment, the UI resource prefetch module 310 may request cache information on UI resources related to the application 114 from the UI resource cache 320 .

일 실시 예에서, UI 자원 캐시(320)는, 저장된 캐시 정보를 검색하고, 검색한 캐시 정보를 UI 자원 프리페치 모듈(310)에게 제공할 수 있다. In an embodiment, the UI resource cache 320 may search for stored cache information and provide the retrieved cache information to the UI resource prefetch module 310 .

일 실시 예에서, UI 자원 프리페치 모듈(310)은, 캐시 정보에 기반하여, 필요 UI 자원을 식별할 수 있다. 일 실시 예에서, 필요 UI 자원은, 현재 UI 페이지를 렌더링하기 위해 필요한 UI 자원들 중, UI 자원 캐시(320)에 저장되어 있지 않은 UI 자원들일 수 있다. 일 실시 예에서, 필요 UI 자원은, 이동 가능한 다음 UI 페이지를 렌더링하기 위해 필요한 UI 자원들 중, UI 자원 캐시(320)에 저장되어 있지 않은 UI 자원들일 수 있다.In an embodiment, the UI resource prefetch module 310 may identify a necessary UI resource based on the cache information. In an embodiment, the necessary UI resources may be UI resources that are not stored in the UI resource cache 320 among UI resources required to render a current UI page. In an embodiment, the necessary UI resources may be UI resources that are not stored in the UI resource cache 320 among UI resources required to render the next moveable UI page.

일 실시 예에서, UI 자원 프리페치 모듈(310)은, 가상화 서버(110)의 데이터베이스(240)에게 식별한 필요 UI 자원을 요청할 수 있다. In an embodiment, the UI resource prefetch module 310 may request the identified necessary UI resources from the database 240 of the virtualization server 110 .

일 실시 예에서, 데이터베이스(240)는, 필요 UI 자원 요청에 상응하는 UI 자원을 검색하고, 검색한 UI 자원을 UI 자원 프리페치 모듈(310)에게 제공할 수 있다. In an embodiment, the database 240 may search for a UI resource corresponding to a required UI resource request, and provide the searched UI resource to the UI resource prefetch module 310 .

일 실시 예에서, UI 자원 프리페치 모듈(310)은, 수신한 필요 UI 자원을 UI 자원 캐시(320)에게 제공할 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 필요 UI 자원을 저장(캐싱)할 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 필요 UI 자원을 저장(캐싱)한 후 저장한 UI 자원들에 대한 캐시 정책을 갱신할 수 있다.In an embodiment, the UI resource prefetch module 310 may provide the received necessary UI resource to the UI resource cache 320 . In an embodiment, the UI resource cache 320 may store (caching) necessary UI resources. In an embodiment, the UI resource cache 320 may update the cache policy for the stored UI resources after storing (caching) the necessary UI resources.

일 실시 예에서, UI 자원 캐시(320)는, 어플리케이션(114)에 대해 지정된 용량에 대응하는 어플리케이션 데이터를 저장할 수 있다. 일 실시 예에서, 어플리케이션(114)에 대해 지정된 용량에 대응하는 어플리케이션 데이터가 저장되어 있는 경우, UI 자원 캐시(320)는, 캐시 정책에 기반하여 기존의 데이터를 삭제하고 새로운 데이터를 저장할 수 있다.In an embodiment, the UI resource cache 320 may store application data corresponding to a capacity specified for the application 114 . In an embodiment, when application data corresponding to the capacity specified for the application 114 is stored, the UI resource cache 320 may delete existing data and store new data based on the cache policy.

일 실시 예에서, UI 자원 캐시(320)는, 어플리케이션(114)이 임의의 페이지로 전환되면, 임의의 페이지에 포함되어 있는 UI 자원들에 대한 캐싱 기간을 미리 지정된 기간(예: 24시간)으로 설정할 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 캐싱 기간이 만료된 UI 자원들을 UI 자원 캐시(320)에서 삭제할 수 있다. In one embodiment, the UI resource cache 320, when the application 114 is switched to an arbitrary page, the caching period for UI resources included in the arbitrary page to a predetermined period (eg, 24 hours) can be set. In an embodiment, the UI resource cache 320 may delete UI resources whose caching period has expired from the UI resource cache 320 .

일 실시 예에서, UI 자원 캐시(320)는, 어플리케이션(114)이 임의의 페이지로 전환되면, 페이지 이동 카운트 값과, 임의의 페이지에 포함되어 있는 UI 자원들에 대한 이동 카운트 값을 1 증가시킬 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 페이지 이동 카운트 값으로부터 미리 지정한 값(예: 50) 이상 낮은 이동 카운트 값을 가지는 UI 자원들을 UI 자원 캐시(320)에서 삭제할 수 있다. 일 실시 예에서, UI 자원에 대한 이동 카운트 값은, UI 자원에 대한 이용 횟수로도 지칭될 수 있다.In an embodiment, the UI resource cache 320 increases the page movement count value and the movement count value for UI resources included in the arbitrary page by 1 when the application 114 is switched to an arbitrary page. can In an embodiment, the UI resource cache 320 may delete UI resources having a movement count value lower than or equal to a predetermined value (eg, 50) from the page movement count value from the UI resource cache 320 . In an embodiment, the movement count value for the UI resource may also be referred to as the number of times the UI resource is used.

일 실시 예에서, UI 자원 캐시(320)는, 어플리케이션(114)에 대한 가상 어플리케이션 서비스가 실행되면, 어플리케이션(114)에 대한 캐싱 기간을 미리 지정된 기간으로 설정할 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 어플리케이션(114)에 대한 캐싱 기간이 만료되면, 어플리케이션(114)과 관련된 UI 자원들을 UI 자원 캐시(320)에서 삭제할 수 있다.In an embodiment, the UI resource cache 320 may set the caching period for the application 114 to a predetermined period when the virtual application service for the application 114 is executed. In an embodiment, the UI resource cache 320 may delete UI resources related to the application 114 from the UI resource cache 320 when the caching period for the application 114 expires.

일 실시 예에서, 프로세서(121)는, UI 자원들에 대한 캐싱 기간을 설정하는 기법, UI 자원들에 대한 이동 카운트 값을 설정하는 기법, 어플리케이션(114)에 대해 캐싱 기간을 설정하는 기법, 또는 이들의 조합을 이용하여, 저장된 UI 자원들에 대한 캐시 정책을 수립할 수 있다. 일 실시 예에서, 프로세서(121)는, 수립한 캐시 정책에 기반하여, UI 자원 캐시(320)에 저장된 데이터를 삭제하거나, UI 자원 캐시(320)에 데이터를 저장할 수 있다. In one embodiment, the processor 121, a technique for setting a caching period for UI resources, a technique for setting a movement count value for UI resources, a technique for setting a caching period for the application 114, or A cache policy for the stored UI resources can be established by using a combination of these. In an embodiment, the processor 121 may delete data stored in the UI resource cache 320 or store data in the UI resource cache 320 based on the established cache policy.

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(330)은, 가상화 서버(110)의 메타 UI 레이아웃 변환 모듈(290)로부터 메타 UI 제어를 수신할 수 있다. In an embodiment, the meta UI layout conversion module 330 may receive the meta UI control from the meta UI layout conversion module 290 of the virtualization server 110 .

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(330)은, 메타 UI 제어를 전자 장치(120)의 운영 체제(OS)에서 이용되는 UI 제어로 변환할 수 있다. 일 실시 예에서, 메타 UI 레이아웃 변환 모듈(330)은, UI 제어 변환 맵(720)에 기반하여, 'TextViewControl'이라는 메타 UI 제어를, 'Label'이라는 UI 제어로 변환할 수 있다. 일 실시 예에서, UI 자원이 'TextViewControl'라는 유형을 가지도록 설정된 경우(Type=TextViewControl), 메타 UI 레이아웃 변환 모듈(330)은, UI 자원의 유형을 'Label'로 변환(Type=Label)할 수 있다.In an embodiment, the meta UI layout conversion module 330 may convert the meta UI control into a UI control used in an operating system (OS) of the electronic device 120 . In an embodiment, the meta UI layout conversion module 330 may convert a meta UI control called 'TextViewControl' into a UI control called 'Label' based on the UI control transformation map 720 . In one embodiment, when the UI resource is set to have a type of 'TextViewControl' (Type=TextViewControl), the meta UI layout conversion module 330 converts the type of the UI resource to 'Label' (Type=Label). can

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(330)은, UI 제어 변환 맵(720)에 기반하여, 'ImageViewControl', 'TextBoxControl, 'ButtonControl', 'CheckBoxControl', 'ListView', 또는 'Layout'을, 'PictureBox', 'TextBox', 'Button', 'CheckBox', 'ListView', 또는 'FlowLayoutPanel'로 각각 변환할 수 있다.In one embodiment, the meta UI layout conversion module 330, based on the UI control conversion map 720, 'ImageViewControl', 'TextBoxControl, 'ButtonControl', 'CheckBoxControl', 'ListView', or 'Layout' , 'PictureBox', 'TextBox', 'Button', 'CheckBox', 'ListView', or 'FlowLayoutPanel' respectively.

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(330)은, UI 제어를 이용하여 UI 요소에 대한 정보를 나타냄으로써, 메타 UI 레이아웃을 UI 레이아웃으로 변환할 수 있다.In an embodiment, the meta UI layout conversion module 330 may convert the meta UI layout into a UI layout by indicating information on UI elements using UI controls.

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(330)은, 변환한 UI 제어 및/또는 UI 레이아웃에 대한 정보를 UI 렌더 모듈(340)에게 제공할 수 있다. 일 실시 예에서, UI 레이아웃은, UI 페이지에 포함되어 있는 UI 요소들의 배치를 의미할 수 있다. 일 실시 예에서, UI 레이아웃 정보는, UI 페이지에 포함되어 있는 UI 요소들의 배경 색상, 마진(margin), 패딩(padding), 배치, 크기, 또는 이들의 조합에 대한 정보를 포함할 수 있다. 일 실시 예에서, UI 레이아웃 정보는, UI 페이지에 포함되어 있는 UI 요소들의 폰트 정보, 폰트 크기, 또는 이들의 조합에 대한 정보를 포함할 수 있다.In an embodiment, the meta UI layout conversion module 330 may provide information about the converted UI control and/or UI layout to the UI render module 340 . According to an embodiment, the UI layout may mean arrangement of UI elements included in a UI page. In an embodiment, the UI layout information may include information on a background color, margin, padding, arrangement, size, or a combination thereof of UI elements included in a UI page. In an embodiment, the UI layout information may include information about font information, font size, or a combination thereof of UI elements included in the UI page.

일 실시 예에서, UI 렌더 모듈(340)은, 변환한 UI 제어에 대한 정보에 기반하여, UI 자원 캐시(320)에게 UI 자원을 요청할 수 있다.In an embodiment, the UI render module 340 may request a UI resource from the UI resource cache 320 based on the converted UI control information.

일 실시 예에서, UI 자원 캐시(320)는, 변환한 UI 제어에 대한 정보에 상응하는 UI 자원을 검색하고, 검색한 UI 자원을 UI 렌더 모듈(340)에게 제공할 수 있다. In an embodiment, the UI resource cache 320 may search for a UI resource corresponding to the converted UI control information, and provide the searched UI resource to the UI render module 340 .

일 실시 예에서, UI 렌더 모듈(340)은, UI 자원 캐시(320)에 저장되어 있는 UI 자원들을 이용하여 UI 요소를 로드할 수 있다. 일 실시 예에서, UI 렌더 모듈(340)은, UI 자원 캐시(320)에 저장되어 있지 않은 UI 자원들을 이용하는 UI 요소의 경우, 기준 자원(default resource)을 이용하여 UI 요소를 로드할 수 있다. 일 실시 예에서, UI 렌더 모듈(340)은, UI 요소를 로드함으로써, UI 페이지를 렌더링할 수 있다.In an embodiment, the UI render module 340 may load a UI element using UI resources stored in the UI resource cache 320 . In an embodiment, the UI render module 340 may load a UI element using a default resource in the case of a UI element using UI resources that are not stored in the UI resource cache 320 . In an embodiment, the UI render module 340 may render a UI page by loading a UI element.

일 실시 예에서, UI 렌더 모듈(340)은, 현재 UI 페이지를 표시하기 위한 이미지를 렌더링하는데 필요한 UI 자원을 식별할 수 있다. 일 실시 예에서, UI 렌더 모듈(340)은, 식별한 필요 UI 자원을 데이터베이스(240)에게 요청할 수 있다. In an embodiment, the UI render module 340 may identify a UI resource required to render an image for displaying a current UI page. In an embodiment, the UI render module 340 may request the identified necessary UI resource from the database 240 .

일 실시 예에서, 데이터베이스(240)는, 필요 UI 자원 요청에 상응하는 UI 자원을 검색하고, 검색한 UI 자원을 UI 렌더 모듈(340)에게 제공할 수 있다. In an embodiment, the database 240 may search for a UI resource corresponding to a required UI resource request, and provide the searched UI resource to the UI render module 340 .

일 실시 예에서, UI 렌더 모듈(340)은, 변환한 UI 제어에 대한 정보, UI 자원 캐시(320)로부터 수신한 UI 자원, 및 데이터베이스(240)로부터 수신한 UI 자원에 기반하여, 현재 UI 페이지를 표시하기 위한 이미지를 렌더링할 수 있다. 일 실시 예에서, UI 렌더 모듈(340)은, 필요 UI 자원에 기반하여, UI 요소를 로드할 수 있다. 일 실시 예에서, UI 렌더 모듈(340)은, 기준 자원을 이용하여 로드한 UI 요소를 필요 UI 자원을 이용하여 다시 로드할 수 있다.In one embodiment, the UI render module 340, based on the information on the converted UI control, the UI resource received from the UI resource cache 320, and the UI resource received from the database 240, the current UI page An image to display can be rendered. In an embodiment, the UI render module 340 may load a UI element based on a required UI resource. In an embodiment, the UI render module 340 may reload a UI element loaded using a reference resource using a necessary UI resource.

도 8을 참조하면, 가상화 서버(110)의 운영 체제(OS)에 상응하는 현재 UI 페이지(801)는, 전자 장치(120)의 운영 체제(OS)에 상응하는 현재 UI 페이지(802)로 변환될 수 있다. Referring to FIG. 8 , the current UI page 801 corresponding to the operating system (OS) of the virtualization server 110 is converted into the current UI page 802 corresponding to the operating system (OS) of the electronic device 120 . can be

일 실시 예에서, UI 페이지(801)의 UI 요소(810)는, UI 페이지(802)의 UI 요소(850)로 변환될 수 있다. 일 실시 예에서, UI 페이지(801)의 UI 요소들(811 내지 814)은, UI 페이지(802)의 UI 요소들(851 내지 854)로 각각 변환될 수 있다. 일 실시 예에서, UI 페이지(801)의 UI 요소(815)에 대응하는 UI 요소는, UI 페이지(802)의 UI 요소(854)의 하단에 숨겨진 상태로 포함될 수 있다. 일 실시 예에서, UI 페이지(802)에는 스크롤 가능한 UI 요소(870)가 새롭게 포함될 수 있다. 일 실시 예에서, UI 요소(870)에 대한 스크롤 입력을 통해, UI 페이지(802)의 UI 요소(814)의 하단에 숨겨진 상태로 포함된 UI 요소가 표시될 수 있다.In an embodiment, the UI element 810 of the UI page 801 may be converted into a UI element 850 of the UI page 802 . In an embodiment, UI elements 811 to 814 of the UI page 801 may be converted into UI elements 851 to 854 of the UI page 802 , respectively. In an embodiment, a UI element corresponding to the UI element 815 of the UI page 801 may be included in a hidden state at the bottom of the UI element 854 of the UI page 802 . In an embodiment, the UI page 802 may newly include a scrollable UI element 870 . In an embodiment, a UI element included in a hidden state at the bottom of the UI element 814 of the UI page 802 may be displayed through a scroll input for the UI element 870 .

일 실시 예에서, UI 페이지(801)의 UI 요소(820 내지 824)는, UI 페이지(802)에서는 생략될 수 있다. 일 실시 예에서, UI 페이지(801)의 UI 요소(830 내지 834)는, UI 페이지(802)의 UI 요소들(860 내지 864)로 각각 변환될 수 있다.In an embodiment, UI elements 820 to 824 of the UI page 801 may be omitted from the UI page 802 . In an embodiment, UI elements 830 to 834 of the UI page 801 may be converted into UI elements 860 to 864 of the UI page 802 , respectively.

일 실시 예에서, UI 렌더 모듈(340)은, 데이터베이스(240)로부터 수신한 필요 UI 자원을 UI 자원 캐시(320)에게 제공할 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 필요 UI 자원을 저장(캐싱)할 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 필요 UI 자원을 저장(캐싱)한 후 저장한 UI 자원들에 대한 캐시 정책을 갱신할 수 있다.In an embodiment, the UI render module 340 may provide the necessary UI resources received from the database 240 to the UI resource cache 320 . In an embodiment, the UI resource cache 320 may store (caching) necessary UI resources. In an embodiment, the UI resource cache 320 may update the cache policy for the stored UI resources after storing (caching) the necessary UI resources.

일 실시 예에서, 입력 신호 송신 모듈(360)은, 입력 장치(125), 및/또는 표시 장치(124)를 통해 입력을 식별할 수 있다. In an embodiment, the input signal transmission module 360 may identify an input through the input device 125 and/or the display device 124 .

일 실시 예에서, 입력 신호 송신 모듈(360)은, 식별한 입력을 메타 UI 제어로 변환할 수 있다. In an embodiment, the input signal transmission module 360 may convert the identified input into meta UI control.

일 실시 예에서, 입력 신호 송신 모듈(360)은, 변환한 메타 제어 정보를 가상화 서버(110)에게 제공할 수 있다. 일 실시 예에서, 가상화 서버(110)는, 변환한 메타 제어 정보에 기반하여, 기능(예: 어플리케이션 구동, UI 요소에 대한 입력 처리)을 수행할 수 있다.In an embodiment, the input signal transmission module 360 may provide the converted meta control information to the virtualization server 110 . In an embodiment, the virtualization server 110 may perform a function (eg, driving an application, processing an input for UI elements) based on the converted meta control information.

도 9는 일 실시 예에 따른 가상화 서버(110)에서 어플리케이션(114)을 설치하는 동작을 예시하는 흐름도이다. 9 is a flowchart illustrating an operation of installing the application 114 in the virtualization server 110 according to an embodiment.

도 9를 참조하면, 동작 910에서, 가상화 서버(110)의 어플리케이션 설치 모듈(210)은, 외부 전자 장치(미도시)로부터 어플리케이션(114)에 대한 데이터를 수신할 수 있다.Referring to FIG. 9 , in operation 910 , the application installation module 210 of the virtualization server 110 may receive data for the application 114 from an external electronic device (not shown).

도 9를 참조하면, 동작 920에서, 어플리케이션 설치 모듈(210)은, 어플리케이션(114)에 대한 데이터에 기반하여, 어플리케이션(114)을 가상화 서버(110)에 설치할 수 있다. Referring to FIG. 9 , in operation 920 , the application installation module 210 may install the application 114 in the virtualization server 110 based on data on the application 114 .

도 9를 참조하면, 동작 930에서, 어플리케이션 설치 모듈(210)은, 설치된 어플리케이션(114)에 대한 데이터(예: 이진 데이터)를 어플리케이션 UI 요소 분석 모듈(220)에 송신할 수 있다. 일 실시 예에서, 어플리케이션 설치 모듈(210)은, 설치된 어플리케이션(114)에 대한 이진 데이터가 저장되어 있는 메모리(113) 상의 영역에 대한 정보를, 어플리케이션 UI 요소 분석 모듈(220)에게 송신할 수 있다.Referring to FIG. 9 , in operation 930 , the application installation module 210 may transmit data (eg, binary data) on the installed application 114 to the application UI element analysis module 220 . In an embodiment, the application installation module 210 may transmit information about an area on the memory 113 in which binary data for the installed application 114 is stored to the application UI element analysis module 220 . .

도 9를 참조하면, 동작 940에서, 어플리케이션 UI 요소 분석 모듈(220)은, 이진 데이터에 기반하여, 어플리케이션(114)의 UI 자원, 및/또는 UI 자원에 대한 정보를 추출 및/또는 식별할 수 있다. 일 실시 예에서, UI 자원은, 이미지, 동영상, 음원, 텍스트, 또는 이들의 조합을 포함할 수 있다. 일 실시 예에서, UI 자원에 대한 정보는, UI 자원의 식별자(예: 파일명), 레이아웃 정보, 또는 이들의 조합을 포함할 수 있다. Referring to FIG. 9 , in operation 940 , the application UI element analysis module 220 may extract and/or identify information about a UI resource and/or UI resource of the application 114 based on the binary data. there is. In an embodiment, the UI resource may include an image, a video, a sound source, text, or a combination thereof. In an embodiment, the information about the UI resource may include an identifier (eg, a file name) of the UI resource, layout information, or a combination thereof.

도 9를 참조하면, 동작 950에서, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지, 및 UI 자원을 분석할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 어플리케이션(114)의 UI 페이지들 각각에 이용되는 UI 자원을 식별할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 어플리케이션(114)의 UI 페이지를 구성하는 적어도 하나의 UI 요소들 각각에 이용되는 UI 자원을 식별할 수 있다.Referring to FIG. 9 , in operation 950 , the application UI element analysis module 220 may analyze a UI page and a UI resource. In an embodiment, the application UI element analysis module 220 may identify UI resources used for each of the UI pages of the application 114 . In an embodiment, the application UI element analysis module 220 may identify a UI resource used for each of at least one UI element constituting the UI page of the application 114 .

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 어플리케이션(114)의 구동 시 생성되는 다수의 UI 페이지들 각각에 포함되는 UI 요소들을 식별할 수 있다. 예를 들어, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지(401)에 포함되는 UI 요소들(410 내지 413, 및 420 내지 426)을 식별할 수 있다. In an embodiment, the application UI element analysis module 220 may identify UI elements included in each of a plurality of UI pages generated when the application 114 is driven. For example, the application UI element analysis module 220 may identify UI elements 410 to 413 and 420 to 426 included in the UI page 401 .

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 어플리케이션(114)의 다수의 UI 페이지들 각각에 포함되는 UI 요소들 중 제어 가능하도록 설정된 UI 요소를 식별할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소에 대응하는 기능을 실행할 수 있다. 일 실시 예에서, isClickable, isLongClickable, isScrollable, 또는 isFocusable 중 적어도 하나의 개체가 true로 설정된 UI 요소는 제어 가능하도록 설정된 UI 요소로 식별될 수 있다.In an embodiment, the application UI element analysis module 220 may identify a controllable UI element among UI elements included in each of a plurality of UI pages of the application 114 . In an embodiment, the application UI element analysis module 220 may execute a function corresponding to a UI element set to be controllable. In an embodiment, a UI element in which at least one of isClickable, isLongClickable, isScrollable, and isFocusable is set to true may be identified as a controllable UI element.

예를 들어, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지(401)에 포함되는 UI 요소들(410 내지 413, 및 420 내지 426) 중 적어도 하나의 UI 요소들(410 내지 413, 및 423 내지 426)을 제어 가능하도록 설정된 UI 요소로 식별할 수 있다. For example, the application UI element analysis module 220 may include at least one UI element 410 to 413 and 423 to 423 of the UI elements 410 to 413 and 420 to 426 included in the UI page 401 . 426) can be identified as a UI element set to be controllable.

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소들 각각에 대응하는 기능(예: 클릭, 롱 클릭, 스크롤, 또는 포커스)을 실행할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소에 대응하는 기능을 실행함으로써, 어플리케이션(114)의 UI 페이지의 전환을 식별할 수 있다. 예를 들어, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소들(410 내지 413, 및 423 내지 426) 각각에 대응하는 기능(예: 클릭)을 실행할 수 있다. 예를 들어, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소(424)에 대응하는 기능(예: 클릭)을 실행함으로써, 어플리케이션(114)의 UI 페이지(401)에서 어플리케이션(114)의 UI 페이지(402)로 전환됨을 식별할 수 있다. In an embodiment, the application UI element analysis module 220 may execute a function (eg, click, long click, scroll, or focus) corresponding to each of the UI elements set to be controllable. In an embodiment, the application UI element analysis module 220 may identify the conversion of the UI page of the application 114 by executing a function corresponding to the UI element set to be controllable. For example, the application UI element analysis module 220 may execute a function (eg, click) corresponding to each of the UI elements 410 to 413 and 423 to 426 set to be controllable. For example, the application UI element analysis module 220 executes a function (eg, click) corresponding to the UI element 424 set to be controllable, so that the application 114 is displayed on the UI page 401 of the application 114 . ) of the UI page 402 can be identified.

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, 제어 가능하도록 설정된 UI 요소에 대응하는 기능의 실행 결과로 획득되는 정보에 기반하여, UI 페이지들 간의 연결 관계를 식별할 수 있다.In an embodiment, the application UI element analysis module 220 may identify a connection relationship between UI pages based on information obtained as a result of executing a function corresponding to a UI element set to be controllable.

도 9를 참조하면, 동작 960에서, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지 맵을 구성할 수 있다. 일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지들 간의 연결 관계에 기반하여, UI 페이지 맵을 구성할 수 있다. 일 실시 예에서, UI 페이지 맵은, 어플리케이션(114)의 다수의 UI 페이지들 각각의 UI 페이지 연결 관계를 나타낼 수 있다. Referring to FIG. 9 , in operation 960 , the application UI element analysis module 220 may configure a UI page map. In an embodiment, the application UI element analysis module 220 may configure a UI page map based on a connection relationship between UI pages. In an embodiment, the UI page map may indicate a UI page connection relationship of each of a plurality of UI pages of the application 114 .

도 9를 참조하면, 동작 970에서, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지, 및 UI 자원 정보를 메타 UI 자원 생성 모듈(230)에게 제공할 수 있다. 일 실시 예에서, UI 페이지, 및 UI 자원 정보는, UI 페이지들 각각에 이용되는 UI 자원에 대한 정보, UI 페이지 맵을 나타내는 정보, 또는 이들의 조합을 포함할 수 있다. Referring to FIG. 9 , in operation 970 , the application UI element analysis module 220 may provide a UI page and UI resource information to the meta UI resource generation module 230 . In an embodiment, the UI page and the UI resource information may include information on a UI resource used in each of the UI pages, information indicating a UI page map, or a combination thereof.

일 실시 예에서, 어플리케이션 UI 요소 분석 모듈(220)은, UI 페이지, 및 UI 자원 정보를 메모리(113)의 데이터베이스(240)에 송신할 수 있다. 일 실시 예에서, 데이터베이스(240)는, UI 페이지, 및 UI 자원 정보를 저장할 수 있다.In an embodiment, the application UI element analysis module 220 may transmit the UI page and UI resource information to the database 240 of the memory 113 . In an embodiment, the database 240 may store UI pages and UI resource information.

도 9를 참조하면, 동작 980에서, 메타 UI 자원 생성 모듈(230)은, UI 페이지, 및 UI 자원 정보에 기반하여, 메타 UI 자원을 생성할 수 있다. 일 실시 예에서, 메타 UI 자원은, 가상 어플리케이션 서비스를 이용하는 전자 장치의 장치 환경(예: 전자 장치의 해상도, 오디오 채널의 개수)에 상응하여 UI 자원을 제공하기 위해 생성되는 UI 자원일 수 있다. Referring to FIG. 9 , in operation 980 , the meta UI resource generation module 230 may generate a meta UI resource based on a UI page and UI resource information. In an embodiment, the meta UI resource may be a UI resource generated to provide a UI resource corresponding to a device environment (eg, a resolution of the electronic device and the number of audio channels) of an electronic device using a virtual application service.

일 실시 예에서, 메타 UI 자원 생성 모듈(230)은, 미리 지정된 해상도(예: 1920x1080)에 기반한 이미지, 또는 동영상 형태의 UI 자원을 다른 해상도(예: 1280x720, 또는 640x480)에 기반한 데이터로 변환함으로써, 메타 UI 자원을 생성할 수 있다. 일 실시 예에서, 메타 UI 자원의 해상도는, UI 자원의 미리 지정된 해상도보다 낮을 수 있다.In an embodiment, the meta UI resource generation module 230 converts a UI resource in the form of an image or video based on a predefined resolution (eg, 1920x1080) into data based on another resolution (eg, 1280x720, or 640x480). , can create meta UI resources. In an embodiment, the resolution of the meta UI resource may be lower than a predefined resolution of the UI resource.

일 실시 예에서, 메타 UI 자원 생성 모듈(230)은, 어플리케이션(114)의 미리 지정된 오디오 채널(예: 5.1 채널)에 기반한 오디오 형태의 UI 자원을 다른 오디오 채널(예: 2.1 채널, 스테레오, 또는 모노)에 기반한 데이터로 변환함으로써, 메타 UI 자원을 생성할 수 있다. 일 실시 예에서, 메타 UI 자원이 출력 가능한 오디오 채널의 개수는, UI 자원이 출력 가능한 오디오 채널의 개수보다 적을 수 있다.In an embodiment, the meta UI resource generation module 230 may convert an audio type UI resource based on a pre-specified audio channel (eg, 5.1 channel) of the application 114 to another audio channel (eg, 2.1 channel, stereo, or By converting data based on mono), meta UI resources can be created. In an embodiment, the number of audio channels outputable by the meta UI resource may be less than the number of audio channels outputable by the UI resource.

도 9를 참조하면, 동작 990에서, 메타 UI 자원 생성 모듈(230)은, 생성한 메타 UI 자원을 메모리(113)의 데이터베이스(240)에 송신할 수 있다. 도 9를 참조하면, 동작 995에서, 데이터베이스(240)는, 메타 UI 자원을 저장할 수 있다.Referring to FIG. 9 , in operation 990 , the meta UI resource generation module 230 may transmit the generated meta UI resource to the database 240 of the memory 113 . Referring to FIG. 9 , in operation 995 , the database 240 may store a meta UI resource.

도 10은 일 실시 예에 따른 가상화 서버(110)에서 어플리케이션(114)을 구동하기 위한 동작을 예시하는 흐름도이다. 10 is a flowchart illustrating an operation for driving the application 114 in the virtualization server 110 according to an embodiment.

도 10을 참조하면, 동작 1010에서, 전자 장치(120)의 어플리케이션 실행 모듈(370)은, 어플리케이션 실행 요청을 식별할 수 있다. 일 실시 예에서, 어플리케이션 실행 모듈(370)은, 입력 장치(125), 및/또는 표시 장치(124)의 터치 센서를 통해 식별되는 입력에 기반하여, 어플리케이션(114)에 대한 실행 요청을 식별할 수 있다.Referring to FIG. 10 , in operation 1010 , the application execution module 370 of the electronic device 120 may identify an application execution request. In an embodiment, the application execution module 370 may identify an execution request for the application 114 based on an input identified through a touch sensor of the input device 125 and/or the display device 124 . can

도 10을 참조하면, 동작 1020에서, 어플리케이션 실행 모듈(370)은, 가상화 서버(110)의 인증 모듈(295)에게 가상 어플리케이션 서비스 사용 요청을 송신할 수 있다. 일 실시 예에서, 가상 어플리케이션 서비스 사용 요청에는 사용자의 식별 정보가 포함될 수 있다. 일 실시 예에서, 가상 어플리케이션 서비스 사용 요청에는 전자 장치(120)의 장치 환경(예: 해상도, 오디오 채널의 개수)에 대한 정보가 포함될 수 있다.Referring to FIG. 10 , in operation 1020 , the application execution module 370 may transmit a virtual application service use request to the authentication module 295 of the virtualization server 110 . According to an embodiment, the virtual application service use request may include user identification information. According to an embodiment, the virtual application service use request may include information on the device environment (eg, resolution, number of audio channels) of the electronic device 120 .

도 10을 참조하면, 동작 1030에서, 인증 모듈(295)은, 가상 어플리케이션 서비스 사용 요청에 응답하여, 전자 장치(120)의 사용자를 인증할 수 있다. 일 실시 예에서, 인증 모듈(295)은, 사용자의 식별 정보에 기반하여, 전자 장치(120)의 사용자를 인증할 수 있다.Referring to FIG. 10 , in operation 1030 , the authentication module 295 may authenticate the user of the electronic device 120 in response to the virtual application service use request. In an embodiment, the authentication module 295 may authenticate the user of the electronic device 120 based on the user's identification information.

도 10을 참조하면, 동작 1040에서, 인증 모듈(295)은, 사용자가 인증되면, 인증된 사용자의 권한을 식별할 수 있다. 일 실시 예에서, 인증 모듈(295)은, 서비스 가능한 가상 어플리케이션들 중 사용자의 권한에 부합하는 가상 어플리케이션들을 식별할 수 있다. 일 실시 예에서, 인증 모듈(295)은, 식별된 사용자의 권한에 부합하는 가상 어플리케이션들을 이용하기 위한 토큰을 생성할 수 있다.Referring to FIG. 10 , in operation 1040 , when the user is authenticated, the authentication module 295 may identify the authorized user's authority. In an embodiment, the authentication module 295 may identify virtual applications that meet the user's authority from among the serviceable virtual applications. In an embodiment, the authentication module 295 may generate a token for using virtual applications that match the identified user's authority.

도 10을 참조하면, 동작 1050에서, 인증 모듈(295)은, 어플리케이션 실행 모듈(370)에게 토큰을 송신할 수 있다. 일 실시 예에서, 인증 모듈(295)은, 어플리케이션 실행 모듈(370)에게 사용자의 권한에 상응하는 가상 어플리케이션들에 대한 정보를 송신할 수 있다.Referring to FIG. 10 , in operation 1050 , the authentication module 295 may transmit a token to the application execution module 370 . In an embodiment, the authentication module 295 may transmit information about virtual applications corresponding to the user's authority to the application execution module 370 .

도 10을 참조하면, 동작 1060에서, 어플리케이션 실행 모듈(370)은, 어플리케이션 구동 모듈(260)에게 어플리케이션 구동을 요청할 수 있다. 일 실시 예에서, 어플리케이션 구동 요청은, 토큰, 또는 어플리케이션(114)의 식별 정보를 포함할 수 있다.Referring to FIG. 10 , in operation 1060 , the application execution module 370 may request the application driving module 260 to drive the application. In an embodiment, the application driving request may include a token or identification information of the application 114 .

도 10을 참조하면, 동작 1070에서, 어플리케이션 구동 모듈(260)은, 어플리케이션 구동 요청에 응답하여, 어플리케이션(114)을 구동할 수 있다. 일 실시 예에서, 어플리케이션 구동 모듈(260)은, 전자 장치(120)의 장치 환경에 대응하는 UI 자원 정보에 기반하여, 어플리케이션(114)을 구동할 수 있다.Referring to FIG. 10 , in operation 1070 , the application driving module 260 may drive the application 114 in response to the application driving request. In an embodiment, the application driving module 260 may drive the application 114 based on UI resource information corresponding to the device environment of the electronic device 120 .

도 11은 일 실시 예에 따른 가상화 서버(110)에서 어플리케이션(114)에 대한 UI 분석을 초기화하기 위한 동작을 예시하는 흐름도이다. 일 실시 예에서, 도 11의 동작들은, 도 10의 동작 1060 이후에 수행될 수 있다. 일 실시 예에서, 도 11의 동작들은, 도 10의 동작 1070과 병렬적으로 수행될 수 있다.11 is a flowchart illustrating an operation for initializing UI analysis for the application 114 in the virtualization server 110 according to an embodiment. In an embodiment, the operations of FIG. 11 may be performed after operation 1060 of FIG. 10 . In an embodiment, the operations of FIG. 11 may be performed in parallel with operation 1070 of FIG. 10 .

도 11을 참조하면, 동작 1110에서, 어플리케이션 구동 모듈(260)은, 실시간 UI 분석 모듈(270)에게 UI 분석 초기화를 요청할 수 있다. 일 실시 예에서, 어플리케이션 구동 모듈(260)은, 동작 1060의 어플리케이션 구동 요청에 응답하여, 실시간 UI 분석 모듈(270)에게 UI 분석 초기화를 요청할 수 있다.Referring to FIG. 11 , in operation 1110 , the application driving module 260 may request the real-time UI analysis module 270 to initialize UI analysis. In an embodiment, the application driving module 260 may request UI analysis initialization from the real-time UI analysis module 270 in response to the application driving request in operation 1060 .

도 11을 참조하면, 동작 1120에서, 실시간 UI 분석 모듈(270)은, UI 페이지 상태 머신(280)에게 UI 페이지 상태 초기화를 요청할 수 있다. 일 실시 예에서, 실시간 UI 분석 모듈(270)은, UI 분석 초기화 요청에 응답하여, UI 페이지 상태 머신(280)에게 UI 페이지 상태 초기화를 요청할 수 있다.Referring to FIG. 11 , in operation 1120 , the real-time UI analysis module 270 may request the UI page state machine 280 to initialize the UI page state. In an embodiment, the real-time UI analysis module 270 may request UI page state initialization from the UI page state machine 280 in response to the UI analysis initialization request.

도 11을 참조하면, 동작 1131에서, UI 페이지 상태 머신(280)은, 데이터베이스(240)에게 어플리케이션(114)의 UI 페이지 맵을 요청할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, UI 페이지 상태 초기화 요청에 응답하여, 데이터베이스(240)에게 UI 페이지 맵을 요청할 수 있다.Referring to FIG. 11 , in operation 1131 , the UI page state machine 280 may request a UI page map of the application 114 from the database 240 . In one embodiment, the UI page state machine 280 may request the UI page map from the database 240 in response to the UI page state initialization request.

도 11을 참조하면, 동작 1135에서, 데이터베이스(240)는, 어플리케이션(114)에 대한 UI 페이지 맵을 검색할 수 있다. 일 실시 예에서, 데이터베이스(240)는, UI 페이지 맵 요청에 응답하여, 어플리케이션(114)에 대한 UI 페이지 맵을 검색할 수 있다.Referring to FIG. 11 , in operation 1135 , the database 240 may search for a UI page map for the application 114 . In an embodiment, the database 240 may retrieve the UI page map for the application 114 in response to the UI page map request.

도 11을 참조하면, 동작 1139에서, 데이터베이스(240)는, 어플리케이션(114)에 대해 검색한 UI 페이지 맵을 UI 페이지 상태 머신(280)에게 송신할 수 있다.Referring to FIG. 11 , in operation 1139 , the database 240 may transmit the UI page map retrieved for the application 114 to the UI page state machine 280 .

도 11을 참조하면, 동작 1140에서, UI 페이지 상태 머신(280)은, UI 페이지 맵에 기반하여 상태 머신을 구성할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, UI 페이지 맵에 기반하여, 다수의 상태들 각각이 다수의 UI 페이지들 각각을 나타내도록, 상태 머신을 구성할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, UI 페이지 맵에 기반하여, 다수의 상태들 각각의 연결 관계를 구성할 수 있다. Referring to FIG. 11 , in operation 1140 , the UI page state machine 280 may configure the state machine based on the UI page map. In one embodiment, the UI page state machine 280 may configure the state machine such that each of the plurality of states represents each of the plurality of UI pages, based on the UI page map. In an embodiment, the UI page state machine 280 may configure a connection relationship of each of a plurality of states based on the UI page map.

도 11을 참조하면, 동작 1145에서, UI 페이지 상태 머신(280)은, 실시간 UI 분석 모듈(270)에게 초기화 완료를 송신할 수 있다.Referring to FIG. 11 , in operation 1145 , the UI page state machine 280 may transmit an initialization completion to the real-time UI analysis module 270 .

도 11을 참조하면, 동작 1151에서, 실시간 UI 분석 모듈(270)은, 데이터베이스(240)에게 어플리케이션(114)의 UI 자원 정보를 요청할 수 있다. Referring to FIG. 11 , in operation 1151 , the real-time UI analysis module 270 may request UI resource information of the application 114 from the database 240 .

도 11을 참조하면, 동작 1155에서, 데이터베이스(240)는, 어플리케이션(114)의 UI 자원 정보를 검색할 수 있다. 일 실시 예에서, 데이터베이스(240)는, UI 자원 정보 요청에 응답하여, 어플리케이션(114)의 UI 자원 정보를 검색할 수 있다.Referring to FIG. 11 , in operation 1155 , the database 240 may search UI resource information of the application 114 . In an embodiment, the database 240 may search UI resource information of the application 114 in response to the UI resource information request.

도 11을 참조하면, 동작 1159에서, 데이터베이스(240)는, 어플리케이션(114)에 대해 검색한 UI 자원 정보를 실시간 UI 분석 모듈(270)에게 송신할 수 있다.Referring to FIG. 11 , in operation 1159 , the database 240 may transmit UI resource information searched for for the application 114 to the real-time UI analysis module 270 .

도 11을 참조하면, 동작 1160에서, 실시간 UI 분석 모듈(270)은, 어플리케이션 구동 모듈(260)에게 초기화 완료를 송신할 수 있다. 일 실시 예에서, 실시간 UI 분석 모듈(270)은, UI 페이지 상태 머신(280)의 초기화, 및 실시간 UI 분석 모듈(270)의 초기화가 모두 완료되면, 어플리케이션 구동 모듈(260)에게 초기화 완료를 송신할 수 있다.Referring to FIG. 11 , in operation 1160 , the real-time UI analysis module 270 may transmit initialization completion to the application driving module 260 . In an embodiment, the real-time UI analysis module 270 transmits the initialization completion to the application driving module 260 when the initialization of the UI page state machine 280 and the initialization of the real-time UI analysis module 270 are all completed. can do.

일 실시 예에서, 동작 1120 내지 1145는, 동작 1151 내지 1159와 병렬적으로 처리될 수 있다. 일 실시 예에서, 동작 1151 내지 1159는 동작 1120 내지 1145보다 먼저 처리될 수 있다. In an embodiment, operations 1120 to 1145 may be processed in parallel with operations 1151 to 1159. In an embodiment, operations 1151 to 1159 may be processed before operations 1120 to 1145.

도 12는 일 실시 예에 따른 가상화 서버(110)에서 어플리케이션(114)의 현재 UI 페이지를 식별하는 동작을 예시하는 흐름도이다. 일 실시 예에서, 도 12의 동작들은, 도 10의 동작 1070에 포함될 수 있다.12 is a flowchart illustrating an operation of identifying a current UI page of the application 114 in the virtualization server 110 according to an embodiment. According to an embodiment, the operations of FIG. 12 may be included in operation 1070 of FIG. 10 .

도 12를 참조하면, 동작 1210에서, 어플리케이션 구동 모듈(260)은, UI 변경을 식별할 수 있다. 일 실시 예에서, UI 변경은, 현재 UI 페이지가 다른 UI 페이지로 변경되는 것일 수 있다. 일 실시 예에서, 현재 UI 페이지는, 어플리케이션(114)의 실행 결과에 대응하는 이미지를 렌더링하기 위한 UI 페이지일 수 있다.Referring to FIG. 12 , in operation 1210 , the application driving module 260 may identify a UI change. According to an embodiment, the UI change may be that the current UI page is changed to another UI page. In an embodiment, the current UI page may be a UI page for rendering an image corresponding to the execution result of the application 114 .

도 12를 참조하면, 동작 1220에서, 어플리케이션 구동 모듈(260)은, UI 변경이 식별되면, 실시간 UI 분석 모듈(270)에게 UI 변경 이벤트를 송신할 수 있다.Referring to FIG. 12 , in operation 1220 , when a UI change is identified, the application driving module 260 may transmit a UI change event to the real-time UI analysis module 270 .

도 12를 참조하면, 동작 1231에서, 실시간 UI 분석 모듈(270)은, UI 변경 이벤트가 식별되면, 어플리케이션 구동 모듈(260)에게 현재 UI 요소를 요청할 수 있다.Referring to FIG. 12 , in operation 1231 , when a UI change event is identified, the real-time UI analysis module 270 may request a current UI element from the application driving module 260 .

도 12를 참조하면, 동작 1235에서, 어플리케이션 구동 모듈(260)은, 현재 UI 요소 요청에 응답하여, 현재 UI 페이지에 포함된 UI 요소들을 식별할 수 있다. 일 실시 예에서, 현재 UI 페이지에 포함된 UI 요소는 현재 UI 요소로 지칭될 수 있다.Referring to FIG. 12 , in operation 1235 , the application driving module 260 may identify UI elements included in the current UI page in response to the current UI element request. In an embodiment, a UI element included in the current UI page may be referred to as a current UI element.

도 12를 참조하면, 동작 1239에서, 어플리케이션 구동 모듈(260)은, 식별한 현재 UI 요소들을 실시간 UI 분석 모듈(270)에게 송신할 수 있다. Referring to FIG. 12 , in operation 1239 , the application driving module 260 may transmit the identified current UI elements to the real-time UI analysis module 270 .

도 12를 참조하면, 동작 1240에서, 실시간 UI 분석 모듈(270)은, 현재 UI 요소들을 파싱할 수 있다. 일 실시 예에서, 실시간 UI 분석 모듈(270)은, 현재 UI 요소들을 파싱함으로써, 현재 UI 요소들 각각에 포함된 UI 자원들을 식별할 수 있다.Referring to FIG. 12 , in operation 1240 , the real-time UI analysis module 270 may parse current UI elements. In an embodiment, the real-time UI analysis module 270 may identify UI resources included in each of the current UI elements by parsing the current UI elements.

도 12를 참조하면, 동작 1250에서, 실시간 UI 분석 모듈(270)은, 현재 UI 페이지에 포함된 UI 자원들과, 어플리케이션(114)의 다수의 페이지들 각각에 포함된 UI 자원들을 비교할 수 있다. 일 실시 예에서, 실시간 UI 분석 모듈(270)은, 어플리케이션(114)의 UI 자원 정보에 기반하여, 현재 UI 페이지에 포함된 UI 자원들과, 어플리케이션(114)의 다수의 페이지들 각각에 포함된 UI 자원들을 비교할 수 있다.Referring to FIG. 12 , in operation 1250 , the real-time UI analysis module 270 may compare UI resources included in the current UI page with UI resources included in each of a plurality of pages of the application 114 . In one embodiment, the real-time UI analysis module 270, based on the UI resource information of the application 114, the UI resources included in the current UI page, and each of the plurality of pages of the application 114. UI resources can be compared.

도 12를 참조하면, 동작 1260에서, 실시간 UI 분석 모듈(270)은, 비교 결과에 기반하여, 현재 UI 페이지를 식별할 수 있다. 일 실시 예에서, 실시간 UI 분석 모듈(270)은, 어플리케이션(114)의 다수의 페이지들 중 동작 1240에서 식별한 UI 자원들에 가장 많이 매칭되는 UI 자원들을 포함하는 UI 페이지를 현재 UI 페이지로 식별할 수 있다. Referring to FIG. 12 , in operation 1260 , the real-time UI analysis module 270 may identify a current UI page based on the comparison result. In an embodiment, the real-time UI analysis module 270 identifies, as a current UI page, a UI page including UI resources that most match the UI resources identified in operation 1240 among a plurality of pages of the application 114 . can do.

일 실시 예에서, 실시간 UI 분석 모듈(270)은, 어플리케이션 구동 모듈(260)에서 구동 중인 어플리케이션(114)의 현재 UI 페이지를 식별할 수 있다.In an embodiment, the real-time UI analysis module 270 may identify a current UI page of the application 114 being driven by the application driving module 260 .

도 13은 일 실시 예에 따른 전자 장치(120)에서 어플리케이션(114)의 현재 UI 페이지에 따른 프리페치 동작을 예시하는 흐름도이다. 13 is a flowchart illustrating a prefetch operation according to a current UI page of an application 114 in the electronic device 120 according to an embodiment.

도 13을 참조하면, 동작 1310에서, 실시간 UI 분석 모듈(270)은, 어플리케이션(114)의 현재 UI 페이지를 식별할 수 있다. 일 실시 예에서, 동작 1310은 도 12의 동작 1260에 대응할 수 있다. Referring to FIG. 13 , in operation 1310 , the real-time UI analysis module 270 may identify a current UI page of the application 114 . According to an embodiment, operation 1310 may correspond to operation 1260 of FIG. 12 .

도 13을 참조하면, 동작 1321에서, 실시간 UI 분석 모듈(270)은, UI 페이지 상태 머신(280)에게 이동 가능한 다음 UI 페이지에 대한 정보를 요청할 수 있다.Referring to FIG. 13 , in operation 1321 , the real-time UI analysis module 270 may request information on the next moveable UI page from the UI page state machine 280 .

도 13을 참조하면, 동작 1325에서, UI 페이지 상태 머신(280)은, 현재 UI 페이지에서 이동 가능한 다음 UI 페이지에 대한 정보를 식별할 수 있다. 일 실시 예에서, UI 페이지 상태 머신(280)은, 상태(state)를 현재 UI 페이지로 전이시킨 후 전이된 현재 UI 페이지에서 이동 가능하도록 설정된 UI 페이지들에 대한 정보를 식별할 수 있다.Referring to FIG. 13 , in operation 1325 , the UI page state machine 280 may identify information on the next UI page that can be moved from the current UI page. In an embodiment, the UI page state machine 280 may identify information about UI pages set to be movable in the transitioned current UI page after transitioning the state to the current UI page.

도 13을 참조하면, 동작 1329에서, UI 페이지 상태 머신(280)은, 실시간 UI 분석 모듈(270)에게 이동 가능한 다음 UI 페이지에 대한 정보를 송신할 수 있다.Referring to FIG. 13 , in operation 1329 , the UI page state machine 280 may transmit information on the next moveable UI page to the real-time UI analysis module 270 .

도 13을 참조하면, 동작 1330에서, 실시간 UI 분석 모듈(270)은, 전자 장치(120)의 UI 자원 프리페치 모듈(310)에게 현재 UI 페이지 정보, 및/또는 이동 가능한 다음 UI 페이지 정보를 송신할 수 있다. 일 실시 예에서, 현재 UI 페이지 정보, 및/또는 이동 가능한 다음 UI 페이지 정보는, 해당 UI 페이지를 렌더링하기 위해 필요한 UI 자원들에 대한 정보를 포함할 수 있다. 일 실시 예에서, 페이지 정보는, 전자 장치(120)의 장치 성능을 나타내는 정보에 기반하여 생성될 수 있다. 일 실시 예에서, 페이지 정보는, 상기 전자 장치(120)에서 상기 페이지 정보에 대응하는 페이지를 표시하기 위한 UI 자원들에 대한 정보를 포함할 수 있다. 일 실시 예에서, 상기 페이지 정보에 대응하는 페이지를 표시하기 위한 상기 UI 자원들에 대한 정보는, 서로 다른 장치 성능들에 대응하는 UI 자원들 중 상기 전자 장치(120)의 장치 성능에 대응하는 UI 자원들에 대한 정보일 수 있다.Referring to FIG. 13 , in operation 1330 , the real-time UI analysis module 270 transmits current UI page information and/or moveable next UI page information to the UI resource prefetch module 310 of the electronic device 120 . can do. In an embodiment, the current UI page information and/or the moveable next UI page information may include information on UI resources required to render the corresponding UI page. In an embodiment, the page information may be generated based on information indicating device performance of the electronic device 120 . In an embodiment, the page information may include information on UI resources for displaying a page corresponding to the page information in the electronic device 120 . In an embodiment, the information on the UI resources for displaying a page corresponding to the page information may include a UI corresponding to the device capability of the electronic device 120 among UI resources corresponding to different device capabilities. It may be information about resources.

도 13을 참조하면, 동작 1341에서, UI 자원 프리페치 모듈(310)은, UI 자원 캐시(320)에게 저장된 캐시 정보를 요청할 수 있다. 일 실시 예에서, UI 자원 프리페치 모듈(310)은, 현재 UI 페이지 정보, 및/또는 이동 가능한 다음 UI 페이지 정보에 기반하여, UI 자원과 관련된 캐시 정보를 요청할 수 있다. Referring to FIG. 13 , in operation 1341 , the UI resource prefetch module 310 may request cache information stored in the UI resource cache 320 . In an embodiment, the UI resource prefetch module 310 may request cache information related to the UI resource based on the current UI page information and/or the next moveable UI page information.

도 13을 참조하면, 동작 1345에서, UI 자원 캐시(320)는, 저장된 캐시 정보를 검색할 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, UI 자원과 관련된 캐시 정보를 검색할 수 있다. 도 13을 참조하면, 동작 1349에서, UI 자원 캐시(320)는, 검색된 캐시 정보를 UI 자원 프리페치 모듈(310)에게 송신할 수 있다.Referring to FIG. 13 , in operation 1345 , the UI resource cache 320 may search for stored cache information. In an embodiment, the UI resource cache 320 may retrieve cache information related to the UI resource. Referring to FIG. 13 , in operation 1349 , the UI resource cache 320 may transmit the retrieved cache information to the UI resource prefetch module 310 .

도 13을 참조하면, 동작 1350에서, UI 자원 프리페치 모듈(310)은, 필요 UI 자원을 식별할 수 있다. 일 실시 예에서, UI 자원 프리페치 모듈(310)은, 현재 UI 페이지 정보, 및/또는 이동 가능한 다음 UI 페이지 정보에 기반하여, 필요 UI 자원을 식별할 수 있다. 일 실시 예에서, 필요 UI 자원은, 현재 UI 페이지 및/또는 이동 가능한 다음 UI 페이지를 렌더링하는데 이용되는 UI 자원들 중 UI 자원 캐시(320)에 저장되어 있지 않은 UI 자원을 지칭할 수 있다. 일 실시 예에서, 현재 UI 페이지 정보, 및/또는 이동 가능한 다음 UI 페이지 정보는, 해당 UI 페이지를 렌더링하기 위해 필요한 UI 자원들에 대한 정보를 포함할 수 있다.Referring to FIG. 13 , in operation 1350 , the UI resource prefetch module 310 may identify a required UI resource. In an embodiment, the UI resource prefetch module 310 may identify a necessary UI resource based on the current UI page information and/or the moveable next UI page information. In an embodiment, the required UI resource may refer to a UI resource that is not stored in the UI resource cache 320 among UI resources used to render the current UI page and/or the next moveable UI page. In an embodiment, the current UI page information and/or the moveable next UI page information may include information on UI resources required to render the corresponding UI page.

도 13을 참조하면, 동작 1361에서, UI 자원 프리페치 모듈(310)은, 가상화 서버(110)의 데이터베이스(240)에게 필요 UI 자원을 요청할 수 있다. 도 13을 참조하면, 동작 1365에서, 데이터베이스(240)는, 필요 UI 자원을 검색할 수 있다. 도 13을 참조하면, 동작 1369에서, 데이터베이스(240)는, 검색된 필요 UI 자원을 전자 장치(120)의 UI 자원 프리페치 모듈(310)에게 송신할 수 있다.Referring to FIG. 13 , in operation 1361 , the UI resource prefetch module 310 may request a necessary UI resource from the database 240 of the virtualization server 110 . Referring to FIG. 13 , in operation 1365 , the database 240 may search for a necessary UI resource. Referring to FIG. 13 , in operation 1369 , the database 240 may transmit the searched required UI resource to the UI resource prefetch module 310 of the electronic device 120 .

도 13을 참조하면, 동작 1370에서, UI 자원 프리페치 모듈(310)은, UI 자원 캐시(320)에게 수신한 필요 UI 자원에 대한 캐싱을 요청할 수 있다.Referring to FIG. 13 , in operation 1370 , the UI resource prefetch module 310 may request the UI resource cache 320 to cache the received necessary UI resource.

도 13을 참조하면, 동작 1380에서, UI 자원 캐시(320)는, 수신한 필요 UI 자원을 저장할 수 있다. 도 13을 참조하면, 동작 1390에서, UI 자원 캐시(320)는, 저장된 UI 자원들에 대한 캐시 정책을 갱신할 수 있다.Referring to FIG. 13 , in operation 1380 , the UI resource cache 320 may store the received necessary UI resource. Referring to FIG. 13 , in operation 1390 , the UI resource cache 320 may update a cache policy for stored UI resources.

일 실시 예에서, UI 자원 캐시(320)는, 어플리케이션(114)에 대해 지정된 용량에 대응하는 어플리케이션 데이터를 저장할 수 있다. 일 실시 예에서, 어플리케이션(114)에 대해 지정된 용량에 대응하는 어플리케이션 데이터가 저장되어 있는 경우, UI 자원 캐시(320)는, 캐시 정책에 기반하여 기존의 데이터를 삭제하고 새로운 데이터를 저장할 수 있다.In an embodiment, the UI resource cache 320 may store application data corresponding to a capacity specified for the application 114 . In an embodiment, when application data corresponding to the capacity specified for the application 114 is stored, the UI resource cache 320 may delete existing data and store new data based on the cache policy.

일 실시 예에서, UI 자원 캐시(320)는, 어플리케이션(114)이 임의의 페이지로 전환되면, 임의의 페이지에 포함되어 있는 UI 자원들에 대한 캐싱 기간을 미리 지정된 기간(예: 24시간)으로 설정할 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 캐싱 기간이 만료된 UI 자원들을 UI 자원 캐시(320)에서 삭제할 수 있다. In one embodiment, the UI resource cache 320, when the application 114 is switched to an arbitrary page, the caching period for UI resources included in the arbitrary page to a predetermined period (eg, 24 hours) can be set. In an embodiment, the UI resource cache 320 may delete UI resources whose caching period has expired from the UI resource cache 320 .

일 실시 예에서, UI 자원 캐시(320)는, 어플리케이션(114)이 임의 페이지로 전환되면, 페이지 이동 카운트 값과, 임의 페이지에 포함되어 있는 UI 자원들에 대한 이동 카운트 값을 1 증가시킬 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 페이지 이동 카운트 값으로부터 미리 지정한 값(예: 50) 이상 낮은 이동 카운트 값을 가지는 UI 자원들을 UI 자원 캐시(320)에서 삭제할 수 있다.In an embodiment, the UI resource cache 320 may increase the page movement count value and the movement count value for UI resources included in the arbitrary page by 1 when the application 114 is switched to a certain page. . In an embodiment, the UI resource cache 320 may delete UI resources having a movement count value lower than or equal to a predetermined value (eg, 50) from the page movement count value from the UI resource cache 320 .

일 실시 예에서, UI 자원 캐시(320)는, 어플리케이션(114)에 가상 어플리케이션 서비스가 실행되면, 어플리케이션(114)에 대한 캐싱 기간을 미리 지정된 기간으로 설정할 수 있다. 일 실시 예에서, UI 자원 캐시(320)는, 어플리케이션(114)에 대한 캐싱 기간이 만료되면, 어플리케이션(114)과 관련된 UI 자원들을 UI 자원 캐시(320)에서 삭제할 수 있다.In an embodiment, the UI resource cache 320 may set the caching period for the application 114 to a predetermined period when the virtual application service is executed in the application 114 . In an embodiment, the UI resource cache 320 may delete UI resources related to the application 114 from the UI resource cache 320 when the caching period for the application 114 expires.

일 실시 예에서, UI 자원 캐시(320)는, UI 자원들에 대한 캐싱 기간을 설정하는 기법, UI 자원들에 대한 이동 카운트 값을 설정하는 기법, 어플리케이션(114)에 대해 캐싱 기간을 설정하는 기법, 또는 이들의 조합을 이용하여, 저장된 UI 자원들에 대한 캐시 정책을 수립할 수 있다.In one embodiment, the UI resource cache 320, a technique for setting a caching period for UI resources, a technique for setting a movement count value for UI resources, a technique for setting a caching period for the application 114 , or a combination thereof, it is possible to establish a cache policy for the stored UI resources.

도 14는 일 실시 예에 따른 전자 장치(120)에서 어플리케이션(114)의 현재 UI 페이지를 렌더링하는 동작을 예시하는 흐름도이다. 14 is a flowchart illustrating an operation of rendering a current UI page of an application 114 in the electronic device 120 according to an embodiment.

도 14를 참조하면, 동작 1410에서, 어플리케이션 구동 모듈(260)은, UI 변경을 식별할 수 있다. 일 실시 예에서, 동작 1410은, 도 12의 동작 1210에 대응할 수 있다.Referring to FIG. 14 , in operation 1410 , the application driving module 260 may identify a UI change. According to an embodiment, operation 1410 may correspond to operation 1210 of FIG. 12 .

도 14를 참조하면, 동작 1415에서, 어플리케이션 구동 모듈(260)은, 메타 UI 레이아웃 변환 모듈(290)에게 UI 변경 이벤트를 송신할 수 있다. 일 실시 예에서, 동작 1415는, 도 12의 동작 1220에 대응할 수 있다.Referring to FIG. 14 , in operation 1415 , the application driving module 260 may transmit a UI change event to the meta UI layout conversion module 290 . According to an embodiment, operation 1415 may correspond to operation 1220 of FIG. 12 .

도 14를 참조하면, 동작 1421에서, 메타 UI 레이아웃 변환 모듈(290)은, 어플리케이션 구동 모듈(260)에게 현재 UI 요소 및 UI 레이아웃 정보를 요청할 수 있다. 일 실시 예에서, UI 레이아웃은, UI 페이지에 포함되어 있는 UI 요소들의 배치를 의미할 수 있다. 일 실시 예에서, UI 레이아웃 정보는, UI 페이지에 포함되어 있는 UI 요소들의 배경 색상, 마진(margin), 패딩(padding), 배치, 크기, 또는 이들의 조합에 대한 정보를 포함할 수 있다. 일 실시 예에서, UI 레이아웃 정보는, UI 페이지에 포함되어 있는 UI 요소들의 폰트 정보, 폰트 크기, 또는 이들의 조합에 대한 정보를 포함할 수 있다.Referring to FIG. 14 , in operation 1421 , the meta UI layout conversion module 290 may request the current UI element and UI layout information from the application driving module 260 . According to an embodiment, the UI layout may mean arrangement of UI elements included in a UI page. In an embodiment, the UI layout information may include information on a background color, margin, padding, arrangement, size, or a combination thereof of UI elements included in a UI page. In an embodiment, the UI layout information may include information about font information, font size, or a combination thereof of UI elements included in the UI page.

도 14를 참조하면, 동작 1425에서, 어플리케이션 구동 모듈(260)은, 현재 UI 요소 및 UI 레이아웃 정보를 식별할 수 있다. 일 실시 예에서, 어플리케이션 구동 모듈(260)은, 현재 UI 페이지에 포함된 UI 요소들을 식별할 수 있다. 일 실시 예에서, 어플리케이션 구동 모듈(260)은, 현재 UI 페이지에 포함된 UI 요소들 및 UI 레이아웃을 식별할 수 있다. Referring to FIG. 14 , in operation 1425 , the application driving module 260 may identify a current UI element and UI layout information. In an embodiment, the application driving module 260 may identify UI elements included in the current UI page. In an embodiment, the application driving module 260 may identify UI elements and UI layouts included in the current UI page.

도 14를 참조하면, 동작 1429에서, 어플리케이션 구동 모듈(260)은, 식별한 현재 UI 요소 및 UI 레이아웃 정보를 메타 UI 레이아웃 변환 모듈(290)에게 송신할 수 있다.Referring to FIG. 14 , in operation 1429 , the application driving module 260 may transmit the identified current UI element and UI layout information to the meta UI layout conversion module 290 .

도 14를 참조하면, 동작 1441에서, 메타 UI 레이아웃 변환 모듈(290)은, UI 레이아웃을 메타 UI 레이아웃으로 변환할 수 있다. 일 실시 예에서, 메타 UI 레이아웃 변환 모듈(290)은, UI 제어를 메타 UI 제어로 변경할 수 있다. 일 실시 예에서, 메타 UI 레이아웃 변환 모듈(290)은, UI 제어를 메타 UI 제어로 변경함으로써, 메타 UI 제어를 이용하여 UI 요소에 대한 정보를 나타낼 수 있다. 일 실시 예에서, 가상화 서버(110)에서 이용되는 UI 제어는, 어플리케이션 구동 모듈(260)에서 이용하는 운영 체제(OS)에 대응하는 UI 제어일 수 있다. Referring to FIG. 14 , in operation 1441 , the meta UI layout conversion module 290 may convert a UI layout into a meta UI layout. In an embodiment, the meta UI layout conversion module 290 may change the UI control to the meta UI control. In an embodiment, the meta UI layout conversion module 290 may display information on UI elements using meta UI controls by changing UI controls to meta UI controls. In an embodiment, the UI control used in the virtualization server 110 may be a UI control corresponding to the operating system (OS) used by the application driving module 260 .

예를 들어, UI 제어를 이용하여 “Type=TextView”로 서술되는 UI 요소(422)의 유형에 대한 정보는, 메타 UI 제어를 이용하여 “Type=TextViewControl”로 서술될 수 있다.For example, information on the type of the UI element 422 described as “Type=TextView” using the UI control may be described as “Type=TextViewControl” using the meta UI control.

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(290)은, 메타 UI 제어를 이용하여 UI 요소에 대한 정보를 나타냄으로써, 메타 UI 요소를 이용하여 UI 레이아웃에 대한 정보를 나타낼 수 있다. 일 실시 예에서, 메타 UI 요소는, 메타 UI 제어를 이용하여 UI 요소에 대한 정보가 기술되는 UI 요소일 수 있다. 일 실시 예에서, 메타 UI 레이아웃은, 메타 UI 요소를 이용하여 UI 레이아웃에 대한 정보가 기술되는 UI 레이아웃일 수 있다.In an embodiment, the meta UI layout conversion module 290 may display information on UI elements by using meta UI controls, thereby indicating information on UI layouts using meta UI elements. In an embodiment, the meta UI element may be a UI element in which information on the UI element is described using meta UI control. In an embodiment, the meta UI layout may be a UI layout in which information on the UI layout is described using meta UI elements.

도 14를 참조하면, 동작 1445에서, 메타 UI 레이아웃 변환 모듈(290)은, 변환한 메타 UI 레이아웃을, 전자 장치(120)의 메타 UI 레이아웃 변환 모듈(330)에게 송신할 수 있다.Referring to FIG. 14 , in operation 1445 , the meta UI layout conversion module 290 may transmit the converted meta UI layout to the meta UI layout conversion module 330 of the electronic device 120 .

도 14를 참조하면, 동작 1449에서, 메타 UI 레이아웃 변환 모듈(330)은, 메타 UI 레이아웃을 UI 레이아웃으로 변환할 수 있다.Referring to FIG. 14 , in operation 1449 , the meta UI layout conversion module 330 may convert the meta UI layout into a UI layout.

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(330)은, 메타 UI 제어를 UI 제어로 변경할 수 있다. 일 실시 예에서, 메타 UI 레이아웃 변환 모듈(330)은, 메타 UI 제어를 UI 제어로 변경함으로써, UI 제어를 이용하여 UI 요소에 대한 정보를 나타낼 수 있다. 일 실시 예에서, 전자 장치(120)에서 이용되는 UI 제어는, 전자 장치(120)에서 이용하는 운영 체제(OS)에 대응하는 UI 제어일 수 있다. 일 실시 예에서, 전자 장치(120)에서 이용하는 운영 체제(OS)는, 어플리케이션 구동 모듈(260)에서 이용하는 운영 체제(OS)와 서로 동일하거나 서로 다를 수 있다.In an embodiment, the meta UI layout conversion module 330 may change the meta UI control to a UI control. In an embodiment, the meta UI layout conversion module 330 may display information about a UI element by using the UI control by changing the meta UI control to the UI control. In an embodiment, the UI control used in the electronic device 120 may be a UI control corresponding to an operating system (OS) used in the electronic device 120 . In an embodiment, the operating system (OS) used by the electronic device 120 may be the same as or different from the operating system (OS) used by the application driving module 260 .

예를 들어, 메타 UI 제어를 이용하여 “Type=TextViewControl”로 서술되는 UI 요소(422)의 유형에 대한 정보는, UI 제어를 이용하여 “Type=Label”로 서술될 수 있다.For example, information on the type of the UI element 422 described as “Type=TextViewControl” using the meta UI control may be described as “Type=Label” using the UI control.

일 실시 예에서, 메타 UI 레이아웃 변환 모듈(330)은, UI 제어를 이용하여 UI 요소에 대한 정보를 나타냄으로써, 메타 UI 레이아웃을 UI 레이아웃으로 변환할 수 있다. In an embodiment, the meta UI layout conversion module 330 may convert the meta UI layout into a UI layout by indicating information on UI elements using UI controls.

도 14를 참조하면, 동작 1450에서, 메타 UI 레이아웃 변환 모듈(330)은, 변환한 UI 레이아웃을 UI 렌더 모듈(340)에게 송신할 수 있다. Referring to FIG. 14 , in operation 1450 , the meta UI layout conversion module 330 may transmit the converted UI layout to the UI render module 340 .

도 14를 참조하면, 동작 1461에서, UI 렌더 모듈(340)은, UI 자원 캐시(320)에게 변환한 UI 레이아웃에 기반하여 UI 페이지를 렌더링하기 위한 UI 자원을 요청할 수 있다.Referring to FIG. 14 , in operation 1461 , the UI render module 340 may request a UI resource for rendering a UI page based on the converted UI layout from the UI resource cache 320 .

도 14를 참조하면, 동작 1465에서, UI 자원 캐시(320)는, UI 자원을 검색할 수 있다.Referring to FIG. 14 , in operation 1465 , the UI resource cache 320 may search for a UI resource.

도 14를 참조하면, 동작 1469에서, UI 자원 캐시(320)는, 검색한 UI 자원에 대한 정보를 UI 렌더 모듈(340)에게 송신할 수 있다.Referring to FIG. 14 , in operation 1469 , the UI resource cache 320 may transmit information on the searched UI resource to the UI render module 340 .

도 14를 참조하면, 동작 1471에서, UI 렌더 모듈(340)은, 수신한 UI 자원에 대한 정보에 기반하여, 필요 UI 자원을 식별할 수 있다. 일 실시 예에서, 필요 UI 자원은, 현재 UI 페이지를 렌더링하기 위해 필요한 UI 자원들 중, UI 자원 캐시(320)에 저장되어 있지 않은 UI 자원들일 수 있다.Referring to FIG. 14 , in operation 1471 , the UI render module 340 may identify a necessary UI resource based on the received information on the UI resource. In an embodiment, the necessary UI resources may be UI resources that are not stored in the UI resource cache 320 among UI resources required to render a current UI page.

도 14를 참조하면, 동작 1475에서, UI 렌더 모듈(340)은, UI 요소를 로드할 수 있다. 일 실시 예에서, UI 렌더 모듈(340)은, UI 자원 캐시(320)에 저장되어 있는 UI 자원들을 이용하여 UI 요소를 로드할 수 있다. 일 실시 예에서, UI 렌더 모듈(340)은, UI 자원 캐시(320)에 저장되어 있지 않은 UI 자원들을 이용하는 UI 요소의 경우, 기준 자원을 이용하여 UI 요소를 로드할 수 있다. 일 실시 예에서, UI 렌더 모듈(340)은, UI 요소를 로드함으로써, UI 페이지를 렌더링할 수 있다. Referring to FIG. 14 , in operation 1475 , the UI render module 340 may load a UI element. In an embodiment, the UI render module 340 may load a UI element using UI resources stored in the UI resource cache 320 . In an embodiment, the UI render module 340 may load a UI element using a reference resource in the case of a UI element using UI resources that are not stored in the UI resource cache 320 . In an embodiment, the UI render module 340 may render a UI page by loading a UI element.

도 14를 참조하면, 동작 1481에서, UI 렌더 모듈(340)은, 가상화 서버(110)의 데이터베이스(240)에게 필요 UI 자원을 요청할 수 있다.Referring to FIG. 14 , in operation 1481 , the UI render module 340 may request a necessary UI resource from the database 240 of the virtualization server 110 .

도 14를 참조하면, 동작 1485에서, 데이터베이스(240)는, 필요 UI 자원을 검색할 수 있다.Referring to FIG. 14 , in operation 1485 , the database 240 may search for a necessary UI resource.

도 14를 참조하면, 동작 1489에서, 데이터베이스(240)는, 전자 장치(120)의 UI 렌더 모듈(340)에게 필요 UI 자원을 송신할 수 있다.Referring to FIG. 14 , in operation 1489 , the database 240 may transmit a necessary UI resource to the UI render module 340 of the electronic device 120 .

도 14를 참조하면, 동작 1491에서, UI 렌더 모듈(340)은, 필요 UI 자원에 기반하여, UI 요소를 로드할 수 있다. 일 실시 예에서, UI 렌더 모듈(340)은, 기준 자원을 이용하여 로드한 UI 요소를 필요 UI 자원을 이용하여 다시 로드할 수 있다. Referring to FIG. 14 , in operation 1491 , the UI render module 340 may load a UI element based on a required UI resource. In an embodiment, the UI render module 340 may reload a UI element loaded using a reference resource using a necessary UI resource.

도 14를 참조하면, 동작 1493에서, UI 렌더 모듈(340)은, UI 자원 캐시(320)에게 필요 UI 자원에 대한 캐싱을 요청할 수 있다. 도 14를 참조하면, 동작 1495에서, UI 자원 캐시(320)는, 필요 UI 자원을 캐싱할 수 있다. 도 14를 참조하면, 동작 1497에서, UI 자원 캐시(320)는, 캐시 정책을 갱신할 수 있다. 일 실시 예에서, 동작 1495, 및 1497은, 도 13의 동작 1380, 및 1390에 각각 대응할 수 있다.Referring to FIG. 14 , in operation 1493 , the UI render module 340 may request the UI resource cache 320 to cache necessary UI resources. Referring to FIG. 14 , in operation 1495 , the UI resource cache 320 may cache necessary UI resources. Referring to FIG. 14 , in operation 1497 , the UI resource cache 320 may update a cache policy. In an embodiment, operations 1495 and 1497 may correspond to operations 1380 and 1390 of FIG. 13 , respectively.

도 15는 일 실시 예에 따른 가상화 서버(110)에서 어플리케이션(114)에 대한 입력을 처리하는 동작을 예시하는 흐름도이다. 15 is a flowchart illustrating an operation of processing an input to the application 114 in the virtualization server 110 according to an embodiment.

도 15를 참조하면, 동작 1510에서, 전자 장치(120)의 입력 신호 송신 모듈(360)은, 입력을 식별할 수 있다. 일 실시 예에서, 입력 신호 송신 모듈(360)은, 입력 장치(125), 또는, 디스플레이(350)를 통한 입력을 식별할 수 있다. Referring to FIG. 15 , in operation 1510 , the input signal transmission module 360 of the electronic device 120 may identify an input. In an embodiment, the input signal transmission module 360 may identify an input through the input device 125 or the display 350 .

도 15를 참조하면, 동작 1520에서, 입력 신호 송신 모듈(360)은, 식별된 입력을 메타 제어 정보로 변환할 수 있다. 일 실시 예에서, 메타 제어 정보는, 입력이 인가되는 위치, 입력의 종류, 또는 이들의 조합에 대한 정보를 포함할 수 있다. Referring to FIG. 15 , in operation 1520 , the input signal transmission module 360 may convert the identified input into meta control information. According to an embodiment, the meta control information may include information about a location to which an input is applied, a type of an input, or a combination thereof.

도 15를 참조하면, 동작 1530에서, 입력 신호 송신 모듈(360)은, 변환된 메타 제어 정보를 가상화 서버(110)의 입력 신호 맵핑 모듈(250)에게 송신할 수 있다.Referring to FIG. 15 , in operation 1530 , the input signal transmission module 360 may transmit the converted meta control information to the input signal mapping module 250 of the virtualization server 110 .

도 15를 참조하면, 동작 1540에서, 입력 신호 맵핑 모듈(250)은, 메타 제어 정보에 기반하여 UI 요소를 식별할 수 있다. 일 실시 예에서, 입력 신호 맵핑 모듈(250)은, 메타 제어 정보에 기반하여 현재 UI 페이지에 포함되어 있는 다수의 UI 요소들 중 입력이 나타내는 UI 요소를 식별할 수 있다. 일 실시 예에서, 입력 신호 맵핑 모듈(250)은, 메타 제어 정보에 기반하여 식별한 UI 요소에 매칭되어 있는 기능들 중 입력의 종류에 대응하는 기능을 식별할 수 있다.Referring to FIG. 15 , in operation 1540 , the input signal mapping module 250 may identify a UI element based on meta control information. In an embodiment, the input signal mapping module 250 may identify a UI element indicated by an input from among a plurality of UI elements included in the current UI page based on the meta control information. In an embodiment, the input signal mapping module 250 may identify a function corresponding to the type of input from among functions matching the identified UI element based on the meta control information.

도 15를 참조하면, 동작 1550에서, 입력 신호 맵핑 모듈(250)은, 어플리케이션 구동 모듈(260)에게 식별된 UI 요소에 대한 입력 이벤트를 송신할 수 있다.Referring to FIG. 15 , in operation 1550 , the input signal mapping module 250 may transmit an input event for the identified UI element to the application driving module 260 .

예를 들어, UI 페이지(401)의 UI 요소(425)에 대한 클릭 입력으로 식별되는 경우, 입력 신호 맵핑 모듈(250)은, 어플리케이션 구동 모듈(260)에게 UI 페이지(401)에서 UI 페이지(402)로의 UI 페이지 전이 이벤트를 송신할 수 있다.For example, when it is identified as a click input for the UI element 425 of the UI page 401 , the input signal mapping module 250 provides the application driving module 260 from the UI page 401 to the UI page 402 . ) to the UI page transition event.

도 15를 참조하면, 동작 1560에서, 어플리케이션 구동 모듈(260)은, 식별된 UI 요소와 관련된 입력 이벤트를 처리할 수 있다.Referring to FIG. 15 , in operation 1560 , the application driving module 260 may process an input event related to the identified UI element.

예를 들어, UI 페이지(401)에서 UI 페이지(402)로의 UI 페이지 전이 이벤트에 응답하여, 어플리케이션 구동 모듈(260)은, UI 페이지(402)를 렌더링할 수 있다. 일 실시 예에서, 어플리케이션 구동 모듈(260)은, UI 페이지 전이 이벤트에 응답하여 UI 페이지(402)를 렌더링하는 경우, UI 변경을 식별할 수 있다. 일 실시 예에서, 어플리케이션 구동 모듈(260)의 UI 변경의 식별은 도 12의 동작 1210에 대응할 수 있다.For example, in response to a UI page transition event from the UI page 401 to the UI page 402 , the application driving module 260 may render the UI page 402 . In an embodiment, the application driving module 260 may identify a UI change when the UI page 402 is rendered in response to a UI page transition event. In an embodiment, identification of the UI change of the application driving module 260 may correspond to operation 1210 of FIG. 12 .

도 16a 내지 도 16h는, 전자 장치(1601)에서 가상화 서버(110)의 가상 어플리케이션을 이용하는 예를 도시하는 도면이다. 일 실시 예에서, 도 16a 내지 도 16h의 전자 장치(1601)는, 도 1 내지 도 3의 전자 장치(120)에 대응할 수 있다.16A to 16H are diagrams illustrating an example of using a virtual application of the virtualization server 110 in the electronic device 1601 . In an embodiment, the electronic device 1601 of FIGS. 16A to 16H may correspond to the electronic device 120 of FIGS. 1 to 3 .

도 16a를 참조하면, 전자 장치(1601)는, 디스플레이(1602)를 통해 아이콘(1611)이 포함된 화면(1610)을 표시할 수 있다. 일 실시 예에서, 디스플레이(1602)는, 도 3의 디스플레이(350)에 대응할 수 있다.Referring to FIG. 16A , the electronic device 1601 may display a screen 1610 including an icon 1611 through the display 1602 . In one embodiment, display 1602 may correspond to display 350 of FIG. 3 .

일 실시 예에서, 아이콘(1611)은, 가상화 서버(110)에 대해 가상 어플리케이션 서비스를 요청하기 위한 어플리케이션을 나타내는 실행 가능한 이미지 객체일 수 있다.In an embodiment, the icon 1611 may be an executable image object representing an application for requesting a virtual application service to the virtualization server 110 .

도 16a를 참조하면, 사용자는 신체의 적어도 일부(예: 손가락)를 이용하여, 아이콘(1611)이 나타내는 어플리케이션을 실행하기 위한 입력(1691)을 인가할 수 있다.Referring to FIG. 16A , a user may apply an input 1691 for executing an application indicated by an icon 1611 by using at least a part of the body (eg, a finger).

일 실시 예에서, 전자 장치(1601)는, 어플리케이션을 실행하기 위한 입력(1691)에 응답하여, 아이콘(1611)이 나타내는 어플리케이션을 실행하고, 그 실행 결과를 디스플레이(1602)를 통해 표시할 수 있다.In an embodiment, in response to an input 1691 for executing an application, the electronic device 1601 may execute the application indicated by the icon 1611 and display the execution result through the display 1602 . .

도 16b를 참조하면, 전자 장치(1601)는, 디스플레이(1602)를 통해 어플리케이션의 실행 결과를 나타내는 화면(1620)을 표시할 수 있다. 일 실시 예에서, 화면(1620)에는, 사용자 정보(예: 사용자 아이디, 및 사용자 비밀번호)를 입력하기 위한 영역이 마련될 수 있다. Referring to FIG. 16B , the electronic device 1601 may display a screen 1620 indicating an execution result of an application through the display 1602 . In an embodiment, an area for inputting user information (eg, a user ID and a user password) may be provided on the screen 1620 .

일 실시 예에서, 사용자가 디스플레이(1602)를 통해 사용자 정보를 입력하고, 미리 지정된 입력(예: 미리 지정된 버튼에 대한 터치 입력)을 인가하면, 전자 장치(1601)는, 가상화 서버(110)에게 사용자 정보에 기반한 가상 어플리케이션 서비스의 사용을 요청할 수 있다.In an embodiment, when a user inputs user information through the display 1602 and applies a predetermined input (eg, a touch input for a predetermined button), the electronic device 1601 provides the virtualization server 110 . It is possible to request the use of a virtual application service based on user information.

일 실시 예에서, 가상화 서버(110)는, 가상 어플리케이션 서비스 사용 요청에 기반하여, 사용자를 인증하고, 사용자의 권한을 식별할 수 있다.In one embodiment, the virtualization server 110, based on the virtual application service use request, may authenticate the user and identify the user's authority.

일 실시 예에서, 가상화 서버(110)는, 사용자의 권한에 따라 이용 가능한 가상 어플리케이션들에 대한 목록을 전자 장치(1601)에게 송신할 수 있다.In an embodiment, the virtualization server 110 may transmit a list of available virtual applications to the electronic device 1601 according to the user's authority.

일 실시 예에서, 전자 장치(1601)는, 가상 어플리케이션들에 대한 목록에 기반하여, 이용 가능한 가상 어플리케이션들을 나타내기 위한 다수의 아이콘들을 디스플레이(1602)를 통해 표시할 수 있다.In an embodiment, the electronic device 1601 may display a plurality of icons for indicating available virtual applications through the display 1602 based on the list of virtual applications.

도 16c를 참조하면, 전자 장치(1601)는, 디스플레이(1602)를 통해, 다수의 아이콘들을 포함하는 화면(1630)을 표시할 수 있다.Referring to FIG. 16C , the electronic device 1601 may display a screen 1630 including a plurality of icons through the display 1602 .

도 16c를 참조하면, 사용자는 다수의 가상 어플리케이션들 중 아이콘(1631)이 나타내는 가상 어플리케이션을 선택하기 위한 입력(1693)을 인가할 수 있다.Referring to FIG. 16C , a user may apply an input 1693 for selecting a virtual application indicated by an icon 1631 from among a plurality of virtual applications.

일 실시 예에서, 전자 장치(1601)는, 가상 어플리케이션을 선택하기 위한 입력(1693)에 응답하여, 아이콘(1631)을 미리 지정된 페이지에 표시할 수 있다. In an embodiment, in response to an input 1693 for selecting a virtual application, the electronic device 1601 may display the icon 1631 on a predetermined page.

도 16d를 참조하면, 전자 장치(1601)는, 디스플레이(1602)를 통해 아이콘들(1641, 1642)이 포함된 화면(1640)을 표시할 수 있다. 일 실시 예에서, 화면(1640)은, 화면(1610)에서 아이콘(1631)이 더 추가된 것일 수 있다. 일 실시 예에서, 아이콘(1641)은, 아이콘(1611)에 대응할 수 있다. 일 실시 예에서, 아이콘(1642)은, 아이콘(1631)에 대응할 수 있다.Referring to FIG. 16D , the electronic device 1601 may display a screen 1640 including icons 1641 and 1642 through the display 1602 . According to an embodiment, the screen 1640 may be one in which an icon 1631 is further added to the screen 1610 . In an embodiment, the icon 1641 may correspond to the icon 1611 . In an embodiment, the icon 1642 may correspond to the icon 1631 .

도 16e를 참조하면, 사용자는 가상 어플리케이션 서비스를 요청하기 위한 입력(1695)을 인가할 수 있다. 일 실시 예에서, 전자 장치(1601)는, 가상 어플리케이션 서비스를 요청하기 위한 입력(1695)에 응답하여, 아이콘(1642)이 나타내는 어플리케이션에 대한 가상 어플리케이션 요청을 가상화 서버(110)에게 송신할 수 있다. Referring to FIG. 16E , a user may apply an input 1695 for requesting a virtual application service. In an embodiment, in response to an input 1695 for requesting a virtual application service, the electronic device 1601 may transmit a virtual application request for the application indicated by the icon 1642 to the virtualization server 110 . .

일 실시 예에서, 가상화 서버(110)는, 아이콘(1642)이 나타내는 어플리케이션을 실행할 수 있다. 일 실시 예에서, 가상화 서버(110)는, 어플리케이션을 실행함에 따라, 현재 UI 페이지에 대한 정보, 이동 가능한 다음 UI 페이지에 대한 정보, UI 자원, 메타 UI 레이아웃, 메타 UI 제어, 또는 이들의 조합을 전자 장치(1601)에게 송신할 수 있다. In an embodiment, the virtualization server 110 may execute the application indicated by the icon 1642 . In one embodiment, the virtualization server 110, as the application is executed, information about the current UI page, information about the next moveable UI page, UI resources, meta UI layout, meta UI control, or a combination thereof It may transmit to the electronic device 1601 .

일 실시 예에서, 전자 장치(1601)는, 가상화 서버(110)로부터의 데이터에 기반하여, UI 페이지를 렌더링할 수 있다. 일 실시 예에서, 도 16f를 참조하면, 전자 장치(1601)는, 렌더링된 UI 페이지(1650)를 디스플레이(1602)에 표시할 수 있다.In an embodiment, the electronic device 1601 may render a UI page based on data from the virtualization server 110 . In an embodiment, referring to FIG. 16F , the electronic device 1601 may display the rendered UI page 1650 on the display 1602 .

도 16g를 참조하면, 사용자는 어플리케이션에 대한 캐싱 용량을 설정하기 위한 입력(1697)을 인가할 수 있다. 일 실시 예에서, 도 16h를 참조하면, 전자 장치(1601)는, 어플리케이션에 대한 캐싱 용량을 설정하기 위한 입력(1697)에 응답하여, 캐싱 용량을 설정하기 위한 화면(1660)을 디스플레이(1602)에 표시할 수 있다. 일 실시 예에서, 사용자는 화면(1660)을 통해 어플리케이션에 대한 캐시 정책 적용 여부, 캐싱 용량, 또는 이들의 조합을 조절할 수 있다. Referring to FIG. 16G , a user may apply an input 1697 for setting a caching capacity for an application. In one embodiment, referring to FIG. 16H , the electronic device 1601 displays a screen 1660 for setting the caching capacity in response to an input 1697 for setting the caching capacity for the application 1602 . can be displayed in In an embodiment, the user may adjust whether to apply the cache policy to the application, the caching capacity, or a combination thereof through the screen 1660 .

도 17은, 일 실시 예에 따른 소프트웨어 개발 키트(Software Development Kit; SDK, 1720)를 예시하는 도면이다. 도 18은, 일 실시 예에 따른 어플리케이션 라이브러리(1721)를 예시하는 도면이다. 도 19는, 일 실시 예에 따른 UI 페이지 클래스가 분류되는 예를 예시하는 도면이다.17 is a diagram illustrating a software development kit (SDK) 1720 according to an embodiment. 18 is a diagram illustrating an application library 1721 according to an embodiment. 19 is a diagram illustrating an example in which UI page classes are classified according to an embodiment.

일 실시 예에서, 소프트웨어 개발 키트(1720)는, 어플리케이션 라이브러리(1721), 메타 UI 디자인 모듈(1725), 또는 이들의 조합을 포함할 수 있다. In an embodiment, the software development kit 1720 may include an application library 1721 , a meta UI design module 1725 , or a combination thereof.

일 실시 예에서, 어플리케이션 라이브러리(1721)는, 어플리케이션(1710)의 현재 UI 페이지에서 UI 자원에 대한 정보를 확인하기 위한 기능, 또는 현재 UI 페이지를 확인하기 위한 기능을 제공하는 라이브러리일 수 있다. In an embodiment, the application library 1721 may be a library that provides a function for checking information about UI resources in a current UI page of the application 1710 or a function for checking a current UI page.

일 실시 예에서, 현재 UI 페이지에서 UI 자원에 대한 정보를 확인하기 위한 기능은, 어플리케이션(1710)의 현재 UI 페이지에 포함되어 있는 UI 요소들을 파싱함으로써, UI 요소들 각각에 이용되는 UI 자원들을 식별하기 위한 기능일 수 있다.In an embodiment, the function for checking information about UI resources in the current UI page identifies UI resources used for each of the UI elements by parsing UI elements included in the current UI page of the application 1710 . It may be a function for

일 실시 예에서, 현재 UI 페이지를 확인하기 위한 기능은, 어플리케이션(1710)의 다수의 UI 페이지들 중, 식별된 UI 자원들을 포함하는 UI 페이지를 현재 UI 페이지로 결정하기 위한 기능일 수 있다. In an embodiment, the function for checking the current UI page may be a function for determining a UI page including identified UI resources from among a plurality of UI pages of the application 1710 as the current UI page.

일 실시 예에서, 어플리케이션 라이브러리(1721)는, 가상 어플리케이션 초기화 모듈(1810), 및 어플리케이션 컨텍스트 저장 모듈(1820)을 더 포함할 수 있다. 일 실시 예에서, 어플리케이션 컨텍스트는, 어플리케이션(1710)에 대한 정보(예: UI 자원, UI 페이지, UI 요소, 권한)가 저장된 오브젝트일 수 있다.In an embodiment, the application library 1721 may further include a virtual application initialization module 1810 and an application context storage module 1820 . In an embodiment, the application context may be an object in which information about the application 1710 (eg, UI resources, UI pages, UI elements, and permissions) is stored.

일 실시 예에서, 가상 어플리케이션 초기화 모듈(1810)은, 어플리케이션(1710)에 대한 애플리케이션 가상화 기능의 사용 유무를 설정할 수 있다. 일 실시 예에서, 어플리케이션(1710)에 대한 가상화 기능이 사용되는 것으로 설정되면, 어플리케이션(1710)은, 가상화 서버(110)에서 구동되어, 전자 장치(120)에게 가상 어플리케이션 서비스를 제공하기 위한 어플리케이션일 수 있다. 일 실시 예에서, 어플리케이션(1710)에 대한 가상화 기능이 사용되지 않는 것으로 설정되면, 어플리케이션(1710)은, 전자 장치(120)에서 구동되는 어플리케이션일 수 있다.In an embodiment, the virtual application initialization module 1810 may set whether to use an application virtualization function for the application 1710 . In an embodiment, when the virtualization function for the application 1710 is set to be used, the application 1710 is an application for providing a virtual application service to the electronic device 120 by being driven in the virtualization server 110 . can In an embodiment, when the virtualization function for the application 1710 is set to not be used, the application 1710 may be an application driven in the electronic device 120 .

일 실시 예에서, 가상화 기능이 사용되는 것으로 설정된 경우, 가상 어플리케이션 초기화 모듈(1810)은, 어플리케이션(1710)에 대한 어플리케이션 코드(1830)에 포함되어 있는 어플리케이션 진입 포인트(1835)로부터 어플리케이션 컨텍스트(application context)를 추출 및/또는 식별할 수 있다. 일 실시 예에서, 어플리케이션 컨텍스트는, 어플리케이션(1710)에 대한 정보(예: UI 자원, UI 페이지, UI 요소, 권한)가 저장된 오브젝트일 수 있다. In an embodiment, when the virtualization function is set to be used, the virtual application initialization module 1810 receives an application context from the application entry point 1835 included in the application code 1830 for the application 1710 . ) can be extracted and/or identified. In an embodiment, the application context may be an object in which information about the application 1710 (eg, UI resources, UI pages, UI elements, and permissions) is stored.

일 실시 예에서, 가상 어플리케이션 초기화 모듈(1810)은, 추출 및/또는 식별한 어플리케이션 컨텍스트를 어플리케이션 컨텍스트 저장 모듈(1820)에 저장할 수 있다. In an embodiment, the virtual application initialization module 1810 may store the extracted and/or identified application context in the application context storage module 1820 .

일 실시 예에서, 플랫폼 UI(1930)는 다양한 플랫폼(예: 안드로이드TM, iOSTM)을 지원할 수 있도록 각각 다른 플랫폼들의 플랫폼 UI 페이지 클래스(1940)를 보관(예: 저장)할 수 있다. 예를 들어, 안드로이드의 플랫폼 UI는 안드로이드 OS(Operating System)로부터 제공될 수 있다. 예를 들어, iOS의 플랫폼 UI는 iOS로부터 제공될 수 있다. In an embodiment, the platform UI 1930 may store (eg, store) the platform UI page classes 1940 of different platforms to support various platforms (eg, Android TM , iOS TM ). For example, the Android platform UI may be provided from an Android operating system (OS). For example, the platform UI of iOS may be provided from iOS.

일 실시 예에서, 라이브러리 UI(1910)는 플랫폼에 특화된 페이지 클래스를 생성하기 위한 모듈일 수 있다. 일 실시 예에서, 라이브러리 UI(1910)는 다수의 플랫폼들 각각의 플랫폼 UI 페이지 클래스(1940)를 기반으로 플랫폼 특화 페이지 클래스(1920)를 생성할 수 있다. 일 실시 예에서, 라이브러리 UI(1910)는 생성한 플랫폼 특화 페이지 클래스(1920)를 개발자(예: 개발자의 장치)에게 제공할 수 있다. 일 실시 예에서, 플랫폼 특화 페이지 클래스(1920)의 속성은 플랫폼 UI 페이지 클래스(1940)로부터 계승(또는, 상속)될 수 있다. According to an embodiment, the library UI 1910 may be a module for generating a page class specialized for a platform. In an embodiment, the library UI 1910 may generate a platform-specific page class 1920 based on the platform UI page class 1940 of each of a plurality of platforms. In an embodiment, the library UI 1910 may provide the generated platform-specific page class 1920 to a developer (eg, a developer's device). In an embodiment, the property of the platform-specific page class 1920 may be inherited (or inherited) from the platform UI page class 1940 .

일 실시 예에서, 라이브러리 UI(1910)는 메타 UI 컨버터(1925)를 포함할 수 있다. 일 실시 예에서, 메타 UI 컨버터(1925)는, 서로 다른 플랫폼들 간(예: 안드로이드TM 및 iOSTM 간)의 UI를 변환하는 기능을 제공할 수 있다. 일 실시 예에서, 메타 UI 컨버터(1925)는, 가상화 서버(110)에서 일 플랫폼(예: 안드로이드TM)을 이용하여 임의의 동작을 수행한 결과를 메타 UI로 변환하는 기능을 제공할 수 있다. 일 실시 예에서, 메타 UI로 변환된 수행 결과는 사용자(예: 전자 장치(120))에게 제공(예: 전송)될 수 있다. 일 실시 예에서, 메타 UI로 변환된 수행 결과를 수신한 전자 장치(120)는, 메타 UI 컨버터(1925)를 이용하여, 다른 플랫폼(예: iOSTM)에 따른 라이브러리 UI에 기반하여 메타 UI로 변환된 수행 결과를 해당 플랫폼(예: iOSTM)에 부합하는 형태의 UI로 변환할 수 있다. 일 실시 예에서, 전자 장치(120)는, 해당 플랫폼(예: iOSTM)에 부합하여 변환된 UI를 출력(예: 표시)할 수 있다.In an embodiment, the library UI 1910 may include a meta UI converter 1925 . In an embodiment, the meta UI converter 1925 may provide a function of converting a UI between different platforms (eg, between Android TM and iOS TM). In an embodiment, the meta UI converter 1925 may provide a function of converting a result of performing an arbitrary operation in the virtualization server 110 using a platform (eg, Android TM ) into a meta UI. In an embodiment, the performance result converted into the meta UI may be provided (eg, transmitted) to the user (eg, the electronic device 120 ). In an embodiment, the electronic device 120 that has received the execution result converted into the meta UI converts the meta UI to a meta UI based on a library UI according to another platform (eg, iOS TM ) using the meta UI converter 1925 . The converted execution result can be converted into a UI conforming to the corresponding platform (eg, iOS TM ). In an embodiment, the electronic device 120 may output (eg, display) a UI converted in accordance with a corresponding platform (eg, iOS TM ).

일 실시 예에서, 라이브러리 UI(1910)는, 어플리케이션 라이브러리(1721)에 포함될 수 있다. 일 실시 예에서, 플랫폼 UI(1930)는, 어플리케이션(1710)이 구동되는 운영 체제(OS)에 기반한 라이브러리일 수 있다. In an embodiment, the library UI 1910 may be included in the application library 1721 . In an embodiment, the platform UI 1930 may be a library based on an operating system (OS) in which the application 1710 is driven.

일 실시 예에서, 어플리케이션 라이브러리(1721)는 어플리케이션 UI 자원 결합 기능을 제공할 수 있다. 일 실시 예에서, 어플리케이션 UI 자원 결합 기능은, 어플리케이션(1710)의 다수의 UI 페이지들 각각의 위치에 UI 자원을 결합하는 기능일 수 있다. In an embodiment, the application library 1721 may provide an application UI resource binding function. In an embodiment, the function of combining application UI resources may be a function of combining UI resources at positions of a plurality of UI pages of the application 1710 .

일 실시 예에서, 메타 UI 디자인 모듈(1725)은, 어플리케이션 라이브러리(1721)를 이용하여 개발된 어플리케이션(1710)을 분석하여, 어플리케이션(1710)에 포함되어 있는 다수의 UI 페이지들과 다수의 UI 페이지들 각각에 이용되는 UI 자원들에 대한 정보, 및 다수의 UI 페이지들 각각의 UI 레이아웃에 대한 정보를 식별할 수 있다. In an embodiment, the meta UI design module 1725 analyzes the application 1710 developed using the application library 1721 , and includes a plurality of UI pages and a plurality of UI pages included in the application 1710 . It is possible to identify information about UI resources used for each and information about a UI layout of each of a plurality of UI pages.

일 실시 예에서, 메타 UI 디자인 모듈(1725)은, 다수의 UI 페이지들 각각의 UI 레이아웃을 메타 UI 레이아웃으로 변환할 수 있다.In an embodiment, the meta UI design module 1725 may convert a UI layout of each of a plurality of UI pages into a meta UI layout.

일 실시 예에서, 메타 UI 디자인 모듈(1725)은, 개발자의 메타 UI 레이아웃에 대한 입력에 응답하여, 메타 UI 레이아웃, 및/또는 메타 UI 레이아웃에 대응하는 UI 레이아웃을 수정할 수 있다.In an embodiment, the meta UI design module 1725 may modify the meta UI layout and/or the UI layout corresponding to the meta UI layout in response to the developer's input for the meta UI layout.

일 실시 예에서, 메타 UI 디자인 모듈(1725)은, 어플리케이션(1710)에 대한 메타 UI 정보(예: 메타 UI 페이지, 메타 UI 자원, 메타 UI 레이아웃, 또는 이들의 조합에 대한 정보)를 메타 UI 저장 서버(1740)에 송신할 수 있다. 일 실시 예에서, 메타 UI 저장 서버(1740)는 가상화 서버(110)에 대응할 수 있다. 일 실시 예에서, 가상화 서버(110)의 데이터베이스(240)가 별도의 서버로 구현되는 경우, 메타 UI 저장 서버(1740)는 별도의 서버로 구현된 데이터베이스(240)에 대응할 수 있다.In an embodiment, the meta UI design module 1725 stores meta UI information for the application 1710 (eg, information about meta UI pages, meta UI resources, meta UI layouts, or a combination thereof). can be sent to the server 1740 . In an embodiment, the meta UI storage server 1740 may correspond to the virtualization server 110 . In one embodiment, when the database 240 of the virtualization server 110 is implemented as a separate server, the meta UI storage server 1740 may correspond to the database 240 implemented as a separate server.

상술한 바와 같은, 가상 어플리케이션 서비스를 이용하는 전자 장치는, 통신 회로; 디스플레이; 인스트럭션들을 저장하는 메모리; 및 상기 통신 회로, 상기 디스플레이, 및 상기 메모리와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가, 상기 통신 회로를 통해, 서버로부터 수신한 페이지 정보에 기반하여, 상기 어플리케이션의 페이지를 표시하기 위한 사용자 인터페이스(UI; User Interface) 자원들 중 상기 메모리에 저장되어 있지 않은 적어도 하나의 UI 자원을 식별하고, 상기 식별된 적어도 하나의 UI 자원을 상기 통신 회로를 통해, 상기 서버에게 요청하고, 상기 통신 회로를 통해, 상기 서버로부터 수신하는 상기 식별된 적어도 하나의 UI 자원을 이용하여, 상기 어플리케이션의 현재 페이지를 나타내는 이미지를 렌더링하고, 상기 현재 페이지를 나타내는 상기 이미지를 상기 디스플레이를 통해 표시하도록 구성될 수 있다. As described above, the electronic device using the virtual application service includes a communication circuit; display; a memory for storing instructions; and a processor operatively coupled to the communication circuitry, the display, and the memory, wherein the processor executes the instructions so that the electronic device is based on page information received from a server through the communication circuitry. to identify at least one UI resource that is not stored in the memory among user interface (UI) resources for displaying the page of the application, and use the identified at least one UI resource to the communication circuit Rendering an image representing the current page of the application by using the identified at least one UI resource that requests the server and receives from the server through the communication circuit, and the image representing the current page may be configured to be displayed through the display.

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가, 상기 어플리케이션에 대해 미리 지정된 메모리 용량에 기반하여, 상기 서버로부터 수신하는 상기 식별된 적어도 하나의 UI 자원을 상기 메모리에 저장하도록 구성될 수 있다.In an embodiment, the processor executes the instructions, and the electronic device stores the identified at least one UI resource received from the server based on a memory capacity previously specified for the application in the memory. can be configured to

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가, 상기 메모리에 저장된 UI 자원들 중 캐싱 기간이 만료된 적어도 하나의 UI 자원을 상기 메모리에서 삭제하도록 구성될 수 있다.In an embodiment, the processor may be configured to execute the instructions so that the electronic device deletes from the memory at least one UI resource whose caching period has expired among the UI resources stored in the memory.

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가, 상기 메모리에 저장된 UI 자원들 중 이용된 횟수가 미리 지정된 횟수 이상 적은 적어도 하나의 UI 자원을 상기 메모리에서 삭제하도록 구성될 수 있다.In an embodiment, the processor is configured to execute the instructions so that the electronic device deletes from the memory at least one UI resource, the number of times used among the UI resources stored in the memory being less than a predetermined number of times. can

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가, 상기 어플리케이션의 미사용 기간이 미리 지정된 기간 이상이면, 상기 메모리에 저장된 UI 자원들을 상기 메모리에서 삭제하도록 구성될 수 있다.In an embodiment, the processor may be configured to execute the instructions so that the electronic device deletes the UI resources stored in the memory from the memory when the non-use period of the application is greater than or equal to a predetermined period.

일 실시 예에서, 상기 서버로부터 수신한 상기 페이지 정보는, 상기 현재 페이지에 대한 정보, 및 상기 현재 페이지에서 이동 가능한 다음 페이지에 대한 정보를 포함하고, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가, 상기 현재 페이지에 대한 정보에 기반하여 상기 메모리에 저장되어 있지 않은 제1 UI 자원을 식별하고, 상기 이동 가능한 다음 페이지에 대한 정보에 기반하여 상기 메모리에 저장되어 있지 않은 제2 UI 자원을 식별하고, 상기 제1 UI 자원, 및 상기 제2 UI 자원을 상기 통신 회로를 통해 상기 서버에게 요청하도록 구성될 수 있다.In an embodiment, the page information received from the server includes information on the current page and information on a next page that can be moved from the current page, and the processor executes the instructions to The device identifies a first UI resource that is not stored in the memory based on the information on the current page, and retrieves a second UI resource that is not stored in the memory based on the information on the next moveable page. and to request the first UI resource and the second UI resource from the server through the communication circuit.

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가, 상기 페이지 정보에 포함되어 있는 메타 레이아웃 정보를, 상기 전자 장치의 운영 체제(OS; Operating System)에 부합하는 레이아웃 정보로 변환하고, 상기 변환한 레이아웃 정보에 기반하여, 상기 어플리케이션의 상기 현재 페이지를 나타내는 이미지를 렌더링하도록 구성될 수 있다.In an embodiment, the processor executes the instructions so that the electronic device converts meta-layout information included in the page information into layout information conforming to an operating system (OS) of the electronic device. and, based on the converted layout information, may be configured to render an image representing the current page of the application.

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가, 상기 서버에게 상기 전자 장치의 장치 성능을 나타내는 정보를 상기 통신 회로를 통해 송신하고, 상기 서버에 의해 상기 장치 성능을 나타내는 정보에 기반하여 생성된 상기 페이지 정보를 상기 통신 회로를 통해 상기 서버로부터 수신하도록 구성될 수 있다.In an embodiment, the processor executes the instructions so that the electronic device transmits information indicating the device capability of the electronic device to the server through the communication circuit, and indicates the device capability by the server and receive the page information generated based on the information from the server through the communication circuit.

일 실시 예에서, 상기 장치 성능을 나타내는 정보에 기반하여 생성된 상기 페이지 정보가 나타내는 상기 페이지를 표시하기 위한 UI 자원들은, 서로 다른 장치 성능들에 대응하는 UI 자원들 중 상기 전자 장치의 장치 성능에 대응하는 UI 자원들이고, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가, 상기 통신 회로를 통해, 상기 서버로부터 수신한 페이지 정보에 기반하여, 상기 전자 장치의 장치 성능에 대응하는 UI 자원들 중 상기 메모리에 저장되어 있지 않은 상기 적어도 하나의 UI 자원을 식별하도록 구성될 수 있다. In an embodiment, UI resources for displaying the page indicated by the page information generated based on the information indicating the device capability are related to the device capability of the electronic device among UI resources corresponding to different device capabilities. UI resources corresponding to the UI resources, wherein the processor executes the instructions so that the electronic device receives UI resources corresponding to device capabilities of the electronic device based on page information received from the server through the communication circuit. of the at least one UI resource that is not stored in the memory.

상술한 바와 같은, 가상 어플리케이션 서비스를 제공하는 서버는, 통신 회로; 인스트럭션들을 저장하는 메모리; 및 상기 통신 회로, 및 상기 메모리와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가, 상기 통신 회로를 통해, 전자 장치로부터 수신된 상기 어플리케이션 구동 요청에 응답하여, 상기 어플리케이션을 구동하고, 상기 구동 중인 어플리케이션의 현재 페이지를 식별하고, 상기 식별한 현재 페이지에 기반한 페이지 정보를 상기 통신 회로를 통해, 상기 전자 장치로 송신하고, 상기 전자 장치로부터의 사용자 인터페이스(UI; User Interface) 자원 요청에 기반하여, 상기 메모리에 저장되어 있는 UI 자원을 상기 통신 회로를 통해, 상기 전자 장치로 송신하도록 구성될 수 있다.As described above, the server providing the virtual application service includes a communication circuit; a memory for storing instructions; and a processor operatively connected to the communication circuit and the memory, wherein the processor executes the instructions so that the server responds to the application driving request received from the electronic device through the communication circuit. , driving the application, identifying a current page of the running application, and transmitting page information based on the identified current page to the electronic device through the communication circuit, and a user interface (UI) from the electronic device ; User Interface) based on a resource request, the UI resource stored in the memory may be transmitted to the electronic device through the communication circuit.

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가, 상기 구동 중인 어플리케이션의 상기 현재 페이지에서 이용되는 UI 자원들을 식별하고, 상기 식별된 UI 자원들에 기반하여, 상기 어플리케이션의 다수의 페이지들 중 상기 현재 페이지를 식별하도록 구성될 수 있다.In an embodiment, the processor executes the instructions, the server identifies UI resources used in the current page of the running application, and based on the identified UI resources, a plurality of the applications may be configured to identify the current page among pages of

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가, 상기 어플리케이션의 페이지를 렌더링하기 위한 상기 서버의 운영 체제(OS; Operating System)에 부합하는 레이아웃 정보를, 메타 레이아웃 정보로 변환하고, 상기 메타 레이아웃 정보를 포함하는 상기 페이지 정보를 상기 통신 회로를 통해, 상기 전자 장치로 송신하도록 구성될 수 있다.In an embodiment, the processor executes the instructions, and the server converts layout information corresponding to an operating system (OS) of the server for rendering the page of the application into meta layout information. and transmit the page information including the meta layout information to the electronic device through the communication circuit.

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가, 상기 전자 장치로부터 상기 전자 장치의 장치 성능을 나타내는 정보를 상기 통신 회로를 통해, 수신하고, 상기 수신한 장치 성능을 나타내는 정보에 기반하여 상기 페이지 정보를 생성하도록 구성될 수 있다.In an embodiment, the processor executes the instructions so that the server receives, through the communication circuit, information indicating the device capability of the electronic device from the electronic device, and information indicating the received device capability It may be configured to generate the page information based on

일 실시 예에서, 상기 장치 성능을 나타내는 정보에 기반하여 생성된 상기 페이지 정보는, 상기 전자 장치에서 상기 페이지 정보에 대응하는 페이지를 표시하기 위한 UI 자원들에 대한 정보를 포함하고, 상기 UI 자원들에 대한 정보는, 서로 다른 장치 성능들에 대응하는 UI 자원들 중 상기 전자 장치의 장치 성능에 대응하는 UI 자원들에 대한 정보일 수 있다.In an embodiment, the page information generated based on the information indicating the device capability includes information on UI resources for displaying a page corresponding to the page information in the electronic device, and the UI resources The information on may be information on UI resources corresponding to device capabilities of the electronic device among UI resources corresponding to different device capabilities.

일 실시 예에서, 상기 전자 장치의 장치 성능은, 상기 전자 장치의 해상도에 대한 장치 성능, 또는 상기 전자 장치의 오디오 채널에 대한 장치 성능 중 적어도 하나를 포함하도록 구성될 수 있다.In an embodiment, the device capability of the electronic device may be configured to include at least one of a device capability for a resolution of the electronic device or a device capability for an audio channel of the electronic device.

일 실시 예에서, 상기 페이지 정보는, 상기 현재 페이지에 대한 정보, 및 상기 현재 페이지에서 이동 가능한 다음 페이지에 대한 정보를 포함하도록 구성될 수 있다. In an embodiment, the page information may be configured to include information on the current page and information on a next page moveable from the current page.

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가, 상기 어플리케이션의 다수의 페이지들 각각의 연결 관계를 나타내는 정보에 기반하여, 상기 현재 페이지에서 이동 가능한 상기 다음 페이지에 대한 정보를 식별하고, 상기 현재 페이지, 및 상기 현재 페이지에서 이동 가능한 상기 다음 페이지에 대한 정보에 기반하여 상기 페이지 정보를 생성하도록 구성될 수 있다.In an embodiment, the processor executes the instructions so that the server obtains information on the next page that can be moved from the current page, based on information indicating a connection relationship between a plurality of pages of the application. and generate the page information based on information about the current page and the next page that can be moved from the current page.

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가, 상기 어플리케이션을 설치하고, 상기 설치된 어플리케이션에 대한 데이터에 기반하여, 상기 어플리케이션에 포함된 다수의 페이지들을 식별하고, 상기 어플리케이션에 포함된 상기 다수의 페이지들 각각에 이용되는 UI 자원들을 식별하고, 상기 식별한 UI 자원들 중 실행 가능한 UI 자원들에 대해 입력에 따른 기능을 실행함으로써, 상기 식별된 다수의 페이지들 각각의 연결 관계를 식별하도록 구성될 수 있다.In an embodiment, the processor executes the instructions so that the server installs the application, identifies a plurality of pages included in the application based on data on the installed application, and provides the application By identifying UI resources used for each of the included pages, and executing a function according to an input for executable UI resources among the identified UI resources, the connection relationship of each of the identified plurality of pages can be configured to identify

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가, 상기 통신 회로를 통해, 상기 전자 장치로부터 입력 이벤트를 수신하고, 상기 입력 이벤트에 기반하여, 상기 구동 중인 어플리케이션의 페이지 이동을 식별하고, 상기 페이지 이동이 식별되면, 상기 구동 중인 어플리케이션의 상기 현재 페이지를 새롭게 식별하도록 구성될 수 있다.In an embodiment, the processor executes the instructions so that the server receives an input event from the electronic device through the communication circuit, and based on the input event, moves the page of the running application and, when the page movement is identified, the current page of the running application may be newly identified.

일 실시 예에서, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가, 상기 어플리케이션의 페이지를 렌더링하기 위한 UI 자원들 중 상기 전자 장치로부터의 사용자 인터페이스 자원 요청에 대응하는 UI 자원을 식별하고, 상기 식별한 UI 자원을 상기 통신 회로를 통해, 상기 전자 장치로 송신하도록 구성될 수 있다.In an embodiment, by executing the instructions, the server identifies a UI resource corresponding to a user interface resource request from the electronic device among UI resources for rendering a page of the application, and transmit the identified UI resource to the electronic device through the communication circuit.

본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", “A 또는 B 중 적어도 하나”, "A, B 또는 C", "A, B 및 C 중 적어도 하나”, 및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.It should be understood that the various embodiments of this document and the terms used therein are not intended to limit the technical features described in this document to specific embodiments, and include various modifications, equivalents, or substitutions of the embodiments. In connection with the description of the drawings, like reference numerals may be used for similar or related components. The singular form of the noun corresponding to the item may include one or more of the item, unless the relevant context clearly dictates otherwise. As used herein, “A or B”, “at least one of A and B”, “at least one of A or B”, “A, B or C”, “at least one of A, B and C”, and “A , B, or C" each may include any one of, or all possible combinations of, items listed together in the corresponding one of the phrases. Terms such as “first”, “second”, or “first” or “second” may simply be used to distinguish the component from other components in question, and may refer to components in other aspects (e.g., importance or order) is not limited. that one (e.g. first) component is "coupled" or "connected" to another (e.g. second) component with or without the terms "functionally" or "communicatively" When referenced, it means that one component can be connected to the other component directly (eg by wire), wirelessly, or through a third component.

본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. As used herein, the term “module” may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic block, component, or circuit. A module may be an integrally formed component or a minimum unit or a part of the component that performs one or more functions. For example, according to an embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).

본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(120)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 메모리(123))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 어플리케이션(114))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(120))의 프로세서(예: 프로세서(121))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document include software (eg, one or more instructions stored in a storage medium (eg, memory 123)) readable by a machine (eg, electronic device 120). application 114). For example, the processor (eg, the processor 121 ) of the device (eg, the electronic device 120 ) may call at least one of one or more instructions stored from a storage medium and execute it. This makes it possible for the device to be operated to perform at least one function according to the called at least one command. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' only means that the storage medium is a tangible device and does not include a signal (eg, electromagnetic wave), and this term is used in cases where data is semi-permanently stored in the storage medium and It does not distinguish between temporary storage cases.

일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in this document may be provided in a computer program product (computer program product). Computer program products may be traded between sellers and buyers as commodities. The computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or via an application store (eg Play Store TM ) or on two user devices ( It can be distributed (eg downloaded or uploaded) directly, online between smartphones (eg: smartphones). In the case of online distribution, at least a part of the computer program product may be temporarily stored or temporarily created in a machine-readable storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server.

다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (eg, a module or a program) of the above-described components may include a singular or a plurality of entities. According to various embodiments, one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (eg, a module or a program) may be integrated into one component. In this case, the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. . According to various embodiments, operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, or omitted. or one or more other operations may be added.

본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다. Methods according to the embodiments described in the claims or specifications of the present disclosure may be implemented in the form of hardware, software, or a combination of hardware and software.

소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다. When implemented in software, a computer-readable storage medium storing one or more programs (software modules) may be provided. One or more programs stored in the computer-readable storage medium are configured for execution by one or more processors in an electronic device (device). The one or more programs include instructions for causing an electronic device to execute methods according to embodiments described in a claim or specification of the present disclosure.

이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: read only memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: electrically erasable programmable read only memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: compact disc-ROM), 디지털 다목적 디스크(DVDs: digital versatile discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다. Such programs (software modules, software) include random access memory, non-volatile memory including flash memory, read only memory (ROM), electrically erasable programmable ROM (EEPROM: electrically erasable programmable read only memory), magnetic disc storage device, compact disc ROM (CD-ROM), digital versatile discs (DVDs), or other types of It may be stored in an optical storage device or a magnetic cassette. Alternatively, it may be stored in a memory composed of a combination of some or all thereof. In addition, each configuration memory may be included in plurality.

또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(local area network), WLAN(wide LAN), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다. In addition, the program is transmitted through a communication network consisting of a communication network such as the Internet, an intranet, a local area network (LAN), a wide LAN (WLAN), or a storage area network (SAN), or a combination thereof. It may be stored on an attachable storage device that can be accessed. Such a storage device may be connected to a device implementing an embodiment of the present disclosure through an external port. In addition, a separate storage device on the communication network may be connected to the device implementing the embodiment of the present disclosure.

상술한 본 개시의 구체적인 실시예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다. In the specific embodiments of the present disclosure described above, elements included in the disclosure are expressed in the singular or plural according to the specific embodiments presented. However, the singular or plural expression is appropriately selected for the context presented for convenience of description, and the present disclosure is not limited to the singular or plural element, and even if the element is expressed in plural, it is composed of the singular or singular. Even an expressed component may be composed of a plurality of components.

한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, although specific embodiments have been described in the detailed description of the present disclosure, various modifications are possible without departing from the scope of the present disclosure. Therefore, the scope of the present disclosure should not be limited to the described embodiments and should be defined by the claims described below as well as the claims and equivalents.

Claims (20)

가상 어플리케이션 서비스를 이용하는 전자 장치에 있어서,
통신 회로;
디스플레이;
인스트럭션들을 저장하는 메모리; 및
상기 통신 회로, 상기 디스플레이, 및 상기 메모리와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가,
상기 통신 회로를 통해, 서버로부터 수신한 페이지 정보에 기반하여, 상기 어플리케이션의 페이지를 표시하기 위한 사용자 인터페이스(UI; User Interface) 자원들 중 상기 메모리에 저장되어 있지 않은 적어도 하나의 UI 자원을 식별하고,
상기 식별된 적어도 하나의 UI 자원을 상기 통신 회로를 통해, 상기 서버에게 요청하고,
상기 통신 회로를 통해, 상기 서버로부터 수신하는 상기 식별된 적어도 하나의 UI 자원을 이용하여, 상기 어플리케이션의 현재 페이지를 나타내는 이미지를 렌더링하고,
상기 현재 페이지를 나타내는 상기 이미지를 상기 디스플레이를 통해 표시하도록 구성되는 전자 장치.
An electronic device using a virtual application service, comprising:
communication circuit;
display;
a memory for storing instructions; and
a processor operatively coupled to the communication circuitry, the display, and the memory, wherein the processor executes the instructions to cause the electronic device to:
Identifies at least one UI resource that is not stored in the memory among user interface (UI) resources for displaying a page of the application based on the page information received from the server through the communication circuit, and ,
request the identified at least one UI resource to the server through the communication circuit,
Render an image representing the current page of the application by using the identified at least one UI resource received from the server through the communication circuit,
and display the image representing the current page through the display.
제1 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가,
상기 어플리케이션에 대해 미리 지정된 메모리 용량에 기반하여, 상기 서버로부터 수신하는 상기 식별된 적어도 하나의 UI 자원을 상기 메모리에 저장하도록 구성되는 전자 장치.
According to claim 1,
The processor, by executing the instructions, the electronic device,
and store the identified at least one UI resource received from the server in the memory, based on a memory capacity previously specified for the application.
제2 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가,
상기 메모리에 저장된 UI 자원들 중 캐싱 기간이 만료된 적어도 하나의 UI 자원을 상기 메모리에서 삭제하도록 구성되는 전자 장치.
3. The method of claim 2,
The processor, by executing the instructions, the electronic device,
The electronic device is configured to delete from the memory at least one UI resource for which a caching period has expired among the UI resources stored in the memory.
제2 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가,
상기 메모리에 저장된 UI 자원들 중 이용된 횟수가 미리 지정된 횟수 이상 적은 적어도 하나의 UI 자원을 상기 메모리에서 삭제하도록 구성되는 전자 장치.
3. The method of claim 2,
The processor, by executing the instructions, the electronic device,
The electronic device is configured to delete, from the memory, at least one UI resource that is used less than a predetermined number of times from among the UI resources stored in the memory.
제2 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가,
상기 어플리케이션의 미사용 기간이 미리 지정된 기간 이상이면, 상기 메모리에 저장된 UI 자원들을 상기 메모리에서 삭제하도록 구성되는 전자 장치.
3. The method of claim 2,
The processor, by executing the instructions, the electronic device,
The electronic device is configured to delete the UI resources stored in the memory from the memory when the non-use period of the application is greater than or equal to a predetermined period.
제1 항에 있어서,
상기 서버로부터 수신한 상기 페이지 정보는, 상기 현재 페이지에 대한 정보, 및 상기 현재 페이지에서 이동 가능한 다음 페이지에 대한 정보를 포함하고,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가,
상기 현재 페이지에 대한 정보에 기반하여 상기 메모리에 저장되어 있지 않은 제1 UI 자원을 식별하고,
상기 이동 가능한 다음 페이지에 대한 정보에 기반하여 상기 메모리에 저장되어 있지 않은 제2 UI 자원을 식별하고,
상기 제1 UI 자원, 및 상기 제2 UI 자원을 상기 통신 회로를 통해 상기 서버에게 요청하도록 구성되는 전자 장치.
According to claim 1,
The page information received from the server includes information on the current page and information on a next page that can be moved from the current page,
The processor, by executing the instructions, the electronic device,
Identifies a first UI resource that is not stored in the memory based on the information on the current page,
Identifies a second UI resource that is not stored in the memory based on the information on the next moveable page,
and request the first UI resource and the second UI resource from the server through the communication circuit.
제1 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가,
상기 페이지 정보에 포함되어 있는 메타 레이아웃 정보를, 상기 전자 장치의 운영 체제(OS; Operating System)에 부합하는 레이아웃 정보로 변환하고,
상기 변환한 레이아웃 정보에 기반하여, 상기 어플리케이션의 상기 현재 페이지를 나타내는 이미지를 렌더링하도록 구성되는 전자 장치.
According to claim 1,
The processor, by executing the instructions, the electronic device,
converting meta layout information included in the page information into layout information conforming to an operating system (OS) of the electronic device;
The electronic device is configured to render an image representing the current page of the application based on the converted layout information.
제1 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가,
상기 서버에게 상기 전자 장치의 장치 성능을 나타내는 정보를 상기 통신 회로를 통해 송신하고,
상기 서버에 의해 상기 장치 성능을 나타내는 정보에 기반하여 생성된 상기 페이지 정보를 상기 통신 회로를 통해 상기 서버로부터 수신하도록 구성되는 전자 장치.
According to claim 1,
The processor, by executing the instructions, the electronic device,
transmitting information indicating device capabilities of the electronic device to the server through the communication circuit;
and receive the page information generated by the server based on the information indicative of the device capability from the server via the communication circuitry.
제8 항에 있어서,
상기 장치 성능을 나타내는 정보에 기반하여 생성된 상기 페이지 정보가 나타내는 상기 페이지를 표시하기 위한 UI 자원들은, 서로 다른 장치 성능들에 대응하는 UI 자원들 중 상기 전자 장치의 장치 성능에 대응하는 UI 자원들이고,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 전자 장치가,
상기 통신 회로를 통해, 상기 서버로부터 수신한 페이지 정보에 기반하여, 상기 전자 장치의 장치 성능에 대응하는 UI 자원들 중 상기 메모리에 저장되어 있지 않은 상기 적어도 하나의 UI 자원을 식별하도록 구성되는 전자 장치.
9. The method of claim 8,
UI resources for displaying the page indicated by the page information generated based on the information indicating the device capability are UI resources corresponding to the device capability of the electronic device among UI resources corresponding to different device capabilities, ,
The processor, by executing the instructions, the electronic device,
the electronic device configured to identify the at least one UI resource that is not stored in the memory among UI resources corresponding to the device capability of the electronic device based on the page information received from the server through the communication circuit .
가상 어플리케이션 서비스를 제공하는 서버에 있어서,
통신 회로;
인스트럭션들을 저장하는 메모리; 및
상기 통신 회로, 및 상기 메모리와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가,
상기 통신 회로를 통해, 전자 장치로부터 수신된 상기 어플리케이션 구동 요청에 응답하여, 상기 어플리케이션을 구동하고,
상기 구동 중인 어플리케이션의 현재 페이지를 식별하고,
상기 식별한 현재 페이지에 기반한 페이지 정보를 상기 통신 회로를 통해, 상기 전자 장치로 송신하고,
상기 전자 장치로부터의 사용자 인터페이스(UI; User Interface) 자원 요청에 기반하여, 상기 메모리에 저장되어 있는 UI 자원을 상기 통신 회로를 통해, 상기 전자 장치로 송신하도록 구성되는 서버.
In the server providing a virtual application service,
communication circuit;
a memory for storing instructions; and
a processor operatively coupled to the communication circuitry and the memory, wherein the processor executes the instructions to cause the server to:
In response to the application driving request received from the electronic device through the communication circuit, the application is driven;
Identifies the current page of the running application,
Transmitting page information based on the identified current page to the electronic device through the communication circuit,
a server configured to transmit the UI resource stored in the memory to the electronic device through the communication circuit based on a user interface (UI) resource request from the electronic device.
제10 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가,
상기 구동 중인 어플리케이션의 상기 현재 페이지에서 이용되는 UI 자원들을 식별하고,
상기 식별된 UI 자원들에 기반하여, 상기 어플리케이션의 다수의 페이지들 중 상기 현재 페이지를 식별하도록 구성되는 서버.
11. The method of claim 10,
The processor, by executing the instructions, the server,
Identifies UI resources used in the current page of the running application,
a server configured to identify the current one of the plurality of pages of the application based on the identified UI resources.
제10 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가,
상기 어플리케이션의 페이지를 렌더링하기 위한 상기 서버의 운영 체제(OS; Operating System)에 부합하는 레이아웃 정보를, 메타 레이아웃 정보로 변환하고,
상기 메타 레이아웃 정보를 포함하는 상기 페이지 정보를 상기 통신 회로를 통해, 상기 전자 장치로 송신하도록 구성되는 서버.
11. The method of claim 10,
The processor, by executing the instructions, the server,
Converting layout information conforming to an Operating System (OS) of the server for rendering the page of the application into meta layout information,
and transmit the page information including the meta layout information to the electronic device through the communication circuit.
제10 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가,
상기 전자 장치로부터 상기 전자 장치의 장치 성능을 나타내는 정보를 상기 통신 회로를 통해, 수신하고,
상기 수신한 장치 성능을 나타내는 정보에 기반하여 상기 페이지 정보를 생성하도록 구성되는 서버.
11. The method of claim 10,
The processor, by executing the instructions, the server,
receive, via the communication circuit, information indicative of device capabilities of the electronic device from the electronic device;
a server configured to generate the page information based on the received information indicative of device capabilities.
제13 항에 있어서,
상기 장치 성능을 나타내는 정보에 기반하여 생성된 상기 페이지 정보는, 상기 전자 장치에서 상기 페이지 정보에 대응하는 페이지를 표시하기 위한 UI 자원들에 대한 정보를 포함하고,
상기 UI 자원들에 대한 정보는, 서로 다른 장치 성능들에 대응하는 UI 자원들 중 상기 전자 장치의 장치 성능에 대응하는 UI 자원들에 대한 정보인 서버.
14. The method of claim 13,
The page information generated based on the information indicating the device capability includes information on UI resources for displaying a page corresponding to the page information in the electronic device,
The information on the UI resources is information about UI resources corresponding to device capabilities of the electronic device among UI resources corresponding to different device capabilities.
제14 항에 있어서,
상기 전자 장치의 장치 성능은, 상기 전자 장치의 해상도에 대한 장치 성능, 또는 상기 전자 장치의 오디오 채널에 대한 장치 성능 중 적어도 하나를 포함하도록 구성되는 서버.
15. The method of claim 14,
A server, wherein the device capability of the electronic device includes at least one of a device capability for a resolution of the electronic device or a device capability for an audio channel of the electronic device.
제10 항에 있어서,
상기 페이지 정보는, 상기 현재 페이지에 대한 정보, 및 상기 현재 페이지에서 이동 가능한 다음 페이지에 대한 정보를 포함하도록 구성되는 서버.
11. The method of claim 10,
The page information is configured to include information on the current page and information on a next page that can be moved from the current page.
제16 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가,
상기 어플리케이션의 다수의 페이지들 각각의 연결 관계를 나타내는 정보에 기반하여, 상기 현재 페이지에서 이동 가능한 상기 다음 페이지에 대한 정보를 식별하고,
상기 현재 페이지, 및 상기 현재 페이지에서 이동 가능한 상기 다음 페이지에 대한 정보에 기반하여 상기 페이지 정보를 생성하도록 구성되는 서버.
17. The method of claim 16,
The processor, by executing the instructions, the server,
Based on information indicating a connection relationship of each of the plurality of pages of the application, information on the next page that can be moved from the current page is identified,
The server is configured to generate the page information based on the current page and information on the next page moveable from the current page.
제10 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가,
상기 어플리케이션을 설치하고,
상기 설치된 어플리케이션에 대한 데이터에 기반하여, 상기 어플리케이션에 포함된 다수의 페이지들을 식별하고,
상기 어플리케이션에 포함된 상기 다수의 페이지들 각각에 이용되는 UI 자원들을 식별하고,
상기 식별한 UI 자원들 중 실행 가능한 UI 자원들에 대해 입력에 따른 기능을 실행함으로써, 상기 식별된 다수의 페이지들 각각의 연결 관계를 식별하도록 구성되는 서버.
11. The method of claim 10,
The processor, by executing the instructions, the server,
install the application,
Based on the data for the installed application, identifying a plurality of pages included in the application,
Identifies UI resources used for each of the plurality of pages included in the application,
A server configured to identify a connection relationship of each of the identified plurality of pages by executing a function according to an input for executable UI resources among the identified UI resources.
제10 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가,
상기 통신 회로를 통해, 상기 전자 장치로부터 입력 이벤트를 수신하고,
상기 입력 이벤트에 기반하여, 상기 구동 중인 어플리케이션의 페이지 이동을 식별하고,
상기 페이지 이동이 식별되면, 상기 구동 중인 어플리케이션의 상기 현재 페이지를 새롭게 식별하도록 구성되는 서버.
11. The method of claim 10,
The processor, by executing the instructions, the server,
receive an input event from the electronic device through the communication circuit;
Based on the input event, identify a page movement of the running application,
When the page movement is identified, the server is configured to newly identify the current page of the running application.
제10 항에 있어서,
상기 프로세서는, 상기 인스트럭션들을 실행하여, 상기 서버가,
상기 어플리케이션의 페이지를 렌더링하기 위한 UI 자원들 중 상기 전자 장치로부터의 사용자 인터페이스 자원 요청에 대응하는 UI 자원을 식별하고,
상기 식별한 UI 자원을 상기 통신 회로를 통해, 상기 전자 장치로 송신하도록 구성되는 서버.

11. The method of claim 10,
The processor, by executing the instructions, the server,
Identifies a UI resource corresponding to a user interface resource request from the electronic device among UI resources for rendering a page of the application,
a server configured to transmit the identified UI resource to the electronic device through the communication circuit.

KR1020200009498A 2020-01-23 2020-01-23 Electronic device for using virtual application service and operating method thereof KR20210095499A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200009498A KR20210095499A (en) 2020-01-23 2020-01-23 Electronic device for using virtual application service and operating method thereof
PCT/KR2020/014314 WO2021149895A1 (en) 2020-01-23 2020-10-20 Electronic device using virtual application service and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200009498A KR20210095499A (en) 2020-01-23 2020-01-23 Electronic device for using virtual application service and operating method thereof

Publications (1)

Publication Number Publication Date
KR20210095499A true KR20210095499A (en) 2021-08-02

Family

ID=76992994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200009498A KR20210095499A (en) 2020-01-23 2020-01-23 Electronic device for using virtual application service and operating method thereof

Country Status (2)

Country Link
KR (1) KR20210095499A (en)
WO (1) WO2021149895A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050074763A (en) * 2004-01-14 2005-07-19 에스케이 텔레콤주식회사 System for user interface of mobile phone
JP2007226773A (en) * 2005-12-22 2007-09-06 Innopath Software Inc Method and device for changing user interface element on wireless device
KR101612845B1 (en) * 2009-11-12 2016-04-15 삼성전자주식회사 Method and apparatus for providing remote UI service
KR101227662B1 (en) * 2010-12-24 2013-01-29 주식회사 포키비언 System and method for providing user interface corresponding to service
KR102284295B1 (en) * 2014-11-19 2021-08-04 주식회사 알티캐스트 System and method for providing cloud based user interfaces

Also Published As

Publication number Publication date
WO2021149895A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
US20160232871A1 (en) Display method and display device
KR102294191B1 (en) apparatus AND method for PROCESSING SCREENshot
JP5681191B2 (en) Method and apparatus for providing an application interface on a computer peripheral
US10061552B2 (en) Identifying the positioning in a multiple display grid
JP2022031339A (en) Display method and device
JP2004102497A (en) Gui application development supporting device, gui display unit and method and its computer program
CN104572042A (en) Cross-platform middleware device of mobile terminal equipment and implementation method of cross-platform middleware device of mobile terminal equipment
WO2014173141A1 (en) Method of switching desktop subjects of mobile terminal and its switching apparatus
US20140119713A1 (en) Terminal device capable of managing storage capacity and management method thereof
JP2004102498A (en) Gui application development supporting device, gui display device and method, and its computer program
US8645831B2 (en) Translating user input in a user interface
JP2012103786A (en) Test support device, control method, and program
WO2015172562A1 (en) Shortcut operation method and apparatus for touch-screen digital terminal
US20170185422A1 (en) Method and system for generating and controlling composite user interface control
US20140344667A1 (en) Runtime resolution of content references
US10114518B2 (en) Information processing system, information processing device, and screen display method
KR20100056338A (en) Gui test automatic system for improving reusability of test script and method thereof
KR20210095499A (en) Electronic device for using virtual application service and operating method thereof
KR20180020418A (en) Display apparatus and content display method thereof
CN112740161A (en) Terminal, method for controlling terminal, and recording medium having recorded therein program for implementing the method
US20070079245A1 (en) Method and apparatus for providing application with remote-controllable interface
CN110209294B (en) Mouse control method and system and KVM system
TW201533651A (en) Method and computer system for splitting a file and merging files via a motion input on a graphical user interface
JPWO2014024255A1 (en) Terminal and video playback program
US9081487B2 (en) System and method for manipulating an image