KR20020041367A - Method for executing application program without install in the client-server environment - Google Patents

Method for executing application program without install in the client-server environment Download PDF

Info

Publication number
KR20020041367A
KR20020041367A KR1020020020008A KR20020020008A KR20020041367A KR 20020041367 A KR20020041367 A KR 20020041367A KR 1020020020008 A KR1020020020008 A KR 1020020020008A KR 20020020008 A KR20020020008 A KR 20020020008A KR 20020041367 A KR20020041367 A KR 20020041367A
Authority
KR
South Korea
Prior art keywords
server
client
client terminal
application program
event
Prior art date
Application number
KR1020020020008A
Other languages
Korean (ko)
Other versions
KR100459791B1 (en
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 KR10-2002-0020008A priority Critical patent/KR100459791B1/en
Publication of KR20020041367A publication Critical patent/KR20020041367A/en
Application granted granted Critical
Publication of KR100459791B1 publication Critical patent/KR100459791B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Landscapes

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

Abstract

PURPOSE: A method for executing an application program is provided to process a portion of a message and an event being generated in an application program execution process in a server and return a result by installing and executing an application program in a server, storing an attached file, hooking and analyzing a message and event, and supplying a partial attached file and an application program to a client. CONSTITUTION: An application program developed by a developer is stored in a server and installed, and an attached file created in the installing process is stored. The server executes an execution file of the application program and performs a hooking of all messages and events being generated by the execution file and classifies the messages and events for deciding a processing unit(the server or a client terminal). In case that the client connects to the server using the client terminal and requests the application program, the server transmits the attached file for performing a process with respect to a process in the client terminal out of the application program, the table, the message, and the event to the client terminal. In case that the client executes the application program, the client terminal processes a corresponding message and event being generated in the execution, and the server processes a corresponding message and event, and the result is returned. The server received the message and event in the client terminal processes the message and event, receives and transmits the result to the client terminal.

Description

클라이언트―서버 환경에서의 설치과정없는 응용프로그램의 실행방법{METHOD FOR EXECUTING APPLICATION PROGRAM WITHOUT INSTALL IN THE CLIENT-SERVER ENVIRONMENT}Clients-How to run an application without installing in a server environment {METHOD FOR EXECUTING APPLICATION PROGRAM WITHOUT INSTALL IN THE CLIENT-SERVER ENVIRONMENT}

본 발명은 클라이언트-서버 환경에서의 설치과정없는 응용프로그램의 실행방법에 관한 것으로, 더욱 상세하게는 클라이언트 단말기와 서버가 네트워크를 통해 연결되고, 클라이언트는 서버가 제공하는 응용프로그램을 설치(install)과정없이 실행시켜 사용할 수 있도록 한 클라이언트-서버 환경에서의 설치과정없는 응용프로그램의 실행방법에 관한 것이다.The present invention relates to a method for executing an application without installation in a client-server environment. More specifically, a client terminal and a server are connected through a network, and a client installs an application provided by a server. It relates to how to run an application without installation in a client-server environment that can be run and used without it.

종래, 인터넷 등의 네트워크를 통해 서버가 제공하는 응용프로그램을 클라이언트가 사용하기 위해서는, 이를 네트워크를 통해 서버로부터 다운로드받아서 다시 클라이언트 단말기 내에 설치(install)하여야 했다. 이로써, 일단 응용프로그램이 클라이언트 단말기에 설치되면, 서버의 통제없이 클라이언트는 응용프로그램을 자체적으로 실행시켜 사용할 수 있게 되었다.Conventionally, in order for a client to use an application program provided by a server through a network such as the Internet, it has to be downloaded from the server via a network and installed again in the client terminal. Thus, once an application is installed on the client terminal, the client can execute and use the application on its own without control of the server.

이러한 방식은 클라이언트측의 입장에서는 매우 유용할 수 있으나, 서버측의 입장에서는 매우 불리하게 된다. 즉, 일단 한번 응용프로그램이 클라이언트 단말기에 설치되면, 클라이언트는 응용프로그램의 사용에 있어서 서버의 간섭을 전혀 받지 않게 된다.This can be very useful from the client side, but very disadvantageous from the server side. In other words, once an application is installed on a client terminal, the client is not subjected to any server interference in the use of the application.

이는 기업체 등과 같이 내부의 자료나 내부 업무의 전산화를 위한 솔루션 등이 외부로 일단 한번 노출되면 이를 통제할 수 없다는 문제를 야기한다. 또한, 개발자가 응용프로그램의 일부를 변경하거나 업그레이드시키는 경우에 이를 즉각적으로 반영하지 못하고, 클라이언트가 서버에 접속하여 다시 다운로드받거나 패치하여야 하는 번거러움도 야기된다.This causes a problem that once internal data such as a company or a solution for computerizing internal work is exposed to the outside, it cannot be controlled. In addition, if a developer changes or upgrades a part of an application program, it is not immediately reflected, and it causes the trouble of a client connecting to a server and downloading or patching again.

또한, 예컨대 기업에서 최적의 업무프로그램을 개발한 경우라 하더라도 이를 인터넷환경 등에 적합하도록 전환하려면 또다시 엄청난 노력과 비용이 소요된다.In addition, even if a company develops an optimal work program, it is very expensive to convert it to a suitable Internet environment.

따라서, 상기와 같은 문제점을 해소하기 위해, 클라이언트측에서는 설치과정없이 서버에서 제공하는 응용프로그램을 사용할 수 있고, 동시에 서버측에서는 응용프로그램의 사용을 통제할 수 있도록 하는 방법이 요구되고 있다.Therefore, in order to solve the above problems, there is a demand for a method that allows the client side to use an application program provided by the server without installing and to control the use of the application program on the server side.

본 발명은 상기와 같은 요구에 부합하도록 고안된 것으로서, 응용프로그램을서버에 설치하고 실행시키면서 설치과정에서 생성되는 부속파일을 저장하고, 실행과정에서 발생되는 메시지와 이벤트를 후킹하여 분석한 후, 일부 부속파일과 응용프로그램만을 클라이언트측에 제공하여 클라이언트측에서 응용프로그램을 실행하는 과정에서 발생되는 메시지와 이벤트에 대해 그 일부를 서버에서 처리하고 결과를 리턴해 주는 클라이언트-서버 환경에서의 설치과정없는 응용프로그램의 실행방법을 제공하는 것을 그 목적으로 한다.The present invention is designed to meet the requirements as described above, while installing and running the application on the server, storing the accessory file generated in the installation process, and after hooking and analyzing the messages and events generated during the execution process, A non-installation application in a client-server environment that provides only files and applications to the client, which processes some of the messages and events that occur during the execution of the application on the client, and returns the results. Its purpose is to provide a method of implementation.

도 1은 본 발명에 의한 시스템의 구성을 개략적으로 나타낸 개념도,1 is a conceptual diagram schematically showing the configuration of a system according to the present invention;

도 2는 본 발명에 의한 서버와 클라이언트 단말기의 콤포넌트 구성을 개념적으로 나타낸 블록도,2 is a block diagram conceptually illustrating a component configuration of a server and a client terminal according to the present invention;

도 3은 본 발명에 의한 응용프로그램의 실행방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a method of executing an application program according to the present invention.

상기와 같은 목적을 달성하기 위해, 본 발명에 의한 클라이언트-서버 환경에서의 설치과정없는 응용프로그램의 실행방법은, 개발자가 개발한 응용프로그램을 서버에 저장하여 설치함과 동시에, 설치과정에서 생성된 부속파일을 저장하는 제1 단계와; 상기 서버가 상기 응용프로그램의 실행파일을 실행시켜 상기 응용프로그램이 실행되는 과정에서 상기 실행파일에 의해 발생되는 모든 메시지 및 이벤트를 후킹(hooking)한 후, 상기 메시지 및 이벤트에 대해 이를 상기 서버에서 처리시킬 것인지 클라이언트 단말기에서 처리시킬 것인지를 판별하여 구분한 후 테이블로서 저장하고, 상기 메시지 및 이벤트에 대한 처리에서 상기 부속파일을 호출하여 사용한 경우에 해당 부속파일명과 경로를 함께 상기 테이블에 저장하는 제2 단계와; 클라이언트가 상기 클라이언트 단말기를 이용하여 상기 서버에 접속한 후 상기 응용프로그램을 요청한 경우에, 상기 서버는 상기 응용프로그램과 상기 테이블 및 상기 메시지 및 이벤트 중 클라이언트 단말기에서 처리시킬 것에 대해 그 처리를 수행하기 위한 부속파일을 상기 클라이언트 단말기로 송출하는 제3 단계와; 상기 클라이언트가 상기 응용프로그램을 실행시킨 경우에, 실행과정에서 발생되는 메시지 및 이벤트에 대해 상기 테이블을 참조하여 상기 클라이언트 단말기에서 처리되는 것은 상기 클라이언트 단말기에서 처리한 후 그 결과를 리턴받고, 상기 서버에서 처리되는 것은 그 메시지 및 이벤트를 상기 서버에 전달하는 제4 단계와; 상기 클라이언트 단말기에서 상기 메시지 및 이벤트를 수신한 상기 서버는, 상기 메시지 및 이벤트에 대해 상기 서버 내에서 소정의 처리를 행하고 그 결과를 리턴받아 상기 클라이언트 단말기로 송출하는 제5 단계;를 포함하여 이루어지는 것을 특징으로 한다.In order to achieve the above object, the execution method of the application program without the installation process in the client-server environment according to the present invention, while storing the application program developed by the developer and installed at the same time, generated during the installation process A first step of storing the accessory file; After the server executes the executable file of the application program and hooks all the messages and events generated by the executable file in the process of executing the application program, the server processes the message and the event for the message. A second table for determining whether to be processed or processed at the client terminal, storing the data as a table, and storing the subfile name and path together in the table when the subfile is called and used in the processing of the message and the event. Steps; When a client requests the application after connecting to the server using the client terminal, the server performs the processing on the application and the table, the message and the event to be processed by the client terminal. Transmitting a subsidiary file to the client terminal; When the client executes the application program, the processing of the client terminal by referring to the table for messages and events generated during the execution process is processed by the client terminal and the result is returned. Processing is a fourth step of delivering the message and event to the server; And a fifth step of receiving the message and the event at the client terminal, performing a predetermined process on the message and the event in the server, and receiving a result and transmitting the result to the client terminal. It features.

여기서, 상기 제2 단계는, 상기 응용프로그램이 실행되는 과정에서 상기 실행파일에 의해 발생되는 모든 메시지 및 이벤트를 후킹한 후, 상기 메시지 및 이벤트의 처리과정에서 부속파일을 호출하였는지 여부에 따라 구분하고, 또 부속파일을 호출한 경우에 그 부속파일이 운영체제를 직접 호출하여 사용하는지 여부에 따라 또 구분하여, 각각에 대해 식별부호를 붙여 테이블로서 저장하고, 운영체제를 직접 호출하여 사용하는 부속파일이 요구되는 메시지 및 이벤트는 상기 클라이언트 단말기에서 처리시킬 것으로 판별하여 구분하는 것으로 하는 것이 바람직하다.Here, the second step, after hooking all the messages and events generated by the executable file in the process of running the application program, and classifies according to whether or not the sub-file is called in the process of processing the message and event. When the subfile is called, the subfile is classified according to whether or not the subfile is directly called by the operating system, and stored as a table with an identification code for each. It is preferable that the message and the event to be distinguished are determined to be processed by the client terminal.

또한, 상기 제5 단계는, 상기 클라이언트 단말기에서 상기 메시지 및 이벤트를 수신한 상기 서버가, 상기 메시지 및 이벤트에 대해 상기 테이블을 참조하여 해당 부속파일 또는 부가 프로그램을 실행시켜 그 결과를 리턴받아 상기 클라이언트 단말기로 송출하는 것으로 하는 것이 바람직하다.In the fifth step, the server, having received the message and the event at the client terminal, executes a corresponding sub-file or an additional program with reference to the table for the message and the event and returns the result to the client. It is preferable to transmit to a terminal.

여기서, 제5 단계에서, 복수의 클라이언트 단말기가 상기 서버에 접속하여 상기 응용프로그램을 사용함으로써 복수의 메시지 및 이벤트가 수신되는 경우에,상기 서버는 이를 저장한 후, 수신된 순서대로 처리하여 그 결과를 해당 클라이언트 단말기로 송출하도록 하는 것이 바람직하다.Here, in the fifth step, when a plurality of client terminals are connected to the server and using the application program to receive a plurality of messages and events, the server stores them, processes them in the received order, and as a result It is preferable to send to the corresponding client terminal.

이하에서는 첨부된 도면을 참조하여 보다 구체적으로 설명하겠다.Hereinafter, with reference to the accompanying drawings will be described in more detail.

도 1은 본 발명에 의한 시스템의 구성을 개략적으로 나타낸 개념도이다.1 is a conceptual diagram schematically showing the configuration of a system according to the present invention.

도 1에 도시된 바와 같이, 본 발명에 의한 응용프로그램의 실행방법은 서버(20)와 클라이언트 단말기(30)가 네트워크를 통해 연결되어 있고, 클라이언트 단말기(30)에는 서버(20)에서 제공된 클라이언트측 프레임웍이 저장되어 있으며, 이를 통해 클라이언트가 응용프로그램을 실행시키면 실행과정에서 발생하는 메시지 및 이벤트 중 서버에서 처리되는 것은 이를 서버의 서버측 프레임웍으로 송출하고, 서버측 프레임웍은 수신된 메시지 및 이벤트를 부가 프로그램에 의해 처리하고 그 결과를 리턴받아 이를 다시 클라이언트 단말기(30)로 송출한다.As shown in FIG. 1, in the method of executing an application according to the present invention, a server 20 and a client terminal 30 are connected through a network, and the client terminal 30 is provided with a client side provided by the server 20. The framework is stored. When the client executes the application program, the messages and events that occur in the execution process are sent to the server-side framework of the server, and the server-side framework adds the received messages and events. Processed by the program and the result is returned and sent back to the client terminal (30).

물론, 최초에 개발자측(10)에서 응용프로그램을 서버(20)에 설치하고, 설치과정에서 생성되는 부속파일을 저장하며, 서버(20)는 응용프로그램을 일단 시뮬레이션하면서 실행과정에서 발생되는 모든 메시지와 이벤트를 후킹(hooking)한다.Of course, initially install the application on the server 20 in the developer side 10, and stores the accessory file generated during the installation process, the server 20 simulates the application once, all messages generated during the execution process Hooking up and events

후킹한 메시지와 이벤트는 클라이언트 단말기에서 처리될 것과 서버에서 처리될 것으로 나뉘어지고, 서버는 클라이언트측에 보낼 응용프로그램과 부속파일 등을 포함하는 클라이언트측 프레임웍과 서버측에서 클라이언트 단말기로부터 메시지 및 이벤트를 받아 처리하고 그 결과를 송출하는 서버측 프레임웍을 생성한다.The hooked messages and events are divided into those that will be processed on the client terminal and those that will be processed on the server, and the server receives messages and events from the client terminal on the client side framework, including application programs and sub-files to send to the client side. Create a server-side framework that processes and sends the results.

상세한 처리과정은 도 2를 참조하여 설명하겠다.Detailed processing will be described with reference to FIG. 2.

도 2는 본 발명에 의한 서버와 클라이언트 단말기의 콤포넌트 구성을 개념적으로 나타낸 블록도이다.2 is a block diagram conceptually illustrating a component configuration of a server and a client terminal according to the present invention.

도 2에서는 서버측 및 클라이언트측에서 본 발명에 의한 응용프로그램의 실행방법을 실현하기 위한 콤포넌트의 일례를 도시하였다.2 shows an example of a component for realizing a method of executing an application program according to the present invention on the server side and the client side.

도 2를 참조하여 본 발명에 의한 응용프로그램의 실행방법을 시계열적 순서에 따라 살펴보면 다음과 같다.Looking at the execution method of the application program according to the present invention with reference to Figure 2 in the time series order as follows.

먼저, 개발자에 의해 개발된 응용프로그램은 서버에 저장되고, 설치과정을 통해 발생된 부속파일들을 모아 부속 프레임웍을 작성한다.First, the application program developed by the developer is stored on the server, and the sub-framework is created by collecting the sub-files generated through the installation process.

또한, 설치가 완료된 응용프로그램은 실행파일을 실행시킴으로써 응용프로그램의 시뮬레이션을 행한다. 이때, 서버측 프레임웍의 분석 콤포넌트는 실행과정에서 발생되는 메시지 및 이벤트를 모두 후킹하여 이를 분석한다. 메시지 및 이벤트의 분석은 메시지 및 이벤트가 부속파일을 호출하는지 여부에 따라 크게 나누고, 부속파일을 호출하는 경우에는 다시 그 부속파일이 운영체제(윈도우즈 시스템을 예로 하면, User32.dll, Kernel32.dll, Gdi32.dll 등)를 직접 호출하여 사용하는 것인지 여부에 따라 다시 나눈다. 이렇게 구분된 메시지 및 이벤트에는, 예컨대 운영체제를 직접 호출하여 사용하면 부호 S를 붙이고 부속파일명, 경로 등을 함께 저장하고, 운영체제를 간접 사용하는 경우에는 부호 B를 붙이고 저장하며, 사용하지 않는 경우에는 부호 N을 붙이고 저장한다.In addition, the installed application program executes an executable file to simulate the application program. At this time, the analysis component of the server-side framework hooks and analyzes all messages and events generated during execution. The analysis of messages and events is largely divided by whether the messages and events call subfiles, and when the subfiles are called, the subfiles are again converted into operating systems (for example, Windows systems, User32.dll, Kernel32.dll, Gdi32). It is divided again according to whether or not to directly call and use .dll). In the messages and events thus classified, for example, by calling the operating system directly, a symbol S is attached and the subfile name and path are stored together. In the case of indirect use of the operating system, the symbol B is stored. Paste N and save.

