WO2015174609A1 - 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템 - Google Patents

라이브러리 업데이트 방법, 이를 위한 단말 및 시스템 Download PDF

Info

Publication number
WO2015174609A1
WO2015174609A1 PCT/KR2015/000348 KR2015000348W WO2015174609A1 WO 2015174609 A1 WO2015174609 A1 WO 2015174609A1 KR 2015000348 W KR2015000348 W KR 2015000348W WO 2015174609 A1 WO2015174609 A1 WO 2015174609A1
Authority
WO
WIPO (PCT)
Prior art keywords
library
child
storage area
parent
shared storage
Prior art date
Application number
PCT/KR2015/000348
Other languages
English (en)
French (fr)
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 CN201580037932.6A priority Critical patent/CN106662993B/zh
Priority to US15/310,516 priority patent/US20170075686A1/en
Publication of WO2015174609A1 publication Critical patent/WO2015174609A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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

Definitions

  • a method of updating a library in a terminal environment including a non-shared storage area More specifically, the shared storage area includes a child library available to all applications, and the non-shared storage area includes a parent library operating for each application.
  • SDK software development kit
  • This SDK library is built and distributed with the developer's application, and is executed with the application code during runtime.
  • the SDK libraries up to now have a problem in that the same SDK library exists on one terminal by being individually contained and distributed for each application developed using the same.
  • the present invention has been proposed to solve the above-mentioned conventional problems.
  • the shared storage area may be used by all applications.
  • a non-shared storage area wherein the non-shared storage area includes a parent library operating for each application, and the parent library compares the version of the child library with a service device in association with a service device. Its purpose is to provide a library that can receive library-related files and control which child libraries can be used.
  • a terminal for achieving the above object includes a non-shared storage area allocated to each application and a shared storage area that can be shared by several applications, the non-shared storage area is allocated per application
  • a storage unit including a parent library that can access and use the child library, wherein the shared storage area includes a child library shared by various applications and providing resources to the parent library;
  • controls the parent library assigned to the application to check the version of the library provided in the service device, and compares the checked version with the version of the child library provided in the shared storage area.
  • Control unit may be configured to include.
  • the controller controls the received library to be stored in the shared storage area, and then generates a class of the parent library while simultaneously generating a class of the parent library to perform a function provided by the received library.
  • an object may be created through the generated class of the parent library, and the process of inquiring and calling a method may be controlled through the generated object.
  • a terminal for achieving the above object is located in a shared storage area that can be shared by various applications, the child library for providing resources at the request of a parent library; And a non-sharing storage area allocated to each of the applications, and when the allocated application is executed, check the version of the library included in the service device in comparison with the service device, and compare the checked version with the version of the child library. If different, at least one parent library that receives the library-related files from the service device and controls to be stored in the shared storage area, and controls the received library to replace the child library previously stored in the shared storage area; It can be configured to include.
  • the parent library is a child library manager for determining whether to update the child library;
  • a child library loader which stores the library received from the service device in the shared storage area;
  • a child library caller that creates an object by querying a class to operate a library stored in the shared storage area as a child library, and inquires and calls a method through the generated object.
  • the child library manager comprises a server connection unit for connection with the service device; A version checking unit for querying and confirming a version of a library provided in the service device when connected to the service device through the server connection unit; And a storage area connection unit that connects a storage area by checking whether the library of the service device is shared by various applications when comparing the version of the library checked through the version checker with the version of the child library. Can be configured.
  • the storage area connection unit may check an application using the pre-stored child library, and when there is at least one application using the child library, it may determine that the child library is shared by several applications.
  • Library update system for achieving the above object is a service device for storing and managing a library that can be used by one or more applications; And a non-shared storage area including a parent library allocated to each application and accessible to the child library, and a shared storage area including a child library shared by several applications and providing resources to the parent library.
  • the parent library assigned to the application When the application is executed, by controlling the parent library assigned to the application to check the version of the library provided in the service device, and if the difference between the checked version and the version of the child library provided in the shared storage area, After controlling the parent library to receive a library-related file from the service device, and controls to be stored in the shared storage area, and to control the received library to replace the child library previously stored in the shared storage area It may be configured to include; a terminal.
  • a library update method in a terminal environment including a shared storage area including a child library when any one application of the terminal is executed, the terminal controls a parent library assigned to the application to check the version of the library included in the service device.
  • a library updating method in a terminal environment including a shared storage area including a child library when the application to which the parent library is allocated is executed, checking a version of a library included in the service device in cooperation with a service device; Comparing the version of the parent library with the version of the child library; If the comparison result is different, the parent library controls to receive the library related file from the service device and to be stored in the shared storage area, and controls the received library to replace a child library previously stored in the shared storage area. It can be made, including.
  • the controlling may include: storing, by the parent library, the received library in the shared storage area; Generating a class of the child library while the parent library generates a class to perform a function provided by the received library; And generating an object through a class of the child library in which the parent library is generated, and controlling a process of inquiring and invoking a method through the generated object.
  • the parent library checks whether the library of the service device is shared by several applications and connects a storage area. Can be.
  • the present invention can provide a computer readable recording medium having recorded thereon a program for executing the above-described library update method.
  • a terminal and a system therefor the terminal environment is implemented to include a shared storage area accessible to various applications and a non-shared storage area allocated to each application, and the shared storage area can be used by all applications.
  • the terminal environment is implemented to include a shared storage area accessible to various applications and a non-shared storage area allocated to each application, and the shared storage area can be used by all applications.
  • FIG. 1 is a schematic configuration diagram of an application providing system to which a library update method is applied according to an exemplary embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating a main configuration of a terminal according to an exemplary embodiment of the present invention shown in FIG. 1.
  • FIG. 3 is a block diagram illustrating a configuration of a storage unit according to an exemplary embodiment of the present invention.
  • FIG. 4 is a block diagram showing the main configuration of a parent library according to an embodiment of the present invention.
  • FIG. 5 is a block diagram illustrating a main configuration of a child library according to an embodiment of the present invention.
  • FIG. 6 is a block diagram illustrating a main configuration of a service apparatus according to an exemplary embodiment of the present invention illustrated in FIG. 1.
  • FIG. 7 is a flowchart illustrating a process of receiving a library file from a service device for updating a library according to an exemplary embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating a method of loading a library file into a child library according to an embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating a method in which a parent library uses an updated child library according to an embodiment of the present invention.
  • FIG. 10 is a flowchart illustrating a process of calling a method in a child library through a class in the generated child library.
  • first and second are used to describe various components, and are used only to distinguish one component from another component, and to limit the components. Not used.
  • the second component may be referred to as the first component, and similarly, the first component may also be referred to as the second component.
  • a component when referred to as being "connected” or “connected” to another component, it means that it may be connected or connected logically or physically. In other words, although a component may be directly connected or connected to other components, it should be understood that other components may exist in the middle, and may be connected or connected indirectly.
  • FIG. 1 is a schematic configuration diagram of an application providing system to which a library update method is applied according to an exemplary embodiment of the present invention.
  • a communication network 30 that supports transmission and reception of information between the terminal 10, the service device 20, and the terminal 10 and the service device 20 is described. It may be configured to include).
  • the terminal 10 means a user's device that can transmit and receive various data via the communication network 30 according to the user's operation.
  • the terminal 10 may perform voice or data communication through the communication network 30, and may transmit and receive various information with the service device 20.
  • the terminal 10 of the present invention for this purpose may include a browser for transmitting and receiving information, a memory for storing programs and protocols, a microprocessor for executing and controlling various programs, and the like.
  • the terminal 10 includes a storage unit, and the storage unit includes a non-shared storage area allocated to each application and a shared storage area that can be shared by various applications.
  • the non-shared storage area may include a parent library allocated for each application and accessible to a child library
  • the shared storage area may include a child library shared by several applications and providing resources to the parent library.
  • the terminal 10 checks the version of the library included in the service device 20 by controlling the parent library assigned to the application. When the checked version is different from the version of the child library provided in the shared storage area, a library related file may be received from the service device 20. In addition, the terminal 10 controls the parent library assigned to the executed application to control the library received from the service device 20 to be stored in the shared storage area, and the received library is stored in the shared storage area. You can control the replacement of stored child libraries.
  • the service device 20 manages a library that is a set of resources of classes, methods, and objects capable of performing a specific function according to an embodiment of the present invention, and serves to provide the terminal 10 upon request.
  • the service device 20 may control a process of including and distributing a library in an application and, for example, a library for an advertisement service that may perform a specific function according to a request of an application provided in the terminal 10. It can play a role of providing.
  • a library which is a set of resources capable of performing a specific function provided by the service device 20, may be updated from time to time, and the updated library is provided to the terminal 10 to operate a child library of the terminal 10. Can support the overall.
  • a processor mounted in the terminal 10 and the service device 20 may be used to execute the method according to the present invention.
  • Program instructions can be processed.
  • this processor may be a single-threaded processor, and in other implementations, the processor may be a multithreaded processor.
  • the processor is capable of processing instructions stored on memory or storage devices.
  • the terminal 10 and the service apparatus 20 transmit and receive various information related to the communication network 30, the communication network 30 at this time may be used in various forms of communication network .
  • wireless communication methods such as wireless LAN (WLAN), Wi-Fi, Wibro, Wimax, Wimax, and High Speed Downlink Packet Access (HSDPA), or Ethernet, xDSL (ADSL, VDSL) , Wired communication methods such as Hybrid Fiber Coaxial Cable (HFC), Fiber to The Curb (FTTC), and Fiber To The Home (FTTH).
  • WLAN wireless LAN
  • Wi-Fi Wi-Fi
  • Wibro Wimax
  • Wimax Wimax
  • Wimax High Speed Downlink Packet Access
  • HSDPA High Speed Downlink Packet Access
  • Ethernet xDSL (ADSL, VDSL)
  • Wired communication methods such as Hybrid Fiber Coaxial Cable (HFC), Fiber to The Curb (FTTC), and Fiber To The Home (FTTH).
  • HFC Hybrid Fiber Coaxial Cable
  • FTTC Fiber to The Curb
  • FTTH Fiber To The Home
  • FIG. 1 is a schematic configuration diagram of an application providing system to which a library update method is applied according to an exemplary embodiment of the present invention.
  • a terminal 10 includes a communication unit 11, an input unit 12, a control unit 13, a storage unit 14, and a display unit 15. Can be.
  • the communication unit 11 performs a role of supporting transmission and reception of various information with the service device 20 through the communication network (30).
  • the communication unit 11 may receive a library related file provided by the service device 20 and may support a process of querying the library version to the service device 20.
  • the input unit 12 transmits a variety of information such as numeric and text information input from a user, a signal input in connection with various function settings and function control of the terminal 10 to the controller 13.
  • the input unit 12 of the present invention may support a user input for executing an application supporting a specific function.
  • the input unit 12 includes a key input means such as a keyboard or a keypad, a touch input means such as a touch sensor or a touch pad, a voice input means, a gyro sensor, a geomagnetic sensor, an acceleration sensor and a proximity sensor, and a camera. It may also include a gesture input means comprising at least one or more.
  • it may include all types of input means that are currently under development or may be developed in the future.
  • the control unit 13 performs overall control of the terminal 10, in which at least one processor and at least one memory loading data including a CPU (Central Processing Unit) / MPU (Micro Processing Unit) are loaded in hardware. It may include an execution memory (eg, a register and / or random access memory (RAM)) and a bus (BUS) for inputting and outputting at least one or more data into the processor and the memory.
  • the program may include predetermined program routines or program data loaded into the execution memory from a predetermined recording medium and executed by the processor to perform a function defined in the terminal 10 by software. .
  • a component that can be processed by software may be determined as the function of the controller 13.
  • control unit 13 of the present invention is functionally connected to at least one component provided to support the library update method according to an embodiment of the present invention. That is, the control unit 13 is functionally connected to the communication unit 11, the input unit 12, the storage unit 14, and the display unit 15, and controls the flow of signals for supplying power and performing functions to the components. Done.
  • the controller 13 may include an application processing module 13a and may support a process in which one or more applications are stored and installed in the storage unit 14. In addition, when the installed application is executed, the controller 13 may support a process of transmitting / receiving and processing various information related to the corresponding application.
  • the controller 13 controls the parent library assigned to the application to execute a version of the library included in the service device 20 through the communication unit 11 when one application is executed.
  • the process may be controlled to be stored in the shared storage area 14b of the storage unit 14 and to control the received library to replace a child library previously stored in the shared storage area 14b. have.
  • control unit 13 controls the library received from the service device 20 to be stored in the shared storage area 14b of the storage unit 14, and then the received library provides In order to perform the function, the process of creating the class of the parent library and the class of the child library at the same time, calling the method through the generated class of the parent library, accessing the class of the child library, and calling the method Can be controlled.
  • control unit 13 The operation of the control unit 13 will be described in connection with an operation method of the child library and the parent library included in the storage unit 14.
  • the storage unit 14 may temporarily store various data generated during program execution, including a program required for operating a function according to an exemplary embodiment of the present invention.
  • the storage unit 14 may largely include a program area and a data area.
  • the program area stores related information for driving the terminal 10 such as an operating system (OS) for booting the terminal 10.
  • the data area is an area in which data generated according to the use of the terminal 10 is stored, and the data area may be divided into the above-described non-shared storage area 14a and the shared storage area 14b.
  • the storage unit 14 may be a flash memory, a hard disk, a memory of a multimedia card micro type (for example, SD or XD memory, etc.), a RAM, a ROM, or the like. ROM) and a storage medium.
  • the storage unit 14 may be divided into a non-shared storage area 14a and a shared storage area 14b allocated to each application.
  • FIG. 3 is a block diagram illustrating a configuration of a storage unit according to an exemplary embodiment of the present invention.
  • the storage unit 14 is divided into a non-shared storage area 14a allocated to each application as described above, and a shared storage area 14b in which various applications share data. Can be.
  • the non-shared storage area 14a is allocated to each application, and is a space for data storage for each application, and the non-shared storage area 14a increases in size depending on the number of applications installed in the terminal 10. Can be reduced or reduced.
  • one or more applications present in non-shared storage area 14a each include a separate code and parent library 300 that stores application-specific data.
  • the parent library 300 is a library provided in an application directly at the time of application development by an application developer, and provides an API (Application Programming Interface) for invoking the library.
  • the contents of the actual functions corresponding to the API at this time do not exist in the parent library 300, and the contents of the actual functions exist through the resources of the child library 400.
  • the parent library 300 of the present invention serves to support the access of the child library.
  • the shared storage area 14b through which various applications can access and use resources includes a child library 400.
  • the child library that provides resources for providing practical functions to the application can be shared and used with the parent library provided in each application, and stored together with information such as the library version and file information in the shared storage area 14B. Can be managed.
  • FIG. 4 is a block diagram showing the main configuration of a parent library according to an embodiment of the present invention.
  • the parent library 300 is largely divided into an application programming interface 310, a child library manager 320, a child library receiver 330, a child library loader 340, a child library storage 350, It may be configured to include a child library calling unit 360, this division means a logical division, the actual operation may be made in conjunction with the control unit 13 and the communication unit (11).
  • the application programming interface 310 supports the process of accessing the child library.
  • the child library manager 320 may include a server connector 321, a version checker 322, a storage area connector 323, an installation checker 324, and a command processor 325.
  • the server connection unit 321 of the child library manager 320 performs a role for connection with the service device 20.
  • the version checker 322 checks the version of the library included in the service device 20.
  • the storage area connector 323 compares the version of the library with the version of the child library installed in the terminal 10, that is, the version of the child library stored in the shared storage area 14b of the storage unit 14. . As a result of the comparison, the storage area concatenation unit 323 determines whether multiple applications share the library included in the service device 20, and according to the determination result, the library is shared storage area 14a. ) To be stored in the non-shared storage area 14b.
  • the installation confirmation unit 324 interlocks with the storage area connection unit 323 and checks the version of the library provided in the terminal 10 in response to a request of the storage area connection unit 323.
  • the command processor 325 may be configured with instructions necessary for performing the above-described operations, such as reception, storage, storage, and call.
  • the child library receiving unit 330 supports a connection with the service device 20 to receive a library to be updated from the service device 20 at the request of the child library management unit 320. And a reception execution unit 332 for receiving a library.
  • the child library loader 340 reads and loads a library file by a load command of the child library manager 320 and loads resources in the library file.
  • the child library loader 340 may include a binary loader 341 and a resource loader 342, and the binary loader 241 serves to load a library file in binary code form.
  • the resource loader 342 loads resources in a library file.
  • the child library storage unit 350 may include a shared storage area connector 351, a non-shared storage area connector 352, a binary storage unit 353, and a version information storage unit 354.
  • the shared storage area connector 351 and the non-shared storage area connector 352 provide an interface between the shared storage area 14b and the non-shared storage area 14a, and the binary storage 353 stores the library file.
  • the version information storage unit 354 stores and manages library version and file information.
  • the child library caller 360 searches for a class in the loaded library, creates an object, queries a method through the generated object, and calls a method.
  • the child library calling unit 360 may include a class inquiry unit 361 for inquiring a class, an object generator 362 for creating an object using the inquired class, and a method inquiry unit for inquiring a method through the generated object ( 363), a method call unit 364 for calling the inquired method may be configured.
  • FIG. 5 is a block diagram illustrating a main configuration of a child library according to an embodiment of the present invention.
  • the child library 400 includes a parent library connector 410, a child library caller 420, a class provider 430, a method provider 440, and a resource provider 450. Can be configured.
  • the parent library connector 410 supports a link function for the parent library 300, and the parent library 300 is a child library through the class specification unit 411, the method specification unit 412, and the resource specification unit 413.
  • a target that can be accessed can be inquired.
  • the child library caller 420 provides a configuration for querying, creating, and calling classes and methods based on the specifications obtained through the parent library connector 410, and the child library caller 420 provides class lookup.
  • the unit 421, a method inquiry unit 422, an object generator 423, and a method caller 424 are configured.
  • the class providing unit 430, the method providing unit 440, and the resource providing unit 340 serve to provide classes, methods, and resources in which the actual functions are implemented in the child library 400 to the parent library 300. .
  • a method of updating a library through interworking between the parent library 300 and the child library 400 will be described in more detail with reference to the flowchart below. Referring again to FIG. 2, the device configuration of the terminal 10 will be described. Explain.
  • the display unit 15 displays information on a series of operation states and operation results that occur during the functioning of the terminal 10.
  • the display unit 15 of the present invention may support output of various information generated during application execution, for example, information on a specific function provided by a child library.
  • the display unit 15 may be implemented in the form of a single touch panel (or touch screen) together with the input unit 12.
  • the display unit 15 may be applied to a user's touch operation. A variety of information generated according to the display can be displayed.
  • the display unit 15 of the present invention is a liquid crystal display (LCD), a thin film transistor LCD (TFT-LCD), organic light emitting diodes (OLED), a light emitting diode (LED), and an AMOLED (Active Matrix Organic).
  • LCD liquid crystal display
  • TFT-LCD thin film transistor LCD
  • OLED organic light emitting diodes
  • LED light emitting diode
  • AMOLED Active Matrix Organic
  • LED Active Matrix Organic
  • a flexible display a three-dimensional display, and the like.
  • Some of these displays may also be configured to be transparent or light transmissive so that they can be seen from the outside. It may be configured in the form of a transparent display including a transparent OLED (TOLED).
  • TOLED transparent OLED
  • the terminal 10 may further include a sound source output unit (not shown) for converting a sound source, which is an electrical signal, into an analog signal and outputting the analog signal.
  • a sound source output unit (not shown) for converting a sound source, which is an electrical signal, into an analog signal and outputting the analog signal.
  • control unit 13 may be configured with various modules that perform various functions.
  • the terminal 10 of the present invention may be implemented in various forms.
  • the terminal 10 described herein may be a mobile terminal such as a smart phone, a tablet PC, a personal digital assistant (PDA), a portable multimedia player (PMP), or an MP3 player.
  • PDA personal digital assistant
  • PMP portable multimedia player
  • MP3 player an MP3 player.
  • a fixed terminal such as a smart TV, a desktop computer, or the like may be used.
  • the terminal 10 of the present invention can not be enumerated because all the variations of the portable device according to the convergence (convergence) trend of the digital device, but the unit of the same level as the above-mentioned unit is a terminal according to the present invention Any device may be used as the terminal 10, and any device may be used as the terminal 10 of the present invention as long as the terminal has a storage unit 14 and can transmit / receive information with the service apparatus 20 through the communication network 30. It is possible.
  • FIG. 6 is a block diagram illustrating a main configuration of a service apparatus according to an exemplary embodiment of the present invention illustrated in FIG. 1.
  • the service device 20 may include a service communication unit 21, a service control unit 22, and a service storage unit 23.
  • the service communication unit 21 supports the role of transmitting and receiving various information with one or more terminals 10 through the communication network (30).
  • the service communication unit 21 of the present invention can receive a query for the library version from any one terminal 10, it can provide a library version to the terminal (10).
  • the service control unit 22 performs overall control of the service device 20 according to an embodiment of the present invention.
  • the service control unit 22 may be provided to one or more terminals 10. It can play a role in storing and managing libraries.
  • the library may be a set of classes, methods, and objects for providing a specified function through an application, unlike a parent library embedded in the application at the time of application distribution.
  • the service controller 22 may store and manage a library so that the above-described process is performed, and support the process of being distributed to the terminal 10.
  • the service control unit 22 may receive a query for the version of the library from any one terminal 10, in response to this may provide information about the version of the library to the terminal 10.
  • the service control unit 22 may provide the terminal 10 with a library provided at the request of the terminal 10.
  • the service storage unit 22 stores all programs according to the function execution of the service device 20.
  • the service storage unit 22 according to the present invention may store and manage a library, which is a set of resources for performing a designated function (for example, an advertisement service).
  • the service storage unit 23 of the present invention may be a storage located in the service device 20, may be located outside the service device 20 may be a data storage server capable of transmitting and receiving data with the service device 20. have.
  • the service apparatus 20 has the same configuration as a conventional web server or a network server in hardware.
  • software includes program modules implemented through languages such as C, C ++, Java, Visual Basic, Visual C, and the like.
  • the service device 20 may be implemented in the form of a web server or a network server, which is generally connected to an unspecified number of clients and / or other servers via an open computer network such as the Internet, and which is a client or other web server. It refers to a computer system that accepts a request to perform a work and derives and provides a work result thereof, and a computer software (web server program) installed therefor.
  • the service device 20 uses a web server program that is variously provided according to operating systems such as DOS, Windows, Linux, UNIX, Macintosh, and the like for general server hardware.
  • a typical example may be a website used in a Windows environment, a website used in a Windows environment, an Internet Information Server (IIS), a CERN used in a UNIX environment, an NCSA, an APPACH, or the like.
  • the service device 20 may classify service subscription information, store and manage the service subscription information in a member database, and the database may be implemented inside or outside the service device 20.
  • the database implemented in the service device 20 may be a service storage unit 23.
  • the service device 20 of the present invention may be implemented as one or more servers operating in a server-based computing or cloud.
  • the information transmitted and received through the library update system 100 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.
  • all the information transmitted and received between the one or more terminals 10 and the service device 20 is stored in a cloud computing device on the Internet, and can be transmitted anytime, anywhere.
  • the memory mounted in the terminal 10 or the service device 20 stores information in the device.
  • 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.
  • a ' ⁇ module' refers to a software component, ' ⁇ module' plays a role.
  • a ' ⁇ module' may include components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, procedures, and subs. Routines, segments of program code, drivers, data, databases, data structures, tables, arrays, and variables.
  • the functions provided in the components and ' ⁇ modules' may be combined into a smaller number of components and ' ⁇ modules' or further separated into additional components and ' ⁇ modules'.
  • 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. 7 is a flowchart illustrating a process of receiving a library file from a service device for updating a library according to an exemplary embodiment of the present invention.
  • the control unit 13 of the terminal 10 stores a library held by the service device 20 through a parent library stored in the non-shared storage area 14a of the storage unit 14.
  • the version is queried (S101), and the version of the library held by the service device 20 is received (S103).
  • the child library manager 320 of the parent library 300 connects to the service device 20 through the server connection unit 321 and through the version checker 322.
  • the service device 20 may query the version of the library, and the version checking unit 322 may receive the version of the library from the service device 20 through the server connection unit 321.
  • the parent library more specifically, the storage area connection unit 323 of the parent library 300 checks the version of the library installed through the installation check unit 324, If different, the purpose of the library held by the service device 20 is confirmed (S105 to S109).
  • the storage area connection unit 323 connects the shared storage area (S111), otherwise, the parent library 300 The existing non-shared storage area S113 is connected.
  • the library file is received through the child library receiving unit 330 of the parent library 300 (S115), and received through the child library storage unit 350.
  • the stored library file is stored in the shared storage area 14b (S117).
  • FIG. 8 is a flowchart illustrating a method of loading a library file into a child library according to an embodiment of the present invention.
  • the parent library 300 when one application is executed, the parent library 300 existing in the application is newly installed in the shared storage area 14b according to a request of the control unit 13 of the terminal 10. Check the information related to the library, such as the version, the file name (S201). In addition, since the library exists in the shared storage area 14b, the parent library 300 checks the accessible storage area whether the corresponding application is accessible to the shared storage area 14b (S203), and the file of the corresponding version. If there is no abnormality (S207), and if there is no abnormality (S209), the library file is loaded (S213), and the process of loading the class specification resource specification is performed (S215 to S217). On the other hand, if there is an error in the library received from the service device 20 in step S209, the parent library 300 may perform a process of deleting the library stored in the shared storage area 14b and downloading again ( S211).
  • the parent library 300 of the executed application can access the class using the new child library, and use the child library such as calling a method using the corresponding class.
  • a child library may be loaded and a class in the parent library may be generated through the API of the parent library (S301).
  • the class specification in the child library can be checked (S303), inquired (S305), and the class in the child library can be generated (S307).
  • FIG. 10 illustrates a process of calling a method in a child library through a class in a generated child library, and accesses a generated class in a parent library through an API of a parent library (S404) and illustrates a method provided by a corresponding class. It may be called (S403). Then, the method in the parent library called this accesses the class in the child library (S405), and after checking the child method specification (S407), it is possible to query and call the method in the child library (S409).
  • the application may execute a function provided by the child library while the application is running by using the child library. For example, when the child library supports a function of taking advertisement data from the service device 20 and outputting the advertisement data through the application, the application may output advertisement data provided by the service device 20 during execution.
  • the terminal environment is implemented to include a shared storage area accessible to various applications and a non-shared storage area allocated to each application, and the shared storage area includes a child library that can be used by all applications.
  • the non-shared storage area includes a parent library operating for each application, thereby eliminating duplication of the same library in the terminal, thereby enabling more efficient resource utilization.
  • the application maintenance cost is reduced by updating only the child library that can be accessed and shared by multiple applications, without having to perform the update for each application. Excellent effect.
  • a computer-readable medium suitable for storing computer program instructions and data may include, for example, a magnetic medium such as a hard disk, a floppy disk, and a magnetic tape, and a compact disk read only memory (CD-ROM).
  • Optical media such as Digital Video Disk (DVD), magneto-optical media such as Floppy Disk, and ROM (Read Only Memory), RAM
  • semiconductor memory such as a random access memory, a flash memory, an erasable programmable ROM (EPROM), and an 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 method of updating a library in a terminal environment including a shared storage area accessible to various applications and a non-shared storage area allocated to each application. More specifically, the shared storage area is a child library that can be used by all applications.
  • the non-shared storage area includes a parent library operating for each application, and the parent library compares a version of the child library with a service device in association with a service device, and if necessary, updates a child library related file from the service device.
  • the present invention relates to a method for updating a library, a terminal, and a system for controlling the same so that a child library can be used.
  • the present invention it is possible to use terminal resources more efficiently by eliminating duplication of the same library in the terminal, and to efficiently use network resources that can minimize the capacity of the application, thereby contributing to the development of the application industry. Can be.
  • the present invention has industrial applicability because the present invention is not only sufficiently commercially available or commercially viable, but also practically clearly implemented.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법에 관한 것으로서, 더욱 상세하게는 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하며, 상기 부모 라이브러리가 상기 자식 라이브러리의 버전을 서비스 장치와 연동하여 비교하고, 업데이트가 필요한 경우, 상기 서비스 장치로부터 자식 라이브러리 관련 파일을 수신하여, 자식 라이브러리 사용될 수 있도록 제어할 수 있는 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템에 관한 것으로, 단말 내 동일한 라이브러리의 중복을 배제하여 보다 효율적인 단말 자원 활용이 가능하며, 실제 기능에 대한 내용인 클래스, 메소드, 객체를 포함하고 있는 자식 라이브러리에 접근 가능한 API로 구성되는 부모 라이브러리만을 어플리케이션에 내포하여 배포함으로써, 어플리케이션의 용량을 최소화할 수 있는 네트워크 자원을 보다 효율적으로 활용할 수 있게 된다.

