WO2012086967A2 - 맞춤형 소프트웨어 제공 장치 및 방법, 그리고 소프트웨어 맞춤화 방법 - Google Patents
맞춤형 소프트웨어 제공 장치 및 방법, 그리고 소프트웨어 맞춤화 방법 Download PDFInfo
- Publication number
- WO2012086967A2 WO2012086967A2 PCT/KR2011/009737 KR2011009737W WO2012086967A2 WO 2012086967 A2 WO2012086967 A2 WO 2012086967A2 KR 2011009737 W KR2011009737 W KR 2011009737W WO 2012086967 A2 WO2012086967 A2 WO 2012086967A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- code
- software
- customization
- information
- paragraphs
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Definitions
- the present invention relates to an apparatus and method for providing custom software, and a method for providing custom software, and a method for software customization. More specifically, the present invention relates to a custom software providing apparatus and method for performing customization based on source code, and a software customization method.
- Service providers that provide software as a service provide services by allocating servers for each company.
- the service provider customizes the software by modifying the source code of the software for each company.
- An object of the present invention is to provide a customized software providing apparatus and method, and a software customization method for reducing the cost of updating and managing software while providing customized software for each company.
- the device transmits a core code to a terminal such that a core code divided into a plurality of paragraphs is used for software customization, and the device receives a customization code corresponding to a software customization result from the terminal. And extracting, by the device, software customization information that includes changes to the core code from the customization code, and the device storing the software customization information independently of the core code.
- a method of providing customized software wherein the apparatus applies a personalized code by applying personalized information including changes to a plurality of paragraphs to a core code divided into a plurality of paragraphs according to a service request message received from a terminal. Generating a step, the device executing the customized software using the custom code, and processing the service request message using the customized software executed by the device.
- a customized software providing apparatus includes a code storage unit, an information storage unit and an execution engine.
- the code store stores the core code divided into a plurality of paragraphs.
- the information storage unit stores the software customization information including code change information and paragraph insertion information corresponding to the change contents of the plurality of paragraphs in a metadata format.
- the execution engine applies the software customization information to the core code to generate custom code, and uses the custom code to run the custom software.
- the software provider updates and manages only the core code because the custom code corresponding to the source code of the customized software is generated using the core code corresponding to the source code of the original software and the software customization information.
- company-specific code can be updated and managed by the company. Therefore, it is possible to reduce the cost of updating and managing the software while providing customized software for each company.
- FIG. 1 is a diagram illustrating a configuration of a software providing system according to an exemplary embodiment of the present invention.
- FIG. 2 is a diagram illustrating the structure of a core code according to an embodiment of the present invention.
- FIG. 3 is a diagram illustrating a software customization method according to an exemplary embodiment of the present invention.
- FIG. 4 is a diagram illustrating a method of providing customized software according to an exemplary embodiment of the present invention.
- FIG. 5 is a diagram illustrating the structure of a setup code according to a first embodiment of the present invention.
- FIG. 6 is a diagram illustrating the structure of a setup code according to a second embodiment of the present invention.
- FIG. 7 is a diagram showing the structure of a configuration code according to a third embodiment of the present invention.
- FIG. 1 is a diagram illustrating a configuration of a software providing system according to an exemplary embodiment of the present invention.
- the software providing system 100 includes a customized software providing apparatus 110, a developer terminal 130, and a user terminal 150.
- the custom software providing apparatus 110 may include a custom manager 111, an execution engine 112, a cache memory 113, a core code database (hereinafter also referred to as a “core code DB”). 114, a custom information database (hereinafter also referred to as a 'custom information DB') 115 and a work database (hereinafter also referred to as a 'work DB') 116.
- the customization manager 111 transmits a code necessary for customization of the software to the developer terminal 130 by using data stored in the core code DB 114 and the custom information DB 115, and customizes the software from the developer terminal 130. Receive the custom code corresponding to the result and generate the software custom information using the custom code.
- the software customization information is information for generating the customization code from the core code, and may include source code change information or paragraph insertion information.
- the customization manager 111 may receive software customization information from the developer terminal 130.
- the execution engine 112 executes the customized software using data stored in the core code DB 114 and the customized information DB 115 at the request of the user terminal 150, and uses the executed customized software to execute the business DB ( The data stored in 116 is processed, and the processing result is transmitted to the user terminal 150.
- the cache memory 113 is a high speed memory that speeds up the processing speed of the customized software providing apparatus 110.
- the cache memory 113 is a data that is frequently used among data stored in the core code DB 114, the customized information DB 115, or the work DB 116. Temporarily stores the result of the processing of the custom manager 111 or the execution engine 112.
- the core code DB 114 stores the core code and paragraph information provided from the software provider.
- the core code corresponds to the source code of the software
- paragraph information corresponds to information for dividing the core code into a plurality of paragraphs.
- the core code DB 114 may further include setting information provided from the software provider.
- the customization information DB 115 stores software customization information delivered from the customization manager 111.
- the custom information DB 115 may store software custom information in the form of metadata.
- the work DB 116 stores data necessary for work processing.
- the developer terminal 130 provides the developer with the code received from the customization manager 111 so that the developer can perform the software customization, and transmits the customization result of the software performed through the developer to the customization manager 111.
- the user terminal 150 transmits a service request message for requesting a service using the customized software to the execution engine 112 and receives a service response message corresponding to the response to the service request message from the execution engine 112.
- FIG. 2 is a diagram illustrating the structure of a core code according to an embodiment of the present invention.
- the core code 200 may be divided into a plurality of paragraphs, that is, a first paragraph 210, a second paragraph 220, and a third paragraph 230 according to paragraph information.
- the developer may customize the software using the core code 200 divided into a plurality of paragraphs through the developer terminal 130.
- a developer can modify, replace, or delete some of a plurality of paragraphs, and insert a new additional paragraph.
- FIG. 3 is a diagram illustrating a software customization method according to an exemplary embodiment of the present invention.
- the customization manager 111 extracts data stored in the core code DB 114, that is, core code, paragraph information, and setting information (S100).
- the personalization manager 111 generates the setting code by applying the setting information to the plurality of paragraphs included in the core code (S110).
- the setting information determines whether to set hidden or type inference for each of the plurality of paragraphs.
- the personalization manager 111 may set some of the plurality of paragraphs hidden according to the setting information, and may set some of the rows or factors in any one of the plurality of paragraphs.
- the customization manager 111 transmits the setting code to the developer terminal 130 (S120).
- the customization manager 111 receives a customization code corresponding to a software customization result from the developer terminal 130 (S130).
- the customization manager 111 extracts the software customization information including the change to the core code from the customization code (S140).
- the software customization information includes source code change information including paragraph-specific changes for each of the plurality of paragraphs included in the core code, or paragraph insertion information including additional paragraphs newly inserted into the core code.
- the customization manager 111 stores the software customization information in the customization information DB 115 (S150).
- the customization manager 111 may store the software customization information in the customization information DB 115 in a metadata format.
- FIG. 4 is a diagram illustrating a method of providing customized software according to an exemplary embodiment of the present invention.
- the execution engine 112 receives a service request message for requesting a service using customized software from the user terminal 150 (S200).
- the execution engine 112 determines whether a target program is pre-stored in the cache memory 113 as a result of compilation of the custom code corresponding to the custom software according to the service request message (S210).
- the custom code corresponds to the source code of the custom software.
- the execution engine 112 extracts the core code and the software customization information from the core code DB 114 and the customization information DB 115. (S220).
- the execution engine 112 may further extract paragraph information from the core code DB 114.
- the execution engine 112 generates software by applying the software customization information to the core code (S230).
- the software customization information includes source code change information or paragraph insertion information.
- the execution engine 112 may generate a custom code by modifying or deleting any one of a plurality of paragraphs included in the core code according to the source code change information, and adds an additional paragraph to the core code according to the paragraph insertion information. You can also insert to generate custom code.
- the execution engine 112 compiles the custom code to generate the target program corresponding to the custom code (S240).
- the execution engine 112 drives the generated target program to execute the customized software (S250).
- the execution engine 112 processes the business data stored in the work DB 116 using the executed customized software (S260).
- the execution engine 112 transmits a service response message including the data processing result to the user terminal 150 (S270).
- the execution engine 112 extracts the target program from the cache memory 113 (S280).
- the execution engine 112 may drive the extracted target program to execute the customized software.
- FIG. 5 is a diagram illustrating the structure of a setup code according to a first embodiment of the present invention.
- the setting code 300 may be divided into a plurality of paragraphs, that is, a first paragraph 310, a second paragraph 320, and a third paragraph 330 according to paragraph information.
- the software provider may apply the hidden setting for a part of the line of the first paragraph 310 through the setting information.
- FIG. 6 is a diagram illustrating the structure of a setup code according to a second embodiment of the present invention.
- the setting code 400 may be divided into a plurality of paragraphs, that is, a first paragraph 410, a second paragraph 420, and a third paragraph 430 according to paragraph information.
- the software provider may set the third paragraph 430 to display only the main interface, that is, "function C1", “function C2", “leftNode”, and "rightNode” through the setting information.
- the main interface is a function name, an argument type, a return type, etc., and corresponds to an interface required when developing based on core code.
- FIG. 7 is a diagram showing the structure of a configuration code according to a third embodiment of the present invention.
- the setting code 500 may be divided into a plurality of paragraphs, that is, a first paragraph 510, a second paragraph 520, and a third paragraph 530, according to paragraph information.
- the software provider may apply type inference to the third paragraph 530 through the configuration information so that the third paragraph 530 provides the argument type information and the return type information.
- the argument type information corresponds to "node-type leftNode” and "node-type rightNode”
- the return type information corresponds to "return integer-type”.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
맞춤형 소프트웨어 제공 장치는 소프트웨어 맞춤화에 복수 개의 단락들로 구분되는 핵심 코드가 이용되도록 핵심 코드를 단말로 전송하고, 단말로부터 소프트웨어 맞춤화 결과에 해당하는 맞춤 코드를 수신하며, 맞춤 코드로부터 핵심 코드에 대한 변경 내용을 포함하는 소프트웨어 맞춤 정보를 추출한 후, 핵심 코드와 독립적으로 소프트웨어 맞춤 정보를 저장한다.
Description
본 발명은 맞춤형 소프트웨어 제공 장치 및 방법, 그리고 소프트웨어 맞춤화 방법(apparatus and method for providing custom software, and method for software customization)에 관한 것이다. 보다 상세하게, 본 발명은 소스 코드를 기반으로 맞춤화를 수행하는 맞춤형 소프트웨어 제공 장치 및 방법, 그리고 소프트웨어 맞춤화 방법에 관한 것이다.
본 발명은 2010년 12월 23일 출원된 한국특허출원 제10-2010-0133950호의 출원일의 이익을 주장하며, 그 내용 전부는 본 명세서에 포함된다.
서비스형 소프트웨어(Software as a Service, SaaS)를 제공하는 서비스 제공자는 기업에게 서비스를 제공할 때, 기업별로 서버를 할당하여 서비스를 제공한다. 이때, 기업별로 맞춤형(custom) 소프트웨어를 제공할 경우, 서비스 제공자는 기업별로 소프트웨어의 소스 코드를 수정하여 소프트웨어를 맞춤화(customization)한다.
이때, 기업별로 소프트웨어를 맞춤화하는 경우, 하나의 소프트웨어에 대해 기업별로 서로 다른 버전(version)의 소프트웨어가 생성되기 때문에, 서비스 제공자가 서로 다른 버전의 소프트웨어를 갱신 또는 관리하는데 많은 비용이 소요된다는 문제점이 있다.
본 발명의 목적은, 기업별로 맞춤형 소프트웨어를 제공하면서도 소프트웨어의 갱신 및 관리에 소요되는 비용을 줄이기 위한 맞춤형 소프트웨어 제공 장치 및 방법, 그리고 소프트웨어 맞춤화 방법을 제공하는 것이다.
본 발명의 특징에 따른 소프트웨어 맞춤화 방법은 장치가 소프트웨어 맞춤화에 복수 개의 단락들로 구분되는 핵심 코드가 이용되도록 핵심 코드를 단말로 전송하는 단계, 장치가 단말로부터 소프트웨어 맞춤화 결과에 해당하는 맞춤 코드를 수신하는 단계, 장치가 맞춤 코드로부터 핵심 코드에 대한 변경 내용을 포함하는 소프트웨어 맞춤 정보를 추출하는 단계, 그리고 장치가 핵심 코드와 독립적으로 소프트웨어 맞춤 정보를 저장하는 단계를 포함한다.
본 발명의 특징에 따른 맞춤형 소프트웨어 제공 방법은 장치가 단말로부터 수신된 서비스 요청 메시지에 따라 복수 개의 단락들로 구분되는 핵심 코드에 복수 개의 단락들에 대한 변경 내용을 포함하는 맞춤 정보를 적용하여 맞춤 코드를 생성하는 단계, 장치가 맞춤 코드를 이용하여 맞춤형 소프트웨어를 실행하는 단계, 그리고 장치가 실행된 맞춤형 소프트웨어를 이용하여 서비스 요청 메시지를 처리하는 단계를 포함한다.
본 발명의 특징에 따른 맞춤형 소프트웨어 제공 장치는 코드 저장부, 정보 저장부 및 실행 엔진을 포함한다. 코드 저장부는 복수 개의 단락들로 구분되는 핵심 코드를 저장한다. 정보 저장부는 복수 개의 단락들에 대한 변경 내용에 대응되는 코드 변경 정보와 단락 삽입 정보를 포함하는 소프트웨어 맞춤 정보를 메타데이터 형식으로 저장한다. 실행 엔진은 핵심 코드에 소프트웨어 맞춤 정보를 적용하여 맞춤 코드를 생성하고, 맞춤 코드를 이용하여 맞춤형 소프트웨어를 실행한다.
본 발명의 특징에 따르면, 원래의 소프트웨어의 소스 코드에 해당하는 핵심 코드와 소프트웨어 맞춤 정보를 이용하여 맞춤형 소프트웨어의 소스 코드에 해당하는 맞춤 코드를 생성하기 때문에, 소프트웨어 공급자는 핵심 코드만 갱신 및 관리하고, 기업별 맞춤 코드는 기업에서 갱신 및 관리할 수 있다. 따라서, 기업별로 맞춤형 소프트웨어를 제공하면서도 소프트웨어의 갱신 및 관리에 소요되는 비용을 줄일 수 있다.
도 1은 본 발명의 실시 예에 따른 소프트웨어 제공 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 실시 예에 따른 핵심 코드의 구조를 도시한 도면이다.
도 3은 본 발명의 실시 예에 따른 소프트웨어 맞춤화 방법을 도시한 도면이다.
도 4는 본 발명의 실시 예에 따른 맞춤형 소프트웨어의 제공 방법을 도시한 도면이다.
도 5는 본 발명의 제1 실시 예에 따른 설정 코드의 구조를 도시한 도면이다.
도 6은 본 발명의 제2 실시 예에 따른 설정 코드의 구조를 도시한 도면이다.
도 7은 본 발명의 제3 실시 예에 다른 설정 코드의 구조를 도시한 도면이다.
본 발명을 첨부된 도면을 참고하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 고지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 해당 기술분야에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하에서, 도면을 참고하여 본 발명의 실시 예에 따른 소프트웨어 제공 장치 및 방법, 그리고 소프트웨어 맞춤화 방법에 대해 설명한다.
먼저, 도 1을 참고하여 본 발명의 실시 예에 따른 소프트웨어 제공 시스템에 대해 설명한다.
도 1은 본 발명의 실시 예에 따른 소프트웨어 제공 시스템의 구성을 도시한 도면이다.
도 1에 도시된 바와 같이, 소프트웨어 제공 시스템(100)은 맞춤형 소프트웨어 제공 장치(110), 개발자 단말(130) 및 사용자 단말(150)을 포함한다. 여기서, 맞춤형 소프트웨어 제공 장치(110)는 맞춤화 관리기(111), 실행 엔진(112), 캐시메모리(cache memory)(113), 핵심 코드 데이터베이스(core code database, 이하에서는 '핵심 코드 DB'라고도 함)(114), 맞춤 정보 데이터베이스(custom information database, 이하에서는 '맞춤 정보 DB'라고도 함)(115) 및 업무 데이터베이스(work database, 이하에서는 '업무 DB'라고도 함)(116)를 포함한다.
맞춤화 관리기(111)는 핵심 코드 DB(114)와 맞춤 정보 DB(115)에 저장된 데이터를 이용하여 소프트웨어의 맞춤화에 필요한 코드를 개발자 단말(130)로 전송하고, 개발자 단말(130)로부터 소프트웨어의 맞춤화 결과에 해당하는 맞춤 코드를 수신하며, 맞춤 코드를 이용하여 소프트웨어 맞춤 정보를 생성한다. 여기서, 소프트웨어 맞춤 정보는 핵심 코드로부터 맞춤 코드를 생성하기 위한 정보로써, 소스 코드 변경 정보 또는 단락 삽입 정보를 포함할 수 있다. 또한, 맞춤화 관리기(111)는 개발자 단말(130)로부터 소프트웨어 맞춤 정보를 수신할 수도 있다.
실행 엔진(112)은 사용자 단말(150)의 요청에 따라 핵심 코드 DB(114)와 맞춤 정보 DB(115)에 저장된 데이터를 이용하여 맞춤형 소프트웨어를 실행하고, 실행된 맞춤형 소프트웨어를 이용하여 업무 DB(116)에 저장된 데이터를 처리하며, 처리 결과를 사용자 단말(150)로 전송한다.
캐시메모리(113)는 맞춤형 소프트웨어 제공 장치(110)의 처리 속도를 빠르게 하는 고속메모리로써, 핵심 코드 DB(114), 맞춤 정보 DB(115) 또는 업무 DB(116)에 저장된 데이터 중 자주 사용하는 데이터를 임시 저장하거나, 맞춤화 관리기(111) 또는 실행 엔진(112)의 처리 결과를 임시 저장한다.
핵심 코드 DB(114)는 소프트웨어 공급자로부터 제공된 핵심 코드 및 단락 정보를 저장한다. 여기서, 핵심 코드는 소프트웨어의 소스 코드에 해당하고, 단락 정보는 핵심 코드를 복수 개의 단락들로 구분하기 위한 정보에 해당한다. 이때, 핵심 코드 DB(114)는 소프트웨어 공급자로부터 제공된 설정 정보를 더 포함할 수 있다.
맞춤 정보 DB(115)는 맞춤화 관리기(111)로부터 전달된 소프트웨어 맞춤 정보를 저장한다. 여기서, 맞춤 정보 DB(115)는 소프트웨어 맞춤 정보를 메타데이터 형태로 저장할 수 있다.
업무 DB(116)는 업무 처리에 필요한 데이터를 저장한다.
개발자 단말(130)은 개발자가 소프트웨어 맞춤화를 수행할 수 있도록 맞춤화 관리기(111)로부터 수신된 코드를 개발자에게 제공하며, 개발자를 통해 수행된 소프트웨어의 맞춤화 결과를 맞춤화 관리기(111)로 전송한다.
사용자 단말(150)은 맞춤형 소프트웨어를 이용한 서비스를 요청하는 서비스 요청 메시지를 실행 엔진(112)으로 전송하고, 실행 엔진(112)으로부터 서비스 요청 메시지에 대한 응답에 해당하는 서비스 응답 메시지를 수신한다.
다음, 도 2를 참고하여 본 발명의 실시 예에 따른 핵심 코드의 구조에 대해 설명한다.
도 2는 본 발명의 실시 예에 따른 핵심 코드의 구조를 도시한 도면이다.
도 2에 도시된 바와 같이, 핵심 코드(200)는 단락 정보에 따라 복수 개의 단락들 즉, 제1 단락(210), 제2 단락(220) 및 제3 단락(230)으로 구분될 수 있다.
여기서, 개발자는 개발자 단말(130)을 통해 복수 개의 단락들로 구분된 핵심 코드(200)를 이용하여 소프트웨어의 맞춤화를 수행할 수 있다.
예를 들면, 개발자는 복수 개의 단락들 중 일부를 수정, 교체 또는 삭제할 수 있으며, 새로운 추가 단락을 삽입할 수도 있다.
다음, 도 3을 참고하여 본 발명의 실시 예에 따른 맞춤형 소프트웨어 제공 장치가 소프트웨어 맞춤화를 위해 소프트웨어 맞춤 정보를 생성하는 방법에 대해 설명한다.
도 3은 본 발명의 실시 예에 따른 소프트웨어 맞춤화 방법을 도시한 도면이다.
도 3에 도시된 바와 같이, 먼저, 맞춤화 관리기(111)는 핵심 코드 DB(114)에 저장된 데이터 즉, 핵심 코드, 단락 정보 및 설정 정보를 추출한다(S100).
다음, 맞춤화 관리기(111)는 핵심 코드에 포함된 복수 개의 단락들에 설정 정보를 적용하여 설정 코드를 생성한다(S110). 여기서, 설정 정보는 복수 개의 단락들 각각에 대한 숨김 설정 여부 또는 타입 추론 여부를 결정한다. 이때, 맞춤화 관리기(111)는 설정 정보에 따라 복수 개의 단락들 중 일부를 숨김 설정할 수 있고, 복수 개의 단락들 중 어느 하나 단락에서 일부의 행 또는 인자를 숨김 설정할 수도 있다.
이후, 맞춤화 관리기(111)는 설정 코드를 개발자 단말(130)로 전송한다(S120).
다음, 맞춤화 관리기(111)는 개발자 단말(130)로부터 소프트웨어 맞춤화 결과에 해당하는 맞춤 코드를 수신한다(S130).
이후, 맞춤화 관리기(111)는 맞춤 코드로부터 핵심 코드에 대한 변경 내용을 포함하는 소프트웨어 맞춤 정보를 추출한다(S140). 여기서, 소프트웨어 맞춤 정보는 핵심 코드에 포함된 복수 개의 단락들 각각에 대한 단락별 변경 내용을 포함하는 소스 코드 변경 정보, 또는 핵심 코드에 새로 삽입되는 추가 단락을 포함하는 단락 삽입 정보를 포함한다.
다음, 맞춤화 관리기(111)는 소프트웨어 맞춤 정보를 맞춤 정보 DB(115)에 저장한다(S150). 여기서, 맞춤화 관리기(111)는 소프트웨어 맞춤 정보를 메타데이터 형식으로 맞춤 정보 DB(115)에 저장할 수 있다.
다음, 도 4를 참고하여 본 발명의 실시 예에 따른 맞춤형 소프트웨어 제공 장치가 맞춤형 소프트웨어를 제공하는 방법에 대해 설명한다.
도 4는 본 발명의 실시 예에 따른 맞춤형 소프트웨어의 제공 방법을 도시한 도면이다.
도 4에 도시된 바와 같이, 먼저, 실행 엔진(112)은 사용자 단말(150)로부터 맞춤형 소프트웨어를 이용한 서비스를 요청하는 서비스 요청 메시지를 수신한다(S200).
다음, 실행 엔진(112)은 서비스 요청 메시지에 따라 맞춤형 소프트웨어에 대응되는 맞춤 코드에 대한 컴파일(compile)의 결과 즉, 목적 프로그램이 캐시메모리(113)에 미리 저장되어 있는지를 판단한다(S210). 여기서, 맞춤 코드는 맞춤형 소프트웨어의 소스 코드에 해당한다.
단계(S210)의 판단결과에 따라, 목적 프로그램이 미리 저장되어 있지 아니하는 경우, 실행 엔진(112)은 핵심 코드 DB(114) 및 맞춤 정보 DB(115)에서 핵심 코드 및 소프트웨어 맞춤 정보를 추출한다(S220). 여기서, 실행 엔진(112)은 핵심 코드 DB(114)에서 단락 정보를 더 추출할 수 있다.
이후, 실행 엔진(112)은 소프트웨어 맞춤 정보를 핵심 코드에 적용하여 맞춤 코드를 생성한다(S230). 여기서, 소프트웨어 맞춤 정보는 소스 코드 변경 정보 또는 단락 삽입 정보를 포함한다. 이때, 실행 엔진(112)는 소스 코드 변경 정보에 따라 핵심 코드에 포함된 복수 개의 단락들 중 어느 하나를 수정 또는 삭제하여 맞춤 코드를 생성할 수 있고, 단락 삽입 정보에 따라 핵심 코드에 추가 단락을 삽입하여 맞춤 코드를 생성할 수도 있다.
다음, 실행 엔진(112)는 맞춤 코드를 컴파일 하여 맞춤 코드에 대응되는 목적 프로그램을 생성한다(S240).
이후, 실행 엔진(112)은 생성된 목적 프로그램을 구동하여 맞춤형 소프트웨어를 실행한다(S250).
다음, 실행 엔진(112)은 실행된 맞춤형 소프트웨어를 이용하여 업무 DB(116)에 저장된 업무 데이터를 처리한다(S260).
이후, 실행 엔진(112)은 데이터 처리 결과를 포함하는 서비스 응답 메시지를 사용자 단말(150)로 전송한다(S270).
단계(S210)의 판단결과에 따라, 목적 프로그램이 미리 저장되어 있는 경우, 실행 엔진(112)은 캐시메모리(113)에서 목적 프로그램을 추출한다(S280). 여기서, 실행 엔진(112)은 추출된 목적 프로그램을 구동하여 맞춤형 소프트웨어를 실행할 수 있다.
다음, 도 5 내지 도 7을 참고하여 본 발명의 실시 예에 따른 설정 코드에 대해 설명한다.
도 5는 본 발명의 제1 실시 예에 따른 설정 코드의 구조를 도시한 도면이다.
도 5에 도시된 바와 같이, 설정 코드(300)는 단락 정보에 따라 복수 개의 단락들 즉, 제1 단락(310), 제2 단락(320) 및 제3 단락(330)으로 구분될 수 있다.
여기서, 소프트웨어 공급자는 설정 정보를 통해 제1 단락(310)의 일부의 행(line)에 대한 숨김 설정을 적용할 수 있다.
도 6은 본 발명의 제2 실시 예에 따른 설정 코드의 구조를 도시한 도면이다.
도 6에 도시된 바와 같이, 설정 코드(400)는 단락 정보에 따라 복수 개의 단락들 즉, 제1 단락(410), 제2 단락(420) 및 제3 단락(430)으로 구분될 수 있다.
여기서, 소프트웨어 공급자는 설정 정보를 통해 제3 단락(430)이 주요 인터페이스 즉, "function C1", "function C2", "leftNode", "rightNode" 만을 표시하도록 설정할 수 있다. 이때, 주요 인터페이스는 함수 이름, 인자 타입, 반환 타입 등으로 핵심 코드를 기반으로 개발할 때 필요한 인터페이스에 해당한다.
도 7은 본 발명의 제3 실시 예에 다른 설정 코드의 구조를 도시한 도면이다.
도 7에 도시된 바와 같이, 설정 코드(500)는 단락 정보에 따라 복수 개의 단락들 즉, 제1 단락(510), 제2 단락(520) 및 제3 단락(530)으로 구분될 수 있다.
여기서, 소프트웨어 공급자는 설정 정보를 통해 제3 단락(530)에 타입 추론(type inference)을 적용하여 제3 단락(530)이 인자 타입 정보 및 반환 타입 정보를 제공하도록 할 수 있다. 이때, 인자 타입 정보는 "node-type leftNode", "node-type rightNode"에 대응되고, 반환 타입 정보는 "return integer-type"에 대응된다.
이상에서와 같이 도면과 명세서에서 최적의 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (18)
- 장치가 소프트웨어 맞춤화에 복수 개의 단락들로 구분되는 핵심 코드가 이용되도록 상기 핵심 코드를 단말로 전송하는 단계;상기 장치가 상기 단말로부터 소프트웨어 맞춤화 결과에 해당하는 맞춤 코드를 수신하는 단계;상기 장치가 상기 맞춤 코드로부터 상기 핵심 코드에 대한 변경 내용을 포함하는 소프트웨어 맞춤 정보를 추출하는 단계; 및상기 장치가 상기 핵심 코드와 독립적으로 상기 소프트웨어 맞춤 정보를 저장하는 단계를 포함하는 소프트웨어 맞춤화 방법.
- 제1항에 있어서,상기 추출하는 단계는상기 복수 개의 단락들 각각에 대한 단락별 변경 내용을 포함하는 코드 변경 정보를 추출하는 소프트웨어 맞춤화 방법.
- 제1항에 있어서,상기 추출하는 단계는상기 핵심 코드에 삽입되는 추가 단락을 포함하는 단락 삽입 정보를 포함하는 소프트웨어 맞춤화 방법.
- 제1항에 있어서,상기 전송하는 단계는상기 장치가 상기 핵심 코드에 대한 설정 정보를 상기 핵심 코드에 적용하여 상기 핵심 코드에 숨김 설정이 적용된 설정 코드를 생성하는 단계; 및상기 장치가 소프트웨어 맞춤화에 상기 설정 코드가 이용되도록 상기 설정 코드를 단말로 전송하는 단계를 포함하는 소프트웨어 맞춤화 방법.
- 제4항에 있어서,상기 설정 코드를 생성하는 단계는상기 장치가 상기 설정 정보에 따라 상기 복수 개의 단락들 중 일부에 숨김 설정이 적용된 상기 설정 코드를 생성하는 소프트웨어 맞춤화 방법.
- 제4항에 있어서,상기 설정 코드를 생성하는 단계는상기 장치가 상기 설정 정보에 따라 상기 복수 개의 단락들 중 어느 하나의 행 또는 인자에 숨김 설정이 적용된 상기 설정 코드를 생성하는 소프트웨어 맞춤화 방법.
- 제1항에 있어서,상기 저장하는 단계는상기 소프트웨어 맞춤 정보를 메타데이터 형식으로 저장하는 소프트웨어 맞춤화 방법.
- 장치가 단말로부터 수신된 서비스 요청 메시지에 따라 복수 개의 단락들로 구분되는 핵심 코드에 상기 복수 개의 단락들에 대한 변경 내용을 포함하는 맞춤 정보를 적용하여 맞춤 코드를 생성하는 단계;상기 장치가 상기 맞춤 코드를 이용하여 맞춤형 소프트웨어를 실행하는 단계; 및상기 장치가 실행된 맞춤형 소프트웨어를 이용하여 상기 서비스 요청 메시지를 처리하는 단계를 포함하는 맞춤형 소프트웨어 제공 방법.
- 제8항에 있어서,상기 소프트웨어 맞춤 정보는상기 복수 개의 단락들 각각에 대한 단락별 변경 내용을 포함하는 코드 변경 정보, 또는 상기 핵심 코드에 삽입되는 추가 단락을 포함하는 단락 삽입 정보를 포함하는 맞춤형 소프트웨어 제공 방법.
- 제9항에 있어서,상기 생성하는 단계는상기 장치가 상기 코드 변경 정보에 따라 상기 복수 개의 단락들 중 어느 하나를 수정 또는 삭제하여 상기 맞춤 코드를 생성하는 맞춤형 소프트웨어 제공 방법.
- 제9항에 있어서,상기 생성하는 단계는상기 장치가 상기 단락 삽입 정보에 따라 상기 핵심 코드에 상기 추가 단락을 삽입하여 상기 맞춤 코드를 생성하는 맞춤형 소프트웨어 제공 방법.
- 제8항에 있어서,상기 실행하는 단계는상기 장치가 상기 맞춤 코드를 컴파일(compile) 하여 목적 프로그램을 생성하는 단계; 및상기 장치가 상기 목적 프로그램을 구동하여 상기 맞춤형 소프트웨어를 실행하는 단계를 포함하는 맞춤형 소프트웨어 제공 방법.
- 제8항에 있어서,상기 처리하는 단계는상기 장치가 상기 실행된 맞춤형 소프트웨어를 이용하여 미리 저장된 데이터를 처리하는 단계; 및상기 장치가 데이터 처리 결과를 포함하는 서비스 응답 메시지를 상기 단말로 전송하는 단계를 포함하는 맞춤형 소프트웨어 제공 방법.
- 복수 개의 단락들로 구분되는 핵심 코드를 저장하는 코드 저장부;상기 복수 개의 단락들에 대한 변경 내용에 대응되는 코드 변경 정보와 단락 삽입 정보를 포함하는 소프트웨어 맞춤 정보를 메타데이터 형식으로 저장하는 정보 저장부; 및상기 핵심 코드에 상기 소프트웨어 맞춤 정보를 적용하여 맞춤 코드를 생성하고, 상기 맞춤 코드를 이용하여 맞춤형 소프트웨어를 실행하는 실행 엔진을 포함하는 맞춤형 소프트웨어 제공 장치.
- 제14항에 있어서,상기 실행 엔진은상기 코드 변경 정보에 따라 상기 복수 개의 단락들 중 어느 하나를 수정 또는 삭제하여 상기 맞춤 코드를 생성하는 맞춤형 소프트웨어 제공 장치.
- 제14항에 있어서,상기 실행 엔진은상기 단락 삽입 정보에 따라 상기 핵심 코드에 상기 추가 단락을 삽입하여 상기 맞춤 코드를 생성하는 맞춤형 소프트웨어 제공 장치.
- 제14항에 있어서,상기 실행 엔진은상기 맞춤 코드를 컴파일 하여 생성되는 목적 프로그램을 구동하여 상기 맞춤형 소프트웨어를 실행하는 맞춤형 소프트웨어 제공 장치.
- 제14항에 있어서,업무 데이터를 저장하는 데이터 저장부를 더 포함하고,상기 실행 엔진은실행된 맞춤형 소프트웨어를 이용하여 상기 업무 데이터를 처리하는 맞춤형 소프트웨어 제공 장치.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/996,756 US20130305219A1 (en) | 2010-12-23 | 2011-12-16 | Apparatus and method for providing custom software, and method for software customization |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2010-0133950 | 2010-12-23 | ||
| KR1020100133950A KR20120072138A (ko) | 2010-12-23 | 2010-12-23 | 맞춤형 소프트웨어 제공 장치 및 방법, 그리고 소프트웨어 맞춤화 방법 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2012086967A2 true WO2012086967A2 (ko) | 2012-06-28 |
| WO2012086967A3 WO2012086967A3 (ko) | 2012-10-04 |
Family
ID=46314589
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2011/009737 Ceased WO2012086967A2 (ko) | 2010-12-23 | 2011-12-16 | 맞춤형 소프트웨어 제공 장치 및 방법, 그리고 소프트웨어 맞춤화 방법 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20130305219A1 (ko) |
| KR (1) | KR20120072138A (ko) |
| WO (1) | WO2012086967A2 (ko) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20170132545A (ko) * | 2016-05-24 | 2017-12-04 | 엘에스산전 주식회사 | 컴퓨팅 장치 |
| CN107273140B (zh) * | 2017-07-06 | 2018-09-21 | 武汉斗鱼网络科技有限公司 | 脚手架管理方法、装置及电子设备 |
| US11360776B2 (en) * | 2020-09-30 | 2022-06-14 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Machine learning for workloads for instruction set architecture optimization |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7281017B2 (en) * | 2002-06-21 | 2007-10-09 | Sumisho Computer Systems Corporation | Views for software atomization |
| US7464368B2 (en) * | 2003-04-08 | 2008-12-09 | Microsoft Corporation | Logical separation of code and content |
| US7665061B2 (en) * | 2003-04-08 | 2010-02-16 | Microsoft Corporation | Code builders |
| US7721258B2 (en) * | 2005-11-03 | 2010-05-18 | Microsoft Corporation | Integrated development environment with managed platform registry |
| US7950024B2 (en) * | 2006-12-27 | 2011-05-24 | Oracle America, Inc. | Mechanism for transparently interfacing with a third party version control system |
| US8533661B2 (en) * | 2007-04-27 | 2013-09-10 | Dell Products, Lp | System and method for automated on-demand creation of a customized software application |
| US20090089743A1 (en) * | 2007-10-02 | 2009-04-02 | Barsness Eric L | Methods and Apparatus for IDE Integration of Database Changes |
| US10007767B1 (en) * | 2007-12-21 | 2018-06-26 | EMC IP Holding Company LLC | System and method for securing tenant data on a local appliance prior to delivery to a SaaS data center hosted application service |
| US20090235353A1 (en) * | 2008-03-15 | 2009-09-17 | Microsoft Corporation | Scalable Hosting of User Solutions |
| US8756576B2 (en) * | 2008-08-20 | 2014-06-17 | International Business Machines Corporation | Ranking peer submitted code snippets using execution feedback |
-
2010
- 2010-12-23 KR KR1020100133950A patent/KR20120072138A/ko not_active Withdrawn
-
2011
- 2011-12-16 WO PCT/KR2011/009737 patent/WO2012086967A2/ko not_active Ceased
- 2011-12-16 US US13/996,756 patent/US20130305219A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| US20130305219A1 (en) | 2013-11-14 |
| WO2012086967A3 (ko) | 2012-10-04 |
| KR20120072138A (ko) | 2012-07-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN100478888C (zh) | 用于安装和更新解释编程语言应用的方法和系统 | |
| CN108536524A (zh) | 资源更新方法、装置、终端及存储介质 | |
| CN107479867B (zh) | 应用软件插件化运行方法及装置 | |
| CN110009362B (zh) | 区块链智能合约修改方法、装置和计算机可读存储介质 | |
| EP1065604A1 (en) | Infrastructure for developing application-independent language modules for language-independent applications | |
| CN113760324A (zh) | 构建微前端应用的方法和装置 | |
| WO2021107179A1 (ko) | Autosar 기반 응용 소프트웨어의 설정 코드 자동 생성 방법 및 장치 | |
| CN110874236A (zh) | 一种跨平台应用装置、终端及存储介质 | |
| CN104317573B (zh) | 安卓安装包转换方法和装置以及运行应用的方法和装置 | |
| CN110780871B (zh) | 一种负一屏加载方法、装置、终端及计算机可读存储介质 | |
| CN106686420A (zh) | 直播应用程序的管理方法及装置 | |
| CN107741858A (zh) | 多种语言版本的应用程序更新方法、装置及系统 | |
| WO2015174609A1 (ko) | 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템 | |
| CN106648559A (zh) | Android应用插件化开发系统和方法 | |
| WO2010024534A2 (ko) | 위젯 실행을 위한 사용자 단말기와 스마트 카드 간 연동 시스템 및 그 방법 | |
| CN115129348A (zh) | 应用程序的资源更新方法、装置、设备及可读存储介质 | |
| CN104834541A (zh) | 功能模块挂载方法、挂载系统及更新挂载系统的方法 | |
| CN112529711A (zh) | 基于区块链虚拟机复用的交易处理方法及装置 | |
| WO2012086967A2 (ko) | 맞춤형 소프트웨어 제공 장치 및 방법, 그리고 소프트웨어 맞춤화 방법 | |
| WO2013028009A2 (ko) | 스마트 오피스 시스템 및 운용을 위한 서버 및 운용 방법 | |
| CN114428615A (zh) | Css编译方法、样式更新方法、装置、介质及设备 | |
| CN107977243A (zh) | 一种第三方接口调用方法及装置 | |
| CN109683992A (zh) | 用于管理对象的方法和装置 | |
| WO2008127020A1 (en) | The internet phone service system and internet phone service method by using soft phone created by users | |
| WO2015126079A1 (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: 11850814 Country of ref document: EP Kind code of ref document: A2 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 13996756 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: 11850814 Country of ref document: EP Kind code of ref document: A2 |