이와 같이, 구분된 메시지 및 이벤트는 테이블에 저장된다. 테이블은 응용프로그램의 실행과정에서 발생된 메시지 및 이벤트가 어떠한 형태인지를 판별할 수 있는 기준을 제시해 주는 것이다.As such, the separated messages and events are stored in a table. The table suggests criteria to determine what types of messages and events occurred during the execution of an application.

분석 콤포넌트에 의해 메시지 및 이벤트를 구분하고 테이블을 작성한 후에는, 메시지 및 이벤트를 서버측에서 처리될 것과 클라이언트측에서 처리될 것으로 나눈다. 예컨대, 상기와 같은 경우에 운영체제를 직접 호출하여 사용하는 메시지 및 이벤트의 경우에 클라이언트측에서 처리되는 것으로 하는 것이 바람직하다.After separating the messages and events by the analysis component and creating the tables, we divide the messages and events into those that will be processed on the server side and those that will be processed on the client side. For example, in the case of the above, it is preferable that the client side processes messages and events used by directly calling the operating system.

분석 및 구분이 완료되면, 응용프로그램과 테이블을 포함하여 클라이언트측에 제공하여 저장시킬 파일들이 정해지는데, 이들을 클라이언트측 프레임웍이라고 하고, 서버는 이를 네트워크를 통해 클라이언트 단말기로 송출하고 저장시킬 수 있도록 가공한 후, 배포 콤포넌트에 의해 클라이언트 단말기로 송출한다.After analysis and classification, files to be provided and stored on the client side including application programs and tables are determined. These are called client-side frameworks, and the server processes them to be sent and stored over the network to client terminals. Then, it is sent to the client terminal by the distribution component.