Description

라이브러리 업데이트 방법, 이를 위한 단말 및 시스템
비공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법에 관한 것으로서, 더욱 상세하게는 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하며, 상기 부모 라이브러리가 상기 자식 라이브러리의 버전을 서비스 장치와 연동하여 비교하고, 업데이트가 필요한 경우, 상기 서비스 장치로부터 자식 라이브러리 관련 파일을 수신하여, 자식 라이브러리 사용될 수 있도록 제어할 수 있는 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
최근, 스마트폰(smartphone)과 같은 단말의 성능 향상 및 통신 기술의 급속한 발전으로 인해, 단말에서 실행 가능한 다양한 종류의 어플리케이션(application)이 빠르게 보급되고 있으며, 이를 위한 다양한 어플리케이션 개발 방법이 소개되고 있다.
최근에는 어플리케이션에서 공통적으로 사용하는 코드와 리소스를 별도의 부프로그램으로 구성하여 개발하고 있다. 이러한 부프로그램을 라이브러리(library)라고 불린다. 어플리케이션 개발자들은 개발의 효율성을 위해 라이브러리 형태로 서비스 기능의 개발 방법(SDK; Software Development Kit)을 제공한다.
이렇게 제작된 SDK 라이브러리는 개발자의 어플리케이션에 함께 내포되어 빌드되고 배포되며, 런타임 과정에서 어플리케이션 코드와 함께 실행되는 방식이다.
현재까지의 SDK 라이브러리는 이를 사용하여 개발되는 어플리케이션마다 개별적으로 내포되어 배포됨으로써, 하나의 단말 상에 동일한 SDK 라이브러리가 여러 개 존재한다는 문제점이 있다.
또한, SDK 라이브러리 전체가 어플리케이션에 내포되어 배포됨으로써, 어플리케이션 전송 시 많은 네트워크 자원을 소모한다는 문제점이 있다.
또한, SDK 라이브러리가 내포되는 시점이 어플리케이션의 빌드 시점임에 따라, SDK 라이브러리의 변경 사항이 발생하였을 때, 어플리케이션의 빌드, 배포에 대한 비용이 발생된다는 문제점이 있다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로서, 특히 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하는 단말 환경에서, 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하며, 상기 부모 라이브러리가 상기 자식 라이브러리의 버전을 서비스 장치와 연동하여 비교하고, 업데이트가 필요한 경우, 상기 서비스 장치로부터 자식 라이브러리 관련 파일을 수신하여, 자식 라이브러리 사용될 수 있도록 제어할 수 있는 을제공하는데목적이있다.
그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 단말은 어플리케이션 각각에 할당되는 비공유 저장 영역 및 여러 어플리케이션이 공유할 수 있는 공유 저장 영역을 포함하며, 상기 비공유 저장 영역은 어플리케이션별로 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하고, 상기 공유 저장 영역은 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 저장부; 및 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후, 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 제어부;를 포함하여 구성될 수 있다.
이때, 상기 제어부는 상기 수신된 라이브러리가 상기 공유 저장 영역에 저장되도록 제어한 후, 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 상기 부모 라이브러리의 클래스를 생성함과 동시에 상기 자식 라이브러리의 클래스를 생성하고, 생성된 상기 부모 라이브러리의 클래스를 통해 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 과정을 제어할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 단말은 여러 어플리케이션이 공유할 수 있는 공유 저장 영역에 위치하며, 부모 라이브러리의 요청에 따라 리소스를 제공하는 자식 라이브러리; 및 어플리케이션 각각에 할당되는 비공유 저장 영역에 위치하며, 할당된 어플리케이션이 실행되면, 서비스 장치와 연동하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 하나 이상의 부모 라이브러리;를 포함하여 구성될 수 있다.
이때, 상기 부모 라이브러리는 상기 자식 라이브러리의 업데이트 여부를 판단하는 자식 라이브러리 관리부; 상기 서비스 장치로부터 수신된 상기 라이브러리를 상기 공유 저장 영역에 저장하는 자식 라이브러리 적재부; 및 상기 공유 저장 영역에 저장된 라이브러리를 자식 라이브러리로 동작하도록 클래스를 조회하여 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 자식 라이브러리 호출부;를 포함하여 구성될 수 있다.
이때, 상기 자식 라이브러리 관리부는 상기 서비스 장치와의 연결을 위한 서버 연결부; 상기 서버 연결부를 통해 상기 서비스 장치와 연결되면, 상기 서비스 장치에 구비된 라이브러리의 버전을 질의하여 확인하는 버전 확인부; 및 상기 버전 확인부를 통해 확인된 라이브러리의 버전과 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 서비스 장치의 라이브러리를 여러 어플리케이션이 공유하는 지 여부를 확인하여 저장 영역을 연결하는 저장 영역 연결부;를 포함하여 구성될 수 있다.
이때, 상기 저장 영역 연결부는 상기 기 저장된 자식 라이브러리를 사용하는 어플리케이션을 확인하여, 상기 자식 라이브러리를 사용하는 어플리케이션이 하나 이상 존재하는 경우, 상기 자식 라이브러리를 여러 어플리케이션이 공유하는 것으로 판단할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 라이브러리 업데이트 시스템은 하나 이상의 어플리케이션이 이용 가능한 라이브러리를 저장하고 관리하는 서비스 장치; 및 어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하며, 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후, 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단말;을 포함하여 구성될 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법은 상기 단말이 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 서비스 장치에 구비된 라이브러리의 버전을 확인하는 단계; 상기 단말이 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하는 단계; 상기 비교 결과 상이할 경우, 상기 단말이 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신하는 단계; 및 상기 단말이 수신된 상기 라이브러리 관련 파일을 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단계;를 포함하여 이뤄질 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법은 상기 부모 라이브러리가 할당된 어플리케이션이 실행되면, 서비스 장치와 연동하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하는 단계; 및 상기 부모 라이브러리가 확인된 버전과 상기 자식 라이브러리의 버전을 비교하는 단계; 상기 비교 결과 상이할 경우, 상기 부모 라이브러리가 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 제어하는 단계는 상기 부모 라이브러리가 상기 수신된 라이브러리를 상기 공유 저장 영역에 저장하는 단계; 상기 부모 라이브러리가 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 클래스를 생성함과 동시에 상기 자식 라이브러리의 클래스를 생성하는 단계; 및 상기 부모 라이브러리가 생성된 상기 자식 라이브러리의 클래스를 통해 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 과정을 제어하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 버전을 비교하는 단계 이후에, 상기 비교 결과 상이할 경우, 상기 부모 라이브러리가 상기 서비스 장치의 라이브러리를 여러 어플리케이션이 공유하는 지 여부를 확인하여 저장 영역을 연결하는 단계;를 더 포함하여 이뤄질 수 있다.
추가로 본 발명은 상술한 라이브러리 업데이트 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공할 수 있다.
본 발명의 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템에 의하면, 단말 환경을 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하도록 구현하고, 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하도록 함으로써, 단말 내 동일한 라이브러리의 중복을 배제하여 보다 효율적인 단말 자원 활용이 가능하게 된다.
또한, 실제 기능에 대한 내용인 클래스, 메소드, 객체를 포함하고 있는 자식 라이브러리에 접근 가능한 API로 구성되는 부모 라이브러리만을 어플리케이션에 내포하여 배포함으로써, 어플리케이션의 용량을 최소화할 수 있는 네트워크 자원을 보다 효율적으로 활용할 수 있게 된다.
또한, 실제 기능에 대한 내용을 포함하는 자식 라이브러리에 업데이트가 발생되었을 경우, 어플리케이션별로 업데이트를 수행할 필요 없이, 여러 어플리케이션이 접근하여 공유할 수 있는 자식 라이브러리만을 업데이트함으로써, 어플리케이션 유지보수 비용이 절감된다는 우수한 효과가 있다.
아울러, 상술한 효과 이외의 다양한 효과들이 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 수 있다.
도 1은 본 발명의 실시 예에 따른 라이브러리 업데이트 방법이 적용된 어플리케이션 제공 시스템의 개략적인 구성도이다.
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 단말의 주요 구성을 도시한 블록도이다.
도 3은 본 발명의 실시 예에 따른 저장부의 구성을 도시한 블록도이다.
도 4는 본 발명의 실시 예에 따른 부모 라이브러리의 주요 구성을 도시한 블록도이다.
도 5는 본 발명의 실시 예에 따른 자식 라이브러리의 주요 구성을 도시한 블록도이다.
도 6은 도 1에 도시된 본 발명의 실시 예에 따른 서비스 장치의 주요 구성을 도시한 블록도이다.
도 7은 본 발명의 실시 예에 따른 라이브러리 업데이트를 위해 서비스 장치로부터 라이브러리 파일을 수신하는 과정을 설명하기 위한 흐름도이다.
도 8은 본 발명의 실시 예에 따른 라이브러리 파일을 자식 라이브러리로 불러오는 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 실시 예에 따른 부모 라이브러리가 업데이트된 자식 라이브러리를 사용하는 방법을 설명하기 위한 흐름도이다.
도 10은 생성된 자식 라이브러리 내의 클래스를 통해 자식 라이브러리 내의 메소드를 호출하는 과정을 설명하기 위한 것으로 흐름도이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 핵심을 흐리지 않고 더욱 명확히 전달하기 위함이다. 또한 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 하나, 이는 본 발명을 특정한 실시 형태로 한정하려는 것은 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이제 본 발명의 실시 예에 따른 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템에 대하여 도면을 참조하여 상세하게 설명하도록 한다. 이때, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용하며, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 실시 예에 따른 라이브러리 업데이트 방법이 적용된 어플리케이션 제공 시스템의 개략적인 구성도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 (100)은 단말(10), 서비스 장치(20) 그리고 상기 단말(10) 및 서비스 장치(20) 사이의 정보의 송수신을 지원하는 통신망(30)을 포함하여 구성될 수 있다.
각 구성요소에 대해 개략적으로 설명하면, 먼저, 단말(10)은 사용자의 조작에 따라 통신망(30)을 경유하여 각종 데이터를 송수신할 수 있는 사용자의 장치를 의미한다. 이러한 단말(10)은 통신망(30)을 통해 음성 또는 데이터 통신을 수행할 수 있으며, 서비스 장치(20)와 다양한 정보를 송수신할 수 있다. 이를 위한 본 발명의 단말(10)은 정보의 송수신을 위한 브라우저, 프로그램 및 프로토콜을 저장하는 메모리, 각종 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비할 수 있다.
특히, 본 발명의 실시 예에 따른 단말(10)은 저장부를 포함하여 구성되며, 이때의 저장부는 어플리케이션 각각에 할당되는 비공유 저장 영역 및 여러 어플리케이션이 공유할 수 있는 공유 저장 영역을 포함한다. 이때, 비공유 저장 영역은 어플리케이션별로 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하고, 상기 공유 저장 영역은 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하여 구성될 수 있다.
이러한 저장 환경이 구현된 상태에서, 본 발명의 단말(10)은 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 서비스 장치(20)에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 서비스 장치(20)로부터 라이브러리 관련 파일을 수신할 수 있다. 그리고, 단말(10)은 실행된 어플리케이션에 할당된 상기 부모 라이브러리를 제어하여 서비스 장치(20)로부터 수신된 라이브러리를 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어할 수 있다.
보다 구체적인 단말(10)에서의 저장 환경 및 라이브러리 업데이트 방법에 대해서는 후술하도록 한다.
서비스 장치(20)는 본 발명의 실시 예에 따른 특정 기능을 수행할 수 있는 클래스, 메소드, 객체의 리소스의 집합인 라이브러리를 관리하고, 단말(10)의 요청에 따라 제공하는 역할을 수행한다. 특히, 서비스 장치(20)는 어플리케이션 내에 라이브러리를 내포하여 배포되는 과정을 제어할 수 있으며, 단말(10)에 구비된 어플리케이션의 요청에 따라, 특정 기능을 수행할 수 있는 예컨대 광고 서비스를 위한 라이브러리를 제공하는 역할을 수행할 수 있다.
아울러, 서비스 장치(20)가 제공하는 특정 기능을 수행할 수 있는 리소스의 집합인 라이브러리는 수시로 업데이트될 수 있으며, 업데이트된 라이브러리는 단말(10)로 제공되어 단말(10)의 자식 라이브러리 동작하는 과정 전반을 지원할 수 있다.
보다 구체적인 서비스 장치(20)의 주요 구성 및 동작 방법에 대해서는 후술하도록 하며, 본 발명의 실시 예에 따른 단말(10) 및 서비스 장치(20)에 탑재되는 프로세서는 본 발명에 따른 방법을 실행하기 위한 프로그램 명령을 처리할 수 있다. 일 구현 예에서, 이 프로세서는 싱글 쓰레드(Single-threaded) 프로세서일 수 있으며, 다른 구현 예에서 본 프로세서는 멀티 쓰레드(Multithreaded) 프로세서일 수 있다. 나아가 본 프로세서는 메모리 혹은 저장 장치 상에 저장된 명령을 처리하는 것이 가능하다.
또한, 본 발명의 실시 예에 따른 단말(10) 및 서비스 장치(20)는 통신망(30)을 통해 관련된 다양한 정보를 송수신하게 되며, 이때의 통신망(30)은 다양한 형태의 통신망이 이용될 수 있다.
예컨대, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신 방식 또는 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coaxial Cable), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신 방식을 이용할 수 있다. 또한, 상술한 통신 방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.
이하, 본 발명의 실시 예에 따른 단말(10)의 주요 구성 및 동작 방법에 대해 설명하도록 한다.
도 1은 본 발명의 실시 예에 따른 라이브러리 업데이트 방법이 적용된 어플리케이션 제공 시스템의 개략적인 구성도이다.
도 1 및 도 2를 참조하면, 본 발명의 실시 예에 따른 단말(10)은 통신부(11), 입력부(12), 제어부(13), 저장부(14) 및 표시부(15)를 포함하여 구성될 수 있다.
각 구성 요소에 대해 보다 구체적으로 설명하면, 먼저, 통신부(11)는 통신망(30)을 통해 서비스 장치(20)와 다양한 정보의 송수신을 지원하는 역할을 수행한다. 특히, 본 발명의 실시 예에 따른 통신부(11)는 서비스 장치(20)가 제공하는 라이브러리 관련 파일을 수신할 수 있으며, 서비스 장치(20)로 라이브러리 버전을 질의하는 과정을 지원할 수 있다.
입력부(12)는 사용자로부터 입력되는 숫자 및 문자 정보 등의 다양한 정보, 각종 기능 설정 및 단말(10)의 기능 제어와 관련하여 입력되는 신호를 제어부(13)로 전달한다. 특히, 본 발명의 입력부(12)는 특정 기능을 지원하는 어플리케이션을 실행하기 위한 사용자 입력을 지원할 수 있다.
이러한 입력부(12)는 상술한 바와 같이, 키보드나 키패드와 같은 키 입력 수단, 터치센서나 터치 패드와 같은 터치 입력 수단, 음성 입력 수단, 자이로 센서, 지자기 센서, 가속도 센서와 근접 센서, 그리고 카메라 중 적어도 하나 이상을 포함하여 이루어지는 제스처 입력 수단을 포함할 수도 있다.
이 외에도 현재 개발 중이거나 향후 개발될 수 있는 모든 형태의 입력 수단이 포함될 수 있다.
제어부(13)는 단말(10)의 전반적인 제어를 수행하는 것으로, 하드웨어적으로 CPU(Central Processing Unit)/MPU(Micro Processing Unit)를 포함하는 적어도 하나 이상의 프로세서와 적어도 하나 이상의 메모리 로딩 데이터가 로딩되는 실행 메모리(예컨대, 레지스터 및/또는 RAM(Random Access Memory)) 및 상기 프로세서와 메모리로 적어도 하나 이상의 데이터들을 입출력하는 버스(BUS)를 포함하여 이루어질 수 있다. 또한 소프트웨어적으로 단말(10)에 정의된 기능을 수행하기 위해 소정의 기록매체로부터 상기 실행 메모리로 로딩되어 상기 프로세서에 의해 연산 처리되는 소정의 프로그램 루틴(Routine) 또는 프로그램 데이터를 포함하여 이루어질 수 있다. 다시 말해, 본 발명의 실시 예에 따른 라이브러리 업데이트 방법을 처리하기 위해 단말(10)에 구비되는 기능 중 소프트웨어적으로 처리가 가능한 구성 요소를 제어부(13)의 기능으로 판단할 수 있다.
이러한, 본 발명의 제어부(13)는 본 발명의 실시 예에 따른 라이브러리 업데이트 방법을 지원하기 위해 구비되는 적어도 하나 이상의 구성 요소와 기능적으로 연결된다. 즉, 제어부(13)는 통신부(11), 입력부(12), 저장부(14) 및 표시부(15)와 기능적으로 연결되며, 상기 각 구성 요소에 전원 공급 및 기능 수행을 위한 신호의 흐름을 제어하게 된다. 이러한 제어부(13)는 어플리케이션 처리 모듈(13a)을 포함하여 구성되며, 하나 이상의 어플리케이션이 저장부(14)에 저장되어 설치되는 과정을 지원할 수 있다. 또한, 제어부(13)는 설치된 어플리케이션이 실행되면, 해당 어플리케이션과 관련된 다양한 정보의 송수신 및 처리 과정을 지원할 수 있다.
특히, 본 발명의 실시 예에 따른 제어부(13)는 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 통신부(11)를 통해 서비스 장치(20)에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 저장부(14)의 공유 저장 영역(14b)에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 부모 라이브러리를 제어하여 상기 서비스 장치(20)로부터 라이브러리 관련 파일을 수신한 후, 상기 저장부(14)의 공유 저장 영역(14b)에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역(14b)에 기 저장된 자식 라이브러리를 대체하도록 제어하는 과정을 수행할 수 있다.
기 저장된 자식 라이브러리를 대체하기 위해, 제어부(13)는 서비스 장치(20)로부터 수신된 라이브러리가 저장부(14)의 공유 저장 영역(14b)에 저장되도록 제어한 후, 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 부모 라이브러리의 클래스를 생성함과 동시에 자식 라이브러리의 클래스를 생성하고, 생성된 상기 부모 라이브러리의 클래스를 통해 메소드를 호출하여, 자식 라이브러리의 클래스에 접근하고, 해당 메소드를 호출하는 과정을 제어할 수 있다.
이러한 제어부(13)에서의 동작은 저장부(14)에 구비된 자식 라이브러리 및 부모 라이브러리의 동작 방법과 연계하여 설명하도록 한다.
저장부(14)는 본 발명의 실시 예에 따른 기능 동작에 필요한 프로그램을 비롯하여, 프로그램 실행 중에 발생되는 다양한 데이터를 일시적으로 저장할 수 있다. 또한, 저장부(14)는 크게 프로그램 영역과 데이터 영역을 포함할 수 있다. 프로그램 영역은 단말(10)을 부팅시키는 운영체제(OS)와 같은 단말(10) 구동을 위한 관련된 정보들을 저장한다. 데이터 영역은 단말(10)의 사용에 따라 발생되는 데이터가 저장되는 영역으로, 상기 데이터 영역은 상술한 비공유 저장 영역(14a) 및 공유 저장 영역(14b)으로 구분될 수 있다. 이러한, 저장부(14)는 플래시 메모리(flash memory), 하드디스크(hard disk), 멀티미디어 카드 마이크로(multimedia card micro) 타입의 메모리(예컨대, SD 또는 XD 메모리 등), 램(RAM), 롬(ROM) 등의 저장매체를 포함하여 구성될 수 있다.
특히, 본 발명의 실시 예에 따른 저장부(14)는 어플리케이션 각각에 할당되는 비공유 저장 영역(14a) 및 공유 저장 영역(14b)으로 구분될 수 있다.
이에 대해 도 3을 참조하여 보다 구체적으로 설명하도록 한다.
도 3은 본 발명의 실시 예에 따른 저장부의 구성을 도시한 블록도이다.
도 3을 참조하면, 본 발명의 실시 예에 따른 저장부(14)는 전술한 바와 같이 어플리케이션 각각에 할당되는 비공유 저장 영역(14a) 및 여러 어플리케이션이 데이터를 공유하는 공유 저장 영역(14b)으로 구분될 수 있다.
먼저, 비공유 저장 영역(14a)은 어플리케이션 각각에 할당되며, 해당 어플리케이션별 데이터 저장을 위한 공간으로, 비공유 저장 영역(14a)은 단말(10)에 설치되는 어플리케이션의 수에 따라 그 공간의 크기가 증가되거나 감소될 수 있다.
또한, 비공유 저장 영역(14a) 내에 존재하는 하나 이상의 어플리케이션들은 각각 어플리케이션 고유의 데이터를 저장하는 개별 코드 및 부모 라이브러리(300)을 포함한다. 여기서 부모 라이브러리(300)는 어플리케이션 개발자에 의해 어플리케이션 개발 시점에 직접 어플리케이션 내에 구비되는 라이브러리로서, 라이브러리의 호출을 위한 API(Application Programming Interface)를 제공한다. 그러나, 이때의 API에 해당하는 실질적은 기능에 대한 내용은 부모 라이브러리(300)에 존재하지 않으며, 실질적인 기능에 대한 내용은 자식 라이브러리(400)의 리소스를 통해 존재한다. 다시 말해, 본 발명의 부모 라이브러리(300)는 자식 라이브러리의 접근을 지원하는 역할을 수행하게 된다.
여러 어플리케이션이 접근하여 자원을 이용할 수 있는 공유 저장 영역(14b)은 자식 라이브러리(400)를 포함한다. 어플리케이션에 실질적인 기능을 제공을 위한 리소스를 제공하는 자식 라이브러리는 각각의 어플리케이션에 구비된 부모 라이브러리와 한 벌로 공유되어 사용될 수 있으며, 공유 저장 영역(14B)에 라이브러리 버전, 파일 정보 등과 같은 정보와 함께 저장되고 관리될 수 있다.
부모 라이브러리 및 자식 라이브러리의 주요 구성 및 역할에 대해 도 4 및 도 5를 참조하여 보다 구체적으로 설명하도록 한다.
도 4는 본 발명의 실시 예에 따른 부모 라이브러리의 주요 구성을 도시한 블록도이다.
도 4를 참조하면, 부모 라이브러리(300)는 크게 어플리케이션 프로그래밍 인터페이스(310), 자식 라이브러리 관리부(320), 자식 라이브러리 수신부(330), 자식 라이브러리 적재부(340), 자식 라이브러리 저장부(350), 자식 라이브러리 호출부(360)를 포함하여 구성될 수 있으며, 이러한 구분은 논리적 구분을 의미하고, 실질적은 동작은 제어부(13) 및 통신부(11)와 연계하여 이뤄질 수 있다.
각 구성 요소에 대해 보다 구체적으로 설명하면, 어플리케이션 프로그래밍 인터페이스(310)는 자식 라이브러리에 접근하는 과정을 지원한다.
자식 라이브러리 관리부(320)는 서버 연결부(321), 버전 확인부(322), 저장 영역 연결부(323), 설치 확인부(324), 명령 처리부(325)를 포함하여 구성될 수 있다. 자식 라이브러리 관리부(320)의 서버 연결부(321)는 서비스 장치(20)와의 연결을 위한 역할을 수행한다. 버전 확인부(322)는 상기 서버 연결부(321)를 통해 서비스 장치(20)와 연결되면, 상기 서비스 장치(20)에 구비된 라이브러리의 버전을 확인하는 역할을 수행하게 된다.
저장 영역 연결부(323)는 상기 라이브러리의 버전과 단말(10) 내 설치되어 있는 자식 라이브러리의 버전, 다시 말해, 저장부(14)의 공유 저장 영역(14b)에 저장된 자식 라이브러리의 버전과 비교하게 된다. 상기 비교 결과, 상이할 경우, 저장 영역 연경부(323)는 상기 서비스 장치(20)에 구비된 라이브러리를 여러 어플리케이션이 공유하는 지 여부를 판단하고, 판단 결과에 따라 상기 라이브러리가 공유 저장 영역(14a)에 저장되도록 연결하거나, 비공유 저장 영역(14b)에 저장되도록 연결하는 과정을 수행한다.
설치 확인부(324)는 상기 저장 영역 연결부(323)와 연동하여, 상기 저장 영역 연결부(323)에 요청에 따라 단말(10) 내 구비된 라이브러리의 버전을 확인하는 역할을 수행한다. 명령 처리부(325)는 수신, 저장, 저장, 호출 등 상술한 바와 같은 동작 수행을 위해 필요한 명령어들로 구성될 수 있다.
자식 라이브러리 수신부(330)는 상기 자식 라이브러리 관리부(320)의 요청에 따라, 업데이트를 하고자 하는 라이브러리를 서비스 장치(20)로부터 수신하기 위해, 서비스 장치(20)와의 연결을 지원하는 서버 연결부(331) 및 라이브러리를 수신하는 수신 실행부(332)를 포함하여 구성될 수 있다.
자식 라이브러리 적재부(340)는 자식 라이브러리 관리부(320)의 적재 명령에 의해 라이브러리 파일을 읽어 들여 적재하고 라이브러리 파일 내 리소스를 적재하는 역할을 수행한다. 이러한 자식 라이브러리 적재부(340)는 바이너리 적재부(341) 및 리소스 적재부(342)를 포함하여 구성될 수 있으며, 바이너리 적재부(241)는 라이브러리 파일을 바이너리 코드 형태로 적재하는 역할을 수행하며, 리소스 적재부(342)는 라이브러리 파일 내 리소스를 적재하는 역할을 수행한다.
자식 라이브러리 저장부(350)는 공유 저장 영역 연결부(351), 비공유 저장 영역 연결부(352), 바이너리 저장부(353), 버전 정보 저장부(354)를 포함하여 구성될 수 있다. 공유 저장 영역 연결부(351) 및 비공유 저장 영역 연결부(352)는 공유 저장 영역(14b) 및 비공유 저장 영역(14a) 간의 인터페이스를 제공하며, 바이너리 저장부(353)는 라이브러리 파일의 저장을 수행하며, 버전 정보 저장부(354)는 라이브러리 버전 및 파일 정보를 저장하고 관리하는 역할을 수행한다.
자식 라이브러리 호출부(360)는 적재된 라이브러리 내에서 클래스를 조회하여 객체를 생성하고 생성된 객체를 통해 메소드를 조회하고 메소드를 호출하는 역할을 수행한다. 이러한 자식 라이브러리 호출부(360)는 클래스를 조회하는 클래스 조회부(361), 조회된 클래스를 이용하여 객체를 생성하는 객체 생성부(362), 생성된 객체를 통해 메소드를 조회하는 메소드 조회부(363), 조회한 메소드를 호출하는 메소드 호출부(364)를 포함하여 구성될 수 있다.
이하, 자식 라이브러리의 주요 구성 및 역할에 대해 설명하도록 한다.
도 5는 본 발명의 실시 예에 따른 자식 라이브러리의 주요 구성을 도시한 블록도이다.
도 5를 참조하면, 자식 라이브러리(400)는 크게 부모 라이브러리 연결부(410), 자식 라이브러리 호출부(420), 클래스 제공부(430), 메소드 제공부(440), 리소스 제공부(450)를 포함하여 구성될 수 있다.
부모 라이브러리 연결부(410)는 부모 라이브러리(300)를 위한 연결 기능을 지원하며, 클래스 명세부(411), 메소드 명세부(412), 리소스 명세부(413)를 통해 부모 라이브러리(300)는 자식 라이브러리(400) 내에 접근할 수 있는 대상을 조회할 수 있다.
자식 라이브러리 호출부(420)는 부모 라이브러리 연결부(410)를 통해 얻은 명세를 바탕으로 클래스와 메소드를 조회하고, 생성하고 호출할 수 있는 구성을 제공하며, 이러한 자식 라이브러리 호출부(420)는 클래스 조회부(421), 메소드 조회부(422), 객체 생성부(423), 메소드 호출부(424)를 포함하여 구성된다.
클래스 제공부(430), 메소드 제공부(440), 리소스 제공부(340)는 자식 라이브러리(400) 내에 실제 기능이 구현된 클래스, 메소드, 리소스를 부모 라이브러리(300)로 제공하는 역할을 수행한다.
부모 라이브러리(300) 및 자식 라이브러리(400) 간의 연동을 통한 라이브러리 업데이트 방법에 대해서는 이하의 흐름도를 참조하여 보다 더 구체적으로 설명하도록 하며, 다시 도 2를 참조하여, 단말(10)의 장치 구성에 대해 설명하도록 한다.
표시부(15)는 단말(10)의 기능 수행 중에 발생하는 일련의 동작 상태 및 동작 결과 등에 대한 정보를 표시한다. 특히, 본 발명의 표시부(15)는 어플리케이션 실행 중에 발생되는 다양한 정보, 예컨대 자식 라이브러리가 제공하는 특정 기능에 대한 정보의 출력을 지원할 수 있다.
이러한, 표시부(15)는 상술한 바와 같이 입력부(12)와 함께 하나의 터치패널(또는 터치스크린)의 형태로 구현될 수도 있으며, 상기 입력부(12)와 함께 구현되는 경우, 사용자의 터치 동작에 따라 발생되는 다양한 정보들을 표시할 수 있다.
또한, 상술한 바와 같은 본 발명의 표시부(15)는 LCD(Liquid Crystal Display), TFT-LCD(Thin Film Transistor LCD), OLED(Organic Light Emitting Diodes), 발광다이오드(LED), AMOLED(Active Matrix Organic LED), 플렉시블 디스플레이(Flexible display) 및 3차원 디스플레이(3 Dimension) 등으로 구성될 수 있다. 또한 이들 중 일부 디스플레이는 그를 통해 외부를 볼 수 있도록 투명형 또는 광투과형으로 구성될 수 있다. 이는 TOLED(Transparant OLED)를 포함하는 투명 디스플레이 형태로 구성될 수 있다.
이와 같이, 도 2를 통해 단말(10)의 주요 구성요소에 대해 설명하였다. 그러나 도 2를 통해 도시된 구성요소가 모두 필수 구성요소인 것은 아니며, 도시된 구성요소보다 많은 구성 요소에 의해 단말(10)이 구현될 수도 있고, 그 보다 적은 구성요소에 의해 단말(10)이 구현될 수도 있다. 예컨대, 단말(10)은 전기적인 신호인 음원을 아날로그 신호로 변환하여 출력하는 음원 출력부(미도시)를 더 포함하여 구성될 수 있다.
또한, 도 2를 통해 도시된 단말(10)의 주요 구성요소의 위치는 얼마든지 편의상 또는 다른 이유로 바뀔 수 있음이 물론이다. 또한, 제어부(13)를 구성하는 모듈은 어플리케이션 처리 모듈(13a)만을 도시하였으나, 이에 한정되는 것은 아니며, 다양한 기능을 수행하는 다양한 모듈로 제어부(13)가 구성될 수도 있다.
이상으로 본 발명의 실시 예에 따른 단말(10)의 주요 구성 및 동작 방법에 대해 설명하였다. 이러한 본 발명의 단말(10)은 다양한 형태로 구현될 수 있다. 예를 들어, 본 명세서에서 기술되는 단말(10)은 스마트 폰(smart phone), 타블렛 PC(Tablet PC), PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), MP3 Player 등의 이동 단말기는 물론, 스마트 TV(Smart TV), 데스크탑 컴퓨터 등과 같은 고정 단말기가 사용될 수도 있다.
이러한 본 발명의 단말(10)은 디지털 기기의 컨버전스(convergence) 추세에 따라 휴대 기기의 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 유닛들과 동등한 수준의 유닛이 본 발명에 따른 단말(10)로 사용될 수도 있으며, 저장부(14)를 구비하며, 통신망(30)을 통해 서비스 장치(20)와 정보를 송수신할 수 있는 단말이라면 그 어떠한 장치도 본 발명의 단말(10)로 적용 가능하다.
이하, 본 발명의 실시 예에 따른 서비스 장치(20)의 주요 구성 및 동작 방법에 대해 설명하도록 한다.
도 6은 도 1에 도시된 본 발명의 실시 예에 따른 서비스 장치의 주요 구성을 도시한 블록도이다.
도 1 및 도 6을 참조하면, 본 발명의 실시 예에 따른 서비스 장치(20)는 서비스 통신부(21), 서비스 제어부(22) 및 서비스 저장부(23)를 포함하여 구성될 수 있다.
각 구성 요소에 대해 보다 구체적으로 설명하면, 먼저 서비스 통신부(21)는 통신망(30)을 통해 하나 이상의 단말(10)과 다양한 정보를 송수신하는 역할을 지원하게 된다. 특히, 본 발명의 서비스 통신부(21)는 어느 하나의 단말(10)로부터 라이브러리 버전에 대한 질의를 수신할 수 있으며, 상기 단말(10)로 라이브러리 버전을 제공할 수 있다.
서비스 제어부(22)는 본 발명의 실시 예에 따른 서비스 장치(20)의 전반적인 제어를 수행하는 것으로, 특히, 본 발명의 실시 예에 따른 서비스 제어부(22)는 하나 이상의 단말(10)로 제공되는 라이브러리를 저장하고 관리하는 역할을 수행할 수 있다. 이때의 라이브러리는 어플리케이션 배포 당시에 상기 어플리케이션에 내포되어 배포되는 부모 라이브러리와 다르게, 지정된 기능을 어플리케이션을 통해 제공하기 위한 클래스, 메소드, 객체의 집합이 될 수 있다. 이러한 라이브러리는 단말(10)에 탑재될 경우, 부모 라이브러리와 연동 가능한 자식 라이브러리 동작하게 된다. 서비스 제어부(22)는 상술한 과정이 이뤄지도록 라이브러리를 저장하고 관리하며, 단말(10)로 배포되는 과정을 지원할 수 있다. 이러한 서비스 제어부(22)는 어느 하나의 단말(10)로부터 라이브러리의 버전에 대한 질의를 수신할 수 있으며, 이에 대한 응답으로 상기 단말(10)로 라이브러리의 버전에 대한 정보를 제공할 수 있다. 그리고, 서비스 제어부(22)는 단말(10)의 요청에 따라 구비된 라이브러리를 단말(10)로 제공할 수 있다.
서비스 저장부(22)는 서비스 장치(20)의 기능 실행에 따른 모든 프로그램을 저장한다. 특히, 본 발명에 따른 서비스 저장부(22)는 지정된 기능(예컨대, 광고 서비스 등)을 수행하기 위한 리소스의 집합인 라이브러리를 저장하고 관리할 수 있다.
이러한, 본 발명의 서비스 저장부(23)는 서비스 장치(20) 내 위치하는 저장소일 수 있고, 서비스 장치(20) 외부에 위치하여 서비스 장치(20)와 데이터 송수신이 가능한 데이터 저장 서버가 될 수도 있다.
이상으로 본 발명의 실시 예에 따른 서비스 장치(20)의 주요 구성 및 동작 방법에 대해 설명하였다.
본 발명의 실시 예에 따른 서비스 장치(20)는 하드웨어적으로는 통상적인 웹서버(Web Server) 또는 네트워크 서버와 동일한 구성을 하고 있다. 그러나, 소프트웨어적으로는 C, C++, Java, Visual Basic, Visual C 등과 같은 언어를 통하여 구현되는 프로그램 모듈(Module)을 포함한다. 서비스 장치(20)는 웹서버 또는 네트워크 서버의 형태로 구현될 수 있으며, 웹서버는 일반적으로 인터넷과 같은 개방형 컴퓨터 네트워크를 통하여 불특정 다수 클라이언트 및/또는 다른 서버와 연결되어 있고, 클라이언트 또는 다른 웹서버의 작업수행 요청을 접수하고 그에 대한 작업 결과를 도출하여 제공하는 컴퓨터 시스템 및 그를 위하여 설치되어 있는 컴퓨터 소프트웨어(웹서버 프로그램)를 뜻하는 것이다. 그러나, 전술한 웹서버 프로그램 이외에도, 웹서버 상에서 동작하는 일련의 응용 프로그램(Application Program)과 경우에 따라서는 내부에 구축되어 있는 각종 데이터베이스를 포함하는 넓은 개념으로 이해되어야 할 것이다. 이러한 서비스 장치(20)는 일반적인 서버용 하드웨어에 도스(DOS), 윈도우(Windows), 리눅스(Linux), 유닉스(UNIX), 매킨토시(Macintosh) 등의 운영체제에 따라 다양하게 제공되고 있는 웹서버 프로그램을 이용하여 구현될 수 있으며, 대표적인 것으로는 윈도우 환경에서 사용되는 웹사이트(Website), IIS(Internet Information Server)와 유닉스환경에서 사용되는 CERN, NCSA, APPACH 등이 이용될 수 있다. 또한, 서비스 장치(20)는 서비스 가입 정보를 분류하여 회원 데이터베이스(Database)에 저장시키고 관리할 수 있으며, 이러한 데이터베이스는 서비스 장치(20)의 내부 또는 외부에 구현될 수 있다. 이때, 서비스 장치(20) 내부에 구현되는 상기 데이터베이스는 서비스 저장부(23)가 될 수 있다.
또한, 본 발명의 서비스 장치(20)는 서버 기반 컴퓨팅 방식 또는 클라우드 방식으로 동작하는 하나 이상의 서버로 구현될 수 있다. 특히, 라이브러리 업데이트 시스템(100)을 통해 송수신되는 정보는 인터넷 상의 클라우드 컴퓨팅 장치에 영구적으로 저장될 수 있는 클라우드 컴퓨팅(Cloud Computing) 기능을 통해 제공될 수 있다. 여기서, 클라우드 컴퓨팅은 데스크톱, 태블릿 컴퓨터, 노트북, 넷북 및 스마트폰 등의 디지털 단말기에 인터넷 기술을 활용하여 가상화된 IT(Information Technology) 자원, 예를 들어, 하드웨어(서버, 스토리지, 네트워크 등), 소프트웨어(데이터베이스, 보안, 웹 서버 등), 서비스, 데이터 등을 온 디맨드(On demand) 방식으로 서비스하는 기술을 의미한다. 본 발명에 있어서, 하나 이상의 단말(10)과 서비스 장치(20) 사이에 송수신되는 모든 정보는 인터넷 상의 클라우드 컴퓨팅 장치에 저장되고, 언제 어디서든 전송될 수 있다.
한편, 단말(10) 또는 서비스 장치(20)에 탑재되는 메모리는 그 장치 내에서 정보를 저장한다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛 일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛 일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
아울러, 본 발명의 실시 예에서 사용되는 '~모듈'이라는 용어는 소프트웨어 구성요소를 의미하며, '~모듈'은 어떤 역할들을 수행한다. 일 예로서 '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 또한, 구성요소들과 '~모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~모듈'들로 결합되거나 추가적인 구성요소들과 '~모듈'들로 더 분리될 수 있다.
비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
이하, 본 발명의 실시 예에 따른 라이브러리 업데이트 방법에 대해 설명하도록 한다.
도 7은 본 발명의 실시 예에 따른 라이브러리 업데이트를 위해 서비스 장치로부터 라이브러리 파일을 수신하는 과정을 설명하기 위한 흐름도이다.
도 1 내지 도 7을 참조하여, 먼저, 단말(10)의 제어부(13)는 저장부(14)의 비공유 저장 영역(14a)에 저장된 부모 라이브러리를 통해 서비스 장치(20)가 보유하고 있는 라이브러리의 버전을 질의하여(S101), 서비스 장치(20)가 보유하고 있는 라이브러리의 버전을 수신한다(S103). 이때, 보다 정확하게는 제어부(13)의 요청에 따라 부모 라이브러리(300)의 자식 라이브러리 관리부(320)가 서버 연결부(321)를 통해 서비스 장치(20)에 연결하고, 버전 확인부(322)를 통해 서비스 장치(20)로 라이브러리의 버전을 질의하고, 버전 확인부(322)가 서버 연결부(321)를 통해 서비스 장치(20)로부터 라이브러리의 버전을 수신할 수 있다.
그리고, 단말(10)의 제어부(13)의 요청에 따라 부모 라이브러리, 보다 정확하게는 부모 라이브러리(300)의 저장 영역 연결부(323)가 설치 확인부(324)를 통해 설치된 라이브러리의 버전을 확인하고, 상이할 경우, 서비스 장치(20)가 보유하고 있는 라이브러리의 목적을 확인하게 된다(S105 ~ S109).
다시 말해, 서비스 장치(20)가 보유하고 있는 라이브러리가 여러 어플리케이션이 공유할 라이브러리일 경우, 저장 영역 연결부(323)는 공유 저장 영역을 연결하고(S111), 그렇지 않을 경우, 부모 라이브러리(300)가 존재하고 있는 해당 비공유 저장 영역(S113)을 연결하게 된다.
이후에, 단말(10)의 제어부(13)의 요청에 따라, 부모 라이브러리(300)의 자식 라이브러리 수신부(330)를 통해 라이브러리 파일을 수신하고(S115), 자식 라이브러리 저장부(350)를 통해 수신된 라이브러리 파일을 공유 저장 영역(14b)에 저장하게 된다(S117).
공유 저장 영역(14b)에 저장된 라이브러리 파일을 자식 라이브러리로 불러오는 과정에 대해 이하에서 설명하도록 한다.
도 8은 본 발명의 실시 예에 따른 라이브러리 파일을 자식 라이브러리로 불러오는 방법을 설명하기 위한 흐름도이다.
도 1 내지 도 8을 참조하면, 어느 하나의 어플리케이션이 실행되면, 단말(10) 제어부(13)의 요청에 따라 해당 어플리케이션 내에 존재하는 부모 라이브러리(300)는 공유 저장 영역(14b)에 새로이 설치된 라이브러리의 버전, 파일명 등 라이브러리와 관련된 정보를 확인한다(S201). 그리고, 부모 라이브러리(300)는 상기 라이브러리가 공유 저장 영역(14b)에 존재하므로, 해당 어플리케이션이 상기 공유 저장 영역(14b)에 접근 가능한 지 접근 가능한 저장 영역을 확인하고(S203), 해당 버전의 파일이 존재하는 지 확인하여(S207), 이상이 없을 경우(S209), 해당 라이브러리 파일을 로딩하고(S213), 클래스 명세서 리소스 명세를 로딩하는 과정을 수행한다(S215 ~ S217). 반면, 상기 S209 단계에서 서비스 장치(20)로부터 수신된 라이브러리에 이상이 있을 경우, 부모 라이브러리(300)는 공유 저장 영역(14b)에 저장된 라이브러리를 삭제하고, 다시 다운로드 받는 과정을 수행할 수 있다(S211).
이러한 과정을 통해, 실행된 어플리케이션의 부모 라이브러리(300)는 새로운 자식 라이브러리를 이용하여 클래스에 접근하고, 해당 클래스를 이용하여 메소드를 호출하는 등 자식 라이브러리를 이용할 수 있게 된다.
이에 대해 도 9 및 도 10을 참조하여 설명하면, 먼저, 도 9에서, 부모 라이브러리의 API를 통해 자식 라이브러리를 로딩하고 부모 라이브러리 내 클래스 생성할 수 있다(S301). 부모 라이브러리의 클래스가 생성되는 것과 동시에, 해당 클래스 내에서는 자식 라이브러리 내의 클래스 명세를 확인하고(S303), 조회한 후(S305), 자식 라이브러리 내의 클래스를 생성할 수 있다(S307).
도 10은 생성된 자식 라이브러리 내의 클래스를 통해 자식 라이브러리 내의 메소드를 호출하는 과정을 설명하기 위한 것으로, 부모 라이브러리의 API를 통해 부모 라이브러리 내의 생성된 클래스에 접근하고(S404) 해당 클래스가 제공하는 메소드를 호출할 수 있다(S403). 그리고, 이를 호출된 부모 라이브러리 내의 메소드는 자식 라이브러리 내의 클래스에 접근하고(S405), 자식 메소드 명세를 확인한 후(S407), 조회하여 자식 라이브러리 내의 메소드를 호출할 수 있게 된다(S409).
이러한 과정을 거쳐, 해당 어플리케이션은 자식 라이브러리를 이용하여, 어플리케이션 실행 중 자식 라이브러리가 제공하는 기능을 실행할 수 있다. 예를 들어, 자식 라이브러리가 서비스 장치(20)로부터 광고 데이터를 가져와 어플리케이션을 통해 출력하는 기능을 지원하는 경우, 해당 어플리케이션은 실행 중에 서비스 장치(20)가 제공하는 광고 데이터를 출력할 수 있게 된다.
이러한, 본 발명의 라이브러리 업데이트 방법에 의하면, 단말 환경을 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하도록 구현하고, 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하도록 함으로써, 단말 내 동일한 라이브러리의 중복을 배제하여 보다 효율적인 리소스 활용이 가능하게 된다.
또한, 어플리케이션 배포 시, 실제 기능에 대한 내용인 클래스, 메소드, 객체를 포함하고 있는 자식 라이브러리에 접근 가능한 API로 구성되는 부모 라이브러리만을 어플리케이션에 내포하여 배포함으로써, 네트워크 자원을 보다 효율적으로 활용할 수 있게 된다.
또한, 실제 기능에 대한 내용을 포함하는 자식 라이브러리에 업데이트가 발생되었을 경우, 어플리케이션별로 업데이트를 수행할 필요 없이, 여러 어플리케이션이 접근하여 공유할 수 있는 자식 라이브러리만을 업데이트함으로써, 어플리케이션 유지 보수 비용이 절감된다는 우수한 효과가 있다.
이상으로 본 발명의 실시 예에 따른 라이브러리 업데이트 방법에 대해 설명하였다.
상술한 바와 같은 본 발명의 라이브러리 업데이트 방법은 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체의 형태로 제공될 수도 있다. 이때, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
본 발명은 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법에 관한 것으로서, 더욱 상세하게는 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하며, 상기 부모 라이브러리가 상기 자식 라이브러리의 버전을 서비스 장치와 연동하여 비교하고, 업데이트가 필요한 경우, 상기 서비스 장치로부터 자식 라이브러리 관련 파일을 수신하여, 자식 라이브러리 사용될 수 있도록 제어할 수 있는 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템에 관한 것이다.
본 발명에 의하면, 단말 내 동일한 라이브러리의 중복을 배제하여 보다 효율적인 단말 자원 활용이 가능하며, 어플리케이션의 용량을 최소화할 수 있는 네트워크 자원을 보다 효율적으로 활용할 수 있으며, 이를 통해 어플리케이션 산업의 발전에 이바지할 수 있다.
더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.

