WO2014092292A1 - 클라우드 스트리밍 기반의 데이터 이동 방법, 시스템, 클라이언트 단말기 및 서비스장치 - Google Patents

클라우드 스트리밍 기반의 데이터 이동 방법, 시스템, 클라이언트 단말기 및 서비스장치 Download PDF

Info

Publication number
WO2014092292A1
WO2014092292A1 PCT/KR2013/007656 KR2013007656W WO2014092292A1 WO 2014092292 A1 WO2014092292 A1 WO 2014092292A1 KR 2013007656 W KR2013007656 W KR 2013007656W WO 2014092292 A1 WO2014092292 A1 WO 2014092292A1
Authority
WO
WIPO (PCT)
Prior art keywords
object file
service apparatus
client terminal
data
sub
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2013/007656
Other languages
English (en)
French (fr)
Inventor
배태면
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Planet Co Ltd
Original Assignee
SK Planet Co Ltd
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 SK Planet Co Ltd filed Critical SK Planet Co Ltd
Publication of WO2014092292A1 publication Critical patent/WO2014092292A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Definitions

  • the present invention relates to a data streaming method and system based on cloud streaming, and more particularly, when a data movement is requested while the application is executed, the object file for the application stored in the sub service apparatus is divided into binary codes.
  • the present invention relates to a cloud streaming-based data movement method, system, client terminal, and service apparatus that perform data movement using a divided object file.
  • the client terminal with low performance has a difficulty in processing a large amount of video, etc., so that the corresponding data is processed through a cloud server in a remote location, and the client terminal receives and displays only the processed result screen from the client terminal.
  • Cloud computing technology is being used.
  • IT information technology
  • Cloud computing can be broadly divided into three areas: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS).
  • SaaS is a form of providing a software application service. Unlike existing Active Server Pages (ASP) that provide uniform functions and interfaces in each company's work environment, the Web 2.0 technology and XML ( eXtensible Makeup Language) is connected service.
  • PaaS provides a standardized platform as a service, and provides a platform that can be integrated in the form of Open API when SaaS is used and encounters limitations with integration with other applications.
  • IaaS provides infrastructure, such as servers, storage, and networks, as a service. In order to service software, IaaS will require a space called Internet Data Center (IDC) and servers, storage, and network equipment within the space. When you make these things into a cloud environment, you can use infrastructure resources as needed.
  • IDC Internet Data Center
  • the service device providing the cloud computing service inputs data movement from the client terminal while the application is running, one service device that stores all the data handles it and thus data loss may occur during data processing. And a problem that requires a lot of storage space in the service device occurs.
  • an object of the present invention is to check the object file related to the data movement in the sub-service device in which the object file of the application provided from the main service device is stored when data movement is requested during the execution of the application.
  • the present invention provides a cloud streaming-based data movement method, a system, a service device, and a client terminal that can be divided into and divided into binary code and apply an object file divided into data movement.
  • the cloud streaming-based data movement system for achieving the above object executes at least one application, requests the sub service apparatus to move data related to the running application, and the sub service.
  • Receives a signal requesting the movement of data related to a specific application divides the object file related to the application into binary codes according to the request, and divides the object file divided into binary codes into the client end.
  • a main service device which stores a sub service device provided in the terminal and a plurality of applications and provides an object file for the applications to the sub service device.
  • the service apparatus communicates with at least one client terminal and transmits and receives a signal for moving data related to at least one application, and an object file for applications from a main service apparatus storing a plurality of applications. Receives a signal requesting the movement of data related to a specific application from a client terminal, and divides an object file related to the corresponding application into binary codes according to the request, and then divides the object file into binary codes. It characterized in that it comprises a service control unit for controlling to provide the movement of data to the client terminal using.
  • the service apparatus characterized in that it further comprises a service storage unit for storing the object file for the plurality of applications received from the main service device, the data obtained by dividing the object file into binary codes.
  • the service communication unit, the service control unit or the service storage unit may be implemented as one or more servers operating on a cloud computing basis.
  • the sub-service apparatus receives an object file for the applications from the main service apparatus that stores a plurality of applications, the sub-service apparatus is at least one client Receiving a signal for requesting movement of data related to a specific application from a terminal; dividing the object file related to the corresponding application into binary codes according to the request; and sub-device subdivided into binary codes And transmitting the object file to the client terminal.
  • the receiving step is a sub-service device receiving the object files for a plurality of applications from the main service device and the sub-service device to the plurality of applications received And storing the object file.
  • the step of receiving, the sub-service apparatus to copy, cut, paste the part or all of the data related to the application from the client terminal and receiving a signal for requesting at least one function of the paste is performed.
  • the step of partitioning the sub-service device to check the data requested to move from the client terminal and the sub-service device converts only the confirmed data to binary code Characterized in that it comprises a step.
  • the transmitting step is characterized in that the sub-service device transmits the object file divided into binary code to the client terminal by applying the streaming scheme.
  • the sub-service device after the step of transmitting, if an error occurs for the object file transmitted to the client terminal, the sub-service device re-segment the object file into binary code and And transmitting, by the sub service apparatus, the divided object file to the client terminal.
  • a computer-readable recording medium recording a program for executing a cloud streaming-based data movement method.
  • the data file when moving (copying, cutting, pasting, etc.) data of an application based on cloud streaming, the data file can be divided into binary codes and provided as a streaming method whenever necessary. Loss can be prevented.
  • the object file when the object file is divided into binary codes and transmitted, the original data can be transmitted as it is and thus all codes that cannot be expressed in machine language format can be transmitted.
  • main service device that performs overall functions for providing cloud-based applications
  • sub service device that manages object files of applications provided from the main service device. load balancing) can help solve problems.
  • FIG. 1 is a diagram illustrating a data streaming system based on cloud streaming according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating a configuration of a client terminal according to an exemplary embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a configuration of a sub service apparatus according to an exemplary embodiment of the present invention.
  • FIG. 4 is a data flowchart illustrating a cloud streaming-based data movement method according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a method of operating a sub service apparatus according to an exemplary embodiment.
  • FIG. 6 is a flowchart illustrating a method of operating a client terminal according to an exemplary embodiment of the present invention.
  • a client terminal according to an exemplary embodiment of the present invention will be described as a representative example of a mobile communication terminal capable of moving data based on cloud streaming through a communication network.
  • the client terminal is not limited to the mobile communication terminal, and all information communication devices and multimedia. It can be applied to various terminals such as a terminal, a wired terminal, a fixed terminal, and an Internet Protocol (IP) terminal.
  • IP Internet Protocol
  • the client terminal may be a mobile phone, a portable multimedia player (PMP), a mobile internet device (MID), a smart phone, a desktop, a tablet computer, a notebook, a netbook.
  • PMP portable multimedia player
  • MID mobile internet device
  • smart phone a desktop, a tablet computer, a notebook, a netbook.
  • a mobile terminal having various mobile communication specifications such as an information communication device.
  • FIG. 1 is a diagram illustrating a data streaming system based on cloud streaming according to an embodiment of the present invention.
  • the client streaming-based data movement system 100 includes a client terminal 10, a main service apparatus 20, a sub service apparatus 30, and a communication network 40.
  • a processor mounted in the client terminal 10 or the service apparatus 20 or 30 according to the present invention may process a program command for executing the cloud streaming-based data movement method of the present invention.
  • this processor may be a single-threaded processor, and in other implementations, the processor may be a multi-threaded processor.
  • the processor is capable of processing instructions stored on memory or storage devices.
  • the communication network 40 performs a series of data transmission / reception operations for data transmission and information exchange between the client terminal 10 and the service apparatuses 20 and 30.
  • the communication network 40 may use various types of communication networks, for example, a wireless LAN (WLAN), a Wi-Fi (Wi-Fi), a Wibro, a Wimax, a High Speed Downlink Packet Access (HSDPA).
  • Wireless communication methods such as Ethernet or wired communication methods such as Ethernet, xDSL (ADSL, VDSL), Hybrid Fiber Coax (HFC), Fiber to The Curb (FTTC), and Fiber To The Home (FTTH) may be used.
  • the communication network 40 is not limited to the above-described communication method, and may include all other communication methods in addition to the above-mentioned communication method well-known or to be developed in the future.
  • the client terminal 10 is connected to the service apparatuses 20 and 30 through the communication network 40 to execute the application based on cloud streaming, and performs all functions for data movement of the application.
  • the client terminal 10 according to the present invention executes a cloud streaming-based application at the user's request.
  • the client terminal 10 requests the sub service apparatus 30 to move data related to the running application.
  • the client terminal 10 receives the object file divided into the binary code from the sub service apparatus 30, and applies the object file divided into the received binary code to the data movement. That is, the client terminal 10 may select specific data as a copy or cut function while executing an application and move to a paste function to another storage location.
  • the moved file may be an object file divided into binary codes. Can be.
  • the main service device 20 is connected to the client terminal 10 and the sub service device 30 through the communication network 40 to provide a function for data movement of an application provided on a cloud streaming basis.
  • the main service apparatus 20 according to the present invention stores a plurality of applications and extracts an object file for the stored applications.
  • the main service apparatus 20 transmits the extracted object file to the sub service apparatus 30 and transmits a signal for storing the extracted object file.
  • the sub service apparatus 30 is connected to the client terminal 10 and the main service apparatus 20 through the communication network 40 to perform a function for providing data of an application provided on a cloud streaming basis.
  • the sub service apparatus 30 receives an object file for applications from the main service apparatus 20 that stores a plurality of applications.
  • the object file is simply a file converted from a source code file written in a programming language into machine language.
  • These object files can be collected and stored in memory, further processed by headers, and an executable file is created.
  • the sub service apparatus 30 receives a signal for requesting movement of data related to a specific application from the client terminal 10, and divides an object file related to the corresponding application into binary codes according to a request of the client terminal 10.
  • binary code is binary code represented by only two numbers, 0 and 1, and is applied to a non-text file such as an executable file.
  • the binary code is a program or a file that the computer reads and uses.
  • an object file related to data that is required to be moved during execution of an application is a file that a compiler or assembler can generate while processing a source code file, and includes binary code (binary code).
  • the object file may include machine language as the only essential element, and the object files for the embedded system do not include other files except the machine language.
  • the object files are for connection or debug, but may include runtime, relocation information, data for use as code of a program symbol, and the like for other debug information. That is, when the source code is compiled through the compiler's library, it is created as an object file consisting of machine language and symbols that cannot be interpreted by humans.
  • the object file divided into binary codes is data encoded in binary code format, and the binary file format may be interpreted as a character string.
  • the object file divided into binary codes can be a complete text file because it consists only of string data without format information.
  • a binary file that is actually executed is created.
  • an object file divided into binary may be composed of binary codes such as 01001110, 10001111, and the like.
  • the sub service apparatus 30 transmits the object file divided into binary codes to the client terminal 10.
  • the object file of the corresponding data when moving (copying, cutting, pasting, etc.) the data of the application based on cloud streaming, the object file of the corresponding data can be divided into binary codes so that the streaming method can be provided whenever necessary. Data loss can be prevented.
  • the object file when the object file is divided into binary codes and transmitted, the original data can be transmitted as it is and thus all codes that cannot be expressed in machine language format can be transmitted.
  • it is divided into a main service device that performs overall functions for providing cloud-based applications, and a sub service device that manages object files of applications provided from the main service device. load balancing) can help solve problems.
  • FIG. 2 is a diagram illustrating a configuration of a client terminal according to an exemplary embodiment of the present invention.
  • the client terminal 10 includes a control unit 11, an input unit 12, a display unit 13, a storage unit 14, an audio processing unit 15, and a communication unit 16.
  • the control unit 11 includes an application execution module 11a.
  • the input unit 12 receives various information such as numeric and text information, and transmits a signal input in connection with setting various functions and controlling functions of the client terminal 10 to the control unit 11.
  • the input unit 12 may include at least one of a keypad and a touch pad generating an input signal according to a user's touch or manipulation.
  • the input unit 12 may be configured in the form of a single touch panel (or touch screen) together with the display unit 13 to simultaneously perform input and display functions.
  • the input unit 12 may be any type of input means that can be developed in the future, in addition to input devices such as a keyboard, a keypad, a mouse, a joystick, and the like.
  • the input unit 12 when executing the application based on cloud streaming, input signal (ID, password) for user authentication, input signal for requesting the execution of the application, for moving the data related to the application Input a signal or the like.
  • the display unit 13 displays information on a series of operation states and operation results generated during the functioning of the terminal 10.
  • the display unit 13 may display a menu of the client terminal 10 and user data input by the user.
  • the display unit 13 may include a liquid crystal display (LCD), a thin film transistor LCD (TFT-LCD), organic light emitting diodes (OLED), a light emitting diode (LED), an active matrix organic LED (AMOLED), and a flexible display (Flexible). display) and three-dimensional display.
  • the display unit 13 may be configured in the form of a touch screen. As such, when the display unit 13 is formed in the form of a touch screen, the display unit 13 may perform some or all of the functions of the input unit 12. have.
  • the display unit 13 according to the present invention outputs a process for executing user authentication, an execution screen of the application, a screen for moving the data of the application, and the like.
  • the storage unit 14 is a device for storing data.
  • the storage unit 14 includes a main memory device and an auxiliary memory device, and stores an application program required for the functional operation of the client terminal 10.
  • the storage unit 14 may largely include a program area and a data area.
  • the program area according to the present invention stores an operating system for booting the client terminal 10, an authentication program for user authentication, a program for moving data selected during application execution, and the like.
  • the data area is an area in which data generated according to the use of the client terminal 10 is stored.
  • the data area according to the present invention stores authentication data for user authentication, an object file divided into binary codes provided from the sub service apparatus 30, and the like.
  • the audio processor 15 transmits an audio signal input from a speaker SPK or a microphone MIC for reproducing and outputting an audio signal to the controller 11.
  • the audio processor 15 may convert the analog audio signal input through the microphone into a digital format and transmit the digital signal to the controller 11.
  • the audio processor 15 may convert an audio signal of a digital format output from the controller 11 into an analog signal and output the analog signal through a speaker.
  • the audio processor 15 according to the present invention outputs an effect sound or an execution sound according to the execution of the application.
  • the communication unit 16 performs a function for transmitting and receiving data through the service apparatuses 20 and 30 and the communication network 40.
  • the communication unit 16 includes RF transmitting means for up-converting and amplifying the frequency of the transmitted signal, and RF receiving means for low-noise-amplifying and down-converting the received signal.
  • the communication unit 16 may include at least one of a wireless communication module (not shown) and a wired communication module (not shown).
  • the wireless communication module is a component for transmitting and receiving data according to a wireless communication method.
  • any one of a wireless network communication module, a wireless LAN communication module, and a wireless fan communication module may be used. To transmit or receive data to or from the service devices 20 and 30.
  • the wired communication module is for transmitting and receiving data by wire.
  • the wired communication module may transmit or receive data to the client terminal 10 and the service apparatuses 20 and 30 by accessing the communication network 40 through a wired line. That is, the client terminal 10 may be connected to the communication network 40 using a wired communication module, and may transmit and receive data with the service apparatuses 20 and 30 through the communication network 40.
  • the communication unit 16 according to the present invention communicates with the sub service apparatus 30 to transmit and receive a signal for data movement requested during application execution.
  • the control unit 11 may be a process device that drives an operating system (OS) and each component.
  • the control unit 11 may be a central processing unit (CPU).
  • the controller 11 moves the operating system from the auxiliary storage device to the main storage device, performs booting to drive the operating system, and performs necessary signal control. do.
  • the control unit 11 according to the present invention is connected to the service device (20, 30) on the basis of cloud streaming in response to a user's request to execute the application. Then, the controller 11 requests the sub service apparatus 30 to move data related to the running application. Thereafter, the control unit 11 receives the object file divided into the binary code from the sub service apparatus 30 and moves the data using the object file divided into the received binary codes.
  • control unit 11 includes an application execution module (11a).
  • the application execution module 11a executes an application by accessing the service devices 20 and 30 based on cloud streaming.
  • the application execution module 11a moves the corresponding data according to a signal for requesting data movement during application execution.
  • FIG. 3 is a diagram illustrating a configuration of a sub service apparatus according to an exemplary embodiment of the present invention.
  • the sub service apparatus 30 includes a service control unit 31, a service storage unit 32, and a service communication unit 33.
  • the service control unit 31 includes a binary partition module 31a and a data movement module 31b
  • the service storage unit 32 includes an object file 32a and binary code data 32b.
  • the service communication unit 33 performs a function of transmitting and receiving data for executing the game application with the client terminal 10 through the communication network 40.
  • the service communication unit 33 according to the present invention communicates with the client terminal 10 to transmit and receive a signal related to the movement of data generated during the execution of the application.
  • the service storage unit 32 stores all programs according to the function execution of the sub service apparatus 30.
  • the service storage unit 32 according to the present invention is a program for executing the application on the basis of cloud streaming, a program for storing the object files for the applications delivered from the main service device 20, the request from the client terminal 10 Stores a program that divides the corresponding object file into binary codes related to data movement, and a program that performs functions related to data movement.
  • the service storage unit 32 stores the object file 32a for the applications transmitted from the main service device 20 and the binary code data 32b obtained by dividing the object file into binary codes.
  • the object file 32a becomes a file which simply converts a source code file written in a programming language into machine language.
  • the binary code data 32b is binary code represented by only two digits 0 and 1 of the computer.
  • the binary code data 32b is applied to a file other than text such as an executable file, and becomes a program or a file that the computer reads and uses.
  • the service control unit 31 may be a process device for driving the operating system and each component of the sub service apparatus 30.
  • the service control unit 31 according to the present invention receives the object file for the applications from the main service device 20 that stores a plurality of applications.
  • the service controller 31 receives the object files for the plurality of applications from the main service device 20 and stores the object files related to the received plurality of applications.
  • the service control unit 31 receives a signal for requesting movement of data related to a specific application from the client terminal 10.
  • the service controller 31 may receive a signal for requesting a function for copying, cutting, and pasting a part or all of data related to an application from the client terminal 10.
  • the service control unit 31 divides the object file related to the corresponding application into binary codes according to the request of the client terminal 10. At this time, the service control unit 31 checks the data requested to move from the client terminal 10, and converts only the checked data into a binary code.
  • the object file may be composed of a code in which corresponding data is converted to hexadecimal. However, when divided into binary code, it can be converted into two argument codes.
  • the service control unit 31 transmits the object file divided into binary codes to the client terminal 10.
  • the service control unit 31 transmits the object file divided by the binary code in a streaming method.
  • the service control unit 31 repartitions the object file into a binary code, and retransmits the divided object file to the client terminal 10.
  • the service control unit 31 includes a binary partition module 31a and a data movement module 31b.
  • the binary division module 31a extracts the object file of the corresponding data and divides the extracted object file into binary codes. do.
  • the data movement module 31b transmits the divided object file through the binary partition module 31a to the client terminal 10 requested for data movement, and supports data movement.
  • the service apparatuses 20 and 30 configured as described above may be implemented as one or more servers operating in a server-based computing-based scheme or a cloud scheme.
  • data for executing an application based on cloud streaming using a cloud computing device may be provided through a cloud computing function that may be permanently stored in a cloud computing device on the Internet.
  • cloud computing utilizes Internet technologies in digital terminals such as desktops, tablet computers, laptops, netbooks, and smartphones to virtualize information technology (IT) resources such as hardware (servers, storage, networks, etc.) and software. It refers to a technology that provides services on demand (database, security, web server, etc.), services, and data.
  • the memory mounted in the client terminal 10 or the service apparatuses 20 and 30 stores information in the apparatus.
  • the memory is a computer readable medium.
  • the memory may be a volatile memory unit, and for other implementations, the memory may be a nonvolatile memory unit.
  • the storage device is a computer readable medium.
  • the storage device may include, for example, a hard disk device, an optical disk device, or some other mass storage device.
  • the specification and drawings describe exemplary device configurations, the functional operations and subject matter implementations described herein may be embodied in other types of digital electronic circuitry, or modified from the structures and structural equivalents disclosed herein. It may be implemented in computer software, firmware or hardware, including, or a combination of one or more of them. Implementations of the subject matter described herein relate to one or more computer program products, ie computer program instructions encoded on a program storage medium of tangible type for controlling or by the operation of an apparatus according to the invention. It may be implemented as the above module.
  • the computer readable medium may be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of materials affecting a machine readable propagated signal, or a combination of one or more thereof.
  • FIG. 4 is a data flowchart illustrating a cloud streaming-based data movement method according to an embodiment of the present invention.
  • the main service apparatus 20 first transfers an object file according to the execution of an application to the sub service apparatus 30 in step S11.
  • the sub service apparatus 30 stores the object file transferred from the main service apparatus 20 in step S13.
  • the main service apparatus 20 stores all files related to the execution of the application, and the sub service apparatus 30 stores only the object file of the application.
  • the object file is simply a file converted from a source code file written in a programming language into machine language. These object files can be collected and stored in memory, further processed by headers, and an executable file is created.
  • the client terminal 10 executes an application on a cloud streaming basis in association with the main service apparatus 20 and the sub service apparatus 30 in step S15.
  • the client terminal 10 detects a selection signal for moving specific data in step S17.
  • the selection signal for moving the specific data may include a command for copying, cutting, and pasting data. If the data movement is selected, the client terminal 10 requests the sub service apparatus 30 to move the data in step S19.
  • the sub service apparatus 30 checks the object file related to the data movement according to the request of the client terminal 10 in step S21.
  • the sub service apparatus 30 divides the object file identified in step S23 into binary codes.
  • the object file divided into binary codes is binary code represented by only two numbers of 0 and 1 of the computer.
  • the object file is applied to a file other than a text such as an executable file, and is a file that a program or a computer reads and uses.
  • an object file associated with data that is required to be moved during execution of an application is a file that a compiler or assembler can create while processing a source code file, and contains binary code (binary code).
  • the object file may include machine language as the only essential element, and the object files for the embedded system may not include other files except the machine language.
  • the object files are for connection or debug purposes, but may include data for use in runtime, relocation information, and code of a program symbol for other debug information. That is, when the source code is compiled through the compiler's library, it is created as an object file consisting of machine language and symbols that cannot be interpreted by humans.
  • the object file divided into binary codes is data encoded in binary code format, and the binary file format may be interpreted as a character string.
  • the object file divided into binary codes can be a complete text file because it consists only of string data without format information.
  • a binary file that is actually executed is created.
  • an object file divided into binary may be composed of binary codes such as 01001110, 10001111, and the like.
  • the sub service apparatus 30 transmits the object file divided into binary codes to the client terminal 10 in step S25.
  • the client terminal 10 performs data movement using the object file received from the sub service apparatus 30 in step S27.
  • the object file of the corresponding data when moving (copying, cutting, pasting, etc.) the data of the application based on cloud streaming, the object file of the corresponding data can be divided into binary codes so that the streaming method can be provided whenever necessary. Data loss can be prevented.
  • the service device is divided into a main service device that performs the function for providing the entire cloud streaming-based application, and a sub-service device that manages the object file of the application provided from the main service device is divided into storage management problems in the service device, It can help you solve load balancing problems.
  • FIG. 5 is a flowchart illustrating an operation of a sub service apparatus according to an exemplary embodiment of the present invention.
  • the sub service apparatus 30 receives an object file related to the execution of an application from the main service apparatus 20, which stores a plurality of applications, in step S31 and stores the same. That is, the sub service apparatus 30 receives the object files for the plurality of applications from the main service apparatus 20 and stores the object files for the plurality of the received applications.
  • the sub service apparatus 30 provides an application based on cloud streaming at the request of the client terminal 10 in step S33. Then, the sub service apparatus 30 checks whether data movement is requested during application execution in step S35. That is, the sub service apparatus 30 receives a signal for requesting movement of data related to a specific application from the client terminal 10. In this case, the sub service apparatus 30 may receive a signal for requesting a function for copying, cutting, and pasting a part or all of data related to an application from the client terminal 10.
  • the sub service apparatus 30 checks the object file related to the data movement in step S37.
  • the sub service apparatus 30 divides the object file associated with the execution of the corresponding application into binary codes according to the request of the client terminal 10.
  • the sub service apparatus 30 checks the data requested to be moved from the client terminal 10 and converts only the checked data into a binary code.
  • the sub service apparatus 30 transmits the object file divided by the binary code to the client terminal 10 in step S41.
  • the sub service apparatus 30 transmits the object file divided by the binary code in a streaming method.
  • the sub service apparatus 30 checks whether an error occurs due to the data movement of the client terminal 10 in step S43. At this time, when an error with respect to the object file transmitted to the client terminal 10 occurs, the sub service apparatus 30 repartitions the object file into binary codes and retransmits the divided object file to the client terminal 10.
  • FIG. 6 is a flowchart illustrating an operation of a client terminal according to an embodiment of the present invention.
  • the client terminal 10 executes a cloud streaming based application according to a user's request in step S51.
  • the client terminal 10 requests the sub service apparatus 30 to move data related to the application.
  • the client terminal 10 determines whether an object file for moving data is received from the sub service apparatus 30 in step S55. At this time, the object file is an object file divided into binary codes. On the other hand, if the object file for data movement is not received for a predetermined time, the client terminal 10 requests the sub service apparatus 30 to retransmit the object file for data movement.
  • the client terminal 10 When the object file is received, the client terminal 10 performs data movement using the object file divided into the binary codes received in step S57. Thereafter, the client terminal 10 checks whether there is an error about data movement in step S59. If an error occurs, the client terminal 10 may request the sub service apparatus 30 to move specific data again.
  • Computer-readable media suitable for storing computer program instructions and data include, for example, magnetic media such as hard disks, floppy disks, and magnetic tape, such as magnetic disks, compact disk read only memory (CD-ROM), and DVDs.
  • Optical Media such as Digital Video Disk, Magnetic-Optical Media such as Floppy Disk, and Read Only Memory, RAM, Random Semiconductor memories such as access memory (EPM), flash memory, erasable programmable ROM (EPROM), and electrically erasable programmable ROM (EEPROM).
  • the processor and memory can be supplemented by or integrated with special purpose logic circuitry.
  • Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler.
  • Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
  • the present invention relates to a data streaming method and system based on cloud streaming.
  • the object file for the application stored in the sub service apparatus is divided into binary codes, and the data is divided using the divided object file. Perform the move.
  • data loss can be provided by dividing the object file of the data into binary codes and providing the data whenever necessary. Can be prevented.
  • the service device is divided into a main service device that performs the function for providing the entire cloud streaming-based application, and a sub-service device that manages the object file of the application provided from the main service device is divided into storage management problems in the service device, It can help solve load balancing problems. This has industrial applicability because it is not only sufficient marketable or business possibility, but also practically evident.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 클라우드 스트리밍 기반의 데이터 이동 방법 및 시스템에 관한 것으로, 어플리케이션 실행 중에 데이터 이동이 요청되면, 서브 서비스장치에 저장된 어플리케이션에 대한 오브젝트 파일을 바이너리 코드로 분할하고, 분할된 오브젝트 파일을 이용하여 데이터 이동을 수행함으로써, 클라우드 스트리밍 기반으로 어플리케이션의 데이터를 이동(복사, 잘라내기, 붙여넣기 등)하는 경우, 해당 데이터의 오브젝트 파일을 바이너리 코드로 분할하여 필요 시 마다 스트리밍 방식으로 제공할 수 있기 때문에 데이터 손실을 방지 할 수 있다. 또한, 서비스장치가 전체적인 클라우드 스트리밍 기반의 어플리케이션 제공을 위한 기능을 수행하는 메인 서비스장치와, 메인 서비스장치로부터 제공되는 어플리케이션의 오브젝트 파일을 관리하는 서브 서비스장치로 구분되어 서비스장치 내의 스토리지 관리 문제와, 로드 밸런싱(load balancing) 문제 해결하는데 도움을 줄 수 있다.