클라이언트 단말기에는 응용프로그램과 테이블 및 실행 콤포넌트를 포함하는 클라이언트측 프레임웍이 저장되는데, 설치과정없이 응용프로그램을 실행하는 경우에 실행과정에서 발생하는 메시지 및 이벤트에 대해 먼저 테이블을 참조하여 서버와 클라이언트 중 어느 쪽에서 처리되는 것인지를 판별한 후, 실행 콤포넌트에 넘겨주어 이를 처리하도록 한다.The client terminal stores a client-side framework that includes applications, tables, and executable components.When a client runs an application without installing, the client terminal refers to the table first for messages and events that occur during execution. After the server determines whether it is processed, it passes it to the execution component for processing.

실행 콤포넌트는 메시지 및 이벤트가 클라이언트 단말기에서 처리되는 것이면 클라이언트 단말기에서 처리하고 결과를 리턴받아 넘겨주고, 서버에서 처리되는 것이면 일단 이를 서버로 송부하고 결과를 기다린다.Execution components process messages and events at the client terminal if they are processed at the client terminal and return the results, and if they are processed at the server, send them to the server and wait for the results.

서버의 메시지 콤포넌트는 클라이언트 단말기로부터 수신된 메시지 및 이벤트를 서버측의 실행 콤포넌트로 전달하고, 실행 콤포넌트로부터 결과를 넘겨받으면 이를 클라이언트 단말기로 송신한다.The message component of the server delivers the messages and events received from the client terminal to the execution component on the server side, and sends the result to the client terminal when the result is received from the execution component.