Claims (13)

  1. 어플리케이션 각각에 할당되는 비공유 저장 영역 및 여러 어플리케이션이 공유할 수 있는 공유 저장 영역을 포함하며, 상기 비공유 저장 영역은 어플리케이션별로 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하고, 상기 공유 저장 영역은 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 저장부; 및
    어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후, 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 제어부;
    를 포함하는 것을 특징으로 하는 단말.
  2. 제1 항에 있어서,
    상기 수신된 라이브러리가 상기 공유 저장 영역에 저장되도록 제어한 후, 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 상기 부모 라이브러리의 클래스를 생성함과 동시에 상기 자식 라이브러리의 클래스를 생성하고, 생성된 상기 부모 라이브러리의 클래스를 통해 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 과정을 제어하는 것을 특징으로 하는 단말.
  3. 여러 어플리케이션이 공유할 수 있는 공유 저장 영역에 위치하며, 부모 라이브러리의 요청에 따라 리소스를 제공하는 자식 라이브러리; 및
    어플리케이션 각각에 할당되는 비공유 저장 영역에 위치하며, 할당된 어플리케이션이 실행되면, 서비스 장치와 연동하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 상이할경우, 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 하나 이상의 부모 라이브러리;
    를 포함하는 것을 특징으로 하는 단말.
  4. 제3 항에 있어서,
    상기 자식 라이브러리는 하나 이상의 부모 라이브러리의 요청에 따라, 특정 기능 수행을 위한 클래스, 메소드, 객체를 요청한 상기 부모 라이브러리로 제공하는 것을 특징으로 하는 단말.
  5. 제3 항에 있어서,
    상기 부모 라이브러리는
    상기 자식 라이브러리의 업데이트 여부를 판단하는 자식 라이브러리 관리부;
    상기 서비스 장치로부터 수신된 상기 라이브러리를 상기 공유 저장 영역에 저장하는 자식 라이브러리 적재부; 및
    상기 공유 저장 영역에 저장된 라이브러리를 자식 라이브러리로 동작하도록 클래스를 조회하여 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 자식 라이브러리 호출부;
    를 포함하는 것을 특징으로 하는 단말.
  6. 제5 항에 있어서,
    상기 자식 라이브러리 관리부는
    상기 서비스 장치와의 연결을 위한 서버 연결부;
    상기 서버 연결부를 통해 상기 서비스 장치와 연결되면, 상기 서비스 장치에 구비된 라이브러리의 버전을 질의하여 확인하는 버전 확인부; 및
    상기 버전 확인부를 통해 확인된 라이브러리의 버전과 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 서비스 장치의 라이브러리를 여러 어플리케이션이 공유하는 지 여부를 확인하여 저장 영역을 연결하는 저장 영역 연결부;
    를 포함하는 것을 특징으로 하는 단말.
  7. 제6 항에 있어서,
    상기 저장 영역 연결부는
    상기 기 저장된 자식 라이브러리를 사용하는 어플리케이션을 확인하여, 상기 자식 라이브러리를 사용하는 어플리케이션이 하나 이상 존재하는 경우, 상기 자식 라이브러리를 여러 어플리케이션이 공유하는 것으로 판단하는 것을 특징으로 하는 단말.
  8. 하나 이상의 어플리케이션이 이용 가능한 라이브러리를 저장하고 관리하는 서비스 장치; 및
    어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후, 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단말;
    을 포함하는 것을 특징으로 하는 라이브러리 업데이트 시스템.
  9. 어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법에 있어서,
    상기 단말이 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 서비스 장치에 구비된 라이브러리의 버전을 확인하는 단계;
    상기 단말이 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하는 단계;
    상기 비교 결과 상이할 경우, 상기 단말이 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신하는 단계; 및
    상기 단말이 수신된 상기 라이브러리 관련 파일을 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단계;
    를 포함하는 것을 특징으로 하는 라이브러리 업데이트 방법.
  10. 어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법에 있어서,
    상기 부모 라이브러리가 할당된 어플리케이션이 실행되면, 서비스 장치와 연동하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하는 단계;
    상기 부모 라이브러리가 확인된 버전과 상기 자식 라이브러리의 버전을 비교하는 단계; 및
    상기 비교 결과 상이할 경우, 상기 부모 라이브러리가 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단계;
    를 포함하는 것을 특징으로 하는 라이브러리 업데이트 방법.
  11. 제10 항에 있어서,
    상기 제어하는 단계는
    상기 부모 라이브러리가 상기 수신된 라이브러리를 상기 공유 저장 영역에 저장하는 단계;
    상기 부모 라이브러리가 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 클래스를 생성함과 동시에 상기 자식 라이브러리의 클래스를 생성하는 단계; 및
    상기 부모 라이브러리가 생성된 상기 자식 라이브러리의 클래스를 통해 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 과정을 제어하는 단계;
    를 포함하는 것을 특징으로 하는 라이브러리 업데이트 방법.
  12. 제10 항에 있어서,
    상기 버전을 비교하는 단계 이후에,
    상기 비교 결과 상이할 경우, 상기 부모 라이브러리가 상기 서비스 장치의 라이브러리를 여러 어플리케이션이 공유하는 지 여부를 확인하여 저장 영역을 연결하는 단계;
    를 더 포함하는 것을 특징으로 하는 단말.
  13. 제9 항 내지 제12항 중 어느 하나의 항에 기재된 라이브러리 업데이트 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