Description

클라우드 스트리밍 기반의 데이터 이동 방법, 시스템, 클라이언트 단말기 및 서비스장치
본 발명은 클라우드 스트리밍 기반의 데이터 이동 방법 및 시스템에 관한 것으로, 더욱 상세하게는 어플리케이션 실행 중에 데이터 이동이 요청되면, 서브 서비스장치에 저장된 어플리케이션에 대한 오브젝트 파일을 바이너리 코드(Binary code)로 분할하고, 분할된 오브젝트 파일을 이용하여 데이터 이동을 수행하는 클라우드 스트리밍 기반의 데이터 이동 방법, 시스템, 클라이언트 단말기 및 서비스장치에 관한 것이다.
이동통신망의 발달과 단말기 사양의 발전에 따라 종래의 단순한 통신장치 또는 정보 제공 장치의 범주를 벗어나 이동통신단말기는 현대인의 필수 소지품이 되었고, 토탈 엔터테인먼트 기기로 진화해 가고 있는 추세에 있다.
최근에는 성능이 낮은 클라이언트 단말기가 대용량의 영상 등을 처리하는데 무리가 있으므로 원격지에 있는 클라우드 서버(Cloud server)를 통해 해당 데이터를 처리하도록 하고, 그 처리된 결과 화면만을 클라이언트 단말기에서 수신하여 디스플레이하는 클라우딩 컴퓨팅(Cloud computing) 기술이 사용되고 있다.
따라서, 클라우드 컴퓨팅 환경에서는 개별 기술에 대한 전문성이 없이도 서비스를 이용하는 형태로 IT(Information Technology) 환경을 구축하고 이용할 수 있게 되었다.
클라우딩 컴퓨팅은 크게 SaaS(Software as a Service), PaaS(Platform as a Service), IaaS(Infrastructure as a Service) 등의 3 개 분야로 나눌 수 있다. 여기서, SaaS는 소프트웨어 어플리케이션 서비스를 제공하는 형태로서, 각 기업의 업무환경이 다른데 획일화 된 기능과 인터페이스를 제공하는 기존의 ASP(Active Server Pages)와 달리 사용자의 입맛에 맞춰 웹 2.0 기술과 XML(eXtensible Makeup Language) 기술 등이 접속된 서비스이다. 또한, PaaS는 표준화 된 플랫폼을 서비스로 제공하는 것으로서, SaaS를 사용하다 다른 어플리케이션들과 통합의 한계에 부딪히게 될 때 Open API 형태로 통합할 수 있는 플랫폼을 제공한다. 또한, IaaS는 인프라스트럭처, 예를 들면, 서버나 스토리지, 네트워크들을 서비스로 제공하는 것으로서, 소프트웨어를 서비스하기 위해서 IDC(Internet Data Center)라는 공간과 그 공간 안에서 서버나 스토리지, 네트워크 장비들이 필요하게 될 때 이런 것들을 클라우드 환경으로 만들어 필요에 따라 인프라 자원을 사용할 수 있게 하는 서비스이다.
한편, 클라우드 컴퓨팅 서비스를 제공하는 서비스장치는 어플리케이션 실행 중에 클라이언트 단말기로부터 데이터 이동을 위한 입력이 발생하는 경우, 모든 데이터를 저장하고 있는 하나의 서비스장치에서 이를 처리하기 때문에 데이터 처리 과정에서 데이터 손실이 발생할 수 있고, 서비스장치 내의 저장 공간이 많이 필요한 문제점이 발생한다.
이러한 종래의 문제점을 해결하기 위하여, 본 발명의 목적은 어플리케이션 실행 중에 데이터 이동이 요청되면, 메인 서비스장치로부터 제공되는 어플리케이션의 오브젝트 파일이 저장된 서브 서비스장치에서 데이터 이동과 관련된 오브젝트 파일을 확인하여 바이너리 코드로 분할하고, 바이너리 코드로 분할된 오브젝트 파일을 데이터 이동에 적용할 수 있는 클라우드 스트리밍 기반의 데이터 이동 방법, 시스템, 서비스장치 및 클라이언트 단말기를 제공하고자 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 클라우드 스트리밍 기반의 데이터 이동 시스템은 적어도 하나의 어플리케이션을 실행하고, 실행 중인 어플리케이션과 관련된 데이터의 이동을 서브 서비스장치로 요청하고, 서브 서비스장치로부터 제공되는 바이너리 코드(Binary code)로 분할된 오브젝트 파일을 이용하여 데이터를 이동하는 클라이언트 단말기와, 다수의 어플리케이션을 저장하고 있는 메인 서비스장치로부터 어플리케이션들에 대한 오브젝트 파일을 전달받고, 클라이언트 단말기로부터 특정 어플리케이션과 관련된 데이터의 이동을 요청하는 신호를 수신하고, 요청에 따라 해당되는 어플리케이션과 관련된 오브젝트 파일을 바이너리 코드(Binary code)로 분할하고, 바이너리 코드로 분할된 오브젝트 파일을 클라이언트 단말기로 제공하는 서브 서비스장치 및 다수의 어플리케이션을 저장하고, 어플리케이션들에 대한 오브젝트 파일을 서브 서비스장치로 제공하는 메인 서비스장치를 포함하는 것을 특징으로 한다.
본 발명에 따른 서비스장치는 적어도 하나의 클라이언트 단말기와 통신하여 적어도 하나의 어플리케이션과 관련된 데이터의 이동을 위한 신호를 송수신하는 서비스통신부 및 다수의 어플리케이션을 저장하고 있는 메인 서비스장치로부터 어플리케이션들에 대한 오브젝트 파일을 전달받고, 클라이언트 단말기로부터 특정 어플리케이션과 관련된 데이터의 이동을 요청하는 신호를 수신하고, 요청에 따라 해당되는 어플리케이션과 관련된 오브젝트 파일을 바이너리 코드(Binary code)로 분할하고, 바이너리 코드로 분할된 오브젝트 파일을 이용하여 데이터의 이동을 클라이언트 단말기로 제공하도록 제어하는 서비스제어부를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 서비스장치에 있어서, 메인 서비스장치부터 수신되는 다수의 어플리케이션에 대한 오브젝트 파일, 오브젝트 파일을 바이너리 코드로 분할한 데이터를 저장하는 서비스저장부를 더 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 서비스장치에 있어서, 서비스통신부, 서비스제어부 또는 서비스저장부가 클라우드 컴퓨팅 기반으로 동작하는 하나 이상의 서버로 구현되는 것을 특징으로 한다.
본 발명의 실시 예에 따른 클라우드 스트리밍 기반의 데이터 이동 방법은 서브 서비스장치가 다수의 어플리케이션을 저장하고 있는 메인 서비스장치로부터 어플리케이션들에 대한 오브젝트 파일을 전달받는 단계와, 서브 서비스장치가 적어도 하나의 클라이언트 단말기로부터 특정 어플리케이션과 관련된 데이터의 이동을 요청하는 신호를 수신하는 단계와, 서브 서비스장치가 요청에 따라 해당되는 어플리케이션과 관련된 오브젝트 파일을 바이너리 코드로 분할하는 단계 및 서브 서비스장치가 바이너리 코드로 분할된 오브젝트 파일을 클라이언트 단말기로 전송하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 클라우드 스트리밍 기반의 데이터 이동 방법에 있어서, 전달받는 단계는 서브 서비스장치가 다수의 어플리케이션에 대한 오브젝트 파일을 메인 서비스장치부터 수신하는 단계 및 서브 서비스장치가 수신된 다수의 어플리케이션에 대한 오브젝트 파일을 저장하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 클라우드 스트리밍 기반의 데이터 이동 방법에 있어서, 수신하는 단계는 서브 서비스장치가 클라이언트 단말기로부터 어플리케이션과 관련된 데이터의 일부 또는 전체에 대해 복사(copy), 잘라내기(cut), 붙여넣기(paste) 중 적어도 하나의 기능을 요청하는 신호를 수신하는 것을 특징으로 한다.
또한, 본 발명에 따른 클라우드 스트리밍 기반의 데이터 이동 방법에 있어서, 분할하는 단계는 서브 서비스장치가 클라이언트 단말기로부터 이동이 요청된 데이터를 확인하는 단계 및 서브 서비스장치가 확인된 데이터만을 바이너리 코드로 변환하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 클라우드 스트리밍 기반의 데이터 이동 방법에 있어서, 전송하는 단계는 서브 서비스장치가 바이너리 코드로 분할된 오브젝트 파일을 스트리밍 방식을 적용하여 클라이언트 단말기로 전송하는 것을 특징으로 한다.
또한, 본 발명에 따른 클라우드 스트리밍 기반의 데이터 이동 방법에 있어서, 전송하는 단계 이후에, 클라이언트 단말기로 전송한 오브젝트 파일에 대한 오류가 발생한 경우, 서브 서비스장치가 오브젝트 파일을 바이너리 코드로 재분할하는 단계 및 서브 서비스장치가 분할된 오브젝트 파일을 클라이언트 단말기로 재전송하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 과제 해결을 위한 또 다른 수단으로서, 클라우드 스트리밍 기반의 데이터 이동 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체를 제공한다.
본 발명에 따르면, 클라우드 스트리밍 기반으로 어플리케이션의 데이터를 이동(복사, 잘라내기, 붙여넣기 등)하는 경우, 해당 데이터의 오브젝트 파일을 바이너리 코드로 분할하여 필요 시 마다 스트리밍 방식으로 제공할 수 있기 때문에 데이터 손실을 방지 할 수 있다. 즉, 오브젝트 파일을 바이너리 코드로 분할하여 전송하는 경우, 원본 데이터를 그대로 전송할 수 있어 기계어 형식으로 표현하지 못하는 코드까지 모두 전송할 수 있다.
또한, 클라우드 스트리밍 기반의 어플리케이션 제공을 위한 전반적인 기능을 수행하는 메인 서비스장치와, 메인 서비스장치로부터 제공되는 어플리케이션의 오브젝트 파일을 관리하는 서브 서비스장치로 구분되어 서비스장치 내의 스토리지 관리 문제와, 로드 밸런싱(load balancing) 문제 해결하는데 도움을 줄 수 있다.
도 1은 본 발명의 실시 예에 따른 클라우드 스트리밍 기반의 데이터 이동 시스템을 나타내는 도면이다.
도 2는 본 발명의 실시 예에 따른 클라이언트 단말기의 구성을 나타내는 도면이다.
도 3은 본 발명의 실시 예에 따른 서브 서비스장치의 구성을 나타내는 도면이다.
도 4는 본 발명의 실시 예에 따른 클라우드 스트리밍 기반의 데이터 이동 방법을 설명하기 위한 데이터 흐름도이다.
도 5는 본 발명의 실시 예에 따른 서브 서비스장치의 동작 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시 예에 따른 클라이언트 단말기의 동작 방법을 설명하기 위한 흐름도이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하에서는 본 발명의 실시 예에 따른 클라이언트 단말기는 통신망을 통해 클라우드 스트리밍 기반으로 데이터를 이동할 수 있는 이동통신단말기를 대표적인 예로서 설명하지만 클라이언트 단말기는 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말기, 유선 단말기, 고정형 단말기 및 IP(Internet Protocol) 단말기 등의 다양한 단말기에 적용될 수 있다. 또한, 클라이언트 단말기는 휴대폰, PMP(Portable Multimedia Player), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net book) 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말기일 때 유리하게 활용될 수 있다.
도 1은 본 발명의 실시 예에 따른 클라우드 스트리밍 기반의 데이터 이동 시스템을 나타내는 도면이다.
도 1을 참조하면, 본 발명에 따른 클라이언트 스트리밍 기반의 데이터 이동 시스템(100)은 클라이언트 단말기(10), 메인 서비스장치(20), 서브 서비스장치(30) 및 통신망(40)으로 구성된다.
또한, 본 발명에 따른 클라이언트 단말기(10)나 서비스장치(20, 30)에 탑재되는 프로세서는 본 발명의 클라우드 스트리밍 기반의 데이터 이동 방법을 실행하기 위한 프로그램 명령을 처리할 수 있다. 일 구현 예에서, 이 프로세서는 싱글 쓰레드(Single-threaded) 프로세서일 수 있으며, 다른 구현 예에서 본 프로세서는 멀티 쓰레드(Multi-threaded) 프로세서일 수 있다. 나아가 본 프로세서는 메모리 혹은 저장 장치 상에 저장된 명령을 처리하는 것이 가능하다.
통신망(40)은 클라이언트 단말기(10) 및 서비스장치(20, 30) 사이의 데이터 전송 및 정보 교환을 위한 일련의 데이터 송수신 동작을 수행한다. 특히, 통신망(40)은 다양한 형태의 통신망이 이용될 수 있으며, 예컨대, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신방식 또는 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coax), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신방식이 이용될 수 있다. 한편, 통신망(40)은 상기에 제시된 통신방식에 한정되는 것은 아니며, 상술한 통신 방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.
클라이언트 단말기(10)는 통신망(40)을 통해 서비스장치(20, 30)와 연결되어 클라우드 스트리밍 기반으로 어플리케이션을 실행하고, 어플리케이션의 데이터 이동을 위한 모든 기능을 수행한다. 특히, 본 발명에 따른 클라이언트 단말기(10)는 사용자의 요청에 따라 클라우드 스트리밍 기반의 어플리케이션을 실행한다. 그리고, 클라이언트 단말기(10)는 실행 중인 어플리케이션과 관련된 데이터의 이동을 서브 서비스장치(30)로 요청한다. 이후, 클라이언트 단말기(10)는 서브 서비스장치(30)로부터 바이너리 코드로 분할된 오브젝트 파일을 수신하고, 수신된 바이너리 코드로 분할된 오브젝트 파일을 데이터 이동에 적용한다. 즉, 클라이언트 단말기(10)는 어플리케이션 실행 중에 특정 데이터를 복사 또는 잘라내기 기능으로 선택하고, 다른 저장 위치에 붙여넣기 기능으로 이동할 수 있는데, 이때, 이동되는 파일은 바이너리 코드로 분할된 오브젝트 파일이 될 수 있다.
메인 서비스장치(20)는 통신망(40)을 통해 클라이언트 단말기(10) 및 서브 서비스장치(30)와 연결되어 클라우드 스트리밍 기반으로 제공되는 어플리케이션의 데이터 이동을 위한 기능을 제공한다. 특히, 본 발명에 따른 메인 서비스장치(20)는 다수의 어플리케이션들을 저장하고, 저장된 어플리케이션들에 대한 오브젝트 파일을 추출한다. 그리고, 메인 서비스장치(20)는 추출된 오브젝트 파일을 서브 서비스장치(30)로 전송하고, 이를 저장하기 위한 신호를 전송한다.
서브 서비스장치(30)는 통신망(40)을 통해 클라이언트 단말기(10), 메인 서비스장치(20)와 연결되어 클라우드 스트리밍 기반으로 제공되는 어플리케이션의 데이터 제공을 위한 기능을 수행한다. 특히, 본 발명에 따른 서브 서비스장치(30)는 다수의 어플리케이션을 저장하고 있는 메인 서비스장치(20)로부터 어플리케이션들에 대한 오브젝트 파일을 전달받는다. 여기서, 오브젝트 파일은 프로그래밍 언어로 쓰여진 소스코드 파일을 단순히 기계어로 바꾼 파일이 된다. 이러한 오브젝트 파일을 모아서 메모리에 저장할 수 있고, 추가적으로 헤더를 붙여 가공한 후, 실행파일이 생성된다.
서브 서비스장치(30)는 클라이언트 단말기(10)로부터 특정 어플리케이션과 관련된 데이터의 이동을 요청하는 신호를 수신하고, 클라이언트 단말기(10)의 요청에 따라 해당되는 어플리케이션과 관련된 오브젝트 파일을 바이너리 코드로 분할한다. 예를 들어, 바이너리 코드는 컴퓨터의 0과 1 두 개의 숫자만으로 표현되는 이진코드로서, 실행 파일과 같은 텍스트 이외의 파일에 적용되며, 프로그램이나 컴퓨터가 읽어서 사용하는 파일이 된다. 즉, 어플리케이션의 실행 중에 이동이 요청되는 데이터와 관련된 오브젝트 파일은 컴파일러나 어셈블러가 소스코드 파일을 처리하는 도중에 만들 수 있는 파일로, 이진 코드(바이너리 코드)를 포함한다. 여기서, 오브젝트 파일에는 유일한 필수적인 요소로 기계어가 포함될 수 있으며, 임베디드 시스템을 위한 오브젝트 파일들은 기계어 이외에는 다른 파일을 포함하지 않는다. 이때, 오브젝트 파일들은 연결 또는 디버그(Debug)를 목적으로 하지만, 다른 디버그 정보를 위해 런타임, 릴로케이션(Relocation) 정보, 프로그램 심볼의 코드로 사용하기 위한 데이터 등을 포함할 수도 있다. 즉, 소스 코드가 컴파일러의 라이브러리를 통해 컴파일 되면, 사람이 해석할 수 없는 기계어 및 기호들로 구성되는 오브젝트 파일로 생성된다.
한편, 바이너리 코드로 분할된 오브젝트 파일은 바이너리 코드 형식으로 인코딩된 데이터로서, 바이너리 파일 형식은 문자열로 해석될 수 있다. 특히, 포맷 정보가 없는 문자열 데이터만으로 이루어지기 때문에 바이너리 코드로 분할된 오브젝트 파일은 완전한 텍스트 파일이 될 수 있다. 또한, 여러 개의 오브젝트 파일들이 하나의 실행파일로 합쳐지면, 실제로 실행되는 바이너리 파일이 만들어 진다. 예컨대, 바이너리로 분할된 오브젝트 파일은 01001110, 10001111 등과 같은 2진수의 코드로 구성될 수 있다.
서브 서비스장치(30)는 바이너리 코드로 분할된 오브젝트 파일을 클라이언트 단말기(10)로 전송한다.
상술한 본 발명의 실시 예에 따른 클라우드 스트리밍 기반의 데이터 이동 시스템(100)에 적용되는 각 장치의 동작 방법을 도 2와 도 3을 참조하여 보다 구체적으로 설명하도록 한다.
이를 통해, 본 발명은 클라우드 스트리밍 기반으로 어플리케이션의 데이터를 이동(복사, 잘라내기, 붙여넣기 등)하는 경우, 해당 데이터의 오브젝트 파일을 바이너리 코드로 분할하여 필요 시 마다 스트리밍 방식으로 제공할 수 있기 때문에 데이터 손실을 방지 할 수 있다. 즉, 오브젝트 파일을 바이너리 코드로 분할하여 전송하는 경우, 원본 데이터를 그대로 전송할 수 있어 기계어 형식으로 표현하지 못하는 코드까지 모두 전송할 수 있다. 또한, 클라우드 스트리밍 기반의 어플리케이션 제공을 위한 전반적인 기능을 수행하는 메인 서비스장치와, 메인 서비스장치로부터 제공되는 어플리케이션의 오브젝트 파일을 관리하는 서브 서비스장치로 구분되어 서비스장치 내의 스토리지 관리 문제와, 로드 밸런싱(load balancing) 문제 해결하는데 도움을 줄 수 있다.
도 2는 본 발명의 실시 예에 따른 클라이언트 단말기의 구성을 나타내는 도면이다.
도 2를 참조하면, 본 발명에 따른 클라이언트 단말기(10)는 제어부(11), 입력부(12), 표시부(13), 저장부(14), 오디오처리부(15) 및 통신부(16)로 구성된다. 여기서, 제어부(11)는 어플리케이션 실행모듈(11a)을 포함한다.
입력부(12)는 숫자 및 문자 정보 등의 다양한 정보를 입력 받고, 각종 기능을 설정 및 클라이언트 단말기(10)의 기능 제어와 관련하여 입력되는 신호를 제어부(11)로 전달한다. 또한, 입력부(12)는 사용자의 터치 또는 조작에 따른 입력 신호를 발생하는 키패드와 터치패드 중 적어도 하나를 포함하여 구성될 수 있다. 이때, 입력부(12)는 표시부(13)와 함께 하나의 터치패널(또는 터치스크린(touch screen))의 형태로 구성되어 입력과 표시 기능을 동시에 수행할 수 있다. 또한, 입력부(12)는 키보드, 키패드, 마우스, 조이스틱 등과 같은 입력 장치 외에도 향후 개발될 수 있는 모든 형태의 입력 수단이 사용될 수 있다. 특히, 본 발명에 따른 입력부(12)는 클라우드 스트리밍 기반으로 어플리케이션을 실행하는 경우 사용자 인증을 위한 입력 신호(아이디, 패스워드), 어플리케이션의 실행을 요청하기 위한 입력 신호, 어플리케이션과 관련된 데이터를 이동하기 위한 신호 등을 입력한다.
표시부(13)는 단말기(10)의 기능 수행 중에 발생하는 일련의 동작상태 및 동작결과 등에 대한 정보를 표시한다. 또한, 표시부(13)는 클라이언트 단말기(10)의 메뉴 및 사용자가 입력한 사용자 데이터 등을 표시할 수 있다. 여기서, 표시부(13)는 LCD(Liquid Crystal Display), TFT-LCD(Thin Film Transistor LCD), OLED(Organic Light Emitting Diodes), 발광다이오드(LED), AMOLED(Active Matrix Organic LED), 플렉시블 디스플레이(Flexible display) 및 3차원 디스플레이 등으로 구성될 수 있다. 이때, 표시부(13)는 터치스크린 형태로 구성될 수 있고, 이와 같이, 표시부(13)가 터치스크린 형태로 형성된 경우, 표시부(13)는 입력부(12)의 기능 중 일부 또는 전부를 수행할 수 있다. 특히, 본 발명에 따른 표시부(13)는 사용자 인증을 실행하는 과정, 어플리케이션의 실행 화면, 어플리케이션의 데이터를 이동하는 화면 등을 출력한다.
저장부(14)는 데이터를 저장하기 위한 장치로, 주 기억 장치 및 보조 기억 장치를 포함하고, 클라이언트 단말기(10)의 기능 동작에 필요한 응용 프로그램을 저장한다. 이러한 저장부(14)는 크게 프로그램 영역과 데이터 영역을 포함할 수 있다. 여기서, 단말기(10)는 사용자의 요청에 상응하여 각 기능을 활성화하는 경우, 제어부(11)의 제어 하에 해당 응용 프로그램들을 실행하여 각 기능을 제공하게 된다. 특히, 본 발명에 따른 프로그램 영역은 클라이언트 단말기(10)를 부팅시키는 운영체제, 사용자 인증을 위한 인증 프로그램, 어플리케이션 실행 중에 선택되는 데이터를 이동하는 프로그램 등을 저장한다. 또한, 데이터 영역은 클라이언트 단말기(10)의 사용에 따라 발생하는 데이터가 저장되는 영역이다. 특히, 본 발명에 따른 데이터 영역은 사용자 인증을 위한 인증데이터, 서브 서비스장치(30)로부터 제공되는 바이너리 코드로 분할된 오브젝트 파일 등을 저장한다.
오디오처리부(15)는 오디오 신호를 재생하여 출력하기 위한 스피커(SPK) 또는 마이크(MIC)로부터 입력되는 오디오 신호를 제어부(11)에 전달하는 기능을 수행한다. 이러한 오디오처리부(15)는 마이크를 통해 입력되는 아날로그 형식의 오디오 신호를 디지털 형식으로 변환하여 제어부(11)에 전달할 수 있다. 또한, 오디오처리부(15)는 제어부(11)로부터 출력되는 디지털 형식의 오디오 신호를 아날로그 신호로 변환하여 스피커를 통해 출력할 수 있다. 특히, 본 발명에 따른 오디오처리부(15)는 어플리케이션의 실행에 따른 효과음 또는 실행음을 출력한다.
통신부(16)는 서비스장치(20, 30)와 통신망(40)을 통해 데이터를 송수신하기 위한 기능을 수행한다. 여기서, 통신부(16)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신 수단과 수신되는 신호를 저잡음 증폭하고 주파수를 하강 변환하는 RF 수신 수단 등을 포함한다. 이러한 통신부(16)는 무선통신 모듈(미도시) 및 유선통신 모듈(미도시) 중 적어도 하나를 포함할 수 있다. 그리고, 무선통신 모듈은 무선 통신 방법에 따라 데이터를 송수신하기 위한 구성이며, 클라이언트 단말기(10)가 무선 통신을 이용하는 경우, 무선망 통신 모듈, 무선랜 통신 모듈 및 무선팬 통신 모듈 중 어느 하나를 이용하여 데이터를 서비스장치(20, 30)로 전송하거나, 수신할 수 있다. 또한, 유선통신 모듈은 유선으로 데이터를 송수신하기 위한 것이다. 유선통신 모듈은 유선을 통해 통신망(40)에 접속하여, 클라이언트 단말기(10) 및 서비스장치(20, 30)에 데이터를 전송하거나, 수신할 수 있다. 즉, 클라이언트 단말기(10)는 유선통신 모듈을 이용하여 통신망(40)에 접속하며, 통신망(40)을 통해 서비스장치(20, 30)와 데이터를 송수신할 수 있다. 특히, 본 발명에 따른 통신부(16)는 서브 서비스장치(30)와 통신하여 어플리케이션 실행 중에 요청되는 데이터 이동을 위한 신호를 송수신한다.
제어부(11)는 운영 체제(OS, Operation System) 및 각 구성을 구동시키는 프로세스 장치가 될 수 있다. 예컨대, 제어부(11)는 중앙처리장치(CPU, Central Processing Unit)가 될 수 있다. 제어부(11)는 클라이언트 단말기(10)의 전원이 켜지면, 운영 체제를 보조 기억 장치로부터 주 기억 장치로 이동시킨 후, 운영 체제를 구동하기 위한 부팅(booting)을 수행하고, 필요한 신호 제어를 수행한다. 특히, 본 발명에 따른 제어부(11)는 사용자의 요청에 따라 클라우드 스트리밍 기반으로 서비스장치(20, 30)와 연결되어 어플리케이션을 실행한다. 그리고, 제어부(11)는 실행 중인 어플리케이션과 관련된 데이터의 이동을 서브 서비스장치(30)로 요청한다. 이후, 제어부(11)는 서브 서비스장치(30)로부터 바이너리 코드로 분할된 오브젝트 파일을 수신하고, 수신된 바이너리 코드로 분할된 오브젝트 파일을 이용하여 데이터를 이동한다.
이와 같은 클라이언트 단말기(10)의 기능을 보다 효과적으로 수행하기 위하여, 제어부(11)는 어플리케이션 실행모듈(11a)을 포함한다. 특히, 어플리케이션 실행모듈(11a)은 클라우드 스트리밍 기반으로 서비스장치(20, 30)에 접속하여 어플리케이션을 실행한다. 그리고, 어플리케이션 실행모듈(11a)은 어플리케이션 실행 중에 데이터 이동을 요청하는 신호에 따라 해당되는 데이터에 대한 이동을 수행한다.
도 3은 본 발명의 실시 예에 따른 서브 서비스장치의 구성을 나타내는 도면이다.
도 3을 참조하면, 본 발명에 따른 서브 서비스장치(30)는 서비스제어부(31), 서비스저장부(32) 및 서비스통신부(33)로 구성된다. 여기서, 서비스제어부(31)는 바이너리 분할모듈(31a) 및 데이터 이동모듈(31b)을 포함하고, 서비스저장부(32)는 오브젝트 파일(32a) 및 바이너리 코드 데이터(32b)를 포함한다.
서비스통신부(33)는 통신망(40)을 통해 클라이언트 단말기(10)와 게임 어플리케이션의 실행을 위한 데이터를 송수신하는 기능을 수행한다. 특히, 본 발명에 따른 서비스통신부(33)는 클라이언트 단말기(10)와 통신하여 어플리케이션의 실행 중에 발생하는 데이터의 이동과 관련된 신호를 송수신한다.
서비스저장부(32)는 서브 서비스장치(30)의 기능 실행에 따른 모든 프로그램을 저장한다. 특히, 본 발명에 따른 서비스저장부(32)는 클라우드 스트리밍 기반으로 어플리케이션을 실행하는 프로그램, 메인 서비스장치(20)로부터 전달되는 어플리케이션들에 대한 오브젝트 파일을 저장하는 프로그램, 클라이언트 단말기(10)로부터 요청되는 데이터 이동과 관련되어 해당되는 오브젝트 파일을 바이너리 코드로 분할하는 프로그램, 데이터 이동과 관련된 기능을 수행하는 프로그램 등을 저장한다. 또한, 서비스저장부(32)는 메인 서비스장치(20)로부터 전달되는 어플리케이션들에 대한 오브젝트 파일(32a)과, 오브젝트 파일을 바이너리 코드로 분할한 바이너리 코드 데이터(32b)를 저장한다. 특히, 오브젝트 파일(32a)은 프로그래밍 언어로 쓰여진 소스코드 파일을 단순히 기계어로 바꾼 파일이 된다. 이러한 오브젝트 파일을 모아서 메모리에 저장할 수 있고, 추가적으로 헤더를 붙여 가공한 후, 실행파일이 생성된다. 그리고, 바이너리 코드 데이터(32b)는 컴퓨터의 0과 1 두 개의 숫자만으로 표현되는 이진코드로서, 실행 파일과 같은 텍스트 이외의 파일에 적용되며, 프로그램이나 컴퓨터가 읽어서 사용하는 파일이 된다.
서비스제어부(31)는 서브 서비스장치(30)의 운영 체제 및 각 구성을 구동시키는 프로세스 장치가 될 수 있다. 특히, 본 발명에 따른 서비스제어부(31)는 다수의 어플리케이션을 저장하고 있는 메인 서비스장치(20)로부터 어플리케이션들에 대한 오브젝트 파일을 전달받는다. 여기서, 서비스제어부(31)는 다수의 어플리케이션에 대한 오브젝트 파일을 메인 서비스장치(20)부터 수신하고, 수신된 다수의 어플리케이션에 관련된 오브젝트 파일을 저장한다.
서비스제어부(31)는 클라이언트 단말기(10)로부터 특정 어플리케이션과 관련된 데이터의 이동을 요청하는 신호를 수신한다. 이때, 서비스제어부(31)는 클라이언트 단말기(10)로부터 어플리케이션과 관련된 데이터의 일부 또는 전체에 대해 복사, 잘라내기, 붙여넣기 등에 대한 기능을 요청하는 신호를 수신할 수 있다.
서비스제어부(31)는 클라이언트 단말기(10)의 요청에 따라 해당되는 어플리케이션과 관련된 오브젝트 파일을 바이너리 코드로 분할한다. 이때, 서비스제어부(31)는 클라이언트 단말기(10)로부터 이동이 요청된 데이터를 확인하고, 확인된 데이터만을 바이너리 코드로 변환한다. 예를 들어, 오브젝트 파일은 해당되는 데이터가 16진수로 변환된 코드로 구성될 수 있다. 하지만, 바이너리 코드로 분할하게 되면, 2인수의 코드로 변환될 수 있다.
서비스제어부(31)는 바이너리 코드로 분할된 오브젝트 파일을 클라이언트 단말기(10)로 전송한다. 여기서, 서비스제어부(31)는 바이너리 코드로 분할된 오브젝트 파일을 스트리밍 방식으로 전송한다.
한편, 클라이언트 단말기(10)로 전송한 오브젝트 파일에 대한 이동 오류가 발생한 경우, 서비스제어부(31)는 오브젝트 파일을 바이너리 코드로 재분할하고, 분할된 오브젝트 파일을 클라이언트 단말기(10)로 재전송한다.
이와 같은 서브 서비스장치(30)의 기능을 보다 효과적으로 수행하기 위하여, 서비스제어부(31)는 바이너리 분할모듈(31a) 및 데이터 이동모듈(31b)을 포함한다. 특히, 바이너리 분할모듈(31a)은 클라우드 스트리밍 기반으로 어플리케이션을 실행하는 클라이언트 단말기(10)로부터 어플리케이션의 데이터 이동이 요청되면, 해당되는 데이터의 오브젝트 파일을 추출하고, 추출된 오브젝트 파일을 바이너리 코드로 분할한다. 또한, 데이터 이동모듈(31b)은 바이너리 분할모듈(31a)을 통해 분할된 오브젝트 파일을 데이터 이동이 요청된 클라이언트 단말기(10)로 전송하고, 데이터 이동을 수행할 수 있도록 지원한다.
또한, 상술한 바와 같이 구성되는 서비스장치(20, 30)는 서버 기반 컴퓨팅 기반 방식 또는 클라우드 방식으로 동작하는 하나 이상의 서버로 구현될 수 있다. 특히, 클라우드 컴퓨팅 장치를 이용하여 클라우드 스트리밍 기반으로 어플리케이션을 실행하기 위한 데이터는 인터넷 상의 클라우드 컴퓨팅 장치에 영구적으로 저장될 수 있는 클라우드 컴퓨팅 기능을 통해 제공될 수 있다. 여기서, 클라우드 컴퓨팅은 데스크톱, 태블릿 컴퓨터, 노트북, 넷북 및 스마트폰 등의 디지털 단말기에 인터넷 기술을 활용하여 가상화된 IT(Information Technology) 자원, 예를 들어, 하드웨어(서버, 스토리지, 네트워크 등), 소프트웨어(데이터베이스, 보안, 웹 서버 등), 서비스, 데이터 등을 온 디맨드(On demand) 방식으로 서비스하는 기술을 의미한다.
한편, 클라이언트 단말기(10)나 서비스장치(20, 30)에 탑재되는 메모리는 그 장치 내에서 정보를 저장한다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛 일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛 일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
도 4는 본 발명의 실시 예에 따른 클라우드 스트리밍 기반의 데이터 이동 방법을 설명하기 위한 데이터 흐름도이다.
도 4를 참조하면, 본 발명에 따른 클라우드 스트리밍 기반의 데이터 이동은 먼저, 메인 서비스장치(20)가 S11 단계에서 어플리케이션의 실행에 따른 오브젝트 파일을 서브 서비스장치(30)로 전달한다. 그리고, 서브 서비스장치(30)는 S13 단계에서 메인 서비스장치(20)로부터 전달된 오브젝트 파일을 저장한다. 이때, 메인 서비스장치(20)는 어플리케이션의 실행과 관련된 모든 파일을 저장하고 있으며, 서브 서비스장치(30)는 어플리케이션의 오브젝트 파일만을 저장한다. 여기서, 오브젝트 파일은 프로그래밍 언어로 쓰여진 소스코드 파일을 단순히 기계어로 바꾼 파일이 된다. 이러한 오브젝트 파일을 모아서 메모리에 저장할 수 있고, 추가적으로 헤더를 붙여 가공한 후, 실행파일이 생성된다.
클라이언트 단말기(10)는 S15 단계에서 메인 서비스장치(20) 및 서브 서비스장치(30)와 연동하여 클라우드 스트리밍 기반으로 어플리케이션을 실행한다.
어플리케이션 실행 중에, 클라이언트 단말기(10)는 S17 단계에서 특정 데이터의 이동을 위한 선택 신호를 감지한다. 여기서, 특정 데이터의 이동을 위한 선택 신호는 데이터 복사, 잘라내기, 붙여넣기 등의 명령이 포함될 수 있다. 데이터 이동이 선택되면, 클라이언트 단말기(10)는 S19 단계에서 데이터 이동을 서브 서비스장치(30)로 요청한다.
서브 서비스장치(30)는 S21 단계에서 클라이언트 단말기(10)의 요청에 따라 데이터 이동과 관련된 오브젝트 파일을 확인한다. 그리고, 서브 서비스장치(30)는 S23 단계에서 확인된 오브젝트 파일을 바이너리 코드로 분할한다. 여기서, 바이너리 코드로 분할된 오브젝트 파일은 컴퓨터의 0과 1 두 개의 숫자만으로 표현되는 이진코드로서, 실행 파일과 같은 텍스트 이외의 파일에 적용되며, 프로그램이나 컴퓨터가 읽어서 사용하는 파일이 된다. 예를 들어, 어플리케이션의 실행 중에 이동이 요청되는 데이터와 관련된 오브젝트 파일은 컴파일러나 어셈블러가 소스코드 파일을 처리하는 도중에 만들 수 있는 파일로, 이진 코드(바이너리 코드)를 포함한다. 여기서, 오브젝트 파일에는 유일한 필수적인 요소로 기계어가 포함될 수 있으며, 임베디드 시스템을 위한 오브젝트 파일들은 기계어 이외에는 다른 파일을 포함하지 않는다. 이때, 오브젝트 파일들은 연결 또는 디버그를 목적으로 하지만, 다른 디버그 정보를 위해 런타임, 릴로케이션 정보, 프로그램 심볼의 코드로 사용하기 위한 데이터 등을 포함할 수도 있다. 즉, 소스 코드가 컴파일러의 라이브러리를 통해 컴파일 되면, 사람이 해석할 수 없는 기계어 및 기호들로 구성되는 오브젝트 파일로 생성된다.
한편, 바이너리 코드로 분할된 오브젝트 파일은 바이너리 코드 형식으로 인코딩된 데이터로서, 바이너리 파일 형식은 문자열로 해석될 수 있다. 특히, 포맷 정보가 없는 문자열 데이터만으로 이루어지기 때문에 바이너리 코드로 분할된 오브젝트 파일은 완전한 텍스트 파일이 될 수 있다. 또한, 여러 개의 오브젝트 파일들이 하나의 실행파일로 합쳐지면, 실제로 실행되는 바이너리 파일이 만들어 진다. 예컨대, 바이너리로 분할된 오브젝트 파일은 01001110, 10001111 등과 같은 2진수의 코드로 구성될 수 있다.
이후, 서브 서비스장치(30)는 S25 단계에서 바이너리 코드로 분할된 오브젝트 파일을 클라이언트 단말기(10)로 전송한다.
클라이언트 단말기(10)는 S27 단계에서 서브 서비스장치(30)로부터 수신되는 오브젝트 파일을 이용하여 데이터 이동을 수행한다.
이를 통해, 본 발명은 클라우드 스트리밍 기반으로 어플리케이션의 데이터를 이동(복사, 잘라내기, 붙여넣기 등)하는 경우, 해당 데이터의 오브젝트 파일을 바이너리 코드로 분할하여 필요 시 마다 스트리밍 방식으로 제공할 수 있기 때문에 데이터 손실을 방지 할 수 있다. 즉, 오브젝트 파일을 바이너리 코드로 분할하여 전송하는 경우, 원본 데이터를 그대로 전송할 수 있어 기계어 형식으로 표현하지 못하는 코드까지 모두 전송할 수 있다. 또한, 서비스장치가 전체적인 클라우드 스트리밍 기반의 어플리케이션 제공을 위한 기능을 수행하는 메인 서비스장치와, 메인 서비스장치로부터 제공되는 어플리케이션의 오브젝트 파일을 관리하는 서브 서비스장치로 구분되어 서비스장치 내의 스토리지 관리 문제와, 로드 밸런싱 문제 해결하는데 도움을 줄 수 있다.
도 5는 본 발명의 실시 예에 따른 서브 서비스장치의 동작을 설명하기 위한 흐름도이다.
도 5를 참조하면, 본 발명에 따른 서브 서비스장치(30)는 S31 단계에서 다수의 어플리케이션을 저장하고 있는 메인 서비스장치(20)로부터 어플리케이션의 실행에 관련된 오브젝트 파일을 전달받고, 이를 저장한다. 즉, 서브 서비스장치(30)는 다수의 어플리케이션에 대한 오브젝트 파일을 메인 서비스장치(20)부터 수신하고, 수신된 다수의 어플리케이션에 대한 오브젝트 파일을 저장한다.
서브 서비스장치(30)는 S33 단계에서 클라이언트 단말기(10)의 요청에 따라 클라우드 스트리밍 기반으로 어플리케이션을 제공한다. 그리고 나서, 서브 서비스장치(30)는 S35 단계에서 어플리케이션 실행 중에 데이터 이동이 요청되는지 확인한다. 즉, 서브 서비스장치(30)는 클라이언트 단말기(10)로부터 특정 어플리케이션과 관련된 데이터의 이동을 요청하는 신호를 수신한다. 이때, 서브 서비스장치(30)는 클라이언트 단말기(10)로부터 어플리케이션과 관련된 데이터의 일부 또는 전체에 대해 복사, 잘라내기, 붙여넣기 등에 대한 기능을 요청하는 신호를 수신할 수 있다.
데이터 이동이 요청되면, 서브 서비스장치(30)는 S37 단계에서 데이터 이동과 관련된 오브젝트 파일을 확인한다. 그리고, 서브 서비스장치(30)는 S39 단계에서 클라이언트 단말기(10)의 요청에 따라 해당되는 어플리케이션의 실행과 연관된 오브젝트 파일을 바이너리 코드로 분할한다. 이때, 서브 서비스장치(30)는 클라이언트 단말기(10)로부터 이동이 요청된 데이터를 확인하고, 확인된 데이터만을 바이너리 코드로 변환한다.
서브 서비스장치(30)는 S41 단계에서 바이너리 코드로 분할된 오브젝트 파일을 클라이언트 단말기(10)로 전송한다. 여기서, 서브 서비스장치(30)는 바이너리 코드로 분할된 오브젝트 파일을 스트리밍 방식으로 전송한다.
한편, 서브 서비스장치(30)는 S43 단계에서 클라이언트 단말기(10)의 데이터 이동에 따른 오류가 발생하는지 확인한다. 이때, 클라이언트 단말기(10)로 전송한 오브젝트 파일에 대한 오류가 발생한 경우, 서브 서비스장치(30)는 오브젝트 파일을 바이너리 코드로 재분할하고, 분할된 오브젝트 파일을 클라이언트 단말기(10)로 재전송한다.
도 6은 본 발명의 실시 예에 따른 클라이언트 단말기의 동작을 설명하기 위한 흐름도이다.
도 6을 참조하면, 본 발명에 따른 클라이언트 단말기(10)는 S51 단계에서 사용자의 요청에 따라 클라우드 스트리밍 기반의 어플리케이션을 실행한다. 그리고, 클라이언트 단말기(10)는 S53 단계에서 실행 중인 어플리케이션과 관련된 데이터의 이동을 서브 서비스장치(30)로 요청한다.
클라이언트 단말기(10)는 S55 단계에서 데이터 이동을 위한 오브젝트 파일이 서브 서비스장치(30)로부터 수신되는지 판단한다. 이때, 오브젝트 파일은 바이너리 코드로 분할된 오브젝트 파일이다. 한편, 데이터 이동을 위한 오브젝트 파일이 일정 시간 동안 수신되지 않으면, 클라이언트 단말기(10)는 데이터 이동을 위한 오브젝트 파일의 재 전송을 서브 서비스장치(30)로 재 요청한다.
오브젝트 파일이 수신되면, 클라이언트 단말기(10)는 S57 단계에서 수신된 바이너리 코드로 분할된 오브젝트 파일을 이용하여 데이터 이동을 수행한다. 이후, 클라이언트 단말기(10)는 S59 단계에서 데이터 이동에 대한 오류가 있는지 확인한다. 오류가 발생하면, 클라이언트 단말기(10)는 특정 데이터의 이동을 서브 서비스장치(30)로 재 요청할 수 있다.
컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
본 발명은 클라우드 스트리밍 기반의 데이터 이동 방법 및 시스템에 관한 것으로, 어플리케이션 실행 중에 데이터 이동이 요청되면, 서브 서비스장치에 저장된 어플리케이션에 대한 오브젝트 파일을 바이너리 코드로 분할하고, 분할된 오브젝트 파일을 이용하여 데이터 이동을 수행한다. 이에 따라, 클라우드 스트리밍 기반으로 어플리케이션의 데이터를 이동(복사, 잘라내기, 붙여넣기 등)하는 경우, 해당 데이터의 오브젝트 파일을 바이너리 코드로 분할하여 필요 시 마다 스트리밍 방식으로 제공할 수 있기 때문에 데이터 손실을 방지 할 수 있다. 또한, 서비스장치가 전체적인 클라우드 스트리밍 기반의 어플리케이션 제공을 위한 기능을 수행하는 메인 서비스장치와, 메인 서비스장치로부터 제공되는 어플리케이션의 오브젝트 파일을 관리하는 서브 서비스장치로 구분되어 서비스장치 내의 스토리지 관리 문제와, 로드 밸런싱(load balancing) 문제 해결하는데 도움을 줄 수 있다. 이는 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.