서버측의 실행 콤포넌트는 메시지 콤포넌트로부터 전달된 메시지 및 이벤트에 대해 테이블을 참조하여 그 형태를 판단하고, 부속 프레임웍의 부속파일을 실행함으로써 결과를 리턴받는다. 리턴받은 결과는 다시 메시지 콤포넌트로 전달하여 클라이언트 단말기로 송출한다.Execution components on the server side refer to tables for messages and events delivered from message components, determine their form, and return the results by executing sub-frames of the sub-framework. The returned result is delivered to the message component and sent to the client terminal.

도면 중 인증 콤포넌트는 클라이언트가 단말기를 이용하여 네트워크를 통해 서버에 접속함에 있어서, 아이디와 패스워드를 통해 로그인 과정을 거치도록 하기 위한 것이다. 이는 보안성이 요구되는 경우에 바람직하며, 인증 콤포넌트는 클라이언트측에서 입력된 아이디와 패스워드를 데이터베이트에서 검색하여 등록된 클라이언트인지 여부를 판단한다.In the figure, the authentication component is for allowing a client to log in through an ID and password when accessing a server through a network using a terminal. This is preferable when security is required, and the authentication component determines whether the client is a registered client by searching the database for the ID and password input from the client side.

도 3은 본 발명에 의한 응용프로그램의 실행방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a method of executing an application program according to the present invention.