PCT/KR2015/000348 2014-05-15 2015-01-13 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템 WO2015174609A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201580037932.6A CN106662993B (zh) 2014-05-15 2015-01-13 用于更新库的方法及用于其的终端和系统
US15/310,516 US20170075686A1 (en) 2014-05-15 2015-01-13 Method for updating library, and terminal and system therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140058317A KR101810536B1 (ko) 2014-05-15 2014-05-15 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템
KR10-2014-0058317 2014-05-15

Publications (1)

Publication Number Publication Date
WO2015174609A1 true WO2015174609A1 (ko) 2015-11-19

Family

ID=54480122

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/000348 WO2015174609A1 (ko) 2014-05-15 2015-01-13 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템

Country Status (4)

Country Link
US (1) US20170075686A1 (ko)
KR (1) KR101810536B1 (ko)
CN (1) CN106662993B (ko)
WO (1) WO2015174609A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10564959B2 (en) * 2017-03-14 2020-02-18 Google Llc Shared software libraries for computing devices
US10853057B1 (en) * 2017-03-29 2020-12-01 Amazon Technologies, Inc. Software library versioning with caching
US10572275B2 (en) * 2017-06-15 2020-02-25 Microsoft Technology Licensing, Llc Compatible dictionary layout
US10565090B1 (en) 2018-01-03 2020-02-18 Amazon Technologies, Inc. Proxy for debugging transformed code
US10798464B1 (en) 2018-04-27 2020-10-06 Amazon Technologies, Inc. Streaming delivery of client-executable code
US10838716B1 (en) * 2019-11-19 2020-11-17 Capital One Services, Llc Automated dependency detection and response
KR20230059631A (ko) * 2021-10-26 2023-05-03 한화비전 주식회사 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법
CN116560699B (zh) * 2023-07-10 2024-02-13 易方信息科技股份有限公司 通过sdk版本混搭进行快速修复的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002333990A (ja) * 2001-03-05 2002-11-22 Omron Corp プログラム更新装置およびプログラム更新方法
KR20060134397A (ko) * 2005-06-22 2006-12-28 (주)에이티솔루션 모바일 단말기용 어플리케이션 갱신 시스템
KR20100105210A (ko) * 2009-03-20 2010-09-29 주식회사 케이티 모듈 형태로 관리 및 업데이트가 이루어지는 모바일 플랫폼이 탑재된 이동통신 단말, 그 모바일 플랫폼 구동 방법, 모듈 관리 방법 및 모듈 업데이트 방법
KR20140029733A (ko) * 2012-08-29 2014-03-11 주식회사 팬택 어플리케이션 관리 기능을 갖는 디바이스 및 이를 위한 어플리케이션 관리 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275857B1 (en) * 1996-10-30 2001-08-14 Microsoft Corporation System and method for freeing shared resources in a computer system
US6202205B1 (en) * 1998-07-21 2001-03-13 Hewlett-Packard Company System and method for profile-based, on-the-fly optimization of library code
US7792797B2 (en) * 2002-12-24 2010-09-07 International Business Machines Corporation Fail over resource manager access in a content management system
CN100461875C (zh) * 2005-10-21 2009-02-11 华为技术有限公司 移动终端共享存储空间的方法及其系统
KR100835269B1 (ko) * 2006-12-07 2008-06-05 한국전자통신연구원 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법
CN101415270B (zh) * 2008-11-27 2010-07-21 华为终端有限公司 移动终端及其处理模块的通讯方法
EP2382554B1 (en) * 2009-01-23 2018-03-07 Hewlett-Packard Enterprise Development LP System and methods for allocating shared storage resources
US8434060B2 (en) * 2010-08-17 2013-04-30 Sap Ag Component load procedure for setting up systems
US8595715B2 (en) * 2010-12-31 2013-11-26 International Business Machines Corporation Dynamic software version selection
US9009693B2 (en) * 2013-05-08 2015-04-14 Microsoft Corporation Out-of-band framework libraries within applications
CN103744618B (zh) * 2013-12-20 2017-09-15 金蝶软件(中国)有限公司 实现团队共享存储的方法及系统
WO2015120134A1 (en) * 2014-02-06 2015-08-13 Openpeak Inc. Method and system for linking to shared library

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002333990A (ja) * 2001-03-05 2002-11-22 Omron Corp プログラム更新装置およびプログラム更新方法
KR20060134397A (ko) * 2005-06-22 2006-12-28 (주)에이티솔루션 모바일 단말기용 어플리케이션 갱신 시스템
KR20100105210A (ko) * 2009-03-20 2010-09-29 주식회사 케이티 모듈 형태로 관리 및 업데이트가 이루어지는 모바일 플랫폼이 탑재된 이동통신 단말, 그 모바일 플랫폼 구동 방법, 모듈 관리 방법 및 모듈 업데이트 방법
KR20140029733A (ko) * 2012-08-29 2014-03-11 주식회사 팬택 어플리케이션 관리 기능을 갖는 디바이스 및 이를 위한 어플리케이션 관리 방법