Claims (11)

  1. 적어도 하나의 어플리케이션을 실행하고, 상기 실행 중인 어플리케이션과 관련된 데이터의 이동을 서브 서비스장치로 요청하고, 상기 서브 서비스장치로부터 제공되는 바이너리 코드(Binary code)로 분할된 오브젝트 파일을 이용하여 상기 데이터를 이동하는 클라이언트 단말기;
    다수의 어플리케이션을 저장하고 있는 메인 서비스장치로부터 상기 어플리케이션들에 대한 오브젝트 파일을 전달받고, 상기 클라이언트 단말기로부터 특정 어플리케이션과 관련된 데이터의 이동을 요청하는 신호를 수신하고, 상기 요청에 따라 해당되는 어플리케이션과 관련된 오브젝트 파일을 바이너리 코드(Binary code)로 분할하고, 상기 바이너리 코드로 분할된 오브젝트 파일을 상기 클라이언트 단말기로 제공하는 상기 서브 서비스장치; 및
    상기 다수의 어플리케이션을 저장하고, 상기 어플리케이션들에 대한 오브젝트 파일을 상기 서브 서비스장치로 제공하는 상기 메인 서비스장치;
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 기반의 데이터 이동 시스템.
  2. 적어도 하나의 클라이언트 단말기와 통신하여 적어도 하나의 어플리케이션과 관련된 데이터의 이동을 위한 신호를 송수신하는 서비스통신부; 및
    다수의 어플리케이션을 저장하고 있는 메인 서비스장치로부터 상기 어플리케이션들에 대한 오브젝트 파일을 전달받고, 상기 클라이언트 단말기로부터 특정 어플리케이션과 관련된 데이터의 이동을 요청하는 신호를 수신하고, 상기 요청에 따라 해당되는 어플리케이션과 관련된 오브젝트 파일을 바이너리 코드(Binary code)로 분할하고, 상기 바이너리 코드로 분할된 오브젝트 파일을 상기 클라이언트 단말기로 제공하도록 제어하는 서비스제어부;
    를 포함하는 것을 특징으로 하는 서비스장치.
  3. 제2항에 있어서,
    상기 메인 서비스장치부터 수신되는 다수의 어플리케이션에 대한 오브젝트 파일, 상기 오브젝트 파일을 바이너리 코드로 분할한 데이터를 저장하는 서비스저장부;
    를 더 포함하는 것을 특징으로 하는 서비스장치.
  4. 제2항 내지 제3항에 있어서,
    상기 서비스통신부, 서비스제어부 또는 서비스저장부가 클라우드 컴퓨팅 기반으로 동작하는 하나 이상의 서버로 구현되는 것을 특징으로 하는 서비스장치.
  5. 서브 서비스장치가 다수의 어플리케이션을 저장하고 있는 메인 서비스장치로부터 상기 어플리케이션들에 대한 오브젝트 파일을 전달받는 단계;
    상기 서브 서비스장치가 적어도 하나의 클라이언트 단말기로부터 특정 어플리케이션과 관련된 데이터의 이동을 요청하는 신호를 수신하는 단계;
    상기 서브 서비스장치가 상기 요청에 따라 해당되는 어플리케이션과 관련된 오브젝트 파일을 바이너리 코드(Binary code)로 분할하는 단계; 및
    상기 서브 서비스장치가 상기 바이너리 코드로 분할된 오브젝트 파일을 상기 클라이언트 단말기로 전송하는 단계;
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 기반의 데이터 이동 방법.
  6. 제5항에 있어서, 상기 전달받는 단계는
    상기 서브 서비스장치가 상기 다수의 어플리케이션에 대한 오브젝트 파일을 상기 메인 서비스장치부터 수신하는 단계; 및
    상기 서브 서비스장치가 상기 수신된 다수의 어플리케이션에 대한 오브젝트 파일을 저장하는 단계;
    를 더 포함하는 것을 특징으로 하는 클라우드 스트리밍 기반의 데이터 이동 방법.
  7. 제5항에 있어서, 상기 수신하는 단계는
    상기 서브 서비스장치가 상기 클라이언트 단말기로부터 상기 어플리케이션과 관련된 데이터의 일부 또는 전체에 대해 복사(copy), 잘라내기(cut), 붙여넣기(paste) 중 적어도 하나의 기능을 요청하는 신호를 수신하는 것을 특징으로 하는 클라우드 스트리밍 기반의 데이터 이동 방법.
  8. 제5항에 있어서, 상기 분할하는 단계는
    상기 서브 서비스장치가 상기 클라이언트 단말기로부터 이동이 요청된 데이터를 확인하는 단계; 및
    상기 서브 서비스장치가 상기 확인된 데이터만을 바이너리 코드로 변환하는 단계;
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 기반의 데이터 이동 방법.
  9. 제5항에 있어서, 상기 전송하는 단계는
    상기 서브 서비스장치가 상기 바이너리 코드로 분할된 오브젝트 파일을 스트리밍 방식을 적용하여 상기 클라이언트 단말기로 전송하는 것을 특징으로 하는 클라우드 스트리밍 기반의 데이터 이동 방법.
  10. 제5항에 있어서, 상기 전송하는 단계 이후에,
    상기 클라이언트 단말기로 전송한 오브젝트 파일에 대한 오류가 발생한 경우, 상기 서브 서비스장치가 상기 오브젝트 파일을 바이너리 코드로 재분할하는 단계; 및
    상기 서브 서비스장치가 상기 분할된 오브젝트 파일을 상기 클라이언트 단말기로 재전송하는 단계;
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 기반의 데이터 이동 방법.
  11. 제5항 내지 제10항 중 적어도 하나의 항에 기재된 클라우드 스트리밍 기반의 데이터 이동 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