도 3을 참조하여 본 발명에 의한 응용프로그램의 실행방법을 설명하면 다음과 같다.Referring to Figure 3 describes the execution method of the application program according to the present invention.

먼저, 개발자가 개발한 응용프로그램을 서버에 저장하고 설치한다. 설치과정에서 발생되는 부속파일은 별도로 저장한다.First, save and install the application developed by the developer on the server. Separate files generated during installation are saved separately.

다음으로, 응용프로그램의 실행파일(예컨대, EXE파일)을 실행시킴으로써, 서버 내에서 시뮬레이션시킨다.Next, by executing the executable file (for example, EXE file) of the application program, it is simulated in the server.

다음으로, 응용프로그램의 실행과정에서 발생되는 메시지 및 이벤트를 모두 후킹하고, 이를 분석하여 저장한다. 메시지 및 이벤트는 상술한 바와 같이 부속파일을 호출하여 사용하는지 여부에 따라 구분하고, 부속파일을 호출하여 사용하는 경우에는 다시 운영체제를 직접 호출하여 사용하는지 간접적으로 사용하는지 여부에 따라 구분한다. 구분된 메시지 및 이벤트에는 식별부호를 붙여 테이블로서 저장한다. 테이블에는 메시지 및 이벤트에 사용되는 부속파일명과 경로도 함께 저장된다.Next, the system hooks up all the messages and events that occur during the execution of the application, and analyzes and stores them. As described above, the message and the event are classified according to whether the accessory file is called and used, and when the accessory file is called and used, the message and event are again classified according to whether the operating system is directly called or indirectly used. Separated messages and events are stored as tables with an identifier. The table also stores the subfile names and paths used for messages and events.

다음으로, 테이블을 참조하여 서버측 프레임웍과 클라이언트측 프레임웍을 구분하여 작성한다. 클라이언트측 프레임웍은 응용프로그램의 실행을 위해 클라이언트 단말기에 송출하여 저장시키는 부분으로서, 응용프로그램과 테이블 및 일부 부속파일을 포함한다.Next, the server-side framework and the client-side framework are distinguished and written by referring to the table. The client-side framework is a part that is sent to and stored in the client terminal for execution of an application program, and includes an application program, a table, and some sub-files.