Also Published As

Publication number Publication date
KR20150131535A (ko) 2015-11-25
US20170075686A1 (en) 2017-03-16
CN106662993B (zh) 2019-11-22
CN106662993A (zh) 2017-05-10
KR101810536B1 (ko) 2017-12-20

Similar Documents

Publication Publication Date Title
WO2015174609A1 (ko) 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템
US11347498B2 (en) Bytecode modification
KR100988961B1 (ko) 사이드 바이 사이드 드라이버
WO2015115852A1 (en) Task scheduling method and apparatus
WO2021118125A1 (ko) 안드로이드 어플리케이션에 의해 실행 가능한 보안 컨테이너 구축 장치, 방법 및 그 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
EP2671153A2 (en) Apparatus and method for providing application auto-install function in digital device
WO2019103280A1 (ko) 클라우드 서비스를 제공하는 적어도 하나의 클라우드 서버의 컴퓨팅 자원들을 관리하는 전자 장치 및 방법
WO2016018048A1 (ko) 서비스 제어 장치 연동을 통한 단말간 컨텐츠 전송 방법
WO2019164205A1 (ko) 전자 장치 및 그의 동작 방법
CN105159788A (zh) 一种Android应用间动态共享资源的方法及系统
WO2014129810A1 (en) Method and electronic device for sending and receiving data
KR20110130611A (ko) 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛
WO2021006574A1 (en) Method and apparatus for managing application
WO2018131831A1 (ko) 프로세스의 권한 상승을 검출하는 전자 장치 및 저장 매체
WO2015199293A1 (ko) 클라우드 스트리밍 서비스 제공 방법, 이를 위한 장치 및 시스템, 그리고 이를 위한 클라우드 스트리밍용 스크립트 코드를 기록한 컴퓨터 판독 가능한 기록매체
WO2012148098A1 (ko) 세이프가드 장치 및 방법
WO2017150841A1 (ko) 전자장치, 어플리케이션 실행 시스템 및 그 제어방법
WO2022145572A1 (ko) 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치
WO2016178495A1 (ko) 다중 가입자 정보 처리 스마트 카드, 이를 사용하는 전자 장치, 및 전자 장치에서의 다중 가입자 관리 방법
WO2021194195A1 (en) Electronic device and method for controlling the electronic device
WO2013129743A1 (ko) 어플리케이션 제공 방법 및 그를 위한 어플리케이션 제공 서버
WO2019156279A1 (ko) 랜부팅 환경 기반 파일 보안 및 중앙화를 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN114666329A (zh) 一种app管理方法、智能终端及计算机可读存储介质
WO2021118117A1 (en) Cloud server and operating method of the same
WO2023219224A1 (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: 15793036

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15310516

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15793036

Country of ref document: EP

Kind code of ref document: A1