PCT/KR2013/007656 2012-12-12 2013-08-27 클라우드 스트리밍 기반의 데이터 이동 방법, 시스템, 클라이언트 단말기 및 서비스장치 Ceased WO2014092292A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2012-0144190 2012-12-12
KR1020120144190A KR101430928B1 (ko) 2012-12-12 2012-12-12 클라우드 스트리밍 기반의 데이터 이동 방법, 시스템, 클라이언트 단말기 및 서비스장치

Publications (1)

Publication Number Publication Date
WO2014092292A1 true WO2014092292A1 (ko) 2014-06-19

Family

ID=50934552

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/007656 Ceased WO2014092292A1 (ko) 2012-12-12 2013-08-27 클라우드 스트리밍 기반의 데이터 이동 방법, 시스템, 클라이언트 단말기 및 서비스장치

Country Status (2)

Country Link
KR (1) KR101430928B1 (ko)
WO (1) WO2014092292A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102086731B1 (ko) * 2014-06-25 2020-04-14 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 제공 방법, 이를 위한 장치 및 시스템, 그리고 이를 위한 클라우드 스트리밍용 스크립트 코드를 기록한 컴퓨터 판독 가능한 기록매체
CN105847915B (zh) * 2016-04-07 2019-11-15 宁波金格奥电器有限公司 一种云控制透视播放屏以及应用该播放屏的箱柜
KR102257012B1 (ko) * 2019-01-14 2021-05-27 (주) 익투스지노믹스 다양한 클라우드에 적용 가능한 대용량 데이터 처리용 분산 처리 시스템의 설치방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110014166A (ko) * 2008-06-03 2011-02-10 인터내셔널 비지네스 머신즈 코포레이션 스트리밍 미디어에 연관된 딥 태그 클라우드
KR20110087600A (ko) * 2010-01-26 2011-08-03 주식회사 클루넷 데이터 전송 방법, 다운로드 클라이언트의 동작 방법, 그리고 네트워크 서버의 동작 방법
KR20110109610A (ko) * 2010-03-31 2011-10-06 주식회사 클루넷 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
KR20120069400A (ko) * 2010-12-20 2012-06-28 주식회사 케이티 모바일 플랫폼에서의 어플리케이션 보관 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110014166A (ko) * 2008-06-03 2011-02-10 인터내셔널 비지네스 머신즈 코포레이션 스트리밍 미디어에 연관된 딥 태그 클라우드
KR20110087600A (ko) * 2010-01-26 2011-08-03 주식회사 클루넷 데이터 전송 방법, 다운로드 클라이언트의 동작 방법, 그리고 네트워크 서버의 동작 방법
KR20110109610A (ko) * 2010-03-31 2011-10-06 주식회사 클루넷 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
KR20120069400A (ko) * 2010-12-20 2012-06-28 주식회사 케이티 모바일 플랫폼에서의 어플리케이션 보관 방법