다음으로, 클라이언트가 단말기를 이용하여 네트워크를 통해 서버에 접속한 후, 응용프로그램을 사용하고자 하는 경우에는, 서버가 클라이언트측 프레임웍을 송출하여 클라이언트 단말기에 저장시킨다.Next, when the client connects to the server through the network using the terminal and wants to use the application program, the server sends out the client-side framework and stores it in the client terminal.

다음으로, 응용프로그램을 실행하며, 응용프로그램을 실행하는 과정에서 발생되는 메시지 및 이벤트를 후킹하고, 이들을 테이블을 참조하여 클라이언트측에서 처리되는 것인지 서버측에서 처리되는 것인지를 판별한다.Next, it executes an application program, hooks messages and events generated during the execution of the application program, and references them to determine whether they are processed on the client side or the server side.

클라이언트 단말기에서 처리되는 것은, 클라이언트 단말기에서 이를 처리하고 결과를 리턴받는다.What is processed at the client terminal is processed at the client terminal and the result is returned.

서버에서 처리되는 것은, 먼저 서버로 메시지 및 이벤트를 송출한다. 그러면, 서버는 수신된 메시지 및 이벤트에 대해 테이블을 참조하여 부속파일 등을 호출하여 처리하고, 결과를 리턴받은 후, 이를 다시 클라이언트 단말기로 송출한다.What is processed at the server first sends messages and events to the server. Then, the server refers to the table for the received messages and events, calls the sub-files, etc., processes the result, and returns the result to the client terminal.

이상과 같은 방법에 의해 클라이언트측에서는 설치과정없이 직접 응용프로그램을 사용할 수 있게 되고, 서버측에서는 응용프로그램에 대해 실질적으로 통제권한을 가지게 된다.By the above method, the client side can use the application program directly without installation process, and the server side has practical control over the application program.

바람직하게는, 클라이언트가 서버에 접속하면 아이디와 패스워드를 입력받아 등록된 클라이언트인지 여부를 판단하는 인증과정을 두는 것이 좋다. 이 경우에 인증과정에서 클라이언트측의 프록시 정보와 사용자 정보를 파악하고, 다수의 사용자가 서버에 접속하여 메시지 및 이벤트를 송출하는 경우에 이를 수신된 순서에 따라 처리하고 그 결과를 해당 클라이언트 단말기로 송출하도록 하는 것이 바람직하다.Preferably, when the client connects to the server, it is preferable to have an authentication process for determining whether the client is a registered client by inputting an ID and password. In this case, proxy information and user information on the client side are grasped during authentication, and when a large number of users connect to the server to send messages and events, they are processed according to the received order and the result is sent to the corresponding client terminal. It is desirable to.

상술한 바와 같이, 본 발명에 의한 클라이언트-서버 환경에서의 설치과정없는 응용프로그램의 실행방법을 사용하는 경우에는 다음과 같은 효과를 얻을 수 있다.As described above, the following effects can be obtained when using an application program execution method without installation process in the client-server environment according to the present invention.

첫째, 클라이언트는 설치과정없이 서버에서 제공하는 응용프로그램을 사용할 수 있기 때문에, 웹상에서 바로 응용프로그램을 실행하여 사용할 수 있어 매우 인터넷 등의 사용 중에 별도로 응용프로그램을 다운로드받아서 다시 설치하여 사용하는 것보다 간편하고, 이에 따라 인터넷 사용이 매우 편리하며, 서버측에서는 보다 다양한 서비스를 제공할 수 있게 된다.First, since the client can use the application provided by the server without the installation process, it is possible to run and use the application directly on the web, which is much simpler than downloading and reinstalling the application separately while using the Internet. As a result, the Internet is very convenient to use, and more various services can be provided on the server side.

둘째, 클라이언트와 서버가 응용프로그램의 실행에 필요한 부분을 나누어 가지게 되는 것이므로, 자원을 효율적으로 이용할 수 있다.Second, since the client and server share the parts necessary to execute the application, resources can be efficiently used.

셋째, 클라이언트는 서버에 접속하지 않으면 응용프로그램을 사용할 수 없기 때문에, 서버는 응용프로그램에 대한 통제력을 가지게 되어, 보안성에 있어서 우수할 뿐 아니라, 계속적인 응용프로그램의 업그레이드나 수정, 변경이 있는 경우에이를 직접적으로 적용할 수 있게 된다.Third, since the client cannot use the application without connecting to the server, the server has control over the application, which is not only excellent in security, but also in the case of continuous application upgrades, modifications, and changes. This can be applied directly.

넷째, 본 발명에 의한 응용프로그램의 실행방법을 이용하면, 인터넷 상에서의 응용프로그램 사용의 범위가 넓어지게 되어, 보다 다양한 인터넷 서비스가 가능해 질뿐 아니라, 환경에 따라 프로그램을 변환하여야 하는 데에 소요되는 비용이나 시간을 절감할 수 있다.Fourth, by using the application program execution method according to the present invention, the range of use of the application program on the Internet becomes wider, and not only the various Internet services are possible, but also the cost required to convert the program according to the environment. You can save time.

Claims (4)

클라이언트-서버 환경에서의 설치과정없는 응용프로그램의 실행방법에 있어서,How to run an application without installation in a client-server environment 개발자가 개발한 응용프로그램을 서버에 저장하여 설치함과 동시에, 설치과정에서 생성된 부속파일을 저장하는 제1 단계와;A first step of storing and installing an application program developed by a developer on a server, and at the same time, storing an accessory file generated during an installation process; 상기 서버가 상기 응용프로그램의 실행파일을 실행시켜 상기 응용프로그램이 실행되는 과정에서 상기 실행파일에 의해 발생되는 모든 메시지 및 이벤트를 후킹(hooking)한 후, 상기 메시지 및 이벤트에 대해 이를 상기 서버에서 처리시킬 것인지 클라이언트 단말기에서 처리시킬 것인지를 판별하여 구분한 후 테이블로서 저장하고, 상기 메시지 및 이벤트에 대한 처리에서 상기 부속파일을 호출하여 사용한 경우에 해당 부속파일명과 경로를 함께 상기 테이블에 저장하는 제2 단계와;After the server executes the executable file of the application program and hooks all the messages and events generated by the executable file in the process of executing the application program, the server processes the message and the event for the message. A second table for determining whether to be processed or processed at the client terminal, storing the data as a table, and storing the subfile name and path together in the table when the subfile is called and used in the processing of the message and the event. Steps; 클라이언트가 상기 클라이언트 단말기를 이용하여 상기 서버에 접속한 후 상기 응용프로그램을 요청한 경우에, 상기 서버는 상기 응용프로그램과 상기 테이블 및 상기 메시지 및 이벤트 중 클라이언트 단말기에서 처리시킬 것에 대해 그 처리를 수행하기 위한 부속파일을 상기 클라이언트 단말기로 송출하는 제3 단계와;When a client requests the application after connecting to the server using the client terminal, the server performs the processing on the application and the table, the message and the event to be processed by the client terminal. Transmitting a subsidiary file to the client terminal; 상기 클라이언트가 상기 응용프로그램을 실행시킨 경우에, 실행과정에서 발생되는 메시지 및 이벤트에 대해 상기 테이블을 참조하여 상기 클라이언트 단말기에서 처리되는 것은 상기 클라이언트 단말기에서 처리한 후 그 결과를 리턴받고, 상기 서버에서 처리되는 것은 그 메시지 및 이벤트를 상기 서버에 전달하는 제4 단계와;When the client executes the application program, the processing of the client terminal by referring to the table for messages and events generated during the execution process is processed by the client terminal and the result is returned. Processing is a fourth step of delivering the message and event to the server; 상기 클라이언트 단말기에서 상기 메시지 및 이벤트를 수신한 상기 서버는, 상기 메시지 및 이벤트에 대해 상기 서버 내에서 소정의 처리를 행하고 그 결과를 리턴받아 상기 클라이언트 단말기로 송출하는 제5 단계;The server receiving the message and the event at the client terminal, performing a predetermined process on the message and the event in the server, and receiving a result and transmitting the result to the client terminal; 를 포함하여 이루어지는 것을 특징으로 하는 클라이언트-서버 환경에서의 설치과정없는 응용프로그램의 실행방법.Execution method of the application without installation process in the client-server environment, characterized in that comprises a. 제 1 항에 있어서,The method of claim 1, 상기 제2 단계는, 상기 응용프로그램이 실행되는 과정에서 상기 실행파일에 의해 발생되는 모든 메시지 및 이벤트를 후킹한 후, 상기 메시지 및 이벤트의 처리과정에서 부속파일을 호출하였는지 여부에 따라 구분하고, 또 부속파일을 호출한 경우에 그 부속파일이 운영체제를 직접 호출하여 사용하는지 여부에 따라 또 구분하여, 각각에 대해 식별부호를 붙여 테이블로서 저장하고, 운영체제를 직접 호출하여 사용하는 부속파일이 요구되는 메시지 및 이벤트는 상기 클라이언트 단말기에서 처리시킬 것으로 판별하여 구분하는 것을 특징으로 하는 클라이언트-서버 환경에서의 설치과정없는 응용프로그램의 실행방법.In the second step, after hooking all messages and events generated by the executable file in the process of executing the application program, the second step is classified according to whether the accessory file is called during the processing of the message and event. When subfile is called, it is classified according to whether or not the subfile directly calls the operating system and stored as a table with identification code for each, and the subfile that calls and uses the operating system directly is required. And distinguishing the event to be processed by the client terminal and classifying the event. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 제5 단계는, 상기 클라이언트 단말기에서 상기 메시지 및 이벤트를 수신한 상기 서버가, 상기 메시지 및 이벤트에 대해 상기 테이블을 참조하여 해당 부속파일 또는 부가 프로그램을 실행시켜 그 결과를 리턴받아 상기 클라이언트 단말기로 송출하는 단계인 것을 특징으로 하는 클라이언트-서버 환경에서의 설치과정없는 응용프로그램의 실행방법.In the fifth step, the server, having received the message and the event at the client terminal, executes a corresponding sub-file or an additional program with reference to the table and returns the result to the client terminal. Execution method of the application without installation process in the client-server environment, characterized in that the sending step. 제 3 항에 있어서,The method of claim 3, wherein 제5 단계에서, 복수의 클라이언트 단말기가 상기 서버에 접속하여 상기 응용프로그램을 사용함으로써 복수의 메시지 및 이벤트가 수신되는 경우에, 상기 서버는 이를 저장한 후, 수신된 순서대로 처리하여 그 결과를 해당 클라이언트 단말기로 송출하는 것을 특징으로 하는 클라이언트-서버 환경에서의 설치과정없는 응용프로그램의 실행방법.In the fifth step, when a plurality of messages and events are received by the plurality of client terminals connecting to the server and using the application program, the server stores them, processes them in the received order, and processes the results. A method of executing an application program without installation in a client-server environment, characterized by transmitting to a client terminal.
KR10-2002-0020008A 2002-04-12 2002-04-12 Method for executing application program without install in the client-server environment KR100459791B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0020008A KR100459791B1 (en) 2002-04-12 2002-04-12 Method for executing application program without install in the client-server environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0020008A KR100459791B1 (en) 2002-04-12 2002-04-12 Method for executing application program without install in the client-server environment