Also Published As

Publication number Publication date
KR20140076069A (ko) 2014-06-20
KR101430928B1 (ko) 2014-08-18

Similar Documents

Publication Publication Date Title
US9521115B1 (en) Security policy generation using container metadata
CN104572243B (zh) 用于共享Java虚拟机的方法和系统
CN113419712B (zh) 跨平台的应用生成方法、跨平台应用调用方法、开发装置
KR101479464B1 (ko) 클라우드 스트리밍 기반의 데이터 전송 제어 방법, 시스템, 클라이언트 단말기 및 서비스장치
CN104052789A (zh) 用于虚拟联网系统的负载平衡
NO20054000D0 (no) Partisjonsbuss.
CN103324278A (zh) 终端设备、系统及接入虚拟桌面的方法
WO2021201370A1 (ko) 연합학습 자원 관리장치, 시스템 및 이의 자원 효율화 방법
CN107678752A (zh) 一种面向异构集群的任务处理方法及装置
CN106844008A (zh) 一种数据操作的方法、设备及系统
WO2014092292A1 (ko) 클라우드 스트리밍 기반의 데이터 이동 방법, 시스템, 클라이언트 단말기 및 서비스장치
US10877571B2 (en) Device driver-level approach for utilizing a single set of interface input devices for multiple computing devices
US20220103415A1 (en) Remote network and cloud infrastructure management
KR101479463B1 (ko) 클라우드 스트리밍 기반의 데이터 전송 방법, 시스템, 클라이언트 단말기 및 서비스장치
WO2015111836A1 (ko) 다수의 단말기 간 컨텐츠 공유 방법, 이를 위한 시스템 및 장치
WO2015130062A1 (ko) 클라우드 스트리밍 기반의 영상데이터 제공 방법, 이를 위한 장치 및 시스템
WO2014107003A1 (ko) 단말기의 어플리케이션 관리 방법, 이를 위한 시스템 및 장치
KR20150046862A (ko) 클라우드 컴퓨팅 기반의 데이터 제공 방법, 이를 위한 시스템 및 장치
US20150100629A1 (en) Method for providing cloud service, and system and apparatus therefor
KR101449483B1 (ko) 클라우드 컴퓨팅 기반의 데이터 전송 방법, 이를 위한 시스템 및 장치
WO2013105717A1 (ko) 메타 클라우드 컴퓨팅 기반의 데이터 관리 시스템, 이를 위한 방법 및 장치
WO2014137007A1 (ko) 게임 가상화 장치
WO2013027919A1 (ko) 클라우드 컴퓨팅 환경에서의 자동 개인 가상화 생성 방법 및 장치
KR101430927B1 (ko) 클라우드 스트리밍 기반의 가상 api 제공 방법, 시스템, 서비스장치 및 클라이언트 단말기
WO2022102990A1 (ko) 전자 장치 및 이의 제어 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13862256

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13862256

Country of ref document: EP

Kind code of ref document: A1