Publications (2)

Publication Number Publication Date
KR20020041367A true KR20020041367A (en) 2002-06-01
KR100459791B1 KR100459791B1 (en) 2004-12-04

Family

ID=19720310

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0020008A KR100459791B1 (en) 2002-04-12 2002-04-12 Method for executing application program without install in the client-server environment

Country Status (1)

Country Link
KR (1) KR100459791B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100766863B1 (en) * 2006-12-07 2007-11-15 주식회사 스펙트라 Software-installation system using movable data storage and method thereof
KR100795185B1 (en) * 2001-03-26 2008-01-16 엘지엔시스(주) Method of program down load in client/server environment
WO2009025444A1 (en) * 2007-08-20 2009-02-26 Teruten, Inc. Method and apparutus for providing software security

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH087009A (en) * 1994-08-16 1996-01-12 Hiroshi Watanabe Software rental system through network
KR20000057127A (en) * 1999-02-03 2000-09-15 송동호 Executing software program system for application service provider on distributed computing environment and method using the sa me
KR20020010287A (en) * 2000-07-29 2002-02-04 김현두 System and method for providing application services using network traffic distributing scheme
KR20010078968A (en) * 2001-05-28 2001-08-22 이상욱 Method for providing software ASP through the internet

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100795185B1 (en) * 2001-03-26 2008-01-16 엘지엔시스(주) Method of program down load in client/server environment
KR100766863B1 (en) * 2006-12-07 2007-11-15 주식회사 스펙트라 Software-installation system using movable data storage and method thereof
WO2009025444A1 (en) * 2007-08-20 2009-02-26 Teruten, Inc. Method and apparutus for providing software security
US8549580B2 (en) 2007-08-20 2013-10-01 Teruten, Inc. Method and apparatus for providing software security

Also Published As

Publication number Publication date
KR100459791B1 (en) 2004-12-04

Similar Documents

Publication Publication Date Title
US11360833B2 (en) Method and system for transforming input data streams
CN110572436B (en) Multi-place cross-cluster server deployment method and system
CN107733922B (en) Method and apparatus for invoking a service
US5473772A (en) Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
US7219140B2 (en) Configuration and management systems for mobile and embedded devices
US7844963B2 (en) System and method for updating information via a network
US6199204B1 (en) Distribution of software updates via a computer network
US6202207B1 (en) Method and a mechanism for synchronized updating of interoperating software
US7051315B2 (en) Network streaming of multi-application program code
US20080256510A1 (en) Method And System For Generating Automatically Distributable Clients Of Application Servers
US20030204644A1 (en) System and method for developing, deploying, and debugging software agents
TW368635B (en) Method and apparatus for controlling software access to system resources
CN112083951B (en) Unified software package management method and system supporting multiple operating system platforms
EP0436559A1 (en) Data processing network.
CN111708550A (en) Application deployment method and device, computer equipment and storage medium
CN114064155A (en) Container-based algorithm calling method, device, equipment and storage medium
US6321347B1 (en) Network testing system and method
KR20020041367A (en) Method for executing application program without install in the client-server environment
CN111158654A (en) Algorithm calling method, device, server and storage medium
CN114827107A (en) Software upgrading method and device
JP2001229027A (en) Version control method for client program
CN113641334A (en) Software customization method and system
Timossi et al. Experience with ActiveX control for simple channel access
CN117955829A (en) Machine initial environment creation method, main device, sub device and readable storage medium
CN117118843A (en) Gateway capacity expansion method, device, server and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee